/* Highcharts JS v6.1.0 (2018-04-13) Accessibility module (c) 2010-2017 Highsoft AS Author: Oystein Moseng License: www.highcharts.com/license */ (function(r){"object"===typeof module&&module.exports?module.exports=r:r(Highcharts)})(function(r){(function(a){function r(a,f){var k=a.indexOf("#each("),h=a.indexOf("#plural("),g=a.indexOf("["),m=a.indexOf("]");if(-1k?f.length+k:Math.min(k,f.length),g=0;ga?(l=f[f.length+a],void 0===l&&(l=f[0])):(l=f[a],void 0===l&&(l=f[f.length-1]))),void 0!==l?l:""):"{"+a+"}"}var u=a.each,t=a.pick;a.i18nFormat=function(m,f,k){var h=function(d,a){d=d.slice(a||0); var c=d.indexOf("{"),b=d.indexOf("}");if(-1c)return{statement:d.substring(c+1,b),begin:a+c+1,end:a+b}},g=[],q,l;l=0;do q=h(m,l),l=m.substring(l,q&&q.begin-1),l.length&&g.push({value:l,type:"constant"}),q&&g.push({value:q.statement,type:"statement"}),l=q&&q.end+1;while(q);u(g,function(d){"statement"===d.type&&(d.value=r(d.value,f))});return a.format(a.reduce(g,function(d,a){return d+a.value},""),f,k)};a.Chart.prototype.langFormat=function(m,f,k){m=m.split(".");for(var h=this.options.lang,g=0;g< m.length;++g)h=h&&h[m[g]];return"string"===typeof h&&a.i18nFormat(h,f,k)};a.setOptions({lang:{accessibility:{screenReaderRegionLabel:"Chart screen reader information.",navigationHint:"Use regions/landmarks to skip ahead to chart {#plural(numSeries, and navigate between data series,)}",defaultChartTitle:"Chart",longDescriptionHeading:"Long description.",noDescription:"No description available.",structureHeading:"Structure.",viewAsDataTable:"View as data table.",chartHeading:"Chart graphic.",chartContainerLabel:"Interactive chart. {title}. Use up and down arrows to navigate with most screen readers.", rangeSelectorMinInput:"Select start date.",rangeSelectorMaxInput:"Select end date.",tableSummary:"Table representation of chart.",mapZoomIn:"Zoom chart",mapZoomOut:"Zoom out chart",rangeSelectorButton:"Select range {buttonText}",legendItem:"Toggle visibility of series {itemName}",svgContainerTitle:"{chartTitle}",seriesTypeDescriptions:{boxplot:"Box plot charts are typically used to display groups of statistical data. Each data point in the chart can have up to 5 values: minimum, lower quartile, median, upper quartile, and maximum.", arearange:"Arearange charts are line charts displaying a range between a lower and higher value for each point.",areasplinerange:"These charts are line charts displaying a range between a lower and higher value for each point.",bubble:"Bubble charts are scatter charts where each data point also has a size value.",columnrange:"Columnrange charts are column charts displaying a range between a lower and higher value for each point.",errorbar:"Errorbar series are used to display the variability of the data.", funnel:"Funnel charts are used to display reduction of data in stages.",pyramid:"Pyramid charts consist of a single pyramid with item heights corresponding to each point value.",waterfall:"A waterfall chart is a column chart where each column contributes towards a total end value."},chartTypes:{emptyChart:"Empty chart",mapTypeDescription:"Map of {mapTitle} with {numSeries} data series.",unknownMap:"Map of unspecified region with {numSeries} data series.",combinationChart:"Combination chart with {numSeries} data series.", defaultSingle:"Chart with {numPoints} data {#plural(numPoints, points, point)}.",defaultMultiple:"Chart with {numSeries} data series.",splineSingle:"Line chart with {numPoints} data {#plural(numPoints, points, point)}.",splineMultiple:"Line chart with {numSeries} lines.",lineSingle:"Line chart with {numPoints} data {#plural(numPoints, points, point)}.",lineMultiple:"Line chart with {numSeries} lines.",columnSingle:"Bar chart with {numPoints} {#plural(numPoints, bars, bar)}.",columnMultiple:"Bar chart with {numSeries} data series.", barSingle:"Bar chart with {numPoints} {#plural(numPoints, bars, bar)}.",barMultiple:"Bar chart with {numSeries} data series.",pieSingle:"Pie chart with {numPoints} {#plural(numPoints, slices, slice)}.",pieMultiple:"Pie chart with {numSeries} pies.",scatterSingle:"Scatter chart with {numPoints} {#plural(numPoints, points, point)}.",scatterMultiple:"Scatter chart with {numSeries} data series.",boxplotSingle:"Boxplot with {numPoints} {#plural(numPoints, boxes, box)}.",boxplotMultiple:"Boxplot with {numSeries} data series.", bubbleSingle:"Bubble chart with {numPoints} {#plural(numPoints, bubbles, bubble)}.",bubbleMultiple:"Bubble chart with {numSeries} data series."},axis:{xAxisDescriptionSingular:"The chart has 1 X axis displaying {names[0]}.",xAxisDescriptionPlural:"The chart has {numAxes} X axes displaying {#each(names, -1) }and {names[-1]}",yAxisDescriptionSingular:"The chart has 1 Y axis displaying {names[0]}.",yAxisDescriptionPlural:"The chart has {numAxes} Y axes displaying {#each(names, -1) }and {names[-1]}"}, exporting:{chartMenuLabel:"Chart export",menuButtonLabel:"View export menu",exportRegionLabel:"Chart export menu"},series:{summary:{default:"{name}, series {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",defaultCombination:"{name}, series {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",line:"{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",lineCombination:"{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.", spline:"{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",splineCombination:"{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.",column:"{name}, bar series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bars, bar)}.",columnCombination:"{name}, series {ix} of {numSeries}. Bar series with {numPoints} {#plural(numPoints, bars, bar)}.",bar:"{name}, bar series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bars, bar)}.", barCombination:"{name}, series {ix} of {numSeries}. Bar series with {numPoints} {#plural(numPoints, bars, bar)}.",pie:"{name}, pie {ix} of {numSeries} with {numPoints} {#plural(numPoints, slices, slice)}.",pieCombination:"{name}, series {ix} of {numSeries}. Pie with {numPoints} {#plural(numPoints, slices, slice)}.",scatter:"{name}, scatter plot {ix} of {numSeries} with {numPoints} {#plural(numPoints, points, point)}.",scatterCombination:"{name}, series {ix} of {numSeries}, scatter plot with {numPoints} {#plural(numPoints, points, point)}.", boxplot:"{name}, boxplot {ix} of {numSeries} with {numPoints} {#plural(numPoints, boxes, box)}.",boxplotCombination:"{name}, series {ix} of {numSeries}. Boxplot with {numPoints} {#plural(numPoints, boxes, box)}.",bubble:"{name}, bubble series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bubbles, bubble)}.",bubbleCombination:"{name}, series {ix} of {numSeries}. Bubble series with {numPoints} {#plural(numPoints, bubbles, bubble)}.",map:"{name}, map {ix} of {numSeries} with {numPoints} {#plural(numPoints, areas, area)}.", mapCombination:"{name}, series {ix} of {numSeries}. Map with {numPoints} {#plural(numPoints, areas, area)}.",mapline:"{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.",maplineCombination:"{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.",mapbubble:"{name}, bubble series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bubbles, bubble)}.",mapbubbleCombination:"{name}, series {ix} of {numSeries}. Bubble series with {numPoints} {#plural(numPoints, bubbles, bubble)}."}, description:"{description}",xAxisDescription:"X axis, {name}",yAxisDescription:"Y axis, {name}"}}}})})(r);(function(a){function r(d){return d.replace(/&/g,"\x26amp;").replace(//g,"\x26gt;").replace(/"/g,"\x26quot;").replace(/'/g,"\x26#x27;").replace(/\//g,"\x26#x2F;")}function u(d){return"string"===typeof d?d.replace(/<\/?[^>]+(>|$)/g,""):d}function t(d){for(var a=d.childNodes.length;a--;)d.appendChild(d.childNodes[a])}var m=a.win.document,f=a.each,k=a.map,h=a.erase,g=a.addEvent, q=a.merge,l={position:"absolute",left:"-9999px",top:"auto",width:"1px",height:"1px",overflow:"hidden"};a.Series.prototype.commonKeys="name id category x value y".split(" ");a.Series.prototype.specialKeys="z open high q3 median q1 low close".split(" ");a.seriesTypes.pie&&(a.seriesTypes.pie.prototype.specialKeys=[]);a.setOptions({accessibility:{enabled:!0,pointDescriptionThreshold:!1,screenReaderSectionFormatter:function(d){var a=d.options,c=d.types||[],b={chart:d,numSeries:d.series&&d.series.length}, c=(1===c.length&&"pie"===c[0]||"map"===c[0])&&{}||d.getAxesDescription();return"\x3cdiv\x3e"+d.langFormat("accessibility.navigationHint",b)+"\x3c/div\x3e\x3ch3\x3e"+(a.title.text?r(a.title.text):d.langFormat("accessibility.defaultChartTitle",b))+(a.subtitle&&a.subtitle.text?". "+r(a.subtitle.text):"")+"\x3c/h3\x3e\x3ch4\x3e"+d.langFormat("accessibility.longDescriptionHeading",b)+"\x3c/h4\x3e\x3cdiv\x3e"+(a.chart.description||d.langFormat("accessibility.noDescription",b))+"\x3c/div\x3e\x3ch4\x3e"+ d.langFormat("accessibility.structureHeading",b)+"\x3c/h4\x3e\x3cdiv\x3e"+(a.chart.typeDescription||d.getTypeDescription())+"\x3c/div\x3e"+(c.xAxis?"\x3cdiv\x3e"+c.xAxis+"\x3c/div\x3e":"")+(c.yAxis?"\x3cdiv\x3e"+c.yAxis+"\x3c/div\x3e":"")}}});a.addEvent(a.Series,"afterRender",function(){this.chart.options.accessibility.enabled&&this.setA11yDescription()});a.Series.prototype.setA11yDescription=function(){var d=this.chart.options.accessibility,a=this.points&&this.points.length&&this.points[0].graphic&& this.points[0].graphic.element,c=a&&a.parentNode||this.graph&&this.graph.element||this.group&&this.group.element;c&&(c.lastChild===a&&t(c),this.points&&(this.points.lengtha.types.indexOf(this.type)&&a.types.push(this.type))});g(a.Series,"remove",function(){var a=this.chart,e=this,c=!1;f(a.series,function(b){b!==e&&0>a.types.indexOf(e.type)&&(c=!0)});c||h(a.types,e.type)});a.Chart.prototype.getTypeDescription=function(){var a=this.types&&this.types[0],e=this.series&&this.series[0]||{},c=e.mapTitle,b=this.langFormat("accessibility.seriesTypeDescriptions."+ a,{chart:this}),e={numSeries:this.series.length,numPoints:e.points&&e.points.length,chart:this,mapTitle:c},n=this.series&&1===this.series.length?"Single":"Multiple";if(a){if("map"===a)return c?this.langFormat("accessibility.chartTypes.mapTypeDescription",e):this.langFormat("accessibility.chartTypes.unknownMap",e);if(1]+(>|$)/g,""):c}function u(c,b){this.chart=c;this.id=b.id;this.keyCodeMap=b.keyCodeMap;this.validate=b.validate;this.init=b.init;this.terminate=b.terminate}function t(c){var b; c&&c.onclick&&k.createEvent&&(b=k.createEvent("Events"),b.initEvent("click",!0,!1),c.onclick(b))}function m(c){var b=c.series.chart.options.accessibility;return c.isNull&&b.keyboardNavigation.skipNullPoints||c.series.options.skipKeyboardNavigation||!c.series.visible||!1===c.visible||b.pointDescriptionThreshold&&b.pointDescriptionThreshold<=c.series.points.length}var f=a.win,k=f.document,h=a.each,g=a.addEvent,q=a.fireEvent,l=a.merge,d=a.pick,e;a.extend(a.SVGElement.prototype,{addFocusBorder:function(c, b){this.focusBorder&&this.removeFocusBorder();var a=this.getBBox();c=d(c,3);this.focusBorder=this.renderer.rect(a.x-c,a.y-c,a.width+2*c,a.height+2*c,b&&b.borderRadius).addClass("highcharts-focus-border").attr({stroke:b&&b.stroke,"stroke-width":b&&b.strokeWidth}).attr({zIndex:99}).add(this.parentGroup)},removeFocusBorder:function(){this.focusBorder&&(this.focusBorder.destroy(),delete this.focusBorder)}});a.Series.prototype.keyboardMoveVertical=!0;h(["column","pie"],function(c){a.seriesTypes[c]&&(a.seriesTypes[c].prototype.keyboardMoveVertical= !1)});a.setOptions({accessibility:{keyboardNavigation:{enabled:!0,focusBorder:{enabled:!0,hideBrowserFocusOutline:!0,style:{color:"#335cad",lineWidth:2,borderRadius:3},margin:2},skipNullPoints:!0}}});u.prototype={run:function(c){var b=this,a=c.which||c.keyCode,d=!1,e=!1;h(this.keyCodeMap,function(n){-1c&&db.dataMax&&(a=b.dataMax,d=a-e);this.setExtremes(d,a)};a.Chart.prototype.setFocusToElement=function(c,b){var a=this.options.accessibility.keyboardNavigation.focusBorder;b=b||c;b.element&&b.element.focus&&(b.element.focus(),a.hideBrowserFocusOutline&&b.css({outline:"none"}));a.enabled&&(this.focusElement&&this.focusElement.removeFocusBorder(),c.addFocusBorder(a.margin,{stroke:a.style.color,strokeWidth:a.style.lineWidth,borderRadius:a.style.borderRadius}),this.focusElement=c)};a.Point.prototype.highlight= function(){var c=this.series.chart;if(this.isNull)c.tooltip&&c.tooltip.hide(0);else this.onMouseOver();this.graphic&&c.setFocusToElement(this.graphic);c.highlightedPoint=this;return this};a.Chart.prototype.highlightAdjacentPoint=function(c){var b=this.series,a=this.highlightedPoint,d=a&&a.index||0,e=a&&a.series.points,f=this.series&&this.series[this.series.length-1],f=f&&f.points&&f.points[f.points.length-1];if(!b[0]||!b[0].points)return!1;if(a){if(e[d]!==a)for(f=0;ff&&c||0p||m(e))&&pa&&b.highlightLastExportItem()},terminate:function(){b.hideExportMenu()}}),a("mapZoom", [[[38,40,37,39],function(a){b[38===a||40===a?"yAxis":"xAxis"][0].panStep(39>a?-1:1)}],[[9],function(a,c){b.mapNavButtons[b.focusedMapNavButtonIx].setState(0);if(c.shiftKey&&!b.focusedMapNavButtonIx||!c.shiftKey&&b.focusedMapNavButtonIx)return b.mapZoom(),this.move(c.shiftKey?-1:1);b.focusedMapNavButtonIx+=c.shiftKey?-1:1;a=b.mapNavButtons[b.focusedMapNavButtonIx];b.setFocusToElement(a.box,a);a.setState(2)}],[[13,32],function(){t(b.mapNavButtons[b.focusedMapNavButtonIx].element)}]],{validate:function(){return b.mapZoom&& b.mapNavButtons&&2===b.mapNavButtons.length},init:function(a){var c=b.mapNavButtons[0],d=b.mapNavButtons[1],c=0c)return this.move(a);b.rangeSelector[c?"maxInput":"minInput"].focus()}]],{validate:function(){return b.rangeSelector&&b.rangeSelector.inputGroup&&"hidden"!==b.rangeSelector.inputGroup.element.getAttribute("visibility")&&!1!==b.options.rangeSelector.inputEnabled&&b.rangeSelector.minInput&&b.rangeSelector.maxInput}, init:function(a){b.highlightedInputRangeIx=0