highstock-rails 2.1.10 → 5.0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/css/highcharts.css +760 -0
- data/app/assets/javascripts/highstock.js +511 -419
- data/app/assets/javascripts/highstock/highstock.js +472 -0
- data/app/assets/javascripts/highstock/highstock.js.map +8 -0
- data/app/assets/javascripts/highstock/highstock.src.js +28809 -0
- data/app/assets/javascripts/highstock/modules/accessibility.js +48 -0
- data/app/assets/javascripts/highstock/modules/accessibility.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/accessibility.src.js +1131 -0
- data/app/assets/javascripts/highstock/modules/annotations.js +14 -0
- data/app/assets/javascripts/highstock/modules/annotations.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/annotations.src.js +407 -0
- data/app/assets/javascripts/highstock/modules/boost-canvas.js +23 -0
- data/app/assets/javascripts/highstock/modules/boost-canvas.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/boost-canvas.src.js +771 -0
- data/app/assets/javascripts/highstock/modules/boost.js +51 -12
- data/app/assets/javascripts/highstock/modules/boost.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/boost.src.js +2580 -492
- data/app/assets/javascripts/highstock/modules/broken-axis.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/canvasrenderer.experimental.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/data.js +19 -19
- data/app/assets/javascripts/highstock/modules/data.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/data.src.js +974 -950
- data/app/assets/javascripts/highstock/modules/drilldown.js +25 -17
- data/app/assets/javascripts/highstock/modules/drilldown.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/drilldown.src.js +790 -709
- data/app/assets/javascripts/highstock/modules/export-data.js +17 -0
- data/app/assets/javascripts/highstock/modules/export-data.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/export-data.src.js +417 -0
- data/app/assets/javascripts/highstock/modules/exporting.js +21 -18
- data/app/assets/javascripts/highstock/modules/exporting.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/exporting.src.js +1013 -768
- data/app/assets/javascripts/highstock/modules/funnel.js +6 -7
- data/app/assets/javascripts/highstock/modules/funnel.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/funnel.src.js +284 -308
- data/app/assets/javascripts/highstock/modules/gantt.js +24 -0
- data/app/assets/javascripts/highstock/modules/gantt.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/gantt.src.js +793 -0
- data/app/assets/javascripts/highstock/modules/grid-axis.js +19 -0
- data/app/assets/javascripts/highstock/modules/grid-axis.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/grid-axis.src.js +545 -0
- data/app/assets/javascripts/highstock/modules/heatmap.js +20 -18
- data/app/assets/javascripts/highstock/modules/heatmap.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/heatmap.src.js +738 -633
- data/app/assets/javascripts/highstock/modules/map-parser.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/map.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/no-data-to-display.js +5 -5
- data/app/assets/javascripts/highstock/modules/no-data-to-display.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/no-data-to-display.src.js +140 -133
- data/app/assets/javascripts/highstock/modules/offline-exporting.js +12 -7
- data/app/assets/javascripts/highstock/modules/offline-exporting.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/offline-exporting.src.js +543 -270
- data/app/assets/javascripts/highstock/modules/overlapping-datalabels.js +10 -0
- data/app/assets/javascripts/highstock/modules/overlapping-datalabels.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/overlapping-datalabels.src.js +187 -0
- data/app/assets/javascripts/highstock/modules/series-label.js +19 -0
- data/app/assets/javascripts/highstock/modules/series-label.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/series-label.src.js +606 -0
- data/app/assets/javascripts/highstock/modules/solid-gauge.js +9 -8
- data/app/assets/javascripts/highstock/modules/solid-gauge.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/solid-gauge.src.js +334 -266
- data/app/assets/javascripts/highstock/modules/static-scale.js +12 -0
- data/app/assets/javascripts/highstock/modules/static-scale.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/static-scale.src.js +64 -0
- data/app/assets/javascripts/highstock/modules/stock.js +123 -0
- data/app/assets/javascripts/highstock/modules/stock.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/stock.src.js +6247 -0
- data/app/assets/javascripts/highstock/modules/treemap.js +22 -23
- data/app/assets/javascripts/highstock/modules/treemap.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/treemap.src.js +884 -859
- data/app/assets/javascripts/highstock/modules/xrange-series.js +15 -0
- data/app/assets/javascripts/highstock/modules/xrange-series.js.map +8 -0
- data/app/assets/javascripts/highstock/modules/xrange-series.src.js +258 -0
- data/app/assets/javascripts/highstock/themes/dark-blue.js +307 -244
- data/app/assets/javascripts/highstock/themes/dark-green.js +303 -244
- data/app/assets/javascripts/highstock/themes/dark-unica.js +231 -201
- data/app/assets/javascripts/highstock/themes/gray.js +314 -245
- data/app/assets/javascripts/highstock/themes/grid-light.js +91 -66
- data/app/assets/javascripts/highstock/themes/grid.js +124 -96
- data/app/assets/javascripts/highstock/themes/sand-signika.js +119 -94
- data/app/assets/javascripts/highstock/themes/skies.js +108 -85
- data/lib/highstock/rails/version.rb +1 -1
- metadata +54 -11
- data/app/assets/javascripts/highstock/adapters/standalone-framework.js +0 -18
- data/app/assets/javascripts/highstock/adapters/standalone-framework.src.js +0 -635
- data/app/assets/javascripts/highstock/highcharts-3d.js +0 -48
- data/app/assets/javascripts/highstock/highcharts-3d.src.js +0 -1711
- data/app/assets/javascripts/highstock/highcharts-more.js +0 -55
- data/app/assets/javascripts/highstock/highstock-all.js +0 -637
- data/app/assets/javascripts/highstock/modules/canvas-tools.js +0 -133
- data/app/assets/javascripts/highstock/modules/canvas-tools.src.js +0 -3114
@@ -1,17 +1,25 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
{
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
1
|
+
/*
|
2
|
+
Highcharts JS v5.0.11 (2017-05-04)
|
3
|
+
Highcharts Drilldown module
|
4
|
+
|
5
|
+
Author: Torstein Honsi
|
6
|
+
License: www.highcharts.com/license
|
7
|
+
|
8
|
+
*/
|
9
|
+
(function(n){"object"===typeof module&&module.exports?module.exports=n:n(Highcharts)})(function(n){(function(f){function n(a,b,d){var c;b.rgba.length&&a.rgba.length?(a=a.rgba,b=b.rgba,c=1!==b[3]||1!==a[3],a=(c?"rgba(":"rgb(")+Math.round(b[0]+(a[0]-b[0])*(1-d))+","+Math.round(b[1]+(a[1]-b[1])*(1-d))+","+Math.round(b[2]+(a[2]-b[2])*(1-d))+(c?","+(b[3]+(a[3]-b[3])*(1-d)):"")+")"):a=b.input||"none";return a}var A=f.noop,t=f.color,B=f.defaultOptions,h=f.each,p=f.extend,H=f.format,C=f.objectEach,v=f.pick,
|
10
|
+
u=f.wrap,q=f.Chart,w=f.seriesTypes,D=w.pie,r=w.column,E=f.Tick,x=f.fireEvent,F=f.inArray,G=1;h(["fill","stroke"],function(a){f.Fx.prototype[a+"Setter"]=function(){this.elem.attr(a,n(t(this.start),t(this.end),this.pos),null,!0)}});p(B.lang,{drillUpText:"\u25c1 Back to {series.name}"});B.drilldown={animation:{duration:500},drillUpButton:{position:{align:"right",x:-10,y:10}}};f.SVGRenderer.prototype.Element.prototype.fadeIn=function(a){this.attr({opacity:.1,visibility:"inherit"}).animate({opacity:v(this.newOpacity,
|
11
|
+
1)},a||{duration:250})};q.prototype.addSeriesAsDrilldown=function(a,b){this.addSingleSeriesAsDrilldown(a,b);this.applyDrilldown()};q.prototype.addSingleSeriesAsDrilldown=function(a,b){var d=a.series,c=d.xAxis,e=d.yAxis,g,k=[],y=[],l,m,z;z={colorIndex:v(a.colorIndex,d.colorIndex)};this.drilldownLevels||(this.drilldownLevels=[]);l=d.options._levelNumber||0;(m=this.drilldownLevels[this.drilldownLevels.length-1])&&m.levelNumber!==l&&(m=void 0);b=p(p({_ddSeriesId:G++},z),b);g=F(a,d.points);h(d.chart.series,
|
12
|
+
function(a){a.xAxis!==c||a.isDrilling||(a.options._ddSeriesId=a.options._ddSeriesId||G++,a.options._colorIndex=a.userOptions._colorIndex,a.options._levelNumber=a.options._levelNumber||l,m?(k=m.levelSeries,y=m.levelSeriesOptions):(k.push(a),y.push(a.options)))});a=p({levelNumber:l,seriesOptions:d.options,levelSeriesOptions:y,levelSeries:k,shapeArgs:a.shapeArgs,bBox:a.graphic?a.graphic.getBBox():{},color:a.isNull?(new f.Color(t)).setOpacity(0).get():t,lowerSeriesOptions:b,pointOptions:d.options.data[g],
|
13
|
+
pointIndex:g,oldExtremes:{xMin:c&&c.userMin,xMax:c&&c.userMax,yMin:e&&e.userMin,yMax:e&&e.userMax}},z);this.drilldownLevels.push(a);b=a.lowerSeries=this.addSeries(b,!1);b.options._levelNumber=l+1;c&&(c.oldPos=c.pos,c.userMin=c.userMax=null,e.userMin=e.userMax=null);d.type===b.type&&(b.animate=b.animateDrilldown||A,b.options.animation=!0)};q.prototype.applyDrilldown=function(){var a=this.drilldownLevels,b;a&&0<a.length&&(b=a[a.length-1].levelNumber,h(this.drilldownLevels,function(a){a.levelNumber===
|
14
|
+
b&&h(a.levelSeries,function(a){a.options&&a.options._levelNumber===b&&a.remove(!1)})}));this.redraw();this.showDrillUpButton()};q.prototype.getDrilldownBackText=function(){var a=this.drilldownLevels;if(a&&0<a.length)return a=a[a.length-1],a.series=a.seriesOptions,H(this.options.lang.drillUpText,a)};q.prototype.showDrillUpButton=function(){var a=this,b=this.getDrilldownBackText(),d=a.options.drilldown.drillUpButton,c,e;this.drillUpButton?this.drillUpButton.attr({text:b}).align():(e=(c=d.theme)&&c.states,
|
15
|
+
this.drillUpButton=this.renderer.button(b,null,null,function(){a.drillUp()},c,e&&e.hover,e&&e.select).addClass("highcharts-drillup-button").attr({align:d.position.align,zIndex:7}).add().align(d.position,!1,d.relativeTo||"plotBox"))};q.prototype.drillUp=function(){for(var a=this,b=a.drilldownLevels,d=b[b.length-1].levelNumber,c=b.length,e=a.series,g,k,f,l,m=function(b){var c;h(e,function(a){a.options._ddSeriesId===b._ddSeriesId&&(c=a)});c=c||a.addSeries(b,!1);c.type===f.type&&c.animateDrillupTo&&(c.animate=
|
16
|
+
c.animateDrillupTo);b===k.seriesOptions&&(l=c)};c--;)if(k=b[c],k.levelNumber===d){b.pop();f=k.lowerSeries;if(!f.chart)for(g=e.length;g--;)if(e[g].options.id===k.lowerSeriesOptions.id&&e[g].options._levelNumber===d+1){f=e[g];break}f.xData=[];h(k.levelSeriesOptions,m);x(a,"drillup",{seriesOptions:k.seriesOptions});l.type===f.type&&(l.drilldownLevel=k,l.options.animation=a.options.drilldown.animation,f.animateDrillupFrom&&f.chart&&f.animateDrillupFrom(k));l.options._levelNumber=d;f.remove(!1);l.xAxis&&
|
17
|
+
(g=k.oldExtremes,l.xAxis.setExtremes(g.xMin,g.xMax,!1),l.yAxis.setExtremes(g.yMin,g.yMax,!1))}x(a,"drillupall");this.redraw();0===this.drilldownLevels.length?this.drillUpButton=this.drillUpButton.destroy():this.drillUpButton.attr({text:this.getDrilldownBackText()}).align();this.ddDupes.length=[]};r.prototype.supportsDrilldown=!0;r.prototype.animateDrillupTo=function(a){if(!a){var b=this,d=b.drilldownLevel;h(this.points,function(a){var b=a.dataLabel;a.graphic&&a.graphic.hide();b&&(b.hidden="hidden"===
|
18
|
+
b.attr("visibility"),b.hidden||(b.hide(),a.connector&&a.connector.hide()))});setTimeout(function(){b.points&&h(b.points,function(a,b){b=b===(d&&d.pointIndex)?"show":"fadeIn";var c="show"===b?!0:void 0,e=a.dataLabel;if(a.graphic)a.graphic[b](c);if(e&&!e.hidden&&(e[b](c),a.connector))a.connector[b](c)})},Math.max(this.chart.options.drilldown.animation.duration-50,0));this.animate=A}};r.prototype.animateDrilldown=function(a){var b=this,d=this.chart.drilldownLevels,c,e=this.chart.options.drilldown.animation,
|
19
|
+
g=this.xAxis;a||(h(d,function(a){b.options._ddSeriesId===a.lowerSeriesOptions._ddSeriesId&&(c=a.shapeArgs)}),c.x+=v(g.oldPos,g.pos)-g.pos,h(this.points,function(a){a.graphic&&a.graphic.attr(c).animate(p(a.shapeArgs,{fill:a.color||b.color}),e);a.dataLabel&&a.dataLabel.fadeIn(e)}),this.animate=null)};r.prototype.animateDrillupFrom=function(a){var b=this.chart.options.drilldown.animation,d=this.group,c=d!==this.chart.seriesGroup,e=this;h(e.trackerGroups,function(a){if(e[a])e[a].on("mouseover")});c&&
|
20
|
+
delete this.group;h(this.points,function(e){var g=e.graphic,h=a.shapeArgs,l=function(){g.destroy();d&&c&&(d=d.destroy())};g&&(delete e.graphic,b?g.animate(h,f.merge(b,{complete:l})):(g.attr(h),l()))})};D&&p(D.prototype,{supportsDrilldown:!0,animateDrillupTo:r.prototype.animateDrillupTo,animateDrillupFrom:r.prototype.animateDrillupFrom,animateDrilldown:function(a){var b=this.chart.options.drilldown.animation,d=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1].shapeArgs,c=d.start,e=(d.end-
|
21
|
+
c)/this.points.length;a||(h(this.points,function(a,k){var g=a.shapeArgs;if(a.graphic)a.graphic.attr(f.merge(d,{start:c+k*e,end:c+(k+1)*e}))[b?"animate":"attr"](g,b)}),this.animate=null)}});f.Point.prototype.doDrilldown=function(a,b,d){var c=this.series.chart,e=c.options.drilldown,g=(e.series||[]).length,f;c.ddDupes||(c.ddDupes=[]);for(;g--&&!f;)e.series[g].id===this.drilldown&&-1===F(this.drilldown,c.ddDupes)&&(f=e.series[g],c.ddDupes.push(this.drilldown));x(c,"drilldown",{point:this,seriesOptions:f,
|
22
|
+
category:b,originalEvent:d,points:void 0!==b&&this.series.xAxis.getDDPoints(b).slice(0)},function(b){var c=b.point.series&&b.point.series.chart,d=b.seriesOptions;c&&d&&(a?c.addSingleSeriesAsDrilldown(b.point,d):c.addSeriesAsDrilldown(b.point,d))})};f.Axis.prototype.drilldownCategory=function(a,b){C(this.getDDPoints(a),function(d){d&&d.series&&d.series.visible&&d.doDrilldown&&d.doDrilldown(!0,a,b)});this.chart.applyDrilldown()};f.Axis.prototype.getDDPoints=function(a){var b=[];h(this.series,function(d){var c,
|
23
|
+
e=d.xData,f=d.points;for(c=0;c<e.length;c++)if(e[c]===a&&d.options.data[c]&&d.options.data[c].drilldown){b.push(f?f[c]:!0);break}});return b};E.prototype.drillable=function(){var a=this.pos,b=this.label,d=this.axis,c="xAxis"===d.coll&&d.getDDPoints,e=c&&d.getDDPoints(a);c&&(b&&e.length?(b.drillable=!0,b.addClass("highcharts-drilldown-axis-label").on("click",function(b){d.drilldownCategory(a,b)})):b&&b.drillable&&(b.on("click",null),b.removeClass("highcharts-drilldown-axis-label")))};u(E.prototype,
|
24
|
+
"addLabel",function(a){a.call(this);this.drillable()});u(f.Point.prototype,"init",function(a,b,d,c){var e=a.call(this,b,d,c);c=(a=b.xAxis)&&a.ticks[c];e.drilldown&&f.addEvent(e,"click",function(a){b.xAxis&&!1===b.chart.options.drilldown.allowPointDrilldown?b.xAxis.drilldownCategory(e.x,a):e.doDrilldown(void 0,void 0,a)});c&&c.drillable();return e});u(f.Series.prototype,"drawDataLabels",function(a){var b=this.chart.options.drilldown.activeDataLabelStyle,d=this.chart.renderer;a.call(this);h(this.points,
|
25
|
+
function(a){a.drilldown&&a.dataLabel&&("contrast"===b.color&&d.getContrast(a.color||this.color),a.dataLabel.addClass("highcharts-drilldown-data-label"))},this)});var I=function(a){a.call(this);h(this.points,function(a){a.drilldown&&a.graphic&&a.graphic.addClass("highcharts-drilldown-point")})};C(w,function(a){a.prototype.supportsDrilldown&&u(a.prototype,"drawTracker",I)})})(n)});
|
@@ -0,0 +1,8 @@
|
|
1
|
+
{
|
2
|
+
"version":3,
|
3
|
+
"file":"",
|
4
|
+
"lineCount":25,
|
5
|
+
"mappings":"A;;;;;;;;AASC,SAAQ,CAACA,CAAD,CAAU,CACO,QAAtB,GAAI,MAAOC,OAAX,EAAkCA,MAAAC,QAAlC,CACID,MAAAC,QADJ,CACqBF,CADrB,CAGIA,CAAA,CAAQG,UAAR,CAJW,CAAlB,CAAA,CAMC,QAAQ,CAACA,CAAD,CAAa,CAClB,SAAQ,CAACC,CAAD,CAAI,CAkCTC,QAASA,EAAW,CAACC,CAAD,CAAOC,CAAP,CAAWC,CAAX,CAAgB,CAAA,IAG5BC,CAICF,EAAAG,KAAAC,OAAL,EAAwBL,CAAAI,KAAAC,OAAxB,EAKIL,CAGA,CAHOA,CAAAI,KAGP,CAFAH,CAEA,CAFKA,CAAAG,KAEL,CADAD,CACA,CADsB,CACtB,GADYF,CAAA,CAAG,CAAH,CACZ,EADuC,CACvC,GAD2BD,CAAA,CAAK,CAAL,CAC3B,CAAAM,CAAA,EAAOH,CAAA,CAAW,OAAX,CAAqB,MAA5B,EACII,IAAAC,MAAA,CAAWP,CAAA,CAAG,CAAH,CAAX,EAAoBD,CAAA,CAAK,CAAL,CAApB,CAA8BC,CAAA,CAAG,CAAH,CAA9B,GAAwC,CAAxC,CAA4CC,CAA5C,EADJ,CACwD,GADxD,CAEIK,IAAAC,MAAA,CAAWP,CAAA,CAAG,CAAH,CAAX,EAAoBD,CAAA,CAAK,CAAL,CAApB,CAA8BC,CAAA,CAAG,CAAH,CAA9B,GAAwC,CAAxC,CAA4CC,CAA5C,EAFJ,CAEwD,GAFxD,CAGIK,IAAAC,MAAA,CAAWP,CAAA,CAAG,CAAH,CAAX,EAAoBD,CAAA,CAAK,CAAL,CAApB,CAA8BC,CAAA,CAAG,CAAH,CAA9B,GAAwC,CAAxC,CAA4CC,CAA5C,EAHJ,EAIKC,CAAA,CAAY,GAAZ,EAAmBF,CAAA,CAAG,CAAH,CAAnB,EAA4BD,CAAA,CAAK,CAAL,CAA5B,CAAsCC,CAAA,CAAG,CAAH,CAAtC,GAAgD,CAAhD,CAAoDC,CAApD,GAA6D,EAJlE,EAIwE,GAZ5E,EACII,CADJ,CACUL,CAAAQ,MADV,EACsB,MAatB,OAAOH,EArByB,CAlC3B,IAULI,EAAOZ,CAAAY,KAVF,CAWLC,EAAQb,CAAAa,MAXH,CAYLC,EAAiBd,CAAAc,eAZZ,CAaLC,EAAOf,CAAAe,KAbF,CAcLC,EAAShB,CAAAgB,OAdJ,CAeLC,EAASjB,CAAAiB,OAfJ,CAgBLC,EAAalB,CAAAkB,WAhBR,CAiBLC,EAAOnB,CAAAmB,KAjBF;AAkBLC,EAAOpB,CAAAoB,KAlBF,CAmBLC,EAAQrB,CAAAqB,MAnBH,CAoBLC,EAActB,CAAAsB,YApBT,CAqBLC,EAAYD,CAAAE,IArBP,CAsBLC,EAAeH,CAAAI,OAtBV,CAuBLC,EAAO3B,CAAA2B,KAvBF,CAwBLC,EAAY5B,CAAA4B,UAxBP,CAyBLC,EAAU7B,CAAA6B,QAzBL,CA0BLC,EAAa,CAkCjBf,EAAA,CAAK,CAAC,MAAD,CAAS,QAAT,CAAL,CAAyB,QAAQ,CAACgB,CAAD,CAAO,CACpC/B,CAAAgC,GAAAC,UAAA,CAAeF,CAAf,CAAsB,QAAtB,CAAA,CAAkC,QAAQ,EAAG,CACzC,IAAAG,KAAAC,KAAA,CACIJ,CADJ,CAEI9B,CAAA,CAAYY,CAAA,CAAM,IAAAuB,MAAN,CAAZ,CAA+BvB,CAAA,CAAM,IAAAwB,IAAN,CAA/B,CAAgD,IAAAjC,IAAhD,CAFJ,CAGI,IAHJ,CAII,CAAA,CAJJ,CADyC,CADT,CAAxC,CAYAY,EAAA,CAAOF,CAAAwB,KAAP,CAA4B,CACxBC,YAAa,8BADW,CAA5B,CAGAzB,EAAA0B,UAAA,CAA2B,CAEvBC,UAAW,CACPC,SAAU,GADH,CAFY,CAKvBC,cAAe,CACXC,SAAU,CACNC,MAAO,OADD,CAENC,EAAI,GAFE,CAGNC,EAAG,EAHG,CADC,CALQ,CAmB3B/C,EAAAgD,YAAAf,UAAAgB,QAAAhB,UAAAiB,OAAA,CAAmDC,QAAQ,CAACV,CAAD,CAAY,CACnE,IAAAN,KAAA,CACU,CACFiB,QAAS,EADP,CAEFC,WAAY,SAFV,CADV,CAAAC,QAAA,CAKa,CACLF,QAASjC,CAAA,CAAK,IAAAoC,WAAL;AAAsB,CAAtB,CADJ,CALb,CAOOd,CAPP,EAOoB,CACZC,SAAU,GADE,CAPpB,CADmE,CA+BvErB,EAAAY,UAAAuB,qBAAA,CAAuCC,QAAQ,CAACC,CAAD,CAAQC,CAAR,CAAiB,CAC5D,IAAAC,2BAAA,CAAgCF,CAAhC,CAAuCC,CAAvC,CACA,KAAAE,eAAA,EAF4D,CAIhExC,EAAAY,UAAA2B,2BAAA,CAA6CE,QAAQ,CAACJ,CAAD,CAAQK,CAAR,CAAmB,CAAA,IAChEC,EAAYN,CAAAO,OADoD,CAEhEC,EAAQF,CAAAE,MAFwD,CAGhEC,EAAQH,CAAAG,MAHwD,CAKhEC,CALgE,CAMhEC,EAAc,EANkD,CAOhEC,EAAqB,EAP2C,CAShEC,CATgE,CAUhEC,CAVgE,CAWhEC,CAIJA,EAAA,CAAY,CACRC,WAAYvD,CAAA,CAAKuC,CAAAgB,WAAL,CAAuBV,CAAAU,WAAvB,CADJ,CAKP,KAAAC,gBAAL,GACI,IAAAA,gBADJ,CAC2B,EAD3B,CAIAJ,EAAA,CAAcP,CAAAL,QAAAiB,aAAd,EAAgD,CAIhD,EADAJ,CACA,CADO,IAAAG,gBAAA,CAAqB,IAAAA,gBAAApE,OAArB,CAAmD,CAAnD,CACP,GAAYiE,CAAAD,YAAZ,GAAiCA,CAAjC,GACIC,CADJ,CACWK,IAAAA,EADX,CAIAd,EAAA,CAAY/C,CAAA,CAAOA,CAAA,CAAO,CACtB8D,YAAahD,CAAA,EADS,CAAP,CAEhB2C,CAFgB,CAAP,CAEGV,CAFH,CAGZK,EAAA,CAAavC,CAAA,CAAQ6B,CAAR,CAAeM,CAAAe,OAAf,CAGbhE,EAAA,CAAKiD,CAAAgB,MAAAf,OAAL;AAA6B,QAAQ,CAACA,CAAD,CAAS,CACtCA,CAAAC,MAAJ,GAAqBA,CAArB,EAA+BD,CAAAgB,WAA/B,GACIhB,CAAAN,QAAAmB,YAIA,CAJ6Bb,CAAAN,QAAAmB,YAI7B,EAJ2DhD,CAAA,EAI3D,CAHAmC,CAAAN,QAAAuB,YAGA,CAH6BjB,CAAAkB,YAAAD,YAG7B,CAFAjB,CAAAN,QAAAiB,aAEA,CAF8BX,CAAAN,QAAAiB,aAE9B,EAF6DL,CAE7D,CAAIC,CAAJ,EACIH,CACA,CADcG,CAAAH,YACd,CAAAC,CAAA,CAAqBE,CAAAF,mBAFzB,GAIID,CAAAe,KAAA,CAAiBnB,CAAjB,CACA,CAAAK,CAAAc,KAAA,CAAwBnB,CAAAN,QAAxB,CALJ,CALJ,CAD0C,CAA9C,CAiBA0B,EAAA,CAAQrE,CAAA,CAAO,CACXuD,YAAaA,CADF,CAEXe,cAAetB,CAAAL,QAFJ,CAGXW,mBAAoBA,CAHT,CAIXD,YAAaA,CAJF,CAKXkB,UAAW7B,CAAA6B,UALA,CAMXC,KAAM9B,CAAA+B,QAAA,CAAgB/B,CAAA+B,QAAAC,QAAA,EAAhB,CAA0C,EANrC,CAOX7E,MAAO6C,CAAAiC,OAAA,CAAeC,CAAA,IAAI5F,CAAA6F,MAAJ,CAAYhF,CAAZ,CAAA+E,YAAA,CAA8B,CAA9B,CAAAE,IAAA,EAAf,CAAwDjF,CAPpD,CAQXkF,mBAAoBhC,CART,CASXiC,aAAchC,CAAAL,QAAAsC,KAAA,CAAuB7B,CAAvB,CATH;AAUXA,WAAYA,CAVD,CAWX8B,YAAa,CACTC,KAAMjC,CAANiC,EAAejC,CAAAkC,QADN,CAETC,KAAMnC,CAANmC,EAAenC,CAAAoC,QAFN,CAGTC,KAAMpC,CAANoC,EAAepC,CAAAiC,QAHN,CAITI,KAAMrC,CAANqC,EAAerC,CAAAmC,QAJN,CAXF,CAAP,CAiBL7B,CAjBK,CAoBR,KAAAE,gBAAAS,KAAA,CAA0BC,CAA1B,CAEAoB,EAAA,CAAYpB,CAAAqB,YAAZ,CAAgC,IAAAC,UAAA,CAAe5C,CAAf,CAA0B,CAAA,CAA1B,CAChC0C,EAAA9C,QAAAiB,aAAA,CAAiCL,CAAjC,CAA+C,CAC3CL,EAAJ,GACIA,CAAA0C,OAEA,CAFe1C,CAAA9D,IAEf,CADA8D,CAAAkC,QACA,CADgBlC,CAAAoC,QAChB,CADgC,IAChC,CAAAnC,CAAAiC,QAAA,CAAgBjC,CAAAmC,QAAhB,CAAgC,IAHpC,CAOItC,EAAA6C,KAAJ,GAAuBJ,CAAAI,KAAvB,GACIJ,CAAAnD,QACA,CADoBmD,CAAAK,iBACpB,EADkDlG,CAClD,CAAA6F,CAAA9C,QAAAlB,UAAA,CAA8B,CAAA,CAFlC,CAtFoE,CA4FxEpB,EAAAY,UAAA4B,eAAA,CAAiCkD,QAAQ,EAAG,CAAA,IACpCpC,EAAkB,IAAAA,gBADkB,CAEpCqC,CAEArC,EAAJ,EAAgD,CAAhD,CAAuBA,CAAApE,OAAvB,GACIyG,CACA,CADgBrC,CAAA,CAAgBA,CAAApE,OAAhB,CAAyC,CAAzC,CAAAgE,YAChB,CAAAxD,CAAA,CAAK,IAAA4D,gBAAL,CAA2B,QAAQ,CAACU,CAAD,CAAQ,CACnCA,CAAAd,YAAJ;AAA0ByC,CAA1B,EACIjG,CAAA,CAAKsE,CAAAhB,YAAL,CAAwB,QAAQ,CAACJ,CAAD,CAAS,CACjCA,CAAAN,QAAJ,EAAsBM,CAAAN,QAAAiB,aAAtB,GAAsDoC,CAAtD,EACI/C,CAAAgD,OAAA,CAAc,CAAA,CAAd,CAFiC,CAAzC,CAFmC,CAA3C,CAFJ,CAaA,KAAAC,OAAA,EACA,KAAAC,kBAAA,EAlBwC,CAqB5C9F,EAAAY,UAAAmF,qBAAA,CAAuCC,QAAQ,EAAG,CAAA,IAC1C1C,EAAkB,IAAAA,gBAEtB,IAAIA,CAAJ,EAAgD,CAAhD,CAAuBA,CAAApE,OAAvB,CAGI,MAFA+G,EAEO,CAFK3C,CAAA,CAAgBA,CAAApE,OAAhB,CAAyC,CAAzC,CAEL,CADP+G,CAAArD,OACO,CADYqD,CAAAhC,cACZ,CAAArE,CAAA,CAAO,IAAA0C,QAAArB,KAAAC,YAAP,CAAsC+E,CAAtC,CANmC,CAWlDjG,EAAAY,UAAAkF,kBAAA,CAAoCI,QAAQ,EAAG,CAAA,IACvCvC,EAAQ,IAD+B,CAEvCwC,EAAW,IAAAJ,qBAAA,EAF4B,CAGvCK,EAAgBzC,CAAArB,QAAAnB,UAAAG,cAHuB,CAIvCR,CAJuC,CAKvCuF,CAGC,KAAA/E,cAAL,CAuBI,IAAAA,cAAAR,KAAA,CAAwB,CAChBwF,KAAMH,CADU,CAAxB,CAAA3E,MAAA,EAvBJ,EAEI6E,CAEA,EAHAvF,CAGA,CAHOsF,CAAAG,MAGP,GAFiBzF,CAAAuF,OAEjB;AAAA,IAAA/E,cAAA,CAAqB,IAAAkF,SAAAC,OAAA,CACbN,CADa,CAEb,IAFa,CAGb,IAHa,CAIb,QAAQ,EAAG,CACPxC,CAAA+C,QAAA,EADO,CAJE,CAOb5F,CAPa,CAQbuF,CARa,EAQHA,CAAAM,MARG,CASbN,CATa,EASHA,CAAAO,OATG,CAAAC,SAAA,CAWP,2BAXO,CAAA/F,KAAA,CAYX,CACFU,MAAO4E,CAAA7E,SAAAC,MADL,CAEFsF,OAAQ,CAFN,CAZW,CAAAC,IAAA,EAAAvF,MAAA,CAiBV4E,CAAA7E,SAjBU,CAiBc,CAAA,CAjBd,CAiBqB6E,CAAAY,WAjBrB,EAiBiD,SAjBjD,CAJzB,CAR2C,CA6C/ChH,EAAAY,UAAA8F,QAAA,CAA0BO,QAAQ,EAAG,CA4BjC,IA5BiC,IAC7BtD,EAAQ,IADqB,CAE7BL,EAAkBK,CAAAL,gBAFW,CAG7BJ,EAAcI,CAAA,CAAgBA,CAAApE,OAAhB,CAAyC,CAAzC,CAAAgE,YAHe,CAI7BgE,EAAI5D,CAAApE,OAJyB,CAK7BiI,EAAcxD,CAAAf,OALe,CAM7BwE,CAN6B,CAO7BpD,CAP6B,CAQ7BrB,CAR6B,CAS7ByC,CAT6B,CAW7BE,EAAYA,QAAQ,CAACrB,CAAD,CAAgB,CAChC,IAAIoD,CACJ3H,EAAA,CAAKyH,CAAL,CAAkB,QAAQ,CAACvE,CAAD,CAAS,CAC3BA,CAAAN,QAAAmB,YAAJ,GAAmCQ,CAAAR,YAAnC,GACI4D,CADJ,CACkBzE,CADlB,CAD+B,CAAnC,CAMAyE,EAAA,CAAcA,CAAd,EAA6B1D,CAAA2B,UAAA,CAAgBrB,CAAhB,CAA+B,CAAA,CAA/B,CACzBoD,EAAA7B,KAAJ,GAAyB7C,CAAA6C,KAAzB,EAA2C6B,CAAAC,iBAA3C,GACID,CAAApF,QADJ;AAC0BoF,CAAAC,iBAD1B,CAGIrD,EAAJ,GAAsBD,CAAAC,cAAtB,GACImB,CADJ,CACgBiC,CADhB,CAZgC,CAiBxC,CAAOH,CAAA,EAAP,CAAA,CAGI,GADAlD,CACI,CADIV,CAAA,CAAgB4D,CAAhB,CACJ,CAAAlD,CAAAd,YAAA,GAAsBA,CAA1B,CAAuC,CACnCI,CAAAiE,IAAA,EAGA5E,EAAA,CAAYqB,CAAAqB,YACZ,IAAK1B,CAAAhB,CAAAgB,MAAL,CAEI,IADAyD,CACA,CADUD,CAAAjI,OACV,CAAOkI,CAAA,EAAP,CAAA,CACI,GAAID,CAAA,CAAYC,CAAZ,CAAA9E,QAAAkF,GAAJ,GAAwCxD,CAAAU,mBAAA8C,GAAxC,EACIL,CAAA,CAAYC,CAAZ,CAAA9E,QAAAiB,aADJ,GACkDL,CADlD,CACgE,CADhE,CACmE,CAC/DP,CAAA,CAAYwE,CAAA,CAAYC,CAAZ,CACZ,MAF+D,CAM3EzE,CAAA8E,MAAA,CAAkB,EAElB/H,EAAA,CAAKsE,CAAAf,mBAAL,CAA+BqC,CAA/B,CAEA/E,EAAA,CAAUoD,CAAV,CAAiB,SAAjB,CAA4B,CACxBM,cAAeD,CAAAC,cADS,CAA5B,CAIImB,EAAAI,KAAJ,GAAuB7C,CAAA6C,KAAvB,GACIJ,CAAAsC,eAGA,CAH2B1D,CAG3B,CAFAoB,CAAA9C,QAAAlB,UAEA,CAF8BuC,CAAArB,QAAAnB,UAAAC,UAE9B,CAAIuB,CAAAgF,mBAAJ,EAAoChF,CAAAgB,MAApC,EACIhB,CAAAgF,mBAAA,CAA6B3D,CAA7B,CALR,CAQAoB,EAAA9C,QAAAiB,aAAA,CAAiCL,CAEjCP,EAAAiD,OAAA,CAAiB,CAAA,CAAjB,CAGIR,EAAAvC,MAAJ;CACIgC,CAEA,CAFcb,CAAAa,YAEd,CADAO,CAAAvC,MAAA+E,YAAA,CAA4B/C,CAAAC,KAA5B,CAA8CD,CAAAG,KAA9C,CAAgE,CAAA,CAAhE,CACA,CAAAI,CAAAtC,MAAA8E,YAAA,CAA4B/C,CAAAK,KAA5B,CAA8CL,CAAAM,KAA9C,CAAgE,CAAA,CAAhE,CAHJ,CApCmC,CA6C3C5E,CAAA,CAAUoD,CAAV,CAAiB,YAAjB,CAEA,KAAAkC,OAAA,EAEoC,EAApC,GAAI,IAAAvC,gBAAApE,OAAJ,CACI,IAAAoC,cADJ,CACyB,IAAAA,cAAAuG,QAAA,EADzB,CAGI,IAAAvG,cAAAR,KAAA,CAAwB,CAChBwF,KAAM,IAAAP,qBAAA,EADU,CAAxB,CAAAvE,MAAA,EAMJ,KAAAsG,QAAA5I,OAAA,CAAsB,EAzFW,CA6FrCkB,EAAAQ,UAAAmH,kBAAA,CAA2C,CAAA,CAM3C3H,EAAAQ,UAAA0G,iBAAA,CAA0CU,QAAQ,CAACC,CAAD,CAAO,CACrD,GAAKA,CAAAA,CAAL,CAAW,CAAA,IACH7C,EAAY,IADT,CAEHpB,EAAQoB,CAAAsC,eAGZhI,EAAA,CAAK,IAAAgE,OAAL,CAAkB,QAAQ,CAACrB,CAAD,CAAQ,CAC9B,IAAI6F,EAAY7F,CAAA6F,UAEZ7F,EAAA+B,QAAJ,EACI/B,CAAA+B,QAAA+D,KAAA,EAGAD,EAAJ,GAGIA,CAAAE,OAEA,CAFoD,QAEpD;AAFmBF,CAAApH,KAAA,CAAe,YAAf,CAEnB,CAAKoH,CAAAE,OAAL,GACIF,CAAAC,KAAA,EACA,CAAI9F,CAAAgG,UAAJ,EACIhG,CAAAgG,UAAAF,KAAA,EAHR,CALJ,CAP8B,CAAlC,CAuBAG,WAAA,CAAW,QAAQ,EAAG,CACdlD,CAAA1B,OAAJ,EACIhE,CAAA,CAAK0F,CAAA1B,OAAL,CAAuB,QAAQ,CAACrB,CAAD,CAAQ6E,CAAR,CAAW,CAElCqB,CAAAA,CACArB,CAAA,IAAOlD,CAAP,EAAgBA,CAAAjB,WAAhB,EAAoC,MAApC,CAA6C,QAHX,KAIlCyF,EAAmB,MAAT,GAAAD,CAAA,CAAkB,CAAA,CAAlB,CAAyB/E,IAAAA,EAJD,CAKlC0E,EAAY7F,CAAA6F,UAGhB,IAAI7F,CAAA+B,QAAJ,CACI/B,CAAA+B,QAAA,CAAcmE,CAAd,CAAA,CAAoBC,CAApB,CAGJ,IAAIN,CAAJ,EAAkBE,CAAAF,CAAAE,OAAlB,GACIF,CAAA,CAAUK,CAAV,CAAA,CAAgBC,CAAhB,CACIH,CAAAhG,CAAAgG,UAFR,EAGQhG,CAAAgG,UAAA,CAAgBE,CAAhB,CAAA,CAAsBC,CAAtB,CAf8B,CAA1C,CAFc,CAAtB,CAsBGpJ,IAAAqJ,IAAA,CAAS,IAAA9E,MAAArB,QAAAnB,UAAAC,UAAAC,SAAT,CAA2D,EAA3D,CAA+D,CAA/D,CAtBH,CAyBA,KAAAY,QAAA,CAAe1C,CArDR,CAD0C,CA2DzDa,EAAAQ,UAAA6E,iBAAA,CAA0CiD,QAAQ,CAACT,CAAD,CAAO,CAAA,IACjDrF,EAAS,IADwC,CAEjDU,EAAkB,IAAAK,MAAAL,gBAF+B,CAGjDqF,CAHiD,CAIjDC,EAAmB,IAAAjF,MAAArB,QAAAnB,UAAAC,UAJ8B;AAKjDyB,EAAQ,IAAAA,MAEPoF,EAAL,GACIvI,CAAA,CAAK4D,CAAL,CAAsB,QAAQ,CAACU,CAAD,CAAQ,CAC9BpB,CAAAN,QAAAmB,YAAJ,GAAmCO,CAAAU,mBAAAjB,YAAnC,GACIkF,CADJ,CACkB3E,CAAAE,UADlB,CADkC,CAAtC,CA4BA,CArBAyE,CAAAlH,EAqBA,EArBkB3B,CAAA,CAAK+C,CAAA0C,OAAL,CAAmB1C,CAAA9D,IAAnB,CAqBlB,CArBkD8D,CAAA9D,IAqBlD,CAnBAW,CAAA,CAAK,IAAAgE,OAAL,CAAkB,QAAQ,CAACrB,CAAD,CAAQ,CAK1BA,CAAA+B,QAAJ,EACI/B,CAAA+B,QAAAtD,KAAA,CACU6H,CADV,CAAA1G,QAAA,CAGQtC,CAAA,CAAO0C,CAAA6B,UAAP,CAAwB,CACpB2E,KAAMxG,CAAA7C,MAANqJ,EAAqBjG,CAAApD,MADD,CAAxB,CAHR,CAMQoJ,CANR,CASAvG,EAAA6F,UAAJ,EACI7F,CAAA6F,UAAArG,OAAA,CAAuB+G,CAAvB,CAhB0B,CAAlC,CAmBA,CAAA,IAAA3G,QAAA,CAAe,IA7BnB,CAPqD,CA6CzD7B,EAAAQ,UAAA+G,mBAAA,CAA4CmB,QAAQ,CAAC9E,CAAD,CAAQ,CAAA,IACpD4E,EAAmB,IAAAjF,MAAArB,QAAAnB,UAAAC,UADiC,CAEpD2H,EAAQ,IAAAA,MAF4C,CAKpDC,EAAcD,CAAdC,GAAwB,IAAArF,MAAAsF,YAL4B,CAMpDrG,EAAS,IAGblD,EAAA,CAAKkD,CAAAsG,cAAL,CAA2B,QAAQ,CAACC,CAAD,CAAM,CACrC,GAAIvG,CAAA,CAAOuG,CAAP,CAAJ,CACIvG,CAAA,CAAOuG,CAAP,CAAAC,GAAA,CAAe,WAAf,CAFiC,CAAzC,CAMIJ,EAAJ;AACI,OAAO,IAAAD,MAGXrJ,EAAA,CAAK,IAAAgE,OAAL,CAAkB,QAAQ,CAACrB,CAAD,CAAQ,CAAA,IAC1B+B,EAAU/B,CAAA+B,QADgB,CAE1BiF,EAAYrF,CAAAE,UAFc,CAG1BoF,EAAWA,QAAQ,EAAG,CAClBlF,CAAAyD,QAAA,EACIkB,EAAJ,EAAaC,CAAb,GACID,CADJ,CACYA,CAAAlB,QAAA,EADZ,CAFkB,CAOtBzD,EAAJ,GAEI,OAAO/B,CAAA+B,QAIP,CAAIwE,CAAJ,CACIxE,CAAAnC,QAAA,CACIoH,CADJ,CAEI1K,CAAA4K,MAAA,CAAQX,CAAR,CAA0B,CACtBU,SAAUA,CADY,CAA1B,CAFJ,CADJ,EAQIlF,CAAAtD,KAAA,CAAauI,CAAb,CACA,CAAAC,CAAA,EATJ,CANJ,CAV8B,CAAlC,CAnBwD,CAkDxDpJ,EAAJ,EACIP,CAAA,CAAOO,CAAAU,UAAP,CAA4B,CACxBmH,kBAAmB,CAAA,CADK,CAExBT,iBAAkBlH,CAAAQ,UAAA0G,iBAFM,CAGxBK,mBAAoBvH,CAAAQ,UAAA+G,mBAHI,CAKxBlC,iBAAkBA,QAAQ,CAACwC,CAAD,CAAO,CAAA,IAEzBW,EAAmB,IAAAjF,MAAArB,QAAAnB,UAAAC,UAFM,CAGzBuH,EAFQ,IAAAhF,MAAAL,gBAAAU,CAA2B,IAAAL,MAAAL,gBAAApE,OAA3B8E,CAA+D,CAA/DA,CAEME,UAHW,CAIzBnD,EAAQ4H,CAAA5H,MAJiB,CAMzByI,GADQb,CAAA3H,IACRwI;AAD0BzI,CAC1ByI,EAAqB,IAAA9F,OAAAxE,OAEpB+I,EAAL,GACIvI,CAAA,CAAK,IAAAgE,OAAL,CAAkB,QAAQ,CAACrB,CAAD,CAAQ6E,CAAR,CAAW,CACjC,IAAImC,EAAYhH,CAAA6B,UAIhB,IAAI7B,CAAA+B,QAAJ,CACI/B,CAAA+B,QAAAtD,KAAA,CACUnC,CAAA4K,MAAA,CAAQZ,CAAR,CAAqB,CACvB5H,MAAOA,CAAPA,CAAemG,CAAfnG,CAAmByI,CADI,CAEvBxI,IAAKD,CAALC,EAAckG,CAAdlG,CAAkB,CAAlBA,EAAuBwI,CAFA,CAArB,CADV,CAAA,CAIQZ,CAAA,CAAmB,SAAnB,CAA+B,MAJvC,CAAA,CAKQS,CALR,CAMQT,CANR,CAN6B,CAArC,CAgBA,CAAA,IAAA3G,QAAA,CAAe,IAjBnB,CAR6B,CALT,CAA5B,CAoCJtD,EAAA8K,MAAA7I,UAAA8I,YAAA,CAAgCC,QAAQ,CAACC,CAAD,CAAcC,CAAd,CAAwBC,CAAxB,CAAuC,CAAA,IAEvEnG,EADS,IAAAf,OACDe,MAF+D,CAGvExC,EAAYwC,CAAArB,QAAAnB,UAH2D,CAIvE+F,EAAIhI,CAACiC,CAAAyB,OAAD1D,EAAqB,EAArBA,QAJmE,CAKvE+E,CAECN,EAAAmE,QAAL,GACInE,CAAAmE,QADJ,CACoB,EADpB,CAIA,KAAA,CAAOZ,CAAA,EAAP,EAAejD,CAAAA,CAAf,CAAA,CACQ9C,CAAAyB,OAAA,CAAiBsE,CAAjB,CAAAM,GAAJ,GAA+B,IAAArG,UAA/B,EAA6F,EAA7F,GAAiDX,CAAA,CAAQ,IAAAW,UAAR,CAAwBwC,CAAAmE,QAAxB,CAAjD,GACI7D,CACA,CADgB9C,CAAAyB,OAAA,CAAiBsE,CAAjB,CAChB,CAAAvD,CAAAmE,QAAA/D,KAAA,CAAmB,IAAA5C,UAAnB,CAFJ,CAQJZ,EAAA,CAAUoD,CAAV,CAAiB,WAAjB,CAA8B,CAC1BtB,MAAO,IADmB,CAE1B4B,cAAeA,CAFW;AAG1B4F,SAAUA,CAHgB,CAI1BC,cAAeA,CAJW,CAK1BpG,OAAqBF,IAAAA,EAArBE,GAAQmG,CAARnG,EAAkC,IAAAd,OAAAC,MAAAkH,YAAA,CAA8BF,CAA9B,CAAAG,MAAA,CAA8C,CAA9C,CALR,CAA9B,CAMG,QAAQ,CAACC,CAAD,CAAI,CAAA,IACPtG,EAAQsG,CAAA5H,MAAAO,OAARe,EAA0BsG,CAAA5H,MAAAO,OAAAe,MADnB,CAEPM,EAAgBgG,CAAAhG,cAChBN,EAAJ,EAAaM,CAAb,GACQ2F,CAAJ,CACIjG,CAAApB,2BAAA,CAAiC0H,CAAA5H,MAAjC,CAA0C4B,CAA1C,CADJ,CAGIN,CAAAxB,qBAAA,CAA2B8H,CAAA5H,MAA3B,CAAoC4B,CAApC,CAJR,CAHW,CANf,CApB2E,CA4C/EtF,EAAAuL,KAAAtJ,UAAAuJ,kBAAA,CAAqCC,QAAQ,CAAC3I,CAAD,CAAIwI,CAAJ,CAAO,CAChDpK,CAAA,CAAW,IAAAkK,YAAA,CAAiBtI,CAAjB,CAAX,CAAgC,QAAQ,CAACY,CAAD,CAAQ,CACxCA,CAAJ,EAAaA,CAAAO,OAAb,EAA6BP,CAAAO,OAAAyH,QAA7B,EAAqDhI,CAAAqH,YAArD,EACIrH,CAAAqH,YAAA,CAAkB,CAAA,CAAlB,CAAwBjI,CAAxB,CAA2BwI,CAA3B,CAFwC,CAAhD,CAKA,KAAAtG,MAAAnB,eAAA,EANgD,CAYpD7D,EAAAuL,KAAAtJ,UAAAmJ,YAAA,CAA+BO,QAAQ,CAAC7I,CAAD,CAAI,CACvC,IAAItC,EAAM,EACVO,EAAA,CAAK,IAAAkD,OAAL,CAAkB,QAAQ,CAACA,CAAD,CAAS,CAAA,IAC3BsE,CAD2B;AAE3BO,EAAQ7E,CAAA6E,MAFmB,CAG3B/D,EAASd,CAAAc,OAEb,KAAKwD,CAAL,CAAS,CAAT,CAAYA,CAAZ,CAAgBO,CAAAvI,OAAhB,CAA8BgI,CAAA,EAA9B,CACI,GAAIO,CAAA,CAAMP,CAAN,CAAJ,GAAiBzF,CAAjB,EAAsBmB,CAAAN,QAAAsC,KAAA,CAAoBsC,CAApB,CAAtB,EAAgDtE,CAAAN,QAAAsC,KAAA,CAAoBsC,CAApB,CAAA/F,UAAhD,CAAkF,CAC9EhC,CAAA4E,KAAA,CAASL,CAAA,CAASA,CAAA,CAAOwD,CAAP,CAAT,CAAqB,CAAA,CAA9B,CACA,MAF8E,CANvD,CAAnC,CAYA,OAAO/H,EAdgC,CAqB3CmB,EAAAM,UAAA2J,UAAA,CAA2BC,QAAQ,EAAG,CAAA,IAC9BzL,EAAM,IAAAA,IADwB,CAE9B0L,EAAQ,IAAAA,MAFsB,CAG9BC,EAAO,IAAAA,KAHuB,CAI9BC,EAA4B,OAA5BA,GAAcD,CAAAE,KAAdD,EAAuCD,CAAAX,YAJT,CAK9Bc,EAAYF,CAAZE,EAA2BH,CAAAX,YAAA,CAAiBhL,CAAjB,CAE3B4L,EAAJ,GACQF,CAAJ,EAAaI,CAAA3L,OAAb,EACIuL,CAAAF,UAIA,CAJkB,CAAA,CAIlB,CAAAE,CAAA5D,SAAA,CACc,iCADd,CAAAuC,GAAA,CAGQ,OAHR,CAGiB,QAAQ,CAACa,CAAD,CAAI,CACrBS,CAAAP,kBAAA,CAAuBpL,CAAvB,CAA4BkL,CAA5B,CADqB,CAH7B,CALJ,EAYWQ,CAZX,EAYoBA,CAAAF,UAZpB,GAgBIE,CAAArB,GAAA,CAAS,OAAT,CAAkB,IAAlB,CACA,CAAAqB,CAAAK,YAAA,CAAkB,iCAAlB,CAjBJ,CADJ,CAPkC,CAiCtC/K,EAAA,CAAKO,CAAAM,UAAL;AAAqB,UAArB,CAAiC,QAAQ,CAACmK,CAAD,CAAU,CAC/CA,CAAAC,KAAA,CAAa,IAAb,CACA,KAAAT,UAAA,EAF+C,CAAnD,CAUAxK,EAAA,CAAKpB,CAAA8K,MAAA7I,UAAL,CAAwB,MAAxB,CAAgC,QAAQ,CAACmK,CAAD,CAAUnI,CAAV,CAAkBN,CAAlB,CAA2Bb,CAA3B,CAA8B,CAAA,IAC9DY,EAAQ0I,CAAAC,KAAA,CAAa,IAAb,CAAmBpI,CAAnB,CAA2BN,CAA3B,CAAoCb,CAApC,CAERwJ,EAAAA,EADApI,CACAoI,CADQrI,CAAAC,MACRoI,GAAgBpI,CAAAqI,MAAA,CAAYzJ,CAAZ,CAEhBY,EAAAlB,UAAJ,EAGIxC,CAAAwM,SAAA,CAAW9I,CAAX,CAAkB,OAAlB,CAA2B,QAAQ,CAAC4H,CAAD,CAAI,CAC/BrH,CAAAC,MAAJ,EAA2E,CAAA,CAA3E,GAAoBD,CAAAe,MAAArB,QAAAnB,UAAAiK,oBAApB,CACIxI,CAAAC,MAAAsH,kBAAA,CAA+B9H,CAAAZ,EAA/B,CAAwCwI,CAAxC,CADJ,CAGI5H,CAAAqH,YAAA,CAAkBlG,IAAAA,EAAlB,CAA6BA,IAAAA,EAA7B,CAAwCyG,CAAxC,CAJ+B,CAAvC,CAmBAgB,EAAJ,EACIA,CAAAV,UAAA,EAGJ,OAAOlI,EA/B2D,CAAtE,CAkCAtC,EAAA,CAAKpB,CAAA0M,OAAAzK,UAAL,CAAyB,gBAAzB,CAA2C,QAAQ,CAACmK,CAAD,CAAU,CAAA,IACrDO,EAAM,IAAA3H,MAAArB,QAAAnB,UAAAoK,qBAD+C,CAErD/E,EAAW,IAAA7C,MAAA6C,SAEfuE,EAAAC,KAAA,CAAa,IAAb,CAEAtL,EAAA,CAAK,IAAAgE,OAAL;AAAkB,QAAQ,CAACrB,CAAD,CAAQ,CAE1BA,CAAAlB,UAAJ,EAAuBkB,CAAA6F,UAAvB,GACsB,UAGlB,GAHIoD,CAAA9L,MAGJ,EAFqBgH,CAAAgF,YAAA,CAAqBnJ,CAAA7C,MAArB,EAAoC,IAAAA,MAApC,CAErB,CAAA6C,CAAA6F,UAAArB,SAAA,CACc,iCADd,CAJJ,CAF8B,CAAlC,CAWG,IAXH,CANyD,CAA7D,CAqBA,KAAI4E,EAAqBA,QAAQ,CAACV,CAAD,CAAU,CACvCA,CAAAC,KAAA,CAAa,IAAb,CACAtL,EAAA,CAAK,IAAAgE,OAAL,CAAkB,QAAQ,CAACrB,CAAD,CAAQ,CAC1BA,CAAAlB,UAAJ,EAAuBkB,CAAA+B,QAAvB,EACI/B,CAAA+B,QAAAyC,SAAA,CAAuB,4BAAvB,CAF0B,CAAlC,CAFuC,CAW3ChH,EAAA,CAAWI,CAAX,CAAwB,QAAQ,CAACyL,CAAD,CAAa,CACrCA,CAAA9K,UAAAmH,kBAAJ,EACIhI,CAAA,CAAK2L,CAAA9K,UAAL,CAA2B,aAA3B,CAA0C6K,CAA1C,CAFqC,CAA7C,CAtwBS,CAAZ,CAAA,CA4wBC/M,CA5wBD,CADkB,CANtB;",
|
6
|
+
"sources":["Input_0"],
|
7
|
+
"names":["factory","module","exports","Highcharts","H","tweenColors","from","to","pos","hasAlpha","rgba","length","ret","Math","round","input","noop","color","defaultOptions","each","extend","format","objectEach","pick","wrap","Chart","seriesTypes","PieSeries","pie","ColumnSeries","column","Tick","fireEvent","inArray","ddSeriesId","prop","Fx","prototype","elem","attr","start","end","lang","drillUpText","drilldown","animation","duration","drillUpButton","position","align","x","y","SVGRenderer","Element","fadeIn","H.SVGRenderer.prototype.Element.prototype.fadeIn","opacity","visibility","animate","newOpacity","addSeriesAsDrilldown","Chart.prototype.addSeriesAsDrilldown","point","options","addSingleSeriesAsDrilldown","applyDrilldown","Chart.prototype.addSingleSeriesAsDrilldown","ddOptions","oldSeries","series","xAxis","yAxis","pointIndex","levelSeries","levelSeriesOptions","levelNumber","last","colorProp","colorIndex","drilldownLevels","_levelNumber","undefined","_ddSeriesId","points","chart","isDrilling","_colorIndex","userOptions","push","level","seriesOptions","shapeArgs","bBox","graphic","getBBox","isNull","setOpacity","Color","get","lowerSeriesOptions","pointOptions","data","oldExtremes","xMin","userMin","xMax","userMax","yMin","yMax","newSeries","lowerSeries","addSeries","oldPos","type","animateDrilldown","Chart.prototype.applyDrilldown","levelToRemove","remove","redraw","showDrillUpButton","getDrilldownBackText","Chart.prototype.getDrilldownBackText","lastLevel","Chart.prototype.showDrillUpButton","backText","buttonOptions","states","text","theme","renderer","button","drillUp","hover","select","addClass","zIndex","add","relativeTo","Chart.prototype.drillUp","i","chartSeries","seriesI","addedSeries","animateDrillupTo","pop","id","xData","drilldownLevel","animateDrillupFrom","setExtremes","destroy","ddDupes","supportsDrilldown","ColumnSeries.prototype.animateDrillupTo","init","dataLabel","hide","hidden","connector","setTimeout","verb","inherit","max","ColumnSeries.prototype.animateDrilldown","animateFrom","animationOptions","fill","ColumnSeries.prototype.animateDrillupFrom","group","removeGroup","seriesGroup","trackerGroups","key","on","animateTo","complete","merge","startAngle","Point","doDrilldown","H.Point.prototype.doDrilldown","_holdRedraw","category","originalEvent","getDDPoints","slice","e","Axis","drilldownCategory","H.Axis.prototype.drilldownCategory","visible","H.Axis.prototype.getDDPoints","drillable","Tick.prototype.drillable","label","axis","isDrillable","coll","ddPointsX","removeClass","proceed","call","tick","ticks","addEvent","allowPointDrilldown","Series","css","activeDataLabelStyle","getContrast","drawTrackerWrapper","seriesType"]
|
8
|
+
}
|
@@ -1,717 +1,798 @@
|
|
1
1
|
/**
|
2
|
+
* @license Highcharts JS v5.0.11 (2017-05-04)
|
2
3
|
* Highcharts Drilldown module
|
3
4
|
*
|
4
5
|
* Author: Torstein Honsi
|
5
6
|
* License: www.highcharts.com/license
|
6
7
|
*
|
7
8
|
*/
|
8
|
-
|
9
|
-
(function
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
}(function
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
9
|
+
'use strict';
|
10
|
+
(function(factory) {
|
11
|
+
if (typeof module === 'object' && module.exports) {
|
12
|
+
module.exports = factory;
|
13
|
+
} else {
|
14
|
+
factory(Highcharts);
|
15
|
+
}
|
16
|
+
}(function(Highcharts) {
|
17
|
+
(function(H) {
|
18
|
+
/**
|
19
|
+
* Highcharts Drilldown module
|
20
|
+
*
|
21
|
+
* Author: Torstein Honsi
|
22
|
+
* License: www.highcharts.com/license
|
23
|
+
*
|
24
|
+
*/
|
25
|
+
|
26
|
+
|
27
|
+
var noop = H.noop,
|
28
|
+
color = H.color,
|
29
|
+
defaultOptions = H.defaultOptions,
|
30
|
+
each = H.each,
|
31
|
+
extend = H.extend,
|
32
|
+
format = H.format,
|
33
|
+
objectEach = H.objectEach,
|
34
|
+
pick = H.pick,
|
35
|
+
wrap = H.wrap,
|
36
|
+
Chart = H.Chart,
|
37
|
+
seriesTypes = H.seriesTypes,
|
38
|
+
PieSeries = seriesTypes.pie,
|
39
|
+
ColumnSeries = seriesTypes.column,
|
40
|
+
Tick = H.Tick,
|
41
|
+
fireEvent = H.fireEvent,
|
42
|
+
inArray = H.inArray,
|
43
|
+
ddSeriesId = 1;
|
44
|
+
|
45
|
+
// Utilities
|
46
|
+
/*
|
47
|
+
* Return an intermediate color between two colors, according to pos where 0
|
48
|
+
* is the from color and 1 is the to color. This method is copied from ColorAxis.js
|
49
|
+
* and should always be kept updated, until we get AMD support.
|
50
|
+
*/
|
51
|
+
function tweenColors(from, to, pos) {
|
52
|
+
// Check for has alpha, because rgba colors perform worse due to lack of
|
53
|
+
// support in WebKit.
|
54
|
+
var hasAlpha,
|
55
|
+
ret;
|
56
|
+
|
57
|
+
// Unsupported color, return to-color (#3920)
|
58
|
+
if (!to.rgba.length || !from.rgba.length) {
|
59
|
+
ret = to.input || 'none';
|
60
|
+
|
61
|
+
// Interpolate
|
62
|
+
} else {
|
63
|
+
from = from.rgba;
|
64
|
+
to = to.rgba;
|
65
|
+
hasAlpha = (to[3] !== 1 || from[3] !== 1);
|
66
|
+
ret = (hasAlpha ? 'rgba(' : 'rgb(') +
|
67
|
+
Math.round(to[0] + (from[0] - to[0]) * (1 - pos)) + ',' +
|
68
|
+
Math.round(to[1] + (from[1] - to[1]) * (1 - pos)) + ',' +
|
69
|
+
Math.round(to[2] + (from[2] - to[2]) * (1 - pos)) +
|
70
|
+
(hasAlpha ? (',' + (to[3] + (from[3] - to[3]) * (1 - pos))) : '') + ')';
|
71
|
+
}
|
72
|
+
return ret;
|
73
|
+
}
|
74
|
+
/**
|
75
|
+
* Handle animation of the color attributes directly
|
76
|
+
*/
|
77
|
+
each(['fill', 'stroke'], function(prop) {
|
78
|
+
H.Fx.prototype[prop + 'Setter'] = function() {
|
79
|
+
this.elem.attr(
|
80
|
+
prop,
|
81
|
+
tweenColors(color(this.start), color(this.end), this.pos),
|
82
|
+
null,
|
83
|
+
true
|
84
|
+
);
|
85
|
+
};
|
86
|
+
});
|
87
|
+
|
88
|
+
// Add language
|
89
|
+
extend(defaultOptions.lang, {
|
90
|
+
drillUpText: '◁ Back to {series.name}'
|
91
|
+
});
|
92
|
+
defaultOptions.drilldown = {
|
93
|
+
|
94
|
+
animation: {
|
95
|
+
duration: 500
|
96
|
+
},
|
97
|
+
drillUpButton: {
|
98
|
+
position: {
|
99
|
+
align: 'right',
|
100
|
+
x: -10,
|
101
|
+
y: 10
|
102
|
+
}
|
103
|
+
// relativeTo: 'plotBox'
|
104
|
+
// theme
|
105
|
+
}
|
106
|
+
};
|
107
|
+
|
108
|
+
/**
|
109
|
+
* A general fadeIn method
|
110
|
+
*/
|
111
|
+
H.SVGRenderer.prototype.Element.prototype.fadeIn = function(animation) {
|
112
|
+
this
|
113
|
+
.attr({
|
114
|
+
opacity: 0.1,
|
115
|
+
visibility: 'inherit'
|
116
|
+
})
|
117
|
+
.animate({
|
118
|
+
opacity: pick(this.newOpacity, 1) // newOpacity used in maps
|
119
|
+
}, animation || {
|
120
|
+
duration: 250
|
121
|
+
});
|
122
|
+
};
|
123
|
+
|
124
|
+
/**
|
125
|
+
* Add a series to the chart as drilldown from a specific point in the parent
|
126
|
+
* series. This method is used for async drilldown, when clicking a point in a
|
127
|
+
* series should result in loading and displaying a more high-resolution series.
|
128
|
+
* When not async, the setup is simpler using the {@link
|
129
|
+
* https://api.highcharts.com/highcharts/drilldown.series|drilldown.series}
|
130
|
+
* options structure.
|
131
|
+
*
|
132
|
+
* @memberOf Highcharts.Chart
|
133
|
+
* @function #addSeriesAsDrilldown
|
134
|
+
*
|
135
|
+
* @param {Highcharts.Point} point
|
136
|
+
* The point from which the drilldown will start.
|
137
|
+
* @param {SeriesOptions} options
|
138
|
+
* The series options for the new, detailed series.
|
139
|
+
*
|
140
|
+
* @sample highcharts/drilldown/async/ Async drilldown
|
141
|
+
*/
|
142
|
+
Chart.prototype.addSeriesAsDrilldown = function(point, options) {
|
143
|
+
this.addSingleSeriesAsDrilldown(point, options);
|
144
|
+
this.applyDrilldown();
|
145
|
+
};
|
146
|
+
Chart.prototype.addSingleSeriesAsDrilldown = function(point, ddOptions) {
|
147
|
+
var oldSeries = point.series,
|
148
|
+
xAxis = oldSeries.xAxis,
|
149
|
+
yAxis = oldSeries.yAxis,
|
150
|
+
newSeries,
|
151
|
+
pointIndex,
|
152
|
+
levelSeries = [],
|
153
|
+
levelSeriesOptions = [],
|
154
|
+
level,
|
155
|
+
levelNumber,
|
156
|
+
last,
|
157
|
+
colorProp;
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
colorProp = {
|
162
|
+
colorIndex: pick(point.colorIndex, oldSeries.colorIndex)
|
163
|
+
};
|
164
|
+
|
165
|
+
|
166
|
+
if (!this.drilldownLevels) {
|
167
|
+
this.drilldownLevels = [];
|
168
|
+
}
|
169
|
+
|
170
|
+
levelNumber = oldSeries.options._levelNumber || 0;
|
171
|
+
|
172
|
+
// See if we can reuse the registered series from last run
|
173
|
+
last = this.drilldownLevels[this.drilldownLevels.length - 1];
|
174
|
+
if (last && last.levelNumber !== levelNumber) {
|
175
|
+
last = undefined;
|
176
|
+
}
|
177
|
+
|
178
|
+
ddOptions = extend(extend({
|
179
|
+
_ddSeriesId: ddSeriesId++
|
180
|
+
}, colorProp), ddOptions);
|
181
|
+
pointIndex = inArray(point, oldSeries.points);
|
182
|
+
|
183
|
+
// Record options for all current series
|
184
|
+
each(oldSeries.chart.series, function(series) {
|
185
|
+
if (series.xAxis === xAxis && !series.isDrilling) {
|
186
|
+
series.options._ddSeriesId = series.options._ddSeriesId || ddSeriesId++;
|
187
|
+
series.options._colorIndex = series.userOptions._colorIndex;
|
188
|
+
series.options._levelNumber = series.options._levelNumber || levelNumber; // #3182
|
189
|
+
|
190
|
+
if (last) {
|
191
|
+
levelSeries = last.levelSeries;
|
192
|
+
levelSeriesOptions = last.levelSeriesOptions;
|
193
|
+
} else {
|
194
|
+
levelSeries.push(series);
|
195
|
+
levelSeriesOptions.push(series.options);
|
196
|
+
}
|
197
|
+
}
|
198
|
+
});
|
199
|
+
|
200
|
+
// Add a record of properties for each drilldown level
|
201
|
+
level = extend({
|
202
|
+
levelNumber: levelNumber,
|
203
|
+
seriesOptions: oldSeries.options,
|
204
|
+
levelSeriesOptions: levelSeriesOptions,
|
205
|
+
levelSeries: levelSeries,
|
206
|
+
shapeArgs: point.shapeArgs,
|
207
|
+
bBox: point.graphic ? point.graphic.getBBox() : {}, // no graphic in line series with markers disabled
|
208
|
+
color: point.isNull ? new H.Color(color).setOpacity(0).get() : color,
|
209
|
+
lowerSeriesOptions: ddOptions,
|
210
|
+
pointOptions: oldSeries.options.data[pointIndex],
|
211
|
+
pointIndex: pointIndex,
|
212
|
+
oldExtremes: {
|
213
|
+
xMin: xAxis && xAxis.userMin,
|
214
|
+
xMax: xAxis && xAxis.userMax,
|
215
|
+
yMin: yAxis && yAxis.userMin,
|
216
|
+
yMax: yAxis && yAxis.userMax
|
217
|
+
}
|
218
|
+
}, colorProp);
|
219
|
+
|
220
|
+
// Push it to the lookup array
|
221
|
+
this.drilldownLevels.push(level);
|
222
|
+
|
223
|
+
newSeries = level.lowerSeries = this.addSeries(ddOptions, false);
|
224
|
+
newSeries.options._levelNumber = levelNumber + 1;
|
225
|
+
if (xAxis) {
|
226
|
+
xAxis.oldPos = xAxis.pos;
|
227
|
+
xAxis.userMin = xAxis.userMax = null;
|
228
|
+
yAxis.userMin = yAxis.userMax = null;
|
229
|
+
}
|
230
|
+
|
231
|
+
// Run fancy cross-animation on supported and equal types
|
232
|
+
if (oldSeries.type === newSeries.type) {
|
233
|
+
newSeries.animate = newSeries.animateDrilldown || noop;
|
234
|
+
newSeries.options.animation = true;
|
235
|
+
}
|
236
|
+
};
|
237
|
+
|
238
|
+
Chart.prototype.applyDrilldown = function() {
|
239
|
+
var drilldownLevels = this.drilldownLevels,
|
240
|
+
levelToRemove;
|
241
|
+
|
242
|
+
if (drilldownLevels && drilldownLevels.length > 0) { // #3352, async loading
|
243
|
+
levelToRemove = drilldownLevels[drilldownLevels.length - 1].levelNumber;
|
244
|
+
each(this.drilldownLevels, function(level) {
|
245
|
+
if (level.levelNumber === levelToRemove) {
|
246
|
+
each(level.levelSeries, function(series) {
|
247
|
+
if (series.options && series.options._levelNumber === levelToRemove) { // Not removed, not added as part of a multi-series drilldown
|
248
|
+
series.remove(false);
|
249
|
+
}
|
250
|
+
});
|
251
|
+
}
|
252
|
+
});
|
253
|
+
}
|
254
|
+
|
255
|
+
this.redraw();
|
256
|
+
this.showDrillUpButton();
|
257
|
+
};
|
258
|
+
|
259
|
+
Chart.prototype.getDrilldownBackText = function() {
|
260
|
+
var drilldownLevels = this.drilldownLevels,
|
261
|
+
lastLevel;
|
262
|
+
if (drilldownLevels && drilldownLevels.length > 0) { // #3352, async loading
|
263
|
+
lastLevel = drilldownLevels[drilldownLevels.length - 1];
|
264
|
+
lastLevel.series = lastLevel.seriesOptions;
|
265
|
+
return format(this.options.lang.drillUpText, lastLevel);
|
266
|
+
}
|
267
|
+
|
268
|
+
};
|
269
|
+
|
270
|
+
Chart.prototype.showDrillUpButton = function() {
|
271
|
+
var chart = this,
|
272
|
+
backText = this.getDrilldownBackText(),
|
273
|
+
buttonOptions = chart.options.drilldown.drillUpButton,
|
274
|
+
attr,
|
275
|
+
states;
|
276
|
+
|
277
|
+
|
278
|
+
if (!this.drillUpButton) {
|
279
|
+
attr = buttonOptions.theme;
|
280
|
+
states = attr && attr.states;
|
281
|
+
|
282
|
+
this.drillUpButton = this.renderer.button(
|
283
|
+
backText,
|
284
|
+
null,
|
285
|
+
null,
|
286
|
+
function() {
|
287
|
+
chart.drillUp();
|
288
|
+
},
|
289
|
+
attr,
|
290
|
+
states && states.hover,
|
291
|
+
states && states.select
|
292
|
+
)
|
293
|
+
.addClass('highcharts-drillup-button')
|
294
|
+
.attr({
|
295
|
+
align: buttonOptions.position.align,
|
296
|
+
zIndex: 7
|
297
|
+
})
|
298
|
+
.add()
|
299
|
+
.align(buttonOptions.position, false, buttonOptions.relativeTo || 'plotBox');
|
300
|
+
} else {
|
301
|
+
this.drillUpButton.attr({
|
302
|
+
text: backText
|
303
|
+
})
|
304
|
+
.align();
|
305
|
+
}
|
306
|
+
};
|
307
|
+
|
308
|
+
/**
|
309
|
+
* When the chart is drilled down to a child series, calling `chart.drillUp()`
|
310
|
+
* will drill up to the parent series.
|
311
|
+
*
|
312
|
+
* @memberOf Highcharts.Chart
|
313
|
+
* @name #drillUp
|
314
|
+
*/
|
315
|
+
Chart.prototype.drillUp = function() {
|
316
|
+
var chart = this,
|
317
|
+
drilldownLevels = chart.drilldownLevels,
|
318
|
+
levelNumber = drilldownLevels[drilldownLevels.length - 1].levelNumber,
|
319
|
+
i = drilldownLevels.length,
|
320
|
+
chartSeries = chart.series,
|
321
|
+
seriesI,
|
322
|
+
level,
|
323
|
+
oldSeries,
|
324
|
+
newSeries,
|
325
|
+
oldExtremes,
|
326
|
+
addSeries = function(seriesOptions) {
|
327
|
+
var addedSeries;
|
328
|
+
each(chartSeries, function(series) {
|
329
|
+
if (series.options._ddSeriesId === seriesOptions._ddSeriesId) {
|
330
|
+
addedSeries = series;
|
331
|
+
}
|
332
|
+
});
|
333
|
+
|
334
|
+
addedSeries = addedSeries || chart.addSeries(seriesOptions, false);
|
335
|
+
if (addedSeries.type === oldSeries.type && addedSeries.animateDrillupTo) {
|
336
|
+
addedSeries.animate = addedSeries.animateDrillupTo;
|
337
|
+
}
|
338
|
+
if (seriesOptions === level.seriesOptions) {
|
339
|
+
newSeries = addedSeries;
|
340
|
+
}
|
341
|
+
};
|
342
|
+
|
343
|
+
while (i--) {
|
344
|
+
|
345
|
+
level = drilldownLevels[i];
|
346
|
+
if (level.levelNumber === levelNumber) {
|
347
|
+
drilldownLevels.pop();
|
348
|
+
|
349
|
+
// Get the lower series by reference or id
|
350
|
+
oldSeries = level.lowerSeries;
|
351
|
+
if (!oldSeries.chart) { // #2786
|
352
|
+
seriesI = chartSeries.length; // #2919
|
353
|
+
while (seriesI--) {
|
354
|
+
if (chartSeries[seriesI].options.id === level.lowerSeriesOptions.id &&
|
355
|
+
chartSeries[seriesI].options._levelNumber === levelNumber + 1) { // #3867
|
356
|
+
oldSeries = chartSeries[seriesI];
|
357
|
+
break;
|
358
|
+
}
|
359
|
+
}
|
360
|
+
}
|
361
|
+
oldSeries.xData = []; // Overcome problems with minRange (#2898)
|
362
|
+
|
363
|
+
each(level.levelSeriesOptions, addSeries);
|
364
|
+
|
365
|
+
fireEvent(chart, 'drillup', {
|
366
|
+
seriesOptions: level.seriesOptions
|
367
|
+
});
|
368
|
+
|
369
|
+
if (newSeries.type === oldSeries.type) {
|
370
|
+
newSeries.drilldownLevel = level;
|
371
|
+
newSeries.options.animation = chart.options.drilldown.animation;
|
372
|
+
|
373
|
+
if (oldSeries.animateDrillupFrom && oldSeries.chart) { // #2919
|
374
|
+
oldSeries.animateDrillupFrom(level);
|
375
|
+
}
|
376
|
+
}
|
377
|
+
newSeries.options._levelNumber = levelNumber;
|
378
|
+
|
379
|
+
oldSeries.remove(false);
|
380
|
+
|
381
|
+
// Reset the zoom level of the upper series
|
382
|
+
if (newSeries.xAxis) {
|
383
|
+
oldExtremes = level.oldExtremes;
|
384
|
+
newSeries.xAxis.setExtremes(oldExtremes.xMin, oldExtremes.xMax, false);
|
385
|
+
newSeries.yAxis.setExtremes(oldExtremes.yMin, oldExtremes.yMax, false);
|
386
|
+
}
|
387
|
+
}
|
388
|
+
}
|
389
|
+
|
390
|
+
// Fire a once-off event after all series have been drilled up (#5158)
|
391
|
+
fireEvent(chart, 'drillupall');
|
392
|
+
|
393
|
+
this.redraw();
|
394
|
+
|
395
|
+
if (this.drilldownLevels.length === 0) {
|
396
|
+
this.drillUpButton = this.drillUpButton.destroy();
|
397
|
+
} else {
|
398
|
+
this.drillUpButton.attr({
|
399
|
+
text: this.getDrilldownBackText()
|
400
|
+
})
|
401
|
+
.align();
|
402
|
+
}
|
403
|
+
|
404
|
+
this.ddDupes.length = []; // #3315
|
405
|
+
};
|
406
|
+
|
407
|
+
|
408
|
+
ColumnSeries.prototype.supportsDrilldown = true;
|
409
|
+
|
410
|
+
/**
|
411
|
+
* When drilling up, keep the upper series invisible until the lower series has
|
412
|
+
* moved into place
|
413
|
+
*/
|
414
|
+
ColumnSeries.prototype.animateDrillupTo = function(init) {
|
415
|
+
if (!init) {
|
416
|
+
var newSeries = this,
|
417
|
+
level = newSeries.drilldownLevel;
|
418
|
+
|
419
|
+
// First hide all items before animating in again
|
420
|
+
each(this.points, function(point) {
|
421
|
+
var dataLabel = point.dataLabel;
|
422
|
+
|
423
|
+
if (point.graphic) { // #3407
|
424
|
+
point.graphic.hide();
|
425
|
+
}
|
426
|
+
|
427
|
+
if (dataLabel) {
|
428
|
+
// The data label is initially hidden, make sure it is not faded
|
429
|
+
// in (#6127)
|
430
|
+
dataLabel.hidden = dataLabel.attr('visibility') === 'hidden';
|
431
|
+
|
432
|
+
if (!dataLabel.hidden) {
|
433
|
+
dataLabel.hide();
|
434
|
+
if (point.connector) {
|
435
|
+
point.connector.hide();
|
436
|
+
}
|
437
|
+
}
|
438
|
+
}
|
439
|
+
});
|
440
|
+
|
441
|
+
|
442
|
+
// Do dummy animation on first point to get to complete
|
443
|
+
setTimeout(function() {
|
444
|
+
if (newSeries.points) { // May be destroyed in the meantime, #3389
|
445
|
+
each(newSeries.points, function(point, i) {
|
446
|
+
// Fade in other points
|
447
|
+
var verb =
|
448
|
+
i === (level && level.pointIndex) ? 'show' : 'fadeIn',
|
449
|
+
inherit = verb === 'show' ? true : undefined,
|
450
|
+
dataLabel = point.dataLabel;
|
451
|
+
|
452
|
+
|
453
|
+
if (point.graphic) { // #3407
|
454
|
+
point.graphic[verb](inherit);
|
455
|
+
}
|
456
|
+
|
457
|
+
if (dataLabel && !dataLabel.hidden) { // #6127
|
458
|
+
dataLabel[verb](inherit);
|
459
|
+
if (point.connector) {
|
460
|
+
point.connector[verb](inherit);
|
461
|
+
}
|
462
|
+
}
|
463
|
+
});
|
464
|
+
}
|
465
|
+
}, Math.max(this.chart.options.drilldown.animation.duration - 50, 0));
|
466
|
+
|
467
|
+
// Reset
|
468
|
+
this.animate = noop;
|
469
|
+
}
|
470
|
+
|
471
|
+
};
|
472
|
+
|
473
|
+
ColumnSeries.prototype.animateDrilldown = function(init) {
|
474
|
+
var series = this,
|
475
|
+
drilldownLevels = this.chart.drilldownLevels,
|
476
|
+
animateFrom,
|
477
|
+
animationOptions = this.chart.options.drilldown.animation,
|
478
|
+
xAxis = this.xAxis;
|
479
|
+
|
480
|
+
if (!init) {
|
481
|
+
each(drilldownLevels, function(level) {
|
482
|
+
if (series.options._ddSeriesId === level.lowerSeriesOptions._ddSeriesId) {
|
483
|
+
animateFrom = level.shapeArgs;
|
484
|
+
|
485
|
+
}
|
486
|
+
});
|
487
|
+
|
488
|
+
animateFrom.x += (pick(xAxis.oldPos, xAxis.pos) - xAxis.pos);
|
489
|
+
|
490
|
+
each(this.points, function(point) {
|
491
|
+
var animateTo = point.shapeArgs;
|
492
|
+
|
493
|
+
|
494
|
+
|
495
|
+
if (point.graphic) {
|
496
|
+
point.graphic
|
497
|
+
.attr(animateFrom)
|
498
|
+
.animate(
|
499
|
+
extend(point.shapeArgs, {
|
500
|
+
fill: point.color || series.color
|
501
|
+
}),
|
502
|
+
animationOptions
|
503
|
+
);
|
504
|
+
}
|
505
|
+
if (point.dataLabel) {
|
506
|
+
point.dataLabel.fadeIn(animationOptions);
|
507
|
+
}
|
508
|
+
});
|
509
|
+
this.animate = null;
|
510
|
+
}
|
511
|
+
|
512
|
+
};
|
513
|
+
|
514
|
+
/**
|
515
|
+
* When drilling up, pull out the individual point graphics from the lower series
|
516
|
+
* and animate them into the origin point in the upper series.
|
517
|
+
*/
|
518
|
+
ColumnSeries.prototype.animateDrillupFrom = function(level) {
|
519
|
+
var animationOptions = this.chart.options.drilldown.animation,
|
520
|
+
group = this.group,
|
521
|
+
// For 3d column series all columns are added to one group
|
522
|
+
// so we should not delete the whole group. #5297
|
523
|
+
removeGroup = group !== this.chart.seriesGroup,
|
524
|
+
series = this;
|
525
|
+
|
526
|
+
// Cancel mouse events on the series group (#2787)
|
527
|
+
each(series.trackerGroups, function(key) {
|
528
|
+
if (series[key]) { // we don't always have dataLabelsGroup
|
529
|
+
series[key].on('mouseover');
|
530
|
+
}
|
531
|
+
});
|
532
|
+
|
533
|
+
if (removeGroup) {
|
534
|
+
delete this.group;
|
535
|
+
}
|
536
|
+
|
537
|
+
each(this.points, function(point) {
|
538
|
+
var graphic = point.graphic,
|
539
|
+
animateTo = level.shapeArgs,
|
540
|
+
complete = function() {
|
541
|
+
graphic.destroy();
|
542
|
+
if (group && removeGroup) {
|
543
|
+
group = group.destroy();
|
544
|
+
}
|
545
|
+
};
|
546
|
+
|
547
|
+
if (graphic) {
|
548
|
+
|
549
|
+
delete point.graphic;
|
550
|
+
|
551
|
+
|
552
|
+
|
553
|
+
if (animationOptions) {
|
554
|
+
graphic.animate(
|
555
|
+
animateTo,
|
556
|
+
H.merge(animationOptions, {
|
557
|
+
complete: complete
|
558
|
+
})
|
559
|
+
);
|
560
|
+
} else {
|
561
|
+
graphic.attr(animateTo);
|
562
|
+
complete();
|
563
|
+
}
|
564
|
+
}
|
565
|
+
});
|
566
|
+
};
|
567
|
+
|
568
|
+
if (PieSeries) {
|
569
|
+
extend(PieSeries.prototype, {
|
570
|
+
supportsDrilldown: true,
|
571
|
+
animateDrillupTo: ColumnSeries.prototype.animateDrillupTo,
|
572
|
+
animateDrillupFrom: ColumnSeries.prototype.animateDrillupFrom,
|
573
|
+
|
574
|
+
animateDrilldown: function(init) {
|
575
|
+
var level = this.chart.drilldownLevels[this.chart.drilldownLevels.length - 1],
|
576
|
+
animationOptions = this.chart.options.drilldown.animation,
|
577
|
+
animateFrom = level.shapeArgs,
|
578
|
+
start = animateFrom.start,
|
579
|
+
angle = animateFrom.end - start,
|
580
|
+
startAngle = angle / this.points.length;
|
581
|
+
|
582
|
+
if (!init) {
|
583
|
+
each(this.points, function(point, i) {
|
584
|
+
var animateTo = point.shapeArgs;
|
585
|
+
|
586
|
+
|
587
|
+
|
588
|
+
if (point.graphic) {
|
589
|
+
point.graphic
|
590
|
+
.attr(H.merge(animateFrom, {
|
591
|
+
start: start + i * startAngle,
|
592
|
+
end: start + (i + 1) * startAngle
|
593
|
+
}))[animationOptions ? 'animate' : 'attr'](
|
594
|
+
animateTo,
|
595
|
+
animationOptions
|
596
|
+
);
|
597
|
+
}
|
598
|
+
});
|
599
|
+
this.animate = null;
|
600
|
+
}
|
601
|
+
}
|
602
|
+
});
|
603
|
+
}
|
604
|
+
|
605
|
+
H.Point.prototype.doDrilldown = function(_holdRedraw, category, originalEvent) {
|
606
|
+
var series = this.series,
|
607
|
+
chart = series.chart,
|
608
|
+
drilldown = chart.options.drilldown,
|
609
|
+
i = (drilldown.series || []).length,
|
610
|
+
seriesOptions;
|
611
|
+
|
612
|
+
if (!chart.ddDupes) {
|
613
|
+
chart.ddDupes = [];
|
614
|
+
}
|
615
|
+
|
616
|
+
while (i-- && !seriesOptions) {
|
617
|
+
if (drilldown.series[i].id === this.drilldown && inArray(this.drilldown, chart.ddDupes) === -1) {
|
618
|
+
seriesOptions = drilldown.series[i];
|
619
|
+
chart.ddDupes.push(this.drilldown);
|
620
|
+
}
|
621
|
+
}
|
622
|
+
|
623
|
+
// Fire the event. If seriesOptions is undefined, the implementer can check for
|
624
|
+
// seriesOptions, and call addSeriesAsDrilldown async if necessary.
|
625
|
+
fireEvent(chart, 'drilldown', {
|
626
|
+
point: this,
|
627
|
+
seriesOptions: seriesOptions,
|
628
|
+
category: category,
|
629
|
+
originalEvent: originalEvent,
|
630
|
+
points: category !== undefined && this.series.xAxis.getDDPoints(category).slice(0)
|
631
|
+
}, function(e) {
|
632
|
+
var chart = e.point.series && e.point.series.chart,
|
633
|
+
seriesOptions = e.seriesOptions;
|
634
|
+
if (chart && seriesOptions) {
|
635
|
+
if (_holdRedraw) {
|
636
|
+
chart.addSingleSeriesAsDrilldown(e.point, seriesOptions);
|
637
|
+
} else {
|
638
|
+
chart.addSeriesAsDrilldown(e.point, seriesOptions);
|
639
|
+
}
|
640
|
+
}
|
641
|
+
});
|
642
|
+
|
643
|
+
|
644
|
+
};
|
645
|
+
|
646
|
+
/**
|
647
|
+
* Drill down to a given category. This is the same as clicking on an axis label.
|
648
|
+
*/
|
649
|
+
H.Axis.prototype.drilldownCategory = function(x, e) {
|
650
|
+
objectEach(this.getDDPoints(x), function(point) {
|
651
|
+
if (point && point.series && point.series.visible && point.doDrilldown) { // #3197
|
652
|
+
point.doDrilldown(true, x, e);
|
653
|
+
}
|
654
|
+
});
|
655
|
+
this.chart.applyDrilldown();
|
656
|
+
};
|
657
|
+
|
658
|
+
/**
|
659
|
+
* Return drillable points for this specific X value
|
660
|
+
*/
|
661
|
+
H.Axis.prototype.getDDPoints = function(x) {
|
662
|
+
var ret = [];
|
663
|
+
each(this.series, function(series) {
|
664
|
+
var i,
|
665
|
+
xData = series.xData,
|
666
|
+
points = series.points;
|
667
|
+
|
668
|
+
for (i = 0; i < xData.length; i++) {
|
669
|
+
if (xData[i] === x && series.options.data[i] && series.options.data[i].drilldown) {
|
670
|
+
ret.push(points ? points[i] : true);
|
671
|
+
break;
|
672
|
+
}
|
673
|
+
}
|
674
|
+
});
|
675
|
+
return ret;
|
676
|
+
};
|
677
|
+
|
678
|
+
|
679
|
+
/**
|
680
|
+
* Make a tick label drillable, or remove drilling on update
|
681
|
+
*/
|
682
|
+
Tick.prototype.drillable = function() {
|
683
|
+
var pos = this.pos,
|
684
|
+
label = this.label,
|
685
|
+
axis = this.axis,
|
686
|
+
isDrillable = axis.coll === 'xAxis' && axis.getDDPoints,
|
687
|
+
ddPointsX = isDrillable && axis.getDDPoints(pos);
|
688
|
+
|
689
|
+
if (isDrillable) {
|
690
|
+
if (label && ddPointsX.length) {
|
691
|
+
label.drillable = true;
|
692
|
+
|
693
|
+
|
694
|
+
|
695
|
+
label
|
696
|
+
.addClass('highcharts-drilldown-axis-label')
|
697
|
+
|
698
|
+
.on('click', function(e) {
|
699
|
+
axis.drilldownCategory(pos, e);
|
700
|
+
});
|
701
|
+
|
702
|
+
} else if (label && label.drillable) {
|
703
|
+
|
704
|
+
|
705
|
+
|
706
|
+
label.on('click', null); // #3806
|
707
|
+
label.removeClass('highcharts-drilldown-axis-label');
|
708
|
+
}
|
709
|
+
}
|
710
|
+
};
|
711
|
+
|
712
|
+
/**
|
713
|
+
* Always keep the drillability updated (#3951)
|
714
|
+
*/
|
715
|
+
wrap(Tick.prototype, 'addLabel', function(proceed) {
|
716
|
+
proceed.call(this);
|
717
|
+
this.drillable();
|
718
|
+
});
|
719
|
+
|
720
|
+
|
721
|
+
/**
|
722
|
+
* On initialization of each point, identify its label and make it clickable. Also, provide a
|
723
|
+
* list of points associated to that label.
|
724
|
+
*/
|
725
|
+
wrap(H.Point.prototype, 'init', function(proceed, series, options, x) {
|
726
|
+
var point = proceed.call(this, series, options, x),
|
727
|
+
xAxis = series.xAxis,
|
728
|
+
tick = xAxis && xAxis.ticks[x];
|
729
|
+
|
730
|
+
if (point.drilldown) {
|
731
|
+
|
732
|
+
// Add the click event to the point
|
733
|
+
H.addEvent(point, 'click', function(e) {
|
734
|
+
if (series.xAxis && series.chart.options.drilldown.allowPointDrilldown === false) {
|
735
|
+
series.xAxis.drilldownCategory(point.x, e); // #5822, x changed
|
736
|
+
} else {
|
737
|
+
point.doDrilldown(undefined, undefined, e);
|
738
|
+
}
|
739
|
+
});
|
740
|
+
/*wrap(point, 'importEvents', function (proceed) { // wrapping importEvents makes point.click event work
|
741
|
+
if (!this.hasImportedEvents) {
|
742
|
+
proceed.call(this);
|
743
|
+
H.addEvent(this, 'click', function () {
|
744
|
+
this.doDrilldown();
|
745
|
+
});
|
746
|
+
}
|
747
|
+
});*/
|
748
|
+
|
749
|
+
}
|
750
|
+
|
751
|
+
// Add or remove click handler and style on the tick label
|
752
|
+
if (tick) {
|
753
|
+
tick.drillable();
|
754
|
+
}
|
755
|
+
|
756
|
+
return point;
|
757
|
+
});
|
758
|
+
|
759
|
+
wrap(H.Series.prototype, 'drawDataLabels', function(proceed) {
|
760
|
+
var css = this.chart.options.drilldown.activeDataLabelStyle,
|
761
|
+
renderer = this.chart.renderer;
|
762
|
+
|
763
|
+
proceed.call(this);
|
764
|
+
|
765
|
+
each(this.points, function(point) {
|
766
|
+
var pointCSS = {};
|
767
|
+
if (point.drilldown && point.dataLabel) {
|
768
|
+
if (css.color === 'contrast') {
|
769
|
+
pointCSS.color = renderer.getContrast(point.color || this.color);
|
770
|
+
}
|
771
|
+
point.dataLabel
|
772
|
+
.addClass('highcharts-drilldown-data-label');
|
773
|
+
|
774
|
+
|
775
|
+
}
|
776
|
+
}, this);
|
777
|
+
});
|
778
|
+
|
779
|
+
// Mark the trackers with a pointer
|
780
|
+
var drawTrackerWrapper = function(proceed) {
|
781
|
+
proceed.call(this);
|
782
|
+
each(this.points, function(point) {
|
783
|
+
if (point.drilldown && point.graphic) {
|
784
|
+
point.graphic.addClass('highcharts-drilldown-point');
|
785
|
+
|
786
|
+
|
787
|
+
}
|
788
|
+
});
|
789
|
+
};
|
790
|
+
|
791
|
+
objectEach(seriesTypes, function(seriesType) {
|
792
|
+
if (seriesType.prototype.supportsDrilldown) {
|
793
|
+
wrap(seriesType.prototype, 'drawTracker', drawTrackerWrapper);
|
794
|
+
}
|
795
|
+
});
|
796
|
+
|
797
|
+
}(Highcharts));
|
717
798
|
}));
|