first commit

This commit is contained in:
2026-05-20 14:01:28 +02:00
commit 0beb9cbab0
2550 changed files with 558392 additions and 0 deletions
@@ -0,0 +1,109 @@
.imageuploadify {
border: 2px dashed #d2d2d2;
position: relative;
min-height: 350px;
min-width: 250px;
max-width: 1000px;
margin: auto;
display: flex;
padding: 0;
flex-direction: column;
text-align: center;
background-color: #fff;
color: #007bff
}
.imageuploadify .imageuploadify-overlay {
z-index: 10;
width: 100%;
height: 100%;
position: absolute;
flex-direction: column;
top: 0;
left: 0;
display: none;
font-size: 7em;
background-color: rgba(242, 242, 242, .7);
text-align: center;
pointer-events: none
}
.imageuploadify .imageuploadify-overlay i {
z-index: 10;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
pointer-events: none
}
.imageuploadify .imageuploadify-images-list {
display: inline-block
}
.imageuploadify .imageuploadify-images-list i {
display: block;
font-size: 7em;
text-align: center;
margin-top: .5em;
padding-bottom: 12px
}
.imageuploadify .imageuploadify-images-list span.imageuploadify-message {
font-size: 24px;
border-top: 1px solid #007bff;
border-bottom: 1px solid #007bff;
padding: 10px;
display: inline-block
}
.imageuploadify .imageuploadify-images-list button.btn-default {
display: block;
color: #007bff;
border-color: #007bff;
border-radius: 1em;
margin: 25px auto;
width: 100%;
max-width: 500px
}
.imageuploadify .imageuploadify-images-list .imageuploadify-container {
width: 100px;
height: 100px;
position: relative;
overflow: hidden;
margin-bottom: 1em;
float: left;
border-radius: 12px;
box-shadow: 0 0 4px 0 #888
}
.imageuploadify .imageuploadify-images-list .imageuploadify-container button.btn-danger {
position: absolute;
top: 3px;
right: 3px;
width: 20px;
height: 20px;
border-radius: 15px;
font-size: 10px;
line-height: 1.42;
padding: 2px 0;
text-align: center;
z-index: 3
}
.imageuploadify .imageuploadify-images-list .imageuploadify-container img {
height: 100px;
left: 50%;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
width: auto
}
.imageuploadify .imageuploadify-images-list .imageuploadify-container .imageuploadify-details {
position: absolute;
top: 0;
padding-top: 20px;
width: 100%;
height: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
background: rgba(255, 255, 255, .5);
z-index: 2;
opacity: 0
}
.imageuploadify .imageuploadify-images-list .imageuploadify-container .imageuploadify-details span {
display: block
}
@@ -0,0 +1,225 @@
;
(function($, window, document, undefined) {
window.addEventListener("dragover", function(e) {
e = e || event;
e.preventDefault();
}, false);
window.addEventListener("drop", function(e) {
e = e || event;
e.preventDefault();
}, false);
const compareMimeType = (mimeTypes, fileType, formatFile) => {
if (mimeTypes.length < 2 && mimeTypes[0] === "*") {
return true;
}
for (let index = 1; index < mimeTypes.length; index += 3) {
if (mimeTypes[index + 1] === "*" && fileType.search(new RegExp(mimeTypes[index])) != -1) {
return true;
} else if (mimeTypes[index + 1] && mimeTypes[index + 1] != "*" && fileType.search(new RegExp("\\*" + mimeTypes[index + 1] + "\\*")) != -1) {
return true;
} else if (mimeTypes[index + 1] && mimeTypes[index + 1] != "*" && fileType.search(new RegExp(mimeTypes[index + 1])) != -1) {
return true;
} else if (mimeTypes[index + 1] === "" && (fileType.search(new RegExp(mimeTypes[index])) != -1 || formatFile.search(new RegExp(mimeTypes[index])) != -1)) {
return true;
}
}
return false;
}
$.fn.imageuploadify = function(opts) {
const settings = $.extend({}, $.fn.imageuploadify.defaults, opts);
this.each(function() {
const self = this;
if (!$(self).attr("multiple")) {
return;
}
let accept = $(self).attr("accept") ? $(self).attr("accept").replace(/\s/g, "").split(",") : null;
let result = [];
accept.forEach((item) => {
let regexp;
if (item.search(/\//) != -1) {
regexp = new RegExp("([A-Za-z-.]*)\/([A-Za-z-*.]*)", "g");
} else {
regexp = new RegExp("\.([A-Za-z-]*)()", "g");
}
const r = regexp.exec(item);
result = result.concat(r);
});
let totalFiles = [];
let counter = 0;
let dragbox = $(`<div class="imageuploadify well"><div class="imageuploadify-overlay"><i class="fa fa-picture-o"></i></div><div class="imageuploadify-images-list text-center"><i class="bx bxs-cloud-upload"></i><span class='imageuploadify-message'>Drag&Drop Your File(s)Here To Upload</span><button type="button"class="btn btn-default">or select file to upload</button></div></div>`);
let overlay = dragbox.find(".imageuploadify-overlay");
let uploadIcon = dragbox.find(".imageuploadify-overlay i");
let imagesList = dragbox.find(".imageuploadify-images-list");
let addIcon = dragbox.find(".imageuploadify-images-list i");
let addMsg = dragbox.find(".imageuploadify-images-list span");
let button = dragbox.find(".imageuploadify-images-list button");
const retrieveFiles = (files) => {
for (let index = 0; index < files.length; ++index) {
if (!accept || compareMimeType(result, files[index].type, /(?:\.([^.]+))?$/.exec(files[index].name)[1])) {
const id = Math.random().toString(36).substr(2, 9);
readingFile(id, files[index]);
totalFiles.push({
id: id,
file: files[index]
});
}
}
}
const readingFile = (id, file) => {
const fReader = new FileReader();
const width = dragbox.width();
const boxesNb = Math.floor(width / 100);
const marginSize = Math.floor((width - (boxesNb * 100)) / (boxesNb + 1));
let container = $(`<div class='imageuploadify-container'><button type='button'class='btn btn-danger bx bx-x'></button><div class='imageuploadify-details'><span>${file.name}</span><span>${file.type}</span><span>${file.size}</span></div></div>`);
let details = container.find(".imageuploadify-details");
let deleteBtn = container.find("button");
container.css("margin-left", marginSize + "px");
details.hover(function() {
$(this).css("opacity", "1");
}).mouseleave(function() {
$(this).css("opacity", "0");
});
if (file.type && file.type.search(/image/) != -1) {
fReader.onloadend = function(e) {
let image = $("<img>");
image.attr("src", e.target.result);
container.append(image);
imagesList.append(container);
imagesList.find(".imageuploadify-container:nth-child(" + boxesNb + "n+4)").css("margin-left", marginSize + "px");
imagesList.find(".imageuploadify-container:nth-child(" + boxesNb + "n+3)").css("margin-right", marginSize + "px");
};
} else if (file.type) {
let type = "<i class='fa fa-file'></i>";
if (file.type.search(/audio/) != -1) {
type = "<i class='fa fa-file-audio-o'></i>";
} else if (file.type.search(/video/) != -1) {
type = "<i class='fa fa-file-video-o'></i>";
}
fReader.onloadend = function(e) {
let span = $("<span>" + type + "</span>");
span.css("font-size", "5em");
container.append(span);
imagesList.append(container);
imagesList.find(".imageuploadify-container:nth-child(" + boxesNb + "n+4)").css("margin-left", marginSize + "px");
imagesList.find(".imageuploadify-container:nth-child(" + boxesNb + "n+3)").css("margin-right", marginSize + "px");
};
}
deleteBtn.on("click", function() {
$(this.parentElement).remove();
for (let index = 0; totalFiles.length > index; ++index) {
if (totalFiles[index].id === id) {
totalFiles.splice(index, 1);
break;
}
}
});
fReader.readAsDataURL(file);
};
const disableMouseEvents = () => {
overlay.css("display", "flex");
dragbox.css("border-color", "#3AA0FF");
button.css("pointer-events", "none");
addMsg.css("pointer-events", "none");
addIcon.css("pointer-events", "none");
imagesList.css("pointer-events", "none");
}
const enableMouseEvents = () => {
overlay.css("display", "none");
dragbox.css("border-color", "rgb(210, 210, 210)");
button.css("pointer-events", "initial");
addMsg.css("pointer-events", "initial");
addIcon.css("pointer-events", "initial");
imagesList.css("pointer-events", "initial");
}
button.mouseenter(function onMouseEnter(event) {
button.css("background", "#3AA0FF").css("color", "white");
}).mouseleave(function onMouseLeave() {
button.css("background", "white").css("color", "#3AA0FF");
});
button.on("click", function onClick(event) {
event.stopPropagation();
event.preventDefault();
$(self).click();
});
dragbox.on("dragenter", function onDragenter(event) {
event.stopPropagation();
event.preventDefault();
counter++;
disableMouseEvents();
});
dragbox.on("dragleave", function onDragLeave(event) {
event.stopPropagation();
event.preventDefault();
counter--;
if (counter === 0) {
enableMouseEvents();
}
});
dragbox.on("drop", function onDrop(event) {
event.stopPropagation();
event.preventDefault();
enableMouseEvents();
const files = event.originalEvent.dataTransfer.files;
retrieveFiles(files);
});
$(window).bind("resize", function(e) {
window.resizeEvt;
$(window).resize(function() {
clearTimeout(window.resizeEvt);
window.resizeEvt = setTimeout(function() {
const width = dragbox.width();
const boxesNb = Math.floor(width / 100);
const marginSize = Math.floor((width - (boxesNb * 100)) / (boxesNb + 1));
let containers = imagesList.find(".imageuploadify-container");
for (let index = 0; index < containers.length; ++index) {
$(containers[index]).css("margin-right", "0px");
$(containers[index]).css("margin-left", marginSize + "px");
}
imagesList.find(".imageuploadify-container:nth-child(" + boxesNb + "n+4)").css("margin-left", marginSize + "px");
imagesList.find(".imageuploadify-container:nth-child(" + boxesNb + "n+3)").css("margin-right", marginSize + "px");
}, 500);
});
})
$(self).on("change", function onChange() {
const files = this.files;
retrieveFiles(files);
});
$(self).closest("form").on("submit", function(event) {
event.stopPropagation();
event.preventDefault(event);
const inputs = this.querySelectorAll("input, textarea, select, button");
const formData = new FormData();
for (let index = 0; index < inputs.length; ++index) {
if (inputs[index].tagName === "SELECT" && inputs[index].hasAttribute("multiple")) {
const options = inputs[index].options;
for (let i = 0; options.length > i; ++i) {
if (options[i].selected) {
formData.append(inputs[index].getAttribute("name"), options[i].value);
}
}
} else if (!inputs[index].getAttribute("type") || ((inputs[index].getAttribute("type").toLowerCase()) !== "checkbox" && (inputs[index].getAttribute("type").toLowerCase()) !== "radio") || inputs[index].checked) {
formData.append(inputs[index].name, inputs[index].value);
} else if ($(inputs[index]).getAttribute("type")  != "file") {
formData.append(inputs[index].name, inputs[index].value);
}
}
for (var i = 0; i < totalFiles.length; i++) {
formData.append(self.name, totalFiles[i].file);
}
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(e) {
if (xhr.status == 200 && xhr.readyState === XMLHttpRequest.DONE) {
window.location.replace(xhr.responseURL);
}
}
xhr.open("POST", $(this).attr("action"), true);
xhr.send(formData);
return false;
});
$(self).hide();
dragbox.insertAfter(this);
});
return this;
};
$.fn.imageuploadify.defaults = {};
}(jQuery, window, document));
@@ -0,0 +1,663 @@
.apexcharts-canvas {
position: relative;
user-select: none;
/* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */
}
/* scrollbar is not visible by default for legend, hence forcing the visibility */
.apexcharts-canvas ::-webkit-scrollbar {
-webkit-appearance: none;
width: 6px;
}
.apexcharts-canvas ::-webkit-scrollbar-thumb {
border-radius: 4px;
background-color: rgba(0, 0, 0, .5);
box-shadow: 0 0 1px rgba(255, 255, 255, .5);
-webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
}
.apexcharts-canvas.apexcharts-theme-dark {
background: #424242;
}
.apexcharts-inner {
position: relative;
}
.apexcharts-text tspan {
font-family: inherit;
}
.legend-mouseover-inactive {
transition: 0.15s ease all;
opacity: 0.20;
}
.apexcharts-series-collapsed {
opacity: 0;
}
.apexcharts-tooltip {
border-radius: 5px;
box-shadow: 2px 2px 6px -4px #999;
cursor: default;
font-size: 14px;
left: 62px;
opacity: 0;
pointer-events: none;
position: absolute;
top: 20px;
overflow: hidden;
white-space: nowrap;
z-index: 12;
transition: 0.15s ease all;
}
.apexcharts-tooltip.apexcharts-active {
opacity: 1;
transition: 0.15s ease all;
}
.apexcharts-tooltip.apexcharts-theme-light {
border: 1px solid #e3e3e3;
background: rgba(255, 255, 255, 0.96);
}
.apexcharts-tooltip.apexcharts-theme-dark {
color: #fff;
background: rgba(30, 30, 30, 0.8);
}
.apexcharts-tooltip * {
font-family: inherit;
}
.apexcharts-tooltip-title {
padding: 6px;
font-size: 15px;
margin-bottom: 4px;
}
.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {
background: #ECEFF1;
border-bottom: 1px solid #ddd;
}
.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
background: rgba(0, 0, 0, 0.7);
border-bottom: 1px solid #333;
}
.apexcharts-tooltip-text-value,
.apexcharts-tooltip-text-z-value {
display: inline-block;
font-weight: 600;
margin-left: 5px;
}
.apexcharts-tooltip-text-z-label:empty,
.apexcharts-tooltip-text-z-value:empty {
display: none;
}
.apexcharts-tooltip-text-value,
.apexcharts-tooltip-text-z-value {
font-weight: 600;
}
.apexcharts-tooltip-marker {
width: 12px;
height: 12px;
position: relative;
top: 0px;
margin-right: 10px;
border-radius: 50%;
}
.apexcharts-tooltip-series-group {
padding: 0 10px;
display: none;
text-align: left;
justify-content: left;
align-items: center;
}
.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {
opacity: 1;
}
.apexcharts-tooltip-series-group.apexcharts-active,
.apexcharts-tooltip-series-group:last-child {
padding-bottom: 4px;
}
.apexcharts-tooltip-series-group-hidden {
opacity: 0;
height: 0;
line-height: 0;
padding: 0 !important;
}
.apexcharts-tooltip-y-group {
padding: 6px 0 5px;
}
.apexcharts-tooltip-candlestick {
padding: 4px 8px;
}
.apexcharts-tooltip-candlestick>div {
margin: 4px 0;
}
.apexcharts-tooltip-candlestick span.value {
font-weight: bold;
}
.apexcharts-tooltip-rangebar {
padding: 5px 8px;
}
.apexcharts-tooltip-rangebar .category {
font-weight: 600;
color: #777;
}
.apexcharts-tooltip-rangebar .series-name {
font-weight: bold;
display: block;
margin-bottom: 5px;
}
.apexcharts-xaxistooltip {
opacity: 0;
padding: 9px 10px;
pointer-events: none;
color: #373d3f;
font-size: 13px;
text-align: center;
border-radius: 2px;
position: absolute;
z-index: 10;
background: #ECEFF1;
border: 1px solid #90A4AE;
transition: 0.15s ease all;
}
.apexcharts-xaxistooltip.apexcharts-theme-dark {
background: rgba(0, 0, 0, 0.7);
border: 1px solid rgba(0, 0, 0, 0.5);
color: #fff;
}
.apexcharts-xaxistooltip:after,
.apexcharts-xaxistooltip:before {
left: 50%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.apexcharts-xaxistooltip:after {
border-color: rgba(236, 239, 241, 0);
border-width: 6px;
margin-left: -6px;
}
.apexcharts-xaxistooltip:before {
border-color: rgba(144, 164, 174, 0);
border-width: 7px;
margin-left: -7px;
}
.apexcharts-xaxistooltip-bottom:after,
.apexcharts-xaxistooltip-bottom:before {
bottom: 100%;
}
.apexcharts-xaxistooltip-top:after,
.apexcharts-xaxistooltip-top:before {
top: 100%;
}
.apexcharts-xaxistooltip-bottom:after {
border-bottom-color: #ECEFF1;
}
.apexcharts-xaxistooltip-bottom:before {
border-bottom-color: #90A4AE;
}
.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after {
border-bottom-color: rgba(0, 0, 0, 0.5);
}
.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {
border-bottom-color: rgba(0, 0, 0, 0.5);
}
.apexcharts-xaxistooltip-top:after {
border-top-color: #ECEFF1
}
.apexcharts-xaxistooltip-top:before {
border-top-color: #90A4AE;
}
.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after {
border-top-color: rgba(0, 0, 0, 0.5);
}
.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {
border-top-color: rgba(0, 0, 0, 0.5);
}
.apexcharts-xaxistooltip.apexcharts-active {
opacity: 1;
transition: 0.15s ease all;
}
.apexcharts-yaxistooltip {
opacity: 0;
padding: 4px 10px;
pointer-events: none;
color: #373d3f;
font-size: 13px;
text-align: center;
border-radius: 2px;
position: absolute;
z-index: 10;
background: #ECEFF1;
border: 1px solid #90A4AE;
}
.apexcharts-yaxistooltip.apexcharts-theme-dark {
background: rgba(0, 0, 0, 0.7);
border: 1px solid rgba(0, 0, 0, 0.5);
color: #fff;
}
.apexcharts-yaxistooltip:after,
.apexcharts-yaxistooltip:before {
top: 50%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.apexcharts-yaxistooltip:after {
border-color: rgba(236, 239, 241, 0);
border-width: 6px;
margin-top: -6px;
}
.apexcharts-yaxistooltip:before {
border-color: rgba(144, 164, 174, 0);
border-width: 7px;
margin-top: -7px;
}
.apexcharts-yaxistooltip-left:after,
.apexcharts-yaxistooltip-left:before {
left: 100%;
}
.apexcharts-yaxistooltip-right:after,
.apexcharts-yaxistooltip-right:before {
right: 100%;
}
.apexcharts-yaxistooltip-left:after {
border-left-color: #ECEFF1;
}
.apexcharts-yaxistooltip-left:before {
border-left-color: #90A4AE;
}
.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after {
border-left-color: rgba(0, 0, 0, 0.5);
}
.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {
border-left-color: rgba(0, 0, 0, 0.5);
}
.apexcharts-yaxistooltip-right:after {
border-right-color: #ECEFF1;
}
.apexcharts-yaxistooltip-right:before {
border-right-color: #90A4AE;
}
.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after {
border-right-color: rgba(0, 0, 0, 0.5);
}
.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {
border-right-color: rgba(0, 0, 0, 0.5);
}
.apexcharts-yaxistooltip.apexcharts-active {
opacity: 1;
}
.apexcharts-yaxistooltip-hidden {
display: none;
}
.apexcharts-xcrosshairs,
.apexcharts-ycrosshairs {
pointer-events: none;
opacity: 0;
transition: 0.15s ease all;
}
.apexcharts-xcrosshairs.apexcharts-active,
.apexcharts-ycrosshairs.apexcharts-active {
opacity: 1;
transition: 0.15s ease all;
}
.apexcharts-ycrosshairs-hidden {
opacity: 0;
}
.apexcharts-selection-rect {
cursor: move;
}
.svg_select_boundingRect, .svg_select_points_rot {
pointer-events: none;
opacity: 0;
visibility: hidden;
}
.apexcharts-selection-rect + g .svg_select_boundingRect,
.apexcharts-selection-rect + g .svg_select_points_rot {
opacity: 0;
visibility: hidden;
}
.apexcharts-selection-rect + g .svg_select_points_l,
.apexcharts-selection-rect + g .svg_select_points_r {
cursor: ew-resize;
opacity: 1;
visibility: visible;
}
.svg_select_points {
fill: #efefef;
stroke: #333;
rx: 2;
}
.apexcharts-canvas.apexcharts-zoomable .hovering-zoom {
cursor: crosshair
}
.apexcharts-canvas.apexcharts-zoomable .hovering-pan {
cursor: move
}
.apexcharts-zoom-icon,
.apexcharts-zoomin-icon,
.apexcharts-zoomout-icon,
.apexcharts-reset-icon,
.apexcharts-pan-icon,
.apexcharts-selection-icon,
.apexcharts-menu-icon,
.apexcharts-toolbar-custom-icon {
cursor: pointer;
width: 20px;
height: 20px;
line-height: 24px;
color: #6E8192;
text-align: center;
}
.apexcharts-zoom-icon svg,
.apexcharts-zoomin-icon svg,
.apexcharts-zoomout-icon svg,
.apexcharts-reset-icon svg,
.apexcharts-menu-icon svg {
fill: #6E8192;
}
.apexcharts-selection-icon svg {
fill: #444;
transform: scale(0.76)
}
.apexcharts-theme-dark .apexcharts-zoom-icon svg,
.apexcharts-theme-dark .apexcharts-zoomin-icon svg,
.apexcharts-theme-dark .apexcharts-zoomout-icon svg,
.apexcharts-theme-dark .apexcharts-reset-icon svg,
.apexcharts-theme-dark .apexcharts-pan-icon svg,
.apexcharts-theme-dark .apexcharts-selection-icon svg,
.apexcharts-theme-dark .apexcharts-menu-icon svg,
.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg {
fill: #f3f4f5;
}
.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg,
.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,
.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg {
fill: #008FFB;
}
.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,
.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,
.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,
.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg,
.apexcharts-theme-light .apexcharts-reset-icon:hover svg,
.apexcharts-theme-light .apexcharts-menu-icon:hover svg {
fill: #333;
}
.apexcharts-selection-icon,
.apexcharts-menu-icon {
position: relative;
}
.apexcharts-reset-icon {
margin-left: 5px;
}
.apexcharts-zoom-icon,
.apexcharts-reset-icon,
.apexcharts-menu-icon {
transform: scale(0.85);
}
.apexcharts-zoomin-icon,
.apexcharts-zoomout-icon {
transform: scale(0.7)
}
.apexcharts-zoomout-icon {
margin-right: 3px;
}
.apexcharts-pan-icon {
transform: scale(0.62);
position: relative;
left: 1px;
top: 0px;
}
.apexcharts-pan-icon svg {
fill: #fff;
stroke: #6E8192;
stroke-width: 2;
}
.apexcharts-pan-icon.apexcharts-selected svg {
stroke: #008FFB;
}
.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {
stroke: #333;
}
.apexcharts-toolbar {
position: absolute;
z-index: 11;
max-width: 176px;
text-align: right;
border-radius: 3px;
padding: 0px 6px 2px 6px;
display: flex;
justify-content: space-between;
align-items: center;
}
.apexcharts-menu {
background: #fff;
position: absolute;
top: 100%;
border: 1px solid #ddd;
border-radius: 3px;
padding: 3px;
right: 10px;
opacity: 0;
min-width: 110px;
transition: 0.15s ease all;
pointer-events: none;
}
.apexcharts-menu.apexcharts-menu-open {
opacity: 1;
pointer-events: all;
transition: 0.15s ease all;
}
.apexcharts-menu-item {
padding: 6px 7px;
font-size: 12px;
cursor: pointer;
}
.apexcharts-theme-light .apexcharts-menu-item:hover {
background: #eee;
}
.apexcharts-theme-dark .apexcharts-menu {
background: rgba(0, 0, 0, 0.7);
color: #fff;
}
@media screen and (min-width: 768px) {
.apexcharts-canvas:hover .apexcharts-toolbar {
opacity: 1;
}
}
.apexcharts-datalabel.apexcharts-element-hidden {
opacity: 0;
}
.apexcharts-pie-label,
.apexcharts-datalabels,
.apexcharts-datalabel,
.apexcharts-datalabel-label,
.apexcharts-datalabel-value {
cursor: default;
pointer-events: none;
}
.apexcharts-pie-label-delay {
opacity: 0;
animation-name: opaque;
animation-duration: 0.3s;
animation-fill-mode: forwards;
animation-timing-function: ease;
}
.apexcharts-canvas .apexcharts-element-hidden {
opacity: 0;
}
.apexcharts-hide .apexcharts-series-points {
opacity: 0;
}
.apexcharts-gridline,
.apexcharts-annotation-rect,
.apexcharts-tooltip .apexcharts-marker,
.apexcharts-area-series .apexcharts-area,
.apexcharts-line,
.apexcharts-zoom-rect,
.apexcharts-toolbar svg,
.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,
.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,
.apexcharts-radar-series path,
.apexcharts-radar-series polygon {
pointer-events: none;
}
/* markers */
.apexcharts-marker {
transition: 0.15s ease all;
}
@keyframes opaque {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* Resize generated styles */
@keyframes resizeanim {
from {
opacity: 0;
}
to {
opacity: 0;
}
}
.resize-triggers {
animation: 1ms resizeanim;
visibility: hidden;
opacity: 0;
}
.resize-triggers,
.resize-triggers>div,
.contract-trigger:before {
content: " ";
display: block;
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
overflow: hidden;
}
.resize-triggers>div {
background: #eee;
overflow: auto;
}
.contract-trigger:before {
width: 200%;
height: 200%;
}
@@ -0,0 +1,642 @@
$(function () {
"use strict";
// chart 1
var options = {
series: [{
name: 'Likes',
data: [14, 3, 10, 9, 29, 19, 22, 9, 12, 7, 19, 5]
}],
chart: {
foreColor: '#9ba7b2',
height: 360,
type: 'line',
zoom: {
enabled: false
},
toolbar: {
show: true
},
dropShadow: {
enabled: true,
top: 3,
left: 14,
blur: 4,
opacity: 0.10,
}
},
stroke: {
width: 5,
curve: 'smooth'
},
xaxis: {
type: 'datetime',
categories: ['1/11/2000', '2/11/2000', '3/11/2000', '4/11/2000', '5/11/2000', '6/11/2000', '7/11/2000', '8/11/2000', '9/11/2000', '10/11/2000', '11/11/2000', '12/11/2000'],
},
title: {
text: 'Line Chart',
align: 'left',
style: {
fontSize: "16px",
color: '#666'
}
},
fill: {
type: 'gradient',
gradient: {
shade: 'light',
gradientToColors: ['#f41127'],
shadeIntensity: 1,
type: 'horizontal',
opacityFrom: 1,
opacityTo: 1,
stops: [0, 100, 100, 100]
},
},
markers: {
size: 4,
colors: ["#f41127"],
strokeColors: "#fff",
strokeWidth: 2,
hover: {
size: 7,
}
},
colors: ["#f41127"],
yaxis: {
title: {
text: 'Engagement',
},
}
};
var chart = new ApexCharts(document.querySelector("#chart1"), options);
chart.render();
// chart 2
var optionsLine = {
chart: {
foreColor: '#9ba7b2',
height: 360,
type: 'line',
zoom: {
enabled: false
},
dropShadow: {
enabled: true,
top: 3,
left: 2,
blur: 4,
opacity: 0.1,
}
},
stroke: {
curve: 'smooth',
width: 5
},
colors: ["#0d6efd", '#212529'],
series: [{
name: "Music",
data: [1, 15, 56, 20, 33, 27]
}, {
name: "Photos",
data: [30, 33, 21, 42, 19, 32]
}],
title: {
text: 'Multiline Chart',
align: 'left',
offsetY: 25,
offsetX: 20
},
subtitle: {
text: 'Statistics',
offsetY: 55,
offsetX: 20
},
markers: {
size: 4,
strokeWidth: 0,
hover: {
size: 7
}
},
grid: {
show: true,
padding: {
bottom: 0
}
},
labels: ['01/15/2002', '01/16/2002', '01/17/2002', '01/18/2002', '01/19/2002', '01/20/2002'],
xaxis: {
tooltip: {
enabled: false
}
},
legend: {
position: 'top',
horizontalAlign: 'right',
offsetY: -20
}
}
var chartLine = new ApexCharts(document.querySelector('#chart2'), optionsLine);
chartLine.render();
// chart 3
var options = {
series: [{
name: 'series1',
data: [31, 40, 68, 31, 92, 55, 100]
}, {
name: 'series2',
data: [11, 82, 45, 80, 34, 52, 41]
}],
chart: {
foreColor: '#9ba7b2',
height: 360,
type: 'area',
zoom: {
enabled: false
},
toolbar: {
show: true
},
},
colors: ["#0d6efd", '#f41127'],
title: {
text: 'Area Chart',
align: 'left',
style: {
fontSize: "16px",
color: '#666'
}
},
dataLabels: {
enabled: false
},
stroke: {
curve: 'smooth'
},
xaxis: {
type: 'datetime',
categories: ["2018-09-19T00:00:00.000Z", "2018-09-19T01:30:00.000Z", "2018-09-19T02:30:00.000Z", "2018-09-19T03:30:00.000Z", "2018-09-19T04:30:00.000Z", "2018-09-19T05:30:00.000Z", "2018-09-19T06:30:00.000Z"]
},
tooltip: {
x: {
format: 'dd/MM/yy HH:mm'
},
},
};
var chart = new ApexCharts(document.querySelector("#chart3"), options);
chart.render();
// chart 4
var options = {
series: [{
name: 'Net Profit',
data: [44, 55, 57, 56, 61, 58, 63, 60, 66]
}, {
name: 'Revenue',
data: [76, 85, 101, 98, 87, 105, 91, 114, 94]
}, {
name: 'Free Cash Flow',
data: [35, 41, 36, 26, 45, 48, 52, 53, 41]
}],
chart: {
foreColor: '#9ba7b2',
type: 'bar',
height: 360
},
plotOptions: {
bar: {
horizontal: false,
columnWidth: '55%',
endingShape: 'rounded'
},
},
dataLabels: {
enabled: false
},
stroke: {
show: true,
width: 2,
colors: ['transparent']
},
title: {
text: 'Column Chart',
align: 'left',
style: {
fontSize: '14px'
}
},
colors: ["#212529", '#0d6efd', '#ffc107'],
xaxis: {
categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct'],
},
yaxis: {
title: {
text: '$ (thousands)'
}
},
fill: {
opacity: 1
},
tooltip: {
y: {
formatter: function (val) {
return "$ " + val + " thousands"
}
}
}
};
var chart = new ApexCharts(document.querySelector("#chart4"), options);
chart.render();
// chart 5
var options = {
series: [{
data: [400, 430, 448, 470, 540, 580, 690, 610, 800, 980]
}],
chart: {
foreColor: '#9ba7b2',
type: 'bar',
height: 350
},
colors: ["#0d6efd"],
plotOptions: {
bar: {
horizontal: true,
columnWidth: '35%',
endingShape: 'rounded'
}
},
dataLabels: {
enabled: false
},
xaxis: {
categories: ['South Korea', 'Canada', 'United Kingdom', 'Netherlands', 'Italy', 'France', 'Japan', 'United States', 'China', 'Germany'],
}
};
var chart = new ApexCharts(document.querySelector("#chart5"), options);
chart.render();
// chart 6
var options = {
series: [{
name: 'Website Blog',
type: 'column',
data: [440, 505, 414, 671, 227, 413, 201, 352, 752, 320, 257, 160]
}, {
name: 'Social Media',
type: 'line',
data: [23, 42, 35, 27, 43, 22, 17, 31, 22, 22, 12, 16]
}],
chart: {
foreColor: '#9ba7b2',
height: 350,
type: 'line',
zoom: {
enabled: false
},
toolbar: {
show: true
},
},
stroke: {
width: [0, 4]
},
plotOptions: {
bar: {
//horizontal: true,
columnWidth: '35%',
endingShape: 'rounded'
}
},
colors: ["#0d6efd", "#212529"],
title: {
text: 'Traffic Sources'
},
dataLabels: {
enabled: true,
enabledOnSeries: [1]
},
labels: ['01 Jan 2001', '02 Jan 2001', '03 Jan 2001', '04 Jan 2001', '05 Jan 2001', '06 Jan 2001', '07 Jan 2001', '08 Jan 2001', '09 Jan 2001', '10 Jan 2001', '11 Jan 2001', '12 Jan 2001'],
xaxis: {
type: 'datetime'
},
yaxis: [{
title: {
text: 'Website Blog',
},
}, {
opposite: true,
title: {
text: 'Social Media'
}
}]
};
var chart = new ApexCharts(document.querySelector("#chart6"), options);
chart.render();
// chart 7
var options = {
series: [{
name: 'TEAM A',
type: 'column',
data: [23, 11, 22, 27, 13, 22, 37, 21, 44, 22, 30]
}, {
name: 'TEAM B',
type: 'area',
data: [44, 55, 41, 67, 22, 43, 21, 41, 56, 27, 43]
}, {
name: 'TEAM C',
type: 'line',
data: [30, 25, 36, 30, 45, 35, 64, 52, 59, 36, 39]
}],
chart: {
foreColor: '#9ba7b2',
height: 350,
type: 'line',
stacked: false,
zoom: {
enabled: false
},
toolbar: {
show: true
},
},
colors: ["#0d6efd", "#17a00e", "#f41127"],
stroke: {
width: [0, 2, 5],
curve: 'smooth'
},
plotOptions: {
bar: {
columnWidth: '50%'
}
},
fill: {
opacity: [0.85, 0.25, 1],
gradient: {
inverseColors: false,
shade: 'light',
type: "vertical",
opacityFrom: 0.85,
opacityTo: 0.55,
stops: [0, 100, 100, 100]
}
},
labels: ['01/01/2003', '02/01/2003', '03/01/2003', '04/01/2003', '05/01/2003', '06/01/2003', '07/01/2003', '08/01/2003', '09/01/2003', '10/01/2003', '11/01/2003'],
markers: {
size: 0
},
xaxis: {
type: 'datetime'
},
yaxis: {
title: {
text: 'Points',
},
min: 0
},
tooltip: {
shared: true,
intersect: false,
y: {
formatter: function (y) {
if (typeof y !== "undefined") {
return y.toFixed(0) + " points";
}
return y;
}
}
}
};
var chart = new ApexCharts(document.querySelector("#chart7"), options);
chart.render();
// chart 8
var options = {
series: [44, 55, 13, 43, 22],
chart: {
foreColor: '#9ba7b2',
height: 330,
type: 'pie',
},
colors: ["#0d6efd", "#6c757d", "#17a00e", "#f41127", "#ffc107"],
labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'],
responsive: [{
breakpoint: 480,
options: {
chart: {
height: 360
},
legend: {
position: 'bottom'
}
}
}]
};
var chart = new ApexCharts(document.querySelector("#chart8"), options);
chart.render();
// chart 9
var options = {
series: [44, 55, 41, 17, 15],
chart: {
foreColor: '#9ba7b2',
height: 380,
type: 'donut',
},
colors: ["#0d6efd", "#212529", "#17a00e", "#f41127", "#ffc107"],
responsive: [{
breakpoint: 480,
options: {
chart: {
height: 320
},
legend: {
position: 'bottom'
}
}
}]
};
var chart = new ApexCharts(document.querySelector("#chart9"), options);
chart.render();
// chart 10
var options = {
series: [{
name: 'Series 1',
data: [80, 50, 30, 40, 100, 20],
}, {
name: 'Series 2',
data: [20, 30, 40, 80, 20, 80],
}, {
name: 'Series 3',
data: [44, 76, 78, 13, 43, 10],
}],
chart: {
foreColor: '#9ba7b2',
height: 350,
type: 'radar',
dropShadow: {
enabled: true,
blur: 1,
left: 1,
top: 1
}
},
colors: ["#0d6efd", "#212529", "#17a00e"],
title: {
text: 'Radar Chart - Multi Series'
},
stroke: {
width: 2
},
fill: {
opacity: 0.1
},
markers: {
size: 0
},
xaxis: {
categories: ['2011', '2012', '2013', '2014', '2015', '2016']
}
};
var chart = new ApexCharts(document.querySelector("#chart10"), options);
chart.render();
// chart 11
var options = {
series: [{
name: 'Series 1',
data: [20, 100, 40, 30, 50, 80, 33],
}],
chart: {
foreColor: '#9ba7b2',
height: 350,
type: 'radar',
},
dataLabels: {
enabled: true
},
plotOptions: {
radar: {
size: 140,
polygons: {
strokeColors: '#e9e9e9',
fill: {
colors: ['#f8f8f8', '#fff']
}
}
}
},
title: {
text: 'Radar with Polygon Fill'
},
colors: ["#0d6efd"],
markers: {
size: 4,
colors: ['#fff'],
strokeColor: '#FF4560',
strokeWidth: 2,
},
tooltip: {
y: {
formatter: function (val) {
return val
}
}
},
xaxis: {
categories: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
},
yaxis: {
tickAmount: 7,
labels: {
formatter: function (val, i) {
if (i % 2 === 0) {
return val
} else {
return ''
}
}
}
}
};
var chart = new ApexCharts(document.querySelector("#chart11"), options);
chart.render();
// chart 12
var options = {
series: [70],
chart: {
foreColor: '#9ba7b2',
height: 350,
type: 'radialBar',
},
plotOptions: {
radialBar: {
hollow: {
size: '70%',
}
},
},
labels: ['Cricket'],
};
var chart = new ApexCharts(document.querySelector("#chart12"), options);
chart.render();
// chart 13
var options = {
series: [44, 55, 67, 83],
chart: {
foreColor: '#9ba7b2',
height: 350,
type: 'radialBar',
},
plotOptions: {
radialBar: {
dataLabels: {
name: {
fontSize: '22px',
},
value: {
fontSize: '16px',
},
total: {
show: true,
label: 'Total',
formatter: function (w) {
// By default this function returns the average of all series. The below is just an example to show the use of custom formatter function
return 249
}
}
}
}
},
colors: ["#0d6efd", "#17a00e", "#f41127", "#ffc107"],
labels: ['Apples', 'Oranges', 'Bananas', 'Berries'],
};
var chart = new ApexCharts(document.querySelector("#chart13"), options);
chart.render();
});
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,164 @@
.dtp .p10, .dtp .p20, .dtp .p60, .dtp .p80 {
display: inline-block
}
.dtp {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, .4);
z-index: 2000;
font-size: 15px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none
}
.dtp>.dtp-content {
background: #fff;
max-width: 300px;
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .16), 0 2px 10px 0 rgba(0, 0, 0, .12);
max-height: 520px;
position: relative;
left: 50%
}
.dtp>.dtp-content>.dtp-date-view>header.dtp-header {
background: #1062dc;
color: #fff;
text-align: center;
padding: .3em
}
.dtp div.dtp-date, .dtp div.dtp-time {
background: #0d6efd;
text-align: center;
color: #fff;
padding: 10px
}
.dtp div.dtp-date>div {
padding: 0;
margin: 0
}
.dtp div.dtp-actual-month {
font-size: 1.5em
}
.dtp div.dtp-actual-maxtime, .dtp div.dtp-actual-num {
font-size: 3em;
line-height: .9
}
.dtp div.dtp-actual-year {
font-size: 1.5em;
color: #DCEDC8
}
.dtp div.dtp-picker {
padding: 1em;
text-align: center
}
.dtp div.dtp-actual-time, .dtp div.dtp-picker-month {
font-weight: 500;
text-align: center
}
.dtp div.dtp-picker-month {
padding-bottom: 20px!important;
text-transform: uppercase!important
}
.dtp .dtp-close {
position: absolute;
top: .5em;
right: 1em
}
.dtp .dtp-close>a {
color: #fff
}
.dtp .dtp-close>a>i {
font-size: 1em
}
.dtp table.dtp-picker-days {
margin: 0;
min-height: 251px
}
.dtp table.dtp-picker-days, .dtp table.dtp-picker-days tr, .dtp table.dtp-picker-days tr>td {
border: none
}
.dtp table.dtp-picker-days tr>td {
font-weight: 700;
font-size: .8em;
text-align: center;
padding: .5em .3em
}
.dtp table.dtp-picker-days tr>td>span.dtp-select-day {
color: #BDBDBD!important
}
.dtp .dtp-picker-time>a, .dtp table.dtp-picker-days tr>td>a {
color: #212121;
text-decoration: none;
padding: .4em .5em .5em .6em;
border-radius: 50%!important
}
.dtp table.dtp-picker-days tr>td>a.selected {
background: #0d6efd;
color: #fff
}
.dtp table.dtp-picker-days tr>th {
color: #757575;
text-align: center;
font-weight: 700;
padding: .4em .3em
}
.dtp .p10>a {
color: #fff;
text-decoration: none
}
.dtp .p10 {
width: 10%
}
.dtp .p20 {
width: 20%
}
.dtp .p60 {
width: 60%
}
.dtp .p80 {
width: 80%
}
.dtp a.dtp-meridien-am, .dtp a.dtp-meridien-pm {
position: relative;
top: 10px;
color: #212121;
font-weight: 500;
padding: .7em .5em;
border-radius: 50%!important;
text-decoration: none;
background: #eee;
font-size: 1em
}
.dtp .dtp-actual-meridien a.selected {
background: #689F38;
color: #fff
}
.dtp .dtp-picker-time>.dtp-select-hour, .dtp .dtp-picker-time>.dtp-select-minute {
cursor: pointer
}
.dtp .dtp-buttons {
padding: 0 1em 1em;
text-align: right
}
.dtp .hidden, .dtp.hidden {
display: none
}
.dtp .invisible {
visibility: hidden
}
.dtp .left {
float: left
}
.dtp .right {
float: right
}
.dtp .clearfix {
clear: both
}
.dtp .center {
text-align: center
}
/*# sourceMappingURL=bootstrap-material-datetimepicker.min.css.map */
@@ -0,0 +1 @@
{"version":3,"sources":["bootstrap-material-datetimepicker.css"],"names":[],"mappings":"AA4BA,UACA,UACA,UACA,UAAwB,QAAS,aA/BjC,KAAO,SAAU,MAAO,IAAK,EAAG,KAAM,EAAG,MAAO,EAAG,OAAQ,EAAG,WAAY,eAAoB,QAAS,KAAM,UAAW,KAAM,oBAAqB,KAAM,iBAAkB,KAAM,gBAAiB,KAAM,YAAa,KACrN,kBAAsB,WAAY,KAAM,UAAW,MAAO,WAAY,EAAE,IAAI,IAAI,EAAE,gBAAqB,EAAE,IAAI,KAAK,EAAE,gBAAqB,WAAY,MAAO,SAAU,SAAU,KAAM,IACtL,mDAA2D,WAAY,QAAS,MAAO,KAAM,WAAY,OAAQ,QAAS,KAE1H,kBAAmB,kBAAoB,WAAY,QAAS,WAAY,OAAQ,MAAO,KAAM,QAAS,KACtG,sBAA0B,QAAS,EAAG,OAAQ,EAC9C,0BAA4B,UAAW,MAEvC,4BADA,wBAA0B,UAAW,IAAK,YAAa,GAEvD,yBAA2B,UAAW,MAAO,MAAO,QACpD,oBAAsB,QAAS,IAAK,WAAY,OAErB,yBAA3B,0BAAsD,YAAa,IAAK,WAAY,OACpF,0BAA4B,eAAe,eAAgB,eAAgB,oBAE3E,gBAAkB,SAAU,SAAU,IAAK,KAAO,MAAO,IACzD,kBAAsB,MAAO,KAC7B,oBAA0B,UAAW,IAErC,2BAA6B,OAAQ,EAAG,WAAY,MACpD,2BAA4B,8BAA+B,iCAAqC,YAChG,iCAAsC,YAAa,IAAK,UAAW,KAAO,WAAY,OAAQ,QAAS,KAAM,KAC7G,qDAA2D,MAAO,kBAC1B,wBAAxC,mCAAoE,MAAO,QAAS,gBAAiB,KAAM,QAAS,KAAM,KAAM,KAAM,KAAO,cAAe,cAC5J,4CAAiD,WAAY,QAAS,MAAO,KAC7E,iCAAqC,MAAO,QAAS,WAAY,OAAQ,YAAa,IAAK,QAAS,KAAM,KAE1G,YAAgB,MAAO,QAAS,gBAAiB,KACjD,UAAY,MAAO,IACnB,UAAY,MAAO,IACnB,UAAY,MAAO,IACnB,UAAY,MAAO,IAEnB,uBAAwB,uBAAyB,SAAU,SAAU,IAAK,KAAM,MAAO,QAAS,YAAa,IAAK,QAAS,KAAM,KAAO,cAAe,cAAc,gBAAiB,KAAM,WAAY,KAAM,UAAU,IACxN,qCAAuC,WAAY,QAAS,MAAO,KAEnE,uCACA,yCAD2C,OAAQ,QAGnD,kBAAoB,QAAS,EAAE,IAAI,IAAS,WAAY,MAE3C,aAAb,YAA4B,QAAS,KACrC,gBAAkB,WAAY,OAE9B,WAAa,MAAO,KACpB,YAAc,MAAO,MACrB,eAAiB,MAAO,KAExB,aAAe,WAAY"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,231 @@
.bs-stepper {
background-color: #FFF;
box-shadow: 0 4px 24px 0 rgba(34, 41, 47, .1);
border-radius: .5rem
}
.bs-stepper .bs-stepper-header {
padding: 1.5rem;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
border-bottom: 1px solid rgba(34, 41, 47, .08);
margin: 0
}
.bs-stepper .bs-stepper-header .line {
-webkit-box-flex: 0;
-webkit-flex: 0;
-ms-flex: 0;
flex: 0;
min-width: auto;
min-height: auto;
background-color: transparent;
margin: 0;
padding: 0 1.75rem;
color: #6E6B7B;
font-size: 1.5rem
}
.bs-stepper .bs-stepper-header .step {
margin-bottom: .25rem;
margin-top: .25rem
}
.bs-stepper .bs-stepper-header .step .step-trigger {
-webkit-flex-wrap: nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
padding: 0;
font-weight: 400
}
.bs-stepper .bs-stepper-header .step .step-trigger .bs-stepper-box {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
width: 38px;
height: 38px;
padding: .5em 0;
font-weight: 500;
color: #BABFC7;
background-color: rgba(186, 191, 199, .12);
border-radius: .35rem
}
.bs-stepper .bs-stepper-header .step .step-trigger .bs-stepper-label {
text-align: left;
margin: .5rem 0 0 1rem
}
.bs-stepper .bs-stepper-header .step .step-trigger .bs-stepper-label .bs-stepper-title {
display: inherit;
color: #6E6B7B;
font-weight: 600;
line-height: 1rem;
margin-bottom: 0
}
.bs-stepper.vertical .bs-stepper-content .content:not(.active), .bs-stepper.vertical .bs-stepper-header .line {
display: none
}
.bs-stepper .bs-stepper-header .step .step-trigger .bs-stepper-label .bs-stepper-subtitle {
font-weight: 400;
font-size: .85rem;
color: #B9B9C3
}
.bs-stepper .bs-stepper-header .step .step-trigger:hover {
background-color: transparent
}
.bs-stepper .bs-stepper-header .step.active .step-trigger .bs-stepper-box {
background-color: #7367F0;
color: #FFF;
box-shadow: 0 3px 6px 0 rgba(115, 103, 240, .4)
}
.bs-stepper .bs-stepper-header .step.active .step-trigger .bs-stepper-label .bs-stepper-title {
color: #7367F0
}
.bs-stepper .bs-stepper-header .step.crossed .step-trigger .bs-stepper-box {
background-color: rgba(115, 103, 240, .12);
color: #7367F0!important
}
.bs-stepper .bs-stepper-header .step.crossed .step-trigger .bs-stepper-label .bs-stepper-title {
color: #B9B9C3
}
.bs-stepper .bs-stepper-header .step.crossed+.line {
color: #7367F0
}
.bs-stepper .bs-stepper-content {
padding: 1.5rem
}
.bs-stepper .bs-stepper-content .content {
margin-left: 0
}
.bs-stepper .bs-stepper-content .content .content-header {
margin-bottom: 1rem
}
.bs-stepper.vertical .bs-stepper-header {
border-right: 1px solid #EBE9F1;
border-bottom: none
}
.bs-stepper.vertical .bs-stepper-header .step .step-trigger {
padding: 1rem 0
}
.bs-stepper.vertical .bs-stepper-content {
width: 100%;
padding-top: 2.5rem
}
.bs-stepper.vertical.wizard-icons .step {
text-align: center
}
.bs-stepper.wizard-modern {
background-color: transparent;
box-shadow: none
}
.bs-stepper.wizard-modern .bs-stepper-header {
border: none
}
.bs-stepper.wizard-modern .bs-stepper-content {
background-color: #FFF;
border-radius: .5rem;
box-shadow: 0 4px 24px 0 rgba(34, 41, 47, .1)
}
.horizontal-wizard, .modern-horizontal-wizard, .modern-vertical-wizard, .vertical-wizard {
margin-bottom: 2.2rem
}
.dark-layout .bs-stepper {
background-color: #283046;
box-shadow: 0 4px 24px 0 rgba(34, 41, 47, .24)
}
.dark-layout .bs-stepper .bs-stepper-header {
border-bottom: 1px solid rgba(59, 66, 83, .08)
}
.dark-layout .bs-stepper .bs-stepper-header .line {
color: #B4B7BD
}
.dark-layout .bs-stepper .bs-stepper-header .step .step-trigger .bs-stepper-box {
color: #BABFC7
}
.dark-layout .bs-stepper .bs-stepper-header .step .step-trigger .bs-stepper-label .bs-stepper-title {
color: #B4B7BD
}
.dark-layout .bs-stepper .bs-stepper-header .step .step-trigger .bs-stepper-label .bs-stepper-subtitle {
color: #676D7D
}
.dark-layout .bs-stepper .bs-stepper-header .step.active .step-trigger .bs-stepper-box {
background-color: #7367F0;
color: #FFF;
box-shadow: 0 3px 6px 0 rgba(115, 103, 240, .4)
}
.dark-layout .bs-stepper .bs-stepper-header .step.active .step-trigger .bs-stepper-label .bs-stepper-title {
color: #7367F0
}
.dark-layout .bs-stepper .bs-stepper-header .step.crossed .step-trigger .bs-stepper-label, .dark-layout .bs-stepper .bs-stepper-header .step.crossed .step-trigger .bs-stepper-title {
color: #676D7D
}
.dark-layout .bs-stepper.vertical .bs-stepper-header {
border-right-color: #3B4253
}
.dark-layout .bs-stepper.wizard-modern {
background-color: transparent;
box-shadow: none
}
.dark-layout .bs-stepper.wizard-modern .bs-stepper-header {
border: none
}
.dark-layout .bs-stepper.wizard-modern .bs-stepper-content {
background-color: #283046;
box-shadow: 0 4px 24px 0 rgba(34, 41, 47, .24)
}
html[data-textdirection=rtl] .btn-next, html[data-textdirection=rtl] .btn-prev {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex
}
html[data-textdirection=rtl] .btn-next i, html[data-textdirection=rtl] .btn-next svg, html[data-textdirection=rtl] .btn-prev i, html[data-textdirection=rtl] .btn-prev svg {
-webkit-transform: rotate(-180deg);
-ms-transform: rotate(-180deg);
transform: rotate(-180deg)
}
@media (max-width:992px) {
.bs-stepper .bs-stepper-header {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-align: start;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start
}
.bs-stepper .bs-stepper-header .step .step-trigger {
padding: .5rem 0!important;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-direction: row;
-ms-flex-direction: row;
flex-direction: row
}
.bs-stepper .bs-stepper-header .line {
display: none
}
.bs-stepper.vertical {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column
}
.bs-stepper.vertical .bs-stepper-header {
-webkit-box-align: start;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start
}
.bs-stepper.vertical .bs-stepper-content {
padding-top: 1.5rem
}
}
@@ -0,0 +1,208 @@
/*!
* bsStepper v{version} (https://github.com/Johann-S/bs-stepper)
* Copyright 2018 - {year} Johann-S <johann.servoire@gmail.com>
* Licensed under MIT (https://github.com/Johann-S/bs-stepper/blob/master/LICENSE)
*/
.bs-stepper .step-trigger {
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: start;
gap: 1rem;
padding: 16px 0px;
color: #6c757d;
text-decoration: none;
white-space: nowrap;
vertical-align: middle;
user-select: none;
background-color: rgb(246 246 246 / 0%);
border: none;
border-radius: .25rem;
transition: background-color .15s ease-out, color .15s ease-out;
}
.bs-stepper .step-trigger:not(:disabled):not(.disabled) {
cursor: pointer;
}
.bs-stepper .step-trigger:disabled,
.bs-stepper .step-trigger.disabled {
pointer-events: none;
opacity: .65;
}
.bs-stepper .step-trigger:focus {
color: #007bff;
outline: none;
}
.bs-stepper .step-trigger:hover {
text-decoration: none;
background-color: rgba(0, 0, 0, .0);
}
.bs-stepper-label {
display: inline-block;
margin: .25rem;
}
.bs-stepper-header {
display: flex;
align-items: center;
}
.bs-stepper-line,
.bs-stepper .line {
flex: 1 0 32px;
min-width: 1px;
min-height: 1px;
margin: auto;
background-color: rgba(0, 0, 0, .12);
}
.bs-stepper.vertical .bs-stepper-content .content:not(.active), .bs-stepper.vertical .bs-stepper-header .line {
display: none
}
.bs-stepper-circle {
width: 2.7rem;
height: 2.7rem;
font-size: 18px;
display: flex;
align-items: center;
justify-content: center;
color: #969595;
background-color: #f0f0f0;
border-radius: 50%;
}
.step .steper-title {
font-size: 17px;
}
.step .steper-sub-title {
font-size: 13px;
}
.active .bs-stepper-circle {
color: #ffffff;
background-color: #007bff;
}
.bs-stepper-content {
padding: 0;
}
@media (max-width:992px) {
.bs-stepper.vertical {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column
}
.bs-stepper.vertical .bs-stepper-header {
-webkit-box-align: start;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start
}
}
@media (max-width: 520px) {
.bs-stepper-content {
padding: 0;
}
}
.bs-stepper.vertical {
display: flex;
}
.bs-stepper.vertical .bs-stepper-header {
display: flex;
flex-direction: column;
align-items: stretch;
margin: 0;
padding: 1rem;
background-color: #fbfbfb;
border-right: 1px solid #EBE9F1;
border-bottom: none;
height: auto;
}
.bs-stepper.vertical .bs-stepper-pane,
.bs-stepper.vertical .content {
display: block;
}
.bs-stepper.vertical .bs-stepper-pane:not(.fade),
.bs-stepper.vertical .content:not(.fade) {
display: block;
visibility: hidden;
}
.bs-stepper-pane:not(.fade),
.bs-stepper .content:not(.fade) {
display: none;
}
.bs-stepper .content.fade,
.bs-stepper-pane.fade {
visibility: hidden;
transition-duration: .3s;
transition-property: opacity;
}
.bs-stepper-pane.fade.active,
.bs-stepper .content.fade.active {
visibility: visible;
opacity: 1;
}
.bs-stepper-pane.active:not(.fade),
.bs-stepper .content.active:not(.fade) {
display: block;
visibility: visible;
}
.bs-stepper-pane.dstepper-block,
.bs-stepper .content.dstepper-block {
display: block;
}
.bs-stepper:not(.vertical) .bs-stepper-pane.dstepper-none,
.bs-stepper:not(.vertical) .content.dstepper-none {
display: none;
}
.vertical .bs-stepper-pane.fade.dstepper-none,
.vertical .content.fade.dstepper-none {
display: none;
}
/* dark theme */
html.dark-theme .bs-stepper.vertical .bs-stepper-header{
background-color: #31373c;
border-right: 1px solid rgb(255 255 255 / 12%);
}
html.dark-theme .step .steper-title {
color: #cdcdce;
}
html.dark-theme .step .steper-sub-title {
color: #8f8f8f;
}
html.dark-theme .bs-stepper-circle {
color: #c7cdcf;
background-color: #212529;
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,127 @@
import { show, customProperty, detectAnimation, ClassName } from './util'
import { buildClickStepLinearListener, buildClickStepNonLinearListener } from './listeners'
const DEFAULT_OPTIONS = {
linear: true,
animation: false,
selectors: {
steps: '.step',
trigger: '.step-trigger',
stepper: '.bs-stepper'
}
}
class Stepper {
constructor (element, _options = {}) {
this._element = element
this._currentIndex = 0
this._stepsContents = []
this.options = {
...DEFAULT_OPTIONS,
..._options
}
this.options.selectors = {
...DEFAULT_OPTIONS.selectors,
...this.options.selectors
}
if (this.options.linear) {
this._element.classList.add(ClassName.LINEAR)
}
this._steps = [].slice.call(this._element.querySelectorAll(this.options.selectors.steps))
this._steps.filter(step => step.hasAttribute('data-target'))
.forEach(step => {
this._stepsContents.push(
this._element.querySelector(step.getAttribute('data-target'))
)
})
detectAnimation(this._stepsContents, this.options)
this._setLinkListeners()
Object.defineProperty(this._element, customProperty, {
value: this,
writable: true
})
if (this._steps.length) {
show(this._element, this._currentIndex, this.options, () => {})
}
}
// Private
_setLinkListeners () {
this._steps.forEach(step => {
const trigger = step.querySelector(this.options.selectors.trigger)
if (this.options.linear) {
this._clickStepLinearListener = buildClickStepLinearListener(this.options)
trigger.addEventListener('click', this._clickStepLinearListener)
} else {
this._clickStepNonLinearListener = buildClickStepNonLinearListener(this.options)
trigger.addEventListener('click', this._clickStepNonLinearListener)
}
})
}
// Public
next () {
const nextStep = (this._currentIndex + 1) <= this._steps.length - 1 ? this._currentIndex + 1 : (this._steps.length - 1)
show(this._element, nextStep, this.options, () => {
this._currentIndex = nextStep
})
}
previous () {
const previousStep = (this._currentIndex - 1) >= 0 ? this._currentIndex - 1 : 0
show(this._element, previousStep, this.options, () => {
this._currentIndex = previousStep
})
}
to (stepNumber) {
const tempIndex = stepNumber - 1
const nextStep = tempIndex >= 0 && tempIndex < this._steps.length
? tempIndex
: 0
show(this._element, nextStep, this.options, () => {
this._currentIndex = nextStep
})
}
reset () {
show(this._element, 0, this.options, () => {
this._currentIndex = 0
})
}
destroy () {
this._steps.forEach(step => {
const trigger = step.querySelector(this.options.selectors.trigger)
if (this.options.linear) {
trigger.removeEventListener('click', this._clickStepLinearListener)
} else {
trigger.removeEventListener('click', this._clickStepNonLinearListener)
}
})
this._element[customProperty] = undefined
this._element = undefined
this._currentIndex = undefined
this._steps = undefined
this._stepsContents = undefined
this._clickStepLinearListener = undefined
this._clickStepNonLinearListener = undefined
}
}
export default Stepper
@@ -0,0 +1,677 @@
/* eslint-env jasmine */
import Stepper from './index'
describe('Stepper', () => {
let fixture
beforeAll(() => {
const fixureNode = document.createElement('div')
fixureNode.setAttribute('id', 'fixture')
document.body.appendChild(fixureNode)
fixture = document.getElementById('fixture')
})
afterEach(() => {
fixture.innerHTML = ''
})
describe('constructor', () => {
it('should create a stepper', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger" id="trigger1">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger" id="trigger2">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
expect(stepperNode.classList.contains('linear')).toBe(true)
expect(stepper._steps.length).toEqual(2)
expect(stepperNode['bsStepper']).toEqual(stepper)
expect(document.querySelector('.step').classList.contains('active')).toBe(true)
expect(document.getElementById('trigger1').getAttribute('aria-selected')).toEqual('true')
expect(document.getElementById('trigger2').getAttribute('aria-selected')).toEqual('false')
expect(stepper.options).toEqual({
linear: true,
animation: false,
selectors: {
steps: '.step',
trigger: '.step-trigger',
stepper: '.bs-stepper'
}
})
})
it('should do nothing if there is no step', () => {
fixture.innerHTML = '<div id="myStepper" class="bs-stepper"></div>'
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
expect(stepperNode.classList.contains('linear')).toBe(true)
expect(stepper._steps.length).toEqual(0)
expect(stepperNode['bsStepper']).toEqual(stepper)
})
it('should create a non linear stepper', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode, {
linear: false
})
expect(stepperNode.classList.contains('linear')).toBe(false)
expect(stepper._steps.length).toEqual(2)
expect(document.querySelector('.step').classList.contains('active')).toBe(true)
expect(stepperNode['bsStepper']).toEqual(stepper)
expect(stepper._clickStepLinearListener).toBeUndefined()
expect(stepper._clickStepNonLinearListener).toBeTruthy()
expect(stepper.options).toEqual({
linear: false,
animation: false,
selectors: {
steps: '.step',
trigger: '.step-trigger',
stepper: '.bs-stepper'
}
})
})
it('should go to the next step when user click on a step for non linear stepper', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button id="trigger1" class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button id="trigger2" class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode, {
linear: false
})
const trigger2 = document.querySelector('#trigger2')
trigger2.click()
expect(document.querySelector('#test1').classList.contains('active')).toBe(false)
expect(document.querySelector('#test2').classList.contains('active')).toBe(true)
expect(document.getElementById('trigger1').getAttribute('aria-selected')).toEqual('false')
expect(document.getElementById('trigger2').getAttribute('aria-selected')).toEqual('true')
expect(stepper._currentIndex).toEqual(1)
})
it('should call preventDefault when user click on a step for linear stepper', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button id="trigger2" class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
const trigger2 = document.querySelector('#trigger2')
trigger2.removeAttribute('disabled')
const clickEvent = document.createEvent('Event')
clickEvent.initEvent('click', true, true)
spyOn(clickEvent, 'preventDefault')
trigger2.dispatchEvent(clickEvent)
expect(clickEvent.preventDefault).toHaveBeenCalled()
expect(stepper._currentIndex).toEqual(0)
})
it('should create a stepper with fade animation', done => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode, {
animation: true
})
setTimeout(() => {
expect(stepper.options).toEqual({
linear: true,
animation: true,
selectors: {
steps: '.step',
trigger: '.step-trigger',
stepper: '.bs-stepper'
}
})
expect(document.querySelector('#test1').classList.contains('fade')).toBe(true)
expect(document.querySelector('#test2').classList.contains('fade')).toBe(true)
done()
}, 10)
})
it('should add event listeners on triggers', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button id="trigger1" class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button id="trigger2" class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const trigger1 = document.querySelector('#trigger1')
const trigger2 = document.querySelector('#trigger2')
spyOn(trigger1, 'addEventListener')
spyOn(trigger2, 'addEventListener')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
expect(trigger1.addEventListener).toHaveBeenCalled()
expect(trigger2.addEventListener).toHaveBeenCalled()
expect(stepperNode['bsStepper']).toEqual(stepper)
})
it('should allow css selector configuration', () => {
fixture.innerHTML = [
'<div id="myStepper" class="custom-bs-stepper">',
' <div class="custom-step" data-target="#test1">',
' <button id="trigger1" class="custom-step-trigger">1</button>',
' </div>',
' <div class="custom-step" data-target="#test2">',
' <button id="trigger2" class="custom-step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode, {
selectors: {
steps: '.custom-step',
trigger: '.custom-step-trigger',
stepper: '.custom-bs-stepper'
}
})
expect(stepper.options).toEqual({
linear: true,
animation: false,
selectors: {
steps: '.custom-step',
trigger: '.custom-step-trigger',
stepper: '.custom-bs-stepper'
}
})
})
})
describe('next', () => {
it('should go to the next step', done => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
stepperNode.addEventListener('show.bs-stepper', function (event) {
expect(event.detail.indexStep).toEqual(1)
expect(event.detail.to).toEqual(1)
expect(event.detail.from).toEqual(0)
})
stepperNode.addEventListener('shown.bs-stepper', function (event) {
expect(event.detail.indexStep).toEqual(1)
expect(event.detail.to).toEqual(1)
expect(event.detail.from).toEqual(0)
expect(document.querySelector('#test1').classList.contains('active')).toBe(false)
expect(document.querySelector('#test2').classList.contains('active')).toBe(true)
done()
})
stepper.next()
})
it('should go to the next step with css selector configuration', done => {
fixture.innerHTML = [
'<div id="myStepper" class="custom-bs-stepper">',
' <div class="custom-step" data-target="#test1">',
' <button id="trigger1" class="custom-step-trigger">1</button>',
' </div>',
' <div class="custom-step" data-target="#test2">',
' <button id="trigger2" class="custom-step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode, {
selectors: {
steps: '.custom-step',
trigger: '.custom-step-trigger',
stepper: '.custom-bs-stepper'
}
})
expect(stepper.options).toEqual({
linear: true,
animation: false,
selectors: {
steps: '.custom-step',
trigger: '.custom-step-trigger',
stepper: '.custom-bs-stepper'
}
})
stepperNode.addEventListener('show.bs-stepper', function (event) {
expect(event.detail.indexStep).toEqual(1)
})
stepperNode.addEventListener('shown.bs-stepper', function (event) {
expect(event.detail.indexStep).toEqual(1)
expect(document.querySelector('#test1').classList.contains('active')).toBe(false)
expect(document.querySelector('#test2').classList.contains('active')).toBe(true)
done()
})
stepper.next()
})
it('should not go to the next step if the show event is default prevented', done => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
const listeners = {
show (event) {
event.preventDefault()
expect(event.detail.indexStep).toEqual(1)
setTimeout(() => {
expect(listeners.shown).not.toHaveBeenCalled()
expect(stepper._currentIndex).toEqual(0)
done()
}, 10)
},
shown () {
console.warn('shown called but it should not be the case')
}
}
spyOn(listeners, 'shown')
stepperNode.addEventListener('show.bs-stepper', listeners.show)
stepperNode.addEventListener('shown.bs-stepper', listeners.shown)
stepper.next()
})
it('should stay at the end if we call next', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
stepper.next()
stepper.next()
expect(document.querySelector('#test1').classList.contains('active')).toBe(false)
expect(document.querySelector('#test2').classList.contains('active')).toBe(true)
})
it('should keep block class on previous steps for vertical stepper without fade', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper vertical">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
stepper.next()
expect(document.querySelector('#test2').classList.contains('active')).toBe(true)
expect(document.querySelector('#test2').classList.contains('dstepper-block')).toBe(true)
})
})
describe('previous', () => {
it('should return to the previous step', done => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
const test1 = document.querySelector('#test1')
const test2 = document.querySelector('#test2')
stepper.next()
expect(test1.classList.contains('active')).toBe(false)
expect(test2.classList.contains('active')).toBe(true)
stepperNode.addEventListener('show.bs-stepper', function (event) {
expect(event.detail.indexStep).toEqual(0)
expect(event.detail.to).toEqual(0)
expect(event.detail.from).toEqual(1)
})
stepperNode.addEventListener('shown.bs-stepper', function (event) {
expect(event.detail.indexStep).toEqual(0)
expect(event.detail.to).toEqual(0)
expect(event.detail.from).toEqual(1)
expect(test1.classList.contains('active')).toBe(true)
expect(test2.classList.contains('active')).toBe(false)
done()
})
stepper.previous()
})
it('should stay at the first step if previous called', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const test1 = document.querySelector('#test1')
const test2 = document.querySelector('#test2')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
stepper.previous()
expect(test1.classList.contains('active')).toBe(true)
expect(test2.classList.contains('active')).toBe(false)
})
})
describe('to', () => {
it('should go to the step number', done => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
const test1 = document.querySelector('#test1')
const test2 = document.querySelector('#test2')
stepperNode.addEventListener('show.bs-stepper', event => {
expect(event.detail.indexStep).toEqual(1)
expect(event.detail.to).toEqual(1)
expect(event.detail.from).toEqual(0)
})
stepperNode.addEventListener('shown.bs-stepper', event => {
expect(event.detail.indexStep).toEqual(1)
expect(event.detail.to).toEqual(1)
expect(event.detail.from).toEqual(0)
expect(test1.classList.contains('active')).toBe(false)
expect(test2.classList.contains('active')).toBe(true)
done()
})
stepper.to(2)
})
it('should handle wrong inputs', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div class="step" data-target="#test3">',
' <button class="step-trigger">3</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
' <div id="test3">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
const test1 = document.querySelector('#test1')
const test2 = document.querySelector('#test2')
const test3 = document.querySelector('#test3')
stepper.to(-5)
expect(test1.classList.contains('active')).toBe(true)
expect(test2.classList.contains('active')).toBe(false)
expect(test3.classList.contains('active')).toBe(false)
stepper.to(2)
expect(test1.classList.contains('active')).toBe(false)
expect(test2.classList.contains('active')).toBe(true)
expect(test3.classList.contains('active')).toBe(false)
stepper.to(stepper._steps.length + 1)
expect(test1.classList.contains('active')).toBe(true)
expect(test2.classList.contains('active')).toBe(false)
expect(test3.classList.contains('active')).toBe(false)
})
})
describe('reset', () => {
it('should return to the first step', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
const test1 = document.querySelector('#test1')
const test2 = document.querySelector('#test2')
stepper.next()
expect(test1.classList.contains('active')).toBe(false)
expect(test2.classList.contains('active')).toBe(true)
stepper.reset()
expect(test1.classList.contains('active')).toBe(true)
expect(test2.classList.contains('active')).toBe(false)
})
})
describe('destroy', () => {
it('should clear properties', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode)
expect(stepperNode['bsStepper']).toEqual(stepper)
expect(stepper._element).toEqual(stepperNode)
expect(stepper._currentIndex).toEqual(0)
expect(stepper._steps.length).toEqual(2)
expect(stepper._stepsContents.length).toEqual(2)
expect(stepper._clickStepLinearListener).toBeTruthy()
expect(stepper._clickStepNonLinearListener).toBeUndefined()
stepper.destroy()
expect(stepperNode.bsStepper).toBeUndefined()
expect(stepper._element).toBeUndefined()
expect(stepper._currentIndex).toBeUndefined()
expect(stepper._steps).toBeUndefined()
expect(stepper._stepsContents).toBeUndefined()
expect(stepper._clickStepLinearListener).toBeUndefined()
expect(stepper._clickStepNonLinearListener).toBeUndefined()
})
it('should remove event listeners on triggers', () => {
fixture.innerHTML = [
'<div id="myStepper" class="bs-stepper">',
' <div class="step" data-target="#test1">',
' <button id="trigger1" class="step-trigger">1</button>',
' </div>',
' <div class="step" data-target="#test2">',
' <button id="trigger2" class="step-trigger">2</button>',
' </div>',
' <div id="test1">1</div>',
' <div id="test2">2</div>',
'</div>'
].join('')
const stepperNode = document.getElementById('myStepper')
const stepper = new Stepper(stepperNode, { linear: false })
const trigger1 = document.querySelector('#trigger1')
const trigger2 = document.querySelector('#trigger2')
spyOn(trigger1, 'removeEventListener')
spyOn(trigger2, 'removeEventListener')
stepper.destroy()
expect(trigger1.removeEventListener).toHaveBeenCalled()
expect(trigger2.removeEventListener).toHaveBeenCalled()
})
})
})
@@ -0,0 +1,24 @@
import { closest } from './polyfill'
import { customProperty, show } from './util'
const buildClickStepLinearListener = () => function clickStepLinearListener (event) {
event.preventDefault()
}
const buildClickStepNonLinearListener = options => function clickStepNonLinearListener (event) {
event.preventDefault()
const step = closest(event.target, options.selectors.steps)
const stepperNode = closest(step, options.selectors.stepper)
const stepper = stepperNode[customProperty]
const stepIndex = stepper._steps.indexOf(step)
show(stepperNode, stepIndex, options, () => {
stepper._currentIndex = stepIndex
})
}
export {
buildClickStepLinearListener,
buildClickStepNonLinearListener
}
@@ -0,0 +1,49 @@
var stepper1
var stepper2
//var stepper3
var stepper4
var stepperForm
document.addEventListener('DOMContentLoaded', function () {
stepper1 = new Stepper(document.querySelector('#stepper1'))
stepper2 = new Stepper(document.querySelector('#stepper2'), {
linear: false
})
stepper3 = new Stepper(document.querySelector('#stepper3'))
var stepperFormEl = document.querySelector('#stepperForm')
stepperForm = new Stepper(stepperFormEl, {
animation: true
})
var btnNextList = [].slice.call(document.querySelectorAll('.btn-next-form'))
var stepperPanList = [].slice.call(stepperFormEl.querySelectorAll('.bs-stepper-pane'))
var inputMailForm = document.getElementById('inputMailForm')
var inputPasswordForm = document.getElementById('inputPasswordForm')
var form = stepperFormEl.querySelector('.bs-stepper-content form')
btnNextList.forEach(function (btn) {
btn.addEventListener('click', function () {
stepperForm.next()
})
})
stepperFormEl.addEventListener('show.bs-stepper', function (event) {
form.classList.remove('was-validated')
var nextStep = event.detail.indexStep
var currentStep = nextStep
if (currentStep > 0) {
currentStep--
}
var stepperPan = stepperPanList[currentStep]
if ((stepperPan.getAttribute('id') === 'test-form-1' && !inputMailForm.value.length)
|| (stepperPan.getAttribute('id') === 'test-form-2' && !inputPasswordForm.value.length)) {
event.preventDefault()
form.classList.add('was-validated')
}
})
})
@@ -0,0 +1,74 @@
let matches = window.Element.prototype.matches
let closest = (element, selector) => element.closest(selector)
let WinEvent = (inType, params) => new window.Event(inType, params)
let createCustomEvent = (eventName, params) => {
const cEvent = new window.CustomEvent(eventName, params)
return cEvent
}
/* istanbul ignore next */
function polyfill () {
if (!window.Element.prototype.matches) {
matches = window.Element.prototype.msMatchesSelector ||
window.Element.prototype.webkitMatchesSelector
}
if (!window.Element.prototype.closest) {
closest = (element, selector) => {
if (!document.documentElement.contains(element)) {
return null
}
do {
if (matches.call(element, selector)) {
return element
}
element = element.parentElement || element.parentNode
} while (element !== null && element.nodeType === 1)
return null
}
}
if (!window.Event || typeof window.Event !== 'function') {
WinEvent = (inType, params) => {
params = params || {}
const e = document.createEvent('Event')
e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable))
return e
}
}
if (typeof window.CustomEvent !== 'function') {
const originPreventDefault = window.Event.prototype.preventDefault
createCustomEvent = (eventName, params) => {
const evt = document.createEvent('CustomEvent')
params = params || { bubbles: false, cancelable: false, detail: null }
evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)
evt.preventDefault = function () {
if (!this.cancelable) {
return
}
originPreventDefault.call(this)
Object.defineProperty(this, 'defaultPrevented', {
get: function () { return true }
})
}
return evt
}
}
}
polyfill()
export {
closest,
WinEvent,
createCustomEvent
}
@@ -0,0 +1,168 @@
import { WinEvent, createCustomEvent } from './polyfill'
const MILLISECONDS_MULTIPLIER = 1000
const ClassName = {
ACTIVE: 'active',
LINEAR: 'linear',
BLOCK: 'dstepper-block',
NONE: 'dstepper-none',
FADE: 'fade',
VERTICAL: 'vertical'
}
const transitionEndEvent = 'transitionend'
const customProperty = 'bsStepper'
const show = (stepperNode, indexStep, options, done) => {
const stepper = stepperNode[customProperty]
if (stepper._steps[indexStep].classList.contains(ClassName.ACTIVE) || stepper._stepsContents[indexStep].classList.contains(ClassName.ACTIVE)) {
return
}
const showEvent = createCustomEvent('show.bs-stepper', {
cancelable: true,
detail: {
from: stepper._currentIndex,
to: indexStep,
indexStep
}
})
stepperNode.dispatchEvent(showEvent)
const activeStep = stepper._steps.filter(step => step.classList.contains(ClassName.ACTIVE))
const activeContent = stepper._stepsContents.filter(content => content.classList.contains(ClassName.ACTIVE))
if (showEvent.defaultPrevented) {
return
}
if (activeStep.length) {
activeStep[0].classList.remove(ClassName.ACTIVE)
}
if (activeContent.length) {
activeContent[0].classList.remove(ClassName.ACTIVE)
if (!stepperNode.classList.contains(ClassName.VERTICAL) && !stepper.options.animation) {
activeContent[0].classList.remove(ClassName.BLOCK)
}
}
showStep(stepperNode, stepper._steps[indexStep], stepper._steps, options)
showContent(stepperNode, stepper._stepsContents[indexStep], stepper._stepsContents, activeContent, done)
}
const showStep = (stepperNode, step, stepList, options) => {
stepList.forEach(step => {
const trigger = step.querySelector(options.selectors.trigger)
trigger.setAttribute('aria-selected', 'false')
// if stepper is in linear mode, set disabled attribute on the trigger
if (stepperNode.classList.contains(ClassName.LINEAR)) {
trigger.setAttribute('disabled', 'disabled')
}
})
step.classList.add(ClassName.ACTIVE)
const currentTrigger = step.querySelector(options.selectors.trigger)
currentTrigger.setAttribute('aria-selected', 'true')
// if stepper is in linear mode, remove disabled attribute on current
if (stepperNode.classList.contains(ClassName.LINEAR)) {
currentTrigger.removeAttribute('disabled')
}
}
const showContent = (stepperNode, content, contentList, activeContent, done) => {
const stepper = stepperNode[customProperty]
const toIndex = contentList.indexOf(content)
const shownEvent = createCustomEvent('shown.bs-stepper', {
cancelable: true,
detail: {
from: stepper._currentIndex,
to: toIndex,
indexStep: toIndex
}
})
function complete () {
content.classList.add(ClassName.BLOCK)
content.removeEventListener(transitionEndEvent, complete)
stepperNode.dispatchEvent(shownEvent)
done()
}
if (content.classList.contains(ClassName.FADE)) {
content.classList.remove(ClassName.NONE)
const duration = getTransitionDurationFromElement(content)
content.addEventListener(transitionEndEvent, complete)
if (activeContent.length) {
activeContent[0].classList.add(ClassName.NONE)
}
content.classList.add(ClassName.ACTIVE)
emulateTransitionEnd(content, duration)
} else {
content.classList.add(ClassName.ACTIVE)
content.classList.add(ClassName.BLOCK)
stepperNode.dispatchEvent(shownEvent)
done()
}
}
const getTransitionDurationFromElement = element => {
if (!element) {
return 0
}
// Get transition-duration of the element
let transitionDuration = window.getComputedStyle(element).transitionDuration
const floatTransitionDuration = parseFloat(transitionDuration)
// Return 0 if element or transition duration is not found
if (!floatTransitionDuration) {
return 0
}
// If multiple durations are defined, take the first
transitionDuration = transitionDuration.split(',')[0]
return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER
}
const emulateTransitionEnd = (element, duration) => {
let called = false
const durationPadding = 5
const emulatedDuration = duration + durationPadding
function listener () {
called = true
element.removeEventListener(transitionEndEvent, listener)
}
element.addEventListener(transitionEndEvent, listener)
window.setTimeout(() => {
if (!called) {
element.dispatchEvent(WinEvent(transitionEndEvent))
}
element.removeEventListener(transitionEndEvent, listener)
}, emulatedDuration)
}
const detectAnimation = (contentList, options) => {
if (options.animation) {
contentList.forEach(content => {
content.classList.add(ClassName.FADE)
content.classList.add(ClassName.NONE)
})
}
}
export {
show,
ClassName,
customProperty,
detectAnimation
}
@@ -0,0 +1,130 @@
//
// Chart extension for making the bars rounded
// Code from: https://codepen.io/jedtrow/full/ygRYgo
//
Chart.elements.Rectangle.prototype.draw = function() {
var ctx = this._chart.ctx;
var vm = this._view;
var left, right, top, bottom, signX, signY, borderSkipped, radius;
var borderWidth = vm.borderWidth;
// Set Radius Here
// If radius is large enough to cause drawing errors a max radius is imposed
var cornerRadius = 6;
if (!vm.horizontal) {
// bar
left = vm.x - vm.width / 2;
right = vm.x + vm.width / 2;
top = vm.y;
bottom = vm.base;
signX = 1;
signY = bottom > top ? 1 : -1;
borderSkipped = vm.borderSkipped || 'bottom';
} else {
// horizontal bar
left = vm.base;
right = vm.x;
top = vm.y - vm.height / 2;
bottom = vm.y + vm.height / 2;
signX = right > left ? 1 : -1;
signY = 1;
borderSkipped = vm.borderSkipped || 'left';
}
// Canvas doesn't allow us to stroke inside the width so we can
// adjust the sizes to fit if we're setting a stroke on the line
if (borderWidth) {
// borderWidth shold be less than bar width and bar height.
var barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));
borderWidth = borderWidth > barSize ? barSize : borderWidth;
var halfStroke = borderWidth / 2;
// Adjust borderWidth when bar top position is near vm.base(zero).
var borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);
var borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);
var borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);
var borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);
// not become a vertical line?
if (borderLeft !== borderRight) {
top = borderTop;
bottom = borderBottom;
}
// not become a horizontal line?
if (borderTop !== borderBottom) {
left = borderLeft;
right = borderRight;
}
}
ctx.beginPath();
ctx.fillStyle = vm.backgroundColor;
ctx.strokeStyle = vm.borderColor;
ctx.lineWidth = borderWidth;
// Corner points, from bottom-left to bottom-right clockwise
// | 1 2 |
// | 0 3 |
var corners = [
[left, bottom],
[left, top],
[right, top],
[right, bottom]
];
// Find first (starting) corner with fallback to 'bottom'
var borders = ['bottom', 'left', 'top', 'right'];
var startCorner = borders.indexOf(borderSkipped, 0);
if (startCorner === -1) {
startCorner = 0;
}
function cornerAt(index) {
return corners[(startCorner + index) % 4];
}
// Draw rectangle from 'startCorner'
var corner = cornerAt(0);
ctx.moveTo(corner[0], corner[1]);
for (var i = 1; i < 4; i++) {
corner = cornerAt(i);
nextCornerId = i + 1;
if (nextCornerId == 4) {
nextCornerId = 0
}
nextCorner = cornerAt(nextCornerId);
width = corners[2][0] - corners[1][0];
height = corners[0][1] - corners[1][1];
x = corners[1][0];
y = corners[1][1];
var radius = cornerRadius;
// Fix radius being too large
if (radius > height / 2) {
radius = height / 2;
}
if (radius > width / 2) {
radius = width / 2;
}
ctx.moveTo(x + radius, y);
ctx.lineTo(x + width - radius, y);
ctx.quadraticCurveTo(x + width, y, x + width, y + radius);
ctx.lineTo(x + width, y + height - radius);
ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);
ctx.lineTo(x + radius, y + height);
ctx.quadraticCurveTo(x, y + height, x, y + height - radius);
ctx.lineTo(x, y + radius);
ctx.quadraticCurveTo(x, y, x + radius, y);
}
ctx.fill();
if (borderWidth) {
ctx.stroke();
}
};
File diff suppressed because one or more lines are too long
@@ -0,0 +1,408 @@
$(function() {
// chart1
var ctx = document.getElementById('chart1').getContext('2d');
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
datasets: [{
label: 'Google',
data: [6, 20, 14, 12, 17, 8, 10],
backgroundColor: [
'#008cff'
],
lineTension: 0.4,
borderColor: [
'#008cff'
],
borderWidth: 3
},
{
label: 'Facebook',
data: [5, 30, 16, 23, 8, 14, 11],
backgroundColor: [
'#fd3550'
],
tension: 0.4,
borderColor: [
'#fd3550'
],
borderWidth: 3
}]
},
options: {
maintainAspectRatio: false,
plugins: {
legend: {
position:'bottom',
display: true,
}
},
scales: {
y: {
beginAtZero: true
}
}
}
});
// chart2
var ctx = document.getElementById('chart2').getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
datasets: [{
label: 'Google',
data: [18, 25, 14, 12, 17, 8, 10],
backgroundColor: [
'#0d6efd'
],
lineTension: 0,
borderColor: [
'#0d6efd'
],
borderWidth: 3
},
{
label: 'Facebook',
data: [12, 30, 16, 23, 8, 14, 11],
backgroundColor: [
'#15ca20'
],
tension: 0,
borderColor: [
'#15ca20'
],
borderWidth: 3
}]
},
options: {
maintainAspectRatio: false,
barPercentage: 0.6,
categoryPercentage: 0.5,
plugins: {
legend: {
position:'bottom',
display: true,
}
},
scales: {
y: {
beginAtZero: true
}
}
}
});
// chart3
var ctx = document.getElementById('chart3').getContext('2d');
var myChart = new Chart(ctx, {
type: 'pie',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
datasets: [{
data: [12, 19, 3, 5, 2, 3],
backgroundColor: [
'#0d6efd',
'#6f42c1',
'#d63384',
'#fd7e14',
'#15ca20',
'#0dcaf0'
],
borderWidth: 1.5
}]
},
options: {
maintainAspectRatio: false,
plugins: {
legend: {
position:'bottom',
display: true,
}
},
}
});
// chart4
var ctx = document.getElementById('chart4').getContext('2d');
var myChart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
datasets: [{
data: [12, 19, 3, 5, 2, 3],
backgroundColor: [
'#0d6efd',
'#6f42c1',
'#d63384',
'#fd7e14',
'#15ca20',
'#0dcaf0'
],
borderWidth: 1
}]
},
options: {
maintainAspectRatio: false,
plugins: {
legend: {
position:'bottom',
display: true,
}
},
}
});
// chart5
var ctx = document.getElementById('chart5').getContext('2d');
var myChart = new Chart(ctx, {
type: 'radar',
data: {
labels: [
'Eating',
'Drinking',
'Sleeping',
'Designing',
'Coding',
'Cycling',
'Running'
],
datasets: [{
label: 'My First Dataset',
data: [65, 59, 90, 81, 56, 55, 40],
fill: true,
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgb(255, 99, 132)',
pointBackgroundColor: 'rgb(255, 99, 132)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgb(255, 99, 132)'
}, {
label: 'My Second Dataset',
data: [28, 48, 40, 19, 96, 27, 100],
fill: true,
backgroundColor: 'rgba(54, 162, 235, 0.2)',
borderColor: 'rgb(54, 162, 235)',
pointBackgroundColor: 'rgb(54, 162, 235)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgb(54, 162, 235)'
}]
},
options: {
maintainAspectRatio: false,
plugins: {
legend: {
position:'bottom',
display: true,
}
},
elements: {
line: {
borderWidth: 3
}
}
},
});
// chart6
var ctx = document.getElementById('chart6').getContext('2d');
var myChart = new Chart(ctx, {
type: 'polarArea',
data: {
labels: [
'Red',
'Purple',
'Yellow',
'Grey',
'Green'
],
datasets: [{
label: 'My First Dataset',
data: [11, 16, 7, 3, 14],
backgroundColor: [
'#0d6efd',
'#6f42c1',
'#d63384',
'#fd7e14',
'#15ca20',
'#0dcaf0'
],
}]
},
options: {
maintainAspectRatio: false,
plugins: {
legend: {
position:'bottom',
display: true,
}
},
elements: {
line: {
borderWidth: 3
}
}
},
});
// chart7
var ctx = document.getElementById('chart7').getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
datasets: [{
label: 'Google',
data: [18, 25, 14, 12, 17, 8, 10],
backgroundColor: [
'#fd3550'
],
lineTension: 0,
borderColor: [
'#fd3550'
],
borderWidth: 0
}
]
},
options: {
maintainAspectRatio: false,
barPercentage: 0.5,
categoryPercentage: 0.7,
indexAxis: 'y',
plugins: {
legend: {
position:'bottom',
display: true,
}
},
scales: {
y: {
beginAtZero: true
}
}
}
});
// chart8
var ctx = document.getElementById('chart8').getContext('2d');
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
datasets: [{
type: 'bar',
label: 'Google',
data: [6, 20, 14, 12, 17, 8, 10],
backgroundColor: [
'#008cff'
],
lineTension: 0.4,
borderColor: [
'#008cff'
],
borderWidth: 1
},
{
type: 'line',
label: 'Facebook',
data: [5, 30, 16, 23, 8, 14, 11],
backgroundColor: [
'#fd3550'
],
tension: 0.4,
borderColor: [
'#fd3550'
],
borderWidth: 4
}]
},
options: {
maintainAspectRatio: false,
barPercentage: 0.5,
categoryPercentage: 0.5,
plugins: {
legend: {
position:'bottom',
display: true,
}
},
scales: {
y: {
beginAtZero: true
}
}
}
});
// chart9
var ctx = document.getElementById('chart9').getContext('2d');
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
datasets: [{
label: 'Facebook',
data: [5, 30, 16, 23, 8, 14, 2],
backgroundColor: [
'#15ca20'
],
fill: {
target: 'origin',
above: 'rgb(21 202 32 / 20%)', // Area will be red above the origin
//below: 'rgb(21 202 32 / 100%)' // And blue below the origin
},
tension: 0.4,
borderColor: [
'#15ca20'
],
borderWidth: 4
}]
},
options: {
maintainAspectRatio: false,
barPercentage: 0.5,
categoryPercentage: 0.5,
plugins: {
legend: {
position:'bottom',
display: true,
}
},
scales: {
y: {
beginAtZero: true
}
}
}
});
});
File diff suppressed because one or more lines are too long
@@ -0,0 +1,188 @@
/*!
DataTables Bootstrap 5 integration
2020 SpryMedia Ltd - datatables.net/license
*/
var $jscomp = $jscomp || {};
$jscomp.scope = {};
$jscomp.findInternal = function(a, b, c) {
a instanceof String && (a = String(a));
for (var e = a.length, d = 0; d < e; d++) {
var f = a[d];
if (b.call(c, f, d, a)) return {
i: d,
v: f
}
}
return {
i: -1,
v: void 0
}
};
$jscomp.ASSUME_ES5 = !1;
$jscomp.ASSUME_NO_NATIVE_MAP = !1;
$jscomp.ASSUME_NO_NATIVE_SET = !1;
$jscomp.SIMPLE_FROUND_POLYFILL = !1;
$jscomp.ISOLATE_POLYFILLS = !1;
$jscomp.defineProperty = $jscomp.ASSUME_ES5 || "function" == typeof Object.defineProperties ? Object.defineProperty : function(a, b, c) {
if (a == Array.prototype || a == Object.prototype) return a;
a[b] = c.value;
return a
};
$jscomp.getGlobal = function(a) {
a = ["object" == typeof globalThis && globalThis, a, "object" == typeof window && window, "object" == typeof self && self, "object" == typeof global && global];
for (var b = 0; b < a.length; ++b) {
var c = a[b];
if (c && c.Math == Math) return c
}
throw Error("Cannot find global object");
};
$jscomp.global = $jscomp.getGlobal(this);
$jscomp.IS_SYMBOL_NATIVE = "function" === typeof Symbol && "symbol" === typeof Symbol("x");
$jscomp.TRUST_ES6_POLYFILLS = !$jscomp.ISOLATE_POLYFILLS || $jscomp.IS_SYMBOL_NATIVE;
$jscomp.polyfills = {};
$jscomp.propertyToPolyfillSymbol = {};
$jscomp.POLYFILL_PREFIX = "$jscp$";
var $jscomp$lookupPolyfilledValue = function(a, b) {
var c = $jscomp.propertyToPolyfillSymbol[b];
if (null == c) return a[b];
c = a[c];
return void 0 !== c ? c : a[b]
};
$jscomp.polyfill = function(a, b, c, e) {
b && ($jscomp.ISOLATE_POLYFILLS ? $jscomp.polyfillIsolated(a, b, c, e) : $jscomp.polyfillUnisolated(a, b, c, e))
};
$jscomp.polyfillUnisolated = function(a, b, c, e) {
c = $jscomp.global;
a = a.split(".");
for (e = 0; e < a.length - 1; e++) {
var d = a[e];
if (!(d in c)) return;
c = c[d]
}
a = a[a.length - 1];
e = c[a];
b = b(e);
b != e && null != b && $jscomp.defineProperty(c, a, {
configurable: !0,
writable: !0,
value: b
})
};
$jscomp.polyfillIsolated = function(a, b, c, e) {
var d = a.split(".");
a = 1 === d.length;
e = d[0];
e = !a && e in $jscomp.polyfills ? $jscomp.polyfills : $jscomp.global;
for (var f = 0; f < d.length - 1; f++) {
var l = d[f];
if (!(l in e)) return;
e = e[l]
}
d = d[d.length - 1];
c = $jscomp.IS_SYMBOL_NATIVE && "es6" === c ? e[d] : null;
b = b(c);
null != b && (a ? $jscomp.defineProperty($jscomp.polyfills, d, {
configurable: !0,
writable: !0,
value: b
}) : b !== c && ($jscomp.propertyToPolyfillSymbol[d] = $jscomp.IS_SYMBOL_NATIVE ? $jscomp.global.Symbol(d) : $jscomp.POLYFILL_PREFIX + d, d = $jscomp.propertyToPolyfillSymbol[d], $jscomp.defineProperty(e, d, {
configurable: !0,
writable: !0,
value: b
})))
};
$jscomp.polyfill("Array.prototype.find", function(a) {
return a ? a : function(b, c) {
return $jscomp.findInternal(this, b, c).v
}
}, "es6", "es3");
(function(a) {
"function" === typeof define && define.amd ? define(["jquery", "datatables.net"], function(b) {
return a(b, window, document)
}) : "object" === typeof exports ? module.exports = function(b, c) {
b || (b = window);
c && c.fn.dataTable || (c = require("datatables.net")(b, c).$);
return a(c, b, b.document)
} : a(jQuery, window, document)
})(function(a, b, c, e) {
var d = a.fn.dataTable;
a.extend(!0, d.defaults, {
dom: "<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
renderer: "bootstrap"
});
a.extend(d.ext.classes, {
sWrapper: "dataTables_wrapper dt-bootstrap5",
sFilterInput: "form-control form-control-sm",
sLengthSelect: "form-select form-select-sm",
sProcessing: "dataTables_processing card",
sPageButton: "paginate_button page-item"
});
d.ext.renderer.pageButton.bootstrap = function(f, l, A, B, m, t) {
var u = new d.Api(f),
C = f.oClasses,
n = f.oLanguage.oPaginate,
D = f.oLanguage.oAria.paginate || {},
h, k, v = 0,
y = function(q, w) {
var x, E = function(p) {
p.preventDefault();
a(p.currentTarget).hasClass("disabled") || u.page() == p.data.action || u.page(p.data.action).draw("page")
};
var r = 0;
for (x = w.length; r < x; r++) {
var g = w[r];
if (Array.isArray(g)) y(q, g);
else {
k = h = "";
switch (g) {
case "ellipsis":
h = "&#x2026;";
k = "disabled";
break;
case "first":
h = n.sFirst;
k = g + (0 < m ? "" : " disabled");
break;
case "previous":
h = n.sPrevious;
k = g + (0 < m ? "" : " disabled");
break;
case "next":
h = n.sNext;
k = g + (m < t - 1 ? "" : " disabled");
break;
case "last":
h = n.sLast;
k = g + (m < t - 1 ? "" : " disabled");
break;
default:
h = g + 1, k = m === g ? "active" : ""
}
if (h) {
var F = a("<li>", {
"class": C.sPageButton + " " + k,
id: 0 === A && "string" === typeof g ? f.sTableId + "_" + g : null
}).append(a("<a>", {
href: "#",
"aria-controls": f.sTableId,
"aria-label": D[g],
"data-dt-idx": v,
tabindex: f.iTabIndex,
"class": "page-link"
}).html(h)).appendTo(q);
f.oApi._fnBindAction(F, {
action: g
}, E);
v++
}
}
}
};
try {
var z = a(l).find(c.activeElement).data("dt-idx")
} catch (q) {}
y(a(l).empty().html('<ul class="pagination"/>').children("ul"), B);
z !== e && a(l).find("[data-dt-idx=" + z + "]").trigger("focus")
};
return d
});
File diff suppressed because one or more lines are too long
@@ -0,0 +1,97 @@
/* ==========================================================================
$BASE-PICKER
========================================================================== */
/**
* Note: the root picker element should *NOT* be styled more than whats here.
*/
.picker {
font-size: 16px;
text-align: left;
line-height: 1.2;
color: #000;
position: absolute;
z-index: 10000;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
outline: none;
}
/**
* The picker input element.
*/
.picker__input {
cursor: default;
background-color: #ffffff !important;
}
/**
* When the picker is opened, the input element is activated.
*/
.picker__input.picker__input--active {
border-color: #0089ec;
}
/**
* The holder is the only scrollable top-level container element.
*/
.picker__holder {
width: 100%;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
/*!
* Classic picker styling for pickadate.js
* Demo: http://amsul.github.io/pickadate.js
*/
/**
* Note: the root picker element should *NOT* be styled more than whats here.
*/
.picker {
width: 100%;
}
/**
* The holder is the base of the picker.
*/
.picker__holder {
position: absolute;
background: #fff;
border: 1px solid #aaaaaa;
border-top-width: 0;
border-bottom-width: 0;
border-radius: 0 0 5px 5px;
box-sizing: border-box;
min-width: 176px;
max-width: 466px;
max-height: 0;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
-moz-opacity: 0;
opacity: 0;
transform: translateY(-1em) perspective(600px) rotateX(10deg);
transition: transform 0.15s ease-out, opacity 0.15s ease-out, max-height 0s 0.15s, border-width 0s 0.15s;
}
/**
* The frame and wrap work together to ensure that
* clicks within the picker dont reach the holder.
*/
.picker__frame {
padding: 1px;
}
.picker__wrap {
margin: -1px;
}
/**
* When the picker opens...
*/
.picker--opened .picker__holder {
max-height: 25em;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
-moz-opacity: 1;
opacity: 1;
border-top-width: 1px;
border-bottom-width: 1px;
transform: translateY(0) perspective(600px) rotateX(0);
transition: transform 0.15s ease-out, opacity 0.15s ease-out, max-height 0s, border-width 0s;
box-shadow: 0 6px 18px 1px rgba(0, 0, 0, 0.12);
}
@@ -0,0 +1,300 @@
/* ==========================================================================
$BASE-DATE-PICKER
========================================================================== */
/**
* The picker box.
*/
.picker__box {
padding: 0 1em;
}
/**
* The header containing the month and year stuff.
*/
.picker__header {
text-align: center;
position: relative;
margin-top: .75em;
}
/**
* The month and year labels.
*/
.picker__month,
.picker__year {
font-weight: 500;
display: inline-block;
margin-left: .25em;
margin-right: .25em;
}
.picker__year {
color: #999;
font-size: .8em;
font-style: italic;
}
/**
* The month and year selectors.
*/
.picker__select--month,
.picker__select--year {
border: 1px solid #b7b7b7;
height: 2em;
margin-left: .25em;
margin-right: .25em;
}
@media (min-width: 24.5em) {
.picker__select--month,
.picker__select--year {
margin-top: -0.5em;
}
}
.picker__select--month {
width: 35%;
}
.picker__select--year {
width: 22.5%;
}
.picker__select--month:focus,
.picker__select--year:focus {
border-color: #007bff;
}
/**
* The month navigation buttons.
*/
.picker__nav--prev,
.picker__nav--next {
position: absolute;
padding: .5em 1.25em;
width: 1em;
height: 1em;
box-sizing: content-box;
top: -0.25em;
}
@media (min-width: 24.5em) {
.picker__nav--prev,
.picker__nav--next {
top: -0.33em;
}
}
.picker__nav--prev {
left: -1em;
padding-right: 1.25em;
}
@media (min-width: 24.5em) {
.picker__nav--prev {
padding-right: 1.5em;
}
}
.picker__nav--next {
right: -1em;
padding-left: 1.25em;
}
@media (min-width: 24.5em) {
.picker__nav--next {
padding-left: 1.5em;
}
}
.picker__nav--prev:before,
.picker__nav--next:before {
content: " ";
border-top: .5em solid transparent;
border-bottom: .5em solid transparent;
border-right: 0.75em solid #000;
width: 0;
height: 0;
display: block;
margin: 0 auto;
}
.picker__nav--next:before {
border-right: 0;
border-left: 0.75em solid #000;
}
.picker__nav--prev:hover,
.picker__nav--next:hover {
cursor: pointer;
color: #000;
background: #b1dcfb;
}
.picker__nav--disabled,
.picker__nav--disabled:hover,
.picker__nav--disabled:before,
.picker__nav--disabled:before:hover {
cursor: default;
background: none;
border-right-color: #f5f5f5;
border-left-color: #f5f5f5;
}
/**
* The calendar table of dates
*/
.picker__table {
text-align: center;
border-collapse: collapse;
border-spacing: 0;
table-layout: fixed;
font-size: inherit;
width: 100%;
margin-top: .75em;
margin-bottom: .5em;
}
@media (min-height: 33.875em) {
.picker__table {
margin-bottom: .75em;
}
}
.picker__table td {
margin: 0;
padding: 0;
}
/**
* The weekday labels
*/
.picker__weekday {
width: 14.285714286%;
font-size: .75em;
padding-bottom: .25em;
color: #999;
font-weight: 500;
/* Increase the spacing a tad */
}
@media (min-height: 33.875em) {
.picker__weekday {
padding-bottom: .5em;
}
}
/**
* The days on the calendar
*/
.picker__day {
padding: .3125em 0;
font-weight: 200;
border: 1px solid transparent;
}
.picker__day--today {
position: relative;
}
.picker__day--today:before {
content: " ";
position: absolute;
top: 2px;
right: 2px;
width: 0;
height: 0;
border-top: 0.5em solid #0059bc;
border-left: .5em solid transparent;
}
.picker__day--disabled:before {
border-top-color: #aaa;
}
.picker__day--outfocus {
color: #ddd;
}
.picker__day--infocus:hover,
.picker__day--outfocus:hover {
cursor: pointer;
color: #000;
background: #b1dcfb;
}
.picker__day--highlighted {
border-color: #007bff;
}
.picker__day--highlighted:hover,
.picker--focused .picker__day--highlighted {
cursor: pointer;
color: #000;
background: #b1dcfb;
}
.picker__day--selected,
.picker__day--selected:hover,
.picker--focused .picker__day--selected {
background: #007bff;
color: #fff;
}
.picker__day--disabled,
.picker__day--disabled:hover,
.picker--focused .picker__day--disabled {
background: #f5f5f5;
border-color: #f5f5f5;
color: #ddd;
cursor: default;
}
.picker__day--highlighted.picker__day--disabled,
.picker__day--highlighted.picker__day--disabled:hover {
background: #bbb;
}
/**
* The footer containing the "today", "clear", and "close" buttons.
*/
.picker__footer {
text-align: center;
}
.picker__button--today,
.picker__button--clear,
.picker__button--close {
border: 1px solid #fff;
background: #fff;
font-size: .8em;
padding: .66em 0;
font-weight: bold;
width: 33%;
display: inline-block;
vertical-align: bottom;
}
.picker__button--today:hover,
.picker__button--clear:hover,
.picker__button--close:hover {
cursor: pointer;
color: #000;
background: #b1dcfb;
border-bottom-color: #b1dcfb;
}
.picker__button--today:focus,
.picker__button--clear:focus,
.picker__button--close:focus {
background: #b1dcfb;
border-color: #007bff;
outline: none;
}
.picker__button--today:before,
.picker__button--clear:before,
.picker__button--close:before {
position: relative;
display: inline-block;
height: 0;
}
.picker__button--today:before,
.picker__button--clear:before {
content: " ";
margin-right: .45em;
}
.picker__button--today:before {
top: -0.05em;
width: 0;
border-top: 0.66em solid #0059bc;
border-left: .66em solid transparent;
}
.picker__button--clear:before {
top: -0.25em;
width: .66em;
border-top: 3px solid #e20;
}
.picker__button--close:before {
content: "\D7";
top: -0.1em;
vertical-align: top;
font-size: 1.1em;
margin-right: .35em;
color: #777;
}
.picker__button--today[disabled],
.picker__button--today[disabled]:hover {
background: #f5f5f5;
border-color: #f5f5f5;
color: #ddd;
cursor: default;
}
.picker__button--today[disabled]:before {
border-top-color: #aaa;
}
/* ==========================================================================
$CLASSIC-DATE-PICKER
========================================================================== */
@@ -0,0 +1,132 @@
/* ==========================================================================
$BASE-TIME-PICKER
========================================================================== */
/**
* The list of times.
*/
.picker__list {
list-style: none;
padding: 0.75em 0 4.2em;
margin: 0;
}
/**
* The times on the clock.
*/
.picker__list-item {
border-bottom: 1px solid #ddd;
border-top: 1px solid #ddd;
margin-bottom: -1px;
position: relative;
background: #fff;
padding: .75em 1.25em;
}
@media (min-height: 46.75em) {
.picker__list-item {
padding: .5em 1em;
}
}
/* Hovered time */
.picker__list-item:hover {
cursor: pointer;
color: #000;
background: #b1dcfb;
border-color: #0089ec;
z-index: 10;
}
/* Highlighted and hovered/focused time */
.picker__list-item--highlighted {
border-color: #0089ec;
z-index: 10;
}
.picker__list-item--highlighted:hover,
.picker--focused .picker__list-item--highlighted {
cursor: pointer;
color: #000;
background: #b1dcfb;
}
/* Selected and hovered/focused time */
.picker__list-item--selected,
.picker__list-item--selected:hover,
.picker--focused .picker__list-item--selected {
background: #0089ec;
color: #fff;
z-index: 10;
}
/* Disabled time */
.picker__list-item--disabled,
.picker__list-item--disabled:hover,
.picker--focused .picker__list-item--disabled {
background: #f5f5f5;
border-color: #f5f5f5;
color: #ddd;
cursor: default;
border-color: #ddd;
z-index: auto;
}
/**
* The clear button
*/
.picker--time .picker__button--clear {
display: block;
width: 80%;
margin: 1em auto 0;
padding: 1em 1.25em;
background: none;
border: 0;
font-weight: 500;
font-size: .67em;
text-align: center;
text-transform: uppercase;
color: #666;
}
.picker--time .picker__button--clear:hover,
.picker--time .picker__button--clear:focus {
color: #000;
background: #b1dcfb;
background: #e20;
border-color: #e20;
cursor: pointer;
color: #fff;
outline: none;
}
.picker--time .picker__button--clear:before {
top: -0.25em;
color: #666;
font-size: 1.25em;
font-weight: bold;
}
.picker--time .picker__button--clear:hover:before,
.picker--time .picker__button--clear:focus:before {
color: #fff;
border-color: #fff;
}
/* ==========================================================================
$CLASSIC-TIME-PICKER
========================================================================== */
/**
* Note: the root picker element should __NOT__ be styled
* more than whats here. Style the `.picker__holder` instead.
*/
.picker--time {
min-width: 256px;
max-width: 320px;
}
/**
* The holder is the base of the picker.
*/
.picker--time .picker__holder {
background: #f2f2f2;
}
@media (min-height: 40.125em) {
.picker--time .picker__holder {
font-size: .875em;
}
}
/**
* The box contains the list of times.
*/
.picker--time .picker__box {
padding: 0;
position: relative;
}
@@ -0,0 +1,133 @@
/*jshint
asi: true,
unused: true,
boss: true,
loopfunc: true,
eqnull: true
*/
/*!
* Legacy browser support
*/
// Map array support
if ( ![].map ) {
Array.prototype.map = function ( callback, self ) {
var array = this, len = array.length, newArray = new Array( len )
for ( var i = 0; i < len; i++ ) {
if ( i in array ) {
newArray[ i ] = callback.call( self, array[ i ], i, array )
}
}
return newArray
}
}
// Filter array support
if ( ![].filter ) {
Array.prototype.filter = function( callback ) {
if ( this == null ) throw new TypeError()
var t = Object( this ), len = t.length >>> 0
if ( typeof callback != 'function' ) throw new TypeError()
var newArray = [], thisp = arguments[ 1 ]
for ( var i = 0; i < len; i++ ) {
if ( i in t ) {
var val = t[ i ]
if ( callback.call( thisp, val, i, t ) ) newArray.push( val )
}
}
return newArray
}
}
// Index of array support
if ( ![].indexOf ) {
Array.prototype.indexOf = function( searchElement ) {
if ( this == null ) throw new TypeError()
var t = Object( this ), len = t.length >>> 0
if ( len === 0 ) return -1
var n = 0
if ( arguments.length > 1 ) {
n = Number( arguments[ 1 ] )
if ( n != n ) {
n = 0
}
else if ( n !== 0 && n != Infinity && n != -Infinity ) {
n = ( n > 0 || -1 ) * Math.floor( Math.abs( n ) )
}
}
if ( n >= len ) return -1
var k = n >= 0 ? n : Math.max( len - Math.abs( n ), 0 )
for ( ; k < len; k++ ) {
if ( k in t && t[ k ] === searchElement ) return k
}
return -1
}
}
/*!
* Cross-Browser Split 1.1.1
* Copyright 2007-2012 Steven Levithan <stevenlevithan.com>
* Available under the MIT License
* http://blog.stevenlevithan.com/archives/cross-browser-split
*/
var nativeSplit = String.prototype.split, compliantExecNpcg = /()??/.exec('')[1] === undefined
String.prototype.split = function(separator, limit) {
var str = this
if (Object.prototype.toString.call(separator) !== '[object RegExp]') {
return nativeSplit.call(str, separator, limit)
}
var output = [],
flags = (separator.ignoreCase ? 'i' : '') +
(separator.multiline ? 'm' : '') +
(separator.extended ? 'x' : '') +
(separator.sticky ? 'y' : ''),
lastLastIndex = 0,
separator2, match, lastIndex, lastLength
separator = new RegExp(separator.source, flags + 'g')
str += ''
if (!compliantExecNpcg) {
separator2 = new RegExp('^' + separator.source + '$(?!\\s)', flags)
}
limit = limit === undefined ? -1 >>> 0 : limit >>> 0
while (match = separator.exec(str)) {
lastIndex = match.index + match[0].length
if (lastIndex > lastLastIndex) {
output.push(str.slice(lastLastIndex, match.index))
if (!compliantExecNpcg && match.length > 1) {
match[0].replace(separator2, function () {
for (var i = 1; i < arguments.length - 2; i++) {
if (arguments[i] === undefined) {
match[i] = undefined
}
}
})
}
if (match.length > 1 && match.index < str.length) {
Array.prototype.push.apply(output, match.slice(1))
}
lastLength = match[0].length
lastLastIndex = lastIndex
if (output.length >= limit) {
break
}
}
if (separator.lastIndex === match.index) {
separator.lastIndex++
}
}
if (lastLastIndex === str.length) {
if (lastLength || !separator.test('')) {
output.push('')
}
} else {
output.push(str.slice(lastLastIndex))
}
return output.length > limit ? output.slice(0, limit) : output
};
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,126 @@
/*
* jQuery postMessage Transport Plugin
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2011, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* https://opensource.org/licenses/MIT
*/
/* global define, require, window, document */
;(function (factory) {
'use strict';
if (typeof define === 'function' && define.amd) {
// Register as an anonymous AMD module:
define(['jquery'], factory);
} else if (typeof exports === 'object') {
// Node/CommonJS:
factory(require('jquery'));
} else {
// Browser globals:
factory(window.jQuery);
}
}(function ($) {
'use strict';
var counter = 0,
names = [
'accepts',
'cache',
'contents',
'contentType',
'crossDomain',
'data',
'dataType',
'headers',
'ifModified',
'mimeType',
'password',
'processData',
'timeout',
'traditional',
'type',
'url',
'username'
],
convert = function (p) {
return p;
};
$.ajaxSetup({
converters: {
'postmessage text': convert,
'postmessage json': convert,
'postmessage html': convert
}
});
$.ajaxTransport('postmessage', function (options) {
if (options.postMessage && window.postMessage) {
var iframe,
loc = $('<a>').prop('href', options.postMessage)[0],
target = loc.protocol + '//' + loc.host,
xhrUpload = options.xhr().upload;
// IE always includes the port for the host property of a link
// element, but not in the location.host or origin property for the
// default http port 80 and https port 443, so we strip it:
if (/^(http:\/\/.+:80)|(https:\/\/.+:443)$/.test(target)) {
target = target.replace(/:(80|443)$/, '');
}
return {
send: function (_, completeCallback) {
counter += 1;
var message = {
id: 'postmessage-transport-' + counter
},
eventName = 'message.' + message.id;
iframe = $(
'<iframe style="display:none;" src="' +
options.postMessage + '" name="' +
message.id + '"></iframe>'
).bind('load', function () {
$.each(names, function (i, name) {
message[name] = options[name];
});
message.dataType = message.dataType.replace('postmessage ', '');
$(window).bind(eventName, function (e) {
e = e.originalEvent;
var data = e.data,
ev;
if (e.origin === target && data.id === message.id) {
if (data.type === 'progress') {
ev = document.createEvent('Event');
ev.initEvent(data.type, false, true);
$.extend(ev, data);
xhrUpload.dispatchEvent(ev);
} else {
completeCallback(
data.status,
data.statusText,
{postmessage: data.result},
data.headers
);
iframe.remove();
$(window).unbind(eventName);
}
}
});
iframe[0].contentWindow.postMessage(
message,
target
);
}).appendTo(document.body);
},
abort: function () {
if (iframe) {
iframe.remove();
}
}
};
}
});
}));
@@ -0,0 +1,89 @@
/*
* jQuery XDomainRequest Transport Plugin
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2011, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* https://opensource.org/licenses/MIT
*
* Based on Julian Aubourg's ajaxHooks xdr.js:
* https://github.com/jaubourg/ajaxHooks/
*/
/* global define, require, window, XDomainRequest */
;(function (factory) {
'use strict';
if (typeof define === 'function' && define.amd) {
// Register as an anonymous AMD module:
define(['jquery'], factory);
} else if (typeof exports === 'object') {
// Node/CommonJS:
factory(require('jquery'));
} else {
// Browser globals:
factory(window.jQuery);
}
}(function ($) {
'use strict';
if (window.XDomainRequest && !$.support.cors) {
$.ajaxTransport(function (s) {
if (s.crossDomain && s.async) {
if (s.timeout) {
s.xdrTimeout = s.timeout;
delete s.timeout;
}
var xdr;
return {
send: function (headers, completeCallback) {
var addParamChar = /\?/.test(s.url) ? '&' : '?';
function callback(status, statusText, responses, responseHeaders) {
xdr.onload = xdr.onerror = xdr.ontimeout = $.noop;
xdr = null;
completeCallback(status, statusText, responses, responseHeaders);
}
xdr = new XDomainRequest();
// XDomainRequest only supports GET and POST:
if (s.type === 'DELETE') {
s.url = s.url + addParamChar + '_method=DELETE';
s.type = 'POST';
} else if (s.type === 'PUT') {
s.url = s.url + addParamChar + '_method=PUT';
s.type = 'POST';
} else if (s.type === 'PATCH') {
s.url = s.url + addParamChar + '_method=PATCH';
s.type = 'POST';
}
xdr.open(s.type, s.url);
xdr.onload = function () {
callback(
200,
'OK',
{text: xdr.responseText},
'Content-Type: ' + xdr.contentType
);
};
xdr.onerror = function () {
callback(404, 'Not Found');
};
if (s.xdrTimeout) {
xdr.ontimeout = function () {
callback(0, 'timeout');
};
xdr.timeout = s.xdrTimeout;
}
xdr.send((s.hasContent && s.data) || null);
},
abort: function () {
if (xdr) {
xdr.onerror = $.noop();
xdr.abort();
}
}
};
}
});
}
}));
@@ -0,0 +1,433 @@
.ff_fileupload_hidden {
display: none;
}
.ff_fileupload_wrap .ff_fileupload_dropzone_wrap {
position: relative;
}
.ff_fileupload_wrap .ff_fileupload_dropzone {
display: block;
width: 100%;
height: 200px;
box-sizing: border-box;
border: 2px dashed #008cff;
border-radius: 3px;
padding: 0;
background-color: rgb(255 255 255 / 0.12);
background-image: url('fancy_upload.png');
background-repeat: no-repeat;
background-position: center center;
opacity: 0.85;
cursor: pointer;
outline: none;
}
.ff_fileupload_wrap .ff_fileupload_dropzone::-moz-focus-inner {
border: 0;
}
.ff_fileupload_wrap .ff_fileupload_dropzone:hover, .ff_fileupload_wrap .ff_fileupload_dropzone:focus, .ff_fileupload_wrap .ff_fileupload_dropzone:active {
opacity: 1;
background-color: rgb(255 255 255 / 0.18);
border-color: #157EFB;
}
.ff_fileupload_wrap .ff_fileupload_dropzone_tools {
position: absolute;
right: 10px;
top: 0;
}
.ff_fileupload_wrap .ff_fileupload_dropzone_tool {
display: block;
margin-top: 10px;
width: 40px;
height: 40px;
box-sizing: border-box;
border: 1px solid #A2B4CA;
border-radius: 3px;
padding: 0;
background-color: #FDFDFD;
background-repeat: no-repeat;
background-position: center center;
opacity: 0.85;
cursor: pointer;
outline: none;
}
.ff_fileupload_wrap .ff_fileupload_dropzone_tool::-moz-focus-inner {
border: 0;
}
.ff_fileupload_wrap .ff_fileupload_dropzone_tool:hover, .ff_fileupload_wrap .ff_fileupload_dropzone_tool:focus, .ff_fileupload_wrap .ff_fileupload_dropzone_tool:active {
opacity: 1;
background-color: #FFFFFF;
border-color: #157EFB;
}
.ff_fileupload_wrap .ff_fileupload_recordaudio {
background-image: url('fancy_microphone.png');
}
.ff_fileupload_wrap .ff_fileupload_recordvideo {
background-image: url('fancy_webcam.png');
}
.ff_fileupload_wrap .ff_fileupload_recordvideo_preview {
position: absolute;
display: block;
right: 60px;
top: 10px;
width: 320px;
max-width: calc(100% - 70px);
height: calc(100% - 20px);
background-color: #222222;
}
.ff_fileupload_wrap .ff_fileupload_recordvideo_preview.ff_fileupload_hidden {
display: none;
}
@keyframes ff_fileupload_recording_animate {
from {
border-color: #EF1F1F;
}
to {
border-color: #C9A1A1;
}
}
.ff_fileupload_wrap .ff_fileupload_recording {
animation: ff_fileupload_recording_animate 1.2s infinite alternate;
}
.ff_fileupload_wrap table.ff_fileupload_uploads {
width: 100%;
border-collapse: collapse !important;
border: 0 none;
}
.ff_fileupload_wrap table.ff_fileupload_uploads tr, .ff_fileupload_wrap table.ff_fileupload_uploads td {
margin: 0;
border: 0 none;
padding: 0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td {
vertical-align: top;
padding: 1em 0;
white-space: nowrap;
line-height: normal;
}
@keyframes ff_fileupload_bounce_animate {
10%, 90% {
transform: translateY(-1px);
}
20%, 80% {
transform: translateY(2px);
}
30%, 50%, 70% {
transform: translateY(-3px);
}
40%, 60% {
transform: translateY(3px);
}
}
.ff_fileupload_wrap table.ff_fileupload_uploads tr.ff_fileupload_bounce {
animation: ff_fileupload_bounce_animate 0.82s cubic-bezier(.36, .07, .19, .97) both;
transform: translateY(0);
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview {
width: 1px;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_image {
display: block;
box-sizing: border-box;
border: 0 none;
padding: 0;
background-color: #DDDDDD;
background-size: cover;
background-repeat: no-repeat;
background-position: center center;
width: 50px;
height: 50px;
border-radius: 5px;
opacity: 0.75;
text-align: center;
font-size: 12px;
font-weight: bold;
color: #222222;
overflow: hidden;
outline: none;
cursor: default;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_image::-moz-focus-inner {
border: 0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_image_has_preview {
cursor: pointer;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_image:hover, .ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_image:focus, .ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_image:active {
opacity: 1;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text {
display: block;
margin: 0 auto;
width: 70%;
overflow: hidden;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_actions button {
display: inline-block;
vertical-align: top;
width: 26px;
height: 26px;
box-sizing: border-box;
border: 1px solid #A2B4CA;
border-radius: 3px;
padding: 0;
background-color: #FCFCFC;
background-repeat: no-repeat;
background-position: center center;
opacity: 0.85;
cursor: pointer;
outline: none;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_actions button::-moz-focus-inner {
border: 0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_actions button:hover, .ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_actions button:focus, .ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_actions button:active {
opacity: 1;
background-color: #FDFDFD;
border-color: #157EFB;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_actions button.ff_fileupload_start_upload {
margin-right: 0.5em;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_actions_mobile {
display: none;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_actions_mobile button {
display: block;
margin-top: 0.3em;
width: 100%;
height: 28px;
box-sizing: border-box;
border: 1px solid #A2B4CA;
border-radius: 3px;
padding: 0;
background-color: #FCFCFC;
background-repeat: no-repeat;
background-position: center center;
opacity: 0.85;
cursor: pointer;
outline: none;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_actions_mobile button::-moz-focus-inner {
border: 0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_actions_mobile button:hover, .ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_actions_mobile button:focus, .ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_actions_mobile button:active {
opacity: 1;
background-color: #FDFDFD;
border-color: #157EFB;
}
.ff_fileupload_wrap table.ff_fileupload_uploads button.ff_fileupload_start_upload {
background-image: url('fancy_okay.png');
}
.ff_fileupload_wrap table.ff_fileupload_uploads button.ff_fileupload_remove_file {
background-image: url('fancy_remove.png');
}
/* Colored buttons based on file extension for non-images. */
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_with_color {
color: #FFFFFF;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_a {
background-color: #F03C3C;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_b {
background-color: #F05A3C;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_c {
background-color: #F0783C;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_d {
background-color: #F0963C;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_e {
background-color: #E0862B;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_f {
background-color: #DCA12B;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_g {
background-color: #C7AB1E;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_h {
background-color: #C7C71E;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_i {
background-color: #ABC71E;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_j {
background-color: #8FC71E;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_k {
background-color: #72C71E;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_l {
background-color: #56C71E;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_m {
background-color: #3AC71E;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_n {
background-color: #1EC71E;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_o {
background-color: #1EC73A;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_p {
background-color: #1EC756;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_q {
background-color: #1EC78F;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_r {
background-color: #1EC7AB;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_s {
background-color: #1EC7C7;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_t {
background-color: #1EABC7;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_u {
background-color: #1E8FC7;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_v {
background-color: #1E72C7;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_w {
background-color: #3C78F0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_x {
background-color: #3C5AF0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_y {
background-color: #3C3CF0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_z {
background-color: #5A3CF0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_0 {
background-color: #783CF0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_1 {
background-color: #963CF0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_2 {
background-color: #B43CF0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_3 {
background-color: #D23CF0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_4 {
background-color: #F03CF0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_5 {
background-color: #F03CD2;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_6 {
background-color: #F03CB4;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_7 {
background-color: #F03C96;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_8 {
background-color: #F03C78;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_text_9 {
background-color: #F03C5A;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_summary {
padding: 1em;
font-size: 0.9em;
white-space: normal;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_summary .ff_fileupload_filename {
width: 100%;
font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_summary .ff_fileupload_filename input {
box-sizing: border-box;
width: 100%;
padding: 0.3em;
margin-bottom: 0.1em;
font-size: 1.0em;
font-weight: normal;
line-height: normal;
border: 1px solid #BBBBBB;
border-radius: 0;
box-shadow: none;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_summary .ff_fileupload_filename input:focus, .ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_summary .ff_fileupload_filename input:hover {
border: 1px solid #888888;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_summary .ff_fileupload_errors {
color: #A94442;
font-weight: bold;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_summary .ff_fileupload_progress_background {
margin-top: 0.5em;
background-color: #CCCCCC;
height: 2px;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_summary .ff_fileupload_progress_bar {
background-color: #157EFB;
width: 0;
height: 2px;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_actions {
width: 1px;
text-align: right;
}
@media (max-width: 420px) {
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_preview_image {
width: 36px;
height: 36px;
font-size: 11px;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_summary {
padding-right: 0;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_actions {
display: none;
}
.ff_fileupload_wrap table.ff_fileupload_uploads td.ff_fileupload_preview .ff_fileupload_actions_mobile {
display: block;
}
}
.ff_fileupload_dialog_background {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.85);
z-index: 10000;
}
.ff_fileupload_dialog_main {
position: absolute;
top: 10%;
left: 10%;
width: 80%;
height: 80%;
text-align: center;
}
.ff_fileupload_dialog_main img {
position: relative;
top: 50%;
transform: perspective(1px) translateY(-50%);
max-width: 100%;
max-height: 100%;
}
.ff_fileupload_dialog_main audio {
position: relative;
top: 50%;
transform: perspective(1px) translateY(-50%);
width: 100%;
}
.ff_fileupload_dialog_main video {
position: relative;
top: 50%;
transform: perspective(1px) translateY(-50%);
max-width: 100%;
max-height: 100%;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 868 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,785 @@
// jQuery plugin to display a custom jQuery File Uploader interface.
// (C) 2019 CubicleSoft. All Rights Reserved.
(function($) {
var EscapeHTML = function(text) {
var map = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&#039;'
};
return text.replace(/[&<>"']/g, function(m) { return map[m]; });
}
var FormatStr = function(format) {
var args = Array.prototype.slice.call(arguments, 1);
return format.replace(/{(\d+)}/g, function(match, number) {
return (typeof args[number] != 'undefined' ? args[number] : match);
});
};
var GetDisplayFilesize = function(numbytes, adjustprecision, units) {
if (numbytes == 0) return '0 Bytes';
if (numbytes == 1) return '1 Byte';
numbytes = Math.abs(numbytes);
var magnitude, abbreviations;
if (units && units.toLowerCase() === 'iec_formal')
{
magnitude = Math.pow(2, 10);
abbreviations = ['Bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
}
else if (units && units.toLowerCase() === 'si')
{
magnitude = Math.pow(10, 3);
abbreviations = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
}
else
{
magnitude = Math.pow(2, 10);
abbreviations = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
}
var pos = Math.floor(Math.log(numbytes) / Math.log(magnitude));
var result = (numbytes / Math.pow(magnitude, pos));
return (pos == 0 || (adjustprecision && result >= 99.995) ? result.toFixed(0) : result.toFixed(2)) + ' ' + abbreviations[pos];
};
var DisplayPreviewDialog = function(preview, endelem, inforow, data, settings) {
var previewbackground = $('<div>').addClass('ff_fileupload_dialog_background');
var previewclone = preview.clone(true, true).click(function(e) {
e.stopPropagation();
});
var previewdialog = $('<div>').addClass('ff_fileupload_dialog_main').append(previewclone);
var HidePreviewDialog = function() {
$(document).off('keyup.fancy_fileupload');
previewbackground.remove();
endelem.focus();
if (settings.hidepreview) settings.hidepreview.call(inforow, data, preview, previewclone);
};
$(document).on('keyup.fancy_fileupload', function(e) {
if (e.keyCode == 27) {
HidePreviewDialog();
}
});
previewbackground.append(previewdialog).click(function() {
HidePreviewDialog();
});
$('body').append(previewbackground);
previewclone.focus();
if (settings.showpreview) settings.showpreview.call(inforow, data, preview, previewclone);
};
var InitShowAriaLabelInfo = function(inforow) {
inforow.find('button').hover(function() {
var val = $(this).attr('aria-label');
if (val)
{
inforow.find('.ff_fileupload_buttoninfo').text(val).removeClass('ff_fileupload_hidden');
inforow.find('.ff_fileupload_fileinfo').addClass('ff_fileupload_hidden');
}
}, function() {
inforow.find('.ff_fileupload_fileinfo').removeClass('ff_fileupload_hidden');
inforow.find('.ff_fileupload_buttoninfo').addClass('ff_fileupload_hidden');
});
};
$.fn.FancyFileUpload = function(options) {
this.each(function() {
var $this = $(this);
// Remove the previous file uploader.
if ($this.data('fancy-fileupload') && typeof($this.data('fancy-fileupload')) === 'object')
{
$this.removeClass('ff_fileupload_hidden');
var data = $this.data('fancy-fileupload');
data.form.find('input[type=file]').fileupload('destroy');
data.form.remove();
data.fileuploadwrap.remove();
$this.removeData('fancy-fileupload');
}
});
if (!$('.ff_fileupload_hidden').length)
{
$(document).off('drop.fancy_fileupload dragover.fancy_fileupload');
$(window).off('beforeunload.fancy_fileupload');
}
if (typeof(options) === 'string' && options === 'destroy') return this;
var settings = $.extend({}, $.fn.FancyFileUpload.defaults, options);
// Let custom callbacks make last second changes to the finalized settings.
if (settings.preinit) settings.preinit(settings);
// Prevent default file drag-and-drop operations.
$(document).off('drop.fancy_fileupload dragover.fancy_fileupload');
$(document).on('drop.fancy_fileupload dragover.fancy_fileupload', function (e) {
e.preventDefault();
});
// Some useful functions.
var Translate = function(str) {
return (settings.langmap[str] ? settings.langmap[str] : str);
};
// Prevent the user from leaving the page if there is an active upload.
// Most browsers won't show the custom message. So make the relevant UI elements bounce using CSS.
$(window).on('beforeunload.fancy_fileupload', function(e) {
var active = $('.ff_fileupload_uploading, .ff_fileupload_starting');
var queued = $('.ff_fileupload_queued');
if (active.length || queued.length)
{
active.removeClass('ff_fileupload_bounce');
setTimeout(function() { active.addClass('ff_fileupload_bounce') }, 250);
queued.removeClass('ff_fileupload_bounce');
setTimeout(function() { queued.addClass('ff_fileupload_bounce') }, 250);
if (active.length) return Translate('There is a file upload still in progress. Leaving the page will cancel the upload.\n\nAre you sure you want to leave this page?');
if (queued.length) return Translate('There is a file that was added to the queue but the upload has not been started. Leaving the page will clear the queue and not upload the file.\n\nAre you sure you want to leave this page?');
}
});
// Create some extra DOM nodes for preview checking.
var audioelem = document.createElement('audio');
var videoelem = document.createElement('video');
var AddFile = function(uploads, e, data) {
var inforow = $('<tr><td class="ff_fileupload_preview"><button class="ff_fileupload_preview_image" type="button"><span class="ff_fileupload_preview_text"></span></button><div class="ff_fileupload_actions_mobile"></div></td><td class="ff_fileupload_summary"><div class="ff_fileupload_filename"></div><div class="ff_fileupload_fileinfo"></div><div class="ff_fileupload_buttoninfo ff_fileupload_hidden"></div><div class="ff_fileupload_errors ff_fileupload_hidden"></div><div class="ff_fileupload_progress_background ff_fileupload_hidden"><div class="ff_fileupload_progress_bar"></div></div></td><td class="ff_fileupload_actions"></td></tr>');
var pos = data.files[0].name.lastIndexOf('.');
var filename = (pos > -1 ? data.files[0].name.substring(0, pos) : data.files[0].name);
var fileext = (pos > -1 ? data.files[0].name.substring(pos + 1).toLowerCase() : '');
var alphanum = 'abcdefghijklmnopqrstuvwxyz0123456789';
pos = (fileext == '' ? -1 : alphanum.indexOf(fileext.charAt(0)));
var fileextclass = alphanum.charAt((pos > -1 ? pos : Math.floor(Math.random() * alphanum.length)));
// Initialize necessary callback options.
data.ff_info = {};
data.ff_info.errors = [];
data.ff_info.retries = 0;
data.ff_info.retrydelay = settings.retrydelay;
data.ff_info.removewidget = false;
data.ff_info.inforow = inforow;
data.ff_info.displayfilesize = GetDisplayFilesize(data.files[0].size, settings.adjustprecision, settings.displayunits);
data.context = inforow;
// A couple of functions for handling actions.
var StartUpload = function(e) {
e.preventDefault();
// Set filename.
if (settings.edit && !data.ff_info.errors.length)
{
var fileinput = inforow.find('.ff_fileupload_filename input');
if (fileinput.length)
{
var newfilename = fileinput.val();
if (fileext != '') newfilename += '.' + fileext;
inforow.find('.ff_fileupload_filename').text(newfilename);
data.files[0].uploadName = newfilename;
}
}
// Remove start upload buttons.
inforow.find('button.ff_fileupload_start_upload').remove();
// Reset hover status.
inforow.find('.ff_fileupload_fileinfo').removeClass('ff_fileupload_hidden');
inforow.find('.ff_fileupload_buttoninfo').addClass('ff_fileupload_hidden');
// Set the status.
inforow.find('.ff_fileupload_fileinfo').text(data.ff_info.displayfilesize + ' | ' + Translate('Starting upload...'));
// Display progress bar.
inforow.find('.ff_fileupload_progress_background').removeClass('ff_fileupload_hidden');
// Alter remove buttons.
inforow.find('button.ff_fileupload_remove_file').attr('aria-label', Translate('Cancel upload and remove from list'));
// Begin the actual upload.
inforow.removeClass('ff_fileupload_queued');
inforow.addClass('ff_fileupload_starting');
var SubmitUpload = function() {
inforow.removeClass('ff_fileupload_starting');
inforow.addClass('ff_fileupload_uploading');
data.submit();
};
if (settings.startupload) settings.startupload.call(inforow, SubmitUpload, e, data);
else SubmitUpload();
};
var RemoveFile = function(e) {
e.preventDefault();
if (inforow.hasClass('ff_fileupload_uploading'))
{
if (!confirm(Translate('This file is currently being uploaded.\n\nStop the upload and remove the file from the list?'))) return;
data.ff_info.removewidget = true;
data.abort();
}
else
{
if (inforow.hasClass('ff_fileupload_starting'))
{
if (!confirm(Translate('This file is waiting to start.\n\nCancel the operation and remove the file from the list?'))) return;
if (settings.uploadcancelled) settings.uploadcancelled.call(data.ff_info.inforow, e, data);
}
inforow.remove();
delete data.ff_info;
}
};
data.ff_info.RemoveFile = function() {
if (inforow.hasClass('ff_fileupload_uploading'))
{
data.ff_info.removewidget = true;
data.abort();
}
else
{
if (inforow.hasClass('ff_fileupload_starting'))
{
if (settings.uploadcancelled) settings.uploadcancelled.call(data.ff_info.inforow, e, data);
}
inforow.remove();
delete data.ff_info;
}
};
// Thumbnail preview.
var haspreview = false;
var preview;
var hasimage = false;
if (URL && URL.createObjectURL)
{
var url = URL.createObjectURL(data.files[0]);
if (url)
{
if (data.files[0].type === 'image/gif' || data.files[0].type === 'image/jpeg' || data.files[0].type === 'image/png')
{
inforow.find('.ff_fileupload_preview_image').css('background-image', 'url("' + url + '")');
haspreview = true;
preview = $('<img>').attr('src', url);
hasimage = true;
}
else if (data.files[0].type.lastIndexOf('audio/', 0) > -1 && audioelem.canPlayType && audioelem.canPlayType(data.files[0].type))
{
haspreview = true;
preview = $('<audio>').attr('src', url).prop('controls', true);
}
else if (data.files[0].type.lastIndexOf('video/', 0) > -1 && videoelem.canPlayType && videoelem.canPlayType(data.files[0].type))
{
haspreview = true;
preview = $('<video>').attr('src', url).prop('controls', true);
}
}
}
if (haspreview)
{
inforow.find('.ff_fileupload_preview_image').addClass('ff_fileupload_preview_image_has_preview').attr('aria-label', Translate('Preview')).click(function(e) {
e.preventDefault();
this.blur();
DisplayPreviewDialog(preview, this, inforow, data, settings);
});
}
else
{
inforow.find('.ff_fileupload_preview_image').prop('disabled', true).attr('aria-label', Translate('No preview available')).click(function(e) {
e.preventDefault();
});
}
if (!hasimage) inforow.find('.ff_fileupload_preview_image').addClass('ff_fileupload_preview_text_with_color').addClass('ff_fileupload_preview_text_' + fileextclass).text(fileext);
// Validate inputs.
if (settings.accept)
{
var found = false;
for (var x = 0; x < settings.accept.length && !found; x++)
{
if (settings.accept[x] === fileext || settings.accept[x] === data.files[0].type) found = true;
}
if (!found) data.ff_info.errors.push(Translate('Invalid file extension.'));
}
if (settings.maxfilesize > -1 && data.files[0].size > settings.maxfilesize) data.ff_info.errors.push(FormatStr(Translate('File is too large. Maximum file size is {0}.'), GetDisplayFilesize(settings.maxfilesize, settings.adjustprecision, settings.displayunits)));
// Filename text field/display.
if (settings.edit && !data.ff_info.errors.length)
{
inforow.find('.ff_fileupload_filename').append($('<input>').attr('type', 'text').val(filename).keydown(function(e) {
// Start uploading if someone presses enter.
if (e.keyCode == 13) StartUpload(e);
}));
}
else
{
inforow.find('.ff_fileupload_filename').text(data.files[0].name);
}
// File/Upload information.
inforow.find('.ff_fileupload_fileinfo').text(data.ff_info.displayfilesize + (hasimage && settings.edit && !data.ff_info.errors.length ? ' | .' + fileext : ''));
// Errors.
if (data.ff_info.errors.length) inforow.find('.ff_fileupload_errors').html(data.ff_info.errors.join('<br>')).removeClass('ff_fileupload_hidden');
// Action buttons.
if (!data.ff_info.errors.length)
{
inforow.find('.ff_fileupload_actions').append($('<button>').addClass('ff_fileupload_start_upload').attr('type', 'button').attr('aria-label', Translate('Start uploading')).click(StartUpload));
inforow.find('.ff_fileupload_actions_mobile').append($('<button>').addClass('ff_fileupload_start_upload').attr('type', 'button').attr('aria-label', Translate('Start uploading')).click(StartUpload));
inforow.addClass('ff_fileupload_queued');
}
inforow.find('.ff_fileupload_actions').append($('<button>').addClass('ff_fileupload_remove_file').attr('type', 'button').attr('aria-label', Translate('Remove from list')).click(RemoveFile));
inforow.find('.ff_fileupload_actions_mobile').append($('<button>').addClass('ff_fileupload_remove_file').attr('type', 'button').attr('aria-label', Translate('Remove from list')).click(RemoveFile));
// Handle button hover.
InitShowAriaLabelInfo(inforow);
// Improve progress bar performance during upload.
data.ff_info.fileinfo = inforow.find('.ff_fileupload_fileinfo');
data.ff_info.progressbar = inforow.find('.ff_fileupload_progress_bar');
uploads.append(inforow);
if (settings.added) settings.added.call(inforow, e, data);
};
var UploadProgress = function(e, data) {
var progress = (data.total < 1 ? 0 : data.loaded / data.total * 100);
data.ff_info.fileinfo.text(FormatStr(Translate('{0} of {1} | {2}%'), GetDisplayFilesize(data.loaded, settings.adjustprecision, settings.displayunits), data.ff_info.displayfilesize, progress.toFixed(0)));
data.ff_info.progressbar.css('width', progress + '%');
if (settings.continueupload && settings.continueupload.call(data.ff_info.inforow, e, data) === false) data.abort();
};
var UploadFailed = function(e, data) {
// For handling chunked upload termination.
if (data.ff_info.lastresult && !data.ff_info.lastresult.success)
{
data.result = data.ff_info.lastresult;
data.errorThrown = 'failed_with_msg';
}
if (data.errorThrown !== 'abort' && data.errorThrown !== 'failed_with_msg' && data.uploadedBytes < data.files[0].size && data.ff_info.retries < settings.retries)
{
data.ff_info.fileinfo.text(FormatStr(Translate('{0} | Network error, retrying in a moment... ({1})'), data.ff_info.displayfilesize, data.errorThrown));
data.ff_info.inforow.removeClass('ff_fileupload_uploading');
data.ff_info.inforow.addClass('ff_fileupload_starting');
setTimeout(function() {
data.ff_info.inforow.removeClass('ff_fileupload_starting');
data.ff_info.inforow.addClass('ff_fileupload_uploading');
data.data = null;
data.submit();
}, data.ff_info.retrydelay);
data.ff_info.retries++;
data.ff_info.retrydelay *= 2;
return;
}
data.ff_info.inforow.removeClass('ff_fileupload_uploading');
if (settings.uploadcancelled) settings.uploadcancelled.call(data.ff_info.inforow, e, data);
if (data.ff_info.removewidget)
{
data.ff_info.inforow.remove();
delete data.ff_info;
}
else
{
// Set the error info.
if (data.errorThrown === 'abort') data.ff_info.errors.push(Translate('The upload was cancelled.'));
else if (data.errorThrown === 'failed_with_msg') data.ff_info.errors.push(FormatStr(Translate('The upload failed. {0} ({1})'), EscapeHTML(data.result.error), EscapeHTML(data.result.errorcode)));
else data.ff_info.errors.push(Translate('The upload failed.'));
data.ff_info.inforow.find('.ff_fileupload_errors').html(data.ff_info.errors.join('<br>')).removeClass('ff_fileupload_hidden');
// Hide the progress bar.
data.ff_info.inforow.find('.ff_fileupload_progress_background').addClass('ff_fileupload_hidden');
// Alter remove buttons.
data.ff_info.inforow.find('button.ff_fileupload_remove_file').attr('aria-label', Translate('Remove from list'));
}
};
var UploadDone = function(e, data) {
if (!data.result.success)
{
if (typeof(data.result.error) !== 'string') data.result.error = Translate('The server indicated that the upload was not successful. No additional information available.');
if (typeof(data.result.errorcode) !== 'string') data.result.errorcode = 'server_response';
data.errorThrown = 'failed_with_msg';
data.ff_info.removewidget = false;
UploadFailed(e, data);
return;
}
data.ff_info.inforow.removeClass('ff_fileupload_uploading');
if (settings.uploadcompleted) settings.uploadcompleted.call(data.ff_info.inforow, e, data);
if (data.ff_info.removewidget)
{
data.ff_info.inforow.remove();
delete data.ff_info;
}
else
{
// Set the status.
data.ff_info.inforow.find('.ff_fileupload_fileinfo').text(data.ff_info.displayfilesize + ' | ' + Translate('Upload completed'));
// Hide the progress bar.
data.ff_info.inforow.find('.ff_fileupload_progress_background').addClass('ff_fileupload_hidden');
// Alter remove buttons.
data.ff_info.inforow.find('button.ff_fileupload_remove_file').attr('aria-label', Translate('Remove from list'));
}
};
var UploadChunkSend = function(e, data) {
if (data.ff_info)
{
if (settings.continueupload && settings.continueupload.call(data.ff_info.inforow, e, data) === false)
{
if (!data.ff_info.lastresult || data.ff_info.lastresult.success)
{
data.ff_info.lastresult = {
'success' : false
};
}
}
if (data.ff_info.lastresult && !data.ff_info.lastresult.success)
{
data.result = data.ff_info.lastresult;
if (typeof(data.ff_info.lastresult.error) !== 'string') data.ff_info.lastresult.error = Translate('The server indicated that the upload was not successful. No additional information available.');
if (typeof(data.ff_info.lastresult.errorcode) !== 'string') data.ff_info.lastresult.errorcode = 'server_response';
data.ff_info.removewidget = false;
return false;
}
}
};
var UploadChunkDone = function(e, data) {
// Reset retries for successful chunked uploads.
data.ff_info.retries = 0;
data.ff_info.retrydelay = settings.retrydelay;
// Save for the next UploadChunkSend() call.
data.ff_info.lastresult = data.result;
};
return this.each(function() {
var $this = $(this);
// Calculate the action URL.
if (settings.url === '')
{
var url = $this.closest('form').attr('action');
if (url) settings.url = url;
}
// Create a separate, hidden form on the page for handling file uploads.
var form = $('<form>').addClass('ff_fileupload_hidden').attr({
'action' : settings.url,
'method' : 'post',
'enctype' : 'multipart/form-data'
});
$('body').append(form);
// Append hidden input elements.
for (var x in settings.params)
{
if (settings.params.hasOwnProperty(x))
{
var input = $('<input>').attr({
'type' : 'hidden',
'name' : x,
'value' : settings.params[x]
});
form.append(input);
}
}
// Append a file input element.
var fileinputname = $this.attr('name');
var fileinput = $('<input>').attr({
'type' : 'file',
'name' : (fileinputname ? fileinputname : 'file')
});
if ($this.prop('multiple')) fileinput.prop('multiple', true);
// Process the accepted file extensions.
if ($this.attr('accept'))
{
fileinput.attr('accept', $this.attr('accept'));
if (!settings.accept)
{
var accept = $this.attr('accept').split(',');
settings.accept = [];
for (var x = 0; x < accept.length; x++)
{
var opt = $.trim(accept[x]).toLowerCase();
settings.accept.push(opt.indexOf('/') < 0 && opt.lastIndexOf('.') > -1 ? opt.substring(opt.lastIndexOf('.') + 1) : opt);
}
}
}
form.append(fileinput);
// Insert the widget wrapper.
var fileuploadwrap = $('<div>').addClass('ff_fileupload_wrap');
$this.after(fileuploadwrap);
// Insert a new dropzone. Using a button allows for standard keyboard and mouse navigation to the element. The wrapper is for paste support.
var dropzonewrap = $('<div>').addClass('ff_fileupload_dropzone_wrap');
var dropzone = $('<button>').addClass('ff_fileupload_dropzone').attr('type', 'button').attr('aria-label', Translate('Browse, drag-and-drop, or paste files to upload'));
dropzonewrap.append(dropzone);
fileuploadwrap.append(dropzonewrap);
dropzone.on('click.fancy_fileupload', function(e) {
e.preventDefault();
form.find('input[type=file]').click();
});
// Add special recording buttons (if enabled).
var dropzonetools = $('<div>').addClass('ff_fileupload_dropzone_tools');
dropzonewrap.append(dropzonetools);
// Record audio.
if (settings.recordaudio && navigator.mediaDevices && window.MediaRecorder)
{
var audiobutton = $('<button>').addClass('ff_fileupload_dropzone_tool').addClass('ff_fileupload_recordaudio').attr('type', 'button').attr('aria-label', Translate('Record audio using a microphone'));
dropzonetools.append(audiobutton);
var audiorec = null;
var audiochunks = [];
audiobutton.click(function(e) {
e.preventDefault();
if (!audiorec)
{
navigator.mediaDevices.getUserMedia({ audio: true }).then(function(stream) {
audiorec = new MediaRecorder(stream, settings.audiosettings);
audiorec.addEventListener('dataavailable', function(e) {
if (e.data.size > 0) audiochunks.push(e.data);
if (audiorec.state === 'inactive')
{
var blob = new Blob(audiochunks, { type: 'audio/mp3' });
blob.lastModifiedDate = new Date();
blob.lastModified = Math.floor(blob.lastModifiedDate.getTime() / 1000);
blob.name = FormatStr(Translate('Audio recording - {0}.mp3'), blob.lastModifiedDate.toLocaleString());
fileinput.fileupload('add', { files: [blob] });
stream.getTracks().forEach(function(track) {
track.stop();
});
audiobutton.removeClass('ff_fileupload_recording');
audiochunks = [];
audiorec = null;
}
});
audiorec.start();
audiobutton.addClass('ff_fileupload_recording');
}).catch(function(e) {
alert(Translate('Unable to record audio. Either a microphone was not found or access was denied.'));
});
}
else
{
audiorec.stop();
}
});
}
// Record video.
if (settings.recordvideo && navigator.mediaDevices && window.MediaRecorder)
{
var videobutton = $('<button>').addClass('ff_fileupload_dropzone_tool').addClass('ff_fileupload_recordvideo').attr('type', 'button').attr('aria-label', Translate('Record video using a camera'));
dropzonetools.append(videobutton);
var videorecpreview = $('<video>').prop('muted', true).prop('autoplay', true).addClass('ff_fileupload_recordvideo_preview').addClass('ff_fileupload_hidden');
dropzonewrap.append(videorecpreview);
var videorec = null;
var videochunks = [];
videobutton.click(function(e) {
e.preventDefault();
if (!videorec)
{
var streamhandler = function(stream) {
videorec = new MediaRecorder(stream, settings.videosettings);
videorec.addEventListener('dataavailable', function(e) {
if (e.data.size > 0) videochunks.push(e.data);
if (videorec.state === 'inactive')
{
var blob = new Blob(videochunks, { type: 'video/mp4' });
blob.lastModifiedDate = new Date();
blob.lastModified = Math.floor(blob.lastModifiedDate.getTime() / 1000);
blob.name = FormatStr(Translate('Video recording - {0}.mp4'), blob.lastModifiedDate.toLocaleString());
fileinput.fileupload('add', { files: [blob] });
stream.getTracks().forEach(function(track) {
track.stop();
});
videobutton.removeClass('ff_fileupload_recording');
videorecpreview.addClass('ff_fileupload_hidden');
if (videorecpreview[0].src !== '') videorecpreview[0].src = '';
videorecpreview[0].srcObject = null;
videochunks = [];
videorec = null;
}
});
videorec.start();
videobutton.addClass('ff_fileupload_recording');
// Display a preview box with just the video stream.
try { videorecpreview[0].src = URL.createObjectURL(stream); } catch(e) { videorecpreview[0].srcObject = stream; }
videorecpreview.removeClass('ff_fileupload_hidden');
};
// Video with audio (e.g. webcam) with fallback to video only (e.g. some screen recording codecs).
navigator.mediaDevices.getUserMedia({ video: true, audio: true }).then(streamhandler).catch(function(e) {
navigator.mediaDevices.getUserMedia({ video: true }).then(streamhandler).catch(function(e) {
alert(Translate('Unable to record video. Either a camera was not found or access was denied.'));
});
});
}
else
{
videorec.stop();
}
});
}
// Add a table to track unprocessed and in-progress uploads.
var uploads = $('<table>').addClass('ff_fileupload_uploads');
fileuploadwrap.append(uploads);
// Hide the starting element.
$this.addClass('ff_fileupload_hidden');
// Initialize jQuery File Upload using the hidden form and visible dropzone.
var baseoptions = {
url: settings.url,
dataType: 'json',
pasteZone: dropzonewrap,
limitConcurrentUploads: 2
};
// Immutable options.
var immutableoptions = {
singleFileUploads: true,
dropZone: dropzone,
add: function(e, data) { AddFile(uploads, e, data) },
progress: UploadProgress,
fail: UploadFailed,
done: UploadDone,
chunksend: UploadChunkSend,
chunkdone: UploadChunkDone
};
// The user interface requires certain options to be set correctly.
fileinput.fileupload($.extend(baseoptions, settings.fileupload, immutableoptions));
// Save necessary information in case the uploader is destroyed later.
$this.data('fancy-fileupload', {
'fileuploadwrap' : fileuploadwrap,
'form' : form,
'settings': settings
});
// Post-initialization callback.
if (settings.postinit) settings.postinit.call($this);
});
}
$.fn.FancyFileUpload.defaults = {
'url' : '',
'params' : {},
'edit' : true,
'maxfilesize' : -1,
'accept' : null,
'displayunits' : 'iec_windows',
'adjustprecision' : true,
'retries' : 5,
'retrydelay' : 500,
'recordaudio' : false,
'audiosettings' : {},
'recordvideo' : false,
'videosettings' : {},
'preinit' : null,
'postinit' : null,
'added' : null,
'showpreview' : null,
'hidepreview' : null,
'startupload' : null,
'continueupload' : null,
'uploadcancelled' : null,
'uploadcompleted' : null,
'fileupload' : {},
'langmap' : {}
};
}(jQuery));
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,221 @@
/*
* jQuery Iframe Transport Plugin
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2011, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* https://opensource.org/licenses/MIT
*/
/* global define, require */
(function (factory) {
'use strict';
if (typeof define === 'function' && define.amd) {
// Register as an anonymous AMD module:
define(['jquery'], factory);
} else if (typeof exports === 'object') {
// Node/CommonJS:
factory(require('jquery'));
} else {
// Browser globals:
factory(window.jQuery);
}
})(function ($) {
'use strict';
// Helper variable to create unique names for the transport iframes:
var counter = 0,
jsonAPI = $,
jsonParse = 'parseJSON';
if ('JSON' in window && 'parse' in JSON) {
jsonAPI = JSON;
jsonParse = 'parse';
}
// The iframe transport accepts four additional options:
// options.fileInput: a jQuery collection of file input fields
// options.paramName: the parameter name for the file form data,
// overrides the name property of the file input field(s),
// can be a string or an array of strings.
// options.formData: an array of objects with name and value properties,
// equivalent to the return data of .serializeArray(), e.g.:
// [{name: 'a', value: 1}, {name: 'b', value: 2}]
// options.initialIframeSrc: the URL of the initial iframe src,
// by default set to "javascript:false;"
$.ajaxTransport('iframe', function (options) {
if (options.async) {
// javascript:false as initial iframe src
// prevents warning popups on HTTPS in IE6:
// eslint-disable-next-line no-script-url
var initialIframeSrc = options.initialIframeSrc || 'javascript:false;',
form,
iframe,
addParamChar;
return {
send: function (_, completeCallback) {
form = $('<form style="display:none;"></form>');
form.attr('accept-charset', options.formAcceptCharset);
addParamChar = /\?/.test(options.url) ? '&' : '?';
// XDomainRequest only supports GET and POST:
if (options.type === 'DELETE') {
options.url = options.url + addParamChar + '_method=DELETE';
options.type = 'POST';
} else if (options.type === 'PUT') {
options.url = options.url + addParamChar + '_method=PUT';
options.type = 'POST';
} else if (options.type === 'PATCH') {
options.url = options.url + addParamChar + '_method=PATCH';
options.type = 'POST';
}
// IE versions below IE8 cannot set the name property of
// elements that have already been added to the DOM,
// so we set the name along with the iframe HTML markup:
counter += 1;
iframe = $(
'<iframe src="' +
initialIframeSrc +
'" name="iframe-transport-' +
counter +
'"></iframe>'
).on('load', function () {
var fileInputClones,
paramNames = $.isArray(options.paramName)
? options.paramName
: [options.paramName];
iframe.off('load').on('load', function () {
var response;
// Wrap in a try/catch block to catch exceptions thrown
// when trying to access cross-domain iframe contents:
try {
response = iframe.contents();
// Google Chrome and Firefox do not throw an
// exception when calling iframe.contents() on
// cross-domain requests, so we unify the response:
if (!response.length || !response[0].firstChild) {
throw new Error();
}
} catch (e) {
response = undefined;
}
// The complete callback returns the
// iframe content document as response object:
completeCallback(200, 'success', { iframe: response });
// Fix for IE endless progress bar activity bug
// (happens on form submits to iframe targets):
$('<iframe src="' + initialIframeSrc + '"></iframe>').appendTo(
form
);
window.setTimeout(function () {
// Removing the form in a setTimeout call
// allows Chrome's developer tools to display
// the response result
form.remove();
}, 0);
});
form
.prop('target', iframe.prop('name'))
.prop('action', options.url)
.prop('method', options.type);
if (options.formData) {
$.each(options.formData, function (index, field) {
$('<input type="hidden"/>')
.prop('name', field.name)
.val(field.value)
.appendTo(form);
});
}
if (
options.fileInput &&
options.fileInput.length &&
options.type === 'POST'
) {
fileInputClones = options.fileInput.clone();
// Insert a clone for each file input field:
options.fileInput.after(function (index) {
return fileInputClones[index];
});
if (options.paramName) {
options.fileInput.each(function (index) {
$(this).prop('name', paramNames[index] || options.paramName);
});
}
// Appending the file input fields to the hidden form
// removes them from their original location:
form
.append(options.fileInput)
.prop('enctype', 'multipart/form-data')
// enctype must be set as encoding for IE:
.prop('encoding', 'multipart/form-data');
// Remove the HTML5 form attribute from the input(s):
options.fileInput.removeAttr('form');
}
form.submit();
// Insert the file input fields at their original location
// by replacing the clones with the originals:
if (fileInputClones && fileInputClones.length) {
options.fileInput.each(function (index, input) {
var clone = $(fileInputClones[index]);
// Restore the original name and form properties:
$(input)
.prop('name', clone.prop('name'))
.attr('form', clone.attr('form'));
clone.replaceWith(input);
});
}
});
form.append(iframe).appendTo(document.body);
},
abort: function () {
if (iframe) {
// javascript:false as iframe src aborts the request
// and prevents warning popups on HTTPS in IE6.
iframe.off('load').prop('src', initialIframeSrc);
}
if (form) {
form.remove();
}
}
};
}
});
// The iframe transport returns the iframe content document as response.
// The following adds converters from iframe to text, json, html, xml
// and script.
// Please note that the Content-Type for JSON responses has to be text/plain
// or text/html, if the browser doesn't include application/json in the
// Accept header, else IE will show a download dialog.
// The Content-Type for XML responses on the other hand has to be always
// application/xml or text/xml, so IE properly parses the XML response.
// See also
// https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation
$.ajaxSetup({
converters: {
'iframe text': function (iframe) {
return iframe && $(iframe[0].body).text();
},
'iframe json': function (iframe) {
return iframe && jsonAPI[jsonParse]($(iframe[0].body).text());
},
'iframe html': function (iframe) {
return iframe && $(iframe[0].body).html();
},
'iframe xml': function (iframe) {
var xmlDoc = iframe && iframe[0];
return xmlDoc && $.isXMLDoc(xmlDoc)
? xmlDoc
: $.parseXML(
(xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||
$(xmlDoc.body).html()
);
},
'iframe script': function (iframe) {
return iframe && $.globalEval($(iframe[0].body).text());
}
}
});
});
@@ -0,0 +1,808 @@
/*! jQuery UI - v1.12.1+0b7246b6eeadfa9e2696e22f3230f6452f8129dc - 2020-02-20
* http://jqueryui.com
* Includes: widget.js
* Copyright jQuery Foundation and other contributors; Licensed MIT */
/* global define, require */
/* eslint-disable no-param-reassign, new-cap, jsdoc/require-jsdoc */
(function (factory) {
'use strict';
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], factory);
} else if (typeof exports === 'object') {
// Node/CommonJS
factory(require('jquery'));
} else {
// Browser globals
factory(window.jQuery);
}
})(function ($) {
('use strict');
$.ui = $.ui || {};
$.ui.version = '1.12.1';
/*!
* jQuery UI Widget 1.12.1
* http://jqueryui.com
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*/
//>>label: Widget
//>>group: Core
//>>description: Provides a factory for creating stateful widgets with a common API.
//>>docs: http://api.jqueryui.com/jQuery.widget/
//>>demos: http://jqueryui.com/widget/
// Support: jQuery 1.9.x or older
// $.expr[ ":" ] is deprecated.
if (!$.expr.pseudos) {
$.expr.pseudos = $.expr[':'];
}
// Support: jQuery 1.11.x or older
// $.unique has been renamed to $.uniqueSort
if (!$.uniqueSort) {
$.uniqueSort = $.unique;
}
var widgetUuid = 0;
var widgetHasOwnProperty = Array.prototype.hasOwnProperty;
var widgetSlice = Array.prototype.slice;
$.cleanData = (function (orig) {
return function (elems) {
var events, elem, i;
// eslint-disable-next-line eqeqeq
for (i = 0; (elem = elems[i]) != null; i++) {
// Only trigger remove when necessary to save time
events = $._data(elem, 'events');
if (events && events.remove) {
$(elem).triggerHandler('remove');
}
}
orig(elems);
};
})($.cleanData);
$.widget = function (name, base, prototype) {
var existingConstructor, constructor, basePrototype;
// ProxiedPrototype allows the provided prototype to remain unmodified
// so that it can be used as a mixin for multiple widgets (#8876)
var proxiedPrototype = {};
var namespace = name.split('.')[0];
name = name.split('.')[1];
var fullName = namespace + '-' + name;
if (!prototype) {
prototype = base;
base = $.Widget;
}
if ($.isArray(prototype)) {
prototype = $.extend.apply(null, [{}].concat(prototype));
}
// Create selector for plugin
$.expr.pseudos[fullName.toLowerCase()] = function (elem) {
return !!$.data(elem, fullName);
};
$[namespace] = $[namespace] || {};
existingConstructor = $[namespace][name];
constructor = $[namespace][name] = function (options, element) {
// Allow instantiation without "new" keyword
if (!this._createWidget) {
return new constructor(options, element);
}
// Allow instantiation without initializing for simple inheritance
// must use "new" keyword (the code above always passes args)
if (arguments.length) {
this._createWidget(options, element);
}
};
// Extend with the existing constructor to carry over any static properties
$.extend(constructor, existingConstructor, {
version: prototype.version,
// Copy the object used to create the prototype in case we need to
// redefine the widget later
_proto: $.extend({}, prototype),
// Track widgets that inherit from this widget in case this widget is
// redefined after a widget inherits from it
_childConstructors: []
});
basePrototype = new base();
// We need to make the options hash a property directly on the new instance
// otherwise we'll modify the options hash on the prototype that we're
// inheriting from
basePrototype.options = $.widget.extend({}, basePrototype.options);
$.each(prototype, function (prop, value) {
if (!$.isFunction(value)) {
proxiedPrototype[prop] = value;
return;
}
proxiedPrototype[prop] = (function () {
function _super() {
return base.prototype[prop].apply(this, arguments);
}
function _superApply(args) {
return base.prototype[prop].apply(this, args);
}
return function () {
var __super = this._super;
var __superApply = this._superApply;
var returnValue;
this._super = _super;
this._superApply = _superApply;
returnValue = value.apply(this, arguments);
this._super = __super;
this._superApply = __superApply;
return returnValue;
};
})();
});
constructor.prototype = $.widget.extend(
basePrototype,
{
// TODO: remove support for widgetEventPrefix
// always use the name + a colon as the prefix, e.g., draggable:start
// don't prefix for widgets that aren't DOM-based
widgetEventPrefix: existingConstructor
? basePrototype.widgetEventPrefix || name
: name
},
proxiedPrototype,
{
constructor: constructor,
namespace: namespace,
widgetName: name,
widgetFullName: fullName
}
);
// If this widget is being redefined then we need to find all widgets that
// are inheriting from it and redefine all of them so that they inherit from
// the new version of this widget. We're essentially trying to replace one
// level in the prototype chain.
if (existingConstructor) {
$.each(existingConstructor._childConstructors, function (i, child) {
var childPrototype = child.prototype;
// Redefine the child widget using the same prototype that was
// originally used, but inherit from the new version of the base
$.widget(
childPrototype.namespace + '.' + childPrototype.widgetName,
constructor,
child._proto
);
});
// Remove the list of existing child constructors from the old constructor
// so the old child constructors can be garbage collected
delete existingConstructor._childConstructors;
} else {
base._childConstructors.push(constructor);
}
$.widget.bridge(name, constructor);
return constructor;
};
$.widget.extend = function (target) {
var input = widgetSlice.call(arguments, 1);
var inputIndex = 0;
var inputLength = input.length;
var key;
var value;
for (; inputIndex < inputLength; inputIndex++) {
for (key in input[inputIndex]) {
value = input[inputIndex][key];
if (
widgetHasOwnProperty.call(input[inputIndex], key) &&
value !== undefined
) {
// Clone objects
if ($.isPlainObject(value)) {
target[key] = $.isPlainObject(target[key])
? $.widget.extend({}, target[key], value)
: // Don't extend strings, arrays, etc. with objects
$.widget.extend({}, value);
// Copy everything else by reference
} else {
target[key] = value;
}
}
}
}
return target;
};
$.widget.bridge = function (name, object) {
var fullName = object.prototype.widgetFullName || name;
$.fn[name] = function (options) {
var isMethodCall = typeof options === 'string';
var args = widgetSlice.call(arguments, 1);
var returnValue = this;
if (isMethodCall) {
// If this is an empty collection, we need to have the instance method
// return undefined instead of the jQuery instance
if (!this.length && options === 'instance') {
returnValue = undefined;
} else {
this.each(function () {
var methodValue;
var instance = $.data(this, fullName);
if (options === 'instance') {
returnValue = instance;
return false;
}
if (!instance) {
return $.error(
'cannot call methods on ' +
name +
' prior to initialization; ' +
"attempted to call method '" +
options +
"'"
);
}
if (!$.isFunction(instance[options]) || options.charAt(0) === '_') {
return $.error(
"no such method '" +
options +
"' for " +
name +
' widget instance'
);
}
methodValue = instance[options].apply(instance, args);
if (methodValue !== instance && methodValue !== undefined) {
returnValue =
methodValue && methodValue.jquery
? returnValue.pushStack(methodValue.get())
: methodValue;
return false;
}
});
}
} else {
// Allow multiple hashes to be passed on init
if (args.length) {
options = $.widget.extend.apply(null, [options].concat(args));
}
this.each(function () {
var instance = $.data(this, fullName);
if (instance) {
instance.option(options || {});
if (instance._init) {
instance._init();
}
} else {
$.data(this, fullName, new object(options, this));
}
});
}
return returnValue;
};
};
$.Widget = function (/* options, element */) {};
$.Widget._childConstructors = [];
$.Widget.prototype = {
widgetName: 'widget',
widgetEventPrefix: '',
defaultElement: '<div>',
options: {
classes: {},
disabled: false,
// Callbacks
create: null
},
_createWidget: function (options, element) {
element = $(element || this.defaultElement || this)[0];
this.element = $(element);
this.uuid = widgetUuid++;
this.eventNamespace = '.' + this.widgetName + this.uuid;
this.bindings = $();
this.hoverable = $();
this.focusable = $();
this.classesElementLookup = {};
if (element !== this) {
$.data(element, this.widgetFullName, this);
this._on(true, this.element, {
remove: function (event) {
if (event.target === element) {
this.destroy();
}
}
});
this.document = $(
element.style
? // Element within the document
element.ownerDocument
: // Element is window or document
element.document || element
);
this.window = $(
this.document[0].defaultView || this.document[0].parentWindow
);
}
this.options = $.widget.extend(
{},
this.options,
this._getCreateOptions(),
options
);
this._create();
if (this.options.disabled) {
this._setOptionDisabled(this.options.disabled);
}
this._trigger('create', null, this._getCreateEventData());
this._init();
},
_getCreateOptions: function () {
return {};
},
_getCreateEventData: $.noop,
_create: $.noop,
_init: $.noop,
destroy: function () {
var that = this;
this._destroy();
$.each(this.classesElementLookup, function (key, value) {
that._removeClass(value, key);
});
// We can probably remove the unbind calls in 2.0
// all event bindings should go through this._on()
this.element.off(this.eventNamespace).removeData(this.widgetFullName);
this.widget().off(this.eventNamespace).removeAttr('aria-disabled');
// Clean up events and states
this.bindings.off(this.eventNamespace);
},
_destroy: $.noop,
widget: function () {
return this.element;
},
option: function (key, value) {
var options = key;
var parts;
var curOption;
var i;
if (arguments.length === 0) {
// Don't return a reference to the internal hash
return $.widget.extend({}, this.options);
}
if (typeof key === 'string') {
// Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
options = {};
parts = key.split('.');
key = parts.shift();
if (parts.length) {
curOption = options[key] = $.widget.extend({}, this.options[key]);
for (i = 0; i < parts.length - 1; i++) {
curOption[parts[i]] = curOption[parts[i]] || {};
curOption = curOption[parts[i]];
}
key = parts.pop();
if (arguments.length === 1) {
return curOption[key] === undefined ? null : curOption[key];
}
curOption[key] = value;
} else {
if (arguments.length === 1) {
return this.options[key] === undefined ? null : this.options[key];
}
options[key] = value;
}
}
this._setOptions(options);
return this;
},
_setOptions: function (options) {
var key;
for (key in options) {
this._setOption(key, options[key]);
}
return this;
},
_setOption: function (key, value) {
if (key === 'classes') {
this._setOptionClasses(value);
}
this.options[key] = value;
if (key === 'disabled') {
this._setOptionDisabled(value);
}
return this;
},
_setOptionClasses: function (value) {
var classKey, elements, currentElements;
for (classKey in value) {
currentElements = this.classesElementLookup[classKey];
if (
value[classKey] === this.options.classes[classKey] ||
!currentElements ||
!currentElements.length
) {
continue;
}
// We are doing this to create a new jQuery object because the _removeClass() call
// on the next line is going to destroy the reference to the current elements being
// tracked. We need to save a copy of this collection so that we can add the new classes
// below.
elements = $(currentElements.get());
this._removeClass(currentElements, classKey);
// We don't use _addClass() here, because that uses this.options.classes
// for generating the string of classes. We want to use the value passed in from
// _setOption(), this is the new value of the classes option which was passed to
// _setOption(). We pass this value directly to _classes().
elements.addClass(
this._classes({
element: elements,
keys: classKey,
classes: value,
add: true
})
);
}
},
_setOptionDisabled: function (value) {
this._toggleClass(
this.widget(),
this.widgetFullName + '-disabled',
null,
!!value
);
// If the widget is becoming disabled, then nothing is interactive
if (value) {
this._removeClass(this.hoverable, null, 'ui-state-hover');
this._removeClass(this.focusable, null, 'ui-state-focus');
}
},
enable: function () {
return this._setOptions({ disabled: false });
},
disable: function () {
return this._setOptions({ disabled: true });
},
_classes: function (options) {
var full = [];
var that = this;
options = $.extend(
{
element: this.element,
classes: this.options.classes || {}
},
options
);
function bindRemoveEvent() {
options.element.each(function (_, element) {
var isTracked = $.map(that.classesElementLookup, function (elements) {
return elements;
}).some(function (elements) {
return elements.is(element);
});
if (!isTracked) {
that._on($(element), {
remove: '_untrackClassesElement'
});
}
});
}
function processClassString(classes, checkOption) {
var current, i;
for (i = 0; i < classes.length; i++) {
current = that.classesElementLookup[classes[i]] || $();
if (options.add) {
bindRemoveEvent();
current = $(
$.uniqueSort(current.get().concat(options.element.get()))
);
} else {
current = $(current.not(options.element).get());
}
that.classesElementLookup[classes[i]] = current;
full.push(classes[i]);
if (checkOption && options.classes[classes[i]]) {
full.push(options.classes[classes[i]]);
}
}
}
if (options.keys) {
processClassString(options.keys.match(/\S+/g) || [], true);
}
if (options.extra) {
processClassString(options.extra.match(/\S+/g) || []);
}
return full.join(' ');
},
_untrackClassesElement: function (event) {
var that = this;
$.each(that.classesElementLookup, function (key, value) {
if ($.inArray(event.target, value) !== -1) {
that.classesElementLookup[key] = $(value.not(event.target).get());
}
});
this._off($(event.target));
},
_removeClass: function (element, keys, extra) {
return this._toggleClass(element, keys, extra, false);
},
_addClass: function (element, keys, extra) {
return this._toggleClass(element, keys, extra, true);
},
_toggleClass: function (element, keys, extra, add) {
add = typeof add === 'boolean' ? add : extra;
var shift = typeof element === 'string' || element === null,
options = {
extra: shift ? keys : extra,
keys: shift ? element : keys,
element: shift ? this.element : element,
add: add
};
options.element.toggleClass(this._classes(options), add);
return this;
},
_on: function (suppressDisabledCheck, element, handlers) {
var delegateElement;
var instance = this;
// No suppressDisabledCheck flag, shuffle arguments
if (typeof suppressDisabledCheck !== 'boolean') {
handlers = element;
element = suppressDisabledCheck;
suppressDisabledCheck = false;
}
// No element argument, shuffle and use this.element
if (!handlers) {
handlers = element;
element = this.element;
delegateElement = this.widget();
} else {
element = delegateElement = $(element);
this.bindings = this.bindings.add(element);
}
$.each(handlers, function (event, handler) {
function handlerProxy() {
// Allow widgets to customize the disabled handling
// - disabled as an array instead of boolean
// - disabled class as method for disabling individual parts
if (
!suppressDisabledCheck &&
(instance.options.disabled === true ||
$(this).hasClass('ui-state-disabled'))
) {
return;
}
return (typeof handler === 'string'
? instance[handler]
: handler
).apply(instance, arguments);
}
// Copy the guid so direct unbinding works
if (typeof handler !== 'string') {
handlerProxy.guid = handler.guid =
handler.guid || handlerProxy.guid || $.guid++;
}
var match = event.match(/^([\w:-]*)\s*(.*)$/);
var eventName = match[1] + instance.eventNamespace;
var selector = match[2];
if (selector) {
delegateElement.on(eventName, selector, handlerProxy);
} else {
element.on(eventName, handlerProxy);
}
});
},
_off: function (element, eventName) {
eventName =
(eventName || '').split(' ').join(this.eventNamespace + ' ') +
this.eventNamespace;
element.off(eventName);
// Clear the stack to avoid memory leaks (#10056)
this.bindings = $(this.bindings.not(element).get());
this.focusable = $(this.focusable.not(element).get());
this.hoverable = $(this.hoverable.not(element).get());
},
_delay: function (handler, delay) {
var instance = this;
function handlerProxy() {
return (typeof handler === 'string'
? instance[handler]
: handler
).apply(instance, arguments);
}
return setTimeout(handlerProxy, delay || 0);
},
_hoverable: function (element) {
this.hoverable = this.hoverable.add(element);
this._on(element, {
mouseenter: function (event) {
this._addClass($(event.currentTarget), null, 'ui-state-hover');
},
mouseleave: function (event) {
this._removeClass($(event.currentTarget), null, 'ui-state-hover');
}
});
},
_focusable: function (element) {
this.focusable = this.focusable.add(element);
this._on(element, {
focusin: function (event) {
this._addClass($(event.currentTarget), null, 'ui-state-focus');
},
focusout: function (event) {
this._removeClass($(event.currentTarget), null, 'ui-state-focus');
}
});
},
_trigger: function (type, event, data) {
var prop, orig;
var callback = this.options[type];
data = data || {};
event = $.Event(event);
event.type = (type === this.widgetEventPrefix
? type
: this.widgetEventPrefix + type
).toLowerCase();
// The original event may come from any element
// so we need to reset the target on the new event
event.target = this.element[0];
// Copy original event properties over to the new event
orig = event.originalEvent;
if (orig) {
for (prop in orig) {
if (!(prop in event)) {
event[prop] = orig[prop];
}
}
}
this.element.trigger(event, data);
return !(
($.isFunction(callback) &&
callback.apply(this.element[0], [event].concat(data)) === false) ||
event.isDefaultPrevented()
);
}
};
$.each({ show: 'fadeIn', hide: 'fadeOut' }, function (method, defaultEffect) {
$.Widget.prototype['_' + method] = function (element, options, callback) {
if (typeof options === 'string') {
options = { effect: options };
}
var hasOptions;
var effectName = !options
? method
: options === true || typeof options === 'number'
? defaultEffect
: options.effect || defaultEffect;
options = options || {};
if (typeof options === 'number') {
options = { duration: options };
}
hasOptions = !$.isEmptyObject(options);
options.complete = callback;
if (options.delay) {
element.delay(options.delay);
}
if (hasOptions && $.effects && $.effects.effect[effectName]) {
element[method](options);
} else if (effectName !== method && element[effectName]) {
element[effectName](options.duration, options.easing, callback);
} else {
element.queue(function (next) {
$(this)[method]();
if (callback) {
callback.call(element[0]);
}
next();
});
}
};
});
});
@@ -0,0 +1,86 @@
jQuery.fn.extend({
createRepeater: function (options = {}) {
var hasOption = function (optionKey) {
return options.hasOwnProperty(optionKey);
};
var option = function (optionKey) {
return options[optionKey];
};
var generateId = function (string) {
return string
.replace(/\[/g, '_')
.replace(/\]/g, '')
.toLowerCase();
};
var addItem = function (items, key, fresh = true) {
var itemContent = items;
var group = itemContent.data("group");
var item = itemContent;
var input = item.find('input,select,textarea');
input.each(function (index, el) {
var attrName = $(el).data('name');
var skipName = $(el).data('skip-name');
if (skipName != true) {
$(el).attr("name", group + "[" + key + "]" + "[" + attrName + "]");
} else {
if (attrName != 'undefined') {
$(el).attr("name", attrName);
}
}
if (fresh == true) {
$(el).attr('value', '');
}
$(el).attr('id', generateId($(el).attr('name')));
$(el).parent().find('label').attr('for', generateId($(el).attr('name')));
})
var itemClone = items;
/* Handling remove btn */
var removeButton = itemClone.find('.remove-btn');
if (key == 0) {
removeButton.attr('disabled', true);
} else {
removeButton.attr('disabled', false);
}
removeButton.attr('onclick', '$(this).parents(\'.items\').remove()');
var newItem = $("<div class='items'>" + itemClone.html() + "<div/>");
newItem.attr('data-index', key)
newItem.appendTo(repeater);
};
/* find elements */
var repeater = this;
var items = repeater.find(".items");
var key = 0;
var addButton = repeater.find('.repeater-add-btn');
items.each(function (index, item) {
items.remove();
if (hasOption('showFirstItemToDefault') && option('showFirstItemToDefault') == true) {
addItem($(item), key);
key++;
} else {
if (items.length > 1) {
addItem($(item), key);
key++;
}
}
});
/* handle click and add items */
addButton.on("click", function () {
addItem($(items[0]), key);
key++;
});
}
});
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,254 @@
// google map scripts
var map;
function initMap() {
// Basic map
map = new google.maps.Map(document.getElementById('simple-map'), {
center: {
lat: -34.397,
lng: 150.644
},
zoom: 8
});
// marker map
var myLatLng = {
lat: -25.363,
lng: 131.044
};
var map = new google.maps.Map(document.getElementById('marker-map'), {
zoom: 4,
center: myLatLng
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'Hello World!'
});
// overlays map
var overlay;
USGSOverlay.prototype = new google.maps.OverlayView();
// Initialize the map and the custom overlay.
function initMap() {
var map = new google.maps.Map(document.getElementById('overlay-map'), {
zoom: 11,
center: {
lat: 62.323907,
lng: -150.109291
},
mapTypeId: 'satellite'
});
var bounds = new google.maps.LatLngBounds(new google.maps.LatLng(62.281819, -150.287132), new google.maps.LatLng(62.400471, -150.005608));
// The photograph is courtesy of the U.S. Geological Survey.
var srcImage = 'https://developers.google.com/maps/documentation/' + 'javascript/examples/full/images/talkeetna.png';
// The custom USGSOverlay object contains the USGS image,
// the bounds of the image, and a reference to the map.
overlay = new USGSOverlay(bounds, srcImage, map);
}
/** @constructor */
function USGSOverlay(bounds, image, map) {
// Initialize all properties.
this.bounds_ = bounds;
this.image_ = image;
this.map_ = map;
// Define a property to hold the image's div. We'll
// actually create this div upon receipt of the onAdd()
// method so we'll leave it null for now.
this.div_ = null;
// Explicitly call setMap on this overlay.
this.setMap(map);
}
/**
* onAdd is called when the map's panes are ready and the overlay has been
* added to the map.
*/
USGSOverlay.prototype.onAdd = function () {
var div = document.createElement('div');
div.style.borderStyle = 'none';
div.style.borderWidth = '0px';
div.style.position = 'absolute';
// Create the img element and attach it to the div.
var img = document.createElement('img');
img.src = this.image_;
img.style.width = '100%';
img.style.height = '100%';
img.style.position = 'absolute';
div.appendChild(img);
this.div_ = div;
// Add the element to the "overlayLayer" pane.
var panes = this.getPanes();
panes.overlayLayer.appendChild(div);
};
USGSOverlay.prototype.draw = function () {
// We use the south-west and north-east
// coordinates of the overlay to peg it to the correct position and size.
// To do this, we need to retrieve the projection from the overlay.
var overlayProjection = this.getProjection();
// Retrieve the south-west and north-east coordinates of this overlay
// in LatLngs and convert them to pixel coordinates.
// We'll use these coordinates to resize the div.
var sw = overlayProjection.fromLatLngToDivPixel(this.bounds_.getSouthWest());
var ne = overlayProjection.fromLatLngToDivPixel(this.bounds_.getNorthEast());
// Resize the image's div to fit the indicated dimensions.
var div = this.div_;
div.style.left = sw.x + 'px';
div.style.top = ne.y + 'px';
div.style.width = (ne.x - sw.x) + 'px';
div.style.height = (sw.y - ne.y) + 'px';
};
// The onRemove() method will be called automatically from the API if
// we ever set the overlay's map property to 'null'.
USGSOverlay.prototype.onRemove = function () {
this.div_.parentNode.removeChild(this.div_);
this.div_ = null;
};
google.maps.event.addDomListener(window, 'load', initMap);
// polygons
var map = new google.maps.Map(document.getElementById('polygons-map'), {
zoom: 5,
center: {
lat: 24.886,
lng: -70.268
},
mapTypeId: 'terrain'
});
// Define the LatLng coordinates for the polygon's path.
var triangleCoords = [{
lat: 25.774,
lng: -80.190
}, {
lat: 18.466,
lng: -66.118
}, {
lat: 32.321,
lng: -64.757
}, {
lat: 25.774,
lng: -80.190
}];
// Construct the polygon.
var bermudaTriangle = new google.maps.Polygon({
paths: triangleCoords,
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35
});
bermudaTriangle.setMap(map);
// Styles a map in night mode.
var map = new google.maps.Map(document.getElementById('style-map'), {
center: {
lat: 40.674,
lng: -73.945
},
zoom: 12,
styles: [{
elementType: 'geometry',
stylers: [{
color: '#242f3e'
}]
}, {
elementType: 'labels.text.stroke',
stylers: [{
color: '#242f3e'
}]
}, {
elementType: 'labels.text.fill',
stylers: [{
color: '#746855'
}]
}, {
featureType: 'administrative.locality',
elementType: 'labels.text.fill',
stylers: [{
color: '#d59563'
}]
}, {
featureType: 'poi',
elementType: 'labels.text.fill',
stylers: [{
color: '#d59563'
}]
}, {
featureType: 'poi.park',
elementType: 'geometry',
stylers: [{
color: '#263c3f'
}]
}, {
featureType: 'poi.park',
elementType: 'labels.text.fill',
stylers: [{
color: '#6b9a76'
}]
}, {
featureType: 'road',
elementType: 'geometry',
stylers: [{
color: '#38414e'
}]
}, {
featureType: 'road',
elementType: 'geometry.stroke',
stylers: [{
color: '#212a37'
}]
}, {
featureType: 'road',
elementType: 'labels.text.fill',
stylers: [{
color: '#9ca5b3'
}]
}, {
featureType: 'road.highway',
elementType: 'geometry',
stylers: [{
color: '#746855'
}]
}, {
featureType: 'road.highway',
elementType: 'geometry.stroke',
stylers: [{
color: '#1f2835'
}]
}, {
featureType: 'road.highway',
elementType: 'labels.text.fill',
stylers: [{
color: '#f3d19c'
}]
}, {
featureType: 'transit',
elementType: 'geometry',
stylers: [{
color: '#2f3948'
}]
}, {
featureType: 'transit.station',
elementType: 'labels.text.fill',
stylers: [{
color: '#d59563'
}]
}, {
featureType: 'water',
elementType: 'geometry',
stylers: [{
color: '#17263c'
}]
}, {
featureType: 'water',
elementType: 'labels.text.fill',
stylers: [{
color: '#515c6d'
}]
}, {
featureType: 'water',
elementType: 'labels.text.stroke',
stylers: [{
color: '#17263c'
}]
}]
});
}
// routes map
// style map
@@ -0,0 +1,999 @@
@import 'https://fonts.googleapis.com/css?family=Unica+One';
.highcharts-title, .highcharts-subtitle {
text-transform: uppercase;
}
.highcharts-tooltip text {
fill: #F0F0F0;
}
.highcharts-range-selector-buttons text {
fill: silver;
}
.highcharts-yaxis-grid {
stroke-width: 1px;
}
.highcharts-axis-labels, .highcharts-axis-title {
fill: #E0E0E3;
}
.highcharts-navigator .highcharts-navigator-handle {
fill: #666;
stroke: #aaa;
}
.highcharts-navigator .highcharts-navigator-outline {
stroke: #CCC;
}
.highcharts-navigator .highcharts-navigator-xaxis .highcharts-grid-line {
stroke: #505053;
}
.highcharts-scrollbar .highcharts-scrollbar-rifles {
stroke: #fff;
}
.highcharts-scrollbar .highcharts-scrollbar-button {
stroke: #606063;
fill: #606063;
}
.highcharts-scrollbar .highcharts-scrollbar-arrow {
fill: #CCC;
}
.highcharts-scrollbar .highcharts-scrollbar-thumb {
fill: #808083;
stroke: #808083;
}
.highcharts-contextbutton .highcharts-button-symbol {
stroke: #DDDDDD;
}
/**
* @license Highcharts
*
* (c) 2009-2016 Torstein Honsi
*
* License: www.highcharts.com/license
*/
.highcharts-container {
position: relative;
overflow: hidden;
width: 100%;
height: 100%;
text-align: left;
line-height: normal;
z-index: 0;
/* #1072 */
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
font-family: "Unica One", Arial, Helvetica, sans-serif;
font-size: 12px;
}
.highcharts-root {
display: block;
}
.highcharts-root text {
stroke-width: 0;
}
.highcharts-strong {
font-weight: bold;
}
.highcharts-emphasized {
font-style: italic;
}
.highcharts-anchor {
cursor: pointer;
}
.highcharts-background {
fill: #2a2a2b;
}
.highcharts-plot-border, .highcharts-plot-background {
fill: none;
}
.highcharts-label-box {
fill: none;
}
.highcharts-button-box {
fill: inherit;
}
.highcharts-tracker-line {
stroke-linejoin: round;
stroke: rgba(192, 192, 192, 0.0001);
stroke-width: 22;
fill: none;
}
.highcharts-tracker-area {
fill: rgba(192, 192, 192, 0.0001);
stroke-width: 0;
}
/* Titles */
.highcharts-title {
fill: #E0E0E3;
font-size: 20px;
}
.highcharts-subtitle {
fill: #E0E0E3;
}
/* Axes */
.highcharts-axis-line {
fill: none;
stroke: #707073;
}
.highcharts-yaxis .highcharts-axis-line {
stroke-width: 0;
}
.highcharts-axis-title {
fill: #E0E0E3;
}
.highcharts-axis-labels {
fill: #E0E0E3;
cursor: default;
font-size: 0.9em;
}
.highcharts-grid-line {
fill: none;
stroke: #707073;
}
.highcharts-xaxis-grid .highcharts-grid-line {
stroke-width: 0px;
}
.highcharts-tick {
stroke: #707073;
}
.highcharts-yaxis .highcharts-tick {
stroke-width: 0;
}
.highcharts-minor-grid-line {
stroke: #505053;
}
.highcharts-crosshair-thin {
stroke-width: 1px;
stroke: #606063;
}
.highcharts-crosshair-category {
stroke: #707073;
stroke-opacity: 0.25;
}
/* Credits */
.highcharts-credits {
cursor: pointer;
fill: #666;
font-size: 0.7em;
transition: fill 250ms, font-size 250ms;
}
.highcharts-credits:hover {
fill: black;
font-size: 1em;
}
/* Tooltip */
.highcharts-tooltip {
cursor: default;
pointer-events: none;
white-space: nowrap;
transition: stroke 150ms;
}
.highcharts-tooltip text {
fill: #E0E0E3;
}
.highcharts-tooltip .highcharts-header {
font-size: 0.85em;
}
.highcharts-tooltip-box {
stroke-width: 1px;
fill: rgba(0, 0, 0, 0.85);
fill-opacity: 0.85;
}
.highcharts-tooltip-box .highcharts-label-box {
fill: rgba(0, 0, 0, 0.85);
fill-opacity: 0.85;
}
div.highcharts-tooltip {
filter: none;
}
.highcharts-selection-marker {
fill: #335cad;
fill-opacity: 0.25;
}
.highcharts-graph {
fill: none;
stroke-width: 2px;
stroke-linecap: round;
stroke-linejoin: round;
}
.highcharts-state-hover .highcharts-graph {
stroke-width: 3;
}
.highcharts-point-inactive {
opacity: 0.2;
transition: opacity 50ms;
/* quick in */
}
.highcharts-series-inactive {
opacity: 0.2;
transition: opacity 50ms;
/* quick in */
}
.highcharts-state-hover path {
transition: stroke-width 50ms;
/* quick in */
}
.highcharts-state-normal path {
transition: stroke-width 250ms;
/* slow out */
}
/* Legend hover affects points and series */
g.highcharts-series,
.highcharts-point,
.highcharts-markers,
.highcharts-data-labels {
transition: opacity 250ms;
}
.highcharts-legend-series-active g.highcharts-series:not(.highcharts-series-hover),
.highcharts-legend-point-active .highcharts-point:not(.highcharts-point-hover),
.highcharts-legend-series-active .highcharts-markers:not(.highcharts-series-hover),
.highcharts-legend-series-active .highcharts-data-labels:not(.highcharts-series-hover) {
opacity: 0.2;
}
/* Series options */
/* Default colors */
.highcharts-color-0 {
fill: #2b908f;
stroke: #2b908f;
}
.highcharts-color-1 {
fill: #90ee7e;
stroke: #90ee7e;
}
.highcharts-color-2 {
fill: #f45b5b;
stroke: #f45b5b;
}
.highcharts-color-3 {
fill: #7798BF;
stroke: #7798BF;
}
.highcharts-color-4 {
fill: #aaeeee;
stroke: #aaeeee;
}
.highcharts-color-5 {
fill: #ff0066;
stroke: #ff0066;
}
.highcharts-color-6 {
fill: #eeaaee;
stroke: #eeaaee;
}
.highcharts-color-7 {
fill: #55BF3B;
stroke: #55BF3B;
}
.highcharts-color-8 {
fill: #DF5353;
stroke: #DF5353;
}
.highcharts-color-9 {
fill: #7798BF;
stroke: #7798BF;
}
.highcharts-color-10 {
fill: #aaeeee;
stroke: #aaeeee;
}
.highcharts-area {
fill-opacity: 0.75;
stroke-width: 0;
}
.highcharts-markers {
stroke-width: 1px;
stroke: #2a2a2b;
}
.highcharts-point {
stroke-width: 1px;
}
.highcharts-dense-data .highcharts-point {
stroke-width: 0;
}
.highcharts-data-label {
font-size: 0.9em;
font-weight: bold;
}
.highcharts-data-label-box {
fill: none;
stroke-width: 0;
}
.highcharts-data-label text, text.highcharts-data-label {
fill: #B0B0B3;
}
.highcharts-data-label-connector {
fill: none;
}
.highcharts-data-label-hidden {
pointer-events: none;
}
.highcharts-halo {
fill-opacity: 0.25;
stroke-width: 0;
}
.highcharts-series:not(.highcharts-pie-series) .highcharts-point-select,
.highcharts-markers .highcharts-point-select {
fill: #606063;
stroke: #fff;
}
.highcharts-column-series rect.highcharts-point {
stroke: #2a2a2b;
}
.highcharts-column-series .highcharts-point {
transition: fill-opacity 250ms;
}
.highcharts-column-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-pie-series .highcharts-point {
stroke-linejoin: round;
stroke: #2a2a2b;
}
.highcharts-pie-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-funnel-series .highcharts-point {
stroke-linejoin: round;
stroke: #2a2a2b;
}
.highcharts-funnel-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-funnel-series .highcharts-point-select {
fill: inherit;
stroke: inherit;
}
.highcharts-pyramid-series .highcharts-point {
stroke-linejoin: round;
stroke: #2a2a2b;
}
.highcharts-pyramid-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-pyramid-series .highcharts-point-select {
fill: inherit;
stroke: inherit;
}
.highcharts-solidgauge-series .highcharts-point {
stroke-width: 0;
}
.highcharts-treemap-series .highcharts-point {
stroke-width: 1px;
stroke: #707073;
transition: stroke 250ms, fill 250ms, fill-opacity 250ms;
}
.highcharts-treemap-series .highcharts-point-hover {
stroke: #666;
transition: stroke 25ms, fill 25ms, fill-opacity 25ms;
}
.highcharts-treemap-series .highcharts-above-level {
display: none;
}
.highcharts-treemap-series .highcharts-internal-node {
fill: none;
}
.highcharts-treemap-series .highcharts-internal-node-interactive {
fill-opacity: 0.15;
cursor: pointer;
}
.highcharts-treemap-series .highcharts-internal-node-interactive:hover {
fill-opacity: 0.75;
}
.highcharts-vector-series .highcharts-point {
fill: none;
stroke-width: 2px;
}
.highcharts-windbarb-series .highcharts-point {
fill: none;
stroke-width: 2px;
}
.highcharts-lollipop-stem {
stroke: #fff;
}
.highcharts-focus-border {
fill: none;
stroke-width: 2px;
}
.highcharts-legend-item-hidden .highcharts-focus-border {
fill: none !important;
}
/* Legend */
.highcharts-legend-box {
fill: none;
stroke-width: 0;
}
.highcharts-legend-item > text {
fill: #E0E0E3;
font-weight: bold;
font-size: 1em;
cursor: pointer;
stroke-width: 0;
}
.highcharts-legend-item:hover text {
fill: #fff;
}
.highcharts-legend-item-hidden * {
fill: #606063 !important;
stroke: #606063 !important;
transition: fill 250ms;
}
.highcharts-legend-nav-active {
fill: #F0F0F3;
cursor: pointer;
}
.highcharts-legend-nav-inactive {
fill: #606063;
}
circle.highcharts-legend-nav-active, circle.highcharts-legend-nav-inactive {
/* tracker */
fill: rgba(192, 192, 192, 0.0001);
}
.highcharts-legend-title-box {
fill: none;
stroke-width: 0;
}
/* Bubble legend */
.highcharts-bubble-legend-symbol {
stroke-width: 2;
fill-opacity: 0.5;
}
.highcharts-bubble-legend-connectors {
stroke-width: 1;
}
.highcharts-bubble-legend-labels {
fill: #E0E0E3;
}
/* Loading */
.highcharts-loading {
position: absolute;
background-color: #2a2a2b;
opacity: 0.5;
text-align: center;
z-index: 10;
transition: opacity 250ms;
}
.highcharts-loading-hidden {
height: 0 !important;
opacity: 0;
overflow: hidden;
transition: opacity 250ms, height 250ms step-end;
}
.highcharts-loading-inner {
font-weight: bold;
position: relative;
top: 45%;
}
/* Plot bands and polar pane backgrounds */
.highcharts-plot-band, .highcharts-pane {
fill: #fff;
fill-opacity: 0.05;
}
.highcharts-plot-line {
fill: none;
stroke: #666;
stroke-width: 1px;
}
/* Highcharts More and modules */
.highcharts-boxplot-box {
fill: #2a2a2b;
}
.highcharts-boxplot-median {
stroke-width: 2px;
}
.highcharts-bubble-series .highcharts-point {
fill-opacity: 0.5;
}
.highcharts-errorbar-series .highcharts-point {
stroke: #fff;
}
.highcharts-gauge-series .highcharts-data-label-box {
stroke: #606063;
stroke-width: 1px;
}
.highcharts-gauge-series .highcharts-dial {
fill: #fff;
stroke-width: 0;
}
.highcharts-polygon-series .highcharts-graph {
fill: inherit;
stroke-width: 0;
}
.highcharts-waterfall-series .highcharts-graph {
stroke: #E0E0E3;
stroke-dasharray: 1, 3;
}
.highcharts-sankey-series .highcharts-point {
stroke-width: 0;
}
.highcharts-sankey-series .highcharts-link {
transition: fill 250ms, fill-opacity 250ms;
fill-opacity: 0.5;
}
.highcharts-sankey-series .highcharts-point-hover.highcharts-link {
transition: fill 50ms, fill-opacity 50ms;
fill-opacity: 1;
}
.highcharts-venn-series .highcharts-point {
fill-opacity: 0.75;
stroke: #606063;
transition: stroke 250ms, fill-opacity 250ms;
}
.highcharts-venn-series .highcharts-point-hover {
fill-opacity: 1;
stroke: #606063;
}
/* Highstock */
.highcharts-navigator-mask-outside {
fill-opacity: 0;
}
.highcharts-navigator-mask-inside {
fill: rgba(255, 255, 255, 0.1);
/* navigator.maskFill option */
fill-opacity: 0.25;
cursor: ew-resize;
}
.highcharts-navigator-outline {
stroke: #606063;
fill: none;
}
.highcharts-navigator-handle {
stroke: #606063;
fill: #505053;
cursor: ew-resize;
}
.highcharts-navigator-series {
fill: #7798BF;
stroke: #A6C7ED;
}
.highcharts-navigator-series .highcharts-graph {
stroke-width: 1px;
}
.highcharts-navigator-series .highcharts-area {
fill-opacity: 0.05;
}
.highcharts-navigator-xaxis .highcharts-axis-line {
stroke-width: 0;
}
.highcharts-navigator-xaxis .highcharts-grid-line {
stroke-width: 1px;
stroke: #707073;
}
.highcharts-navigator-xaxis.highcharts-axis-labels {
fill: #666;
}
.highcharts-navigator-yaxis .highcharts-grid-line {
stroke-width: 0;
}
.highcharts-scrollbar-thumb {
fill: #606063;
stroke: #606063;
stroke-width: 1px;
}
.highcharts-scrollbar-button {
fill: #707073;
stroke: #606063;
stroke-width: 1px;
}
.highcharts-scrollbar-arrow {
fill: #E0E0E3;
}
.highcharts-scrollbar-rifles {
stroke: #E0E0E3;
stroke-width: 1px;
}
.highcharts-scrollbar-track {
fill: #404043;
stroke: #404043;
stroke-width: 1px;
}
.highcharts-button {
fill: #505053;
stroke: #606063;
cursor: default;
stroke-width: 1px;
transition: fill 250ms;
}
.highcharts-button text {
fill: #ccc;
}
.highcharts-button-hover {
transition: fill 0ms;
fill: #707073;
stroke: #606063;
}
.highcharts-button-hover text {
fill: #fff;
}
.highcharts-button-pressed {
font-weight: bold;
fill: #000003;
stroke: #606063;
}
.highcharts-button-pressed text {
fill: #fff;
font-weight: bold;
}
.highcharts-button-disabled text {
fill: #ccc;
}
.highcharts-range-selector-buttons .highcharts-button {
stroke-width: 0px;
}
.highcharts-range-label rect {
fill: none;
}
.highcharts-range-label text {
fill: #E0E0E3;
}
.highcharts-range-input rect {
fill: none;
}
.highcharts-range-input text {
fill: silver;
}
.highcharts-range-input {
stroke-width: 1px;
stroke: #505053;
}
input.highcharts-range-selector {
position: absolute;
border: 0;
width: 1px;
/* Chrome needs a pixel to see it */
height: 1px;
padding: 0;
text-align: center;
left: -9em;
/* #4798 */
}
.highcharts-crosshair-label text {
fill: #2a2a2b;
font-size: 1.1em;
}
.highcharts-crosshair-label .highcharts-label-box {
fill: inherit;
}
.highcharts-candlestick-series .highcharts-point {
stroke: #fff;
stroke-width: 1px;
}
.highcharts-candlestick-series .highcharts-point-up {
fill: #2a2a2b;
}
.highcharts-ohlc-series .highcharts-point-hover {
stroke-width: 3px;
}
.highcharts-flags-series .highcharts-point .highcharts-label-box {
stroke: #666;
fill: #2a2a2b;
transition: fill 250ms;
}
.highcharts-flags-series .highcharts-point-hover .highcharts-label-box {
stroke: #fff;
fill: #707073;
}
.highcharts-flags-series .highcharts-point text {
fill: #fff;
font-size: 0.9em;
font-weight: bold;
}
/* Highmaps */
.highcharts-map-series .highcharts-point {
transition: fill 500ms, fill-opacity 500ms, stroke-width 250ms;
stroke: #606063;
}
.highcharts-map-series .highcharts-point-hover {
transition: fill 0ms, fill-opacity 0ms;
fill-opacity: 0.5;
stroke-width: 2px;
}
.highcharts-mapline-series .highcharts-point {
fill: none;
}
.highcharts-heatmap-series .highcharts-point {
stroke-width: 0;
}
.highcharts-map-navigation {
font-size: 1.3em;
font-weight: bold;
text-align: center;
}
.highcharts-coloraxis {
stroke-width: 0;
}
.highcharts-coloraxis-marker {
fill: #666;
}
.highcharts-null-point {
fill: #f7f7f7;
}
/* 3d charts */
.highcharts-3d-frame {
fill: transparent;
}
/* Exporting module */
.highcharts-contextbutton {
fill: #505053;
/* needed to capture hover */
stroke: none;
stroke-linecap: round;
}
.highcharts-contextbutton:hover {
fill: #707073;
stroke: #707073;
}
.highcharts-button-symbol {
stroke: #E0E0E3;
stroke-width: 3px;
}
.highcharts-menu {
border: 1px solid #666;
background: #2a2a2b;
padding: 5px 0;
box-shadow: 3px 3px 10px #888;
}
.highcharts-menu-item {
padding: 0.5em 1em;
background: none;
color: #E0E0E3;
cursor: pointer;
transition: background 250ms, color 250ms;
}
.highcharts-menu-item:hover {
background: #335cad;
color: #2a2a2b;
}
/* Drilldown module */
.highcharts-drilldown-point {
cursor: pointer;
}
.highcharts-drilldown-data-label text,
text.highcharts-drilldown-data-label,
.highcharts-drilldown-axis-label {
cursor: pointer;
fill: #F0F0F3;
font-weight: bold;
text-decoration: underline;
}
/* No-data module */
.highcharts-no-data text {
font-weight: bold;
font-size: 12px;
fill: #E0E0E3;
}
/* Drag-panes module */
.highcharts-axis-resizer {
cursor: ns-resize;
stroke: black;
stroke-width: 2px;
}
/* Bullet type series */
.highcharts-bullet-target {
stroke-width: 0;
}
/* Lineargauge type series */
.highcharts-lineargauge-target {
stroke-width: 1px;
stroke: #E0E0E3;
}
.highcharts-lineargauge-target-line {
stroke-width: 1px;
stroke: #E0E0E3;
}
/* Annotations module */
.highcharts-annotation-label-box {
stroke-width: 1px;
stroke: #fff;
fill: #fff;
fill-opacity: 0.75;
}
.highcharts-annotation-label text {
fill: #707073;
}
/* Gantt */
.highcharts-treegrid-node-collapsed, .highcharts-treegrid-node-expanded {
cursor: pointer;
}
.highcharts-point-connecting-path {
fill: none;
}
.highcharts-grid-axis .highcharts-tick {
stroke-width: 1px;
}
.highcharts-grid-axis .highcharts-axis-line {
stroke-width: 1px;
}
@@ -0,0 +1,952 @@
@import 'https://fonts.googleapis.com/css?family=Dosis:400,600';
.highcharts-title, .highcharts-subtitle, .highcharts-yaxis .highcharts-axis-title {
text-transform: uppercase;
}
.highcharts-title {
font-weight: bold;
}
/**
* @license Highcharts
*
* (c) 2009-2016 Torstein Honsi
*
* License: www.highcharts.com/license
*/
.highcharts-container {
position: relative;
overflow: hidden;
width: 100%;
height: 100%;
text-align: left;
line-height: normal;
z-index: 0;
/* #1072 */
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
font-family: "Dosis", Arial, Helvetica, sans-serif;
font-size: 12px;
}
.highcharts-root {
display: block;
}
.highcharts-root text {
stroke-width: 0;
}
.highcharts-strong {
font-weight: bold;
}
.highcharts-emphasized {
font-style: italic;
}
.highcharts-anchor {
cursor: pointer;
}
.highcharts-background {
fill: #ffffff;
}
.highcharts-plot-border, .highcharts-plot-background {
fill: none;
}
.highcharts-label-box {
fill: none;
}
.highcharts-button-box {
fill: inherit;
}
.highcharts-tracker-line {
stroke-linejoin: round;
stroke: rgba(192, 192, 192, 0.0001);
stroke-width: 22;
fill: none;
}
.highcharts-tracker-area {
fill: rgba(192, 192, 192, 0.0001);
stroke-width: 0;
}
/* Titles */
.highcharts-title {
fill: #000;
font-size: 16px;
}
.highcharts-subtitle {
fill: #666666;
}
/* Axes */
.highcharts-axis-line {
fill: none;
stroke: #ccd6eb;
}
.highcharts-yaxis .highcharts-axis-line {
stroke-width: 0;
}
.highcharts-axis-title {
fill: #666666;
}
.highcharts-axis-labels {
fill: #666666;
cursor: default;
font-size: 12px;
}
.highcharts-grid-line {
fill: none;
stroke: #e6e6e6;
}
.highcharts-xaxis-grid .highcharts-grid-line {
stroke-width: 1px;
}
.highcharts-tick {
stroke: #ccd6eb;
}
.highcharts-yaxis .highcharts-tick {
stroke-width: 0;
}
.highcharts-minor-grid-line {
stroke: #f2f2f2;
}
.highcharts-crosshair-thin {
stroke-width: 1px;
stroke: #cccccc;
}
.highcharts-crosshair-category {
stroke: #ccd6eb;
stroke-opacity: 0.25;
}
/* Credits */
.highcharts-credits {
cursor: pointer;
fill: #999999;
font-size: 0.7em;
transition: fill 250ms, font-size 250ms;
}
.highcharts-credits:hover {
fill: black;
font-size: 1em;
}
/* Tooltip */
.highcharts-tooltip {
cursor: default;
pointer-events: none;
white-space: nowrap;
transition: stroke 150ms;
}
.highcharts-tooltip text {
fill: #000;
}
.highcharts-tooltip .highcharts-header {
font-size: 0.85em;
}
.highcharts-tooltip-box {
stroke-width: 0px;
fill: rgba(219, 219, 216, 0.8);
fill-opacity: 0.85;
}
.highcharts-tooltip-box .highcharts-label-box {
fill: rgba(219, 219, 216, 0.8);
fill-opacity: 0.85;
}
div.highcharts-tooltip {
filter: none;
}
.highcharts-selection-marker {
fill: #335cad;
fill-opacity: 0.25;
}
.highcharts-graph {
fill: none;
stroke-width: 2px;
stroke-linecap: round;
stroke-linejoin: round;
}
.highcharts-state-hover .highcharts-graph {
stroke-width: 3;
}
.highcharts-point-inactive {
opacity: 0.2;
transition: opacity 50ms;
/* quick in */
}
.highcharts-series-inactive {
opacity: 0.2;
transition: opacity 50ms;
/* quick in */
}
.highcharts-state-hover path {
transition: stroke-width 50ms;
/* quick in */
}
.highcharts-state-normal path {
transition: stroke-width 250ms;
/* slow out */
}
/* Legend hover affects points and series */
g.highcharts-series,
.highcharts-point,
.highcharts-markers,
.highcharts-data-labels {
transition: opacity 250ms;
}
.highcharts-legend-series-active g.highcharts-series:not(.highcharts-series-hover),
.highcharts-legend-point-active .highcharts-point:not(.highcharts-point-hover),
.highcharts-legend-series-active .highcharts-markers:not(.highcharts-series-hover),
.highcharts-legend-series-active .highcharts-data-labels:not(.highcharts-series-hover) {
opacity: 0.2;
}
/* Series options */
/* Default colors */
.highcharts-color-0 {
fill: #7cb5ec;
stroke: #7cb5ec;
}
.highcharts-color-1 {
fill: #f7a35c;
stroke: #f7a35c;
}
.highcharts-color-2 {
fill: #90ee7e;
stroke: #90ee7e;
}
.highcharts-color-3 {
fill: #7798BF;
stroke: #7798BF;
}
.highcharts-color-4 {
fill: #aaeeee;
stroke: #aaeeee;
}
.highcharts-color-5 {
fill: #ff0066;
stroke: #ff0066;
}
.highcharts-color-6 {
fill: #eeaaee;
stroke: #eeaaee;
}
.highcharts-color-7 {
fill: #55BF3B;
stroke: #55BF3B;
}
.highcharts-color-8 {
fill: #DF5353;
stroke: #DF5353;
}
.highcharts-color-9 {
fill: #7798BF;
stroke: #7798BF;
}
.highcharts-color-10 {
fill: #aaeeee;
stroke: #aaeeee;
}
.highcharts-area {
fill-opacity: 0.75;
stroke-width: 0;
}
.highcharts-markers {
stroke-width: 1px;
stroke: #ffffff;
}
.highcharts-point {
stroke-width: 1px;
}
.highcharts-dense-data .highcharts-point {
stroke-width: 0;
}
.highcharts-data-label {
font-size: 0.9em;
font-weight: bold;
}
.highcharts-data-label-box {
fill: none;
stroke-width: 0;
}
.highcharts-data-label text, text.highcharts-data-label {
fill: #000;
}
.highcharts-data-label-connector {
fill: none;
}
.highcharts-data-label-hidden {
pointer-events: none;
}
.highcharts-halo {
fill-opacity: 0.25;
stroke-width: 0;
}
.highcharts-series:not(.highcharts-pie-series) .highcharts-point-select,
.highcharts-markers .highcharts-point-select {
fill: #cccccc;
stroke: #404048;
}
.highcharts-column-series rect.highcharts-point {
stroke: #ffffff;
}
.highcharts-column-series .highcharts-point {
transition: fill-opacity 250ms;
}
.highcharts-column-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-pie-series .highcharts-point {
stroke-linejoin: round;
stroke: #ffffff;
}
.highcharts-pie-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-funnel-series .highcharts-point {
stroke-linejoin: round;
stroke: #ffffff;
}
.highcharts-funnel-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-funnel-series .highcharts-point-select {
fill: inherit;
stroke: inherit;
}
.highcharts-pyramid-series .highcharts-point {
stroke-linejoin: round;
stroke: #ffffff;
}
.highcharts-pyramid-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-pyramid-series .highcharts-point-select {
fill: inherit;
stroke: inherit;
}
.highcharts-solidgauge-series .highcharts-point {
stroke-width: 0;
}
.highcharts-treemap-series .highcharts-point {
stroke-width: 1px;
stroke: #e6e6e6;
transition: stroke 250ms, fill 250ms, fill-opacity 250ms;
}
.highcharts-treemap-series .highcharts-point-hover {
stroke: #999999;
transition: stroke 25ms, fill 25ms, fill-opacity 25ms;
}
.highcharts-treemap-series .highcharts-above-level {
display: none;
}
.highcharts-treemap-series .highcharts-internal-node {
fill: none;
}
.highcharts-treemap-series .highcharts-internal-node-interactive {
fill-opacity: 0.15;
cursor: pointer;
}
.highcharts-treemap-series .highcharts-internal-node-interactive:hover {
fill-opacity: 0.75;
}
.highcharts-vector-series .highcharts-point {
fill: none;
stroke-width: 2px;
}
.highcharts-windbarb-series .highcharts-point {
fill: none;
stroke-width: 2px;
}
.highcharts-lollipop-stem {
stroke: #404048;
}
.highcharts-focus-border {
fill: none;
stroke-width: 2px;
}
.highcharts-legend-item-hidden .highcharts-focus-border {
fill: none !important;
}
/* Legend */
.highcharts-legend-box {
fill: none;
stroke-width: 0;
}
.highcharts-legend-item > text {
fill: #000;
font-weight: bold;
font-size: 13px;
cursor: pointer;
stroke-width: 0;
}
.highcharts-legend-item:hover text {
fill: #404048;
}
.highcharts-legend-item-hidden * {
fill: #cccccc !important;
stroke: #cccccc !important;
transition: fill 250ms;
}
.highcharts-legend-nav-active {
fill: #003399;
cursor: pointer;
}
.highcharts-legend-nav-inactive {
fill: #cccccc;
}
circle.highcharts-legend-nav-active, circle.highcharts-legend-nav-inactive {
/* tracker */
fill: rgba(192, 192, 192, 0.0001);
}
.highcharts-legend-title-box {
fill: none;
stroke-width: 0;
}
/* Bubble legend */
.highcharts-bubble-legend-symbol {
stroke-width: 2;
fill-opacity: 0.5;
}
.highcharts-bubble-legend-connectors {
stroke-width: 1;
}
.highcharts-bubble-legend-labels {
fill: #000;
}
/* Loading */
.highcharts-loading {
position: absolute;
background-color: #ffffff;
opacity: 0.5;
text-align: center;
z-index: 10;
transition: opacity 250ms;
}
.highcharts-loading-hidden {
height: 0 !important;
opacity: 0;
overflow: hidden;
transition: opacity 250ms, height 250ms step-end;
}
.highcharts-loading-inner {
font-weight: bold;
position: relative;
top: 45%;
}
/* Plot bands and polar pane backgrounds */
.highcharts-plot-band, .highcharts-pane {
fill: #404048;
fill-opacity: 0.05;
}
.highcharts-plot-line {
fill: none;
stroke: #999999;
stroke-width: 1px;
}
/* Highcharts More and modules */
.highcharts-boxplot-box {
fill: #ffffff;
}
.highcharts-boxplot-median {
stroke-width: 2px;
}
.highcharts-bubble-series .highcharts-point {
fill-opacity: 0.5;
}
.highcharts-errorbar-series .highcharts-point {
stroke: #404048;
}
.highcharts-gauge-series .highcharts-data-label-box {
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-gauge-series .highcharts-dial {
fill: #404048;
stroke-width: 0;
}
.highcharts-polygon-series .highcharts-graph {
fill: inherit;
stroke-width: 0;
}
.highcharts-waterfall-series .highcharts-graph {
stroke: #000;
stroke-dasharray: 1, 3;
}
.highcharts-sankey-series .highcharts-point {
stroke-width: 0;
}
.highcharts-sankey-series .highcharts-link {
transition: fill 250ms, fill-opacity 250ms;
fill-opacity: 0.5;
}
.highcharts-sankey-series .highcharts-point-hover.highcharts-link {
transition: fill 50ms, fill-opacity 50ms;
fill-opacity: 1;
}
.highcharts-venn-series .highcharts-point {
fill-opacity: 0.75;
stroke: #cccccc;
transition: stroke 250ms, fill-opacity 250ms;
}
.highcharts-venn-series .highcharts-point-hover {
fill-opacity: 1;
stroke: #cccccc;
}
/* Highstock */
.highcharts-navigator-mask-outside {
fill-opacity: 0;
}
.highcharts-navigator-mask-inside {
fill: #6685c2;
/* navigator.maskFill option */
fill-opacity: 0.25;
cursor: ew-resize;
}
.highcharts-navigator-outline {
stroke: #cccccc;
fill: none;
}
.highcharts-navigator-handle {
stroke: #cccccc;
fill: #f2f2f2;
cursor: ew-resize;
}
.highcharts-navigator-series {
fill: #335cad;
stroke: #335cad;
}
.highcharts-navigator-series .highcharts-graph {
stroke-width: 1px;
}
.highcharts-navigator-series .highcharts-area {
fill-opacity: 0.05;
}
.highcharts-navigator-xaxis .highcharts-axis-line {
stroke-width: 0;
}
.highcharts-navigator-xaxis .highcharts-grid-line {
stroke-width: 1px;
stroke: #e6e6e6;
}
.highcharts-navigator-xaxis.highcharts-axis-labels {
fill: #999999;
}
.highcharts-navigator-yaxis .highcharts-grid-line {
stroke-width: 0;
}
.highcharts-scrollbar-thumb {
fill: #cccccc;
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-scrollbar-button {
fill: #e6e6e6;
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-scrollbar-arrow {
fill: #666666;
}
.highcharts-scrollbar-rifles {
stroke: #666666;
stroke-width: 1px;
}
.highcharts-scrollbar-track {
fill: #f2f2f2;
stroke: #f2f2f2;
stroke-width: 1px;
}
.highcharts-button {
fill: #f7f7f7;
stroke: #cccccc;
cursor: default;
stroke-width: 1px;
transition: fill 250ms;
}
.highcharts-button text {
fill: #000;
}
.highcharts-button-hover {
transition: fill 0ms;
fill: #e6e6e6;
stroke: #cccccc;
}
.highcharts-button-hover text {
fill: #000;
}
.highcharts-button-pressed {
font-weight: bold;
fill: #e6ebf5;
stroke: #cccccc;
}
.highcharts-button-pressed text {
fill: #000;
font-weight: bold;
}
.highcharts-button-disabled text {
fill: #000;
}
.highcharts-range-selector-buttons .highcharts-button {
stroke-width: 0px;
}
.highcharts-range-label rect {
fill: none;
}
.highcharts-range-label text {
fill: #666666;
}
.highcharts-range-input rect {
fill: none;
}
.highcharts-range-input text {
fill: #000;
}
.highcharts-range-input {
stroke-width: 1px;
stroke: #cccccc;
}
input.highcharts-range-selector {
position: absolute;
border: 0;
width: 1px;
/* Chrome needs a pixel to see it */
height: 1px;
padding: 0;
text-align: center;
left: -9em;
/* #4798 */
}
.highcharts-crosshair-label text {
fill: #ffffff;
font-size: 1.1em;
}
.highcharts-crosshair-label .highcharts-label-box {
fill: inherit;
}
.highcharts-candlestick-series .highcharts-point {
stroke: #404048;
stroke-width: 1px;
}
.highcharts-candlestick-series .highcharts-point-up {
fill: #ffffff;
}
.highcharts-ohlc-series .highcharts-point-hover {
stroke-width: 3px;
}
.highcharts-flags-series .highcharts-point .highcharts-label-box {
stroke: #999999;
fill: #ffffff;
transition: fill 250ms;
}
.highcharts-flags-series .highcharts-point-hover .highcharts-label-box {
stroke: #404048;
fill: #ccd6eb;
}
.highcharts-flags-series .highcharts-point text {
fill: #404048;
font-size: 0.9em;
font-weight: bold;
}
/* Highmaps */
.highcharts-map-series .highcharts-point {
transition: fill 500ms, fill-opacity 500ms, stroke-width 250ms;
stroke: #cccccc;
}
.highcharts-map-series .highcharts-point-hover {
transition: fill 0ms, fill-opacity 0ms;
fill-opacity: 0.5;
stroke-width: 2px;
}
.highcharts-mapline-series .highcharts-point {
fill: none;
}
.highcharts-heatmap-series .highcharts-point {
stroke-width: 0;
}
.highcharts-map-navigation {
font-size: 1.3em;
font-weight: bold;
text-align: center;
}
.highcharts-coloraxis {
stroke-width: 0;
}
.highcharts-coloraxis-marker {
fill: #999999;
}
.highcharts-null-point {
fill: #f7f7f7;
}
/* 3d charts */
.highcharts-3d-frame {
fill: transparent;
}
/* Exporting module */
.highcharts-contextbutton {
fill: #ffffff;
/* needed to capture hover */
stroke: none;
stroke-linecap: round;
}
.highcharts-contextbutton:hover {
fill: #e6e6e6;
stroke: #e6e6e6;
}
.highcharts-button-symbol {
stroke: #666666;
stroke-width: 3px;
}
.highcharts-menu {
border: 1px solid #999999;
background: #ffffff;
padding: 5px 0;
box-shadow: 3px 3px 10px #888;
}
.highcharts-menu-item {
padding: 0.5em 1em;
background: none;
color: #000;
cursor: pointer;
transition: background 250ms, color 250ms;
}
.highcharts-menu-item:hover {
background: #335cad;
color: #ffffff;
}
/* Drilldown module */
.highcharts-drilldown-point {
cursor: pointer;
}
.highcharts-drilldown-data-label text,
text.highcharts-drilldown-data-label,
.highcharts-drilldown-axis-label {
cursor: pointer;
fill: #003399;
font-weight: bold;
text-decoration: underline;
}
/* No-data module */
.highcharts-no-data text {
font-weight: bold;
font-size: 12px;
fill: #666666;
}
/* Drag-panes module */
.highcharts-axis-resizer {
cursor: ns-resize;
stroke: black;
stroke-width: 2px;
}
/* Bullet type series */
.highcharts-bullet-target {
stroke-width: 0;
}
/* Lineargauge type series */
.highcharts-lineargauge-target {
stroke-width: 1px;
stroke: #000;
}
.highcharts-lineargauge-target-line {
stroke-width: 1px;
stroke: #000;
}
/* Annotations module */
.highcharts-annotation-label-box {
stroke-width: 1px;
stroke: #404048;
fill: #404048;
fill-opacity: 0.75;
}
.highcharts-annotation-label text {
fill: #e6e6e6;
}
/* Gantt */
.highcharts-treegrid-node-collapsed, .highcharts-treegrid-node-expanded {
cursor: pointer;
}
.highcharts-point-connecting-path {
fill: none;
}
.highcharts-grid-axis .highcharts-tick {
stroke-width: 1px;
}
.highcharts-grid-axis .highcharts-axis-line {
stroke-width: 1px;
}
@@ -0,0 +1,940 @@
/**
* @license Highcharts
*
* (c) 2009-2016 Torstein Honsi
*
* License: www.highcharts.com/license
*/
.highcharts-container {
position: relative;
overflow: hidden;
width: 100%;
height: 100%;
text-align: left;
line-height: normal;
z-index: 0;
/* #1072 */
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif;
font-size: 12px;
}
.highcharts-root {
display: block;
}
.highcharts-root text {
stroke-width: 0px;
fill: #ffffff !important;
}
.highcharts-strong {
font-weight: bold;
}
.highcharts-emphasized {
font-style: italic;
}
.highcharts-anchor {
cursor: pointer;
}
.highcharts-background {
fill: rgba(255, 255, 255, 0);
}
.highcharts-plot-border, .highcharts-plot-background {
fill: none;
}
.highcharts-label-box {
fill: none;
}
.highcharts-button-box {
fill: inherit;
}
.highcharts-tracker-line {
stroke-linejoin: round;
stroke: rgba(192, 192, 192, 0.0001);
stroke-width: 22;
fill: none;
}
.highcharts-tracker-area {
fill: rgba(192, 192, 192, 0.0001);
stroke-width: 0;
}
/* Titles */
.highcharts-title {
fill: #ffffff ;
font-size: 1.5em;
}
.highcharts-subtitle {
fill: #ffffff ;
}
/* Axes */
.highcharts-axis-line {
fill: none;
stroke: #ccd6eb;
}
.highcharts-yaxis .highcharts-axis-line {
stroke-width: 0;
}
.highcharts-axis-title {
fill: #ffffff ;
}
.highcharts-axis-labels {
fill: #ffffff ;
cursor: default;
font-size: 0.9em;
}
.highcharts-grid-line {
fill: none;
stroke: rgba(255, 255, 255, 0.14);
}
.highcharts-xaxis-grid .highcharts-grid-line {
stroke-width: 0px;
}
.highcharts-tick {
stroke: #ccd6eb;
}
.highcharts-yaxis .highcharts-tick {
stroke-width: 0;
}
.highcharts-minor-grid-line {
stroke: rgba(255, 255, 255, 0.14);
}
.highcharts-crosshair-thin {
stroke-width: 1px;
stroke: #cccccc;
}
.highcharts-crosshair-category {
stroke: #ccd6eb;
stroke-opacity: 0.25;
}
/* Credits */
.highcharts-credits {
cursor: pointer;
fill: #ffffff ;
font-size: 0.7em;
transition: fill 250ms, font-size 250ms;
}
.highcharts-credits:hover {
fill: black;
font-size: 1em;
}
/* Tooltip */
.highcharts-tooltip {
cursor: default;
pointer-events: none;
white-space: nowrap;
transition: stroke 150ms;
}
.highcharts-tooltip text {
fill: #333333;
}
.highcharts-tooltip .highcharts-header {
font-size: 0.85em;
}
.highcharts-tooltip-box {
stroke-width: 1px;
fill: #000;
fill-opacity: 0.85;
}
.highcharts-tooltip-box .highcharts-label-box {
fill: #000;
fill-opacity: 0.85;
}
div.highcharts-tooltip {
filter: none;
}
.highcharts-selection-marker {
fill: #335cad;
fill-opacity: 0.25;
}
.highcharts-graph {
fill: none;
stroke-width: 2px;
stroke-linecap: round;
stroke-linejoin: round;
}
.highcharts-state-hover .highcharts-graph {
stroke-width: 3;
}
.highcharts-point-inactive {
opacity: 0.2;
transition: opacity 50ms;
/* quick in */
}
.highcharts-series-inactive {
opacity: 0.2;
transition: opacity 50ms;
/* quick in */
}
.highcharts-state-hover path {
transition: stroke-width 50ms;
/* quick in */
}
.highcharts-state-normal path {
transition: stroke-width 250ms;
/* slow out */
}
/* Legend hover affects points and series */
g.highcharts-series,
.highcharts-point,
.highcharts-markers,
.highcharts-data-labels {
transition: opacity 250ms;
}
.highcharts-legend-series-active g.highcharts-series:not(.highcharts-series-hover),
.highcharts-legend-point-active .highcharts-point:not(.highcharts-point-hover),
.highcharts-legend-series-active .highcharts-markers:not(.highcharts-series-hover),
.highcharts-legend-series-active .highcharts-data-labels:not(.highcharts-series-hover) {
opacity: 0.2;
}
/* Series options */
/* Default colors */
.highcharts-color-0 {
fill: rgb(255, 255, 255);
stroke: rgb(255, 255, 255);
}
.highcharts-color-1 {
fill: rgba(255, 255, 255, 0.8);
stroke: rgba(255, 255, 255, 0.8);
}
.highcharts-color-2 {
fill: rgba(255, 255, 255, 0.65);
stroke: rgba(255, 255, 255, 0.65);
}
.highcharts-color-3 {
fill: rgba(255, 255, 255, 0.50);
stroke: rgba(255, 255, 255, 0.50);
}
.highcharts-color-4 {
fill: rgba(255, 255, 255, 0.35);
stroke: rgba(255, 255, 255, 0.35);
}
.highcharts-color-5 {
fill: rgba(255, 255, 255, 0.30);
stroke: rgba(255, 255, 255, 0.30);
}
.highcharts-color-6 {
fill: rgba(255, 255, 255, 0.20);
stroke: rgba(255, 255, 255, 0.20);
}
.highcharts-color-7 {
fill: rgba(255, 255, 255, 0.15);
stroke: rgba(255, 255, 255, 0.15);
}
.highcharts-color-8 {
fill: rgba(255, 255, 255, 0.10);
stroke: rgba(255, 255, 255, 0.10);
}
.highcharts-color-9 {
fill: rgba(255, 255, 255, 0.07);
stroke: rgba(255, 255, 255, 0.07);
}
.highcharts-area {
fill-opacity: 0.75;
stroke-width: 0;
fill: rgba(255, 255, 255, 0.8);
}
.highcharts-markers {
stroke-width: 1px;
stroke: #ffffff;
}
.highcharts-point {
stroke-width: 1px;
}
.highcharts-dense-data .highcharts-point {
stroke-width: 0;
}
.highcharts-data-label {
font-size: 0.9em;
font-weight: bold;
}
.highcharts-data-label-box {
fill: none;
stroke-width: 0;
}
.highcharts-data-label text, text.highcharts-data-label {
fill: #ffffff;
}
.highcharts-data-label-connector {
fill: none;
}
.highcharts-data-label-hidden {
pointer-events: none;
}
.highcharts-halo {
fill-opacity: 0.25;
stroke-width: 0;
}
.highcharts-series:not(.highcharts-pie-series) .highcharts-point-select,
.highcharts-markers .highcharts-point-select {
fill: #cccccc;
stroke: #000000;
}
.highcharts-column-series rect.highcharts-point {
stroke: #ffffff;
}
.highcharts-column-series .highcharts-point {
transition: fill-opacity 250ms;
}
.highcharts-column-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-pie-series .highcharts-point {
stroke-linejoin: round;
stroke: #ffffff;
}
.highcharts-pie-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-funnel-series .highcharts-point {
stroke-linejoin: round;
stroke: #ffffff;
}
.highcharts-funnel-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-funnel-series .highcharts-point-select {
fill: inherit;
stroke: inherit;
}
.highcharts-pyramid-series .highcharts-point {
stroke-linejoin: round;
stroke: #ffffff;
}
.highcharts-pyramid-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-pyramid-series .highcharts-point-select {
fill: inherit;
stroke: inherit;
}
.highcharts-solidgauge-series .highcharts-point {
stroke-width: 0;
}
.highcharts-treemap-series .highcharts-point {
stroke-width: 1px;
stroke: #e6e6e6;
transition: stroke 250ms, fill 250ms, fill-opacity 250ms;
}
.highcharts-treemap-series .highcharts-point-hover {
stroke: #999999;
transition: stroke 25ms, fill 25ms, fill-opacity 25ms;
}
.highcharts-treemap-series .highcharts-above-level {
display: none;
}
.highcharts-treemap-series .highcharts-internal-node {
fill: none;
}
.highcharts-treemap-series .highcharts-internal-node-interactive {
fill-opacity: 0.15;
cursor: pointer;
}
.highcharts-treemap-series .highcharts-internal-node-interactive:hover {
fill-opacity: 0.75;
}
.highcharts-vector-series .highcharts-point {
fill: none;
stroke-width: 2px;
}
.highcharts-windbarb-series .highcharts-point {
fill: none;
stroke-width: 2px;
}
.highcharts-lollipop-stem {
stroke: #000000;
}
.highcharts-focus-border {
fill: none;
stroke-width: 2px;
}
.highcharts-legend-item-hidden .highcharts-focus-border {
fill: none !important;
}
/* Legend */
.highcharts-legend-box {
fill: none;
stroke-width: 0;
}
.highcharts-legend-item > text {
fill: #333333;
font-weight: bold;
font-size: 1em;
cursor: pointer;
stroke-width: 0;
}
.highcharts-legend-item:hover text {
fill: #000000;
}
.highcharts-legend-item-hidden * {
fill: #cccccc !important;
stroke: #cccccc !important;
transition: fill 250ms;
}
.highcharts-legend-nav-active {
fill: #003399;
cursor: pointer;
}
.highcharts-legend-nav-inactive {
fill: #cccccc;
}
circle.highcharts-legend-nav-active, circle.highcharts-legend-nav-inactive {
/* tracker */
fill: rgba(192, 192, 192, 0.0001);
}
.highcharts-legend-title-box {
fill: none;
stroke-width: 0;
}
/* Bubble legend */
.highcharts-bubble-legend-symbol {
stroke-width: 2;
fill-opacity: 0.5;
}
.highcharts-bubble-legend-connectors {
stroke-width: 1;
}
.highcharts-bubble-legend-labels {
fill: #333333;
}
/* Loading */
.highcharts-loading {
position: absolute;
background-color: #ffffff;
opacity: 0.5;
text-align: center;
z-index: 10;
transition: opacity 250ms;
}
.highcharts-loading-hidden {
height: 0 !important;
opacity: 0;
overflow: hidden;
transition: opacity 250ms, height 250ms step-end;
}
.highcharts-loading-inner {
font-weight: bold;
position: relative;
top: 45%;
}
/* Plot bands and polar pane backgrounds */
.highcharts-plot-band, .highcharts-pane {
fill: #000000;
fill-opacity: 0.05;
}
.highcharts-plot-line {
fill: none;
stroke: #999999;
stroke-width: 1px;
}
/* Highcharts More and modules */
.highcharts-boxplot-box {
fill: #ffffff;
}
.highcharts-boxplot-median {
stroke-width: 2px;
}
.highcharts-bubble-series .highcharts-point {
fill-opacity: 0.5;
}
.highcharts-errorbar-series .highcharts-point {
stroke: #000000;
}
.highcharts-gauge-series .highcharts-data-label-box {
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-gauge-series .highcharts-dial {
fill: #000000;
stroke-width: 0;
}
.highcharts-polygon-series .highcharts-graph {
fill: inherit;
stroke-width: 0;
}
.highcharts-waterfall-series .highcharts-graph {
stroke: #333333;
stroke-dasharray: 1, 3;
}
.highcharts-sankey-series .highcharts-point {
stroke-width: 0;
}
.highcharts-sankey-series .highcharts-link {
transition: fill 250ms, fill-opacity 250ms;
fill-opacity: 0.5;
}
.highcharts-sankey-series .highcharts-point-hover.highcharts-link {
transition: fill 50ms, fill-opacity 50ms;
fill-opacity: 1;
}
.highcharts-venn-series .highcharts-point {
fill-opacity: 0.75;
stroke: #cccccc;
transition: stroke 250ms, fill-opacity 250ms;
}
.highcharts-venn-series .highcharts-point-hover {
fill-opacity: 1;
stroke: #cccccc;
}
/* Highstock */
.highcharts-navigator-mask-outside {
fill-opacity: 0;
}
.highcharts-navigator-mask-inside {
fill: #6685c2;
/* navigator.maskFill option */
fill-opacity: 0.25;
cursor: ew-resize;
}
.highcharts-navigator-outline {
stroke: #cccccc;
fill: none;
}
.highcharts-navigator-handle {
stroke: #cccccc;
fill: #f2f2f2;
cursor: ew-resize;
}
.highcharts-navigator-series {
fill: #335cad;
stroke: #335cad;
}
.highcharts-navigator-series .highcharts-graph {
stroke-width: 1px;
}
.highcharts-navigator-series .highcharts-area {
fill-opacity: 0.05;
}
.highcharts-navigator-xaxis .highcharts-axis-line {
stroke-width: 0;
}
.highcharts-navigator-xaxis .highcharts-grid-line {
stroke-width: 1px;
stroke: #e6e6e6;
}
.highcharts-navigator-xaxis.highcharts-axis-labels {
fill: #999999;
}
.highcharts-navigator-yaxis .highcharts-grid-line {
stroke-width: 0;
}
.highcharts-scrollbar-thumb {
fill: #cccccc;
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-scrollbar-button {
fill: #e6e6e6;
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-scrollbar-arrow {
fill: #666666;
}
.highcharts-scrollbar-rifles {
stroke: #666666;
stroke-width: 1px;
}
.highcharts-scrollbar-track {
fill: #f2f2f2;
stroke: #f2f2f2;
stroke-width: 1px;
}
.highcharts-button {
fill: #f7f7f7;
stroke: #cccccc;
cursor: default;
stroke-width: 1px;
transition: fill 250ms;
}
.highcharts-button text {
fill: #333333;
}
.highcharts-button-hover {
transition: fill 0ms;
fill: #e6e6e6;
stroke: #cccccc;
}
.highcharts-button-hover text {
fill: #333333;
}
.highcharts-button-pressed {
font-weight: bold;
fill: #e6ebf5;
stroke: #cccccc;
}
.highcharts-button-pressed text {
fill: #333333;
font-weight: bold;
}
.highcharts-button-disabled text {
fill: #333333;
}
.highcharts-range-selector-buttons .highcharts-button {
stroke-width: 0px;
}
.highcharts-range-label rect {
fill: none;
}
.highcharts-range-label text {
fill: #666666;
}
.highcharts-range-input rect {
fill: none;
}
.highcharts-range-input text {
fill: #333333;
}
.highcharts-range-input {
stroke-width: 1px;
stroke: #cccccc;
}
input.highcharts-range-selector {
position: absolute;
border: 0;
width: 1px;
/* Chrome needs a pixel to see it */
height: 1px;
padding: 0;
text-align: center;
left: -9em;
/* #4798 */
}
.highcharts-crosshair-label text {
fill: #ffffff;
font-size: 1.1em;
}
.highcharts-crosshair-label .highcharts-label-box {
fill: inherit;
}
.highcharts-candlestick-series .highcharts-point {
stroke: #000000;
stroke-width: 1px;
}
.highcharts-candlestick-series .highcharts-point-up {
fill: #ffffff;
}
.highcharts-ohlc-series .highcharts-point-hover {
stroke-width: 3px;
}
.highcharts-flags-series .highcharts-point .highcharts-label-box {
stroke: #999999;
fill: #ffffff;
transition: fill 250ms;
}
.highcharts-flags-series .highcharts-point-hover .highcharts-label-box {
stroke: #000000;
fill: #ccd6eb;
}
.highcharts-flags-series .highcharts-point text {
fill: #000000;
font-size: 0.9em;
font-weight: bold;
}
/* Highmaps */
.highcharts-map-series .highcharts-point {
transition: fill 500ms, fill-opacity 500ms, stroke-width 250ms;
stroke: #cccccc;
}
.highcharts-map-series .highcharts-point-hover {
transition: fill 0ms, fill-opacity 0ms;
fill-opacity: 0.5;
stroke-width: 2px;
}
.highcharts-mapline-series .highcharts-point {
fill: none;
}
.highcharts-heatmap-series .highcharts-point {
stroke-width: 0;
}
.highcharts-map-navigation {
font-size: 1.3em;
font-weight: bold;
text-align: center;
}
.highcharts-coloraxis {
stroke-width: 0;
}
.highcharts-coloraxis-marker {
fill: #999999;
}
.highcharts-null-point {
fill: #f7f7f7;
}
/* 3d charts */
.highcharts-3d-frame {
fill: transparent;
}
/* Exporting module */
.highcharts-contextbutton {
fill: #ffffff;
/* needed to capture hover */
stroke: none;
stroke-linecap: round;
}
.highcharts-contextbutton:hover {
fill: #e6e6e6;
stroke: #e6e6e6;
}
.highcharts-button-symbol {
stroke: #666666;
stroke-width: 3px;
}
.highcharts-menu {
border: 1px solid #999999;
background: #ffffff;
padding: 5px 0;
box-shadow: 3px 3px 10px #888;
}
.highcharts-menu-item {
padding: 0.5em 1em;
background: none;
color: #333333;
cursor: pointer;
transition: background 250ms, color 250ms;
}
.highcharts-menu-item:hover {
background: #335cad;
color: #ffffff;
}
/* Drilldown module */
.highcharts-drilldown-point {
cursor: pointer;
}
.highcharts-drilldown-data-label text,
text.highcharts-drilldown-data-label,
.highcharts-drilldown-axis-label {
cursor: pointer;
fill: #003399;
font-weight: bold;
text-decoration: underline;
}
/* No-data module */
.highcharts-no-data text {
font-weight: bold;
font-size: 12px;
fill: #666666;
}
/* Drag-panes module */
.highcharts-axis-resizer {
cursor: ns-resize;
stroke: black;
stroke-width: 2px;
}
/* Bullet type series */
.highcharts-bullet-target {
stroke-width: 0;
}
/* Lineargauge type series */
.highcharts-lineargauge-target {
stroke-width: 1px;
stroke: #333333;
}
.highcharts-lineargauge-target-line {
stroke-width: 1px;
stroke: #333333;
}
/* Annotations module */
.highcharts-annotation-label-box {
stroke-width: 1px;
stroke: #000000;
fill: #000000;
fill-opacity: 0.75;
}
.highcharts-annotation-label text {
fill: #e6e6e6;
}
/* Gantt */
.highcharts-treegrid-node-collapsed, .highcharts-treegrid-node-expanded {
cursor: pointer;
}
.highcharts-point-connecting-path {
fill: none;
}
.highcharts-grid-axis .highcharts-tick {
stroke-width: 1px;
}
.highcharts-grid-axis .highcharts-axis-line {
stroke-width: 1px;
}
@@ -0,0 +1,938 @@
/**
* @license Highcharts
*
* (c) 2009-2016 Torstein Honsi
*
* License: www.highcharts.com/license
*/
.highcharts-container {
position: relative;
overflow: hidden;
width: 100%;
height: 100%;
text-align: left;
line-height: normal;
z-index: 0;
/* #1072 */
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif;
font-size: 12px;
}
.highcharts-root {
display: block;
}
.highcharts-root text {
stroke-width: 0;
}
.highcharts-strong {
font-weight: bold;
}
.highcharts-emphasized {
font-style: italic;
}
.highcharts-anchor {
cursor: pointer;
}
.highcharts-background {
fill: #ffffff;
}
.highcharts-plot-border, .highcharts-plot-background {
fill: none;
}
.highcharts-label-box {
fill: none;
}
.highcharts-button-box {
fill: inherit;
}
.highcharts-tracker-line {
stroke-linejoin: round;
stroke: rgba(192, 192, 192, 0.0001);
stroke-width: 22;
fill: none;
}
.highcharts-tracker-area {
fill: rgba(192, 192, 192, 0.0001);
stroke-width: 0;
}
/* Titles */
.highcharts-title {
fill: #333333;
font-size: 1.5em;
}
.highcharts-subtitle {
fill: #666666;
}
/* Axes */
.highcharts-axis-line {
fill: none;
stroke: #ccd6eb;
}
.highcharts-yaxis .highcharts-axis-line {
stroke-width: 0;
}
.highcharts-axis-title {
fill: #666666;
}
.highcharts-axis-labels {
fill: #666666;
cursor: default;
font-size: 0.9em;
}
.highcharts-grid-line {
fill: none;
stroke: #e6e6e6;
}
.highcharts-xaxis-grid .highcharts-grid-line {
stroke-width: 0px;
}
.highcharts-tick {
stroke: #ccd6eb;
}
.highcharts-yaxis .highcharts-tick {
stroke-width: 0;
}
.highcharts-minor-grid-line {
stroke: #f2f2f2;
}
.highcharts-crosshair-thin {
stroke-width: 1px;
stroke: #cccccc;
}
.highcharts-crosshair-category {
stroke: #ccd6eb;
stroke-opacity: 0.25;
}
/* Credits */
.highcharts-credits {
cursor: pointer;
fill: #999999;
font-size: 0.7em;
transition: fill 250ms, font-size 250ms;
}
.highcharts-credits:hover {
fill: black;
font-size: 1em;
}
/* Tooltip */
.highcharts-tooltip {
cursor: default;
pointer-events: none;
white-space: nowrap;
transition: stroke 150ms;
}
.highcharts-tooltip text {
fill: #333333;
}
.highcharts-tooltip .highcharts-header {
font-size: 0.85em;
}
.highcharts-tooltip-box {
stroke-width: 1px;
fill: #f7f7f7;
fill-opacity: 0.85;
}
.highcharts-tooltip-box .highcharts-label-box {
fill: #f7f7f7;
fill-opacity: 0.85;
}
div.highcharts-tooltip {
filter: none;
}
.highcharts-selection-marker {
fill: #335cad;
fill-opacity: 0.25;
}
.highcharts-graph {
fill: none;
stroke-width: 2px;
stroke-linecap: round;
stroke-linejoin: round;
}
.highcharts-state-hover .highcharts-graph {
stroke-width: 3;
}
.highcharts-point-inactive {
opacity: 0.2;
transition: opacity 50ms;
/* quick in */
}
.highcharts-series-inactive {
opacity: 0.2;
transition: opacity 50ms;
/* quick in */
}
.highcharts-state-hover path {
transition: stroke-width 50ms;
/* quick in */
}
.highcharts-state-normal path {
transition: stroke-width 250ms;
/* slow out */
}
/* Legend hover affects points and series */
g.highcharts-series,
.highcharts-point,
.highcharts-markers,
.highcharts-data-labels {
transition: opacity 250ms;
}
.highcharts-legend-series-active g.highcharts-series:not(.highcharts-series-hover),
.highcharts-legend-point-active .highcharts-point:not(.highcharts-point-hover),
.highcharts-legend-series-active .highcharts-markers:not(.highcharts-series-hover),
.highcharts-legend-series-active .highcharts-data-labels:not(.highcharts-series-hover) {
opacity: 0.2;
}
/* Series options */
/* Default colors */
.highcharts-color-0 {
fill: #0d6efd;
stroke: #0d6efd;
}
.highcharts-color-1 {
fill: #f41127;
stroke: #f41127;
}
.highcharts-color-2 {
fill: #ffc107;
stroke: #ffc107;
}
.highcharts-color-3 {
fill: #17a00e;
stroke: #17a00e;
}
.highcharts-color-4 {
fill: #212529;
stroke: #212529;
}
.highcharts-color-5 {
fill: #0dcaf0;
stroke: #0dcaf0;
}
.highcharts-color-6 {
fill: #607d8b;
stroke: #607d8b;
}
.highcharts-color-7 {
fill: #ee14e0;
stroke: #ee14e0;
}
.highcharts-color-8 {
fill: #01dec9;
stroke: #01dec9;
}
.highcharts-color-9 {
fill: rgba(255, 255, 255, 0.07);
stroke: rgba(255, 255, 255, 0.07);
}
.highcharts-area {
fill-opacity: 0.75;
stroke-width: 0;
}
.highcharts-markers {
stroke-width: 1px;
stroke: #ffffff;
}
.highcharts-point {
stroke-width: 1px;
}
.highcharts-dense-data .highcharts-point {
stroke-width: 0;
}
.highcharts-data-label {
font-size: 0.9em;
font-weight: bold;
}
.highcharts-data-label-box {
fill: none;
stroke-width: 0;
}
.highcharts-data-label text, text.highcharts-data-label {
fill: #333333;
}
.highcharts-data-label-connector {
fill: none;
}
.highcharts-data-label-hidden {
pointer-events: none;
}
.highcharts-halo {
fill-opacity: 0.25;
stroke-width: 0;
}
.highcharts-series:not(.highcharts-pie-series) .highcharts-point-select,
.highcharts-markers .highcharts-point-select {
fill: #cccccc;
stroke: #000000;
}
.highcharts-column-series rect.highcharts-point {
stroke: #ffffff;
}
.highcharts-column-series .highcharts-point {
transition: fill-opacity 250ms;
}
.highcharts-column-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-pie-series .highcharts-point {
stroke-linejoin: round;
stroke: #ffffff;
}
.highcharts-pie-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-funnel-series .highcharts-point {
stroke-linejoin: round;
stroke: #ffffff;
}
.highcharts-funnel-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-funnel-series .highcharts-point-select {
fill: inherit;
stroke: inherit;
}
.highcharts-pyramid-series .highcharts-point {
stroke-linejoin: round;
stroke: #ffffff;
}
.highcharts-pyramid-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-pyramid-series .highcharts-point-select {
fill: inherit;
stroke: inherit;
}
.highcharts-solidgauge-series .highcharts-point {
stroke-width: 0;
}
.highcharts-treemap-series .highcharts-point {
stroke-width: 1px;
stroke: #e6e6e6;
transition: stroke 250ms, fill 250ms, fill-opacity 250ms;
}
.highcharts-treemap-series .highcharts-point-hover {
stroke: #999999;
transition: stroke 25ms, fill 25ms, fill-opacity 25ms;
}
.highcharts-treemap-series .highcharts-above-level {
display: none;
}
.highcharts-treemap-series .highcharts-internal-node {
fill: none;
}
.highcharts-treemap-series .highcharts-internal-node-interactive {
fill-opacity: 0.15;
cursor: pointer;
}
.highcharts-treemap-series .highcharts-internal-node-interactive:hover {
fill-opacity: 0.75;
}
.highcharts-vector-series .highcharts-point {
fill: none;
stroke-width: 2px;
}
.highcharts-windbarb-series .highcharts-point {
fill: none;
stroke-width: 2px;
}
.highcharts-lollipop-stem {
stroke: #000000;
}
.highcharts-focus-border {
fill: none;
stroke-width: 2px;
}
.highcharts-legend-item-hidden .highcharts-focus-border {
fill: none !important;
}
/* Legend */
.highcharts-legend-box {
fill: none;
stroke-width: 0;
}
.highcharts-legend-item > text {
fill: #333333;
font-weight: bold;
font-size: 1em;
cursor: pointer;
stroke-width: 0;
}
.highcharts-legend-item:hover text {
fill: #000000;
}
.highcharts-legend-item-hidden * {
fill: #cccccc !important;
stroke: #cccccc !important;
transition: fill 250ms;
}
.highcharts-legend-nav-active {
fill: #003399;
cursor: pointer;
}
.highcharts-legend-nav-inactive {
fill: #cccccc;
}
circle.highcharts-legend-nav-active, circle.highcharts-legend-nav-inactive {
/* tracker */
fill: rgba(192, 192, 192, 0.0001);
}
.highcharts-legend-title-box {
fill: none;
stroke-width: 0;
}
/* Bubble legend */
.highcharts-bubble-legend-symbol {
stroke-width: 2;
fill-opacity: 0.5;
}
.highcharts-bubble-legend-connectors {
stroke-width: 1;
}
.highcharts-bubble-legend-labels {
fill: #333333;
}
/* Loading */
.highcharts-loading {
position: absolute;
background-color: #ffffff;
opacity: 0.5;
text-align: center;
z-index: 10;
transition: opacity 250ms;
}
.highcharts-loading-hidden {
height: 0 !important;
opacity: 0;
overflow: hidden;
transition: opacity 250ms, height 250ms step-end;
}
.highcharts-loading-inner {
font-weight: bold;
position: relative;
top: 45%;
}
/* Plot bands and polar pane backgrounds */
.highcharts-plot-band, .highcharts-pane {
fill: #000000;
fill-opacity: 0.05;
}
.highcharts-plot-line {
fill: none;
stroke: #999999;
stroke-width: 1px;
}
/* Highcharts More and modules */
.highcharts-boxplot-box {
fill: #ffffff;
}
.highcharts-boxplot-median {
stroke-width: 2px;
}
.highcharts-bubble-series .highcharts-point {
fill-opacity: 0.5;
}
.highcharts-errorbar-series .highcharts-point {
stroke: #000000;
}
.highcharts-gauge-series .highcharts-data-label-box {
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-gauge-series .highcharts-dial {
fill: #000000;
stroke-width: 0;
}
.highcharts-polygon-series .highcharts-graph {
fill: inherit;
stroke-width: 0;
}
.highcharts-waterfall-series .highcharts-graph {
stroke: #333333;
stroke-dasharray: 1, 3;
}
.highcharts-sankey-series .highcharts-point {
stroke-width: 0;
}
.highcharts-sankey-series .highcharts-link {
transition: fill 250ms, fill-opacity 250ms;
fill-opacity: 0.5;
}
.highcharts-sankey-series .highcharts-point-hover.highcharts-link {
transition: fill 50ms, fill-opacity 50ms;
fill-opacity: 1;
}
.highcharts-venn-series .highcharts-point {
fill-opacity: 0.75;
stroke: #cccccc;
transition: stroke 250ms, fill-opacity 250ms;
}
.highcharts-venn-series .highcharts-point-hover {
fill-opacity: 1;
stroke: #cccccc;
}
/* Highstock */
.highcharts-navigator-mask-outside {
fill-opacity: 0;
}
.highcharts-navigator-mask-inside {
fill: #6685c2;
/* navigator.maskFill option */
fill-opacity: 0.25;
cursor: ew-resize;
}
.highcharts-navigator-outline {
stroke: #cccccc;
fill: none;
}
.highcharts-navigator-handle {
stroke: #cccccc;
fill: #f2f2f2;
cursor: ew-resize;
}
.highcharts-navigator-series {
fill: #335cad;
stroke: #335cad;
}
.highcharts-navigator-series .highcharts-graph {
stroke-width: 1px;
}
.highcharts-navigator-series .highcharts-area {
fill-opacity: 0.05;
}
.highcharts-navigator-xaxis .highcharts-axis-line {
stroke-width: 0;
}
.highcharts-navigator-xaxis .highcharts-grid-line {
stroke-width: 1px;
stroke: #e6e6e6;
}
.highcharts-navigator-xaxis.highcharts-axis-labels {
fill: #999999;
}
.highcharts-navigator-yaxis .highcharts-grid-line {
stroke-width: 0;
}
.highcharts-scrollbar-thumb {
fill: #cccccc;
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-scrollbar-button {
fill: #e6e6e6;
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-scrollbar-arrow {
fill: #666666;
}
.highcharts-scrollbar-rifles {
stroke: #666666;
stroke-width: 1px;
}
.highcharts-scrollbar-track {
fill: #f2f2f2;
stroke: #f2f2f2;
stroke-width: 1px;
}
.highcharts-button {
fill: #f7f7f7;
stroke: #cccccc;
cursor: default;
stroke-width: 1px;
transition: fill 250ms;
}
.highcharts-button text {
fill: #333333;
}
.highcharts-button-hover {
transition: fill 0ms;
fill: #e6e6e6;
stroke: #cccccc;
}
.highcharts-button-hover text {
fill: #333333;
}
.highcharts-button-pressed {
font-weight: bold;
fill: #e6ebf5;
stroke: #cccccc;
}
.highcharts-button-pressed text {
fill: #333333;
font-weight: bold;
}
.highcharts-button-disabled text {
fill: #333333;
}
.highcharts-range-selector-buttons .highcharts-button {
stroke-width: 0px;
}
.highcharts-range-label rect {
fill: none;
}
.highcharts-range-label text {
fill: #666666;
}
.highcharts-range-input rect {
fill: none;
}
.highcharts-range-input text {
fill: #333333;
}
.highcharts-range-input {
stroke-width: 1px;
stroke: #cccccc;
}
input.highcharts-range-selector {
position: absolute;
border: 0;
width: 1px;
/* Chrome needs a pixel to see it */
height: 1px;
padding: 0;
text-align: center;
left: -9em;
/* #4798 */
}
.highcharts-crosshair-label text {
fill: #ffffff;
font-size: 1.1em;
}
.highcharts-crosshair-label .highcharts-label-box {
fill: inherit;
}
.highcharts-candlestick-series .highcharts-point {
stroke: #000000;
stroke-width: 1px;
}
.highcharts-candlestick-series .highcharts-point-up {
fill: #ffffff;
}
.highcharts-ohlc-series .highcharts-point-hover {
stroke-width: 3px;
}
.highcharts-flags-series .highcharts-point .highcharts-label-box {
stroke: #999999;
fill: #ffffff;
transition: fill 250ms;
}
.highcharts-flags-series .highcharts-point-hover .highcharts-label-box {
stroke: #000000;
fill: #ccd6eb;
}
.highcharts-flags-series .highcharts-point text {
fill: #000000;
font-size: 0.9em;
font-weight: bold;
}
/* Highmaps */
.highcharts-map-series .highcharts-point {
transition: fill 500ms, fill-opacity 500ms, stroke-width 250ms;
stroke: #cccccc;
}
.highcharts-map-series .highcharts-point-hover {
transition: fill 0ms, fill-opacity 0ms;
fill-opacity: 0.5;
stroke-width: 2px;
}
.highcharts-mapline-series .highcharts-point {
fill: none;
}
.highcharts-heatmap-series .highcharts-point {
stroke-width: 0;
}
.highcharts-map-navigation {
font-size: 1.3em;
font-weight: bold;
text-align: center;
}
.highcharts-coloraxis {
stroke-width: 0;
}
.highcharts-coloraxis-marker {
fill: #999999;
}
.highcharts-null-point {
fill: #f7f7f7;
}
/* 3d charts */
.highcharts-3d-frame {
fill: transparent;
}
/* Exporting module */
.highcharts-contextbutton {
fill: #ffffff;
/* needed to capture hover */
stroke: none;
stroke-linecap: round;
}
.highcharts-contextbutton:hover {
fill: #e6e6e6;
stroke: #e6e6e6;
}
.highcharts-button-symbol {
stroke: #666666;
stroke-width: 3px;
}
.highcharts-menu {
border: 1px solid #999999;
background: #ffffff;
padding: 5px 0;
box-shadow: 3px 3px 10px #888;
}
.highcharts-menu-item {
padding: 0.5em 1em;
background: none;
color: #333333;
cursor: pointer;
transition: background 250ms, color 250ms;
}
.highcharts-menu-item:hover {
background: #335cad;
color: #ffffff;
}
/* Drilldown module */
.highcharts-drilldown-point {
cursor: pointer;
}
.highcharts-drilldown-data-label text,
text.highcharts-drilldown-data-label,
.highcharts-drilldown-axis-label {
cursor: pointer;
fill: #003399;
font-weight: bold;
text-decoration: underline;
}
/* No-data module */
.highcharts-no-data text {
font-weight: bold;
font-size: 12px;
fill: #666666;
}
/* Drag-panes module */
.highcharts-axis-resizer {
cursor: ns-resize;
stroke: black;
stroke-width: 2px;
}
/* Bullet type series */
.highcharts-bullet-target {
stroke-width: 0;
}
/* Lineargauge type series */
.highcharts-lineargauge-target {
stroke-width: 1px;
stroke: #333333;
}
.highcharts-lineargauge-target-line {
stroke-width: 1px;
stroke: #333333;
}
/* Annotations module */
.highcharts-annotation-label-box {
stroke-width: 1px;
stroke: #000000;
fill: #000000;
fill-opacity: 0.75;
}
.highcharts-annotation-label text {
fill: #e6e6e6;
}
/* Gantt */
.highcharts-treegrid-node-collapsed, .highcharts-treegrid-node-expanded {
cursor: pointer;
}
.highcharts-point-connecting-path {
fill: none;
}
.highcharts-grid-axis .highcharts-tick {
stroke-width: 1px;
}
.highcharts-grid-axis .highcharts-axis-line {
stroke-width: 1px;
}
@@ -0,0 +1,968 @@
@import 'https://fonts.googleapis.com/css?family=Signika:400,700';
.highcharts-container {
background: url(https://www.highcharts.com/samples/graphics/sand.png);
}
.highcharts-boxplot-box {
fill: #505053;
}
.highcharts-navigator-xaxis .highcharts-grid-line {
stroke: #D0D0D8;
}
.highcharts-scrollbar-track {
stroke: #C0C0C8;
}
.highcharts-title {
font-weight: bold;
}
.highcharts-button-box {
stroke-width: 1px;
}
/**
* @license Highcharts
*
* (c) 2009-2016 Torstein Honsi
*
* License: www.highcharts.com/license
*/
.highcharts-container {
position: relative;
overflow: hidden;
width: 100%;
height: 100%;
text-align: left;
line-height: normal;
z-index: 0;
/* #1072 */
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
font-family: "Signika", Arial, Helvetica, sans-serif;
font-size: 12px;
}
.highcharts-root {
display: block;
}
.highcharts-root text {
stroke-width: 0;
}
.highcharts-strong {
font-weight: bold;
}
.highcharts-emphasized {
font-style: italic;
}
.highcharts-anchor {
cursor: pointer;
}
.highcharts-background {
fill: none;
}
.highcharts-plot-border, .highcharts-plot-background {
fill: none;
}
.highcharts-label-box {
fill: none;
}
.highcharts-button-box {
fill: inherit;
}
.highcharts-tracker-line {
stroke-linejoin: round;
stroke: rgba(192, 192, 192, 0.0001);
stroke-width: 22;
fill: none;
}
.highcharts-tracker-area {
fill: rgba(192, 192, 192, 0.0001);
stroke-width: 0;
}
/* Titles */
.highcharts-title {
fill: #000;
font-size: 16px;
}
.highcharts-subtitle {
fill: #666666;
}
/* Axes */
.highcharts-axis-line {
fill: none;
stroke: #ccd6eb;
}
.highcharts-yaxis .highcharts-axis-line {
stroke-width: 0;
}
.highcharts-axis-title {
fill: #666666;
}
.highcharts-axis-labels {
fill: #666666;
cursor: default;
font-size: 12px;
}
.highcharts-grid-line {
fill: none;
stroke: #e6e6e6;
}
.highcharts-xaxis-grid .highcharts-grid-line {
stroke-width: 0px;
}
.highcharts-tick {
stroke: #ccd6eb;
}
.highcharts-yaxis .highcharts-tick {
stroke-width: 0;
}
.highcharts-minor-grid-line {
stroke: #f2f2f2;
}
.highcharts-crosshair-thin {
stroke-width: 1px;
stroke: #cccccc;
}
.highcharts-crosshair-category {
stroke: #ccd6eb;
stroke-opacity: 0.25;
}
/* Credits */
.highcharts-credits {
cursor: pointer;
fill: #999999;
font-size: 0.7em;
transition: fill 250ms, font-size 250ms;
}
.highcharts-credits:hover {
fill: black;
font-size: 1em;
}
/* Tooltip */
.highcharts-tooltip {
cursor: default;
pointer-events: none;
white-space: nowrap;
transition: stroke 150ms;
}
.highcharts-tooltip text {
fill: #000;
}
.highcharts-tooltip .highcharts-header {
font-size: 0.85em;
}
.highcharts-tooltip-box {
stroke-width: 0px;
fill: #fff;
fill-opacity: 0.85;
}
.highcharts-tooltip-box .highcharts-label-box {
fill: #fff;
fill-opacity: 0.85;
}
div.highcharts-tooltip {
filter: none;
}
.highcharts-selection-marker {
fill: #335cad;
fill-opacity: 0.25;
}
.highcharts-graph {
fill: none;
stroke-width: 2px;
stroke-linecap: round;
stroke-linejoin: round;
}
.highcharts-state-hover .highcharts-graph {
stroke-width: 3;
}
.highcharts-point-inactive {
opacity: 0.2;
transition: opacity 50ms;
/* quick in */
}
.highcharts-series-inactive {
opacity: 0.2;
transition: opacity 50ms;
/* quick in */
}
.highcharts-state-hover path {
transition: stroke-width 50ms;
/* quick in */
}
.highcharts-state-normal path {
transition: stroke-width 250ms;
/* slow out */
}
/* Legend hover affects points and series */
g.highcharts-series,
.highcharts-point,
.highcharts-markers,
.highcharts-data-labels {
transition: opacity 250ms;
}
.highcharts-legend-series-active g.highcharts-series:not(.highcharts-series-hover),
.highcharts-legend-point-active .highcharts-point:not(.highcharts-point-hover),
.highcharts-legend-series-active .highcharts-markers:not(.highcharts-series-hover),
.highcharts-legend-series-active .highcharts-data-labels:not(.highcharts-series-hover) {
opacity: 0.2;
}
/* Series options */
/* Default colors */
.highcharts-color-0 {
fill: #f45b5b;
stroke: #f45b5b;
}
.highcharts-color-1 {
fill: #8085e9;
stroke: #8085e9;
}
.highcharts-color-2 {
fill: #8d4654;
stroke: #8d4654;
}
.highcharts-color-3 {
fill: #7798BF;
stroke: #7798BF;
}
.highcharts-color-4 {
fill: #aaeeee;
stroke: #aaeeee;
}
.highcharts-color-5 {
fill: #ff0066;
stroke: #ff0066;
}
.highcharts-color-6 {
fill: #eeaaee;
stroke: #eeaaee;
}
.highcharts-color-7 {
fill: #55BF3B;
stroke: #55BF3B;
}
.highcharts-color-8 {
fill: #DF5353;
stroke: #DF5353;
}
.highcharts-color-9 {
fill: #7798BF;
stroke: #7798BF;
}
.highcharts-color-10 {
fill: #aaeeee;
stroke: #aaeeee;
}
.highcharts-area {
fill-opacity: 0.75;
stroke-width: 0;
}
.highcharts-markers {
stroke-width: 1px;
stroke: none;
}
.highcharts-point {
stroke-width: 1px;
}
.highcharts-dense-data .highcharts-point {
stroke-width: 0;
}
.highcharts-data-label {
font-size: 0.9em;
font-weight: bold;
}
.highcharts-data-label-box {
fill: none;
stroke-width: 0;
}
.highcharts-data-label text, text.highcharts-data-label {
fill: #000;
}
.highcharts-data-label-connector {
fill: none;
}
.highcharts-data-label-hidden {
pointer-events: none;
}
.highcharts-halo {
fill-opacity: 0.25;
stroke-width: 0;
}
.highcharts-series:not(.highcharts-pie-series) .highcharts-point-select,
.highcharts-markers .highcharts-point-select {
fill: #cccccc;
stroke: #fff;
}
.highcharts-column-series rect.highcharts-point {
stroke: none;
}
.highcharts-column-series .highcharts-point {
transition: fill-opacity 250ms;
}
.highcharts-column-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-pie-series .highcharts-point {
stroke-linejoin: round;
stroke: none;
}
.highcharts-pie-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-funnel-series .highcharts-point {
stroke-linejoin: round;
stroke: none;
}
.highcharts-funnel-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-funnel-series .highcharts-point-select {
fill: inherit;
stroke: inherit;
}
.highcharts-pyramid-series .highcharts-point {
stroke-linejoin: round;
stroke: none;
}
.highcharts-pyramid-series .highcharts-point-hover {
fill-opacity: 0.75;
transition: fill-opacity 50ms;
}
.highcharts-pyramid-series .highcharts-point-select {
fill: inherit;
stroke: inherit;
}
.highcharts-solidgauge-series .highcharts-point {
stroke-width: 0;
}
.highcharts-treemap-series .highcharts-point {
stroke-width: 1px;
stroke: #e6e6e6;
transition: stroke 250ms, fill 250ms, fill-opacity 250ms;
}
.highcharts-treemap-series .highcharts-point-hover {
stroke: #999999;
transition: stroke 25ms, fill 25ms, fill-opacity 25ms;
}
.highcharts-treemap-series .highcharts-above-level {
display: none;
}
.highcharts-treemap-series .highcharts-internal-node {
fill: none;
}
.highcharts-treemap-series .highcharts-internal-node-interactive {
fill-opacity: 0.15;
cursor: pointer;
}
.highcharts-treemap-series .highcharts-internal-node-interactive:hover {
fill-opacity: 0.75;
}
.highcharts-vector-series .highcharts-point {
fill: none;
stroke-width: 2px;
}
.highcharts-windbarb-series .highcharts-point {
fill: none;
stroke-width: 2px;
}
.highcharts-lollipop-stem {
stroke: #fff;
}
.highcharts-focus-border {
fill: none;
stroke-width: 2px;
}
.highcharts-legend-item-hidden .highcharts-focus-border {
fill: none !important;
}
/* Legend */
.highcharts-legend-box {
fill: none;
stroke-width: 0;
}
.highcharts-legend-item > text {
fill: #000;
font-weight: bold;
font-size: 13px;
cursor: pointer;
stroke-width: 0;
}
.highcharts-legend-item:hover text {
fill: #fff;
}
.highcharts-legend-item-hidden * {
fill: #cccccc !important;
stroke: #cccccc !important;
transition: fill 250ms;
}
.highcharts-legend-nav-active {
fill: #003399;
cursor: pointer;
}
.highcharts-legend-nav-inactive {
fill: #cccccc;
}
circle.highcharts-legend-nav-active, circle.highcharts-legend-nav-inactive {
/* tracker */
fill: rgba(192, 192, 192, 0.0001);
}
.highcharts-legend-title-box {
fill: none;
stroke-width: 0;
}
/* Bubble legend */
.highcharts-bubble-legend-symbol {
stroke-width: 2;
fill-opacity: 0.5;
}
.highcharts-bubble-legend-connectors {
stroke-width: 1;
}
.highcharts-bubble-legend-labels {
fill: #000;
}
/* Loading */
.highcharts-loading {
position: absolute;
background-color: none;
opacity: 0.5;
text-align: center;
z-index: 10;
transition: opacity 250ms;
}
.highcharts-loading-hidden {
height: 0 !important;
opacity: 0;
overflow: hidden;
transition: opacity 250ms, height 250ms step-end;
}
.highcharts-loading-inner {
font-weight: bold;
position: relative;
top: 45%;
}
/* Plot bands and polar pane backgrounds */
.highcharts-plot-band, .highcharts-pane {
fill: #fff;
fill-opacity: 0.05;
}
.highcharts-plot-line {
fill: none;
stroke: #999999;
stroke-width: 1px;
}
/* Highcharts More and modules */
.highcharts-boxplot-box {
fill: none;
}
.highcharts-boxplot-median {
stroke-width: 2px;
}
.highcharts-bubble-series .highcharts-point {
fill-opacity: 0.5;
}
.highcharts-errorbar-series .highcharts-point {
stroke: #fff;
}
.highcharts-gauge-series .highcharts-data-label-box {
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-gauge-series .highcharts-dial {
fill: #fff;
stroke-width: 0;
}
.highcharts-polygon-series .highcharts-graph {
fill: inherit;
stroke-width: 0;
}
.highcharts-waterfall-series .highcharts-graph {
stroke: #000;
stroke-dasharray: 1, 3;
}
.highcharts-sankey-series .highcharts-point {
stroke-width: 0;
}
.highcharts-sankey-series .highcharts-link {
transition: fill 250ms, fill-opacity 250ms;
fill-opacity: 0.5;
}
.highcharts-sankey-series .highcharts-point-hover.highcharts-link {
transition: fill 50ms, fill-opacity 50ms;
fill-opacity: 1;
}
.highcharts-venn-series .highcharts-point {
fill-opacity: 0.75;
stroke: #cccccc;
transition: stroke 250ms, fill-opacity 250ms;
}
.highcharts-venn-series .highcharts-point-hover {
fill-opacity: 1;
stroke: #cccccc;
}
/* Highstock */
.highcharts-navigator-mask-outside {
fill-opacity: 0;
}
.highcharts-navigator-mask-inside {
fill: #6685c2;
/* navigator.maskFill option */
fill-opacity: 0.25;
cursor: ew-resize;
}
.highcharts-navigator-outline {
stroke: #cccccc;
fill: none;
}
.highcharts-navigator-handle {
stroke: #cccccc;
fill: #f2f2f2;
cursor: ew-resize;
}
.highcharts-navigator-series {
fill: #f45b5b;
stroke: #f45b5b;
}
.highcharts-navigator-series .highcharts-graph {
stroke-width: 1px;
}
.highcharts-navigator-series .highcharts-area {
fill-opacity: 0.05;
}
.highcharts-navigator-xaxis .highcharts-axis-line {
stroke-width: 0;
}
.highcharts-navigator-xaxis .highcharts-grid-line {
stroke-width: 1px;
stroke: #e6e6e6;
}
.highcharts-navigator-xaxis.highcharts-axis-labels {
fill: #999999;
}
.highcharts-navigator-yaxis .highcharts-grid-line {
stroke-width: 0;
}
.highcharts-scrollbar-thumb {
fill: #cccccc;
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-scrollbar-button {
fill: #e6e6e6;
stroke: #cccccc;
stroke-width: 1px;
}
.highcharts-scrollbar-arrow {
fill: #666666;
}
.highcharts-scrollbar-rifles {
stroke: #666666;
stroke-width: 1px;
}
.highcharts-scrollbar-track {
fill: #f2f2f2;
stroke: #C0C0C8;
stroke-width: 1px;
}
.highcharts-button {
fill: #fff;
stroke: #C0C0C8;
cursor: default;
stroke-width: 1px;
transition: fill 250ms;
}
.highcharts-button text {
fill: #000;
}
.highcharts-button-hover {
transition: fill 0ms;
fill: #e6e6e6;
stroke: #cccccc;
}
.highcharts-button-hover text {
fill: #000;
}
.highcharts-button-pressed {
font-weight: bold;
fill: #D0D0D8;
stroke: #cccccc;
}
.highcharts-button-pressed text {
fill: #000;
font-weight: bold;
}
.highcharts-button-disabled text {
fill: #000;
}
.highcharts-range-selector-buttons .highcharts-button {
stroke-width: 0px;
}
.highcharts-range-label rect {
fill: none;
}
.highcharts-range-label text {
fill: #666666;
}
.highcharts-range-input rect {
fill: none;
}
.highcharts-range-input text {
fill: #000;
}
.highcharts-range-input {
stroke-width: 1px;
stroke: #cccccc;
}
input.highcharts-range-selector {
position: absolute;
border: 0;
width: 1px;
/* Chrome needs a pixel to see it */
height: 1px;
padding: 0;
text-align: center;
left: -9em;
/* #4798 */
}
.highcharts-crosshair-label text {
fill: none;
font-size: 1.1em;
}
.highcharts-crosshair-label .highcharts-label-box {
fill: inherit;
}
.highcharts-candlestick-series .highcharts-point {
stroke: #fff;
stroke-width: 1px;
}
.highcharts-candlestick-series .highcharts-point-up {
fill: none;
}
.highcharts-ohlc-series .highcharts-point-hover {
stroke-width: 3px;
}
.highcharts-flags-series .highcharts-point .highcharts-label-box {
stroke: #999999;
fill: none;
transition: fill 250ms;
}
.highcharts-flags-series .highcharts-point-hover .highcharts-label-box {
stroke: #fff;
fill: #ccd6eb;
}
.highcharts-flags-series .highcharts-point text {
fill: #fff;
font-size: 0.9em;
font-weight: bold;
}
/* Highmaps */
.highcharts-map-series .highcharts-point {
transition: fill 500ms, fill-opacity 500ms, stroke-width 250ms;
stroke: #cccccc;
}
.highcharts-map-series .highcharts-point-hover {
transition: fill 0ms, fill-opacity 0ms;
fill-opacity: 0.5;
stroke-width: 2px;
}
.highcharts-mapline-series .highcharts-point {
fill: none;
}
.highcharts-heatmap-series .highcharts-point {
stroke-width: 0;
}
.highcharts-map-navigation {
font-size: 1.3em;
font-weight: bold;
text-align: center;
}
.highcharts-coloraxis {
stroke-width: 0;
}
.highcharts-coloraxis-marker {
fill: #999999;
}
.highcharts-null-point {
fill: #f7f7f7;
}
/* 3d charts */
.highcharts-3d-frame {
fill: transparent;
}
/* Exporting module */
.highcharts-contextbutton {
fill: #fff;
/* needed to capture hover */
stroke: none;
stroke-linecap: round;
}
.highcharts-contextbutton:hover {
fill: #e6e6e6;
stroke: #e6e6e6;
}
.highcharts-button-symbol {
stroke: #666666;
stroke-width: 3px;
}
.highcharts-menu {
border: 1px solid #999999;
background: none;
padding: 5px 0;
box-shadow: 3px 3px 10px #888;
}
.highcharts-menu-item {
padding: 0.5em 1em;
background: none;
color: #000;
cursor: pointer;
transition: background 250ms, color 250ms;
}
.highcharts-menu-item:hover {
background: #335cad;
color: none;
}
/* Drilldown module */
.highcharts-drilldown-point {
cursor: pointer;
}
.highcharts-drilldown-data-label text,
text.highcharts-drilldown-data-label,
.highcharts-drilldown-axis-label {
cursor: pointer;
fill: #003399;
font-weight: bold;
text-decoration: underline;
}
/* No-data module */
.highcharts-no-data text {
font-weight: bold;
font-size: 12px;
fill: #666666;
}
/* Drag-panes module */
.highcharts-axis-resizer {
cursor: ns-resize;
stroke: black;
stroke-width: 2px;
}
/* Bullet type series */
.highcharts-bullet-target {
stroke-width: 0;
}
/* Lineargauge type series */
.highcharts-lineargauge-target {
stroke-width: 1px;
stroke: #000;
}
.highcharts-lineargauge-target-line {
stroke-width: 1px;
stroke: #000;
}
/* Annotations module */
.highcharts-annotation-label-box {
stroke-width: 1px;
stroke: #fff;
fill: #fff;
fill-opacity: 0.75;
}
.highcharts-annotation-label text {
fill: #e6e6e6;
}
/* Gantt */
.highcharts-treegrid-node-collapsed, .highcharts-treegrid-node-expanded {
cursor: pointer;
}
.highcharts-point-connecting-path {
fill: none;
}
.highcharts-grid-axis .highcharts-tick {
stroke-width: 1px;
}
.highcharts-grid-axis .highcharts-axis-line {
stroke-width: 1px;
}
@@ -0,0 +1,180 @@
/*
Highcharts JS v8.2.0 (2020-08-20)
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(r){a(r);a.Highcharts=r;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function r(a,h,q,n){a.hasOwnProperty(h)||(a[h]=n.apply(null,q))}a=a?a._modules:{};r(a,"Accessibility/Utils/HTMLUtilities.js",[a["Core/Utilities.js"],a["Core/Globals.js"]],function(a,h){function m(a){return a.replace(/&/g,
"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")}var n=a.merge,p=h.win,l=p.document;return{addClass:function(a,l){a.classList?a.classList.add(l):0>a.className.indexOf(l)&&(a.className+=l)},escapeStringForHTML:m,getElement:function(a){return l.getElementById(a)},getFakeMouseEvent:function(a){if("function"===typeof p.MouseEvent)return new p.MouseEvent(a);if(l.createEvent){var g=l.createEvent("MouseEvent");if(g.initMouseEvent)return g.initMouseEvent(a,
!0,!0,p,"click"===a?1:0,0,0,0,0,!1,!1,!1,!1,0,null),g}return{type:a}},removeElement:function(a){a&&a.parentNode&&a.parentNode.removeChild(a)},reverseChildNodes:function(a){for(var l=a.childNodes.length;l--;)a.appendChild(a.childNodes[l])},setElAttrs:function(a,l){Object.keys(l).forEach(function(k){var e=l[k];null===e?a.removeAttribute(k):(e=m(""+e),a.setAttribute(k,e))})},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",whiteSpace:"nowrap",clip:"rect(1px, 1px, 1px, 1px)",marginTop:"-3px","-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=1)",filter:"alpha(opacity=1)",opacity:"0.01"})}}});r(a,"Accessibility/Utils/ChartUtilities.js",[a["Accessibility/Utils/HTMLUtilities.js"],a["Core/Utilities.js"]],function(a,h){function m(e){if(e.points&&e.points.length&&e.points[0].graphic)return e.points[0].graphic.element}function n(e){var d=m(e);
return d&&d.parentNode||e.graph&&e.graph.element||e.group&&e.group.element}function p(e,d){d.setAttribute("aria-hidden",!1);d!==e.renderTo&&d.parentNode&&(Array.prototype.forEach.call(d.parentNode.childNodes,function(b){b.hasAttribute("aria-hidden")||b.setAttribute("aria-hidden",!0)}),p(e,d.parentNode))}var l=a.stripHTMLTagsFromString,g=h.defined,x=h.find,k=h.fireEvent;return{getChartTitle:function(e){return l(e.options.title.text||e.langFormat("accessibility.defaultChartTitle",{chart:e}))},getAxisDescription:function(e){return l(e&&
(e.userOptions&&e.userOptions.accessibility&&e.userOptions.accessibility.description||e.axisTitle&&e.axisTitle.textStr||e.options.id||e.categories&&"categories"||e.dateTime&&"Time"||"values"))},getPointFromXY:function(e,d,b){for(var f=e.length,c;f--;)if(c=x(e[f].points||[],function(c){return c.x===d&&c.y===b}))return c},getSeriesFirstPointElement:m,getSeriesFromName:function(e,d){return d?(e.series||[]).filter(function(b){return b.name===d}):e.series},getSeriesA11yElement:n,unhideChartElementFromAT:p,
hideSeriesFromAT:function(e){(e=n(e))&&e.setAttribute("aria-hidden",!0)},scrollToPoint:function(e){var d=e.series.xAxis,b=e.series.yAxis,f=(null===d||void 0===d?0:d.scrollbar)?d:b;if((d=null===f||void 0===f?void 0:f.scrollbar)&&g(d.to)&&g(d.from)){b=d.to-d.from;if(g(f.dataMin)&&g(f.dataMax)){var c=f.toPixels(f.dataMin),w=f.toPixels(f.dataMax);e=(f.toPixels(e["xAxis"===f.coll?"x":"y"]||0)-c)/(w-c)}else e=0;d.updatePosition(e-b/2,e+b/2);k(d,"changed",{from:d.from,to:d.to,trigger:"scrollbar",DOMEvent:null})}}}});
r(a,"Accessibility/KeyboardNavigationHandler.js",[a["Core/Utilities.js"]],function(a){function m(a,m){this.chart=a;this.keyCodeMap=m.keyCodeMap||[];this.validate=m.validate;this.init=m.init;this.terminate=m.terminate;this.response={success:1,prev:2,next:3,noHandler:4,fail:5}}var q=a.find;m.prototype={run:function(a){var m=a.which||a.keyCode,l=this.response.noHandler,g=q(this.keyCodeMap,function(a){return-1<a[0].indexOf(m)});g?l=g[1].call(this,m,a):9===m&&(l=this.response[a.shiftKey?"prev":"next"]);
return l}};return m});r(a,"Accessibility/Utils/EventProvider.js",[a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,h){var m=h.addEvent;h=h.extend;var n=function(){this.eventRemovers=[]};h(n.prototype,{addEvent:function(){var h=m.apply(a,arguments);this.eventRemovers.push(h);return h},removeAddedEvents:function(){this.eventRemovers.forEach(function(a){a()});this.eventRemovers=[]}});return n});r(a,"Accessibility/Utils/DOMElementProvider.js",[a["Core/Globals.js"],a["Core/Utilities.js"],a["Accessibility/Utils/HTMLUtilities.js"]],
function(a,h,q){var m=a.win.document;a=h.extend;var p=q.removeElement;q=function(){this.elements=[]};a(q.prototype,{createElement:function(){var a=m.createElement.apply(m,arguments);this.elements.push(a);return a},destroyCreatedElements:function(){this.elements.forEach(function(a){p(a)});this.elements=[]}});return q});r(a,"Accessibility/AccessibilityComponent.js",[a["Core/Globals.js"],a["Core/Utilities.js"],a["Accessibility/Utils/HTMLUtilities.js"],a["Accessibility/Utils/ChartUtilities.js"],a["Accessibility/Utils/EventProvider.js"],
a["Accessibility/Utils/DOMElementProvider.js"]],function(a,h,q,n,p,l){function g(){}var m=a.win,k=m.document;a=h.extend;var e=h.fireEvent,d=h.merge,b=q.removeElement,f=q.getFakeMouseEvent,c=n.unhideChartElementFromAT;g.prototype={initBase:function(b){this.chart=b;this.eventProvider=new p;this.domElementProvider=new l;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(b,c){var d=c.type;k.createEvent&&(b.dispatchEvent||b.fireEvent)?b.dispatchEvent?b.dispatchEvent(c):b.fireEvent(d,c):e(b,d,c)},fakeClickEvent:function(b){if(b){var c=f("click");this.fireEventOnWrappedOrUnwrappedElement(b,c)}},addProxyGroup:function(b){this.createOrUpdateProxyContainer();var c=this.createElement("div");Object.keys(b||{}).forEach(function(d){null!==b[d]&&c.setAttribute(d,b[d])});this.chart.a11yProxyContainer.appendChild(c);return c},
createOrUpdateProxyContainer:function(){var b=this.chart,c=b.renderer.box;b.a11yProxyContainer=b.a11yProxyContainer||this.createProxyContainerElement();c.nextSibling!==b.a11yProxyContainer&&b.container.insertBefore(b.a11yProxyContainer,c.nextSibling)},createProxyContainerElement:function(){var b=k.createElement("div");b.className="highcharts-a11y-proxy-container";return b},createProxyButton:function(b,f,a,e,k){var w=b.element,t=this.createElement("button"),l=d({"aria-label":w.getAttribute("aria-label")},
a);Object.keys(l).forEach(function(b){null!==l[b]&&t.setAttribute(b,l[b])});t.className="highcharts-a11y-proxy-button";k&&this.addEvent(t,"click",k);this.setProxyButtonStyle(t);this.updateProxyButtonPosition(t,e||b);this.proxyMouseEventsForButton(w,t);f.appendChild(t);l["aria-hidden"]||c(this.chart,t);return t},getElementPosition:function(b){var c=b.element;return(b=this.chart.renderTo)&&c&&c.getBoundingClientRect?(c=c.getBoundingClientRect(),b=b.getBoundingClientRect(),{x:c.left-b.left,y:c.top-b.top,
width:c.right-c.left,height:c.bottom-c.top}):{x:0,y:0,width:1,height:1}},setProxyButtonStyle:function(b){d(!0,b.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"})},updateProxyButtonPosition:function(b,c){c=this.getElementPosition(c);d(!0,b.style,{width:(c.width||1)+"px",height:(c.height||
1)+"px",left:(c.x||0)+"px",top:(c.y||0)+"px"})},proxyMouseEventsForButton:function(b,c){var d=this;"click touchstart touchend touchcancel touchmove mouseover mouseenter mouseleave mouseout".split(" ").forEach(function(f){var a=0===f.indexOf("touch");d.addEvent(c,f,function(c){var f=a?d.cloneTouchEvent(c):d.cloneMouseEvent(c);b&&d.fireEventOnWrappedOrUnwrappedElement(b,f);c.stopPropagation();c.preventDefault()})})},cloneMouseEvent:function(b){if("function"===typeof m.MouseEvent)return new m.MouseEvent(b.type,
b);if(k.createEvent){var c=k.createEvent("MouseEvent");if(c.initMouseEvent)return c.initMouseEvent(b.type,b.bubbles,b.cancelable,b.view||m,b.detail,b.screenX,b.screenY,b.clientX,b.clientY,b.ctrlKey,b.altKey,b.shiftKey,b.metaKey,b.button,b.relatedTarget),c}return f(b.type)},cloneTouchEvent:function(b){var c=function(b){for(var c=[],d=0;d<b.length;++d){var f=b.item(d);f&&c.push(f)}return c};if("function"===typeof m.TouchEvent)return c=new m.TouchEvent(b.type,{touches:c(b.touches),targetTouches:c(b.targetTouches),
changedTouches:c(b.changedTouches),ctrlKey:b.ctrlKey,shiftKey:b.shiftKey,altKey:b.altKey,metaKey:b.metaKey,bubbles:b.bubbles,cancelable:b.cancelable,composed:b.composed,detail:b.detail,view:b.view}),b.defaultPrevented&&c.preventDefault(),c;c=this.cloneMouseEvent(b);c.touches=b.touches;c.changedTouches=b.changedTouches;c.targetTouches=b.targetTouches;return c},destroyBase:function(){b(this.chart.a11yProxyContainer);this.domElementProvider.destroyCreatedElements();this.eventProvider.removeAddedEvents()}};
a(g.prototype,{init:function(){},getKeyboardNavigation:function(){},onChartUpdate:function(){},onChartRender:function(){},destroy:function(){}});return g});r(a,"Accessibility/KeyboardNavigation.js",[a["Core/Globals.js"],a["Core/Utilities.js"],a["Accessibility/Utils/HTMLUtilities.js"],a["Accessibility/Utils/EventProvider.js"]],function(a,h,q,n){function m(d,b){this.init(d,b)}var l=a.doc,g=a.win,x=h.addEvent,k=h.fireEvent,e=q.getElement;x(l,"keydown",function(d){27===(d.which||d.keyCode)&&a.charts&&
a.charts.forEach(function(b){b&&b.dismissPopupContent&&b.dismissPopupContent()})});a.Chart.prototype.dismissPopupContent=function(){var d=this;k(this,"dismissPopupContent",{},function(){d.tooltip&&d.tooltip.hide(0);d.hideExportMenu()})};m.prototype={init:function(d,b){var f=this,c=this.eventProvider=new n;this.chart=d;this.components=b;this.modules=[];this.currentModuleIx=0;this.update();c.addEvent(this.tabindexContainer,"keydown",function(b){return f.onKeydown(b)});c.addEvent(this.tabindexContainer,
"focus",function(b){return f.onFocus(b)});c.addEvent(l,"mouseup",function(){return f.onMouseUp()});c.addEvent(d.renderTo,"mousedown",function(){f.isClickingChart=!0});c.addEvent(d.renderTo,"mouseover",function(){f.pointerIsOverChart=!0});c.addEvent(d.renderTo,"mouseout",function(){f.pointerIsOverChart=!1});this.modules.length&&this.modules[0].init(1)},update:function(d){var b=this.chart.options.accessibility;b=b&&b.keyboardNavigation;var f=this.components;this.updateContainerTabindex();b&&b.enabled&&
d&&d.length?(this.modules=d.reduce(function(b,d){d=f[d].getKeyboardNavigation();return b.concat(d)},[]),this.updateExitAnchor()):(this.modules=[],this.currentModuleIx=0,this.removeExitAnchor())},onFocus:function(d){var b,f=this.chart;d=d.relatedTarget&&f.container.contains(d.relatedTarget);this.isClickingChart||d||(null===(b=this.modules[0])||void 0===b?void 0:b.init(1))},onMouseUp:function(){delete this.isClickingChart;if(!this.keyboardReset&&!this.pointerIsOverChart){var d=this.chart,b=this.modules&&
this.modules[this.currentModuleIx||0];b&&b.terminate&&b.terminate();d.focusElement&&d.focusElement.removeFocusBorder();this.currentModuleIx=0;this.keyboardReset=!0}},onKeydown:function(d){d=d||g.event;var b,f=this.modules&&this.modules.length&&this.modules[this.currentModuleIx];this.keyboardReset=!1;if(f){var c=f.run(d);c===f.response.success?b=!0:c===f.response.prev?b=this.prev():c===f.response.next&&(b=this.next());b&&(d.preventDefault(),d.stopPropagation())}},prev:function(){return this.move(-1)},
next:function(){return this.move(1)},move:function(d){var b=this.modules&&this.modules[this.currentModuleIx];b&&b.terminate&&b.terminate(d);this.chart.focusElement&&this.chart.focusElement.removeFocusBorder();this.currentModuleIx+=d;if(b=this.modules&&this.modules[this.currentModuleIx]){if(b.validate&&!b.validate())return this.move(d);if(b.init)return b.init(d),!0}this.currentModuleIx=0;0<d?(this.exiting=!0,this.exitAnchor.focus()):this.tabindexContainer.focus();return!1},updateExitAnchor:function(){var d=
e("highcharts-end-of-chart-marker-"+this.chart.index);this.removeExitAnchor();d?(this.makeElementAnExitAnchor(d),this.exitAnchor=d):this.createExitAnchor()},updateContainerTabindex:function(){var d=this.chart.options.accessibility;d=d&&d.keyboardNavigation;d=!(d&&!1===d.enabled);var b=this.chart,f=b.container;b.renderTo.hasAttribute("tabindex")&&(f.removeAttribute("tabindex"),f=b.renderTo);this.tabindexContainer=f;var c=f.getAttribute("tabindex");d&&!c?f.setAttribute("tabindex","0"):d||b.container.removeAttribute("tabindex")},
makeElementAnExitAnchor:function(d){var b=this.tabindexContainer.getAttribute("tabindex")||0;d.setAttribute("class","highcharts-exit-anchor");d.setAttribute("tabindex",b);d.setAttribute("aria-hidden",!1);this.addExitAnchorEventsToEl(d)},createExitAnchor:function(){var d=this.chart,b=this.exitAnchor=l.createElement("div");d.renderTo.appendChild(b);this.makeElementAnExitAnchor(b)},removeExitAnchor:function(){this.exitAnchor&&this.exitAnchor.parentNode&&(this.exitAnchor.parentNode.removeChild(this.exitAnchor),
delete this.exitAnchor)},addExitAnchorEventsToEl:function(d){var b=this.chart,f=this;this.eventProvider.addEvent(d,"focus",function(c){c=c||g.event;c.relatedTarget&&b.container.contains(c.relatedTarget)||f.exiting?f.exiting=!1:(f.tabindexContainer.focus(),c.preventDefault(),f.modules&&f.modules.length&&(f.currentModuleIx=f.modules.length-1,(c=f.modules[f.currentModuleIx])&&c.validate&&!c.validate()?f.prev():c&&c.init(-1)))})},destroy:function(){this.removeExitAnchor();this.eventProvider.removeAddedEvents();
this.chart.container.removeAttribute("tabindex")}};return m});r(a,"Accessibility/Components/LegendComponent.js",[a["Core/Globals.js"],a["Core/Legend.js"],a["Core/Utilities.js"],a["Accessibility/AccessibilityComponent.js"],a["Accessibility/KeyboardNavigationHandler.js"],a["Accessibility/Utils/HTMLUtilities.js"]],function(a,h,q,n,p,l){function g(b){var c=b.legend&&b.legend.allItems,d=b.options.legend.accessibility||{};return!(!c||!c.length||b.colorAxis&&b.colorAxis.length||!1===d.enabled)}var m=q.addEvent,
k=q.extend,e=q.find,d=q.fireEvent,b=l.stripHTMLTagsFromString,f=l.removeElement;a.Chart.prototype.highlightLegendItem=function(b){var c=this.legend.allItems,a=this.highlightedLegendItemIx;if(c[b]){c[a]&&d(c[a].legendGroup.element,"mouseout");a=this.legend;var f=a.allItems[b].pageIx,e=a.currentPage;"undefined"!==typeof f&&f+1!==e&&a.scroll(1+f-e);this.setFocusToElement(c[b].legendItem,c[b].a11yProxyElement);d(c[b].legendGroup.element,"mouseover");return!0}return!1};m(h,"afterColorizeItem",function(b){var c=
b.item;this.chart.options.accessibility.enabled&&c&&c.a11yProxyElement&&c.a11yProxyElement.setAttribute("aria-pressed",b.visible?"false":"true")});a=function(){};a.prototype=new n;k(a.prototype,{init:function(){var b=this;this.proxyElementsList=[];this.recreateProxies();this.addEvent(h,"afterScroll",function(){this.chart===b.chart&&(b.updateProxiesPositions(),b.updateLegendItemProxyVisibility(),this.chart.highlightLegendItem(b.highlightedLegendItemIx))});this.addEvent(h,"afterPositionItem",function(c){this.chart===
b.chart&&this.chart.renderer&&b.updateProxyPositionForItem(c.item)})},updateLegendItemProxyVisibility:function(){var b=this.chart.legend,d=b.currentPage||1,a=b.clipHeight||0;(b.allItems||[]).forEach(function(c){var f=c.pageIx||0,e=c._legendItemPos?c._legendItemPos[1]:0,k=c.legendItem?Math.round(c.legendItem.getBBox().height):0;f=e+k-b.pages[f]>a||f!==d-1;c.a11yProxyElement&&(c.a11yProxyElement.style.visibility=f?"hidden":"visible")})},onChartRender:function(){g(this.chart)?this.updateProxiesPositions():
this.removeProxies()},updateProxiesPositions:function(){for(var b=0,d=this.proxyElementsList;b<d.length;b++){var a=d[b];this.updateProxyButtonPosition(a.element,a.posElement)}},updateProxyPositionForItem:function(b){var c=e(this.proxyElementsList,function(c){return c.item===b});c&&this.updateProxyButtonPosition(c.element,c.posElement)},recreateProxies:function(){this.removeProxies();g(this.chart)&&(this.addLegendProxyGroup(),this.proxyLegendItems(),this.updateLegendItemProxyVisibility())},removeProxies:function(){f(this.legendProxyGroup);
this.proxyElementsList=[]},addLegendProxyGroup:function(){var b=this.chart.options.accessibility,d=this.chart.langFormat("accessibility.legend.legendLabel",{});this.legendProxyGroup=this.addProxyGroup({"aria-label":d,role:"all"===b.landmarkVerbosity?"region":null})},proxyLegendItems:function(){var b=this;(this.chart.legend&&this.chart.legend.allItems||[]).forEach(function(c){c.legendItem&&c.legendItem.element&&b.proxyLegendItem(c)})},proxyLegendItem:function(c){if(c.legendItem&&c.legendGroup){var d=
this.chart.langFormat("accessibility.legend.legendItem",{chart:this.chart,itemName:b(c.name)}),a=c.legendGroup.div?c.legendItem:c.legendGroup;c.a11yProxyElement=this.createProxyButton(c.legendItem,this.legendProxyGroup,{tabindex:-1,"aria-pressed":!c.visible,"aria-label":d},a);this.proxyElementsList.push({item:c,element:c.a11yProxyElement,posElement:a})}},getKeyboardNavigation:function(){var b=this.keyCodes,d=this;return new p(this.chart,{keyCodeMap:[[[b.left,b.right,b.up,b.down],function(b){return d.onKbdArrowKey(this,
b)}],[[b.enter,b.space],function(){return d.onKbdClick(this)}]],validate:function(){return d.shouldHaveLegendNavigation()},init:function(b){return d.onKbdNavigationInit(b)}})},onKbdArrowKey:function(b,d){var c=this.keyCodes,a=b.response,f=this.chart,e=f.options.accessibility,k=f.legend.allItems.length;d=d===c.left||d===c.up?-1:1;return f.highlightLegendItem(this.highlightedLegendItemIx+d)?(this.highlightedLegendItemIx+=d,a.success):1<k&&e.keyboardNavigation.wrapAround?(b.init(d),a.success):a[0<d?
"next":"prev"]},onKbdClick:function(b){var c=this.chart.legend.allItems[this.highlightedLegendItemIx];c&&c.a11yProxyElement&&d(c.a11yProxyElement,"click");return b.response.success},shouldHaveLegendNavigation:function(){var b=this.chart,d=b.colorAxis&&b.colorAxis.length,a=(b.options.legend||{}).accessibility||{};return!!(b.legend&&b.legend.allItems&&b.legend.display&&!d&&a.enabled&&a.keyboardNavigation&&a.keyboardNavigation.enabled)},onKbdNavigationInit:function(b){var c=this.chart,d=c.legend.allItems.length-
1;b=0<b?0:d;c.highlightLegendItem(b);this.highlightedLegendItemIx=b}});return a});r(a,"Accessibility/Components/MenuComponent.js",[a["Core/Globals.js"],a["Core/Utilities.js"],a["Accessibility/AccessibilityComponent.js"],a["Accessibility/KeyboardNavigationHandler.js"],a["Accessibility/Utils/ChartUtilities.js"],a["Accessibility/Utils/HTMLUtilities.js"]],function(a,h,q,n,p,l){function g(d){return d.exportSVGElements&&d.exportSVGElements[0]}h=h.extend;var m=p.unhideChartElementFromAT,k=l.removeElement,
e=l.getFakeMouseEvent;a.Chart.prototype.showExportMenu=function(){var d=g(this);if(d&&(d=d.element,d.onclick))d.onclick(e("click"))};a.Chart.prototype.hideExportMenu=function(){var d=this.exportDivElements;d&&this.exportContextMenu&&(d.forEach(function(b){if("highcharts-menu-item"===b.className&&b.onmouseout)b.onmouseout(e("mouseout"))}),this.highlightedExportItemIx=0,this.exportContextMenu.hideMenu(),this.container.focus())};a.Chart.prototype.highlightExportItem=function(d){var b=this.exportDivElements&&
this.exportDivElements[d],a=this.exportDivElements&&this.exportDivElements[this.highlightedExportItemIx];if(b&&"LI"===b.tagName&&(!b.children||!b.children.length)){var c=!!(this.renderTo.getElementsByTagName("g")[0]||{}).focus;b.focus&&c&&b.focus();if(a&&a.onmouseout)a.onmouseout(e("mouseout"));if(b.onmouseover)b.onmouseover(e("mouseover"));this.highlightedExportItemIx=d;return!0}return!1};a.Chart.prototype.highlightLastExportItem=function(){var d;if(this.exportDivElements)for(d=this.exportDivElements.length;d--;)if(this.highlightExportItem(d))return!0;
return!1};a=function(){};a.prototype=new q;h(a.prototype,{init:function(){var d=this.chart,b=this;this.addEvent(d,"exportMenuShown",function(){b.onMenuShown()});this.addEvent(d,"exportMenuHidden",function(){b.onMenuHidden()})},onMenuHidden:function(){var d=this.chart.exportContextMenu;d&&d.setAttribute("aria-hidden","true");this.isExportMenuShown=!1;this.setExportButtonExpandedState("false")},onMenuShown:function(){var d=this.chart,b=d.exportContextMenu;b&&(this.addAccessibleContextMenuAttribs(),
m(d,b));this.isExportMenuShown=!0;this.setExportButtonExpandedState("true")},setExportButtonExpandedState:function(d){var b=this.exportButtonProxy;b&&b.setAttribute("aria-expanded",d)},onChartRender:function(){var d=this.chart,b=d.options.accessibility;k(this.exportProxyGroup);var a=d.options.exporting,c=g(d);a&&!1!==a.enabled&&a.accessibility&&a.accessibility.enabled&&c&&c.element&&(this.exportProxyGroup=this.addProxyGroup("all"===b.landmarkVerbosity?{"aria-label":d.langFormat("accessibility.exporting.exportRegionLabel",
{chart:d}),role:"region"}:{}),b=g(this.chart),this.exportButtonProxy=this.createProxyButton(b,this.exportProxyGroup,{"aria-label":d.langFormat("accessibility.exporting.menuButtonLabel",{chart:d}),"aria-expanded":"false"}))},addAccessibleContextMenuAttribs:function(){var d=this.chart,b=d.exportDivElements;b&&b.length&&(b.forEach(function(b){"LI"!==b.tagName||b.children&&b.children.length?b.setAttribute("aria-hidden","true"):b.setAttribute("tabindex",-1)}),b=b[0].parentNode,b.removeAttribute("aria-hidden"),
b.setAttribute("aria-label",d.langFormat("accessibility.exporting.chartMenuLabel",{chart:d})))},getKeyboardNavigation:function(){var d=this.keyCodes,b=this.chart,a=this;return new n(b,{keyCodeMap:[[[d.left,d.up],function(){return a.onKbdPrevious(this)}],[[d.right,d.down],function(){return a.onKbdNext(this)}],[[d.enter,d.space],function(){return a.onKbdClick(this)}]],validate:function(){return b.exportChart&&!1!==b.options.exporting.enabled&&!1!==b.options.exporting.accessibility.enabled},init:function(){var c=
a.exportButtonProxy,d=b.exportingGroup;d&&c&&b.setFocusToElement(d,c)},terminate:function(){b.hideExportMenu()}})},onKbdPrevious:function(d){var b=this.chart,a=b.options.accessibility;d=d.response;for(var c=b.highlightedExportItemIx||0;c--;)if(b.highlightExportItem(c))return d.success;return a.keyboardNavigation.wrapAround?(b.highlightLastExportItem(),d.success):d.prev},onKbdNext:function(d){var b=this.chart,a=b.options.accessibility;d=d.response;for(var c=(b.highlightedExportItemIx||0)+1;c<b.exportDivElements.length;++c)if(b.highlightExportItem(c))return d.success;
return a.keyboardNavigation.wrapAround?(b.highlightExportItem(0),d.success):d.next},onKbdClick:function(d){var b=this.chart,a=b.exportDivElements[b.highlightedExportItemIx],c=g(b).element;this.isExportMenuShown?this.fakeClickEvent(a):(this.fakeClickEvent(c),b.highlightExportItem(0));return d.response.success}});return a});r(a,"Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js",[a["Core/Chart/Chart.js"],a["Core/Globals.js"],a["Core/Series/Point.js"],a["Core/Utilities.js"],a["Accessibility/KeyboardNavigationHandler.js"],
a["Accessibility/Utils/EventProvider.js"],a["Accessibility/Utils/ChartUtilities.js"]],function(a,h,q,n,p,l,g){function m(b){var c=b.index,d=b.series.points,a=d.length;if(d[c]!==b)for(;a--;){if(d[a]===b)return a}else return c}function k(b){var c=b.chart.options.accessibility.keyboardNavigation.seriesNavigation,d=b.options.accessibility||{},a=d.keyboardNavigation;return a&&!1===a.enabled||!1===d.enabled||!1===b.options.enableMouseTracking||!b.visible||c.pointNavigationEnabledThreshold&&c.pointNavigationEnabledThreshold<=
b.points.length}function e(b){var c=b.series.chart.options.accessibility;return b.isNull&&c.keyboardNavigation.seriesNavigation.skipNullPoints||!1===b.visible||k(b.series)}function d(b,d,a,e){var f=Infinity,k=d.points.length,l=function(b){return!(c(b.plotX)&&c(b.plotY))};if(!l(b)){for(;k--;){var t=d.points[k];if(!l(t)&&(t=(b.plotX-t.plotX)*(b.plotX-t.plotX)*(a||1)+(b.plotY-t.plotY)*(b.plotY-t.plotY)*(e||1),t<f)){f=t;var g=k}}return c(g)?d.points[g]:void 0}}function b(b){var c=!1;delete b.highlightedPoint;
return c=b.series.reduce(function(b,c){return b||c.highlightFirstValidPoint()},!1)}function f(b,c){this.keyCodes=c;this.chart=b}var c=n.defined;n=n.extend;var w=g.getPointFromXY,A=g.getSeriesFromName,z=g.scrollToPoint;h.Series.prototype.keyboardMoveVertical=!0;["column","pie"].forEach(function(b){h.seriesTypes[b]&&(h.seriesTypes[b].prototype.keyboardMoveVertical=!1)});q.prototype.highlight=function(){var b=this.series.chart;if(this.isNull)b.tooltip&&b.tooltip.hide(0);else this.onMouseOver();z(this);
this.graphic&&b.setFocusToElement(this.graphic);b.highlightedPoint=this;return this};a.prototype.highlightAdjacentPoint=function(b){var c=this.series,d=this.highlightedPoint,a=d&&m(d)||0,f=d&&d.series.points,v=this.series&&this.series[this.series.length-1];v=v&&v.points&&v.points[v.points.length-1];if(!c[0]||!c[0].points)return!1;if(d){if(c=c[d.series.index+(b?1:-1)],a=f[a+(b?1:-1)],!a&&c&&(a=c.points[b?0:c.points.length-1]),!a)return!1}else a=b?c[0].points[0]:v;return e(a)?(c=a.series,k(c)?this.highlightedPoint=
b?c.points[c.points.length-1]:c.points[0]:this.highlightedPoint=a,this.highlightAdjacentPoint(b)):a.highlight()};h.Series.prototype.highlightFirstValidPoint=function(){var b=this.chart.highlightedPoint,c=(b&&b.series)===this?m(b):0;b=this.points;var d=b.length;if(b&&d){for(var a=c;a<d;++a)if(!e(b[a]))return b[a].highlight();for(;0<=c;--c)if(!e(b[c]))return b[c].highlight()}return!1};a.prototype.highlightAdjacentSeries=function(b){var c,a=this.highlightedPoint;var f=(c=this.series&&this.series[this.series.length-
1])&&c.points&&c.points[c.points.length-1];if(!this.highlightedPoint)return c=b?this.series&&this.series[0]:c,(f=b?c&&c.points&&c.points[0]:f)?f.highlight():!1;c=this.series[a.series.index+(b?-1:1)];if(!c)return!1;f=d(a,c,4);if(!f)return!1;if(k(c))return f.highlight(),b=this.highlightAdjacentSeries(b),b?b:(a.highlight(),!1);f.highlight();return f.series.highlightFirstValidPoint()};a.prototype.highlightAdjacentPointVertical=function(b){var a=this.highlightedPoint,d=Infinity,f;if(!c(a.plotX)||!c(a.plotY))return!1;
this.series.forEach(function(l){k(l)||l.points.forEach(function(k){if(c(k.plotY)&&c(k.plotX)&&k!==a){var v=k.plotY-a.plotY,g=Math.abs(k.plotX-a.plotX);g=Math.abs(v)*Math.abs(v)+g*g*4;l.yAxis&&l.yAxis.reversed&&(v*=-1);!(0>=v&&b||0<=v&&!b||5>g||e(k))&&g<d&&(d=g,f=k)}})});return f?f.highlight():!1};n(f.prototype,{init:function(){var c=this,a=this.chart,d=this.eventProvider=new l;d.addEvent(h.Series,"destroy",function(){return c.onSeriesDestroy(this)});d.addEvent(a,"afterDrilldown",function(){b(this);
this.focusElement&&this.focusElement.removeFocusBorder()});d.addEvent(a,"drilldown",function(b){b=b.point;var a=b.series;c.lastDrilledDownPoint={x:b.x,y:b.y,seriesName:a?a.name:""}});d.addEvent(a,"drillupall",function(){setTimeout(function(){c.onDrillupAll()},10)})},onDrillupAll:function(){var b=this.lastDrilledDownPoint,a=this.chart,d=b&&A(a,b.seriesName),f;b&&d&&c(b.x)&&c(b.y)&&(f=w(d,b.x,b.y));a.container&&a.container.focus();f&&f.highlight&&f.highlight();a.focusElement&&a.focusElement.removeFocusBorder()},
getKeyboardNavigationHandler:function(){var b=this,c=this.keyCodes,a=this.chart,d=a.inverted;return new p(a,{keyCodeMap:[[d?[c.up,c.down]:[c.left,c.right],function(c){return b.onKbdSideways(this,c)}],[d?[c.left,c.right]:[c.up,c.down],function(c){return b.onKbdVertical(this,c)}],[[c.enter,c.space],function(){a.highlightedPoint&&a.highlightedPoint.firePointEvent("click");return this.response.success}]],init:function(c){return b.onHandlerInit(this,c)},terminate:function(){return b.onHandlerTerminate()}})},
onKbdSideways:function(b,c){var a=this.keyCodes;return this.attemptHighlightAdjacentPoint(b,c===a.right||c===a.down)},onKbdVertical:function(b,c){var a=this.chart,d=this.keyCodes;c=c===d.down||c===d.right;d=a.options.accessibility.keyboardNavigation.seriesNavigation;if(d.mode&&"serialize"===d.mode)return this.attemptHighlightAdjacentPoint(b,c);a[a.highlightedPoint&&a.highlightedPoint.series.keyboardMoveVertical?"highlightAdjacentPointVertical":"highlightAdjacentSeries"](c);return b.response.success},
onHandlerInit:function(c,a){var d=this.chart;if(0<a)b(d);else{a=d.series.length;for(var f;a--&&!(d.highlightedPoint=d.series[a].points[d.series[a].points.length-1],f=d.series[a].highlightFirstValidPoint()););}return c.response.success},onHandlerTerminate:function(){var b,c,a=this.chart,d=a.highlightedPoint;null===(b=a.tooltip)||void 0===b?void 0:b.hide(0);null===(c=null===d||void 0===d?void 0:d.onMouseOut)||void 0===c?void 0:c.call(d);delete a.highlightedPoint},attemptHighlightAdjacentPoint:function(b,
c){var a=this.chart,d=a.options.accessibility.keyboardNavigation.wrapAround;return a.highlightAdjacentPoint(c)?b.response.success:d?b.init(c?1:-1):b.response[c?"next":"prev"]},onSeriesDestroy:function(b){var c=this.chart;c.highlightedPoint&&c.highlightedPoint.series===b&&(delete c.highlightedPoint,c.focusElement&&c.focusElement.removeFocusBorder())},destroy:function(){this.eventProvider.removeAddedEvents()}});return f});r(a,"Accessibility/Components/AnnotationsA11y.js",[a["Accessibility/Utils/HTMLUtilities.js"]],
function(a){function m(a){return(a.annotations||[]).reduce(function(a,e){var d;!1!==(null===(d=e.options)||void 0===d?void 0:d.visible)&&(a=a.concat(e.labels));return a},[])}function q(a){var k,e,d,b,f=null===(e=null===(k=a.options)||void 0===k?void 0:k.accessibility)||void 0===e?void 0:e.description;return f?f:(null===(b=null===(d=a.graphic)||void 0===d?void 0:d.text)||void 0===b?void 0:b.textStr)||""}function n(a){var k,e,d=null===(e=null===(k=a.options)||void 0===k?void 0:k.accessibility)||void 0===
e?void 0:e.description;if(d)return d;k=a.chart;e=q(a);d=a.points.filter(function(b){return!!b.graphic}).map(function(b){var c,a;if(!(a=null===(c=null===b||void 0===b?void 0:b.accessibility)||void 0===c?void 0:c.valueDescription)){var d,f;a=(null===(f=null===(d=null===b||void 0===b?void 0:b.graphic)||void 0===d?void 0:d.element)||void 0===f?void 0:f.getAttribute("aria-label"))||""}b=(null===b||void 0===b?void 0:b.series.name)||"";return(b?b+", ":"")+"data point "+a}).filter(function(b){return!!b});
var b=d.length;a="accessibility.screenReaderSection.annotations.description"+(1<b?"MultiplePoints":b?"SinglePoint":"NoPoints");e={annotationText:e,numPoints:b,annotationPoint:d[0],additionalAnnotationPoints:d.slice(1)};return k.langFormat(a,e)}function p(a){return m(a).map(function(a){return(a=l(g(n(a))))?"<li>"+a+"</li>":""})}var l=a.escapeStringForHTML,g=a.stripHTMLTagsFromString;return{getAnnotationsInfoHTML:function(a){var k=a.annotations;return k&&k.length?"<ul>"+p(a).join(" ")+"</ul>":""},getAnnotationLabelDescription:n,
getAnnotationListItems:p,getPointAnnotationTexts:function(a){var k=m(a.series.chart).filter(function(e){return-1<e.points.indexOf(a)});return k.length?k.map(function(a){return""+q(a)}):[]}}});r(a,"Accessibility/Components/SeriesComponent/SeriesDescriber.js",[a["Core/Utilities.js"],a["Accessibility/Components/AnnotationsA11y.js"],a["Accessibility/Utils/HTMLUtilities.js"],a["Accessibility/Utils/ChartUtilities.js"],a["Core/Tooltip.js"]],function(a,h,q,n,p){function l(b){var c=b.index;return b.series&&
b.series.data&&D(c)?C(b.series.data,function(b){return!!(b&&"undefined"!==typeof b.index&&b.index>c&&b.graphic&&b.graphic.element)})||null:null}function g(b){var c=b.chart.options.accessibility.series.pointDescriptionEnabledThreshold;return!!(!1!==c&&b.points&&b.points.length>=c)}function m(b){var c=b.options.accessibility||{};return!g(b)&&!c.exposeAsGroupOnly}function k(b){var c=b.chart.options.accessibility.keyboardNavigation.seriesNavigation;return!(!b.points||!(b.points.length<c.pointNavigationEnabledThreshold||
!1===c.pointNavigationEnabledThreshold))}function e(b,c){var a=b.series.chart,d=a.options.accessibility.point||{};b=b.series.tooltipOptions||{};a=a.options.lang;return v(c)?I(c,d.valueDecimals||b.valueDecimals||-1,a.decimalPoint,a.accessibility.thousandsSep||a.thousandsSep):c}function d(b){var c=(b.options.accessibility||{}).description;return c&&b.chart.langFormat("accessibility.series.description",{description:c,series:b})||""}function b(b,c){return b.chart.langFormat("accessibility.series."+c+
"Description",{name:J(b[c]),series:b})}function f(b){var c=b.series,a=c.chart,d=a.options.accessibility.point||{};if(c.xAxis&&c.xAxis.dateTime)return c=p.prototype.getXDateFormat.call({getDateFormat:p.prototype.getDateFormat,chart:a},b,a.options.tooltip,c.xAxis),d=d.dateFormatter&&d.dateFormatter(b)||d.dateFormat||c,a.time.dateFormat(d,b.x,void 0)}function c(b){var c=f(b),a=(b.series.xAxis||{}).categories&&D(b.category)&&(""+b.category).replace("<br/>"," "),d=b.id&&0>b.id.indexOf("highcharts-"),e=
"x, "+b.x;return b.name||c||a||(d?b.id:e)}function w(b,c,a){var d=c||"",f=a||"";return b.series.pointArrayMap.reduce(function(c,a){c+=c.length?", ":"";var k=e(b,y(b[a],b.options[a]));return c+(a+": "+d+k+f)},"")}function A(b){var c=b.series,a=c.chart.options.accessibility.point||{},d=c.tooltipOptions||{},f=a.valuePrefix||d.valuePrefix||"";a=a.valueSuffix||d.valueSuffix||"";d=e(b,b["undefined"!==typeof b.value?"value":"y"]);return b.isNull?c.chart.langFormat("accessibility.series.nullPointValue",{point:b}):
c.pointArrayMap?w(b,f,a):f+d+a}function z(b){var a=b.series,d=a.chart,f=d.options.accessibility.point.valueDescriptionFormat,e=(a=y(a.xAxis&&a.xAxis.options.accessibility&&a.xAxis.options.accessibility.enabled,!d.angular))?c(b):"";b={point:b,index:D(b.index)?b.index+1:"",xDescription:e,value:A(b),separator:a?", ":""};return u(f,b,d)}function t(b){var c=b.series,a=c.chart,d=z(b),f=b.options&&b.options.accessibility&&b.options.accessibility.description;f=f?" "+f:"";c=1<a.series.length&&c.name?" "+c.name+
".":"";a=b.series.chart;var e=H(b),k={point:b,annotations:e};a=e.length?a.langFormat("accessibility.series.pointAnnotationsDescription",k):"";b.accessibility=b.accessibility||{};b.accessibility.valueDescription=d;return d+f+c+(a?" "+a:"")}function r(b){var c=m(b),a=k(b);(c||a)&&b.points.forEach(function(b){var a;if(!(a=b.graphic&&b.graphic.element)&&(a=b.series&&b.series.is("sunburst"),a=b.isNull&&!a)){var d=b.series,f=l(b);d=(a=f&&f.graphic)?a.parentGroup:d.graph||d.group;f=f?{x:y(b.plotX,f.plotX,
0),y:y(b.plotY,f.plotY,0)}:{x:y(b.plotX,0),y:y(b.plotY,0)};f=b.series.chart.renderer.rect(f.x,f.y,1,1);f.attr({"class":"highcharts-a11y-dummy-point",fill:"none",opacity:0,"fill-opacity":0,"stroke-opacity":0});d&&d.element?(b.graphic=f,b.hasDummyGraphic=!0,f.add(d),d.element.insertBefore(f.element,a?a.element:null),a=f.element):a=void 0}a&&(a.setAttribute("tabindex","-1"),a.style.outline="0",c?(f=b.series,d=f.chart.options.accessibility.point||{},f=f.options.accessibility||{},b=F(G(f.pointDescriptionFormatter&&
f.pointDescriptionFormatter(b)||d.descriptionFormatter&&d.descriptionFormatter(b)||t(b))),a.setAttribute("role","img"),a.setAttribute("aria-label",b)):a.setAttribute("aria-hidden",!0))})}function B(a){var c=a.chart,f=c.types||[],e=d(a),k=function(b){return c[b]&&1<c[b].length&&a[b]},l=b(a,"xAxis"),v=b(a,"yAxis"),g={name:a.name||"",ix:a.index+1,numSeries:c.series&&c.series.length,numPoints:a.points&&a.points.length,series:a};f=1<f.length?"Combination":"";return(c.langFormat("accessibility.series.summary."+
a.type+f,g)||c.langFormat("accessibility.series.summary.default"+f,g))+(e?" "+e:"")+(k("yAxis")?" "+v:"")+(k("xAxis")?" "+l:"")}var C=a.find,u=a.format,v=a.isNumber,I=a.numberFormat,y=a.pick,D=a.defined,H=h.getPointAnnotationTexts,F=q.escapeStringForHTML,K=q.reverseChildNodes,G=q.stripHTMLTagsFromString,J=n.getAxisDescription,L=n.getSeriesFirstPointElement,M=n.getSeriesA11yElement,N=n.unhideChartElementFromAT;return{describeSeries:function(b){var a=b.chart,c=L(b),d=M(b),f=a.is3d&&a.is3d();if(d){d.lastChild!==
c||f||K(d);r(b);N(a,d);f=b.chart;a=f.options.chart||{};c=1<f.series.length;f=f.options.accessibility.series.describeSingleSeries;var e=(b.options.accessibility||{}).exposeAsGroupOnly;a.options3d&&a.options3d.enabled&&c||!(c||f||e||g(b))?d.setAttribute("aria-label",""):(a=b.chart.options.accessibility,c=a.landmarkVerbosity,(b.options.accessibility||{}).exposeAsGroupOnly?d.setAttribute("role","img"):"all"===c&&d.setAttribute("role","region"),d.setAttribute("tabindex","-1"),d.style.outline="0",d.setAttribute("aria-label",
F(G(a.series.descriptionFormatter&&a.series.descriptionFormatter(b)||B(b)))))}},defaultPointDescriptionFormatter:t,defaultSeriesDescriptionFormatter:B,getPointA11yTimeDescription:f,getPointXDescription:c,getPointValue:A,getPointValueDescription:z}});r(a,"Accessibility/Utils/Announcer.js",[a["Core/Globals.js"],a["Accessibility/Utils/DOMElementProvider.js"],a["Accessibility/Utils/HTMLUtilities.js"]],function(a,h,q){var m=q.visuallyHideElement;q=function(){function a(a,g){this.chart=a;this.domElementProvider=
new h;this.announceRegion=this.addAnnounceRegion(g)}a.prototype.destroy=function(){this.domElementProvider.destroyCreatedElements()};a.prototype.announce=function(a){var l=this;this.announceRegion.innerHTML=a;this.clearAnnouncementRegionTimer&&clearTimeout(this.clearAnnouncementRegionTimer);this.clearAnnouncementRegionTimer=setTimeout(function(){l.announceRegion.innerHTML="";delete l.clearAnnouncementRegionTimer},1E3)};a.prototype.addAnnounceRegion=function(a){var l=this.chart.renderTo,h=this.domElementProvider.createElement("div");
h.setAttribute("aria-hidden",!1);h.setAttribute("aria-live",a);m(h);l.insertBefore(h,l.firstChild);return h};return a}();return a.Announcer=q});r(a,"Accessibility/Components/SeriesComponent/NewDataAnnouncer.js",[a["Core/Globals.js"],a["Core/Utilities.js"],a["Accessibility/Utils/ChartUtilities.js"],a["Accessibility/Components/SeriesComponent/SeriesDescriber.js"],a["Accessibility/Utils/Announcer.js"],a["Accessibility/Utils/EventProvider.js"]],function(a,h,q,n,p,l){function g(b){var a=b.series.data.filter(function(a){return b.x===
a.x&&b.y===a.y});return 1===a.length?a[0]:b}function m(b,a){var c=(b||[]).concat(a||[]).reduce(function(b,a){b[a.name+a.index]=a;return b},{});return Object.keys(c).map(function(b){return c[b]})}var k=h.extend,e=h.defined,d=q.getChartTitle,b=n.defaultPointDescriptionFormatter,f=n.defaultSeriesDescriptionFormatter;h=function(b){this.chart=b};k(h.prototype,{init:function(){var b=this.chart,a=b.options.accessibility.announceNewData.interruptUser?"assertive":"polite";this.lastAnnouncementTime=0;this.dirty=
{allSeries:{}};this.eventProvider=new l;this.announcer=new p(b,a);this.addEventListeners()},destroy:function(){this.eventProvider.removeAddedEvents();this.announcer.destroy()},addEventListeners:function(){var b=this,d=this.chart,f=this.eventProvider;f.addEvent(d,"afterDrilldown",function(){b.lastAnnouncementTime=0});f.addEvent(a.Series,"updatedData",function(){b.onSeriesUpdatedData(this)});f.addEvent(d,"afterAddSeries",function(a){b.onSeriesAdded(a.series)});f.addEvent(a.Series,"addPoint",function(a){b.onPointAdded(a.point)});
f.addEvent(d,"redraw",function(){b.announceDirtyData()})},onSeriesUpdatedData:function(b){var a=this.chart;b.chart===a&&a.options.accessibility.announceNewData.enabled&&(this.dirty.hasDirty=!0,this.dirty.allSeries[b.name+b.index]=b)},onSeriesAdded:function(b){this.chart.options.accessibility.announceNewData.enabled&&(this.dirty.hasDirty=!0,this.dirty.allSeries[b.name+b.index]=b,this.dirty.newSeries=e(this.dirty.newSeries)?void 0:b)},onPointAdded:function(b){var a=b.series.chart;this.chart===a&&a.options.accessibility.announceNewData.enabled&&
(this.dirty.newPoint=e(this.dirty.newPoint)?void 0:b)},announceDirtyData:function(){var b=this;if(this.chart.options.accessibility.announceNewData&&this.dirty.hasDirty){var a=this.dirty.newPoint;a&&(a=g(a));this.queueAnnouncement(Object.keys(this.dirty.allSeries).map(function(a){return b.dirty.allSeries[a]}),this.dirty.newSeries,a);this.dirty={allSeries:{}}}},queueAnnouncement:function(b,a,d){var c=this,f=this.chart.options.accessibility.announceNewData;if(f.enabled){var e=+new Date;f=Math.max(0,
f.minAnnounceInterval-(e-this.lastAnnouncementTime));b=m(this.queuedAnnouncement&&this.queuedAnnouncement.series,b);if(a=this.buildAnnouncementMessage(b,a,d))this.queuedAnnouncement&&clearTimeout(this.queuedAnnouncementTimer),this.queuedAnnouncement={time:e,message:a,series:b},this.queuedAnnouncementTimer=setTimeout(function(){c&&c.announcer&&(c.lastAnnouncementTime=+new Date,c.announcer.announce(c.queuedAnnouncement.message),delete c.queuedAnnouncement,delete c.queuedAnnouncementTimer)},f)}},buildAnnouncementMessage:function(c,
e,k){var l=this.chart,g=l.options.accessibility.announceNewData;if(g.announcementFormatter&&(c=g.announcementFormatter(c,e,k),!1!==c))return c.length?c:null;c=a.charts&&1<a.charts.length?"Multiple":"Single";c=e?"newSeriesAnnounce"+c:k?"newPointAnnounce"+c:"newDataAnnounce";g=d(l);return l.langFormat("accessibility.announceNewData."+c,{chartTitle:g,seriesDesc:e?f(e):null,pointDesc:k?b(k):null,point:k,series:e})}});return h});r(a,"Accessibility/Components/SeriesComponent/ForcedMarkers.js",[a["Core/Globals.js"],
a["Core/Utilities.js"]],function(a,h){function m(a){p(!0,a,{marker:{enabled:!0,states:{normal:{opacity:0}}}})}var n=h.addEvent,p=h.merge;return function(){n(a.Series,"render",function(){var a=this.options,g=!1!==(this.options.accessibility&&this.options.accessibility.enabled);if(g=this.chart.options.accessibility.enabled&&g)g=this.chart.options.accessibility,g=this.points.length<g.series.pointDescriptionEnabledThreshold||!1===g.series.pointDescriptionEnabledThreshold;if(g){if(a.marker&&!1===a.marker.enabled&&
(this.a11yMarkersForced=!0,m(this.options)),this._hasPointMarkers&&this.points&&this.points.length)for(a=this.points.length;a--;){g=this.points[a];var h=g.options;delete g.hasForcedA11yMarker;h.marker&&(h.marker.enabled?(p(!0,h.marker,{states:{normal:{opacity:h.marker.states&&h.marker.states.normal&&h.marker.states.normal.opacity||1}}}),g.hasForcedA11yMarker=!1):(m(h),g.hasForcedA11yMarker=!0))}}else this.a11yMarkersForced&&(delete this.a11yMarkersForced,(a=this.resetA11yMarkerOptions)&&p(!0,this.options,
{marker:{enabled:a.enabled,states:{normal:{opacity:a.states&&a.states.normal&&a.states.normal.opacity}}}}))});n(a.Series,"afterSetOptions",function(a){this.resetA11yMarkerOptions=p(a.options.marker||{},this.userOptions.marker||{})});n(a.Series,"afterRender",function(){if(this.chart.styledMode){if(this.markerGroup)this.markerGroup[this.a11yMarkersForced?"addClass":"removeClass"]("highcharts-a11y-markers-hidden");this._hasPointMarkers&&this.points&&this.points.length&&this.points.forEach(function(a){a.graphic&&
(a.graphic[a.hasForcedA11yMarker?"addClass":"removeClass"]("highcharts-a11y-marker-hidden"),a.graphic[!1===a.hasForcedA11yMarker?"addClass":"removeClass"]("highcharts-a11y-marker-visible"))})}})}});r(a,"Accessibility/Components/SeriesComponent/SeriesComponent.js",[a["Core/Globals.js"],a["Core/Utilities.js"],a["Accessibility/AccessibilityComponent.js"],a["Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js"],a["Accessibility/Components/SeriesComponent/NewDataAnnouncer.js"],a["Accessibility/Components/SeriesComponent/ForcedMarkers.js"],
a["Accessibility/Utils/ChartUtilities.js"],a["Accessibility/Components/SeriesComponent/SeriesDescriber.js"],a["Core/Tooltip.js"]],function(a,h,q,n,p,l,g,x,k){h=h.extend;var e=g.hideSeriesFromAT,d=x.describeSeries;a.SeriesAccessibilityDescriber=x;l();a=function(){};a.prototype=new q;h(a.prototype,{init:function(){this.newDataAnnouncer=new p(this.chart);this.newDataAnnouncer.init();this.keyboardNavigation=new n(this.chart,this.keyCodes);this.keyboardNavigation.init();this.hideTooltipFromATWhenShown();
this.hideSeriesLabelsFromATWhenShown()},hideTooltipFromATWhenShown:function(){var b=this;this.addEvent(k,"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(b){b.labelBySeries&&b.labelBySeries.attr("aria-hidden",!0)})})},onChartRender:function(){this.chart.series.forEach(function(b){!1!==(b.options.accessibility&&
b.options.accessibility.enabled)&&b.visible?d(b):e(b)})},getKeyboardNavigation:function(){return this.keyboardNavigation.getKeyboardNavigationHandler()},destroy:function(){this.newDataAnnouncer.destroy();this.keyboardNavigation.destroy()}});return a});r(a,"Accessibility/Components/ZoomComponent.js",[a["Core/Globals.js"],a["Core/Utilities.js"],a["Accessibility/AccessibilityComponent.js"],a["Accessibility/KeyboardNavigationHandler.js"],a["Accessibility/Utils/ChartUtilities.js"],a["Accessibility/Utils/HTMLUtilities.js"]],
function(a,h,q,n,p,l){var g=h.extend,m=h.pick,k=p.unhideChartElementFromAT,e=l.setElAttrs,d=l.removeElement;a.Axis.prototype.panStep=function(b,a){var c=a||3;a=this.getExtremes();var d=(a.max-a.min)/c*b;c=a.max+d;d=a.min+d;var f=c-d;0>b&&d<a.dataMin?(d=a.dataMin,c=d+f):0<b&&c>a.dataMax&&(c=a.dataMax,d=c-f);this.setExtremes(d,c)};a=function(){};a.prototype=new q;g(a.prototype,{init:function(){var b=this,a=this.chart;["afterShowResetZoom","afterDrilldown","drillupall"].forEach(function(c){b.addEvent(a,
c,function(){b.updateProxyOverlays()})})},onChartUpdate:function(){var b=this.chart,a=this;b.mapNavButtons&&b.mapNavButtons.forEach(function(c,d){k(b,c.element);a.setMapNavButtonAttrs(c.element,"accessibility.zoom.mapZoom"+(d?"Out":"In"))})},setMapNavButtonAttrs:function(b,a){var c=this.chart;a=c.langFormat(a,{chart:c});e(b,{tabindex:-1,role:"button","aria-label":a})},onChartRender:function(){this.updateProxyOverlays()},updateProxyOverlays:function(){var b=this.chart;d(this.drillUpProxyGroup);d(this.resetZoomProxyGroup);
b.resetZoomButton&&this.recreateProxyButtonAndGroup(b.resetZoomButton,"resetZoomProxyButton","resetZoomProxyGroup",b.langFormat("accessibility.zoom.resetZoomButton",{chart:b}));b.drillUpButton&&this.recreateProxyButtonAndGroup(b.drillUpButton,"drillUpProxyButton","drillUpProxyGroup",b.langFormat("accessibility.drillUpButton",{chart:b,buttonText:b.getDrilldownBackText()}))},recreateProxyButtonAndGroup:function(b,a,c,e){d(this[c]);this[c]=this.addProxyGroup();this[a]=this.createProxyButton(b,this[c],
{"aria-label":e,tabindex:-1})},getMapZoomNavigation:function(){var b=this.keyCodes,a=this.chart,c=this;return new n(a,{keyCodeMap:[[[b.up,b.down,b.left,b.right],function(b){return c.onMapKbdArrow(this,b)}],[[b.tab],function(b,a){return c.onMapKbdTab(this,a)}],[[b.space,b.enter],function(){return c.onMapKbdClick(this)}]],validate:function(){return!!(a.mapZoom&&a.mapNavButtons&&a.mapNavButtons.length)},init:function(b){return c.onMapNavInit(b)}})},onMapKbdArrow:function(b,a){var c=this.keyCodes;this.chart[a===
c.up||a===c.down?"yAxis":"xAxis"][0].panStep(a===c.left||a===c.up?-1:1);return b.response.success},onMapKbdTab:function(b,a){var c=this.chart;b=b.response;var d=(a=a.shiftKey)&&!this.focusedMapNavButtonIx||!a&&this.focusedMapNavButtonIx;c.mapNavButtons[this.focusedMapNavButtonIx].setState(0);if(d)return c.mapZoom(),b[a?"prev":"next"];this.focusedMapNavButtonIx+=a?-1:1;a=c.mapNavButtons[this.focusedMapNavButtonIx];c.setFocusToElement(a.box,a.element);a.setState(2);return b.success},onMapKbdClick:function(b){this.fakeClickEvent(this.chart.mapNavButtons[this.focusedMapNavButtonIx].element);
return b.response.success},onMapNavInit:function(b){var a=this.chart,c=a.mapNavButtons[0],d=a.mapNavButtons[1];c=0<b?c:d;a.setFocusToElement(c.box,c.element);c.setState(2);this.focusedMapNavButtonIx=0<b?0:1},simpleButtonNavigation:function(b,a,c){var d=this.keyCodes,e=this,f=this.chart;return new n(f,{keyCodeMap:[[[d.tab,d.up,d.down,d.left,d.right],function(b,a){return this.response[b===d.tab&&a.shiftKey||b===d.left||b===d.up?"prev":"next"]}],[[d.space,d.enter],function(){var b=c(this,f);return m(b,
this.response.success)}]],validate:function(){return f[b]&&f[b].box&&e[a]},init:function(){f.setFocusToElement(f[b].box,e[a])}})},getKeyboardNavigation:function(){return[this.simpleButtonNavigation("resetZoomButton","resetZoomProxyButton",function(b,a){a.zoomOut()}),this.simpleButtonNavigation("drillUpButton","drillUpProxyButton",function(b,a){a.drillUp();return b.response.prev}),this.getMapZoomNavigation()]}});return a});r(a,"Accessibility/Components/RangeSelectorComponent.js",[a["Core/Globals.js"],
a["Core/Utilities.js"],a["Accessibility/AccessibilityComponent.js"],a["Accessibility/KeyboardNavigationHandler.js"],a["Accessibility/Utils/ChartUtilities.js"],a["Accessibility/Utils/HTMLUtilities.js"]],function(a,h,q,n,p,l){h=h.extend;var g=p.unhideChartElementFromAT,m=l.setElAttrs;a.Chart.prototype.highlightRangeSelectorButton=function(a){var e=this.rangeSelector.buttons,d=this.highlightedRangeSelectorItemIx;"undefined"!==typeof d&&e[d]&&e[d].setState(this.oldRangeSelectorItemState||0);this.highlightedRangeSelectorItemIx=
a;return e[a]?(this.setFocusToElement(e[a].box,e[a].element),this.oldRangeSelectorItemState=e[a].state,e[a].setState(2),!0):!1};a=function(){};a.prototype=new q;h(a.prototype,{onChartUpdate:function(){var a=this.chart,e=this,d=a.rangeSelector;d&&(d.buttons&&d.buttons.length&&d.buttons.forEach(function(b){g(a,b.element);e.setRangeButtonAttrs(b)}),d.maxInput&&d.minInput&&["minInput","maxInput"].forEach(function(b,f){if(b=d[b])g(a,b),e.setRangeInputAttrs(b,"accessibility.rangeSelector."+(f?"max":"min")+
"InputLabel")}))},setRangeButtonAttrs:function(a){var e=this.chart;e=e.langFormat("accessibility.rangeSelector.buttonText",{chart:e,buttonText:a.text&&a.text.textStr});m(a.element,{tabindex:-1,role:"button","aria-label":e})},setRangeInputAttrs:function(a,e){var d=this.chart;m(a,{tabindex:-1,role:"textbox","aria-label":d.langFormat(e,{chart:d})})},getRangeSelectorButtonNavigation:function(){var a=this.chart,e=this.keyCodes,d=this;return new n(a,{keyCodeMap:[[[e.left,e.right,e.up,e.down],function(b){return d.onButtonNavKbdArrowKey(this,
b)}],[[e.enter,e.space],function(){return d.onButtonNavKbdClick(this)}]],validate:function(){return a.rangeSelector&&a.rangeSelector.buttons&&a.rangeSelector.buttons.length},init:function(b){var d=a.rangeSelector.buttons.length-1;a.highlightRangeSelectorButton(0<b?0:d)}})},onButtonNavKbdArrowKey:function(a,e){var d=a.response,b=this.keyCodes,f=this.chart,c=f.options.accessibility.keyboardNavigation.wrapAround;e=e===b.left||e===b.up?-1:1;return f.highlightRangeSelectorButton(f.highlightedRangeSelectorItemIx+
e)?d.success:c?(a.init(e),d.success):d[0<e?"next":"prev"]},onButtonNavKbdClick:function(a){a=a.response;var e=this.chart;3!==e.oldRangeSelectorItemState&&this.fakeClickEvent(e.rangeSelector.buttons[e.highlightedRangeSelectorItemIx].element);return a.success},getRangeSelectorInputNavigation:function(){var a=this.chart,e=this.keyCodes,d=this;return new n(a,{keyCodeMap:[[[e.tab,e.up,e.down],function(b,a){return d.onInputKbdMove(this,b===e.tab&&a.shiftKey||b===e.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(b){d.onInputNavInit(b)},terminate:function(){d.onInputNavTerminate()}})},onInputKbdMove:function(a,e){var d=this.chart;a=a.response;var b=d.highlightedInputRangeIx+=e;if(1<b||0>b)return a[0<e?"next":"prev"];d.rangeSelector[b?"maxInput":"minInput"].focus();return a.success},onInputNavInit:function(a){var e=
this.chart;a=0<a?0:1;e.highlightedInputRangeIx=a;e.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});r(a,"Accessibility/Components/InfoRegionsComponent.js",[a["Core/Globals.js"],a["Core/Utilities.js"],a["Accessibility/AccessibilityComponent.js"],
a["Accessibility/Utils/Announcer.js"],a["Accessibility/Components/AnnotationsA11y.js"],a["Accessibility/Utils/ChartUtilities.js"],a["Accessibility/Utils/HTMLUtilities.js"]],function(a,h,q,n,p,l,g){function m(b){return b.replace(/&lt;(h[1-7]|p|div|ul|ol|li)&gt;/g,"<$1>").replace(/&lt;&#x2F;(h[1-7]|p|div|ul|ol|li|a|button)&gt;/g,"</$1>").replace(/&lt;(div|a|button) id=&quot;([a-zA-Z\-0-9#]*?)&quot;&gt;/g,'<$1 id="$2">')}var k=a.doc,e=h.extend,d=h.format,b=h.pick,f=p.getAnnotationsInfoHTML,c=l.unhideChartElementFromAT,
w=l.getChartTitle,r=l.getAxisDescription,z=g.addClass,t=g.setElAttrs,E=g.escapeStringForHTML,B=g.stripHTMLTagsFromString,C=g.getElement,u=g.visuallyHideElement;a.Chart.prototype.getTypeDescription=function(b){var a=b[0],c=this.series&&this.series[0]||{};c={numSeries:this.series.length,numPoints:c.points&&c.points.length,chart:this,mapTitle:c.mapTitle};if(!a)return this.langFormat("accessibility.chartTypes.emptyChart",c);if("map"===a)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);b=b[0];a=this.langFormat("accessibility.seriesTypeDescriptions."+b,c);var d=this.series&&2>this.series.length?"Single":"Multiple";return(this.langFormat("accessibility.chartTypes."+b+d,c)||this.langFormat("accessibility.chartTypes.default"+d,c))+(a?" "+a:"")};h=function(){};h.prototype=new q;e(h.prototype,{init:function(){var b=this.chart,a=this;
this.initRegionsDefinitions();this.addEvent(b,"afterGetTable",function(b){a.onDataTableCreated(b)});this.addEvent(b,"afterViewData",function(b){a.dataTableDiv=b;setTimeout(function(){a.focusDataTable()},300)});this.announcer=new n(b,"assertive")},initRegionsDefinitions:function(){var b=this;this.screenReaderSections={before:{element:null,buildContent:function(a){var c=a.options.accessibility.screenReaderSection.beforeChartFormatter;return c?c(a):b.defaultBeforeChartFormatter(a)},insertIntoDOM:function(b,
a){a.renderTo.insertBefore(b,a.renderTo.firstChild)},afterInserted:function(){"undefined"!==typeof b.sonifyButtonId&&b.initSonifyButton(b.sonifyButtonId);"undefined"!==typeof b.dataTableButtonId&&b.initDataTableButton(b.dataTableButtonId)}},after:{element:null,buildContent:function(a){var c=a.options.accessibility.screenReaderSection.afterChartFormatter;return c?c(a):b.defaultAfterChartFormatter()},insertIntoDOM:function(b,a){a.renderTo.insertBefore(b,a.container.nextSibling)}}}},onChartRender:function(){var b=
this;this.linkedDescriptionElement=this.getLinkedDescriptionElement();this.setLinkedDescriptionAttrs();Object.keys(this.screenReaderSections).forEach(function(a){b.updateScreenReaderSection(a)})},getLinkedDescriptionElement:function(){var b=this.chart.options.accessibility.linkedDescription;if(b){if("string"!==typeof b)return b;b=d(b,this.chart);b=k.querySelectorAll(b);if(1===b.length)return b[0]}},setLinkedDescriptionAttrs:function(){var b=this.linkedDescriptionElement;b&&(b.setAttribute("aria-hidden",
"true"),z(b,"highcharts-linked-description"))},updateScreenReaderSection:function(b){var a=this.chart,d=this.screenReaderSections[b],e=d.buildContent(a),f=d.element=d.element||this.createElement("div"),l=f.firstChild||this.createElement("div");this.setScreenReaderSectionAttribs(f,b);l.innerHTML=e;f.appendChild(l);d.insertIntoDOM(f,a);u(l);c(a,l);d.afterInserted&&d.afterInserted()},setScreenReaderSectionAttribs:function(b,a){var c=this.chart,d=c.langFormat("accessibility.screenReaderSection."+a+"RegionLabel",
{chart:c});t(b,{id:"highcharts-screen-reader-region-"+a+"-"+c.index,"aria-label":d});b.style.position="relative";"all"===c.options.accessibility.landmarkVerbosity&&d&&b.setAttribute("role","region")},defaultBeforeChartFormatter:function(){var b,c=this.chart,d=c.options.accessibility.screenReaderSection.beforeChartFormat,e=this.getAxesDescription(),l=c.sonify&&(null===(b=c.options.sonification)||void 0===b?void 0:b.enabled);b="highcharts-a11y-sonify-data-btn-"+c.index;var k="hc-linkto-highcharts-data-table-"+
c.index,g=f(c),h=c.langFormat("accessibility.screenReaderSection.annotations.heading",{chart:c});e={chartTitle:w(c),typeDescription:this.getTypeDescriptionText(),chartSubtitle:this.getSubtitleText(),chartLongdesc:this.getLongdescText(),xAxisDescription:e.xAxis,yAxisDescription:e.yAxis,playAsSoundButton:l?this.getSonifyButtonText(b):"",viewTableButton:c.getCSV?this.getDataTableButtonText(k):"",annotationsTitle:g?h:"",annotationsList:g};c=a.i18nFormat(d,e,c);this.dataTableButtonId=k;this.sonifyButtonId=
b;return m(E(c)).replace(/<(\w+)[^>]*?>\s*<\/\1>/g,"")},defaultAfterChartFormatter:function(){var b=this.chart,c=b.options.accessibility.screenReaderSection.afterChartFormat,d={endOfChartMarker:this.getEndOfChartMarkerText()};b=a.i18nFormat(c,d,b);return m(E(b)).replace(/<(\w+)[^>]*?>\s*<\/\1>/g,"")},getLinkedDescription:function(){var b=this.linkedDescriptionElement;return B(b&&b.innerHTML||"")},getLongdescText:function(){var b=this.chart.options,a=b.caption;a=a&&a.text;var c=this.getLinkedDescription();
return b.accessibility.description||c||a||""},getTypeDescriptionText:function(){var b=this.chart;return b.types?b.options.accessibility.typeDescription||b.getTypeDescription(b.types):""},getDataTableButtonText:function(b){var a=this.chart;a=a.langFormat("accessibility.table.viewAsDataTableButtonText",{chart:a,chartTitle:w(a)});return'<button id="'+b+'">'+a+"</button>"},getSonifyButtonText:function(b){var a,c=this.chart;if(!1===(null===(a=c.options.sonification)||void 0===a?void 0:a.enabled))return"";
a=c.langFormat("accessibility.sonification.playAsSoundButtonText",{chart:c,chartTitle:w(c)});return'<button id="'+b+'">'+a+"</button>"},getSubtitleText:function(){var b=this.chart.options.subtitle;return B(b&&b.text||"")},getEndOfChartMarkerText:function(){var b=this.chart,a=b.langFormat("accessibility.screenReaderSection.endOfChartMarker",{chart:b});return'<div id="highcharts-end-of-chart-marker-'+b.index+'">'+a+"</div>"},onDataTableCreated:function(b){var a=this.chart;a.options.accessibility.enabled&&
(this.viewDataTableButton&&this.viewDataTableButton.setAttribute("aria-expanded","true"),b.html=b.html.replace("<table ",'<table tabindex="-1" summary="'+a.langFormat("accessibility.table.tableSummary",{chart:a})+'"'))},focusDataTable:function(){var b=this.dataTableDiv;(b=b&&b.getElementsByTagName("table")[0])&&b.focus&&b.focus()},initSonifyButton:function(b){var a=this,c=this.sonifyButton=C(b),d=this.chart,e=function(b){null===c||void 0===c?void 0:c.setAttribute("aria-hidden","true");null===c||void 0===
c?void 0:c.setAttribute("aria-label","");b.preventDefault();b.stopPropagation();b=d.langFormat("accessibility.sonification.playAsSoundClickAnnouncement",{chart:d});a.announcer.announce(b);setTimeout(function(){null===c||void 0===c?void 0:c.removeAttribute("aria-hidden");null===c||void 0===c?void 0:c.removeAttribute("aria-label");d.sonify&&d.sonify()},1E3)};c&&d&&(t(c,{tabindex:"-1"}),c.onclick=function(b){var a;((null===(a=d.options.accessibility)||void 0===a?void 0:a.screenReaderSection.onPlayAsSoundClick)||
e).call(this,b,d)})},initDataTableButton:function(b){var a=this.viewDataTableButton=C(b),c=this.chart;b=b.replace("hc-linkto-","");a&&(t(a,{tabindex:"-1","aria-expanded":!!C(b)}),a.onclick=c.options.accessibility.screenReaderSection.onViewDataTableClick||function(){c.viewData()})},getAxesDescription:function(){var a=this.chart,c=function(c,d){c=a[c];return 1<c.length||c[0]&&b(c[0].options.accessibility&&c[0].options.accessibility.enabled,d)},d=!!a.types&&0>a.types.indexOf("map"),e=!!a.hasCartesianSeries,
f=c("xAxis",!a.angular&&e&&d);c=c("yAxis",e&&d);d={};f&&(d.xAxis=this.getAxisDescriptionText("xAxis"));c&&(d.yAxis=this.getAxisDescriptionText("yAxis"));return d},getAxisDescriptionText:function(b){var a=this,c=this.chart,d=c[b];return c.langFormat("accessibility.axis."+b+"Description"+(1<d.length?"Plural":"Singular"),{chart:c,names:d.map(function(b){return r(b)}),ranges:d.map(function(b){return a.getAxisRangeDescription(b)}),numAxes:d.length})},getAxisRangeDescription:function(b){var a=b.options||
{};return a.accessibility&&"undefined"!==typeof a.accessibility.rangeDescription?a.accessibility.rangeDescription:b.categories?this.getCategoryAxisRangeDesc(b):!b.dateTime||0!==b.min&&0!==b.dataMin?this.getAxisFromToDescription(b):this.getAxisTimeLengthDesc(b)},getCategoryAxisRangeDesc:function(b){var a=this.chart;return b.dataMax&&b.dataMin?a.langFormat("accessibility.axis.rangeCategories",{chart:a,axis:b,numCategories:b.dataMax-b.dataMin+1}):""},getAxisTimeLengthDesc:function(b){var a=this.chart,
c={},d="Seconds";c.Seconds=((b.max||0)-(b.min||0))/1E3;c.Minutes=c.Seconds/60;c.Hours=c.Minutes/60;c.Days=c.Hours/24;["Minutes","Hours","Days"].forEach(function(b){2<c[b]&&(d=b)});var e=c[d].toFixed("Seconds"!==d&&"Minutes"!==d?1:0);return a.langFormat("accessibility.axis.timeRange"+d,{chart:a,axis:b,range:e.replace(".0","")})},getAxisFromToDescription:function(b){var a=this.chart,c=a.options.accessibility.screenReaderSection.axisRangeDateFormat,d=function(d){return b.dateTime?a.time.dateFormat(c,
b[d]):b[d]};return a.langFormat("accessibility.axis.rangeFromTo",{chart:a,axis:b,rangeFrom:d("min"),rangeTo:d("max")})},destroy:function(){var b;null===(b=this.announcer)||void 0===b?void 0:b.destroy()}});return h});r(a,"Accessibility/Components/ContainerComponent.js",[a["Core/Globals.js"],a["Core/Utilities.js"],a["Accessibility/Utils/HTMLUtilities.js"],a["Accessibility/Utils/ChartUtilities.js"],a["Accessibility/AccessibilityComponent.js"]],function(a,h,q,n,p){var l=a.win.document;a=h.extend;var g=
q.stripHTMLTagsFromString,m=n.unhideChartElementFromAT,k=n.getChartTitle;q=function(){};q.prototype=new p;a(q.prototype,{onChartUpdate:function(){this.handleSVGTitleElement();this.setSVGContainerLabel();this.setGraphicContainerAttrs();this.setRenderToAttrs();this.makeCreditsAccessible()},handleSVGTitleElement:function(){var a=this.chart,d="highcharts-title-"+a.index,b=g(a.langFormat("accessibility.svgContainerTitle",{chartTitle:k(a)}));if(b.length){var f=this.svgTitleElement=this.svgTitleElement||
l.createElementNS("http://www.w3.org/2000/svg","title");f.textContent=b;f.id=d;a.renderTo.insertBefore(f,a.renderTo.firstChild)}},setSVGContainerLabel:function(){var a=this.chart,d=g(a.langFormat("accessibility.svgContainerLabel",{chartTitle:k(a)}));a.renderer.box&&d.length&&a.renderer.box.setAttribute("aria-label",d)},setGraphicContainerAttrs:function(){var a=this.chart,d=a.langFormat("accessibility.graphicContainerLabel",{chartTitle:k(a)});d.length&&a.container.setAttribute("aria-label",d)},setRenderToAttrs:function(){var a=
this.chart;"disabled"!==a.options.accessibility.landmarkVerbosity?a.renderTo.setAttribute("role","region"):a.renderTo.removeAttribute("role");a.renderTo.setAttribute("aria-label",a.langFormat("accessibility.chartContainerLabel",{title:k(a),chart:a}))},makeCreditsAccessible:function(){var a=this.chart,d=a.credits;d&&(d.textStr&&d.element.setAttribute("aria-label",g(a.langFormat("accessibility.credits",{creditsStr:d.textStr}))),m(a,d.element))},destroy:function(){this.chart.renderTo.setAttribute("aria-hidden",
!0)}});return q});r(a,"Accessibility/HighContrastMode.js",[a["Core/Globals.js"]],function(a){var h=a.isMS,m=a.win,n=m.document;return{isHighContrastModeActive:function(){var a=/(Edg)/.test(m.navigator.userAgent);if(m.matchMedia&&a)return m.matchMedia("(-ms-high-contrast: active)").matches;if(h&&m.getComputedStyle){a=n.createElement("div");a.style.backgroundImage="url(data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)";n.body.appendChild(a);var l=(a.currentStyle||m.getComputedStyle(a)).backgroundImage;
n.body.removeChild(a);return"none"===l}return!1},setHighContrastTheme:function(a){a.highContrastModeActive=!0;var l=a.options.accessibility.highContrastTheme;a.update(l,!1);a.series.forEach(function(a){var g=l.plotOptions[a.type]||{};a.update({color:g.color||"windowText",colors:[g.color||"windowText"],borderColor:g.borderColor||"window"});a.points.forEach(function(a){a.options&&a.options.color&&a.update({color:g.color||"windowText",borderColor:g.borderColor||"window"},!1)})});a.redraw()}}});r(a,"Accessibility/HighContrastTheme.js",
[],function(){return{chart:{backgroundColor:"window"},title:{style:{color:"windowText"}},subtitle:{style:{color:"windowText"}},colorAxis:{minColor:"windowText",maxColor:"windowText",stops:[]},colors:["windowText"],xAxis:{gridLineColor:"windowText",labels:{style:{color:"windowText"}},lineColor:"windowText",minorGridLineColor:"windowText",tickColor:"windowText",title:{style:{color:"windowText"}}},yAxis:{gridLineColor:"windowText",labels:{style:{color:"windowText"}},lineColor:"windowText",minorGridLineColor:"windowText",
tickColor:"windowText",title:{style:{color:"windowText"}}},tooltip:{backgroundColor:"window",borderColor:"windowText",style:{color:"windowText"}},plotOptions:{series:{lineColor:"windowText",fillColor:"window",borderColor:"windowText",edgeColor:"windowText",borderWidth:1,dataLabels:{connectorColor:"windowText",color:"windowText",style:{color:"windowText",textOutline:"none"}},marker:{lineColor:"windowText",fillColor:"windowText"}},pie:{color:"window",colors:["window"],borderColor:"windowText",borderWidth:1},
boxplot:{fillColor:"window"},candlestick:{lineColor:"windowText",fillColor:"window"},errorbar:{fillColor:"window"}},legend:{backgroundColor:"window",itemStyle:{color:"windowText"},itemHoverStyle:{color:"windowText"},itemHiddenStyle:{color:"#555"},title:{style:{color:"windowText"}}},credits:{style:{color:"windowText"}},labels:{style:{color:"windowText"}},drilldown:{activeAxisLabelStyle:{color:"windowText"},activeDataLabelStyle:{color:"windowText"}},navigation:{buttonOptions:{symbolStroke:"windowText",
theme:{fill:"window"}}},rangeSelector:{buttonTheme:{fill:"window",stroke:"windowText",style:{color:"windowText"},states:{hover:{fill:"window",stroke:"windowText",style:{color:"windowText"}},select:{fill:"#444",stroke:"windowText",style:{color:"windowText"}}}},inputBoxBorderColor:"windowText",inputStyle:{backgroundColor:"window",color:"windowText"},labelStyle:{color:"windowText"}},navigator:{handles:{backgroundColor:"window",borderColor:"windowText"},outlineColor:"windowText",maskFill:"transparent",
series:{color:"windowText",lineColor:"windowText"},xAxis:{gridLineColor:"windowText"}},scrollbar:{barBackgroundColor:"#444",barBorderColor:"windowText",buttonArrowColor:"windowText",buttonBackgroundColor:"window",buttonBorderColor:"windowText",rifleColor:"windowText",trackBackgroundColor:"window",trackBorderColor:"windowText"}}});r(a,"Accessibility/Options/Options.js",[],function(){return{accessibility:{enabled:!0,screenReaderSection:{beforeChartFormat:"<h5>{chartTitle}</h5><div>{typeDescription}</div><div>{chartSubtitle}</div><div>{chartLongdesc}</div><div>{playAsSoundButton}</div><div>{viewTableButton}</div><div>{xAxisDescription}</div><div>{yAxisDescription}</div><div>{annotationsTitle}{annotationsList}</div>",
afterChartFormat:"{endOfChartMarker}",axisRangeDateFormat:"%Y-%m-%d %H:%M:%S"},series:{describeSingleSeries:!1,pointDescriptionEnabledThreshold:200},point:{valueDescriptionFormat:"{index}. {xDescription}{separator}{value}."},landmarkVerbosity:"all",linkedDescription:'*[data-highcharts-chart="{index}"] + .highcharts-description',keyboardNavigation:{enabled:!0,focusBorder:{enabled:!0,hideBrowserFocusOutline:!0,style:{color:"#335cad",lineWidth:2,borderRadius:3},margin:2},order:["series","zoom","rangeSelector",
"legend","chartMenu"],wrapAround:!0,seriesNavigation:{skipNullPoints:!0,pointNavigationEnabledThreshold:!1}},announceNewData:{enabled:!1,minAnnounceInterval:5E3,interruptUser:!1}},legend:{accessibility:{enabled:!0,keyboardNavigation:{enabled:!0}}},exporting:{accessibility:{enabled:!0}}}});r(a,"Accessibility/Options/LangOptions.js",[],function(){return{accessibility:{defaultChartTitle:"Chart",chartContainerLabel:"{title}. Highcharts interactive chart.",svgContainerLabel:"Interactive chart",drillUpButton:"{buttonText}",
credits:"Chart credits: {creditsStr}",thousandsSep:",",svgContainerTitle:"",graphicContainerLabel:"",screenReaderSection:{beforeRegionLabel:"Chart screen reader information.",afterRegionLabel:"",annotations:{heading:"Chart annotations summary",descriptionSinglePoint:"{annotationText}. Related to {annotationPoint}",descriptionMultiplePoints:"{annotationText}. Related to {annotationPoint}{ Also related to, #each(additionalAnnotationPoints)}",descriptionNoPoints:"{annotationText}"},endOfChartMarker:"End of interactive chart."},
sonification:{playAsSoundButtonText:"Play as sound, {chartTitle}",playAsSoundClickAnnouncement:"Play"},legend:{legendLabel:"Toggle series visibility",legendItem:"Hide {itemName}"},zoom:{mapZoomIn:"Zoom chart",mapZoomOut:"Zoom out chart",resetZoomButton:"Reset zoom"},rangeSelector:{minInputLabel:"Select start date.",maxInputLabel:"Select end date.",buttonText:"Select range {buttonText}"},table:{viewAsDataTableButtonText:"View as data table, {chartTitle}",tableSummary:"Table representation of chart."},
announceNewData:{newDataAnnounce:"Updated data for chart {chartTitle}",newSeriesAnnounceSingle:"New data series: {seriesDesc}",newPointAnnounceSingle:"New data point: {pointDesc}",newSeriesAnnounceMultiple:"New data series in chart {chartTitle}: {seriesDesc}",newPointAnnounceMultiple:"New data point in chart {chartTitle}: {pointDesc}"},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]}. {ranges[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]}. {ranges[0]}",yAxisDescriptionPlural:"The chart has {numAxes} Y axes displaying {#each(names, -1) }and {names[-1]}.",
timeRangeDays:"Range: {range} days.",timeRangeHours:"Range: {range} hours.",timeRangeMinutes:"Range: {range} minutes.",timeRangeSeconds:"Range: {range} seconds.",rangeFromTo:"Range: {rangeFrom} to {rangeTo}.",rangeCategories:"Range: {numCategories} categories."},exporting:{chartMenuLabel:"Chart menu",menuButtonLabel:"View chart menu",exportRegionLabel:"Chart 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}",nullPointValue:"No value",pointAnnotationsDescription:"{Annotation: #each(annotations). }"}}}});r(a,"Accessibility/Options/DeprecatedOptions.js",[a["Core/Utilities.js"]],
function(a){function h(a,e,d){for(var b,f=0;f<e.length-1;++f)b=e[f],a=a[b]=r(a[b],{});a[e[e.length-1]]=d}function m(a,e,d,b){function f(b,a){return a.reduce(function(b,a){return b[a]},b)}var c=f(a.options,e),l=f(a.options,d);Object.keys(b).forEach(function(f){var k,m=c[f];"undefined"!==typeof m&&(h(l,b[f],m),g(32,!1,a,(k={},k[e.join(".")+"."+f]=d.join(".")+"."+b[f].join("."),k)))})}function n(a){var e=a.options.chart||{},d=a.options.accessibility||{};["description","typeDescription"].forEach(function(b){var f;
e[b]&&(d[b]=e[b],g(32,!1,a,(f={},f["chart."+b]="use accessibility."+b,f)))})}function p(a){a.axes.forEach(function(e){(e=e.options)&&e.description&&(e.accessibility=e.accessibility||{},e.accessibility.description=e.description,g(32,!1,a,{"axis.description":"use axis.accessibility.description"}))})}function l(a){var e={description:["accessibility","description"],exposeElementToA11y:["accessibility","exposeAsGroupOnly"],pointDescriptionFormatter:["accessibility","pointDescriptionFormatter"],skipKeyboardNavigation:["accessibility",
"keyboardNavigation","enabled"]};a.series.forEach(function(d){Object.keys(e).forEach(function(b){var f,c=d.options[b];"undefined"!==typeof c&&(h(d.options,e[b],"skipKeyboardNavigation"===b?!c:c),g(32,!1,a,(f={},f["series."+b]="series."+e[b].join("."),f)))})})}var g=a.error,r=a.pick;return function(a){n(a);p(a);a.series&&l(a);m(a,["accessibility"],["accessibility"],{pointDateFormat:["point","dateFormat"],pointDateFormatter:["point","dateFormatter"],pointDescriptionFormatter:["point","descriptionFormatter"],
pointDescriptionThreshold:["series","pointDescriptionEnabledThreshold"],pointNavigationThreshold:["keyboardNavigation","seriesNavigation","pointNavigationEnabledThreshold"],pointValueDecimals:["point","valueDecimals"],pointValuePrefix:["point","valuePrefix"],pointValueSuffix:["point","valueSuffix"],screenReaderSectionFormatter:["screenReaderSection","beforeChartFormatter"],describeSingleSeries:["series","describeSingleSeries"],seriesDescriptionFormatter:["series","descriptionFormatter"],onTableAnchorClick:["screenReaderSection",
"onViewDataTableClick"],axisRangeDateFormat:["screenReaderSection","axisRangeDateFormat"]});m(a,["accessibility","keyboardNavigation"],["accessibility","keyboardNavigation","seriesNavigation"],{skipNullPoints:["skipNullPoints"],mode:["mode"]});m(a,["lang","accessibility"],["lang","accessibility"],{legendItem:["legend","legendItem"],legendLabel:["legend","legendLabel"],mapZoomIn:["zoom","mapZoomIn"],mapZoomOut:["zoom","mapZoomOut"],resetZoomButton:["zoom","resetZoomButton"],screenReaderRegionLabel:["screenReaderSection",
"beforeRegionLabel"],rangeSelectorButton:["rangeSelector","buttonText"],rangeSelectorMaxInput:["rangeSelector","maxInputLabel"],rangeSelectorMinInput:["rangeSelector","minInputLabel"],svgContainerEnd:["screenReaderSection","endOfChartMarker"],viewAsDataTable:["table","viewAsDataTableButtonText"],tableSummary:["table","tableSummary"]})}});r(a,"Accessibility/A11yI18n.js",[a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,h){function m(a,g){var h=a.indexOf("#each("),k=a.indexOf("#plural("),e=a.indexOf("["),
d=a.indexOf("]");if(-1<h){e=a.slice(h).indexOf(")")+h;var b=a.substring(0,h);k=a.substring(e+1);e=a.substring(h+6,e).split(",");h=Number(e[1]);a="";if(g=g[e[0]])for(h=isNaN(h)?g.length:h,h=0>h?g.length+h:Math.min(h,g.length),e=0;e<h;++e)a+=b+g[e]+k;return a.length?a:""}if(-1<k){b=a.slice(k).indexOf(")")+k;a=a.substring(k+8,b).split(",");switch(Number(g[a[0]])){case 0:a=p(a[4],a[1]);break;case 1:a=p(a[2],a[1]);break;case 2:a=p(a[3],a[1]);break;default:a=a[1]}a?(g=a,g=g.trim&&g.trim()||g.replace(/^\s+|\s+$/g,
"")):g="";return g}return-1<e?(k=a.substring(0,e),a=Number(a.substring(e+1,d)),g=g[k],!isNaN(a)&&g&&(0>a?(b=g[g.length+a],"undefined"===typeof b&&(b=g[0])):(b=g[a],"undefined"===typeof b&&(b=g[g.length-1]))),"undefined"!==typeof b?b:""):"{"+a+"}"}var n=h.format,p=h.pick;a.i18nFormat=function(a,g,h){var k=function(a,b){a=a.slice(b||0);var c=a.indexOf("{"),d=a.indexOf("}");if(-1<c&&d>c)return{statement:a.substring(c+1,d),begin:b+c+1,end:b+d}},e=[],d=0;do{var b=k(a,d);var f=a.substring(d,b&&b.begin-
1);f.length&&e.push({value:f,type:"constant"});b&&e.push({value:b.statement,type:"statement"});d=b?b.end+1:d+1}while(b);e.forEach(function(a){"statement"===a.type&&(a.value=m(a.value,g))});return n(e.reduce(function(a,b){return a+b.value},""),g,h)};a.Chart.prototype.langFormat=function(h,g){h=h.split(".");for(var l=this.options.lang,k=0;k<h.length;++k)l=l&&l[h[k]];return"string"===typeof l?a.i18nFormat(l,g,this):""}});r(a,"Accessibility/FocusBorder.js",[a["Core/Globals.js"],a["Core/Renderer/SVG/SVGElement.js"],
a["Core/Renderer/SVG/SVGLabel.js"],a["Core/Utilities.js"]],function(a,h,q,n){function m(a){if(!a.focusBorderDestroyHook){var b=a.destroy;a.destroy=function(){var c,d;null===(d=null===(c=a.focusBorder)||void 0===c?void 0:c.destroy)||void 0===d?void 0:d.call(c);return b.apply(a,arguments)};a.focusBorderDestroyHook=b}}function l(a){for(var b=[],c=1;c<arguments.length;c++)b[c-1]=arguments[c];a.focusBorderUpdateHooks||(a.focusBorderUpdateHooks={},d.forEach(function(c){c+="Setter";var d=a[c]||a._defaultSetter;
a.focusBorderUpdateHooks[c]=d;a[c]=function(){var c=d.apply(a,arguments);a.addFocusBorder.apply(a,b);return c}}))}function g(a){a.focusBorderUpdateHooks&&(Object.keys(a.focusBorderUpdateHooks).forEach(function(b){var c=a.focusBorderUpdateHooks[b];c===a._defaultSetter?delete a[b]:a[b]=c}),delete a.focusBorderUpdateHooks)}var r=n.addEvent,k=n.extend,e=n.pick,d="x y transform width height r d stroke-width".split(" ");k(h.prototype,{addFocusBorder:function(b,d){this.focusBorder&&this.removeFocusBorder();
var c=this.getBBox(),f=e(b,3);c.x+=this.translateX?this.translateX:0;c.y+=this.translateY?this.translateY:0;var g=c.x-f,h=c.y-f,k=c.width+2*f,n=c.height+2*f,p=this instanceof q;if("text"===this.element.nodeName||p){var r=!!this.rotation;if(p)var u={x:r?1:0,y:0};else g=u=0,"middle"===this.attr("text-anchor")?(u=a.isFirefox&&this.rotation?.25:.5,g=a.isFirefox&&!this.rotation?.75:.5):this.rotation?u=.25:g=.75,u={x:u,y:g};g=+this.attr("x")-c.width*u.x-f;h=+this.attr("y")-c.height*u.y-f;p&&r&&(p=k,k=n,
n=p,g=+this.attr("x")-c.height*u.x-f,h=+this.attr("y")-c.width*u.y-f)}this.focusBorder=this.renderer.rect(g,h,k,n,parseInt((d&&d.borderRadius||0).toString(),10)).addClass("highcharts-focus-border").attr({zIndex:99}).add(this.parentGroup);this.renderer.styledMode||this.focusBorder.attr({stroke:d&&d.stroke,"stroke-width":d&&d.strokeWidth});l(this,b,d);m(this)},removeFocusBorder:function(){g(this);this.focusBorderDestroyHook&&(this.destroy=this.focusBorderDestroyHook,delete this.focusBorderDestroyHook);
this.focusBorder&&(this.focusBorder.destroy(),delete this.focusBorder)}});a.Chart.prototype.renderFocusBorder=function(){var a=this.focusElement,d=this.options.accessibility.keyboardNavigation.focusBorder;a&&(a.removeFocusBorder(),d.enabled&&a.addFocusBorder(d.margin,{stroke:d.style.color,strokeWidth:d.style.lineWidth,borderRadius:d.style.borderRadius}))};a.Chart.prototype.setFocusToElement=function(a,d){var b=this.options.accessibility.keyboardNavigation.focusBorder;(d=d||a.element)&&d.focus&&(d.hcEvents&&
d.hcEvents.focusin||r(d,"focusin",function(){}),d.focus(),b.hideBrowserFocusOutline&&(d.style.outline="none"));this.focusElement&&this.focusElement.removeFocusBorder();this.focusElement=a;this.renderFocusBorder()}});r(a,"Accessibility/Accessibility.js",[a["Accessibility/Utils/ChartUtilities.js"],a["Core/Globals.js"],a["Accessibility/KeyboardNavigationHandler.js"],a["Core/Options.js"],a["Core/Series/Point.js"],a["Core/Utilities.js"],a["Accessibility/AccessibilityComponent.js"],a["Accessibility/KeyboardNavigation.js"],
a["Accessibility/Components/LegendComponent.js"],a["Accessibility/Components/MenuComponent.js"],a["Accessibility/Components/SeriesComponent/SeriesComponent.js"],a["Accessibility/Components/ZoomComponent.js"],a["Accessibility/Components/RangeSelectorComponent.js"],a["Accessibility/Components/InfoRegionsComponent.js"],a["Accessibility/Components/ContainerComponent.js"],a["Accessibility/HighContrastMode.js"],a["Accessibility/HighContrastTheme.js"],a["Accessibility/Options/Options.js"],a["Accessibility/Options/LangOptions.js"],
a["Accessibility/Options/DeprecatedOptions.js"]],function(a,h,q,n,p,l,g,r,k,e,d,b,f,c,w,A,z,t,E,B){function m(a){this.init(a)}var u=l.addEvent,v=l.extend,x=l.fireEvent,y=l.merge,D=h.win.document;y(!0,n.defaultOptions,t,{accessibility:{highContrastTheme:z},lang:E});h.A11yChartUtilities=a;h.KeyboardNavigationHandler=q;h.AccessibilityComponent=g;m.prototype={init:function(a){this.chart=a;D.addEventListener&&a.renderer.isSVG?(B(a),this.initComponents(),this.keyboardNavigation=new r(a,this.components),
this.update()):a.renderTo.setAttribute("aria-hidden",!0)},initComponents:function(){var a=this.chart,g=a.options.accessibility;this.components={container:new w,infoRegions:new c,legend:new k,chartMenu:new e,rangeSelector:new f,series:new d,zoom:new b};g.customComponents&&v(this.components,g.customComponents);var h=this.components;this.getComponentOrder().forEach(function(b){h[b].initBase(a);h[b].init()})},getComponentOrder:function(){if(!this.components)return[];if(!this.components.series)return Object.keys(this.components);
var a=Object.keys(this.components).filter(function(a){return"series"!==a});return["series"].concat(a)},update:function(){var a=this.components,b=this.chart,c=b.options.accessibility;x(b,"beforeA11yUpdate");b.types=this.getChartTypes();this.getComponentOrder().forEach(function(c){a[c].onChartUpdate();x(b,"afterA11yComponentUpdate",{name:c,component:a[c]})});this.keyboardNavigation.update(c.keyboardNavigation.order);!b.highContrastModeActive&&A.isHighContrastModeActive()&&A.setHighContrastTheme(b);
x(b,"afterA11yUpdate",{accessibility:this})},destroy:function(){var a=this.chart||{},b=this.components;Object.keys(b).forEach(function(a){b[a].destroy();b[a].destroyBase()});this.keyboardNavigation&&this.keyboardNavigation.destroy();a.renderTo&&a.renderTo.setAttribute("aria-hidden",!0);a.focusElement&&a.focusElement.removeFocusBorder()},getChartTypes:function(){var a={};this.chart.series.forEach(function(b){a[b.type]=1});return Object.keys(a)}};h.Chart.prototype.updateA11yEnabled=function(){var a=
this.accessibility,b=this.options.accessibility;b&&b.enabled?a?a.update():this.accessibility=new m(this):a?(a.destroy&&a.destroy(),delete this.accessibility):this.renderTo.setAttribute("aria-hidden",!0)};u(h.Chart,"render",function(a){this.a11yDirty&&this.renderTo&&(delete this.a11yDirty,this.updateA11yEnabled());var b=this.accessibility;b&&b.getComponentOrder().forEach(function(a){b.components[a].onChartRender()})});u(h.Chart,"update",function(a){if(a=a.options.accessibility)a.customComponents&&
(this.options.accessibility.customComponents=a.customComponents,delete a.customComponents),y(!0,this.options.accessibility,a),this.accessibility&&this.accessibility.destroy&&(this.accessibility.destroy(),delete this.accessibility);this.a11yDirty=!0});u(p,"update",function(){this.series.chart.accessibility&&(this.series.chart.a11yDirty=!0)});["addSeries","init"].forEach(function(a){u(h.Chart,a,function(){this.a11yDirty=!0})});["update","updatedData","remove"].forEach(function(a){u(h.Series,a,function(){this.chart.accessibility&&
(this.chart.a11yDirty=!0)})});["afterDrilldown","drillupall"].forEach(function(a){u(h.Chart,a,function(){this.accessibility&&this.accessibility.update()})});u(h.Chart,"destroy",function(){this.accessibility&&this.accessibility.destroy()})});r(a,"masters/modules/accessibility.src.js",[],function(){})});
//# sourceMappingURL=accessibility.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,17 @@
/*
Highcharts JS v8.2.0 (2020-08-20)
Highcharts cylinder module
(c) 2010-2019 Kacper Madej
License: www.highcharts.com/license
*/
(function(b){"object"===typeof module&&module.exports?(b["default"]=b,module.exports=b):"function"===typeof define&&define.amd?define("highcharts/modules/cylinder",["highcharts","highcharts/highcharts-3d"],function(g){b(g);b.Highcharts=g;return b}):b("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(b){function g(b,h,g,f){b.hasOwnProperty(h)||(b[h]=f.apply(null,g))}b=b?b._modules:{};g(b,"Series/CylinderSeries.js",[b["Core/Globals.js"],b["Core/Color.js"],b["Extensions/Math3D.js"],b["Core/Utilities.js"]],
function(b,g,l,f){var h=g.parse,r=l.perspective;g=f.merge;var t=f.pick;l=f.seriesType;var u=b.charts,v=b.deg2rad;f=b.Renderer.prototype;var w=f.cuboidPath,k=function(a){return!a.some(function(a){return"C"===a[0]})};l("cylinder","column",{},{},{shapeType:"cylinder",hasNewShapeType:b.seriesTypes.column.prototype.pointClass.prototype.hasNewShapeType});b=g(f.elements3d.cuboid,{parts:["top","bottom","front","back"],pathType:"cylinder",fillSetter:function(a){this.singleSetterForParts("fill",null,{front:a,
back:a,top:h(a).brighten(.1).get(),bottom:h(a).brighten(-.1).get()});this.color=this.fill=a;return this}});f.elements3d.cylinder=b;f.cylinder=function(a){return this.element3d("cylinder",a)};f.cylinderPath=function(a){var c=u[this.chartIndex],d=w.call(this,a),e=!d.isTop,b=!d.isFront,f=this.getCylinderEnd(c,a);a=this.getCylinderEnd(c,a,!0);return{front:this.getCylinderFront(f,a),back:this.getCylinderBack(f,a),top:f,bottom:a,zIndexes:{top:e?3:0,bottom:e?0:3,front:b?2:1,back:b?1:2,group:d.zIndexes.group}}};
f.getCylinderFront=function(a,c){a=a.slice(0,3);if(k(c)){var d=c[0];"M"===d[0]&&(a.push(c[2]),a.push(c[1]),a.push(["L",d[1],d[2]]))}else{d=c[0];var e=c[1];c=c[2];"M"===d[0]&&"C"===e[0]&&"C"===c[0]&&(a.push(["L",c[5],c[6]]),a.push(["C",c[3],c[4],c[1],c[2],e[5],e[6]]),a.push(["C",e[3],e[4],e[1],e[2],d[1],d[2]]))}a.push(["Z"]);return a};f.getCylinderBack=function(a,c){var d=[];if(k(a)){var e=a[0],b=a[2];"M"===e[0]&&"L"===b[0]&&(d.push(["M",b[1],b[2]]),d.push(a[3]),d.push(["L",e[1],e[2]]))}else"C"===
a[2][0]&&d.push(["M",a[2][5],a[2][6]]),d.push(a[3],a[4]);k(c)?(e=c[0],"M"===e[0]&&(d.push(["L",e[1],e[2]]),d.push(c[3]),d.push(c[2]))):(a=c[2],e=c[3],c=c[4],"C"===a[0]&&"C"===e[0]&&"C"===c[0]&&(d.push(["L",c[5],c[6]]),d.push(["C",c[3],c[4],c[1],c[2],e[5],e[6]]),d.push(["C",e[3],e[4],e[1],e[2],a[5],a[6]])));d.push(["Z"]);return d};f.getCylinderEnd=function(a,c,d){var e=t(c.depth,c.width),b=Math.min(c.width,e)/2,f=v*(a.options.chart.options3d.beta-90+(c.alphaCorrection||0));d=c.y+(d?c.height:0);var g=
.5519*b,h=c.width/2+c.x,l=e/2+c.z,m=[{x:0,y:d,z:b},{x:g,y:d,z:b},{x:b,y:d,z:g},{x:b,y:d,z:0},{x:b,y:d,z:-g},{x:g,y:d,z:-b},{x:0,y:d,z:-b},{x:-g,y:d,z:-b},{x:-b,y:d,z:-g},{x:-b,y:d,z:0},{x:-b,y:d,z:g},{x:-g,y:d,z:b},{x:0,y:d,z:b}],k=Math.cos(f),q=Math.sin(f),n,p;m.forEach(function(a,b){n=a.x;p=a.z;m[b].x=n*k-p*q+h;m[b].z=p*k+n*q+l});a=r(m,a,!0);return 2.5>Math.abs(a[3].y-a[9].y)&&2.5>Math.abs(a[0].y-a[6].y)?this.toLinePath([a[0],a[3],a[6],a[9]],!0):this.getCurvedPath(a)};f.getCurvedPath=function(a){var b=
[["M",a[0].x,a[0].y]],d=a.length-2,e;for(e=1;e<d;e+=3)b.push(["C",a[e].x,a[e].y,a[e+1].x,a[e+1].y,a[e+2].x,a[e+2].y]);return b}});g(b,"masters/modules/cylinder.src.js",[],function(){})});
//# sourceMappingURL=cylinder.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,30 @@
/*
Highcharts JS v8.2.0 (2020-08-20)
Exporting module
(c) 2010-2019 Torstein Honsi
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/export-data",["highcharts","highcharts/modules/exporting"],function(g){a(g);a.Highcharts=g;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function g(a,d,e,c){a.hasOwnProperty(d)||(a[d]=c.apply(null,e))}a=a?a._modules:{};g(a,"Extensions/DownloadURL.js",[a["Core/Globals.js"]],function(a){var d=a.win,e=d.navigator,c=d.document,
g=d.URL||d.webkitURL||d,u=/Edge\/\d+/.test(e.userAgent),v=a.dataURLtoBlob=function(f){if((f=f.match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/))&&3<f.length&&d.atob&&d.ArrayBuffer&&d.Uint8Array&&d.Blob&&g.createObjectURL){var a=d.atob(f[3]),c=new d.ArrayBuffer(a.length);c=new d.Uint8Array(c);for(var e=0;e<c.length;++e)c[e]=a.charCodeAt(e);f=new d.Blob([c],{type:f[1]});return g.createObjectURL(f)}};a=a.downloadURL=function(a,p){var f=c.createElement("a");if("string"===typeof a||a instanceof String||
!e.msSaveOrOpenBlob){a=""+a;if(u||2E6<a.length)if(a=v(a)||"",!a)throw Error("Failed to convert to blob");if("undefined"!==typeof f.download)f.href=a,f.download=p,c.body.appendChild(f),f.click(),c.body.removeChild(f);else try{var g=d.open(a,"chart");if("undefined"===typeof g||null===g)throw Error("Failed to open window");}catch(E){d.location.href=a}}else e.msSaveOrOpenBlob(a,p)};return{dataURLtoBlob:v,downloadURL:a}});g(a,"Extensions/ExportData.js",[a["Core/Axis/Axis.js"],a["Core/Chart/Chart.js"],
a["Core/Globals.js"],a["Core/Utilities.js"],a["Extensions/DownloadURL.js"]],function(a,d,e,c,g){function u(a,d){var b=p.navigator,f=-1<b.userAgent.indexOf("WebKit")&&0>b.userAgent.indexOf("Chrome"),c=p.URL||p.webkitURL||p;try{if(b.msSaveOrOpenBlob&&p.MSBlobBuilder){var q=new p.MSBlobBuilder;q.append(a);return q.getBlob("image/svg+xml")}if(!f)return c.createObjectURL(new p.Blob(["\ufeff"+a],{type:d}))}catch(M){}}var v=e.doc,f=e.seriesTypes,p=e.win;e=c.addEvent;var I=c.defined,J=c.extend,E=c.find,D=
c.fireEvent,K=c.getOptions,L=c.isNumber,w=c.pick;c=c.setOptions;var F=g.downloadURL;c({exporting:{csv:{annotations:{itemDelimiter:"; ",join:!1},columnHeaderFormatter:null,dateFormat:"%Y-%m-%d %H:%M:%S",decimalPoint:null,itemDelimiter:null,lineDelimiter:"\n"},showTable:!1,useMultiLevelHeaders:!0,useRowspanHeaders:!0},lang:{downloadCSV:"Download CSV",downloadXLS:"Download XLS",exportData:{annotationHeader:"Annotations",categoryHeader:"Category",categoryDatetimeHeader:"DateTime"},viewData:"View data table",
hideData:"Hide data table"}});e(d,"render",function(){this.options&&this.options.exporting&&this.options.exporting.showTable&&!this.options.chart.forExport&&!this.dataTableDiv&&this.viewData()});d.prototype.setUpKeyToAxis=function(){f.arearange&&(f.arearange.prototype.keyToAxis={low:"y",high:"y"});f.gantt&&(f.gantt.prototype.keyToAxis={start:"x",end:"x"})};d.prototype.getDataRows=function(b){var d=this.hasParallelCoordinates,f=this.time,c=this.options.exporting&&this.options.exporting.csv||{},e=this.xAxis,
q={},g=[],p=[],n=[],r;var t=this.options.lang.exportData;var A=t.categoryHeader,x=t.categoryDatetimeHeader,G=function(l,d,f){if(c.columnHeaderFormatter){var h=c.columnHeaderFormatter(l,d,f);if(!1!==h)return h}return l?l instanceof a?l.options.title&&l.options.title.text||(l.dateTime?x:A):b?{columnTitle:1<f?d:l.name,topLevelColumnTitle:l.name}:l.name+(1<f?" ("+d+")":""):A},H=function(l,a,b){var d={},f={};a.forEach(function(a){var c=(l.keyToAxis&&l.keyToAxis[a]||a)+"Axis";c=L(b)?l.chart[c][b]:l[c];
d[a]=c&&c.categories||[];f[a]=c&&c.dateTime});return{categoryMap:d,dateTimeValueAxisMap:f}},y=function(a,b){return a.data.filter(function(a){return"undefined"!==typeof a.y&&a.name}).length&&b&&!b.categories&&!a.keyToAxis?a.pointArrayMap&&a.pointArrayMap.filter(function(a){return"x"===a}).length?(a.pointArrayMap.unshift("x"),a.pointArrayMap):["x","y"]:a.pointArrayMap||["y"]},h=[];var z=0;this.setUpKeyToAxis();this.series.forEach(function(a){var x=a.xAxis,l=a.options.keys||y(a,x),g=l.length,m=!a.requireSorting&&
{},C=e.indexOf(x),A=H(a,l),k;if(!1!==a.options.includeInDataExport&&!a.options.isInternal&&!1!==a.visible){E(h,function(a){return a[0]===C})||h.push([C,z]);for(k=0;k<g;)r=G(a,l[k],l.length),n.push(r.columnTitle||r),b&&p.push(r.topLevelColumnTitle||r),k++;var t={chart:a.chart,autoIncrement:a.autoIncrement,options:a.options,pointArrayMap:a.pointArrayMap};a.options.data.forEach(function(b,h){d&&(A=H(a,l,h));var y={series:t};a.pointClass.prototype.applyOptions.apply(y,[b]);b=y.x;var e=a.data[h]&&a.data[h].name;
k=0;if(!x||"name"===a.exportKey||!d&&x&&x.hasNames&&e)b=e;m&&(m[b]&&(b+="|"+h),m[b]=!0);q[b]||(q[b]=[],q[b].xValues=[]);q[b].x=y.x;q[b].name=e;for(q[b].xValues[C]=y.x;k<g;)h=l[k],e=y[h],q[b][z+k]=w(A.categoryMap[h][e],A.dateTimeValueAxisMap[h]?f.dateFormat(c.dateFormat,e):null,e),k++});z+=k}});for(m in q)Object.hasOwnProperty.call(q,m)&&g.push(q[m]);var m=b?[p,n]:[n];for(z=h.length;z--;){var u=h[z][0];var v=h[z][1];var B=e[u];g.sort(function(a,b){return a.xValues[u]-b.xValues[u]});t=G(B);m[0].splice(v,
0,t);b&&m[1]&&m[1].splice(v,0,t);g.forEach(function(a){var b=a.name;B&&!I(b)&&(B.dateTime?(a.x instanceof Date&&(a.x=a.x.getTime()),b=f.dateFormat(c.dateFormat,a.x)):b=B.categories?w(B.names[a.x],B.categories[a.x],a.x):a.x);a.splice(v,0,b)})}m=m.concat(g);D(this,"exportData",{dataRows:m});return m};d.prototype.getCSV=function(a){var b="",d=this.getDataRows(),c=this.options.exporting.csv,f=w(c.decimalPoint,","!==c.itemDelimiter&&a?(1.1).toLocaleString()[1]:"."),e=w(c.itemDelimiter,","===f?";":","),
g=c.lineDelimiter;d.forEach(function(a,c){for(var k,q=a.length;q--;)k=a[q],"string"===typeof k&&(k='"'+k+'"'),"number"===typeof k&&"."!==f&&(k=k.toString().replace(".",f)),a[q]=k;b+=a.join(e);c<d.length-1&&(b+=g)});return b};d.prototype.getTable=function(a){var b='<table id="highcharts-data-table-'+this.index+'">',c=this.options,d=a?(1.1).toLocaleString()[1]:".",f=w(c.exporting.useMultiLevelHeaders,!0);a=this.getDataRows(f);var e=0,g=f?a.shift():null,p=a.shift(),n=function(a,b,c,f){var e=w(f,"");
b="text"+(b?" "+b:"");"number"===typeof e?(e=e.toString(),","===d&&(e=e.replace(".",d)),b="number"):f||(b="empty");return"<"+a+(c?" "+c:"")+' class="'+b+'">'+e+"</"+a+">"};!1!==c.exporting.tableCaption&&(b+='<caption class="highcharts-table-caption">'+w(c.exporting.tableCaption,c.title.text?c.title.text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;"):"Chart")+"</caption>");for(var r=0,t=a.length;r<t;++r)a[r].length>
e&&(e=a[r].length);b+=function(a,b,d){var e="<thead>",g=0;d=d||b&&b.length;var h,k=0;if(h=f&&a&&b){a:if(h=a.length,b.length===h){for(;h--;)if(a[h]!==b[h]){h=!1;break a}h=!0}else h=!1;h=!h}if(h){for(e+="<tr>";g<d;++g){h=a[g];var m=a[g+1];h===m?++k:k?(e+=n("th","highcharts-table-topheading",'scope="col" colspan="'+(k+1)+'"',h),k=0):(h===b[g]?c.exporting.useRowspanHeaders?(m=2,delete b[g]):(m=1,b[g]=""):m=1,e+=n("th","highcharts-table-topheading",'scope="col"'+(1<m?' valign="top" rowspan="'+m+'"':""),
h))}e+="</tr>"}if(b){e+="<tr>";g=0;for(d=b.length;g<d;++g)"undefined"!==typeof b[g]&&(e+=n("th",null,'scope="col"',b[g]));e+="</tr>"}return e+"</thead>"}(g,p,Math.max(e,p.length));b+="<tbody>";a.forEach(function(a){b+="<tr>";for(var c=0;c<e;c++)b+=n(c?"td":"th",null,c?"":'scope="row"',a[c]);b+="</tr>"});b+="</tbody></table>";a={html:b};D(this,"afterGetTable",a);return a.html};d.prototype.downloadCSV=function(){var a=this.getCSV(!0);F(u(a,"text/csv")||"data:text/csv,\ufeff"+encodeURIComponent(a),this.getFilename()+
".csv")};d.prototype.downloadXLS=function(){var a='<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head>\x3c!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>Ark1</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--\x3e<style>td{border:none;font-family: Calibri, sans-serif;} .number{mso-number-format:"0.00";} .text{ mso-number-format:"@";}</style><meta name=ProgId content=Excel.Sheet><meta charset=UTF-8></head><body>'+
this.getTable(!0)+"</body></html>";F(u(a,"application/vnd.ms-excel")||"data:application/vnd.ms-excel;base64,"+p.btoa(unescape(encodeURIComponent(a))),this.getFilename()+".xls")};d.prototype.viewData=function(){this.dataTableDiv||(this.dataTableDiv=v.createElement("div"),this.dataTableDiv.className="highcharts-data-table",this.renderTo.parentNode.insertBefore(this.dataTableDiv,this.renderTo.nextSibling),this.dataTableDiv.innerHTML=this.getTable());if(""===this.dataTableDiv.style.display||"none"===
this.dataTableDiv.style.display)this.dataTableDiv.style.display="block";this.isDataTableVisible=!0;D(this,"afterViewData",this.dataTableDiv)};d.prototype.hideData=function(){this.dataTableDiv&&"block"===this.dataTableDiv.style.display&&(this.dataTableDiv.style.display="none");this.isDataTableVisible=!1};d.prototype.toggleDataTable=function(){var a,c=this.exportDivElements,d=null===(a=null===n||void 0===n?void 0:n.buttons)||void 0===a?void 0:a.contextButton.menuItems;a=this.options.lang;this.isDataTableVisible?
this.hideData():this.viewData();(null===n||void 0===n?0:n.menuItemDefinitions)&&(null===a||void 0===a?0:a.viewData)&&a.hideData&&d&&c&&c.length&&(c[d.indexOf("viewData")].innerHTML=this.isDataTableVisible?a.hideData:a.viewData)};var n=K().exporting;n&&(J(n.menuItemDefinitions,{downloadCSV:{textKey:"downloadCSV",onclick:function(){this.downloadCSV()}},downloadXLS:{textKey:"downloadXLS",onclick:function(){this.downloadXLS()}},viewData:{textKey:"viewData",onclick:function(){this.toggleDataTable()}}}),
n.buttons&&n.buttons.contextButton.menuItems.push("separator","downloadCSV","downloadXLS","viewData"));f.map&&(f.map.prototype.exportKey="name");f.mapbubble&&(f.mapbubble.prototype.exportKey="name");f.treemap&&(f.treemap.prototype.exportKey="name")});g(a,"masters/modules/export-data.src.js",[],function(){})});
//# sourceMappingURL=export-data.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,43 @@
/*
Highcharts JS v8.2.0 (2020-08-20)
Exporting module
(c) 2010-2019 Torstein Honsi
License: www.highcharts.com/license
*/
(function(c){"object"===typeof module&&module.exports?(c["default"]=c,module.exports=c):"function"===typeof define&&define.amd?define("highcharts/modules/exporting",["highcharts"],function(p){c(p);c.Highcharts=p;return c}):c("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(c){function p(c,l,h,k){c.hasOwnProperty(l)||(c[l]=k.apply(null,h))}c=c?c._modules:{};p(c,"Extensions/FullScreen.js",[c["Core/Chart/Chart.js"],c["Core/Globals.js"],c["Core/Utilities.js"]],function(c,l,h){var k=h.addEvent;
h=function(){function c(e){this.chart=e;this.isOpen=!1;e=e.renderTo;this.browserProps||("function"===typeof e.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:e.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:e.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",
requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:e.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}c.prototype.close=function(){var e=this.chart;if(this.isOpen&&this.browserProps&&e.container.ownerDocument instanceof Document)e.container.ownerDocument[this.browserProps.exitFullscreen]();this.unbindFullscreenEvent&&this.unbindFullscreenEvent();this.isOpen=!1;
this.setButtonText()};c.prototype.open=function(){var e=this,c=e.chart;if(e.browserProps){e.unbindFullscreenEvent=k(c.container.ownerDocument,e.browserProps.fullscreenChange,function(){e.isOpen?(e.isOpen=!1,e.close()):(e.isOpen=!0,e.setButtonText())});var h=c.renderTo[e.browserProps.requestFullscreen]();if(h)h["catch"](function(){alert("Full screen is not supported inside a frame.")});k(c,"destroy",e.unbindFullscreenEvent)}};c.prototype.setButtonText=function(){var e,c=this.chart,h=c.exportDivElements,
k=c.options.exporting,l=null===(e=null===k||void 0===k?void 0:k.buttons)||void 0===e?void 0:e.contextButton.menuItems;e=c.options.lang;(null===k||void 0===k?0:k.menuItemDefinitions)&&(null===e||void 0===e?0:e.exitFullscreen)&&e.viewFullscreen&&l&&h&&h.length&&(h[l.indexOf("viewFullscreen")].innerHTML=this.isOpen?e.exitFullscreen:k.menuItemDefinitions.viewFullscreen.text||e.viewFullscreen)};c.prototype.toggle=function(){this.isOpen?this.close():this.open()};return c}();l.Fullscreen=h;k(c,"beforeRender",
function(){this.fullscreen=new l.Fullscreen(this)});return l.Fullscreen});p(c,"Mixins/Navigation.js",[],function(){return{initUpdate:function(c){c.navigation||(c.navigation={updates:[],update:function(c,h){this.updates.forEach(function(k){k.update.call(k.context,c,h)})}})},addUpdate:function(c,l){l.navigation||this.initUpdate(l);l.navigation.updates.push({update:c,context:l})}}});p(c,"Extensions/Exporting.js",[c["Core/Chart/Chart.js"],c["Mixins/Navigation.js"],c["Core/Globals.js"],c["Core/Options.js"],
c["Core/Renderer/SVG/SVGRenderer.js"],c["Core/Utilities.js"]],function(c,l,h,k,p,e){var x=h.doc,H=h.isTouchDevice,z=h.win;k=k.defaultOptions;var t=e.addEvent,u=e.css,y=e.createElement,D=e.discardElement,w=e.extend,I=e.find,B=e.fireEvent,J=e.isObject,n=e.merge,E=e.objectEach,q=e.pick,K=e.removeEvent,L=e.uniqueKey,F=z.navigator.userAgent,G=h.Renderer.prototype.symbols,M=/Edge\/|Trident\/|MSIE /.test(F),N=/firefox/i.test(F);w(k.lang,{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",
printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"});k.navigation||(k.navigation={});n(!0,k.navigation,{buttonOptions:{theme:{},symbolSize:14,symbolX:12.5,symbolY:10.5,align:"right",buttonSpacing:3,height:22,verticalAlign:"top",width:24}});n(!0,k.navigation,{menuStyle:{border:"1px solid #999999",background:"#ffffff",padding:"5px 0"},menuItemStyle:{padding:"0.5em 1em",
color:"#333333",background:"none",fontSize:H?"14px":"11px",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#335cad",color:"#ffffff"},buttonOptions:{symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{padding:5}}});k.exporting={type:"image/png",url:"https://export.highcharts.com/",printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:"viewFullscreen printChart separator downloadPNG downloadJPEG downloadPDF downloadSVG".split(" ")}},
menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",
onclick:function(){this.exportChart({type:"image/svg+xml"})}}}};h.post=function(a,b,f){var d=y("form",n({method:"post",action:a,enctype:"multipart/form-data"},f),{display:"none"},x.body);E(b,function(a,b){y("input",{type:"hidden",name:b,value:a},null,d)});d.submit();D(d)};h.isSafari&&h.win.matchMedia("print").addListener(function(a){h.printingChart&&(a.matches?h.printingChart.beforePrint():h.printingChart.afterPrint())});w(c.prototype,{sanitizeSVG:function(a,b){var f=a.indexOf("</svg>")+6,d=a.substr(f);
a=a.substr(0,f);b&&b.exporting&&b.exporting.allowHTML&&d&&(d='<foreignObject x="0" y="0" width="'+b.chart.width+'" height="'+b.chart.height+'"><body xmlns="http://www.w3.org/1999/xhtml">'+d.replace(/(<(?:img|br).*?(?=>))>/g,"$1 />")+"</body></foreignObject>",a=a.replace("</svg>",d+"</svg>"));a=a.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|&quot;)(.*?)("|&quot;);?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/<svg /,
'<svg xmlns:xlink="http://www.w3.org/1999/xlink" ').replace(/ (|NS[0-9]+:)href=/g," xlink:href=").replace(/\n/," ").replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g,'$1="rgb($2)" $1-opacity="$3"').replace(/&nbsp;/g,"\u00a0").replace(/&shy;/g,"\u00ad");this.ieSanitizeSVG&&(a=this.ieSanitizeSVG(a));return a},getChartHTML:function(){this.styledMode&&this.inlineStyles();return this.container.innerHTML},getSVG:function(a){var b,f=n(this.options,a);f.plotOptions=n(this.userOptions.plotOptions,
a&&a.plotOptions);f.time=n(this.userOptions.time,a&&a.time);var d=y("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},x.body);var c=this.renderTo.style.width;var e=this.renderTo.style.height;c=f.exporting.sourceWidth||f.chart.width||/px$/.test(c)&&parseInt(c,10)||(f.isGantt?800:600);e=f.exporting.sourceHeight||f.chart.height||/px$/.test(e)&&parseInt(e,10)||400;w(f.chart,{animation:!1,renderTo:d,forExport:!0,renderer:"SVGRenderer",width:c,height:e});
f.exporting.enabled=!1;delete f.data;f.series=[];this.series.forEach(function(a){b=n(a.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});b.isInternal||f.series.push(b)});this.axes.forEach(function(a){a.userOptions.internalKey||(a.userOptions.internalKey=L())});var k=new h.Chart(f,this.callback);a&&["xAxis","yAxis","series"].forEach(function(b){var d={};a[b]&&(d[b]=a[b],k.update(d))});this.axes.forEach(function(a){var b=I(k.axes,function(b){return b.options.internalKey===
a.userOptions.internalKey}),d=a.getExtremes(),f=d.userMin;d=d.userMax;b&&("undefined"!==typeof f&&f!==b.min||"undefined"!==typeof d&&d!==b.max)&&b.setExtremes(f,d,!0,!1)});c=k.getChartHTML();B(this,"getSVG",{chartCopy:k});c=this.sanitizeSVG(c,f);f=null;k.destroy();D(d);return c},getSVGForExport:function(a,b){var f=this.options.exporting;return this.getSVG(n({chart:{borderRadius:0}},f.chartOptions,b,{exporting:{sourceWidth:a&&a.sourceWidth||f.sourceWidth,sourceHeight:a&&a.sourceHeight||f.sourceHeight}}))},
getFilename:function(){var a=this.userOptions.title&&this.userOptions.title.text,b=this.options.exporting.filename;if(b)return b.replace(/\//g,"-");"string"===typeof a&&(b=a.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z0-9\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,""));if(!b||5>b.length)b="chart";return b},exportChart:function(a,b){b=this.getSVGForExport(a,b);a=n(this.options.exporting,a);h.post(a.url,{filename:a.filename?
a.filename.replace(/\//g,"-"):this.getFilename(),type:a.type,width:a.width||0,scale:a.scale,svg:b},a.formAttributes)},moveContainers:function(a){(this.fixedDiv?[this.fixedDiv,this.scrollingContainer]:[this.container]).forEach(function(b){a.appendChild(b)})},beforePrint:function(){var a=x.body,b=this.options.exporting.printMaxWidth,f={childNodes:a.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0;this.pointer.reset(null,0);B(this,"beforePrint");b&&this.chartWidth>b&&(f.resetParams=[this.options.chart.width,
void 0,!1],this.setSize(b,void 0,!1));[].forEach.call(f.childNodes,function(a,b){1===a.nodeType&&(f.origDisplay[b]=a.style.display,a.style.display="none")});this.moveContainers(a);this.printReverseInfo=f},afterPrint:function(){if(this.printReverseInfo){var a=this.printReverseInfo.childNodes,b=this.printReverseInfo.origDisplay,f=this.printReverseInfo.resetParams;this.moveContainers(this.renderTo);[].forEach.call(a,function(a,f){1===a.nodeType&&(a.style.display=b[f]||"")});this.isPrinting=!1;f&&this.setSize.apply(this,
f);delete this.printReverseInfo;delete h.printingChart;B(this,"afterPrint")}},print:function(){var a=this;a.isPrinting||(h.printingChart=a,h.isSafari||a.beforePrint(),setTimeout(function(){z.focus();z.print();h.isSafari||setTimeout(function(){a.afterPrint()},1E3)},1))},contextMenu:function(a,b,f,d,c,h,k){var g=this,C=g.options.navigation,l=g.chartWidth,A=g.chartHeight,r="cache-"+a,m=g[r],v=Math.max(c,h);if(!m){g.exportContextMenu=g[r]=m=y("div",{className:a},{position:"absolute",zIndex:1E3,padding:v+
"px",pointerEvents:"auto"},g.fixedDiv||g.container);var n=y("ul",{className:"highcharts-menu"},{listStyle:"none",margin:0,padding:0},m);g.styledMode||u(n,w({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},C.menuStyle));m.hideMenu=function(){u(m,{display:"none"});k&&k.setState(0);g.openMenu=!1;u(g.renderTo,{overflow:"hidden"});e.clearTimeout(m.hideTimer);B(g,"exportMenuHidden")};g.exportEvents.push(t(m,"mouseleave",function(){m.hideTimer=z.setTimeout(m.hideMenu,
500)}),t(m,"mouseenter",function(){e.clearTimeout(m.hideTimer)}),t(x,"mouseup",function(b){g.pointer.inClass(b.target,a)||m.hideMenu()}),t(m,"click",function(){g.openMenu&&m.hideMenu()}));b.forEach(function(a){"string"===typeof a&&(a=g.options.exporting.menuItemDefinitions[a]);if(J(a,!0)){if(a.separator)var b=y("hr",null,null,n);else b=y("li",{className:"highcharts-menu-item",onclick:function(b){b&&b.stopPropagation();m.hideMenu();a.onclick&&a.onclick.apply(g,arguments)},innerHTML:a.text||g.options.lang[a.textKey]},
null,n),g.styledMode||(b.onmouseover=function(){u(this,C.menuItemHoverStyle)},b.onmouseout=function(){u(this,C.menuItemStyle)},u(b,w({cursor:"pointer"},C.menuItemStyle)));g.exportDivElements.push(b)}});g.exportDivElements.push(n,m);g.exportMenuWidth=m.offsetWidth;g.exportMenuHeight=m.offsetHeight}b={display:"block"};f+g.exportMenuWidth>l?b.right=l-f-c-v+"px":b.left=f-v+"px";d+h+g.exportMenuHeight>A&&"top"!==k.alignOptions.verticalAlign?b.bottom=A-d-v+"px":b.top=d+h-v+"px";u(m,b);u(g.renderTo,{overflow:""});
g.openMenu=!0;B(g,"exportMenuShown")},addButton:function(a){var b=this,f=b.renderer,d=n(b.options.navigation.buttonOptions,a),c=d.onclick,e=d.menuItems,h=d.symbolSize||12;b.btnCount||(b.btnCount=0);b.exportDivElements||(b.exportDivElements=[],b.exportSVGElements=[]);if(!1!==d.enabled){var g=d.theme,k=g.states,l=k&&k.hover;k=k&&k.select;var A;b.styledMode||(g.fill=q(g.fill,"#ffffff"),g.stroke=q(g.stroke,"none"));delete g.states;c?A=function(a){a&&a.stopPropagation();c.call(b,a)}:e&&(A=function(a){a&&
a.stopPropagation();b.contextMenu(r.menuClassName,e,r.translateX,r.translateY,r.width,r.height,r);r.setState(2)});d.text&&d.symbol?g.paddingLeft=q(g.paddingLeft,25):d.text||w(g,{width:d.width,height:d.height,padding:0});b.styledMode||(g["stroke-linecap"]="round",g.fill=q(g.fill,"#ffffff"),g.stroke=q(g.stroke,"none"));var r=f.button(d.text,0,0,A,g,l,k).addClass(a.className).attr({title:q(b.options.lang[d._titleKey||d.titleKey],"")});r.menuClassName=a.menuClassName||"highcharts-menu-"+b.btnCount++;
if(d.symbol){var m=f.symbol(d.symbol,d.symbolX-h/2,d.symbolY-h/2,h,h,{width:h,height:h}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(r);b.styledMode||m.attr({stroke:d.symbolStroke,fill:d.symbolFill,"stroke-width":d.symbolStrokeWidth||1})}r.add(b.exportingGroup).align(w(d,{width:r.width,x:q(d.x,b.buttonOffset)}),!0,"spacingBox");b.buttonOffset+=(r.width+d.buttonSpacing)*("right"===d.align?-1:1);b.exportSVGElements.push(r,m)}},destroyExport:function(a){var b=a?a.target:this;a=b.exportSVGElements;
var f=b.exportDivElements,d=b.exportEvents,c;a&&(a.forEach(function(a,d){a&&(a.onclick=a.ontouchstart=null,c="cache-"+a.menuClassName,b[c]&&delete b[c],b.exportSVGElements[d]=a.destroy())}),a.length=0);b.exportingGroup&&(b.exportingGroup.destroy(),delete b.exportingGroup);f&&(f.forEach(function(a,d){e.clearTimeout(a.hideTimer);K(a,"mouseleave");b.exportDivElements[d]=a.onmouseout=a.onmouseover=a.ontouchstart=a.onclick=null;D(a)}),f.length=0);d&&(d.forEach(function(a){a()}),d.length=0)}});p.prototype.inlineToAttributes=
"fill stroke strokeLinecap strokeLinejoin strokeWidth textAnchor x y".split(" ");p.prototype.inlineBlacklist=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/];p.prototype.unstyledElements=["clipPath","defs","desc"];c.prototype.inlineStyles=function(){function a(a){return a.replace(/([A-Z])/g,function(a,b){return"-"+b.toLowerCase()})}function b(c){function f(b,f){v=u=!1;if(h){for(q=h.length;q--&&!u;)u=h[q].test(f);
v=!u}"transform"===f&&"none"===b&&(v=!0);for(q=e.length;q--&&!v;)v=e[q].test(f)||"function"===typeof b;v||y[f]===b&&"svg"!==c.nodeName||g[c.nodeName][f]===b||(d&&-1===d.indexOf(f)?m+=a(f)+":"+b+";":b&&c.setAttribute(a(f),b))}var m="",v,u,q;if(1===c.nodeType&&-1===k.indexOf(c.nodeName)){var t=z.getComputedStyle(c,null);var y="svg"===c.nodeName?{}:z.getComputedStyle(c.parentNode,null);if(!g[c.nodeName]){l=p.getElementsByTagName("svg")[0];var w=p.createElementNS(c.namespaceURI,c.nodeName);l.appendChild(w);
g[c.nodeName]=n(z.getComputedStyle(w,null));"text"===c.nodeName&&delete g.text.fill;l.removeChild(w)}if(N||M)for(var x in t)f(t[x],x);else E(t,f);m&&(t=c.getAttribute("style"),c.setAttribute("style",(t?t+";":"")+m));"svg"===c.nodeName&&c.setAttribute("stroke-width","1px");"text"!==c.nodeName&&[].forEach.call(c.children||c.childNodes,b)}}var c=this.renderer,d=c.inlineToAttributes,e=c.inlineBlacklist,h=c.inlineWhitelist,k=c.unstyledElements,g={},l;c=x.createElement("iframe");u(c,{width:"1px",height:"1px",
visibility:"hidden"});x.body.appendChild(c);var p=c.contentWindow.document;p.open();p.write('<svg xmlns="http://www.w3.org/2000/svg"></svg>');p.close();b(this.container.querySelector("svg"));l.parentNode.removeChild(l)};G.menu=function(a,b,c,d){return[["M",a,b+2.5],["L",a+c,b+2.5],["M",a,b+d/2+.5],["L",a+c,b+d/2+.5],["M",a,b+d-1.5],["L",a+c,b+d-1.5]]};G.menuball=function(a,b,c,d){a=[];d=d/3-2;return a=a.concat(this.circle(c-d,b,d,d),this.circle(c-d,b+d+4,d,d),this.circle(c-d,b+2*(d+4),d,d))};c.prototype.renderExporting=
function(){var a=this,b=a.options.exporting,c=b.buttons,d=a.isDirtyExporting||!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport();d&&!1!==b.enabled&&(a.exportEvents=[],a.exportingGroup=a.exportingGroup||a.renderer.g("exporting-group").attr({zIndex:3}).add(),E(c,function(b){a.addButton(b)}),a.isDirtyExporting=!1);t(a,"destroy",a.destroyExport)};t(c,"init",function(){var a=this;a.exporting={update:function(b,c){a.isDirtyExporting=!0;n(!0,a.options.exporting,b);q(c,!0)&&a.redraw()}};
l.addUpdate(function(b,c){a.isDirtyExporting=!0;n(!0,a.options.navigation,b);q(c,!0)&&a.redraw()},a)});c.prototype.callbacks.push(function(a){a.renderExporting();t(a,"redraw",a.renderExporting)})});p(c,"masters/modules/exporting.src.js",[],function(){})});
//# sourceMappingURL=exporting.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,26 @@
/*
Highcharts JS v8.2.0 (2020-08-20)
Highcharts funnel module
(c) 2010-2019 Kacper Madej
License: www.highcharts.com/license
*/
(function(d){"object"===typeof module&&module.exports?(d["default"]=d,module.exports=d):"function"===typeof define&&define.amd?define("highcharts/modules/funnel3d",["highcharts","highcharts/highcharts-3d","highcharts/modules/cylinder"],function(y){d(y);d.Highcharts=y;return d}):d("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(d){function y(d,m,k,h){d.hasOwnProperty(m)||(d[m]=h.apply(null,k))}d=d?d._modules:{};y(d,"Series/Funnel3DSeries.js",[d["Core/Globals.js"],d["Extensions/Math3D.js"],
d["Core/Color.js"],d["Core/Utilities.js"]],function(d,m,k,h){var y=m.perspective,l=k.parse,J=h.error,E=h.extend,p=h.merge,C=h.pick,B=h.relativeLength;k=h.seriesType;var H=d.charts,K=d.seriesTypes;m=d.Renderer.prototype;var L=m.cuboidPath;k("funnel3d","column",{center:["50%","50%"],width:"90%",neckWidth:"30%",height:"100%",neckHeight:"25%",reversed:!1,gradientForSides:!0,animation:!1,edgeWidth:0,colorByPoint:!0,showInLegend:!1,dataLabels:{align:"right",crop:!1,inside:!1,overflow:"allow"}},{bindAxes:function(){d.Series.prototype.bindAxes.apply(this,
arguments);E(this.xAxis.options,{gridLineWidth:0,lineWidth:0,title:null,tickPositions:[]});E(this.yAxis.options,{gridLineWidth:0,title:null,labels:{enabled:!1}})},translate3dShapes:d.noop,translate:function(){d.Series.prototype.translate.apply(this,arguments);var a=0,b=this.chart,c=this.options,g=c.reversed,u=c.ignoreHiddenPoint,e=b.plotWidth,F=b.plotHeight,f=0,I=c.center,w=B(I[0],e),t=B(I[1],F),p=B(c.width,e),q,v,n=B(c.height,F),m=B(c.neckWidth,e),h=B(c.neckHeight,F),k=t-n/2+n-h;e=this.data;var z,
l,x,A,G,D,r;this.getWidthAt=v=function(b){var a=t-n/2;return b>k||n===h?m:m+(p-m)*(1-(b-a)/(n-h))};this.center=[w,t,n];this.centerX=w;e.forEach(function(b){u&&!1===b.visible||(a+=b.y)});e.forEach(function(e){G=null;z=a?e.y/a:0;x=t-n/2+f*n;A=x+z*n;q=v(x);D=A-x;r={gradientForSides:C(e.options.gradientForSides,c.gradientForSides),x:w,y:x,height:D,width:q,z:1,top:{width:q}};q=v(A);r.bottom={fraction:z,width:q};x>=k?r.isCylinder=!0:A>k&&(G=A,q=v(k),A=k,r.bottom.width=q,r.middle={fraction:D?(k-x)/D:0,width:q});
g&&(r.y=x=t+n/2-(f+z)*n,r.middle&&(r.middle.fraction=1-(D?r.middle.fraction:0)),q=r.width,r.width=r.bottom.width,r.bottom.width=q);e.shapeArgs=E(e.shapeArgs,r);e.percentage=100*z;e.plotX=w;e.plotY=g?t+n/2-(f+z/2)*n:(x+(G||A))/2;l=y([{x:w,y:e.plotY,z:g?-(p-v(e.plotY))/2:-v(e.plotY)/2}],b,!0)[0];e.tooltipPos=[l.x,l.y];e.dlBoxRaw={x:w,width:v(e.plotY),y:x,bottom:r.height,fullWidth:p};u&&!1===e.visible||(f+=z)})},alignDataLabel:function(a,b,c){var g=a.dlBoxRaw,u=this.chart.inverted,e=a.plotY>C(this.translatedThreshold,
this.yAxis.len),d=C(c.inside,!!this.options.stacking),f={x:g.x,y:g.y,height:0};c.align=C(c.align,!u||d?"center":e?"right":"left");c.verticalAlign=C(c.verticalAlign,u||d?"middle":e?"top":"bottom");"top"!==c.verticalAlign&&(f.y+=g.bottom/("bottom"===c.verticalAlign?1:2));f.width=this.getWidthAt(f.y);this.options.reversed&&(f.width=g.fullWidth-f.width);d?f.x-=f.width/2:"left"===c.align?(c.align="right",f.x-=1.5*f.width):"right"===c.align?(c.align="left",f.x+=f.width/2):f.x-=f.width/2;a.dlBox=f;K.column.prototype.alignDataLabel.apply(this,
arguments)}},{shapeType:"funnel3d",hasNewShapeType:d.seriesTypes.column.prototype.pointClass.prototype.hasNewShapeType});k=p(m.elements3d.cuboid,{parts:"top bottom frontUpper backUpper frontLower backLower rightUpper rightLower".split(" "),mainParts:["top","bottom"],sideGroups:["upperGroup","lowerGroup"],sideParts:{upperGroup:["frontUpper","backUpper","rightUpper"],lowerGroup:["frontLower","backLower","rightLower"]},pathType:"funnel3d",opacitySetter:function(a){var b=this,c=b.parts,g=d.charts[b.renderer.chartIndex],
u="group-opacity-"+a+"-"+g.index;b.parts=b.mainParts;b.singleSetterForParts("opacity",a);b.parts=c;g.renderer.filterId||(g.renderer.definition({tagName:"filter",id:u,children:[{tagName:"feComponentTransfer",children:[{tagName:"feFuncA",type:"table",tableValues:"0 "+a}]}]}),b.sideGroups.forEach(function(a){b[a].attr({filter:"url(#"+u+")"})}),b.renderer.styledMode&&(g.renderer.definition({tagName:"style",textContent:".highcharts-"+u+" {filter:url(#"+u+")}"}),b.sideGroups.forEach(function(b){b.addClass("highcharts-"+
u)})));return b},fillSetter:function(a){var b=this,c=l(a),g=c.rgba[3],d={top:l(a).brighten(.1).get(),bottom:l(a).brighten(-.2).get()};1>g?(c.rgba[3]=1,c=c.get("rgb"),b.attr({opacity:g})):c=a;c.linearGradient||c.radialGradient||!b.gradientForSides||(c={linearGradient:{x1:0,x2:1,y1:1,y2:1},stops:[[0,l(a).brighten(-.2).get()],[.5,a],[1,l(a).brighten(-.2).get()]]});c.linearGradient?b.sideGroups.forEach(function(a){var e=b[a].gradientBox,f=c.linearGradient,g=p(c,{linearGradient:{x1:e.x+f.x1*e.width,y1:e.y+
f.y1*e.height,x2:e.x+f.x2*e.width,y2:e.y+f.y2*e.height}});b.sideParts[a].forEach(function(b){d[b]=g})}):(p(!0,d,{frontUpper:c,backUpper:c,rightUpper:c,frontLower:c,backLower:c,rightLower:c}),c.radialGradient&&b.sideGroups.forEach(function(a){var c=b[a].gradientBox,e=c.x+c.width/2,g=c.y+c.height/2,d=Math.min(c.width,c.height);b.sideParts[a].forEach(function(a){b[a].setRadialReference([e,g,d])})}));b.singleSetterForParts("fill",null,d);b.color=b.fill=a;c.linearGradient&&[b.frontLower,b.frontUpper].forEach(function(a){(a=
(a=a.element)&&b.renderer.gradients[a.gradient])&&"userSpaceOnUse"!==a.attr("gradientUnits")&&a.attr({gradientUnits:"userSpaceOnUse"})});return b},adjustForGradient:function(){var a=this,b;a.sideGroups.forEach(function(c){var g={x:Number.MAX_VALUE,y:Number.MAX_VALUE},d={x:-Number.MAX_VALUE,y:-Number.MAX_VALUE};a.sideParts[c].forEach(function(c){b=a[c].getBBox(!0);g={x:Math.min(g.x,b.x),y:Math.min(g.y,b.y)};d={x:Math.max(d.x,b.x+b.width),y:Math.max(d.y,b.y+b.height)}});a[c].gradientBox={x:g.x,width:d.x-
g.x,y:g.y,height:d.y-g.y}})},zIndexSetter:function(){this.finishedOnAdd&&this.adjustForGradient();return this.renderer.Element.prototype.zIndexSetter.apply(this,arguments)},onAdd:function(){this.adjustForGradient();this.finishedOnAdd=!0}});m.elements3d.funnel3d=k;m.funnel3d=function(a){var b=this.element3d("funnel3d",a),c=this.styledMode,d={"stroke-width":1,stroke:"none"};b.upperGroup=this.g("funnel3d-upper-group").attr({zIndex:b.frontUpper.zIndex}).add(b);[b.frontUpper,b.backUpper,b.rightUpper].forEach(function(a){c||
a.attr(d);a.add(b.upperGroup)});b.lowerGroup=this.g("funnel3d-lower-group").attr({zIndex:b.frontLower.zIndex}).add(b);[b.frontLower,b.backLower,b.rightLower].forEach(function(a){c||a.attr(d);a.add(b.lowerGroup)});b.gradientForSides=a.gradientForSides;return b};m.funnel3dPath=function(a){this.getCylinderEnd||J("A required Highcharts module is missing: cylinder.js",!0,H[this.chartIndex]);var b=H[this.chartIndex],c=a.alphaCorrection=90-Math.abs(b.options.chart.options3d.alpha%180-90),d=L.call(this,p(a,
{depth:a.width,width:(a.width+a.bottom.width)/2})),m=d.isTop,e=!d.isFront,k=!!a.middle,f=this.getCylinderEnd(b,p(a,{x:a.x-a.width/2,z:a.z-a.width/2,alphaCorrection:c})),h=a.bottom.width,w=p(a,{width:h,x:a.x-h/2,z:a.z-h/2,alphaCorrection:c}),t=this.getCylinderEnd(b,w,!0),l=h,q=w,v=t,n=t;k&&(l=a.middle.width,q=p(a,{y:a.y+a.middle.fraction*a.height,width:l,x:a.x-l/2,z:a.z-l/2}),v=this.getCylinderEnd(b,q,!1),n=this.getCylinderEnd(b,q,!1));d={top:f,bottom:t,frontUpper:this.getCylinderFront(f,v),zIndexes:{group:d.zIndexes.group,
top:0!==m?0:3,bottom:1!==m?0:3,frontUpper:e?2:1,backUpper:e?1:2,rightUpper:e?2:1}};d.backUpper=this.getCylinderBack(f,v);f=1!==Math.min(l,a.width)/Math.max(l,a.width);d.rightUpper=this.getCylinderFront(this.getCylinderEnd(b,p(a,{x:a.x-a.width/2,z:a.z-a.width/2,alphaCorrection:f?-c:0}),!1),this.getCylinderEnd(b,p(q,{alphaCorrection:f?-c:0}),!k));k&&(f=1!==Math.min(l,h)/Math.max(l,h),p(!0,d,{frontLower:this.getCylinderFront(n,t),backLower:this.getCylinderBack(n,t),rightLower:this.getCylinderFront(this.getCylinderEnd(b,
p(w,{alphaCorrection:f?-c:0}),!0),this.getCylinderEnd(b,p(q,{alphaCorrection:f?-c:0}),!1)),zIndexes:{frontLower:e?2:1,backLower:e?1:2,rightLower:e?1:2}}));return d}});y(d,"masters/modules/funnel3d.src.js",[],function(){})});
//# sourceMappingURL=funnel3d.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,96 @@
/*
Highcharts JS v8.2.0 (2020-08-20)
3D features for Highcharts JS
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/highcharts-3d",["highcharts"],function(B){a(B);a.Highcharts=B;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function B(a,l,u,d){a.hasOwnProperty(l)||(a[l]=d.apply(null,u))}a=a?a._modules:{};B(a,"Extensions/Math3D.js",[a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,l){var u=l.pick,d=a.deg2rad,m=a.perspective3D=function(d,
k,h){k=0<h&&h<Number.POSITIVE_INFINITY?h/(d.z+k.z+h):1;return{x:d.x*k,y:d.y*k}},w=a.perspective=function(k,a,h,r){var b=a.options.chart.options3d,p=u(r,h?a.inverted:!1),n={x:a.plotWidth/2,y:a.plotHeight/2,z:b.depth/2,vd:u(b.depth,1)*u(b.viewDistance,0)},q=a.scale3d||1;r=d*b.beta*(p?-1:1);b=d*b.alpha*(p?-1:1);var c=Math.cos(b),A=Math.cos(-r),v=Math.sin(b),e=Math.sin(-r);h||(n.x+=a.plotLeft,n.y+=a.plotTop);return k.map(function(b){var d=(p?b.y:b.x)-n.x;var h=(p?b.x:b.y)-n.y;b=(b.z||0)-n.z;d={x:A*d-
e*b,y:-v*e*d+c*h-A*v*b,z:c*e*d+v*h+c*A*b};h=m(d,n,n.vd);h.x=h.x*q+n.x;h.y=h.y*q+n.y;h.z=d.z*q+n.z;return{x:p?h.y:h.x,y:p?h.x:h.y,z:h.z}})};l=a.pointCameraDistance=function(d,k){var h=k.options.chart.options3d,a=k.plotWidth/2;k=k.plotHeight/2;h=u(h.depth,1)*u(h.viewDistance,0)+h.depth;return Math.sqrt(Math.pow(a-u(d.plotX,d.x),2)+Math.pow(k-u(d.plotY,d.y),2)+Math.pow(h-u(d.plotZ,d.z),2))};var k=a.shapeArea=function(d){var k=0,h;for(h=0;h<d.length;h++){var a=(h+1)%d.length;k+=d[h].x*d[a].y-d[a].x*d[h].y}return k/
2};a=a.shapeArea3d=function(d,a,h){return k(w(d,a,h))};return{perspective:w,perspective3D:m,pointCameraDistance:l,shapeArea:k,shapeArea3D:a}});B(a,"Core/Renderer/SVG/SVGRenderer3D.js",[a["Core/Color.js"],a["Core/Globals.js"],a["Extensions/Math3D.js"],a["Core/Renderer/SVG/SVGElement.js"],a["Core/Renderer/SVG/SVGRenderer.js"],a["Core/Utilities.js"]],function(a,l,u,d,m,w){function k(c,e,f,d,b,x,D,E){var g=[],t=x-b;return x>b&&x-b>Math.PI/2+.0001?(g=g.concat(k(c,e,f,d,b,b+Math.PI/2,D,E)),g=g.concat(k(c,
e,f,d,b+Math.PI/2,x,D,E))):x<b&&b-x>Math.PI/2+.0001?(g=g.concat(k(c,e,f,d,b,b-Math.PI/2,D,E)),g=g.concat(k(c,e,f,d,b-Math.PI/2,x,D,E))):[["C",c+f*Math.cos(b)-f*F*t*Math.sin(b)+D,e+d*Math.sin(b)+d*F*t*Math.cos(b)+E,c+f*Math.cos(x)+f*F*t*Math.sin(x)+D,e+d*Math.sin(x)-d*F*t*Math.cos(x)+E,c+f*Math.cos(x)+D,e+d*Math.sin(x)+E]]}var G=a.parse,p=u.perspective,h=u.shapeArea,r=w.animObject,b=w.defined,L=w.extend,n=w.merge,q=w.objectEach,c=w.pick,A=Math.cos,v=Math.PI,e=Math.sin,C=l.charts,M=l.deg2rad;var F=
4*(Math.sqrt(2)-1)/3/(v/2);m.prototype.toLinePath=function(c,d){var f=[];c.forEach(function(c){f.push(["L",c.x,c.y])});c.length&&(f[0][0]="M",d&&f.push(["Z"]));return f};m.prototype.toLineSegments=function(c){var g=[],f=!0;c.forEach(function(c){g.push(f?["M",c.x,c.y]:["L",c.x,c.y]);f=!f});return g};m.prototype.face3d=function(g){var e=this,f=this.createElement("path");f.vertexes=[];f.insidePlotArea=!1;f.enabled=!0;f.attr=function(f){if("object"===typeof f&&(b(f.enabled)||b(f.vertexes)||b(f.insidePlotArea))){this.enabled=
c(f.enabled,this.enabled);this.vertexes=c(f.vertexes,this.vertexes);this.insidePlotArea=c(f.insidePlotArea,this.insidePlotArea);delete f.enabled;delete f.vertexes;delete f.insidePlotArea;var g=p(this.vertexes,C[e.chartIndex],this.insidePlotArea),x=e.toLinePath(g,!0);g=h(g);g=this.enabled&&0<g?"visible":"hidden";f.d=x;f.visibility=g}return d.prototype.attr.apply(this,arguments)};f.animate=function(f){if("object"===typeof f&&(b(f.enabled)||b(f.vertexes)||b(f.insidePlotArea))){this.enabled=c(f.enabled,
this.enabled);this.vertexes=c(f.vertexes,this.vertexes);this.insidePlotArea=c(f.insidePlotArea,this.insidePlotArea);delete f.enabled;delete f.vertexes;delete f.insidePlotArea;var g=p(this.vertexes,C[e.chartIndex],this.insidePlotArea),x=e.toLinePath(g,!0);g=h(g);g=this.enabled&&0<g?"visible":"hidden";f.d=x;this.attr("visibility",g)}return d.prototype.animate.apply(this,arguments)};return f.attr(g)};m.prototype.polyhedron=function(c){var g=this,f=this.g(),e=f.destroy;this.styledMode||f.attr({"stroke-linejoin":"round"});
f.faces=[];f.destroy=function(){for(var c=0;c<f.faces.length;c++)f.faces[c].destroy();return e.call(this)};f.attr=function(c,e,D,E){if("object"===typeof c&&b(c.faces)){for(;f.faces.length>c.faces.length;)f.faces.pop().destroy();for(;f.faces.length<c.faces.length;)f.faces.push(g.face3d().add(f));for(var x=0;x<c.faces.length;x++)g.styledMode&&delete c.faces[x].fill,f.faces[x].attr(c.faces[x],null,D,E);delete c.faces}return d.prototype.attr.apply(this,arguments)};f.animate=function(c,e,b){if(c&&c.faces){for(;f.faces.length>
c.faces.length;)f.faces.pop().destroy();for(;f.faces.length<c.faces.length;)f.faces.push(g.face3d().add(f));for(var x=0;x<c.faces.length;x++)f.faces[x].animate(c.faces[x],e,b);delete c.faces}return d.prototype.animate.apply(this,arguments)};return f.attr(c)};a={initArgs:function(c){var g=this,f=g.renderer,e=f[g.pathType+"Path"](c),d=e.zIndexes;g.parts.forEach(function(c){g[c]=f.path(e[c]).attr({"class":"highcharts-3d-"+c,zIndex:d[c]||0}).add(g)});g.attr({"stroke-linejoin":"round",zIndex:d.group});
g.originalDestroy=g.destroy;g.destroy=g.destroyParts;g.forcedSides=e.forcedSides},singleSetterForParts:function(c,e,f,d,b,x){var g={};d=[null,null,d||"attr",b,x];var E=f&&f.zIndexes;f?(E&&E.group&&this.attr({zIndex:E.group}),q(f,function(e,t){g[t]={};g[t][c]=e;E&&(g[t].zIndex=f.zIndexes[t]||0)}),d[1]=g):(g[c]=e,d[0]=g);return this.processParts.apply(this,d)},processParts:function(g,e,f,d,b){var x=this;x.parts.forEach(function(D){e&&(g=c(e[D],!1));if(!1!==g)x[D][f](g,d,b)});return x},destroyParts:function(){this.processParts(null,
null,"destroy");return this.originalDestroy()}};var N=n(a,{parts:["front","top","side"],pathType:"cuboid",attr:function(c,e,f,h){if("string"===typeof c&&"undefined"!==typeof e){var g=c;c={};c[g]=e}return c.shapeArgs||b(c.x)?this.singleSetterForParts("d",null,this.renderer[this.pathType+"Path"](c.shapeArgs||c)):d.prototype.attr.call(this,c,void 0,f,h)},animate:function(c,e,f){if(b(c.x)&&b(c.y)){c=this.renderer[this.pathType+"Path"](c);var g=c.forcedSides;this.singleSetterForParts("d",null,c,"animate",
e,f);this.attr({zIndex:c.zIndexes.group});g!==this.forcedSides&&(this.forcedSides=g,N.fillSetter.call(this,this.fill))}else d.prototype.animate.call(this,c,e,f);return this},fillSetter:function(c){this.forcedSides=this.forcedSides||[];this.singleSetterForParts("fill",null,{front:c,top:G(c).brighten(0<=this.forcedSides.indexOf("top")?0:.1).get(),side:G(c).brighten(0<=this.forcedSides.indexOf("side")?0:-.1).get()});this.color=this.fill=c;return this}});m.prototype.elements3d={base:a,cuboid:N};m.prototype.element3d=
function(c,e){var f=this.g();L(f,this.elements3d[c]);f.initArgs(e);return f};m.prototype.cuboid=function(c){return this.element3d("cuboid",c)};m.prototype.cuboidPath=function(c){function e(c){return 0===D&&1<c&&6>c?{x:a[c].x,y:a[c].y+10,z:a[c].z}:a[0].x===a[7].x&&4<=c?{x:a[c].x+10,y:a[c].y,z:a[c].z}:0===v&&2>c||5<c?{x:a[c].x,y:a[c].y,z:a[c].z+10}:a[c]}function f(c){return a[c]}var g=c.x,d=c.y,b=c.z||0,D=c.height,E=c.width,v=c.depth,t=C[this.chartIndex],y=t.options.chart.options3d.alpha,A=0,a=[{x:g,
y:d,z:b},{x:g+E,y:d,z:b},{x:g+E,y:d+D,z:b},{x:g,y:d+D,z:b},{x:g,y:d+D,z:b+v},{x:g+E,y:d+D,z:b+v},{x:g+E,y:d,z:b+v},{x:g,y:d,z:b+v}],q=[];a=p(a,t,c.insidePlotArea);var z=function(c,t,g){var d=[[],-1],b=c.map(f),y=t.map(f);c=c.map(e);t=t.map(e);0>h(b)?d=[b,0]:0>h(y)?d=[y,1]:g&&(q.push(g),d=0>h(c)?[b,0]:0>h(t)?[y,1]:[b,0]);return d};var k=z([3,2,1,0],[7,6,5,4],"front");c=k[0];var n=k[1];k=z([1,6,7,0],[4,5,2,3],"top");E=k[0];var r=k[1];k=z([1,2,5,6],[0,7,4,3],"side");z=k[0];k=k[1];1===k?A+=1E6*(t.plotWidth-
g):k||(A+=1E6*g);A+=10*(!r||0<=y&&180>=y||360>y&&357.5<y?t.plotHeight-d:10+d);1===n?A+=100*b:n||(A+=100*(1E3-b));return{front:this.toLinePath(c,!0),top:this.toLinePath(E,!0),side:this.toLinePath(z,!0),zIndexes:{group:Math.round(A)},forcedSides:q,isFront:n,isTop:r}};m.prototype.arc3d=function(e){function b(c){var f=!1,e={},d;c=n(c);for(d in c)-1!==a.indexOf(d)&&(e[d]=c[d],delete c[d],f=!0);return f?[e,c]:!1}var f=this.g(),g=f.renderer,a="x y r innerR start end depth".split(" ");e=n(e);e.alpha=(e.alpha||
0)*M;e.beta=(e.beta||0)*M;f.top=g.path();f.side1=g.path();f.side2=g.path();f.inn=g.path();f.out=g.path();f.onAdd=function(){var c=f.parentGroup,e=f.attr("class");f.top.add(f);["out","inn","side1","side2"].forEach(function(d){f[d].attr({"class":e+" highcharts-3d-side"}).add(c)})};["addClass","removeClass"].forEach(function(c){f[c]=function(){var e=arguments;["top","out","inn","side1","side2"].forEach(function(d){f[d][c].apply(f[d],e)})}});f.setPaths=function(c){var e=f.renderer.arc3dPath(c),d=100*
e.zTop;f.attribs=c;f.top.attr({d:e.top,zIndex:e.zTop});f.inn.attr({d:e.inn,zIndex:e.zInn});f.out.attr({d:e.out,zIndex:e.zOut});f.side1.attr({d:e.side1,zIndex:e.zSide1});f.side2.attr({d:e.side2,zIndex:e.zSide2});f.zIndex=d;f.attr({zIndex:d});c.center&&(f.top.setRadialReference(c.center),delete c.center)};f.setPaths(e);f.fillSetter=function(c){var e=G(c).brighten(-.1).get();this.fill=c;this.side1.attr({fill:e});this.side2.attr({fill:e});this.inn.attr({fill:e});this.out.attr({fill:e});this.top.attr({fill:c});
return this};["opacity","translateX","translateY","visibility"].forEach(function(c){f[c+"Setter"]=function(c,e){f[e]=c;["out","inn","side1","side2","top"].forEach(function(d){f[d].attr(e,c)})}});f.attr=function(c){var e;if("object"===typeof c&&(e=b(c))){var g=e[0];arguments[0]=e[1];L(f.attribs,g);f.setPaths(f.attribs)}return d.prototype.attr.apply(f,arguments)};f.animate=function(e,g,a){var v=this.attribs,t="data-"+Math.random().toString(26).substring(2,9);delete e.center;delete e.z;delete e.alpha;
delete e.beta;var y=r(c(g,this.renderer.globalAnimation));if(y.duration){g=b(e);f[t]=0;e[t]=1;f[t+"Setter"]=l.noop;if(g){var k=g[0];y.step=function(e,f){function d(e){return v[e]+(c(k[e],v[e])-v[e])*f.pos}f.prop===t&&f.elem.setPaths(n(v,{x:d("x"),y:d("y"),r:d("r"),innerR:d("innerR"),start:d("start"),end:d("end"),depth:d("depth")}))}}g=y}return d.prototype.animate.call(this,e,g,a)};f.destroy=function(){this.top.destroy();this.out.destroy();this.inn.destroy();this.side1.destroy();this.side2.destroy();
return d.prototype.destroy.call(this)};f.hide=function(){this.top.hide();this.out.hide();this.inn.hide();this.side1.hide();this.side2.hide()};f.show=function(c){this.top.show(c);this.out.show(c);this.inn.show(c);this.side1.show(c);this.side2.show(c)};return f};m.prototype.arc3dPath=function(c){function d(c){c%=2*Math.PI;c>Math.PI&&(c=2*Math.PI-c);return c}var f=c.x,b=c.y,g=c.start,a=c.end-.00001,h=c.r,q=c.innerR||0,n=c.depth||0,t=c.alpha,y=c.beta,J=Math.cos(g),K=Math.sin(g);c=Math.cos(a);var I=Math.sin(a),
z=h*Math.cos(y);h*=Math.cos(t);var H=q*Math.cos(y),C=q*Math.cos(t);q=n*Math.sin(y);var r=n*Math.sin(t);n=[["M",f+z*J,b+h*K]];n=n.concat(k(f,b,z,h,g,a,0,0));n.push(["L",f+H*c,b+C*I]);n=n.concat(k(f,b,H,C,a,g,0,0));n.push(["Z"]);var m=0<y?Math.PI/2:0;y=0<t?0:Math.PI/2;m=g>-m?g:a>-m?-m:g;var p=a<v-y?a:g<v-y?v-y:a,F=2*v-y;t=[["M",f+z*A(m),b+h*e(m)]];t=t.concat(k(f,b,z,h,m,p,0,0));a>F&&g<F?(t.push(["L",f+z*A(p)+q,b+h*e(p)+r]),t=t.concat(k(f,b,z,h,p,F,q,r)),t.push(["L",f+z*A(F),b+h*e(F)]),t=t.concat(k(f,
b,z,h,F,a,0,0)),t.push(["L",f+z*A(a)+q,b+h*e(a)+r]),t=t.concat(k(f,b,z,h,a,F,q,r)),t.push(["L",f+z*A(F),b+h*e(F)]),t=t.concat(k(f,b,z,h,F,p,0,0))):a>v-y&&g<v-y&&(t.push(["L",f+z*Math.cos(p)+q,b+h*Math.sin(p)+r]),t=t.concat(k(f,b,z,h,p,a,q,r)),t.push(["L",f+z*Math.cos(a),b+h*Math.sin(a)]),t=t.concat(k(f,b,z,h,a,p,0,0)));t.push(["L",f+z*Math.cos(p)+q,b+h*Math.sin(p)+r]);t=t.concat(k(f,b,z,h,p,m,q,r));t.push(["Z"]);y=[["M",f+H*J,b+C*K]];y=y.concat(k(f,b,H,C,g,a,0,0));y.push(["L",f+H*Math.cos(a)+q,b+
C*Math.sin(a)+r]);y=y.concat(k(f,b,H,C,a,g,q,r));y.push(["Z"]);J=[["M",f+z*J,b+h*K],["L",f+z*J+q,b+h*K+r],["L",f+H*J+q,b+C*K+r],["L",f+H*J,b+C*K],["Z"]];f=[["M",f+z*c,b+h*I],["L",f+z*c+q,b+h*I+r],["L",f+H*c+q,b+C*I+r],["L",f+H*c,b+C*I],["Z"]];I=Math.atan2(r,-q);b=Math.abs(a+I);c=Math.abs(g+I);g=Math.abs((g+a)/2+I);b=d(b);c=d(c);g=d(g);g*=1E5;a=1E5*c;b*=1E5;return{top:n,zTop:1E5*Math.PI+1,out:t,zOut:Math.max(g,a,b),inn:y,zInn:Math.max(g,a,b),side1:J,zSide1:.99*b,side2:f,zSide2:.99*a}}});B(a,"Core/Axis/Tick3D.js",
[a["Core/Utilities.js"]],function(a){var l=a.addEvent,u=a.extend,d=a.wrap;return function(){function a(){}a.compose=function(m){l(m,"afterGetLabelPosition",a.onAfterGetLabelPosition);d(m.prototype,"getMarkPath",a.wrapGetMarkPath)};a.onAfterGetLabelPosition=function(d){var a=this.axis.axis3D;a&&u(d.pos,a.fix3dPosition(d.pos))};a.wrapGetMarkPath=function(d){var a=this.axis.axis3D,m=d.apply(this,[].slice.call(arguments,1));if(a){var p=m[0],h=m[1];if("M"===p[0]&&"L"===h[0])return a=[a.fix3dPosition({x:p[1],
y:p[2],z:0}),a.fix3dPosition({x:h[1],y:h[2],z:0})],this.axis.chart.renderer.toLineSegments(a)}return m};return a}()});B(a,"Core/Axis/Axis3D.js",[a["Core/Globals.js"],a["Extensions/Math3D.js"],a["Core/Axis/Tick.js"],a["Core/Axis/Tick3D.js"],a["Core/Utilities.js"]],function(a,l,u,d,m){var w=l.perspective,k=l.perspective3D,G=l.shapeArea,p=m.addEvent,h=m.merge,r=m.pick,b=m.wrap,L=a.deg2rad,n=function(){function b(c){this.axis=c}b.prototype.fix3dPosition=function(c,b){var d=this.axis,e=d.chart;if("colorAxis"===
d.coll||!e.chart3d||!e.is3d())return c;var a=L*e.options.chart.options3d.alpha,h=L*e.options.chart.options3d.beta,q=r(b&&d.options.title.position3d,d.options.labels.position3d);b=r(b&&d.options.title.skew3d,d.options.labels.skew3d);var k=e.chart3d.frame3d,g=e.plotLeft,A=e.plotWidth+g,f=e.plotTop,n=e.plotHeight+f;e=!1;var p=0,m=0,l={x:0,y:1,z:0};c=d.axis3D.swapZ({x:c.x,y:c.y,z:0});if(d.isZAxis)if(d.opposite){if(null===k.axes.z.top)return{};m=c.y-f;c.x=k.axes.z.top.x;c.y=k.axes.z.top.y;g=k.axes.z.top.xDir;
e=!k.top.frontFacing}else{if(null===k.axes.z.bottom)return{};m=c.y-n;c.x=k.axes.z.bottom.x;c.y=k.axes.z.bottom.y;g=k.axes.z.bottom.xDir;e=!k.bottom.frontFacing}else if(d.horiz)if(d.opposite){if(null===k.axes.x.top)return{};m=c.y-f;c.y=k.axes.x.top.y;c.z=k.axes.x.top.z;g=k.axes.x.top.xDir;e=!k.top.frontFacing}else{if(null===k.axes.x.bottom)return{};m=c.y-n;c.y=k.axes.x.bottom.y;c.z=k.axes.x.bottom.z;g=k.axes.x.bottom.xDir;e=!k.bottom.frontFacing}else if(d.opposite){if(null===k.axes.y.right)return{};
p=c.x-A;c.x=k.axes.y.right.x;c.z=k.axes.y.right.z;g=k.axes.y.right.xDir;g={x:g.z,y:g.y,z:-g.x}}else{if(null===k.axes.y.left)return{};p=c.x-g;c.x=k.axes.y.left.x;c.z=k.axes.y.left.z;g=k.axes.y.left.xDir}"chart"!==q&&("flap"===q?d.horiz?(h=Math.sin(a),a=Math.cos(a),d.opposite&&(h=-h),e&&(h=-h),l={x:g.z*h,y:a,z:-g.x*h}):g={x:Math.cos(h),y:0,z:Math.sin(h)}:"ortho"===q?d.horiz?(l=Math.cos(a),q=Math.sin(h)*l,a=-Math.sin(a),h=-l*Math.cos(h),l={x:g.y*h-g.z*a,y:g.z*q-g.x*h,z:g.x*a-g.y*q},a=1/Math.sqrt(l.x*
l.x+l.y*l.y+l.z*l.z),e&&(a=-a),l={x:a*l.x,y:a*l.y,z:a*l.z}):g={x:Math.cos(h),y:0,z:Math.sin(h)}:d.horiz?l={x:Math.sin(h)*Math.sin(a),y:Math.cos(a),z:-Math.cos(h)*Math.sin(a)}:g={x:Math.cos(h),y:0,z:Math.sin(h)});c.x+=p*g.x+m*l.x;c.y+=p*g.y+m*l.y;c.z+=p*g.z+m*l.z;e=w([c],d.chart)[0];b&&(0>G(w([c,{x:c.x+g.x,y:c.y+g.y,z:c.z+g.z},{x:c.x+l.x,y:c.y+l.y,z:c.z+l.z}],d.chart))&&(g={x:-g.x,y:-g.y,z:-g.z}),c=w([{x:c.x,y:c.y,z:c.z},{x:c.x+g.x,y:c.y+g.y,z:c.z+g.z},{x:c.x+l.x,y:c.y+l.y,z:c.z+l.z}],d.chart),e.matrix=
[c[1].x-c[0].x,c[1].y-c[0].y,c[2].x-c[0].x,c[2].y-c[0].y,e.x,e.y],e.matrix[4]-=e.x*e.matrix[0]+e.y*e.matrix[2],e.matrix[5]-=e.x*e.matrix[1]+e.y*e.matrix[3]);return e};b.prototype.swapZ=function(c,d){var b=this.axis;return b.isZAxis?(d=d?0:b.chart.plotLeft,{x:d+c.z,y:c.y,z:c.x-d}):c};return b}();return function(){function a(){}a.compose=function(c){h(!0,c.defaultOptions,a.defaultOptions);c.keepProps.push("axis3D");p(c,"init",a.onInit);p(c,"afterSetOptions",a.onAfterSetOptions);p(c,"drawCrosshair",
a.onDrawCrosshair);p(c,"destroy",a.onDestroy);c=c.prototype;b(c,"getLinePath",a.wrapGetLinePath);b(c,"getPlotBandPath",a.wrapGetPlotBandPath);b(c,"getPlotLinePath",a.wrapGetPlotLinePath);b(c,"getSlotWidth",a.wrapGetSlotWidth);b(c,"getTitlePosition",a.wrapGetTitlePosition);d.compose(u)};a.onAfterSetOptions=function(){var c=this.chart,d=this.options;c.is3d&&c.is3d()&&"colorAxis"!==this.coll&&(d.tickWidth=r(d.tickWidth,0),d.gridLineWidth=r(d.gridLineWidth,1))};a.onDestroy=function(){["backFrame","bottomFrame",
"sideFrame"].forEach(function(c){this[c]&&(this[c]=this[c].destroy())},this)};a.onDrawCrosshair=function(c){this.chart.is3d()&&"colorAxis"!==this.coll&&c.point&&(c.point.crosshairPos=this.isXAxis?c.point.axisXpos:this.len-c.point.axisYpos)};a.onInit=function(){this.axis3D||(this.axis3D=new n(this))};a.wrapGetLinePath=function(c){return this.chart.is3d()&&"colorAxis"!==this.coll?[]:c.apply(this,[].slice.call(arguments,1))};a.wrapGetPlotBandPath=function(c){if(!this.chart.is3d()||"colorAxis"===this.coll)return c.apply(this,
[].slice.call(arguments,1));var d=arguments,a=d[2],e=[];d=this.getPlotLinePath({value:d[1]});a=this.getPlotLinePath({value:a});if(d&&a)for(var b=0;b<d.length;b+=2){var h=d[b],k=d[b+1],n=a[b],g=a[b+1];"M"===h[0]&&"L"===k[0]&&"M"===n[0]&&"L"===g[0]&&e.push(h,k,g,["L",n[1],n[2]],["Z"])}return e};a.wrapGetPlotLinePath=function(c){var d=this.axis3D,a=this.chart,e=c.apply(this,[].slice.call(arguments,1));if("colorAxis"===this.coll||!a.chart3d||!a.is3d()||null===e)return e;var b=a.options.chart.options3d,
h=this.isZAxis?a.plotWidth:b.depth;b=a.chart3d.frame3d;var k=e[0],n=e[1];e=[];"M"===k[0]&&"L"===n[0]&&(d=[d.swapZ({x:k[1],y:k[2],z:0}),d.swapZ({x:k[1],y:k[2],z:h}),d.swapZ({x:n[1],y:n[2],z:0}),d.swapZ({x:n[1],y:n[2],z:h})],this.horiz?(this.isZAxis?(b.left.visible&&e.push(d[0],d[2]),b.right.visible&&e.push(d[1],d[3])):(b.front.visible&&e.push(d[0],d[2]),b.back.visible&&e.push(d[1],d[3])),b.top.visible&&e.push(d[0],d[1]),b.bottom.visible&&e.push(d[2],d[3])):(b.front.visible&&e.push(d[0],d[2]),b.back.visible&&
e.push(d[1],d[3]),b.left.visible&&e.push(d[0],d[1]),b.right.visible&&e.push(d[2],d[3])),e=w(e,this.chart,!1));return a.renderer.toLineSegments(e)};a.wrapGetSlotWidth=function(c,d){var b=this.chart,a=this.ticks,h=this.gridGroup;if(this.categories&&b.frameShapes&&b.is3d()&&h&&d&&d.label){h=h.element.childNodes[0].getBBox();var n=b.frameShapes.left.getBBox(),q=b.options.chart.options3d;b={x:b.plotWidth/2,y:b.plotHeight/2,z:q.depth/2,vd:r(q.depth,1)*r(q.viewDistance,0)};var p,g;q=d.pos;var m=a[q-1];a=
a[q+1];0!==q&&m&&m.label.xy&&(p=k({x:m.label.xy.x,y:m.label.xy.y,z:null},b,b.vd));a&&a.label.xy&&(g=k({x:a.label.xy.x,y:a.label.xy.y,z:null},b,b.vd));a={x:d.label.xy.x,y:d.label.xy.y,z:null};a=k(a,b,b.vd);return Math.abs(p?a.x-p.x:g?g.x-a.x:h.x-n.x)}return c.apply(this,[].slice.call(arguments,1))};a.wrapGetTitlePosition=function(c){var d=c.apply(this,[].slice.call(arguments,1));return this.axis3D?this.axis3D.fix3dPosition(d,!0):d};a.defaultOptions={labels:{position3d:"offset",skew3d:!1},title:{position3d:null,
skew3d:null}};return a}()});B(a,"Core/Axis/ZAxis.js",[a["Core/Axis/Axis.js"],a["Core/Utilities.js"]],function(a,l){var u=this&&this.__extends||function(){var d=function(a,b){d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var a in b)b.hasOwnProperty(a)&&(d[a]=b[a])};return d(a,b)};return function(a,b){function h(){this.constructor=a}d(a,b);a.prototype=null===b?Object.create(b):(h.prototype=b.prototype,new h)}}(),d=l.addEvent,m=l.merge,w=l.pick,
k=l.splat,G=function(){function a(){}a.compose=function(h){d(h,"afterGetAxes",a.onAfterGetAxes);h=h.prototype;h.addZAxis=a.wrapAddZAxis;h.collectionsWithInit.zAxis=[h.addZAxis];h.collectionsWithUpdate.push("zAxis")};a.onAfterGetAxes=function(){var d=this,a=this.options;a=a.zAxis=k(a.zAxis||{});d.is3d()&&(d.zAxis=[],a.forEach(function(a,b){a.index=b;a.isX=!0;d.addZAxis(a).setScale()}))};a.wrapAddZAxis=function(d){return new p(this,d)};return a}(),p=function(d){function a(a,h){a=d.call(this,a,h)||this;
a.isZAxis=!0;return a}u(a,d);a.prototype.getSeriesExtremes=function(){var d=this,a=d.chart;d.hasVisibleSeries=!1;d.dataMin=d.dataMax=d.ignoreMinPadding=d.ignoreMaxPadding=void 0;d.stacking&&d.stacking.buildStacks();d.series.forEach(function(b){!b.visible&&a.options.chart&&a.options.chart.ignoreHiddenSeries||(d.hasVisibleSeries=!0,b=b.zData,b.length&&(d.dataMin=Math.min(w(d.dataMin,b[0]),Math.min.apply(null,b)),d.dataMax=Math.max(w(d.dataMax,b[0]),Math.max.apply(null,b))))})};a.prototype.setAxisSize=
function(){var a=this.chart;d.prototype.setAxisSize.call(this);this.width=this.len=a.options.chart&&a.options.chart.options3d&&a.options.chart.options3d.depth||0;this.right=a.chartWidth-this.width-this.left};a.prototype.setOptions=function(a){a=m({offset:0,lineWidth:0},a);d.prototype.setOptions.call(this,a);this.coll="zAxis"};a.ZChartComposition=G;return a}(a);return p});B(a,"Core/Chart/Chart3D.js",[a["Core/Axis/Axis.js"],a["Core/Axis/Axis3D.js"],a["Core/Chart/Chart.js"],a["Core/Globals.js"],a["Extensions/Math3D.js"],
a["Core/Options.js"],a["Core/Utilities.js"],a["Core/Axis/ZAxis.js"]],function(a,l,u,d,m,w,k,G){var p=m.perspective,h=m.shapeArea3D,r=w.defaultOptions,b=k.addEvent;m=k.Fx;var B=k.isArray,n=k.merge,q=k.pick,c=k.wrap,A;(function(a){function e(c){this.is3d()&&"scatter"===c.options.type&&(c.options.type="scatter3d")}function k(){if(this.chart3d&&this.is3d()){var c=this.renderer,a=this.options.chart.options3d,b=this.chart3d.get3dFrame(),e=this.plotLeft,f=this.plotLeft+this.plotWidth,g=this.plotTop,h=this.plotTop+
this.plotHeight;a=a.depth;var k=e-(b.left.visible?b.left.size:0),q=f+(b.right.visible?b.right.size:0),n=g-(b.top.visible?b.top.size:0),m=h+(b.bottom.visible?b.bottom.size:0),p=0-(b.front.visible?b.front.size:0),l=a+(b.back.visible?b.back.size:0),v=this.hasRendered?"animate":"attr";this.chart3d.frame3d=b;this.frameShapes||(this.frameShapes={bottom:c.polyhedron().add(),top:c.polyhedron().add(),left:c.polyhedron().add(),right:c.polyhedron().add(),back:c.polyhedron().add(),front:c.polyhedron().add()});
this.frameShapes.bottom[v]({"class":"highcharts-3d-frame highcharts-3d-frame-bottom",zIndex:b.bottom.frontFacing?-1E3:1E3,faces:[{fill:d.color(b.bottom.color).brighten(.1).get(),vertexes:[{x:k,y:m,z:p},{x:q,y:m,z:p},{x:q,y:m,z:l},{x:k,y:m,z:l}],enabled:b.bottom.visible},{fill:d.color(b.bottom.color).brighten(.1).get(),vertexes:[{x:e,y:h,z:a},{x:f,y:h,z:a},{x:f,y:h,z:0},{x:e,y:h,z:0}],enabled:b.bottom.visible},{fill:d.color(b.bottom.color).brighten(-.1).get(),vertexes:[{x:k,y:m,z:p},{x:k,y:m,z:l},
{x:e,y:h,z:a},{x:e,y:h,z:0}],enabled:b.bottom.visible&&!b.left.visible},{fill:d.color(b.bottom.color).brighten(-.1).get(),vertexes:[{x:q,y:m,z:l},{x:q,y:m,z:p},{x:f,y:h,z:0},{x:f,y:h,z:a}],enabled:b.bottom.visible&&!b.right.visible},{fill:d.color(b.bottom.color).get(),vertexes:[{x:q,y:m,z:p},{x:k,y:m,z:p},{x:e,y:h,z:0},{x:f,y:h,z:0}],enabled:b.bottom.visible&&!b.front.visible},{fill:d.color(b.bottom.color).get(),vertexes:[{x:k,y:m,z:l},{x:q,y:m,z:l},{x:f,y:h,z:a},{x:e,y:h,z:a}],enabled:b.bottom.visible&&
!b.back.visible}]});this.frameShapes.top[v]({"class":"highcharts-3d-frame highcharts-3d-frame-top",zIndex:b.top.frontFacing?-1E3:1E3,faces:[{fill:d.color(b.top.color).brighten(.1).get(),vertexes:[{x:k,y:n,z:l},{x:q,y:n,z:l},{x:q,y:n,z:p},{x:k,y:n,z:p}],enabled:b.top.visible},{fill:d.color(b.top.color).brighten(.1).get(),vertexes:[{x:e,y:g,z:0},{x:f,y:g,z:0},{x:f,y:g,z:a},{x:e,y:g,z:a}],enabled:b.top.visible},{fill:d.color(b.top.color).brighten(-.1).get(),vertexes:[{x:k,y:n,z:l},{x:k,y:n,z:p},{x:e,
y:g,z:0},{x:e,y:g,z:a}],enabled:b.top.visible&&!b.left.visible},{fill:d.color(b.top.color).brighten(-.1).get(),vertexes:[{x:q,y:n,z:p},{x:q,y:n,z:l},{x:f,y:g,z:a},{x:f,y:g,z:0}],enabled:b.top.visible&&!b.right.visible},{fill:d.color(b.top.color).get(),vertexes:[{x:k,y:n,z:p},{x:q,y:n,z:p},{x:f,y:g,z:0},{x:e,y:g,z:0}],enabled:b.top.visible&&!b.front.visible},{fill:d.color(b.top.color).get(),vertexes:[{x:q,y:n,z:l},{x:k,y:n,z:l},{x:e,y:g,z:a},{x:f,y:g,z:a}],enabled:b.top.visible&&!b.back.visible}]});
this.frameShapes.left[v]({"class":"highcharts-3d-frame highcharts-3d-frame-left",zIndex:b.left.frontFacing?-1E3:1E3,faces:[{fill:d.color(b.left.color).brighten(.1).get(),vertexes:[{x:k,y:m,z:p},{x:e,y:h,z:0},{x:e,y:h,z:a},{x:k,y:m,z:l}],enabled:b.left.visible&&!b.bottom.visible},{fill:d.color(b.left.color).brighten(.1).get(),vertexes:[{x:k,y:n,z:l},{x:e,y:g,z:a},{x:e,y:g,z:0},{x:k,y:n,z:p}],enabled:b.left.visible&&!b.top.visible},{fill:d.color(b.left.color).brighten(-.1).get(),vertexes:[{x:k,y:m,
z:l},{x:k,y:n,z:l},{x:k,y:n,z:p},{x:k,y:m,z:p}],enabled:b.left.visible},{fill:d.color(b.left.color).brighten(-.1).get(),vertexes:[{x:e,y:g,z:a},{x:e,y:h,z:a},{x:e,y:h,z:0},{x:e,y:g,z:0}],enabled:b.left.visible},{fill:d.color(b.left.color).get(),vertexes:[{x:k,y:m,z:p},{x:k,y:n,z:p},{x:e,y:g,z:0},{x:e,y:h,z:0}],enabled:b.left.visible&&!b.front.visible},{fill:d.color(b.left.color).get(),vertexes:[{x:k,y:n,z:l},{x:k,y:m,z:l},{x:e,y:h,z:a},{x:e,y:g,z:a}],enabled:b.left.visible&&!b.back.visible}]});this.frameShapes.right[v]({"class":"highcharts-3d-frame highcharts-3d-frame-right",
zIndex:b.right.frontFacing?-1E3:1E3,faces:[{fill:d.color(b.right.color).brighten(.1).get(),vertexes:[{x:q,y:m,z:l},{x:f,y:h,z:a},{x:f,y:h,z:0},{x:q,y:m,z:p}],enabled:b.right.visible&&!b.bottom.visible},{fill:d.color(b.right.color).brighten(.1).get(),vertexes:[{x:q,y:n,z:p},{x:f,y:g,z:0},{x:f,y:g,z:a},{x:q,y:n,z:l}],enabled:b.right.visible&&!b.top.visible},{fill:d.color(b.right.color).brighten(-.1).get(),vertexes:[{x:f,y:g,z:0},{x:f,y:h,z:0},{x:f,y:h,z:a},{x:f,y:g,z:a}],enabled:b.right.visible},{fill:d.color(b.right.color).brighten(-.1).get(),
vertexes:[{x:q,y:m,z:p},{x:q,y:n,z:p},{x:q,y:n,z:l},{x:q,y:m,z:l}],enabled:b.right.visible},{fill:d.color(b.right.color).get(),vertexes:[{x:q,y:n,z:p},{x:q,y:m,z:p},{x:f,y:h,z:0},{x:f,y:g,z:0}],enabled:b.right.visible&&!b.front.visible},{fill:d.color(b.right.color).get(),vertexes:[{x:q,y:m,z:l},{x:q,y:n,z:l},{x:f,y:g,z:a},{x:f,y:h,z:a}],enabled:b.right.visible&&!b.back.visible}]});this.frameShapes.back[v]({"class":"highcharts-3d-frame highcharts-3d-frame-back",zIndex:b.back.frontFacing?-1E3:1E3,faces:[{fill:d.color(b.back.color).brighten(.1).get(),
vertexes:[{x:q,y:m,z:l},{x:k,y:m,z:l},{x:e,y:h,z:a},{x:f,y:h,z:a}],enabled:b.back.visible&&!b.bottom.visible},{fill:d.color(b.back.color).brighten(.1).get(),vertexes:[{x:k,y:n,z:l},{x:q,y:n,z:l},{x:f,y:g,z:a},{x:e,y:g,z:a}],enabled:b.back.visible&&!b.top.visible},{fill:d.color(b.back.color).brighten(-.1).get(),vertexes:[{x:k,y:m,z:l},{x:k,y:n,z:l},{x:e,y:g,z:a},{x:e,y:h,z:a}],enabled:b.back.visible&&!b.left.visible},{fill:d.color(b.back.color).brighten(-.1).get(),vertexes:[{x:q,y:n,z:l},{x:q,y:m,
z:l},{x:f,y:h,z:a},{x:f,y:g,z:a}],enabled:b.back.visible&&!b.right.visible},{fill:d.color(b.back.color).get(),vertexes:[{x:e,y:g,z:a},{x:f,y:g,z:a},{x:f,y:h,z:a},{x:e,y:h,z:a}],enabled:b.back.visible},{fill:d.color(b.back.color).get(),vertexes:[{x:k,y:m,z:l},{x:q,y:m,z:l},{x:q,y:n,z:l},{x:k,y:n,z:l}],enabled:b.back.visible}]});this.frameShapes.front[v]({"class":"highcharts-3d-frame highcharts-3d-frame-front",zIndex:b.front.frontFacing?-1E3:1E3,faces:[{fill:d.color(b.front.color).brighten(.1).get(),
vertexes:[{x:k,y:m,z:p},{x:q,y:m,z:p},{x:f,y:h,z:0},{x:e,y:h,z:0}],enabled:b.front.visible&&!b.bottom.visible},{fill:d.color(b.front.color).brighten(.1).get(),vertexes:[{x:q,y:n,z:p},{x:k,y:n,z:p},{x:e,y:g,z:0},{x:f,y:g,z:0}],enabled:b.front.visible&&!b.top.visible},{fill:d.color(b.front.color).brighten(-.1).get(),vertexes:[{x:k,y:n,z:p},{x:k,y:m,z:p},{x:e,y:h,z:0},{x:e,y:g,z:0}],enabled:b.front.visible&&!b.left.visible},{fill:d.color(b.front.color).brighten(-.1).get(),vertexes:[{x:q,y:m,z:p},{x:q,
y:n,z:p},{x:f,y:g,z:0},{x:f,y:h,z:0}],enabled:b.front.visible&&!b.right.visible},{fill:d.color(b.front.color).get(),vertexes:[{x:f,y:g,z:0},{x:e,y:g,z:0},{x:e,y:h,z:0},{x:f,y:h,z:0}],enabled:b.front.visible},{fill:d.color(b.front.color).get(),vertexes:[{x:q,y:m,z:p},{x:k,y:m,z:p},{x:k,y:n,z:p},{x:q,y:n,z:p}],enabled:b.front.visible}]})}}function m(){this.styledMode&&(this.renderer.definition({tagName:"style",textContent:".highcharts-3d-top{filter: url(#highcharts-brighter)}\n.highcharts-3d-side{filter: url(#highcharts-darker)}\n"}),
[{name:"darker",slope:.6},{name:"brighter",slope:1.4}].forEach(function(c){this.renderer.definition({tagName:"filter",id:"highcharts-"+c.name,children:[{tagName:"feComponentTransfer",children:[{tagName:"feFuncR",type:"linear",slope:c.slope},{tagName:"feFuncG",type:"linear",slope:c.slope},{tagName:"feFuncB",type:"linear",slope:c.slope}]}]})},this))}function l(){var c=this.options;this.is3d()&&(c.series||[]).forEach(function(b){"scatter"===(b.type||c.chart.type||c.chart.defaultSeriesType)&&(b.type=
"scatter3d")})}function v(){var c=this.options.chart.options3d;if(this.chart3d&&this.is3d()){c&&(c.alpha=c.alpha%360+(0<=c.alpha?0:360),c.beta=c.beta%360+(0<=c.beta?0:360));var b=this.inverted,a=this.clipBox,d=this.margin;a[b?"y":"x"]=-(d[3]||0);a[b?"x":"y"]=-(d[0]||0);a[b?"height":"width"]=this.chartWidth+(d[3]||0)+(d[1]||0);a[b?"width":"height"]=this.chartHeight+(d[0]||0)+(d[2]||0);this.scale3d=1;!0===c.fitToPlot&&(this.scale3d=this.chart3d.getScale(c.depth));this.chart3d.frame3d=this.chart3d.get3dFrame()}}
function g(){this.is3d()&&(this.isDirtyBox=!0)}function A(){this.chart3d&&this.is3d()&&(this.chart3d.frame3d=this.chart3d.get3dFrame())}function f(){this.chart3d||(this.chart3d=new D(this))}function u(c){return this.is3d()||c.apply(this,[].slice.call(arguments,1))}function w(c){var b=this.series.length;if(this.is3d())for(;b--;)c=this.series[b],c.translate(),c.render();else c.call(this)}function G(c){c.apply(this,[].slice.call(arguments,1));this.is3d()&&(this.container.className+=" highcharts-3d-chart")}
var D=function(){function c(c){this.frame3d=void 0;this.chart=c}c.prototype.get3dFrame=function(){var c=this.chart,b=c.options.chart.options3d,a=b.frame,d=c.plotLeft,e=c.plotLeft+c.plotWidth,f=c.plotTop,g=c.plotTop+c.plotHeight,k=b.depth,n=function(a){a=h(a,c);return.5<a?1:-.5>a?-1:0},m=n([{x:d,y:g,z:k},{x:e,y:g,z:k},{x:e,y:g,z:0},{x:d,y:g,z:0}]),l=n([{x:d,y:f,z:0},{x:e,y:f,z:0},{x:e,y:f,z:k},{x:d,y:f,z:k}]),v=n([{x:d,y:f,z:0},{x:d,y:f,z:k},{x:d,y:g,z:k},{x:d,y:g,z:0}]),r=n([{x:e,y:f,z:k},{x:e,y:f,
z:0},{x:e,y:g,z:0},{x:e,y:g,z:k}]),A=n([{x:d,y:g,z:0},{x:e,y:g,z:0},{x:e,y:f,z:0},{x:d,y:f,z:0}]);n=n([{x:d,y:f,z:k},{x:e,y:f,z:k},{x:e,y:g,z:k},{x:d,y:g,z:k}]);var u=!1,F=!1,w=!1,G=!1;[].concat(c.xAxis,c.yAxis,c.zAxis).forEach(function(c){c&&(c.horiz?c.opposite?F=!0:u=!0:c.opposite?G=!0:w=!0)});var C=function(c,a,b){for(var d=["size","color","visible"],e={},f=0;f<d.length;f++)for(var g=d[f],h=0;h<c.length;h++)if("object"===typeof c[h]){var k=c[h][g];if("undefined"!==typeof k&&null!==k){e[g]=k;break}}c=
b;!0===e.visible||!1===e.visible?c=e.visible:"auto"===e.visible&&(c=0<a);return{size:q(e.size,1),color:q(e.color,"none"),frontFacing:0<a,visible:c}};a={axes:{},bottom:C([a.bottom,a.top,a],m,u),top:C([a.top,a.bottom,a],l,F),left:C([a.left,a.right,a.side,a],v,w),right:C([a.right,a.left,a.side,a],r,G),back:C([a.back,a.front,a],n,!0),front:C([a.front,a.back,a],A,!1)};"auto"===b.axisLabelPosition?(r=function(c,a){return c.visible!==a.visible||c.visible&&a.visible&&c.frontFacing!==a.frontFacing},b=[],r(a.left,
a.front)&&b.push({y:(f+g)/2,x:d,z:0,xDir:{x:1,y:0,z:0}}),r(a.left,a.back)&&b.push({y:(f+g)/2,x:d,z:k,xDir:{x:0,y:0,z:-1}}),r(a.right,a.front)&&b.push({y:(f+g)/2,x:e,z:0,xDir:{x:0,y:0,z:1}}),r(a.right,a.back)&&b.push({y:(f+g)/2,x:e,z:k,xDir:{x:-1,y:0,z:0}}),m=[],r(a.bottom,a.front)&&m.push({x:(d+e)/2,y:g,z:0,xDir:{x:1,y:0,z:0}}),r(a.bottom,a.back)&&m.push({x:(d+e)/2,y:g,z:k,xDir:{x:-1,y:0,z:0}}),l=[],r(a.top,a.front)&&l.push({x:(d+e)/2,y:f,z:0,xDir:{x:1,y:0,z:0}}),r(a.top,a.back)&&l.push({x:(d+e)/
2,y:f,z:k,xDir:{x:-1,y:0,z:0}}),v=[],r(a.bottom,a.left)&&v.push({z:(0+k)/2,y:g,x:d,xDir:{x:0,y:0,z:-1}}),r(a.bottom,a.right)&&v.push({z:(0+k)/2,y:g,x:e,xDir:{x:0,y:0,z:1}}),g=[],r(a.top,a.left)&&g.push({z:(0+k)/2,y:f,x:d,xDir:{x:0,y:0,z:-1}}),r(a.top,a.right)&&g.push({z:(0+k)/2,y:f,x:e,xDir:{x:0,y:0,z:1}}),d=function(a,b,d){if(0===a.length)return null;if(1===a.length)return a[0];for(var e=0,f=p(a,c,!1),g=1;g<f.length;g++)d*f[g][b]>d*f[e][b]?e=g:d*f[g][b]===d*f[e][b]&&f[g].z<f[e].z&&(e=g);return a[e]},
a.axes={y:{left:d(b,"x",-1),right:d(b,"x",1)},x:{top:d(l,"y",-1),bottom:d(m,"y",1)},z:{top:d(g,"y",-1),bottom:d(v,"y",1)}}):a.axes={y:{left:{x:d,z:0,xDir:{x:1,y:0,z:0}},right:{x:e,z:0,xDir:{x:0,y:0,z:1}}},x:{top:{y:f,z:0,xDir:{x:1,y:0,z:0}},bottom:{y:g,z:0,xDir:{x:1,y:0,z:0}}},z:{top:{x:w?e:d,y:f,xDir:w?{x:0,y:0,z:1}:{x:0,y:0,z:-1}},bottom:{x:w?e:d,y:g,xDir:w?{x:0,y:0,z:1}:{x:0,y:0,z:-1}}}};return a};c.prototype.getScale=function(c){var a=this.chart,b=a.plotLeft,d=a.plotWidth+b,e=a.plotTop,f=a.plotHeight+
e,g=b+a.plotWidth/2,h=e+a.plotHeight/2,k=Number.MAX_VALUE,n=-Number.MAX_VALUE,q=Number.MAX_VALUE,m=-Number.MAX_VALUE,l=1;var v=[{x:b,y:e,z:0},{x:b,y:e,z:c}];[0,1].forEach(function(c){v.push({x:d,y:v[c].y,z:v[c].z})});[0,1,2,3].forEach(function(c){v.push({x:v[c].x,y:f,z:v[c].z})});v=p(v,a,!1);v.forEach(function(c){k=Math.min(k,c.x);n=Math.max(n,c.x);q=Math.min(q,c.y);m=Math.max(m,c.y)});b>k&&(l=Math.min(l,1-Math.abs((b+g)/(k+g))%1));d<n&&(l=Math.min(l,(d-g)/(n-g)));e>q&&(l=0>q?Math.min(l,(e+h)/(-q+
e+h)):Math.min(l,1-(e+h)/(q+h)%1));f<m&&(l=Math.min(l,Math.abs((f-h)/(m-h))));return l};return c}();a.Composition=D;a.defaultOptions={chart:{options3d:{enabled:!1,alpha:0,beta:0,depth:100,fitToPlot:!0,viewDistance:25,axisLabelPosition:null,frame:{visible:"default",size:1,bottom:{},top:{},left:{},right:{},back:{},front:{}}}}};a.compose=function(h,q){var p=h.prototype;q=q.prototype;p.is3d=function(){return this.options.chart.options3d&&this.options.chart.options3d.enabled};p.propsRequireDirtyBox.push("chart.options3d");
p.propsRequireUpdateSeries.push("chart.options3d");q.matrixSetter=function(){if(1>this.pos&&(B(this.start)||B(this.end))){var c=this.start||[1,0,0,1,0,0],a=this.end||[1,0,0,1,0,0];var b=[];for(var d=0;6>d;d++)b.push(this.pos*a[d]+(1-this.pos)*c[d])}else b=this.end;this.elem.attr(this.prop,b,null,!0)};n(!0,r,a.defaultOptions);b(h,"init",f);b(h,"addSeries",e);b(h,"afterDrawChartBox",k);b(h,"afterGetContainer",m);b(h,"afterInit",l);b(h,"afterSetChartSize",v);b(h,"beforeRedraw",g);b(h,"beforeRender",
A);c(d.Chart.prototype,"isInsidePlot",u);c(h,"renderSeries",w);c(h,"setClassName",G)}})(A||(A={}));A.compose(u,m);G.ZChartComposition.compose(u);l.compose(a);"";return A});B(a,"Core/Series/Series3D.js",[a["Core/Globals.js"],a["Extensions/Math3D.js"],a["Core/Utilities.js"]],function(a,l,u){var d=l.perspective;l=u.addEvent;var m=u.pick;l(a.Series,"afterTranslate",function(){this.chart.is3d()&&this.translate3dPoints()});a.Series.prototype.translate3dPoints=function(){var a=this.chart,k=m(this.zAxis,
a.options.zAxis[0]),l=[],p;for(p=0;p<this.data.length;p++){var h=this.data[p];if(k&&k.translate){var r=k.logarithmic&&k.val2lin?k.val2lin(h.z):h.z;h.plotZ=k.translate(r);h.isInside=h.isInside?r>=k.min&&r<=k.max:!1}else h.plotZ=0;h.axisXpos=h.plotX;h.axisYpos=h.plotY;h.axisZpos=h.plotZ;l.push({x:h.plotX,y:h.plotY,z:h.plotZ})}a=d(l,a,!0);for(p=0;p<this.data.length;p++)h=this.data[p],k=a[p],h.plotX=k.x,h.plotY=k.y,h.plotZ=k.z}});B(a,"Series/Column3DSeries.js",[a["Core/Globals.js"],a["Extensions/Math3D.js"],
a["Extensions/Stacking.js"],a["Core/Utilities.js"]],function(a,l,u,d){function m(a,b){var c=a.series,d={},k,e=1;c.forEach(function(a){k=h(a.options.stack,b?0:c.length-1-a.index);d[k]?d[k].series.push(a):(d[k]={series:[a],position:e},e++)});d.totalStacks=e+1;return d}function w(a){var b=a.apply(this,[].slice.call(arguments,1));this.chart.is3d&&this.chart.is3d()&&(b.stroke=this.options.edgeColor||b.fill,b["stroke-width"]=h(this.options.edgeWidth,1));return b}function k(a,b,c){var d=this.chart.is3d&&
this.chart.is3d();d&&(this.options.inactiveOtherPoints=!0);a.call(this,b,c);d&&(this.options.inactiveOtherPoints=!1)}function G(a){for(var b=[],c=1;c<arguments.length;c++)b[c-1]=arguments[c];return this.series.chart.is3d()?this.graphic&&"g"!==this.graphic.element.nodeName:a.apply(this,b)}var p=l.perspective;l=d.addEvent;var h=d.pick;d=d.wrap;var r=a.Series,b=a.seriesTypes,B=a.svg;d(b.column.prototype,"translate",function(a){a.apply(this,[].slice.call(arguments,1));this.chart.is3d()&&this.translate3dShapes()});
d(r.prototype,"justifyDataLabel",function(a){return arguments[2].outside3dPlot?!1:a.apply(this,[].slice.call(arguments,1))});b.column.prototype.translate3dPoints=function(){};b.column.prototype.translate3dShapes=function(){var a=this,b=a.chart,c=a.options,d=c.depth,h=(c.stacking?c.stack||0:a.index)*(d+(c.groupZPadding||1)),e=a.borderWidth%2?.5:0,k;b.inverted&&!a.yAxis.reversed&&(e*=-1);!1!==c.grouping&&(h=0);h+=c.groupZPadding||1;a.data.forEach(function(c){c.outside3dPlot=null;if(null!==c.y){var l=
c.shapeArgs,m=c.tooltipPos,g;[["x","width"],["y","height"]].forEach(function(b){g=l[b[0]]-e;0>g&&(l[b[1]]+=l[b[0]]+e,l[b[0]]=-e,g=0);g+l[b[1]]>a[b[0]+"Axis"].len&&0!==l[b[1]]&&(l[b[1]]=a[b[0]+"Axis"].len-l[b[0]]);if(0!==l[b[1]]&&(l[b[0]]>=a[b[0]+"Axis"].len||l[b[0]]+l[b[1]]<=e)){for(var d in l)l[d]=0;c.outside3dPlot=!0}});"rect"===c.shapeType&&(c.shapeType="cuboid");l.z=h;l.depth=d;l.insidePlotArea=!0;k={x:l.x+l.width/2,y:l.y,z:h+d/2};b.inverted&&(k.x=l.height,k.y=c.clientX);c.plot3d=p([k],b,!0,!1)[0];
m=p([{x:m[0],y:m[1],z:h+d/2}],b,!0,!1)[0];c.tooltipPos=[m.x,m.y]}});a.z=h};d(b.column.prototype,"animate",function(a){if(this.chart.is3d()){var b=arguments[1],c=this.yAxis,d=this,h=this.yAxis.reversed;B&&(b?d.data.forEach(function(a){null!==a.y&&(a.height=a.shapeArgs.height,a.shapey=a.shapeArgs.y,a.shapeArgs.height=1,h||(a.shapeArgs.y=a.stackY?a.plotY+c.translate(a.stackY):a.plotY+(a.negative?-a.height:a.height)))}):(d.data.forEach(function(a){null!==a.y&&(a.shapeArgs.height=a.height,a.shapeArgs.y=
a.shapey,a.graphic&&a.graphic.animate(a.shapeArgs,d.options.animation))}),this.drawDataLabels()))}else a.apply(this,[].slice.call(arguments,1))});d(b.column.prototype,"plotGroup",function(a,b,c,d,h,e){"dataLabelsGroup"!==b&&this.chart.is3d()&&(this[b]&&delete this[b],e&&(this.chart.columnGroup||(this.chart.columnGroup=this.chart.renderer.g("columnGroup").add(e)),this[b]=this.chart.columnGroup,this.chart.columnGroup.attr(this.getPlotBox()),this[b].survive=!0,"group"===b||"markerGroup"===b))&&(arguments[3]=
"visible");return a.apply(this,Array.prototype.slice.call(arguments,1))});d(b.column.prototype,"setVisible",function(a,b){var c=this,d;c.chart.is3d()&&c.data.forEach(function(a){d=(a.visible=a.options.visible=b="undefined"===typeof b?!h(c.visible,a.visible):b)?"visible":"hidden";c.options.data[c.data.indexOf(a)]=a.options;a.graphic&&a.graphic.attr({visibility:d})});a.apply(this,Array.prototype.slice.call(arguments,1))});b.column.prototype.handle3dGrouping=!0;l(r,"afterInit",function(){if(this.chart.is3d()&&
this.handle3dGrouping){var a=this.options,b=a.grouping,c=a.stacking,d=h(this.yAxis.options.reversedStacks,!0),k=0;if("undefined"===typeof b||b){b=m(this.chart,c);k=a.stack||0;for(c=0;c<b[k].series.length&&b[k].series[c]!==this;c++);k=10*(b.totalStacks-b[k].position)+(d?c:-c);this.xAxis.reversed||(k=10*b.totalStacks-k)}a.depth=a.depth||25;this.z=this.z||0;a.zIndex=k}});d(b.column.prototype,"pointAttribs",w);d(b.column.prototype,"setState",k);d(b.column.prototype.pointClass.prototype,"hasNewShapeType",
G);b.columnrange&&(d(b.columnrange.prototype,"pointAttribs",w),d(b.columnrange.prototype,"setState",k),d(b.columnrange.prototype.pointClass.prototype,"hasNewShapeType",G),b.columnrange.prototype.plotGroup=b.column.prototype.plotGroup,b.columnrange.prototype.setVisible=b.column.prototype.setVisible);d(r.prototype,"alignDataLabel",function(a,b,c,d,k){var e=this.chart;d.outside3dPlot=b.outside3dPlot;if(e.is3d()&&this.is("column")){var l=this.options,m=h(d.inside,!!this.options.stacking),n=e.options.chart.options3d,
q=b.pointWidth/2||0;l={x:k.x+q,y:k.y,z:this.z+l.depth/2};e.inverted&&(m&&(k.width=0,l.x+=b.shapeArgs.height/2),90<=n.alpha&&270>=n.alpha&&(l.y+=b.shapeArgs.width));l=p([l],e,!0,!1)[0];k.x=l.x-q;k.y=b.outside3dPlot?-9E9:l.y}a.apply(this,[].slice.call(arguments,1))});d(u.prototype,"getStackBox",function(a,d,c,h,k,e,l,m){var n=a.apply(this,[].slice.call(arguments,1));if(d.is3d()&&c.base){var q=+c.base.split(",")[0],g=d.series[q];q=d.options.chart.options3d;g&&g instanceof b.column&&(g={x:n.x+(d.inverted?
l:e/2),y:n.y,z:g.options.depth/2},d.inverted&&(n.width=0,90<=q.alpha&&270>=q.alpha&&(g.y+=e)),g=p([g],d,!0,!1)[0],n.x=g.x-e/2,n.y=g.y)}return n})});B(a,"Series/Pie3DSeries.js",[a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,l){var u=l.pick;l=l.wrap;var d=a.deg2rad,m=a.seriesTypes,w=a.svg;l(m.pie.prototype,"translate",function(a){a.apply(this,[].slice.call(arguments,1));if(this.chart.is3d()){var k=this,l=k.options,h=l.depth||0,m=k.chart.options.chart.options3d,b=m.alpha,u=m.beta,n=l.stacking?
(l.stack||0)*h:k._i*h;n+=h/2;!1!==l.grouping&&(n=0);k.data.forEach(function(a){var c=a.shapeArgs;a.shapeType="arc3d";c.z=n;c.depth=.75*h;c.alpha=b;c.beta=u;c.center=k.center;c=(c.end+c.start)/2;a.slicedTranslation={translateX:Math.round(Math.cos(c)*l.slicedOffset*Math.cos(b*d)),translateY:Math.round(Math.sin(c)*l.slicedOffset*Math.cos(b*d))}})}});l(m.pie.prototype.pointClass.prototype,"haloPath",function(a){var d=arguments;return this.series.chart.is3d()?[]:a.call(this,d[1])});l(m.pie.prototype,"pointAttribs",
function(a,d,l){a=a.call(this,d,l);l=this.options;this.chart.is3d()&&!this.chart.styledMode&&(a.stroke=l.edgeColor||d.color||this.color,a["stroke-width"]=u(l.edgeWidth,1));return a});l(m.pie.prototype,"drawDataLabels",function(a){if(this.chart.is3d()){var k=this.chart.options.chart.options3d;this.data.forEach(function(a){var h=a.shapeArgs,l=h.r,b=(h.start+h.end)/2;a=a.labelPosition;var m=a.connectorPosition,n=-l*(1-Math.cos((h.alpha||k.alpha)*d))*Math.sin(b),p=l*(Math.cos((h.beta||k.beta)*d)-1)*Math.cos(b);
[a.natural,m.breakAt,m.touchingSliceAt].forEach(function(a){a.x+=p;a.y+=n})})}a.apply(this,[].slice.call(arguments,1))});l(m.pie.prototype,"addPoint",function(a){a.apply(this,[].slice.call(arguments,1));this.chart.is3d()&&this.update(this.userOptions,!0)});l(m.pie.prototype,"animate",function(a){if(this.chart.is3d()){var d=arguments[1],k=this.options.animation,h=this.center,l=this.group,b=this.markerGroup;w&&(!0===k&&(k={}),d?(l.oldtranslateX=u(l.oldtranslateX,l.translateX),l.oldtranslateY=u(l.oldtranslateY,
l.translateY),d={translateX:h[0],translateY:h[1],scaleX:.001,scaleY:.001},l.attr(d),b&&(b.attrSetters=l.attrSetters,b.attr(d))):(d={translateX:l.oldtranslateX,translateY:l.oldtranslateY,scaleX:1,scaleY:1},l.animate(d,k),b&&b.animate(d,k)))}else a.apply(this,[].slice.call(arguments,1))})});B(a,"Series/Scatter3DSeries.js",[a["Core/Globals.js"],a["Extensions/Math3D.js"],a["Core/Series/Point.js"],a["Core/Utilities.js"]],function(a,l,u,d){var m=l.pointCameraDistance;l=d.seriesType;var w=a.seriesTypes;
l("scatter3d","scatter",{tooltip:{pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>z: <b>{point.z}</b><br/>"}},{pointAttribs:function(a){var d=w.scatter.prototype.pointAttribs.apply(this,arguments);this.chart.is3d()&&a&&(d.zIndex=m(a,this.chart));return d},axisTypes:["xAxis","yAxis","zAxis"],pointArrayMap:["x","y","z"],parallelArrays:["x","y","z"],directTouch:!0},{applyOptions:function(){u.prototype.applyOptions.apply(this,arguments);"undefined"===typeof this.z&&(this.z=0);return this}});
""});B(a,"Core/Axis/VMLAxis3D.js",[a["Core/Utilities.js"]],function(a){var l=a.addEvent,u=function(){return function(a){this.axis=a}}();return function(){function a(){}a.compose=function(d){d.keepProps.push("vml");l(d,"init",a.onInit);l(d,"render",a.onRender)};a.onInit=function(){this.vml||(this.vml=new u(this))};a.onRender=function(){var a=this.vml;a.sideFrame&&(a.sideFrame.css({zIndex:0}),a.sideFrame.front.attr({fill:a.sideFrame.color}));a.bottomFrame&&(a.bottomFrame.css({zIndex:1}),a.bottomFrame.front.attr({fill:a.bottomFrame.color}));
a.backFrame&&(a.backFrame.css({zIndex:0}),a.backFrame.front.attr({fill:a.backFrame.color}))};return a}()});B(a,"Core/Renderer/VML/VMLRenderer3D.js",[a["Core/Axis/Axis.js"],a["Core/Globals.js"],a["Core/Renderer/SVG/SVGRenderer.js"],a["Core/Utilities.js"],a["Core/Axis/VMLAxis3D.js"]],function(a,l,u,d,m){d=d.setOptions;var w=l.VMLRenderer;w&&(d({animate:!1}),w.prototype.face3d=u.prototype.face3d,w.prototype.polyhedron=u.prototype.polyhedron,w.prototype.elements3d=u.prototype.elements3d,w.prototype.element3d=
u.prototype.element3d,w.prototype.cuboid=u.prototype.cuboid,w.prototype.cuboidPath=u.prototype.cuboidPath,w.prototype.toLinePath=u.prototype.toLinePath,w.prototype.toLineSegments=u.prototype.toLineSegments,w.prototype.arc3d=function(a){a=u.prototype.arc3d.call(this,a);a.css({zIndex:a.zIndex});return a},l.VMLRenderer.prototype.arc3dPath=u.prototype.arc3dPath,m.compose(a))});B(a,"masters/highcharts-3d.src.js",[],function(){})});
//# sourceMappingURL=highcharts-3d.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,170 @@
/*
Highcharts JS v8.2.0 (2020-08-20)
(c) 2009-2018 Torstein Honsi
License: www.highcharts.com/license
*/
(function(d){"object"===typeof module&&module.exports?(d["default"]=d,module.exports=d):"function"===typeof define&&define.amd?define("highcharts/highcharts-more",["highcharts"],function(C){d(C);d.Highcharts=C;return d}):d("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(d){function C(d,a,g,h){d.hasOwnProperty(a)||(d[a]=h.apply(null,g))}d=d?d._modules:{};C(d,"Extensions/Pane.js",[d["Core/Chart/Chart.js"],d["Core/Globals.js"],d["Core/Pointer.js"],d["Core/Utilities.js"],d["Mixins/CenteredSeries.js"]],
function(d,a,g,h,b){function r(m,l,e){return Math.sqrt(Math.pow(m-e[0],2)+Math.pow(l-e[1],2))<=e[2]/2}var t=h.addEvent,x=h.extend,B=h.merge,z=h.pick,l=h.splat;d.prototype.collectionsWithUpdate.push("pane");h=function(){function m(m,l){this.options=this.chart=this.center=this.background=void 0;this.coll="pane";this.defaultOptions={center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0};this.defaultBackgroundOptions={shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,
y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"};this.init(m,l)}m.prototype.init=function(m,l){this.chart=l;this.background=[];l.pane.push(this);this.setOptions(m)};m.prototype.setOptions=function(m){this.options=B(this.defaultOptions,this.chart.angular?{background:{}}:void 0,m)};m.prototype.render=function(){var m=this.options,e=this.options.background,a=this.chart.renderer;this.group||(this.group=a.g("pane-group").attr({zIndex:m.zIndex||
0}).add());this.updateCenter();if(e)for(e=l(e),m=Math.max(e.length,this.background.length||0),a=0;a<m;a++)e[a]&&this.axis?this.renderBackground(B(this.defaultBackgroundOptions,e[a]),a):this.background[a]&&(this.background[a]=this.background[a].destroy(),this.background.splice(a,1))};m.prototype.renderBackground=function(m,l){var e="animate",a={"class":"highcharts-pane "+(m.className||"")};this.chart.styledMode||x(a,{fill:m.backgroundColor,stroke:m.borderColor,"stroke-width":m.borderWidth});this.background[l]||
(this.background[l]=this.chart.renderer.path().add(this.group),e="attr");this.background[l][e]({d:this.axis.getPlotBandPath(m.from,m.to,m)}).attr(a)};m.prototype.updateCenter=function(m){this.center=(m||this.axis||{}).center=b.getCenter.call(this)};m.prototype.update=function(m,l){B(!0,this.options,m);B(!0,this.chart.options.pane,m);this.setOptions(this.options);this.render();this.chart.axes.forEach(function(m){m.pane===this&&(m.pane=null,m.update({},l))},this)};return m}();a.Chart.prototype.getHoverPane=
function(m){var l=this,a;m&&l.pane.forEach(function(e){var b=m.chartX-l.plotLeft,k=m.chartY-l.plotTop;r(l.inverted?k:b,l.inverted?b:k,e.center)&&(a=e)});return a};t(d,"afterIsInsidePlot",function(m){this.polar&&(m.isInsidePlot=this.pane.some(function(l){return r(m.x,m.y,l.center)}))});t(g,"beforeGetHoverData",function(m){var l=this.chart;l.polar&&(l.hoverPane=l.getHoverPane(m),m.filter=function(a){return a.visible&&!(!m.shared&&a.directTouch)&&z(a.options.enableMouseTracking,!0)&&(!l.hoverPane||a.xAxis.pane===
l.hoverPane)})});t(g,"afterGetHoverData",function(m){var l=this.chart;m.hoverPoint&&m.hoverPoint.plotX&&m.hoverPoint.plotY&&l.hoverPane&&!r(m.hoverPoint.plotX,m.hoverPoint.plotY,l.hoverPane.center)&&(m.hoverPoint=void 0)});a.Pane=h;return a.Pane});C(d,"Core/Axis/HiddenAxis.js",[],function(){return function(){function d(){}d.init=function(a){a.getOffset=function(){};a.redraw=function(){this.isDirty=!1};a.render=function(){this.isDirty=!1};a.createLabelCollector=function(){return function(){}};a.setScale=
function(){};a.setCategories=function(){};a.setTitle=function(){};a.isHidden=!0};return d}()});C(d,"Core/Axis/RadialAxis.js",[d["Core/Axis/Axis.js"],d["Core/Axis/Tick.js"],d["Core/Axis/HiddenAxis.js"],d["Core/Utilities.js"]],function(d,a,g,h){var b=h.addEvent,r=h.correctFloat,t=h.defined,x=h.extend,B=h.fireEvent,z=h.merge,l=h.pick,m=h.relativeLength,v=h.wrap;h=function(){function a(){}a.init=function(a){var b=d.prototype;a.setOptions=function(k){k=this.options=z(a.constructor.defaultOptions,this.defaultPolarOptions,
k);k.plotBands||(k.plotBands=[]);B(this,"afterSetOptions")};a.getOffset=function(){b.getOffset.call(this);this.chart.axisOffset[this.side]=0};a.getLinePath=function(k,p,c){k=this.pane.center;var f=this.chart,n=l(p,k[2]/2-this.offset);"undefined"===typeof c&&(c=this.horiz?0:this.center&&-this.center[3]/2);c&&(n+=c);this.isCircular||"undefined"!==typeof p?(p=this.chart.renderer.symbols.arc(this.left+k[0],this.top+k[1],n,n,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}),p.xBounds=[this.left+
k[0]],p.yBounds=[this.top+k[1]-n]):(p=this.postTranslate(this.angleRad,n),p=[["M",this.center[0]+f.plotLeft,this.center[1]+f.plotTop],["L",p.x,p.y]]);return p};a.setAxisTranslation=function(){b.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)};a.beforeSetTickPositions=function(){this.autoConnect=
this.isCircular&&"undefined"===typeof l(this.userMax,this.options.max)&&r(this.endAngleRad-this.startAngleRad)===r(2*Math.PI);!this.isCircular&&this.chart.inverted&&this.max++;this.autoConnect&&(this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0)};a.setAxisSize=function(){b.setAxisSize.call(this);if(this.isRadial){this.pane.updateCenter(this);var k=this.center=x([],this.pane.center);if(this.isCircular)this.sector=this.endAngleRad-this.startAngleRad;else{var p=this.postTranslate(this.angleRad,
k[3]/2);k[0]=p.x-this.chart.plotLeft;k[1]=p.y-this.chart.plotTop}this.len=this.width=this.height=(k[2]-k[3])*l(this.sector,1)/2}};a.getPosition=function(k,p){k=this.translate(k);return this.postTranslate(this.isCircular?k:this.angleRad,l(this.isCircular?p:0>k?0:k,this.center[2]/2)-this.offset)};a.postTranslate=function(k,p){var c=this.chart,f=this.center;k=this.startAngleRad+k;return{x:c.plotLeft+f[0]+Math.cos(k)*p,y:c.plotTop+f[1]+Math.sin(k)*p}};a.getPlotBandPath=function(k,p,c){var f=function(c){if("string"===
typeof c){var f=parseInt(c,10);D.test(c)&&(f=f*A/100);return f}return c},n=this.center,u=this.startAngleRad,A=n[2]/2,q=Math.min(this.offset,0),D=/%$/;var m=this.isCircular;var a=l(f(c.outerRadius),A),b=f(c.innerRadius);f=l(f(c.thickness),10);if("polygon"===this.options.gridLineInterpolation)q=this.getPlotLinePath({value:k}).concat(this.getPlotLinePath({value:p,reverse:!0}));else{k=Math.max(k,this.min);p=Math.min(p,this.max);k=this.translate(k);p=this.translate(p);m||(a=k||0,b=p||0);if("circle"!==
c.shape&&m)c=u+(k||0),u+=p||0;else{c=-Math.PI/2;u=1.5*Math.PI;var e=!0}a-=q;q=this.chart.renderer.symbols.arc(this.left+n[0],this.top+n[1],a,a,{start:Math.min(c,u),end:Math.max(c,u),innerR:l(b,a-(f-q)),open:e});m&&(m=(u+c)/2,e=this.left+n[0]+n[2]/2*Math.cos(m),q.xBounds=m>-Math.PI/2&&m<Math.PI/2?[e,this.chart.plotWidth]:[0,e],q.yBounds=[this.top+n[1]+n[2]/2*Math.sin(m)],q.yBounds[0]+=m>-Math.PI&&0>m||m>Math.PI?-10:10)}return q};a.getCrosshairPosition=function(k,p,c){var f=k.value,n=this.pane.center;
if(this.isCircular){if(t(f))k.point&&(u=k.point.shapeArgs||{},u.start&&(f=this.chart.inverted?this.translate(k.point.rectPlotY,!0):k.point.x));else{var u=k.chartX||0;var A=k.chartY||0;f=this.translate(Math.atan2(A-c,u-p)-this.startAngleRad,!0)}k=this.getPosition(f);u=k.x;A=k.y}else t(f)||(u=k.chartX,A=k.chartY),t(u)&&t(A)&&(c=n[1]+this.chart.plotTop,f=this.translate(Math.min(Math.sqrt(Math.pow(u-p,2)+Math.pow(A-c,2)),n[2]/2)-n[3]/2,!0));return[f,u||0,A||0]};a.getPlotLinePath=function(k){var p=this,
c=p.pane.center,f=p.chart,n=f.inverted,u=k.value,A=k.reverse,q=p.getPosition(u),D=p.pane.options.background?p.pane.options.background[0]||p.pane.options.background:{},l=D.innerRadius||"0%",a=D.outerRadius||"100%";D=c[0]+f.plotLeft;var b=c[1]+f.plotTop,e=q.x,h=q.y,g=p.height;q=c[3]/2;var v;k.isCrosshair&&(h=this.getCrosshairPosition(k,D,b),u=h[0],e=h[1],h=h[2]);if(p.isCircular)u=Math.sqrt(Math.pow(e-D,2)+Math.pow(h-b,2)),A="string"===typeof l?m(l,1):l/u,f="string"===typeof a?m(a,1):a/u,c&&q&&(u=q/
u,A<u&&(A=u),f<u&&(f=u)),c=[["M",D+A*(e-D),b-A*(b-h)],["L",e-(1-f)*(e-D),h+(1-f)*(b-h)]];else if((u=p.translate(u))&&(0>u||u>g)&&(u=0),"circle"===p.options.gridLineInterpolation)c=p.getLinePath(0,u,q);else if(c=[],f[n?"yAxis":"xAxis"].forEach(function(c){c.pane===p.pane&&(v=c)}),v)for(D=v.tickPositions,v.autoConnect&&(D=D.concat([D[0]])),A&&(D=D.slice().reverse()),u&&(u+=q),e=0;e<D.length;e++)b=v.getPosition(D[e],u),c.push(e?["L",b.x,b.y]:["M",b.x,b.y]);return c};a.getTitlePosition=function(){var k=
this.center,p=this.chart,c=this.options.title;return{x:p.plotLeft+k[0]+(c.x||0),y:p.plotTop+k[1]-{high:.5,middle:.25,low:0}[c.align]*k[2]+(c.y||0)}};a.createLabelCollector=function(){var k=this;return function(){if(k.isRadial&&k.tickPositions&&!0!==k.options.labels.allowOverlap)return k.tickPositions.map(function(p){return k.ticks[p]&&k.ticks[p].label}).filter(function(p){return!!p})}}};a.compose=function(e,h){b(e,"init",function(k){var p=this.chart,c=p.inverted,f=p.angular,n=p.polar,u=this.isXAxis,
A=this.coll,q=f&&u,m,l=p.options;k=k.userOptions.pane||0;k=this.pane=p.pane&&p.pane[k];if("colorAxis"===A)this.isRadial=!1;else{if(f){if(q?g.init(this):a.init(this),m=!u)this.defaultPolarOptions=a.defaultRadialGaugeOptions}else n&&(a.init(this),this.defaultPolarOptions=(m=this.horiz)?a.defaultCircularOptions:z("xAxis"===A?e.defaultOptions:e.defaultYAxisOptions,a.defaultRadialOptions),c&&"yAxis"===A&&(this.defaultPolarOptions.stackLabels=e.defaultYAxisOptions.stackLabels));f||n?(this.isRadial=!0,l.chart.zoomType=
null,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&p.labelCollectors.push(this.labelCollector)):this.isRadial=!1;k&&m&&(k.axis=this);this.isCircular=m}});b(e,"afterInit",function(){var k=this.chart,p=this.options,c=this.pane,f=c&&c.options;k.angular&&this.isXAxis||!c||!k.angular&&!k.polar||(this.angleRad=(p.angle||0)*Math.PI/180,this.startAngleRad=(f.startAngle-90)*Math.PI/180,this.endAngleRad=(l(f.endAngle,f.startAngle+360)-90)*Math.PI/180,this.offset=
p.offset||0)});b(e,"autoLabelAlign",function(k){this.isRadial&&(k.align=void 0,k.preventDefault())});b(e,"destroy",function(){if(this.chart&&this.chart.labelCollectors){var k=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;0<=k&&this.chart.labelCollectors.splice(k,1)}});b(e,"initialAxisTranslation",function(){this.isRadial&&this.beforeSetTickPositions()});b(h,"afterGetPosition",function(k){this.axis.getPosition&&x(k.pos,this.axis.getPosition(this.pos))});b(h,"afterGetLabelPosition",
function(k){var p=this.axis,c=this.label;if(c){var f=c.getBBox(),n=p.options.labels,u=n.y,A=20,q=n.align,a=(p.translate(this.pos)+p.startAngleRad+Math.PI/2)/Math.PI*180%360,e=Math.round(a),b="end",h=0>e?e+360:e,g=h,v=0,r=0,w=null===n.y?.3*-f.height:0;if(p.isRadial){var y=p.getPosition(this.pos,p.center[2]/2+m(l(n.distance,-25),p.center[2]/2,-p.center[2]/2));"auto"===n.rotation?c.attr({rotation:a}):null===u&&(u=p.chart.renderer.fontMetrics(c.styles&&c.styles.fontSize).b-f.height/2);null===q&&(p.isCircular?
(f.width>p.len*p.tickInterval/(p.max-p.min)&&(A=0),q=a>A&&a<180-A?"left":a>180+A&&a<360-A?"right":"center"):q="center",c.attr({align:q}));if("auto"===q&&2===p.tickPositions.length&&p.isCircular){90<h&&180>h?h=180-h:270<h&&360>=h&&(h=540-h);180<g&&360>=g&&(g=360-g);if(p.pane.options.startAngle===e||p.pane.options.startAngle===e+360||p.pane.options.startAngle===e-360)b="start";q=-90<=e&&90>=e||-360<=e&&-270>=e||270<=e&&360>=e?"start"===b?"right":"left":"start"===b?"left":"right";70<g&&110>g&&(q="center");
15>h||180<=h&&195>h?v=.3*f.height:15<=h&&35>=h?v="start"===b?0:.75*f.height:195<=h&&215>=h?v="start"===b?.75*f.height:0:35<h&&90>=h?v="start"===b?.25*-f.height:f.height:215<h&&270>=h&&(v="start"===b?f.height:.25*-f.height);15>g?r="start"===b?.15*-f.height:.15*f.height:165<g&&180>=g&&(r="start"===b?.15*f.height:.15*-f.height);c.attr({align:q});c.translate(r,v+w)}k.pos.x=y.x+n.x;k.pos.y=y.y+u}}});v(h.prototype,"getMarkPath",function(k,p,c,f,n,u,A){var q=this.axis;q.isRadial?(k=q.getPosition(this.pos,
q.center[2]/2+f),p=["M",p,c,"L",k.x,k.y]):p=k.call(this,p,c,f,n,u,A);return p})};a.defaultCircularOptions={gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null,style:{textOverflow:"none"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0};a.defaultRadialGaugeOptions={labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2};
a.defaultRadialOptions={gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}};return a}();h.compose(d,a);return h});C(d,"Series/AreaRangeSeries.js",[d["Core/Globals.js"],d["Core/Series/Point.js"],d["Core/Utilities.js"]],function(d,a,g){var h=g.defined,b=g.extend,r=g.isArray,t=g.isNumber,x=g.pick;g=g.seriesType;var B=d.seriesTypes,z=d.Series.prototype,l=a.prototype;g("arearange","area",{lineWidth:1,threshold:null,tooltip:{pointFormat:'<span style="color:{series.color}">\u25cf</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},
trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}},{pointArrayMap:["low","high"],pointValKey:"low",deferTranslatePolar:!0,toYData:function(m){return[m.low,m.high]},highToXY:function(m){var a=this.chart,l=this.xAxis.postTranslate(m.rectPlotX,this.yAxis.len-m.plotHigh);m.plotHighX=l.x-a.plotLeft;m.plotHigh=l.y-a.plotTop;m.plotLowX=m.plotX},translate:function(){var m=this,a=m.yAxis,l=!!m.modifyValue;B.area.prototype.translate.apply(m);m.points.forEach(function(e){var b=
e.high,k=e.plotY;e.isNull?e.plotY=null:(e.plotLow=k,e.plotHigh=a.translate(l?m.modifyValue(b,e):b,0,1,0,1),l&&(e.yBottom=e.plotHigh))});this.chart.polar&&this.points.forEach(function(a){m.highToXY(a);a.tooltipPos=[(a.plotHighX+a.plotLowX)/2,(a.plotHigh+a.plotLow)/2]})},getGraphPath:function(a){var l=[],m=[],b,h=B.area.prototype.getGraphPath;var k=this.options;var p=this.chart.polar,c=p&&!1!==k.connectEnds,f=k.connectNulls,n=k.step;a=a||this.points;for(b=a.length;b--;){var u=a[b];var A=p?{plotX:u.rectPlotX,
plotY:u.yBottom,doCurve:!1}:{plotX:u.plotX,plotY:u.plotY,doCurve:!1};u.isNull||c||f||a[b+1]&&!a[b+1].isNull||m.push(A);var q={polarPlotY:u.polarPlotY,rectPlotX:u.rectPlotX,yBottom:u.yBottom,plotX:x(u.plotHighX,u.plotX),plotY:u.plotHigh,isNull:u.isNull};m.push(q);l.push(q);u.isNull||c||f||a[b-1]&&!a[b-1].isNull||m.push(A)}a=h.call(this,a);n&&(!0===n&&(n="left"),k.step={left:"right",center:"center",right:"left"}[n]);l=h.call(this,l);m=h.call(this,m);k.step=n;k=[].concat(a,l);!this.chart.polar&&m[0]&&
"M"===m[0][0]&&(m[0]=["L",m[0][1],m[0][2]]);this.graphPath=k;this.areaPath=a.concat(m);k.isArea=!0;k.xMap=a.xMap;this.areaPath.xMap=a.xMap;return k},drawDataLabels:function(){var a=this.points,l=a.length,e,h=[],g=this.options.dataLabels,k,p=this.chart.inverted;if(r(g))if(1<g.length){var c=g[0];var f=g[1]}else c=g[0],f={enabled:!1};else c=b({},g),c.x=g.xHigh,c.y=g.yHigh,f=b({},g),f.x=g.xLow,f.y=g.yLow;if(c.enabled||this._hasPointLabels){for(e=l;e--;)if(k=a[e]){var n=c.inside?k.plotHigh<k.plotLow:k.plotHigh>
k.plotLow;k.y=k.high;k._plotY=k.plotY;k.plotY=k.plotHigh;h[e]=k.dataLabel;k.dataLabel=k.dataLabelUpper;k.below=n;p?c.align||(c.align=n?"right":"left"):c.verticalAlign||(c.verticalAlign=n?"top":"bottom")}this.options.dataLabels=c;z.drawDataLabels&&z.drawDataLabels.apply(this,arguments);for(e=l;e--;)if(k=a[e])k.dataLabelUpper=k.dataLabel,k.dataLabel=h[e],delete k.dataLabels,k.y=k.low,k.plotY=k._plotY}if(f.enabled||this._hasPointLabels){for(e=l;e--;)if(k=a[e])n=f.inside?k.plotHigh<k.plotLow:k.plotHigh>
k.plotLow,k.below=!n,p?f.align||(f.align=n?"left":"right"):f.verticalAlign||(f.verticalAlign=n?"bottom":"top");this.options.dataLabels=f;z.drawDataLabels&&z.drawDataLabels.apply(this,arguments)}if(c.enabled)for(e=l;e--;)if(k=a[e])k.dataLabels=[k.dataLabelUpper,k.dataLabel].filter(function(c){return!!c});this.options.dataLabels=g},alignDataLabel:function(){B.column.prototype.alignDataLabel.apply(this,arguments)},drawPoints:function(){var a=this.points.length,l;z.drawPoints.apply(this,arguments);for(l=
0;l<a;){var e=this.points[l];e.origProps={plotY:e.plotY,plotX:e.plotX,isInside:e.isInside,negative:e.negative,zone:e.zone,y:e.y};e.lowerGraphic=e.graphic;e.graphic=e.upperGraphic;e.plotY=e.plotHigh;h(e.plotHighX)&&(e.plotX=e.plotHighX);e.y=e.high;e.negative=e.high<(this.options.threshold||0);e.zone=this.zones.length&&e.getZone();this.chart.polar||(e.isInside=e.isTopInside="undefined"!==typeof e.plotY&&0<=e.plotY&&e.plotY<=this.yAxis.len&&0<=e.plotX&&e.plotX<=this.xAxis.len);l++}z.drawPoints.apply(this,
arguments);for(l=0;l<a;)e=this.points[l],e.upperGraphic=e.graphic,e.graphic=e.lowerGraphic,b(e,e.origProps),delete e.origProps,l++},setStackedPoints:d.noop},{setState:function(){var a=this.state,b=this.series,e=b.chart.polar;h(this.plotHigh)||(this.plotHigh=b.yAxis.toPixels(this.high,!0));h(this.plotLow)||(this.plotLow=this.plotY=b.yAxis.toPixels(this.low,!0));b.stateMarkerGraphic&&(b.lowerStateMarkerGraphic=b.stateMarkerGraphic,b.stateMarkerGraphic=b.upperStateMarkerGraphic);this.graphic=this.upperGraphic;
this.plotY=this.plotHigh;e&&(this.plotX=this.plotHighX);l.setState.apply(this,arguments);this.state=a;this.plotY=this.plotLow;this.graphic=this.lowerGraphic;e&&(this.plotX=this.plotLowX);b.stateMarkerGraphic&&(b.upperStateMarkerGraphic=b.stateMarkerGraphic,b.stateMarkerGraphic=b.lowerStateMarkerGraphic,b.lowerStateMarkerGraphic=void 0);l.setState.apply(this,arguments)},haloPath:function(){var a=this.series.chart.polar,b=[];this.plotY=this.plotLow;a&&(this.plotX=this.plotLowX);this.isInside&&(b=l.haloPath.apply(this,
arguments));this.plotY=this.plotHigh;a&&(this.plotX=this.plotHighX);this.isTopInside&&(b=b.concat(l.haloPath.apply(this,arguments)));return b},destroyElements:function(){["lowerGraphic","upperGraphic"].forEach(function(a){this[a]&&(this[a]=this[a].destroy())},this);this.graphic=null;return l.destroyElements.apply(this,arguments)},isValid:function(){return t(this.low)&&t(this.high)}});""});C(d,"Series/AreaSplineRangeSeries.js",[d["Core/Globals.js"],d["Core/Utilities.js"]],function(d,a){a=a.seriesType;
a("areasplinerange","arearange",null,{getPointSpline:d.seriesTypes.spline.prototype.getPointSpline});""});C(d,"Series/ColumnRangeSeries.js",[d["Core/Globals.js"],d["Core/Options.js"],d["Core/Utilities.js"]],function(d,a,g){a=a.defaultOptions;var h=g.clamp,b=g.merge,r=g.pick;g=g.seriesType;var t=d.noop,x=d.seriesTypes.column.prototype;g("columnrange","arearange",b(a.plotOptions.column,a.plotOptions.arearange,{pointRange:null,marker:null,states:{hover:{halo:!1}}}),{translate:function(){var a=this,b=
a.yAxis,l=a.xAxis,m=l.startAngleRad,g,e=a.chart,d=a.xAxis.isRadial,t=Math.max(e.chartWidth,e.chartHeight)+999,k;x.translate.apply(a);a.points.forEach(function(p){var c=p.shapeArgs,f=a.options.minPointLength;p.plotHigh=k=h(b.translate(p.high,0,1,0,1),-t,t);p.plotLow=h(p.plotY,-t,t);var n=k;var u=r(p.rectPlotY,p.plotY)-k;Math.abs(u)<f?(f-=u,u+=f,n-=f/2):0>u&&(u*=-1,n-=u);d?(g=p.barX+m,p.shapeType="arc",p.shapeArgs=a.polarArc(n+u,n,g,g+p.pointWidth)):(c.height=u,c.y=n,p.tooltipPos=e.inverted?[b.len+
b.pos-e.plotLeft-n-u/2,l.len+l.pos-e.plotTop-c.x-c.width/2,u]:[l.left-e.plotLeft+c.x+c.width/2,b.pos-e.plotTop+n+u/2,u])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:t,getSymbol:t,crispCol:function(){return x.crispCol.apply(this,arguments)},drawPoints:function(){return x.drawPoints.apply(this,arguments)},drawTracker:function(){return x.drawTracker.apply(this,arguments)},getColumnMetrics:function(){return x.getColumnMetrics.apply(this,arguments)},pointAttribs:function(){return x.pointAttribs.apply(this,
arguments)},animate:function(){return x.animate.apply(this,arguments)},polarArc:function(){return x.polarArc.apply(this,arguments)},translate3dPoints:function(){return x.translate3dPoints.apply(this,arguments)},translate3dShapes:function(){return x.translate3dShapes.apply(this,arguments)}},{setState:x.pointClass.prototype.setState});""});C(d,"Series/ColumnPyramidSeries.js",[d["Core/Globals.js"],d["Core/Utilities.js"]],function(d,a){var g=a.clamp,h=a.pick;a=a.seriesType;var b=d.seriesTypes.column.prototype;
a("columnpyramid","column",{},{translate:function(){var a=this,d=a.chart,x=a.options,B=a.dense=2>a.closestPointRange*a.xAxis.transA;B=a.borderWidth=h(x.borderWidth,B?0:1);var z=a.yAxis,l=x.threshold,m=a.translatedThreshold=z.getThreshold(l),v=h(x.minPointLength,5),e=a.getColumnMetrics(),y=e.width,w=a.barW=Math.max(y,1+2*B),k=a.pointXOffset=e.offset;d.inverted&&(m-=.5);x.pointPadding&&(w=Math.ceil(w));b.translate.apply(a);a.points.forEach(function(p){var c=h(p.yBottom,m),f=999+Math.abs(c),n=g(p.plotY,
-f,z.len+f);f=p.plotX+k;var u=w/2,A=Math.min(n,c);c=Math.max(n,c)-A;var q;p.barX=f;p.pointWidth=y;p.tooltipPos=d.inverted?[z.len+z.pos-d.plotLeft-n,a.xAxis.len-f-u,c]:[f+u,n+z.pos-d.plotTop,c];n=l+(p.total||p.y);"percent"===x.stacking&&(n=l+(0>p.y)?-100:100);n=z.toPixels(n,!0);var b=(q=d.plotHeight-n-(d.plotHeight-m))?u*(A-n)/q:0;var e=q?u*(A+c-n)/q:0;q=f-b+u;b=f+b+u;var r=f+e+u;e=f-e+u;var t=A-v;var E=A+c;0>p.y&&(t=A,E=A+c+v);d.inverted&&(r=d.plotWidth-A,q=n-(d.plotWidth-m),b=u*(n-r)/q,e=u*(n-(r-
c))/q,q=f+u+b,b=q-2*b,r=f-e+u,e=f+e+u,t=A,E=A+c-v,0>p.y&&(E=A+c+v));p.shapeType="path";p.shapeArgs={x:q,y:t,width:b-q,height:c,d:[["M",q,t],["L",b,t],["L",r,E],["L",e,E],["Z"]]}})}});""});C(d,"Series/GaugeSeries.js",[d["Core/Globals.js"],d["Core/Utilities.js"]],function(d,a){var g=a.clamp,h=a.isNumber,b=a.merge,r=a.pick,t=a.pInt;a=a.seriesType;var x=d.Series,B=d.TrackerMixin;a("gauge","line",{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",
y:15,zIndex:2},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:d.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],translate:function(){var a=this.yAxis,l=this.options,m=a.center;this.generatePoints();this.points.forEach(function(d){var e=b(l.dial,d.dial),v=t(r(e.radius,"80%"))*m[2]/200,w=t(r(e.baseLength,"70%"))*v/100,k=t(r(e.rearLength,"10%"))*v/100,p=e.baseWidth||3,c=e.topWidth||1,f=l.overshoot,n=a.startAngleRad+
a.translate(d.y,null,null,null,!0);if(h(f)||!1===l.wrap)f=h(f)?f/180*Math.PI:0,n=g(n,a.startAngleRad-f,a.endAngleRad+f);n=180*n/Math.PI;d.shapeType="path";d.shapeArgs={d:e.path||[["M",-k,-p/2],["L",w,-p/2],["L",v,-c/2],["L",v,c/2],["L",w,p/2],["L",-k,p/2],["Z"]],translateX:m[0],translateY:m[1],rotation:n};d.plotX=m[0];d.plotY=m[1]})},drawPoints:function(){var a=this,l=a.chart,m=a.yAxis.center,h=a.pivot,e=a.options,g=e.pivot,d=l.renderer;a.points.forEach(function(k){var p=k.graphic,c=k.shapeArgs,f=
c.d,n=b(e.dial,k.dial);p?(p.animate(c),c.d=f):k.graphic=d[k.shapeType](c).attr({rotation:c.rotation,zIndex:1}).addClass("highcharts-dial").add(a.group);if(!l.styledMode)k.graphic[p?"animate":"attr"]({stroke:n.borderColor||"none","stroke-width":n.borderWidth||0,fill:n.backgroundColor||"#000000"})});h?h.animate({translateX:m[0],translateY:m[1]}):(a.pivot=d.circle(0,0,r(g.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(m[0],m[1]).add(a.group),l.styledMode||a.pivot.attr({"stroke-width":g.borderWidth||
0,stroke:g.borderColor||"#cccccc",fill:g.backgroundColor||"#000000"}))},animate:function(a){var l=this;a||l.points.forEach(function(a){var b=a.graphic;b&&(b.attr({rotation:180*l.yAxis.startAngleRad/Math.PI}),b.animate({rotation:a.shapeArgs.rotation},l.options.animation))})},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);x.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,l){x.prototype.setData.call(this,
a,!1);this.processData();this.generatePoints();r(l,!0)&&this.chart.redraw()},hasData:function(){return!!this.points.length},drawTracker:B&&B.drawTrackerPoint},{setState:function(a){this.state=a}});""});C(d,"Series/BoxPlotSeries.js",[d["Core/Globals.js"],d["Core/Utilities.js"]],function(d,a){var g=a.pick;a=a.seriesType;var h=d.noop,b=d.seriesTypes;a("boxplot","column",{threshold:null,tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</span> <b> {series.name}</b><br/>Maximum: {point.high}<br/>Upper quartile: {point.q3}<br/>Median: {point.median}<br/>Lower quartile: {point.q1}<br/>Minimum: {point.low}<br/>'},
whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2},{pointArrayMap:["low","q1","median","q3","high"],toYData:function(a){return[a.low,a.q1,a.median,a.q3,a.high]},pointValKey:"high",pointAttribs:function(){return{}},drawDataLabels:h,translate:function(){var a=this.yAxis,h=this.pointArrayMap;b.column.prototype.translate.apply(this);this.points.forEach(function(b){h.forEach(function(h){null!==b[h]&&(b[h+"Plot"]=a.translate(b[h],0,1,0,1))});b.plotHigh=b.highPlot})},drawPoints:function(){var a=
this,b=a.options,h=a.chart,d=h.renderer,z,l,m,v,e,y,w=0,k,p,c,f,n=!1!==a.doQuartiles,u,A=a.options.whiskerLength;a.points.forEach(function(q){var D=q.graphic,I=D?"animate":"attr",r=q.shapeArgs,G={},E={},F={},H={},t=q.color||a.color;"undefined"!==typeof q.plotY&&(k=Math.round(r.width),p=Math.floor(r.x),c=p+k,f=Math.round(k/2),z=Math.floor(n?q.q1Plot:q.lowPlot),l=Math.floor(n?q.q3Plot:q.lowPlot),m=Math.floor(q.highPlot),v=Math.floor(q.lowPlot),D||(q.graphic=D=d.g("point").add(a.group),q.stem=d.path().addClass("highcharts-boxplot-stem").add(D),
A&&(q.whiskers=d.path().addClass("highcharts-boxplot-whisker").add(D)),n&&(q.box=d.path(void 0).addClass("highcharts-boxplot-box").add(D)),q.medianShape=d.path(void 0).addClass("highcharts-boxplot-median").add(D)),h.styledMode||(E.stroke=q.stemColor||b.stemColor||t,E["stroke-width"]=g(q.stemWidth,b.stemWidth,b.lineWidth),E.dashstyle=q.stemDashStyle||b.stemDashStyle||b.dashStyle,q.stem.attr(E),A&&(F.stroke=q.whiskerColor||b.whiskerColor||t,F["stroke-width"]=g(q.whiskerWidth,b.whiskerWidth,b.lineWidth),
F.dashstyle=q.whiskerDashStyle||b.whiskerDashStyle||b.dashStyle,q.whiskers.attr(F)),n&&(G.fill=q.fillColor||b.fillColor||t,G.stroke=b.lineColor||t,G["stroke-width"]=b.lineWidth||0,G.dashstyle=q.boxDashStyle||b.boxDashStyle||b.dashStyle,q.box.attr(G)),H.stroke=q.medianColor||b.medianColor||t,H["stroke-width"]=g(q.medianWidth,b.medianWidth,b.lineWidth),H.dashstyle=q.medianDashStyle||b.medianDashStyle||b.dashStyle,q.medianShape.attr(H)),y=q.stem.strokeWidth()%2/2,w=p+f+y,D=[["M",w,l],["L",w,m],["M",
w,z],["L",w,v]],q.stem[I]({d:D}),n&&(y=q.box.strokeWidth()%2/2,z=Math.floor(z)+y,l=Math.floor(l)+y,p+=y,c+=y,D=[["M",p,l],["L",p,z],["L",c,z],["L",c,l],["L",p,l],["Z"]],q.box[I]({d:D})),A&&(y=q.whiskers.strokeWidth()%2/2,m+=y,v+=y,u=/%$/.test(A)?f*parseFloat(A)/100:A/2,D=[["M",w-u,m],["L",w+u,m],["M",w-u,v],["L",w+u,v]],q.whiskers[I]({d:D})),e=Math.round(q.medianPlot),y=q.medianShape.strokeWidth()%2/2,e+=y,D=[["M",p,e],["L",c,e]],q.medianShape[I]({d:D}))})},setStackedPoints:h});""});C(d,"Series/ErrorBarSeries.js",
[d["Core/Globals.js"],d["Core/Utilities.js"]],function(d,a){a=a.seriesType;var g=d.noop,h=d.seriesTypes;a("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},whiskerWidth:null},{type:"errorbar",pointArrayMap:["low","high"],toYData:function(a){return[a.low,a.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:h.arearange?function(){var a=this.pointValKey;
h.arearange.prototype.drawDataLabels.call(this);this.data.forEach(function(b){b.y=b[a]})}:g,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||h.column.prototype.getColumnMetrics.call(this)}});""});C(d,"Series/WaterfallSeries.js",[d["Core/Axis/Axis.js"],d["Core/Chart/Chart.js"],d["Core/Globals.js"],d["Core/Series/Point.js"],d["Extensions/Stacking.js"],d["Core/Utilities.js"]],function(d,a,g,h,b,r){var t=r.addEvent,x=r.arrayMax,B=r.arrayMin,z=r.correctFloat,l=r.isNumber,
m=r.objectEach,v=r.pick;r=r.seriesType;var e=g.Series,y=g.seriesTypes,w;(function(a){function p(){var c=this.waterfall.stacks;c&&(c.changed=!1,delete c.alreadyChanged)}function c(){var c=this.options.stackLabels;c&&c.enabled&&this.waterfall.stacks&&this.waterfall.renderStackTotals()}function f(){for(var c=this.axes,f=this.series,n=f.length;n--;)f[n].options.stacking&&(c.forEach(function(c){c.isXAxis||(c.waterfall.stacks.changed=!0)}),n=0)}function n(){this.waterfall||(this.waterfall=new u(this))}
var u=function(){function c(c){this.axis=c;this.stacks={changed:!1}}c.prototype.renderStackTotals=function(){var c=this.axis,f=c.waterfall.stacks,n=c.stacking&&c.stacking.stackTotalGroup,a=new b(c,c.options.stackLabels,!1,0,void 0);this.dummyStackItem=a;m(f,function(c){m(c,function(c){a.total=c.stackTotal;c.label&&(a.label=c.label);b.prototype.render.call(a,n);c.label=a.label;delete a.label})});a.total=null};return c}();a.Composition=u;a.compose=function(a,q){t(a,"init",n);t(a,"afterBuildStacks",
p);t(a,"afterRender",c);t(q,"beforeRedraw",f)}})(w||(w={}));r("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",showLine:!0,generatePoints:function(){var a;y.column.prototype.generatePoints.apply(this);var b=0;for(a=this.points.length;b<a;b++){var c=this.points[b];var f=this.processedYData[b];if(c.isIntermediateSum||c.isSum)c.y=z(f)}},translate:function(){var a=this.options,b=this.yAxis,
c,f=v(a.minPointLength,5),n=f/2,u=a.threshold,A=a.stacking,q=b.waterfall.stacks[this.stackKey];y.column.prototype.translate.apply(this);var l=c=u;var m=this.points;var h=0;for(a=m.length;h<a;h++){var e=m[h];var g=this.processedYData[h];var d=e.shapeArgs;var r=[0,g];var t=e.y;if(A){if(q){r=q[h];if("overlap"===A){var w=r.stackState[r.stateIndex--];w=0<=t?w:w-t;Object.hasOwnProperty.call(r,"absolutePos")&&delete r.absolutePos;Object.hasOwnProperty.call(r,"absoluteNeg")&&delete r.absoluteNeg}else 0<=
t?(w=r.threshold+r.posTotal,r.posTotal-=t):(w=r.threshold+r.negTotal,r.negTotal-=t,w-=t),!r.posTotal&&Object.hasOwnProperty.call(r,"absolutePos")&&(r.posTotal=r.absolutePos,delete r.absolutePos),!r.negTotal&&Object.hasOwnProperty.call(r,"absoluteNeg")&&(r.negTotal=r.absoluteNeg,delete r.absoluteNeg);e.isSum||(r.connectorThreshold=r.threshold+r.stackTotal);b.reversed?(g=0<=t?w-t:w+t,t=w):(g=w,t=w-t);e.below=g<=v(u,0);d.y=b.translate(g,0,1,0,1);d.height=Math.abs(d.y-b.translate(t,0,1,0,1))}if(t=b.waterfall.dummyStackItem)t.x=
h,t.label=q[h].label,t.setOffset(this.pointXOffset||0,this.barW||0,this.stackedYNeg[h],this.stackedYPos[h])}else w=Math.max(l,l+t)+r[0],d.y=b.translate(w,0,1,0,1),e.isSum?(d.y=b.translate(r[1],0,1,0,1),d.height=Math.min(b.translate(r[0],0,1,0,1),b.len)-d.y):e.isIntermediateSum?(0<=t?(g=r[1]+c,t=c):(g=c,t=r[1]+c),b.reversed&&(g^=t,t^=g,g^=t),d.y=b.translate(g,0,1,0,1),d.height=Math.abs(d.y-Math.min(b.translate(t,0,1,0,1),b.len)),c+=r[1]):(d.height=0<g?b.translate(l,0,1,0,1)-d.y:b.translate(l,0,1,0,
1)-b.translate(l-g,0,1,0,1),l+=g,e.below=l<v(u,0)),0>d.height&&(d.y+=d.height,d.height*=-1);e.plotY=d.y=Math.round(d.y)-this.borderWidth%2/2;d.height=Math.max(Math.round(d.height),.001);e.yBottom=d.y+d.height;d.height<=f&&!e.isNull?(d.height=f,d.y-=n,e.plotY=d.y,e.minPointLengthOffset=0>e.y?-n:n):(e.isNull&&(d.width=0),e.minPointLengthOffset=0);d=e.plotY+(e.negative?d.height:0);this.chart.inverted?e.tooltipPos[0]=b.len-d:e.tooltipPos[1]=d}},processData:function(a){var b=this.options,c=this.yData,
f=b.data,n=c.length,u=b.threshold||0,A,q,l,k,m;for(m=q=A=l=k=0;m<n;m++){var h=c[m];var g=f&&f[m]?f[m]:{};"sum"===h||g.isSum?c[m]=z(q):"intermediateSum"===h||g.isIntermediateSum?(c[m]=z(A),A=0):(q+=h,A+=h);l=Math.min(q,l);k=Math.max(q,k)}e.prototype.processData.call(this,a);b.stacking||(this.dataMin=l+u,this.dataMax=k)},toYData:function(a){return a.isSum?"sum":a.isIntermediateSum?"intermediateSum":a.y},updateParallelArrays:function(a,b){e.prototype.updateParallelArrays.call(this,a,b);if("sum"===this.yData[0]||
"intermediateSum"===this.yData[0])this.yData[0]=null},pointAttribs:function(a,b){var c=this.options.upColor;c&&!a.options.color&&(a.color=0<a.y?c:null);a=y.column.prototype.pointAttribs.call(this,a,b);delete a.dashstyle;return a},getGraphPath:function(){return[["M",0,0]]},getCrispPath:function(){var a=this.data,b=this.yAxis,c=a.length,f=Math.round(this.graph.strokeWidth())%2/2,n=Math.round(this.borderWidth)%2/2,u=this.xAxis.reversed,l=this.yAxis.reversed,q=this.options.stacking,m=[],e;for(e=1;e<c;e++){var h=
a[e].shapeArgs;var g=a[e-1];var d=a[e-1].shapeArgs;var r=b.waterfall.stacks[this.stackKey];var t=0<g.y?-d.height:0;r&&d&&h&&(r=r[e-1],q?(r=r.connectorThreshold,t=Math.round(b.translate(r,0,1,0,1)+(l?t:0))-f):t=d.y+g.minPointLengthOffset+n-f,m.push(["M",(d.x||0)+(u?0:d.width||0),t],["L",(h.x||0)+(u?h.width||0:0),t]));!q&&m.length&&d&&(0>g.y&&!l||0<g.y&&l)&&(m[m.length-2][2]+=d.height,m[m.length-1][2]+=d.height)}return m},drawGraph:function(){e.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},
setStackedPoints:function(){function a(c,f,n,a){if(B)for(n;n<B;n++)v.stackState[n]+=a;else v.stackState[0]=c,B=v.stackState.length;v.stackState.push(v.stackState[B-1]+f)}var b=this.options,c=this.yAxis.waterfall.stacks,f=b.threshold,n=f||0,u=n,l=this.stackKey,q=this.xData,m=q.length,e,h,g;this.yAxis.stacking.usePercentage=!1;var d=h=g=n;if(this.visible||!this.chart.options.chart.ignoreHiddenSeries){var r=c.changed;(e=c.alreadyChanged)&&0>e.indexOf(l)&&(r=!0);c[l]||(c[l]={});e=c[l];for(var t=0;t<m;t++){var w=
q[t];if(!e[w]||r)e[w]={negTotal:0,posTotal:0,stackTotal:0,threshold:0,stateIndex:0,stackState:[],label:r&&e[w]?e[w].label:void 0};var v=e[w];var y=this.yData[t];0<=y?v.posTotal+=y:v.negTotal+=y;var z=b.data[t];w=v.absolutePos=v.posTotal;var x=v.absoluteNeg=v.negTotal;v.stackTotal=w+x;var B=v.stackState.length;z&&z.isIntermediateSum?(a(g,h,0,g),g=h,h=f,n^=u,u^=n,n^=u):z&&z.isSum?(a(f,d,B),n=f):(a(n,y,0,d),z&&(d+=y,h+=y));v.stateIndex++;v.threshold=n;n+=v.stackTotal}c.changed=!1;c.alreadyChanged||(c.alreadyChanged=
[]);c.alreadyChanged.push(l)}},getExtremes:function(){var a=this.options.stacking;if(a){var b=this.yAxis;b=b.waterfall.stacks;var c=this.stackedYNeg=[];var f=this.stackedYPos=[];"overlap"===a?m(b[this.stackKey],function(n){c.push(B(n.stackState));f.push(x(n.stackState))}):m(b[this.stackKey],function(n){c.push(n.negTotal+n.threshold);f.push(n.posTotal+n.threshold)});return{dataMin:B(c),dataMax:x(f)}}return{dataMin:this.dataMin,dataMax:this.dataMax}}},{getClassName:function(){var a=h.prototype.getClassName.call(this);
this.isSum?a+=" highcharts-sum":this.isIntermediateSum&&(a+=" highcharts-intermediate-sum");return a},isValid:function(){return l(this.y)||this.isSum||!!this.isIntermediateSum}});"";w.compose(d,a);return w});C(d,"Series/PolygonSeries.js",[d["Core/Globals.js"],d["Mixins/LegendSymbol.js"],d["Core/Utilities.js"]],function(d,a,g){g=g.seriesType;var h=d.Series,b=d.seriesTypes;g("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},
trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var a=h.prototype.getGraphPath.call(this),b=a.length+1;b--;)(b===a.length||"M"===a[b][0])&&0<b&&a.splice(b,0,["Z"]);return this.areaPath=a},drawGraph:function(){this.options.fillColor=this.color;b.area.prototype.drawGraph.call(this)},drawLegendSymbol:a.drawRectangle,drawTracker:h.prototype.drawTracker,setStackedPoints:d.noop});""});C(d,"Series/Bubble/BubbleLegend.js",[d["Core/Chart/Chart.js"],d["Core/Color.js"],d["Core/Globals.js"],d["Core/Legend.js"],
d["Core/Utilities.js"]],function(d,a,g,h,b){var r=a.parse;a=b.addEvent;var t=b.arrayMax,x=b.arrayMin,B=b.isNumber,z=b.merge,l=b.objectEach,m=b.pick,v=b.setOptions,e=b.stableSort,y=b.wrap;"";var w=g.Series,k=g.noop;v({legend:{bubbleLegend:{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:10,color:void 0},
x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}});v=function(){function a(c,f){this.options=this.symbols=this.visible=this.ranges=this.movementX=this.maxLabel=this.legendSymbol=this.legendItemWidth=this.legendItemHeight=this.legendItem=this.legendGroup=this.legend=this.fontMetrics=this.chart=void 0;this.setState=k;this.init(c,f)}a.prototype.init=function(c,f){this.options=
c;this.visible=!0;this.chart=f.chart;this.legend=f};a.prototype.addToLegend=function(c){c.splice(this.options.legendIndex,0,this)};a.prototype.drawLegendSymbol=function(c){var f=this.chart,a=this.options,b=m(c.options.itemDistance,20),l=a.ranges;var q=a.connectorDistance;this.fontMetrics=f.renderer.fontMetrics(a.labels.style.fontSize.toString()+"px");l&&l.length&&B(l[0].value)?(e(l,function(c,f){return f.value-c.value}),this.ranges=l,this.setOptions(),this.render(),f=this.getMaxLabelSize(),l=this.ranges[0].radius,
c=2*l,q=q-l+f.width,q=0<q?q:0,this.maxLabel=f,this.movementX="left"===a.labels.align?q:0,this.legendItemWidth=c+q+b,this.legendItemHeight=c+this.fontMetrics.h/2):c.options.bubbleLegend.autoRanges=!0};a.prototype.setOptions=function(){var c=this.ranges,f=this.options,a=this.chart.series[f.seriesIndex],b=this.legend.baseline,l={"z-index":f.zIndex,"stroke-width":f.borderWidth},q={"z-index":f.zIndex,"stroke-width":f.connectorWidth},e=this.getLabelStyles(),h=a.options.marker.fillOpacity,g=this.chart.styledMode;
c.forEach(function(n,u){g||(l.stroke=m(n.borderColor,f.borderColor,a.color),l.fill=m(n.color,f.color,1!==h?r(a.color).setOpacity(h).get("rgba"):a.color),q.stroke=m(n.connectorColor,f.connectorColor,a.color));c[u].radius=this.getRangeRadius(n.value);c[u]=z(c[u],{center:c[0].radius-c[u].radius+b});g||z(!0,c[u],{bubbleStyle:z(!1,l),connectorStyle:z(!1,q),labelStyle:e})},this)};a.prototype.getLabelStyles=function(){var c=this.options,f={},a="left"===c.labels.align,b=this.legend.options.rtl;l(c.labels.style,
function(c,a){"color"!==a&&"fontSize"!==a&&"z-index"!==a&&(f[a]=c)});return z(!1,f,{"font-size":c.labels.style.fontSize,fill:m(c.labels.style.color,"#000000"),"z-index":c.zIndex,align:b||a?"right":"left"})};a.prototype.getRangeRadius=function(c){var f=this.options;return this.chart.series[this.options.seriesIndex].getRadius.call(this,f.ranges[f.ranges.length-1].value,f.ranges[0].value,f.minSize,f.maxSize,c)};a.prototype.render=function(){var c=this.chart.renderer,f=this.options.zThreshold;this.symbols||
(this.symbols={connectors:[],bubbleItems:[],labels:[]});this.legendSymbol=c.g("bubble-legend");this.legendItem=c.g("bubble-legend-item");this.legendSymbol.translateX=0;this.legendSymbol.translateY=0;this.ranges.forEach(function(c){c.value>=f&&this.renderRange(c)},this);this.legendSymbol.add(this.legendItem);this.legendItem.add(this.legendGroup);this.hideOverlappingLabels()};a.prototype.renderRange=function(c){var f=this.options,a=f.labels,b=this.chart.renderer,l=this.symbols,q=l.labels,m=c.center,
e=Math.abs(c.radius),h=f.connectorDistance||0,g=a.align,k=a.style.fontSize;h=this.legend.options.rtl||"left"===g?-h:h;a=f.connectorWidth;var d=this.ranges[0].radius||0,p=m-e-f.borderWidth/2+a/2;k=k/2-(this.fontMetrics.h-k)/2;var r=b.styledMode;"center"===g&&(h=0,f.connectorDistance=0,c.labelStyle.align="center");g=p+f.labels.y;var t=d+h+f.labels.x;l.bubbleItems.push(b.circle(d,m+((p%1?1:.5)-(a%2?0:.5)),e).attr(r?{}:c.bubbleStyle).addClass((r?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-symbol "+
(f.className||"")).add(this.legendSymbol));l.connectors.push(b.path(b.crispLine([["M",d,p],["L",d+h,p]],f.connectorWidth)).attr(r?{}:c.connectorStyle).addClass((r?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(f.connectorClassName||"")).add(this.legendSymbol));c=b.text(this.formatLabel(c),t,g+k).attr(r?{}:c.labelStyle).addClass("highcharts-bubble-legend-labels "+(f.labels.className||"")).add(this.legendSymbol);q.push(c);c.placed=!0;c.alignAttr={x:t,y:g+
k}};a.prototype.getMaxLabelSize=function(){var c,f;this.symbols.labels.forEach(function(a){f=a.getBBox(!0);c=c?f.width>c.width?f:c:f});return c||{}};a.prototype.formatLabel=function(c){var f=this.options,a=f.labels.formatter;f=f.labels.format;var l=this.chart.numberFormatter;return f?b.format(f,c):a?a.call(c):l(c.value,1)};a.prototype.hideOverlappingLabels=function(){var c=this.chart,f=this.symbols;!this.options.labels.allowOverlap&&f&&(c.hideOverlappingLabels(f.labels),f.labels.forEach(function(c,
a){c.newOpacity?c.newOpacity!==c.oldOpacity&&f.connectors[a].show():f.connectors[a].hide()}))};a.prototype.getRanges=function(){var c=this.legend.bubbleLegend,f=c.options.ranges,a,b=Number.MAX_VALUE,l=-Number.MAX_VALUE;c.chart.series.forEach(function(c){c.isBubble&&!c.ignoreSeries&&(a=c.zData.filter(B),a.length&&(b=m(c.options.zMin,Math.min(b,Math.max(x(a),!1===c.options.displayNegative?c.options.zThreshold:-Number.MAX_VALUE))),l=m(c.options.zMax,Math.max(l,t(a)))))});var q=b===l?[{value:l}]:[{value:b},
{value:(b+l)/2},{value:l,autoRanges:!0}];f.length&&f[0].radius&&q.reverse();q.forEach(function(c,a){f&&f[a]&&(q[a]=z(!1,f[a],c))});return q};a.prototype.predictBubbleSizes=function(){var c=this.chart,f=this.fontMetrics,a=c.legend.options,b="horizontal"===a.layout,l=b?c.legend.lastLineHeight:0,q=c.plotSizeX,m=c.plotSizeY,e=c.series[this.options.seriesIndex];c=Math.ceil(e.minPxSize);var h=Math.ceil(e.maxPxSize);e=e.options.maxSize;var g=Math.min(m,q);if(a.floating||!/%$/.test(e))f=h;else if(e=parseFloat(e),
f=(g+l-f.h/2)*e/100/(e/100+1),b&&m-f>=q||!b&&q-f>=m)f=h;return[c,Math.ceil(f)]};a.prototype.updateRanges=function(c,a){var f=this.legend.options.bubbleLegend;f.minSize=c;f.maxSize=a;f.ranges=this.getRanges()};a.prototype.correctSizes=function(){var c=this.legend,a=this.chart.series[this.options.seriesIndex];1<Math.abs(Math.ceil(a.maxPxSize)-this.options.maxSize)&&(this.updateRanges(this.options.minSize,a.maxPxSize),c.render())};return a}();a(h,"afterGetAllItems",function(a){var c=this.bubbleLegend,
f=this.options,n=f.bubbleLegend,b=this.chart.getVisibleBubbleSeriesIndex();c&&c.ranges&&c.ranges.length&&(n.ranges.length&&(n.autoRanges=!!n.ranges[0].autoRanges),this.destroyItem(c));0<=b&&f.enabled&&n.enabled&&(n.seriesIndex=b,this.bubbleLegend=new g.BubbleLegend(n,this),this.bubbleLegend.addToLegend(a.allItems))});d.prototype.getVisibleBubbleSeriesIndex=function(){for(var a=this.series,c=0;c<a.length;){if(a[c]&&a[c].isBubble&&a[c].visible&&a[c].zData.length)return c;c++}return-1};h.prototype.getLinesHeights=
function(){var a=this.allItems,c=[],f=a.length,n,b=0;for(n=0;n<f;n++)if(a[n].legendItemHeight&&(a[n].itemHeight=a[n].legendItemHeight),a[n]===a[f-1]||a[n+1]&&a[n]._legendItemPos[1]!==a[n+1]._legendItemPos[1]){c.push({height:0});var l=c[c.length-1];for(b;b<=n;b++)a[b].itemHeight>l.height&&(l.height=a[b].itemHeight);l.step=n}return c};h.prototype.retranslateItems=function(a){var c,f,n,b=this.options.rtl,l=0;this.allItems.forEach(function(q,u){c=q.legendGroup.translateX;f=q._legendItemPos[1];if((n=q.movementX)||
b&&q.ranges)n=b?c-q.options.maxSize/2:c+n,q.legendGroup.attr({translateX:n});u>a[l].step&&l++;q.legendGroup.attr({translateY:Math.round(f+a[l].height/2)});q._legendItemPos[1]=f+a[l].height/2})};a(w,"legendItemClick",function(){var a=this.chart,c=this.visible,f=this.chart.legend;f&&f.bubbleLegend&&(this.visible=!c,this.ignoreSeries=c,a=0<=a.getVisibleBubbleSeriesIndex(),f.bubbleLegend.visible!==a&&(f.update({bubbleLegend:{enabled:a}}),f.bubbleLegend.visible=a),this.visible=c)});y(d.prototype,"drawChartBox",
function(a,c,f){var n=this.legend,b=0<=this.getVisibleBubbleSeriesIndex();if(n&&n.options.enabled&&n.bubbleLegend&&n.options.bubbleLegend.autoRanges&&b){var e=n.bubbleLegend.options;b=n.bubbleLegend.predictBubbleSizes();n.bubbleLegend.updateRanges(b[0],b[1]);e.placed||(n.group.placed=!1,n.allItems.forEach(function(c){c.legendGroup.translateY=null}));n.render();this.getMargins();this.axes.forEach(function(c){c.visible&&c.render();e.placed||(c.setScale(),c.updateNames(),l(c.ticks,function(c){c.isNew=
!0;c.isNewLabel=!0}))});e.placed=!0;this.getMargins();a.call(this,c,f);n.bubbleLegend.correctSizes();n.retranslateItems(n.getLinesHeights())}else a.call(this,c,f),n&&n.options.enabled&&n.bubbleLegend&&(n.render(),n.retranslateItems(n.getLinesHeights()))});g.BubbleLegend=v;return g.BubbleLegend});C(d,"Series/Bubble/BubbleSeries.js",[d["Core/Globals.js"],d["Core/Color.js"],d["Core/Series/Point.js"],d["Core/Utilities.js"]],function(d,a,g,h){var b=a.parse,r=h.arrayMax,t=h.arrayMin,x=h.clamp,B=h.extend,
z=h.isNumber,l=h.pick,m=h.pInt;a=h.seriesType;h=d.Axis;var v=d.noop,e=d.Series,y=d.seriesTypes;a("bubble","scatter",{dataLabels:{formatter:function(){return this.point.z},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"},
{pointArrayMap:["y","z"],parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",bubblePadding:!0,zoneAxis:"z",directTouch:!0,isBubble:!0,pointAttribs:function(a,l){var m=this.options.marker.fillOpacity;a=e.prototype.pointAttribs.call(this,a,l);1!==m&&(a.fill=b(a.fill).setOpacity(m).get("rgba"));return a},getRadii:function(a,b,l){var c=this.zData,f=this.yData,n=l.minPxSize,e=l.maxPxSize,m=[];var q=0;for(l=c.length;q<l;q++){var h=c[q];m.push(this.getRadius(a,b,n,
e,h,f[q]))}this.radii=m},getRadius:function(a,b,l,c,f,n){var e=this.options,m="width"!==e.sizeBy,q=e.zThreshold,h=b-a,g=.5;if(null===n||null===f)return null;if(z(f)){e.sizeByAbsoluteValue&&(f=Math.abs(f-q),h=Math.max(b-q,Math.abs(a-q)),a=0);if(f<a)return l/2-1;0<h&&(g=(f-a)/h)}m&&0<=g&&(g=Math.sqrt(g));return Math.ceil(l+g*(c-l))/2},animate:function(a){!a&&this.points.length<this.options.animationLimit&&this.points.forEach(function(a){var b=a.graphic;b&&b.width&&(this.hasRendered||b.attr({x:a.plotX,
y:a.plotY,width:1,height:1}),b.animate(this.markerAttribs(a),this.options.animation))},this)},hasData:function(){return!!this.processedXData.length},translate:function(){var a,b=this.data,l=this.radii;y.scatter.prototype.translate.call(this);for(a=b.length;a--;){var c=b[a];var f=l?l[a]:0;z(f)&&f>=this.minPxSize/2?(c.marker=B(c.marker,{radius:f,width:2*f,height:2*f}),c.dlBox={x:c.plotX-f,y:c.plotY-f,width:2*f,height:2*f}):c.shapeArgs=c.plotY=c.dlBox=void 0}},alignDataLabel:y.column.prototype.alignDataLabel,
buildKDTree:v,applyZones:v},{haloPath:function(a){return g.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});h.prototype.beforePadding=function(){var a=this,b=this.len,e=this.chart,c=0,f=b,n=this.isXAxis,u=n?"xData":"yData",h=this.min,q={},g=Math.min(e.plotWidth,e.plotHeight),d=Number.MAX_VALUE,v=-Number.MAX_VALUE,y=this.max-h,B=b/y,F=[];this.series.forEach(function(c){var f=c.options;!c.bubblePadding||!c.visible&&e.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=
!0,F.push(c),n&&(["minSize","maxSize"].forEach(function(c){var a=f[c],n=/%$/.test(a);a=m(a);q[c]=n?g*a/100:a}),c.minPxSize=q.minSize,c.maxPxSize=Math.max(q.maxSize,q.minSize),c=c.zData.filter(z),c.length&&(d=l(f.zMin,x(t(c),!1===f.displayNegative?f.zThreshold:-Number.MAX_VALUE,d)),v=l(f.zMax,Math.max(v,r(c))))))});F.forEach(function(b){var l=b[u],q=l.length;n&&b.getRadii(d,v,b);if(0<y)for(;q--;)if(z(l[q])&&a.dataMin<=l[q]&&l[q]<=a.max){var e=b.radii?b.radii[q]:0;c=Math.min((l[q]-h)*B-e,c);f=Math.max((l[q]-
h)*B+e,f)}});F.length&&0<y&&!this.logarithmic&&(f-=b,B*=(b+Math.max(0,c)-Math.min(f,b))/b,[["min","userMin",c],["max","userMax",f]].forEach(function(c){"undefined"===typeof l(a.options[c[0]],a[c[1]])&&(a[c[0]]+=c[2]/B)}))};""});C(d,"Series/Networkgraph/DraggableNodes.js",[d["Core/Chart/Chart.js"],d["Core/Globals.js"],d["Core/Utilities.js"]],function(d,a,g){var h=g.addEvent;a.dragNodesMixin={onMouseDown:function(a,h){h=this.chart.pointer.normalize(h);a.fixedPosition={chartX:h.chartX,chartY:h.chartY,
plotX:a.plotX,plotY:a.plotY};a.inDragMode=!0},onMouseMove:function(a,h){if(a.fixedPosition&&a.inDragMode){var b=this.chart;h=b.pointer.normalize(h);var g=a.fixedPosition.chartX-h.chartX,d=a.fixedPosition.chartY-h.chartY;h=b.graphLayoutsLookup;if(5<Math.abs(g)||5<Math.abs(d))g=a.fixedPosition.plotX-g,d=a.fixedPosition.plotY-d,b.isInsidePlot(g,d)&&(a.plotX=g,a.plotY=d,a.hasDragged=!0,this.redrawHalo(a),h.forEach(function(a){a.restartSimulation()}))}},onMouseUp:function(a,h){a.fixedPosition&&a.hasDragged&&
(this.layout.enableSimulation?this.layout.start():this.chart.redraw(),a.inDragMode=a.hasDragged=!1,this.options.fixedDraggable||delete a.fixedPosition)},redrawHalo:function(a){a&&this.halo&&this.halo.attr({d:a.haloPath(this.options.states.hover.halo.size)})}};h(d,"load",function(){var a=this,g,d,x;a.container&&(g=h(a.container,"mousedown",function(b){var g=a.hoverPoint;g&&g.series&&g.series.hasDraggableNodes&&g.series.options.draggable&&(g.series.onMouseDown(g,b),d=h(a.container,"mousemove",function(a){return g&&
g.series&&g.series.onMouseMove(g,a)}),x=h(a.container.ownerDocument,"mouseup",function(a){d();x();return g&&g.series&&g.series.onMouseUp(g,a)}))}));h(a,"destroy",function(){g()})})});C(d,"Series/Networkgraph/Integrations.js",[d["Core/Globals.js"]],function(d){d.networkgraphIntegrations={verlet:{attractiveForceFunction:function(a,g){return(g-a)/a},repulsiveForceFunction:function(a,g){return(g-a)/a*(g>a?1:0)},barycenter:function(){var a=this.options.gravitationalConstant,g=this.barycenter.xFactor,h=
this.barycenter.yFactor;g=(g-(this.box.left+this.box.width)/2)*a;h=(h-(this.box.top+this.box.height)/2)*a;this.nodes.forEach(function(a){a.fixedPosition||(a.plotX-=g/a.mass/a.degree,a.plotY-=h/a.mass/a.degree)})},repulsive:function(a,g,h){g=g*this.diffTemperature/a.mass/a.degree;a.fixedPosition||(a.plotX+=h.x*g,a.plotY+=h.y*g)},attractive:function(a,g,h){var b=a.getMass(),d=-h.x*g*this.diffTemperature;g=-h.y*g*this.diffTemperature;a.fromNode.fixedPosition||(a.fromNode.plotX-=d*b.fromNode/a.fromNode.degree,
a.fromNode.plotY-=g*b.fromNode/a.fromNode.degree);a.toNode.fixedPosition||(a.toNode.plotX+=d*b.toNode/a.toNode.degree,a.toNode.plotY+=g*b.toNode/a.toNode.degree)},integrate:function(a,g){var h=-a.options.friction,b=a.options.maxSpeed,d=(g.plotX+g.dispX-g.prevX)*h;h*=g.plotY+g.dispY-g.prevY;var t=Math.abs,x=t(d)/(d||1);t=t(h)/(h||1);d=x*Math.min(b,Math.abs(d));h=t*Math.min(b,Math.abs(h));g.prevX=g.plotX+g.dispX;g.prevY=g.plotY+g.dispY;g.plotX+=d;g.plotY+=h;g.temperature=a.vectorLength({x:d,y:h})},
getK:function(a){return Math.pow(a.box.width*a.box.height/a.nodes.length,.5)}},euler:{attractiveForceFunction:function(a,g){return a*a/g},repulsiveForceFunction:function(a,g){return g*g/a},barycenter:function(){var a=this.options.gravitationalConstant,g=this.barycenter.xFactor,h=this.barycenter.yFactor;this.nodes.forEach(function(b){if(!b.fixedPosition){var d=b.getDegree();d*=1+d/2;b.dispX+=(g-b.plotX)*a*d/b.degree;b.dispY+=(h-b.plotY)*a*d/b.degree}})},repulsive:function(a,g,h,b){a.dispX+=h.x/b*g/
a.degree;a.dispY+=h.y/b*g/a.degree},attractive:function(a,g,h,b){var d=a.getMass(),t=h.x/b*g;g*=h.y/b;a.fromNode.fixedPosition||(a.fromNode.dispX-=t*d.fromNode/a.fromNode.degree,a.fromNode.dispY-=g*d.fromNode/a.fromNode.degree);a.toNode.fixedPosition||(a.toNode.dispX+=t*d.toNode/a.toNode.degree,a.toNode.dispY+=g*d.toNode/a.toNode.degree)},integrate:function(a,d){d.dispX+=d.dispX*a.options.friction;d.dispY+=d.dispY*a.options.friction;var h=d.temperature=a.vectorLength({x:d.dispX,y:d.dispY});0!==h&&
(d.plotX+=d.dispX/h*Math.min(Math.abs(d.dispX),a.temperature),d.plotY+=d.dispY/h*Math.min(Math.abs(d.dispY),a.temperature))},getK:function(a){return Math.pow(a.box.width*a.box.height/a.nodes.length,.3)}}}});C(d,"Series/Networkgraph/QuadTree.js",[d["Core/Globals.js"],d["Core/Utilities.js"]],function(d,a){a=a.extend;var g=d.QuadTreeNode=function(a){this.box=a;this.boxSize=Math.min(a.width,a.height);this.nodes=[];this.body=this.isInternal=!1;this.isEmpty=!0};a(g.prototype,{insert:function(a,b){this.isInternal?
this.nodes[this.getBoxPosition(a)].insert(a,b-1):(this.isEmpty=!1,this.body?b?(this.isInternal=!0,this.divideBox(),!0!==this.body&&(this.nodes[this.getBoxPosition(this.body)].insert(this.body,b-1),this.body=!0),this.nodes[this.getBoxPosition(a)].insert(a,b-1)):(b=new g({top:a.plotX,left:a.plotY,width:.1,height:.1}),b.body=a,b.isInternal=!1,this.nodes.push(b)):(this.isInternal=!1,this.body=a))},updateMassAndCenter:function(){var a=0,b=0,d=0;this.isInternal?(this.nodes.forEach(function(h){h.isEmpty||
(a+=h.mass,b+=h.plotX*h.mass,d+=h.plotY*h.mass)}),b/=a,d/=a):this.body&&(a=this.body.mass,b=this.body.plotX,d=this.body.plotY);this.mass=a;this.plotX=b;this.plotY=d},divideBox:function(){var a=this.box.width/2,b=this.box.height/2;this.nodes[0]=new g({left:this.box.left,top:this.box.top,width:a,height:b});this.nodes[1]=new g({left:this.box.left+a,top:this.box.top,width:a,height:b});this.nodes[2]=new g({left:this.box.left+a,top:this.box.top+b,width:a,height:b});this.nodes[3]=new g({left:this.box.left,
top:this.box.top+b,width:a,height:b})},getBoxPosition:function(a){var b=a.plotY<this.box.top+this.box.height/2;return a.plotX<this.box.left+this.box.width/2?b?0:3:b?1:2}});d=d.QuadTree=function(a,b,d,t){this.box={left:a,top:b,width:d,height:t};this.maxDepth=25;this.root=new g(this.box,"0");this.root.isInternal=!0;this.root.isRoot=!0;this.root.divideBox()};a(d.prototype,{insertNodes:function(a){a.forEach(function(a){this.root.insert(a,this.maxDepth)},this)},visitNodeRecursive:function(a,b,d){var g;
a||(a=this.root);a===this.root&&b&&(g=b(a));!1!==g&&(a.nodes.forEach(function(a){if(a.isInternal){b&&(g=b(a));if(!1===g)return;this.visitNodeRecursive(a,b,d)}else a.body&&b&&b(a.body);d&&d(a)},this),a===this.root&&d&&d(a))},calculateMassAndCenter:function(){this.visitNodeRecursive(null,null,function(a){a.updateMassAndCenter()})}})});C(d,"Series/Networkgraph/Layouts.js",[d["Core/Chart/Chart.js"],d["Core/Globals.js"],d["Core/Utilities.js"]],function(d,a,g){var h=g.addEvent,b=g.clamp,r=g.defined,t=g.extend,
x=g.isFunction,B=g.pick,z=g.setAnimation;a.layouts={"reingold-fruchterman":function(){}};t(a.layouts["reingold-fruchterman"].prototype,{init:function(b){this.options=b;this.nodes=[];this.links=[];this.series=[];this.box={x:0,y:0,width:0,height:0};this.setInitialRendering(!0);this.integration=a.networkgraphIntegrations[b.integration];this.enableSimulation=b.enableSimulation;this.attractiveForce=B(b.attractiveForce,this.integration.attractiveForceFunction);this.repulsiveForce=B(b.repulsiveForce,this.integration.repulsiveForceFunction);
this.approximation=b.approximation},updateSimulation:function(a){this.enableSimulation=B(a,this.options.enableSimulation)},start:function(){var a=this.series,b=this.options;this.currentStep=0;this.forces=a[0]&&a[0].forces||[];this.chart=a[0]&&a[0].chart;this.initialRendering&&(this.initPositions(),a.forEach(function(a){a.finishedAnimating=!0;a.render()}));this.setK();this.resetSimulation(b);this.enableSimulation&&this.step()},step:function(){var b=this,d=this.series;b.currentStep++;"barnes-hut"===
b.approximation&&(b.createQuadTree(),b.quadTree.calculateMassAndCenter());b.forces.forEach(function(a){b[a+"Forces"](b.temperature)});b.applyLimits(b.temperature);b.temperature=b.coolDown(b.startTemperature,b.diffTemperature,b.currentStep);b.prevSystemTemperature=b.systemTemperature;b.systemTemperature=b.getSystemTemperature();b.enableSimulation&&(d.forEach(function(a){a.chart&&a.render()}),b.maxIterations--&&isFinite(b.temperature)&&!b.isStable()?(b.simulation&&a.win.cancelAnimationFrame(b.simulation),
b.simulation=a.win.requestAnimationFrame(function(){b.step()})):b.simulation=!1)},stop:function(){this.simulation&&a.win.cancelAnimationFrame(this.simulation)},setArea:function(a,b,d,e){this.box={left:a,top:b,width:d,height:e}},setK:function(){this.k=this.options.linkLength||this.integration.getK(this)},addElementsToCollection:function(a,b){a.forEach(function(a){-1===b.indexOf(a)&&b.push(a)})},removeElementFromCollection:function(a,b){a=b.indexOf(a);-1!==a&&b.splice(a,1)},clear:function(){this.nodes.length=
0;this.links.length=0;this.series.length=0;this.resetSimulation()},resetSimulation:function(){this.forcedStop=!1;this.systemTemperature=0;this.setMaxIterations();this.setTemperature();this.setDiffTemperature()},restartSimulation:function(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))},setMaxIterations:function(a){this.maxIterations=B(a,this.options.maxIterations)},
setTemperature:function(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)},setDiffTemperature:function(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)},setInitialRendering:function(a){this.initialRendering=a},createQuadTree:function(){this.quadTree=new a.QuadTree(this.box.left,this.box.top,this.box.width,this.box.height);this.quadTree.insertNodes(this.nodes)},initPositions:function(){var a=this.options.initialPositions;x(a)?(a.call(this),this.nodes.forEach(function(a){r(a.prevX)||
(a.prevX=a.plotX);r(a.prevY)||(a.prevY=a.plotY);a.dispX=0;a.dispY=0})):"circle"===a?this.setCircularPositions():this.setRandomPositions()},setCircularPositions:function(){function a(c){c.linksFrom.forEach(function(c){k[c.toNode.id]||(k[c.toNode.id]=!0,h.push(c.toNode),a(c.toNode))})}var b=this.box,d=this.nodes,e=2*Math.PI/(d.length+1),g=d.filter(function(a){return 0===a.linksTo.length}),h=[],k={},p=this.options.initialPositionRadius;g.forEach(function(c){h.push(c);a(c)});h.length?d.forEach(function(a){-1===
h.indexOf(a)&&h.push(a)}):h=d;h.forEach(function(a,f){a.plotX=a.prevX=B(a.plotX,b.width/2+p*Math.cos(f*e));a.plotY=a.prevY=B(a.plotY,b.height/2+p*Math.sin(f*e));a.dispX=0;a.dispY=0})},setRandomPositions:function(){function a(a){a=a*a/Math.PI;return a-=Math.floor(a)}var b=this.box,d=this.nodes,e=d.length+1;d.forEach(function(d,l){d.plotX=d.prevX=B(d.plotX,b.width*a(l));d.plotY=d.prevY=B(d.plotY,b.height*a(e+l));d.dispX=0;d.dispY=0})},force:function(a){this.integration[a].apply(this,Array.prototype.slice.call(arguments,
1))},barycenterForces:function(){this.getBarycenter();this.force("barycenter")},getBarycenter:function(){var a=0,b=0,d=0;this.nodes.forEach(function(e){b+=e.plotX*e.mass;d+=e.plotY*e.mass;a+=e.mass});return this.barycenter={x:b,y:d,xFactor:b/a,yFactor:d/a}},barnesHutApproximation:function(a,b){var d=this.getDistXY(a,b),e=this.vectorLength(d);if(a!==b&&0!==e)if(b.isInternal)if(b.boxSize/e<this.options.theta&&0!==e){var l=this.repulsiveForce(e,this.k);this.force("repulsive",a,l*b.mass,d,e);var g=!1}else g=
!0;else l=this.repulsiveForce(e,this.k),this.force("repulsive",a,l*b.mass,d,e);return g},repulsiveForces:function(){var a=this;"barnes-hut"===a.approximation?a.nodes.forEach(function(b){a.quadTree.visitNodeRecursive(null,function(d){return a.barnesHutApproximation(b,d)})}):a.nodes.forEach(function(b){a.nodes.forEach(function(d){if(b!==d&&!b.fixedPosition){var e=a.getDistXY(b,d);var l=a.vectorLength(e);if(0!==l){var g=a.repulsiveForce(l,a.k);a.force("repulsive",b,g*d.mass,e,l)}}})})},attractiveForces:function(){var a=
this,b,d,e;a.links.forEach(function(g){g.fromNode&&g.toNode&&(b=a.getDistXY(g.fromNode,g.toNode),d=a.vectorLength(b),0!==d&&(e=a.attractiveForce(d,a.k),a.force("attractive",g,e,b,d)))})},applyLimits:function(){var a=this;a.nodes.forEach(function(b){b.fixedPosition||(a.integration.integrate(a,b),a.applyLimitBox(b,a.box),b.dispX=0,b.dispY=0)})},applyLimitBox:function(a,d){var g=a.radius;a.plotX=b(a.plotX,d.left+g,d.width-g);a.plotY=b(a.plotY,d.top+g,d.height-g)},coolDown:function(a,b,d){return a-b*
d},isStable:function(){return.00001>Math.abs(this.systemTemperature-this.prevSystemTemperature)||0>=this.temperature},getSystemTemperature:function(){return this.nodes.reduce(function(a,b){return a+b.temperature},0)},vectorLength:function(a){return Math.sqrt(a.x*a.x+a.y*a.y)},getDistR:function(a,b){a=this.getDistXY(a,b);return this.vectorLength(a)},getDistXY:function(a,b){var d=a.plotX-b.plotX;a=a.plotY-b.plotY;return{x:d,y:a,absX:Math.abs(d),absY:Math.abs(a)}}});h(d,"predraw",function(){this.graphLayoutsLookup&&
this.graphLayoutsLookup.forEach(function(a){a.stop()})});h(d,"render",function(){function a(a){a.maxIterations--&&isFinite(a.temperature)&&!a.isStable()&&!a.enableSimulation&&(a.beforeStep&&a.beforeStep(),a.step(),d=!1,b=!0)}var b=!1;if(this.graphLayoutsLookup){z(!1,this);for(this.graphLayoutsLookup.forEach(function(a){a.start()});!d;){var d=!0;this.graphLayoutsLookup.forEach(a)}b&&this.series.forEach(function(a){a&&a.layout&&a.render()})}});h(d,"beforePrint",function(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(function(a){a.updateSimulation(!1)}),
this.redraw())});h(d,"afterPrint",function(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(function(a){a.updateSimulation()});this.redraw()})});C(d,"Series/PackedBubbleSeries.js",[d["Core/Chart/Chart.js"],d["Core/Color.js"],d["Core/Globals.js"],d["Core/Series/Point.js"],d["Core/Utilities.js"]],function(d,a,g,h,b){var r=a.parse,t=b.addEvent,x=b.clamp,B=b.defined,z=b.extend;a=b.extendClass;var l=b.fireEvent,m=b.isArray,v=b.isNumber,e=b.merge,y=b.pick;b=b.seriesType;var w=g.Series,k=g.layouts["reingold-fruchterman"],
p=g.dragNodesMixin;d.prototype.getSelectedParentNodes=function(){var a=[];this.series.forEach(function(c){c.parentNode&&c.parentNode.selected&&a.push(c.parentNode)});return a};g.networkgraphIntegrations.packedbubble={repulsiveForceFunction:function(a,f,b,d){return Math.min(a,(b.marker.radius+d.marker.radius)/2)},barycenter:function(){var a=this,f=a.options.gravitationalConstant,b=a.box,d=a.nodes,e,q;d.forEach(function(c){a.options.splitSeries&&!c.isParentNode?(e=c.series.parentNode.plotX,q=c.series.parentNode.plotY):
(e=b.width/2,q=b.height/2);c.fixedPosition||(c.plotX-=(c.plotX-e)*f/(c.mass*Math.sqrt(d.length)),c.plotY-=(c.plotY-q)*f/(c.mass*Math.sqrt(d.length)))})},repulsive:function(a,f,b,d){var c=f*this.diffTemperature/a.mass/a.degree;f=b.x*c;b=b.y*c;a.fixedPosition||(a.plotX+=f,a.plotY+=b);d.fixedPosition||(d.plotX-=f,d.plotY-=b)},integrate:g.networkgraphIntegrations.verlet.integrate,getK:g.noop};g.layouts.packedbubble=a(k,{beforeStep:function(){this.options.marker&&this.series.forEach(function(a){a&&a.calculateParentRadius()})},
setCircularPositions:function(){var a=this,f=a.box,b=a.nodes,d=2*Math.PI/(b.length+1),e,q,g=a.options.initialPositionRadius;b.forEach(function(c,b){a.options.splitSeries&&!c.isParentNode?(e=c.series.parentNode.plotX,q=c.series.parentNode.plotY):(e=f.width/2,q=f.height/2);c.plotX=c.prevX=y(c.plotX,e+g*Math.cos(c.index||b*d));c.plotY=c.prevY=y(c.plotY,q+g*Math.sin(c.index||b*d));c.dispX=0;c.dispY=0})},repulsiveForces:function(){var a=this,f,b,d,e=a.options.bubblePadding;a.nodes.forEach(function(c){c.degree=
c.mass;c.neighbours=0;a.nodes.forEach(function(n){f=0;c===n||c.fixedPosition||!a.options.seriesInteraction&&c.series!==n.series||(d=a.getDistXY(c,n),b=a.vectorLength(d)-(c.marker.radius+n.marker.radius+e),0>b&&(c.degree+=.01,c.neighbours++,f=a.repulsiveForce(-b/Math.sqrt(c.neighbours),a.k,c,n)),a.force("repulsive",c,f*n.mass,d,n,b))})})},applyLimitBox:function(a){if(this.options.splitSeries&&!a.isParentNode&&this.options.parentNodeLimit){var c=this.getDistXY(a,a.series.parentNode);var b=a.series.parentNodeRadius-
a.marker.radius-this.vectorLength(c);0>b&&b>-2*a.marker.radius&&(a.plotX-=.01*c.x,a.plotY-=.01*c.y)}k.prototype.applyLimitBox.apply(this,arguments)}});b("packedbubble","bubble",{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){return this.point.value},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},
layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:1,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1E3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}},
{hasDraggableNodes:!0,forces:["barycenter","repulsive"],pointArrayMap:["value"],trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],pointValKey:"value",isCartesian:!1,requireSorting:!1,directTouch:!0,axisTypes:[],noSharedTooltip:!0,searchPoint:g.noop,accumulateAllPoints:function(a){var c=a.chart,b=[],d,e;for(d=0;d<c.series.length;d++)if(a=c.series[d],a.is("packedbubble")&&a.visible||!c.options.chart.ignoreHiddenSeries)for(e=0;e<a.yData.length;e++)b.push([null,null,a.yData[e],a.index,e,{id:e,
marker:{radius:0}}]);return b},init:function(){w.prototype.init.apply(this,arguments);t(this,"updatedData",function(){this.chart.series.forEach(function(a){a.type===this.type&&(a.isDirty=!0)},this)});return this},render:function(){var a=[];w.prototype.render.apply(this,arguments);this.options.dataLabels.allowOverlap||(this.data.forEach(function(c){m(c.dataLabels)&&c.dataLabels.forEach(function(c){a.push(c)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(a))},setVisible:function(){var a=
this;w.prototype.setVisible.apply(a,arguments);a.parentNodeLayout&&a.graph?a.visible?(a.graph.show(),a.parentNode.dataLabel&&a.parentNode.dataLabel.show()):(a.graph.hide(),a.parentNodeLayout.removeElementFromCollection(a.parentNode,a.parentNodeLayout.nodes),a.parentNode.dataLabel&&a.parentNode.dataLabel.hide()):a.layout&&(a.visible?a.layout.addElementsToCollection(a.points,a.layout.nodes):a.points.forEach(function(c){a.layout.removeElementFromCollection(c,a.layout.nodes)}))},drawDataLabels:function(){var a=
this.options.dataLabels.textPath,b=this.points;w.prototype.drawDataLabels.apply(this,arguments);this.parentNode&&(this.parentNode.formatPrefix="parentNode",this.points=[this.parentNode],this.options.dataLabels.textPath=this.options.dataLabels.parentNodeTextPath,w.prototype.drawDataLabels.apply(this,arguments),this.points=b,this.options.dataLabels.textPath=a)},seriesBox:function(){var a=this.chart,b=Math.max,d=Math.min,e,g=[a.plotLeft,a.plotLeft+a.plotWidth,a.plotTop,a.plotTop+a.plotHeight];this.data.forEach(function(a){B(a.plotX)&&
B(a.plotY)&&a.marker.radius&&(e=a.marker.radius,g[0]=d(g[0],a.plotX-e),g[1]=b(g[1],a.plotX+e),g[2]=d(g[2],a.plotY-e),g[3]=b(g[3],a.plotY+e))});return v(g.width/g.height)?g:null},calculateParentRadius:function(){var a=this.seriesBox();this.parentNodeRadius=x(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,a?Math.max(Math.sqrt(Math.pow(a.width,2)+Math.pow(a.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20);this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)},
drawGraph:function(){if(this.layout&&this.layout.options.splitSeries){var a=this.chart,b=this.layout.options.parentNodeOptions.marker;b={fill:b.fillColor||r(this.color).brighten(.4).get(),opacity:b.fillOpacity,stroke:b.lineColor||this.color,"stroke-width":b.lineWidth};var d=this.visible?"inherit":"hidden";this.parentNodesGroup||(this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",d,.1,a.seriesGroup),this.group.attr({zIndex:2}));this.calculateParentRadius();d=e({x:this.parentNode.plotX-
this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},b);this.parentNode.graphic||(this.graph=this.parentNode.graphic=a.renderer.symbol(b.symbol).add(this.parentNodesGroup));this.parentNode.graphic.attr(d)}},createParentNodes:function(){var a=this,b=a.chart,d=a.parentNodeLayout,e,g=a.parentNode,q=a.pointClass;a.parentNodeMass=0;a.points.forEach(function(c){a.parentNodeMass+=Math.PI*Math.pow(c.marker.radius,2)});a.calculateParentRadius();
d.nodes.forEach(function(c){c.seriesIndex===a.index&&(e=!0)});d.setArea(0,0,b.plotWidth,b.plotHeight);e||(g||(g=(new q).init(this,{mass:a.parentNodeRadius/2,marker:{radius:a.parentNodeRadius},dataLabels:{inside:!1},dataLabelOnNull:!0,degree:a.parentNodeRadius,isParentNode:!0,seriesIndex:a.index})),a.parentNode&&(g.plotX=a.parentNode.plotX,g.plotY=a.parentNode.plotY),a.parentNode=g,d.addElementsToCollection([a],d.series),d.addElementsToCollection([g],d.nodes))},drawTracker:function(){var a=this.parentNode;
g.TrackerMixin.drawTrackerPoint.call(this);if(a){var b=m(a.dataLabels)?a.dataLabels:a.dataLabel?[a.dataLabel]:[];a.graphic&&(a.graphic.element.point=a);b.forEach(function(c){c.div?c.div.point=a:c.element.point=a})}},addSeriesLayout:function(){var a=this.options.layoutAlgorithm,b=this.chart.graphLayoutsStorage,d=this.chart.graphLayoutsLookup,h=e(a,a.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation});var l=b[a.type+"-series"];l||(b[a.type+"-series"]=l=new g.layouts[a.type],l.init(h),
d.splice(l.index,0,l));this.parentNodeLayout=l;this.createParentNodes()},addLayout:function(){var a=this.options.layoutAlgorithm,b=this.chart.graphLayoutsStorage,d=this.chart.graphLayoutsLookup,e=this.chart.options.chart;b||(this.chart.graphLayoutsStorage=b={},this.chart.graphLayoutsLookup=d=[]);var h=b[a.type];h||(a.enableSimulation=B(e.forExport)?!e.forExport:a.enableSimulation,b[a.type]=h=new g.layouts[a.type],h.init(a),d.splice(h.index,0,h));this.layout=h;this.points.forEach(function(a){a.mass=
2;a.degree=1;a.collisionNmb=1});h.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight);h.addElementsToCollection([this],h.series);h.addElementsToCollection(this.points,h.nodes)},deferLayout:function(){var a=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),a.splitSeries&&this.addSeriesLayout())},translate:function(){var a=this.chart,b=this.data,d=this.index,e,g=this.options.useSimulation;this.processedXData=this.xData;this.generatePoints();B(a.allDataPoints)||(a.allDataPoints=this.accumulateAllPoints(this),
this.getPointRadius());if(g)var q=a.allDataPoints;else q=this.placeBubbles(a.allDataPoints),this.options.draggable=!1;for(e=0;e<q.length;e++)if(q[e][3]===d){var h=b[q[e][4]];var k=q[e][2];g||(h.plotX=q[e][0]-a.plotLeft+a.diffX,h.plotY=q[e][1]-a.plotTop+a.diffY);h.marker=z(h.marker,{radius:k,width:2*k,height:2*k});h.radius=k}g&&this.deferLayout();l(this,"afterTranslate")},checkOverlap:function(a,b){var c=a[0]-b[0],f=a[1]-b[1];return-.001>Math.sqrt(c*c+f*f)-Math.abs(a[2]+b[2])},positionBubble:function(a,
b,d){var c=Math.sqrt,f=Math.asin,n=Math.acos,e=Math.pow,g=Math.abs;c=c(e(a[0]-b[0],2)+e(a[1]-b[1],2));n=n((e(c,2)+e(d[2]+b[2],2)-e(d[2]+a[2],2))/(2*(d[2]+b[2])*c));f=f(g(a[0]-b[0])/c);a=(0>a[1]-b[1]?0:Math.PI)+n+f*(0>(a[0]-b[0])*(a[1]-b[1])?1:-1);return[b[0]+(b[2]+d[2])*Math.sin(a),b[1]-(b[2]+d[2])*Math.cos(a),d[2],d[3],d[4]]},placeBubbles:function(a){var b=this.checkOverlap,c=this.positionBubble,d=[],e=1,g=0,h=0;var l=[];var k;a=a.sort(function(a,b){return b[2]-a[2]});if(a.length){d.push([[0,0,a[0][2],
a[0][3],a[0][4]]]);if(1<a.length)for(d.push([[0,0-a[1][2]-a[0][2],a[1][2],a[1][3],a[1][4]]]),k=2;k<a.length;k++)a[k][2]=a[k][2]||1,l=c(d[e][g],d[e-1][h],a[k]),b(l,d[e][0])?(d.push([]),h=0,d[e+1].push(c(d[e][g],d[e][0],a[k])),e++,g=0):1<e&&d[e-1][h+1]&&b(l,d[e-1][h+1])?(h++,d[e].push(c(d[e][g],d[e-1][h],a[k])),g++):(g++,d[e].push(l));this.chart.stages=d;this.chart.rawPositions=[].concat.apply([],d);this.resizeRadius();l=this.chart.rawPositions}return l},resizeRadius:function(){var a=this.chart,b=a.rawPositions,
d=Math.min,e=Math.max,g=a.plotLeft,h=a.plotTop,l=a.plotHeight,k=a.plotWidth,m,p,r;var t=m=Number.POSITIVE_INFINITY;var v=p=Number.NEGATIVE_INFINITY;for(r=0;r<b.length;r++){var w=b[r][2];t=d(t,b[r][0]-w);v=e(v,b[r][0]+w);m=d(m,b[r][1]-w);p=e(p,b[r][1]+w)}r=[v-t,p-m];d=d.apply([],[(k-g)/r[0],(l-h)/r[1]]);if(1e-10<Math.abs(d-1)){for(r=0;r<b.length;r++)b[r][2]*=d;this.placeBubbles(b)}else a.diffY=l/2+h-m-(p-m)/2,a.diffX=k/2+g-t-(v-t)/2},calculateZExtremes:function(){var a=this.options.zMin,b=this.options.zMax,
d=Infinity,e=-Infinity;if(a&&b)return[a,b];this.chart.series.forEach(function(a){a.yData.forEach(function(a){B(a)&&(a>e&&(e=a),a<d&&(d=a))})});a=y(a,d);b=y(b,e);return[a,b]},getPointRadius:function(){var a=this,b=a.chart,d=a.options,e=d.useSimulation,g=Math.min(b.plotWidth,b.plotHeight),h={},l=[],k=b.allDataPoints,m,p,r,t;["minSize","maxSize"].forEach(function(a){var b=parseInt(d[a],10),c=/%$/.test(d[a]);h[a]=c?g*b/100:b*Math.sqrt(k.length)});b.minRadius=m=h.minSize/Math.sqrt(k.length);b.maxRadius=
p=h.maxSize/Math.sqrt(k.length);var v=e?a.calculateZExtremes():[m,p];(k||[]).forEach(function(b,c){r=e?x(b[2],v[0],v[1]):b[2];t=a.getRadius(v[0],v[1],m,p,r);0===t&&(t=null);k[c][2]=t;l.push(t)});a.radii=l},redrawHalo:p.redrawHalo,onMouseDown:p.onMouseDown,onMouseMove:p.onMouseMove,onMouseUp:function(a){if(a.fixedPosition&&!a.removed){var b,c,d=this.layout,g=this.parentNodeLayout;g&&d.options.dragBetweenSeries&&g.nodes.forEach(function(f){a&&a.marker&&f!==a.series.parentNode&&(b=d.getDistXY(a,f),c=
d.vectorLength(b)-f.marker.radius-a.marker.radius,0>c&&(f.series.addPoint(e(a.options,{plotX:a.plotX,plotY:a.plotY}),!1),d.removeElementFromCollection(a,d.nodes),a.remove()))});p.onMouseUp.apply(this,arguments)}},destroy:function(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(function(a){a.removeElementFromCollection(this,a.series)},this);this.parentNode&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&
(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy()));g.Series.prototype.destroy.apply(this,arguments)},alignDataLabel:g.Series.prototype.alignDataLabel},{destroy:function(){this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes);return h.prototype.destroy.apply(this,arguments)},firePointEvent:function(a,b,d){var c=this.series.options;if(this.isParentNode&&c.parentNode){var f=c.allowPointSelect;c.allowPointSelect=c.parentNode.allowPointSelect;h.prototype.firePointEvent.apply(this,
arguments);c.allowPointSelect=f}else h.prototype.firePointEvent.apply(this,arguments)},select:function(a,b){var c=this.series.chart;this.isParentNode?(c.getSelectedPoints=c.getSelectedParentNodes,h.prototype.select.apply(this,arguments),c.getSelectedPoints=g.Chart.prototype.getSelectedPoints):h.prototype.select.apply(this,arguments)}});t(d,"beforeRedraw",function(){this.allDataPoints&&delete this.allDataPoints});""});C(d,"Extensions/Polar.js",[d["Core/Chart/Chart.js"],d["Core/Globals.js"],d["Extensions/Pane.js"],
d["Core/Pointer.js"],d["Core/Renderer/SVG/SVGRenderer.js"],d["Core/Utilities.js"]],function(d,a,g,h,b,r){var t=r.addEvent,x=r.animObject,B=r.defined,z=r.find,l=r.isNumber,m=r.pick,v=r.splat,e=r.uniqueKey,y=r.wrap,w=a.Series,k=a.seriesTypes,p=w.prototype;h=h.prototype;p.searchPointByAngle=function(a){var b=this.chart,c=this.xAxis.pane.center;return this.searchKDTree({clientX:180+-180/Math.PI*Math.atan2(a.chartX-c[0]-b.plotLeft,a.chartY-c[1]-b.plotTop)})};p.getConnectors=function(a,b,c,d){var f=d?1:
0;var e=0<=b&&b<=a.length-1?b:0>b?a.length-1+b:0;b=0>e-1?a.length-(1+f):e-1;f=e+1>a.length-1?f:e+1;var g=a[b];f=a[f];var n=g.plotX;g=g.plotY;var h=f.plotX;var l=f.plotY;f=a[e].plotX;e=a[e].plotY;n=(1.5*f+n)/2.5;g=(1.5*e+g)/2.5;h=(1.5*f+h)/2.5;var k=(1.5*e+l)/2.5;l=Math.sqrt(Math.pow(n-f,2)+Math.pow(g-e,2));var m=Math.sqrt(Math.pow(h-f,2)+Math.pow(k-e,2));n=Math.atan2(g-e,n-f);k=Math.PI/2+(n+Math.atan2(k-e,h-f))/2;Math.abs(n-k)>Math.PI/2&&(k-=Math.PI);n=f+Math.cos(k)*l;g=e+Math.sin(k)*l;h=f+Math.cos(Math.PI+
k)*m;k=e+Math.sin(Math.PI+k)*m;f={rightContX:h,rightContY:k,leftContX:n,leftContY:g,plotX:f,plotY:e};c&&(f.prevPointCont=this.getConnectors(a,b,!1,d));return f};p.toXY=function(a){var b=this.chart,c=this.xAxis;var d=this.yAxis;var f=a.plotX,e=a.plotY,g=a.series,h=b.inverted,l=a.y,k=h?f:d.len-e;h&&g&&!g.isRadialBar&&(a.plotY=e="number"===typeof l?d.translate(l)||0:0);a.rectPlotX=f;a.rectPlotY=e;d.center&&(k+=d.center[3]/2);d=h?d.postTranslate(e,k):c.postTranslate(f,k);a.plotX=a.polarPlotX=d.x-b.plotLeft;
a.plotY=a.polarPlotY=d.y-b.plotTop;this.kdByAngle?(b=(f/Math.PI*180+c.pane.options.startAngle)%360,0>b&&(b+=360),a.clientX=b):a.clientX=a.plotX};k.spline&&(y(k.spline.prototype,"getPointSpline",function(a,b,c,d){this.chart.polar?d?(a=this.getConnectors(b,d,!0,this.connectEnds),a=["C",a.prevPointCont.rightContX,a.prevPointCont.rightContY,a.leftContX,a.leftContY,a.plotX,a.plotY]):a=["M",c.plotX,c.plotY]:a=a.call(this,b,c,d);return a}),k.areasplinerange&&(k.areasplinerange.prototype.getPointSpline=k.spline.prototype.getPointSpline));
t(w,"afterTranslate",function(){var b=this.chart;if(b.polar&&this.xAxis){(this.kdByAngle=b.tooltip&&b.tooltip.shared)?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy="xy";if(!this.preventPostTranslate)for(var c=this.points,d=c.length;d--;)this.toXY(c[d]),!b.hasParallelCoordinates&&!this.yAxis.reversed&&c[d].y<this.yAxis.min&&(c[d].isNull=!0);this.hasClipCircleSetter||(this.hasClipCircleSetter=!!this.eventsToUnbind.push(t(this,"afterRender",function(){if(b.polar){var c=this.yAxis.pane.center;
this.clipCircle?this.clipCircle.animate({x:c[0],y:c[1],r:c[2]/2,innerR:c[3]/2}):this.clipCircle=b.renderer.clipCircle(c[0],c[1],c[2]/2,c[3]/2);this.group.clip(this.clipCircle);this.setClip=a.noop}})))}},{order:2});y(p,"getGraphPath",function(a,b){var c=this,d;if(this.chart.polar){b=b||this.points;for(d=0;d<b.length;d++)if(!b[d].isNull){var f=d;break}if(!1!==this.options.connectEnds&&"undefined"!==typeof f){this.connectEnds=!0;b.splice(b.length,0,b[f]);var e=!0}b.forEach(function(a){"undefined"===
typeof a.polarPlotY&&c.toXY(a)})}d=a.apply(this,[].slice.call(arguments,1));e&&b.pop();return d});var c=function(b,c){var d=this,f=this.chart,e=this.options.animation,g=this.group,h=this.markerGroup,n=this.xAxis.center,l=f.plotLeft,k=f.plotTop,p,r,t,v;if(f.polar)if(d.isRadialBar)c||(d.startAngleRad=m(d.translatedThreshold,d.xAxis.startAngleRad),a.seriesTypes.pie.prototype.animate.call(d,c));else{if(f.renderer.isSVG)if(e=x(e),d.is("column")){if(!c){var w=n[3]/2;d.points.forEach(function(a){p=a.graphic;
t=(r=a.shapeArgs)&&r.r;v=r&&r.innerR;p&&r&&(p.attr({r:w,innerR:w}),p.animate({r:t,innerR:v},d.options.animation))})}}else c?(b={translateX:n[0]+l,translateY:n[1]+k,scaleX:.001,scaleY:.001},g.attr(b),h&&h.attr(b)):(b={translateX:l,translateY:k,scaleX:1,scaleY:1},g.animate(b,e),h&&h.animate(b,e))}else b.call(this,c)};y(p,"animate",c);k.column&&(w=k.arearange.prototype,k=k.column.prototype,k.polarArc=function(a,b,c,d){var f=this.xAxis.center,e=this.yAxis.len,g=f[3]/2;b=e-b+g;a=e-m(a,e)+g;this.yAxis.reversed&&
(0>b&&(b=g),0>a&&(a=g));return{x:f[0],y:f[1],r:b,innerR:a,start:c,end:d}},y(k,"animate",c),y(k,"translate",function(a){var b=this.options,c=b.stacking,d=this.chart,f=this.xAxis,e=this.yAxis,g=e.reversed,h=e.center,k=f.startAngleRad,m=f.endAngleRad-k;this.preventPostTranslate=!0;a.call(this);if(f.isRadial){a=this.points;f=a.length;var p=e.translate(e.min);var t=e.translate(e.max);b=b.threshold||0;if(d.inverted&&l(b)){var v=e.translate(b);B(v)&&(0>v?v=0:v>m&&(v=m),this.translatedThreshold=v+k)}for(;f--;){b=
a[f];var w=b.barX;var z=b.x;var y=b.y;b.shapeType="arc";if(d.inverted){b.plotY=e.translate(y);if(c&&e.stacking){if(y=e.stacking.stacks[(0>y?"-":"")+this.stackKey],this.visible&&y&&y[z]&&!b.isNull){var x=y[z].points[this.getStackIndicator(void 0,z,this.index).key];var C=e.translate(x[0]);x=e.translate(x[1]);B(C)&&(C=r.clamp(C,0,m))}}else C=v,x=b.plotY;C>x&&(x=[C,C=x][0]);if(!g)if(C<p)C=p;else if(x>t)x=t;else{if(x<p||C>t)C=x=0}else if(x>p)x=p;else if(C<t)C=t;else if(C>p||x<t)C=x=m;e.min>e.max&&(C=x=
g?m:0);C+=k;x+=k;h&&(b.barX=w+=h[3]/2);z=Math.max(w,0);y=Math.max(w+b.pointWidth,0);b.shapeArgs={x:h&&h[0],y:h&&h[1],r:y,innerR:z,start:C,end:x};b.opacity=C===x?0:void 0;b.plotY=(B(this.translatedThreshold)&&(C<this.translatedThreshold?C:x))-k}else C=w+k,b.shapeArgs=this.polarArc(b.yBottom,b.plotY,C,C+b.pointWidth);this.toXY(b);d.inverted?(w=e.postTranslate(b.rectPlotY,w+b.pointWidth/2),b.tooltipPos=[w.x-d.plotLeft,w.y-d.plotTop]):b.tooltipPos=[b.plotX,b.plotY];h&&(b.ttBelow=b.plotY>h[1])}}}),k.findAlignments=
function(a,b){null===b.align&&(b.align=20<a&&160>a?"left":200<a&&340>a?"right":"center");null===b.verticalAlign&&(b.verticalAlign=45>a||315<a?"bottom":135<a&&225>a?"top":"middle");return b},w&&(w.findAlignments=k.findAlignments),y(k,"alignDataLabel",function(a,b,c,d,e,g){var f=this.chart,h=m(d.inside,!!this.options.stacking);f.polar?(a=b.rectPlotX/Math.PI*180,f.inverted?(this.forceDL=f.isInsidePlot(b.plotX,Math.round(b.plotY),!1),h&&b.shapeArgs?(e=b.shapeArgs,e=this.yAxis.postTranslate((e.start+e.end)/
2-this.xAxis.startAngleRad,b.barX+b.pointWidth/2),e={x:e.x-f.plotLeft,y:e.y-f.plotTop}):b.tooltipPos&&(e={x:b.tooltipPos[0],y:b.tooltipPos[1]}),d.align=m(d.align,"center"),d.verticalAlign=m(d.verticalAlign,"middle")):this.findAlignments&&(d=this.findAlignments(a,d)),p.alignDataLabel.call(this,b,c,d,e,g),this.isRadialBar&&b.shapeArgs&&b.shapeArgs.start===b.shapeArgs.end&&c.hide(!0)):a.call(this,b,c,d,e,g)}));y(h,"getCoordinates",function(a,b){var c=this.chart,d={xAxis:[],yAxis:[]};c.polar?c.axes.forEach(function(a){var e=
a.isXAxis,f=a.center;if("colorAxis"!==a.coll){var g=b.chartX-f[0]-c.plotLeft;f=b.chartY-f[1]-c.plotTop;d[e?"xAxis":"yAxis"].push({axis:a,value:a.translate(e?Math.PI-Math.atan2(g,f):Math.sqrt(Math.pow(g,2)+Math.pow(f,2)),!0)})}}):d=a.call(this,b);return d});b.prototype.clipCircle=function(a,b,c,d){var f=e(),g=this.createElement("clipPath").attr({id:f}).add(this.defs);a=d?this.arc(a,b,c,d,0,2*Math.PI).add(g):this.circle(a,b,c).add(g);a.id=f;a.clipPath=g;return a};t(d,"getAxes",function(){this.pane||
(this.pane=[]);v(this.options.pane).forEach(function(a){new g(a,this)},this)});t(d,"afterDrawChartBox",function(){this.pane.forEach(function(a){a.render()})});t(a.Series,"afterInit",function(){var a=this.chart;a.inverted&&a.polar&&(this.isRadialSeries=!0,this.is("column")&&(this.isRadialBar=!0))});y(d.prototype,"get",function(a,b){return z(this.pane,function(a){return a.options.id===b})||a.call(this,b)})});C(d,"masters/highcharts-more.src.js",[],function(){})});
//# sourceMappingURL=highcharts-more.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,538 @@
/*
Highcharts JS v8.2.0 (2020-08-20)
(c) 2009-2018 Torstein Honsi
License: www.highcharts.com/license
*/
(function(T,O){"object"===typeof module&&module.exports?(O["default"]=O,module.exports=T.document?O(T):O):"function"===typeof define&&define.amd?define("highcharts/highcharts",function(){return O(T)}):(T.Highcharts&&T.Highcharts.error(16,!0),T.Highcharts=O(T))})("undefined"!==typeof window?window:this,function(T){function O(f,a,S,y){f.hasOwnProperty(a)||(f[a]=y.apply(null,S))}var n={};O(n,"Core/Globals.js",[],function(){var f="undefined"!==typeof T?T:"undefined"!==typeof window?window:{},a=f.document,
S=f.navigator&&f.navigator.userAgent||"",y=a&&a.createElementNS&&!!a.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,n=/(edge|msie|trident)/i.test(S)&&!f.opera,G=-1!==S.indexOf("Firefox"),C=-1!==S.indexOf("Chrome"),J=G&&4>parseInt(S.split("Firefox/")[1],10);return{product:"Highcharts",version:"8.2.0",deg2rad:2*Math.PI/360,doc:a,hasBidiBug:J,hasTouch:!!f.TouchEvent,isMS:n,isWebKit:-1!==S.indexOf("AppleWebKit"),isFirefox:G,isChrome:C,isSafari:!C&&-1!==S.indexOf("Safari"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(S),
SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:y,win:f,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[],dateFormats:{}}});O(n,"Core/Utilities.js",[n["Core/Globals.js"]],function(f){function a(b,c,e,d){var z=c?"Highcharts error":"Highcharts warning";32===b&&(b=z+": Deprecated member");var w=I(b),g=w?z+" #"+b+": www.highcharts.com/errors/"+b+"/":b.toString();z=function(){if(c)throw Error(g);v.console&&-1===a.messages.indexOf(g)&&
console.log(g)};if("undefined"!==typeof d){var k="";w&&(g+="?");U(d,function(b,c){k+="\n - "+c+": "+b;w&&(g+=encodeURI(c)+"="+encodeURI(b))});g+=k}e?ea(e,"displayError",{code:b,message:g,params:d},z):z();a.messages.push(g)}function S(){var b,c=arguments,e={},d=function(b,c){"object"!==typeof b&&(b={});U(c,function(e,z){!y(e,!0)||t(e)||p(e)?b[z]=c[z]:b[z]=d(b[z]||{},e)});return b};!0===c[0]&&(e=c[1],c=Array.prototype.slice.call(c,2));var z=c.length;for(b=0;b<z;b++)e=d(e,c[b]);return e}function y(b,
c){return!!b&&"object"===typeof b&&(!c||!E(b))}function n(b,c,e){var d;K(c)?m(e)?b.setAttribute(c,e):b&&b.getAttribute&&((d=b.getAttribute(c))||"class"!==c||(d=b.getAttribute(c+"Name"))):U(c,function(c,e){b.setAttribute(e,c)});return d}function G(){for(var b=arguments,c=b.length,e=0;e<c;e++){var d=b[e];if("undefined"!==typeof d&&null!==d)return d}}function C(b,c){if(!b)return c;var e=b.split(".").reverse();if(1===e.length)return c[b];for(b=e.pop();"undefined"!==typeof b&&"undefined"!==typeof c&&null!==
c;)c=c[b],b=e.pop();return c}f.timers=[];var J=f.charts,H=f.doc,v=f.win;(a||(a={})).messages=[];f.error=a;var L=function(){function b(b,c,e){this.options=c;this.elem=b;this.prop=e}b.prototype.dSetter=function(){var b=this.paths,c=b&&b[0];b=b&&b[1];var e=[],d=this.now||0;if(1!==d&&c&&b)if(c.length===b.length&&1>d)for(var z=0;z<b.length;z++){for(var w=c[z],g=b[z],k=[],h=0;h<g.length;h++){var P=w[h],l=g[h];k[h]="number"===typeof P&&"number"===typeof l&&("A"!==g[0]||4!==h&&5!==h)?P+d*(l-P):l}e.push(k)}else e=
b;else e=this.toD||[];this.elem.attr("d",e,void 0,!0)};b.prototype.update=function(){var b=this.elem,c=this.prop,e=this.now,d=this.options.step;if(this[c+"Setter"])this[c+"Setter"]();else b.attr?b.element&&b.attr(c,e,null,!0):b.style[c]=e+this.unit;d&&d.call(b,e,this)};b.prototype.run=function(b,c,e){var d=this,z=d.options,w=function(b){return w.stopped?!1:d.step(b)},g=v.requestAnimationFrame||function(b){setTimeout(b,13)},h=function(){for(var b=0;b<f.timers.length;b++)f.timers[b]()||f.timers.splice(b--,
1);f.timers.length&&g(h)};b!==c||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=b,this.end=c,this.unit=e,this.now=this.start,this.pos=0,w.elem=this.elem,w.prop=this.prop,w()&&1===f.timers.push(w)&&g(h)):(delete z.curAnim[this.prop],z.complete&&0===Object.keys(z.curAnim).length&&z.complete.call(this.elem))};b.prototype.step=function(b){var c=+new Date,e=this.options,d=this.elem,z=e.complete,w=e.duration,g=e.curAnim;if(d.attr&&!d.element)b=!1;else if(b||c>=w+this.startTime){this.now=
this.end;this.pos=1;this.update();var h=g[this.prop]=!0;U(g,function(b){!0!==b&&(h=!1)});h&&z&&z.call(d);b=!1}else this.pos=e.easing((c-this.startTime)/w),this.now=this.start+(this.end-this.start)*this.pos,this.update(),b=!0;return b};b.prototype.initPath=function(b,c,e){function d(b,c){for(;b.length<r;){var e=b[0],d=c[r-b.length];d&&"M"===e[0]&&(b[0]="C"===d[0]?["C",e[1],e[2],e[1],e[2],e[1],e[2]]:["L",e[1],e[2]]);b.unshift(e);h&&b.push(b[b.length-1])}}function z(b,c){for(;b.length<r;)if(c=b[b.length/
k-1].slice(),"C"===c[0]&&(c[1]=c[5],c[2]=c[6]),h){var e=b[b.length/k].slice();b.splice(b.length/2,0,c,e)}else b.push(c)}var w=b.startX,g=b.endX;c=c&&c.slice();e=e.slice();var h=b.isArea,k=h?2:1;if(!c)return[e,e];if(w&&g){for(b=0;b<w.length;b++)if(w[b]===g[0]){var P=b;break}else if(w[0]===g[g.length-w.length+b]){P=b;var l=!0;break}else if(w[w.length-1]===g[g.length-w.length+b]){P=w.length-b;break}"undefined"===typeof P&&(c=[])}if(c.length&&I(P)){var r=e.length+P*k;l?(d(c,e),z(e,c)):(d(e,c),z(c,e))}return[c,
e]};b.prototype.fillSetter=function(){b.prototype.strokeSetter.apply(this,arguments)};b.prototype.strokeSetter=function(){this.elem.attr(this.prop,f.color(this.start).tweenTo(f.color(this.end),this.pos),null,!0)};return b}();f.Fx=L;f.merge=S;var q=f.pInt=function(b,c){return parseInt(b,c||10)},K=f.isString=function(b){return"string"===typeof b},E=f.isArray=function(b){b=Object.prototype.toString.call(b);return"[object Array]"===b||"[object Array Iterator]"===b};f.isObject=y;var p=f.isDOMElement=function(b){return y(b)&&
"number"===typeof b.nodeType},t=f.isClass=function(b){var c=b&&b.constructor;return!(!y(b,!0)||p(b)||!c||!c.name||"Object"===c.name)},I=f.isNumber=function(b){return"number"===typeof b&&!isNaN(b)&&Infinity>b&&-Infinity<b},u=f.erase=function(b,c){for(var e=b.length;e--;)if(b[e]===c){b.splice(e,1);break}},m=f.defined=function(b){return"undefined"!==typeof b&&null!==b};f.attr=n;var h=f.splat=function(b){return E(b)?b:[b]},l=f.syncTimeout=function(b,c,e){if(0<c)return setTimeout(b,c,e);b.call(0,e);return-1},
k=f.clearTimeout=function(b){m(b)&&clearTimeout(b)},g=f.extend=function(b,c){var e;b||(b={});for(e in c)b[e]=c[e];return b};f.pick=G;var d=f.css=function(b,c){f.isMS&&!f.svg&&c&&"undefined"!==typeof c.opacity&&(c.filter="alpha(opacity="+100*c.opacity+")");g(b.style,c)},x=f.createElement=function(b,c,e,z,w){b=H.createElement(b);c&&g(b,c);w&&d(b,{padding:"0",border:"none",margin:"0"});e&&d(b,e);z&&z.appendChild(b);return b},r=f.extendClass=function(b,c){var e=function(){};e.prototype=new b;g(e.prototype,
c);return e},A=f.pad=function(b,c,e){return Array((c||2)+1-String(b).replace("-","").length).join(e||"0")+b},N=f.relativeLength=function(b,c,e){return/%$/.test(b)?c*parseFloat(b)/100+(e||0):parseFloat(b)},B=f.wrap=function(b,c,e){var d=b[c];b[c]=function(){var b=Array.prototype.slice.call(arguments),c=arguments,z=this;z.proceed=function(){d.apply(z,arguments.length?arguments:c)};b.unshift(d);b=e.apply(this,b);z.proceed=null;return b}},M=f.format=function(b,c,e){var d="{",z=!1,w=[],g=/f$/,h=/\.([0-9])/,
k=f.defaultOptions.lang,P=e&&e.time||f.time;for(e=e&&e.numberFormatter||X;b;){var l=b.indexOf(d);if(-1===l)break;var r=b.slice(0,l);if(z){r=r.split(":");d=C(r.shift()||"",c);if(r.length&&"number"===typeof d)if(r=r.join(":"),g.test(r)){var m=parseInt((r.match(h)||["","-1"])[1],10);null!==d&&(d=e(d,m,k.decimalPoint,-1<r.indexOf(",")?k.thousandsSep:""))}else d=P.dateFormat(r,d);w.push(d)}else w.push(r);b=b.slice(l+1);d=(z=!z)?"}":"{"}w.push(b);return w.join("")},R=f.getMagnitude=function(b){return Math.pow(10,
Math.floor(Math.log(b)/Math.LN10))},F=f.normalizeTickInterval=function(b,c,e,d,z){var w=b;e=G(e,1);var g=b/e;c||(c=z?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===d&&(1===e?c=c.filter(function(b){return 0===b%1}):.1>=e&&(c=[1/e])));for(d=0;d<c.length&&!(w=c[d],z&&w*e>=b||!z&&g<=(c[d]+(c[d+1]||c[d]))/2);d++);return w=P(w*e,-Math.round(Math.log(.001)/Math.LN10))},e=f.stableSort=function(b,c){var e=b.length,d,z;for(z=0;z<e;z++)b[z].safeI=z;b.sort(function(b,e){d=c(b,e);return 0===d?b.safeI-e.safeI:
d});for(z=0;z<e;z++)delete b[z].safeI},c=f.arrayMin=function(b){for(var c=b.length,e=b[0];c--;)b[c]<e&&(e=b[c]);return e},b=f.arrayMax=function(b){for(var c=b.length,e=b[0];c--;)b[c]>e&&(e=b[c]);return e},z=f.destroyObjectProperties=function(b,c){U(b,function(e,d){e&&e!==c&&e.destroy&&e.destroy();delete b[d]})},w=f.discardElement=function(b){var c=f.garbageBin;c||(c=x("div"));b&&c.appendChild(b);c.innerHTML=""},P=f.correctFloat=function(b,c){return parseFloat(b.toPrecision(c||14))},Z=f.setAnimation=
function(b,c){c.renderer.globalAnimation=G(b,c.options.chart.animation,!0)},W=f.animObject=function(b){return y(b)?f.merge({duration:500,defer:0},b):{duration:b?500:0,defer:0}},aa=f.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5},X=f.numberFormat=function(b,c,e,d){b=+b||0;c=+c;var z=f.defaultOptions.lang,w=(b.toString().split(".")[1]||"").split("e")[0].length,g=b.toString().split("e");if(-1===c)c=Math.min(w,20);else if(!I(c))c=2;else if(c&&
g[1]&&0>g[1]){var h=c+ +g[1];0<=h?(g[0]=(+g[0]).toExponential(h).split("e")[0],c=h):(g[0]=g[0].split(".")[0]||0,b=20>c?(g[0]*Math.pow(10,g[1])).toFixed(c):0,g[1]=0)}var k=(Math.abs(g[1]?g[0]:b)+Math.pow(10,-Math.max(c,w)-1)).toFixed(c);w=String(q(k));h=3<w.length?w.length%3:0;e=G(e,z.decimalPoint);d=G(d,z.thousandsSep);b=(0>b?"-":"")+(h?w.substr(0,h)+d:"");b+=w.substr(h).replace(/(\d{3})(?=\d)/g,"$1"+d);c&&(b+=e+k.slice(-c));g[1]&&0!==+b&&(b+="e"+g[1]);return b};Math.easeInOutSine=function(b){return-.5*
(Math.cos(Math.PI*b)-1)};var ba=f.getStyle=function(b,c,e){if("width"===c)return c=Math.min(b.offsetWidth,b.scrollWidth),e=b.getBoundingClientRect&&b.getBoundingClientRect().width,e<c&&e>=c-1&&(c=Math.floor(e)),Math.max(0,c-f.getStyle(b,"padding-left")-f.getStyle(b,"padding-right"));if("height"===c)return Math.max(0,Math.min(b.offsetHeight,b.scrollHeight)-f.getStyle(b,"padding-top")-f.getStyle(b,"padding-bottom"));v.getComputedStyle||a(27,!0);if(b=v.getComputedStyle(b,void 0))b=b.getPropertyValue(c),
G(e,"opacity"!==c)&&(b=q(b));return b},ca=f.getDeferredAnimation=function(b,c,e){var d=W(c),z=0,w=0;(e?[e]:b.series).forEach(function(b){b=W(b.options.animation);z=c&&m(c.defer)?d.defer:Math.max(z,b.duration+b.defer);w=Math.min(d.duration,b.duration)});b.renderer.forExport&&(z=0);return{defer:Math.max(0,z-w),duration:Math.min(z,w)}},Y=f.inArray=function(b,c,e){a(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"});return c.indexOf(b,e)},V=f.find=Array.prototype.find?function(b,c){return b.find(c)}:
function(b,c){var e,d=b.length;for(e=0;e<d;e++)if(c(b[e],e))return b[e]};f.keys=function(b){a(32,!1,void 0,{"Highcharts.keys":"use Object.keys"});return Object.keys(b)};var Q=f.offset=function(b){var c=H.documentElement;b=b.parentElement||b.parentNode?b.getBoundingClientRect():{top:0,left:0};return{top:b.top+(v.pageYOffset||c.scrollTop)-(c.clientTop||0),left:b.left+(v.pageXOffset||c.scrollLeft)-(c.clientLeft||0)}},fa=f.stop=function(b,c){for(var e=f.timers.length;e--;)f.timers[e].elem!==b||c&&c!==
f.timers[e].prop||(f.timers[e].stopped=!0)},U=f.objectEach=function(b,c,e){for(var d in b)Object.hasOwnProperty.call(b,d)&&c.call(e||b[d],b[d],d,b)};U({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(b,c){f[c]=function(e){var d;a(32,!1,void 0,(d={},d["Highcharts."+c]="use Array."+b,d));return Array.prototype[b].apply(e,[].slice.call(arguments,1))}});var ja=f.addEvent=function(b,c,e,d){void 0===d&&(d={});var z=b.addEventListener||f.addEventListenerPolyfill;var w="function"===
typeof b&&b.prototype?b.prototype.protoEvents=b.prototype.protoEvents||{}:b.hcEvents=b.hcEvents||{};f.Point&&b instanceof f.Point&&b.series&&b.series.chart&&(b.series.chart.runTrackerClick=!0);z&&z.call(b,c,e,!1);w[c]||(w[c]=[]);w[c].push({fn:e,order:"number"===typeof d.order?d.order:Infinity});w[c].sort(function(b,c){return b.order-c.order});return function(){ha(b,c,e)}},ha=f.removeEvent=function(b,c,e){function d(c,e){var d=b.removeEventListener||f.removeEventListenerPolyfill;d&&d.call(b,c,e,!1)}
function z(e){var z;if(b.nodeName){if(c){var w={};w[c]=!0}else w=e;U(w,function(b,c){if(e[c])for(z=e[c].length;z--;)d(c,e[c][z].fn)})}}var w;["protoEvents","hcEvents"].forEach(function(g,h){var k=(h=h?b:b.prototype)&&h[g];k&&(c?(w=k[c]||[],e?(k[c]=w.filter(function(b){return e!==b.fn}),d(c,e)):(z(k),k[c]=[])):(z(k),h[g]={}))})},ea=f.fireEvent=function(b,c,e,d){var z;e=e||{};if(H.createEvent&&(b.dispatchEvent||b.fireEvent)){var w=H.createEvent("Events");w.initEvent(c,!0,!0);g(w,e);b.dispatchEvent?
b.dispatchEvent(w):b.fireEvent(c,w)}else e.target||g(e,{preventDefault:function(){e.defaultPrevented=!0},target:b,type:c}),function(c,d){void 0===c&&(c=[]);void 0===d&&(d=[]);var w=0,g=0,h=c.length+d.length;for(z=0;z<h;z++)!1===(c[w]?d[g]?c[w].order<=d[g].order?c[w++]:d[g++]:c[w++]:d[g++]).fn.call(b,e)&&e.preventDefault()}(b.protoEvents&&b.protoEvents[c],b.hcEvents&&b.hcEvents[c]);d&&!e.defaultPrevented&&d.call(b,e)},ka=f.animate=function(b,c,e){var d,z="",w,g;if(!y(e)){var h=arguments;e={duration:h[2],
easing:h[3],complete:h[4]}}I(e.duration)||(e.duration=400);e.easing="function"===typeof e.easing?e.easing:Math[e.easing]||Math.easeInOutSine;e.curAnim=S(c);U(c,function(h,k){fa(b,k);g=new L(b,e,k);w=null;"d"===k&&E(c.d)?(g.paths=g.initPath(b,b.pathArray,c.d),g.toD=c.d,d=0,w=1):b.attr?d=b.attr(k):(d=parseFloat(ba(b,k))||0,"opacity"!==k&&(z="px"));w||(w=h);w&&w.match&&w.match("px")&&(w=w.replace(/px/g,""));g.run(d,w,z)})},la=f.seriesType=function(b,c,e,d,z){var w=ia(),g=f.seriesTypes;w.plotOptions[b]=
S(w.plotOptions[c],e);g[b]=r(g[c]||function(){},d);g[b].prototype.type=b;z&&(g[b].prototype.pointClass=r(f.Point,z));return g[b]},da,ma=f.uniqueKey=function(){var b=Math.random().toString(36).substring(2,9)+"-",c=0;return function(){return"highcharts-"+(da?"":b)+c++}}(),O=f.useSerialIds=function(b){return da=G(b,da)},na=f.isFunction=function(b){return"function"===typeof b},ia=f.getOptions=function(){return f.defaultOptions},oa=f.setOptions=function(b){f.defaultOptions=S(!0,f.defaultOptions,b);(b.time||
b.global)&&f.time.update(S(f.defaultOptions.global,f.defaultOptions.time,b.global,b.time));return f.defaultOptions};v.jQuery&&(v.jQuery.fn.highcharts=function(){var b=[].slice.call(arguments);if(this[0])return b[0]?(new (f[K(b[0])?b.shift():"Chart"])(this[0],b[0],b[1]),this):J[n(this[0],"data-highcharts-chart")]});return{Fx:f.Fx,addEvent:ja,animate:ka,animObject:W,arrayMax:b,arrayMin:c,attr:n,clamp:function(b,c,e){return b>c?b<e?b:e:c},clearTimeout:k,correctFloat:P,createElement:x,css:d,defined:m,
destroyObjectProperties:z,discardElement:w,erase:u,error:a,extend:g,extendClass:r,find:V,fireEvent:ea,format:M,getDeferredAnimation:ca,getMagnitude:R,getNestedProperty:C,getOptions:ia,getStyle:ba,inArray:Y,isArray:E,isClass:t,isDOMElement:p,isFunction:na,isNumber:I,isObject:y,isString:K,merge:S,normalizeTickInterval:F,numberFormat:X,objectEach:U,offset:Q,pad:A,pick:G,pInt:q,relativeLength:N,removeEvent:ha,seriesType:la,setAnimation:Z,setOptions:oa,splat:h,stableSort:e,stop:fa,syncTimeout:l,timeUnits:aa,
uniqueKey:ma,useSerialIds:O,wrap:B}});O(n,"Core/Color.js",[n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a){var S=a.isNumber,y=a.merge,n=a.pInt;a=function(){function a(f){this.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(a){return[n(a[1]),n(a[2]),n(a[3]),parseFloat(a[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(a){return[n(a[1]),n(a[2]),n(a[3]),1]}}];this.rgba=
[];if(!(this instanceof a))return new a(f);this.init(f)}a.parse=function(f){return new a(f)};a.prototype.init=function(f){var J,H;if((this.input=f=a.names[f&&f.toLowerCase?f.toLowerCase():""]||f)&&f.stops)this.stops=f.stops.map(function(q){return new a(q[1])});else{if(f&&f.charAt&&"#"===f.charAt()){var v=f.length;f=parseInt(f.substr(1),16);7===v?J=[(f&16711680)>>16,(f&65280)>>8,f&255,1]:4===v&&(J=[(f&3840)>>4|(f&3840)>>8,(f&240)>>4|f&240,(f&15)<<4|f&15,1])}if(!J)for(H=this.parsers.length;H--&&!J;){var L=
this.parsers[H];(v=L.regex.exec(f))&&(J=L.parse(v))}}this.rgba=J||[]};a.prototype.get=function(a){var f=this.input,H=this.rgba;if("undefined"!==typeof this.stops){var v=y(f);v.stops=[].concat(v.stops);this.stops.forEach(function(f,q){v.stops[q]=[v.stops[q][0],f.get(a)]})}else v=H&&S(H[0])?"rgb"===a||!a&&1===H[3]?"rgb("+H[0]+","+H[1]+","+H[2]+")":"a"===a?H[3]:"rgba("+H.join(",")+")":f;return v};a.prototype.brighten=function(a){var f,H=this.rgba;if(this.stops)this.stops.forEach(function(f){f.brighten(a)});
else if(S(a)&&0!==a)for(f=0;3>f;f++)H[f]+=n(255*a),0>H[f]&&(H[f]=0),255<H[f]&&(H[f]=255);return this};a.prototype.setOpacity=function(a){this.rgba[3]=a;return this};a.prototype.tweenTo=function(a,f){var H=this.rgba,v=a.rgba;v.length&&H&&H.length?(a=1!==v[3]||1!==H[3],f=(a?"rgba(":"rgb(")+Math.round(v[0]+(H[0]-v[0])*(1-f))+","+Math.round(v[1]+(H[1]-v[1])*(1-f))+","+Math.round(v[2]+(H[2]-v[2])*(1-f))+(a?","+(v[3]+(H[3]-v[3])*(1-f)):"")+")"):f=a.input||"none";return f};a.names={white:"#ffffff",black:"#000000"};
return a}();f.Color=a;f.color=a.parse;return f.Color});O(n,"Core/Renderer/SVG/SVGElement.js",[n["Core/Color.js"],n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a,n){var y=a.deg2rad,D=a.doc,G=a.hasTouch,C=a.isFirefox,J=a.noop,H=a.svg,v=a.SVG_NS,L=a.win,q=n.animate,K=n.animObject,E=n.attr,p=n.createElement,t=n.css,I=n.defined,u=n.erase,m=n.extend,h=n.fireEvent,l=n.isArray,k=n.isFunction,g=n.isNumber,d=n.isString,x=n.merge,r=n.objectEach,A=n.pick,N=n.pInt,B=n.stop,M=n.syncTimeout,R=n.uniqueKey;
"";n=function(){function F(){this.height=this.element=void 0;this.opacity=1;this.renderer=void 0;this.SVG_NS=v;this.symbolCustomAttribs="x y width height r start end innerR anchorX anchorY rounded".split(" ");this.width=void 0}F.prototype._defaultGetter=function(e){e=A(this[e+"Value"],this[e],this.element?this.element.getAttribute(e):null,0);/^[\-0-9\.]+$/.test(e)&&(e=parseFloat(e));return e};F.prototype._defaultSetter=function(e,c,b){b.setAttribute(c,e)};F.prototype.add=function(e){var c=this.renderer,
b=this.element;e&&(this.parentGroup=e);this.parentInverted=e&&e.inverted;"undefined"!==typeof this.textStr&&"text"===this.element.nodeName&&c.buildText(this);this.added=!0;if(!e||e.handleZ||this.zIndex)var d=this.zIndexSetter();d||(e?e.element:c.box).appendChild(b);if(this.onAdd)this.onAdd();return this};F.prototype.addClass=function(e,c){var b=c?"":this.attr("class")||"";e=(e||"").split(/ /g).reduce(function(c,e){-1===b.indexOf(e)&&c.push(e);return c},b?[b]:[]).join(" ");e!==b&&this.attr("class",
e);return this};F.prototype.afterSetters=function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)};F.prototype.align=function(e,c,b){var z,w={};var g=this.renderer;var h=g.alignedObjects;var k,l;if(e){if(this.alignOptions=e,this.alignByTranslate=c,!b||d(b))this.alignTo=z=b||"renderer",u(h,this),h.push(this),b=void 0}else e=this.alignOptions,c=this.alignByTranslate,z=this.alignTo;b=A(b,g[z],g);z=e.align;g=e.verticalAlign;h=(b.x||0)+(e.x||0);var r=(b.y||0)+(e.y||0);"right"===z?k=1:
"center"===z&&(k=2);k&&(h+=(b.width-(e.width||0))/k);w[c?"translateX":"x"]=Math.round(h);"bottom"===g?l=1:"middle"===g&&(l=2);l&&(r+=(b.height-(e.height||0))/l);w[c?"translateY":"y"]=Math.round(r);this[this.placed?"animate":"attr"](w);this.placed=!0;this.alignAttr=w;return this};F.prototype.alignSetter=function(e){var c={left:"start",center:"middle",right:"end"};c[e]&&(this.alignValue=e,this.element.setAttribute("text-anchor",c[e]))};F.prototype.animate=function(e,c,b){var d=this,w=K(A(c,this.renderer.globalAnimation,
!0));c=w.defer;A(D.hidden,D.msHidden,D.webkitHidden,!1)&&(w.duration=0);0!==w.duration?(b&&(w.complete=b),M(function(){d.element&&q(d,e,w)},c)):(this.attr(e,void 0,b),r(e,function(b,c){w.step&&w.step.call(this,b,{prop:c,pos:1})},this));return this};F.prototype.applyTextOutline=function(e){var c=this.element,b;-1!==e.indexOf("contrast")&&(e=e.replace(/contrast/g,this.renderer.getContrast(c.style.fill)));e=e.split(" ");var d=e[e.length-1];if((b=e[0])&&"none"!==b&&a.svg){this.fakeTS=!0;e=[].slice.call(c.getElementsByTagName("tspan"));
this.ySetter=this.xSetter;b=b.replace(/(^[\d\.]+)(.*?)$/g,function(b,c,e){return 2*c+e});this.removeTextOutline(e);var w=c.textContent?/^[\u0591-\u065F\u066A-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/.test(c.textContent):!1;var g=c.firstChild;e.forEach(function(e,z){0===z&&(e.setAttribute("x",c.getAttribute("x")),z=c.getAttribute("y"),e.setAttribute("y",z||0),null===z&&c.setAttribute("y",0));z=e.cloneNode(!0);E(w&&!C?e:z,{"class":"highcharts-text-outline",fill:d,stroke:d,"stroke-width":b,"stroke-linejoin":"round"});
c.insertBefore(z,g)});w&&C&&e[0]&&(e=e[0].cloneNode(!0),e.textContent=" ",c.insertBefore(e,g))}};F.prototype.attr=function(e,c,b,d){var z=this.element,g,h=this,k,l,m=this.symbolCustomAttribs;if("string"===typeof e&&"undefined"!==typeof c){var x=e;e={};e[x]=c}"string"===typeof e?h=(this[e+"Getter"]||this._defaultGetter).call(this,e,z):(r(e,function(b,c){k=!1;d||B(this,c);this.symbolName&&-1!==m.indexOf(c)&&(g||(this.symbolAttr(e),g=!0),k=!0);!this.rotation||"x"!==c&&"y"!==c||(this.doTransform=!0);
k||(l=this[c+"Setter"]||this._defaultSetter,l.call(this,b,c,z),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(c)&&this.updateShadows(c,b,l))},this),this.afterSetters());b&&b.call(this);return h};F.prototype.clip=function(e){return this.attr("clip-path",e?"url("+this.renderer.url+"#"+e.id+")":"none")};F.prototype.crisp=function(e,c){c=c||e.strokeWidth||0;var b=Math.round(c)%2/2;e.x=Math.floor(e.x||this.x||0)+b;e.y=Math.floor(e.y||this.y||0)+b;e.width=Math.floor((e.width||
this.width||0)-2*b);e.height=Math.floor((e.height||this.height||0)-2*b);I(e.strokeWidth)&&(e.strokeWidth=c);return e};F.prototype.complexColor=function(e,c,b){var d=this.renderer,w,g,k,m,p,B,t,A,u,M,Q=[],F;h(this.renderer,"complexColor",{args:arguments},function(){e.radialGradient?g="radialGradient":e.linearGradient&&(g="linearGradient");if(g){k=e[g];p=d.gradients;B=e.stops;u=b.radialReference;l(k)&&(e[g]=k={x1:k[0],y1:k[1],x2:k[2],y2:k[3],gradientUnits:"userSpaceOnUse"});"radialGradient"===g&&u&&
!I(k.gradientUnits)&&(m=k,k=x(k,d.getRadialAttr(u,m),{gradientUnits:"userSpaceOnUse"}));r(k,function(b,c){"id"!==c&&Q.push(c,b)});r(B,function(b){Q.push(b)});Q=Q.join(",");if(p[Q])M=p[Q].attr("id");else{k.id=M=R();var z=p[Q]=d.createElement(g).attr(k).add(d.defs);z.radAttr=m;z.stops=[];B.forEach(function(b){0===b[1].indexOf("rgba")?(w=f.parse(b[1]),t=w.get("rgb"),A=w.get("a")):(t=b[1],A=1);b=d.createElement("stop").attr({offset:b[0],"stop-color":t,"stop-opacity":A}).add(z);z.stops.push(b)})}F="url("+
d.url+"#"+M+")";b.setAttribute(c,F);b.gradient=Q;e.toString=function(){return F}}})};F.prototype.css=function(e){var c=this.styles,b={},d=this.element,w="",g=!c,k=["textOutline","textOverflow","width"];e&&e.color&&(e.fill=e.color);c&&r(e,function(e,d){c&&c[d]!==e&&(b[d]=e,g=!0)});if(g){c&&(e=m(c,b));if(e)if(null===e.width||"auto"===e.width)delete this.textWidth;else if("text"===d.nodeName.toLowerCase()&&e.width)var h=this.textWidth=N(e.width);this.styles=e;h&&!H&&this.renderer.forExport&&delete e.width;
if(d.namespaceURI===this.SVG_NS){var l=function(b,c){return"-"+c.toLowerCase()};r(e,function(b,c){-1===k.indexOf(c)&&(w+=c.replace(/([A-Z])/g,l)+":"+b+";")});w&&E(d,"style",w)}else t(d,e);this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),e&&e.textOutline&&this.applyTextOutline(e.textOutline))}return this};F.prototype.dashstyleSetter=function(e){var c=this["stroke-width"];"inherit"===c&&(c=1);if(e=e&&e.toLowerCase()){var b=e.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot",
"3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=b.length;e--;)b[e]=""+N(b[e])*A(c,NaN);e=b.join(",").replace(/NaN/g,"none");this.element.setAttribute("stroke-dasharray",e)}};F.prototype.destroy=function(){var e=this,c=e.element||{},b=e.renderer,d=b.isSVG&&"SPAN"===c.nodeName&&e.parentGroup||void 0,w=c.ownerSVGElement;c.onclick=c.onmouseout=c.onmouseover=c.onmousemove=c.point=
null;B(e);if(e.clipPath&&w){var g=e.clipPath;[].forEach.call(w.querySelectorAll("[clip-path],[CLIP-PATH]"),function(b){-1<b.getAttribute("clip-path").indexOf(g.element.id)&&b.removeAttribute("clip-path")});e.clipPath=g.destroy()}if(e.stops){for(w=0;w<e.stops.length;w++)e.stops[w].destroy();e.stops.length=0;e.stops=void 0}e.safeRemoveChild(c);for(b.styledMode||e.destroyShadows();d&&d.div&&0===d.div.childNodes.length;)c=d.parentGroup,e.safeRemoveChild(d.div),delete d.div,d=c;e.alignTo&&u(b.alignedObjects,
e);r(e,function(b,c){e[c]&&e[c].parentGroup===e&&e[c].destroy&&e[c].destroy();delete e[c]})};F.prototype.destroyShadows=function(){(this.shadows||[]).forEach(function(e){this.safeRemoveChild(e)},this);this.shadows=void 0};F.prototype.destroyTextPath=function(e,c){var b=e.getElementsByTagName("text")[0];if(b){if(b.removeAttribute("dx"),b.removeAttribute("dy"),c.element.setAttribute("id",""),this.textPathWrapper&&b.getElementsByTagName("textPath").length){for(e=this.textPathWrapper.element.childNodes;e.length;)b.appendChild(e[0]);
b.removeChild(this.textPathWrapper.element)}}else if(e.getAttribute("dx")||e.getAttribute("dy"))e.removeAttribute("dx"),e.removeAttribute("dy");this.textPathWrapper&&(this.textPathWrapper=this.textPathWrapper.destroy())};F.prototype.dSetter=function(e,c,b){l(e)&&("string"===typeof e[0]&&(e=this.renderer.pathToSegments(e)),this.pathArray=e,e=e.reduce(function(b,c,e){return c&&c.join?(e?b+" ":"")+c.join(" "):(c||"").toString()},""));/(NaN| {2}|^$)/.test(e)&&(e="M 0 0");this[c]!==e&&(b.setAttribute(c,
e),this[c]=e)};F.prototype.fadeOut=function(e){var c=this;c.animate({opacity:0},{duration:A(e,150),complete:function(){c.attr({y:-9999}).hide()}})};F.prototype.fillSetter=function(e,c,b){"string"===typeof e?b.setAttribute(c,e):e&&this.complexColor(e,c,b)};F.prototype.getBBox=function(e,c){var b,d=this.renderer,w=this.element,g=this.styles,h=this.textStr,l=d.cache,r=d.cacheKeys,x=w.namespaceURI===this.SVG_NS;c=A(c,this.rotation,0);var p=d.styledMode?w&&F.prototype.getStyle.call(w,"font-size"):g&&g.fontSize;
if(I(h)){var B=h.toString();-1===B.indexOf("<")&&(B=B.replace(/[0-9]/g,"0"));B+=["",c,p,this.textWidth,g&&g.textOverflow,g&&g.fontWeight].join()}B&&!e&&(b=l[B]);if(!b){if(x||d.forExport){try{var t=this.fakeTS&&function(b){[].forEach.call(w.querySelectorAll(".highcharts-text-outline"),function(c){c.style.display=b})};k(t)&&t("none");b=w.getBBox?m({},w.getBBox()):{width:w.offsetWidth,height:w.offsetHeight};k(t)&&t("")}catch(V){""}if(!b||0>b.width)b={width:0,height:0}}else b=this.htmlGetBBox();d.isSVG&&
(e=b.width,d=b.height,x&&(b.height=d={"11px,17":14,"13px,20":16}[g&&g.fontSize+","+Math.round(d)]||d),c&&(g=c*y,b.width=Math.abs(d*Math.sin(g))+Math.abs(e*Math.cos(g)),b.height=Math.abs(d*Math.cos(g))+Math.abs(e*Math.sin(g))));if(B&&0<b.height){for(;250<r.length;)delete l[r.shift()];l[B]||r.push(B);l[B]=b}}return b};F.prototype.getStyle=function(e){return L.getComputedStyle(this.element||this,"").getPropertyValue(e)};F.prototype.hasClass=function(e){return-1!==(""+this.attr("class")).split(" ").indexOf(e)};
F.prototype.hide=function(e){e?this.attr({y:-9999}):this.attr({visibility:"hidden"});return this};F.prototype.htmlGetBBox=function(){return{height:0,width:0,x:0,y:0}};F.prototype.init=function(e,c){this.element="span"===c?p(c):D.createElementNS(this.SVG_NS,c);this.renderer=e;h(this,"afterInit")};F.prototype.invert=function(e){this.inverted=e;this.updateTransform();return this};F.prototype.on=function(e,c){var b,d,w=this.element,g;G&&"click"===e?(w.ontouchstart=function(c){b=c.touches[0].clientX;d=
c.touches[0].clientY},w.ontouchend=function(e){b&&4<=Math.sqrt(Math.pow(b-e.changedTouches[0].clientX,2)+Math.pow(d-e.changedTouches[0].clientY,2))||c.call(w,e);g=!0;e.preventDefault()},w.onclick=function(b){g||c.call(w,b)}):w["on"+e]=c;return this};F.prototype.opacitySetter=function(e,c,b){this[c]=e;b.setAttribute(c,e)};F.prototype.removeClass=function(e){return this.attr("class",(""+this.attr("class")).replace(d(e)?new RegExp("(^| )"+e+"( |$)"):e," ").replace(/ +/g," ").trim())};F.prototype.removeTextOutline=
function(e){for(var c=e.length,b;c--;)b=e[c],"highcharts-text-outline"===b.getAttribute("class")&&u(e,this.element.removeChild(b))};F.prototype.safeRemoveChild=function(e){var c=e.parentNode;c&&c.removeChild(e)};F.prototype.setRadialReference=function(e){var c=this.element.gradient&&this.renderer.gradients[this.element.gradient];this.element.radialReference=e;c&&c.radAttr&&c.animate(this.renderer.getRadialAttr(e,c.radAttr));return this};F.prototype.setTextPath=function(e,c){var b=this.element,d={textAnchor:"text-anchor"},
w=!1,k=this.textPathWrapper,h=!k;c=x(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},c);var l=c.attributes;if(e&&c&&c.enabled){k&&null===k.element.parentNode?(h=!0,k=k.destroy()):k&&this.removeTextOutline.call(k.parentGroup,[].slice.call(b.getElementsByTagName("tspan")));this.options&&this.options.padding&&(l.dx=-this.options.padding);k||(this.textPathWrapper=k=this.renderer.createElement("textPath"),w=!0);var m=k.element;(c=e.element.getAttribute("id"))||e.element.setAttribute("id",
c=R());if(h)for(e=b.getElementsByTagName("tspan");e.length;)e[0].setAttribute("y",0),g(l.dx)&&e[0].setAttribute("x",-l.dx),m.appendChild(e[0]);w&&k&&k.add({element:this.text?this.text.element:b});m.setAttributeNS("http://www.w3.org/1999/xlink","href",this.renderer.url+"#"+c);I(l.dy)&&(m.parentNode.setAttribute("dy",l.dy),delete l.dy);I(l.dx)&&(m.parentNode.setAttribute("dx",l.dx),delete l.dx);r(l,function(b,c){m.setAttribute(d[c]||c,b)});b.removeAttribute("transform");this.removeTextOutline.call(k,
[].slice.call(b.getElementsByTagName("tspan")));this.text&&!this.renderer.styledMode&&this.attr({fill:"none","stroke-width":0});this.applyTextOutline=this.updateTransform=J}else k&&(delete this.updateTransform,delete this.applyTextOutline,this.destroyTextPath(b,e),this.updateTransform(),this.options&&this.options.rotation&&this.applyTextOutline(this.options.style.textOutline));return this};F.prototype.shadow=function(e,c,b){var d=[],g=this.element,k=!1,h=this.oldShadowOptions;var l={color:"#000000",
offsetX:1,offsetY:1,opacity:.15,width:3};var x;!0===e?x=l:"object"===typeof e&&(x=m(l,e));x&&(x&&h&&r(x,function(b,c){b!==h[c]&&(k=!0)}),k&&this.destroyShadows(),this.oldShadowOptions=x);if(!x)this.destroyShadows();else if(!this.shadows){var p=x.opacity/x.width;var B=this.parentInverted?"translate(-1,-1)":"translate("+x.offsetX+", "+x.offsetY+")";for(l=1;l<=x.width;l++){var t=g.cloneNode(!1);var A=2*x.width+1-2*l;E(t,{stroke:e.color||"#000000","stroke-opacity":p*l,"stroke-width":A,transform:B,fill:"none"});
t.setAttribute("class",(t.getAttribute("class")||"")+" highcharts-shadow");b&&(E(t,"height",Math.max(E(t,"height")-A,0)),t.cutHeight=A);c?c.element.appendChild(t):g.parentNode&&g.parentNode.insertBefore(t,g);d.push(t)}this.shadows=d}return this};F.prototype.show=function(e){return this.attr({visibility:e?"inherit":"visible"})};F.prototype.strokeSetter=function(e,c,b){this[c]=e;this.stroke&&this["stroke-width"]?(F.prototype.fillSetter.call(this,this.stroke,"stroke",b),b.setAttribute("stroke-width",
this["stroke-width"]),this.hasStroke=!0):"stroke-width"===c&&0===e&&this.hasStroke?(b.removeAttribute("stroke"),this.hasStroke=!1):this.renderer.styledMode&&this["stroke-width"]&&(b.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0)};F.prototype.strokeWidth=function(){if(!this.renderer.styledMode)return this["stroke-width"]||0;var e=this.getStyle("stroke-width"),c=0;if(e.indexOf("px")===e.length-2)c=N(e);else if(""!==e){var b=D.createElementNS(v,"rect");E(b,{width:e,"stroke-width":0});
this.element.parentNode.appendChild(b);c=b.getBBox().width;b.parentNode.removeChild(b)}return c};F.prototype.symbolAttr=function(e){var c=this;"x y r start end width height innerR anchorX anchorY clockwise".split(" ").forEach(function(b){c[b]=A(e[b],c[b])});c.attr({d:c.renderer.symbols[c.symbolName](c.x,c.y,c.width,c.height,c)})};F.prototype.textSetter=function(e){e!==this.textStr&&(delete this.textPxLength,this.textStr=e,this.added&&this.renderer.buildText(this))};F.prototype.titleSetter=function(e){var c=
this.element.getElementsByTagName("title")[0];c||(c=D.createElementNS(this.SVG_NS,"title"),this.element.appendChild(c));c.firstChild&&c.removeChild(c.firstChild);c.appendChild(D.createTextNode(String(A(e,"")).replace(/<[^>]*>/g,"").replace(/&lt;/g,"<").replace(/&gt;/g,">")))};F.prototype.toFront=function(){var e=this.element;e.parentNode.appendChild(e);return this};F.prototype.translate=function(e,c){return this.attr({translateX:e,translateY:c})};F.prototype.updateShadows=function(e,c,b){var d=this.shadows;
if(d)for(var g=d.length;g--;)b.call(d[g],"height"===e?Math.max(c-(d[g].cutHeight||0),0):"d"===e?this.d:c,e,d[g])};F.prototype.updateTransform=function(){var e=this.translateX||0,c=this.translateY||0,b=this.scaleX,d=this.scaleY,g=this.inverted,k=this.rotation,h=this.matrix,l=this.element;g&&(e+=this.width,c+=this.height);e=["translate("+e+","+c+")"];I(h)&&e.push("matrix("+h.join(",")+")");g?e.push("rotate(90) scale(-1,1)"):k&&e.push("rotate("+k+" "+A(this.rotationOriginX,l.getAttribute("x"),0)+" "+
A(this.rotationOriginY,l.getAttribute("y")||0)+")");(I(b)||I(d))&&e.push("scale("+A(b,1)+" "+A(d,1)+")");e.length&&l.setAttribute("transform",e.join(" "))};F.prototype.visibilitySetter=function(e,c,b){"inherit"===e?b.removeAttribute(c):this[c]!==e&&b.setAttribute(c,e);this[c]=e};F.prototype.xGetter=function(e){"circle"===this.element.nodeName&&("x"===e?e="cx":"y"===e&&(e="cy"));return this._defaultGetter(e)};F.prototype.zIndexSetter=function(e,c){var b=this.renderer,d=this.parentGroup,g=(d||b).element||
b.box,k=this.element,h=!1;b=g===b.box;var l=this.added;var r;I(e)?(k.setAttribute("data-z-index",e),e=+e,this[c]===e&&(l=!1)):I(this[c])&&k.removeAttribute("data-z-index");this[c]=e;if(l){(e=this.zIndex)&&d&&(d.handleZ=!0);c=g.childNodes;for(r=c.length-1;0<=r&&!h;r--){d=c[r];l=d.getAttribute("data-z-index");var m=!I(l);if(d!==k)if(0>e&&m&&!b&&!r)g.insertBefore(k,c[r]),h=!0;else if(N(l)<=e||m&&(!I(e)||0<=e))g.insertBefore(k,c[r+1]||null),h=!0}h||(g.insertBefore(k,c[b?3:0]||null),h=!0)}return h};return F}();
n.prototype["stroke-widthSetter"]=n.prototype.strokeSetter;n.prototype.yGetter=n.prototype.xGetter;n.prototype.matrixSetter=n.prototype.rotationOriginXSetter=n.prototype.rotationOriginYSetter=n.prototype.rotationSetter=n.prototype.scaleXSetter=n.prototype.scaleYSetter=n.prototype.translateXSetter=n.prototype.translateYSetter=n.prototype.verticalAlignSetter=function(d,e){this[e]=d;this.doTransform=!0};a.SVGElement=n;return a.SVGElement});O(n,"Core/Renderer/SVG/SVGLabel.js",[n["Core/Renderer/SVG/SVGElement.js"],
n["Core/Utilities.js"]],function(f,a){var n=this&&this.__extends||function(){var a=function(f,L){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,f){a.__proto__=f}||function(a,f){for(var q in f)f.hasOwnProperty(q)&&(a[q]=f[q])};return a(f,L)};return function(f,L){function q(){this.constructor=f}a(f,L);f.prototype=null===L?Object.create(L):(q.prototype=L.prototype,new q)}}(),y=a.defined,D=a.extend,G=a.isNumber,C=a.merge,J=a.removeEvent;return function(a){function v(f,q,H,E,p,t,I,
u,m,h){var l=a.call(this)||this;l.init(f,"g");l.textStr=q;l.x=H;l.y=E;l.anchorX=t;l.anchorY=I;l.baseline=m;l.className=h;"button"!==h&&l.addClass("highcharts-label");h&&l.addClass("highcharts-"+h);l.text=f.text("",0,0,u).attr({zIndex:1});if("string"===typeof p){var k=/^url\((.*?)\)$/.test(p);if(l.renderer.symbols[p]||k)l.symbolKey=p}l.bBox=v.emptyBBox;l.padding=3;l.paddingLeft=0;l.baselineOffset=0;l.needsBox=f.styledMode||k;l.deferredAttr={};l.alignFactor=0;return l}n(v,a);v.prototype.alignSetter=
function(a){a={left:0,center:.5,right:1}[a];a!==this.alignFactor&&(this.alignFactor=a,this.bBox&&G(this.xSetting)&&this.attr({x:this.xSetting}))};v.prototype.anchorXSetter=function(a,f){this.anchorX=a;this.boxAttr(f,Math.round(a)-this.getCrispAdjust()-this.xSetting)};v.prototype.anchorYSetter=function(a,f){this.anchorY=a;this.boxAttr(f,a-this.ySetting)};v.prototype.boxAttr=function(a,f){this.box?this.box.attr(a,f):this.deferredAttr[a]=f};v.prototype.css=function(a){if(a){var q={};a=C(a);v.textProps.forEach(function(f){"undefined"!==
typeof a[f]&&(q[f]=a[f],delete a[f])});this.text.css(q);var L="fontSize"in q||"fontWeight"in q;if("width"in q||L)this.updateBoxSize(),L&&this.updateTextPadding()}return f.prototype.css.call(this,a)};v.prototype.destroy=function(){J(this.element,"mouseenter");J(this.element,"mouseleave");this.text&&this.text.destroy();this.box&&(this.box=this.box.destroy());f.prototype.destroy.call(this)};v.prototype.fillSetter=function(a,f){a&&(this.needsBox=!0);this.fill=a;this.boxAttr(f,a)};v.prototype.getBBox=
function(){var a=this.bBox,f=this.padding;return{width:a.width+2*f,height:a.height+2*f,x:a.x-f,y:a.y-f}};v.prototype.getCrispAdjust=function(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2};v.prototype.heightSetter=function(a){this.heightSetting=a};v.prototype.on=function(a,q){var v=this,E=v.text,p=E&&"SPAN"===E.element.tagName?E:void 0;if(p){var t=function(t){("mouseenter"===a||"mouseleave"===a)&&t.relatedTarget instanceof
Element&&(v.element.contains(t.relatedTarget)||p.element.contains(t.relatedTarget))||q.call(v.element,t)};p.on(a,t)}f.prototype.on.call(v,a,t||q);return v};v.prototype.onAdd=function(){var a=this.textStr;this.text.add(this);this.attr({text:y(a)?a:"",x:this.x,y:this.y});this.box&&y(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})};v.prototype.paddingSetter=function(a){y(a)&&a!==this.padding&&(this.padding=a,this.updateTextPadding())};v.prototype.paddingLeftSetter=function(a){y(a)&&
a!==this.paddingLeft&&(this.paddingLeft=a,this.updateTextPadding())};v.prototype.rSetter=function(a,f){this.boxAttr(f,a)};v.prototype.shadow=function(a){a&&!this.renderer.styledMode&&(this.updateBoxSize(),this.box&&this.box.shadow(a));return this};v.prototype.strokeSetter=function(a,f){this.stroke=a;this.boxAttr(f,a)};v.prototype["stroke-widthSetter"]=function(a,f){a&&(this.needsBox=!0);this["stroke-width"]=a;this.boxAttr(f,a)};v.prototype["text-alignSetter"]=function(a){this.textAlign=a};v.prototype.textSetter=
function(a){"undefined"!==typeof a&&this.text.attr({text:a});this.updateBoxSize();this.updateTextPadding()};v.prototype.updateBoxSize=function(){var a=this.text.element.style,f={},H=this.padding,E=this.paddingLeft,p=G(this.widthSetting)&&G(this.heightSetting)&&!this.textAlign||!y(this.text.textStr)?v.emptyBBox:this.text.getBBox();this.width=(this.widthSetting||p.width||0)+2*H+E;this.height=(this.heightSetting||p.height||0)+2*H;this.baselineOffset=H+Math.min(this.renderer.fontMetrics(a&&a.fontSize,
this.text).b,p.height||Infinity);this.needsBox&&(this.box||(a=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect(),a.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),a.add(this),a=this.getCrispAdjust(),f.x=a,f.y=(this.baseline?-this.baselineOffset:0)+a),f.width=Math.round(this.width),f.height=Math.round(this.height),this.box.attr(D(f,this.deferredAttr)),this.deferredAttr={});this.bBox=p};v.prototype.updateTextPadding=
function(){var a=this.text,f=this.baseline?0:this.baselineOffset,v=this.paddingLeft+this.padding;y(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(v+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width));if(v!==a.x||f!==a.y)a.attr("x",v),a.hasBoxWidthChanged&&(this.bBox=a.getBBox(!0),this.updateBoxSize()),"undefined"!==typeof f&&a.attr("y",f);a.x=v;a.y=f};v.prototype.widthSetter=function(a){this.widthSetting=G(a)?a:void 0};v.prototype.xSetter=
function(a){this.x=a;this.alignFactor&&(a-=this.alignFactor*((this.widthSetting||this.bBox.width)+2*this.padding),this["forceAnimate:x"]=!0);this.xSetting=Math.round(a);this.attr("translateX",this.xSetting)};v.prototype.ySetter=function(a){this.ySetting=this.y=Math.round(a);this.attr("translateY",this.ySetting)};v.emptyBBox={width:0,height:0,x:0,y:0};v.textProps="color cursor direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width".split(" ");
return v}(f)});O(n,"Core/Renderer/SVG/SVGRenderer.js",[n["Core/Color.js"],n["Core/Globals.js"],n["Core/Renderer/SVG/SVGElement.js"],n["Core/Renderer/SVG/SVGLabel.js"],n["Core/Utilities.js"]],function(f,a,n,y,D){var G=D.addEvent,C=D.attr,J=D.createElement,H=D.css,v=D.defined,L=D.destroyObjectProperties,q=D.extend,K=D.isArray,E=D.isNumber,p=D.isObject,t=D.isString,I=D.merge,u=D.objectEach,m=D.pick,h=D.pInt,l=D.splat,k=D.uniqueKey,g=a.charts,d=a.deg2rad,x=a.doc,r=a.isFirefox,A=a.isMS,N=a.isWebKit;D=
a.noop;var B=a.svg,M=a.SVG_NS,R=a.symbolSizes,F=a.win,e=function(){function c(b,c,e,d,g,k,h){this.width=this.url=this.style=this.isSVG=this.imgCount=this.height=this.gradients=this.globalAnimation=this.defs=this.chartIndex=this.cacheKeys=this.cache=this.boxWrapper=this.box=this.alignedObjects=void 0;this.init(b,c,e,d,g,k,h)}c.prototype.init=function(b,c,e,d,g,k,h){var w=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});h||w.css(this.getStyle(d));d=w.element;b.appendChild(d);
C(b,"dir","ltr");-1===b.innerHTML.indexOf("xmlns")&&C(d,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=d;this.boxWrapper=w;this.alignedObjects=[];this.url=(r||N)&&x.getElementsByTagName("base").length?F.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(x.createTextNode("Created with Highcharts 8.2.0"));this.defs=this.createElement("defs").add();this.allowHTML=k;this.forExport=g;this.styledMode=h;
this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(c,e,!1);var z;r&&b.getBoundingClientRect&&(c=function(){H(b,{left:0,top:0});z=b.getBoundingClientRect();H(b,{left:Math.ceil(z.left)-z.left+"px",top:Math.ceil(z.top)-z.top+"px"})},c(),this.unSubPixelFix=G(F,"resize",c))};c.prototype.definition=function(b){function c(b,d){var g;l(b).forEach(function(b){var w=e.createElement(b.tagName),z={};u(b,function(b,c){"tagName"!==c&&"children"!==c&&"textContent"!==c&&(z[c]=b)});w.attr(z);
w.add(d||e.defs);b.textContent&&w.element.appendChild(x.createTextNode(b.textContent));c(b.children||[],w);g=w});return g}var e=this;return c(b)};c.prototype.getStyle=function(b){return this.style=q({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},b)};c.prototype.setStyle=function(b){this.boxWrapper.css(this.getStyle(b))};c.prototype.isHidden=function(){return!this.boxWrapper.getBBox().width};c.prototype.destroy=function(){var b=this.defs;this.box=
null;this.boxWrapper=this.boxWrapper.destroy();L(this.gradients||{});this.gradients=null;b&&(this.defs=b.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null};c.prototype.createElement=function(b){var c=new this.Element;c.init(this,b);return c};c.prototype.getRadialAttr=function(b,c){return{cx:b[0]-b[2]/2+c.cx*b[2],cy:b[1]-b[2]/2+c.cy*b[2],r:c.r*b[2]}};c.prototype.truncate=function(b,c,e,d,g,k,h){var w=this,z=b.rotation,l,r=d?1:0,m=(e||d).length,P=m,p=[],t=function(b){c.firstChild&&
c.removeChild(c.firstChild);b&&c.appendChild(x.createTextNode(b))},B=function(z,k){k=k||z;if("undefined"===typeof p[k])if(c.getSubStringLength)try{p[k]=g+c.getSubStringLength(0,d?k+1:k)}catch(da){""}else w.getSpanWidth&&(t(h(e||d,z)),p[k]=g+w.getSpanWidth(b,c));return p[k]},a;b.rotation=0;var A=B(c.textContent.length);if(a=g+A>k){for(;r<=m;)P=Math.ceil((r+m)/2),d&&(l=h(d,P)),A=B(P,l&&l.length-1),r===m?r=m+1:A>k?m=P-1:r=P;0===m?t(""):e&&m===e.length-1||t(l||h(e||d,P))}d&&d.splice(0,P);b.actualWidth=
A;b.rotation=z;return a};c.prototype.buildText=function(b){var c=b.element,e=this,d=e.forExport,g=m(b.textStr,"").toString(),k=-1!==g.indexOf("<"),l=c.childNodes,r,p=C(c,"x"),a=b.styles,A=b.textWidth,I=a&&a.lineHeight,Q=a&&a.textOutline,f=a&&"ellipsis"===a.textOverflow,F=a&&"nowrap"===a.whiteSpace,N=a&&a.fontSize,q,E=l.length;a=A&&!b.added&&this.box;var v=function(b){var d;e.styledMode||(d=/(px|em)$/.test(b&&b.style.fontSize)?b.style.fontSize:N||e.style.fontSize||12);return I?h(I):e.fontMetrics(d,
b.getAttribute("style")?b:c).h},R=function(b,c){u(e.escapes,function(e,d){c&&-1!==c.indexOf(e)||(b=b.toString().replace(new RegExp(e,"g"),d))});return b},n=function(b,c){var e=b.indexOf("<");b=b.substring(e,b.indexOf(">")-e);e=b.indexOf(c+"=");if(-1!==e&&(e=e+c.length+1,c=b.charAt(e),'"'===c||"'"===c))return b=b.substring(e+1),b.substring(0,b.indexOf(c))},K=/<br.*?>/g;var J=[g,f,F,I,Q,N,A].join();if(J!==b.textCache){for(b.textCache=J;E--;)c.removeChild(l[E]);k||Q||f||A||-1!==g.indexOf(" ")&&(!F||
K.test(g))?(a&&a.appendChild(c),k?(g=e.styledMode?g.replace(/<(b|strong)>/g,'<span class="highcharts-strong">').replace(/<(i|em)>/g,'<span class="highcharts-emphasized">'):g.replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">'),g=g.replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(K)):g=[g],g=g.filter(function(b){return""!==b}),g.forEach(function(g,w){var k=0,z=0;g=g.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,
"</span>|||");var h=g.split("|||");h.forEach(function(g){if(""!==g||1===h.length){var l={},m=x.createElementNS(e.SVG_NS,"tspan"),P,a;(P=n(g,"class"))&&C(m,"class",P);if(P=n(g,"style"))P=P.replace(/(;| |^)color([ :])/,"$1fill$2"),C(m,"style",P);if((a=n(g,"href"))&&!d&&-1===a.split(":")[0].toLowerCase().indexOf("javascript")){var t=x.createElementNS(e.SVG_NS,"a");C(t,"href",a);C(m,"class","highcharts-anchor");t.appendChild(m);e.styledMode||H(m,{cursor:"pointer"})}g=R(g.replace(/<[a-zA-Z\/](.|\n)*?>/g,
"")||" ");if(" "!==g){m.appendChild(x.createTextNode(g));k?l.dx=0:w&&null!==p&&(l.x=p);C(m,l);c.appendChild(t||m);!k&&q&&(!B&&d&&H(m,{display:"block"}),C(m,"dy",v(m)));if(A){var Q=g.replace(/([^\^])-/g,"$1- ").split(" ");l=!F&&(1<h.length||w||1<Q.length);t=0;a=v(m);if(f)r=e.truncate(b,m,g,void 0,0,Math.max(0,A-parseInt(N||12,10)),function(b,c){return b.substring(0,c)+"\u2026"});else if(l)for(;Q.length;)Q.length&&!F&&0<t&&(m=x.createElementNS(M,"tspan"),C(m,{dy:a,x:p}),P&&C(m,"style",P),m.appendChild(x.createTextNode(Q.join(" ").replace(/- /g,
"-"))),c.appendChild(m)),e.truncate(b,m,null,Q,0===t?z:0,A,function(b,c){return Q.slice(0,c).join(" ").replace(/- /g,"-")}),z=b.actualWidth,t++}k++}}});q=q||c.childNodes.length}),f&&r&&b.attr("title",R(b.textStr||"",["&lt;","&gt;"])),a&&a.removeChild(c),t(Q)&&b.applyTextOutline&&b.applyTextOutline(Q)):c.appendChild(x.createTextNode(R(g)))}};c.prototype.getContrast=function(b){b=f.parse(b).rgba;b[0]*=1;b[1]*=1.2;b[2]*=.5;return 459<b[0]+b[1]+b[2]?"#000000":"#FFFFFF"};c.prototype.button=function(b,
c,e,d,g,k,h,l,r,m){var w=this.label(b,c,e,r,void 0,void 0,m,void 0,"button"),z=0,x=this.styledMode;b=(g=g?I(g):g)&&g.style||{};g&&g.style&&delete g.style;w.attr(I({padding:8,r:2},g));if(!x){g=I({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontWeight:"normal"}},{style:b},g);var P=g.style;delete g.style;k=I(g,{fill:"#e6e6e6"},k);var t=k.style;delete k.style;h=I(g,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},h);var a=h.style;delete h.style;l=
I(g,{style:{color:"#cccccc"}},l);var p=l.style;delete l.style}G(w.element,A?"mouseover":"mouseenter",function(){3!==z&&w.setState(1)});G(w.element,A?"mouseout":"mouseleave",function(){3!==z&&w.setState(z)});w.setState=function(b){1!==b&&(w.state=z=b);w.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][b||0]);x||w.attr([g,k,h,l][b||0]).css([P,t,a,p][b||0])};x||w.attr(g).css(q({cursor:"default"},P));return w.on("click",
function(b){3!==z&&d.call(w,b)})};c.prototype.crispLine=function(b,c,e){void 0===e&&(e="round");var d=b[0],g=b[1];d[1]===g[1]&&(d[1]=g[1]=Math[e](d[1])-c%2/2);d[2]===g[2]&&(d[2]=g[2]=Math[e](d[2])+c%2/2);return b};c.prototype.path=function(b){var c=this.styledMode?{}:{fill:"none"};K(b)?c.d=b:p(b)&&q(c,b);return this.createElement("path").attr(c)};c.prototype.circle=function(b,c,e){b=p(b)?b:"undefined"===typeof b?{}:{x:b,y:c,r:e};c=this.createElement("circle");c.xSetter=c.ySetter=function(b,c,e){e.setAttribute("c"+
c,b)};return c.attr(b)};c.prototype.arc=function(b,c,e,d,g,k){p(b)?(d=b,c=d.y,e=d.r,b=d.x):d={innerR:d,start:g,end:k};b=this.symbol("arc",b,c,e,e,d);b.r=e;return b};c.prototype.rect=function(b,c,e,d,g,k){g=p(b)?b.r:g;var w=this.createElement("rect");b=p(b)?b:"undefined"===typeof b?{}:{x:b,y:c,width:Math.max(e,0),height:Math.max(d,0)};this.styledMode||("undefined"!==typeof k&&(b.strokeWidth=k,b=w.crisp(b)),b.fill="none");g&&(b.r=g);w.rSetter=function(b,c,e){w.r=b;C(e,{rx:b,ry:b})};w.rGetter=function(){return w.r};
return w.attr(b)};c.prototype.setSize=function(b,c,e){var d=this.alignedObjects,g=d.length;this.width=b;this.height=c;for(this.boxWrapper.animate({width:b,height:c},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:m(e,!0)?void 0:0});g--;)d[g].align()};c.prototype.g=function(b){var c=this.createElement("g");return b?c.attr({"class":"highcharts-"+b}):c};c.prototype.image=function(b,c,e,d,g,k){var w={preserveAspectRatio:"none"},h=function(b,c){b.setAttributeNS?
b.setAttributeNS("http://www.w3.org/1999/xlink","href",c):b.setAttribute("hc-svg-href",c)},z=function(c){h(l.element,b);k.call(l,c)};1<arguments.length&&q(w,{x:c,y:e,width:d,height:g});var l=this.createElement("image").attr(w);k?(h(l.element,"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),w=new F.Image,G(w,"load",z),w.src=b,w.complete&&z({})):h(l.element,b);return l};c.prototype.symbol=function(b,c,e,d,k,h){var w=this,z=/^url\((.*?)\)$/,l=z.test(b),r=!l&&(this.symbols[b]?
b:"circle"),P=r&&this.symbols[r],t;if(P){"number"===typeof c&&(t=P.call(this.symbols,Math.round(c||0),Math.round(e||0),d||0,k||0,h));var a=this.path(t);w.styledMode||a.attr("fill","none");q(a,{symbolName:r,x:c,y:e,width:d,height:k});h&&q(a,h)}else if(l){var p=b.match(z)[1];a=this.image(p);a.imgwidth=m(R[p]&&R[p].width,h&&h.width);a.imgheight=m(R[p]&&R[p].height,h&&h.height);var B=function(){a.attr({width:a.width,height:a.height})};["width","height"].forEach(function(b){a[b+"Setter"]=function(b,c){var e=
{},d=this["img"+c],g="width"===c?"translateX":"translateY";this[c]=b;v(d)&&(h&&"within"===h.backgroundSize&&this.width&&this.height&&(d=Math.round(d*Math.min(this.width/this.imgwidth,this.height/this.imgheight))),this.element&&this.element.setAttribute(c,d),this.alignByTranslate||(e[g]=((this[c]||0)-d)/2,this.attr(e)))}});v(c)&&a.attr({x:c,y:e});a.isImg=!0;v(a.imgwidth)&&v(a.imgheight)?B():(a.attr({width:0,height:0}),J("img",{onload:function(){var b=g[w.chartIndex];0===this.width&&(H(this,{position:"absolute",
top:"-999em"}),x.body.appendChild(this));R[p]={width:this.width,height:this.height};a.imgwidth=this.width;a.imgheight=this.height;a.element&&B();this.parentNode&&this.parentNode.removeChild(this);w.imgCount--;if(!w.imgCount&&b&&!b.hasLoaded)b.onload()},src:p}),this.imgCount++)}return a};c.prototype.clipRect=function(b,c,e,d){var g=k()+"-",w=this.createElement("clipPath").attr({id:g}).add(this.defs);b=this.rect(b,c,e,d,0).add(w);b.id=g;b.clipPath=w;b.count=0;return b};c.prototype.text=function(b,c,
e,d){var g={};if(d&&(this.allowHTML||!this.forExport))return this.html(b,c,e);g.x=Math.round(c||0);e&&(g.y=Math.round(e));v(b)&&(g.text=b);b=this.createElement("text").attr(g);d||(b.xSetter=function(b,c,e){var d=e.getElementsByTagName("tspan"),g=e.getAttribute(c),k;for(k=0;k<d.length;k++){var w=d[k];w.getAttribute(c)===g&&w.setAttribute(c,b)}e.setAttribute(c,b)});return b};c.prototype.fontMetrics=function(b,c){b=!this.styledMode&&/px/.test(b)||!F.getComputedStyle?b||c&&c.style&&c.style.fontSize||
this.style&&this.style.fontSize:c&&n.prototype.getStyle.call(c,"font-size");b=/px/.test(b)?h(b):12;c=24>b?b+3:Math.round(1.2*b);return{h:c,b:Math.round(.8*c),f:b}};c.prototype.rotCorr=function(b,c,e){var g=b;c&&e&&(g=Math.max(g*Math.cos(c*d),4));return{x:-b/3*Math.sin(c*d),y:g}};c.prototype.pathToSegments=function(b){for(var c=[],e=[],d={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2},g=0;g<b.length;g++)t(e[0])&&E(b[g])&&e.length===d[e[0].toUpperCase()]&&b.splice(g,0,e[0].replace("M","L").replace("m","l")),
"string"===typeof b[g]&&(e.length&&c.push(e.slice(0)),e.length=0),e.push(b[g]);c.push(e.slice(0));return c};c.prototype.label=function(b,c,e,d,g,k,h,l,r){return new y(this,b,c,e,d,g,k,h,l,r)};return c}();e.prototype.Element=n;e.prototype.SVG_NS=M;e.prototype.draw=D;e.prototype.escapes={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"};e.prototype.symbols={circle:function(c,b,e,d){return this.arc(c+e/2,b+d/2,e/2,d/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},square:function(c,b,e,d){return[["M",
c,b],["L",c+e,b],["L",c+e,b+d],["L",c,b+d],["Z"]]},triangle:function(c,b,e,d){return[["M",c+e/2,b],["L",c+e,b+d],["L",c,b+d],["Z"]]},"triangle-down":function(c,b,e,d){return[["M",c,b],["L",c+e,b],["L",c+e/2,b+d],["Z"]]},diamond:function(c,b,e,d){return[["M",c+e/2,b],["L",c+e,b+d/2],["L",c+e/2,b+d],["L",c,b+d/2],["Z"]]},arc:function(c,b,e,d,g){var k=[];if(g){var h=g.start||0,w=g.end||0,z=g.r||e;e=g.r||d||e;var l=.001>Math.abs(w-h-2*Math.PI);w-=.001;d=g.innerR;l=m(g.open,l);var r=Math.cos(h),x=Math.sin(h),
a=Math.cos(w),P=Math.sin(w);h=m(g.longArc,.001>w-h-Math.PI?0:1);k.push(["M",c+z*r,b+e*x],["A",z,e,0,h,m(g.clockwise,1),c+z*a,b+e*P]);v(d)&&k.push(l?["M",c+d*a,b+d*P]:["L",c+d*a,b+d*P],["A",d,d,0,h,v(g.clockwise)?1-g.clockwise:0,c+d*r,b+d*x]);l||k.push(["Z"])}return k},callout:function(c,b,e,d,g){var k=Math.min(g&&g.r||0,e,d),h=k+6,w=g&&g.anchorX||0;g=g&&g.anchorY||0;var l=[["M",c+k,b],["L",c+e-k,b],["C",c+e,b,c+e,b,c+e,b+k],["L",c+e,b+d-k],["C",c+e,b+d,c+e,b+d,c+e-k,b+d],["L",c+k,b+d],["C",c,b+d,
c,b+d,c,b+d-k],["L",c,b+k],["C",c,b,c,b,c+k,b]];w&&w>e?g>b+h&&g<b+d-h?l.splice(3,1,["L",c+e,g-6],["L",c+e+6,g],["L",c+e,g+6],["L",c+e,b+d-k]):l.splice(3,1,["L",c+e,d/2],["L",w,g],["L",c+e,d/2],["L",c+e,b+d-k]):w&&0>w?g>b+h&&g<b+d-h?l.splice(7,1,["L",c,g+6],["L",c-6,g],["L",c,g-6],["L",c,b+k]):l.splice(7,1,["L",c,d/2],["L",w,g],["L",c,d/2],["L",c,b+k]):g&&g>d&&w>c+h&&w<c+e-h?l.splice(5,1,["L",w+6,b+d],["L",w,b+d+6],["L",w-6,b+d],["L",c+k,b+d]):g&&0>g&&w>c+h&&w<c+e-h&&l.splice(1,1,["L",w-6,b],["L",
w,b-6],["L",w+6,b],["L",e-k,b]);return l}};a.SVGRenderer=e;a.Renderer=a.SVGRenderer;return a.Renderer});O(n,"Core/Renderer/HTML/HTML.js",[n["Core/Globals.js"],n["Core/Renderer/SVG/SVGElement.js"],n["Core/Renderer/SVG/SVGRenderer.js"],n["Core/Utilities.js"]],function(f,a,n,y){var D=y.attr,G=y.createElement,C=y.css,J=y.defined,H=y.extend,v=y.pick,L=y.pInt,q=f.isFirefox,K=f.isMS,E=f.isWebKit,p=f.win;H(a.prototype,{htmlCss:function(a){var p="SPAN"===this.element.tagName&&a&&"width"in a,t=v(p&&a.width,
void 0);if(p){delete a.width;this.textWidth=t;var m=!0}a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=H(this.styles,a);C(this.element,a);m&&this.htmlUpdateTransform();return this},htmlGetBBox:function(){var a=this.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,p=this.element,u=this.translateX||0,m=this.translateY||0,h=this.x||0,l=this.y||0,k=this.textAlign||
"left",g={left:0,center:.5,right:1}[k],d=this.styles,x=d&&d.whiteSpace;C(p,{marginLeft:u,marginTop:m});!a.styledMode&&this.shadows&&this.shadows.forEach(function(d){C(d,{marginLeft:u+1,marginTop:m+1})});this.inverted&&[].forEach.call(p.childNodes,function(d){a.invertChild(d,p)});if("SPAN"===p.tagName){d=this.rotation;var r=this.textWidth&&L(this.textWidth),A=[d,k,p.innerHTML,this.textWidth,this.textAlign].join(),f;(f=r!==this.oldTextWidth)&&!(f=r>this.oldTextWidth)&&((f=this.textPxLength)||(C(p,{width:"",
whiteSpace:x||"nowrap"}),f=p.offsetWidth),f=f>r);f&&(/[ \-]/.test(p.textContent||p.innerText)||"ellipsis"===p.style.textOverflow)?(C(p,{width:r+"px",display:"block",whiteSpace:x||"normal"}),this.oldTextWidth=r,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;A!==this.cTT&&(x=a.fontMetrics(p.style.fontSize,p).b,!J(d)||d===(this.oldRotation||0)&&k===this.oldAlign||this.setSpanRotation(d,g,x),this.getSpanCorrection(!J(d)&&this.textPxLength||p.offsetWidth,x,g,d,k));C(p,{left:h+(this.xCorr||0)+"px",
top:l+(this.yCorr||0)+"px"});this.cTT=A;this.oldRotation=d;this.oldAlign=k}}else this.alignOnAdd=!0},setSpanRotation:function(a,p,u){var m={},h=this.renderer.getTransformKey();m[h]=m.transform="rotate("+a+"deg)";m[h+(q?"Origin":"-origin")]=m.transformOrigin=100*p+"% "+u+"px";C(this.element,m)},getSpanCorrection:function(a,p,u){this.xCorr=-a*u;this.yCorr=-p}});H(n.prototype,{getTransformKey:function(){return K&&!/Edge/.test(p.navigator.userAgent)?"-ms-transform":E?"-webkit-transform":q?"MozTransform":
p.opera?"-o-transform":""},html:function(p,f,u){var m=this.createElement("span"),h=m.element,l=m.renderer,k=l.isSVG,g=function(d,g){["opacity","visibility"].forEach(function(k){d[k+"Setter"]=function(h,l,r){var m=d.div?d.div.style:g;a.prototype[k+"Setter"].call(this,h,l,r);m&&(m[l]=h)}});d.addedSetters=!0};m.textSetter=function(d){d!==h.innerHTML&&(delete this.bBox,delete this.oldTextWidth);this.textStr=d;h.innerHTML=v(d,"");m.doTransform=!0};k&&g(m,m.element.style);m.xSetter=m.ySetter=m.alignSetter=
m.rotationSetter=function(d,g){"align"===g?m.alignValue=m.textAlign=d:m[g]=d;m.doTransform=!0};m.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};m.attr({text:p,x:Math.round(f),y:Math.round(u)}).css({position:"absolute"});l.styledMode||m.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});h.style.whiteSpace="nowrap";m.css=m.htmlCss;k&&(m.add=function(d){var k=l.box.parentNode,r=[];if(this.parentGroup=d){var a=d.div;if(!a){for(;d;)r.push(d),
d=d.parentGroup;r.reverse().forEach(function(d){function h(g,e){d[e]=g;"translateX"===e?x.left=g+"px":x.top=g+"px";d.doTransform=!0}var l=D(d.element,"class");a=d.div=d.div||G("div",l?{className:l}:void 0,{position:"absolute",left:(d.translateX||0)+"px",top:(d.translateY||0)+"px",display:d.display,opacity:d.opacity,pointerEvents:d.styles&&d.styles.pointerEvents},a||k);var x=a.style;H(d,{classSetter:function(d){return function(e){this.element.setAttribute("class",e);d.className=e}}(a),on:function(){r[0].div&&
m.on.apply({element:r[0].div},arguments);return d},translateXSetter:h,translateYSetter:h});d.addedSetters||g(d)})}}else a=k;a.appendChild(h);m.added=!0;m.alignOnAdd&&m.htmlUpdateTransform();return m});return m}})});O(n,"Core/Axis/Tick.js",[n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a){var n=a.clamp,y=a.correctFloat,D=a.defined,G=a.destroyObjectProperties,C=a.extend,J=a.fireEvent,H=a.isNumber,v=a.merge,L=a.objectEach,q=a.pick,K=f.deg2rad;a=function(){function a(a,t,f,u,m){this.isNewLabel=
this.isNew=!0;this.axis=a;this.pos=t;this.type=f||"";this.parameters=m||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=this.parameters.options;J(this,"init");f||u||this.addLabel()}a.prototype.addLabel=function(){var a=this,t=a.axis,f=t.options,u=t.chart,m=t.categories,h=t.logarithmic,l=t.names,k=a.pos,g=q(a.options&&a.options.labels,f.labels),d=t.tickPositions,x=k===d[0],r=k===d[d.length-1];l=this.parameters.category||(m?q(m[k],l[k],k):k);var A=a.label;m=(!g.step||1===g.step)&&
1===t.tickInterval;d=d.info;var N,B;if(t.dateTime&&d){var M=u.time.resolveDTLFormat(f.dateTimeLabelFormats[!f.grid&&d.higherRanks[k]||d.unitName]);var v=M.main}a.isFirst=x;a.isLast=r;a.formatCtx={axis:t,chart:u,isFirst:x,isLast:r,dateTimeLabelFormat:v,tickPositionInfo:d,value:h?y(h.lin2log(l)):l,pos:k};f=t.labelFormatter.call(a.formatCtx,this.formatCtx);if(B=M&&M.list)a.shortenLabel=function(){for(N=0;N<B.length;N++)if(A.attr({text:t.labelFormatter.call(C(a.formatCtx,{dateTimeLabelFormat:B[N]}))}),
A.getBBox().width<t.getSlotWidth(a)-2*q(g.padding,5))return;A.attr({text:""})};m&&t._addedPlotLB&&a.moveLabel(f,g);D(A)||a.movedLabel?A&&A.textStr!==f&&!m&&(!A.textWidth||g.style&&g.style.width||A.styles.width||A.css({width:null}),A.attr({text:f}),A.textPxLength=A.getBBox().width):(a.label=A=a.createLabel({x:0,y:0},f,g),a.rotation=0)};a.prototype.createLabel=function(a,t,f){var p=this.axis,m=p.chart;if(a=D(t)&&f.enabled?m.renderer.text(t,a.x,a.y,f.useHTML).add(p.labelGroup):null)m.styledMode||a.css(v(f.style)),
a.textPxLength=a.getBBox().width;return a};a.prototype.destroy=function(){G(this,this.axis)};a.prototype.getPosition=function(a,t,f,u){var m=this.axis,h=m.chart,l=u&&h.oldChartHeight||h.chartHeight;a={x:a?y(m.translate(t+f,null,null,u)+m.transB):m.left+m.offset+(m.opposite?(u&&h.oldChartWidth||h.chartWidth)-m.right-m.left:0),y:a?l-m.bottom+m.offset-(m.opposite?m.height:0):y(l-m.translate(t+f,null,null,u)-m.transB)};a.y=n(a.y,-1E5,1E5);J(this,"afterGetPosition",{pos:a});return a};a.prototype.getLabelPosition=
function(a,t,f,u,m,h,l,k){var g=this.axis,d=g.transA,x=g.isLinked&&g.linkedParent?g.linkedParent.reversed:g.reversed,r=g.staggerLines,p=g.tickRotCorr||{x:0,y:0},I=m.y,B=u||g.reserveSpaceDefault?0:-g.labelOffset*("center"===g.labelAlign?.5:1),M={};D(I)||(I=0===g.side?f.rotation?-8:-f.getBBox().height:2===g.side?p.y+8:Math.cos(f.rotation*K)*(p.y-f.getBBox(!1,0).height/2));a=a+m.x+B+p.x-(h&&u?h*d*(x?-1:1):0);t=t+I-(h&&!u?h*d*(x?1:-1):0);r&&(f=l/(k||1)%r,g.opposite&&(f=r-f-1),t+=g.labelOffset/r*f);M.x=
a;M.y=Math.round(t);J(this,"afterGetLabelPosition",{pos:M,tickmarkOffset:h,index:l});return M};a.prototype.getLabelSize=function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0};a.prototype.getMarkPath=function(a,t,f,u,m,h){return h.crispLine([["M",a,t],["L",a+(m?0:-f),t+(m?f:0)]],u)};a.prototype.handleOverflow=function(a){var p=this.axis,f=p.options.labels,u=a.x,m=p.chart.chartWidth,h=p.chart.spacing,l=q(p.labelLeft,Math.min(p.pos,h[3]));h=q(p.labelRight,Math.max(p.isRadial?
0:p.pos+p.len,m-h[1]));var k=this.label,g=this.rotation,d={left:0,center:.5,right:1}[p.labelAlign||k.attr("align")],x=k.getBBox().width,r=p.getSlotWidth(this),A=r,N=1,B,M={};if(g||"justify"!==q(f.overflow,"justify"))0>g&&u-d*x<l?B=Math.round(u/Math.cos(g*K)-l):0<g&&u+d*x>h&&(B=Math.round((m-u)/Math.cos(g*K)));else if(m=u+(1-d)*x,u-d*x<l?A=a.x+A*(1-d)-l:m>h&&(A=h-a.x+A*d,N=-1),A=Math.min(r,A),A<r&&"center"===p.labelAlign&&(a.x+=N*(r-A-d*(r-Math.min(x,A)))),x>A||p.autoRotation&&(k.styles||{}).width)B=
A;B&&(this.shortenLabel?this.shortenLabel():(M.width=Math.floor(B)+"px",(f.style||{}).textOverflow||(M.textOverflow="ellipsis"),k.css(M)))};a.prototype.moveLabel=function(a,t){var p=this,f=p.label,m=!1,h=p.axis,l=h.reversed;f&&f.textStr===a?(p.movedLabel=f,m=!0,delete p.label):L(h.ticks,function(g){m||g.isNew||g===p||!g.label||g.label.textStr!==a||(p.movedLabel=g.label,m=!0,g.labelPos=p.movedLabel.xy,delete g.label)});if(!m&&(p.labelPos||f)){var k=p.labelPos||f.xy;f=h.horiz?l?0:h.width+h.left:k.x;
h=h.horiz?k.y:l?h.width+h.left:0;p.movedLabel=p.createLabel({x:f,y:h},a,t);p.movedLabel&&p.movedLabel.attr({opacity:0})}};a.prototype.render=function(a,t,f){var p=this.axis,m=p.horiz,h=this.pos,l=q(this.tickmarkOffset,p.tickmarkOffset);h=this.getPosition(m,h,l,t);l=h.x;var k=h.y;p=m&&l===p.pos+p.len||!m&&k===p.pos?-1:1;f=q(f,1);this.isActive=!0;this.renderGridLine(t,f,p);this.renderMark(h,f,p);this.renderLabel(h,t,f,a);this.isNew=!1;J(this,"afterRender")};a.prototype.renderGridLine=function(a,t,f){var p=
this.axis,m=p.options,h=this.gridLine,l={},k=this.pos,g=this.type,d=q(this.tickmarkOffset,p.tickmarkOffset),x=p.chart.renderer,r=g?g+"Grid":"grid",A=m[r+"LineWidth"],N=m[r+"LineColor"];m=m[r+"LineDashStyle"];h||(p.chart.styledMode||(l.stroke=N,l["stroke-width"]=A,m&&(l.dashstyle=m)),g||(l.zIndex=1),a&&(t=0),this.gridLine=h=x.path().attr(l).addClass("highcharts-"+(g?g+"-":"")+"grid-line").add(p.gridGroup));if(h&&(f=p.getPlotLinePath({value:k+d,lineWidth:h.strokeWidth()*f,force:"pass",old:a})))h[a||
this.isNew?"attr":"animate"]({d:f,opacity:t})};a.prototype.renderMark=function(a,t,f){var p=this.axis,m=p.options,h=p.chart.renderer,l=this.type,k=l?l+"Tick":"tick",g=p.tickSize(k),d=this.mark,x=!d,r=a.x;a=a.y;var A=q(m[k+"Width"],!l&&p.isXAxis?1:0);m=m[k+"Color"];g&&(p.opposite&&(g[0]=-g[0]),x&&(this.mark=d=h.path().addClass("highcharts-"+(l?l+"-":"")+"tick").add(p.axisGroup),p.chart.styledMode||d.attr({stroke:m,"stroke-width":A})),d[x?"attr":"animate"]({d:this.getMarkPath(r,a,g[0],d.strokeWidth()*
f,p.horiz,h),opacity:t}))};a.prototype.renderLabel=function(a,f,I,u){var m=this.axis,h=m.horiz,l=m.options,k=this.label,g=l.labels,d=g.step;m=q(this.tickmarkOffset,m.tickmarkOffset);var x=!0,r=a.x;a=a.y;k&&H(r)&&(k.xy=a=this.getLabelPosition(r,a,k,h,g,m,u,d),this.isFirst&&!this.isLast&&!q(l.showFirstLabel,1)||this.isLast&&!this.isFirst&&!q(l.showLastLabel,1)?x=!1:!h||g.step||g.rotation||f||0===I||this.handleOverflow(a),d&&u%d&&(x=!1),x&&H(a.y)?(a.opacity=I,k[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=
!1):(k.attr("y",-9999),this.isNewLabel=!0))};a.prototype.replaceMovedLabel=function(){var a=this.label,f=this.axis,q=f.reversed;if(a&&!this.isNew){var u=f.horiz?q?f.left:f.width+f.left:a.xy.x;q=f.horiz?a.xy.y:q?f.width+f.top:f.top;a.animate({x:u,y:q,opacity:0},void 0,a.destroy);delete this.label}f.isDirty=!0;this.label=this.movedLabel;delete this.movedLabel};return a}();f.Tick=a;return f.Tick});O(n,"Core/Time.js",[n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a){var n=a.defined,y=a.error,
D=a.extend,G=a.isObject,C=a.merge,J=a.objectEach,H=a.pad,v=a.pick,L=a.splat,q=a.timeUnits,K=f.win;a=function(){function a(a){this.options={};this.variableTimezone=this.useUTC=!1;this.Date=K.Date;this.getTimezoneOffset=this.timezoneOffsetFunction();this.update(a)}a.prototype.get=function(a,f){if(this.variableTimezone||this.timezoneOffset){var p=f.getTime(),t=p-this.getTimezoneOffset(f);f.setTime(t);a=f["getUTC"+a]();f.setTime(p);return a}return this.useUTC?f["getUTC"+a]():f["get"+a]()};a.prototype.set=
function(a,f,q){if(this.variableTimezone||this.timezoneOffset){if("Milliseconds"===a||"Seconds"===a||"Minutes"===a)return f["setUTC"+a](q);var p=this.getTimezoneOffset(f);p=f.getTime()-p;f.setTime(p);f["setUTC"+a](q);a=this.getTimezoneOffset(f);p=f.getTime()+a;return f.setTime(p)}return this.useUTC?f["setUTC"+a](q):f["set"+a](q)};a.prototype.update=function(a){var f=v(a&&a.useUTC,!0);this.options=a=C(!0,this.options||{},a);this.Date=a.Date||K.Date||Date;this.timezoneOffset=(this.useUTC=f)&&a.timezoneOffset;
this.getTimezoneOffset=this.timezoneOffsetFunction();this.variableTimezone=!(f&&!a.getTimezoneOffset&&!a.timezone)};a.prototype.makeTime=function(a,t,q,u,m,h){if(this.useUTC){var l=this.Date.UTC.apply(0,arguments);var k=this.getTimezoneOffset(l);l+=k;var g=this.getTimezoneOffset(l);k!==g?l+=g-k:k-36E5!==this.getTimezoneOffset(l-36E5)||f.isSafari||(l-=36E5)}else l=(new this.Date(a,t,v(q,1),v(u,0),v(m,0),v(h,0))).getTime();return l};a.prototype.timezoneOffsetFunction=function(){var a=this,f=this.options,
q=f.moment||K.moment;if(!this.useUTC)return function(a){return 6E4*(new Date(a.toString())).getTimezoneOffset()};if(f.timezone){if(q)return function(a){return 6E4*-q.tz(a,f.timezone).utcOffset()};y(25)}return this.useUTC&&f.getTimezoneOffset?function(a){return 6E4*f.getTimezoneOffset(a.valueOf())}:function(){return 6E4*(a.timezoneOffset||0)}};a.prototype.dateFormat=function(a,t,q){var p;if(!n(t)||isNaN(t))return(null===(p=f.defaultOptions.lang)||void 0===p?void 0:p.invalidDate)||"";a=v(a,"%Y-%m-%d %H:%M:%S");
var m=this;p=new this.Date(t);var h=this.get("Hours",p),l=this.get("Day",p),k=this.get("Date",p),g=this.get("Month",p),d=this.get("FullYear",p),x=f.defaultOptions.lang,r=null===x||void 0===x?void 0:x.weekdays,A=null===x||void 0===x?void 0:x.shortWeekdays;p=D({a:A?A[l]:r[l].substr(0,3),A:r[l],d:H(k),e:H(k,2," "),w:l,b:x.shortMonths[g],B:x.months[g],m:H(g+1),o:g+1,y:d.toString().substr(2,2),Y:d,H:H(h),k:h,I:H(h%12||12),l:h%12||12,M:H(this.get("Minutes",p)),p:12>h?"AM":"PM",P:12>h?"am":"pm",S:H(p.getSeconds()),
L:H(Math.floor(t%1E3),3)},f.dateFormats);J(p,function(d,g){for(;-1!==a.indexOf("%"+g);)a=a.replace("%"+g,"function"===typeof d?d.call(m,t):d)});return q?a.substr(0,1).toUpperCase()+a.substr(1):a};a.prototype.resolveDTLFormat=function(a){return G(a,!0)?a:(a=L(a),{main:a[0],from:a[1],to:a[2]})};a.prototype.getTimeTicks=function(a,f,I,u){var m=this,h=[],l={};var k=new m.Date(f);var g=a.unitRange,d=a.count||1,x;u=v(u,1);if(n(f)){m.set("Milliseconds",k,g>=q.second?0:d*Math.floor(m.get("Milliseconds",k)/
d));g>=q.second&&m.set("Seconds",k,g>=q.minute?0:d*Math.floor(m.get("Seconds",k)/d));g>=q.minute&&m.set("Minutes",k,g>=q.hour?0:d*Math.floor(m.get("Minutes",k)/d));g>=q.hour&&m.set("Hours",k,g>=q.day?0:d*Math.floor(m.get("Hours",k)/d));g>=q.day&&m.set("Date",k,g>=q.month?1:Math.max(1,d*Math.floor(m.get("Date",k)/d)));if(g>=q.month){m.set("Month",k,g>=q.year?0:d*Math.floor(m.get("Month",k)/d));var r=m.get("FullYear",k)}g>=q.year&&m.set("FullYear",k,r-r%d);g===q.week&&(r=m.get("Day",k),m.set("Date",
k,m.get("Date",k)-r+u+(r<u?-7:0)));r=m.get("FullYear",k);u=m.get("Month",k);var p=m.get("Date",k),t=m.get("Hours",k);f=k.getTime();m.variableTimezone&&(x=I-f>4*q.month||m.getTimezoneOffset(f)!==m.getTimezoneOffset(I));f=k.getTime();for(k=1;f<I;)h.push(f),f=g===q.year?m.makeTime(r+k*d,0):g===q.month?m.makeTime(r,u+k*d):!x||g!==q.day&&g!==q.week?x&&g===q.hour&&1<d?m.makeTime(r,u,p,t+k*d):f+g*d:m.makeTime(r,u,p+k*d*(g===q.day?1:7)),k++;h.push(f);g<=q.hour&&1E4>h.length&&h.forEach(function(d){0===d%18E5&&
"000000000"===m.dateFormat("%H%M%S%L",d)&&(l[d]="day")})}h.info=D(a,{higherRanks:l,totalRange:g*d});return h};return a}();f.Time=a;return f.Time});O(n,"Core/Options.js",[n["Core/Globals.js"],n["Core/Time.js"],n["Core/Color.js"],n["Core/Utilities.js"]],function(f,a,n,y){n=n.parse;y=y.merge;f.defaultOptions={colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),
shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:{styledMode:!1,borderRadius:0,colorCount:10,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},
position:{align:"right",x:-10,y:10}},width:null,height:null,borderColor:"#335cad",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},caption:{margin:15,text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",alignColumns:!0,layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",
borderRadius:0,navigation:{activeColor:"#003399",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",
backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:f.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:f.isTouchDevice?25:10,headerFormat:'<span style="font-size: 10px">{point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">\u25cf</span> {series.name}: <b>{point.y}</b><br/>',
backgroundColor:n("#f7f7f7").setOpacity(.85).get(),borderWidth:1,shadow:!0,style:{color:"#333333",cursor:"default",fontSize:"12px",whiteSpace:"nowrap"}},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:"Highcharts.com"}};"";f.time=new a(y(f.defaultOptions.global,f.defaultOptions.time));f.dateFormat=function(a,n,C){return f.time.dateFormat(a,n,C)};return{dateFormat:f.dateFormat,
defaultOptions:f.defaultOptions,time:f.time}});O(n,"Core/Axis/Axis.js",[n["Core/Color.js"],n["Core/Globals.js"],n["Core/Axis/Tick.js"],n["Core/Utilities.js"],n["Core/Options.js"]],function(f,a,n,y,D){var G=y.addEvent,C=y.animObject,J=y.arrayMax,H=y.arrayMin,v=y.clamp,L=y.correctFloat,q=y.defined,K=y.destroyObjectProperties,E=y.error,p=y.extend,t=y.fireEvent,I=y.format,u=y.getMagnitude,m=y.isArray,h=y.isFunction,l=y.isNumber,k=y.isString,g=y.merge,d=y.normalizeTickInterval,x=y.objectEach,r=y.pick,
A=y.relativeLength,N=y.removeEvent,B=y.splat,M=y.syncTimeout,R=D.defaultOptions,F=a.deg2rad;y=function(){function e(c,b){this.zoomEnabled=this.width=this.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=this.plotLinesAndBands=this.paddedTicks=
this.overlap=this.options=this.oldMin=this.oldMax=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=this.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.height=this.hasVisibleSeries=this.hasNames=this.coll=this.closestPointRange=this.chart=this.categories=this.bottom=this.alternateBands=void 0;this.init(c,b)}e.prototype.init=function(c,b){var e=b.isX,d=this;d.chart=c;d.horiz=c.inverted&&!d.isZAxis?!e:e;d.isXAxis=
e;d.coll=d.coll||(e?"xAxis":"yAxis");t(this,"init",{userOptions:b});d.opposite=b.opposite;d.side=b.side||(d.horiz?d.opposite?0:2:d.opposite?1:3);d.setOptions(b);var g=this.options,k=g.type;d.labelFormatter=g.labels.formatter||d.defaultLabelFormatter;d.userOptions=b;d.minPixelPadding=0;d.reversed=g.reversed;d.visible=!1!==g.visible;d.zoomEnabled=!1!==g.zoomEnabled;d.hasNames="category"===k||!0===g.categories;d.categories=g.categories||d.hasNames;d.names||(d.names=[],d.names.keys={});d.plotLinesAndBandsGroups=
{};d.positiveValuesOnly=!!d.logarithmic;d.isLinked=q(g.linkedTo);d.ticks={};d.labelEdge=[];d.minorTicks={};d.plotLinesAndBands=[];d.alternateBands={};d.len=0;d.minRange=d.userMinRange=g.minRange||g.maxZoom;d.range=g.range;d.offset=g.offset||0;d.max=null;d.min=null;d.crosshair=r(g.crosshair,B(c.options.tooltip.crosshairs)[e?0:1],!1);b=d.options.events;-1===c.axes.indexOf(d)&&(e?c.axes.splice(c.xAxis.length,0,d):c.axes.push(d),c[d.coll].push(d));d.series=d.series||[];c.inverted&&!d.isZAxis&&e&&"undefined"===
typeof d.reversed&&(d.reversed=!0);d.labelRotation=d.options.labels.rotation;x(b,function(b,c){h(b)&&G(d,c,b)});t(this,"afterInit")};e.prototype.setOptions=function(c){this.options=g(e.defaultOptions,"yAxis"===this.coll&&e.defaultYAxisOptions,[e.defaultTopAxisOptions,e.defaultRightAxisOptions,e.defaultBottomAxisOptions,e.defaultLeftAxisOptions][this.side],g(R[this.coll],c));t(this,"afterSetOptions",{userOptions:c})};e.prototype.defaultLabelFormatter=function(){var c=this.axis,b=l(this.value)?this.value:
NaN,e=c.chart.time,d=c.categories,g=this.dateTimeLabelFormat,k=R.lang,h=k.numericSymbols;k=k.numericSymbolMagnitude||1E3;var a=h&&h.length,r=c.options.labels.format;c=c.logarithmic?Math.abs(b):c.tickInterval;var m=this.chart,x=m.numberFormatter;if(r)var f=I(r,this,m);else if(d)f=""+this.value;else if(g)f=e.dateFormat(g,b);else if(a&&1E3<=c)for(;a--&&"undefined"===typeof f;)e=Math.pow(k,a+1),c>=e&&0===10*b%e&&null!==h[a]&&0!==b&&(f=x(b/e,-1)+h[a]);"undefined"===typeof f&&(f=1E4<=Math.abs(b)?x(b,-1):
x(b,-1,void 0,""));return f};e.prototype.getSeriesExtremes=function(){var c=this,b=c.chart,e;t(this,"getSeriesExtremes",null,function(){c.hasVisibleSeries=!1;c.dataMin=c.dataMax=c.threshold=null;c.softThreshold=!c.isXAxis;c.stacking&&c.stacking.buildStacks();c.series.forEach(function(d){if(d.visible||!b.options.chart.ignoreHiddenSeries){var g=d.options,k=g.threshold;c.hasVisibleSeries=!0;c.positiveValuesOnly&&0>=k&&(k=null);if(c.isXAxis){if(g=d.xData,g.length){g=c.logarithmic?g.filter(c.validatePositiveValue):
g;e=d.getXExtremes(g);var h=e.min;var a=e.max;l(h)||h instanceof Date||(g=g.filter(l),e=d.getXExtremes(g),h=e.min,a=e.max);g.length&&(c.dataMin=Math.min(r(c.dataMin,h),h),c.dataMax=Math.max(r(c.dataMax,a),a))}}else if(d=d.applyExtremes(),l(d.dataMin)&&(h=d.dataMin,c.dataMin=Math.min(r(c.dataMin,h),h)),l(d.dataMax)&&(a=d.dataMax,c.dataMax=Math.max(r(c.dataMax,a),a)),q(k)&&(c.threshold=k),!g.softThreshold||c.positiveValuesOnly)c.softThreshold=!1}})});t(this,"afterGetSeriesExtremes")};e.prototype.translate=
function(c,b,e,d,g,k){var h=this.linkedParent||this,a=1,w=0,z=d?h.oldTransA:h.transA;d=d?h.oldMin:h.min;var r=h.minPixelPadding;g=(h.isOrdinal||h.brokenAxis&&h.brokenAxis.hasBreaks||h.logarithmic&&g)&&h.lin2val;z||(z=h.transA);e&&(a*=-1,w=h.len);h.reversed&&(a*=-1,w-=a*(h.sector||h.len));b?(c=(c*a+w-r)/z+d,g&&(c=h.lin2val(c))):(g&&(c=h.val2lin(c)),c=l(d)?a*(c-d)*z+w+a*r+(l(k)?z*k:0):void 0);return c};e.prototype.toPixels=function(c,b){return this.translate(c,!1,!this.horiz,null,!0)+(b?0:this.pos)};
e.prototype.toValue=function(c,b){return this.translate(c-(b?0:this.pos),!0,!this.horiz,null,!0)};e.prototype.getPlotLinePath=function(c){function b(b,c,e){if("pass"!==f&&b<c||b>e)f?b=v(b,c,e):q=!0;return b}var e=this,d=e.chart,g=e.left,k=e.top,h=c.old,a=c.value,m=c.translatedValue,x=c.lineWidth,f=c.force,p,B,A,M,F=h&&d.oldChartHeight||d.chartHeight,u=h&&d.oldChartWidth||d.chartWidth,q,N=e.transB;c={value:a,lineWidth:x,old:h,force:f,acrossPanes:c.acrossPanes,translatedValue:m};t(this,"getPlotLinePath",
c,function(c){m=r(m,e.translate(a,null,null,h));m=v(m,-1E5,1E5);p=A=Math.round(m+N);B=M=Math.round(F-m-N);l(m)?e.horiz?(B=k,M=F-e.bottom,p=A=b(p,g,g+e.width)):(p=g,A=u-e.right,B=M=b(B,k,k+e.height)):(q=!0,f=!1);c.path=q&&!f?null:d.renderer.crispLine([["M",p,B],["L",A,M]],x||1)});return c.path};e.prototype.getLinearTickPositions=function(c,b,e){var d=L(Math.floor(b/c)*c);e=L(Math.ceil(e/c)*c);var g=[],k;L(d+c)===d&&(k=20);if(this.single)return[b];for(b=d;b<=e;){g.push(b);b=L(b+c,k);if(b===h)break;
var h=b}return g};e.prototype.getMinorTickInterval=function(){var c=this.options;return!0===c.minorTicks?r(c.minorTickInterval,"auto"):!1===c.minorTicks?null:c.minorTickInterval};e.prototype.getMinorTickPositions=function(){var c=this.options,b=this.tickPositions,e=this.minorTickInterval,d=[],g=this.pointRangePadding||0,k=this.min-g;g=this.max+g;var h=g-k;if(h&&h/e<this.len/3){var a=this.logarithmic;if(a)this.paddedTicks.forEach(function(b,c,g){c&&d.push.apply(d,a.getLogTickPositions(e,g[c-1],g[c],
!0))});else if(this.dateTime&&"auto"===this.getMinorTickInterval())d=d.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(e),k,g,c.startOfWeek));else for(c=k+(b[0]-k)%e;c<=g&&c!==d[0];c+=e)d.push(c)}0!==d.length&&this.trimTicks(d);return d};e.prototype.adjustForMinRange=function(){var c=this.options,b=this.min,e=this.max,d=this.logarithmic,g,k,h,a,l;this.isXAxis&&"undefined"===typeof this.minRange&&!d&&(q(c.min)||q(c.max)?this.minRange=null:(this.series.forEach(function(b){a=b.xData;
for(k=l=b.xIncrement?1:a.length-1;0<k;k--)if(h=a[k]-a[k-1],"undefined"===typeof g||h<g)g=h}),this.minRange=Math.min(5*g,this.dataMax-this.dataMin)));if(e-b<this.minRange){var m=this.dataMax-this.dataMin>=this.minRange;var x=this.minRange;var f=(x-e+b)/2;f=[b-f,r(c.min,b-f)];m&&(f[2]=this.logarithmic?this.logarithmic.log2lin(this.dataMin):this.dataMin);b=J(f);e=[b+x,r(c.max,b+x)];m&&(e[2]=d?d.log2lin(this.dataMax):this.dataMax);e=H(e);e-b<x&&(f[0]=e-x,f[1]=r(c.min,e-x),b=J(f))}this.min=b;this.max=
e};e.prototype.getClosest=function(){var c;this.categories?c=1:this.series.forEach(function(b){var e=b.closestPointRange,d=b.visible||!b.chart.options.chart.ignoreHiddenSeries;!b.noSharedTooltip&&q(e)&&d&&(c=q(c)?Math.min(c,e):e)});return c};e.prototype.nameToX=function(c){var b=m(this.categories),e=b?this.categories:this.names,d=c.options.x;c.series.requireSorting=!1;q(d)||(d=!1===this.options.uniqueNames?c.series.autoIncrement():b?e.indexOf(c.name):r(e.keys[c.name],-1));if(-1===d){if(!b)var g=e.length}else g=
d;"undefined"!==typeof g&&(this.names[g]=c.name,this.names.keys[c.name]=g);return g};e.prototype.updateNames=function(){var c=this,b=this.names;0<b.length&&(Object.keys(b.keys).forEach(function(c){delete b.keys[c]}),b.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(function(b){b.xIncrement=null;if(!b.points||b.isDirtyData)c.max=Math.max(c.max,b.xData.length-1),b.processData(),b.generatePoints();b.data.forEach(function(e,d){if(e&&e.options&&"undefined"!==typeof e.name){var g=c.nameToX(e);
"undefined"!==typeof g&&g!==e.x&&(e.x=g,b.xData[d]=g)}})}))};e.prototype.setAxisTranslation=function(c){var b=this,e=b.max-b.min,d=b.axisPointRange||0,g=0,h=0,a=b.linkedParent,l=!!b.categories,m=b.transA,x=b.isXAxis;if(x||l||d){var f=b.getClosest();a?(g=a.minPointOffset,h=a.pointRangePadding):b.series.forEach(function(c){var e=l?1:x?r(c.options.pointRange,f,0):b.axisPointRange||0,a=c.options.pointPlacement;d=Math.max(d,e);if(!b.single||l)c=c.is("xrange")?!x:x,g=Math.max(g,c&&k(a)?0:e/2),h=Math.max(h,
c&&"on"===a?0:e)});a=b.ordinal&&b.ordinal.slope&&f?b.ordinal.slope/f:1;b.minPointOffset=g*=a;b.pointRangePadding=h*=a;b.pointRange=Math.min(d,b.single&&l?1:e);x&&(b.closestPointRange=f)}c&&(b.oldTransA=m);b.translationSlope=b.transA=m=b.staticScale||b.len/(e+h||1);b.transB=b.horiz?b.left:b.bottom;b.minPixelPadding=m*g;t(this,"afterSetAxisTranslation")};e.prototype.minFromRange=function(){return this.max-this.range};e.prototype.setTickInterval=function(c){var b=this,e=b.chart,g=b.logarithmic,k=b.options,
h=b.isXAxis,a=b.isLinked,m=k.maxPadding,x=k.minPadding,f=k.tickInterval,p=k.tickPixelInterval,B=b.categories,A=l(b.threshold)?b.threshold:null,Q=b.softThreshold;b.dateTime||B||a||this.getTickAmount();var M=r(b.userMin,k.min);var F=r(b.userMax,k.max);if(a){b.linkedParent=e[b.coll][k.linkedTo];var N=b.linkedParent.getExtremes();b.min=r(N.min,N.dataMin);b.max=r(N.max,N.dataMax);k.type!==b.linkedParent.options.type&&E(11,1,e)}else{if(Q&&q(A))if(b.dataMin>=A)N=A,x=0;else if(b.dataMax<=A){var v=A;m=0}b.min=
r(M,N,b.dataMin);b.max=r(F,v,b.dataMax)}g&&(b.positiveValuesOnly&&!c&&0>=Math.min(b.min,r(b.dataMin,b.min))&&E(10,1,e),b.min=L(g.log2lin(b.min),16),b.max=L(g.log2lin(b.max),16));b.range&&q(b.max)&&(b.userMin=b.min=M=Math.max(b.dataMin,b.minFromRange()),b.userMax=F=b.max,b.range=null);t(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(B||b.axisPointRange||b.stacking&&b.stacking.usePercentage||a)&&q(b.min)&&q(b.max)&&(e=b.max-b.min)&&(!q(M)&&x&&(b.min-=e*x),!q(F)&&m&&(b.max+=
e*m));l(b.userMin)||(l(k.softMin)&&k.softMin<b.min&&(b.min=M=k.softMin),l(k.floor)&&(b.min=Math.max(b.min,k.floor)));l(b.userMax)||(l(k.softMax)&&k.softMax>b.max&&(b.max=F=k.softMax),l(k.ceiling)&&(b.max=Math.min(b.max,k.ceiling)));Q&&q(b.dataMin)&&(A=A||0,!q(M)&&b.min<A&&b.dataMin>=A?b.min=b.options.minRange?Math.min(A,b.max-b.minRange):A:!q(F)&&b.max>A&&b.dataMax<=A&&(b.max=b.options.minRange?Math.max(A,b.min+b.minRange):A));b.tickInterval=b.min===b.max||"undefined"===typeof b.min||"undefined"===
typeof b.max?1:a&&!f&&p===b.linkedParent.options.tickPixelInterval?f=b.linkedParent.tickInterval:r(f,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,B?1:(b.max-b.min)*p/Math.max(b.len,p));h&&!c&&b.series.forEach(function(c){c.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);t(this,"initialAxisTranslation");b.pointRange&&!f&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));c=r(k.minTickInterval,b.dateTime&&!b.series.some(function(b){return b.noSharedTooltip})?
b.closestPointRange:0);!f&&b.tickInterval<c&&(b.tickInterval=c);b.dateTime||b.logarithmic||f||(b.tickInterval=d(b.tickInterval,void 0,u(b.tickInterval),r(k.allowDecimals,.5>b.tickInterval||void 0!==this.tickAmount),!!this.tickAmount));this.tickAmount||(b.tickInterval=b.unsquish());this.setTickPositions()};e.prototype.setTickPositions=function(){var c=this.options,b=c.tickPositions;var e=this.getMinorTickInterval();var d=c.tickPositioner,g=this.hasVerticalPanning(),k="colorAxis"===this.coll,h=(k||
!g)&&c.startOnTick;g=(k||!g)&&c.endOnTick;this.tickmarkOffset=this.categories&&"between"===c.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===e&&this.tickInterval?this.tickInterval/5:e;this.single=this.min===this.max&&q(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==c.allowDecimals);this.tickPositions=e=b&&b.slice();!e&&(this.ordinal&&this.ordinal.positions||!((this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))?e=this.dateTime?this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,
c.units),this.min,this.max,c.startOfWeek,this.ordinal&&this.ordinal.positions,this.closestPointRange,!0):this.logarithmic?this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max):(e=[this.min,this.max],E(19,!1,this.chart)),e.length>this.len&&(e=[e[0],e.pop()],e[0]===e[1]&&(e.length=1)),this.tickPositions=e,d&&(d=d.apply(this,[this.min,this.max])))&&(this.tickPositions=e=d);this.paddedTicks=e.slice(0);this.trimTicks(e,
h,g);this.isLinked||(this.single&&2>e.length&&!this.categories&&!this.series.some(function(b){return b.is("heatmap")&&"between"===b.options.pointPlacement})&&(this.min-=.5,this.max+=.5),b||d||this.adjustTickAmount());t(this,"afterSetTickPositions")};e.prototype.trimTicks=function(c,b,e){var d=c[0],g=c[c.length-1],k=!this.isOrdinal&&this.minPointOffset||0;t(this,"trimTicks");if(!this.isLinked){if(b&&-Infinity!==d)this.min=d;else for(;this.min-k>c[0];)c.shift();if(e)this.max=g;else for(;this.max+k<
c[c.length-1];)c.pop();0===c.length&&q(d)&&!this.options.tickPositions&&c.push((g+d)/2)}};e.prototype.alignToOthers=function(){var c={},b,e=this.options;!1===this.chart.options.chart.alignTicks||!1===e.alignTicks||!1===e.startOnTick||!1===e.endOnTick||this.logarithmic||this.chart[this.coll].forEach(function(e){var d=e.options;d=[e.horiz?d.left:d.top,d.width,d.height,d.pane].join();e.series.length&&(c[d]?b=!0:c[d]=1)});return b};e.prototype.getTickAmount=function(){var c=this.options,b=c.tickAmount,
e=c.tickPixelInterval;!q(c.tickInterval)&&!b&&this.len<e&&!this.isRadial&&!this.logarithmic&&c.startOnTick&&c.endOnTick&&(b=2);!b&&this.alignToOthers()&&(b=Math.ceil(this.len/e)+1);4>b&&(this.finalTickAmt=b,b=5);this.tickAmount=b};e.prototype.adjustTickAmount=function(){var c=this.options,b=this.tickInterval,e=this.tickPositions,d=this.tickAmount,g=this.finalTickAmt,k=e&&e.length,h=r(this.threshold,this.softThreshold?0:null),a;if(this.hasData()){if(k<d){for(a=this.min;e.length<d;)e.length%2||a===
h?e.push(L(e[e.length-1]+b)):e.unshift(L(e[0]-b));this.transA*=(k-1)/(d-1);this.min=c.startOnTick?e[0]:Math.min(this.min,e[0]);this.max=c.endOnTick?e[e.length-1]:Math.max(this.max,e[e.length-1])}else k>d&&(this.tickInterval*=2,this.setTickPositions());if(q(g)){for(b=c=e.length;b--;)(3===g&&1===b%2||2>=g&&0<b&&b<c-1)&&e.splice(b,1);this.finalTickAmt=void 0}}};e.prototype.setScale=function(){var c,b=!1,e=!1;this.series.forEach(function(c){var d;b=b||c.isDirtyData||c.isDirty;e=e||(null===(d=c.xAxis)||
void 0===d?void 0:d.isDirty)||!1});this.oldMin=this.min;this.oldMax=this.max;this.oldAxisLength=this.len;this.setAxisSize();(c=this.len!==this.oldAxisLength)||b||e||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.stacking&&this.stacking.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,this.isDirty||(this.isDirty=c||this.min!==this.oldMin||
this.max!==this.oldMax)):this.stacking&&this.stacking.cleanStacks();b&&this.panningState&&(this.panningState.isDirty=!0);t(this,"afterSetScale")};e.prototype.setExtremes=function(c,b,e,d,g){var k=this,h=k.chart;e=r(e,!0);k.series.forEach(function(b){delete b.kdTree});g=p(g,{min:c,max:b});t(k,"setExtremes",g,function(){k.userMin=c;k.userMax=b;k.eventArgs=g;e&&h.redraw(d)})};e.prototype.zoom=function(c,b){var e=this,d=this.dataMin,g=this.dataMax,k=this.options,h=Math.min(d,r(k.min,d)),a=Math.max(g,
r(k.max,g));c={newMin:c,newMax:b};t(this,"zoom",c,function(b){var c=b.newMin,k=b.newMax;if(c!==e.min||k!==e.max)e.allowZoomOutside||(q(d)&&(c<h&&(c=h),c>a&&(c=a)),q(g)&&(k<h&&(k=h),k>a&&(k=a))),e.displayBtn="undefined"!==typeof c||"undefined"!==typeof k,e.setExtremes(c,k,!1,void 0,{trigger:"zoom"});b.zoomed=!0});return c.zoomed};e.prototype.setAxisSize=function(){var c=this.chart,b=this.options,e=b.offsets||[0,0,0,0],d=this.horiz,g=this.width=Math.round(A(r(b.width,c.plotWidth-e[3]+e[1]),c.plotWidth)),
k=this.height=Math.round(A(r(b.height,c.plotHeight-e[0]+e[2]),c.plotHeight)),h=this.top=Math.round(A(r(b.top,c.plotTop+e[0]),c.plotHeight,c.plotTop));b=this.left=Math.round(A(r(b.left,c.plotLeft+e[3]),c.plotWidth,c.plotLeft));this.bottom=c.chartHeight-k-h;this.right=c.chartWidth-g-b;this.len=Math.max(d?g:k,0);this.pos=d?b:h};e.prototype.getExtremes=function(){var c=this.logarithmic;return{min:c?L(c.lin2log(this.min)):this.min,max:c?L(c.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,
userMin:this.userMin,userMax:this.userMax}};e.prototype.getThreshold=function(c){var b=this.logarithmic,e=b?b.lin2log(this.min):this.min;b=b?b.lin2log(this.max):this.max;null===c||-Infinity===c?c=e:Infinity===c?c=b:e>c?c=e:b<c&&(c=b);return this.translate(c,0,1,0,1)};e.prototype.autoLabelAlign=function(c){var b=(r(c,0)-90*this.side+720)%360;c={align:"center"};t(this,"autoLabelAlign",c,function(c){15<b&&165>b?c.align="right":195<b&&345>b&&(c.align="left")});return c.align};e.prototype.tickSize=function(c){var b=
this.options,e=b["tick"===c?"tickLength":"minorTickLength"],d=r(b["tick"===c?"tickWidth":"minorTickWidth"],"tick"===c&&this.isXAxis&&!this.categories?1:0);if(d&&e){"inside"===b[c+"Position"]&&(e=-e);var g=[e,d]}c={tickSize:g};t(this,"afterTickSize",c);return c.tickSize};e.prototype.labelMetrics=function(){var c=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[c]&&this.ticks[c].label)};e.prototype.unsquish=
function(){var c=this.options.labels,b=this.horiz,e=this.tickInterval,d=e,g=this.len/(((this.categories?1:0)+this.max-this.min)/e),k,h=c.rotation,a=this.labelMetrics(),l,m=Number.MAX_VALUE,x,f=this.max-this.min,p=function(b){var c=b/(g||1);c=1<c?Math.ceil(c):1;c*e>f&&Infinity!==b&&Infinity!==g&&f&&(c=Math.ceil(f/e));return L(c*e)};b?(x=!c.staggerLines&&!c.step&&(q(h)?[h]:g<r(c.autoRotationLimit,80)&&c.autoRotation))&&x.forEach(function(b){if(b===h||b&&-90<=b&&90>=b){l=p(Math.abs(a.h/Math.sin(F*b)));
var c=l+Math.abs(b/360);c<m&&(m=c,k=b,d=l)}}):c.step||(d=p(a.h));this.autoRotation=x;this.labelRotation=r(k,h);return d};e.prototype.getSlotWidth=function(c){var b,e=this.chart,d=this.horiz,g=this.options.labels,k=Math.max(this.tickPositions.length-(this.categories?0:1),1),h=e.margin[3];if(c&&l(c.slotWidth))return c.slotWidth;if(d&&g&&2>(g.step||0))return g.rotation?0:(this.staggerLines||1)*this.len/k;if(!d){c=null===(b=null===g||void 0===g?void 0:g.style)||void 0===b?void 0:b.width;if(void 0!==c)return parseInt(c,
10);if(h)return h-e.spacing[3]}return.33*e.chartWidth};e.prototype.renderUnsquish=function(){var c=this.chart,b=c.renderer,e=this.tickPositions,d=this.ticks,g=this.options.labels,h=g&&g.style||{},a=this.horiz,l=this.getSlotWidth(),m=Math.max(1,Math.round(l-2*(g.padding||5))),r={},x=this.labelMetrics(),f=g.style&&g.style.textOverflow,p=0;k(g.rotation)||(r.rotation=g.rotation||0);e.forEach(function(b){b=d[b];b.movedLabel&&b.replaceMovedLabel();b&&b.label&&b.label.textPxLength>p&&(p=b.label.textPxLength)});
this.maxLabelLength=p;if(this.autoRotation)p>m&&p>x.h?r.rotation=this.labelRotation:this.labelRotation=0;else if(l){var B=m;if(!f){var A="clip";for(m=e.length;!a&&m--;){var t=e[m];if(t=d[t].label)t.styles&&"ellipsis"===t.styles.textOverflow?t.css({textOverflow:"clip"}):t.textPxLength>l&&t.css({width:l+"px"}),t.getBBox().height>this.len/e.length-(x.h-x.f)&&(t.specificTextOverflow="ellipsis")}}}r.rotation&&(B=p>.5*c.chartHeight?.33*c.chartHeight:p,f||(A="ellipsis"));if(this.labelAlign=g.align||this.autoLabelAlign(this.labelRotation))r.align=
this.labelAlign;e.forEach(function(b){var c=(b=d[b])&&b.label,e=h.width,g={};c&&(c.attr(r),b.shortenLabel?b.shortenLabel():B&&!e&&"nowrap"!==h.whiteSpace&&(B<c.textPxLength||"SPAN"===c.element.tagName)?(g.width=B+"px",f||(g.textOverflow=c.specificTextOverflow||A),c.css(g)):c.styles&&c.styles.width&&!g.width&&!e&&c.css({width:null}),delete c.specificTextOverflow,b.rotation=r.rotation)},this);this.tickRotCorr=b.rotCorr(x.b,this.labelRotation||0,0!==this.side)};e.prototype.hasData=function(){return this.series.some(function(c){return c.hasData()})||
this.options.showEmpty&&q(this.min)&&q(this.max)};e.prototype.addTitle=function(c){var b=this.chart.renderer,e=this.horiz,d=this.opposite,k=this.options.title,h,a=this.chart.styledMode;this.axisTitle||((h=k.textAlign)||(h=(e?{low:"left",middle:"center",high:"right"}:{low:d?"right":"left",middle:"center",high:d?"left":"right"})[k.align]),this.axisTitle=b.text(k.text,0,0,k.useHTML).attr({zIndex:7,rotation:k.rotation||0,align:h}).addClass("highcharts-axis-title"),a||this.axisTitle.css(g(k.style)),this.axisTitle.add(this.axisGroup),
this.axisTitle.isNew=!0);a||k.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"});this.axisTitle[c?"show":"hide"](c)};e.prototype.generateTick=function(c){var b=this.ticks;b[c]?b[c].addLabel():b[c]=new n(this,c)};e.prototype.getOffset=function(){var c=this,b=c.chart,e=b.renderer,d=c.options,g=c.tickPositions,k=c.ticks,h=c.horiz,a=c.side,l=b.inverted&&!c.isZAxis?[1,0,3,2][a]:a,m,f=0,p=0,B=d.title,A=d.labels,M=0,F=b.axisOffset;b=b.clipOffset;var u=[-1,1,1,-1][a],N=d.className,v=c.axisParent;
var I=c.hasData();c.showAxis=m=I||r(d.showEmpty,!0);c.staggerLines=c.horiz&&A.staggerLines;c.axisGroup||(c.gridGroup=e.g("grid").attr({zIndex:d.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(N||"")).add(v),c.axisGroup=e.g("axis").attr({zIndex:d.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(N||"")).add(v),c.labelGroup=e.g("axis-labels").attr({zIndex:A.zIndex||7}).addClass("highcharts-"+c.coll.toLowerCase()+"-labels "+(N||"")).add(v));I||c.isLinked?(g.forEach(function(b,
e){c.generateTick(b,e)}),c.renderUnsquish(),c.reserveSpaceDefault=0===a||2===a||{1:"left",3:"right"}[a]===c.labelAlign,r(A.reserveSpace,"center"===c.labelAlign?!0:null,c.reserveSpaceDefault)&&g.forEach(function(b){M=Math.max(k[b].getLabelSize(),M)}),c.staggerLines&&(M*=c.staggerLines),c.labelOffset=M*(c.opposite?-1:1)):x(k,function(b,c){b.destroy();delete k[c]});if(B&&B.text&&!1!==B.enabled&&(c.addTitle(m),m&&!1!==B.reserveSpace)){c.titleOffset=f=c.axisTitle.getBBox()[h?"height":"width"];var R=B.offset;
p=q(R)?0:r(B.margin,h?5:10)}c.renderLine();c.offset=u*r(d.offset,F[a]?F[a]+(d.margin||0):0);c.tickRotCorr=c.tickRotCorr||{x:0,y:0};e=0===a?-c.labelMetrics().h:2===a?c.tickRotCorr.y:0;p=Math.abs(M)+p;M&&(p=p-e+u*(h?r(A.y,c.tickRotCorr.y+8*u):A.x));c.axisTitleMargin=r(R,p);c.getMaxLabelDimensions&&(c.maxLabelDimensions=c.getMaxLabelDimensions(k,g));h=this.tickSize("tick");F[a]=Math.max(F[a],c.axisTitleMargin+f+u*c.offset,p,g&&g.length&&h?h[0]+u*c.offset:0);d=d.offset?0:2*Math.floor(c.axisLine.strokeWidth()/
2);b[l]=Math.max(b[l],d);t(this,"afterGetOffset")};e.prototype.getLinePath=function(c){var b=this.chart,e=this.opposite,d=this.offset,g=this.horiz,k=this.left+(e?this.width:0)+d;d=b.chartHeight-this.bottom-(e?this.height:0)+d;e&&(c*=-1);return b.renderer.crispLine([["M",g?this.left:k,g?d:this.top],["L",g?b.chartWidth-this.right:k,g?d:b.chartHeight-this.bottom]],c)};e.prototype.renderLine=function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),
this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))};e.prototype.getTitlePosition=function(){var c=this.horiz,b=this.left,e=this.top,d=this.len,g=this.options.title,k=c?b:e,h=this.opposite,a=this.offset,l=g.x||0,m=g.y||0,r=this.axisTitle,x=this.chart.renderer.fontMetrics(g.style&&g.style.fontSize,r);r=Math.max(r.getBBox(null,0).height-x.h-1,0);d={low:k+(c?0:d),middle:k+d/2,high:k+(c?d:0)}[g.align];b=(c?e+this.height:b)+(c?1:-1)*
(h?-1:1)*this.axisTitleMargin+[-r,r,x.f,-r][this.side];c={x:c?d+l:b+(h?this.width:0)+a+l,y:c?b+m-(h?this.height:0)+a:d+m};t(this,"afterGetTitlePosition",{titlePosition:c});return c};e.prototype.renderMinorTick=function(c){var b=this.chart.hasRendered&&l(this.oldMin),e=this.minorTicks;e[c]||(e[c]=new n(this,c,"minor"));b&&e[c].isNew&&e[c].render(null,!0);e[c].render(null,!1,1)};e.prototype.renderTick=function(c,b){var e=this.isLinked,d=this.ticks,g=this.chart.hasRendered&&l(this.oldMin);if(!e||c>=
this.min&&c<=this.max)d[c]||(d[c]=new n(this,c)),g&&d[c].isNew&&d[c].render(b,!0,-1),d[c].render(b)};e.prototype.render=function(){var c=this,b=c.chart,e=c.logarithmic,d=c.options,g=c.isLinked,k=c.tickPositions,h=c.axisTitle,m=c.ticks,r=c.minorTicks,f=c.alternateBands,p=d.stackLabels,B=d.alternateGridColor,A=c.tickmarkOffset,Q=c.axisLine,F=c.showAxis,u=C(b.renderer.globalAnimation),q,N;c.labelEdge.length=0;c.overlap=!1;[m,r,f].forEach(function(b){x(b,function(b){b.isActive=!1})});if(c.hasData()||
g)c.minorTickInterval&&!c.categories&&c.getMinorTickPositions().forEach(function(b){c.renderMinorTick(b)}),k.length&&(k.forEach(function(b,e){c.renderTick(b,e)}),A&&(0===c.min||c.single)&&(m[-1]||(m[-1]=new n(c,-1,null,!0)),m[-1].render(-1))),B&&k.forEach(function(d,g){N="undefined"!==typeof k[g+1]?k[g+1]+A:c.max-A;0===g%2&&d<c.max&&N<=c.max+(b.polar?-A:A)&&(f[d]||(f[d]=new a.PlotLineOrBand(c)),q=d+A,f[d].options={from:e?e.lin2log(q):q,to:e?e.lin2log(N):N,color:B,className:"highcharts-alternate-grid"},
f[d].render(),f[d].isActive=!0)}),c._addedPlotLB||((d.plotLines||[]).concat(d.plotBands||[]).forEach(function(b){c.addPlotBandOrLine(b)}),c._addedPlotLB=!0);[m,r,f].forEach(function(c){var e,d=[],g=u.duration;x(c,function(b,c){b.isActive||(b.render(c,!1,0),b.isActive=!1,d.push(c))});M(function(){for(e=d.length;e--;)c[d[e]]&&!c[d[e]].isActive&&(c[d[e]].destroy(),delete c[d[e]])},c!==f&&b.hasRendered&&g?g:0)});Q&&(Q[Q.isPlaced?"animate":"attr"]({d:this.getLinePath(Q.strokeWidth())}),Q.isPlaced=!0,Q[F?
"show":"hide"](F));h&&F&&(d=c.getTitlePosition(),l(d.y)?(h[h.isNew?"attr":"animate"](d),h.isNew=!1):(h.attr("y",-9999),h.isNew=!0));p&&p.enabled&&c.stacking&&c.stacking.renderStackTotals();c.isDirty=!1;t(this,"afterRender")};e.prototype.redraw=function(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(c){c.render()}));this.series.forEach(function(c){c.isDirty=!0})};e.prototype.getKeepProps=function(){return this.keepProps||e.keepProps};e.prototype.destroy=function(c){var b=this,
e=b.plotLinesAndBands,d;t(this,"destroy",{keepEvents:c});c||N(b);[b.ticks,b.minorTicks,b.alternateBands].forEach(function(b){K(b)});if(e)for(c=e.length;c--;)e[c].destroy();"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar".split(" ").forEach(function(c){b[c]&&(b[c]=b[c].destroy())});for(d in b.plotLinesAndBandsGroups)b.plotLinesAndBandsGroups[d]=b.plotLinesAndBandsGroups[d].destroy();x(b,function(c,e){-1===b.getKeepProps().indexOf(e)&&delete b[e]})};e.prototype.drawCrosshair=function(c,
b){var e=this.crosshair,d=r(e.snap,!0),g,k=this.cross,h=this.chart;t(this,"drawCrosshair",{e:c,point:b});c||(c=this.cross&&this.cross.e);if(this.crosshair&&!1!==(q(b)||!d)){d?q(b)&&(g=r("colorAxis"!==this.coll?b.crosshairPos:null,this.isXAxis?b.plotX:this.len-b.plotY)):g=c&&(this.horiz?c.chartX-this.pos:this.len-c.chartY+this.pos);if(q(g)){var a={value:b&&(this.isXAxis?b.x:r(b.stackY,b.y)),translatedValue:g};h.polar&&p(a,{isCrosshair:!0,chartX:c&&c.chartX,chartY:c&&c.chartY,point:b});a=this.getPlotLinePath(a)||
null}if(!q(a)){this.hideCrosshair();return}d=this.categories&&!this.isRadial;k||(this.cross=k=h.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(d?"category ":"thin ")+e.className).attr({zIndex:r(e.zIndex,2)}).add(),h.styledMode||(k.attr({stroke:e.color||(d?f.parse("#ccd6eb").setOpacity(.25).get():"#cccccc"),"stroke-width":r(e.width,1)}).css({"pointer-events":"none"}),e.dashStyle&&k.attr({dashstyle:e.dashStyle})));k.show().attr({d:a});d&&!e.width&&k.attr({"stroke-width":this.transA});
this.cross.e=c}else this.hideCrosshair();t(this,"afterDrawCrosshair",{e:c,point:b})};e.prototype.hideCrosshair=function(){this.cross&&this.cross.hide();t(this,"afterHideCrosshair")};e.prototype.hasVerticalPanning=function(){var c,b;return/y/.test((null===(b=null===(c=this.chart.options.chart)||void 0===c?void 0:c.panning)||void 0===b?void 0:b.type)||"")};e.prototype.validatePositiveValue=function(c){return l(c)&&0<c};e.defaultOptions={dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},
second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e. %b"},week:{main:"%e. %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,labels:{enabled:!0,indentation:10,x:0,style:{color:"#666666",cursor:"default",fontSize:"11px"}},maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",minPadding:.01,showEmpty:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",
style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"};e.defaultYAxisOptions={endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){var c=this.axis.chart.numberFormatter;return c(this.total,
-1)},style:{color:"#000000",fontSize:"11px",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0};e.defaultLeftAxisOptions={labels:{x:-15},title:{rotation:270}};e.defaultRightAxisOptions={labels:{x:15},title:{rotation:90}};e.defaultBottomAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};e.defaultTopAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};e.keepProps="extKey hcEvents names series userMax userMin".split(" ");return e}();
a.Axis=y;return a.Axis});O(n,"Core/Axis/DateTimeAxis.js",[n["Core/Axis/Axis.js"],n["Core/Utilities.js"]],function(f,a){var n=a.addEvent,y=a.getMagnitude,D=a.normalizeTickInterval,G=a.timeUnits,C=function(){function a(a){this.axis=a}a.prototype.normalizeTimeTickInterval=function(a,f){var v=f||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]];f=v[v.length-
1];var q=G[f[0]],H=f[1],E;for(E=0;E<v.length&&!(f=v[E],q=G[f[0]],H=f[1],v[E+1]&&a<=(q*H[H.length-1]+G[v[E+1][0]])/2);E++);q===G.year&&a<5*q&&(H=[1,2,5]);a=D(a/q,H,"year"===f[0]?Math.max(y(a/q),1):1);return{unitRange:q,count:a,unitName:f[0]}};return a}();a=function(){function a(){}a.compose=function(a){a.keepProps.push("dateTime");a.prototype.getTimeTicks=function(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)};n(a,"init",function(a){"datetime"!==a.userOptions.type?this.dateTime=
void 0:this.dateTime||(this.dateTime=new C(this))})};a.AdditionsClass=C;return a}();a.compose(f);return a});O(n,"Core/Axis/LogarithmicAxis.js",[n["Core/Axis/Axis.js"],n["Core/Utilities.js"]],function(f,a){var n=a.addEvent,y=a.getMagnitude,D=a.normalizeTickInterval,G=a.pick,C=function(){function a(a){this.axis=a}a.prototype.getLogTickPositions=function(a,f,n,q){var v=this.axis,E=v.len,p=v.options,t=[];q||(this.minorAutoInterval=void 0);if(.5<=a)a=Math.round(a),t=v.getLinearTickPositions(a,f,n);else if(.08<=
a){p=Math.floor(f);var I,u;for(E=.3<a?[1,2,4]:.15<a?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];p<n+1&&!u;p++){var m=E.length;for(I=0;I<m&&!u;I++){var h=this.log2lin(this.lin2log(p)*E[I]);h>f&&(!q||l<=n)&&"undefined"!==typeof l&&t.push(l);l>n&&(u=!0);var l=h}}}else f=this.lin2log(f),n=this.lin2log(n),a=q?v.getMinorTickInterval():p.tickInterval,a=G("auto"===a?null:a,this.minorAutoInterval,p.tickPixelInterval/(q?5:1)*(n-f)/((q?E/v.tickPositions.length:E)||1)),a=D(a,void 0,y(a)),t=v.getLinearTickPositions(a,f,n).map(this.log2lin),
q||(this.minorAutoInterval=a/5);q||(v.tickInterval=a);return t};a.prototype.lin2log=function(a){return Math.pow(10,a)};a.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};return a}();a=function(){function a(){}a.compose=function(a){a.keepProps.push("logarithmic");var f=a.prototype,H=C.prototype;f.log2lin=H.log2lin;f.lin2log=H.lin2log;n(a,"init",function(a){var f=this.logarithmic;"logarithmic"!==a.userOptions.type?this.logarithmic=void 0:(f||(f=this.logarithmic=new C(this)),this.log2lin!==
f.log2lin&&(f.log2lin=this.log2lin.bind(this)),this.lin2log!==f.lin2log&&(f.lin2log=this.lin2log.bind(this)))});n(a,"afterInit",function(){var a=this.logarithmic;a&&(this.lin2val=function(f){return a.lin2log(f)},this.val2lin=function(f){return a.log2lin(f)})})};return a}();a.compose(f);return a});O(n,"Core/Axis/PlotLineOrBand.js",[n["Core/Axis/Axis.js"],n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a,n){var y=n.arrayMax,D=n.arrayMin,G=n.defined,C=n.destroyObjectProperties,J=n.erase,H=n.extend,
v=n.merge,L=n.objectEach,q=n.pick,K=function(){function f(a,f){this.axis=a;f&&(this.options=f,this.id=f.id)}f.prototype.render=function(){a.fireEvent(this,"render");var f=this,t=f.axis,I=t.horiz,u=t.logarithmic,m=f.options,h=m.label,l=f.label,k=m.to,g=m.from,d=m.value,x=G(g)&&G(k),r=G(d),A=f.svgElem,N=!A,B=[],M=m.color,R=q(m.zIndex,0),F=m.events;B={"class":"highcharts-plot-"+(x?"band ":"line ")+(m.className||"")};var e={},c=t.chart.renderer,b=x?"bands":"lines";u&&(g=u.log2lin(g),k=u.log2lin(k),d=
u.log2lin(d));t.chart.styledMode||(r?(B.stroke=M||"#999999",B["stroke-width"]=q(m.width,1),m.dashStyle&&(B.dashstyle=m.dashStyle)):x&&(B.fill=M||"#e6ebf5",m.borderWidth&&(B.stroke=m.borderColor,B["stroke-width"]=m.borderWidth)));e.zIndex=R;b+="-"+R;(u=t.plotLinesAndBandsGroups[b])||(t.plotLinesAndBandsGroups[b]=u=c.g("plot-"+b).attr(e).add());N&&(f.svgElem=A=c.path().attr(B).add(u));if(r)B=t.getPlotLinePath({value:d,lineWidth:A.strokeWidth(),acrossPanes:m.acrossPanes});else if(x)B=t.getPlotBandPath(g,
k,m);else return;!f.eventsAdded&&F&&(L(F,function(b,c){A.on(c,function(b){F[c].apply(f,[b])})}),f.eventsAdded=!0);(N||!A.d)&&B&&B.length?A.attr({d:B}):A&&(B?(A.show(!0),A.animate({d:B})):A.d&&(A.hide(),l&&(f.label=l=l.destroy())));h&&(G(h.text)||G(h.formatter))&&B&&B.length&&0<t.width&&0<t.height&&!B.isFlat?(h=v({align:I&&x&&"center",x:I?!x&&4:10,verticalAlign:!I&&x&&"middle",y:I?x?16:10:x?6:-4,rotation:I&&!x&&90},h),this.renderLabel(h,B,x,R)):l&&l.hide();return f};f.prototype.renderLabel=function(a,
f,q,u){var m=this.label,h=this.axis.chart.renderer;m||(m={align:a.textAlign||a.align,rotation:a.rotation,"class":"highcharts-plot-"+(q?"band":"line")+"-label "+(a.className||"")},m.zIndex=u,u=this.getLabelText(a),this.label=m=h.text(u,0,0,a.useHTML).attr(m).add(),this.axis.chart.styledMode||m.css(a.style));h=f.xBounds||[f[0][1],f[1][1],q?f[2][1]:f[0][1]];f=f.yBounds||[f[0][2],f[1][2],q?f[2][2]:f[0][2]];q=D(h);u=D(f);m.align(a,!1,{x:q,y:u,width:y(h)-q,height:y(f)-u});m.show(!0)};f.prototype.getLabelText=
function(a){return G(a.formatter)?a.formatter.call(this):a.text};f.prototype.destroy=function(){J(this.axis.plotLinesAndBands,this);delete this.axis;C(this)};return f}();H(f.prototype,{getPlotBandPath:function(a,f){var p=this.getPlotLinePath({value:f,force:!0,acrossPanes:this.options.acrossPanes}),q=this.getPlotLinePath({value:a,force:!0,acrossPanes:this.options.acrossPanes}),u=[],m=this.horiz,h=1;a=a<this.min&&f<this.min||a>this.max&&f>this.max;if(q&&p){if(a){var l=q.toString()===p.toString();h=
0}for(a=0;a<q.length;a+=2){f=q[a];var k=q[a+1],g=p[a],d=p[a+1];"M"!==f[0]&&"L"!==f[0]||"M"!==k[0]&&"L"!==k[0]||"M"!==g[0]&&"L"!==g[0]||"M"!==d[0]&&"L"!==d[0]||(m&&g[1]===f[1]?(g[1]+=h,d[1]+=h):m||g[2]!==f[2]||(g[2]+=h,d[2]+=h),u.push(["M",f[1],f[2]],["L",k[1],k[2]],["L",d[1],d[2]],["L",g[1],g[2]],["Z"]));u.isFlat=l}}return u},addPlotBand:function(a){return this.addPlotBandOrLine(a,"plotBands")},addPlotLine:function(a){return this.addPlotBandOrLine(a,"plotLines")},addPlotBandOrLine:function(a,f){var p=
(new K(this,a)).render(),q=this.userOptions;if(p){if(f){var u=q[f]||[];u.push(a);q[f]=u}this.plotLinesAndBands.push(p);this._addedPlotLB=!0}return p},removePlotBandOrLine:function(a){for(var f=this.plotLinesAndBands,t=this.options,q=this.userOptions,u=f.length;u--;)f[u].id===a&&f[u].destroy();[t.plotLines||[],q.plotLines||[],t.plotBands||[],q.plotBands||[]].forEach(function(f){for(u=f.length;u--;)(f[u]||{}).id===a&&J(f,f[u])})},removePlotBand:function(a){this.removePlotBandOrLine(a)},removePlotLine:function(a){this.removePlotBandOrLine(a)}});
a.PlotLineOrBand=K;return a.PlotLineOrBand});O(n,"Core/Tooltip.js",[n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a){var n=f.doc,y=a.clamp,D=a.css,G=a.defined,C=a.discardElement,J=a.extend,H=a.fireEvent,v=a.format,L=a.isNumber,q=a.isString,K=a.merge,E=a.pick,p=a.splat,t=a.syncTimeout,I=a.timeUnits;"";var u=function(){function m(h,a){this.container=void 0;this.crosshairs=[];this.distance=0;this.isHidden=!0;this.isSticky=!1;this.now={};this.options={};this.outside=!1;this.chart=h;this.init(h,
a)}m.prototype.applyFilter=function(){var h=this.chart;h.renderer.definition({tagName:"filter",id:"drop-shadow-"+h.index,opacity:.5,children:[{tagName:"feGaussianBlur","in":"SourceAlpha",stdDeviation:1},{tagName:"feOffset",dx:1,dy:1},{tagName:"feComponentTransfer",children:[{tagName:"feFuncA",type:"linear",slope:.3}]},{tagName:"feMerge",children:[{tagName:"feMergeNode"},{tagName:"feMergeNode","in":"SourceGraphic"}]}]});h.renderer.definition({tagName:"style",textContent:".highcharts-tooltip-"+h.index+
"{filter:url(#drop-shadow-"+h.index+")}"})};m.prototype.bodyFormatter=function(h){return h.map(function(h){var k=h.series.tooltipOptions;return(k[(h.point.formatPrefix||"point")+"Formatter"]||h.point.tooltipFormatter).call(h.point,k[(h.point.formatPrefix||"point")+"Format"]||"")})};m.prototype.cleanSplit=function(h){this.chart.series.forEach(function(a){var k=a&&a.tt;k&&(!k.isActive||h?a.tt=k.destroy():k.isActive=!1)})};m.prototype.defaultFormatter=function(h){var a=this.points||p(this);var k=[h.tooltipFooterHeaderFormatter(a[0])];
k=k.concat(h.bodyFormatter(a));k.push(h.tooltipFooterHeaderFormatter(a[0],!0));return k};m.prototype.destroy=function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());this.renderer&&(this.renderer=this.renderer.destroy(),C(this.container));a.clearTimeout(this.hideTimer);a.clearTimeout(this.tooltipTimeout)};m.prototype.getAnchor=function(h,a){var k=this.chart,g=k.pointer,d=k.inverted,l=k.plotTop,f=k.plotLeft,m=0,t=0,B,M;
h=p(h);this.followPointer&&a?("undefined"===typeof a.chartX&&(a=g.normalize(a)),h=[a.chartX-f,a.chartY-l]):h[0].tooltipPos?h=h[0].tooltipPos:(h.forEach(function(g){B=g.series.yAxis;M=g.series.xAxis;m+=g.plotX+(!d&&M?M.left-f:0);t+=(g.plotLow?(g.plotLow+g.plotHigh)/2:g.plotY)+(!d&&B?B.top-l:0)}),m/=h.length,t/=h.length,h=[d?k.plotWidth-t:m,this.shared&&!d&&1<h.length&&a?a.chartY-l:d?k.plotHeight-m:t]);return h.map(Math.round)};m.prototype.getDateFormat=function(h,a,k,g){var d=this.chart.time,l=d.dateFormat("%m-%d %H:%M:%S.%L",
a),f={millisecond:15,second:12,minute:9,hour:6,day:3},m="millisecond";for(p in I){if(h===I.week&&+d.dateFormat("%w",a)===k&&"00:00:00.000"===l.substr(6)){var p="week";break}if(I[p]>h){p=m;break}if(f[p]&&l.substr(f[p])!=="01-01 00:00:00.000".substr(f[p]))break;"week"!==p&&(m=p)}if(p)var B=d.resolveDTLFormat(g[p]).main;return B};m.prototype.getLabel=function(){var h,a,k=this,g=this.chart.renderer,d=this.chart.styledMode,m=this.options,r="tooltip"+(G(m.className)?" "+m.className:""),p=(null===(h=m.style)||
void 0===h?void 0:h.pointerEvents)||(!this.followPointer&&m.stickOnContact?"auto":"none"),t;h=function(){k.inContact=!0};var B=function(){var e=k.chart.hoverSeries;k.inContact=!1;if(e&&e.onMouseOut)e.onMouseOut()};if(!this.label){this.outside&&(this.container=t=f.doc.createElement("div"),t.className="highcharts-tooltip-container",D(t,{position:"absolute",top:"1px",pointerEvents:p,zIndex:3}),f.doc.body.appendChild(t),this.renderer=g=new f.Renderer(t,0,0,null===(a=this.chart.options.chart)||void 0===
a?void 0:a.style,void 0,void 0,g.styledMode));this.split?this.label=g.g(r):(this.label=g.label("",0,0,m.shape||"callout",null,null,m.useHTML,null,r).attr({padding:m.padding,r:m.borderRadius}),d||this.label.attr({fill:m.backgroundColor,"stroke-width":m.borderWidth}).css(m.style).css({pointerEvents:p}).shadow(m.shadow));d&&(this.applyFilter(),this.label.addClass("highcharts-tooltip-"+this.chart.index));if(k.outside&&!k.split){var M=this.label,q=M.xSetter,F=M.ySetter;M.xSetter=function(e){q.call(M,k.distance);
t.style.left=e+"px"};M.ySetter=function(e){F.call(M,k.distance);t.style.top=e+"px"}}this.label.on("mouseenter",h).on("mouseleave",B).attr({zIndex:8}).add()}return this.label};m.prototype.getPosition=function(a,l,k){var g=this.chart,d=this.distance,h={},f=g.inverted&&k.h||0,m,p=this.outside,B=p?n.documentElement.clientWidth-2*d:g.chartWidth,M=p?Math.max(n.body.scrollHeight,n.documentElement.scrollHeight,n.body.offsetHeight,n.documentElement.offsetHeight,n.documentElement.clientHeight):g.chartHeight,
t=g.pointer.getChartPosition(),F=g.containerScaling,e=function(b){return F?b*F.scaleX:b},c=function(b){return F?b*F.scaleY:b},b=function(b){var h="x"===b;return[b,h?B:M,h?a:l].concat(p?[h?e(a):c(l),h?t.left-d+e(k.plotX+g.plotLeft):t.top-d+c(k.plotY+g.plotTop),0,h?B:M]:[h?a:l,h?k.plotX+g.plotLeft:k.plotY+g.plotTop,h?g.plotLeft:g.plotTop,h?g.plotLeft+g.plotWidth:g.plotTop+g.plotHeight])},z=b("y"),w=b("x"),q=!this.followPointer&&E(k.ttBelow,!g.inverted===!!k.negative),u=function(b,g,k,a,l,m,r){var x=
"y"===b?c(d):e(d),w=(k-a)/2,p=a<l-d,B=l+d+a<g,z=l-x-k+w;l=l+x-w;if(q&&B)h[b]=l;else if(!q&&p)h[b]=z;else if(p)h[b]=Math.min(r-a,0>z-f?z:z-f);else if(B)h[b]=Math.max(m,l+f+k>g?l:l+f);else return!1},v=function(b,c,e,g,k){var a;k<d||k>c-d?a=!1:h[b]=k<e/2?1:k>c-g/2?c-g-2:k-e/2;return a},I=function(b){var c=z;z=w;w=c;m=b},H=function(){!1!==u.apply(0,z)?!1!==v.apply(0,w)||m||(I(!0),H()):m?h.x=h.y=0:(I(!0),H())};(g.inverted||1<this.len)&&I();H();return h};m.prototype.getXDateFormat=function(a,l,k){l=l.dateTimeLabelFormats;
var g=k&&k.closestPointRange;return(g?this.getDateFormat(g,a.x,k.options.startOfWeek,l):l.day)||l.year};m.prototype.hide=function(h){var l=this;a.clearTimeout(this.hideTimer);h=E(h,this.options.hideDelay,500);this.isHidden||(this.hideTimer=t(function(){l.getLabel().fadeOut(h?void 0:h);l.isHidden=!0},h))};m.prototype.init=function(a,l){this.chart=a;this.options=l;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=l.split&&!a.inverted&&!a.polar;this.shared=l.shared||this.split;this.outside=
E(l.outside,!(!a.scrollablePixelsX&&!a.scrollablePixelsY))};m.prototype.isStickyOnContact=function(){return!(this.followPointer||!this.options.stickOnContact||!this.inContact)};m.prototype.move=function(h,l,k,g){var d=this,f=d.now,m=!1!==d.options.animation&&!d.isHidden&&(1<Math.abs(h-f.x)||1<Math.abs(l-f.y)),p=d.followPointer||1<d.len;J(f,{x:m?(2*f.x+h)/3:h,y:m?(f.y+l)/2:l,anchorX:p?void 0:m?(2*f.anchorX+k)/3:k,anchorY:p?void 0:m?(f.anchorY+g)/2:g});d.getLabel().attr(f);d.drawTracker();m&&(a.clearTimeout(this.tooltipTimeout),
this.tooltipTimeout=setTimeout(function(){d&&d.move(h,l,k,g)},32))};m.prototype.refresh=function(h,l){var k=this.chart,g=this.options,d=h,f={},m=[],A=g.formatter||this.defaultFormatter;f=this.shared;var t=k.styledMode;if(g.enabled){a.clearTimeout(this.hideTimer);this.followPointer=p(d)[0].series.tooltipOptions.followPointer;var B=this.getAnchor(d,l);l=B[0];var M=B[1];!f||d.series&&d.series.noSharedTooltip?f=d.getLabelConfig():(k.pointer.applyInactiveState(d),d.forEach(function(d){d.setState("hover");
m.push(d.getLabelConfig())}),f={x:d[0].category,y:d[0].y},f.points=m,d=d[0]);this.len=m.length;k=A.call(f,this);A=d.series;this.distance=E(A.tooltipOptions.distance,16);!1===k?this.hide():(this.split?this.renderSplit(k,p(h)):(h=this.getLabel(),g.style.width&&!t||h.css({width:this.chart.spacingBox.width+"px"}),h.attr({text:k&&k.join?k.join(""):k}),h.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-"+E(d.colorIndex,A.colorIndex)),t||h.attr({stroke:g.borderColor||d.color||A.color||"#666666"}),
this.updatePosition({plotX:l,plotY:M,negative:d.negative,ttBelow:d.ttBelow,h:B[2]||0})),this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1);H(this,"refresh")}};m.prototype.renderSplit=function(a,l){function k(b,c,e,d,g){void 0===g&&(g=!0);e?(c=H?0:G,b=y(b-d/2,n.left,n.right-d)):(c-=K,b=g?b-d-z:b+z,b=y(b,g?b:n.left,n.right));return{x:b,y:c}}var g=this,d=g.chart,h=g.chart,m=h.plotHeight,p=h.plotLeft,t=h.plotTop,B=h.pointer,M=h.renderer,u=h.scrollablePixelsY,F=void 0===u?
0:u;u=h.scrollingContainer;u=void 0===u?{scrollLeft:0,scrollTop:0}:u;var e=u.scrollLeft,c=u.scrollTop,b=h.styledMode,z=g.distance,w=g.options,v=g.options.positioner,n={left:e,right:e+h.chartWidth,top:c,bottom:c+h.chartHeight},I=g.getLabel(),H=!(!d.xAxis[0]||!d.xAxis[0].opposite),K=t+c,C=0,G=m-F;q(a)&&(a=[!1,a]);a=a.slice(0,l.length+1).reduce(function(e,d,a){if(!1!==d&&""!==d){a=l[a-1]||{isHeader:!0,plotX:l[0].plotX,plotY:m,series:{}};var h=a.isHeader,f=h?g:a.series,r=f.tt,x=a.isHeader;var B=a.series;
var A="highcharts-color-"+E(a.colorIndex,B.colorIndex,"none");r||(r={padding:w.padding,r:w.borderRadius},b||(r.fill=w.backgroundColor,r["stroke-width"]=w.borderWidth),r=M.label("",0,0,w[x?"headerShape":"shape"]||"callout",void 0,void 0,w.useHTML).addClass((x?"highcharts-tooltip-header ":"")+"highcharts-tooltip-box "+A).attr(r).add(I));r.isActive=!0;r.attr({text:d});b||r.css(w.style).shadow(w.shadow).attr({stroke:w.borderColor||a.color||B.color||"#333333"});d=f.tt=r;x=d.getBBox();f=x.width+d.strokeWidth();
h&&(C=x.height,G+=C,H&&(K-=C));B=a.plotX;B=void 0===B?0:B;A=a.plotY;A=void 0===A?0:A;var Q=a.series;if(a.isHeader){B=p+B;var u=t+m/2}else r=Q.xAxis,Q=Q.yAxis,B=r.pos+y(B,-z,r.len+z),Q.pos+A>=c+t&&Q.pos+A<=c+t+m-F&&(u=Q.pos+A);B=y(B,n.left-z,n.right+z);"number"===typeof u?(x=x.height+1,A=v?v.call(g,f,x,a):k(B,u,h,f),e.push({align:v?0:void 0,anchorX:B,anchorY:u,boxWidth:f,point:a,rank:E(A.rank,h?1:0),size:x,target:A.y,tt:d,x:A.x})):d.isActive=!1}return e},[]);!v&&a.some(function(b){return b.x<n.left})&&
(a=a.map(function(b){var c=k(b.anchorX,b.anchorY,b.point.isHeader,b.boxWidth,!1);return J(b,{target:c.y,x:c.x})}));g.cleanSplit();f.distribute(a,G);a.forEach(function(b){var c=b.pos;b.tt.attr({visibility:"undefined"===typeof c?"hidden":"inherit",x:b.x,y:c+K,anchorX:b.anchorX,anchorY:b.anchorY})});a=g.container;d=g.renderer;g.outside&&a&&d&&(h=I.getBBox(),d.setSize(h.width+h.x,h.height+h.y,!1),B=B.getChartPosition(),a.style.left=B.left+"px",a.style.top=B.top+"px")};m.prototype.drawTracker=function(){if(this.followPointer||
!this.options.stickOnContact)this.tracker&&this.tracker.destroy();else{var a=this.chart,l=this.label,k=a.hoverPoint;if(l&&k){var g={x:0,y:0,width:0,height:0};k=this.getAnchor(k);var d=l.getBBox();k[0]+=a.plotLeft-l.translateX;k[1]+=a.plotTop-l.translateY;g.x=Math.min(0,k[0]);g.y=Math.min(0,k[1]);g.width=0>k[0]?Math.max(Math.abs(k[0]),d.width-k[0]):Math.max(Math.abs(k[0]),d.width);g.height=0>k[1]?Math.max(Math.abs(k[1]),d.height-Math.abs(k[1])):Math.max(Math.abs(k[1]),d.height);this.tracker?this.tracker.attr(g):
(this.tracker=l.renderer.rect(g).addClass("highcharts-tracker").add(l),a.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}}};m.prototype.styledModeFormat=function(a){return a.replace('style="font-size: 10px"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex}"')};m.prototype.tooltipFooterHeaderFormatter=function(a,l){var k=l?"footer":"header",g=a.series,d=g.tooltipOptions,h=d.xDateFormat,f=g.xAxis,m=f&&"datetime"===f.options.type&&
L(a.key),p=d[k+"Format"];l={isFooter:l,labelConfig:a};H(this,"headerFormatter",l,function(k){m&&!h&&(h=this.getXDateFormat(a,d,f));m&&h&&(a.point&&a.point.tooltipDateKeys||["key"]).forEach(function(d){p=p.replace("{point."+d+"}","{point."+d+":"+h+"}")});g.chart.styledMode&&(p=this.styledModeFormat(p));k.text=v(p,{point:a,series:g},this.chart)});return l.text};m.prototype.update=function(a){this.destroy();K(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,K(!0,this.options,a))};m.prototype.updatePosition=
function(a){var h=this.chart,k=h.pointer,g=this.getLabel(),d=a.plotX+h.plotLeft,f=a.plotY+h.plotTop;k=k.getChartPosition();a=(this.options.positioner||this.getPosition).call(this,g.width,g.height,a);if(this.outside){var m=(this.options.borderWidth||0)+2*this.distance;this.renderer.setSize(g.width+m,g.height+m,!1);if(h=h.containerScaling)D(this.container,{transform:"scale("+h.scaleX+", "+h.scaleY+")"}),d*=h.scaleX,f*=h.scaleY;d+=k.left-a.x;f+=k.top-a.y}this.move(Math.round(a.x),Math.round(a.y||0),
d,f)};return m}();f.Tooltip=u;return f.Tooltip});O(n,"Core/Pointer.js",[n["Core/Color.js"],n["Core/Globals.js"],n["Core/Tooltip.js"],n["Core/Utilities.js"]],function(f,a,n,y){var D=f.parse,G=a.charts,C=a.noop,J=y.addEvent,H=y.attr,v=y.css,L=y.defined,q=y.extend,K=y.find,E=y.fireEvent,p=y.isNumber,t=y.isObject,I=y.objectEach,u=y.offset,m=y.pick,h=y.splat;"";f=function(){function l(a,g){this.lastValidTouch={};this.pinchDown=[];this.runChartClick=!1;this.chart=a;this.hasDragged=!1;this.options=g;this.unbindContainerMouseLeave=
function(){};this.unbindContainerMouseEnter=function(){};this.init(a,g)}l.prototype.applyInactiveState=function(a){var g=[],d;(a||[]).forEach(function(a){d=a.series;g.push(d);d.linkedParent&&g.push(d.linkedParent);d.linkedSeries&&(g=g.concat(d.linkedSeries));d.navigatorSeries&&g.push(d.navigatorSeries)});this.chart.series.forEach(function(d){-1===g.indexOf(d)?d.setState("inactive",!0):d.options.inactiveOtherPoints&&d.setAllPointsToState("inactive")})};l.prototype.destroy=function(){var k=this;"undefined"!==
typeof k.unDocMouseMove&&k.unDocMouseMove();this.unbindContainerMouseLeave();a.chartCount||(a.unbindDocumentMouseUp&&(a.unbindDocumentMouseUp=a.unbindDocumentMouseUp()),a.unbindDocumentTouchEnd&&(a.unbindDocumentTouchEnd=a.unbindDocumentTouchEnd()));clearInterval(k.tooltipTimeout);I(k,function(g,d){k[d]=void 0})};l.prototype.drag=function(a){var g=this.chart,d=g.options.chart,k=a.chartX,h=a.chartY,l=this.zoomHor,f=this.zoomVert,m=g.plotLeft,p=g.plotTop,u=g.plotWidth,F=g.plotHeight,e=this.selectionMarker,
c=this.mouseDownX||0,b=this.mouseDownY||0,z=t(d.panning)?d.panning&&d.panning.enabled:d.panning,w=d.panKey&&a[d.panKey+"Key"];if(!e||!e.touch)if(k<m?k=m:k>m+u&&(k=m+u),h<p?h=p:h>p+F&&(h=p+F),this.hasDragged=Math.sqrt(Math.pow(c-k,2)+Math.pow(b-h,2)),10<this.hasDragged){var q=g.isInsidePlot(c-m,b-p);g.hasCartesianSeries&&(this.zoomX||this.zoomY)&&q&&!w&&!e&&(this.selectionMarker=e=g.renderer.rect(m,p,l?1:u,f?1:F,0).attr({"class":"highcharts-selection-marker",zIndex:7}).add(),g.styledMode||e.attr({fill:d.selectionMarkerFill||
D("#335cad").setOpacity(.25).get()}));e&&l&&(k-=c,e.attr({width:Math.abs(k),x:(0<k?0:k)+c}));e&&f&&(k=h-b,e.attr({height:Math.abs(k),y:(0<k?0:k)+b}));q&&!e&&z&&g.pan(a,d.panning)}};l.prototype.dragStart=function(a){var g=this.chart;g.mouseIsDown=a.type;g.cancelClick=!1;g.mouseDownX=this.mouseDownX=a.chartX;g.mouseDownY=this.mouseDownY=a.chartY};l.prototype.drop=function(a){var g=this,d=this.chart,k=this.hasPinched;if(this.selectionMarker){var h={originalEvent:a,xAxis:[],yAxis:[]},l=this.selectionMarker,
f=l.attr?l.attr("x"):l.x,m=l.attr?l.attr("y"):l.y,t=l.attr?l.attr("width"):l.width,u=l.attr?l.attr("height"):l.height,F;if(this.hasDragged||k)d.axes.forEach(function(e){if(e.zoomEnabled&&L(e.min)&&(k||g[{xAxis:"zoomX",yAxis:"zoomY"}[e.coll]])&&p(f)&&p(m)){var c=e.horiz,b="touchend"===a.type?e.minPixelPadding:0,d=e.toValue((c?f:m)+b);c=e.toValue((c?f+t:m+u)-b);h[e.coll].push({axis:e,min:Math.min(d,c),max:Math.max(d,c)});F=!0}}),F&&E(d,"selection",h,function(e){d.zoom(q(e,k?{animation:!1}:null))});
p(d.index)&&(this.selectionMarker=this.selectionMarker.destroy());k&&this.scaleGroups()}d&&p(d.index)&&(v(d.container,{cursor:d._cursor}),d.cancelClick=10<this.hasDragged,d.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])};l.prototype.findNearestKDPoint=function(a,g,d){var k=this.chart,h=k.hoverPoint;k=k.tooltip;if(h&&k&&k.isStickyOnContact())return h;var l;a.forEach(function(a){var k=!(a.noSharedTooltip&&g)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(d,k);if((k=
t(a,!0))&&!(k=!t(l,!0))){k=l.distX-a.distX;var h=l.dist-a.dist,f=(a.series.group&&a.series.group.zIndex)-(l.series.group&&l.series.group.zIndex);k=0<(0!==k&&g?k:0!==h?h:0!==f?f:l.series.index>a.series.index?-1:1)}k&&(l=a)});return l};l.prototype.getChartCoordinatesFromPoint=function(a,g){var d=a.series,k=d.xAxis;d=d.yAxis;var h=m(a.clientX,a.plotX),l=a.shapeArgs;if(k&&d)return g?{chartX:k.len+k.pos-h,chartY:d.len+d.pos-a.plotY}:{chartX:h+k.pos,chartY:a.plotY+d.pos};if(l&&l.x&&l.y)return{chartX:l.x,
chartY:l.y}};l.prototype.getChartPosition=function(){return this.chartPosition||(this.chartPosition=u(this.chart.container))};l.prototype.getCoordinates=function(a){var g={xAxis:[],yAxis:[]};this.chart.axes.forEach(function(d){g[d.isXAxis?"xAxis":"yAxis"].push({axis:d,value:d.toValue(a[d.horiz?"chartX":"chartY"])})});return g};l.prototype.getHoverData=function(a,g,d,h,l,f){var k,r=[];h=!(!h||!a);var p=g&&!g.stickyTracking,x={chartX:f?f.chartX:void 0,chartY:f?f.chartY:void 0,shared:l};E(this,"beforeGetHoverData",
x);p=p?[g]:d.filter(function(d){return x.filter?x.filter(d):d.visible&&!(!l&&d.directTouch)&&m(d.options.enableMouseTracking,!0)&&d.stickyTracking});g=(k=h||!f?a:this.findNearestKDPoint(p,l,f))&&k.series;k&&(l&&!g.noSharedTooltip?(p=d.filter(function(d){return x.filter?x.filter(d):d.visible&&!(!l&&d.directTouch)&&m(d.options.enableMouseTracking,!0)&&!d.noSharedTooltip}),p.forEach(function(d){var e=K(d.points,function(c){return c.x===k.x&&!c.isNull});t(e)&&(d.chart.isBoosting&&(e=d.getPoint(e)),r.push(e))})):
r.push(k));x={hoverPoint:k};E(this,"afterGetHoverData",x);return{hoverPoint:x.hoverPoint,hoverSeries:g,hoverPoints:r}};l.prototype.getPointFromEvent=function(a){a=a.target;for(var g;a&&!g;)g=a.point,a=a.parentNode;return g};l.prototype.onTrackerMouseOut=function(a){a=a.relatedTarget||a.toElement;var g=this.chart.hoverSeries;this.isDirectTouch=!1;if(!(!g||!a||g.stickyTracking||this.inClass(a,"highcharts-tooltip")||this.inClass(a,"highcharts-series-"+g.index)&&this.inClass(a,"highcharts-tracker")))g.onMouseOut()};
l.prototype.inClass=function(a,g){for(var d;a;){if(d=H(a,"class")){if(-1!==d.indexOf(g))return!0;if(-1!==d.indexOf("highcharts-container"))return!1}a=a.parentNode}};l.prototype.init=function(a,g){this.options=g;this.chart=a;this.runChartClick=g.chart.events&&!!g.chart.events.click;this.pinchDown=[];this.lastValidTouch={};n&&(a.tooltip=new n(a,g.tooltip),this.followTouchMove=m(g.tooltip.followTouchMove,!0));this.setDOMEvents()};l.prototype.normalize=function(a,g){var d=a.touches,k=d?d.length?d.item(0):
m(d.changedTouches,a.changedTouches)[0]:a;g||(g=this.getChartPosition());d=k.pageX-g.left;g=k.pageY-g.top;if(k=this.chart.containerScaling)d/=k.scaleX,g/=k.scaleY;return q(a,{chartX:Math.round(d),chartY:Math.round(g)})};l.prototype.onContainerClick=function(a){var g=this.chart,d=g.hoverPoint;a=this.normalize(a);var k=g.plotLeft,h=g.plotTop;g.cancelClick||(d&&this.inClass(a.target,"highcharts-tracker")?(E(d.series,"click",q(a,{point:d})),g.hoverPoint&&d.firePointEvent("click",a)):(q(a,this.getCoordinates(a)),
g.isInsidePlot(a.chartX-k,a.chartY-h)&&E(g,"click",a)))};l.prototype.onContainerMouseDown=function(k){var g=1===((k.buttons||k.button)&1);k=this.normalize(k);if(a.isFirefox&&0!==k.button)this.onContainerMouseMove(k);if("undefined"===typeof k.button||g)this.zoomOption(k),g&&k.preventDefault&&k.preventDefault(),this.dragStart(k)};l.prototype.onContainerMouseLeave=function(k){var g=G[m(a.hoverChartIndex,-1)],d=this.chart.tooltip;k=this.normalize(k);g&&(k.relatedTarget||k.toElement)&&(g.pointer.reset(),
g.pointer.chartPosition=void 0);d&&!d.isHidden&&this.reset()};l.prototype.onContainerMouseEnter=function(a){delete this.chartPosition};l.prototype.onContainerMouseMove=function(a){var g=this.chart;a=this.normalize(a);this.setHoverChartIndex();a.preventDefault||(a.returnValue=!1);"mousedown"===g.mouseIsDown&&this.drag(a);g.openMenu||!this.inClass(a.target,"highcharts-tracker")&&!g.isInsidePlot(a.chartX-g.plotLeft,a.chartY-g.plotTop)||this.runPointActions(a)};l.prototype.onDocumentTouchEnd=function(k){G[a.hoverChartIndex]&&
G[a.hoverChartIndex].pointer.drop(k)};l.prototype.onContainerTouchMove=function(a){this.touch(a)};l.prototype.onContainerTouchStart=function(a){this.zoomOption(a);this.touch(a,!0)};l.prototype.onDocumentMouseMove=function(a){var g=this.chart,d=this.chartPosition;a=this.normalize(a,d);var h=g.tooltip;!d||h&&h.isStickyOnContact()||g.isInsidePlot(a.chartX-g.plotLeft,a.chartY-g.plotTop)||this.inClass(a.target,"highcharts-tracker")||this.reset()};l.prototype.onDocumentMouseUp=function(h){var g=G[m(a.hoverChartIndex,
-1)];g&&g.pointer.drop(h)};l.prototype.pinch=function(a){var g=this,d=g.chart,h=g.pinchDown,k=a.touches||[],l=k.length,f=g.lastValidTouch,p=g.hasZoom,t=g.selectionMarker,u={},F=1===l&&(g.inClass(a.target,"highcharts-tracker")&&d.runTrackerClick||g.runChartClick),e={};1<l&&(g.initiated=!0);p&&g.initiated&&!F&&a.preventDefault();[].map.call(k,function(c){return g.normalize(c)});"touchstart"===a.type?([].forEach.call(k,function(c,b){h[b]={chartX:c.chartX,chartY:c.chartY}}),f.x=[h[0].chartX,h[1]&&h[1].chartX],
f.y=[h[0].chartY,h[1]&&h[1].chartY],d.axes.forEach(function(c){if(c.zoomEnabled){var b=d.bounds[c.horiz?"h":"v"],e=c.minPixelPadding,g=c.toPixels(Math.min(m(c.options.min,c.dataMin),c.dataMin)),a=c.toPixels(Math.max(m(c.options.max,c.dataMax),c.dataMax)),h=Math.max(g,a);b.min=Math.min(c.pos,Math.min(g,a)-e);b.max=Math.max(c.pos+c.len,h+e)}}),g.res=!0):g.followTouchMove&&1===l?this.runPointActions(g.normalize(a)):h.length&&(t||(g.selectionMarker=t=q({destroy:C,touch:!0},d.plotBox)),g.pinchTranslate(h,
k,u,t,e,f),g.hasPinched=p,g.scaleGroups(u,e),g.res&&(g.res=!1,this.reset(!1,0)))};l.prototype.pinchTranslate=function(a,g,d,h,l,f){this.zoomHor&&this.pinchTranslateDirection(!0,a,g,d,h,l,f);this.zoomVert&&this.pinchTranslateDirection(!1,a,g,d,h,l,f)};l.prototype.pinchTranslateDirection=function(a,g,d,h,l,f,m,p){var k=this.chart,r=a?"x":"y",x=a?"X":"Y",e="chart"+x,c=a?"width":"height",b=k["plot"+(a?"Left":"Top")],B,w,t=p||1,A=k.inverted,u=k.bounds[a?"h":"v"],q=1===g.length,v=g[0][e],n=d[0][e],I=!q&&
g[1][e],N=!q&&d[1][e];d=function(){"number"===typeof N&&20<Math.abs(v-I)&&(t=p||Math.abs(n-N)/Math.abs(v-I));w=(b-n)/t+v;B=k["plot"+(a?"Width":"Height")]/t};d();g=w;if(g<u.min){g=u.min;var H=!0}else g+B>u.max&&(g=u.max-B,H=!0);H?(n-=.8*(n-m[r][0]),"number"===typeof N&&(N-=.8*(N-m[r][1])),d()):m[r]=[n,N];A||(f[r]=w-b,f[c]=B);f=A?1/t:t;l[c]=B;l[r]=g;h[A?a?"scaleY":"scaleX":"scale"+x]=t;h["translate"+x]=f*b+(n-f*v)};l.prototype.reset=function(a,g){var d=this.chart,k=d.hoverSeries,l=d.hoverPoint,f=d.hoverPoints,
m=d.tooltip,p=m&&m.shared?f:l;a&&p&&h(p).forEach(function(d){d.series.isCartesian&&"undefined"===typeof d.plotX&&(a=!1)});if(a)m&&p&&h(p).length&&(m.refresh(p),m.shared&&f?f.forEach(function(d){d.setState(d.state,!0);d.series.isCartesian&&(d.series.xAxis.crosshair&&d.series.xAxis.drawCrosshair(null,d),d.series.yAxis.crosshair&&d.series.yAxis.drawCrosshair(null,d))}):l&&(l.setState(l.state,!0),d.axes.forEach(function(d){d.crosshair&&l.series[d.coll]===d&&d.drawCrosshair(null,l)})));else{if(l)l.onMouseOut();
f&&f.forEach(function(d){d.setState()});if(k)k.onMouseOut();m&&m.hide(g);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());d.axes.forEach(function(d){d.hideCrosshair()});this.hoverX=d.hoverPoints=d.hoverPoint=null}};l.prototype.runPointActions=function(h,g){var d=this.chart,k=d.tooltip&&d.tooltip.options.enabled?d.tooltip:void 0,l=k?k.shared:!1,f=g||d.hoverPoint,p=f&&f.series||d.hoverSeries;p=this.getHoverData(f,p,d.series,(!h||"touchmove"!==h.type)&&(!!g||p&&p.directTouch&&this.isDirectTouch),
l,h);f=p.hoverPoint;var B=p.hoverPoints;g=(p=p.hoverSeries)&&p.tooltipOptions.followPointer;l=l&&p&&!p.noSharedTooltip;if(f&&(f!==d.hoverPoint||k&&k.isHidden)){(d.hoverPoints||[]).forEach(function(d){-1===B.indexOf(d)&&d.setState()});if(d.hoverSeries!==p)p.onMouseOver();this.applyInactiveState(B);(B||[]).forEach(function(d){d.setState("hover")});d.hoverPoint&&d.hoverPoint.firePointEvent("mouseOut");if(!f.series)return;d.hoverPoints=B;d.hoverPoint=f;f.firePointEvent("mouseOver");k&&k.refresh(l?B:f,
h)}else g&&k&&!k.isHidden&&(f=k.getAnchor([{}],h),k.updatePosition({plotX:f[0],plotY:f[1]}));this.unDocMouseMove||(this.unDocMouseMove=J(d.container.ownerDocument,"mousemove",function(d){var g=G[a.hoverChartIndex];if(g)g.pointer.onDocumentMouseMove(d)}));d.axes.forEach(function(g){var a=m((g.crosshair||{}).snap,!0),k;a&&((k=d.hoverPoint)&&k.series[g.coll]===g||(k=K(B,function(e){return e.series[g.coll]===g})));k||!a?g.drawCrosshair(h,k):g.hideCrosshair()})};l.prototype.scaleGroups=function(a,g){var d=
this.chart,h;d.series.forEach(function(k){h=a||k.getPlotBox();k.xAxis&&k.xAxis.zoomEnabled&&k.group&&(k.group.attr(h),k.markerGroup&&(k.markerGroup.attr(h),k.markerGroup.clip(g?d.clipRect:null)),k.dataLabelsGroup&&k.dataLabelsGroup.attr(h))});d.clipRect.attr(g||d.clipBox)};l.prototype.setDOMEvents=function(){var h=this.chart.container,g=h.ownerDocument;h.onmousedown=this.onContainerMouseDown.bind(this);h.onmousemove=this.onContainerMouseMove.bind(this);h.onclick=this.onContainerClick.bind(this);this.unbindContainerMouseEnter=
J(h,"mouseenter",this.onContainerMouseEnter.bind(this));this.unbindContainerMouseLeave=J(h,"mouseleave",this.onContainerMouseLeave.bind(this));a.unbindDocumentMouseUp||(a.unbindDocumentMouseUp=J(g,"mouseup",this.onDocumentMouseUp.bind(this)));a.hasTouch&&(J(h,"touchstart",this.onContainerTouchStart.bind(this)),J(h,"touchmove",this.onContainerTouchMove.bind(this)),a.unbindDocumentTouchEnd||(a.unbindDocumentTouchEnd=J(g,"touchend",this.onDocumentTouchEnd.bind(this))))};l.prototype.setHoverChartIndex=
function(){var h=this.chart,g=a.charts[m(a.hoverChartIndex,-1)];if(g&&g!==h)g.pointer.onContainerMouseLeave({relatedTarget:!0});g&&g.mouseIsDown||(a.hoverChartIndex=h.index)};l.prototype.touch=function(a,g){var d=this.chart,h;this.setHoverChartIndex();if(1===a.touches.length)if(a=this.normalize(a),(h=d.isInsidePlot(a.chartX-d.plotLeft,a.chartY-d.plotTop))&&!d.openMenu){g&&this.runPointActions(a);if("touchmove"===a.type){g=this.pinchDown;var k=g[0]?4<=Math.sqrt(Math.pow(g[0].chartX-a.chartX,2)+Math.pow(g[0].chartY-
a.chartY,2)):!1}m(k,!0)&&this.pinch(a)}else g&&this.reset();else 2===a.touches.length&&this.pinch(a)};l.prototype.zoomOption=function(a){var g=this.chart,d=g.options.chart,h=d.zoomType||"";g=g.inverted;/touch/.test(a.type)&&(h=m(d.pinchType,h));this.zoomX=a=/x/.test(h);this.zoomY=h=/y/.test(h);this.zoomHor=a&&!g||h&&g;this.zoomVert=h&&!g||a&&g;this.hasZoom=a||h};return l}();return a.Pointer=f});O(n,"Core/MSPointer.js",[n["Core/Globals.js"],n["Core/Pointer.js"],n["Core/Utilities.js"]],function(f,a,
n){function y(){var a=[];a.item=function(a){return this[a]};q(E,function(f){a.push({pageX:f.pageX,pageY:f.pageY,target:f.target})});return a}function D(a,p,u,m){"touch"!==a.pointerType&&a.pointerType!==a.MSPOINTER_TYPE_TOUCH||!C[f.hoverChartIndex]||(m(a),m=C[f.hoverChartIndex].pointer,m[p]({type:u,target:a.currentTarget,preventDefault:H,touches:y()}))}var G=this&&this.__extends||function(){var a=function(f,p){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,h){a.__proto__=h}||function(a,
h){for(var l in h)h.hasOwnProperty(l)&&(a[l]=h[l])};return a(f,p)};return function(f,p){function m(){this.constructor=f}a(f,p);f.prototype=null===p?Object.create(p):(m.prototype=p.prototype,new m)}}(),C=f.charts,J=f.doc,H=f.noop,v=n.addEvent,L=n.css,q=n.objectEach,K=n.removeEvent,E={},p=!!f.win.PointerEvent;return function(a){function f(){return null!==a&&a.apply(this,arguments)||this}G(f,a);f.prototype.batchMSEvents=function(a){a(this.chart.container,p?"pointerdown":"MSPointerDown",this.onContainerPointerDown);
a(this.chart.container,p?"pointermove":"MSPointerMove",this.onContainerPointerMove);a(J,p?"pointerup":"MSPointerUp",this.onDocumentPointerUp)};f.prototype.destroy=function(){this.batchMSEvents(K);a.prototype.destroy.call(this)};f.prototype.init=function(f,m){a.prototype.init.call(this,f,m);this.hasZoom&&L(f.container,{"-ms-touch-action":"none","touch-action":"none"})};f.prototype.onContainerPointerDown=function(a){D(a,"onContainerTouchStart","touchstart",function(a){E[a.pointerId]={pageX:a.pageX,
pageY:a.pageY,target:a.currentTarget}})};f.prototype.onContainerPointerMove=function(a){D(a,"onContainerTouchMove","touchmove",function(a){E[a.pointerId]={pageX:a.pageX,pageY:a.pageY};E[a.pointerId].target||(E[a.pointerId].target=a.currentTarget)})};f.prototype.onDocumentPointerUp=function(a){D(a,"onDocumentTouchEnd","touchend",function(a){delete E[a.pointerId]})};f.prototype.setDOMEvents=function(){a.prototype.setDOMEvents.call(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(v)};return f}(a)});
O(n,"Core/Legend.js",[n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a){var n=a.addEvent,y=a.animObject,D=a.css,G=a.defined,C=a.discardElement,J=a.find,H=a.fireEvent,v=a.format,L=a.isNumber,q=a.merge,K=a.pick,E=a.relativeLength,p=a.setAnimation,t=a.stableSort,I=a.syncTimeout;a=a.wrap;var u=f.isFirefox,m=f.marginNames,h=f.win,l=function(){function a(a,d){this.allItems=[];this.contentGroup=this.box=void 0;this.display=!1;this.group=void 0;this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=
this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=this.itemX=this.itemMarginTop=this.itemMarginBottom=this.itemHeight=this.initialItemY=0;this.options={};this.padding=0;this.pages=[];this.proximate=!1;this.scrollGroup=void 0;this.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0;this.chart=a;this.init(a,d)}a.prototype.init=function(a,d){this.chart=a;this.setOptions(d);d.enabled&&(this.render(),n(this.chart,"endResize",function(){this.legend.positionCheckboxes()}),
this.proximate?this.unchartrender=n(this.chart,"render",function(){this.legend.proximatePositions();this.legend.positionItems()}):this.unchartrender&&this.unchartrender())};a.prototype.setOptions=function(a){var d=K(a.padding,8);this.options=a;this.chart.styledMode||(this.itemStyle=a.itemStyle,this.itemHiddenStyle=q(this.itemStyle,a.itemHiddenStyle));this.itemMarginTop=a.itemMarginTop||0;this.itemMarginBottom=a.itemMarginBottom||0;this.padding=d;this.initialItemY=d-5;this.symbolWidth=K(a.symbolWidth,
16);this.pages=[];this.proximate="proximate"===a.layout&&!this.chart.inverted;this.baseline=void 0};a.prototype.update=function(a,d){var g=this.chart;this.setOptions(q(!0,this.options,a));this.destroy();g.isDirtyLegend=g.isDirtyBox=!0;K(d,!0)&&g.redraw();H(this,"afterUpdate")};a.prototype.colorizeItem=function(a,d){a.legendGroup[d?"removeClass":"addClass"]("highcharts-legend-item-hidden");if(!this.chart.styledMode){var g=this.options,h=a.legendItem,k=a.legendLine,f=a.legendSymbol,l=this.itemHiddenStyle.color;
g=d?g.itemStyle.color:l;var m=d?a.color||l:l,p=a.options&&a.options.marker,t={fill:m};h&&h.css({fill:g,color:g});k&&k.attr({stroke:m});f&&(p&&f.isMarker&&(t=a.pointAttribs(),d||(t.stroke=t.fill=l)),f.attr(t))}H(this,"afterColorizeItem",{item:a,visible:d})};a.prototype.positionItems=function(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()};a.prototype.positionItem=function(a){var d=this,g=this.options,h=g.symbolPadding,k=!g.rtl,f=a._legendItemPos;g=
f[0];f=f[1];var l=a.checkbox,m=a.legendGroup;m&&m.element&&(h={translateX:k?g:this.legendWidth-g-2*h-4,translateY:f},k=function(){H(d,"afterPositionItem",{item:a})},G(m.translateY)?m.animate(h,void 0,k):(m.attr(h),k()));l&&(l.x=g,l.y=f)};a.prototype.destroyItem=function(a){var d=a.checkbox;["legendItem","legendLine","legendSymbol","legendGroup"].forEach(function(d){a[d]&&(a[d]=a[d].destroy())});d&&C(a.checkbox)};a.prototype.destroy=function(){function a(d){this[d]&&(this[d]=this[d].destroy())}this.getAllItems().forEach(function(d){["legendItem",
"legendGroup"].forEach(a,d)});"clipRect up down pager nav box title group".split(" ").forEach(a,this);this.display=null};a.prototype.positionCheckboxes=function(){var a=this.group&&this.group.alignAttr,d=this.clipHeight||this.legendHeight,h=this.titleHeight;if(a){var k=a.translateY;this.allItems.forEach(function(g){var f=g.checkbox;if(f){var l=k+h+f.y+(this.scrollOffset||0)+3;D(f,{left:a.translateX+g.checkboxOffset+f.x-20+"px",top:l+"px",display:this.proximate||l>k-6&&l<k+d-6?"":"none"})}},this)}};
a.prototype.renderTitle=function(){var a=this.options,d=this.padding,h=a.title,k=0;h.text&&(this.title||(this.title=this.chart.renderer.label(h.text,d-3,d-4,null,null,null,a.useHTML,null,"legend-title").attr({zIndex:1}),this.chart.styledMode||this.title.css(h.style),this.title.add(this.group)),h.width||this.title.css({width:this.maxLegendWidth+"px"}),a=this.title.getBBox(),k=a.height,this.offsetWidth=a.width,this.contentGroup.attr({translateY:k}));this.titleHeight=k};a.prototype.setText=function(a){var d=
this.options;a.legendItem.attr({text:d.labelFormat?v(d.labelFormat,a,this.chart):d.labelFormatter.call(a)})};a.prototype.renderItem=function(a){var d=this.chart,g=d.renderer,h=this.options,k=this.symbolWidth,f=h.symbolPadding,l=this.itemStyle,m=this.itemHiddenStyle,p="horizontal"===h.layout?K(h.itemDistance,20):0,t=!h.rtl,e=a.legendItem,c=!a.series,b=!c&&a.series.drawLegendSymbol?a.series:a,z=b.options;z=this.createCheckboxForItem&&z&&z.showCheckbox;p=k+f+p+(z?20:0);var w=h.useHTML,u=a.options.className;
e||(a.legendGroup=g.g("legend-item").addClass("highcharts-"+b.type+"-series highcharts-color-"+a.colorIndex+(u?" "+u:"")+(c?" highcharts-series-"+a.index:"")).attr({zIndex:1}).add(this.scrollGroup),a.legendItem=e=g.text("",t?k+f:-f,this.baseline||0,w),d.styledMode||e.css(q(a.visible?l:m)),e.attr({align:t?"left":"right",zIndex:2}).add(a.legendGroup),this.baseline||(this.fontMetrics=g.fontMetrics(d.styledMode?12:l.fontSize,e),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,e.attr("y",this.baseline)),
this.symbolHeight=h.symbolHeight||this.fontMetrics.f,b.drawLegendSymbol(this,a),this.setItemEvents&&this.setItemEvents(a,e,w));z&&!a.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(a);this.colorizeItem(a,a.visible);!d.styledMode&&l.width||e.css({width:(h.itemWidth||this.widthOption||d.spacingBox.width)-p+"px"});this.setText(a);d=e.getBBox();a.itemWidth=a.checkboxOffset=h.itemWidth||a.legendItemWidth||d.width+p;this.maxItemWidth=Math.max(this.maxItemWidth,a.itemWidth);this.totalItemWidth+=
a.itemWidth;this.itemHeight=a.itemHeight=Math.round(a.legendItemHeight||d.height||this.symbolHeight)};a.prototype.layoutItem=function(a){var d=this.options,g=this.padding,h="horizontal"===d.layout,k=a.itemHeight,f=this.itemMarginBottom,l=this.itemMarginTop,m=h?K(d.itemDistance,20):0,p=this.maxLegendWidth;d=d.alignColumns&&this.totalItemWidth>p?this.maxItemWidth:a.itemWidth;h&&this.itemX-g+d>p&&(this.itemX=g,this.lastLineHeight&&(this.itemY+=l+this.lastLineHeight+f),this.lastLineHeight=0);this.lastItemY=
l+this.itemY+f;this.lastLineHeight=Math.max(k,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];h?this.itemX+=d:(this.itemY+=l+k+f,this.lastLineHeight=k);this.offsetWidth=this.widthOption||Math.max((h?this.itemX-g-(a.checkbox?0:m):d)+g,this.offsetWidth)};a.prototype.getAllItems=function(){var a=[];this.chart.series.forEach(function(d){var g=d&&d.options;d&&K(g.showInLegend,G(g.linkedTo)?!1:void 0,!0)&&(a=a.concat(d.legendItems||("point"===g.legendType?d.data:d)))});H(this,"afterGetAllItems",
{allItems:a});return a};a.prototype.getAlignment=function(){var a=this.options;return this.proximate?a.align.charAt(0)+"tv":a.floating?"":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)};a.prototype.adjustMargins=function(a,d){var g=this.chart,h=this.options,k=this.getAlignment();k&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(f,l){f.test(k)&&!G(a[l])&&(g[m[l]]=Math.max(g[m[l]],g.legend[(l+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][l]*h[l%2?"x":
"y"]+K(h.margin,12)+d[l]+(g.titleOffset[l]||0)))})};a.prototype.proximatePositions=function(){var a=this.chart,d=[],h="left"===this.options.align;this.allItems.forEach(function(g){var k;var l=h;if(g.yAxis){g.xAxis.options.reversed&&(l=!l);g.points&&(k=J(l?g.points:g.points.slice(0).reverse(),function(d){return L(d.plotY)}));l=this.itemMarginTop+g.legendItem.getBBox().height+this.itemMarginBottom;var f=g.yAxis.top-a.plotTop;g.visible?(k=k?k.plotY:g.yAxis.height,k+=f-.3*l):k=f+g.yAxis.height;d.push({target:k,
size:l,item:g})}},this);f.distribute(d,a.plotHeight);d.forEach(function(d){d.item._legendItemPos[1]=a.plotTop-a.spacing[0]+d.pos})};a.prototype.render=function(){var a=this.chart,d=a.renderer,h=this.group,k=this.box,l=this.options,f=this.padding;this.itemX=f;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=0;this.widthOption=E(l.width,a.spacingBox.width-f);var m=a.spacingBox.width-2*f-l.x;-1<["rm","lm"].indexOf(this.getAlignment().substring(0,2))&&(m/=2);this.maxLegendWidth=this.widthOption||
m;h||(this.group=h=d.g("legend").attr({zIndex:7}).add(),this.contentGroup=d.g().attr({zIndex:1}).add(h),this.scrollGroup=d.g().add(this.contentGroup));this.renderTitle();var p=this.getAllItems();t(p,function(d,e){return(d.options&&d.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)});l.reversed&&p.reverse();this.allItems=p;this.display=m=!!p.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;p.forEach(this.renderItem,this);p.forEach(this.layoutItem,this);
p=(this.widthOption||this.offsetWidth)+f;var q=this.lastItemY+this.lastLineHeight+this.titleHeight;q=this.handleOverflow(q);q+=f;k||(this.box=k=d.rect().addClass("highcharts-legend-box").attr({r:l.borderRadius}).add(h),k.isNew=!0);a.styledMode||k.attr({stroke:l.borderColor,"stroke-width":l.borderWidth||0,fill:l.backgroundColor||"none"}).shadow(l.shadow);0<p&&0<q&&(k[k.isNew?"attr":"animate"](k.crisp.call({},{x:0,y:0,width:p,height:q},k.strokeWidth())),k.isNew=!1);k[m?"show":"hide"]();a.styledMode&&
"none"===h.getStyle("display")&&(p=q=0);this.legendWidth=p;this.legendHeight=q;m&&this.align();this.proximate||this.positionItems();H(this,"afterRender")};a.prototype.align=function(a){void 0===a&&(a=this.chart.spacingBox);var d=this.chart,g=this.options,h=a.y;/(lth|ct|rth)/.test(this.getAlignment())&&0<d.titleOffset[0]?h+=d.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&0<d.titleOffset[2]&&(h-=d.titleOffset[2]);h!==a.y&&(a=q(a,{y:h}));this.group.align(q(g,{width:this.legendWidth,height:this.legendHeight,
verticalAlign:this.proximate?"top":g.verticalAlign}),!0,a)};a.prototype.handleOverflow=function(a){var d=this,g=this.chart,h=g.renderer,k=this.options,l=k.y,f=this.padding;l=g.spacingBox.height+("top"===k.verticalAlign?-l:l)-f;var m=k.maxHeight,p,t=this.clipRect,e=k.navigation,c=K(e.animation,!0),b=e.arrowSize||12,z=this.nav,w=this.pages,q,u=this.allItems,n=function(b){"number"===typeof b?t.attr({height:b}):t&&(d.clipRect=t.destroy(),d.contentGroup.clip());d.contentGroup.div&&(d.contentGroup.div.style.clip=
b?"rect("+f+"px,9999px,"+(f+b)+"px,0)":"auto")},v=function(c){d[c]=h.circle(0,0,1.3*b).translate(b/2,b/2).add(z);g.styledMode||d[c].attr("fill","rgba(0,0,0,0.0001)");return d[c]};"horizontal"!==k.layout||"middle"===k.verticalAlign||k.floating||(l/=2);m&&(l=Math.min(l,m));w.length=0;a>l&&!1!==e.enabled?(this.clipHeight=p=Math.max(l-20-this.titleHeight-f,0),this.currentPage=K(this.currentPage,1),this.fullHeight=a,u.forEach(function(b,c){var e=b._legendItemPos[1],d=Math.round(b.legendItem.getBBox().height),
a=w.length;if(!a||e-w[a-1]>p&&(q||e)!==w[a-1])w.push(q||e),a++;b.pageIx=a-1;q&&(u[c-1].pageIx=a-1);c===u.length-1&&e+d-w[a-1]>p&&e!==q&&(w.push(e),b.pageIx=a);e!==q&&(q=e)}),t||(t=d.clipRect=h.clipRect(0,f,9999,0),d.contentGroup.clip(t)),n(p),z||(this.nav=z=h.g().attr({zIndex:1}).add(this.group),this.up=h.symbol("triangle",0,0,b,b).add(z),v("upTracker").on("click",function(){d.scroll(-1,c)}),this.pager=h.text("",15,10).addClass("highcharts-legend-navigation"),g.styledMode||this.pager.css(e.style),
this.pager.add(z),this.down=h.symbol("triangle-down",0,0,b,b).add(z),v("downTracker").on("click",function(){d.scroll(1,c)})),d.scroll(0),a=l):z&&(n(),this.nav=z.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a};a.prototype.scroll=function(a,d){var g=this,h=this.chart,k=this.pages,l=k.length,f=this.currentPage+a;a=this.clipHeight;var m=this.options.navigation,t=this.pager,q=this.padding;f>l&&(f=l);0<f&&("undefined"!==typeof d&&p(d,h),this.nav.attr({translateX:q,translateY:a+
this.padding+7+this.titleHeight,visibility:"visible"}),[this.up,this.upTracker].forEach(function(e){e.attr({"class":1===f?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),t.attr({text:f+"/"+l}),[this.down,this.downTracker].forEach(function(e){e.attr({x:18+this.pager.getBBox().width,"class":f===l?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),h.styledMode||(this.up.attr({fill:1===f?m.inactiveColor:m.activeColor}),this.upTracker.css({cursor:1===f?"default":
"pointer"}),this.down.attr({fill:f===l?m.inactiveColor:m.activeColor}),this.downTracker.css({cursor:f===l?"default":"pointer"})),this.scrollOffset=-k[f-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=f,this.positionCheckboxes(),d=y(K(d,h.renderer.globalAnimation,!0)),I(function(){H(g,"afterScroll",{currentPage:f})},d.duration))};return a}();(/Trident\/7\.0/.test(h.navigator&&h.navigator.userAgent)||u)&&a(l.prototype,"positionItem",function(a,g){var d=
this,h=function(){g._legendItemPos&&a.call(d,g)};h();d.bubbleLegend||setTimeout(h)});f.Legend=l;return f.Legend});O(n,"Core/Chart/Chart.js",[n["Core/Axis/Axis.js"],n["Core/Globals.js"],n["Core/Legend.js"],n["Core/MSPointer.js"],n["Core/Options.js"],n["Core/Pointer.js"],n["Core/Time.js"],n["Core/Utilities.js"]],function(f,a,n,y,D,G,C,J){var H=a.charts,v=a.doc,L=a.seriesTypes,q=a.win,K=D.defaultOptions,E=J.addEvent,p=J.animate,t=J.animObject,I=J.attr,u=J.createElement,m=J.css,h=J.defined,l=J.discardElement,
k=J.erase,g=J.error,d=J.extend,x=J.find,r=J.fireEvent,A=J.getStyle,N=J.isArray,B=J.isFunction,M=J.isNumber,R=J.isObject,F=J.isString,e=J.merge,c=J.numberFormat,b=J.objectEach,z=J.pick,w=J.pInt,P=J.relativeLength,Z=J.removeEvent,W=J.setAnimation,aa=J.splat,X=J.syncTimeout,ba=J.uniqueKey,ca=a.marginNames,Y=function(){function D(b,c,e){this.yAxis=this.xAxis=this.userOptions=this.titleOffset=this.time=this.symbolCounter=this.spacingBox=this.spacing=this.series=this.renderTo=this.renderer=this.pointer=
this.pointCount=this.plotWidth=this.plotTop=this.plotLeft=this.plotHeight=this.plotBox=this.options=this.numberFormatter=this.margin=this.legend=this.labelCollectors=this.isResizing=this.index=this.container=this.colorCounter=this.clipBox=this.chartWidth=this.chartHeight=this.bounds=this.axisOffset=this.axes=void 0;this.getArgs(b,c,e)}D.prototype.getArgs=function(b,c,e){F(b)||b.nodeName?(this.renderTo=b,this.init(c,e)):this.init(b,c)};D.prototype.init=function(d,g){var h,k=d.series,l=d.plotOptions||
{};r(this,"init",{args:arguments},function(){d.series=null;h=e(K,d);var f=h.chart||{};b(h.plotOptions,function(b,c){R(b)&&(b.tooltip=l[c]&&e(l[c].tooltip)||void 0)});h.tooltip.userOptions=d.chart&&d.chart.forExport&&d.tooltip.userOptions||d.tooltip;h.series=d.series=k;this.userOptions=d;var m=f.events;this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=g;this.isResizing=0;this.options=h;this.axes=[];this.series=[];this.time=d.time&&Object.keys(d.time).length?
new C(d.time):a.time;this.numberFormatter=f.numberFormatter||c;this.styledMode=f.styledMode;this.hasCartesianSeries=f.showAxes;var p=this;p.index=H.length;H.push(p);a.chartCount++;m&&b(m,function(b,c){B(b)&&E(p,c,b)});p.xAxis=[];p.yAxis=[];p.pointCount=p.colorCounter=p.symbolCounter=0;r(p,"afterInit");p.firstRender()})};D.prototype.initSeries=function(b){var c=this.options.chart;c=b.type||c.type||c.defaultSeriesType;var e=L[c];e||g(17,!0,this,{missingModuleFor:c});c=new e;c.init(this,b);return c};
D.prototype.setSeriesData=function(){this.getSeriesOrderByLinks().forEach(function(b){b.points||b.data||!b.enabledDataSorting||b.setData(b.options.data,!1)})};D.prototype.getSeriesOrderByLinks=function(){return this.series.concat().sort(function(b,c){return b.linkedSeries.length||c.linkedSeries.length?c.linkedSeries.length-b.linkedSeries.length:0})};D.prototype.orderSeries=function(b){var c=this.series;for(b=b||0;b<c.length;b++)c[b]&&(c[b].index=b,c[b].name=c[b].getName())};D.prototype.isInsidePlot=
function(b,c,e){var d=e?c:b;b=e?b:c;d={x:d,y:b,isInsidePlot:0<=d&&d<=this.plotWidth&&0<=b&&b<=this.plotHeight};r(this,"afterIsInsidePlot",d);return d.isInsidePlot};D.prototype.redraw=function(b){r(this,"beforeRedraw");var c=this,e=c.axes,a=c.series,g=c.pointer,h=c.legend,k=c.userOptions.legend,l=c.isDirtyLegend,f=c.hasCartesianSeries,m=c.isDirtyBox,p=c.renderer,w=p.isHidden(),z=[];c.setResponsive&&c.setResponsive(!1);W(c.hasRendered?b:!1,c);w&&c.temporaryDisplay();c.layOutTitles();for(b=a.length;b--;){var t=
a[b];if(t.options.stacking){var B=!0;if(t.isDirty){var q=!0;break}}}if(q)for(b=a.length;b--;)t=a[b],t.options.stacking&&(t.isDirty=!0);a.forEach(function(b){b.isDirty&&("point"===b.options.legendType?(b.updateTotals&&b.updateTotals(),l=!0):k&&(k.labelFormatter||k.labelFormat)&&(l=!0));b.isDirtyData&&r(b,"updatedData")});l&&h&&h.options.enabled&&(h.render(),c.isDirtyLegend=!1);B&&c.getStacks();f&&e.forEach(function(b){c.isResizing&&M(b.min)||(b.updateNames(),b.setScale())});c.getMargins();f&&(e.forEach(function(b){b.isDirty&&
(m=!0)}),e.forEach(function(b){var c=b.min+","+b.max;b.extKey!==c&&(b.extKey=c,z.push(function(){r(b,"afterSetExtremes",d(b.eventArgs,b.getExtremes()));delete b.eventArgs}));(m||B)&&b.redraw()}));m&&c.drawChartBox();r(c,"predraw");a.forEach(function(b){(m||b.isDirty)&&b.visible&&b.redraw();b.isDirtyData=!1});g&&g.reset(!0);p.draw();r(c,"redraw");r(c,"render");w&&c.temporaryDisplay(!0);z.forEach(function(b){b.call()})};D.prototype.get=function(b){function c(c){return c.id===b||c.options&&c.options.id===
b}var e=this.series,d;var a=x(this.axes,c)||x(this.series,c);for(d=0;!a&&d<e.length;d++)a=x(e[d].points||[],c);return a};D.prototype.getAxes=function(){var b=this,c=this.options,e=c.xAxis=aa(c.xAxis||{});c=c.yAxis=aa(c.yAxis||{});r(this,"getAxes");e.forEach(function(b,c){b.index=c;b.isX=!0});c.forEach(function(b,c){b.index=c});e.concat(c).forEach(function(c){new f(b,c)});r(this,"afterGetAxes")};D.prototype.getSelectedPoints=function(){var b=[];this.series.forEach(function(c){b=b.concat(c.getPointsCollection().filter(function(b){return z(b.selectedStaging,
b.selected)}))});return b};D.prototype.getSelectedSeries=function(){return this.series.filter(function(b){return b.selected})};D.prototype.setTitle=function(b,c,e){this.applyDescription("title",b);this.applyDescription("subtitle",c);this.applyDescription("caption",void 0);this.layOutTitles(e)};D.prototype.applyDescription=function(b,c){var d=this,a="title"===b?{color:"#333333",fontSize:this.options.isStock?"16px":"18px"}:{color:"#666666"};a=this.options[b]=e(!this.styledMode&&{style:a},this.options[b],
c);var g=this[b];g&&c&&(this[b]=g=g.destroy());a&&!g&&(g=this.renderer.text(a.text,0,0,a.useHTML).attr({align:a.align,"class":"highcharts-"+b,zIndex:a.zIndex||4}).add(),g.update=function(c){d[{title:"setTitle",subtitle:"setSubtitle",caption:"setCaption"}[b]](c)},this.styledMode||g.css(a.style),this[b]=g)};D.prototype.layOutTitles=function(b){var c=[0,0,0],e=this.renderer,a=this.spacingBox;["title","subtitle","caption"].forEach(function(b){var g=this[b],h=this.options[b],k=h.verticalAlign||"top";b=
"title"===b?-3:"top"===k?c[0]+2:0;if(g){if(!this.styledMode)var l=h.style.fontSize;l=e.fontMetrics(l,g).b;g.css({width:(h.width||a.width+(h.widthAdjust||0))+"px"});var f=Math.round(g.getBBox(h.useHTML).height);g.align(d({y:"bottom"===k?l:b+l,height:f},h),!1,"spacingBox");h.floating||("top"===k?c[0]=Math.ceil(c[0]+f):"bottom"===k&&(c[2]=Math.ceil(c[2]+f)))}},this);c[0]&&"top"===(this.options.title.verticalAlign||"top")&&(c[0]+=this.options.title.margin);c[2]&&"bottom"===this.options.caption.verticalAlign&&
(c[2]+=this.options.caption.margin);var g=!this.titleOffset||this.titleOffset.join(",")!==c.join(",");this.titleOffset=c;r(this,"afterLayOutTitles");!this.isDirtyBox&&g&&(this.isDirtyBox=this.isDirtyLegend=g,this.hasRendered&&z(b,!0)&&this.isDirtyBox&&this.redraw())};D.prototype.getChartSize=function(){var b=this.options.chart,c=b.width;b=b.height;var e=this.renderTo;h(c)||(this.containerWidth=A(e,"width"));h(b)||(this.containerHeight=A(e,"height"));this.chartWidth=Math.max(0,c||this.containerWidth||
600);this.chartHeight=Math.max(0,P(b,this.chartWidth)||(1<this.containerHeight?this.containerHeight:400))};D.prototype.temporaryDisplay=function(b){var c=this.renderTo;if(b)for(;c&&c.style;)c.hcOrigStyle&&(m(c,c.hcOrigStyle),delete c.hcOrigStyle),c.hcOrigDetached&&(v.body.removeChild(c),c.hcOrigDetached=!1),c=c.parentNode;else for(;c&&c.style;){v.body.contains(c)||c.parentNode||(c.hcOrigDetached=!0,v.body.appendChild(c));if("none"===A(c,"display",!1)||c.hcOricDetached)c.hcOrigStyle={display:c.style.display,
height:c.style.height,overflow:c.style.overflow},b={display:"block",overflow:"hidden"},c!==this.renderTo&&(b.height=0),m(c,b),c.offsetWidth||c.style.setProperty("display","block","important");c=c.parentNode;if(c===v.body)break}};D.prototype.setClassName=function(b){this.container.className="highcharts-container "+(b||"")};D.prototype.getContainer=function(){var b=this.options,c=b.chart;var e=this.renderTo;var h=ba(),k,l;e||(this.renderTo=e=c.renderTo);F(e)&&(this.renderTo=e=v.getElementById(e));e||
g(13,!0,this);var f=w(I(e,"data-highcharts-chart"));M(f)&&H[f]&&H[f].hasRendered&&H[f].destroy();I(e,"data-highcharts-chart",this.index);e.innerHTML="";c.skipClone||e.offsetWidth||this.temporaryDisplay();this.getChartSize();f=this.chartWidth;var p=this.chartHeight;m(e,{overflow:"hidden"});this.styledMode||(k=d({position:"relative",overflow:"hidden",width:f+"px",height:p+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none"},c.style));this.container=
e=u("div",{id:h},k,e);this._cursor=e.style.cursor;this.renderer=new (a[c.renderer]||a.Renderer)(e,f,p,null,c.forExport,b.exporting&&b.exporting.allowHTML,this.styledMode);W(void 0,this);this.setClassName(c.className);if(this.styledMode)for(l in b.defs)this.renderer.definition(b.defs[l]);else this.renderer.setStyle(c.style);this.renderer.chartIndex=this.index;r(this,"afterGetContainer")};D.prototype.getMargins=function(b){var c=this.spacing,e=this.margin,d=this.titleOffset;this.resetMargins();d[0]&&
!h(e[0])&&(this.plotTop=Math.max(this.plotTop,d[0]+c[0]));d[2]&&!h(e[2])&&(this.marginBottom=Math.max(this.marginBottom,d[2]+c[2]));this.legend&&this.legend.display&&this.legend.adjustMargins(e,c);r(this,"getMargins");b||this.getAxisMargins()};D.prototype.getAxisMargins=function(){var b=this,c=b.axisOffset=[0,0,0,0],e=b.colorAxis,d=b.margin,a=function(b){b.forEach(function(b){b.visible&&b.getOffset()})};b.hasCartesianSeries?a(b.axes):e&&e.length&&a(e);ca.forEach(function(e,a){h(d[a])||(b[e]+=c[a])});
b.setChartSize()};D.prototype.reflow=function(b){var c=this,e=c.options.chart,d=c.renderTo,a=h(e.width)&&h(e.height),g=e.width||A(d,"width");e=e.height||A(d,"height");d=b?b.target:q;if(!a&&!c.isPrinting&&g&&e&&(d===q||d===v)){if(g!==c.containerWidth||e!==c.containerHeight)J.clearTimeout(c.reflowTimeout),c.reflowTimeout=X(function(){c.container&&c.setSize(void 0,void 0,!1)},b?100:0);c.containerWidth=g;c.containerHeight=e}};D.prototype.setReflow=function(b){var c=this;!1===b||this.unbindReflow?!1===
b&&this.unbindReflow&&(this.unbindReflow=this.unbindReflow()):(this.unbindReflow=E(q,"resize",function(b){c.options&&c.reflow(b)}),E(this,"destroy",this.unbindReflow))};D.prototype.setSize=function(b,c,e){var d=this,a=d.renderer;d.isResizing+=1;W(e,d);e=a.globalAnimation;d.oldChartHeight=d.chartHeight;d.oldChartWidth=d.chartWidth;"undefined"!==typeof b&&(d.options.chart.width=b);"undefined"!==typeof c&&(d.options.chart.height=c);d.getChartSize();d.styledMode||(e?p:m)(d.container,{width:d.chartWidth+
"px",height:d.chartHeight+"px"},e);d.setChartSize(!0);a.setSize(d.chartWidth,d.chartHeight,e);d.axes.forEach(function(b){b.isDirty=!0;b.setScale()});d.isDirtyLegend=!0;d.isDirtyBox=!0;d.layOutTitles();d.getMargins();d.redraw(e);d.oldChartHeight=null;r(d,"resize");X(function(){d&&r(d,"endResize",null,function(){--d.isResizing})},t(e).duration)};D.prototype.setChartSize=function(b){var c=this.inverted,e=this.renderer,d=this.chartWidth,a=this.chartHeight,g=this.options.chart,h=this.spacing,k=this.clipOffset,
f,l,m,p;this.plotLeft=f=Math.round(this.plotLeft);this.plotTop=l=Math.round(this.plotTop);this.plotWidth=m=Math.max(0,Math.round(d-f-this.marginRight));this.plotHeight=p=Math.max(0,Math.round(a-l-this.marginBottom));this.plotSizeX=c?p:m;this.plotSizeY=c?m:p;this.plotBorderWidth=g.plotBorderWidth||0;this.spacingBox=e.spacingBox={x:h[3],y:h[0],width:d-h[3]-h[1],height:a-h[0]-h[2]};this.plotBox=e.plotBox={x:f,y:l,width:m,height:p};d=2*Math.floor(this.plotBorderWidth/2);c=Math.ceil(Math.max(d,k[3])/2);
e=Math.ceil(Math.max(d,k[0])/2);this.clipBox={x:c,y:e,width:Math.floor(this.plotSizeX-Math.max(d,k[1])/2-c),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(d,k[2])/2-e))};b||this.axes.forEach(function(b){b.setAxisSize();b.setAxisTranslation()});r(this,"afterSetChartSize",{skipAxes:b})};D.prototype.resetMargins=function(){r(this,"resetMargins");var b=this,c=b.options.chart;["margin","spacing"].forEach(function(e){var d=c[e],a=R(d)?d:[d,d,d,d];["Top","Right","Bottom","Left"].forEach(function(d,
g){b[e][g]=z(c[e+d],a[g])})});ca.forEach(function(c,e){b[c]=z(b.margin[e],b.spacing[e])});b.axisOffset=[0,0,0,0];b.clipOffset=[0,0,0,0]};D.prototype.drawChartBox=function(){var b=this.options.chart,c=this.renderer,e=this.chartWidth,d=this.chartHeight,a=this.chartBackground,g=this.plotBackground,h=this.plotBorder,k=this.styledMode,f=this.plotBGImage,l=b.backgroundColor,m=b.plotBackgroundColor,p=b.plotBackgroundImage,w,z=this.plotLeft,t=this.plotTop,B=this.plotWidth,q=this.plotHeight,x=this.plotBox,
u=this.clipRect,A=this.clipBox,F="animate";a||(this.chartBackground=a=c.rect().addClass("highcharts-background").add(),F="attr");if(k)var n=w=a.strokeWidth();else{n=b.borderWidth||0;w=n+(b.shadow?8:0);l={fill:l||"none"};if(n||a["stroke-width"])l.stroke=b.borderColor,l["stroke-width"]=n;a.attr(l).shadow(b.shadow)}a[F]({x:w/2,y:w/2,width:e-w-n%2,height:d-w-n%2,r:b.borderRadius});F="animate";g||(F="attr",this.plotBackground=g=c.rect().addClass("highcharts-plot-background").add());g[F](x);k||(g.attr({fill:m||
"none"}).shadow(b.plotShadow),p&&(f?(p!==f.attr("href")&&f.attr("href",p),f.animate(x)):this.plotBGImage=c.image(p,z,t,B,q).add()));u?u.animate({width:A.width,height:A.height}):this.clipRect=c.clipRect(A);F="animate";h||(F="attr",this.plotBorder=h=c.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add());k||h.attr({stroke:b.plotBorderColor,"stroke-width":b.plotBorderWidth||0,fill:"none"});h[F](h.crisp({x:z,y:t,width:B,height:q},-h.strokeWidth()));this.isDirtyBox=!1;r(this,"afterDrawChartBox")};
D.prototype.propFromSeries=function(){var b=this,c=b.options.chart,e,d=b.options.series,a,g;["inverted","angular","polar"].forEach(function(h){e=L[c.type||c.defaultSeriesType];g=c[h]||e&&e.prototype[h];for(a=d&&d.length;!g&&a--;)(e=L[d[a].type])&&e.prototype[h]&&(g=!0);b[h]=g})};D.prototype.linkSeries=function(){var b=this,c=b.series;c.forEach(function(b){b.linkedSeries.length=0});c.forEach(function(c){var e=c.options.linkedTo;F(e)&&(e=":previous"===e?b.series[c.index-1]:b.get(e))&&e.linkedParent!==
c&&(e.linkedSeries.push(c),c.linkedParent=e,e.enabledDataSorting&&c.setDataSortingOptions(),c.visible=z(c.options.visible,e.options.visible,c.visible))});r(this,"afterLinkSeries")};D.prototype.renderSeries=function(){this.series.forEach(function(b){b.translate();b.render()})};D.prototype.renderLabels=function(){var b=this,c=b.options.labels;c.items&&c.items.forEach(function(e){var a=d(c.style,e.style),g=w(a.left)+b.plotLeft,h=w(a.top)+b.plotTop+12;delete a.left;delete a.top;b.renderer.text(e.html,
g,h).attr({zIndex:2}).css(a).add()})};D.prototype.render=function(){var b=this.axes,c=this.colorAxis,e=this.renderer,d=this.options,a=0,g=function(b){b.forEach(function(b){b.visible&&b.render()})};this.setTitle();this.legend=new n(this,d.legend);this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();d=this.plotWidth;b.some(function(b){if(b.horiz&&b.visible&&b.options.labels.enabled&&b.series.length)return a=21,!0});var h=this.plotHeight=Math.max(this.plotHeight-a,0);b.forEach(function(b){b.setScale()});
this.getAxisMargins();var k=1.1<d/this.plotWidth;var l=1.05<h/this.plotHeight;if(k||l)b.forEach(function(b){(b.horiz&&k||!b.horiz&&l)&&b.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries?g(b):c&&c.length&&g(c);this.seriesGroup||(this.seriesGroup=e.g("series-group").attr({zIndex:3}).add());this.renderSeries();this.renderLabels();this.addCredits();this.setResponsive&&this.setResponsive();this.updateContainerScaling();this.hasRendered=!0};D.prototype.addCredits=function(b){var c=
this,d=e(!0,this.options.credits,b);d.enabled&&!this.credits&&(this.credits=this.renderer.text(d.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){d.href&&(q.location.href=d.href)}).attr({align:d.position.align,zIndex:8}),c.styledMode||this.credits.css(d.style),this.credits.add().align(d.position),this.credits.update=function(b){c.credits=c.credits.destroy();c.addCredits(b)})};D.prototype.updateContainerScaling=function(){var b=this.container;if(2<b.offsetWidth&&
2<b.offsetHeight&&b.getBoundingClientRect){var c=b.getBoundingClientRect(),e=c.width/b.offsetWidth;b=c.height/b.offsetHeight;1!==e||1!==b?this.containerScaling={scaleX:e,scaleY:b}:delete this.containerScaling}};D.prototype.destroy=function(){var c=this,e=c.axes,d=c.series,g=c.container,h,f=g&&g.parentNode;r(c,"destroy");c.renderer.forExport?k(H,c):H[c.index]=void 0;a.chartCount--;c.renderTo.removeAttribute("data-highcharts-chart");Z(c);for(h=e.length;h--;)e[h]=e[h].destroy();this.scroller&&this.scroller.destroy&&
this.scroller.destroy();for(h=d.length;h--;)d[h]=d[h].destroy();"title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer".split(" ").forEach(function(b){var e=c[b];e&&e.destroy&&(c[b]=e.destroy())});g&&(g.innerHTML="",Z(g),f&&l(g));b(c,function(b,e){delete c[e]})};D.prototype.firstRender=function(){var b=this,c=b.options;if(!b.isReadyToRender||b.isReadyToRender()){b.getContainer();b.resetMargins();
b.setChartSize();b.propFromSeries();b.getAxes();(N(c.series)?c.series:[]).forEach(function(c){b.initSeries(c)});b.linkSeries();b.setSeriesData();r(b,"beforeRender");G&&(b.pointer=a.hasTouch||!q.PointerEvent&&!q.MSPointerEvent?new G(b,c):new y(b,c));b.render();if(!b.renderer.imgCount&&!b.hasLoaded)b.onload();b.temporaryDisplay(!0)}};D.prototype.onload=function(){this.callbacks.concat([this.callback]).forEach(function(b){b&&"undefined"!==typeof this.index&&b.apply(this,[this])},this);r(this,"load");
r(this,"render");h(this.index)&&this.setReflow(this.options.chart.reflow);this.hasLoaded=!0};return D}();Y.prototype.callbacks=[];a.chart=function(b,c,e){return new Y(b,c,e)};return a.Chart=Y});O(n,"Extensions/ScrollablePlotArea.js",[n["Core/Chart/Chart.js"],n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a,n){var y=n.addEvent,D=n.createElement,G=n.pick,C=n.stop;"";y(f,"afterSetChartSize",function(f){var n=this.options.chart.scrollablePlotArea,v=n&&n.minWidth;n=n&&n.minHeight;if(!this.renderer.forExport){if(v){if(this.scrollablePixelsX=
v=Math.max(0,v-this.chartWidth)){this.plotWidth+=v;this.inverted?(this.clipBox.height+=v,this.plotBox.height+=v):(this.clipBox.width+=v,this.plotBox.width+=v);var C={1:{name:"right",value:v}}}}else n&&(this.scrollablePixelsY=v=Math.max(0,n-this.chartHeight))&&(this.plotHeight+=v,this.inverted?(this.clipBox.width+=v,this.plotBox.width+=v):(this.clipBox.height+=v,this.plotBox.height+=v),C={2:{name:"bottom",value:v}});C&&!f.skipAxes&&this.axes.forEach(function(f){C[f.side]?f.getPlotLinePath=function(){var q=
C[f.side].name,n=this[q];this[q]=n-C[f.side].value;var p=a.Axis.prototype.getPlotLinePath.apply(this,arguments);this[q]=n;return p}:(f.setAxisSize(),f.setAxisTranslation())})}});y(f,"render",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()});f.prototype.setUpScrolling=function(){var a=this,f={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};this.scrollablePixelsX&&(f.overflowX=
"auto");this.scrollablePixelsY&&(f.overflowY="auto");this.scrollingParent=D("div",{className:"highcharts-scrolling-parent"},{position:"relative"},this.renderTo);this.scrollingContainer=D("div",{className:"highcharts-scrolling"},f,this.scrollingParent);y(this.scrollingContainer,"scroll",function(){a.pointer&&delete a.pointer.chartPosition});this.innerContainer=D("div",{className:"highcharts-inner-container"},null,this.scrollingContainer);this.innerContainer.appendChild(this.container);this.setUpScrolling=
null};f.prototype.moveFixedElements=function(){var a=this.container,f=this.fixedRenderer,n=".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-scrollbar .highcharts-subtitle .highcharts-title".split(" "),C;this.scrollablePixelsX&&!this.inverted?C=".highcharts-yaxis":this.scrollablePixelsX&&this.inverted?C=".highcharts-xaxis":
this.scrollablePixelsY&&!this.inverted?C=".highcharts-xaxis":this.scrollablePixelsY&&this.inverted&&(C=".highcharts-yaxis");n.push(C,C+"-labels");n.forEach(function(q){[].forEach.call(a.querySelectorAll(q),function(a){(a.namespaceURI===f.SVG_NS?f.box:f.box.parentNode).appendChild(a);a.style.pointerEvents="auto"})})};f.prototype.applyFixed=function(){var f,n,v=!this.fixedDiv,L=this.options.chart.scrollablePlotArea;v?(this.fixedDiv=D("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",
pointerEvents:"none",zIndex:2,top:0},null,!0),null===(f=this.scrollingContainer)||void 0===f?void 0:f.parentNode.insertBefore(this.fixedDiv,this.scrollingContainer),this.renderTo.style.overflow="visible",this.fixedRenderer=f=new a.Renderer(this.fixedDiv,this.chartWidth,this.chartHeight,null===(n=this.options.chart)||void 0===n?void 0:n.style),this.scrollableMask=f.path().attr({fill:this.options.chart.backgroundColor||"#fff","fill-opacity":G(L.opacity,.85),zIndex:-1}).addClass("highcharts-scrollable-mask").add(),
this.moveFixedElements(),y(this,"afterShowResetZoom",this.moveFixedElements),y(this,"afterLayOutTitles",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight);n=this.chartWidth+(this.scrollablePixelsX||0);f=this.chartHeight+(this.scrollablePixelsY||0);C(this.container);this.container.style.width=n+"px";this.container.style.height=f+"px";this.renderer.boxWrapper.attr({width:n,height:f,viewBox:[0,0,n,f].join(" ")});this.chartBackground.attr({width:n,height:f});this.scrollingContainer.style.height=
this.chartHeight+"px";v&&(L.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*L.scrollPositionX),L.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*L.scrollPositionY));f=this.axisOffset;v=this.plotTop-f[0]-1;L=this.plotLeft-f[3]-1;n=this.plotTop+this.plotHeight+f[2]+1;f=this.plotLeft+this.plotWidth+f[1]+1;var q=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),K=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);v=this.scrollablePixelsX?
[["M",0,v],["L",this.plotLeft-1,v],["L",this.plotLeft-1,n],["L",0,n],["Z"],["M",q,v],["L",this.chartWidth,v],["L",this.chartWidth,n],["L",q,n],["Z"]]:this.scrollablePixelsY?[["M",L,0],["L",L,this.plotTop-1],["L",f,this.plotTop-1],["L",f,0],["Z"],["M",L,K],["L",L,this.chartHeight],["L",f,this.chartHeight],["L",f,K],["Z"]]:[["M",0,0]];"adjustHeight"!==this.redrawTrigger&&this.scrollableMask.attr({d:v})}});O(n,"Core/Axis/StackingAxis.js",[n["Core/Utilities.js"]],function(f){var a=f.addEvent,n=f.destroyObjectProperties,
y=f.fireEvent,D=f.getDeferredAnimation,G=f.objectEach,C=f.pick,J=function(){function a(a){this.oldStacks={};this.stacks={};this.stacksTouched=0;this.axis=a}a.prototype.buildStacks=function(){var a=this.axis,f=a.series,q=C(a.options.reversedStacks,!0),n=f.length,E;if(!a.isXAxis){this.usePercentage=!1;for(E=n;E--;){var p=f[q?E:n-E-1];p.setStackedPoints();p.setGroupedPoints()}for(E=0;E<n;E++)f[E].modifyStacks();y(a,"afterBuildStacks")}};a.prototype.cleanStacks=function(){if(!this.axis.isXAxis){if(this.oldStacks)var a=
this.stacks=this.oldStacks;G(a,function(a){G(a,function(a){a.cumulative=a.total})})}};a.prototype.resetStacks=function(){var a=this,f=a.stacks;a.axis.isXAxis||G(f,function(f){G(f,function(q,n){q.touched<a.stacksTouched?(q.destroy(),delete f[n]):(q.total=null,q.cumulative=null)})})};a.prototype.renderStackTotals=function(){var a=this.axis,f=a.chart,q=f.renderer,n=this.stacks;a=D(f,a.options.stackLabels.animation);var E=this.stackTotalGroup=this.stackTotalGroup||q.g("stack-labels").attr({visibility:"visible",
zIndex:6,opacity:0}).add();E.translate(f.plotLeft,f.plotTop);G(n,function(a){G(a,function(a){a.render(E)})});E.animate({opacity:1},a)};return a}();return function(){function f(){}f.compose=function(n){a(n,"init",f.onInit);a(n,"destroy",f.onDestroy)};f.onDestroy=function(){var a=this.stacking;if(a){var f=a.stacks;G(f,function(a,v){n(a);f[v]=null});a&&a.stackTotalGroup&&a.stackTotalGroup.destroy()}};f.onInit=function(){this.stacking||(this.stacking=new J(this))};return f}()});O(n,"Mixins/LegendSymbol.js",
[n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a){var n=a.merge,y=a.pick;return f.LegendSymbolMixin={drawRectangle:function(a,f){var n=a.symbolHeight,D=a.options.squareSymbol;f.legendSymbol=this.chart.renderer.rect(D?(a.symbolWidth-n)/2:0,a.baseline-n+1,D?n:a.symbolWidth,n,y(a.options.symbolRadius,n/2)).addClass("highcharts-point").attr({zIndex:3}).add(f.legendGroup)},drawLineMarker:function(a){var f=this.options,C=f.marker,D=a.symbolWidth,H=a.symbolHeight,v=H/2,L=this.chart.renderer,q=
this.legendGroup;a=a.baseline-Math.round(.3*a.fontMetrics.b);var K={};this.chart.styledMode||(K={"stroke-width":f.lineWidth||0},f.dashStyle&&(K.dashstyle=f.dashStyle));this.legendLine=L.path([["M",0,a],["L",D,a]]).addClass("highcharts-graph").attr(K).add(q);C&&!1!==C.enabled&&D&&(f=Math.min(y(C.radius,v),v),0===this.symbol.indexOf("url")&&(C=n(C,{width:H,height:H}),f=0),this.legendSymbol=C=L.symbol(this.symbol,D/2-f,a-f,2*f,2*f,C).addClass("highcharts-point").add(q),C.isMarker=!0)}}});O(n,"Core/Series/Point.js",
[n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a){var n=a.animObject,y=a.defined,D=a.erase,G=a.extend,C=a.fireEvent,J=a.format,H=a.getNestedProperty,v=a.isArray,L=a.isNumber,q=a.isObject,K=a.syncTimeout,E=a.pick,p=a.removeEvent,t=a.uniqueKey;"";a=function(){function a(){this.colorIndex=this.category=void 0;this.formatPrefix="point";this.id=void 0;this.isNull=!1;this.percentage=this.options=this.name=void 0;this.selected=!1;this.total=this.series=void 0;this.visible=!0;this.x=void 0}a.prototype.animateBeforeDestroy=
function(){var a=this,f={x:a.startXPos,opacity:0},h,l=a.getGraphicalProps();l.singular.forEach(function(k){h="dataLabel"===k;a[k]=a[k].animate(h?{x:a[k].startXPos,y:a[k].startYPos,opacity:0}:f)});l.plural.forEach(function(h){a[h].forEach(function(g){g.element&&g.animate(G({x:a.startXPos},g.startYPos?{x:g.startXPos,y:g.startYPos}:{}))})})};a.prototype.applyOptions=function(f,m){var h=this.series,l=h.options.pointValKey||h.pointValKey;f=a.prototype.optionsToObject.call(this,f);G(this,f);this.options=
this.options?G(this.options,f):f;f.group&&delete this.group;f.dataLabels&&delete this.dataLabels;l&&(this.y=a.prototype.getNestedProperty.call(this,l));this.formatPrefix=(this.isNull=E(this.isValid&&!this.isValid(),null===this.x||!L(this.y)))?"null":"point";this.selected&&(this.state="select");"name"in this&&"undefined"===typeof m&&h.xAxis&&h.xAxis.hasNames&&(this.x=h.xAxis.nameToX(this));"undefined"===typeof this.x&&h&&(this.x="undefined"===typeof m?h.autoIncrement(this):m);return this};a.prototype.destroy=
function(){function a(){if(f.graphic||f.dataLabel||f.dataLabels)p(f),f.destroyElements();for(d in f)f[d]=null}var f=this,h=f.series,l=h.chart;h=h.options.dataSorting;var k=l.hoverPoints,g=n(f.series.chart.renderer.globalAnimation),d;f.legendItem&&l.legend.destroyItem(f);k&&(f.setState(),D(k,f),k.length||(l.hoverPoints=null));if(f===l.hoverPoint)f.onMouseOut();h&&h.enabled?(this.animateBeforeDestroy(),K(a,g.duration)):a();l.pointCount--};a.prototype.destroyElements=function(a){var f=this;a=f.getGraphicalProps(a);
a.singular.forEach(function(a){f[a]=f[a].destroy()});a.plural.forEach(function(a){f[a].forEach(function(a){a.element&&a.destroy()});delete f[a]})};a.prototype.firePointEvent=function(a,f,h){var l=this,k=this.series.options;(k.point.events[a]||l.options&&l.options.events&&l.options.events[a])&&l.importEvents();"click"===a&&k.allowPointSelect&&(h=function(a){l.select&&l.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});C(l,a,f,h)};a.prototype.getClassName=function(){return"highcharts-point"+(this.selected?
" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+("undefined"!==typeof this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")};a.prototype.getGraphicalProps=function(a){var f=this,h=[],l,k={singular:[],plural:[]};a=a||{graphic:1,dataLabel:1};a.graphic&&h.push("graphic","shadowGroup");
a.dataLabel&&h.push("dataLabel","dataLabelUpper","connector");for(l=h.length;l--;){var g=h[l];f[g]&&k.singular.push(g)}["dataLabel","connector"].forEach(function(d){var g=d+"s";a[d]&&f[g]&&k.plural.push(g)});return k};a.prototype.getLabelConfig=function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}};a.prototype.getNestedProperty=function(a){if(a)return 0===
a.indexOf("custom.")?H(a,this.options):this[a]};a.prototype.getZone=function(){var a=this.series,f=a.zones;a=a.zoneAxis||"y";var h=0,l;for(l=f[h];this[a]>=l.value;)l=f[++h];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=l&&l.color&&!this.options.color?l.color:this.nonZonedColor;return l};a.prototype.hasNewShapeType=function(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType};a.prototype.init=function(a,f,h){this.series=a;this.applyOptions(f,
h);this.id=y(this.id)?this.id:t();this.resolveColor();a.chart.pointCount++;C(this,"afterInit");return this};a.prototype.optionsToObject=function(f){var m={},h=this.series,l=h.options.keys,k=l||h.pointArrayMap||["y"],g=k.length,d=0,p=0;if(L(f)||null===f)m[k[0]]=f;else if(v(f))for(!l&&f.length>g&&(h=typeof f[0],"string"===h?m.name=f[0]:"number"===h&&(m.x=f[0]),d++);p<g;)l&&"undefined"===typeof f[d]||(0<k[p].indexOf(".")?a.prototype.setNestedProperty(m,f[d],k[p]):m[k[p]]=f[d]),d++,p++;else"object"===
typeof f&&(m=f,f.dataLabels&&(h._hasPointLabels=!0),f.marker&&(h._hasPointMarkers=!0));return m};a.prototype.resolveColor=function(){var a=this.series;var f=a.chart.options.chart.colorCount;var h=a.chart.styledMode;delete this.nonZonedColor;h||this.options.color||(this.color=a.color);a.options.colorByPoint?(h||(f=a.options.colors||a.chart.options.colors,this.color=this.color||f[a.colorCounter],f=f.length),h=a.colorCounter,a.colorCounter++,a.colorCounter===f&&(a.colorCounter=0)):h=a.colorIndex;this.colorIndex=
E(this.colorIndex,h)};a.prototype.setNestedProperty=function(a,f,h){h.split(".").reduce(function(a,h,g,d){a[h]=d.length-1===g?f:q(a[h],!0)?a[h]:{};return a[h]},a);return a};a.prototype.tooltipFormatter=function(a){var f=this.series,h=f.tooltipOptions,l=E(h.valueDecimals,""),k=h.valuePrefix||"",g=h.valueSuffix||"";f.chart.styledMode&&(a=f.chart.tooltip.styledModeFormat(a));(f.pointArrayMap||["y"]).forEach(function(d){d="{point."+d;if(k||g)a=a.replace(RegExp(d+"}","g"),k+d+"}"+g);a=a.replace(RegExp(d+
"}","g"),d+":,."+l+"f}")});return J(a,{point:this,series:this.series},f.chart)};return a}();return f.Point=a});O(n,"Core/Series/Series.js",[n["Core/Globals.js"],n["Mixins/LegendSymbol.js"],n["Core/Options.js"],n["Core/Series/Point.js"],n["Core/Renderer/SVG/SVGElement.js"],n["Core/Utilities.js"]],function(f,a,n,y,D,G){var C=n.defaultOptions,J=G.addEvent,H=G.animObject,v=G.arrayMax,L=G.arrayMin,q=G.clamp,K=G.correctFloat,E=G.defined,p=G.erase,t=G.error,I=G.extend,u=G.find,m=G.fireEvent,h=G.getNestedProperty,
l=G.isArray,k=G.isFunction,g=G.isNumber,d=G.isString,x=G.merge,r=G.objectEach,A=G.pick,N=G.removeEvent;n=G.seriesType;var B=G.splat,M=G.syncTimeout;"";var R=f.seriesTypes,F=f.win;f.Series=n("line",null,{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",
lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",defer:!0,formatter:function(){var e=this.series.chart.numberFormatter;return"number"!==typeof this.y?"":e(this.y,-1)},padding:5,style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},
inactive:{animation:{duration:50},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:"x"},{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,cropShoulder:1,directTouch:!1,isCartesian:!0,parallelArrays:["x","y"],pointClass:y,requireSorting:!0,sorted:!0,init:function(e,c){m(this,"init",{options:c});var b=this,a=e.series,d;this.eventOptions=this.eventOptions||{};this.eventsToUnbind=[];b.chart=e;b.options=c=b.setOptions(c);b.linkedSeries=[];b.bindAxes();I(b,{name:c.name,state:"",
visible:!1!==c.visible,selected:!0===c.selected});var g=c.events;r(g,function(c,e){k(c)&&b.eventOptions[e]!==c&&(k(b.eventOptions[e])&&N(b,e,b.eventOptions[e]),b.eventOptions[e]=c,J(b,e,c))});if(g&&g.click||c.point&&c.point.events&&c.point.events.click||c.allowPointSelect)e.runTrackerClick=!0;b.getColor();b.getSymbol();b.parallelArrays.forEach(function(c){b[c+"Data"]||(b[c+"Data"]=[])});b.isCartesian&&(e.hasCartesianSeries=!0);a.length&&(d=a[a.length-1]);b._i=A(d&&d._i,-1)+1;b.opacity=b.options.opacity;
e.orderSeries(this.insert(a));c.dataSorting&&c.dataSorting.enabled?b.setDataSortingOptions():b.points||b.data||b.setData(c.data,!1);m(this,"afterInit")},is:function(e){return R[e]&&this instanceof R[e]},insert:function(e){var c=this.options.index,b;if(g(c)){for(b=e.length;b--;)if(c>=A(e[b].options.index,e[b]._i)){e.splice(b+1,0,this);break}-1===b&&e.unshift(this);b+=1}else e.push(this);return A(b,e.length-1)},bindAxes:function(){var e=this,c=e.options,b=e.chart,a;m(this,"bindAxes",null,function(){(e.axisTypes||
[]).forEach(function(d){b[d].forEach(function(b){a=b.options;if(c[d]===a.index||"undefined"!==typeof c[d]&&c[d]===a.id||"undefined"===typeof c[d]&&0===a.index)e.insert(b.series),e[d]=b,b.isDirty=!0});e[d]||e.optionalAxis===d||t(18,!0,b)})});m(this,"afterBindAxes")},updateParallelArrays:function(e,c){var b=e.series,a=arguments,d=g(c)?function(a){var d="y"===a&&b.toYData?b.toYData(e):e[a];b[a+"Data"][c]=d}:function(e){Array.prototype[c].apply(b[e+"Data"],Array.prototype.slice.call(a,2))};b.parallelArrays.forEach(d)},
hasData:function(){return this.visible&&"undefined"!==typeof this.dataMax&&"undefined"!==typeof this.dataMin||this.visible&&this.yData&&0<this.yData.length},autoIncrement:function(){var e=this.options,c=this.xIncrement,b,a=e.pointIntervalUnit,d=this.chart.time;c=A(c,e.pointStart,0);this.pointInterval=b=A(this.pointInterval,e.pointInterval,1);a&&(e=new d.Date(c),"day"===a?d.set("Date",e,d.get("Date",e)+b):"month"===a?d.set("Month",e,d.get("Month",e)+b):"year"===a&&d.set("FullYear",e,d.get("FullYear",
e)+b),b=e.getTime()-c);this.xIncrement=c+b;return c},setDataSortingOptions:function(){var e=this.options;I(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1});E(e.pointRange)||(e.pointRange=1)},setOptions:function(e){var c=this.chart,b=c.options,a=b.plotOptions,d=c.userOptions||{};e=x(e);c=c.styledMode;var g={plotOptions:a,userOptions:e};m(this,"setOptions",g);var h=g.plotOptions[this.type],f=d.plotOptions||{};this.userOptions=g.userOptions;d=x(h,a.series,d.plotOptions&&d.plotOptions[this.type],
e);this.tooltipOptions=x(C.tooltip,C.plotOptions.series&&C.plotOptions.series.tooltip,C.plotOptions[this.type].tooltip,b.tooltip.userOptions,a.series&&a.series.tooltip,a[this.type].tooltip,e.tooltip);this.stickyTracking=A(e.stickyTracking,f[this.type]&&f[this.type].stickyTracking,f.series&&f.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:d.stickyTracking);null===h.marker&&delete d.marker;this.zoneAxis=d.zoneAxis;b=this.zones=(d.zones||[]).slice();!d.negativeColor&&!d.negativeFillColor||
d.zones||(a={value:d[this.zoneAxis+"Threshold"]||d.threshold||0,className:"highcharts-negative"},c||(a.color=d.negativeColor,a.fillColor=d.negativeFillColor),b.push(a));b.length&&E(b[b.length-1].value)&&b.push(c?{}:{color:this.color,fillColor:this.fillColor});m(this,"afterSetOptions",{options:d});return d},getName:function(){return A(this.options.name,"Series "+(this.index+1))},getCyclic:function(e,c,b){var a=this.chart,d=this.userOptions,g=e+"Index",h=e+"Counter",f=b?b.length:A(a.options.chart[e+
"Count"],a[e+"Count"]);if(!c){var k=A(d[g],d["_"+g]);E(k)||(a.series.length||(a[h]=0),d["_"+g]=k=a[h]%f,a[h]+=1);b&&(c=b[k])}"undefined"!==typeof k&&(this[g]=k);this[e]=c},getColor:function(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||C.plotOptions[this.type].color,this.chart.options.colors)},getPointsCollection:function(){return(this.hasGroupedData?this.points:this.data)||[]},getSymbol:function(){this.getCyclic("symbol",
this.options.marker.symbol,this.chart.options.symbols)},findPointIndex:function(e,c){var b=e.id,a=e.x,d=this.points,h,f=this.options.dataSorting;if(b)var k=this.chart.get(b);else if(this.linkedParent||this.enabledDataSorting){var l=f&&f.matchByName?"name":"index";k=u(d,function(b){return!b.touched&&b[l]===e[l]});if(!k)return}if(k){var m=k&&k.index;"undefined"!==typeof m&&(h=!0)}"undefined"===typeof m&&g(a)&&(m=this.xData.indexOf(a,c));-1!==m&&"undefined"!==typeof m&&this.cropped&&(m=m>=this.cropStart?
m-this.cropStart:m);!h&&d[m]&&d[m].touched&&(m=void 0);return m},drawLegendSymbol:a.drawLineMarker,updateData:function(e,c){var b=this.options,a=b.dataSorting,d=this.points,h=[],f,k,l,m=this.requireSorting,p=e.length===d.length,r=!0;this.xIncrement=null;e.forEach(function(c,e){var k=E(c)&&this.pointClass.prototype.optionsToObject.call({series:this},c)||{};var w=k.x;if(k.id||g(w)){if(w=this.findPointIndex(k,l),-1===w||"undefined"===typeof w?h.push(c):d[w]&&c!==b.data[w]?(d[w].update(c,!1,null,!1),
d[w].touched=!0,m&&(l=w+1)):d[w]&&(d[w].touched=!0),!p||e!==w||a&&a.enabled||this.hasDerivedData)f=!0}else h.push(c)},this);if(f)for(e=d.length;e--;)(k=d[e])&&!k.touched&&k.remove&&k.remove(!1,c);else!p||a&&a.enabled?r=!1:(e.forEach(function(b,c){d[c].update&&b!==d[c].y&&d[c].update(b,!1,null,!1)}),h.length=0);d.forEach(function(b){b&&(b.touched=!1)});if(!r)return!1;h.forEach(function(b){this.addPoint(b,!1,null,null,!1)},this);null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=
v(this.xData),this.autoIncrement());return!0},setData:function(e,c,b,a){var h=this,f=h.points,k=f&&f.length||0,m,p=h.options,r=h.chart,B=p.dataSorting,z=null,n=h.xAxis;z=p.turboThreshold;var q=this.xData,x=this.yData,F=(m=h.pointArrayMap)&&m.length,M=p.keys,v=0,u=1,I;e=e||[];m=e.length;c=A(c,!0);B&&B.enabled&&(e=this.sortData(e));!1!==a&&m&&k&&!h.cropped&&!h.hasGroupedData&&h.visible&&!h.isSeriesBoosting&&(I=this.updateData(e,b));if(!I){h.xIncrement=null;h.colorCounter=0;this.parallelArrays.forEach(function(b){h[b+
"Data"].length=0});if(z&&m>z)if(z=h.getFirstValidPoint(e),g(z))for(b=0;b<m;b++)q[b]=this.autoIncrement(),x[b]=e[b];else if(l(z))if(F)for(b=0;b<m;b++)a=e[b],q[b]=a[0],x[b]=a.slice(1,F+1);else for(M&&(v=M.indexOf("x"),u=M.indexOf("y"),v=0<=v?v:0,u=0<=u?u:1),b=0;b<m;b++)a=e[b],q[b]=a[v],x[b]=a[u];else t(12,!1,r);else for(b=0;b<m;b++)"undefined"!==typeof e[b]&&(a={series:h},h.pointClass.prototype.applyOptions.apply(a,[e[b]]),h.updateParallelArrays(a,b));x&&d(x[0])&&t(14,!0,r);h.data=[];h.options.data=
h.userOptions.data=e;for(b=k;b--;)f[b]&&f[b].destroy&&f[b].destroy();n&&(n.minRange=n.userMinRange);h.isDirty=r.isDirtyBox=!0;h.isDirtyData=!!f;b=!1}"point"===p.legendType&&(this.processData(),this.generatePoints());c&&r.redraw(b)},sortData:function(e){var c=this,b=c.options.dataSorting.sortKey||"y",a=function(b,c){return E(c)&&b.pointClass.prototype.optionsToObject.call({series:b},c)||{}};e.forEach(function(b,d){e[d]=a(c,b);e[d].index=d},this);e.concat().sort(function(c,e){c=h(b,c);e=h(b,e);return e<
c?-1:e>c?1:0}).forEach(function(b,c){b.x=c},this);c.linkedSeries&&c.linkedSeries.forEach(function(b){var c=b.options,d=c.data;c.dataSorting&&c.dataSorting.enabled||!d||(d.forEach(function(c,g){d[g]=a(b,c);e[g]&&(d[g].x=e[g].x,d[g].index=g)}),b.setData(d,!1))});return e},getProcessedData:function(e){var c=this.xData,b=this.yData,a=c.length;var d=0;var g=this.xAxis,h=this.options;var f=h.cropThreshold;var k=e||this.getExtremesFromAll||h.getExtremesFromAll,l=this.isCartesian;e=g&&g.val2lin;h=!(!g||!g.logarithmic);
var m=this.requireSorting;if(g){g=g.getExtremes();var p=g.min;var r=g.max}if(l&&this.sorted&&!k&&(!f||a>f||this.forceCrop))if(c[a-1]<p||c[0]>r)c=[],b=[];else if(this.yData&&(c[0]<p||c[a-1]>r)){d=this.cropData(this.xData,this.yData,p,r);c=d.xData;b=d.yData;d=d.start;var B=!0}for(f=c.length||1;--f;)if(a=h?e(c[f])-e(c[f-1]):c[f]-c[f-1],0<a&&("undefined"===typeof n||a<n))var n=a;else 0>a&&m&&(t(15,!1,this.chart),m=!1);return{xData:c,yData:b,cropped:B,cropStart:d,closestPointRange:n}},processData:function(e){var c=
this.xAxis;if(this.isCartesian&&!this.isDirty&&!c.isDirty&&!this.yAxis.isDirty&&!e)return!1;e=this.getProcessedData();this.cropped=e.cropped;this.cropStart=e.cropStart;this.processedXData=e.xData;this.processedYData=e.yData;this.closestPointRange=this.basePointRange=e.closestPointRange},cropData:function(e,c,b,a,d){var g=e.length,h=0,f=g,k;d=A(d,this.cropShoulder);for(k=0;k<g;k++)if(e[k]>=b){h=Math.max(0,k-d);break}for(b=k;b<g;b++)if(e[b]>a){f=b+d;break}return{xData:e.slice(h,f),yData:c.slice(h,f),
start:h,end:f}},generatePoints:function(){var e=this.options,c=e.data,b=this.data,a,d=this.processedXData,g=this.processedYData,h=this.pointClass,f=d.length,k=this.cropStart||0,l=this.hasGroupedData;e=e.keys;var p=[],r;b||l||(b=[],b.length=c.length,b=this.data=b);e&&l&&(this.options.keys=!1);for(r=0;r<f;r++){var t=k+r;if(l){var n=(new h).init(this,[d[r]].concat(B(g[r])));n.dataGroup=this.groupMap[r];n.dataGroup.options&&(n.options=n.dataGroup.options,I(n,n.dataGroup.options),delete n.dataLabels)}else(n=
b[t])||"undefined"===typeof c[t]||(b[t]=n=(new h).init(this,c[t],d[r]));n&&(n.index=t,p[r]=n)}this.options.keys=e;if(b&&(f!==(a=b.length)||l))for(r=0;r<a;r++)r!==k||l||(r+=f),b[r]&&(b[r].destroyElements(),b[r].plotX=void 0);this.data=b;this.points=p;m(this,"afterGeneratePoints")},getXExtremes:function(e){return{min:L(e),max:v(e)}},getExtremes:function(e,c){var b=this.xAxis,a=this.yAxis,d=this.processedXData||this.xData,h=[],f=0,k=0;var p=0;var r=this.requireSorting?this.cropShoulder:0,t=a?a.positiveValuesOnly:
!1,B;e=e||this.stackedYData||this.processedYData||[];a=e.length;b&&(p=b.getExtremes(),k=p.min,p=p.max);for(B=0;B<a;B++){var n=d[B];var q=e[B];var x=(g(q)||l(q))&&(q.length||0<q||!t);n=c||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!b||(d[B+r]||n)>=k&&(d[B-r]||n)<=p;if(x&&n)if(x=q.length)for(;x--;)g(q[x])&&(h[f++]=q[x]);else h[f++]=q}e={dataMin:L(h),dataMax:v(h)};m(this,"afterGetExtremes",{dataExtremes:e});return e},applyExtremes:function(){var e=this.getExtremes();this.dataMin=
e.dataMin;this.dataMax=e.dataMax;return e},getFirstValidPoint:function(e){for(var c=null,b=e.length,a=0;null===c&&a<b;)c=e[a],a++;return c},translate:function(){this.processedXData||this.processData();this.generatePoints();var e=this.options,c=e.stacking,b=this.xAxis,a=b.categories,d=this.enabledDataSorting,h=this.yAxis,f=this.points,k=f.length,p=!!this.modifyValue,r,t=this.pointPlacementToXValue(),B=!!t,n=e.threshold,x=e.startFromThreshold?n:0,F,M=this.zoneAxis||"y",v=Number.MAX_VALUE;for(r=0;r<
k;r++){var u=f[r],I=u.x,C=u.y,H=u.low,R=c&&h.stacking&&h.stacking.stacks[(this.negStacks&&C<(x?0:n)?"-":"")+this.stackKey];if(h.positiveValuesOnly&&!h.validatePositiveValue(C)||b.positiveValuesOnly&&!b.validatePositiveValue(I))u.isNull=!0;u.plotX=F=K(q(b.translate(I,0,0,0,1,t,"flags"===this.type),-1E5,1E5));if(c&&this.visible&&R&&R[I]){var y=this.getStackIndicator(y,I,this.index);if(!u.isNull){var N=R[I];var D=N.points[y.key]}}l(D)&&(H=D[0],C=D[1],H===x&&y.key===R[I].base&&(H=A(g(n)&&n,h.min)),h.positiveValuesOnly&&
0>=H&&(H=null),u.total=u.stackTotal=N.total,u.percentage=N.total&&u.y/N.total*100,u.stackY=C,this.irregularWidths||N.setOffset(this.pointXOffset||0,this.barW||0));u.yBottom=E(H)?q(h.translate(H,0,1,0,1),-1E5,1E5):null;p&&(C=this.modifyValue(C,u));u.plotY="number"===typeof C&&Infinity!==C?q(h.translate(C,0,1,0,1),-1E5,1E5):void 0;u.isInside=this.isPointInside(u);u.clientX=B?K(b.translate(I,0,0,0,1,t)):F;u.negative=u[M]<(e[M+"Threshold"]||n||0);u.category=a&&"undefined"!==typeof a[u.x]?a[u.x]:u.x;if(!u.isNull&&
!1!==u.visible){"undefined"!==typeof G&&(v=Math.min(v,Math.abs(F-G)));var G=F}u.zone=this.zones.length&&u.getZone();!u.graphic&&this.group&&d&&(u.isNew=!0)}this.closestPointRangePx=v;m(this,"afterTranslate")},getValidPoints:function(e,c,b){var a=this.chart;return(e||this.points||[]).filter(function(e){return c&&!a.isInsidePlot(e.plotX,e.plotY,a.inverted)?!1:!1!==e.visible&&(b||!e.isNull)})},getClipBox:function(e,c){var b=this.options,a=this.chart,d=a.inverted,g=this.xAxis,h=g&&this.yAxis,f=a.options.chart.scrollablePlotArea||
{};e&&!1===b.clip&&h?e=d?{y:-a.chartWidth+h.len+h.pos,height:a.chartWidth,width:a.chartHeight,x:-a.chartHeight+g.len+g.pos}:{y:-h.pos,height:a.chartHeight,width:a.chartWidth,x:-g.pos}:(e=this.clipBox||a.clipBox,c&&(e.width=a.plotSizeX,e.x=(a.scrollablePixelsX||0)*(f.scrollPositionX||0)));return c?{width:e.width,x:e.x}:e},setClip:function(e){var c=this.chart,b=this.options,a=c.renderer,d=c.inverted,g=this.clipBox,h=this.getClipBox(e),f=this.sharedClipKey||["_sharedClip",e&&e.duration,e&&e.easing,h.height,
b.xAxis,b.yAxis].join(),k=c[f],l=c[f+"m"];e&&(h.width=0,d&&(h.x=c.plotHeight+(!1!==b.clip?0:c.plotTop)));k?c.hasLoaded||k.attr(h):(e&&(c[f+"m"]=l=a.clipRect(d?c.plotSizeX+99:-99,d?-c.plotLeft:-c.plotTop,99,d?c.chartWidth:c.chartHeight)),c[f]=k=a.clipRect(h),k.count={length:0});e&&!k.count[this.index]&&(k.count[this.index]=!0,k.count.length+=1);if(!1!==b.clip||e)this.group.clip(e||g?k:c.clipRect),this.markerGroup.clip(l),this.sharedClipKey=f;e||(k.count[this.index]&&(delete k.count[this.index],--k.count.length),
0===k.count.length&&f&&c[f]&&(g||(c[f]=c[f].destroy()),c[f+"m"]&&(c[f+"m"]=c[f+"m"].destroy())))},animate:function(e){var c=this.chart,b=H(this.options.animation);if(!c.hasRendered)if(e)this.setClip(b);else{var a=this.sharedClipKey;e=c[a];var d=this.getClipBox(b,!0);e&&e.animate(d,b);c[a+"m"]&&c[a+"m"].animate({width:d.width+99,x:d.x-(c.inverted?0:99)},b)}},afterAnimate:function(){this.setClip();m(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var e=this.points,c=this.chart,
b,a,d=this.options.marker,g=this[this.specialGroup]||this.markerGroup,h=this.xAxis,f=A(d.enabled,!h||h.isRadial?!0:null,this.closestPointRangePx>=d.enabledThreshold*d.radius);if(!1!==d.enabled||this._hasPointMarkers)for(b=0;b<e.length;b++){var k=e[b];var l=(a=k.graphic)?"animate":"attr";var m=k.marker||{};var p=!!k.marker;if((f&&"undefined"===typeof m.enabled||m.enabled)&&!k.isNull&&!1!==k.visible){var r=A(m.symbol,this.symbol);var t=this.markerAttribs(k,k.selected&&"select");this.enabledDataSorting&&
(k.startXPos=h.reversed?-t.width:h.width);var B=!1!==k.isInside;a?a[B?"show":"hide"](B).animate(t):B&&(0<t.width||k.hasImage)&&(k.graphic=a=c.renderer.symbol(r,t.x,t.y,t.width,t.height,p?m:d).add(g),this.enabledDataSorting&&c.hasRendered&&(a.attr({x:k.startXPos}),l="animate"));a&&"animate"===l&&a[B?"show":"hide"](B).animate(t);if(a&&!c.styledMode)a[l](this.pointAttribs(k,k.selected&&"select"));a&&a.addClass(k.getClassName(),!0)}else a&&(k.graphic=a.destroy())}},markerAttribs:function(e,c){var b=this.options,
a=b.marker,d=e.marker||{},g=d.symbol||a.symbol,h=A(d.radius,a.radius);c&&(a=a.states[c],c=d.states&&d.states[c],h=A(c&&c.radius,a&&a.radius,h+(a&&a.radiusPlus||0)));e.hasImage=g&&0===g.indexOf("url");e.hasImage&&(h=0);e={x:b.crisp?Math.floor(e.plotX)-h:e.plotX-h,y:e.plotY-h};h&&(e.width=e.height=2*h);return e},pointAttribs:function(e,c){var b=this.options.marker,a=e&&e.options,d=a&&a.marker||{},g=this.color,h=a&&a.color,f=e&&e.color;a=A(d.lineWidth,b.lineWidth);var k=e&&e.zone&&e.zone.color;e=1;g=
h||k||f||g;h=d.fillColor||b.fillColor||g;g=d.lineColor||b.lineColor||g;c=c||"normal";b=b.states[c];c=d.states&&d.states[c]||{};a=A(c.lineWidth,b.lineWidth,a+A(c.lineWidthPlus,b.lineWidthPlus,0));h=c.fillColor||b.fillColor||h;g=c.lineColor||b.lineColor||g;e=A(c.opacity,b.opacity,e);return{stroke:g,"stroke-width":a,fill:h,opacity:e}},destroy:function(e){var c=this,b=c.chart,a=/AppleWebKit\/533/.test(F.navigator.userAgent),d,g,h=c.data||[],f,k;m(c,"destroy");this.removeEvents(e);(c.axisTypes||[]).forEach(function(b){(k=
c[b])&&k.series&&(p(k.series,c),k.isDirty=k.forceRedraw=!0)});c.legendItem&&c.chart.legend.destroyItem(c);for(g=h.length;g--;)(f=h[g])&&f.destroy&&f.destroy();c.points=null;G.clearTimeout(c.animationTimeout);r(c,function(b,c){b instanceof D&&!b.survive&&(d=a&&"group"===c?"hide":"destroy",b[d]())});b.hoverSeries===c&&(b.hoverSeries=null);p(b.series,c);b.orderSeries();r(c,function(b,a){e&&"hcEvents"===a||delete c[a]})},getGraphPath:function(e,c,b){var a=this,d=a.options,g=d.step,h,f=[],k=[],l;e=e||
a.points;(h=e.reversed)&&e.reverse();(g={right:1,center:2}[g]||g&&3)&&h&&(g=4-g);e=this.getValidPoints(e,!1,!(d.connectNulls&&!c&&!b));e.forEach(function(h,m){var p=h.plotX,r=h.plotY,t=e[m-1];(h.leftCliff||t&&t.rightCliff)&&!b&&(l=!0);h.isNull&&!E(c)&&0<m?l=!d.connectNulls:h.isNull&&!c?l=!0:(0===m||l?m=[["M",h.plotX,h.plotY]]:a.getPointSpline?m=[a.getPointSpline(e,h,m)]:g?(m=1===g?[["L",t.plotX,r]]:2===g?[["L",(t.plotX+p)/2,t.plotY],["L",(t.plotX+p)/2,r]]:[["L",p,t.plotY]],m.push(["L",p,r])):m=[["L",
p,r]],k.push(h.x),g&&(k.push(h.x),2===g&&k.push(h.x)),f.push.apply(f,m),l=!1)});f.xMap=k;return a.graphPath=f},drawGraph:function(){var e=this,c=this.options,b=(this.gappedPath||this.getGraphPath).call(this),a=this.chart.styledMode,d=[["graph","highcharts-graph"]];a||d[0].push(c.lineColor||this.color||"#cccccc",c.dashStyle);d=e.getZonesGraphs(d);d.forEach(function(d,g){var h=d[0],f=e[h],k=f?"animate":"attr";f?(f.endX=e.preventGraphAnimation?null:b.xMap,f.animate({d:b})):b.length&&(e[h]=f=e.chart.renderer.path(b).addClass(d[1]).attr({zIndex:1}).add(e.group));
f&&!a&&(h={stroke:d[2],"stroke-width":c.lineWidth,fill:e.fillGraph&&e.color||"none"},d[3]?h.dashstyle=d[3]:"square"!==c.linecap&&(h["stroke-linecap"]=h["stroke-linejoin"]="round"),f[k](h).shadow(2>g&&c.shadow));f&&(f.startX=b.xMap,f.isArea=b.isArea)})},getZonesGraphs:function(a){this.zones.forEach(function(c,b){b=["zone-graph-"+b,"highcharts-graph highcharts-zone-graph-"+b+" "+(c.className||"")];this.chart.styledMode||b.push(c.color||this.color,c.dashStyle||this.options.dashStyle);a.push(b)},this);
return a},applyZones:function(){var a=this,c=this.chart,b=c.renderer,d=this.zones,g,h,f=this.clips||[],k,l=this.graph,m=this.area,p=Math.max(c.chartWidth,c.chartHeight),r=this[(this.zoneAxis||"y")+"Axis"],t=c.inverted,B,n,x,F=!1,u,M;if(d.length&&(l||m)&&r&&"undefined"!==typeof r.min){var v=r.reversed;var I=r.horiz;l&&!this.showLine&&l.hide();m&&m.hide();var E=r.getExtremes();d.forEach(function(e,d){g=v?I?c.plotWidth:0:I?0:r.toPixels(E.min)||0;g=q(A(h,g),0,p);h=q(Math.round(r.toPixels(A(e.value,E.max),
!0)||0),0,p);F&&(g=h=r.toPixels(E.max));B=Math.abs(g-h);n=Math.min(g,h);x=Math.max(g,h);r.isXAxis?(k={x:t?x:n,y:0,width:B,height:p},I||(k.x=c.plotHeight-k.x)):(k={x:0,y:t?x:n,width:p,height:B},I&&(k.y=c.plotWidth-k.y));t&&b.isVML&&(k=r.isXAxis?{x:0,y:v?n:x,height:k.width,width:c.chartWidth}:{x:k.y-c.plotLeft-c.spacingBox.x,y:0,width:k.height,height:c.chartHeight});f[d]?f[d].animate(k):f[d]=b.clipRect(k);u=a["zone-area-"+d];M=a["zone-graph-"+d];l&&M&&M.clip(f[d]);m&&u&&u.clip(f[d]);F=e.value>E.max;
a.resetZones&&0===h&&(h=void 0)});this.clips=f}else a.visible&&(l&&l.show(!0),m&&m.show(!0))},invertGroups:function(a){function c(){["group","markerGroup"].forEach(function(c){b[c]&&(e.renderer.isVML&&b[c].attr({width:b.yAxis.len,height:b.xAxis.len}),b[c].width=b.yAxis.len,b[c].height=b.xAxis.len,b[c].invert(b.isRadialSeries?!1:a))})}var b=this,e=b.chart;b.xAxis&&(b.eventsToUnbind.push(J(e,"resize",c)),c(),b.invertGroups=c)},plotGroup:function(a,c,b,d,g){var e=this[a],h=!e;b={visibility:b,zIndex:d||
.1};"undefined"===typeof this.opacity||this.chart.styledMode||"inactive"===this.state||(b.opacity=this.opacity);h&&(this[a]=e=this.chart.renderer.g().add(g));e.addClass("highcharts-"+c+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(E(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(e.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0);e.attr(b)[h?"attr":"animate"](this.getPlotBox());return e},getPlotBox:function(){var a=this.chart,
c=this.xAxis,b=this.yAxis;a.inverted&&(c=b,b=this.xAxis);return{translateX:c?c.left:a.plotLeft,translateY:b?b.top:a.plotTop,scaleX:1,scaleY:1}},removeEvents:function(a){a?this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(c){c()}),this.eventsToUnbind.length=0):N(this)},render:function(){var a=this,c=a.chart,b=a.options,d=H(b.animation),g=!a.finishedAnimating&&c.renderer.isSVG&&d.duration,h=a.visible?"inherit":"hidden",f=b.zIndex,k=a.hasRendered,l=c.seriesGroup,p=c.inverted;m(this,"render");
var r=a.plotGroup("group","series",h,f,l);a.markerGroup=a.plotGroup("markerGroup","markers",h,f,l);g&&a.animate&&a.animate(!0);r.inverted=a.isCartesian||a.invertable?p:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.visible&&a.drawPoints();a.drawDataLabels&&a.drawDataLabels();a.redrawPoints&&a.redrawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(p);!1===b.clip||a.sharedClipKey||k||r.clip(c.clipRect);g&&a.animate&&a.animate();k||(g&&d.defer&&(g+=d.defer),
a.animationTimeout=M(function(){a.afterAnimate()},g||0));a.isDirty=!1;a.hasRendered=!0;m(a,"afterRender")},redraw:function(){var a=this.chart,c=this.isDirty||this.isDirtyData,b=this.group,d=this.xAxis,g=this.yAxis;b&&(a.inverted&&b.attr({width:a.plotWidth,height:a.plotHeight}),b.animate({translateX:A(d&&d.left,a.plotLeft),translateY:A(g&&g.top,a.plotTop)}));this.translate();this.render();c&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(a,c){var b=this.xAxis,d=this.yAxis,
e=this.chart.inverted;return this.searchKDTree({clientX:e?b.len-a.chartY+b.pos:a.chartX-b.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},c,a)},buildKDTree:function(a){function c(a,d,e){var g;if(g=a&&a.length){var h=b.kdAxisArray[d%e];a.sort(function(b,c){return b[h]-c[h]});g=Math.floor(g/2);return{point:a[g],left:c(a.slice(0,g),d+1,e),right:c(a.slice(g+1),d+1,e)}}}this.buildingKdTree=!0;var b=this,d=-1<b.options.findNearestPointBy.indexOf("y")?2:1;delete b.kdTree;M(function(){b.kdTree=c(b.getValidPoints(null,
!b.directTouch),d,d);b.buildingKdTree=!1},b.options.kdNow||a&&"touchstart"===a.type?0:1)},searchKDTree:function(a,c,b){function d(b,c,a,k){var l=c.point,m=e.kdAxisArray[a%k],p=l;var r=E(b[g])&&E(l[g])?Math.pow(b[g]-l[g],2):null;var t=E(b[h])&&E(l[h])?Math.pow(b[h]-l[h],2):null;t=(r||0)+(t||0);l.dist=E(t)?Math.sqrt(t):Number.MAX_VALUE;l.distX=E(r)?Math.sqrt(r):Number.MAX_VALUE;m=b[m]-l[m];t=0>m?"left":"right";r=0>m?"right":"left";c[t]&&(t=d(b,c[t],a+1,k),p=t[f]<p[f]?t:l);c[r]&&Math.sqrt(m*m)<p[f]&&
(b=d(b,c[r],a+1,k),p=b[f]<p[f]?b:p);return p}var e=this,g=this.kdAxisArray[0],h=this.kdAxisArray[1],f=c?"distX":"dist";c=-1<e.options.findNearestPointBy.indexOf("y")?2:1;this.kdTree||this.buildingKdTree||this.buildKDTree(b);if(this.kdTree)return d(a,this.kdTree,c,c)},pointPlacementToXValue:function(){var a=this.options,c=a.pointRange,b=this.xAxis;a=a.pointPlacement;"between"===a&&(a=b.reversed?-.5:.5);return g(a)?a*A(c,b.pointRange):0},isPointInside:function(a){return"undefined"!==typeof a.plotY&&
"undefined"!==typeof a.plotX&&0<=a.plotY&&a.plotY<=this.yAxis.len&&0<=a.plotX&&a.plotX<=this.xAxis.len}});""});O(n,"Extensions/Stacking.js",[n["Core/Axis/Axis.js"],n["Core/Chart/Chart.js"],n["Core/Globals.js"],n["Core/Axis/StackingAxis.js"],n["Core/Utilities.js"]],function(f,a,n,y,D){var G=D.correctFloat,C=D.defined,J=D.destroyObjectProperties,H=D.format,v=D.isNumber,L=D.pick;"";var q=n.Series,K=function(){function a(a,f,n,q,m){var h=a.chart.inverted;this.axis=a;this.isNegative=n;this.options=f=f||
{};this.x=q;this.total=null;this.points={};this.hasValidPoints=!1;this.stack=m;this.rightCliff=this.leftCliff=0;this.alignOptions={align:f.align||(h?n?"left":"right":"center"),verticalAlign:f.verticalAlign||(h?"middle":n?"bottom":"top"),y:f.y,x:f.x};this.textAlign=f.textAlign||(h?n?"right":"left":"center")}a.prototype.destroy=function(){J(this,this.axis)};a.prototype.render=function(a){var f=this.axis.chart,p=this.options,n=p.format;n=n?H(n,this,f):p.formatter.call(this);this.label?this.label.attr({text:n,
visibility:"hidden"}):(this.label=f.renderer.label(n,null,null,p.shape,null,null,p.useHTML,!1,"stack-labels"),n={r:p.borderRadius||0,text:n,rotation:p.rotation,padding:L(p.padding,5),visibility:"hidden"},f.styledMode||(n.fill=p.backgroundColor,n.stroke=p.borderColor,n["stroke-width"]=p.borderWidth,this.label.css(p.style)),this.label.attr(n),this.label.added||this.label.add(a));this.label.labelrank=f.plotHeight};a.prototype.setOffset=function(a,f,n,u,m){var h=this.axis,l=h.chart;u=h.translate(h.stacking.usePercentage?
100:u?u:this.total,0,0,0,1);n=h.translate(n?n:0);n=C(u)&&Math.abs(u-n);a=L(m,l.xAxis[0].translate(this.x))+a;h=C(u)&&this.getStackBox(l,this,a,u,f,n,h);f=this.label;n=this.isNegative;a="justify"===L(this.options.overflow,"justify");var k=this.textAlign;f&&h&&(m=f.getBBox(),u=f.padding,k="left"===k?l.inverted?-u:u:"right"===k?m.width:l.inverted&&"center"===k?m.width/2:l.inverted?n?m.width+u:-u:m.width/2,n=l.inverted?m.height/2:n?-u:m.height,this.alignOptions.x=L(this.options.x,0),this.alignOptions.y=
L(this.options.y,0),h.x-=k,h.y-=n,f.align(this.alignOptions,null,h),l.isInsidePlot(f.alignAttr.x+k-this.alignOptions.x,f.alignAttr.y+n-this.alignOptions.y)?f.show():(f.alignAttr.y=-9999,a=!1),a&&q.prototype.justifyDataLabel.call(this.axis,f,this.alignOptions,f.alignAttr,m,h),f.attr({x:f.alignAttr.x,y:f.alignAttr.y}),L(!a&&this.options.crop,!0)&&((l=v(f.x)&&v(f.y)&&l.isInsidePlot(f.x-u+f.width,f.y)&&l.isInsidePlot(f.x+u,f.y))||f.hide()))};a.prototype.getStackBox=function(a,f,n,q,m,h,l){var k=f.axis.reversed,
g=a.inverted,d=l.height+l.pos-(g?a.plotLeft:a.plotTop);f=f.isNegative&&!k||!f.isNegative&&k;return{x:g?f?q-l.right:q-h+l.pos-a.plotLeft:n+a.xAxis[0].transB-a.plotLeft,y:g?l.height-n-m:f?d-q-h:d-q,width:g?h:m,height:g?m:h}};return a}();a.prototype.getStacks=function(){var a=this,f=a.inverted;a.yAxis.forEach(function(a){a.stacking&&a.stacking.stacks&&a.hasVisibleSeries&&(a.stacking.oldStacks=a.stacking.stacks)});a.series.forEach(function(p){var n=p.xAxis&&p.xAxis.options||{};!p.options.stacking||!0!==
p.visible&&!1!==a.options.chart.ignoreHiddenSeries||(p.stackKey=[p.type,L(p.options.stack,""),f?n.top:n.left,f?n.height:n.width].join())})};y.compose(f);q.prototype.setGroupedPoints=function(){this.options.centerInCategory&&(this.is("column")||this.is("columnrange"))&&!this.options.stacking&&1<this.chart.series.length&&q.prototype.setStackedPoints.call(this,"group")};q.prototype.setStackedPoints=function(a){var f=a||this.options.stacking;if(f&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var n=
this.processedXData,q=this.processedYData,u=[],m=q.length,h=this.options,l=h.threshold,k=L(h.startFromThreshold&&l,0);h=h.stack;a=a?this.type+","+f:this.stackKey;var g="-"+a,d=this.negStacks,x=this.yAxis,r=x.stacking.stacks,A=x.stacking.oldStacks,v,B;x.stacking.stacksTouched+=1;for(B=0;B<m;B++){var M=n[B];var E=q[B];var F=this.getStackIndicator(F,M,this.index);var e=F.key;var c=(v=d&&E<(k?0:l))?g:a;r[c]||(r[c]={});r[c][M]||(A[c]&&A[c][M]?(r[c][M]=A[c][M],r[c][M].total=null):r[c][M]=new K(x,x.options.stackLabels,
v,M,h));c=r[c][M];null!==E?(c.points[e]=c.points[this.index]=[L(c.cumulative,k)],C(c.cumulative)||(c.base=e),c.touched=x.stacking.stacksTouched,0<F.index&&!1===this.singleStacks&&(c.points[e][0]=c.points[this.index+","+M+",0"][0])):c.points[e]=c.points[this.index]=null;"percent"===f?(v=v?a:g,d&&r[v]&&r[v][M]?(v=r[v][M],c.total=v.total=Math.max(v.total,c.total)+Math.abs(E)||0):c.total=G(c.total+(Math.abs(E)||0))):"group"===f?null!==E&&(c.total=(c.total||0)+1):c.total=G(c.total+(E||0));c.cumulative=
"group"===f?(c.total||1)-1:L(c.cumulative,k)+(E||0);null!==E&&(c.points[e].push(c.cumulative),u[B]=c.cumulative,c.hasValidPoints=!0)}"percent"===f&&(x.stacking.usePercentage=!0);"group"!==f&&(this.stackedYData=u);x.stacking.oldStacks={}}};q.prototype.modifyStacks=function(){var a=this,f=a.stackKey,n=a.yAxis.stacking.stacks,q=a.processedXData,v,m=a.options.stacking;a[m+"Stacker"]&&[f,"-"+f].forEach(function(h){for(var f=q.length,k,g;f--;)if(k=q[f],v=a.getStackIndicator(v,k,a.index,h),g=(k=n[h]&&n[h][k])&&
k.points[v.key])a[m+"Stacker"](g,k,f)})};q.prototype.percentStacker=function(a,f,n){f=f.total?100/f.total:0;a[0]=G(a[0]*f);a[1]=G(a[1]*f);this.stackedYData[n]=a[1]};q.prototype.getStackIndicator=function(a,f,n,q){!C(a)||a.x!==f||q&&a.key!==q?a={x:f,index:0,key:q}:a.index++;a.key=[n,f,a.index].join();return a};n.StackItem=K;return n.StackItem});O(n,"Core/Dynamics.js",[n["Core/Axis/Axis.js"],n["Core/Chart/Chart.js"],n["Core/Globals.js"],n["Core/Options.js"],n["Core/Series/Point.js"],n["Core/Time.js"],
n["Core/Utilities.js"]],function(f,a,n,y,D,G,C){var J=y.time,H=C.addEvent,v=C.animate,L=C.createElement,q=C.css,K=C.defined,E=C.erase,p=C.error,t=C.extend,I=C.fireEvent,u=C.isArray,m=C.isNumber,h=C.isObject,l=C.isString,k=C.merge,g=C.objectEach,d=C.pick,x=C.relativeLength,r=C.setAnimation,A=C.splat;y=n.Series;var N=n.seriesTypes;n.cleanRecursively=function(a,d){var f={};g(a,function(g,e){if(h(a[e],!0)&&!a.nodeType&&d[e])g=n.cleanRecursively(a[e],d[e]),Object.keys(g).length&&(f[e]=g);else if(h(a[e])||
a[e]!==d[e])f[e]=a[e]});return f};t(a.prototype,{addSeries:function(a,g,h){var f,e=this;a&&(g=d(g,!0),I(e,"addSeries",{options:a},function(){f=e.initSeries(a);e.isDirtyLegend=!0;e.linkSeries();f.enabledDataSorting&&f.setData(a.data,!1);I(e,"afterAddSeries",{series:f});g&&e.redraw(h)}));return f},addAxis:function(a,d,g,h){return this.createAxis(d?"xAxis":"yAxis",{axis:a,redraw:g,animation:h})},addColorAxis:function(a,d,g){return this.createAxis("colorAxis",{axis:a,redraw:d,animation:g})},createAxis:function(a,
g){var h=this.options,l="colorAxis"===a,e=g.redraw,c=g.animation;g=k(g.axis,{index:this[a].length,isX:"xAxis"===a});var b=l?new n.ColorAxis(this,g):new f(this,g);h[a]=A(h[a]||{});h[a].push(g);l&&(this.isDirtyLegend=!0,this.axes.forEach(function(b){b.series=[]}),this.series.forEach(function(b){b.bindAxes();b.isDirtyData=!0}));d(e,!0)&&this.redraw(c);return b},showLoading:function(a){var g=this,h=g.options,f=g.loadingDiv,e=h.loading,c=function(){f&&q(f,{left:g.plotLeft+"px",top:g.plotTop+"px",width:g.plotWidth+
"px",height:g.plotHeight+"px"})};f||(g.loadingDiv=f=L("div",{className:"highcharts-loading highcharts-loading-hidden"},null,g.container),g.loadingSpan=L("span",{className:"highcharts-loading-inner"},null,f),H(g,"redraw",c));f.className="highcharts-loading";g.loadingSpan.innerHTML=d(a,h.lang.loading,"");g.styledMode||(q(f,t(e.style,{zIndex:10})),q(g.loadingSpan,e.labelStyle),g.loadingShown||(q(f,{opacity:0,display:""}),v(f,{opacity:e.style.opacity||.5},{duration:e.showDuration||0})));g.loadingShown=
!0;c()},hideLoading:function(){var a=this.options,d=this.loadingDiv;d&&(d.className="highcharts-loading highcharts-loading-hidden",this.styledMode||v(d,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){q(d,{display:"none"})}}));this.loadingShown=!1},propsRequireDirtyBox:"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),propsRequireReflow:"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft".split(" "),
propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip".split(" "),collectionsWithUpdate:["xAxis","yAxis","zAxis","series"],update:function(a,h,f,p){var e=this,c={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle",caption:"setCaption"},b,r,q,t=a.isResponsiveOptions,B=[];I(e,"update",{options:a});t||e.setResponsive(!1,!0);a=n.cleanRecursively(a,e.options);k(!0,e.userOptions,a);if(b=a.chart){k(!0,e.options.chart,b);"className"in
b&&e.setClassName(b.className);"reflow"in b&&e.setReflow(b.reflow);if("inverted"in b||"polar"in b||"type"in b){e.propFromSeries();var F=!0}"alignTicks"in b&&(F=!0);g(b,function(b,a){-1!==e.propsRequireUpdateSeries.indexOf("chart."+a)&&(r=!0);-1!==e.propsRequireDirtyBox.indexOf(a)&&(e.isDirtyBox=!0);-1!==e.propsRequireReflow.indexOf(a)&&(t?e.isDirtyBox=!0:q=!0)});!e.styledMode&&"style"in b&&e.renderer.setStyle(b.style)}!e.styledMode&&a.colors&&(this.options.colors=a.colors);a.plotOptions&&k(!0,this.options.plotOptions,
a.plotOptions);a.time&&this.time===J&&(this.time=new G(a.time));g(a,function(b,a){if(e[a]&&"function"===typeof e[a].update)e[a].update(b,!1);else if("function"===typeof e[c[a]])e[c[a]](b);"chart"!==a&&-1!==e.propsRequireUpdateSeries.indexOf(a)&&(r=!0)});this.collectionsWithUpdate.forEach(function(b){if(a[b]){if("series"===b){var c=[];e[b].forEach(function(b,a){b.options.isInternal||c.push(d(b.options.index,a))})}A(a[b]).forEach(function(a,d){var g=K(a.id),h;g&&(h=e.get(a.id));h||(h=e[b][c?c[d]:d])&&
g&&K(h.options.id)&&(h=void 0);h&&h.coll===b&&(h.update(a,!1),f&&(h.touched=!0));!h&&f&&e.collectionsWithInit[b]&&(e.collectionsWithInit[b][0].apply(e,[a].concat(e.collectionsWithInit[b][1]||[]).concat([!1])).touched=!0)});f&&e[b].forEach(function(b){b.touched||b.options.isInternal?delete b.touched:B.push(b)})}});B.forEach(function(b){b.remove&&b.remove(!1)});F&&e.axes.forEach(function(b){b.update({},!1)});r&&e.getSeriesOrderByLinks().forEach(function(b){b.chart&&b.update({},!1)},this);a.loading&&
k(!0,e.options.loading,a.loading);F=b&&b.width;b=b&&b.height;l(b)&&(b=x(b,F||e.chartWidth));q||m(F)&&F!==e.chartWidth||m(b)&&b!==e.chartHeight?e.setSize(F,b,p):d(h,!0)&&e.redraw(p);I(e,"afterUpdate",{options:a,redraw:h,animation:p})},setSubtitle:function(a,d){this.applyDescription("subtitle",a);this.layOutTitles(d)},setCaption:function(a,d){this.applyDescription("caption",a);this.layOutTitles(d)}});a.prototype.collectionsWithInit={xAxis:[a.prototype.addAxis,[!0]],yAxis:[a.prototype.addAxis,[!1]],
series:[a.prototype.addSeries]};t(D.prototype,{update:function(a,g,f,k){function e(){c.applyOptions(a);var e=l&&c.hasDummyGraphic;e=null===c.y?!e:e;l&&e&&(c.graphic=l.destroy(),delete c.hasDummyGraphic);h(a,!0)&&(l&&l.element&&a&&a.marker&&"undefined"!==typeof a.marker.symbol&&(c.graphic=l.destroy()),a&&a.dataLabels&&c.dataLabel&&(c.dataLabel=c.dataLabel.destroy()),c.connector&&(c.connector=c.connector.destroy()));m=c.index;b.updateParallelArrays(c,m);r.data[m]=h(r.data[m],!0)||h(a,!0)?c.options:
d(a,r.data[m]);b.isDirty=b.isDirtyData=!0;!b.fixedBox&&b.hasCartesianSeries&&(p.isDirtyBox=!0);"point"===r.legendType&&(p.isDirtyLegend=!0);g&&p.redraw(f)}var c=this,b=c.series,l=c.graphic,m,p=b.chart,r=b.options;g=d(g,!0);!1===k?e():c.firePointEvent("update",{options:a},e)},remove:function(a,d){this.series.removePoint(this.series.data.indexOf(this),a,d)}});t(y.prototype,{addPoint:function(a,g,h,f,e){var c=this.options,b=this.data,k=this.chart,l=this.xAxis;l=l&&l.hasNames&&l.names;var m=c.data,p=
this.xData,r;g=d(g,!0);var n={series:this};this.pointClass.prototype.applyOptions.apply(n,[a]);var q=n.x;var t=p.length;if(this.requireSorting&&q<p[t-1])for(r=!0;t&&p[t-1]>q;)t--;this.updateParallelArrays(n,"splice",t,0,0);this.updateParallelArrays(n,t);l&&n.name&&(l[q]=n.name);m.splice(t,0,a);r&&(this.data.splice(t,0,null),this.processData());"point"===c.legendType&&this.generatePoints();h&&(b[0]&&b[0].remove?b[0].remove(!1):(b.shift(),this.updateParallelArrays(n,"shift"),m.shift()));!1!==e&&I(this,
"addPoint",{point:n});this.isDirtyData=this.isDirty=!0;g&&k.redraw(f)},removePoint:function(a,g,h){var f=this,e=f.data,c=e[a],b=f.points,k=f.chart,l=function(){b&&b.length===e.length&&b.splice(a,1);e.splice(a,1);f.options.data.splice(a,1);f.updateParallelArrays(c||{series:f},"splice",a,1);c&&c.destroy();f.isDirty=!0;f.isDirtyData=!0;g&&k.redraw()};r(h,k);g=d(g,!0);c?c.firePointEvent("remove",null,l):l()},remove:function(a,g,h,f){function e(){c.destroy(f);c.remove=null;b.isDirtyLegend=b.isDirtyBox=
!0;b.linkSeries();d(a,!0)&&b.redraw(g)}var c=this,b=c.chart;!1!==h?I(c,"remove",null,e):e()},update:function(a,g){a=n.cleanRecursively(a,this.userOptions);I(this,"update",{options:a});var h=this,f=h.chart,e=h.userOptions,c=h.initialType||h.type,b=a.type||e.type||f.options.chart.type,l=!(this.hasDerivedData||a.dataGrouping||b&&b!==this.type||"undefined"!==typeof a.pointStart||a.pointInterval||a.pointIntervalUnit||a.keys),m=N[c].prototype,r,q=["eventOptions","navigatorSeries","baseSeries"],x=h.finishedAnimating&&
{animation:!1},B={};l&&(q.push("data","isDirtyData","points","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","_hasPointLabels","mapMap","mapData","minY","maxY","minX","maxX"),!1!==a.visible&&q.push("area","graph"),h.parallelArrays.forEach(function(b){q.push(b+"Data")}),a.data&&(a.dataSorting&&t(h.options.dataSorting,a.dataSorting),this.setData(a.data,!1)));a=k(e,x,{index:"undefined"===typeof e.index?h.index:e.index,pointStart:d(e.pointStart,h.xData[0])},!l&&{data:h.options.data},
a);l&&a.data&&(a.data=h.options.data);q=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(q);q.forEach(function(b){q[b]=h[b];delete h[b]});h.remove(!1,null,!1,!0);for(r in m)h[r]=void 0;N[b||c]?t(h,N[b||c].prototype):p(17,!0,f,{missingModuleFor:b||c});q.forEach(function(b){h[b]=q[b]});h.init(f,a);if(l&&this.points){var A=h.options;!1===A.visible?(B.graphic=1,B.dataLabel=1):h._hasPointLabels||(a=A.marker,e=A.dataLabels,a&&(!1===a.enabled||"symbol"in a)&&(B.graphic=1),e&&!1===e.enabled&&
(B.dataLabel=1));this.points.forEach(function(b){b&&b.series&&(b.resolveColor(),Object.keys(B).length&&b.destroyElements(B),!1===A.showInLegend&&b.legendItem&&f.legend.destroyItem(b))},this)}h.initialType=c;f.linkSeries();I(this,"afterUpdate");d(g,!0)&&f.redraw(l?void 0:!1)},setName:function(a){this.name=this.options.name=this.userOptions.name=a;this.chart.isDirtyLegend=!0}});t(f.prototype,{update:function(a,h){var f=this.chart,l=a&&a.events||{};a=k(this.userOptions,a);f.options[this.coll].indexOf&&
(f.options[this.coll][f.options[this.coll].indexOf(this.userOptions)]=a);g(f.options[this.coll].events,function(a,c){"undefined"===typeof l[c]&&(l[c]=void 0)});this.destroy(!0);this.init(f,t(a,{events:l}));f.isDirtyBox=!0;d(h,!0)&&f.redraw()},remove:function(a){for(var g=this.chart,h=this.coll,f=this.series,e=f.length;e--;)f[e]&&f[e].remove(!1);E(g.axes,this);E(g[h],this);u(g.options[h])?g.options[h].splice(this.options.index,1):delete g.options[h];g[h].forEach(function(a,b){a.options.index=a.userOptions.index=
b});this.destroy();g.isDirtyBox=!0;d(a,!0)&&g.redraw()},setTitle:function(a,d){this.update({title:a},d)},setCategories:function(a,d){this.update({categories:a},d)}})});O(n,"Series/AreaSeries.js",[n["Core/Globals.js"],n["Core/Color.js"],n["Mixins/LegendSymbol.js"],n["Core/Utilities.js"]],function(f,a,n,y){var D=a.parse,G=y.objectEach,C=y.pick;a=y.seriesType;var J=f.Series;a("area","line",{threshold:0},{singleStacks:!1,getStackPoints:function(a){var f=[],n=[],q=this.xAxis,H=this.yAxis,E=H.stacking.stacks[this.stackKey],
p={},t=this.index,I=H.series,u=I.length,m=C(H.options.reversedStacks,!0)?1:-1,h;a=a||this.points;if(this.options.stacking){for(h=0;h<a.length;h++)a[h].leftNull=a[h].rightNull=void 0,p[a[h].x]=a[h];G(E,function(a,g){null!==a.total&&n.push(g)});n.sort(function(a,g){return a-g});var l=I.map(function(a){return a.visible});n.forEach(function(a,g){var d=0,k,r;if(p[a]&&!p[a].isNull)f.push(p[a]),[-1,1].forEach(function(d){var f=1===d?"rightNull":"leftNull",q=0,x=E[n[g+d]];if(x)for(h=t;0<=h&&h<u;)k=x.points[h],
k||(h===t?p[a][f]=!0:l[h]&&(r=E[a].points[h])&&(q-=r[1]-r[0])),h+=m;p[a][1===d?"rightCliff":"leftCliff"]=q});else{for(h=t;0<=h&&h<u;){if(k=E[a].points[h]){d=k[1];break}h+=m}d=H.translate(d,0,1,0,1);f.push({isNull:!0,plotX:q.translate(a,0,0,0,1),x:a,plotY:d,yBottom:d})}})}return f},getGraphPath:function(a){var f=J.prototype.getGraphPath,n=this.options,q=n.stacking,y=this.yAxis,E,p=[],t=[],I=this.index,u=y.stacking.stacks[this.stackKey],m=n.threshold,h=Math.round(y.getThreshold(n.threshold));n=C(n.connectNulls,
"percent"===q);var l=function(d,f,k){var l=a[d];d=q&&u[l.x].points[I];var r=l[k+"Null"]||0;k=l[k+"Cliff"]||0;l=!0;if(k||r){var n=(r?d[0]:d[1])+k;var x=d[0]+k;l=!!r}else!q&&a[f]&&a[f].isNull&&(n=x=m);"undefined"!==typeof n&&(t.push({plotX:g,plotY:null===n?h:y.getThreshold(n),isNull:l,isCliff:!0}),p.push({plotX:g,plotY:null===x?h:y.getThreshold(x),doCurve:!1}))};a=a||this.points;q&&(a=this.getStackPoints(a));for(E=0;E<a.length;E++){q||(a[E].leftCliff=a[E].rightCliff=a[E].leftNull=a[E].rightNull=void 0);
var k=a[E].isNull;var g=C(a[E].rectPlotX,a[E].plotX);var d=q?a[E].yBottom:h;if(!k||n)n||l(E,E-1,"left"),k&&!q&&n||(t.push(a[E]),p.push({x:E,plotX:g,plotY:d})),n||l(E,E+1,"right")}E=f.call(this,t,!0,!0);p.reversed=!0;k=f.call(this,p,!0,!0);(d=k[0])&&"M"===d[0]&&(k[0]=["L",d[1],d[2]]);k=E.concat(k);f=f.call(this,t,!1,n);k.xMap=E.xMap;this.areaPath=k;return f},drawGraph:function(){this.areaPath=[];J.prototype.drawGraph.apply(this);var a=this,f=this.areaPath,n=this.options,q=[["area","highcharts-area",
this.color,n.fillColor]];this.zones.forEach(function(f,v){q.push(["zone-area-"+v,"highcharts-area highcharts-zone-area-"+v+" "+f.className,f.color||a.color,f.fillColor||n.fillColor])});q.forEach(function(q){var v=q[0],p=a[v],t=p?"animate":"attr",I={};p?(p.endX=a.preventGraphAnimation?null:f.xMap,p.animate({d:f})):(I.zIndex=0,p=a[v]=a.chart.renderer.path(f).addClass(q[1]).add(a.group),p.isArea=!0);a.chart.styledMode||(I.fill=C(q[3],D(q[2]).setOpacity(C(n.fillOpacity,.75)).get()));p[t](I);p.startX=
f.xMap;p.shiftUnit=n.step?2:1})},drawLegendSymbol:n.drawRectangle});""});O(n,"Series/SplineSeries.js",[n["Core/Utilities.js"]],function(f){var a=f.pick;f=f.seriesType;f("spline","line",{},{getPointSpline:function(f,n,D){var y=n.plotX||0,C=n.plotY||0,J=f[D-1];D=f[D+1];if(J&&!J.isNull&&!1!==J.doCurve&&!n.isCliff&&D&&!D.isNull&&!1!==D.doCurve&&!n.isCliff){f=J.plotY||0;var H=D.plotX||0;D=D.plotY||0;var v=0;var L=(1.5*y+(J.plotX||0))/2.5;var q=(1.5*C+f)/2.5;H=(1.5*y+H)/2.5;var K=(1.5*C+D)/2.5;H!==L&&(v=
(K-q)*(H-y)/(H-L)+C-K);q+=v;K+=v;q>f&&q>C?(q=Math.max(f,C),K=2*C-q):q<f&&q<C&&(q=Math.min(f,C),K=2*C-q);K>D&&K>C?(K=Math.max(D,C),q=2*C-K):K<D&&K<C&&(K=Math.min(D,C),q=2*C-K);n.rightContX=H;n.rightContY=K}n=["C",a(J.rightContX,J.plotX,0),a(J.rightContY,J.plotY,0),a(L,y,0),a(q,C,0),y,C];J.rightContX=J.rightContY=void 0;return n}});""});O(n,"Series/AreaSplineSeries.js",[n["Core/Globals.js"],n["Mixins/LegendSymbol.js"],n["Core/Options.js"],n["Core/Utilities.js"]],function(f,a,n,y){y=y.seriesType;f=f.seriesTypes.area.prototype;
y("areaspline","spline",n.defaultOptions.plotOptions.area,{getStackPoints:f.getStackPoints,getGraphPath:f.getGraphPath,drawGraph:f.drawGraph,drawLegendSymbol:a.drawRectangle});""});O(n,"Series/ColumnSeries.js",[n["Core/Globals.js"],n["Core/Color.js"],n["Mixins/LegendSymbol.js"],n["Core/Utilities.js"]],function(f,a,n,y){"";var D=a.parse,G=y.animObject,C=y.clamp,J=y.defined,H=y.extend,v=y.isNumber,L=y.merge,q=y.pick;a=y.seriesType;var K=y.objectEach,E=f.Series;a("column","line",{borderRadius:0,centerInCategory:!1,
groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:"#cccccc",borderColor:"#000000"}},dataLabels:{align:void 0,verticalAlign:void 0,y:void 0},startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"#ffffff"},{cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){E.prototype.init.apply(this,arguments);var a=this,f=a.chart;f.hasRendered&&
f.series.forEach(function(f){f.type===a.type&&(f.isDirty=!0)})},getColumnMetrics:function(){var a=this,f=a.options,n=a.xAxis,v=a.yAxis,m=n.options.reversedStacks;m=n.reversed&&!m||!n.reversed&&m;var h,l={},k=0;!1===f.grouping?k=1:a.chart.series.forEach(function(d){var g=d.yAxis,f=d.options;if(d.type===a.type&&(d.visible||!a.chart.options.chart.ignoreHiddenSeries)&&v.len===g.len&&v.pos===g.pos){if(f.stacking&&"group"!==f.stacking){h=d.stackKey;"undefined"===typeof l[h]&&(l[h]=k++);var m=l[h]}else!1!==
f.grouping&&(m=k++);d.columnIndex=m}});var g=Math.min(Math.abs(n.transA)*(n.ordinal&&n.ordinal.slope||f.pointRange||n.closestPointRange||n.tickInterval||1),n.len),d=g*f.groupPadding,x=(g-2*d)/(k||1);f=Math.min(f.maxPointWidth||n.len,q(f.pointWidth,x*(1-2*f.pointPadding)));a.columnMetrics={width:f,offset:(x-f)/2+(d+((a.columnIndex||0)+(m?1:0))*x-g/2)*(m?-1:1),paddedWidth:x,columnCount:k};return a.columnMetrics},crispCol:function(a,f,n,q){var m=this.chart,h=this.borderWidth,l=-(h%2?.5:0);h=h%2?.5:1;
m.inverted&&m.renderer.isVML&&(h+=1);this.options.crisp&&(n=Math.round(a+n)+l,a=Math.round(a)+l,n-=a);q=Math.round(f+q)+h;l=.5>=Math.abs(f)&&.5<q;f=Math.round(f)+h;q-=f;l&&q&&(--f,q+=1);return{x:a,y:f,width:n,height:q}},adjustForMissingColumns:function(a,n,q,v){var m=this,h=this.options.stacking;if(!q.isNull&&1<v.columnCount){var l=0,k=0;K(this.yAxis.stacking&&this.yAxis.stacking.stacks,function(a){if("number"===typeof q.x&&(a=a[q.x.toString()])){var d=a.points[m.index],g=a.total;h?(d&&(l=k),a.hasValidPoints&&
k++):f.isArray(d)&&(l=d[1],k=g||0)}});a=(q.plotX||0)+((k-1)*v.paddedWidth+n)/2-n-l*v.paddedWidth}return a},translate:function(){var a=this,f=a.chart,n=a.options,u=a.dense=2>a.closestPointRange*a.xAxis.transA;u=a.borderWidth=q(n.borderWidth,u?0:1);var m=a.xAxis,h=a.yAxis,l=n.threshold,k=a.translatedThreshold=h.getThreshold(l),g=q(n.minPointLength,5),d=a.getColumnMetrics(),x=d.width,r=a.barW=Math.max(x,1+2*u),A=a.pointXOffset=d.offset,y=a.dataMin,B=a.dataMax;f.inverted&&(k-=.5);n.pointPadding&&(r=Math.ceil(r));
E.prototype.translate.apply(a);a.points.forEach(function(p){var t=q(p.yBottom,k),F=999+Math.abs(t),e=x,c=p.plotX||0;F=C(p.plotY,-F,h.len+F);var b=c+A,u=r,w=Math.min(F,t),E=Math.max(F,t)-w;if(g&&Math.abs(E)<g){E=g;var M=!h.reversed&&!p.negative||h.reversed&&p.negative;v(l)&&v(B)&&p.y===l&&B<=l&&(h.min||0)<l&&y!==B&&(M=!M);w=Math.abs(w-k)>g?t-g:k-(M?g:0)}J(p.options.pointWidth)&&(e=u=Math.ceil(p.options.pointWidth),b-=Math.round((e-x)/2));n.centerInCategory&&(b=a.adjustForMissingColumns(b,e,p,d));p.barX=
b;p.pointWidth=e;p.tooltipPos=f.inverted?[h.len+h.pos-f.plotLeft-F,m.len+m.pos-f.plotTop-(c||0)-A-u/2,E]:[b+u/2,F+h.pos-f.plotTop,E];p.shapeType=a.pointClass.prototype.shapeType||"rect";p.shapeArgs=a.crispCol.apply(a,p.isNull?[b,k,u,0]:[b,w,u,E])})},getSymbol:f.noop,drawLegendSymbol:n.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,f){var p=this.options,n=this.pointAttrToOptions||{};var m=n.stroke||"borderColor";
var h=n["stroke-width"]||"borderWidth",l=a&&a.color||this.color,k=a&&a[m]||p[m]||this.color||l,g=a&&a[h]||p[h]||this[h]||0;n=a&&a.options.dashStyle||p.dashStyle;var d=q(a&&a.opacity,p.opacity,1);if(a&&this.zones.length){var x=a.getZone();l=a.options.color||x&&(x.color||a.nonZonedColor)||this.color;x&&(k=x.borderColor||k,n=x.dashStyle||n,g=x.borderWidth||g)}f&&a&&(a=L(p.states[f],a.options.states&&a.options.states[f]||{}),f=a.brightness,l=a.color||"undefined"!==typeof f&&D(l).brighten(a.brightness).get()||
l,k=a[m]||k,g=a[h]||g,n=a.dashStyle||n,d=q(a.opacity,d));m={fill:l,stroke:k,"stroke-width":g,opacity:d};n&&(m.dashstyle=n);return m},drawPoints:function(){var a=this,f=this.chart,n=a.options,q=f.renderer,m=n.animationLimit||250,h;a.points.forEach(function(l){var k=l.graphic,g=!!k,d=k&&f.pointCount<m?"animate":"attr";if(v(l.plotY)&&null!==l.y){h=l.shapeArgs;k&&l.hasNewShapeType()&&(k=k.destroy());a.enabledDataSorting&&(l.startXPos=a.xAxis.reversed?-(h?h.width:0):a.xAxis.width);k||(l.graphic=k=q[l.shapeType](h).add(l.group||
a.group))&&a.enabledDataSorting&&f.hasRendered&&f.pointCount<m&&(k.attr({x:l.startXPos}),g=!0,d="animate");if(k&&g)k[d](L(h));if(n.borderRadius)k[d]({r:n.borderRadius});f.styledMode||k[d](a.pointAttribs(l,l.selected&&"select")).shadow(!1!==l.allowShadow&&n.shadow,null,n.stacking&&!n.borderRadius);k.addClass(l.getClassName(),!0)}else k&&(l.graphic=k.destroy())})},animate:function(a){var f=this,p=this.yAxis,n=f.options,m=this.chart.inverted,h={},l=m?"translateX":"translateY";if(a)h.scaleY=.001,a=C(p.toPixels(n.threshold),
p.pos,p.pos+p.len),m?h.translateX=a-p.len:h.translateY=a,f.clipBox&&f.setClip(),f.group.attr(h);else{var k=f.group.attr(l);f.group.animate({scaleY:1},H(G(f.options.animation),{step:function(a,d){f.group&&(h[l]=k+d.pos*(p.pos-k),f.group.attr(h))}}))}},remove:function(){var a=this,f=a.chart;f.hasRendered&&f.series.forEach(function(f){f.type===a.type&&(f.isDirty=!0)});E.prototype.remove.apply(a,arguments)}});""});O(n,"Series/BarSeries.js",[n["Core/Utilities.js"]],function(f){f=f.seriesType;f("bar","column",
null,{inverted:!0});""});O(n,"Series/ScatterSeries.js",[n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a){var n=a.addEvent;a=a.seriesType;var y=f.Series;a("scatter","line",{lineWidth:0,findNearestPointBy:"xy",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">\u25cf</span> <span style="font-size: 10px"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}},{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group",
"markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&y.prototype.drawGraph.call(this)},applyJitter:function(){var a=this,f=this.options.jitter,n=this.points.length;f&&this.points.forEach(function(C,y){["x","y"].forEach(function(v,D){var q="plot"+v.toUpperCase();if(f[v]&&!C.isNull){var H=a[v+"Axis"];var E=f[v]*H.transA;if(H&&!H.isLog){var p=Math.max(0,C[q]-E);H=Math.min(H.len,C[q]+E);D=1E4*Math.sin(y+D*n);C[q]=p+(H-p)*(D-Math.floor(D));"x"===v&&(C.clientX=
C.plotX)}}})})}});n(y,"afterTranslate",function(){this.applyJitter&&this.applyJitter()});""});O(n,"Mixins/CenteredSeries.js",[n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a){var n=a.isNumber,y=a.pick,D=a.relativeLength,G=f.deg2rad;return f.CenteredSeriesMixin={getCenter:function(){var a=this.options,n=this.chart,H=2*(a.slicedOffset||0),v=n.plotWidth-2*H,G=n.plotHeight-2*H,q=a.center,K=Math.min(v,G),E=a.size,p=a.innerSize||0;"string"===typeof E&&(E=parseFloat(E));"string"===typeof p&&(p=
parseFloat(p));a=[y(q[0],"50%"),y(q[1],"50%"),y(E&&0>E?void 0:a.size,"100%"),y(p&&0>p?void 0:a.innerSize||0,"0%")];!n.angular||this instanceof f.Series||(a[3]=0);for(q=0;4>q;++q)E=a[q],n=2>q||2===q&&/%$/.test(E),a[q]=D(E,[v,G,K,a[2]][q])+(n?H:0);a[3]>a[2]&&(a[3]=a[2]);return a},getStartAndEndRadians:function(a,f){a=n(a)?a:0;f=n(f)&&f>a&&360>f-a?f:a+360;return{start:G*(a+-90),end:G*(f+-90)}}}});O(n,"Series/PieSeries.js",[n["Core/Globals.js"],n["Core/Renderer/SVG/SVGRenderer.js"],n["Mixins/LegendSymbol.js"],
n["Core/Series/Point.js"],n["Core/Utilities.js"],n["Mixins/CenteredSeries.js"]],function(f,a,n,y,D,G){var C=D.addEvent,J=D.clamp,H=D.defined,v=D.fireEvent,L=D.isNumber,q=D.merge,K=D.pick,E=D.relativeLength,p=D.seriesType,t=D.setAnimation,I=G.getStartAndEndRadians;D=f.noop;var u=f.Series;p("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,connectorShape:"fixedOffset",crookDistance:"70%",distance:30,enabled:!0,formatter:function(){return this.point.isNull?
void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:f.seriesTypes.column.prototype.pointAttribs,animate:function(a){var f=
this,l=f.points,k=f.startAngleRad;a||l.forEach(function(a){var d=a.graphic,g=a.shapeArgs;d&&g&&(d.attr({r:K(a.startR,f.center&&f.center[3]/2),start:k,end:k}),d.animate({r:g.r,start:g.start,end:g.end},f.options.animation))})},hasData:function(){return!!this.processedXData.length},updateTotals:function(){var a,f=0,l=this.points,k=l.length,g=this.options.ignoreHiddenPoint;for(a=0;a<k;a++){var d=l[a];f+=g&&!d.visible?0:d.isNull?0:d.y}this.total=f;for(a=0;a<k;a++)d=l[a],d.percentage=0<f&&(d.visible||!g)?
d.y/f*100:0,d.total=f},generatePoints:function(){u.prototype.generatePoints.call(this);this.updateTotals()},getX:function(a,f,l){var h=this.center,g=this.radii?this.radii[l.index]:h[2]/2;a=Math.asin(J((a-h[1])/(g+l.labelDistance),-1,1));return h[0]+(f?-1:1)*Math.cos(a)*(g+l.labelDistance)+(0<l.labelDistance?(f?-1:1)*this.options.dataLabels.padding:0)},translate:function(a){this.generatePoints();var f=0,l=this.options,k=l.slicedOffset,g=k+(l.borderWidth||0),d=I(l.startAngle,l.endAngle),m=this.startAngleRad=
d.start;d=(this.endAngleRad=d.end)-m;var n=this.points,p=l.dataLabels.distance;l=l.ignoreHiddenPoint;var q,t=n.length;a||(this.center=a=this.getCenter());for(q=0;q<t;q++){var u=n[q];var y=m+f*d;if(!l||u.visible)f+=u.percentage/100;var F=m+f*d;u.shapeType="arc";u.shapeArgs={x:a[0],y:a[1],r:a[2]/2,innerR:a[3]/2,start:Math.round(1E3*y)/1E3,end:Math.round(1E3*F)/1E3};u.labelDistance=K(u.options.dataLabels&&u.options.dataLabels.distance,p);u.labelDistance=E(u.labelDistance,u.shapeArgs.r);this.maxLabelDistance=
Math.max(this.maxLabelDistance||0,u.labelDistance);F=(F+y)/2;F>1.5*Math.PI?F-=2*Math.PI:F<-Math.PI/2&&(F+=2*Math.PI);u.slicedTranslation={translateX:Math.round(Math.cos(F)*k),translateY:Math.round(Math.sin(F)*k)};var e=Math.cos(F)*a[2]/2;var c=Math.sin(F)*a[2]/2;u.tooltipPos=[a[0]+.7*e,a[1]+.7*c];u.half=F<-Math.PI/2||F>Math.PI/2?1:0;u.angle=F;y=Math.min(g,u.labelDistance/5);u.labelPosition={natural:{x:a[0]+e+Math.cos(F)*u.labelDistance,y:a[1]+c+Math.sin(F)*u.labelDistance},"final":{},alignment:0>
u.labelDistance?"center":u.half?"right":"left",connectorPosition:{breakAt:{x:a[0]+e+Math.cos(F)*y,y:a[1]+c+Math.sin(F)*y},touchingSliceAt:{x:a[0]+e,y:a[1]+c}}}}v(this,"afterTranslate")},drawEmpty:function(){var f=this.startAngleRad,h=this.endAngleRad,l=this.options;if(0===this.total&&this.center){var k=this.center[0];var g=this.center[1];this.graph||(this.graph=this.chart.renderer.arc(k,g,this.center[1]/2,0,f,h).addClass("highcharts-empty-series").add(this.group));this.graph.attr({d:a.prototype.symbols.arc(k,
g,this.center[2]/2,0,{start:f,end:h,innerR:this.center[3]/2})});this.chart.styledMode||this.graph.attr({"stroke-width":l.borderWidth,fill:l.fillColor||"none",stroke:l.color||"#cccccc"})}else this.graph&&(this.graph=this.graph.destroy())},redrawPoints:function(){var a=this,f=a.chart,l=f.renderer,k,g,d,n,p=a.options.shadow;this.drawEmpty();!p||a.shadowGroup||f.styledMode||(a.shadowGroup=l.g("shadow").attr({zIndex:-1}).add(a.group));a.points.forEach(function(h){var m={};g=h.graphic;if(!h.isNull&&g){n=
h.shapeArgs;k=h.getTranslate();if(!f.styledMode){var r=h.shadowGroup;p&&!r&&(r=h.shadowGroup=l.g("shadow").add(a.shadowGroup));r&&r.attr(k);d=a.pointAttribs(h,h.selected&&"select")}h.delayedRendering?(g.setRadialReference(a.center).attr(n).attr(k),f.styledMode||g.attr(d).attr({"stroke-linejoin":"round"}).shadow(p,r),h.delayedRendering=!1):(g.setRadialReference(a.center),f.styledMode||q(!0,m,d),q(!0,m,n,k),g.animate(m));g.attr({visibility:h.visible?"inherit":"hidden"});g.addClass(h.getClassName())}else g&&
(h.graphic=g.destroy())})},drawPoints:function(){var a=this.chart.renderer;this.points.forEach(function(f){f.graphic&&f.hasNewShapeType()&&(f.graphic=f.graphic.destroy());f.graphic||(f.graphic=a[f.shapeType](f.shapeArgs).add(f.series.group),f.delayedRendering=!0)})},searchPoint:D,sortByAngle:function(a,f){a.sort(function(a,h){return"undefined"!==typeof a.angle&&(h.angle-a.angle)*f})},drawLegendSymbol:n.drawRectangle,getCenter:G.getCenter,getSymbol:D,drawGraph:null},{init:function(){y.prototype.init.apply(this,
arguments);var a=this;a.name=K(a.name,"Slice");var f=function(f){a.slice("select"===f.type)};C(a,"select",f);C(a,"unselect",f);return a},isValid:function(){return L(this.y)&&0<=this.y},setVisible:function(a,f){var h=this,k=h.series,g=k.chart,d=k.options.ignoreHiddenPoint;f=K(f,d);a!==h.visible&&(h.visible=h.options.visible=a="undefined"===typeof a?!h.visible:a,k.options.data[k.data.indexOf(h)]=h.options,["graphic","dataLabel","connector","shadowGroup"].forEach(function(d){if(h[d])h[d][a?"show":"hide"](!0)}),
h.legendItem&&g.legend.colorizeItem(h,a),a||"hover"!==h.state||h.setState(""),d&&(k.isDirty=!0),f&&g.redraw())},slice:function(a,f,l){var h=this.series;t(l,h.chart);K(f,!0);this.sliced=this.options.sliced=H(a)?a:!this.sliced;h.options.data[h.data.indexOf(this)]=this.options;this.graphic&&this.graphic.animate(this.getTranslate());this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(a){var f=
this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(f.x,f.y,f.r+a,f.r+a,{innerR:f.r-1,start:f.start,end:f.end})},connectorShapes:{fixedOffset:function(a,f,l){var h=f.breakAt;f=f.touchingSliceAt;return[["M",a.x,a.y],l.softConnector?["C",a.x+("left"===a.alignment?-5:5),a.y,2*h.x-f.x,2*h.y-f.y,h.x,h.y]:["L",h.x,h.y],["L",f.x,f.y]]},straight:function(a,f){f=f.touchingSliceAt;return[["M",a.x,a.y],["L",f.x,f.y]]},crookedLine:function(a,f,l){f=f.touchingSliceAt;var h=
this.series,g=h.center[0],d=h.chart.plotWidth,m=h.chart.plotLeft;h=a.alignment;var n=this.shapeArgs.r;l=E(l.crookDistance,1);d="left"===h?g+n+(d+m-g-n)*(1-l):m+(g-n)*l;l=["L",d,a.y];g=!0;if("left"===h?d>a.x||d<f.x:d<a.x||d>f.x)g=!1;a=[["M",a.x,a.y]];g&&a.push(l);a.push(["L",f.x,f.y]);return a}},getConnectorPath:function(){var a=this.labelPosition,f=this.series.options.dataLabels,l=f.connectorShape,k=this.connectorShapes;k[l]&&(l=k[l]);return l.call(this,{x:a.final.x,y:a.final.y,alignment:a.alignment},
a.connectorPosition,f)}});""});O(n,"Core/Series/DataLabels.js",[n["Core/Globals.js"],n["Core/Utilities.js"]],function(f,a){var n=f.noop,y=f.seriesTypes,D=a.arrayMax,G=a.clamp,C=a.defined,J=a.extend,H=a.fireEvent,v=a.format,L=a.getDeferredAnimation,q=a.isArray,K=a.merge,E=a.objectEach,p=a.pick,t=a.relativeLength,I=a.splat,u=a.stableSort,m=f.Series;f.distribute=function(a,l,k){function g(a,d){return a.target-d.target}var d,h=!0,m=a,n=[];var q=0;var t=m.reducedLen||l;for(d=a.length;d--;)q+=a[d].size;
if(q>t){u(a,function(a,d){return(d.rank||0)-(a.rank||0)});for(q=d=0;q<=t;)q+=a[d].size,d++;n=a.splice(d-1,a.length)}u(a,g);for(a=a.map(function(a){return{size:a.size,targets:[a.target],align:p(a.align,.5)}});h;){for(d=a.length;d--;)h=a[d],q=(Math.min.apply(0,h.targets)+Math.max.apply(0,h.targets))/2,h.pos=G(q-h.size*h.align,0,l-h.size);d=a.length;for(h=!1;d--;)0<d&&a[d-1].pos+a[d-1].size>a[d].pos&&(a[d-1].size+=a[d].size,a[d-1].targets=a[d-1].targets.concat(a[d].targets),a[d-1].align=.5,a[d-1].pos+
a[d-1].size>l&&(a[d-1].pos=l-a[d-1].size),a.splice(d,1),h=!0)}m.push.apply(m,n);d=0;a.some(function(a){var g=0;if(a.targets.some(function(){m[d].pos=a.pos+g;if("undefined"!==typeof k&&Math.abs(m[d].pos-m[d].target)>k)return m.slice(0,d+1).forEach(function(a){delete a.pos}),m.reducedLen=(m.reducedLen||l)-.1*l,m.reducedLen>.1*l&&f.distribute(m,l,k),!0;g+=m[d].size;d++}))return!0});u(m,g)};m.prototype.drawDataLabels=function(){function a(a,d){var c=d.filter;return c?(d=c.operator,a=a[c.property],c=c.value,
">"===d&&a>c||"<"===d&&a<c||">="===d&&a>=c||"<="===d&&a<=c||"=="===d&&a==c||"==="===d&&a===c?!0:!1):!0}function f(a,d){var c=[],b;if(q(a)&&!q(d))c=a.map(function(a){return K(a,d)});else if(q(d)&&!q(a))c=d.map(function(b){return K(a,b)});else if(q(a)||q(d))for(b=Math.max(a.length,d.length);b--;)c[b]=K(a[b],d[b]);else c=K(a,d);return c}var k=this,g=k.chart,d=k.options,m=d.dataLabels,n=k.points,t,u=k.hasRendered||0,B=m.animation;B=m.defer?L(g,B,k):{defer:0,duration:0};var y=g.renderer;m=f(f(g.options.plotOptions&&
g.options.plotOptions.series&&g.options.plotOptions.series.dataLabels,g.options.plotOptions&&g.options.plotOptions[k.type]&&g.options.plotOptions[k.type].dataLabels),m);H(this,"drawDataLabels");if(q(m)||m.enabled||k._hasPointLabels){var D=k.plotGroup("dataLabelsGroup","data-labels",u?"inherit":"hidden",m.zIndex||6);D.attr({opacity:+u});!u&&(u=k.dataLabelsGroup)&&(k.visible&&D.show(!0),u[d.animation?"animate":"attr"]({opacity:1},B));n.forEach(function(h){t=I(f(m,h.dlOptions||h.options&&h.options.dataLabels));
t.forEach(function(e,c){var b=e.enabled&&(!h.isNull||h.dataLabelOnNull)&&a(h,e),f=h.dataLabels?h.dataLabels[c]:h.dataLabel,l=h.connectors?h.connectors[c]:h.connector,m=p(e.distance,h.labelDistance),n=!f;if(b){var r=h.getLabelConfig();var q=p(e[h.formatPrefix+"Format"],e.format);r=C(q)?v(q,r,g):(e[h.formatPrefix+"Formatter"]||e.formatter).call(r,e);q=e.style;var t=e.rotation;g.styledMode||(q.color=p(e.color,q.color,k.color,"#000000"),"contrast"===q.color?(h.contrastColor=y.getContrast(h.color||k.color),
q.color=!C(m)&&e.inside||0>m||d.stacking?h.contrastColor:"#000000"):delete h.contrastColor,d.cursor&&(q.cursor=d.cursor));var x={r:e.borderRadius||0,rotation:t,padding:e.padding,zIndex:1};g.styledMode||(x.fill=e.backgroundColor,x.stroke=e.borderColor,x["stroke-width"]=e.borderWidth);E(x,function(a,b){"undefined"===typeof a&&delete x[b]})}!f||b&&C(r)?b&&C(r)&&(f?x.text=r:(h.dataLabels=h.dataLabels||[],f=h.dataLabels[c]=t?y.text(r,0,-9999,e.useHTML).addClass("highcharts-data-label"):y.label(r,0,-9999,
e.shape,null,null,e.useHTML,null,"data-label"),c||(h.dataLabel=f),f.addClass(" highcharts-data-label-color-"+h.colorIndex+" "+(e.className||"")+(e.useHTML?" highcharts-tracker":""))),f.options=e,f.attr(x),g.styledMode||f.css(q).shadow(e.shadow),f.added||f.add(D),e.textPath&&!e.useHTML&&(f.setTextPath(h.getDataLabelPath&&h.getDataLabelPath(f)||h.graphic,e.textPath),h.dataLabelPath&&!e.textPath.enabled&&(h.dataLabelPath=h.dataLabelPath.destroy())),k.alignDataLabel(h,f,e,null,n)):(h.dataLabel=h.dataLabel&&
h.dataLabel.destroy(),h.dataLabels&&(1===h.dataLabels.length?delete h.dataLabels:delete h.dataLabels[c]),c||delete h.dataLabel,l&&(h.connector=h.connector.destroy(),h.connectors&&(1===h.connectors.length?delete h.connectors:delete h.connectors[c])))})})}H(this,"afterDrawDataLabels")};m.prototype.alignDataLabel=function(a,f,k,g,d){var h=this,l=this.chart,m=this.isCartesian&&l.inverted,n=this.enabledDataSorting,q=p(a.dlBox&&a.dlBox.centerX,a.plotX,-9999),t=p(a.plotY,-9999),v=f.getBBox(),u=k.rotation,
e=k.align,c=l.isInsidePlot(q,Math.round(t),m),b="justify"===p(k.overflow,n?"none":"justify"),z=this.visible&&!1!==a.visible&&(a.series.forceDL||n&&!b||c||k.inside&&g&&l.isInsidePlot(q,m?g.x+1:g.y+g.height-1,m));var w=function(e){n&&h.xAxis&&!b&&h.setDataLabelStartPos(a,f,d,c,e)};if(z){var y=l.renderer.fontMetrics(l.styledMode?void 0:k.style.fontSize,f).b;g=J({x:m?this.yAxis.len-t:q,y:Math.round(m?this.xAxis.len-q:t),width:0,height:0},g);J(k,{width:v.width,height:v.height});u?(b=!1,q=l.renderer.rotCorr(y,
u),q={x:g.x+(k.x||0)+g.width/2+q.x,y:g.y+(k.y||0)+{top:0,middle:.5,bottom:1}[k.verticalAlign]*g.height},w(q),f[d?"attr":"animate"](q).attr({align:e}),w=(u+720)%360,w=180<w&&360>w,"left"===e?q.y-=w?v.height:0:"center"===e?(q.x-=v.width/2,q.y-=v.height/2):"right"===e&&(q.x-=v.width,q.y-=w?0:v.height),f.placed=!0,f.alignAttr=q):(w(g),f.align(k,null,g),q=f.alignAttr);b&&0<=g.height?this.justifyDataLabel(f,k,q,v,g,d):p(k.crop,!0)&&(z=l.isInsidePlot(q.x,q.y)&&l.isInsidePlot(q.x+v.width,q.y+v.height));if(k.shape&&
!u)f[d?"attr":"animate"]({anchorX:m?l.plotWidth-a.plotY:a.plotX,anchorY:m?l.plotHeight-a.plotX:a.plotY})}d&&n&&(f.placed=!1);z||n&&!b||(f.hide(!0),f.placed=!1)};m.prototype.setDataLabelStartPos=function(a,f,k,g,d){var h=this.chart,l=h.inverted,m=this.xAxis,n=m.reversed,p=l?f.height/2:f.width/2;a=(a=a.pointWidth)?a/2:0;m=l?d.x:n?-p-a:m.width-p+a;d=l?n?this.yAxis.height-p+a:-p-a:d.y;f.startXPos=m;f.startYPos=d;g?"hidden"===f.visibility&&(f.show(),f.attr({opacity:0}).animate({opacity:1})):f.attr({opacity:1}).animate({opacity:0},
void 0,f.hide);h.hasRendered&&(k&&f.attr({x:f.startXPos,y:f.startYPos}),f.placed=!0)};m.prototype.justifyDataLabel=function(a,f,k,g,d,m){var h=this.chart,l=f.align,n=f.verticalAlign,p=a.box?0:a.padding||0,q=f.x;q=void 0===q?0:q;var t=f.y;var x=void 0===t?0:t;t=k.x+p;if(0>t){"right"===l&&0<=q?(f.align="left",f.inside=!0):q-=t;var e=!0}t=k.x+g.width-p;t>h.plotWidth&&("left"===l&&0>=q?(f.align="right",f.inside=!0):q+=h.plotWidth-t,e=!0);t=k.y+p;0>t&&("bottom"===n&&0<=x?(f.verticalAlign="top",f.inside=
!0):x-=t,e=!0);t=k.y+g.height-p;t>h.plotHeight&&("top"===n&&0>=x?(f.verticalAlign="bottom",f.inside=!0):x+=h.plotHeight-t,e=!0);e&&(f.x=q,f.y=x,a.placed=!m,a.align(f,void 0,d));return e};y.pie&&(y.pie.prototype.dataLabelPositioners={radialDistributionY:function(a){return a.top+a.distributeBox.pos},radialDistributionX:function(a,f,k,g){return a.getX(k<f.top+2||k>f.bottom-2?g:k,f.half,f)},justify:function(a,f,k){return k[0]+(a.half?-1:1)*(f+a.labelDistance)},alignToPlotEdges:function(a,f,k,g){a=a.getBBox().width;
return f?a+g:k-a-g},alignToConnectors:function(a,f,k,g){var d=0,h;a.forEach(function(a){h=a.dataLabel.getBBox().width;h>d&&(d=h)});return f?d+g:k-d-g}},y.pie.prototype.drawDataLabels=function(){var a=this,l=a.data,k,g=a.chart,d=a.options.dataLabels||{},n=d.connectorPadding,r,q=g.plotWidth,t=g.plotHeight,v=g.plotLeft,u=Math.round(g.chartWidth/3),y,F=a.center,e=F[2]/2,c=F[1],b,z,w,E,H=[[],[]],G,I,J,L,O=[0,0,0,0],S=a.dataLabelPositioners,V;a.visible&&(d.enabled||a._hasPointLabels)&&(l.forEach(function(a){a.dataLabel&&
a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),m.prototype.drawDataLabels.apply(a),l.forEach(function(a){a.dataLabel&&(a.visible?(H[a.half].push(a),a.dataLabel._pos=null,!C(d.style.width)&&!C(a.options.dataLabels&&a.options.dataLabels.style&&a.options.dataLabels.style.width)&&a.dataLabel.getBBox().width>u&&(a.dataLabel.css({width:Math.round(.7*u)+"px"}),a.dataLabel.shortened=!0)):(a.dataLabel=a.dataLabel.destroy(),
a.dataLabels&&1===a.dataLabels.length&&delete a.dataLabels))}),H.forEach(function(h,l){var m=h.length,r=[],x;if(m){a.sortByAngle(h,l-.5);if(0<a.maxLabelDistance){var u=Math.max(0,c-e-a.maxLabelDistance);var A=Math.min(c+e+a.maxLabelDistance,g.plotHeight);h.forEach(function(a){0<a.labelDistance&&a.dataLabel&&(a.top=Math.max(0,c-e-a.labelDistance),a.bottom=Math.min(c+e+a.labelDistance,g.plotHeight),x=a.dataLabel.getBBox().height||21,a.distributeBox={target:a.labelPosition.natural.y-a.top+x/2,size:x,
rank:a.y},r.push(a.distributeBox))});u=A+x-u;f.distribute(r,u,u/5)}for(L=0;L<m;L++){k=h[L];w=k.labelPosition;b=k.dataLabel;J=!1===k.visible?"hidden":"inherit";I=u=w.natural.y;r&&C(k.distributeBox)&&("undefined"===typeof k.distributeBox.pos?J="hidden":(E=k.distributeBox.size,I=S.radialDistributionY(k)));delete k.positionIndex;if(d.justify)G=S.justify(k,e,F);else switch(d.alignTo){case "connectors":G=S.alignToConnectors(h,l,q,v);break;case "plotEdges":G=S.alignToPlotEdges(b,l,q,v);break;default:G=S.radialDistributionX(a,
k,I,u)}b._attr={visibility:J,align:w.alignment};V=k.options.dataLabels||{};b._pos={x:G+p(V.x,d.x)+({left:n,right:-n}[w.alignment]||0),y:I+p(V.y,d.y)-10};w.final.x=G;w.final.y=I;p(d.crop,!0)&&(z=b.getBBox().width,u=null,G-z<n&&1===l?(u=Math.round(z-G+n),O[3]=Math.max(u,O[3])):G+z>q-n&&0===l&&(u=Math.round(G+z-q+n),O[1]=Math.max(u,O[1])),0>I-E/2?O[0]=Math.max(Math.round(-I+E/2),O[0]):I+E/2>t&&(O[2]=Math.max(Math.round(I+E/2-t),O[2])),b.sideOverflow=u)}}}),0===D(O)||this.verifyDataLabelOverflow(O))&&
(this.placeDataLabels(),this.points.forEach(function(c){V=K(d,c.options.dataLabels);if(r=p(V.connectorWidth,1)){var e;y=c.connector;if((b=c.dataLabel)&&b._pos&&c.visible&&0<c.labelDistance){J=b._attr.visibility;if(e=!y)c.connector=y=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+c.colorIndex+(c.className?" "+c.className:"")).add(a.dataLabelsGroup),g.styledMode||y.attr({"stroke-width":r,stroke:V.connectorColor||c.color||"#666666"});y[e?"attr":"animate"]({d:c.getConnectorPath()});
y.attr("visibility",J)}else y&&(c.connector=y.destroy())}}))},y.pie.prototype.placeDataLabels=function(){this.points.forEach(function(a){var f=a.dataLabel,h;f&&a.visible&&((h=f._pos)?(f.sideOverflow&&(f._attr.width=Math.max(f.getBBox().width-f.sideOverflow,0),f.css({width:f._attr.width+"px",textOverflow:(this.options.dataLabels.style||{}).textOverflow||"ellipsis"}),f.shortened=!0),f.attr(f._attr),f[f.moved?"animate":"attr"](h),f.moved=!0):f&&f.attr({y:-9999}));delete a.distributeBox},this)},y.pie.prototype.alignDataLabel=
n,y.pie.prototype.verifyDataLabelOverflow=function(a){var f=this.center,h=this.options,g=h.center,d=h.minSize||80,m=null!==h.size;if(!m){if(null!==g[0])var n=Math.max(f[2]-Math.max(a[1],a[3]),d);else n=Math.max(f[2]-a[1]-a[3],d),f[0]+=(a[3]-a[1])/2;null!==g[1]?n=G(n,d,f[2]-Math.max(a[0],a[2])):(n=G(n,d,f[2]-a[0]-a[2]),f[1]+=(a[0]-a[2])/2);n<f[2]?(f[2]=n,f[3]=Math.min(t(h.innerSize||0,n),n),this.translate(f),this.drawDataLabels&&this.drawDataLabels()):m=!0}return m});y.column&&(y.column.prototype.alignDataLabel=
function(a,f,k,g,d){var h=this.chart.inverted,l=a.series,n=a.dlBox||a.shapeArgs,q=p(a.below,a.plotY>p(this.translatedThreshold,l.yAxis.len)),t=p(k.inside,!!this.options.stacking);n&&(g=K(n),0>g.y&&(g.height+=g.y,g.y=0),n=g.y+g.height-l.yAxis.len,0<n&&n<g.height&&(g.height-=n),h&&(g={x:l.yAxis.len-g.y-g.height,y:l.xAxis.len-g.x-g.width,width:g.height,height:g.width}),t||(h?(g.x+=q?0:g.width,g.width=0):(g.y+=q?g.height:0,g.height=0)));k.align=p(k.align,!h||t?"center":q?"right":"left");k.verticalAlign=
p(k.verticalAlign,h||t?"middle":q?"top":"bottom");m.prototype.alignDataLabel.call(this,a,f,k,g,d);k.inside&&a.contrastColor&&f.css({color:a.contrastColor})})});O(n,"Extensions/OverlappingDataLabels.js",[n["Core/Chart/Chart.js"],n["Core/Utilities.js"]],function(f,a){var n=a.addEvent,y=a.fireEvent,D=a.isArray,G=a.isNumber,C=a.objectEach,J=a.pick;n(f,"render",function(){var a=[];(this.labelCollectors||[]).forEach(function(f){a=a.concat(f())});(this.yAxis||[]).forEach(function(f){f.stacking&&f.options.stackLabels&&
!f.options.stackLabels.allowOverlap&&C(f.stacking.stacks,function(f){C(f,function(f){a.push(f.label)})})});(this.series||[]).forEach(function(f){var n=f.options.dataLabels;f.visible&&(!1!==n.enabled||f._hasPointLabels)&&(f.nodes||f.points).forEach(function(f){f.visible&&(D(f.dataLabels)?f.dataLabels:f.dataLabel?[f.dataLabel]:[]).forEach(function(n){var q=n.options;n.labelrank=J(q.labelrank,f.labelrank,f.shapeArgs&&f.shapeArgs.height);q.allowOverlap||a.push(n)})})});this.hideOverlappingLabels(a)});
f.prototype.hideOverlappingLabels=function(a){var f=this,n=a.length,q=f.renderer,C,E,p,t=!1;var D=function(a){var f,h=a.box?0:a.padding||0,g=f=0,d;if(a&&(!a.alignAttr||a.placed)){var m=a.alignAttr||{x:a.attr("x"),y:a.attr("y")};var n=a.parentGroup;a.width||(f=a.getBBox(),a.width=f.width,a.height=f.height,f=q.fontMetrics(null,a.element).h);var p=a.width-2*h;(d={left:"0",center:"0.5",right:"1"}[a.alignValue])?g=+d*p:G(a.x)&&Math.round(a.x)!==a.translateX&&(g=a.x-a.translateX);return{x:m.x+(n.translateX||
0)+h-(g||0),y:m.y+(n.translateY||0)+h-f,width:a.width-2*h,height:a.height-2*h}}};for(E=0;E<n;E++)if(C=a[E])C.oldOpacity=C.opacity,C.newOpacity=1,C.absoluteBox=D(C);a.sort(function(a,f){return(f.labelrank||0)-(a.labelrank||0)});for(E=0;E<n;E++){var u=(D=a[E])&&D.absoluteBox;for(C=E+1;C<n;++C){var m=(p=a[C])&&p.absoluteBox;!u||!m||D===p||0===D.newOpacity||0===p.newOpacity||m.x>=u.x+u.width||m.x+m.width<=u.x||m.y>=u.y+u.height||m.y+m.height<=u.y||((D.labelrank<p.labelrank?D:p).newOpacity=0)}}a.forEach(function(a){if(a){var h=
a.newOpacity;a.oldOpacity!==h&&(a.alignAttr&&a.placed?(a[h?"removeClass":"addClass"]("highcharts-data-label-hidden"),t=!0,a.alignAttr.opacity=h,a[a.isOld?"animate":"attr"](a.alignAttr,null,function(){f.styledMode||a.css({pointerEvents:h?"auto":"none"});a.visibility=h?"inherit":"hidden"}),y(f,"afterHideOverlappingLabel")):a.attr({opacity:h}));a.isOld=!0}});t&&y(f,"afterHideAllOverlappingLabels")}});O(n,"Core/Interaction.js",[n["Core/Chart/Chart.js"],n["Core/Globals.js"],n["Core/Legend.js"],n["Core/Options.js"],
n["Core/Series/Point.js"],n["Core/Utilities.js"]],function(f,a,n,y,D,G){var C=y.defaultOptions,J=G.addEvent,H=G.createElement,v=G.css,L=G.defined,q=G.extend,K=G.fireEvent,E=G.isArray,p=G.isFunction,t=G.isNumber,I=G.isObject,u=G.merge,m=G.objectEach,h=G.pick,l=a.hasTouch;y=a.Series;G=a.seriesTypes;var k=a.svg;var g=a.TrackerMixin={drawTrackerPoint:function(){var a=this,f=a.chart,g=f.pointer,h=function(a){var d=g.getPointFromEvent(a);"undefined"!==typeof d&&(g.isDirectTouch=!0,d.onMouseOver(a))},k;
a.points.forEach(function(a){k=E(a.dataLabels)?a.dataLabels:a.dataLabel?[a.dataLabel]:[];a.graphic&&(a.graphic.element.point=a);k.forEach(function(d){d.div?d.div.point=a:d.element.point=a})});a._hasTracking||(a.trackerGroups.forEach(function(d){if(a[d]){a[d].addClass("highcharts-tracker").on("mouseover",h).on("mouseout",function(a){g.onTrackerMouseOut(a)});if(l)a[d].on("touchstart",h);!f.styledMode&&a.options.cursor&&a[d].css(v).css({cursor:a.options.cursor})}}),a._hasTracking=!0);K(this,"afterDrawTracker")},
drawTrackerGraph:function(){var a=this,f=a.options,g=f.trackByArea,h=[].concat(g?a.areaPath:a.graphPath),m=a.chart,n=m.pointer,p=m.renderer,q=m.options.tooltip.snap,t=a.tracker,e=function(b){if(m.hoverSeries!==a)a.onMouseOver()},c="rgba(192,192,192,"+(k?.0001:.002)+")";t?t.attr({d:h}):a.graph&&(a.tracker=p.path(h).attr({visibility:a.visible?"visible":"hidden",zIndex:2}).addClass(g?"highcharts-tracker-area":"highcharts-tracker-line").add(a.group),m.styledMode||a.tracker.attr({"stroke-linecap":"round",
"stroke-linejoin":"round",stroke:c,fill:g?c:"none","stroke-width":a.graph.strokeWidth()+(g?0:2*q)}),[a.tracker,a.markerGroup].forEach(function(a){a.addClass("highcharts-tracker").on("mouseover",e).on("mouseout",function(a){n.onTrackerMouseOut(a)});f.cursor&&!m.styledMode&&a.css({cursor:f.cursor});if(l)a.on("touchstart",e)}));K(this,"afterDrawTracker")}};G.column&&(G.column.prototype.drawTracker=g.drawTrackerPoint);G.pie&&(G.pie.prototype.drawTracker=g.drawTrackerPoint);G.scatter&&(G.scatter.prototype.drawTracker=
g.drawTrackerPoint);q(n.prototype,{setItemEvents:function(a,f,g){var d=this,h=d.chart.renderer.boxWrapper,k=a instanceof D,l="highcharts-legend-"+(k?"point":"series")+"-active",m=d.chart.styledMode;(g?[f,a.legendSymbol]:[a.legendGroup]).forEach(function(g){if(g)g.on("mouseover",function(){a.visible&&d.allItems.forEach(function(d){a!==d&&d.setState("inactive",!k)});a.setState("hover");a.visible&&h.addClass(l);m||f.css(d.options.itemHoverStyle)}).on("mouseout",function(){d.chart.styledMode||f.css(u(a.visible?
d.itemStyle:d.itemHiddenStyle));d.allItems.forEach(function(d){a!==d&&d.setState("",!k)});h.removeClass(l);a.setState()}).on("click",function(e){var c=function(){a.setVisible&&a.setVisible();d.allItems.forEach(function(b){a!==b&&b.setState(a.visible?"inactive":"",!k)})};h.removeClass(l);e={browserEvent:e};a.firePointEvent?a.firePointEvent("legendItemClick",e,c):K(a,"legendItemClick",e,c)})})},createCheckboxForItem:function(a){a.checkbox=H("input",{type:"checkbox",className:"highcharts-legend-checkbox",
checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container);J(a.checkbox,"click",function(d){K(a.series||a,"checkboxClick",{checked:d.target.checked,item:a},function(){a.select()})})}});q(f.prototype,{showResetZoom:function(){function a(){f.zoomOut()}var f=this,g=C.lang,h=f.options.chart.resetZoomButton,k=h.theme,l=k.states,m="chart"===h.relativeTo||"spaceBox"===h.relativeTo?null:"plotBox";K(this,"beforeShowResetZoom",null,function(){f.resetZoomButton=f.renderer.button(g.resetZoom,
null,null,a,k,l&&l.hover).attr({align:h.position.align,title:g.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(h.position,!1,m)});K(this,"afterShowResetZoom")},zoomOut:function(){K(this,"selection",{resetSelection:!0},this.zoom)},zoom:function(a){var d=this,f,g=d.pointer,k=!1,l=d.inverted?g.mouseDownX:g.mouseDownY;!a||a.resetSelection?(d.axes.forEach(function(a){f=a.zoom()}),g.initiated=!1):a.xAxis.concat(a.yAxis).forEach(function(a){var h=a.axis,e=d.inverted?h.left:h.top,c=d.inverted?
e+h.width:e+h.height,b=h.isXAxis,m=!1;if(!b&&l>=e&&l<=c||b||!L(l))m=!0;g[b?"zoomX":"zoomY"]&&m&&(f=h.zoom(a.min,a.max),h.displayBtn&&(k=!0))});var m=d.resetZoomButton;k&&!m?d.showResetZoom():!k&&I(m)&&(d.resetZoomButton=m.destroy());f&&d.redraw(h(d.options.chart.animation,a&&a.animation,100>d.pointCount))},pan:function(d,f){var g=this,h=g.hoverPoints,k=g.options.chart,l=g.options.mapNavigation&&g.options.mapNavigation.enabled,m;f="object"===typeof f?f:{enabled:f,type:"x"};k&&k.panning&&(k.panning=
f);var n=f.type;K(this,"pan",{originalEvent:d},function(){h&&h.forEach(function(a){a.setState()});var f=[1];"xy"===n?f=[1,0]:"y"===n&&(f=[0]);f.forEach(function(e){var c=g[e?"xAxis":"yAxis"][0],b=c.horiz,f=d[b?"chartX":"chartY"];b=b?"mouseDownX":"mouseDownY";var h=g[b],k=(c.pointRange||0)/2,p=c.reversed&&!g.inverted||!c.reversed&&g.inverted?-1:1,q=c.getExtremes(),r=c.toValue(h-f,!0)+k*p;p=c.toValue(h+c.len-f,!0)-k*p;var u=p<r;h=u?p:r;r=u?r:p;var v=c.hasVerticalPanning(),x=c.panningState;c.series.forEach(function(a){if(v&&
!e&&(!x||x.isDirty)){var b=a.getProcessedData(!0);a=a.getExtremes(b.yData,!0);x||(x={startMin:Number.MAX_VALUE,startMax:-Number.MAX_VALUE});t(a.dataMin)&&t(a.dataMax)&&(x.startMin=Math.min(a.dataMin,x.startMin),x.startMax=Math.max(a.dataMax,x.startMax))}});p=Math.min(a.pick(null===x||void 0===x?void 0:x.startMin,q.dataMin),k?q.min:c.toValue(c.toPixels(q.min)-c.minPixelPadding));k=Math.max(a.pick(null===x||void 0===x?void 0:x.startMax,q.dataMax),k?q.max:c.toValue(c.toPixels(q.max)+c.minPixelPadding));
c.panningState=x;c.isOrdinal||(u=p-h,0<u&&(r+=u,h=p),u=r-k,0<u&&(r=k,h-=u),c.series.length&&h!==q.min&&r!==q.max&&h>=p&&r<=k&&(c.setExtremes(h,r,!1,!1,{trigger:"pan"}),g.resetZoomButton||l||h===p||r===k||!n.match("y")||(g.showResetZoom(),c.displayBtn=!1),m=!0),g[b]=f)});m&&g.redraw(!1);v(g.container,{cursor:"move"})})}});q(D.prototype,{select:function(a,f){var d=this,g=d.series,k=g.chart;this.selectedStaging=a=h(a,!d.selected);d.firePointEvent(a?"select":"unselect",{accumulate:f},function(){d.selected=
d.options.selected=a;g.options.data[g.data.indexOf(d)]=d.options;d.setState(a&&"select");f||k.getSelectedPoints().forEach(function(a){var f=a.series;a.selected&&a!==d&&(a.selected=a.options.selected=!1,f.options.data[f.data.indexOf(a)]=a.options,a.setState(k.hoverPoints&&f.options.inactiveOtherPoints?"inactive":""),a.firePointEvent("unselect"))})});delete this.selectedStaging},onMouseOver:function(a){var d=this.series.chart,f=d.pointer;a=a?f.normalize(a):f.getChartCoordinatesFromPoint(this,d.inverted);
f.runPointActions(a,this)},onMouseOut:function(){var a=this.series.chart;this.firePointEvent("mouseOut");this.series.options.inactiveOtherPoints||(a.hoverPoints||[]).forEach(function(a){a.setState()});a.hoverPoints=a.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var a=this,f=u(a.series.options.point,a.options).events;a.events=f;m(f,function(d,f){p(d)&&J(a,f,d)});this.hasImportedEvents=!0}},setState:function(a,f){var d=this.series,g=this.state,k=d.options.states[a||"normal"]||
{},l=C.plotOptions[d.type].marker&&d.options.marker,m=l&&!1===l.enabled,n=l&&l.states&&l.states[a||"normal"]||{},p=!1===n.enabled,e=d.stateMarkerGraphic,c=this.marker||{},b=d.chart,t=d.halo,u,v=l&&d.markerAttribs;a=a||"";if(!(a===this.state&&!f||this.selected&&"select"!==a||!1===k.enabled||a&&(p||m&&!1===n.enabled)||a&&c.states&&c.states[a]&&!1===c.states[a].enabled)){this.state=a;v&&(u=d.markerAttribs(this,a));if(this.graphic){g&&this.graphic.removeClass("highcharts-point-"+g);a&&this.graphic.addClass("highcharts-point-"+
a);if(!b.styledMode){var x=d.pointAttribs(this,a);var y=h(b.options.chart.animation,k.animation);d.options.inactiveOtherPoints&&x.opacity&&((this.dataLabels||[]).forEach(function(a){a&&a.animate({opacity:x.opacity},y)}),this.connector&&this.connector.animate({opacity:x.opacity},y));this.graphic.animate(x,y)}u&&this.graphic.animate(u,h(b.options.chart.animation,n.animation,l.animation));e&&e.hide()}else{if(a&&n){g=c.symbol||d.symbol;e&&e.currentSymbol!==g&&(e=e.destroy());if(u)if(e)e[f?"animate":"attr"]({x:u.x,
y:u.y});else g&&(d.stateMarkerGraphic=e=b.renderer.symbol(g,u.x,u.y,u.width,u.height).add(d.markerGroup),e.currentSymbol=g);!b.styledMode&&e&&e.attr(d.pointAttribs(this,a))}e&&(e[a&&this.isInside?"show":"hide"](),e.element.point=this)}a=k.halo;k=(e=this.graphic||e)&&e.visibility||"inherit";a&&a.size&&e&&"hidden"!==k&&!this.isCluster?(t||(d.halo=t=b.renderer.path().add(e.parentGroup)),t.show()[f?"animate":"attr"]({d:this.haloPath(a.size)}),t.attr({"class":"highcharts-halo highcharts-color-"+h(this.colorIndex,
d.colorIndex)+(this.className?" "+this.className:""),visibility:k,zIndex:-1}),t.point=this,b.styledMode||t.attr(q({fill:this.color||d.color,"fill-opacity":a.opacity},a.attributes))):t&&t.point&&t.point.haloPath&&t.animate({d:t.point.haloPath(0)},null,t.hide);K(this,"afterSetState")}},haloPath:function(a){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-a,this.plotY-a,2*a,2*a)}});q(y.prototype,{onMouseOver:function(){var a=this.chart,f=a.hoverSeries;a.pointer.setHoverChartIndex();
if(f&&f!==this)f.onMouseOut();this.options.events.mouseOver&&K(this,"mouseOver");this.setState("hover");a.hoverSeries=this},onMouseOut:function(){var a=this.options,f=this.chart,g=f.tooltip,h=f.hoverPoint;f.hoverSeries=null;if(h)h.onMouseOut();this&&a.events.mouseOut&&K(this,"mouseOut");!g||this.stickyTracking||g.shared&&!this.noSharedTooltip||g.hide();f.series.forEach(function(a){a.setState("",!0)})},setState:function(a,f){var d=this,g=d.options,k=d.graph,l=g.inactiveOtherPoints,m=g.states,n=g.lineWidth,
p=g.opacity,e=h(m[a||"normal"]&&m[a||"normal"].animation,d.chart.options.chart.animation);g=0;a=a||"";if(d.state!==a&&([d.group,d.markerGroup,d.dataLabelsGroup].forEach(function(c){c&&(d.state&&c.removeClass("highcharts-series-"+d.state),a&&c.addClass("highcharts-series-"+a))}),d.state=a,!d.chart.styledMode)){if(m[a]&&!1===m[a].enabled)return;a&&(n=m[a].lineWidth||n+(m[a].lineWidthPlus||0),p=h(m[a].opacity,p));if(k&&!k.dashstyle)for(m={"stroke-width":n},k.animate(m,e);d["zone-graph-"+g];)d["zone-graph-"+
g].attr(m),g+=1;l||[d.group,d.markerGroup,d.dataLabelsGroup,d.labelBySeries].forEach(function(a){a&&a.animate({opacity:p},e)})}f&&l&&d.points&&d.setAllPointsToState(a)},setAllPointsToState:function(a){this.points.forEach(function(d){d.setState&&d.setState(a)})},setVisible:function(a,f){var d=this,g=d.chart,h=d.legendItem,k=g.options.chart.ignoreHiddenSeries,l=d.visible;var m=(d.visible=a=d.options.visible=d.userOptions.visible="undefined"===typeof a?!l:a)?"show":"hide";["group","dataLabelsGroup",
"markerGroup","tracker","tt"].forEach(function(a){if(d[a])d[a][m]()});if(g.hoverSeries===d||(g.hoverPoint&&g.hoverPoint.series)===d)d.onMouseOut();h&&g.legend.colorizeItem(d,a);d.isDirty=!0;d.options.stacking&&g.series.forEach(function(a){a.options.stacking&&a.visible&&(a.isDirty=!0)});d.linkedSeries.forEach(function(d){d.setVisible(a,!1)});k&&(g.isDirtyBox=!0);K(d,m);!1!==f&&g.redraw()},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=this.options.selected=
"undefined"===typeof a?!this.selected:a;this.checkbox&&(this.checkbox.checked=a);K(this,a?"select":"unselect")},drawTracker:g.drawTrackerGraph})});O(n,"Core/Responsive.js",[n["Core/Chart/Chart.js"],n["Core/Utilities.js"]],function(f,a){var n=a.find,y=a.isArray,D=a.isObject,G=a.merge,C=a.objectEach,J=a.pick,H=a.splat,v=a.uniqueKey;f.prototype.setResponsive=function(a,f){var q=this.options.responsive,y=[],p=this.currentResponsive;!f&&q&&q.rules&&q.rules.forEach(function(a){"undefined"===typeof a._id&&
(a._id=v());this.matchResponsiveRule(a,y)},this);f=G.apply(0,y.map(function(a){return n(q.rules,function(f){return f._id===a}).chartOptions}));f.isResponsiveOptions=!0;y=y.toString()||void 0;y!==(p&&p.ruleIds)&&(p&&this.update(p.undoOptions,a,!0),y?(p=this.currentOptions(f),p.isResponsiveOptions=!0,this.currentResponsive={ruleIds:y,mergedOptions:f,undoOptions:p},this.update(f,a,!0)):this.currentResponsive=void 0)};f.prototype.matchResponsiveRule=function(a,f){var n=a.condition;(n.callback||function(){return this.chartWidth<=
J(n.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=J(n.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=J(n.minWidth,0)&&this.chartHeight>=J(n.minHeight,0)}).call(this)&&f.push(a._id)};f.prototype.currentOptions=function(a){function f(a,q,v,u){var m;C(a,function(a,l){if(!u&&-1<n.collectionsWithUpdate.indexOf(l))for(a=H(a),v[l]=[],m=0;m<Math.max(a.length,q[l].length);m++)q[l][m]&&(void 0===a[m]?v[l][m]=q[l][m]:(v[l][m]={},f(a[m],q[l][m],v[l][m],u+1)));else D(a)?(v[l]=y(a)?[]:{},f(a,q[l]||{},v[l],u+1)):
v[l]="undefined"===typeof q[l]?null:q[l]})}var n=this,v={};f(a,this.options,v,0);return v}});O(n,"masters/highcharts.src.js",[n["Core/Globals.js"]],function(f){return f});n["masters/highcharts.src.js"]._modules=n;return n["masters/highcharts.src.js"]});
//# sourceMappingURL=highcharts.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,17 @@
/*
Highcharts JS v8.2.0 (2020-08-20)
Solid angular gauge module
(c) 2010-2019 Torstein Honsi
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/solid-gauge",["highcharts","highcharts/highcharts-more"],function(g){a(g);a.Highcharts=g;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function g(a,r,g,c){a.hasOwnProperty(r)||(a[r]=c.apply(null,g))}a=a?a._modules:{};g(a,"Series/SolidGaugeSeries.js",[a["Core/Color.js"],a["Core/Globals.js"],a["Mixins/LegendSymbol.js"],
a["Core/Utilities.js"]],function(a,g,x,c){var k=a.parse,r=c.clamp,u=c.extend,v=c.isNumber,y=c.merge,t=c.pick,w=c.pInt;a=c.seriesType;c=c.wrap;c(g.Renderer.prototype.symbols,"arc",function(e,a,l,b,z,d){e=e(a,l,b,z,d);d.rounded&&(b=((d.r||b)-(d.innerR||0))/2,a=e[0],d=e[2],"M"===a[0]&&"L"===d[0]&&(a=["A",b,b,0,1,1,a[1],a[2]],e[2]=["A",b,b,0,1,1,d[1],d[2]],e[4]=a));return e});var m;(function(a){var e={initDataClasses:function(a){var e=this.chart,l,d=0,h=this.options;this.dataClasses=l=[];a.dataClasses.forEach(function(b,
f){b=y(b);l.push(b);b.color||("category"===h.dataClassColor?(f=e.options.colors,b.color=f[d++],d===f.length&&(d=0)):b.color=k(h.minColor).tweenTo(k(h.maxColor),f/(a.dataClasses.length-1)))})},initStops:function(a){this.stops=a.stops||[[0,this.options.minColor],[1,this.options.maxColor]];this.stops.forEach(function(a){a.color=k(a[1])})},toColor:function(a,e){var b=this.stops,d=this.dataClasses,h;if(d)for(h=d.length;h--;){var c=d[h];var f=c.from;b=c.to;if(("undefined"===typeof f||a>=f)&&("undefined"===
typeof b||a<=b)){var g=c.color;e&&(e.dataClass=h);break}}else{this.logarithmic&&(a=this.val2lin(a));a=1-(this.max-a)/(this.max-this.min);for(h=b.length;h--&&!(a>b[h][0]););f=b[h]||b[h+1];b=b[h+1]||f;a=1-(b[0]-a)/(b[0]-f[0]||1);g=f.color.tweenTo(b.color,a)}return g}};a.init=function(a){u(a,e)}})(m||(m={}));a("solidgauge","gauge",{colorByPoint:!0,dataLabels:{y:0}},{drawLegendSymbol:x.drawRectangle,translate:function(){var a=this.yAxis;m.init(a);!a.dataClasses&&a.options.dataClasses&&a.initDataClasses(a.options);
a.initStops(a.options);g.seriesTypes.gauge.prototype.translate.call(this)},drawPoints:function(){var a=this,c=a.yAxis,g=c.center,b=a.options,m=a.chart.renderer,d=b.overshoot,h=v(d)?d/180*Math.PI:0,k;v(b.threshold)&&(k=c.startAngleRad+c.translate(b.threshold,null,null,null,!0));this.thresholdAngleRad=t(k,c.startAngleRad);a.points.forEach(function(f){if(!f.isNull){var d=f.graphic,e=c.startAngleRad+c.translate(f.y,null,null,null,!0),k=w(t(f.options.radius,b.radius,100))*g[2]/200,n=w(t(f.options.innerRadius,
b.innerRadius,60))*g[2]/200,p=c.toColor(f.y,f),q=Math.min(c.startAngleRad,c.endAngleRad),l=Math.max(c.startAngleRad,c.endAngleRad);"none"===p&&(p=f.color||a.color||"none");"none"!==p&&(f.color=p);e=r(e,q-h,l+h);!1===b.wrap&&(e=r(e,q,l));q=Math.min(e,a.thresholdAngleRad);e=Math.max(e,a.thresholdAngleRad);e-q>2*Math.PI&&(e=q+2*Math.PI);f.shapeArgs=n={x:g[0],y:g[1],r:k,innerR:n,start:q,end:e,rounded:b.rounded};f.startR=k;d?(k=n.d,d.animate(u({fill:p},n)),k&&(n.d=k)):f.graphic=d=m.arc(n).attr({fill:p,
"sweep-flag":0}).add(a.group);a.chart.styledMode||("square"!==b.linecap&&d.attr({"stroke-linecap":"round","stroke-linejoin":"round"}),d.attr({stroke:b.borderColor||"none","stroke-width":b.borderWidth||0}));d&&d.addClass(f.getClassName(),!0)}})},animate:function(a){a||(this.startAngleRad=this.thresholdAngleRad,g.seriesTypes.pie.prototype.animate.call(this,a))}});"";return m});g(a,"masters/modules/solid-gauge.src.js",[],function(){})});
//# sourceMappingURL=solid-gauge.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,17 @@
/*
Highcharts JS v8.2.0 (2020-08-20)
Variable Pie module for Highcharts
(c) 2010-2019 Grzegorz Blachliski
License: www.highcharts.com/license
*/
(function(b){"object"===typeof module&&module.exports?(b["default"]=b,module.exports=b):"function"===typeof define&&define.amd?define("highcharts/modules/variable-pie",["highcharts"],function(g){b(g);b.Highcharts=g;return b}):b("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(b){function g(b,d,g,n){b.hasOwnProperty(d)||(b[d]=n.apply(null,g))}b=b?b._modules:{};g(b,"Series/VariablePieSeries.js",[b["Core/Globals.js"],b["Core/Utilities.js"]],function(b,d){var g=d.arrayMax,n=d.arrayMin,w=
d.clamp,x=d.fireEvent,p=d.pick;d=d.seriesType;var y=b.seriesTypes.pie.prototype;d("variablepie","pie",{minPointSize:"10%",maxPointSize:"100%",zMin:void 0,zMax:void 0,sizeBy:"area",tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</span> {series.name}<br/>Value: {point.y}<br/>Size: {point.z}<br/>'}},{pointArrayMap:["y","z"],parallelArrays:["x","y","z"],redraw:function(){this.center=null;y.redraw.call(this,arguments)},zValEval:function(a){return"number"!==typeof a||isNaN(a)?null:!0},calculateExtremes:function(){var a=
this.chart,b=this.options;var c=this.zData;var d=Math.min(a.plotWidth,a.plotHeight)-2*(b.slicedOffset||0),l={};a=this.center||this.getCenter();["minPointSize","maxPointSize"].forEach(function(a){var c=b[a],k=/%$/.test(c);c=parseInt(c,10);l[a]=k?d*c/100:2*c});this.minPxSize=a[3]+l.minPointSize;this.maxPxSize=w(a[2],a[3]+l.minPointSize,l.maxPointSize);c.length&&(a=p(b.zMin,n(c.filter(this.zValEval))),c=p(b.zMax,g(c.filter(this.zValEval))),this.getRadii(a,c,this.minPxSize,this.maxPxSize))},getRadii:function(a,
b,c,d){var l=0,g=this.zData,q=g.length,k=[],p="radius"!==this.options.sizeBy,u=b-a;for(l;l<q;l++){var h=this.zValEval(g[l])?g[l]:a;h<=a?h=c/2:h>=b?h=d/2:(h=0<u?(h-a)/u:.5,p&&(h=Math.sqrt(h)),h=Math.ceil(c+h*(d-c))/2);k.push(h)}this.radii=k},translate:function(a){this.generatePoints();var b=0,c=this.options,d=c.slicedOffset,g=d+(c.borderWidth||0),t=c.startAngle||0,q=Math.PI/180*(t-90),k=Math.PI/180*(p(c.endAngle,t+360)-90);t=k-q;var n=this.points,u=c.dataLabels.distance;c=c.ignoreHiddenPoint;var h=
n.length;this.startAngleRad=q;this.endAngleRad=k;this.calculateExtremes();a||(this.center=a=this.getCenter());for(k=0;k<h;k++){var f=n[k];var m=this.radii[k];f.labelDistance=p(f.options.dataLabels&&f.options.dataLabels.distance,u);this.maxLabelDistance=Math.max(this.maxLabelDistance||0,f.labelDistance);var e=q+b*t;if(!c||f.visible)b+=f.percentage/100;var r=q+b*t;f.shapeType="arc";f.shapeArgs={x:a[0],y:a[1],r:m,innerR:a[3]/2,start:Math.round(1E3*e)/1E3,end:Math.round(1E3*r)/1E3};e=(r+e)/2;e>1.5*Math.PI?
e-=2*Math.PI:e<-Math.PI/2&&(e+=2*Math.PI);f.slicedTranslation={translateX:Math.round(Math.cos(e)*d),translateY:Math.round(Math.sin(e)*d)};var v=Math.cos(e)*a[2]/2;var w=Math.sin(e)*a[2]/2;r=Math.cos(e)*m;m*=Math.sin(e);f.tooltipPos=[a[0]+.7*v,a[1]+.7*w];f.half=e<-Math.PI/2||e>Math.PI/2?1:0;f.angle=e;v=Math.min(g,f.labelDistance/5);f.labelPosition={natural:{x:a[0]+r+Math.cos(e)*f.labelDistance,y:a[1]+m+Math.sin(e)*f.labelDistance},"final":{},alignment:f.half?"right":"left",connectorPosition:{breakAt:{x:a[0]+
r+Math.cos(e)*v,y:a[1]+m+Math.sin(e)*v},touchingSliceAt:{x:a[0]+r,y:a[1]+m}}}}x(this,"afterTranslate")}});""});g(b,"masters/modules/variable-pie.src.js",[],function(){})});
//# sourceMappingURL=variable-pie.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,106 @@
/*
* bootstrap-tagsinput v0.8.0
*
*/
.bootstrap-tagsinput {
background-color: #fff;
border: 1px solid #ccc;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
display: inline-block;
padding: 4px 6px;
color: #555;
vertical-align: middle;
border-radius: 4px;
width: 100%;
line-height: 22px;
cursor: text;
}
.bootstrap-tagsinput input {
border: none;
box-shadow: none;
outline: none;
background-color: transparent;
padding: 0 6px;
margin: 0;
width: auto;
max-width: inherit;
}
.bootstrap-tagsinput.form-control input::-moz-placeholder {
color: #777;
opacity: 1;
}
.bootstrap-tagsinput.form-control input:-ms-input-placeholder {
color: #777;
}
.bootstrap-tagsinput.form-control input::-webkit-input-placeholder {
color: #777;
}
.bootstrap-tagsinput input:focus {
border: none;
box-shadow: none;
}
.bootstrap-tagsinput .badge {
margin: 2px 4px;
padding: 8px 14px;
font-size: 100%;
font-weight: 700;
}
.bootstrap-tagsinput .badge [data-role="remove"] {
margin-left: 8px;
cursor: pointer;
}
.bootstrap-tagsinput .badge [data-role="remove"]:after {
content: "×";
padding: 0px 4px;
background-color:rgba(0, 0, 0, 0.1);
border-radius:50%;
font-size:13px
}
.bootstrap-tagsinput .badge [data-role="remove"]:hover:after {
background-color:rgba(0, 0, 0, 0.62);}
.bootstrap-tagsinput .badge [data-role="remove"]:hover:active {
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.tt-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0;
list-style: none;
font-size: 14px;
background-color: #ffffff;
border: 1px solid #cccccc;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 4px;
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
background-clip: padding-box;
cursor: pointer;
}
.tt-suggestion {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: 1.428571429;
color: #333333;
white-space: nowrap;
}
.tt-suggestion:hover,
.tt-suggestion:focus {
color: #ffffff;
text-decoration: none;
outline: 0;
background-color: #428bca;
}
@@ -0,0 +1,691 @@
/*
* bootstrap-tagsinput v0.8.0
*
*/
(function ($) {
"use strict";
var defaultOptions = {
tagClass: function(item) {
return 'badge bg-primary';
},
focusClass: 'focus',
itemValue: function(item) {
return item ? item.toString() : item;
},
itemText: function(item) {
return this.itemValue(item);
},
itemTitle: function(item) {
return null;
},
freeInput: true,
addOnBlur: true,
maxTags: undefined,
maxChars: undefined,
confirmKeys: [13, 44],
delimiter: ',',
delimiterRegex: null,
cancelConfirmKeysOnEmpty: false,
onTagExists: function(item, $tag) {
$tag.hide().fadeIn();
},
trimValue: false,
allowDuplicates: false,
triggerChange: true,
editOnBackspace: false
};
/**
* Constructor function
*/
function TagsInput(element, options) {
this.isInit = true;
this.itemsArray = [];
this.$element = $(element);
this.$element.addClass('visually-hidden');
this.isSelect = (element.tagName === 'SELECT');
this.multiple = (this.isSelect && element.hasAttribute('multiple'));
this.objectItems = options && options.itemValue;
this.placeholderText = element.hasAttribute('placeholder') ? this.$element.attr('placeholder') : '';
this.inputSize = Math.max(1, this.placeholderText.length);
this.$container = $('<div class="bootstrap-tagsinput"></div>');
this.$input = $('<input type="text" placeholder="' + this.placeholderText + '"/>').appendTo(this.$container);
this.$element.before(this.$container);
this.build(options);
this.isInit = false;
}
TagsInput.prototype = {
constructor: TagsInput,
/**
* Adds the given item as a new tag. Pass true to dontPushVal to prevent
* updating the elements val()
*/
add: function(item, dontPushVal, options) {
var self = this;
if (self.options.maxTags && self.itemsArray.length >= self.options.maxTags)
return;
// Ignore falsey values, except false
if (item !== false && !item)
return;
// Trim value
if (typeof item === "string" && self.options.trimValue) {
item = $.trim(item);
}
// Throw an error when trying to add an object while the itemValue option was not set
if (typeof item === "object" && !self.objectItems)
throw("Can't add objects when itemValue option is not set");
// Ignore strings only containg whitespace
if (item.toString().match(/^\s*$/))
return;
// If SELECT but not multiple, remove current tag
if (self.isSelect && !self.multiple && self.itemsArray.length > 0)
self.remove(self.itemsArray[0]);
if (typeof item === "string" && this.$element[0].tagName === 'INPUT') {
var delimiter = (self.options.delimiterRegex) ? self.options.delimiterRegex : self.options.delimiter;
var items = item.split(delimiter);
if (items.length > 1) {
for (var i = 0; i < items.length; i++) {
this.add(items[i], true);
}
if (!dontPushVal)
self.pushVal(self.options.triggerChange);
return;
}
}
var itemValue = self.options.itemValue(item),
itemText = self.options.itemText(item),
tagClass = self.options.tagClass(item),
itemTitle = self.options.itemTitle(item);
// Ignore items allready added
var existing = $.grep(self.itemsArray, function(item) { return self.options.itemValue(item) === itemValue; } )[0];
if (existing && !self.options.allowDuplicates) {
// Invoke onTagExists
if (self.options.onTagExists) {
var $existingTag = $(".badge", self.$container).filter(function() { return $(this).data("item") === existing; });
self.options.onTagExists(item, $existingTag);
}
return;
}
// if length greater than limit
if (self.items().toString().length + item.length + 1 > self.options.maxInputLength)
return;
// raise beforeItemAdd arg
var beforeItemAddEvent = $.Event('beforeItemAdd', { item: item, cancel: false, options: options});
self.$element.trigger(beforeItemAddEvent);
if (beforeItemAddEvent.cancel)
return;
// register item in internal array and map
self.itemsArray.push(item);
// add a tag element
var $tag = $('<span class="' + htmlEncode(tagClass) + (itemTitle !== null ? ('" title="' + itemTitle) : '') + '">' + htmlEncode(itemText) + '<span data-role="remove"></span></span>');
$tag.data('item', item);
self.findInputWrapper().before($tag);
// Check to see if the tag exists in its raw or uri-encoded form
var optionExists = (
$('option[value="' + encodeURIComponent(itemValue).replace(/"/g, '\\"') + '"]', self.$element).length ||
$('option[value="' + htmlEncode(itemValue).replace(/"/g, '\\"') + '"]', self.$element).length
);
// add <option /> if item represents a value not present in one of the <select />'s options
if (self.isSelect && !optionExists) {
var $option = $('<option selected>' + htmlEncode(itemText) + '</option>');
$option.data('item', item);
$option.attr('value', itemValue);
self.$element.append($option);
}
if (!dontPushVal)
self.pushVal(self.options.triggerChange);
// Add class when reached maxTags
if (self.options.maxTags === self.itemsArray.length || self.items().toString().length === self.options.maxInputLength)
self.$container.addClass('bootstrap-tagsinput-max');
// If using typeahead, once the tag has been added, clear the typeahead value so it does not stick around in the input.
if ($('.typeahead, .twitter-typeahead', self.$container).length) {
self.$input.typeahead('val', '');
}
if (this.isInit) {
self.$element.trigger($.Event('itemAddedOnInit', { item: item, options: options }));
} else {
self.$element.trigger($.Event('itemAdded', { item: item, options: options }));
}
},
/**
* Removes the given item. Pass true to dontPushVal to prevent updating the
* elements val()
*/
remove: function(item, dontPushVal, options) {
var self = this;
if (self.objectItems) {
if (typeof item === "object")
item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == self.options.itemValue(item); } );
else
item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == item; } );
item = item[item.length-1];
}
if (item) {
var beforeItemRemoveEvent = $.Event('beforeItemRemove', { item: item, cancel: false, options: options });
self.$element.trigger(beforeItemRemoveEvent);
if (beforeItemRemoveEvent.cancel)
return;
$('.badge', self.$container).filter(function() { return $(this).data('item') === item; }).remove();
$('option', self.$element).filter(function() { return $(this).data('item') === item; }).remove();
if($.inArray(item, self.itemsArray) !== -1)
self.itemsArray.splice($.inArray(item, self.itemsArray), 1);
}
if (!dontPushVal)
self.pushVal(self.options.triggerChange);
// Remove class when reached maxTags
if (self.options.maxTags > self.itemsArray.length)
self.$container.removeClass('bootstrap-tagsinput-max');
self.$element.trigger($.Event('itemRemoved', { item: item, options: options }));
},
/**
* Removes all items
*/
removeAll: function() {
var self = this;
$('.badge', self.$container).remove();
$('option', self.$element).remove();
while(self.itemsArray.length > 0)
self.itemsArray.pop();
self.pushVal(self.options.triggerChange);
},
/**
* Refreshes the tags so they match the text/value of their corresponding
* item.
*/
refresh: function() {
var self = this;
$('.badge', self.$container).each(function() {
var $tag = $(this),
item = $tag.data('item'),
itemValue = self.options.itemValue(item),
itemText = self.options.itemText(item),
tagClass = self.options.tagClass(item);
// Update tag's class and inner text
$tag.attr('class', null);
$tag.addClass('badge ' + htmlEncode(tagClass));
$tag.contents().filter(function() {
return this.nodeType == 3;
})[0].nodeValue = htmlEncode(itemText);
if (self.isSelect) {
var option = $('option', self.$element).filter(function() { return $(this).data('item') === item; });
option.attr('value', itemValue);
}
});
},
/**
* Returns the items added as tags
*/
items: function() {
return this.itemsArray;
},
/**
* Assembly value by retrieving the value of each item, and set it on the
* element.
*/
pushVal: function() {
var self = this,
val = $.map(self.items(), function(item) {
return self.options.itemValue(item).toString();
});
self.$element.val( val.join(self.options.delimiter) );
if (self.options.triggerChange)
self.$element.trigger('change');
},
/**
* Initializes the tags input behaviour on the element
*/
build: function(options) {
var self = this;
self.options = $.extend({}, defaultOptions, options);
// When itemValue is set, freeInput should always be false
if (self.objectItems)
self.options.freeInput = false;
makeOptionItemFunction(self.options, 'itemValue');
makeOptionItemFunction(self.options, 'itemText');
makeOptionFunction(self.options, 'tagClass');
// Typeahead Bootstrap version 2.3.2
if (self.options.typeahead) {
var typeahead = self.options.typeahead || {};
makeOptionFunction(typeahead, 'source');
self.$input.typeahead($.extend({}, typeahead, {
source: function (query, process) {
function processItems(items) {
var texts = [];
for (var i = 0; i < items.length; i++) {
var text = self.options.itemText(items[i]);
map[text] = items[i];
texts.push(text);
}
process(texts);
}
this.map = {};
var map = this.map,
data = typeahead.source(query);
if ($.isFunction(data.success)) {
// support for Angular callbacks
data.success(processItems);
} else if ($.isFunction(data.then)) {
// support for Angular promises
data.then(processItems);
} else {
// support for functions and jquery promises
$.when(data)
.then(processItems);
}
},
updater: function (text) {
self.add(this.map[text]);
return this.map[text];
},
matcher: function (text) {
return (text.toLowerCase().indexOf(this.query.trim().toLowerCase()) !== -1);
},
sorter: function (texts) {
return texts.sort();
},
highlighter: function (text) {
var regex = new RegExp( '(' + this.query + ')', 'gi' );
return text.replace( regex, "<strong>$1</strong>" );
}
}));
}
// typeahead.js
if (self.options.typeaheadjs) {
// Determine if main configurations were passed or simply a dataset
var typeaheadjs = self.options.typeaheadjs;
if (!$.isArray(typeaheadjs)) {
typeaheadjs = [null, typeaheadjs];
}
$.fn.typeahead.apply(self.$input, typeaheadjs).on('typeahead:selected', $.proxy(function (obj, datum, name) {
var index = 0;
typeaheadjs.some(function(dataset, _index) {
if (dataset.name === name) {
index = _index;
return true;
}
return false;
});
// @TODO Dep: https://github.com/corejavascript/typeahead.js/issues/89
if (typeaheadjs[index].valueKey) {
self.add(datum[typeaheadjs[index].valueKey]);
} else {
self.add(datum);
}
self.$input.typeahead('val', '');
}, self));
}
self.$container.on('click', $.proxy(function(event) {
if (! self.$element.attr('disabled')) {
self.$input.removeAttr('disabled');
}
self.$input.focus();
}, self));
if (self.options.addOnBlur && self.options.freeInput) {
self.$input.on('focusout', $.proxy(function(event) {
// HACK: only process on focusout when no typeahead opened, to
// avoid adding the typeahead text as tag
if ($('.typeahead, .twitter-typeahead', self.$container).length === 0) {
self.add(self.$input.val());
self.$input.val('');
}
}, self));
}
// Toggle the 'focus' css class on the container when it has focus
self.$container.on({
focusin: function() {
self.$container.addClass(self.options.focusClass);
},
focusout: function() {
self.$container.removeClass(self.options.focusClass);
},
});
self.$container.on('keydown', 'input', $.proxy(function(event) {
var $input = $(event.target),
$inputWrapper = self.findInputWrapper();
if (self.$element.attr('disabled')) {
self.$input.attr('disabled', 'disabled');
return;
}
switch (event.which) {
// BACKSPACE
case 8:
if (doGetCaretPosition($input[0]) === 0) {
var prev = $inputWrapper.prev();
if (prev.length) {
if (self.options.editOnBackspace === true) {
$input.val(prev.data('item'));
}
self.remove(prev.data('item'));
}
}
break;
// DELETE
case 46:
if (doGetCaretPosition($input[0]) === 0) {
var next = $inputWrapper.next();
if (next.length) {
self.remove(next.data('item'));
}
}
break;
// LEFT ARROW
case 37:
// Try to move the input before the previous tag
var $prevTag = $inputWrapper.prev();
if ($input.val().length === 0 && $prevTag[0]) {
$prevTag.before($inputWrapper);
$input.focus();
}
break;
// RIGHT ARROW
case 39:
// Try to move the input after the next tag
var $nextTag = $inputWrapper.next();
if ($input.val().length === 0 && $nextTag[0]) {
$nextTag.after($inputWrapper);
$input.focus();
}
break;
default:
// ignore
}
// Reset internal input's size
var textLength = $input.val().length,
wordSpace = Math.ceil(textLength / 5),
size = textLength + wordSpace + 1;
$input.attr('size', Math.max(this.inputSize, size));
}, self));
self.$container.on('keypress', 'input', $.proxy(function(event) {
var $input = $(event.target);
if (self.$element.attr('disabled')) {
self.$input.attr('disabled', 'disabled');
return;
}
var text = $input.val(),
maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;
if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {
// Only attempt to add a tag if there is data in the field
if (text.length !== 0) {
self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);
$input.val('');
}
// If the field is empty, let the event triggered fire as usual
if (self.options.cancelConfirmKeysOnEmpty === false) {
event.preventDefault();
}
}
// Reset internal input's size
var textLength = $input.val().length,
wordSpace = Math.ceil(textLength / 5),
size = textLength + wordSpace + 1;
$input.attr('size', Math.max(this.inputSize, size));
}, self));
// Remove icon clicked
self.$container.on('click', '[data-role=remove]', $.proxy(function(event) {
if (self.$element.attr('disabled')) {
return;
}
self.remove($(event.target).closest('.badge').data('item'));
}, self));
// Only add existing value as tags when using strings as tags
if (self.options.itemValue === defaultOptions.itemValue) {
if (self.$element[0].tagName === 'INPUT') {
self.add(self.$element.val());
} else {
$('option', self.$element).each(function() {
self.add($(this).attr('value'), true);
});
}
}
},
/**
* Removes all tagsinput behaviour and unregsiter all event handlers
*/
destroy: function() {
var self = this;
// Unbind events
self.$container.off('keypress', 'input');
self.$container.off('click', '[role=remove]');
self.$container.remove();
self.$element.removeData('tagsinput');
self.$element.show();
},
/**
* Sets focus on the tagsinput
*/
focus: function() {
this.$input.focus();
},
/**
* Returns the internal input element
*/
input: function() {
return this.$input;
},
/**
* Returns the element which is wrapped around the internal input. This
* is normally the $container, but typeahead.js moves the $input element.
*/
findInputWrapper: function() {
var elt = this.$input[0],
container = this.$container[0];
while(elt && elt.parentNode !== container)
elt = elt.parentNode;
return $(elt);
}
};
/**
* Register JQuery plugin
*/
$.fn.tagsinput = function(arg1, arg2, arg3) {
var results = [];
this.each(function() {
var tagsinput = $(this).data('tagsinput');
// Initialize a new tags input
if (!tagsinput) {
tagsinput = new TagsInput(this, arg1);
$(this).data('tagsinput', tagsinput);
results.push(tagsinput);
if (this.tagName === 'SELECT') {
$('option', $(this)).attr('selected', 'selected');
}
// Init tags from $(this).val()
$(this).val($(this).val());
} else if (!arg1 && !arg2) {
// tagsinput already exists
// no function, trying to init
results.push(tagsinput);
} else if(tagsinput[arg1] !== undefined) {
// Invoke function on existing tags input
if(tagsinput[arg1].length === 3 && arg3 !== undefined){
var retVal = tagsinput[arg1](arg2, null, arg3);
}else{
var retVal = tagsinput[arg1](arg2);
}
if (retVal !== undefined)
results.push(retVal);
}
});
if ( typeof arg1 == 'string') {
// Return the results from the invoked function calls
return results.length > 1 ? results : results[0];
} else {
return results;
}
};
$.fn.tagsinput.Constructor = TagsInput;
/**
* Most options support both a string or number as well as a function as
* option value. This function makes sure that the option with the given
* key in the given options is wrapped in a function
*/
function makeOptionItemFunction(options, key) {
if (typeof options[key] !== 'function') {
var propertyName = options[key];
options[key] = function(item) { return item[propertyName]; };
}
}
function makeOptionFunction(options, key) {
if (typeof options[key] !== 'function') {
var value = options[key];
options[key] = function() { return value; };
}
}
/**
* HtmlEncodes the given value
*/
var htmlEncodeContainer = $('<div />');
function htmlEncode(value) {
if (value) {
return htmlEncodeContainer.text(value).html();
} else {
return '';
}
}
/**
* Returns the position of the caret in the given input field
* http://flightschool.acylt.com/devnotes/caret-position-woes/
*/
function doGetCaretPosition(oField) {
var iCaretPos = 0;
if (document.selection) {
oField.focus ();
var oSel = document.selection.createRange();
oSel.moveStart ('character', -oField.value.length);
iCaretPos = oSel.text.length;
} else if (oField.selectionStart || oField.selectionStart == '0') {
iCaretPos = oField.selectionStart;
}
return (iCaretPos);
}
/**
* Returns boolean indicates whether user has pressed an expected key combination.
* @param object keyPressEvent: JavaScript event object, refer
* http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
* @param object lookupList: expected key combinations, as in:
* [13, {which: 188, shiftKey: true}]
*/
function keyCombinationInList(keyPressEvent, lookupList) {
var found = false;
$.each(lookupList, function (index, keyCombination) {
if (typeof (keyCombination) === 'number' && keyPressEvent.which === keyCombination) {
found = true;
return false;
}
if (keyPressEvent.which === keyCombination.which) {
var alt = !keyCombination.hasOwnProperty('altKey') || keyPressEvent.altKey === keyCombination.altKey,
shift = !keyCombination.hasOwnProperty('shiftKey') || keyPressEvent.shiftKey === keyCombination.shiftKey,
ctrl = !keyCombination.hasOwnProperty('ctrlKey') || keyPressEvent.ctrlKey === keyCombination.ctrlKey;
if (alt && shift && ctrl) {
found = true;
return false;
}
}
});
return found;
}
/**
* Initialize tagsinput behaviour on inputs and selects which have
* data-role=tagsinput
*/
$(function() {
$("input[data-role=tagsinput], select[multiple][data-role=tagsinput]").tagsinput();
});
})(window.jQuery);
@@ -0,0 +1,924 @@
// Copyright 2006 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Known Issues:
//
// * Patterns are not implemented.
// * Radial gradient are not implemented. The VML version of these look very
// different from the canvas one.
// * Clipping paths are not implemented.
// * Coordsize. The width and height attribute have higher priority than the
// width and height style values which isn't correct.
// * Painting mode isn't implemented.
// * Canvas width/height should is using content-box by default. IE in
// Quirks mode will draw the canvas using border-box. Either change your
// doctype to HTML5
// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype)
// or use Box Sizing Behavior from WebFX
// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html)
// * Non uniform scaling does not correctly scale strokes.
// * Optimize. There is always room for speed improvements.
// Only add this code if we do not already have a canvas implementation
if (!document.createElement('canvas').getContext) {
(function() {
// alias some functions to make (compiled) code shorter
var m = Math;
var mr = m.round;
var ms = m.sin;
var mc = m.cos;
var abs = m.abs;
var sqrt = m.sqrt;
// this is used for sub pixel precision
var Z = 10;
var Z2 = Z / 2;
/**
* This funtion is assigned to the <canvas> elements as element.getContext().
* @this {HTMLElement}
* @return {CanvasRenderingContext2D_}
*/
function getContext() {
return this.context_ ||
(this.context_ = new CanvasRenderingContext2D_(this));
}
var slice = Array.prototype.slice;
/**
* Binds a function to an object. The returned function will always use the
* passed in {@code obj} as {@code this}.
*
* Example:
*
* g = bind(f, obj, a, b)
* g(c, d) // will do f.call(obj, a, b, c, d)
*
* @param {Function} f The function to bind the object to
* @param {Object} obj The object that should act as this when the function
* is called
* @param {*} var_args Rest arguments that will be used as the initial
* arguments when the function is called
* @return {Function} A new function that has bound this
*/
function bind(f, obj, var_args) {
var a = slice.call(arguments, 2);
return function() {
return f.apply(obj, a.concat(slice.call(arguments)));
};
}
var G_vmlCanvasManager_ = {
init: function(opt_doc) {
if (/MSIE/.test(navigator.userAgent) && !window.opera) {
var doc = opt_doc || document;
// Create a dummy element so that IE will allow canvas elements to be
// recognized.
doc.createElement('canvas');
doc.attachEvent('onreadystatechange', bind(this.init_, this, doc));
}
},
init_: function(doc) {
// create xmlns
if (!doc.namespaces['g_vml_']) {
doc.namespaces.add('g_vml_', 'urn:schemas-microsoft-com:vml',
'#default#VML');
}
if (!doc.namespaces['g_o_']) {
doc.namespaces.add('g_o_', 'urn:schemas-microsoft-com:office:office',
'#default#VML');
}
// Setup default CSS. Only add one style sheet per document
if (!doc.styleSheets['ex_canvas_']) {
var ss = doc.createStyleSheet();
ss.owningElement.id = 'ex_canvas_';
ss.cssText = 'canvas{display:inline-block;overflow:hidden;' +
// default size is 300x150 in Gecko and Opera
'text-align:left;width:300px;height:150px}' +
'g_vml_\\:*{behavior:url(#default#VML)}' +
'g_o_\\:*{behavior:url(#default#VML)}';
}
// find all canvas elements
var els = doc.getElementsByTagName('canvas');
for (var i = 0; i < els.length; i++) {
this.initElement(els[i]);
}
},
/**
* Public initializes a canvas element so that it can be used as canvas
* element from now on. This is called automatically before the page is
* loaded but if you are creating elements using createElement you need to
* make sure this is called on the element.
* @param {HTMLElement} el The canvas element to initialize.
* @return {HTMLElement} the element that was created.
*/
initElement: function(el) {
if (!el.getContext) {
el.getContext = getContext;
// Remove fallback content. There is no way to hide text nodes so we
// just remove all childNodes. We could hide all elements and remove
// text nodes but who really cares about the fallback content.
el.innerHTML = '';
// do not use inline function because that will leak memory
el.attachEvent('onpropertychange', onPropertyChange);
el.attachEvent('onresize', onResize);
var attrs = el.attributes;
if (attrs.width && attrs.width.specified) {
// TODO: use runtimeStyle and coordsize
// el.getContext().setWidth_(attrs.width.nodeValue);
el.style.width = attrs.width.nodeValue + 'px';
} else {
el.width = el.clientWidth;
}
if (attrs.height && attrs.height.specified) {
// TODO: use runtimeStyle and coordsize
// el.getContext().setHeight_(attrs.height.nodeValue);
el.style.height = attrs.height.nodeValue + 'px';
} else {
el.height = el.clientHeight;
}
//el.getContext().setCoordsize_()
}
return el;
}
};
function onPropertyChange(e) {
var el = e.srcElement;
switch (e.propertyName) {
case 'width':
el.style.width = el.attributes.width.nodeValue + 'px';
el.getContext().clearRect();
break;
case 'height':
el.style.height = el.attributes.height.nodeValue + 'px';
el.getContext().clearRect();
break;
}
}
function onResize(e) {
var el = e.srcElement;
if (el.firstChild) {
el.firstChild.style.width = el.clientWidth + 'px';
el.firstChild.style.height = el.clientHeight + 'px';
}
}
G_vmlCanvasManager_.init();
// precompute "00" to "FF"
var dec2hex = [];
for (var i = 0; i < 16; i++) {
for (var j = 0; j < 16; j++) {
dec2hex[i * 16 + j] = i.toString(16) + j.toString(16);
}
}
function createMatrixIdentity() {
return [
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]
];
}
function matrixMultiply(m1, m2) {
var result = createMatrixIdentity();
for (var x = 0; x < 3; x++) {
for (var y = 0; y < 3; y++) {
var sum = 0;
for (var z = 0; z < 3; z++) {
sum += m1[x][z] * m2[z][y];
}
result[x][y] = sum;
}
}
return result;
}
function copyState(o1, o2) {
o2.fillStyle = o1.fillStyle;
o2.lineCap = o1.lineCap;
o2.lineJoin = o1.lineJoin;
o2.lineWidth = o1.lineWidth;
o2.miterLimit = o1.miterLimit;
o2.shadowBlur = o1.shadowBlur;
o2.shadowColor = o1.shadowColor;
o2.shadowOffsetX = o1.shadowOffsetX;
o2.shadowOffsetY = o1.shadowOffsetY;
o2.strokeStyle = o1.strokeStyle;
o2.globalAlpha = o1.globalAlpha;
o2.arcScaleX_ = o1.arcScaleX_;
o2.arcScaleY_ = o1.arcScaleY_;
o2.lineScale_ = o1.lineScale_;
}
function processStyle(styleString) {
var str, alpha = 1;
styleString = String(styleString);
if (styleString.substring(0, 3) == 'rgb') {
var start = styleString.indexOf('(', 3);
var end = styleString.indexOf(')', start + 1);
var guts = styleString.substring(start + 1, end).split(',');
str = '#';
for (var i = 0; i < 3; i++) {
str += dec2hex[Number(guts[i])];
}
if (guts.length == 4 && styleString.substr(3, 1) == 'a') {
alpha = guts[3];
}
} else {
str = styleString;
}
return {color: str, alpha: alpha};
}
function processLineCap(lineCap) {
switch (lineCap) {
case 'butt':
return 'flat';
case 'round':
return 'round';
case 'square':
default:
return 'square';
}
}
/**
* This class implements CanvasRenderingContext2D interface as described by
* the WHATWG.
* @param {HTMLElement} surfaceElement The element that the 2D context should
* be associated with
*/
function CanvasRenderingContext2D_(surfaceElement) {
this.m_ = createMatrixIdentity();
this.mStack_ = [];
this.aStack_ = [];
this.currentPath_ = [];
// Canvas context properties
this.strokeStyle = '#000';
this.fillStyle = '#000';
this.lineWidth = 1;
this.lineJoin = 'miter';
this.lineCap = 'butt';
this.miterLimit = Z * 1;
this.globalAlpha = 1;
this.canvas = surfaceElement;
var el = surfaceElement.ownerDocument.createElement('div');
el.style.width = surfaceElement.clientWidth + 'px';
el.style.height = surfaceElement.clientHeight + 'px';
el.style.overflow = 'hidden';
el.style.position = 'absolute';
surfaceElement.appendChild(el);
this.element_ = el;
this.arcScaleX_ = 1;
this.arcScaleY_ = 1;
this.lineScale_ = 1;
}
var contextPrototype = CanvasRenderingContext2D_.prototype;
contextPrototype.clearRect = function() {
this.element_.innerHTML = '';
};
contextPrototype.beginPath = function() {
// TODO: Branch current matrix so that save/restore has no effect
// as per safari docs.
this.currentPath_ = [];
};
contextPrototype.moveTo = function(aX, aY) {
var p = this.getCoords_(aX, aY);
this.currentPath_.push({type: 'moveTo', x: p.x, y: p.y});
this.currentX_ = p.x;
this.currentY_ = p.y;
};
contextPrototype.lineTo = function(aX, aY) {
var p = this.getCoords_(aX, aY);
this.currentPath_.push({type: 'lineTo', x: p.x, y: p.y});
this.currentX_ = p.x;
this.currentY_ = p.y;
};
contextPrototype.bezierCurveTo = function(aCP1x, aCP1y,
aCP2x, aCP2y,
aX, aY) {
var p = this.getCoords_(aX, aY);
var cp1 = this.getCoords_(aCP1x, aCP1y);
var cp2 = this.getCoords_(aCP2x, aCP2y);
bezierCurveTo(this, cp1, cp2, p);
};
// Helper function that takes the already fixed cordinates.
function bezierCurveTo(self, cp1, cp2, p) {
self.currentPath_.push({
type: 'bezierCurveTo',
cp1x: cp1.x,
cp1y: cp1.y,
cp2x: cp2.x,
cp2y: cp2.y,
x: p.x,
y: p.y
});
self.currentX_ = p.x;
self.currentY_ = p.y;
}
contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) {
// the following is lifted almost directly from
// http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes
var cp = this.getCoords_(aCPx, aCPy);
var p = this.getCoords_(aX, aY);
var cp1 = {
x: this.currentX_ + 2.0 / 3.0 * (cp.x - this.currentX_),
y: this.currentY_ + 2.0 / 3.0 * (cp.y - this.currentY_)
};
var cp2 = {
x: cp1.x + (p.x - this.currentX_) / 3.0,
y: cp1.y + (p.y - this.currentY_) / 3.0
};
bezierCurveTo(this, cp1, cp2, p);
};
contextPrototype.arc = function(aX, aY, aRadius,
aStartAngle, aEndAngle, aClockwise) {
aRadius *= Z;
var arcType = aClockwise ? 'at' : 'wa';
var xStart = aX + mc(aStartAngle) * aRadius - Z2;
var yStart = aY + ms(aStartAngle) * aRadius - Z2;
var xEnd = aX + mc(aEndAngle) * aRadius - Z2;
var yEnd = aY + ms(aEndAngle) * aRadius - Z2;
// IE won't render arches drawn counter clockwise if xStart == xEnd.
if (xStart == xEnd && !aClockwise) {
xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something
// that can be represented in binary
}
var p = this.getCoords_(aX, aY);
var pStart = this.getCoords_(xStart, yStart);
var pEnd = this.getCoords_(xEnd, yEnd);
this.currentPath_.push({type: arcType,
x: p.x,
y: p.y,
radius: aRadius,
xStart: pStart.x,
yStart: pStart.y,
xEnd: pEnd.x,
yEnd: pEnd.y});
};
contextPrototype.rect = function(aX, aY, aWidth, aHeight) {
this.moveTo(aX, aY);
this.lineTo(aX + aWidth, aY);
this.lineTo(aX + aWidth, aY + aHeight);
this.lineTo(aX, aY + aHeight);
this.closePath();
};
contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) {
var oldPath = this.currentPath_;
this.beginPath();
this.moveTo(aX, aY);
this.lineTo(aX + aWidth, aY);
this.lineTo(aX + aWidth, aY + aHeight);
this.lineTo(aX, aY + aHeight);
this.closePath();
this.stroke();
this.currentPath_ = oldPath;
};
contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) {
var oldPath = this.currentPath_;
this.beginPath();
this.moveTo(aX, aY);
this.lineTo(aX + aWidth, aY);
this.lineTo(aX + aWidth, aY + aHeight);
this.lineTo(aX, aY + aHeight);
this.closePath();
this.fill();
this.currentPath_ = oldPath;
};
contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) {
var gradient = new CanvasGradient_('gradient');
gradient.x0_ = aX0;
gradient.y0_ = aY0;
gradient.x1_ = aX1;
gradient.y1_ = aY1;
return gradient;
};
contextPrototype.createRadialGradient = function(aX0, aY0, aR0,
aX1, aY1, aR1) {
var gradient = new CanvasGradient_('gradientradial');
gradient.x0_ = aX0;
gradient.y0_ = aY0;
gradient.r0_ = aR0;
gradient.x1_ = aX1;
gradient.y1_ = aY1;
gradient.r1_ = aR1;
return gradient;
};
contextPrototype.drawImage = function(image, var_args) {
var dx, dy, dw, dh, sx, sy, sw, sh;
// to find the original width we overide the width and height
var oldRuntimeWidth = image.runtimeStyle.width;
var oldRuntimeHeight = image.runtimeStyle.height;
image.runtimeStyle.width = 'auto';
image.runtimeStyle.height = 'auto';
// get the original size
var w = image.width;
var h = image.height;
// and remove overides
image.runtimeStyle.width = oldRuntimeWidth;
image.runtimeStyle.height = oldRuntimeHeight;
if (arguments.length == 3) {
dx = arguments[1];
dy = arguments[2];
sx = sy = 0;
sw = dw = w;
sh = dh = h;
} else if (arguments.length == 5) {
dx = arguments[1];
dy = arguments[2];
dw = arguments[3];
dh = arguments[4];
sx = sy = 0;
sw = w;
sh = h;
} else if (arguments.length == 9) {
sx = arguments[1];
sy = arguments[2];
sw = arguments[3];
sh = arguments[4];
dx = arguments[5];
dy = arguments[6];
dw = arguments[7];
dh = arguments[8];
} else {
throw Error('Invalid number of arguments');
}
var d = this.getCoords_(dx, dy);
var w2 = sw / 2;
var h2 = sh / 2;
var vmlStr = [];
var W = 10;
var H = 10;
// For some reason that I've now forgotten, using divs didn't work
vmlStr.push(' <g_vml_:group',
' coordsize="', Z * W, ',', Z * H, '"',
' coordorigin="0,0"' ,
' style="width:', W, 'px;height:', H, 'px;position:absolute;');
// If filters are necessary (rotation exists), create them
// filters are bog-slow, so only create them if abbsolutely necessary
// The following check doesn't account for skews (which don't exist
// in the canvas spec (yet) anyway.
if (this.m_[0][0] != 1 || this.m_[0][1]) {
var filter = [];
// Note the 12/21 reversal
filter.push('M11=', this.m_[0][0], ',',
'M12=', this.m_[1][0], ',',
'M21=', this.m_[0][1], ',',
'M22=', this.m_[1][1], ',',
'Dx=', mr(d.x / Z), ',',
'Dy=', mr(d.y / Z), '');
// Bounding box calculation (need to minimize displayed area so that
// filters don't waste time on unused pixels.
var max = d;
var c2 = this.getCoords_(dx + dw, dy);
var c3 = this.getCoords_(dx, dy + dh);
var c4 = this.getCoords_(dx + dw, dy + dh);
max.x = m.max(max.x, c2.x, c3.x, c4.x);
max.y = m.max(max.y, c2.y, c3.y, c4.y);
vmlStr.push('padding:0 ', mr(max.x / Z), 'px ', mr(max.y / Z),
'px 0;filter:progid:DXImageTransform.Microsoft.Matrix(',
filter.join(''), ", sizingmethod='clip');")
} else {
vmlStr.push('top:', mr(d.y / Z), 'px;left:', mr(d.x / Z), 'px;');
}
vmlStr.push(' ">' ,
'<g_vml_:image src="', image.src, '"',
' style="width:', Z * dw, 'px;',
' height:', Z * dh, 'px;"',
' cropleft="', sx / w, '"',
' croptop="', sy / h, '"',
' cropright="', (w - sx - sw) / w, '"',
' cropbottom="', (h - sy - sh) / h, '"',
' />',
'</g_vml_:group>');
this.element_.insertAdjacentHTML('BeforeEnd',
vmlStr.join(''));
};
contextPrototype.stroke = function(aFill) {
var lineStr = [];
var lineOpen = false;
var a = processStyle(aFill ? this.fillStyle : this.strokeStyle);
var color = a.color;
var opacity = a.alpha * this.globalAlpha;
var W = 10;
var H = 10;
lineStr.push('<g_vml_:shape',
' filled="', !!aFill, '"',
' style="position:absolute;width:', W, 'px;height:', H, 'px;"',
' coordorigin="0 0" coordsize="', Z * W, ' ', Z * H, '"',
' stroked="', !aFill, '"',
' path="');
var newSeq = false;
var min = {x: null, y: null};
var max = {x: null, y: null};
for (var i = 0; i < this.currentPath_.length; i++) {
var p = this.currentPath_[i];
var c;
switch (p.type) {
case 'moveTo':
c = p;
lineStr.push(' m ', mr(p.x), ',', mr(p.y));
break;
case 'lineTo':
lineStr.push(' l ', mr(p.x), ',', mr(p.y));
break;
case 'close':
lineStr.push(' x ');
p = null;
break;
case 'bezierCurveTo':
lineStr.push(' c ',
mr(p.cp1x), ',', mr(p.cp1y), ',',
mr(p.cp2x), ',', mr(p.cp2y), ',',
mr(p.x), ',', mr(p.y));
break;
case 'at':
case 'wa':
lineStr.push(' ', p.type, ' ',
mr(p.x - this.arcScaleX_ * p.radius), ',',
mr(p.y - this.arcScaleY_ * p.radius), ' ',
mr(p.x + this.arcScaleX_ * p.radius), ',',
mr(p.y + this.arcScaleY_ * p.radius), ' ',
mr(p.xStart), ',', mr(p.yStart), ' ',
mr(p.xEnd), ',', mr(p.yEnd));
break;
}
// TODO: Following is broken for curves due to
// move to proper paths.
// Figure out dimensions so we can do gradient fills
// properly
if (p) {
if (min.x == null || p.x < min.x) {
min.x = p.x;
}
if (max.x == null || p.x > max.x) {
max.x = p.x;
}
if (min.y == null || p.y < min.y) {
min.y = p.y;
}
if (max.y == null || p.y > max.y) {
max.y = p.y;
}
}
}
lineStr.push(' ">');
if (!aFill) {
var lineWidth = this.lineScale_ * this.lineWidth;
// VML cannot correctly render a line if the width is less than 1px.
// In that case, we dilute the color to make the line look thinner.
if (lineWidth < 1) {
opacity *= lineWidth;
}
lineStr.push(
'<g_vml_:stroke',
' opacity="', opacity, '"',
' joinstyle="', this.lineJoin, '"',
' miterlimit="', this.miterLimit, '"',
' endcap="', processLineCap(this.lineCap), '"',
' weight="', lineWidth, 'px"',
' color="', color, '" />'
);
} else if (typeof this.fillStyle == 'object') {
var fillStyle = this.fillStyle;
var angle = 0;
var focus = {x: 0, y: 0};
// additional offset
var shift = 0;
// scale factor for offset
var expansion = 1;
if (fillStyle.type_ == 'gradient') {
var x0 = fillStyle.x0_ / this.arcScaleX_;
var y0 = fillStyle.y0_ / this.arcScaleY_;
var x1 = fillStyle.x1_ / this.arcScaleX_;
var y1 = fillStyle.y1_ / this.arcScaleY_;
var p0 = this.getCoords_(x0, y0);
var p1 = this.getCoords_(x1, y1);
var dx = p1.x - p0.x;
var dy = p1.y - p0.y;
angle = Math.atan2(dx, dy) * 180 / Math.PI;
// The angle should be a non-negative number.
if (angle < 0) {
angle += 360;
}
// Very small angles produce an unexpected result because they are
// converted to a scientific notation string.
if (angle < 1e-6) {
angle = 0;
}
} else {
var p0 = this.getCoords_(fillStyle.x0_, fillStyle.y0_);
var width = max.x - min.x;
var height = max.y - min.y;
focus = {
x: (p0.x - min.x) / width,
y: (p0.y - min.y) / height
};
width /= this.arcScaleX_ * Z;
height /= this.arcScaleY_ * Z;
var dimension = m.max(width, height);
shift = 2 * fillStyle.r0_ / dimension;
expansion = 2 * fillStyle.r1_ / dimension - shift;
}
// We need to sort the color stops in ascending order by offset,
// otherwise IE won't interpret it correctly.
var stops = fillStyle.colors_;
stops.sort(function(cs1, cs2) {
return cs1.offset - cs2.offset;
});
var length = stops.length;
var color1 = stops[0].color;
var color2 = stops[length - 1].color;
var opacity1 = stops[0].alpha * this.globalAlpha;
var opacity2 = stops[length - 1].alpha * this.globalAlpha;
var colors = [];
for (var i = 0; i < length; i++) {
var stop = stops[i];
colors.push(stop.offset * expansion + shift + ' ' + stop.color);
}
// When colors attribute is used, the meanings of opacity and o:opacity2
// are reversed.
lineStr.push('<g_vml_:fill type="', fillStyle.type_, '"',
' method="none" focus="100%"',
' color="', color1, '"',
' color2="', color2, '"',
' colors="', colors.join(','), '"',
' opacity="', opacity2, '"',
' g_o_:opacity2="', opacity1, '"',
' angle="', angle, '"',
' focusposition="', focus.x, ',', focus.y, '" />');
} else {
lineStr.push('<g_vml_:fill color="', color, '" opacity="', opacity,
'" />');
}
lineStr.push('</g_vml_:shape>');
this.element_.insertAdjacentHTML('beforeEnd', lineStr.join(''));
};
contextPrototype.fill = function() {
this.stroke(true);
}
contextPrototype.closePath = function() {
this.currentPath_.push({type: 'close'});
};
/**
* @private
*/
contextPrototype.getCoords_ = function(aX, aY) {
var m = this.m_;
return {
x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2,
y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2
}
};
contextPrototype.save = function() {
var o = {};
copyState(this, o);
this.aStack_.push(o);
this.mStack_.push(this.m_);
this.m_ = matrixMultiply(createMatrixIdentity(), this.m_);
};
contextPrototype.restore = function() {
copyState(this.aStack_.pop(), this);
this.m_ = this.mStack_.pop();
};
function matrixIsFinite(m) {
for (var j = 0; j < 3; j++) {
for (var k = 0; k < 2; k++) {
if (!isFinite(m[j][k]) || isNaN(m[j][k])) {
return false;
}
}
}
return true;
}
function setM(ctx, m, updateLineScale) {
if (!matrixIsFinite(m)) {
return;
}
ctx.m_ = m;
if (updateLineScale) {
// Get the line scale.
// Determinant of this.m_ means how much the area is enlarged by the
// transformation. So its square root can be used as a scale factor
// for width.
var det = m[0][0] * m[1][1] - m[0][1] * m[1][0];
ctx.lineScale_ = sqrt(abs(det));
}
}
contextPrototype.translate = function(aX, aY) {
var m1 = [
[1, 0, 0],
[0, 1, 0],
[aX, aY, 1]
];
setM(this, matrixMultiply(m1, this.m_), false);
};
contextPrototype.rotate = function(aRot) {
var c = mc(aRot);
var s = ms(aRot);
var m1 = [
[c, s, 0],
[-s, c, 0],
[0, 0, 1]
];
setM(this, matrixMultiply(m1, this.m_), false);
};
contextPrototype.scale = function(aX, aY) {
this.arcScaleX_ *= aX;
this.arcScaleY_ *= aY;
var m1 = [
[aX, 0, 0],
[0, aY, 0],
[0, 0, 1]
];
setM(this, matrixMultiply(m1, this.m_), true);
};
contextPrototype.transform = function(m11, m12, m21, m22, dx, dy) {
var m1 = [
[m11, m12, 0],
[m21, m22, 0],
[dx, dy, 1]
];
setM(this, matrixMultiply(m1, this.m_), true);
};
contextPrototype.setTransform = function(m11, m12, m21, m22, dx, dy) {
var m = [
[m11, m12, 0],
[m21, m22, 0],
[dx, dy, 1]
];
setM(this, m, true);
};
/******** STUBS ********/
contextPrototype.clip = function() {
// TODO: Implement
};
contextPrototype.arcTo = function() {
// TODO: Implement
};
contextPrototype.createPattern = function() {
return new CanvasPattern_;
};
// Gradient / Pattern Stubs
function CanvasGradient_(aType) {
this.type_ = aType;
this.x0_ = 0;
this.y0_ = 0;
this.r0_ = 0;
this.x1_ = 0;
this.y1_ = 0;
this.r1_ = 0;
this.colors_ = [];
}
CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) {
aColor = processStyle(aColor);
this.colors_.push({offset: aOffset,
color: aColor.color,
alpha: aColor.alpha});
};
function CanvasPattern_() {}
// set up externs
G_vmlCanvasManager = G_vmlCanvasManager_;
CanvasRenderingContext2D = CanvasRenderingContext2D_;
CanvasGradient = CanvasGradient_;
CanvasPattern = CanvasPattern_;
})();
} // if
@@ -0,0 +1,766 @@
/*!jQuery Knob*/
/**
* Downward compatible, touchable dial
*
* Version: 1.2.0 (15/07/2012)
* Requires: jQuery v1.7+
*
* Copyright (c) 2012 Anthony Terrien
* Under MIT License (http://www.opensource.org/licenses/mit-license.php)
*
* Thanks to vor, eskimoblood, spiffistan, FabrizioC
*/
(function($) {
/**
* Kontrol library
*/
"use strict";
/**
* Definition of globals and core
*/
var k = {}, // kontrol
max = Math.max,
min = Math.min;
k.c = {};
k.c.d = $(document);
k.c.t = function (e) {
return e.originalEvent.touches.length - 1;
};
/**
* Kontrol Object
*
* Definition of an abstract UI control
*
* Each concrete component must call this one.
* <code>
* k.o.call(this);
* </code>
*/
k.o = function () {
var s = this;
this.o = null; // array of options
this.$ = null; // jQuery wrapped element
this.i = null; // mixed HTMLInputElement or array of HTMLInputElement
this.g = null; // deprecated 2D graphics context for 'pre-rendering'
this.v = null; // value ; mixed array or integer
this.cv = null; // change value ; not commited value
this.x = 0; // canvas x position
this.y = 0; // canvas y position
this.w = 0; // canvas width
this.h = 0; // canvas height
this.$c = null; // jQuery canvas element
this.c = null; // rendered canvas context
this.t = 0; // touches index
this.isInit = false;
this.fgColor = null; // main color
this.pColor = null; // previous color
this.dH = null; // draw hook
this.cH = null; // change hook
this.eH = null; // cancel hook
this.rH = null; // release hook
this.scale = 1; // scale factor
this.relative = false;
this.relativeWidth = false;
this.relativeHeight = false;
this.$div = null; // component div
this.run = function () {
var cf = function (e, conf) {
var k;
for (k in conf) {
s.o[k] = conf[k];
}
s._carve().init();
s._configure()
._draw();
};
if(this.$.data('kontroled')) return;
this.$.data('kontroled', true);
this.extend();
this.o = $.extend(
{
// Config
min : this.$.data('min') || 0,
max : this.$.data('max') || 100,
stopper : true,
readOnly : this.$.data('readonly') || (this.$.attr('readonly') === 'readonly'),
// UI
cursor : (this.$.data('cursor') === true && 30) ||
this.$.data('cursor') || 0,
thickness : (
this.$.data('thickness') &&
Math.max(Math.min(this.$.data('thickness'), 1), 0.01)
) || 0.35,
lineCap : this.$.data('linecap') || 'butt',
width : this.$.data('width') || 200,
height : this.$.data('height') || 200,
displayInput : this.$.data('displayinput') == null || this.$.data('displayinput'),
displayPrevious : this.$.data('displayprevious'),
fgColor : this.$.data('fgcolor') || '#87CEEB',
inputColor: this.$.data('inputcolor'),
font: this.$.data('font') || 'Arial',
fontWeight: this.$.data('font-weight') || 'bold',
inline : false,
step : this.$.data('step') || 1,
// Hooks
draw : null, // function () {}
change : null, // function (value) {}
cancel : null, // function () {}
release : null // function (value) {}
}, this.o
);
// finalize options
if(!this.o.inputColor) {
this.o.inputColor = this.o.fgColor;
}
// routing value
if(this.$.is('fieldset')) {
// fieldset = array of integer
this.v = {};
this.i = this.$.find('input');
this.i.each(function(k) {
var $this = $(this);
s.i[k] = $this;
s.v[k] = $this.val();
$this.bind(
'change blur'
, function () {
var val = {};
val[k] = $this.val();
s.val(val);
}
);
});
this.$.find('legend').remove();
} else {
// input = integer
this.i = this.$;
this.v = this.$.val();
(this.v === '') && (this.v = this.o.min);
this.$.bind(
'change blur'
, function () {
s.val(s._validate(s.$.val()));
}
);
}
(!this.o.displayInput) && this.$.hide();
// adds needed DOM elements (canvas, div)
this.$c = $(document.createElement('canvas')).attr({
width: this.o.width,
height: this.o.height
});
// wraps all elements in a div
// add to DOM before Canvas init is triggered
this.$div = $('<div style="'
+ (this.o.inline ? 'display:inline;' : '')
+ 'width:' + this.o.width + 'px;height:' + this.o.height + 'px;'
+ '"></div>');
this.$.wrap(this.$div).before(this.$c);
this.$div = this.$.parent();
if (typeof G_vmlCanvasManager !== 'undefined') {
G_vmlCanvasManager.initElement(this.$c[0]);
}
this.c = this.$c[0].getContext ? this.$c[0].getContext('2d') : null;
if (!this.c) {
throw {
name: "CanvasNotSupportedException",
message: "Canvas not supported. Please use excanvas on IE8.0.",
toString: function(){return this.name + ": " + this.message}
}
}
// hdpi support
this.scale = (window.devicePixelRatio || 1) /
(
this.c.webkitBackingStorePixelRatio ||
this.c.mozBackingStorePixelRatio ||
this.c.msBackingStorePixelRatio ||
this.c.oBackingStorePixelRatio ||
this.c.backingStorePixelRatio || 1
);
// detects relative width / height
this.relativeWidth = ((this.o.width % 1 !== 0) &&
this.o.width.indexOf('%'));
this.relativeHeight = ((this.o.height % 1 !== 0) &&
this.o.height.indexOf('%'));
this.relative = (this.relativeWidth || this.relativeHeight);
// computes size and carves the component
this._carve();
// prepares props for transaction
if (this.v instanceof Object) {
this.cv = {};
this.copy(this.v, this.cv);
} else {
this.cv = this.v;
}
// binds configure event
this.$
.bind("configure", cf)
.parent()
.bind("configure", cf);
// finalize init
this._listen()
._configure()
._xy()
.init();
this.isInit = true;
// the most important !
this._draw();
return this;
};
this._carve = function() {
if(this.relative) {
var w = this.relativeWidth ?
this.$div.parent().width() *
parseInt(this.o.width) / 100 :
this.$div.parent().width(),
h = this.relativeHeight ?
this.$div.parent().height() *
parseInt(this.o.height) / 100 :
this.$div.parent().height();
// apply relative
this.w = this.h = Math.min(w, h);
} else {
this.w = this.o.width;
this.h = this.o.height;
}
// finalize div
this.$div.css({
'width': this.w + 'px',
'height': this.h + 'px'
});
// finalize canvas with computed width
this.$c.attr({
width: this.w,
height: this.h
});
// scaling
if (this.scale !== 1) {
this.$c[0].width = this.$c[0].width * this.scale;
this.$c[0].height = this.$c[0].height * this.scale;
this.$c.width(this.w);
this.$c.height(this.h);
}
return this;
}
this._draw = function () {
// canvas pre-rendering
var d = true;
s.g = s.c;
s.clear();
s.dH
&& (d = s.dH());
(d !== false) && s.draw();
};
this._touch = function (e) {
var touchMove = function (e) {
var v = s.xy2val(
e.originalEvent.touches[s.t].pageX,
e.originalEvent.touches[s.t].pageY
);
if (v == s.cv) return;
if (s.cH && (s.cH(v) === false)) return;
s.change(s._validate(v));
s._draw();
};
// get touches index
this.t = k.c.t(e);
// First touch
touchMove(e);
// Touch events listeners
k.c.d
.bind("touchmove.k", touchMove)
.bind(
"touchend.k"
, function () {
k.c.d.unbind('touchmove.k touchend.k');
s.val(s.cv);
}
);
return this;
};
this._mouse = function (e) {
var mouseMove = function (e) {
var v = s.xy2val(e.pageX, e.pageY);
if (v == s.cv) return;
if (s.cH && (s.cH(v) === false)) return;
s.change(s._validate(v));
s._draw();
};
// First click
mouseMove(e);
// Mouse events listeners
k.c.d
.bind("mousemove.k", mouseMove)
.bind(
// Escape key cancel current change
"keyup.k"
, function (e) {
if (e.keyCode === 27) {
k.c.d.unbind("mouseup.k mousemove.k keyup.k");
if (
s.eH
&& (s.eH() === false)
) return;
s.cancel();
}
}
)
.bind(
"mouseup.k"
, function (e) {
k.c.d.unbind('mousemove.k mouseup.k keyup.k');
s.val(s.cv);
}
);
return this;
};
this._xy = function () {
var o = this.$c.offset();
this.x = o.left;
this.y = o.top;
return this;
};
this._listen = function () {
if (!this.o.readOnly) {
this.$c
.bind(
"mousedown"
, function (e) {
e.preventDefault();
s._xy()._mouse(e);
}
)
.bind(
"touchstart"
, function (e) {
e.preventDefault();
s._xy()._touch(e);
}
);
this.listen();
} else {
this.$.attr('readonly', 'readonly');
}
if(this.relative) {
$(window).resize(function() {
s._carve()
.init();
s._draw();
});
}
return this;
};
this._configure = function () {
// Hooks
if (this.o.draw) this.dH = this.o.draw;
if (this.o.change) this.cH = this.o.change;
if (this.o.cancel) this.eH = this.o.cancel;
if (this.o.release) this.rH = this.o.release;
if (this.o.displayPrevious) {
this.pColor = this.h2rgba(this.o.fgColor, "0.4");
this.fgColor = this.h2rgba(this.o.fgColor, "0.6");
} else {
this.fgColor = this.o.fgColor;
}
return this;
};
this._clear = function () {
this.$c[0].width = this.$c[0].width;
};
this._validate = function(v) {
return (~~ (((v < 0) ? -0.5 : 0.5) + (v/this.o.step))) * this.o.step;
};
// Abstract methods
this.listen = function () {}; // on start, one time
this.extend = function () {}; // each time configure triggered
this.init = function () {}; // each time configure triggered
this.change = function (v) {}; // on change
this.val = function (v) {}; // on release
this.xy2val = function (x, y) {}; //
this.draw = function () {}; // on change / on release
this.clear = function () { this._clear(); };
// Utils
this.h2rgba = function (h, a) {
var rgb;
h = h.substring(1,7)
rgb = [parseInt(h.substring(0,2),16)
,parseInt(h.substring(2,4),16)
,parseInt(h.substring(4,6),16)];
return "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "," + a + ")";
};
this.copy = function (f, t) {
for (var i in f) { t[i] = f[i]; }
};
};
/**
* k.Dial
*/
k.Dial = function () {
k.o.call(this);
this.startAngle = null;
this.xy = null;
this.radius = null;
this.lineWidth = null;
this.cursorExt = null;
this.w2 = null;
this.PI2 = 2*Math.PI;
this.extend = function () {
this.o = $.extend(
{
bgColor : this.$.data('bgcolor') || '#EEEEEE',
angleOffset : this.$.data('angleoffset') || 0,
angleArc : this.$.data('anglearc') || 360,
inline : true
}, this.o
);
};
this.val = function (v, triggerRelease) {
if (null != v) {
if (
triggerRelease !== false && (v != this.v) && this.rH &&
(this.rH(v) === false)
) return;
this.cv = this.o.stopper ? max(min(v, this.o.max), this.o.min) : v;
this.v = this.cv;
this.$.val(this.v);
this._draw();
} else {
return this.v;
}
};
this.xy2val = function (x, y) {
var a, ret;
a = Math.atan2(
x - (this.x + this.w2)
, - (y - this.y - this.w2)
) - this.angleOffset;
if(this.angleArc != this.PI2 && (a < 0) && (a > -0.5)) {
// if isset angleArc option, set to min if .5 under min
a = 0;
} else if (a < 0) {
a += this.PI2;
}
ret = ~~ (0.5 + (a * (this.o.max - this.o.min) / this.angleArc))
+ this.o.min;
this.o.stopper && (ret = max(min(ret, this.o.max), this.o.min));
return ret;
};
this.listen = function () {
// bind MouseWheel
var s = this, mwTimerStop, mwTimerRelease,
mw = function (e) {
e.preventDefault();
var ori = e.originalEvent
,deltaX = ori.detail || ori.wheelDeltaX
,deltaY = ori.detail || ori.wheelDeltaY
,v = s._validate(s.$.val())
+ (deltaX>0 || deltaY>0 ? s.o.step : deltaX<0 || deltaY<0 ? -s.o.step : 0);
v = max(min(v, s.o.max), s.o.min);
s.val(v, false);
if(s.rH) {
// Handle mousewheel stop
clearTimeout(mwTimerStop);
mwTimerStop = setTimeout(function() {
s.rH(v);
mwTimerStop = null;
}, 100);
// Handle mousewheel releases
if(!mwTimerRelease) {
mwTimerRelease = setTimeout(function() {
if(mwTimerStop) s.rH(v);
mwTimerRelease = null;
}, 200);
}
}
}
, kval, to, m = 1, kv = {37:-s.o.step, 38:s.o.step, 39:s.o.step, 40:-s.o.step};
this.$
.bind(
"keydown"
,function (e) {
var kc = e.keyCode;
// numpad support
if(kc >= 96 && kc <= 105) {
kc = e.keyCode = kc - 48;
}
kval = parseInt(String.fromCharCode(kc));
if (isNaN(kval)) {
(kc !== 13) // enter
&& (kc !== 8) // bs
&& (kc !== 9) // tab
&& (kc !== 189) // -
&& e.preventDefault();
// arrows
if ($.inArray(kc,[37,38,39,40]) > -1) {
e.preventDefault();
var v = parseInt(s.$.val()) + kv[kc] * m;
s.o.stopper && (v = max(min(v, s.o.max), s.o.min));
s.change(v);
s._draw();
// long time keydown speed-up
to = window.setTimeout(
function () { m *= 2; }, 30
);
}
}
}
)
.bind(
"keyup"
,function (e) {
if (isNaN(kval)) {
if (to) {
window.clearTimeout(to);
to = null;
m = 1;
s.val(s.$.val());
}
} else {
// kval postcond
(s.$.val() > s.o.max && s.$.val(s.o.max))
|| (s.$.val() < s.o.min && s.$.val(s.o.min));
}
}
);
this.$c.bind("mousewheel DOMMouseScroll", mw);
this.$.bind("mousewheel DOMMouseScroll", mw)
};
this.init = function () {
if (
this.v < this.o.min
|| this.v > this.o.max
) this.v = this.o.min;
this.$.val(this.v);
this.w2 = this.w / 2;
this.cursorExt = this.o.cursor / 100;
this.xy = this.w2 * this.scale;
this.lineWidth = this.xy * this.o.thickness;
this.lineCap = this.o.lineCap;
this.radius = this.xy - this.lineWidth / 2;
this.o.angleOffset
&& (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset);
this.o.angleArc
&& (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc);
// deg to rad
this.angleOffset = this.o.angleOffset * Math.PI / 180;
this.angleArc = this.o.angleArc * Math.PI / 180;
// compute start and end angles
this.startAngle = 1.5 * Math.PI + this.angleOffset;
this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc;
var s = max(
String(Math.abs(this.o.max)).length
, String(Math.abs(this.o.min)).length
, 2
) + 2;
this.o.displayInput
&& this.i.css({
'width' : ((this.w / 2 + 4) >> 0) + 'px'
,'height' : ((this.w / 3) >> 0) + 'px'
,'position' : 'absolute'
,'vertical-align' : 'middle'
,'margin-top' : ((this.w / 3) >> 0) + 'px'
,'margin-left' : '-' + ((this.w * 3 / 4 + 2) >> 0) + 'px'
,'border' : 0
,'background' : 'none'
,'font' : this.o.fontWeight + ' ' + ((this.w / s) >> 0) + 'px ' + this.o.font
,'text-align' : 'center'
,'color' : this.o.inputColor || this.o.fgColor
,'padding' : '0px'
,'-webkit-appearance': 'none'
})
|| this.i.css({
'width' : '0px'
,'visibility' : 'hidden'
});
};
this.change = function (v) {
this.cv = v;
this.$.val(v);
};
this.angle = function (v) {
return (v - this.o.min) * this.angleArc / (this.o.max - this.o.min);
};
this.draw = function () {
var c = this.g, // context
a = this.angle(this.cv) // Angle
, sat = this.startAngle // Start angle
, eat = sat + a // End angle
, sa, ea // Previous angles
, r = 1;
c.lineWidth = this.lineWidth;
c.lineCap = this.lineCap;
this.o.cursor
&& (sat = eat - this.cursorExt)
&& (eat = eat + this.cursorExt);
c.beginPath();
c.strokeStyle = this.o.bgColor;
c.arc(this.xy, this.xy, this.radius, this.endAngle - 0.00001, this.startAngle + 0.00001, true);
c.stroke();
if (this.o.displayPrevious) {
ea = this.startAngle + this.angle(this.v);
sa = this.startAngle;
this.o.cursor
&& (sa = ea - this.cursorExt)
&& (ea = ea + this.cursorExt);
c.beginPath();
c.strokeStyle = this.pColor;
c.arc(this.xy, this.xy, this.radius, sa - 0.00001, ea + 0.00001, false);
c.stroke();
r = (this.cv == this.v);
}
c.beginPath();
c.strokeStyle = r ? this.o.fgColor : this.fgColor ;
c.arc(this.xy, this.xy, this.radius, sat - 0.00001, eat + 0.00001, false);
c.stroke();
};
this.cancel = function () {
this.val(this.v);
};
};
$.fn.dial = $.fn.knob = function (o) {
return this.each(
function () {
var d = new k.Dial();
d.o = o;
d.$ = $(this);
d.run();
}
).parent();
};
})(jQuery);
@@ -0,0 +1,109 @@
!function($) {
"use strict";
var EasyPieChart = function() {};
EasyPieChart.prototype.init = function() {
//initializing various types of easy pie charts
$('.easy-pie-chart-1').easyPieChart({
easing: 'easeOutBounce',
barColor : '#ffffff',
lineWidth: 6,
animate: 1000,
lineCap: 'rgba(255, 255, 255, 0.14)',
trackColor : 'rgba(255, 255, 255, 0.14)',
onStep: function(from, to, percent) {
$(this.el).find('.percent').text(Math.round(percent));
}
});
$('.easy-pie-chart-2').easyPieChart({
easing: 'easeOutBounce',
barColor : '#ffffff',
lineWidth: 6,
lineCap: 'rgba(255, 255, 255, 0.14)',
trackColor : 'rgba(255, 255, 255, 0.14)',
onStep: function(from, to, percent) {
$(this.el).find('.percent').text(Math.round(percent));
}
});
$('.easy-pie-chart-3').easyPieChart({
easing: 'easeOutBounce',
barColor : '#ffffff',
lineWidth: 6,
lineCap: 'rgba(255, 255, 255, 0.14)',
trackColor : 'rgba(255, 255, 255, 0.14)',
onStep: function(from, to, percent) {
$(this.el).find('.percent').text(Math.round(percent));
}
});
$('.easy-pie-chart-4').easyPieChart({
easing: 'easeOutBounce',
barColor : '#ffffff',
lineWidth: 6,
lineCap: 'rgba(255, 255, 255, 0.14)',
trackColor : 'rgba(255, 255, 255, 0.14)',
onStep: function(from, to, percent) {
$(this.el).find('.percent').text(Math.round(percent));
}
});
$('.easy-pie-chart-5').easyPieChart({
easing: 'easeOutBounce',
barColor : '#ffffff',
lineWidth: 8,
trackColor : 'rgba(255, 255, 255, 0.14)',
scaleColor: false,
onStep: function(from, to, percent) {
$(this.el).find('.percent').text(Math.round(percent));
}
});
$('.easy-pie-chart-6').easyPieChart({
easing: 'easeOutBounce',
barColor : '#ffffff',
lineWidth: 8,
trackColor : 'rgba(255, 255, 255, 0.14)',
scaleColor: false,
onStep: function(from, to, percent) {
$(this.el).find('.percent').text(Math.round(percent));
}
});
$('.easy-pie-chart-7').easyPieChart({
easing: 'easeOutBounce',
barColor : '#ffffff',
lineWidth: 8,
trackColor : 'rgba(255, 255, 255, 0.14)',
scaleColor: false,
onStep: function(from, to, percent) {
$(this.el).find('.percent').text(Math.round(percent));
}
});
$('.easy-pie-chart-8').easyPieChart({
easing: 'easeOutBounce',
barColor : '#ffffff',
lineWidth: 8,
trackColor : 'rgba(255, 255, 255, 0.14)',
scaleColor: false,
onStep: function(from, to, percent) {
$(this.el).find('.percent').text(Math.round(percent));
}
});
},
//init
$.EasyPieChart = new EasyPieChart, $.EasyPieChart.Constructor = EasyPieChart
}(window.jQuery),
//initializing
function($) {
"use strict";
$.EasyPieChart.init()
}(window.jQuery);
@@ -0,0 +1,9 @@
/**!
* easyPieChart
* Lightweight plugin to render simple, animated and retina optimized pie charts
*
* @license
* @author Robert Fleischmann <rendro87@gmail.com> (http://robert-fleischmann.de)
* @version 2.1.6
**/
!function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define([],b):a.EasyPieChart=b()}(this,function(){var a=function(a,b){var c,d=document.createElement("canvas");a.appendChild(d),"undefined"!=typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(d);var e=d.getContext("2d");d.width=d.height=b.size;var f=1;window.devicePixelRatio>1&&(f=window.devicePixelRatio,d.style.width=d.style.height=[b.size,"px"].join(""),d.width=d.height=b.size*f,e.scale(f,f)),e.translate(b.size/2,b.size/2),e.rotate((-0.5+b.rotate/180)*Math.PI);var g=(b.size-b.lineWidth)/2;b.scaleColor&&b.scaleLength&&(g-=b.scaleLength+2),Date.now=Date.now||function(){return+new Date};var h=function(a,b,c){c=Math.min(Math.max(-1,c||0),1);var d=0>=c?!0:!1;e.beginPath(),e.arc(0,0,g,0,2*Math.PI*c,d),e.strokeStyle=a,e.lineWidth=b,e.stroke()},i=function(){var a,c;e.lineWidth=1,e.fillStyle=b.scaleColor,e.save();for(var d=24;d>0;--d)d%6===0?(c=b.scaleLength,a=0):(c=.6*b.scaleLength,a=b.scaleLength-c),e.fillRect(-b.size/2+a,0,c,1),e.rotate(Math.PI/12);e.restore()},j=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(a){window.setTimeout(a,1e3/60)}}(),k=function(){b.scaleColor&&i(),b.trackColor&&h(b.trackColor,b.trackWidth||b.lineWidth,1)};this.getCanvas=function(){return d},this.getCtx=function(){return e},this.clear=function(){e.clearRect(b.size/-2,b.size/-2,b.size,b.size)},this.draw=function(a){b.scaleColor||b.trackColor?e.getImageData&&e.putImageData?c?e.putImageData(c,0,0):(k(),c=e.getImageData(0,0,b.size*f,b.size*f)):(this.clear(),k()):this.clear(),e.lineCap=b.lineCap;var d;d="function"==typeof b.barColor?b.barColor(a):b.barColor,h(d,b.lineWidth,a/100)}.bind(this),this.animate=function(a,c){var d=Date.now();b.onStart(a,c);var e=function(){var f=Math.min(Date.now()-d,b.animate.duration),g=b.easing(this,f,a,c-a,b.animate.duration);this.draw(g),b.onStep(a,c,g),f>=b.animate.duration?b.onStop(a,c):j(e)}.bind(this);j(e)}.bind(this)},b=function(b,c){var d={barColor:"#ef1e25",trackColor:"#f9f9f9",scaleColor:"#dfe0e0",scaleLength:5,lineCap:"round",lineWidth:3,trackWidth:void 0,size:110,rotate:0,animate:{duration:1e3,enabled:!0},easing:function(a,b,c,d,e){return b/=e/2,1>b?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},onStart:function(){},onStep:function(){},onStop:function(){}};if("undefined"!=typeof a)d.renderer=a;else{if("undefined"==typeof SVGRenderer)throw new Error("Please load either the SVG- or the CanvasRenderer");d.renderer=SVGRenderer}var e={},f=0,g=function(){this.el=b,this.options=e;for(var a in d)d.hasOwnProperty(a)&&(e[a]=c&&"undefined"!=typeof c[a]?c[a]:d[a],"function"==typeof e[a]&&(e[a]=e[a].bind(this)));e.easing="string"==typeof e.easing&&"undefined"!=typeof jQuery&&jQuery.isFunction(jQuery.easing[e.easing])?jQuery.easing[e.easing]:d.easing,"number"==typeof e.animate&&(e.animate={duration:e.animate,enabled:!0}),"boolean"!=typeof e.animate||e.animate||(e.animate={duration:1e3,enabled:e.animate}),this.renderer=new e.renderer(b,e),this.renderer.draw(f),b.dataset&&b.dataset.percent?this.update(parseFloat(b.dataset.percent)):b.getAttribute&&b.getAttribute("data-percent")&&this.update(parseFloat(b.getAttribute("data-percent")))}.bind(this);this.update=function(a){return a=parseFloat(a),e.animate.enabled?this.renderer.animate(f,a):this.renderer.draw(a),f=a,this}.bind(this),this.disableAnimation=function(){return e.animate.enabled=!1,this},this.enableAnimation=function(){return e.animate.enabled=!0,this},g()};return b});
@@ -0,0 +1,9 @@
/**!
* easyPieChart
* Lightweight plugin to render simple, animated and retina optimized pie charts
*
* @license
* @author Robert Fleischmann <rendro87@gmail.com> (http://robert-fleischmann.de)
* @version 2.1.6
**/
!function(a,b){"object"==typeof exports?module.exports=b(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],b):b(a.jQuery)}(this,function(a){var b=function(a,b){var c,d=document.createElement("canvas");a.appendChild(d),"undefined"!=typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(d);var e=d.getContext("2d");d.width=d.height=b.size;var f=1;window.devicePixelRatio>1&&(f=window.devicePixelRatio,d.style.width=d.style.height=[b.size,"px"].join(""),d.width=d.height=b.size*f,e.scale(f,f)),e.translate(b.size/2,b.size/2),e.rotate((-0.5+b.rotate/180)*Math.PI);var g=(b.size-b.lineWidth)/2;b.scaleColor&&b.scaleLength&&(g-=b.scaleLength+2),Date.now=Date.now||function(){return+new Date};var h=function(a,b,c){c=Math.min(Math.max(-1,c||0),1);var d=0>=c?!0:!1;e.beginPath(),e.arc(0,0,g,0,2*Math.PI*c,d),e.strokeStyle=a,e.lineWidth=b,e.stroke()},i=function(){var a,c;e.lineWidth=1,e.fillStyle=b.scaleColor,e.save();for(var d=24;d>0;--d)d%6===0?(c=b.scaleLength,a=0):(c=.6*b.scaleLength,a=b.scaleLength-c),e.fillRect(-b.size/2+a,0,c,1),e.rotate(Math.PI/12);e.restore()},j=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(a){window.setTimeout(a,1e3/60)}}(),k=function(){b.scaleColor&&i(),b.trackColor&&h(b.trackColor,b.trackWidth||b.lineWidth,1)};this.getCanvas=function(){return d},this.getCtx=function(){return e},this.clear=function(){e.clearRect(b.size/-2,b.size/-2,b.size,b.size)},this.draw=function(a){b.scaleColor||b.trackColor?e.getImageData&&e.putImageData?c?e.putImageData(c,0,0):(k(),c=e.getImageData(0,0,b.size*f,b.size*f)):(this.clear(),k()):this.clear(),e.lineCap=b.lineCap;var d;d="function"==typeof b.barColor?b.barColor(a):b.barColor,h(d,b.lineWidth,a/100)}.bind(this),this.animate=function(a,c){var d=Date.now();b.onStart(a,c);var e=function(){var f=Math.min(Date.now()-d,b.animate.duration),g=b.easing(this,f,a,c-a,b.animate.duration);this.draw(g),b.onStep(a,c,g),f>=b.animate.duration?b.onStop(a,c):j(e)}.bind(this);j(e)}.bind(this)},c=function(a,c){var d={barColor:"#ef1e25",trackColor:"#f9f9f9",scaleColor:"#dfe0e0",scaleLength:5,lineCap:"round",lineWidth:3,trackWidth:void 0,size:110,rotate:0,animate:{duration:1e3,enabled:!0},easing:function(a,b,c,d,e){return b/=e/2,1>b?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},onStart:function(){},onStep:function(){},onStop:function(){}};if("undefined"!=typeof b)d.renderer=b;else{if("undefined"==typeof SVGRenderer)throw new Error("Please load either the SVG- or the CanvasRenderer");d.renderer=SVGRenderer}var e={},f=0,g=function(){this.el=a,this.options=e;for(var b in d)d.hasOwnProperty(b)&&(e[b]=c&&"undefined"!=typeof c[b]?c[b]:d[b],"function"==typeof e[b]&&(e[b]=e[b].bind(this)));e.easing="string"==typeof e.easing&&"undefined"!=typeof jQuery&&jQuery.isFunction(jQuery.easing[e.easing])?jQuery.easing[e.easing]:d.easing,"number"==typeof e.animate&&(e.animate={duration:e.animate,enabled:!0}),"boolean"!=typeof e.animate||e.animate||(e.animate={duration:1e3,enabled:e.animate}),this.renderer=new e.renderer(a,e),this.renderer.draw(f),a.dataset&&a.dataset.percent?this.update(parseFloat(a.dataset.percent)):a.getAttribute&&a.getAttribute("data-percent")&&this.update(parseFloat(a.getAttribute("data-percent")))}.bind(this);this.update=function(a){return a=parseFloat(a),e.animate.enabled?this.renderer.animate(f,a):this.renderer.draw(a),f=a,this}.bind(this),this.disableAnimation=function(){return e.animate.enabled=!1,this},this.enableAnimation=function(){return e.animate.enabled=!0,this},g()};a.fn.easyPieChart=function(b){return this.each(function(){var d;a.data(this,"easyPieChart")||(d=a.extend({},b,a(this).data()),a.data(this,"easyPieChart",new c(this,d)))})}});
@@ -0,0 +1,8 @@
/*!
* metismenu https://github.com/onokumus/metismenu#readme
* A jQuery menu plugin
* @version 3.0.6
* @author Osman Nuri Okumus <onokumus@gmail.com> (https://github.com/onokumus)
* @license: MIT
*/.metismenu .arrow{float:right;line-height:1.42857}[dir=rtl] .metismenu .arrow{float:left}.metismenu .glyphicon.arrow:before{content:"\e079"}.metismenu .mm-active>a>.glyphicon.arrow:before{content:"\e114"}.metismenu .fa.arrow:before{content:"\f104"}.metismenu .mm-active>a>.fa.arrow:before{content:"\f107"}.metismenu .ion.arrow:before{content:"\f3d2"}.metismenu .mm-active>a>.ion.arrow:before{content:"\f3d0"}.metismenu .plus-times{float:right}[dir=rtl] .metismenu .plus-times{float:left}.metismenu .fa.plus-times:before{content:"\f067"}.metismenu .mm-active>a>.fa.plus-times{transform:rotate(45deg)}.metismenu .plus-minus{float:right}[dir=rtl] .metismenu .plus-minus{float:left}.metismenu .fa.plus-minus:before{content:"\f067"}.metismenu .mm-active>a>.fa.plus-minus:before{content:"\f068"}.metismenu .mm-collapse:not(.mm-show){display:none}.metismenu .mm-collapsing{position:relative;height:0;overflow:hidden;transition-timing-function:ease;transition-duration:.35s;transition-property:height,visibility}.metismenu .has-arrow{position:relative}.metismenu .has-arrow:after{position:absolute;content:"";width:.5em;height:.5em;border-style:solid;border-width:1px 0 0 1px;border-color:initial;right:1em;transform:rotate(-45deg) translateY(-50%);transform-origin:top;top:50%;transition:all .3s ease-out}[dir=rtl] .metismenu .has-arrow:after{right:auto;left:1em;transform:rotate(135deg) translateY(-50%)}.metismenu .has-arrow[aria-expanded=true]:after,.metismenu .mm-active>.has-arrow:after{transform:rotate(-135deg) translateY(-50%)}[dir=rtl] .metismenu .has-arrow[aria-expanded=true]:after,[dir=rtl] .metismenu .mm-active>.has-arrow:after{transform:rotate(225deg) translateY(-50%)}
/*# sourceMappingURL=metisMenu.min.css.map */
@@ -0,0 +1 @@
{"version":3,"sources":["<no source>","../src/metisMenu.css"],"names":[],"mappings":"AAAA;;;;;;EAAA,ACAA,kBACE,WAAY,CACZ,mBACF,CACA,4BACE,UACF,CAOA,mCACE,eACF,CACA,gDACE,eACF,CAOA,4BACE,eACF,CACA,yCACE,eACF,CAOA,6BACE,eACF,CACA,0CACE,eACF,CACA,uBACE,WACF,CACA,iCACE,UACF,CACA,iCACE,eACF,CACA,uCACE,uBACF,CACA,uBACE,WACF,CACA,iCACE,UACF,CACA,iCACE,eACF,CACA,8CACE,eACF,CACA,sCACE,YACF,CAEA,0BACE,iBAAkB,CAClB,QAAS,CACT,eAAgB,CAChB,+BAAgC,CAChC,wBAAyB,CACzB,qCACF,CAEA,sBACE,iBACF,CAEA,4BACE,iBAAkB,CAClB,UAAW,CACX,UAAW,CACX,WAAY,CAGZ,kBAAqB,CAArB,wBAAqB,CAArB,oBAAqB,CACrB,SAAU,CACV,yCAA4C,CAC5C,oBAAqB,CACrB,OAAQ,CACR,2BACF,CAEA,sCACE,UAAW,CACX,QAAS,CACT,yCACF,CAEA,uFAEE,0CACF,CAEA,2GAEE,yCACF","file":"metisMenu.min.css","sourcesContent":[null,".metismenu .arrow {\n float: right;\n line-height: 1.42857;\n}\n*[dir=\"rtl\"] .metismenu .arrow {\n float: left;\n}\n\n/*\n * Require Bootstrap 3.x\n * https://github.com/twbs/bootstrap\n*/\n\n.metismenu .glyphicon.arrow:before {\n content: \"\\e079\";\n}\n.metismenu .mm-active > a > .glyphicon.arrow:before {\n content: \"\\e114\";\n}\n\n/*\n * Require Font-Awesome\n * http://fortawesome.github.io/Font-Awesome/\n*/\n\n.metismenu .fa.arrow:before {\n content: \"\\f104\";\n}\n.metismenu .mm-active > a > .fa.arrow:before {\n content: \"\\f107\";\n}\n\n/*\n * Require Ionicons\n * http://ionicons.com/\n*/\n\n.metismenu .ion.arrow:before {\n content: \"\\f3d2\"\n}\n.metismenu .mm-active > a > .ion.arrow:before {\n content: \"\\f3d0\";\n}\n.metismenu .plus-times {\n float: right;\n}\n*[dir=\"rtl\"] .metismenu .plus-times {\n float: left;\n}\n.metismenu .fa.plus-times:before {\n content: \"\\f067\";\n}\n.metismenu .mm-active > a > .fa.plus-times {\n transform: rotate(45deg);\n}\n.metismenu .plus-minus {\n float: right;\n}\n*[dir=\"rtl\"] .metismenu .plus-minus {\n float: left;\n}\n.metismenu .fa.plus-minus:before {\n content: \"\\f067\";\n}\n.metismenu .mm-active > a > .fa.plus-minus:before {\n content: \"\\f068\";\n}\n.metismenu .mm-collapse:not(.mm-show) {\n display: none;\n}\n\n.metismenu .mm-collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition-timing-function: ease;\n transition-duration: .35s;\n transition-property: height, visibility;\n}\n\n.metismenu .has-arrow {\n position: relative;\n}\n\n.metismenu .has-arrow::after {\n position: absolute;\n content: '';\n width: .5em;\n height: .5em;\n border-width: 1px 0 0 1px;\n border-style: solid;\n border-color: initial;\n right: 1em;\n transform: rotate(-45deg) translate(0, -50%);\n transform-origin: top;\n top: 50%;\n transition: all .3s ease-out;\n}\n\n*[dir=\"rtl\"] .metismenu .has-arrow::after {\n right: auto;\n left: 1em;\n transform: rotate(135deg) translate(0, -50%);\n}\n\n.metismenu .mm-active > .has-arrow::after,\n.metismenu .has-arrow[aria-expanded=\"true\"]::after {\n transform: rotate(-135deg) translate(0, -50%);\n}\n\n*[dir=\"rtl\"] .metismenu .mm-active > .has-arrow::after,\n*[dir=\"rtl\"] .metismenu .has-arrow[aria-expanded=\"true\"]::after {\n transform: rotate(225deg) translate(0, -50%);\n}\n"]}
@@ -0,0 +1,9 @@
/*!
* metismenu https://github.com/onokumus/metismenu#readme
* A jQuery menu plugin
* @version 3.0.6
* @author Osman Nuri Okumus <onokumus@gmail.com> (https://github.com/onokumus)
* @license: MIT
*/
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],n):(e=e||self).metisMenu=n(e.jQuery)}(this,function(o){"use strict";function a(){return(a=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e}).apply(this,arguments)}o=o&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o;var i,n,r,s=(n="transitionend",r={TRANSITION_END:"mmTransitionEnd",triggerTransitionEnd:function(e){i(e).trigger(n)},supportsTransitionEnd:function(){return Boolean(n)}},(i=o).fn.mmEmulateTransitionEnd=e,i.event.special[r.TRANSITION_END]={bindType:n,delegateType:n,handle:function(e){if(i(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}},r);function e(e){var n=this,t=!1;return i(this).one(r.TRANSITION_END,function(){t=!0}),setTimeout(function(){t||r.triggerTransitionEnd(n)},e),this}var t="metisMenu",g="metisMenu",l="."+g,h=o.fn[t],f={toggle:!0,preventDefault:!0,triggerElement:"a",parentTrigger:"li",subMenu:"ul"},d={SHOW:"show"+l,SHOWN:"shown"+l,HIDE:"hide"+l,HIDDEN:"hidden"+l,CLICK_DATA_API:"click"+l+".data-api"},u="metismenu",c="mm-active",p="mm-show",m="mm-collapse",T="mm-collapsing",v=function(){function r(e,n){this.element=e,this.config=a({},f,{},n),this.transitioning=null,this.init()}var e=r.prototype;return e.init=function(){var a=this,s=this.config,e=o(this.element);e.addClass(u),e.find(s.parentTrigger+"."+c).children(s.triggerElement).attr("aria-expanded","true"),e.find(s.parentTrigger+"."+c).parents(s.parentTrigger).addClass(c),e.find(s.parentTrigger+"."+c).parents(s.parentTrigger).children(s.triggerElement).attr("aria-expanded","true"),e.find(s.parentTrigger+"."+c).has(s.subMenu).children(s.subMenu).addClass(m+" "+p),e.find(s.parentTrigger).not("."+c).has(s.subMenu).children(s.subMenu).addClass(m),e.find(s.parentTrigger).children(s.triggerElement).on(d.CLICK_DATA_API,function(e){var n=o(this);if("true"!==n.attr("aria-disabled")){s.preventDefault&&"#"===n.attr("href")&&e.preventDefault();var t=n.parent(s.parentTrigger),i=t.siblings(s.parentTrigger),r=i.children(s.triggerElement);t.hasClass(c)?(n.attr("aria-expanded","false"),a.removeActive(t)):(n.attr("aria-expanded","true"),a.setActive(t),s.toggle&&(a.removeActive(i),r.attr("aria-expanded","false"))),s.onTransitionStart&&s.onTransitionStart(e)}})},e.setActive=function(e){o(e).addClass(c);var n=o(e).children(this.config.subMenu);0<n.length&&!n.hasClass(p)&&this.show(n)},e.removeActive=function(e){o(e).removeClass(c);var n=o(e).children(this.config.subMenu+"."+p);0<n.length&&this.hide(n)},e.show=function(e){var n=this;if(!this.transitioning&&!o(e).hasClass(T)){var t=o(e),i=o.Event(d.SHOW);if(t.trigger(i),!i.isDefaultPrevented()){if(t.parent(this.config.parentTrigger).addClass(c),this.config.toggle){var r=t.parent(this.config.parentTrigger).siblings().children(this.config.subMenu+"."+p);this.hide(r)}t.removeClass(m).addClass(T).height(0),this.setTransitioning(!0);t.height(e[0].scrollHeight).one(s.TRANSITION_END,function(){n.config&&n.element&&(t.removeClass(T).addClass(m+" "+p).height(""),n.setTransitioning(!1),t.trigger(d.SHOWN))}).mmEmulateTransitionEnd(350)}}},e.hide=function(e){var n=this;if(!this.transitioning&&o(e).hasClass(p)){var t=o(e),i=o.Event(d.HIDE);if(t.trigger(i),!i.isDefaultPrevented()){t.parent(this.config.parentTrigger).removeClass(c),t.height(t.height())[0].offsetHeight,t.addClass(T).removeClass(m).removeClass(p),this.setTransitioning(!0);var r=function(){n.config&&n.element&&(n.transitioning&&n.config.onTransitionEnd&&n.config.onTransitionEnd(),n.setTransitioning(!1),t.trigger(d.HIDDEN),t.removeClass(T).addClass(m))};0===t.height()||"none"===t.css("display")?r():t.height(0).one(s.TRANSITION_END,r).mmEmulateTransitionEnd(350)}}},e.setTransitioning=function(e){this.transitioning=e},e.dispose=function(){o.removeData(this.element,g),o(this.element).find(this.config.parentTrigger).children(this.config.triggerElement).off(d.CLICK_DATA_API),this.transitioning=null,this.config=null,this.element=null},r.jQueryInterface=function(i){return this.each(function(){var e=o(this),n=e.data(g),t=a({},f,{},e.data(),{},"object"==typeof i&&i?i:{});if(n||(n=new r(this,t),e.data(g,n)),"string"==typeof i){if(void 0===n[i])throw new Error('No method named "'+i+'"');n[i]()}})},r}();return o.fn[t]=v.jQueryInterface,o.fn[t].Constructor=v,o.fn[t].noConflict=function(){return o.fn[t]=h,v.jQueryInterface},v});
//# sourceMappingURL=metisMenu.min.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,26 @@
.morris-hover {
position:absolute;
z-index:1;
}
.morris-hover.morris-default-style .morris-hover-row-label {
font-weight:bold;
margin:0.25em 0
}
.morris-hover.morris-default-style .morris-hover-point {
white-space:nowrap;
margin:0.1em 0
}
.morris-hover.morris-default-style {
border-radius: 4px;
padding: 10px 12px;
color: #666;
background:#63676b;
border: none;
color: #fff!important ;
box-shadow: 0px 5px 20px #ccc;
font-size:14px;
}
.morris-hover-point {
color: rgba(257, 257, 257, 0.8)!important ;
}
@@ -0,0 +1,173 @@
$(function () {
"use strict";
Morris.Area({
element: 'morris-chart-1',
data: [{
period: '2010',
iphone: 10,
ipad: 20
}, {
period: '2011',
iphone: 75,
ipad: 65
}, {
period: '2012',
iphone: 50,
ipad: 40
}, {
period: '2013',
iphone: 75,
ipad: 65
}, {
period: '2014',
iphone: 50,
ipad: 40
}, {
period: '2015',
iphone: 75,
ipad: 65
}, {
period: '2016',
iphone: 90,
ipad: 75
}
],
xkey: 'period',
ykeys: ['iphone', 'ipad'],
labels: ['iPhone', 'iPad'],
pointSize: 3,
fillOpacity: 0,
pointStrokeColors:['#008cff', '#15ca20'],
behaveLikeLine: true,
gridLineColor: '#e0e0e0',
lineWidth: 3,
hideHover: 'auto',
lineColors: ['#008cff', '#15ca20'],
resize: true
});
// Morris donut chart
Morris.Donut({
element: 'morris-chart-2',
data: [{
label: "Download Sales",
value: 15,
}, {
label: "In Store Sales",
value: 30
}, {
label: "Mail Order Sales",
value: 20
}],
resize: true,
colors:['#008cff', '#15ca20', '#fd3550']
});
// Morris bar chart
Morris.Bar({
element: 'morris-chart-3',
data: [{
y: '2006',
a: 100,
b: 90,
c: 60
}, {
y: '2007',
a: 75,
b: 65,
c: 40
}, {
y: '2008',
a: 50,
b: 40,
c: 30
}, {
y: '2009',
a: 75,
b: 65,
c: 40
}, {
y: '2010',
a: 50,
b: 40,
c: 30
}, {
y: '2011',
a: 75,
b: 65,
c: 40
}, {
y: '2012',
a: 100,
b: 90,
c: 40
}],
xkey: 'y',
ykeys: ['a', 'b', 'c'],
labels: ['A', 'B', 'C'],
barColors:['#008cff', '#15ca20', '#75808a'],
hideHover: 'auto',
gridLineColor: '#eef0f2',
resize: true
});
// Extra chart
Morris.Area({
element: 'morris-chart-4',
data: [{
period: '2010',
iphone: 10,
ipad: 20
}, {
period: '2011',
iphone: 75,
ipad: 65
}, {
period: '2012',
iphone: 50,
ipad: 40
}, {
period: '2013',
iphone: 75,
ipad: 65
}, {
period: '2014',
iphone: 50,
ipad: 40
}, {
period: '2015',
iphone: 75,
ipad: 65
}, {
period: '2016',
iphone: 90,
ipad: 75
}
],
lineColors: ['#008cff', '#15ca20'],
xkey: 'period',
ykeys: ['iphone', 'ipad'],
labels: ['Site A', 'Site B'],
pointSize: 0,
lineWidth: 0,
resize:true,
fillOpacity: 0.7,
behaveLikeLine: true,
gridLineColor: '#e0e0e0',
hideHover: 'auto'
});
});
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Some files were not shown because too many files have changed in this diff Show More