/* Highcharts JS v7.0.2 (2019-01-17) Exporting module (c) 2010-2019 Torstein Honsi License: www.highcharts.com/license */ (function (h) { "object" === typeof module && module.exports ? (h["default"] = h, module.exports = h) : "function" === typeof define && define.amd ? define(function () { return h }) : h("undefined" !== typeof Highcharts ? Highcharts : void 0) })(function (h) { (function (a) { a.ajax = function (k) { var b = a.merge(!0, { url: !1, type: "GET", dataType: "json", success: !1, error: !1, data: !1, headers: {} }, k); k = { json: "application/json", xml: "application/xml", text: "text/plain", octet: "application/octet-stream" }; var f = new XMLHttpRequest; if (!b.url) return !1; f.open(b.type.toUpperCase(), b.url, !0); f.setRequestHeader("Content-Type", k[b.dataType] || k.text); a.objectEach(b.headers, function (a, k) { f.setRequestHeader(k, a) }); f.onreadystatechange = function () { var a; if (4 === f.readyState) { if (200 === f.status) { a = f.responseText; if ("json" === b.dataType) try { a = JSON.parse(a) } catch (n) { b.error && b.error(f, n); return } return b.success && b.success(a) } b.error && b.error(f, f.responseText) } }; try { b.data = JSON.stringify(b.data) } catch (C) { } f.send(b.data || !0) } })(h); (function (a) { var k = a.win, b = k.navigator, f = k.document, h = k.URL || k.webkitURL || k, n = /Edge\/\d+/.test(b.userAgent); a.dataURLtoBlob = function (a) { if ((a = a.match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/)) && 3 < a.length && k.atob && k.ArrayBuffer && k.Uint8Array && k.Blob && h.createObjectURL) { for (var f = k.atob(a[3]), b = new k.ArrayBuffer(f.length), b = new k.Uint8Array(b), l = 0; l < b.length; ++l) b[l] = f.charCodeAt(l); a = new k.Blob([b], {type: a[1]}); return h.createObjectURL(a) } }; a.downloadURL = function (c, h) { var d = f.createElement("a"), l; if ("string" === typeof c || c instanceof String || !b.msSaveOrOpenBlob) { if (n || 2E6 < c.length) if (c = a.dataURLtoBlob(c), !c) throw Error("Failed to convert to blob"); if (void 0 !== d.download) d.href = c, d.download = h, f.body.appendChild(d), d.click(), f.body.removeChild(d); else try { if (l = k.open(c, "chart"), void 0 === l || null === l) throw Error("Failed to open window"); } catch (y) { k.location.href = c } } else b.msSaveOrOpenBlob(c, h) } })(h); (function (a) { function k(a, b) { if (h.Blob && h.navigator.msSaveOrOpenBlob) return new h.Blob(["\ufeff" + a], {type: b}) } var b = a.defined, f = a.pick, h = a.win, n = h.document, c = a.seriesTypes, z = a.downloadURL; a.setOptions({ exporting: { csv: { 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", openInCloud: "Open in Highcharts Cloud", viewData: "View data table" } }); a.addEvent(a.Chart, "render", function () { this.options && this.options.exporting && this.options.exporting.showTable && this.viewData() }); a.Chart.prototype.setUpKeyToAxis = function () { c.arearange && (c.arearange.prototype.keyToAxis = {low: "y", high: "y"}); c.gantt && (c.gantt.prototype.keyToAxis = {start: "x", end: "x"}) }; a.Chart.prototype.getDataRows = function (l) { var k = this.time, h = this.options.exporting && this.options.exporting.csv || {}, g, c = this.xAxis, q = {}, d = [], m, n = [], p = [], u, t, r, B = function (e, b, g) { if (h.columnHeaderFormatter) { var r = h.columnHeaderFormatter(e, b, g); if (!1 !== r) return r } return e ? e instanceof a.Axis ? e.options.title && e.options.title.text || (e.isDatetimeAxis ? "DateTime" : "Category") : l ? { columnTitle: 1 < g ? b : e.name, topLevelColumnTitle: e.name } : e.name + (1 < g ? " (" + b + ")" : "") : "Category" }, w = []; t = 0; this.setUpKeyToAxis(); this.series.forEach(function (e) { var b = e.options.keys || e.pointArrayMap || ["y"], g = b.length, r = !e.requireSorting && {}, v = {}, y = {}, m = c.indexOf(e.xAxis), A, d; b.forEach(function (a) { var b = (e.keyToAxis && e.keyToAxis[a] || a) + "Axis"; v[a] = e[b] && e[b].categories || []; y[a] = e[b] && e[b].isDatetimeAxis }); if (!1 !== e.options.includeInCSVExport && !e.options.isInternal && !1 !== e.visible) { a.find(w, function (e) { return e[0] === m }) || w.push([m, t]); for (d = 0; d < g;) u = B(e, b[d], b.length), p.push(u.columnTitle || u), l && n.push(u.topLevelColumnTitle || u), d++; A = { chart: e.chart, autoIncrement: e.autoIncrement, options: e.options, pointArrayMap: e.pointArrayMap }; e.options.data.forEach(function (a, l) { var c, p; p = {series: A}; e.pointClass.prototype.applyOptions.apply(p, [a]); a = p.x; c = e.data[l] && e.data[l].name; r && (r[a] && (a += "|" + l), r[a] = !0); d = 0; e.xAxis && "name" !== e.exportKey || (a = c); q[a] || (q[a] = [], q[a].xValues = []); q[a].x = p.x; q[a].name = c; for (q[a].xValues[m] = p.x; d < g;) l = b[d], c = p[l], q[a][t + d] = f(v[l][c], y[l] ? k.dateFormat(h.dateFormat, c) : null, c), d++ }); t += d } }); for (m in q) q.hasOwnProperty(m) && d.push(q[m]); var v, x; m = l ? [n, p] : [p]; for (t = w.length; t--;) v = w[t][0], x = w[t][1], g = c[v], d.sort(function (a, b) { return a.xValues[v] - b.xValues[v] }), r = B(g), m[0].splice(x, 0, r), l && m[1] && m[1].splice(x, 0, r), d.forEach(function (a) { var e = a.name; g && !b(e) && (g.isDatetimeAxis ? (a.x instanceof Date && (a.x = a.x.getTime()), e = k.dateFormat(h.dateFormat, a.x)) : e = g.categories ? f(g.names[a.x], g.categories[a.x], a.x) : a.x); a.splice(x, 0, e) }); m = m.concat(d); a.fireEvent(this, "exportData", {dataRows: m}); return m }; a.Chart.prototype.getCSV = function (a) { var b = "", l = this.getDataRows(), g = this.options.exporting.csv, c = f(g.decimalPoint, "," !== g.itemDelimiter && a ? (1.1).toLocaleString()[1] : "."), k = f(g.itemDelimiter, "," === c ? ";" : ","), h = g.lineDelimiter; l.forEach(function (a, g) { for (var f, d = a.length; d--;) f = a[d], "string" === typeof f && (f = '"' + f + '"'), "number" === typeof f && "." !== c && (f = f.toString().replace(".", c)), a[d] = f; b += a.join(k); g < l.length - 1 && (b += h) }); return b }; a.Chart.prototype.getTable = function (b) { var c = '\x3ctable id\x3d"highcharts-data-table-' + this.index + '"\x3e', l = this.options, g = b ? (1.1).toLocaleString()[1] : ".", k = f(l.exporting.useMultiLevelHeaders, !0); b = this.getDataRows(k); var d = 0, h = k ? b.shift() : null, m = b.shift(), n = function (a, b, c, l) { var d = f(l, ""); b = "text" + (b ? " " + b : ""); "number" === typeof d ? (d = d.toString(), "," === g && (d = d.replace(".", g)), b = "number") : l || (b = "empty"); return "\x3c" + a + (c ? " " + c : "") + ' class\x3d"' + b + '"\x3e' + d + "\x3c/" + a + "\x3e" }; !1 !== l.exporting.tableCaption && (c += '\x3ccaption class\x3d"highcharts-table-caption"\x3e' + f(l.exporting.tableCaption, l.title.text ? l.title.text.replace(/&/g, "\x26amp;").replace(//g, "\x26gt;").replace(/"/g, "\x26quot;").replace(/'/g, "\x26#x27;").replace(/\//g, "\x26#x2F;") : "Chart") + "\x3c/caption\x3e"); for (var p = 0, u = b.length; p < u; ++p) b[p].length > d && (d = b[p].length); c += function (a, b, c) { var d = "\x3cthead\x3e", g = 0; c = c || b && b.length; var f, e, h = 0; if (e = k && a && b) { a:if (e = a.length, b.length === e) { for (; e--;) if (a[e] !== b[e]) { e = !1; break a } e = !0 } else e = !1; e = !e } if (e) { for (d += "\x3ctr\x3e"; g < c; ++g) e = a[g], f = a[g + 1], e === f ? ++h : h ? (d += n("th", "highcharts-table-topheading", 'scope\x3d"col" colspan\x3d"' + (h + 1) + '"', e), h = 0) : (e === b[g] ? l.exporting.useRowspanHeaders ? (f = 2, delete b[g]) : (f = 1, b[g] = "") : f = 1, d += n("th", "highcharts-table-topheading", 'scope\x3d"col"' + (1 < f ? ' valign\x3d"top" rowspan\x3d"' + f + '"' : ""), e)); d += "\x3c/tr\x3e" } if (b) { d += "\x3ctr\x3e"; g = 0; for (c = b.length; g < c; ++g) void 0 !== b[g] && (d += n("th", null, 'scope\x3d"col"', b[g])); d += "\x3c/tr\x3e" } return d + "\x3c/thead\x3e" }(h, m, Math.max(d, m.length)); c += "\x3ctbody\x3e"; b.forEach(function (a) { c += "\x3ctr\x3e"; for (var b = 0; b < d; b++) c += n(b ? "td" : "th", null, b ? "" : 'scope\x3d"row"', a[b]); c += "\x3c/tr\x3e" }); c += "\x3c/tbody\x3e\x3c/table\x3e"; b = {html: c}; a.fireEvent(this, "afterGetTable", b); return b.html }; a.Chart.prototype.downloadCSV = function () { var a = this.getCSV(!0); z(k(a, "text/csv") || "data:text/csv,\ufeff" + encodeURIComponent(a), this.getFilename() + ".csv") }; a.Chart.prototype.downloadXLS = function () { var a = '\x3chtml xmlns:o\x3d"urn:schemas-microsoft-com:office:office" xmlns:x\x3d"urn:schemas-microsoft-com:office:excel" xmlns\x3d"http://www.w3.org/TR/REC-html40"\x3e\x3chead\x3e\x3c!--[if gte mso 9]\x3e\x3cxml\x3e\x3cx:ExcelWorkbook\x3e\x3cx:ExcelWorksheets\x3e\x3cx:ExcelWorksheet\x3e\x3cx:Name\x3eArk1\x3c/x:Name\x3e\x3cx:WorksheetOptions\x3e\x3cx:DisplayGridlines/\x3e\x3c/x:WorksheetOptions\x3e\x3c/x:ExcelWorksheet\x3e\x3c/x:ExcelWorksheets\x3e\x3c/x:ExcelWorkbook\x3e\x3c/xml\x3e\x3c![endif]--\x3e\x3cstyle\x3etd{border:none;font-family: Calibri, sans-serif;} .number{mso-number-format:"0.00";} .text{ mso-number-format:"@";}\x3c/style\x3e\x3cmeta name\x3dProgId content\x3dExcel.Sheet\x3e\x3cmeta charset\x3dUTF-8\x3e\x3c/head\x3e\x3cbody\x3e' + this.getTable(!0) + "\x3c/body\x3e\x3c/html\x3e"; z(k(a, "application/vnd.ms-excel") || "data:application/vnd.ms-excel;base64," + h.btoa(unescape(encodeURIComponent(a))), this.getFilename() + ".xls") }; a.Chart.prototype.viewData = function () { this.dataTableDiv || (this.dataTableDiv = n.createElement("div"), this.dataTableDiv.className = "highcharts-data-table", this.renderTo.parentNode.insertBefore(this.dataTableDiv, this.renderTo.nextSibling)); this.dataTableDiv.innerHTML = this.getTable() }; a.Chart.prototype.openInCloud = function () { function b(c) { Object.keys(c).forEach(function (d) { "function" === typeof c[d] && delete c[d]; a.isObject(c[d]) && b(c[d]) }) } var c, d; c = a.merge(this.userOptions); b(c); c = { name: c.title && c.title.text || "Chart title", options: c, settings: {constructor: "Chart", dataProvider: {csv: this.getCSV()}} }; d = JSON.stringify(c); (function () { var a = n.createElement("form"); n.body.appendChild(a); a.method = "post"; a.action = "https://cloud-api.highcharts.com/openincloud"; a.target = "_blank"; var b = n.createElement("input"); b.type = "hidden"; b.name = "chart"; b.value = d; a.appendChild(b); a.submit(); n.body.removeChild(a) })() }; var d = a.getOptions().exporting; d && (a.extend(d.menuItemDefinitions, { downloadCSV: { textKey: "downloadCSV", onclick: function () { this.downloadCSV() } }, downloadXLS: { textKey: "downloadXLS", onclick: function () { this.downloadXLS() } }, viewData: { textKey: "viewData", onclick: function () { this.viewData() } }, openInCloud: { textKey: "openInCloud", onclick: function () { this.openInCloud() } } }), d.buttons.contextButton.menuItems.push("separator", "downloadCSV", "downloadXLS", "viewData", "openInCloud")); c.map && (c.map.prototype.exportKey = "name"); c.mapbubble && (c.mapbubble.prototype.exportKey = "name"); c.treemap && (c.treemap.prototype.exportKey = "name") })(h) }); //# sourceMappingURL=export-data.js.map