| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545 |
- /*
- Highcharts JS v6.1.1 (2018-06-27)
- Old IE (v6, v7, v8) module for Highcharts v6+.
- (c) 2010-2017 Highsoft AS
- Author: Torstein Honsi
- License: www.highcharts.com/license
- */
- (function (l) {
- "object" === typeof module && module.exports ? module.exports = l : l(Highcharts)
- })(function (l) {
- (function (d) {
- var w, f;
- f = d.Chart;
- var A = d.createElement,
- l = d.css,
- E = d.defined,
- n = d.deg2rad,
- F = d.discardElement,
- h = d.doc,
- I = d.each,
- G = d.erase,
- B = d.extend;
- w = d.extendClass;
- var N = d.isArray,
- L = d.isNumber,
- C = d.isObject,
- O = d.merge,
- M = d.noop,
- x = d.pick,
- t = d.pInt,
- D = d.svg,
- y = d.SVGElement,
- u = d.SVGRenderer,
- v = d.win,
- P = d.wrap;
- d.getOptions().global.VMLRadialGradientURL = "http://code.highcharts.com/6.1.1/gfx/vml-radial-gradient.png";
- h && !h.defaultView && (d.getStyle = function (a, b) {
- var c = {
- width: "clientWidth",
- height: "clientHeight"
- }[b];
- if (a.style[b]) return d.pInt(a.style[b]);
- "opacity" === b && (b = "filter");
- if (c) return a.style.zoom = 1,
- Math.max(a[c] - 2 * d.getStyle(a, "padding"), 0);
- a = a.currentStyle[b.replace(/\-(\w)/g,
- function (a, b) {
- return b.toUpperCase()
- })];
- "filter" === b && (a = a.replace(/alpha\(opacity=([0-9]+)\)/,
- function (a, b) {
- return b / 100
- }));
- return "" === a ? 1 : d.pInt(a)
- });
- Array.prototype.forEach || (d.forEachPolyfill = function (a, b) {
- for (var c = 0,
- e = this.length; c < e; c++) if (!1 === a.call(b, this[c], c, this)) return c
- });
- Array.prototype.indexOf || (d.indexOfPolyfill = function (a) {
- var b, c = 0;
- if (a) for (b = a.length; c < b; c++) if (a[c] === this) return c;
- return - 1
- });
- Array.prototype.filter || (d.filterPolyfill = function (a) {
- for (var b = [], c = 0, e = this.length; c < e; c++) a(this[c], c) && b.push(this[c]);
- return b
- });
- Array.prototype.some || (d.somePolyfill = function (a, b) {
- for (var c = 0,
- e = this.length; c < e && !0 !== a.call(b, this[c], c, this); c++);
- });
- Object.prototype.keys || (d.keysPolyfill = function (a) {
- var b = [],
- c = Object.prototype.hasOwnProperty,
- e;
- for (e in a) c.call(a, e) && b.push(e);
- return b
- });
- Array.prototype.reduce || (d.reducePolyfill = function (a, b) {
- for (var c = 1 < arguments.length ? 0 : 1, e = 1 < arguments.length ? b : this[0], p = this.length; c < p; ++c) e = a.call(this, e, this[c], c, this);
- return e
- });
- D || (P(d.SVGRenderer.prototype, "text",
- function (a) {
- return a.apply(this, Array.prototype.slice.call(arguments, 1)).css({
- position: "absolute"
- })
- }), d.Pointer.prototype.normalize = function (a, b) {
- a = a || v.event;
- a.target || (a.target = a.srcElement);
- b || (this.chartPosition = b = d.offset(this.chart.container));
- return d.extend(a, {
- chartX: Math.round(Math.max(a.x, a.clientX - b.left)),
- chartY: Math.round(a.y)
- })
- },
- f.prototype.ieSanitizeSVG = function (a) {
- 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()
- })
- },
- f.prototype.isReadyToRender = function () {
- var a = this;
- return D || v != v.top || "complete" === h.readyState ? !0 : (h.attachEvent("onreadystatechange",
- function () {
- h.detachEvent("onreadystatechange", a.firstRender);
- "complete" === h.readyState && a.firstRender()
- }), !1)
- },
- h.createElementNS || (h.createElementNS = function (a, b) {
- return h.createElement(b)
- }), d.addEventListenerPolyfill = function (a, b) {
- function c(a) {
- a.target = a.srcElement || v;
- b.call(e, a)
- }
- var e = this;
- e.attachEvent && (e.hcEventsIE || (e.hcEventsIE = {}), b.hcKey || (b.hcKey = d.uniqueKey()), e.hcEventsIE[b.hcKey] = c, e.attachEvent("on" + a, c))
- },
- d.removeEventListenerPolyfill = function (a, b) {
- this.detachEvent && (b = this.hcEventsIE[b.hcKey], this.detachEvent("on" + a, b))
- },
- f = {
- docMode8: h && 8 === h.documentMode,
- init: function (a, b) {
- var c = ["\x3c", b, ' filled\x3d"f" stroked\x3d"f"'],
- e = ["position: ", "absolute", ";"],
- d = "div" === b; ("shape" === b || d) && e.push("left:0;top:0;width:1px;height:1px;");
- e.push("visibility: ", d ? "hidden" : "visible");
- c.push(' style\x3d"', e.join(""), '"/\x3e');
- b && (c = d || "span" === b || "img" === b ? c.join("") : a.prepVML(c), this.element = A(c));
- this.renderer = a
- },
- add: function (a) {
- var b = this.renderer,
- c = this.element,
- e = b.box,
- d = a && a.inverted,
- e = a ? a.element || a : e;
- a && (this.parentGroup = a);
- d && b.invertChild(c, e);
- e.appendChild(c);
- this.added = !0;
- this.alignOnAdd && !this.deferUpdateTransform && this.updateTransform();
- if (this.onAdd) this.onAdd();
- this.className && this.attr("class", this.className);
- return this
- },
- updateTransform: y.prototype.htmlUpdateTransform,
- setSpanRotation: function () {
- var a = this.rotation,
- b = Math.cos(a * n),
- c = Math.sin(a * n);
- l(this.element, {
- filter: a ? ["progid:DXImageTransform.Microsoft.Matrix(M11\x3d", b, ", M12\x3d", -c, ", M21\x3d", c, ", M22\x3d", b, ", sizingMethod\x3d'auto expand')"].join("") : "none"
- })
- },
- getSpanCorrection: function (a, b, c, e, d) {
- var p = e ? Math.cos(e * n) : 1,
- J = e ? Math.sin(e * n) : 0,
- q = x(this.elemHeight, this.element.offsetHeight),
- h;
- this.xCorr = 0 > p && -a;
- this.yCorr = 0 > J && -q;
- h = 0 > p * J;
- this.xCorr += J * b * (h ? 1 - c : c);
- this.yCorr -= p * b * (e ? h ? c : 1 - c : 1);
- d && "left" !== d && (this.xCorr -= a * c * (0 > p ? -1 : 1), e && (this.yCorr -= q * c * (0 > J ? -1 : 1)), l(this.element, {
- textAlign: d
- }))
- },
- pathToVML: function (a) {
- for (var b = a.length,
- c = []; b--;) L(a[b]) ? c[b] = Math.round(10 * a[b]) - 5 : "Z" === a[b] ? c[b] = "x" : (c[b] = a[b], !a.isArc || "wa" !== a[b] && "at" !== a[b] || (c[b + 5] === c[b + 7] && (c[b + 7] += a[b + 7] > a[b + 5] ? 1 : -1), c[b + 6] === c[b + 8] && (c[b + 8] += a[b + 8] > a[b + 6] ? 1 : -1)));
- return c.join(" ") || "x"
- },
- clip: function (a) {
- var b = this,
- c;
- a ? (c = a.members, G(c, b), c.push(b), b.destroyClip = function () {
- G(c, b)
- },
- a = a.getCSS(b)) : (b.destroyClip && b.destroyClip(), a = {
- clip: b.docMode8 ? "inherit" : "rect(auto)"
- });
- return b.css(a)
- },
- css: y.prototype.htmlCss,
- safeRemoveChild: function (a) {
- a.parentNode && F(a)
- },
- destroy: function () {
- this.destroyClip && this.destroyClip();
- return y.prototype.destroy.apply(this)
- },
- on: function (a, b) {
- this.element["on" + a] = function () {
- var a = v.event;
- a.target = a.srcElement;
- b(a)
- };
- return this
- },
- cutOffPath: function (a, b) {
- var c;
- a = a.split(/[ ,]/);
- c = a.length;
- if (9 === c || 11 === c) a[c - 4] = a[c - 2] = t(a[c - 2]) - 10 * b;
- return a.join(" ")
- },
- shadow: function (a, b, c) {
- var e = [],
- d,
- g = this.element,
- h = this.renderer,
- q,
- f = g.style,
- k,
- r = g.path,
- K,
- m,
- l,
- n;
- r && "string" !== typeof r.value && (r = "x");
- m = r;
- if (a) {
- l = x(a.width, 3);
- n = (a.opacity || .15) / l;
- for (d = 1; 3 >= d; d++) K = 2 * l + 1 - 2 * d,
- c && (m = this.cutOffPath(r.value, K + .5)),
- k = ['\x3cshape isShadow\x3d"true" strokeweight\x3d"', K, '" filled\x3d"false" path\x3d"', m, '" coordsize\x3d"10 10" style\x3d"', g.style.cssText, '" /\x3e'],
- q = A(h.prepVML(k), null, {
- left: t(f.left) + x(a.offsetX, 1),
- top: t(f.top) + x(a.offsetY, 1)
- }),
- c && (q.cutOff = K + 1),
- k = ['\x3cstroke color\x3d"', a.color || "#000000", '" opacity\x3d"', n * d, '"/\x3e'],
- A(h.prepVML(k), null, null, q),
- b ? b.element.appendChild(q) : g.parentNode.insertBefore(q, g),
- e.push(q);
- this.shadows = e
- }
- return this
- },
- updateShadows: M,
- setAttr: function (a, b) {
- this.docMode8 ? this.element[a] = b : this.element.setAttribute(a, b)
- },
- getAttr: function (a) {
- return this.docMode8 ? this.element[a] : this.element.getAttribute(a)
- },
- classSetter: function (a) {
- (this.added ? this.element : this).className = a
- },
- dashstyleSetter: function (a, b, c) {
- (c.getElementsByTagName("stroke")[0] || A(this.renderer.prepVML(["\x3cstroke/\x3e"]), null, null, c))[b] = a || "solid";
- this[b] = a
- },
- dSetter: function (a, b, c) {
- var e = this.shadows;
- a = a || [];
- this.d = a.join && a.join(" ");
- c.path = a = this.pathToVML(a);
- if (e) for (c = e.length; c--;) e[c].path = e[c].cutOff ? this.cutOffPath(a, e[c].cutOff) : a;
- this.setAttr(b, a)
- },
- fillSetter: function (a, b, c) {
- var e = c.nodeName;
- "SPAN" === e ? c.style.color = a : "IMG" !== e && (c.filled = "none" !== a, this.setAttr("fillcolor", this.renderer.color(a, c, b, this)))
- },
- "fill-opacitySetter": function (a, b, c) {
- A(this.renderer.prepVML(["\x3c", b.split("-")[0], ' opacity\x3d"', a, '"/\x3e']), null, null, c)
- },
- opacitySetter: M,
- rotationSetter: function (a, b, c) {
- c = c.style;
- this[b] = c[b] = a;
- c.left = -Math.round(Math.sin(a * n) + 1) + "px";
- c.top = Math.round(Math.cos(a * n)) + "px"
- },
- strokeSetter: function (a, b, c) {
- this.setAttr("strokecolor", this.renderer.color(a, c, b, this))
- },
- "stroke-widthSetter": function (a, b, c) {
- c.stroked = !!a;
- this[b] = a;
- L(a) && (a += "px");
- this.setAttr("strokeweight", a)
- },
- titleSetter: function (a, b) {
- this.setAttr(b, a)
- },
- visibilitySetter: function (a, b, c) {
- "inherit" === a && (a = "visible");
- this.shadows && I(this.shadows,
- function (c) {
- c.style[b] = a
- });
- "DIV" === c.nodeName && (a = "hidden" === a ? "-999em" : 0, this.docMode8 || (c.style[b] = a ? "visible" : "hidden"), b = "top");
- c.style[b] = a
- },
- xSetter: function (a, b, c) {
- this[b] = a;
- "x" === b ? b = "left" : "y" === b && (b = "top");
- this.updateClipping ? (this[b] = a, this.updateClipping()) : c.style[b] = a
- },
- zIndexSetter: function (a, b, c) {
- c.style[b] = a
- },
- fillGetter: function () {
- return this.getAttr("fillcolor") || ""
- },
- strokeGetter: function () {
- return this.getAttr("strokecolor") || ""
- },
- classGetter: function () {
- return this.getAttr("className") || ""
- }
- },
- f["stroke-opacitySetter"] = f["fill-opacitySetter"], d.VMLElement = f = w(y, f), f.prototype.ySetter = f.prototype.widthSetter = f.prototype.heightSetter = f.prototype.xSetter, f = {
- Element: f,
- isIE8: -1 < v.navigator.userAgent.indexOf("MSIE 8.0"),
- init: function (a, b, c) {
- var e, d;
- this.alignedObjects = [];
- e = this.createElement("div").css({
- position: "relative"
- });
- d = e.element;
- a.appendChild(e.element);
- this.isVML = !0;
- this.box = d;
- this.boxWrapper = e;
- this.gradients = {};
- this.cache = {};
- this.cacheKeys = [];
- this.imgCount = 0;
- this.setSize(b, c, !1);
- if (!h.namespaces.hcv) {
- h.namespaces.add("hcv", "urn:schemas-microsoft-com:vml");
- try {
- h.createStyleSheet().cssText = "hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "
- } catch (g) {
- h.styleSheets[0].cssText += "hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "
- }
- }
- },
- isHidden: function () {
- return !this.box.offsetWidth
- },
- clipRect: function (a, b, c, e) {
- var d = this.createElement(),
- g = C(a);
- return B(d, {
- members: [],
- count: 0,
- left: (g ? a.x : a) + 1,
- top: (g ? a.y : b) + 1,
- width: (g ? a.width : c) - 1,
- height: (g ? a.height : e) - 1,
- getCSS: function (a) {
- var b = a.element,
- c = b.nodeName,
- e = a.inverted,
- d = this.top - ("shape" === c ? b.offsetTop : 0),
- g = this.left,
- b = g + this.width,
- p = d + this.height,
- d = {
- clip: "rect(" + Math.round(e ? g : d) + "px," + Math.round(e ? p : b) + "px," + Math.round(e ? b : p) + "px," + Math.round(e ? d : g) + "px)"
- }; !e && a.docMode8 && "DIV" === c && B(d, {
- width: b + "px",
- height: p + "px"
- });
- return d
- },
- updateClipping: function () {
- I(d.members,
- function (a) {
- a.element && a.css(d.getCSS(a))
- })
- }
- })
- },
- color: function (a, b, c, e) {
- var p = this,
- g, h = /^rgba/,
- q, f, k = "none";
- a && a.linearGradient ? f = "gradient" : a && a.radialGradient && (f = "pattern");
- if (f) {
- var r, l, m = a.linearGradient || a.radialGradient,
- n, t, u, v, w, x = "";
- a = a.stops;
- var y, B = [],
- C = function () {
- q = ['\x3cfill colors\x3d"' + B.join(",") + '" opacity\x3d"', u, '" o:opacity2\x3d"', t, '" type\x3d"', f, '" ', x, 'focus\x3d"100%" method\x3d"any" /\x3e'];
- A(p.prepVML(q), null, null, b)
- };
- n = a[0];
- y = a[a.length - 1];
- 0 < n[0] && a.unshift([0, n[1]]);
- 1 > y[0] && a.push([1, y[1]]);
- I(a,
- function (a, b) {
- h.test(a[1]) ? (g = d.color(a[1]), r = g.get("rgb"), l = g.get("a")) : (r = a[1], l = 1);
- B.push(100 * a[0] + "% " + r);
- b ? (u = l, v = r) : (t = l, w = r)
- });
- if ("fill" === c) if ("gradient" === f) c = m.x1 || m[0] || 0,
- a = m.y1 || m[1] || 0,
- n = m.x2 || m[2] || 0,
- m = m.y2 || m[3] || 0,
- x = 'angle\x3d"' + (90 - 180 * Math.atan((m - a) / (n - c)) / Math.PI) + '"',
- C();
- else {
- var k = m.r,
- D = 2 * k,
- E = 2 * k,
- F = m.cx,
- G = m.cy,
- H = b.radialReference,
- z, k = function () {
- H && (z = e.getBBox(), F += (H[0] - z.x) / z.width - .5, G += (H[1] - z.y) / z.height - .5, D *= H[2] / z.width, E *= H[2] / z.height);
- x = 'src\x3d"' + d.getOptions().global.VMLRadialGradientURL + '" size\x3d"' + D + "," + E + '" origin\x3d"0.5,0.5" position\x3d"' + F + "," + G + '" color2\x3d"' + w + '" ';
- C()
- };
- e.added ? k() : e.onAdd = k;
- k = v
- } else k = r
- } else h.test(a) && "IMG" !== b.tagName ? (g = d.color(a), e[c + "-opacitySetter"](g.get("a"), c, b), k = g.get("rgb")) : (k = b.getElementsByTagName(c), k.length && (k[0].opacity = 1, k[0].type = "solid"), k = a);
- return k
- },
- prepVML: function (a) {
- var b = this.isIE8;
- a = a.join("");
- b ? (a = a.replace("/\x3e", ' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'), a = -1 === a.indexOf('style\x3d"') ? a.replace("/\x3e", ' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e') : a.replace('style\x3d"', 'style\x3d"display:inline-block;behavior:url(#default#VML);')) : a = a.replace("\x3c", "\x3chcv:");
- return a
- },
- text: u.prototype.html,
- path: function (a) {
- var b = {
- coordsize: "10 10"
- };
- N(a) ? b.d = a : C(a) && B(b, a);
- return this.createElement("shape").attr(b)
- },
- circle: function (a, b, c) {
- var e = this.symbol("circle");
- C(a) && (c = a.r, b = a.y, a = a.x);
- e.isCircle = !0;
- e.r = c;
- return e.attr({
- x: a,
- y: b
- })
- },
- g: function (a) {
- var b;
- a && (b = {
- className: "highcharts-" + a,
- "class": "highcharts-" + a
- });
- return this.createElement("div").attr(b)
- },
- image: function (a, b, c, e, d) {
- var g = this.createElement("img").attr({
- src: a
- });
- 1 < arguments.length && g.attr({
- x: b,
- y: c,
- width: e,
- height: d
- });
- return g
- },
- createElement: function (a) {
- return "rect" === a ? this.symbol(a) : u.prototype.createElement.call(this, a)
- },
- invertChild: function (a, b) {
- var c = this;
- b = b.style;
- var e = "IMG" === a.tagName && a.style;
- l(a, {
- flip: "x",
- left: t(b.width) - (e ? t(e.top) : 1),
- top: t(b.height) - (e ? t(e.left) : 1),
- rotation: -90
- });
- I(a.childNodes,
- function (b) {
- c.invertChild(b, a)
- })
- },
- symbols: {
- arc: function (a, b, c, e, d) {
- var g = d.start,
- h = d.end,
- f = d.r || c || e;
- c = d.innerR;
- e = Math.cos(g);
- var p = Math.sin(g),
- k = Math.cos(h),
- l = Math.sin(h);
- if (0 === h - g) return ["x"];
- g = ["wa", a - f, b - f, a + f, b + f, a + f * e, b + f * p, a + f * k, b + f * l];
- d.open && !c && g.push("e", "M", a, b);
- g.push("at", a - c, b - c, a + c, b + c, a + c * k, b + c * l, a + c * e, b + c * p, "x", "e");
- g.isArc = !0;
- return g
- },
- circle: function (a, b, c, e, d) {
- d && E(d.r) && (c = e = 2 * d.r);
- d && d.isCircle && (a -= c / 2, b -= e / 2);
- return ["wa", a, b, a + c, b + e, a + c, b + e / 2, a + c, b + e / 2, "e"]
- },
- rect: function (a, b, c, d, f) {
- return u.prototype.symbols[E(f) && f.r ? "callout" : "square"].call(0, a, b, c, d, f)
- }
- }
- },
- d.VMLRenderer = w = function () {
- this.init.apply(this, arguments)
- },
- w.prototype = O(u.prototype, f), d.Renderer = w);
- u.prototype.getSpanWidth = function (a, b) {
- var c = a.getBBox(!0).width; !D && this.forExport && (c = this.measureSpanWidth(b.firstChild.data, a.styles));
- return c
- };
- u.prototype.measureSpanWidth = function (a, b) {
- var c = h.createElement("span");
- a = h.createTextNode(a);
- c.appendChild(a);
- l(c, b);
- this.box.appendChild(c);
- b = c.offsetWidth;
- F(c);
- return b
- }
- })(l)
- });
|