highcharts
Version:
JavaScript charting framework
107 lines (104 loc) • 78.2 kB
JavaScript
/*
Highcharts JS v8.0.0 (2019-12-10)
Accessibility module
(c) 2010-2019 Highsoft AS
Author: Oystein Moseng
License: www.highcharts.com/license
*/
(function(a){"object"===typeof module&&module.exports?(a["default"]=a,module.exports=a):"function"===typeof define&&define.amd?define("highcharts/modules/accessibility",["highcharts"],function(p){a(p);a.Highcharts=p;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function p(a,h,n,m){a.hasOwnProperty(h)||(a[h]=m.apply(null,n))}a=a?a._modules:{};p(a,"modules/accessibility/utils/htmlUtilities.js",[a["parts/Globals.js"]],function(a){function l(a){return a.replace(/&/g,"&").replace(/</g,
"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}var n=a.merge,m=a.win,e=m.document;return{addClass:function(a,e){a.classList?a.classList.add(e):0>a.className.indexOf(e)&&(a.className+=e)},escapeStringForHTML:l,getElement:function(a){return e.getElementById(a)},getFakeMouseEvent:function(a){if("function"===typeof m.MouseEvent)return new m.MouseEvent(a);if(e.createEvent){var k=e.createEvent("MouseEvent");if(k.initMouseEvent)return k.initMouseEvent(a,
!0,!0,m,"click"===a?1:0,0,0,0,0,!1,!1,!1,!1,0,null),k}return{type:a}},removeElement:function(a){a&&a.parentNode&&a.parentNode.removeChild(a)},reverseChildNodes:function(a){for(var e=a.childNodes.length;e--;)a.appendChild(a.childNodes[e])},setElAttrs:function(a,e){Object.keys(e).forEach(function(f){var b=e[f];null===b?a.removeAttribute(f):(b=l(""+b),a.setAttribute(f,b))})},stripHTMLTagsFromString:function(a){return"string"===typeof a?a.replace(/<\/?[^>]+(>|$)/g,""):a},visuallyHideElement:function(a){n(!0,
a.style,{position:"absolute",width:"1px",height:"1px",overflow:"hidden","-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=1)",filter:"alpha(opacity=1)",opacity:"0.01"})}}});p(a,"modules/accessibility/utils/chartUtilities.js",[a["modules/accessibility/utils/htmlUtilities.js"],a["parts/Globals.js"]],function(a,h){function l(a){if(a.points&&a.points.length&&a.points[0].graphic)return a.points[0].graphic.element}function m(a){var b=l(a);return b&&b.parentNode||a.graph&&a.graph.element||a.group&&
a.group.element}function e(a,b){b.setAttribute("aria-hidden",!1);b!==a.renderTo&&b.parentNode&&(Array.prototype.forEach.call(b.parentNode.childNodes,function(c){c.hasAttribute("aria-hidden")||c.setAttribute("aria-hidden",!0)}),e(a,b.parentNode))}var k=a.stripHTMLTagsFromString,r=h.find;return{getChartTitle:function(a){return k(a.options.title.text||a.langFormat("accessibility.defaultChartTitle",{chart:a}))},getAxisDescription:function(a){return k(a&&(a.userOptions&&a.userOptions.accessibility&&a.userOptions.accessibility.description||
a.axisTitle&&a.axisTitle.textStr||a.options.id||a.categories&&"categories"||a.isDatetimeAxis&&"Time"||"values"))},getPointFromXY:function(a,b,c){for(var d=a.length,g;d--;)if(g=r(a[d].points||[],function(d){return d.x===b&&d.y===c}))return g},getSeriesFirstPointElement:l,getSeriesFromName:function(a,b){return b?(a.series||[]).filter(function(c){return c.name===b}):a.series},getSeriesA11yElement:m,unhideChartElementFromAT:e,hideSeriesFromAT:function(a){(a=m(a))&&a.setAttribute("aria-hidden",!0)}}});
p(a,"modules/accessibility/KeyboardNavigationHandler.js",[a["parts/Globals.js"]],function(a){function l(a,e){this.chart=a;this.keyCodeMap=e.keyCodeMap||[];this.validate=e.validate;this.init=e.init;this.terminate=e.terminate;this.response={success:1,prev:2,next:3,noHandler:4,fail:5}}var n=a.find;l.prototype={run:function(a){var e=a.which||a.keyCode,l=this.response.noHandler,r=n(this.keyCodeMap,function(a){return-1<a[0].indexOf(e)});r?l=r[1].call(this,e,a):9===e?l=this.response[a.shiftKey?"prev":"next"]:
27===e&&(this.chart&&this.chart.tooltip&&this.chart.tooltip.hide(0),l=this.response.success);return l}};return l});p(a,"modules/accessibility/utils/EventProvider.js",[a["parts/Globals.js"],a["parts/Utilities.js"]],function(a,h){h=h.extend;var l=function(){this.eventRemovers=[]};h(l.prototype,{addEvent:function(){var l=a.addEvent.apply(a,arguments);this.eventRemovers.push(l);return l},removeAddedEvents:function(){this.eventRemovers.forEach(function(a){a()});this.eventRemovers=[]}});return l});p(a,
"modules/accessibility/utils/DOMElementProvider.js",[a["parts/Globals.js"],a["parts/Utilities.js"],a["modules/accessibility/utils/htmlUtilities.js"]],function(a,h,n){var l=a.win.document;a=h.extend;var e=n.removeElement;n=function(){this.elements=[]};a(n.prototype,{createElement:function(){var a=l.createElement.apply(l,arguments);this.elements.push(a);return a},destroyCreatedElements:function(){this.elements.forEach(function(a){e(a)});this.elements=[]}});return n});p(a,"modules/accessibility/AccessibilityComponent.js",
[a["parts/Globals.js"],a["parts/Utilities.js"],a["modules/accessibility/utils/htmlUtilities.js"],a["modules/accessibility/utils/chartUtilities.js"],a["modules/accessibility/utils/EventProvider.js"],a["modules/accessibility/utils/DOMElementProvider.js"]],function(a,h,n,m,e,k){function l(){}var f=a.win,b=f.document,c=a.merge,d=a.fireEvent;a=h.extend;var g=n.removeElement,t=n.getFakeMouseEvent,w=m.unhideChartElementFromAT;l.prototype={initBase:function(a){this.chart=a;this.eventProvider=new e;this.domElementProvider=
new k;this.keyCodes={left:37,right:39,up:38,down:40,enter:13,space:32,esc:27,tab:9}},addEvent:function(){return this.eventProvider.addEvent.apply(this.eventProvider,arguments)},createElement:function(){return this.domElementProvider.createElement.apply(this.domElementProvider,arguments)},fireEventOnWrappedOrUnwrappedElement:function(a,c){var q=c.type;b.createEvent&&(a.dispatchEvent||a.fireEvent)?a.dispatchEvent?a.dispatchEvent(c):a.fireEvent(q,c):d(a,q,c)},fakeClickEvent:function(a){if(a){var c=t("click");
this.fireEventOnWrappedOrUnwrappedElement(a,c)}},addProxyGroup:function(a){this.createOrUpdateProxyContainer();var c=this.createElement("div");Object.keys(a||{}).forEach(function(d){null!==a[d]&&c.setAttribute(d,a[d])});this.chart.a11yProxyContainer.appendChild(c);return c},createOrUpdateProxyContainer:function(){var a=this.chart,c=a.renderer.box;a.a11yProxyContainer=a.a11yProxyContainer||this.createProxyContainerElement();c.nextSibling!==a.a11yProxyContainer&&a.container.insertBefore(a.a11yProxyContainer,
c.nextSibling)},createProxyContainerElement:function(){var a=b.createElement("div");a.className="highcharts-a11y-proxy-container";return a},createProxyButton:function(a,d,g,b,t){var q=a.element,u=this.createElement("button"),f=c({"aria-label":q.getAttribute("aria-label")},g);a=this.getElementPosition(b||a);Object.keys(f).forEach(function(a){null!==f[a]&&u.setAttribute(a,f[a])});u.className="highcharts-a11y-proxy-button";t&&this.addEvent(u,"click",t);this.setProxyButtonStyle(u,a);this.proxyMouseEventsForButton(q,
u);d.appendChild(u);f["aria-hidden"]||w(this.chart,u);return u},getElementPosition:function(a){var c=a.element;return(a=this.chart.renderTo)&&c&&c.getBoundingClientRect?(c=c.getBoundingClientRect(),a=a.getBoundingClientRect(),{x:c.left-a.left,y:c.top-a.top,width:c.right-c.left,height:c.bottom-c.top}):{x:0,y:0,width:1,height:1}},setProxyButtonStyle:function(a,d){c(!0,a.style,{"border-width":0,"background-color":"transparent",cursor:"pointer",outline:"none",opacity:.001,filter:"alpha(opacity=1)","-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=1)",
zIndex:999,overflow:"hidden",padding:0,margin:0,display:"block",position:"absolute",width:(d.width||1)+"px",height:(d.height||1)+"px",left:(d.x||0)+"px",top:(d.y||0)+"px"})},proxyMouseEventsForButton:function(a,c){var d=this;"click touchstart touchend touchcancel touchmove mouseover mouseenter mouseleave mouseout".split(" ").forEach(function(q){d.addEvent(c,q,function(c){var q=d.cloneMouseEvent(c);a&&d.fireEventOnWrappedOrUnwrappedElement(a,q);c.stopPropagation();c.preventDefault()})})},cloneMouseEvent:function(a){if("function"===
typeof f.MouseEvent)return new f.MouseEvent(a.type,a);if(b.createEvent){var c=b.createEvent("MouseEvent");if(c.initMouseEvent)return c.initMouseEvent(a.type,a.bubbles,a.cancelable,a.view||f,a.detail,a.screenX,a.screenY,a.clientX,a.clientY,a.ctrlKey,a.altKey,a.shiftKey,a.metaKey,a.button,a.relatedTarget),c}return t(a.type)},destroyBase:function(){g(this.chart.a11yProxyContainer);this.domElementProvider.destroyCreatedElements();this.eventProvider.removeAddedEvents()}};a(l.prototype,{init:function(){},
getKeyboardNavigation:function(){},onChartUpdate:function(){},onChartRender:function(){},destroy:function(){}});return l});p(a,"modules/accessibility/KeyboardNavigation.js",[a["parts/Globals.js"],a["modules/accessibility/utils/htmlUtilities.js"],a["modules/accessibility/KeyboardNavigationHandler.js"],a["modules/accessibility/utils/EventProvider.js"]],function(a,h,n,m){function e(a,d){this.init(a,d)}var l=a.merge,r=a.win,f=r.document,b=h.getElement;e.prototype={init:function(a,d){var c=this,b=this.eventProvider=
new m;this.chart=a;this.components=d;this.modules=[];this.currentModuleIx=0;b.addEvent(a.renderTo,"keydown",function(a){c.onKeydown(a)});b.addEvent(f,"mouseup",function(){c.onMouseUp()});this.update();this.modules.length&&this.modules[0].init(1)},update:function(a){var c=this.chart.options.accessibility;c=c&&c.keyboardNavigation;var b=this.components;this.updateContainerTabindex();c&&c.enabled&&a&&a.length?(this.modules=a.reduce(function(a,c){c=b[c].getKeyboardNavigation();return a.concat(c)},[new n(this.chart,
{init:function(){}})]),this.updateExitAnchor()):(this.modules=[],this.currentModuleIx=0,this.removeExitAnchor())},onMouseUp:function(){if(!(this.keyboardReset||this.chart.pointer&&this.chart.pointer.chartPosition)){var a=this.chart,d=this.modules&&this.modules[this.currentModuleIx||0];d&&d.terminate&&d.terminate();a.focusElement&&a.focusElement.removeFocusBorder();this.currentModuleIx=0;this.keyboardReset=!0}},onKeydown:function(a){a=a||r.event;var c,b=this.modules&&this.modules.length&&this.modules[this.currentModuleIx];
this.keyboardReset=!1;if(b){var f=b.run(a);f===b.response.success?c=!0:f===b.response.prev?c=this.prev():f===b.response.next&&(c=this.next());c&&(a.preventDefault(),a.stopPropagation())}},prev:function(){return this.move(-1)},next:function(){return this.move(1)},move:function(a){var c=this.modules&&this.modules[this.currentModuleIx];c&&c.terminate&&c.terminate(a);this.chart.focusElement&&this.chart.focusElement.removeFocusBorder();this.currentModuleIx+=a;if(c=this.modules&&this.modules[this.currentModuleIx]){if(c.validate&&
!c.validate())return this.move(a);if(c.init)return c.init(a),!0}this.currentModuleIx=0;0<a?(this.exiting=!0,this.exitAnchor.focus()):this.chart.renderTo.focus();return!1},updateExitAnchor:function(){var a=b("highcharts-end-of-chart-marker-"+this.chart.index);this.removeExitAnchor();a?(this.makeElementAnExitAnchor(a),this.exitAnchor=a):this.createExitAnchor()},updateContainerTabindex:function(){var a=this.chart.options.accessibility;a=a&&a.keyboardNavigation;a=!(a&&!1===a.enabled);var d=this.chart.container,
b=d.getAttribute("tabIndex");a&&!b?d.setAttribute("tabindex","0"):a||"0"!==b||d.removeAttribute("tabindex")},makeElementAnExitAnchor:function(a){a.setAttribute("class","highcharts-exit-anchor");a.setAttribute("tabindex","0");a.setAttribute("aria-hidden",!1);this.addExitAnchorEventsToEl(a)},createExitAnchor:function(){var a=this.chart,d=this.exitAnchor=f.createElement("div");l(!0,d.style,{position:"absolute",width:"1px",height:"1px",zIndex:0,overflow:"hidden",outline:"none"});a.renderTo.appendChild(d);
this.makeElementAnExitAnchor(d)},removeExitAnchor:function(){this.exitAnchor&&this.exitAnchor.parentNode&&(this.exitAnchor.parentNode.removeChild(this.exitAnchor),delete this.exitAnchor)},addExitAnchorEventsToEl:function(a){var c=this.chart,b=this;this.eventProvider.addEvent(a,"focus",function(a){a=a||r.event;a.relatedTarget&&c.container.contains(a.relatedTarget)||b.exiting?b.exiting=!1:(c.renderTo.focus(),a.preventDefault(),b.modules&&b.modules.length&&(b.currentModuleIx=b.modules.length-1,(a=b.modules[b.currentModuleIx])&&
a.validate&&!a.validate()?b.prev():a&&a.init(-1)))})},destroy:function(){this.removeExitAnchor();this.eventProvider.removeAddedEvents();"0"===this.chart.container.getAttribute("tabindex")&&this.chart.container.removeAttribute("tabindex")}};return e});p(a,"modules/accessibility/components/LegendComponent.js",[a["parts/Globals.js"],a["parts/Utilities.js"],a["modules/accessibility/AccessibilityComponent.js"],a["modules/accessibility/KeyboardNavigationHandler.js"],a["modules/accessibility/utils/htmlUtilities.js"]],
function(a,h,n,m,e){h=h.extend;var l=e.stripHTMLTagsFromString,r=e.removeElement;a.Chart.prototype.highlightLegendItem=function(f){var b=this.legend.allItems,c=this.highlightedLegendItemIx;if(b[f]){b[c]&&a.fireEvent(b[c].legendGroup.element,"mouseout");c=this.legend;var d=c.allItems[f].pageIx,g=c.currentPage;"undefined"!==typeof d&&d+1!==g&&c.scroll(1+d-g);this.setFocusToElement(b[f].legendItem,b[f].a11yProxyElement);a.fireEvent(b[f].legendGroup.element,"mouseover");return!0}return!1};a.addEvent(a.Legend,
"afterColorizeItem",function(a){var b=a.item;this.chart.options.accessibility.enabled&&b&&b.a11yProxyElement&&b.a11yProxyElement.setAttribute("aria-pressed",a.visible?"false":"true")});e=function(){};e.prototype=new n;h(e.prototype,{init:function(){var f=this;this.addEvent(a.Legend,"afterScroll",function(){this.chart===f.chart&&f.updateProxies()})},updateLegendItemProxyVisibility:function(){var a=this.chart.legend,b=a.currentPage||1;(a.allItems||[]).forEach(function(a){var c=(a.pageIx||0)!==b-1;a.a11yProxyElement&&
(a.a11yProxyElement.style.visibility=c?"hidden":"visible")})},onChartRender:function(){this.legendProxyButtonClicked?delete this.legendProxyButtonClicked:this.updateProxies()},updateProxies:function(){r(this.legendProxyGroup);var a=this.chart,b=a.legend&&a.legend.allItems,c=a.options.legend.accessibility||{};!b||!b.length||a.colorAxis&&a.colorAxis.length||!1===c.enabled||(this.addLegendProxyGroup(),this.proxyLegendItems(),this.updateLegendItemProxyVisibility())},addLegendProxyGroup:function(){var a=
this.chart.options.accessibility,b=this.chart.langFormat("accessibility.legend.legendLabel",{});this.legendProxyGroup=this.addProxyGroup({"aria-label":b,role:"all"===a.landmarkVerbosity?"region":null})},proxyLegendItems:function(){var a=this;(this.chart.legend&&this.chart.legend.allItems||[]).forEach(function(b){b.legendItem&&b.legendItem.element&&a.proxyLegendItem(b)})},proxyLegendItem:function(a){var b=this,c=this.chart.langFormat("accessibility.legend.legendItem",{chart:this.chart,itemName:l(a.name)});
a.a11yProxyElement=this.createProxyButton(a.legendItem,this.legendProxyGroup,{tabindex:-1,"aria-pressed":!a.visible,"aria-label":c},a.legendGroup.div?a.legendItem:a.legendGroup,function(){b.legendProxyButtonClicked=!0})},getKeyboardNavigation:function(){var a=this.keyCodes,b=this;return new m(this.chart,{keyCodeMap:[[[a.left,a.right,a.up,a.down],function(a){return b.onKbdArrowKey(this,a)}],[[a.enter,a.space],function(){return b.onKbdClick(this)}]],validate:function(){return b.shouldHaveLegendNavigation()},
init:function(a){return b.onKbdNavigationInit(a)}})},onKbdArrowKey:function(a,b){var c=this.keyCodes,d=a.response,g=this.chart,e=g.options.accessibility,f=g.legend.allItems.length;b=b===c.left||b===c.up?-1:1;return g.highlightLegendItem(this.highlightedLegendItemIx+b)?(this.highlightedLegendItemIx+=b,d.success):1<f&&e.keyboardNavigation.wrapAround?(a.init(b),d.success):d[0<b?"next":"prev"]},onKbdClick:function(e){var b=this.chart.legend.allItems[this.highlightedLegendItemIx];b&&b.a11yProxyElement&&
a.fireEvent(b.a11yProxyElement,"click");return e.response.success},shouldHaveLegendNavigation:function(){var a=this.chart,b=a.colorAxis&&a.colorAxis.length,c=(a.options.legend||{}).accessibility||{};return!!(a.legend&&a.legend.allItems&&a.legend.display&&!b&&c.enabled&&c.keyboardNavigation&&c.keyboardNavigation.enabled)},onKbdNavigationInit:function(a){var b=this.chart,c=b.legend.allItems.length-1;a=0<a?0:c;b.highlightLegendItem(a);this.highlightedLegendItemIx=a}});return e});p(a,"modules/accessibility/components/MenuComponent.js",
[a["parts/Globals.js"],a["parts/Utilities.js"],a["modules/accessibility/AccessibilityComponent.js"],a["modules/accessibility/KeyboardNavigationHandler.js"],a["modules/accessibility/utils/chartUtilities.js"],a["modules/accessibility/utils/htmlUtilities.js"]],function(a,h,n,m,e,k){h=h.extend;var l=e.unhideChartElementFromAT,f=k.removeElement,b=k.getFakeMouseEvent;a.Chart.prototype.showExportMenu=function(){if(this.exportSVGElements&&this.exportSVGElements[0]){var a=this.exportSVGElements[0].element;
if(a.onclick)a.onclick(b("click"))}};a.Chart.prototype.hideExportMenu=function(){var a=this.exportDivElements;a&&this.exportContextMenu&&(a.forEach(function(a){if("highcharts-menu-item"===a.className&&a.onmouseout)a.onmouseout(b("mouseout"))}),this.highlightedExportItemIx=0,this.exportContextMenu.hideMenu(),this.container.focus())};a.Chart.prototype.highlightExportItem=function(a){var c=this.exportDivElements&&this.exportDivElements[a],g=this.exportDivElements&&this.exportDivElements[this.highlightedExportItemIx];
if(c&&"LI"===c.tagName&&(!c.children||!c.children.length)){var e=!!(this.renderTo.getElementsByTagName("g")[0]||{}).focus;c.focus&&e&&c.focus();if(g&&g.onmouseout)g.onmouseout(b("mouseout"));if(c.onmouseover)c.onmouseover(b("mouseover"));this.highlightedExportItemIx=a;return!0}return!1};a.Chart.prototype.highlightLastExportItem=function(){var a;if(this.exportDivElements)for(a=this.exportDivElements.length;a--;)if(this.highlightExportItem(a))return!0;return!1};a=function(){};a.prototype=new n;h(a.prototype,
{init:function(){var a=this.chart,d=this;this.addEvent(a,"exportMenuShown",function(){d.onMenuShown()});this.addEvent(a,"exportMenuHidden",function(){d.onMenuHidden()})},onMenuHidden:function(){var a=this.chart.exportContextMenu;a&&a.setAttribute("aria-hidden","true");this.setExportButtonExpandedState("false")},onMenuShown:function(){var a=this.chart,d=a.exportContextMenu;d&&(this.addAccessibleContextMenuAttribs(),l(a,d));this.setExportButtonExpandedState("true")},setExportButtonExpandedState:function(a){var c=
this.exportButtonProxy;c&&c.setAttribute("aria-expanded",a)},onChartRender:function(){var a=this.chart,d=a.options.accessibility;f(this.exportProxyGroup);var b=a.options.exporting;b&&!1!==b.enabled&&b.accessibility&&b.accessibility.enabled&&a.exportSVGElements&&a.exportSVGElements[0]&&a.exportSVGElements[0].element&&(this.exportProxyGroup=this.addProxyGroup("all"===d.landmarkVerbosity?{"aria-label":a.langFormat("accessibility.exporting.exportRegionLabel",{chart:a}),role:"region"}:{}),this.exportButtonProxy=
this.createProxyButton(this.chart.exportSVGElements[0],this.exportProxyGroup,{"aria-label":a.langFormat("accessibility.exporting.menuButtonLabel",{chart:a}),"aria-expanded":"false"}))},addAccessibleContextMenuAttribs:function(){var a=this.chart,b=a.exportDivElements;b&&b.length&&(b.forEach(function(a){"LI"!==a.tagName||a.children&&a.children.length?a.setAttribute("aria-hidden","true"):a.setAttribute("tabindex",-1)}),b=b[0].parentNode,b.removeAttribute("aria-hidden"),b.setAttribute("aria-label",a.langFormat("accessibility.exporting.chartMenuLabel",
{chart:a})))},getKeyboardNavigation:function(){var a=this.keyCodes,b=this.chart,g=this;return new m(b,{keyCodeMap:[[[a.left,a.up],function(){return g.onKbdPrevious(this)}],[[a.right,a.down],function(){return g.onKbdNext(this)}],[[a.enter,a.space],function(){return g.onKbdClick(this)}],[[a.esc],function(){return this.response.prev}]],validate:function(){return b.exportChart&&!1!==b.options.exporting.enabled&&!1!==b.options.exporting.accessibility.enabled},init:function(a){b.showExportMenu();0>a?b.highlightLastExportItem():
b.highlightExportItem(0)},terminate:function(){b.hideExportMenu()}})},onKbdPrevious:function(a){var b=this.chart,c=b.options.accessibility;a=a.response;for(var e=b.highlightedExportItemIx||0;e--;)if(b.highlightExportItem(e))return a.success;return c.keyboardNavigation.wrapAround?(b.highlightLastExportItem(),a.success):a.prev},onKbdNext:function(a){var b=this.chart,c=b.options.accessibility;a=a.response;for(var e=(b.highlightedExportItemIx||0)+1;e<b.exportDivElements.length;++e)if(b.highlightExportItem(e))return a.success;
return c.keyboardNavigation.wrapAround?(b.highlightExportItem(0),a.success):a.next},onKbdClick:function(a){var b=this.chart;this.fakeClickEvent(b.exportDivElements[b.highlightedExportItemIx]);return a.response.success}});return a});p(a,"modules/accessibility/components/SeriesComponent/SeriesKeyboardNavigation.js",[a["parts/Globals.js"],a["parts/Utilities.js"],a["modules/accessibility/KeyboardNavigationHandler.js"],a["modules/accessibility/utils/EventProvider.js"],a["modules/accessibility/utils/chartUtilities.js"]],
function(a,h,n,m,e){function k(a){var b=a.index,c=a.series.points,q=c.length;if(c[b]!==a)for(;q--;){if(c[q]===a)return q}else return b}function l(a){var b=a.chart.options.accessibility.keyboardNavigation.seriesNavigation,c=a.options.accessibility||{},d=c.keyboardNavigation;return d&&!1===d.enabled||!1===c.enabled||!1===a.options.enableMouseTracking||!a.visible||b.pointNavigationEnabledThreshold&&b.pointNavigationEnabledThreshold<=a.points.length}function f(a){var b=a.series.chart.options.accessibility;
return a.isNull&&b.keyboardNavigation.seriesNavigation.skipNullPoints||!1===a.visible||l(a.series)}function b(a,b,c,d){var q=Infinity,u=b.points.length,e=function(a){return!(t(a.plotX)&&t(a.plotY))};if(!e(a)){for(;u--;){var g=b.points[u];if(!e(g)&&(g=(a.plotX-g.plotX)*(a.plotX-g.plotX)*(c||1)+(a.plotY-g.plotY)*(a.plotY-g.plotY)*(d||1),g<q)){q=g;var f=u}}return t(f)?b.points[f]:void 0}}function c(a){var b=!1;delete a.highlightedPoint;return b=a.series.reduce(function(a,b){return a||b.highlightFirstValidPoint()},
!1)}function d(a,b){this.keyCodes=b;this.chart=a}var g=h.extend,t=h.defined,w=e.getPointFromXY,y=e.getSeriesFromName;a.Series.prototype.keyboardMoveVertical=!0;["column","pie"].forEach(function(b){a.seriesTypes[b]&&(a.seriesTypes[b].prototype.keyboardMoveVertical=!1)});a.Point.prototype.highlight=function(){var a=this.series.chart;if(this.isNull)a.tooltip&&a.tooltip.hide(0);else this.onMouseOver();this.graphic&&a.setFocusToElement(this.graphic);a.highlightedPoint=this;return this};a.Chart.prototype.highlightAdjacentPoint=
function(a){var b=this.series,c=this.highlightedPoint,d=c&&k(c)||0,v=c&&c.series.points,e=this.series&&this.series[this.series.length-1];e=e&&e.points&&e.points[e.points.length-1];if(!b[0]||!b[0].points)return!1;if(c){if(b=b[c.series.index+(a?1:-1)],d=v[d+(a?1:-1)],!d&&b&&(d=b.points[a?0:b.points.length-1]),!d)return!1}else d=a?b[0].points[0]:e;return f(d)?(b=d.series,l(b)?this.highlightedPoint=a?b.points[b.points.length-1]:b.points[0]:this.highlightedPoint=d,this.highlightAdjacentPoint(a)):d.highlight()};
a.Series.prototype.highlightFirstValidPoint=function(){var a=this.chart.highlightedPoint,b=(a&&a.series)===this?k(a):0;a=this.points;var c=a.length;if(a&&c){for(var d=b;d<c;++d)if(!f(a[d]))return a[d].highlight();for(;0<=b;--b)if(!f(a[b]))return a[b].highlight()}return!1};a.Chart.prototype.highlightAdjacentSeries=function(a){var c,d=this.highlightedPoint;var e=(c=this.series&&this.series[this.series.length-1])&&c.points&&c.points[c.points.length-1];if(!this.highlightedPoint)return c=a?this.series&&
this.series[0]:c,(e=a?c&&c.points&&c.points[0]:e)?e.highlight():!1;c=this.series[d.series.index+(a?-1:1)];if(!c)return!1;e=b(d,c,4);if(!e)return!1;if(l(c))return e.highlight(),a=this.highlightAdjacentSeries(a),a?a:(d.highlight(),!1);e.highlight();return e.series.highlightFirstValidPoint()};a.Chart.prototype.highlightAdjacentPointVertical=function(a){var b=this.highlightedPoint,c=Infinity,d;if(!t(b.plotX)||!t(b.plotY))return!1;this.series.forEach(function(e){l(e)||e.points.forEach(function(v){if(t(v.plotY)&&
t(v.plotX)&&v!==b){var g=v.plotY-b.plotY,q=Math.abs(v.plotX-b.plotX);q=Math.abs(g)*Math.abs(g)+q*q*4;e.yAxis.reversed&&(g*=-1);!(0>=g&&a||0<=g&&!a||5>q||f(v))&&q<c&&(c=q,d=v)}})});return d?d.highlight():!1};g(d.prototype,{init:function(){var b=this,d=this.chart,e=this.eventProvider=new m;e.addEvent(a.Series,"destroy",function(){return b.onSeriesDestroy(this)});e.addEvent(d,"afterDrilldown",function(){c(this);this.focusElement&&this.focusElement.removeFocusBorder()});e.addEvent(d,"drilldown",function(a){a=
a.point;var c=a.series;b.lastDrilledDownPoint={x:a.x,y:a.y,seriesName:c?c.name:""}});e.addEvent(d,"drillupall",function(){setTimeout(function(){b.onDrillupAll()},10)})},onDrillupAll:function(){var a=this.lastDrilledDownPoint,b=this.chart,c=a&&y(b,a.seriesName),d;a&&c&&t(a.x)&&t(a.y)&&(d=w(c,a.x,a.y));b.container&&b.container.focus();d&&d.highlight&&d.highlight();b.focusElement&&b.focusElement.removeFocusBorder()},getKeyboardNavigationHandler:function(){var a=this,b=this.keyCodes,c=this.chart,d=c.inverted;
return new n(c,{keyCodeMap:[[d?[b.up,b.down]:[b.left,b.right],function(b){return a.onKbdSideways(this,b)}],[d?[b.left,b.right]:[b.up,b.down],function(b){return a.onKbdVertical(this,b)}],[[b.enter,b.space],function(){c.highlightedPoint&&c.highlightedPoint.firePointEvent("click");return this.response.success}]],init:function(b){return a.onHandlerInit(this,b)},terminate:function(){return a.onHandlerTerminate()}})},onKbdSideways:function(a,b){var c=this.keyCodes;return this.attemptHighlightAdjacentPoint(a,
b===c.right||b===c.down)},onKbdVertical:function(a,b){var c=this.chart,d=this.keyCodes;b=b===d.down||b===d.right;d=c.options.accessibility.keyboardNavigation.seriesNavigation;if(d.mode&&"serialize"===d.mode)return this.attemptHighlightAdjacentPoint(a,b);c[c.highlightedPoint&&c.highlightedPoint.series.keyboardMoveVertical?"highlightAdjacentPointVertical":"highlightAdjacentSeries"](b);return a.response.success},onHandlerInit:function(a,b){var d=this.chart;if(0<b)c(d);else{b=d.series.length;for(var e;b--&&
!(d.highlightedPoint=d.series[b].points[d.series[b].points.length-1],e=d.series[b].highlightFirstValidPoint()););}return a.response.success},onHandlerTerminate:function(){var a=this.chart;a.tooltip&&a.tooltip.hide(0);delete a.highlightedPoint},attemptHighlightAdjacentPoint:function(a,b){var c=this.chart,d=c.options.accessibility.keyboardNavigation.wrapAround;return c.highlightAdjacentPoint(b)?a.response.success:d?a.init(b?1:-1):a.response[b?"next":"prev"]},onSeriesDestroy:function(a){var b=this.chart;
b.highlightedPoint&&b.highlightedPoint.series===a&&(delete b.highlightedPoint,b.focusElement&&b.focusElement.removeFocusBorder())},destroy:function(){this.eventProvider.removeAddedEvents()}});return d});p(a,"modules/accessibility/components/SeriesComponent/SeriesDescriber.js",[a["parts/Globals.js"],a["parts/Utilities.js"],a["modules/accessibility/utils/htmlUtilities.js"],a["modules/accessibility/utils/chartUtilities.js"]],function(a,h,n,m){function e(a){var b=a.index;return a.series&&a.series.data&&
B(b)?v(a.series.data,function(a){return!!(a&&"undefined"!==typeof a.index&&a.index>b&&a.graphic&&a.graphic.element)})||null:null}function k(a){var b=a.chart.options.accessibility.series.pointDescriptionEnabledThreshold;return!!(!1!==b&&a.points&&a.points.length>=b)}function l(a){var b=a.options.accessibility||{};return!k(a)&&!b.exposeAsGroupOnly}function f(a){var b=a.chart.options.accessibility.keyboardNavigation.seriesNavigation;return!(!a.points||!(a.points.length<b.pointNavigationEnabledThreshold||
!1===b.pointNavigationEnabledThreshold))}function b(a,b){var c=a.series.chart,d=c.options.accessibility.point||{};a=a.series.tooltipOptions||{};c=c.options.lang;return x(b)?C(b,d.valueDecimals||a.valueDecimals||-1,c.decimalPoint,c.accessibility.thousandsSep||c.thousandsSep):b}function c(a){var b=(a.options.accessibility||{}).description;return b&&a.chart.langFormat("accessibility.series.description",{description:b,series:a})||""}function d(a,b){return a.chart.langFormat("accessibility.series."+b+
"Description",{name:F(a[b]),series:a})}function g(b){var c=b.series,d=c.chart,e=d.options.accessibility.point||{};if(c.xAxis&&c.xAxis.isDatetimeAxis)return c=a.Tooltip.prototype.getXDateFormat.call({getDateFormat:a.Tooltip.prototype.getDateFormat,chart:d},b,d.options.tooltip,c.xAxis),e=e.dateFormatter&&e.dateFormatter(b)||e.dateFormat||c,d.time.dateFormat(e,b.x,void 0)}function t(a){var b=g(a),c=(a.series.xAxis||{}).categories&&B(a.category)&&(""+a.category).replace("<br/>"," "),d=a.id&&0>a.id.indexOf("highcharts-"),
e="x, "+a.x;return a.name||b||c||(d?a.id:e)}function w(a,c,d){var e=c||"",g=d||"";return a.series.pointArrayMap.reduce(function(c,d){c+=c.length?", ":"";var v=b(a,z(a[d],a.options[d]));return c+(d+": "+e+v+g)},"")}function y(a){var c=a.series,d=c.chart.options.accessibility.point||{},e=c.tooltipOptions||{},g=d.valuePrefix||e.valuePrefix||"";d=d.valueSuffix||e.valueSuffix||"";e=b(a,a["undefined"!==typeof a.value?"value":"y"]);return a.isNull?c.chart.langFormat("accessibility.series.nullPointValue",
{point:a}):c.pointArrayMap?w(a,g,d):g+e+d}function q(a){var b=a.series,c=b.chart,d=a.options&&a.options.accessibility&&a.options.accessibility.description,e=z(b.xAxis&&b.xAxis.options.accessibility&&b.xAxis.options.accessibility.enabled,!c.angular),g=t(a),v=y(a);return(B(a.index)?a.index+1+". ":"")+(e?g+", ":"")+(v+".")+(d?" "+d:"")+(1<c.series.length&&b.name?" "+b.name+".":"")}function u(a){var b=l(a),c=f(a);(b||c)&&a.points.forEach(function(a){var c=a.isNull,d;if(!(d=a.graphic&&a.graphic.element)){if(c){d=
a.series;var g=e(a);d=(c=g&&g.graphic)?c.parentGroup:d.graph||d.group;g=g?{x:z(a.plotX,g.plotX,0),y:z(a.plotY,g.plotY,0)}:{x:z(a.plotX,0),y:z(a.plotY,0)};g=a.series.chart.renderer.rect(g.x,g.y,1,1);g.attr({"class":"highcharts-a11y-dummy-point",fill:"none","fill-opacity":0,"stroke-opacity":0,opacity:0});d&&d.element?(a.graphic=g,g.add(d),d.element.insertBefore(g.element,c?c.element:null),c=g.element):c=void 0}d=c}if(c=d)c.setAttribute("tabindex","-1"),b?(g=a.series,d=g.chart.options.accessibility.point||
{},g=g.options.accessibility||{},a=p(g.pointDescriptionFormatter&&g.pointDescriptionFormatter(a)||d.descriptionFormatter&&d.descriptionFormatter(a)||q(a)),c.setAttribute("role","img"),c.setAttribute("aria-label",a)):c.setAttribute("aria-hidden",!0)})}function A(a){var b=a.chart,e=b.types||[],g=c(a),v=function(c){return b[c]&&1<b[c].length&&a[c]},t=d(a,"xAxis"),f=d(a,"yAxis"),q={name:a.name||"",ix:a.index+1,numSeries:b.series&&b.series.length,numPoints:a.points&&a.points.length,series:a};e=1<e.length?
"Combination":"";return(b.langFormat("accessibility.series.summary."+a.type+e,q)||b.langFormat("accessibility.series.summary.default"+e,q))+(g?" "+g:"")+(v("yAxis")?" "+f:"")+(v("xAxis")?" "+t:"")}var C=a.numberFormat,v=a.find,x=h.isNumber,z=h.pick,B=h.defined,p=n.stripHTMLTagsFromString,E=n.reverseChildNodes,F=m.getAxisDescription,G=m.getSeriesFirstPointElement,H=m.getSeriesA11yElement,I=m.unhideChartElementFromAT;return{describeSeries:function(a){var b=a.chart,c=G(a),d=H(a);if(d){d.lastChild===
c&&E(d);u(a);I(b,d);var e=a.chart;b=e.options.chart||{};c=1<e.series.length;e=e.options.accessibility.series.describeSingleSeries;var g=(a.options.accessibility||{}).exposeAsGroupOnly;b.options3d&&b.options3d.enabled&&c||!(c||e||g||k(a))?d.setAttribute("aria-label",""):(b=a.chart.options.accessibility,c=b.landmarkVerbosity,(a.options.accessibility||{}).exposeAsGroupOnly?d.setAttribute("role","img"):"all"===c&&d.setAttribute("role","region"),d.setAttribute("tabindex","-1"),d.setAttribute("aria-label",
p(b.series.descriptionFormatter&&b.series.descriptionFormatter(a)||A(a))))}},defaultPointDescriptionFormatter:q,defaultSeriesDescriptionFormatter:A,getPointA11yTimeDescription:g,getPointXDescription:t,getPointValueDescription:y}});p(a,"modules/accessibility/components/SeriesComponent/NewDataAnnouncer.js",[a["parts/Globals.js"],a["parts/Utilities.js"],a["modules/accessibility/utils/htmlUtilities.js"],a["modules/accessibility/utils/chartUtilities.js"],a["modules/accessibility/components/SeriesComponent/SeriesDescriber.js"],
a["modules/accessibility/utils/EventProvider.js"],a["modules/accessibility/utils/DOMElementProvider.js"]],function(a,h,n,m,e,k,r){function f(a){var b=a.series.data.filter(function(b){return a.x===b.x&&a.y===b.y});return 1===b.length?b[0]:a}function b(a,b){var c=(a||[]).concat(b||[]).reduce(function(a,b){a[b.name+b.index]=b;return a},{});return Object.keys(c).map(function(a){return c[a]})}var c=h.extend,d=h.defined,g=n.visuallyHideElement,t=m.getChartTitle,l=e.defaultPointDescriptionFormatter,y=e.defaultSeriesDescriptionFormatter;
h=function(a){this.chart=a};c(h.prototype,{init:function(){this.lastAnnouncementTime=0;this.dirty={allSeries:{}};this.eventProvider=new k;this.domElementProvider=new r;this.announceRegion=this.addAnnounceRegion();this.addEventListeners()},destroy:function(){this.eventProvider.removeAddedEvents();this.domElementProvider.destroyCreatedElements()},addAnnounceRegion:function(){var a=this.chart,b=this.domElementProvider.createElement("div"),c=a.options.accessibility.announceNewData;b.setAttribute("aria-hidden",
!1);b.setAttribute("aria-live",c.interruptUser?"assertive":"polite");g(b);a.renderTo.insertBefore(b,a.renderTo.firstChild);return b},addEventListeners:function(){var b=this,c=this.chart,d=this.eventProvider;d.addEvent(c,"afterDrilldown",function(){b.lastAnnouncementTime=0});d.addEvent(a.Series,"updatedData",function(){b.onSeriesUpdatedData(this)});d.addEvent(c,"afterAddSeries",function(a){b.onSeriesAdded(a.series)});d.addEvent(a.Series,"addPoint",function(a){b.onPointAdded(a.point)});d.addEvent(c,
"redraw",function(){b.announceDirtyData()})},onSeriesUpdatedData:function(a){var b=this.chart;a.chart===b&&b.options.accessibility.announceNewData.enabled&&(this.dirty.hasDirty=!0,this.dirty.allSeries[a.name+a.index]=a)},onSeriesAdded:function(a){this.chart.options.accessibility.announceNewData.enabled&&(this.dirty.hasDirty=!0,this.dirty.allSeries[a.name+a.index]=a,this.dirty.newSeries=d(this.dirty.newSeries)?void 0:a)},onPointAdded:function(a){var b=a.series.chart;this.chart===b&&b.options.accessibility.announceNewData.enabled&&
(this.dirty.newPoint=d(this.dirty.newPoint)?void 0:a)},announceDirtyData:function(){var a=this;if(this.chart.options.accessibility.announceNewData&&this.dirty.hasDirty){var b=this.dirty.newPoint;b&&(b=f(b));this.queueAnnouncement(Object.keys(this.dirty.allSeries).map(function(b){return a.dirty.allSeries[b]}),this.dirty.newSeries,b);this.dirty={allSeries:{}}}},queueAnnouncement:function(a,c,d){var e=this.chart.options.accessibility.announceNewData;if(e.enabled){var g=this,t=+new Date;e=Math.max(0,
e.minAnnounceInterval-(t-this.lastAnnouncementTime));a=b(this.queuedAnnouncement&&this.queuedAnnouncement.series,a);if(c=this.buildAnnouncementMessage(a,c,d))this.queuedAnnouncement&&clearTimeout(this.queuedAnnouncementTimer),this.queuedAnnouncement={time:t,message:c,series:a},g.queuedAnnouncementTimer=setTimeout(function(){g&&g.announceRegion&&(g.lastAnnouncementTime=+new Date,g.liveRegionSpeak(g.queuedAnnouncement.message),delete g.queuedAnnouncement,delete g.queuedAnnouncementTimer)},e)}},liveRegionSpeak:function(a){var b=
this;this.announceRegion.innerHTML=a;this.clearAnnouncementContainerTimer&&clearTimeout(this.clearAnnouncementContainerTimer);this.clearAnnouncementContainerTimer=setTimeout(function(){b.announceRegion.innerHTML="";delete b.clearAnnouncementContainerTimer},1E3)},buildAnnouncementMessage:function(b,c,d){var e=this.chart,g=e.options.accessibility.announceNewData;if(g.announcementFormatter&&(b=g.announcementFormatter(b,c,d),!1!==b))return b.length?b:null;b=a.charts&&1<a.charts.length?"Multiple":"Single";
b=c?"newSeriesAnnounce"+b:d?"newPointAnnounce"+b:"newDataAnnounce";g=t(e);return e.langFormat("accessibility.announceNewData."+b,{chartTitle:g,seriesDesc:c?y(c):null,pointDesc:d?l(d):null,point:d,series:c})}});return h});p(a,"modules/accessibility/components/SeriesComponent/forcedMarkers.js",[a["parts/Globals.js"]],function(a){function h(a){l(!0,a,{marker:{enabled:!0,states:{normal:{opacity:0}}}})}var l=a.merge;return function(){a.addEvent(a.Series,"render",function(){var a=this.options,e=this.chart.options.accessibility.enabled,
k=!1!==(this.options.accessibility&&this.options.accessibility.enabled);var r=this.chart.options.accessibility;r=this.points.length<r.series.pointDescriptionEnabledThreshold||!1===r.series.pointDescriptionEnabledThreshold;var f=this.chart.options.accessibility.keyboardNavigation.seriesNavigation;f=this.points.length<f.pointNavigationEnabledThreshold||!1===f.pointNavigationEnabledThreshold;if(e&&k&&(r||f)){if(a.marker&&!1===a.marker.enabled&&(this.a11yMarkersForced=!0,h(this.options)),this._hasPointMarkers&&
this.points&&this.points.length)for(a=this.points,e=a.length;e--;)k=a[e].options,k.marker&&(k.marker.enabled?l(!0,k.marker,{states:{normal:{opacity:k.marker.states&&k.marker.states.normal&&k.marker.states.normal.opacity||1}}}):h(k))}else this.a11yMarkersForced&&this.resetMarkerOptions&&(delete this.a11yMarkersForced,a=this.resetA11yMarkerOptions,l(!0,this.options,{marker:{enabled:a.enabled,states:{normal:{opacity:a.states&&a.states.normal&&a.states.normal.opacity}}}}))});a.addEvent(a.Series,"afterSetOptions",
function(a){this.resetA11yMarkerOptions=l(a.options.marker||{},this.userOptions.marker||{})})}});p(a,"modules/accessibility/components/SeriesComponent/SeriesComponent.js",[a["parts/Globals.js"],a["parts/Utilities.js"],a["modules/accessibility/AccessibilityComponent.js"],a["modules/accessibility/components/SeriesComponent/SeriesKeyboardNavigation.js"],a["modules/accessibility/components/SeriesComponent/NewDataAnnouncer.js"],a["modules/accessibility/components/SeriesComponent/forcedMarkers.js"],a["modules/accessibility/utils/chartUtilities.js"],
a["modules/accessibility/components/SeriesComponent/SeriesDescriber.js"]],function(a,h,n,m,e,k,r,f){h=h.extend;var b=r.hideSeriesFromAT,c=f.describeSeries;a.SeriesAccessibilityDescriber=f;k();k=function(){};k.prototype=new n;h(k.prototype,{init:function(){this.newDataAnnouncer=new e(this.chart);this.newDataAnnouncer.init();this.keyboardNavigation=new m(this.chart,this.keyCodes);this.keyboardNavigation.init();this.hideTooltipFromATWhenShown();this.hideSeriesLabelsFromATWhenShown()},hideTooltipFromATWhenShown:function(){var b=
this;this.addEvent(a.Tooltip,"refresh",function(){this.chart===b.chart&&this.label&&this.label.element&&this.label.element.setAttribute("aria-hidden",!0)})},hideSeriesLabelsFromATWhenShown:function(){this.addEvent(this.chart,"afterDrawSeriesLabels",function(){this.series.forEach(function(a){a.labelBySeries&&a.labelBySeries.attr("aria-hidden",!0)})})},onChartRender:function(){this.chart.series.forEach(function(a){!1!==(a.options.accessibility&&a.options.accessibility.enabled)&&a.visible?c(a):b(a)})},
getKeyboardNavigation:function(){return this.keyboardNavigation.getKeyboardNavigationHandler()},destroy:function(){this.newDataAnnouncer.destroy();this.keyboardNavigation.destroy()}});return k});p(a,"modules/accessibility/components/ZoomComponent.js",[a["parts/Globals.js"],a["parts/Utilities.js"],a["modules/accessibility/AccessibilityComponent.js"],a["modules/accessibility/KeyboardNavigationHandler.js"],a["modules/accessibility/utils/chartUtilities.js"],a["modules/accessibility/utils/htmlUtilities.js"]],
function(a,h,n,m,e,k){var l=h.extend,f=h.pick,b=e.unhideChartElementFromAT,c=k.setElAttrs,d=k.removeElement;a.Axis.prototype.panStep=function(a,b){var c=b||3;b=this.getExtremes();var d=(b.max-b.min)/c*a;c=b.max+d;d=b.min+d;var e=c-d;0>a&&d<b.dataMin?(d=b.dataMin,c=d+e):0<a&&c>b.dataMax&&(c=b.dataMax,d=c-e);this.setExtremes(d,c)};a=function(){};a.prototype=new n;l(a.prototype,{init:function(){var a=this,b=this.chart;["afterShowResetZoom","afterDrilldown","drillupall"].forEach(function(c){a.addEvent(b,
c,function(){a.updateProxyOverlays()})})},onChartUpdate:function(){var a=this.chart,c=this;a.mapNavButtons&&a.mapNavButtons.forEach(function(d,e){b(a,d.element);c.setMapNavButtonAttrs(d.element,"accessibility.zoom.mapZoom"+(e?"Out":"In"))})},setMapNavButtonAttrs:function(a,b){var d=this.chart;b=d.langFormat(b,{chart:d});c(a,{tabindex:-1,role:"button","aria-label":b})},onChartRender:function(){this.updateProxyOverlays()},updateProxyOverlays:function(){var a=this.chart;d(this.drillUpProxyGroup);d(this.resetZoomProxyGroup);
a.resetZoomButton&&this.recreateProxyButtonAndGroup(a.resetZoomButton,"resetZoomProxyButton","resetZoomProxyGroup",a.langFormat("accessibility.zoom.resetZoomButton",{chart:a}));a.drillUpButton&&this.recreateProxyButtonAndGroup(a.drillUpButton,"drillUpProxyButton","drillUpProxyGroup",a.langFormat("accessibility.drillUpButton",{chart:a,buttonText:a.getDrilldownBackText()}))},recreateProxyButtonAndGroup:function(a,b,c,e){d(this[c]);this[c]=this.addProxyGroup();this[b]=this.createProxyButton(a,this[c],
{"aria-label":e,tabindex:-1})},getMapZoomNavigation:function(){var a=this.keyCodes,b=this.chart,c=this;return new m(b,{keyCodeMap:[[[a.up,a.down,a.left,a.right],function(a){return c.onMapKbdArrow(this,a)}],[[a.tab],function(a,b){return c.onMapKbdTab(this,b)}],[[a.space,a.enter],function(){return c.onMapKbdClick(this)}]],validate:function(){return!!(b.mapZoom&&b.mapNavButtons&&b.mapNavButtons.length)},init:function(a){return c.onMapNavInit(a)}})},onMapKbdArrow:function(a,b){var c=this.keyCodes;this.chart[b===
c.up||b===c.down?"yAxis":"xAxis"][0].panStep(b===c.left||b===c.up?-1:1);return a.response.success},onMapKbdTab:function(a,b){var c=this.chart;a=a.response;var d=(b=b.shiftKey)&&!this.focusedMapNavButtonIx||!b&&this.focusedMapNavButtonIx;c.mapNavButtons[this.focusedMapNavButtonIx].setState(0);if(d)return c.mapZoom(),a[b?"prev":"next"];this.focusedMapNavButtonIx+=b?-1:1;b=c.mapNavButtons[this.focusedMapNavButtonIx];c.setFocusToElement(b.box,b.element);b.setState(2);return a.success},onMapKbdClick:function(a){this.fakeClickEvent(this.chart.mapNavButtons[this.focusedMapNavButtonIx].element);
return a.response.success},onMapNavInit:function(a){var b=this.chart,c=b.mapNavButtons[0],d=b.mapNavButtons[1];c=0<a?c:d;b.setFocusToElement(c.box,c.element);c.setState(2);this.focusedMapNavButtonIx=0<a?0:1},simpleButtonNavigation:function(a,b,c){var d=this.keyCodes,e=this,g=this.chart;return new m(g,{keyCodeMap:[[[d.tab,d.up,d.down,d.left,d.right],function(a,b){return this.response[a===d.tab&&b.shiftKey||a===d.left||a===d.up?"prev":"next"]}],[[d.space,d.enter],function(){var a=c(this,g);return f(a,
this.response.success)}]],validate:function(){return g[a]&&g[a].box&&e[b]},init:function(){g.setFocusToElement(g[a].box,e[b])}})},getKeyboardNavigation:function(){return[this.simpleButtonNavigation("resetZoomButton","resetZoomProxyButton",function(a,b){b.zoomOut()}),this.simpleButtonNavigation("drillUpButton","drillUpProxyButton",function(a,b){b.drillUp();return a.response.prev}),this.getMapZoomNavigation()]}});return a});p(a,"modules/accessibility/components/RangeSelectorComponent.js",[a["parts/Globals.js"],
a["parts/Utilities.js"],a["modules/accessibility/AccessibilityComponent.js"],a["modules/accessibility/KeyboardNavigationHandler.js"],a["modules/accessibility/utils/chartUtilities.js"],a["modules/accessibility/utils/htmlUtilities.js"]],function(a,h,n,m,e,k){h=h.extend;var r=e.unhideChartElementFromAT,f=k.setElAttrs;a.Chart.prototype.highlightRangeSelectorButton=function(a){var b=this.rangeSelector.buttons,d=this.highlightedRangeSelectorItemIx;"undefined"!==typeof d&&b[d]&&b[d].setState(this.oldRangeSelectorItemState||
0);this.highlightedRangeSelectorItemIx=a;return b[a]?(this.setFocusToElement(b[a].box,b[a].element),this.oldRangeSelectorItemState=b[a].state,b[a].setState(2),!0):!1};a=function(){};a.prototype=new n;h(a.prototype,{onChartUpdate:function(){var a=this.chart,c=this,d=a.rangeSelector;d&&(d.buttons&&d.buttons.length&&d.buttons.forEach(function(b){r(a,b.element);c.setRangeButtonAttrs(b)}),d.maxInput&&d.minInput&&["minInput","maxInput"].forEach(function(b,e){if(b=d[b])r(a,b),c.setRangeInputAttrs(b,"accessibility.rangeSelector."+
(e?"max":"min")+"InputLabel")}))},setRangeButtonAttrs:function(a){var b=this.chart;b=b.langFormat("accessibility.rangeSelector.buttonText",{chart:b,buttonText:a.text&&a.text.textStr});f(a.element,{tabindex:-1,role:"button","aria-label":b})},setRangeInputAttrs:function(a,c){var b=this.chart;f(a,{tabindex:-1,role:"textbox","aria-label":b.langFormat(c,{chart:b})})},getRangeSelectorButtonNavigation:function(){var a=this.chart,c=this.keyCodes,d=this;return new m(a,{keyCodeMap:[[[c.left,c.right,c.up,c.down],
function(a){return d.onButtonNavKbdArrowKey(this,a)}],[[c.enter,c.space],function(){return d.onButtonNavKbdClick(this)}]],validate:function(){return a.rangeSelector&&a.rangeSelector.buttons&&a.rangeSelector.buttons.length},init:function(b){var c=a.rangeSelector.buttons.length-1;a.highlightRangeSelectorButton(0<b?0:c)}})},onButtonNavKbdArrowKey:function(a,c){var b=a.response,e=this.keyCodes,f=this.chart,k=f.options.accessibility.keyboardNavigation.wrapAround;c=c===e.left||c===e.up?-1:1;return f.highlightRangeSelectorButton(f.highlightedRangeSelectorItemIx+
c)?b.success:k?(a.init(c),b.success):b[0<c?"next":"prev"]},onButtonNavKbdClick:function(a){a=a.response;var b=this.chart;3!==b.oldRangeSelectorItemState&&this.fakeClickEvent(b.rangeSelector.buttons[b.highlightedRangeSelectorItemIx].element);return a.success},getRangeSelectorInputNavigation:function(){var a=this.chart,c=this.keyCodes,d=this;return new m(a,{keyCodeMap:[[[c.tab,c.up,c.down],function(a,b){return d.onInputKbdMove(this,a===c.tab&&b.shiftKey||a===c.up?-1:1)}]],validate:function(){return a.rangeSelector&&
a.rangeSelector.inputGroup&&"hidden"!==a.rangeSelector.inputGroup.element.getAttribute("visibility")&&!1!==a.options.rangeSelector.inputEnabled&&a.rangeSelector.minInput&&a.rangeSelector.maxInput},init:function(a){d.onInputNavInit(a)},terminate:function(){d.onInputNavTerminate()}})},onInputKbdMove:function(a,c){var b=this.chart;a=a.response;var e=b.highlightedInputRangeIx+=c;if(1<e||0>e)return a[0<c?"next":"prev"];b.rangeSelector[e?"maxInput":"minInput"].focus();return a.success},onInputNavInit:function(a){var b=
this.chart;a=0<a?0:1;b.highlightedInputRangeIx=a;b.rangeSelector[a?"maxInput":"minInput"].focus()},onInputNavTerminate:function(){var a=this.chart.rangeSelector||{};a.maxInput&&a.hideInput("max");a.minInput&&a.hideInput("min")},getKeyboardNavigation:function(){return[this.getRangeSelectorButtonNavigation(),this.getRangeSelectorInputNavigation()]}});return a});p(a,"modules/accessibility/components/InfoRegionsComponent.js",[a["parts/Globals.js"],a["parts/Utilities.js"],a["modules/accessibility/AccessibilityComponent.js"],
a["modules/accessibility/utils/chartUtilities.js"],a["modules/accessibility/utils/htmlUtilities.js"]],function(a,h,n,m,e){function k(a){return a.replace(/<(h[1-7]|p|div)>/g,"<$1>").replace(/</(h[1-7]|p|div|a|button)>/g,"</$1>").replace(/<(div|a|button) id="([a-zA-Z\-0-9#]*?)">/g,'<$1 id="$2">')}var r=a.win.document,f=a.format,b=h.extend,c=h.pick,d=m.unhideChartElementFromAT,g=m.getChartTitle,l=m.getAxisDescription,w=e.addClass,p=e.setElAttrs,q=e.escapeStringForHTML,
u=e.stripHTMLTagsFromString,A=e.getElement,C=e.visuallyHideElement;a.Chart.prototype.getTypeDescription=function(a){var b=a[0],c=this.series&&this.series[0]||{};c={numSeries:this.series.length,numPoints:c.points&&c.points.length,chart:this,mapTitle:c.mapTitle};if(!b)return this.langFormat("accessibility.chartTypes.emptyChart",c);if("map"===b)return c.mapTitle?this.langFormat("accessibility.chartTypes.mapTypeDescription",c):this.langFormat("accessibility.chartTypes.unknownMap",c);if(1<this.types.length)return this.langFormat("accessibility.chartTypes.combinationChart",
c);a=a[0];b=this.langFormat("accessibility.seriesTypeDescriptions."+a,c);var d=this.series&&2>this.series.length?"Single":"Multiple";return(this.langFormat("accessibility.chartTypes."+a+d,c)||this.langFormat("accessibility.chartTypes.default"+d,c))+(b?" "+b:"")};h=function(){};h.prototype=new n;b(h.prototype,{init:function(){var a=this.chart,b=this;this.initRegionsDefinitions();this.addEvent(a,"afterGetTable",function(a){b.onDataTableCreated(a)});this.addEvent(a,"afterViewData",function(a){b.dataTableDiv=
a;setTimeout(function(){b.focusDataTable()},300)})},initRegionsDefinitions:function(){var a=this;this.screenReaderSections={before:{element:null,buildContent:function(b){var c=b.options.accessibility.screenReaderSection.beforeChartFormatter;return c?c(b):a.defaultBeforeChartFormatter(b)},insertIntoDOM:function(a,b){b.renderTo.insertBefore(a,b.renderTo.firstChild)},afterInserted:function(){"undefined"!==typeof a.dataTableButtonId&&a.initDataTableButton(a.dataTableButtonId)}},after:{element:null,buildContent:function(b){var c=
b.options.accessibility.screenReaderSection.afterChartFormatter;return c?c(b):a.defaultAfterChartFormatter()},insertIntoDOM:function(a,b){b.renderTo.insertBefore(a,b.container.nextSibling)}}}},onChartUpdate:function(){var a=this;this.linkedDescriptionElement=this.getLinkedDescriptionElement();this.setLinkedDescriptionAttrs();Object.keys(this.screenReaderSections).forEach(function(b){a.updateScreenReaderSection(b)})},getLinkedDescriptionElement:function(){var a=this.chart.options.accessibility.linkedDescription;
if(a){if("string"!==typeof a)return a;a=f(a,this.chart);a=r.querySelectorAll(a);if(1===a.length)return a[0]}},setLinkedDescriptionAttrs:function(){var a=this.linkedDescriptionElement;a&&(a.setAttribute("aria-hidden","true"),w(a,"highcharts-linked-description"))},updateScreenReaderSection:function(a){var b=this.chart,c=this.screenReaderSections[a],e=c.buildContent(b),g=c.element=c.element||this.createElement("div"),f=g.firstChild||this.createElement("div");this.setScreenReaderSectionAttribs(g,a);f.innerHTML=
e;g.appendChild(f);c.insertIntoDOM(g,b);C(f);d(b,f);c.afterInserted&&