/*
 Highcharts JS v5.0.6 (2016-12-07)
 Exporting module

 (c) 2010-2016 Torstein Honsi

 License: www.highcharts.com/license
*/
(function (h) { "object" === typeof module && module.exports ? module.exports = h : h(Highcharts) })(function (h) {
    (function (f) {
        var h = f.defaultOptions, n = f.doc, A = f.Chart, u = f.addEvent, F = f.removeEvent, D = f.fireEvent, q = f.createElement, B = f.discardElement, v = f.css, p = f.merge, C = f.pick, k = f.each, r = f.extend, G = f.isTouchDevice, E = f.win, H = f.Renderer.prototype.symbols; r(h.lang, {
            printChart: "打印 图表", downloadPNG: "下载 PNG 图片", downloadJPEG: "下载 JPEG 图片", downloadPDF: "下载 PDF 图片", downloadSVG: "下载 SVG vector 图片",
            contextButtonTitle: "Chart context menu"
        }); h.navigation = { buttonOptions: { theme: {}, symbolSize: 14, symbolX: 12.5, symbolY: 10.5, align: "right", buttonSpacing: 3, height: 22, verticalAlign: "top", width: 24 } }; p(!0, h.navigation, {
            menuStyle: { border: "1px solid #999999", background: "#ffffff", padding: "5px 0" }, menuItemStyle: { padding: "0.5em 1em", background: "none", color: "#333333", fontSize: G ? "14px" : "11px", transition: "background 250ms, color 250ms" }, menuItemHoverStyle: { background: "#335cad", color: "#ffffff" }, buttonOptions: {
                symbolFill: "#666666",
                symbolStroke: "#666666", symbolStrokeWidth: 3, theme: { fill: "#ffffff", stroke: "none", padding: 5 }
            }
        }); h.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: [{ textKey: "printChart", onclick: function () { this.print() } }, { separator: !0 }, { textKey: "downloadPNG", onclick: function () { this.exportChart() } }, { textKey: "downloadJPEG", onclick: function () { this.exportChart({ type: "image/jpeg" }) } },
                    { textKey: "downloadPDF", onclick: function () { this.exportChart({ type: "application/pdf" }) } }, { textKey: "downloadSVG", onclick: function () { this.exportChart({ type: "image/svg+xml" }) } }]
                }
            }
        }; f.post = function (a, c, e) { var b; a = q("form", p({ method: "post", action: a, enctype: "multipart/form-data" }, e), { display: "none" }, n.body); for (b in c) q("input", { type: "hidden", name: b, value: c[b] }, null, a); a.submit(); B(a) }; r(A.prototype, {
            sanitizeSVG: function (a, c) {
                if (c && c.exporting && c.exporting.allowHTML) {
                    var e = a.match(/<\/svg>(.*?$)/); e && (e =
                    '\x3cforeignObject x\x3d"0" y\x3d"0" width\x3d"' + c.chart.width + '" height\x3d"' + c.chart.height + '"\x3e\x3cbody xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e' + e[1] + "\x3c/body\x3e\x3c/foreignObject\x3e", a = a.replace("\x3c/svg\x3e", e + "\x3c/svg\x3e"))
                } a = a.replace(/zIndex="[^"]+"/g, "").replace(/isShadow="[^"]+"/g, "").replace(/symbolName="[^"]+"/g, "").replace(/jQuery[0-9]+="[^"]+"/g, "").replace(/url\(("|&quot;)(\S+)("|&quot;)\)/g, "url($2)").replace(/url\([^#]+#/g, "url(#").replace(/<svg /, '\x3csvg xmlns:xlink\x3d"http://www.w3.org/1999/xlink" ').replace(/ (NS[0-9]+\:)?href=/g,
                " xlink:href\x3d").replace(/\n/, " ").replace(/<\/svg>.*?$/, "\x3c/svg\x3e").replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g, '$1\x3d"rgb($2)" $1-opacity\x3d"$3"').replace(/&nbsp;/g, "\u00a0").replace(/&shy;/g, "\u00ad"); return a = a.replace(/<IMG /g, "\x3cimage ").replace(/<(\/?)TITLE>/g, "\x3c$1title\x3e").replace(/height=([^" ]+)/g, 'height\x3d"$1"').replace(/width=([^" ]+)/g, 'width\x3d"$1"').replace(/hc-svg-href="([^"]+)">/g, 'xlink:href\x3d"$1"/\x3e').replace(/ id=([^" >]+)/g, ' id\x3d"$1"').replace(/class=([^" >]+)/g,
                'class\x3d"$1"').replace(/ transform /g, " ").replace(/:(path|rect)/g, "$1").replace(/style="([^"]+)"/g, function (a) { return a.toLowerCase() })
            }, getChartHTML: function () { return this.container.innerHTML }, getSVG: function (a) {
                var c, e, b, w, m, g = p(this.options, a); n.createElementNS || (n.createElementNS = function (a, c) { return n.createElement(c) }); e = q("div", null, { position: "absolute", top: "-9999em", width: this.chartWidth + "px", height: this.chartHeight + "px" }, n.body); b = this.renderTo.style.width; m = this.renderTo.style.height;
                b = g.exporting.sourceWidth || g.chart.width || /px$/.test(b) && parseInt(b, 10) || 600; m = g.exporting.sourceHeight || g.chart.height || /px$/.test(m) && parseInt(m, 10) || 400; r(g.chart, { animation: !1, renderTo: e, forExport: !0, renderer: "SVGRenderer", width: b, height: m }); g.exporting.enabled = !1; delete g.data; g.series = []; k(this.series, function (a) { w = p(a.userOptions, { animation: !1, enableMouseTracking: !1, showCheckbox: !1, visible: a.visible }); w.isInternal || g.series.push(w) }); k(this.axes, function (a) { a.userOptions.internalKey = f.uniqueKey() });
                c = new f.Chart(g, this.callback); a && k(["xAxis", "yAxis", "series"], function (b) { var d = {}; a[b] && (d[b] = a[b], c.update(d)) }); k(this.axes, function (a) { var b = f.find(c.axes, function (b) { return b.options.internalKey === a.userOptions.internalKey }), d = a.getExtremes(), e = d.userMin, d = d.userMax; !b || void 0 === e && void 0 === d || b.setExtremes(e, d, !0, !1) }); b = c.getChartHTML(); b = this.sanitizeSVG(b, g); g = null; c.destroy(); B(e); return b
            }, getSVGForExport: function (a, c) {
                var e = this.options.exporting; return this.getSVG(p({ chart: { borderRadius: 0 } },
                e.chartOptions, c, { exporting: { sourceWidth: a && a.sourceWidth || e.sourceWidth, sourceHeight: a && a.sourceHeight || e.sourceHeight } }))
            }, exportChart: function (a, c) { c = this.getSVGForExport(a, c); a = p(this.options.exporting, a); f.post(a.url, { filename: a.filename || "chart", type: a.type, width: a.width || 0, scale: a.scale, svg: c }, a.formAttributes) }, print: function () {
                var a = this, c = a.container, e = [], b = c.parentNode, f = n.body, m = f.childNodes, g = a.options.exporting.printMaxWidth, d, t; if (!a.isPrinting) {
                    a.isPrinting = !0; a.pointer.reset(null,
                    0); D(a, "beforePrint"); if (t = g && a.chartWidth > g) d = [a.options.chart.width, void 0, !1], a.setSize(g, void 0, !1); k(m, function (a, b) { 1 === a.nodeType && (e[b] = a.style.display, a.style.display = "none") }); f.appendChild(c); E.focus(); E.print(); setTimeout(function () { b.appendChild(c); k(m, function (a, b) { 1 === a.nodeType && (a.style.display = e[b]) }); a.isPrinting = !1; t && a.setSize.apply(a, d); D(a, "afterPrint") }, 1E3)
                }
            }, contextMenu: function (a, c, e, b, f, m, g) {
                var d = this, t = d.options.navigation, w = d.chartWidth, h = d.chartHeight, p = "cache-" + a,
                l = d[p], x = Math.max(f, m), y, z; l || (d[p] = l = q("div", { className: a }, { position: "absolute", zIndex: 1E3, padding: x + "px" }, d.container), y = q("div", { className: "highcharts-menu" }, null, l), v(y, r({ MozBoxShadow: "3px 3px 10px #888", WebkitBoxShadow: "3px 3px 10px #888", boxShadow: "3px 3px 10px #888" }, t.menuStyle)), z = function () { v(l, { display: "none" }); g && g.setState(0); d.openMenu = !1 }, u(l, "mouseleave", function () { l.hideTimer = setTimeout(z, 500) }), u(l, "mouseenter", function () { clearTimeout(l.hideTimer) }), p = u(n, "mouseup", function (b) {
                    d.pointer.inClass(b.target,
                    a) || z()
                }), u(d, "destroy", p), k(c, function (a) { if (a) { var b; a.separator ? b = q("hr", null, null, y) : (b = q("div", { className: "highcharts-menu-item", onclick: function (b) { b && b.stopPropagation(); z(); a.onclick && a.onclick.apply(d, arguments) }, innerHTML: a.text || d.options.lang[a.textKey] }, null, y), b.onmouseover = function () { v(this, t.menuItemHoverStyle) }, b.onmouseout = function () { v(this, t.menuItemStyle) }, v(b, r({ cursor: "pointer" }, t.menuItemStyle))); d.exportDivElements.push(b) } }), d.exportDivElements.push(y, l), d.exportMenuWidth =
                l.offsetWidth, d.exportMenuHeight = l.offsetHeight); c = { display: "block" }; e + d.exportMenuWidth > w ? c.right = w - e - f - x + "px" : c.left = e - x + "px"; b + m + d.exportMenuHeight > h && "top" !== g.alignOptions.verticalAlign ? c.bottom = h - b - x + "px" : c.top = b + m - x + "px"; v(l, c); d.openMenu = !0
            }, addButton: function (a) {
                var c = this, e = c.renderer, b = p(c.options.navigation.buttonOptions, a), f = b.onclick, m = b.menuItems, g, d, h = b.symbolSize || 12; c.btnCount || (c.btnCount = 0); c.exportDivElements || (c.exportDivElements = [], c.exportSVGElements = []); if (!1 !== b.enabled) {
                    var k =
                    b.theme, n = k.states, q = n && n.hover, n = n && n.select, l; delete k.states; f ? l = function (a) { a.stopPropagation(); f.call(c, a) } : m && (l = function () { c.contextMenu(d.menuClassName, m, d.translateX, d.translateY, d.width, d.height, d); d.setState(2) }); b.text && b.symbol ? k.paddingLeft = C(k.paddingLeft, 25) : b.text || r(k, { width: b.width, height: b.height, padding: 0 }); d = e.button(b.text, 0, 0, l, k, q, n).addClass(a.className).attr({ "stroke-linecap": "round", title: c.options.lang[b._titleKey], zIndex: 3 }); d.menuClassName = a.menuClassName || "highcharts-menu-" +
                    c.btnCount++; b.symbol && (g = e.symbol(b.symbol, b.symbolX - h / 2, b.symbolY - h / 2, h, h).addClass("highcharts-button-symbol").attr({ zIndex: 1 }).add(d), g.attr({ stroke: b.symbolStroke, fill: b.symbolFill, "stroke-width": b.symbolStrokeWidth || 1 })); d.add().align(r(b, { width: d.width, x: C(b.x, c.buttonOffset) }), !0, "spacingBox"); c.buttonOffset += (d.width + b.buttonSpacing) * ("right" === b.align ? -1 : 1); c.exportSVGElements.push(d, g)
                }
            }, destroyExport: function (a) {
                var c = a ? a.target : this; a = c.exportSVGElements; var e = c.exportDivElements; a &&
                (k(a, function (a, e) { a && (a.onclick = a.ontouchstart = null, c.exportSVGElements[e] = a.destroy()) }), a.length = 0); e && (k(e, function (a, e) { clearTimeout(a.hideTimer); F(a, "mouseleave"); c.exportDivElements[e] = a.onmouseout = a.onmouseover = a.ontouchstart = a.onclick = null; B(a) }), e.length = 0)
            }
        }); H.menu = function (a, c, e, b) { return ["M", a, c + 2.5, "L", a + e, c + 2.5, "M", a, c + b / 2 + .5, "L", a + e, c + b / 2 + .5, "M", a, c + b - 1.5, "L", a + e, c + b - 1.5] }; A.prototype.renderExporting = function () {
            var a, c = this.options.exporting, e = c.buttons, b = this.isDirtyExporting || !this.exportSVGElements;
            this.buttonOffset = 0; this.isDirtyExporting && this.destroyExport(); if (b && !1 !== c.enabled) { for (a in e) this.addButton(e[a]); this.isDirtyExporting = !1 } u(this, "destroy", this.destroyExport)
        }; A.prototype.callbacks.push(function (a) { a.renderExporting(); u(a, "redraw", a.renderExporting); k(["exporting", "navigation"], function (c) { a[c] = { update: function (e, b) { a.isDirtyExporting = !0; p(!0, a.options[c], e); C(b, !0) && a.redraw() } } }) })
    })(h)
});