/*
Highcharts JS v8.2.2 (2020-10-22)
Exporting module
(c) 2010-2019 Torstein Honsi
License: www.highcharts.com/license
*/
(function (e) { "object" === typeof module && module.exports ? (e["default"] = e, module.exports = e) : "function" === typeof define && define.amd ? define("highcharts/modules/exporting", ["highcharts"], function (q) { e(q); e.Highcharts = q; return e }) : e("undefined" !== typeof Highcharts ? Highcharts : void 0) })(function (e) {
function q(e, l, g, k) { e.hasOwnProperty(l) || (e[l] = k.apply(null, g)) } e = e ? e._modules : {}; q(e, "Extensions/FullScreen.js", [e["Core/Chart/Chart.js"], e["Core/Globals.js"], e["Core/Utilities.js"]], function (e, l, g) {
var k = g.addEvent;
g = function () {
function e(f) {
this.chart = f; this.isOpen = !1; f = f.renderTo; this.browserProps || ("function" === typeof f.requestFullscreen ? this.browserProps = { fullscreenChange: "fullscreenchange", requestFullscreen: "requestFullscreen", exitFullscreen: "exitFullscreen" } : f.mozRequestFullScreen ? this.browserProps = { fullscreenChange: "mozfullscreenchange", requestFullscreen: "mozRequestFullScreen", exitFullscreen: "mozCancelFullScreen" } : f.webkitRequestFullScreen ? this.browserProps = {
fullscreenChange: "webkitfullscreenchange",
requestFullscreen: "webkitRequestFullScreen", exitFullscreen: "webkitExitFullscreen"
} : f.msRequestFullscreen && (this.browserProps = { fullscreenChange: "MSFullscreenChange", requestFullscreen: "msRequestFullscreen", exitFullscreen: "msExitFullscreen" }))
} e.prototype.close = function () {
var f = this.chart; if (this.isOpen && this.browserProps && f.container.ownerDocument instanceof Document) f.container.ownerDocument[this.browserProps.exitFullscreen](); this.unbindFullscreenEvent && this.unbindFullscreenEvent(); this.isOpen = !1;
this.setButtonText()
}; e.prototype.open = function () { var f = this, e = f.chart; if (f.browserProps) { f.unbindFullscreenEvent = k(e.container.ownerDocument, f.browserProps.fullscreenChange, function () { f.isOpen ? (f.isOpen = !1, f.close()) : (f.isOpen = !0, f.setButtonText()) }); var g = e.renderTo[f.browserProps.requestFullscreen](); if (g) g["catch"](function () { alert("Full screen is not supported inside a frame.") }); k(e, "destroy", f.unbindFullscreenEvent) } }; e.prototype.setButtonText = function () {
var f, e = this.chart, g = e.exportDivElements,
k = e.options.exporting, l = null === (f = null === k || void 0 === k ? void 0 : k.buttons) || void 0 === f ? void 0 : f.contextButton.menuItems; f = e.options.lang; (null === k || void 0 === k ? 0 : k.menuItemDefinitions) && (null === f || void 0 === f ? 0 : f.exitFullscreen) && f.viewFullscreen && l && g && g.length && (g[l.indexOf("viewFullscreen")].innerHTML = this.isOpen ? f.exitFullscreen : k.menuItemDefinitions.viewFullscreen.text || f.viewFullscreen)
}; e.prototype.toggle = function () { this.isOpen ? this.close() : this.open() }; return e
}(); l.Fullscreen = g; k(e, "beforeRender",
function () { this.fullscreen = new l.Fullscreen(this) }); return l.Fullscreen
}); q(e, "Mixins/Navigation.js", [], function () { return { initUpdate: function (e) { e.navigation || (e.navigation = { updates: [], update: function (e, g) { this.updates.forEach(function (k) { k.update.call(k.context, e, g) }) } }) }, addUpdate: function (e, l) { l.navigation || this.initUpdate(l); l.navigation.updates.push({ update: e, context: l }) } } }); q(e, "Extensions/Exporting.js", [e["Core/Chart/Chart.js"], e["Mixins/Navigation.js"], e["Core/Globals.js"], e["Core/Options.js"],
e["Core/Renderer/SVG/SVGRenderer.js"], e["Core/Utilities.js"]], function (e, l, g, k, q, f) {
var A = g.doc, H = g.isTouchDevice, y = g.win; k = k.defaultOptions; var v = f.addEvent, r = f.css, x = f.createElement, D = f.discardElement, z = f.extend, I = f.find, C = f.fireEvent, J = f.isObject, p = f.merge, E = f.objectEach, t = f.pick, K = f.removeEvent, L = f.uniqueKey, F = y.navigator.userAgent, G = g.Renderer.prototype.symbols, M = /Edge\/|Trident\/|MSIE /.test(F), N = /firefox/i.test(F); z(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 = {}); p(!0, k.navigation, { buttonOptions: { theme: {}, symbolSize: 14, symbolX: 12.5, symbolY: 10.5, align: "right", buttonSpacing: 3, height: 22, verticalAlign: "top", width: 24 } }); p(!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" }) }
}
}
}; g.post = function (a, b, c) { var d = x("form", p({ method: "post", action: a, enctype: "multipart/form-data" }, c), { display: "none" }, A.body); E(b, function (a, b) { x("input", { type: "hidden", name: b, value: a }, null, d) }); d.submit(); D(d) }; g.isSafari && g.win.matchMedia("print").addListener(function (a) { g.printingChart && (a.matches ? g.printingChart.beforePrint() : g.printingChart.afterPrint()) }); z(e.prototype, {
sanitizeSVG: function (a, b) {
var c = a.indexOf("") + 6, d = a.substr(c);
a = a.substr(0, c); b && b.exporting && b.exporting.allowHTML && d && (d = '' + d.replace(/(<(?:img|br).*?(?=>))>/g, "$1 />") + "", a = a.replace("", d + "")); a = a.replace(/zIndex="[^"]+"/g, "").replace(/symbolName="[^"]+"/g, "").replace(/jQuery[0-9]+="[^"]+"/g, "").replace(/url\(("|")(.*?)("|");?\)/g, "url($2)").replace(/url\([^#]+#/g, "url(#").replace(/