| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 |
- /*
- 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, "\x26lt;").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
|