!function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e(t.echartsAll = {}) }(this, function (t) { "use strict"; function e(t, e) { function n() { this.constructor = t } eA(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n) } function n() { for (var t = 0, e = 0, n = arguments.length; n > e; e++) t += arguments[e].length; for (var i = Array(t), r = 0, e = 0; n > e; e++) for (var o = arguments[e], a = 0, s = o.length; s > a; a++, r++) i[r] = o[a]; return i } function i(t, e) { var n = e.browser, i = t.match(/Firefox\/([\d.]+)/), r = t.match(/MSIE\s([\d.]+)/) || t.match(/Trident\/.+?rv:(([\d.]+))/), o = t.match(/Edge?\/([\d.]+)/), a = /micromessenger/i.test(t); i && (n.firefox = !0, n.version = i[1]), r && (n.ie = !0, n.version = r[1]), o && (n.edge = !0, n.version = o[1], n.newEdge = +o[1].split(".")[0] > 18), a && (n.weChat = !0), e.canvasSupported = !!document.createElement("canvas").getContext, e.svgSupported = "undefined" != typeof SVGRect, e.touchEventsSupported = "ontouchstart" in window && !n.ie && !n.edge, e.pointerEventsSupported = "onpointerdown" in window && (n.edge || n.ie && +n.version >= 11), e.domSupported = "undefined" != typeof document; var s = document.documentElement.style; e.transform3dSupported = (n.ie && "transition" in s || n.edge || "WebKitCSSMatrix" in window && "m11" in new WebKitCSSMatrix || "MozPerspective" in s) && !("OTransition" in s), e.transformSupported = e.transform3dSupported || n.ie && +n.version >= 9 } function r(t, e) { yA[t] = e } function o() { return vA++ } function a() { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; "undefined" != typeof console && console.error.apply(console, t) } function s(t) { if (null == t || "object" != typeof t) return t; var e = t, n = lA.call(t); if ("[object Array]" === n) { if (!Y(t)) { e = []; for (var i = 0, r = t.length; r > i; i++) e[i] = s(t[i]) } } else if (sA[n]) { if (!Y(t)) { var o = t.constructor; if (o.from) e = o.from(t); else { e = new o(t.length); for (var i = 0, r = t.length; r > i; i++) e[i] = s(t[i]) } } } else if (!aA[n] && !Y(t) && !P(t)) { e = {}; for (var a in t) t.hasOwnProperty(a) && (e[a] = s(t[a])) } return e } function l(t, e, n) { if (!D(e) || !D(t)) return n ? s(e) : t; for (var i in e) if (e.hasOwnProperty(i)) { var r = t[i], o = e[i]; !D(o) || !D(r) || M(o) || M(r) || P(o) || P(r) || L(o) || L(r) || Y(o) || Y(r) ? !n && i in t || (t[i] = s(e[i])) : l(r, o, n) } return t } function u(t, e) { for (var n = t[0], i = 1, r = t.length; r > i; i++) n = l(n, t[i], e); return n } function h(t, e) { if (Object.assign) Object.assign(t, e); else for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]); return t } function c(t, e, n) { for (var i = b(e), r = 0; r < i.length; r++) { var o = i[r]; (n ? null != e[o] : null == t[o]) && (t[o] = e[o]) } return t } function p(t, e) { if (t) { if (t.indexOf) return t.indexOf(e); for (var n = 0, i = t.length; i > n; n++) if (t[n] === e) return n } return -1 } function d(t, e) { function n() { } var i = t.prototype; n.prototype = e.prototype, t.prototype = new n; for (var r in i) i.hasOwnProperty(r) && (t.prototype[r] = i[r]); t.prototype.constructor = t, t.superClass = e } function f(t, e, n) { if (t = "prototype" in t ? t.prototype : t, e = "prototype" in e ? e.prototype : e, Object.getOwnPropertyNames) for (var i = Object.getOwnPropertyNames(e), r = 0; r < i.length; r++) { var o = i[r]; "constructor" !== o && (n ? null != e[o] : null == t[o]) && (t[o] = e[o]) } else c(t, e, n) } function g(t) { return t ? "string" == typeof t ? !1 : "number" == typeof t.length : !1 } function y(t, e, n) { if (t && e) if (t.forEach && t.forEach === hA) t.forEach(e, n); else if (t.length === +t.length) for (var i = 0, r = t.length; r > i; i++) e.call(n, t[i], i, t); else for (var o in t) t.hasOwnProperty(o) && e.call(n, t[o], o, t) } function v(t, e, n) { if (!t) return []; if (!e) return F(t); if (t.map && t.map === dA) return t.map(e, n); for (var i = [], r = 0, o = t.length; o > r; r++) i.push(e.call(n, t[r], r, t)); return i } function m(t, e, n, i) { if (t && e) { for (var r = 0, o = t.length; o > r; r++) n = e.call(i, n, t[r], r, t); return n } } function x(t, e, n) { if (!t) return []; if (!e) return F(t); if (t.filter && t.filter === cA) return t.filter(e, n); for (var i = [], r = 0, o = t.length; o > r; r++) e.call(n, t[r], r, t) && i.push(t[r]); return i } function _(t, e, n) { if (t && e) for (var i = 0, r = t.length; r > i; i++) if (e.call(n, t[i], i, t)) return t[i] } function b(t) { if (!t) return []; if (Object.keys) return Object.keys(t); var e = []; for (var n in t) t.hasOwnProperty(n) && e.push(n); return e } function w(t, e) { for (var n = [], i = 2; i < arguments.length; i++) n[i - 2] = arguments[i]; return function () { return t.apply(e, n.concat(pA.call(arguments))) } } function S(t) { for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; return function () { return t.apply(this, e.concat(pA.call(arguments))) } } function M(t) { return Array.isArray ? Array.isArray(t) : "[object Array]" === lA.call(t) } function I(t) { return "function" == typeof t } function T(t) { return "string" == typeof t } function C(t) { return "[object String]" === lA.call(t) } function A(t) { return "number" == typeof t } function D(t) { var e = typeof t; return "function" === e || !!t && "object" === e } function L(t) { return !!aA[lA.call(t)] } function k(t) { return !!sA[lA.call(t)] } function P(t) { return "object" == typeof t && "number" == typeof t.nodeType && "object" == typeof t.ownerDocument } function O(t) { return null != t.colorStops } function R(t) { return null != t.image } function z(t) { return "[object RegExp]" === lA.call(t) } function E(t) { return t !== t } function N() { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; for (var n = 0, i = t.length; i > n; n++) if (null != t[n]) return t[n] } function B(t, e) { return null != t ? t : e } function V(t, e, n) { return null != t ? t : null != e ? e : n } function F(t) { for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; return pA.apply(t, e) } function G(t) { if ("number" == typeof t) return [t, t, t, t]; var e = t.length; return 2 === e ? [t[0], t[1], t[0], t[1]] : 3 === e ? [t[0], t[1], t[2], t[1]] : t } function H(t, e) { if (!t) throw new Error(e) } function W(t) { return null == t ? null : "function" == typeof t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") } function X(t) { t[_A] = !0 } function Y(t) { return t[_A] } function Z(t) { return new bA(t) } function U(t, e) { for (var n = new t.constructor(t.length + e.length), i = 0; i < t.length; i++) n[i] = t[i]; for (var r = t.length, i = 0; i < e.length; i++) n[i + r] = e[i]; return n } function j(t, e) { var n; if (Object.create) n = Object.create(t); else { var i = function () { }; i.prototype = t, n = new i } return e && h(n, e), n } function q(t, e) { return t.hasOwnProperty(e) } function K() { } function $(t, e) { return null == t && (t = 0), null == e && (e = 0), [t, e] } function J(t, e) { return t[0] = e[0], t[1] = e[1], t } function Q(t) { return [t[0], t[1]] } function te(t, e, n) { return t[0] = e, t[1] = n, t } function ee(t, e, n) { return t[0] = e[0] + n[0], t[1] = e[1] + n[1], t } function ne(t, e, n, i) { return t[0] = e[0] + n[0] * i, t[1] = e[1] + n[1] * i, t } function ie(t, e, n) { return t[0] = e[0] - n[0], t[1] = e[1] - n[1], t } function re(t) { return Math.sqrt(oe(t)) } function oe(t) { return t[0] * t[0] + t[1] * t[1] } function ae(t, e, n) { return t[0] = e[0] * n[0], t[1] = e[1] * n[1], t } function se(t, e, n) { return t[0] = e[0] / n[0], t[1] = e[1] / n[1], t } function le(t, e) { return t[0] * e[0] + t[1] * e[1] } function ue(t, e, n) { return t[0] = e[0] * n, t[1] = e[1] * n, t } function he(t, e) { var n = re(e); return 0 === n ? (t[0] = 0, t[1] = 0) : (t[0] = e[0] / n, t[1] = e[1] / n), t } function ce(t, e) { return Math.sqrt((t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1])) } function pe(t, e) { return (t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]) } function de(t, e) { return t[0] = -e[0], t[1] = -e[1], t } function fe(t, e, n, i) { return t[0] = e[0] + i * (n[0] - e[0]), t[1] = e[1] + i * (n[1] - e[1]), t } function ge(t, e, n) { var i = e[0], r = e[1]; return t[0] = n[0] * i + n[2] * r + n[4], t[1] = n[1] * i + n[3] * r + n[5], t } function ye(t, e, n) { return t[0] = Math.min(e[0], n[0]), t[1] = Math.min(e[1], n[1]), t } function ve(t, e, n) { return t[0] = Math.max(e[0], n[0]), t[1] = Math.max(e[1], n[1]), t } function me(t, e, n, i, r, o) { var a = i + "-" + r, s = t.length; if (o.hasOwnProperty(a)) return o[a]; if (1 === e) { var l = Math.round(Math.log((1 << s) - 1 & ~r) / kA); return t[n][l] } for (var u = i | 1 << n, h = n + 1; i & 1 << h;) h++; for (var c = 0, p = 0, d = 0; s > p; p++) { var f = 1 << p; f & r || (c += (d % 2 ? -1 : 1) * t[n][p] * me(t, e - 1, h, u, r | f, o), d++) } return o[a] = c, c } function xe(t, e) { var n = [[t[0], t[1], 1, 0, 0, 0, -e[0] * t[0], -e[0] * t[1]], [0, 0, 0, t[0], t[1], 1, -e[1] * t[0], -e[1] * t[1]], [t[2], t[3], 1, 0, 0, 0, -e[2] * t[2], -e[2] * t[3]], [0, 0, 0, t[2], t[3], 1, -e[3] * t[2], -e[3] * t[3]], [t[4], t[5], 1, 0, 0, 0, -e[4] * t[4], -e[4] * t[5]], [0, 0, 0, t[4], t[5], 1, -e[5] * t[4], -e[5] * t[5]], [t[6], t[7], 1, 0, 0, 0, -e[6] * t[6], -e[6] * t[7]], [0, 0, 0, t[6], t[7], 1, -e[7] * t[6], -e[7] * t[7]]], i = {}, r = me(n, 8, 0, 0, 0, i); if (0 !== r) { for (var o = [], a = 0; 8 > a; a++) for (var s = 0; 8 > s; s++) null == o[s] && (o[s] = 0), o[s] += ((a + s) % 2 ? -1 : 1) * me(n, 7, 0 === a ? 1 : 0, 1 << a, 1 << s, i) / r * e[a]; return function (t, e, n) { var i = e * o[6] + n * o[7] + 1; t[0] = (e * o[0] + n * o[1] + o[2]) / i, t[1] = (e * o[3] + n * o[4] + o[5]) / i } } } function _e(t, e, n, i, r) { return be(OA, e, i, r, !0) && be(t, n, OA[0], OA[1]) } function be(t, e, n, i, r) { if (e.getBoundingClientRect && oA.domSupported && !Me(e)) { var o = e[PA] || (e[PA] = {}), a = we(e, o), s = Se(a, o, r); if (s) return s(t, n, i), !0 } return !1 } function we(t, e) { var n = e.markers; if (n) return n; n = e.markers = []; for (var i = ["left", "right"], r = ["top", "bottom"], o = 0; 4 > o; o++) { var a = document.createElement("div"), s = a.style, l = o % 2, u = (o >> 1) % 2; s.cssText = ["position: absolute", "visibility: hidden", "padding: 0", "margin: 0", "border-width: 0", "user-select: none", "width:0", "height:0", i[l] + ":0", r[u] + ":0", i[1 - l] + ":auto", r[1 - u] + ":auto", ""].join("!important;"), t.appendChild(a), n.push(a) } return n } function Se(t, e, n) { for (var i = n ? "invTrans" : "trans", r = e[i], o = e.srcCoords, a = [], s = [], l = !0, u = 0; 4 > u; u++) { var h = t[u].getBoundingClientRect(), c = 2 * u, p = h.left, d = h.top; a.push(p, d), l = l && o && p === o[c] && d === o[c + 1], s.push(t[u].offsetLeft, t[u].offsetTop) } return l && r ? r : (e.srcCoords = a, e[i] = n ? xe(s, a) : xe(a, s)) } function Me(t) { return "CANVAS" === t.nodeName.toUpperCase() } function Ie(t, e, n, i) { return n = n || {}, i || !oA.canvasSupported ? Te(t, e, n) : oA.browser.firefox && null != e.layerX && e.layerX !== e.offsetX ? (n.zrX = e.layerX, n.zrY = e.layerY) : null != e.offsetX ? (n.zrX = e.offsetX, n.zrY = e.offsetY) : Te(t, e, n), n } function Te(t, e, n) { if (oA.domSupported && t.getBoundingClientRect) { var i = e.clientX, r = e.clientY; if (Me(t)) { var o = t.getBoundingClientRect(); return n.zrX = i - o.left, void (n.zrY = r - o.top) } if (be(EA, t, i, r)) return n.zrX = EA[0], void (n.zrY = EA[1]) } n.zrX = n.zrY = 0 } function Ce(t) { return t || window.event } function Ae(t, e, n) { if (e = Ce(e), null != e.zrX) return e; var i = e.type, r = i && i.indexOf("touch") >= 0; if (r) { var o = "touchend" !== i ? e.targetTouches[0] : e.changedTouches[0]; o && Ie(t, o, e, n) } else { Ie(t, e, e, n); var a = De(e); e.zrDelta = a ? a / 120 : -(e.detail || 0) / 3 } var s = e.button; return null == e.which && void 0 !== s && zA.test(e.type) && (e.which = 1 & s ? 1 : 2 & s ? 3 : 4 & s ? 2 : 0), e } function De(t) { var e = t.wheelDelta; if (e) return e; var n = t.deltaX, i = t.deltaY; if (null == n || null == i) return e; var r = Math.abs(0 !== i ? i : n), o = i > 0 ? -1 : 0 > i ? 1 : n > 0 ? -1 : 1; return 3 * r * o } function Le(t, e, n, i) { RA ? t.addEventListener(e, n, i) : t.attachEvent("on" + e, n) } function ke(t, e, n, i) { RA ? t.removeEventListener(e, n, i) : t.detachEvent("on" + e, n) } function Pe(t) { return 2 === t.which || 3 === t.which } function Oe(t) { var e = t[1][0] - t[0][0], n = t[1][1] - t[0][1]; return Math.sqrt(e * e + n * n) } function Re(t) { return [(t[0][0] + t[1][0]) / 2, (t[0][1] + t[1][1]) / 2] } function ze(t, e, n) { return { type: t, event: n, target: e.target, topTarget: e.topTarget, cancelBubble: !1, offsetX: n.zrX, offsetY: n.zrY, gestureEvent: n.gestureEvent, pinchX: n.pinchX, pinchY: n.pinchY, pinchScale: n.pinchScale, wheelDelta: n.zrDelta, zrByTouch: n.zrByTouch, which: n.which, stop: Ee } } function Ee() { NA(this.event) } function Ne(t, e, n) { if (t[t.rectHover ? "rectContain" : "contain"](e, n)) { for (var i = t, r = void 0, o = !1; i;) { if (i.ignoreClip && (o = !0), !o) { var a = i.getClipPath(); if (a && !a.contain(e, n)) return !1; i.silent && (r = !0) } var s = i.__hostTarget; i = s ? s : i.parent } return r ? FA : !0 } return !1 } function Be(t, e, n) { var i = t.painter; return 0 > e || e > i.getWidth() || 0 > n || n > i.getHeight() } function Ve(t) { for (var e = 0; t >= ZA;) e |= 1 & t, t >>= 1; return t + e } function Fe(t, e, n, i) { var r = e + 1; if (r === n) return 1; if (i(t[r++], t[e]) < 0) { for (; n > r && i(t[r], t[r - 1]) < 0;) r++; Ge(t, e, r) } else for (; n > r && i(t[r], t[r - 1]) >= 0;) r++; return r - e } function Ge(t, e, n) { for (n--; n > e;) { var i = t[e]; t[e++] = t[n], t[n--] = i } } function He(t, e, n, i, r) { for (i === e && i++; n > i; i++) { for (var o, a = t[i], s = e, l = i; l > s;) o = s + l >>> 1, r(a, t[o]) < 0 ? l = o : s = o + 1; var u = i - s; switch (u) { case 3: t[s + 3] = t[s + 2]; case 2: t[s + 2] = t[s + 1]; case 1: t[s + 1] = t[s]; break; default: for (; u > 0;) t[s + u] = t[s + u - 1], u-- } t[s] = a } } function We(t, e, n, i, r, o) { var a = 0, s = 0, l = 1; if (o(t, e[n + r]) > 0) { for (s = i - r; s > l && o(t, e[n + r + l]) > 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); l > s && (l = s), a += r, l += r } else { for (s = r + 1; s > l && o(t, e[n + r - l]) <= 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); l > s && (l = s); var u = a; a = r - l, l = r - u } for (a++; l > a;) { var h = a + (l - a >>> 1); o(t, e[n + h]) > 0 ? a = h + 1 : l = h } return l } function Xe(t, e, n, i, r, o) { var a = 0, s = 0, l = 1; if (o(t, e[n + r]) < 0) { for (s = r + 1; s > l && o(t, e[n + r - l]) < 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); l > s && (l = s); var u = a; a = r - l, l = r - u } else { for (s = i - r; s > l && o(t, e[n + r + l]) >= 0;) a = l, l = (l << 1) + 1, 0 >= l && (l = s); l > s && (l = s), a += r, l += r } for (a++; l > a;) { var h = a + (l - a >>> 1); o(t, e[n + h]) < 0 ? l = h : a = h + 1 } return l } function Ye(t, e) { function n(t, e) { l[c] = t, u[c] = e, c += 1 } function i() { for (; c > 1;) { var t = c - 2; if (t >= 1 && u[t - 1] <= u[t] + u[t + 1] || t >= 2 && u[t - 2] <= u[t] + u[t - 1]) u[t - 1] < u[t + 1] && t--; else if (u[t] > u[t + 1]) break; o(t) } } function r() { for (; c > 1;) { var t = c - 2; t > 0 && u[t - 1] < u[t + 1] && t--, o(t) } } function o(n) { var i = l[n], r = u[n], o = l[n + 1], h = u[n + 1]; u[n] = r + h, n === c - 3 && (l[n + 1] = l[n + 2], u[n + 1] = u[n + 2]), c--; var p = Xe(t[o], t, i, r, 0, e); i += p, r -= p, 0 !== r && (h = We(t[i + r - 1], t, o, h, h - 1, e), 0 !== h && (h >= r ? a(i, r, o, h) : s(i, r, o, h))) } function a(n, i, r, o) { var a = 0; for (a = 0; i > a; a++) p[a] = t[n + a]; var s = 0, l = r, u = n; if (t[u++] = t[l++], 0 !== --o) { if (1 === i) { for (a = 0; o > a; a++) t[u + a] = t[l + a]; return void (t[u + o] = p[s]) } for (var c, d, f, g = h; ;) { c = 0, d = 0, f = !1; do if (e(t[l], p[s]) < 0) { if (t[u++] = t[l++], d++, c = 0, 0 === --o) { f = !0; break } } else if (t[u++] = p[s++], c++, d = 0, 1 === --i) { f = !0; break } while (g > (c | d)); if (f) break; do { if (c = Xe(t[l], p, s, i, 0, e), 0 !== c) { for (a = 0; c > a; a++) t[u + a] = p[s + a]; if (u += c, s += c, i -= c, 1 >= i) { f = !0; break } } if (t[u++] = t[l++], 0 === --o) { f = !0; break } if (d = We(p[s], t, l, o, 0, e), 0 !== d) { for (a = 0; d > a; a++) t[u + a] = t[l + a]; if (u += d, l += d, o -= d, 0 === o) { f = !0; break } } if (t[u++] = p[s++], 1 === --i) { f = !0; break } g-- } while (c >= UA || d >= UA); if (f) break; 0 > g && (g = 0), g += 2 } if (h = g, 1 > h && (h = 1), 1 === i) { for (a = 0; o > a; a++) t[u + a] = t[l + a]; t[u + o] = p[s] } else { if (0 === i) throw new Error; for (a = 0; i > a; a++) t[u + a] = p[s + a] } } else for (a = 0; i > a; a++) t[u + a] = p[s + a] } function s(n, i, r, o) { var a = 0; for (a = 0; o > a; a++) p[a] = t[r + a]; var s = n + i - 1, l = o - 1, u = r + o - 1, c = 0, d = 0; if (t[u--] = t[s--], 0 !== --i) { if (1 === o) { for (u -= i, s -= i, d = u + 1, c = s + 1, a = i - 1; a >= 0; a--) t[d + a] = t[c + a]; return void (t[u] = p[l]) } for (var f = h; ;) { var g = 0, y = 0, v = !1; do if (e(p[l], t[s]) < 0) { if (t[u--] = t[s--], g++, y = 0, 0 === --i) { v = !0; break } } else if (t[u--] = p[l--], y++, g = 0, 1 === --o) { v = !0; break } while (f > (g | y)); if (v) break; do { if (g = i - Xe(p[l], t, n, i, i - 1, e), 0 !== g) { for (u -= g, s -= g, i -= g, d = u + 1, c = s + 1, a = g - 1; a >= 0; a--) t[d + a] = t[c + a]; if (0 === i) { v = !0; break } } if (t[u--] = p[l--], 1 === --o) { v = !0; break } if (y = o - We(t[s], p, 0, o, o - 1, e), 0 !== y) { for (u -= y, l -= y, o -= y, d = u + 1, c = l + 1, a = 0; y > a; a++) t[d + a] = p[c + a]; if (1 >= o) { v = !0; break } } if (t[u--] = t[s--], 0 === --i) { v = !0; break } f-- } while (g >= UA || y >= UA); if (v) break; 0 > f && (f = 0), f += 2 } if (h = f, 1 > h && (h = 1), 1 === o) { for (u -= i, s -= i, d = u + 1, c = s + 1, a = i - 1; a >= 0; a--) t[d + a] = t[c + a]; t[u] = p[l] } else { if (0 === o) throw new Error; for (c = u - (o - 1), a = 0; o > a; a++) t[c + a] = p[a] } } else for (c = u - (o - 1), a = 0; o > a; a++) t[c + a] = p[a] } var l, u, h = UA, c = 0, p = []; return l = [], u = [], {mergeRuns: i, forceMergeRuns: r, pushRun: n} } function Ze(t, e, n, i) { n || (n = 0), i || (i = t.length); var r = i - n; if (!(2 > r)) { var o = 0; if (ZA > r) return o = Fe(t, n, i, e), void He(t, n, i, n + o, e); var a = Ye(t, e), s = Ve(r); do { if (o = Fe(t, n, i, e), s > o) { var l = r; l > s && (l = s), He(t, n, n + l, n + o, e), o = l } a.pushRun(n, o), a.mergeRuns(), r -= o, n += o } while (0 !== r); a.forceMergeRuns() } } function Ue() { $A || ($A = !0, console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors")) } function je(t, e) { return t.zlevel === e.zlevel ? t.z === e.z ? t.z2 - e.z2 : t.z - e.z : t.zlevel - e.zlevel } function qe(t) { return t = Math.round(t), 0 > t ? 0 : t > 255 ? 255 : t } function Ke(t) { return t = Math.round(t), 0 > t ? 0 : t > 360 ? 360 : t } function $e(t) { return 0 > t ? 0 : t > 1 ? 1 : t } function Je(t) { var e = t; return qe(e.length && "%" === e.charAt(e.length - 1) ? parseFloat(e) / 100 * 255 : parseInt(e, 10)) } function Qe(t) { var e = t; return $e(e.length && "%" === e.charAt(e.length - 1) ? parseFloat(e) / 100 : parseFloat(e)) } function tn(t, e, n) { return 0 > n ? n += 1 : n > 1 && (n -= 1), 1 > 6 * n ? t + (e - t) * n * 6 : 1 > 2 * n ? e : 2 > 3 * n ? t + (e - t) * (2 / 3 - n) * 6 : t } function en(t, e, n) { return t + (e - t) * n } function nn(t, e, n, i, r) { return t[0] = e, t[1] = n, t[2] = i, t[3] = r, t } function rn(t, e) { return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t } function on(t, e) { sD && rn(sD, e), sD = aD.put(t, sD || e.slice()) } function an(t, e) { if (t) { e = e || []; var n = aD.get(t); if (n) return rn(e, n); t += ""; var i = t.replace(/ /g, "").toLowerCase(); if (i in oD) return rn(e, oD[i]), on(t, e), e; var r = i.length; if ("#" !== i.charAt(0)) { var o = i.indexOf("("), a = i.indexOf(")"); if (-1 !== o && a + 1 === r) { var s = i.substr(0, o), l = i.substr(o + 1, a - (o + 1)).split(","), u = 1; switch (s) { case"rgba": if (4 !== l.length) return 3 === l.length ? nn(e, +l[0], +l[1], +l[2], 1) : nn(e, 0, 0, 0, 1); u = Qe(l.pop()); case"rgb": return 3 !== l.length ? void nn(e, 0, 0, 0, 1) : (nn(e, Je(l[0]), Je(l[1]), Je(l[2]), u), on(t, e), e); case"hsla": return 4 !== l.length ? void nn(e, 0, 0, 0, 1) : (l[3] = Qe(l[3]), sn(l, e), on(t, e), e); case"hsl": return 3 !== l.length ? void nn(e, 0, 0, 0, 1) : (sn(l, e), on(t, e), e); default: return } } nn(e, 0, 0, 0, 1) } else { if (4 === r || 5 === r) { var h = parseInt(i.slice(1, 4), 16); return h >= 0 && 4095 >= h ? (nn(e, (3840 & h) >> 4 | (3840 & h) >> 8, 240 & h | (240 & h) >> 4, 15 & h | (15 & h) << 4, 5 === r ? parseInt(i.slice(4), 16) / 15 : 1), on(t, e), e) : void nn(e, 0, 0, 0, 1) } if (7 === r || 9 === r) { var h = parseInt(i.slice(1, 7), 16); return h >= 0 && 16777215 >= h ? (nn(e, (16711680 & h) >> 16, (65280 & h) >> 8, 255 & h, 9 === r ? parseInt(i.slice(7), 16) / 255 : 1), on(t, e), e) : void nn(e, 0, 0, 0, 1) } } } } function sn(t, e) { var n = (parseFloat(t[0]) % 360 + 360) % 360 / 360, i = Qe(t[1]), r = Qe(t[2]), o = .5 >= r ? r * (i + 1) : r + i - r * i, a = 2 * r - o; return e = e || [], nn(e, qe(255 * tn(a, o, n + 1 / 3)), qe(255 * tn(a, o, n)), qe(255 * tn(a, o, n - 1 / 3)), 1), 4 === t.length && (e[3] = t[3]), e } function ln(t) { if (t) { var e, n, i = t[0] / 255, r = t[1] / 255, o = t[2] / 255, a = Math.min(i, r, o), s = Math.max(i, r, o), l = s - a, u = (s + a) / 2; if (0 === l) e = 0, n = 0; else { n = .5 > u ? l / (s + a) : l / (2 - s - a); var h = ((s - i) / 6 + l / 2) / l, c = ((s - r) / 6 + l / 2) / l, p = ((s - o) / 6 + l / 2) / l; i === s ? e = p - c : r === s ? e = 1 / 3 + h - p : o === s && (e = 2 / 3 + c - h), 0 > e && (e += 1), e > 1 && (e -= 1) } var d = [360 * e, n, u]; return null != t[3] && d.push(t[3]), d } } function un(t, e) { var n = an(t); if (n) { for (var i = 0; 3 > i; i++) n[i] = 0 > e ? n[i] * (1 - e) | 0 : (255 - n[i]) * e + n[i] | 0, n[i] > 255 ? n[i] = 255 : n[i] < 0 && (n[i] = 0); return gn(n, 4 === n.length ? "rgba" : "rgb") } } function hn(t) { var e = an(t); return e ? ((1 << 24) + (e[0] << 16) + (e[1] << 8) + +e[2]).toString(16).slice(1) : void 0 } function cn(t, e, n) { if (e && e.length && t >= 0 && 1 >= t) { n = n || []; var i = t * (e.length - 1), r = Math.floor(i), o = Math.ceil(i), a = e[r], s = e[o], l = i - r; return n[0] = qe(en(a[0], s[0], l)), n[1] = qe(en(a[1], s[1], l)), n[2] = qe(en(a[2], s[2], l)), n[3] = $e(en(a[3], s[3], l)), n } } function pn(t, e, n) { if (e && e.length && t >= 0 && 1 >= t) { var i = t * (e.length - 1), r = Math.floor(i), o = Math.ceil(i), a = an(e[r]), s = an(e[o]), l = i - r, u = gn([qe(en(a[0], s[0], l)), qe(en(a[1], s[1], l)), qe(en(a[2], s[2], l)), $e(en(a[3], s[3], l))], "rgba"); return n ? {color: u, leftIndex: r, rightIndex: o, value: i} : u } } function dn(t, e, n, i) { var r = an(t); return t ? (r = ln(r), null != e && (r[0] = Ke(e)), null != n && (r[1] = Qe(n)), null != i && (r[2] = Qe(i)), gn(sn(r), "rgba")) : void 0 } function fn(t, e) { var n = an(t); return n && null != e ? (n[3] = $e(e), gn(n, "rgba")) : void 0 } function gn(t, e) { if (t && t.length) { var n = t[0] + "," + t[1] + "," + t[2]; return ("rgba" === e || "hsva" === e || "hsla" === e) && (n += "," + t[3]), e + "(" + n + ")" } } function yn(t, e) { var n = an(t); return n ? (.299 * n[0] + .587 * n[1] + .114 * n[2]) * n[3] / 255 + (1 - n[3]) * e : 0 } function vn() { var t = Math.round(255 * Math.random()), e = Math.round(255 * Math.random()), n = Math.round(255 * Math.random()); return "rgb(" + t + "," + e + "," + n + ")" } function mn(t, e, n) { return (e - t) * n + t } function xn(t, e, n) { return n > .5 ? e : t } function _n(t, e, n, i) { for (var r = e.length, o = 0; r > o; o++) t[o] = mn(e[o], n[o], i) } function bn(t, e, n, i) { for (var r = e.length, o = r && e[0].length, a = 0; r > a; a++) { t[a] || (t[a] = []); for (var s = 0; o > s; s++) t[a][s] = mn(e[a][s], n[a][s], i) } } function wn(t, e, n, i) { for (var r = e.length, o = 0; r > o; o++) t[o] = e[o] + n[o] * i; return t } function Sn(t, e, n, i) { for (var r = e.length, o = r && e[0].length, a = 0; r > a; a++) { t[a] || (t[a] = []); for (var s = 0; o > s; s++) t[a][s] = e[a][s] + n[a][s] * i } return t } function Mn(t, e, n) { var i = t, r = e; if (i.push && r.push) { var o = i.length, a = r.length; if (o !== a) { var s = o > a; if (s) i.length = a; else for (var l = o; a > l; l++) i.push(1 === n ? r[l] : cD.call(r[l])) } for (var u = i[0] && i[0].length, l = 0; l < i.length; l++) if (1 === n) isNaN(i[l]) && (i[l] = r[l]); else for (var h = 0; u > h; h++) isNaN(i[l][h]) && (i[l][h] = r[l][h]) } } function In(t, e) { var n = t.length; if (n !== e.length) return !1; for (var i = 0; n > i; i++) if (t[i] !== e[i]) return !1; return !0 } function Tn(t, e, n, i, r, o, a) { var s = .5 * (n - t), l = .5 * (i - e); return (2 * (e - n) + s + l) * a + (-3 * (e - n) - 2 * s - l) * o + s * r + e } function Cn(t, e, n, i, r, o, a, s) { for (var l = e.length, u = 0; l > u; u++) t[u] = Tn(e[u], n[u], i[u], r[u], o, a, s) } function An(t, e, n, i, r, o, a, s) { for (var l = e.length, u = e[0].length, h = 0; l > h; h++) { t[h] || (t[1] = []); for (var c = 0; u > c; c++) t[h][c] = Tn(e[h][c], n[h][c], i[h][c], r[h][c], o, a, s) } } function Dn(t) { if (g(t)) { var e = t.length; if (g(t[0])) { for (var n = [], i = 0; e > i; i++) n.push(cD.call(t[i])); return n } return cD.call(t) } return t } function Ln(t) { return t[0] = Math.floor(t[0]), t[1] = Math.floor(t[1]), t[2] = Math.floor(t[2]), "rgba(" + t.join(",") + ")" } function kn(t) { return g(t && t[0]) ? 2 : 1 } function Pn(t) { var e = t.pointerType; return "pen" === e || "touch" === e } function On(t) { t.touching = !0, null != t.touchTimer && (clearTimeout(t.touchTimer), t.touchTimer = null), t.touchTimer = setTimeout(function () { t.touching = !1, t.touchTimer = null }, 700) } function Rn(t) { t && (t.zrByTouch = !0) } function zn(t, e) { return Ae(t.dom, new bD(t, e), !0) } function En(t, e) { for (var n = e, i = !1; n && 9 !== n.nodeType && !(i = n.domBelongToZr || n !== e && n === t.painterRoot);) n = n.parentNode; return i } function Nn(t, e) { var n = e.domHandlers; oA.pointerEventsSupported ? y(mD.pointer, function (i) { Vn(e, i, function (e) { n[i].call(t, e) }) }) : (oA.touchEventsSupported && y(mD.touch, function (i) { Vn(e, i, function (r) { n[i].call(t, r), On(e) }) }), y(mD.mouse, function (i) { Vn(e, i, function (r) { r = Ce(r), e.touching || n[i].call(t, r) }) })) } function Bn(t, e) { function n(n) { function i(i) { i = Ce(i), En(t, i.target) || (i = zn(t, i), e.domHandlers[n].call(t, i)) } Vn(e, n, i, {capture: !0}) } oA.pointerEventsSupported ? y(xD.pointer, n) : oA.touchEventsSupported || y(xD.mouse, n) } function Vn(t, e, n, i) { t.mounted[e] = n, t.listenerOpts[e] = i, Le(t.domTarget, e, n, i) } function Fn(t) { var e = t.mounted; for (var n in e) e.hasOwnProperty(n) && ke(t.domTarget, n, e[n], t.listenerOpts[n]); t.mounted = {} } function Gn() { return [1, 0, 0, 1, 0, 0] } function Hn(t) { return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, t } function Wn(t, e) { return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4], t[5] = e[5], t } function Xn(t, e, n) { var i = e[0] * n[0] + e[2] * n[1], r = e[1] * n[0] + e[3] * n[1], o = e[0] * n[2] + e[2] * n[3], a = e[1] * n[2] + e[3] * n[3], s = e[0] * n[4] + e[2] * n[5] + e[4], l = e[1] * n[4] + e[3] * n[5] + e[5]; return t[0] = i, t[1] = r, t[2] = o, t[3] = a, t[4] = s, t[5] = l, t } function Yn(t, e, n) { return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4] + n[0], t[5] = e[5] + n[1], t } function Zn(t, e, n) { var i = e[0], r = e[2], o = e[4], a = e[1], s = e[3], l = e[5], u = Math.sin(n), h = Math.cos(n); return t[0] = i * h + a * u, t[1] = -i * u + a * h, t[2] = r * h + s * u, t[3] = -r * u + h * s, t[4] = h * o + u * l, t[5] = h * l - u * o, t } function Un(t, e, n) { var i = n[0], r = n[1]; return t[0] = e[0] * i, t[1] = e[1] * r, t[2] = e[2] * i, t[3] = e[3] * r, t[4] = e[4] * i, t[5] = e[5] * r, t } function jn(t, e) { var n = e[0], i = e[2], r = e[4], o = e[1], a = e[3], s = e[5], l = n * a - o * i; return l ? (l = 1 / l, t[0] = a * l, t[1] = -o * l, t[2] = -i * l, t[3] = n * l, t[4] = (i * s - a * r) * l, t[5] = (o * r - n * s) * l, t) : null } function qn(t) { var e = Gn(); return Wn(e, t), e } function Kn(t) { return t > ED || -ED > t } function $n(t, e) { return CD || (CD = mA().getContext("2d")), AD !== e && (AD = CD.font = e || QD), CD.measureText(t) } function Jn(t, e) { e = e || QD; var n = JD[e]; n || (n = JD[e] = new rD(500)); var i = n.get(t); return null == i && (i = tL.measureText(t, e).width, n.put(t, i)), i } function Qn(t, e, n, i) { var r = Jn(t, e), o = ii(e), a = ei(0, r, n), s = ni(0, o, i), l = new $D(a, s, r, o); return l } function ti(t, e, n, i) { var r = ((t || "") + "").split("\n"), o = r.length; if (1 === o) return Qn(r[0], e, n, i); for (var a = new $D(0, 0, 0, 0), s = 0; s < r.length; s++) { var l = Qn(r[s], e, n, i); 0 === s ? a.copy(l) : a.union(l) } return a } function ei(t, e, n) { return "right" === n ? t -= e : "center" === n && (t -= e / 2), t } function ni(t, e, n) { return "middle" === n ? t -= e / 2 : "bottom" === n && (t -= e), t } function ii(t) { return Jn("国", t) } function ri(t, e) { return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t } function oi(t, e, n) { var i = e.position || "inside", r = null != e.distance ? e.distance : 5, o = n.height, a = n.width, s = o / 2, l = n.x, u = n.y, h = "left", c = "top"; if (i instanceof Array) l += ri(i[0], n.width), u += ri(i[1], n.height), h = null, c = null; else switch (i) { case"left": l -= r, u += s, h = "right", c = "middle"; break; case"right": l += r + a, u += s, c = "middle"; break; case"top": l += a / 2, u -= r, h = "center", c = "bottom"; break; case"bottom": l += a / 2, u += o + r, h = "center"; break; case"inside": l += a / 2, u += s, h = "center", c = "middle"; break; case"insideLeft": l += r, u += s, c = "middle"; break; case"insideRight": l += a - r, u += s, h = "right", c = "middle"; break; case"insideTop": l += a / 2, u += r, h = "center"; break; case"insideBottom": l += a / 2, u += o - r, h = "center", c = "bottom"; break; case"insideTopLeft": l += r, u += r; break; case"insideTopRight": l += a - r, u += r, h = "right"; break; case"insideBottomLeft": l += r, u += o - r, c = "bottom"; break; case"insideBottomRight": l += a - r, u += o - r, h = "right", c = "bottom" } return t = t || {}, t.x = l, t.y = u, t.align = h, t.verticalAlign = c, t } function ai(t, e, n, i, r) { n = n || {}; var o = []; hi(t, "", t, e, n, i, o, r); var a = o.length, s = !1, l = n.done, u = n.aborted, h = function () { s = !0, a--, 0 >= a && (s ? l && l() : u && u()) }, c = function () { a--, 0 >= a && (s ? l && l() : u && u()) }; a || l && l(), o.length > 0 && n.during && o[0].during(function (t, e) { n.during(e) }); for (var p = 0; p < o.length; p++) { var d = o[p]; h && d.done(h), c && d.aborted(c), d.start(n.easing, n.force) } return o } function si(t, e, n) { for (var i = 0; n > i; i++) t[i] = e[i] } function li(t) { return g(t[0]) } function ui(t, e, n) { if (g(e[n])) if (g(t[n]) || (t[n] = []), k(e[n])) { var i = e[n].length; t[n].length !== i && (t[n] = new e[n].constructor(i), si(t[n], e[n], i)) } else { var r = e[n], o = t[n], a = r.length; if (li(r)) for (var s = r[0].length, l = 0; a > l; l++) o[l] ? si(o[l], r[l], s) : o[l] = Array.prototype.slice.call(r[l]); else si(o, r, a); o.length = r.length } else t[n] = e[n] } function hi(t, e, n, i, r, o, a, s) { for (var l = [], u = [], h = b(i), c = r.duration, d = r.delay, f = r.additive, y = r.setToFinal, v = !D(o), m = 0; m < h.length; m++) { var x = h[m]; if (null != n[x] && null != i[x] && (v || o[x])) if (D(i[x]) && !g(i[x])) { if (e) { s || (n[x] = i[x], t.updateDuringAnimation(e)); continue } hi(t, x, n[x], i[x], r, o && o[x], a, s) } else l.push(x), u.push(x); else s || (n[x] = i[x], t.updateDuringAnimation(e), u.push(x)) } var _ = l.length; if (_ > 0 || r.force && !a.length) { for (var w = t.animators, S = [], M = 0; M < w.length; M++) w[M].targetName === e && S.push(w[M]); if (!f && S.length) for (var M = 0; M < S.length; M++) { var I = S[M].stopTracks(u); if (I) { var T = p(w, S[M]); w.splice(T, 1) } } var C = void 0, A = void 0, L = void 0; if (s) { A = {}, y && (C = {}); for (var M = 0; _ > M; M++) { var x = l[M]; A[x] = n[x], y ? C[x] = i[x] : n[x] = i[x] } } else if (y) { L = {}; for (var M = 0; _ > M; M++) { var x = l[M]; L[x] = Dn(n[x]), ui(n, i, x) } } var k = new fD(n, !1, f ? S : null); k.targetName = e, r.scope && (k.scope = r.scope), y && C && k.whenWithKeys(0, C, l), L && k.whenWithKeys(0, L, l), k.whenWithKeys(null == c ? 500 : c, s ? A : i, l).delay(d || 0), t.addAnimator(k, e), a.push(k) } } function ci(t) { delete hL[t] } function pi(t) { if (!t) return !1; if ("string" == typeof t) return yn(t, 1) < LD; if (t.colorStops) { for (var e = t.colorStops, n = 0, i = e.length, r = 0; i > r; r++) n += yn(e[r].color, 1); return n /= i, LD > n } return !1 } function di(t, e) { var n = new cL(o(), t, e); return hL[n.id] = n, n } function fi(t) { t.dispose() } function gi() { for (var t in hL) hL.hasOwnProperty(t) && hL[t].dispose(); hL = {} } function yi(t) { return hL[t] } function vi(t, e) { uL[t] = e } function mi(t) { return t.replace(/^\s+|\s+$/g, "") } function xi(t, e, n, i) { var r = e[0], o = e[1], a = n[0], s = n[1], l = o - r, u = s - a; if (0 === l) return 0 === u ? a : (a + s) / 2; if (i) if (l > 0) { if (r >= t) return a; if (t >= o) return s } else { if (t >= r) return a; if (o >= t) return s } else { if (t === r) return a; if (t === o) return s } return (t - r) / l * u + a } function _i(t, e) { switch (t) { case"center": case"middle": t = "50%"; break; case"left": case"top": t = "0%"; break; case"right": case"bottom": t = "100%" } return "string" == typeof t ? mi(t).match(/%$/) ? parseFloat(t) / 100 * e : parseFloat(t) : null == t ? 0 / 0 : +t } function bi(t, e, n) { return null == e && (e = 10), e = Math.min(Math.max(0, e), gL), t = (+t).toFixed(e), n ? t : +t } function wi(t) { return t.sort(function (t, e) { return t - e }), t } function Si(t) { if (t = +t, isNaN(t)) return 0; if (t > 1e-14) for (var e = 1, n = 0; 15 > n; n++, e *= 10) if (Math.round(t * e) / e === t) return n; return Mi(t) } function Mi(t) { var e = t.toString().toLowerCase(), n = e.indexOf("e"), i = n > 0 ? +e.slice(n + 1) : 0, r = n > 0 ? n : e.length, o = e.indexOf("."), a = 0 > o ? 0 : r - 1 - o; return Math.max(0, a - i) } function Ii(t, e) { var n = Math.log, i = Math.LN10, r = Math.floor(n(t[1] - t[0]) / i), o = Math.round(n(Math.abs(e[1] - e[0])) / i), a = Math.min(Math.max(-r + o, 0), 20); return isFinite(a) ? a : 20 } function Ti(t, e, n) { if (!t[e]) return 0; var i = m(t, function (t, e) { return t + (isNaN(e) ? 0 : e) }, 0); if (0 === i) return 0; for (var r = Math.pow(10, n), o = v(t, function (t) { return (isNaN(t) ? 0 : t) / i * r * 100 }), a = 100 * r, s = v(o, function (t) { return Math.floor(t) }), l = m(s, function (t, e) { return t + e }, 0), u = v(o, function (t, e) { return t - s[e] }); a > l;) { for (var h = Number.NEGATIVE_INFINITY, c = null, p = 0, d = u.length; d > p; ++p) u[p] > h && (h = u[p], c = p); ++s[c], u[c] = 0, ++l } return s[e] / r } function Ci(t, e) { var n = Math.max(Si(t), Si(e)), i = t + e; return n > gL ? i : bi(i, n) } function Ai(t) { var e = 2 * Math.PI; return (t % e + e) % e } function Di(t) { return t > -fL && fL > t } function Li(t) { if (t instanceof Date) return t; if ("string" == typeof t) { var e = vL.exec(t); if (!e) return new Date(0 / 0); if (e[8]) { var n = +e[4] || 0; return "Z" !== e[8].toUpperCase() && (n -= +e[8].slice(0, 3)), new Date(Date.UTC(+e[1], +(e[2] || 1) - 1, +e[3] || 1, n, +(e[5] || 0), +e[6] || 0, +e[7] || 0)) } return new Date(+e[1], +(e[2] || 1) - 1, +e[3] || 1, +e[4] || 0, +(e[5] || 0), +e[6] || 0, +e[7] || 0) } return new Date(null == t ? 0 / 0 : Math.round(t)) } function ki(t) { return Math.pow(10, Pi(t)) } function Pi(t) { if (0 === t) return 0; var e = Math.floor(Math.log(t) / Math.LN10); return t / Math.pow(10, e) >= 10 && e++, e } function Oi(t, e) { var n, i = Pi(t), r = Math.pow(10, i), o = t / r; return n = e ? 1.5 > o ? 1 : 2.5 > o ? 2 : 4 > o ? 3 : 7 > o ? 5 : 10 : 1 > o ? 1 : 2 > o ? 2 : 3 > o ? 3 : 5 > o ? 5 : 10, t = n * r, i >= -20 ? +t.toFixed(0 > i ? -i : 0) : t } function Ri(t, e) { var n = (t.length - 1) * e + 1, i = Math.floor(n), r = +t[i - 1], o = n - i; return o ? r + o * (t[i] - r) : r } function zi(t) { function e(t, n, i) { return t.interval[i] < n.interval[i] || t.interval[i] === n.interval[i] && (t.close[i] - n.close[i] === (i ? -1 : 1) || !i && e(t, n, 1)) } t.sort(function (t, n) { return e(t, n, 0) ? -1 : 1 }); for (var n = -1 / 0, i = 1, r = 0; r < t.length;) { for (var o = t[r].interval, a = t[r].close, s = 0; 2 > s; s++) o[s] <= n && (o[s] = n, a[s] = s ? 1 : 1 - i), n = o[s], i = a[s]; o[0] === o[1] && a[0] * a[1] !== 1 ? t.splice(r, 1) : r++ } return t } function Ei(t) { var e = parseFloat(t); return e == t && (0 !== e || "string" != typeof t || t.indexOf("x") <= 0) ? e : 0 / 0 } function Ni(t) { return !isNaN(Ei(t)) } function Bi() { return Math.round(9 * Math.random()) } function Vi(t, e) { return 0 === e ? t : Vi(e, t % e) } function Fi(t, e) { return null == t ? e : null == e ? t : t * e / Vi(t, e) } function Gi(t) { throw new Error(t) } function Hi(t) { return t instanceof Array ? t : null == t ? [] : [t] } function Wi(t, e, n) { if (t) { t[e] = t[e] || {}, t.emphasis = t.emphasis || {}, t.emphasis[e] = t.emphasis[e] || {}; for (var i = 0, r = n.length; r > i; i++) { var o = n[i]; !t.emphasis[e].hasOwnProperty(o) && t[e].hasOwnProperty(o) && (t.emphasis[e][o] = t[e][o]) } } } function Xi(t) { return !D(t) || M(t) || t instanceof Date ? t : t.value } function Yi(t) { return D(t) && !(t instanceof Array) } function Zi(t, e, n) { var i = "normalMerge" === n, r = "replaceMerge" === n, o = "replaceAll" === n; t = t || [], e = (e || []).slice(); var a = Z(); y(e, function (t, n) { return D(t) ? void 0 : void (e[n] = null) }); var s = Ui(t, a, n); return (i || r) && ji(s, t, a, e), i && qi(s, e), i || r ? Ki(s, e, r) : o && $i(s, e), Ji(s), s } function Ui(t, e, n) { var i = []; if ("replaceAll" === n) return i; for (var r = 0; r < t.length; r++) { var o = t[r]; o && null != o.id && e.set(o.id, r), i.push({ existing: "replaceMerge" === n || ir(o) ? null : o, newOption: null, keyInfo: null, brandNew: null }) } return i } function ji(t, e, n, i) { y(i, function (r, o) { if (r && null != r.id) { var a = tr(r.id), s = n.get(a); if (null != s) { var l = t[s]; H(!l.newOption, 'Duplicated option on id "' + a + '".'), l.newOption = r, l.existing = e[s], i[o] = null } } }) } function qi(t, e) { y(e, function (n, i) { if (n && null != n.name) for (var r = 0; r < t.length; r++) { var o = t[r].existing; if (!t[r].newOption && o && (null == o.id || null == n.id) && !ir(n) && !ir(o) && Qi("name", o, n)) return t[r].newOption = n, void (e[i] = null) } }) } function Ki(t, e, n) { y(e, function (e) { if (e) { for (var i, r = 0; (i = t[r]) && (i.newOption || ir(i.existing) || i.existing && null != e.id && !Qi("id", e, i.existing));) r++; i ? (i.newOption = e, i.brandNew = n) : t.push({ newOption: e, brandNew: n, existing: null, keyInfo: null }), r++ } }) } function $i(t, e) { y(e, function (e) { t.push({newOption: e, brandNew: !0, existing: null, keyInfo: null}) }) } function Ji(t) { var e = Z(); y(t, function (t) { var n = t.existing; n && e.set(n.id, t) }), y(t, function (t) { var n = t.newOption; H(!n || null == n.id || !e.get(n.id) || e.get(n.id) === t, "id duplicates: " + (n && n.id)), n && null != n.id && e.set(n.id, t), !t.keyInfo && (t.keyInfo = {}) }), y(t, function (t, n) { var i = t.existing, r = t.newOption, o = t.keyInfo; if (D(r)) { if (o.name = null != r.name ? tr(r.name) : i ? i.name : mL + n, i) o.id = tr(i.id); else if (null != r.id) o.id = tr(r.id); else { var a = 0; do o.id = "\x00" + o.name + "\x00" + a++; while (e.get(o.id)) } e.set(o.id, t) } }) } function Qi(t, e, n) { var i = er(e[t], null), r = er(n[t], null); return null != i && null != r && i === r } function tr(t) { return er(t, "") } function er(t, e) { if (null == t) return e; var n = typeof t; return "string" === n ? t : "number" === n || C(t) ? t + "" : e } function nr(t) { var e = t.name; return !(!e || !e.indexOf(mL)) } function ir(t) { return t && null != t.id && 0 === tr(t.id).indexOf(xL) } function rr(t) { return xL + t } function or(t, e, n) { y(t, function (t) { var i = t.newOption; D(i) && (t.keyInfo.mainType = e, t.keyInfo.subType = ar(e, i, t.existing, n)) }) } function ar(t, e, n, i) { var r = e.type ? e.type : n ? n.subType : i.determineSubType(t, e); return r } function sr(t, e) { function n(t, e, n) { for (var i = 0, r = t.length; r > i; i++) { var o = er(t[i].seriesId, null); if (null == o) return; for (var a = Hi(t[i].dataIndex), s = n && n[o], l = 0, u = a.length; u > l; l++) { var h = a[l]; s && s[h] ? s[h] = null : (e[o] || (e[o] = {}))[h] = 1 } } } function i(t, e) { var n = []; for (var r in t) if (t.hasOwnProperty(r) && null != t[r]) if (e) n.push(+r); else { var o = i(t[r], !0); o.length && n.push({seriesId: r, dataIndex: o}) } return n } var r = {}, o = {}; return n(t || [], r), n(e || [], o, r), [i(r), i(o)] } function lr(t, e) { return null != e.dataIndexInside ? e.dataIndexInside : null != e.dataIndex ? M(e.dataIndex) ? v(e.dataIndex, function (e) { return t.indexOfRawIndex(e) }) : t.indexOfRawIndex(e.dataIndex) : null != e.name ? M(e.name) ? v(e.name, function (e) { return t.indexOfName(e) }) : t.indexOfName(e.name) : void 0 } function ur() { var t = "__ec_inner_" + bL++; return function (e) { return e[t] || (e[t] = {}) } } function hr(t, e, n) { var i = cr(e, n), r = i.mainTypeSpecified, o = i.queryOptionMap, a = i.others, s = a, l = n ? n.defaultMainType : null; return !r && l && o.set(l, {}), o.each(function (e, i) { var r = pr(t, i, e, { useDefault: l === i, enableAll: n && null != n.enableAll ? n.enableAll : !0, enableNone: n && null != n.enableNone ? n.enableNone : !0 }); s[i + "Models"] = r.models, s[i + "Model"] = r.models[0] }), s } function cr(t, e) { var n; if (T(t)) { var i = {}; i[t + "Index"] = 0, n = i } else n = t; var r = Z(), o = {}, a = !1; return y(n, function (t, n) { if ("dataIndex" === n || "dataIndexInside" === n) return void (o[n] = t); var i = n.match(/^(\w+)(Index|Id|Name)$/) || [], s = i[1], l = (i[2] || "").toLowerCase(); if (s && l && !(e && e.includeMainTypes && p(e.includeMainTypes, s) < 0)) { a = a || !!s; var u = r.get(s) || r.set(s, {}); u[l] = t } }), {mainTypeSpecified: a, queryOptionMap: r, others: o} } function pr(t, e, n, i) { i = i || wL; var r = n.index, o = n.id, a = n.name, s = {models: null, specified: null != r || null != o || null != a}; if (!s.specified) { var l = void 0; return s.models = i.useDefault && (l = t.getComponent(e)) ? [l] : [], s } return "none" === r || r === !1 ? (H(i.enableNone, '`"none"` or `false` is not a valid value on index option.'), s.models = [], s) : ("all" === r && (H(i.enableAll, '`"all"` is not a valid value on index option.'), r = o = a = null), s.models = t.queryComponents({ mainType: e, index: r, id: o, name: a }), s) } function dr(t, e, n) { t.setAttribute ? t.setAttribute(e, n) : t[e] = n } function fr(t, e) { return t.getAttribute ? t.getAttribute(e) : t[e] } function gr(t) { return "auto" === t ? oA.domSupported ? "html" : "richText" : t || "html" } function yr(t, e) { var n = Z(), i = []; return y(t, function (t) { var r = e(t); (n.get(r) || (i.push(r), n.set(r, []))).push(t) }), {keys: i, buckets: n} } function vr(t, e, n, i, r) { var o = null == e || "auto" === e; if (null == i) return i; if ("number" == typeof i) { var a = mn(n || 0, i, r); return bi(a, o ? Math.max(Si(n || 0), Si(i)) : e) } if ("string" == typeof i) return 1 > r ? n : i; for (var s = [], l = n, u = i, h = Math.max(l ? l.length : 0, u.length), c = 0; h > c; ++c) { var p = t.getDimensionInfo(c); if ("ordinal" === p.type) s[c] = (1 > r && l ? l : u)[c]; else { var d = l && l[c] ? l[c] : 0, f = u[c], a = mn(d, f, r); s[c] = bi(a, o ? Math.max(Si(d), Si(f)) : e) } } return s } function mr(t) { var e = {main: "", sub: ""}; if (t) { var n = t.split(ML); e.main = n[0] || "", e.sub = n[1] || "" } return e } function xr(t) { H(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t), 'componentType "' + t + '" illegal') } function _r(t) { return !(!t || !t[TL]) } function br(t) { t.$constructor = t, t.extend = function (t) { function e() { for (var r = [], o = 0; o < arguments.length; o++) r[o] = arguments[o]; if (t.$constructor) t.$constructor.apply(this, arguments); else { if (wr(i)) { var a = j(e.prototype, new (i.bind.apply(i, n([void 0], r)))); return a } i.apply(this, arguments) } } var i = this; return e[TL] = !0, h(e.prototype, t), e.extend = this.extend, e.superCall = Ir, e.superApply = Tr, d(e, this), e.superClass = i, e } } function wr(t) { return "function" == typeof t && /^class\s/.test(Function.prototype.toString.call(t)) } function Sr(t, e) { t.extend = e.extend } function Mr(t) { var e = ["__\x00is_clz", CL++].join("_"); t.prototype[e] = !0, t.isInstance = function (t) { return !(!t || !t[e]) } } function Ir(t, e) { for (var n = [], i = 2; i < arguments.length; i++) n[i - 2] = arguments[i]; return this.superClass.prototype[e].apply(t, n) } function Tr(t, e, n) { return this.superClass.prototype[e].apply(t, n) } function Cr(t) { function e(t) { var e = n[t.main]; return e && e[IL] || (e = n[t.main] = {}, e[IL] = !0), e } var n = {}; t.registerClass = function (t) { var i = t.type || t.prototype.type; if (i) { xr(i), t.prototype.type = i; var r = mr(i); if (r.sub) { if (r.sub !== IL) { var o = e(r); o[r.sub] = t } } else n[r.main] = t } return t }, t.getClass = function (t, e, i) { var r = n[t]; if (r && r[IL] && (r = e ? r[e] : null), i && !r) throw new Error(e ? "Component " + t + "." + (e || "") + " is used but not imported." : t + ".type should be specified."); return r }, t.getClassesByMainType = function (t) { var e = mr(t), i = [], r = n[e.main]; return r && r[IL] ? y(r, function (t, e) { e !== IL && i.push(t) }) : i.push(r), i }, t.hasClass = function (t) { var e = mr(t); return !!n[e.main] }, t.getAllClassMainTypes = function () { var t = []; return y(n, function (e, n) { t.push(n) }), t }, t.hasSubTypes = function (t) { var e = mr(t), i = n[e.main]; return i && i[IL] } } function Ar(t, e) { for (var n = 0; n < t.length; n++) t[n][1] || (t[n][1] = t[n][0]); return e = e || !1, function (n, i, r) { for (var o = {}, a = 0; a < t.length; a++) { var s = t[a][1]; if (!(i && p(i, s) >= 0 || r && p(r, s) < 0)) { var l = n.getShallow(s, e); null != l && (o[t[a][0]] = l) } } return o } } function Dr(t) { if ("string" == typeof t) { var e = kL.get(t); return e && e.image } return t } function Lr(t, e, n, i, r) { if (t) { if ("string" == typeof t) { if (e && e.__zrImageSrc === t || !n) return e; var o = kL.get(t), a = {hostEl: n, cb: i, cbPayload: r}; return o ? (e = o.image, !Pr(e) && o.pending.push(a)) : (e = new Image, e.onload = e.onerror = kr, kL.put(t, e.__cachedImgObj = { image: e, pending: [a] }), e.src = e.__zrImageSrc = t), e } return t } return e } function kr() { var t = this.__cachedImgObj; this.onload = this.onerror = this.__cachedImgObj = null; for (var e = 0; e < t.pending.length; e++) { var n = t.pending[e], i = n.cb; i && i(this, n.cbPayload), n.hostEl.dirty() } t.pending.length = 0 } function Pr(t) { return t && t.width && t.height } function Or(t, e, n, i, r) { if (!e) return ""; var o = (t + "").split("\n"); r = Rr(e, n, i, r); for (var a = 0, s = o.length; s > a; a++) o[a] = zr(o[a], r); return o.join("\n") } function Rr(t, e, n, i) { i = i || {}; var r = h({}, i); r.font = e, n = B(n, "..."), r.maxIterations = B(i.maxIterations, 2); var o = r.minChar = B(i.minChar, 0); r.cnCharWidth = Jn("国", e); var a = r.ascCharWidth = Jn("a", e); r.placeholder = B(i.placeholder, ""); for (var s = t = Math.max(0, t - 1), l = 0; o > l && s >= a; l++) s -= a; var u = Jn(n, e); return u > s && (n = "", u = 0), s = t - u, r.ellipsis = n, r.ellipsisWidth = u, r.contentWidth = s, r.containerWidth = t, r } function zr(t, e) { var n = e.containerWidth, i = e.font, r = e.contentWidth; if (!n) return ""; var o = Jn(t, i); if (n >= o) return t; for (var a = 0; ; a++) { if (r >= o || a >= e.maxIterations) { t += e.ellipsis; break } var s = 0 === a ? Er(t, r, e.ascCharWidth, e.cnCharWidth) : o > 0 ? Math.floor(t.length * r / o) : 0; t = t.substr(0, s), o = Jn(t, i) } return "" === t && (t = e.placeholder), t } function Er(t, e, n, i) { for (var r = 0, o = 0, a = t.length; a > o && e > r; o++) { var s = t.charCodeAt(o); r += s >= 0 && 127 >= s ? n : i } return o } function Nr(t, e) { null != t && (t += ""); var n, i = e.overflow, r = e.padding, o = e.font, a = "truncate" === i, s = ii(o), l = B(e.lineHeight, s), u = "truncate" === e.lineOverflow, h = e.width; n = null != h && "break" === i || "breakAll" === i ? t ? Hr(t, e.font, h, "breakAll" === i, 0).lines : [] : t ? t.split("\n") : []; var c = n.length * l, p = B(e.height, c); if (c > p && u) { var d = Math.floor(p / l); n = n.slice(0, d) } var f = p, g = h; if (r && (f += r[0] + r[2], null != g && (g += r[1] + r[3])), t && a && null != g) for (var y = Rr(h, o, e.ellipsis, { minChar: e.truncateMinChar, placeholder: e.placeholder }), v = 0; v < n.length; v++) n[v] = zr(n[v], y); if (null == h) { for (var m = 0, v = 0; v < n.length; v++) m = Math.max(Jn(n[v], o), m); h = m } return {lines: n, height: p, outerHeight: f, lineHeight: l, calculatedLineHeight: s, contentHeight: c, width: h} } function Br(t, e) { function n(t, e, n) { t.width = e, t.lineHeight = n, p += n, d = Math.max(d, e) } var i = new zL; if (null != t && (t += ""), !t) return i; for (var r, o = e.width, a = e.height, s = e.overflow, l = "break" !== s && "breakAll" !== s || null == o ? null : { width: o, accumWidth: 0, breakAll: "breakAll" === s }, u = PL.lastIndex = 0; null != (r = PL.exec(t));) { var h = r.index; h > u && Vr(i, t.substring(u, h), e, l), Vr(i, r[2], e, l, r[1]), u = PL.lastIndex } u < t.length && Vr(i, t.substring(u, t.length), e, l); var c = [], p = 0, d = 0, f = e.padding, g = "truncate" === s, y = "truncate" === e.lineOverflow; t:for (var v = 0; v < i.lines.length; v++) { for (var m = i.lines[v], x = 0, _ = 0, b = 0; b < m.tokens.length; b++) { var w = m.tokens[b], S = w.styleName && e.rich[w.styleName] || {}, M = w.textPadding = S.padding, I = M ? M[1] + M[3] : 0, T = w.font = S.font || e.font; w.contentHeight = ii(T); var C = B(S.height, w.contentHeight); if (w.innerHeight = C, M && (C += M[0] + M[2]), w.height = C, w.lineHeight = V(S.lineHeight, e.lineHeight, C), w.align = S && S.align || e.align, w.verticalAlign = S && S.verticalAlign || "middle", y && null != a && p + w.lineHeight > a) { b > 0 ? (m.tokens = m.tokens.slice(0, b), n(m, _, x), i.lines = i.lines.slice(0, v + 1)) : i.lines = i.lines.slice(0, v); break t } var A = S.width, D = null == A || "auto" === A; if ("string" == typeof A && "%" === A.charAt(A.length - 1)) w.percentWidth = A, c.push(w), w.contentWidth = Jn(w.text, T); else { if (D) { var L = S.backgroundColor, k = L && L.image; k && (k = Dr(k), Pr(k) && (w.width = Math.max(w.width, k.width * C / k.height))) } var P = g && null != o ? o - _ : null; null != P && P < w.width ? !D || I > P ? (w.text = "", w.width = w.contentWidth = 0) : (w.text = Or(w.text, P - I, T, e.ellipsis, {minChar: e.truncateMinChar}), w.width = w.contentWidth = Jn(w.text, T)) : w.contentWidth = Jn(w.text, T) } w.width += I, _ += w.width, S && (x = Math.max(x, w.lineHeight)) } n(m, _, x) } i.outerWidth = i.width = B(o, d), i.outerHeight = i.height = B(a, p), i.contentHeight = p, i.contentWidth = d, f && (i.outerWidth += f[1] + f[3], i.outerHeight += f[0] + f[2]); for (var v = 0; v < c.length; v++) { var w = c[v], O = w.percentWidth; w.width = parseInt(O, 10) / 100 * i.width } return i } function Vr(t, e, n, i, r) { var o, a, s = "" === e, l = r && n.rich[r] || {}, u = t.lines, h = l.font || n.font, c = !1; if (i) { var p = l.padding, d = p ? p[1] + p[3] : 0; if (null != l.width && "auto" !== l.width) { var f = ri(l.width, i.width) + d; u.length > 0 && f + i.accumWidth > i.width && (o = e.split("\n"), c = !0), i.accumWidth = f } else { var g = Hr(e, h, i.width, i.breakAll, i.accumWidth); i.accumWidth = g.accumWidth + d, a = g.linesWidths, o = g.lines } } else o = e.split("\n"); for (var y = 0; y < o.length; y++) { var v = o[y], m = new OL; if (m.styleName = r, m.text = v, m.isLineHolder = !v && !s, m.width = "number" == typeof l.width ? l.width : a ? a[y] : Jn(v, h), y || c) u.push(new RL([m])); else { var x = (u[u.length - 1] || (u[0] = new RL)).tokens, _ = x.length; 1 === _ && x[0].isLineHolder ? x[0] = m : (v || !_ || s) && x.push(m) } } } function Fr(t) { var e = t.charCodeAt(0); return e >= 33 && 255 >= e } function Gr(t) { return Fr(t) ? EL[t] ? !0 : !1 : !0 } function Hr(t, e, n, i, r) { for (var o = [], a = [], s = "", l = "", u = 0, h = 0, c = 0; c < t.length; c++) { var p = t.charAt(c); if ("\n" !== p) { var d = Jn(p, e), f = i ? !1 : !Gr(p); (o.length ? h + d > n : r + h + d > n) ? h ? (s || l) && (f ? (s || (s = l, l = "", u = 0, h = u), o.push(s), a.push(h - u), l += p, u += d, s = "", h = u) : (l && (s += l, h += u, l = "", u = 0), o.push(s), a.push(h), s = p, h = d)) : f ? (o.push(l), a.push(u), l = p, u = d) : (o.push(p), a.push(d)) : (h += d, f ? (l += p, u += d) : (l && (s += l, l = "", u = 0), s += p)) } else l && (s += l, h += u), o.push(s), a.push(h), s = "", l = "", u = 0, h = 0 } return o.length || s || (s = t, l = "", u = 0), l && (s += l), s && (o.push(s), a.push(h)), 1 === o.length && (h += r), { accumWidth: h, lines: o, linesWidths: a } } function Wr(t, e, n) { return WL.copy(t.getBoundingRect()), t.transform && WL.applyTransform(t.transform), XL.width = e, XL.height = n, !WL.intersect(XL) } function Xr(t) { return t > -UL && UL > t } function Yr(t) { return t > UL || -UL > t } function Zr(t, e, n, i, r) { var o = 1 - r; return o * o * (o * t + 3 * r * e) + r * r * (r * i + 3 * o * n) } function Ur(t, e, n, i, r) { var o = 1 - r; return 3 * (((e - t) * o + 2 * (n - e) * r) * o + (i - n) * r * r) } function jr(t, e, n, i, r, o) { var a = i + 3 * (e - n) - t, s = 3 * (n - 2 * e + t), l = 3 * (e - t), u = t - r, h = s * s - 3 * a * l, c = s * l - 9 * a * u, p = l * l - 3 * s * u, d = 0; if (Xr(h) && Xr(c)) if (Xr(s)) o[0] = 0; else { var f = -l / s; f >= 0 && 1 >= f && (o[d++] = f) } else { var g = c * c - 4 * h * p; if (Xr(g)) { var y = c / h, f = -s / a + y, v = -y / 2; f >= 0 && 1 >= f && (o[d++] = f), v >= 0 && 1 >= v && (o[d++] = v) } else if (g > 0) { var m = ZL(g), x = h * s + 1.5 * a * (-c + m), _ = h * s + 1.5 * a * (-c - m); x = 0 > x ? -YL(-x, KL) : YL(x, KL), _ = 0 > _ ? -YL(-_, KL) : YL(_, KL); var f = (-s - (x + _)) / (3 * a); f >= 0 && 1 >= f && (o[d++] = f) } else { var b = (2 * h * s - 3 * a * c) / (2 * ZL(h * h * h)), w = Math.acos(b) / 3, S = ZL(h), M = Math.cos(w), f = (-s - 2 * S * M) / (3 * a), v = (-s + S * (M + qL * Math.sin(w))) / (3 * a), I = (-s + S * (M - qL * Math.sin(w))) / (3 * a); f >= 0 && 1 >= f && (o[d++] = f), v >= 0 && 1 >= v && (o[d++] = v), I >= 0 && 1 >= I && (o[d++] = I) } } return d } function qr(t, e, n, i, r) { var o = 6 * n - 12 * e + 6 * t, a = 9 * e + 3 * i - 3 * t - 9 * n, s = 3 * e - 3 * t, l = 0; if (Xr(a)) { if (Yr(o)) { var u = -s / o; u >= 0 && 1 >= u && (r[l++] = u) } } else { var h = o * o - 4 * a * s; if (Xr(h)) r[0] = -o / (2 * a); else if (h > 0) { var c = ZL(h), u = (-o + c) / (2 * a), p = (-o - c) / (2 * a); u >= 0 && 1 >= u && (r[l++] = u), p >= 0 && 1 >= p && (r[l++] = p) } } return l } function Kr(t, e, n, i, r, o) { var a = (e - t) * r + t, s = (n - e) * r + e, l = (i - n) * r + n, u = (s - a) * r + a, h = (l - s) * r + s, c = (h - u) * r + u; o[0] = t, o[1] = a, o[2] = u, o[3] = c, o[4] = c, o[5] = h, o[6] = l, o[7] = i } function $r(t, e, n, i, r, o, a, s, l, u, h) { var c, p, d, f, g, y = .005, v = 1 / 0; $L[0] = l, $L[1] = u; for (var m = 0; 1 > m; m += .05) JL[0] = Zr(t, n, r, a, m), JL[1] = Zr(e, i, o, s, m), f = TA($L, JL), v > f && (c = m, v = f); v = 1 / 0; for (var x = 0; 32 > x && !(jL > y); x++) p = c - y, d = c + y, JL[0] = Zr(t, n, r, a, p), JL[1] = Zr(e, i, o, s, p), f = TA(JL, $L), p >= 0 && v > f ? (c = p, v = f) : (QL[0] = Zr(t, n, r, a, d), QL[1] = Zr(e, i, o, s, d), g = TA(QL, $L), 1 >= d && v > g ? (c = d, v = g) : y *= .5); return h && (h[0] = Zr(t, n, r, a, c), h[1] = Zr(e, i, o, s, c)), ZL(v) } function Jr(t, e, n, i, r, o, a, s, l) { for (var u = t, h = e, c = 0, p = 1 / l, d = 1; l >= d; d++) { var f = d * p, g = Zr(t, n, r, a, f), y = Zr(e, i, o, s, f), v = g - u, m = y - h; c += Math.sqrt(v * v + m * m), u = g, h = y } return c } function Qr(t, e, n, i) { var r = 1 - i; return r * (r * t + 2 * i * e) + i * i * n } function to(t, e, n, i) { return 2 * ((1 - i) * (e - t) + i * (n - e)) } function eo(t, e, n, i, r) { var o = t - 2 * e + n, a = 2 * (e - t), s = t - i, l = 0; if (Xr(o)) { if (Yr(a)) { var u = -s / a; u >= 0 && 1 >= u && (r[l++] = u) } } else { var h = a * a - 4 * o * s; if (Xr(h)) { var u = -a / (2 * o); u >= 0 && 1 >= u && (r[l++] = u) } else if (h > 0) { var c = ZL(h), u = (-a + c) / (2 * o), p = (-a - c) / (2 * o); u >= 0 && 1 >= u && (r[l++] = u), p >= 0 && 1 >= p && (r[l++] = p) } } return l } function no(t, e, n) { var i = t + n - 2 * e; return 0 === i ? .5 : (t - e) / i } function io(t, e, n, i, r) { var o = (e - t) * i + t, a = (n - e) * i + e, s = (a - o) * i + o; r[0] = t, r[1] = o, r[2] = s, r[3] = s, r[4] = a, r[5] = n } function ro(t, e, n, i, r, o, a, s, l) { var u, h = .005, c = 1 / 0; $L[0] = a, $L[1] = s; for (var p = 0; 1 > p; p += .05) { JL[0] = Qr(t, n, r, p), JL[1] = Qr(e, i, o, p); var d = TA($L, JL); c > d && (u = p, c = d) } c = 1 / 0; for (var f = 0; 32 > f && !(jL > h); f++) { var g = u - h, y = u + h; JL[0] = Qr(t, n, r, g), JL[1] = Qr(e, i, o, g); var d = TA(JL, $L); if (g >= 0 && c > d) u = g, c = d; else { QL[0] = Qr(t, n, r, y), QL[1] = Qr(e, i, o, y); var v = TA(QL, $L); 1 >= y && c > v ? (u = y, c = v) : h *= .5 } } return l && (l[0] = Qr(t, n, r, u), l[1] = Qr(e, i, o, u)), ZL(c) } function oo(t, e, n, i, r, o, a) { for (var s = t, l = e, u = 0, h = 1 / a, c = 1; a >= c; c++) { var p = c * h, d = Qr(t, n, r, p), f = Qr(e, i, o, p), g = d - s, y = f - l; u += Math.sqrt(g * g + y * y), s = d, l = f } return u } function ao(t, e, n) { if (0 !== t.length) { for (var i = t[0], r = i[0], o = i[0], a = i[1], s = i[1], l = 1; l < t.length; l++) i = t[l], r = tk(r, i[0]), o = ek(o, i[0]), a = tk(a, i[1]), s = ek(s, i[1]); e[0] = r, e[1] = a, n[0] = o, n[1] = s } } function so(t, e, n, i, r, o) { r[0] = tk(t, n), r[1] = tk(e, i), o[0] = ek(t, n), o[1] = ek(e, i) } function lo(t, e, n, i, r, o, a, s, l, u) { var h = qr, c = Zr, p = h(t, n, r, a, lk); l[0] = 1 / 0, l[1] = 1 / 0, u[0] = -1 / 0, u[1] = -1 / 0; for (var d = 0; p > d; d++) { var f = c(t, n, r, a, lk[d]); l[0] = tk(f, l[0]), u[0] = ek(f, u[0]) } p = h(e, i, o, s, uk); for (var d = 0; p > d; d++) { var g = c(e, i, o, s, uk[d]); l[1] = tk(g, l[1]), u[1] = ek(g, u[1]) } l[0] = tk(t, l[0]), u[0] = ek(t, u[0]), l[0] = tk(a, l[0]), u[0] = ek(a, u[0]), l[1] = tk(e, l[1]), u[1] = ek(e, u[1]), l[1] = tk(s, l[1]), u[1] = ek(s, u[1]) } function uo(t, e, n, i, r, o, a, s) { var l = no, u = Qr, h = ek(tk(l(t, n, r), 1), 0), c = ek(tk(l(e, i, o), 1), 0), p = u(t, n, r, h), d = u(e, i, o, c); a[0] = tk(t, r, p), a[1] = tk(e, o, d), s[0] = ek(t, r, p), s[1] = ek(e, o, d) } function ho(t, e, n, i, r, o, a, s, l) { var u = ye, h = ve, c = Math.abs(r - o); if (1e-4 > c % rk && c > 1e-4) return s[0] = t - n, s[1] = e - i, l[0] = t + n, void (l[1] = e + i); if (ok[0] = ik(r) * n + t, ok[1] = nk(r) * i + e, ak[0] = ik(o) * n + t, ak[1] = nk(o) * i + e, u(s, ok, ak), h(l, ok, ak), r %= rk, 0 > r && (r += rk), o %= rk, 0 > o && (o += rk), r > o && !a ? o += rk : o > r && a && (r += rk), a) { var p = o; o = r, r = p } for (var d = 0; o > d; d += Math.PI / 2) d > r && (sk[0] = ik(d) * n + t, sk[1] = nk(d) * i + e, u(s, sk, s), h(l, sk, l)) } function co(t) { var e = Math.round(t / Sk * 1e8) / 1e8; return e % 2 * Sk } function po(t, e) { var n = co(t[0]); 0 > n && (n += Mk); var i = n - t[0], r = t[1]; r += i, !e && r - n >= Mk ? r = n + Mk : e && n - r >= Mk ? r = n - Mk : !e && n > r ? r = n + (Mk - co(n - r)) : e && r > n && (r = n - (Mk - co(r - n))), t[0] = n, t[1] = r } function fo(t, e, n, i, r, o, a) { if (0 === r) return !1; var s = r, l = 0, u = t; if (a > e + s && a > i + s || e - s > a && i - s > a || o > t + s && o > n + s || t - s > o && n - s > o) return !1; if (t === n) return Math.abs(o - t) <= s / 2; l = (e - i) / (t - n), u = (t * i - n * e) / (t - n); var h = l * o - a + u, c = h * h / (l * l + 1); return s / 2 * s / 2 >= c } function go(t, e, n, i, r, o, a, s, l, u, h) { if (0 === l) return !1; var c = l; if (h > e + c && h > i + c && h > o + c && h > s + c || e - c > h && i - c > h && o - c > h && s - c > h || u > t + c && u > n + c && u > r + c && u > a + c || t - c > u && n - c > u && r - c > u && a - c > u) return !1; var p = $r(t, e, n, i, r, o, a, s, u, h, null); return c / 2 >= p } function yo(t, e, n, i, r, o, a, s, l) { if (0 === a) return !1; var u = a; if (l > e + u && l > i + u && l > o + u || e - u > l && i - u > l && o - u > l || s > t + u && s > n + u && s > r + u || t - u > s && n - u > s && r - u > s) return !1; var h = ro(t, e, n, i, r, o, s, l, null); return u / 2 >= h } function vo(t) { return t %= Ak, 0 > t && (t += Ak), t } function mo(t, e, n, i, r, o, a, s, l) { if (0 === a) return !1; var u = a; s -= t, l -= e; var h = Math.sqrt(s * s + l * l); if (h - u > n || n > h + u) return !1; if (Math.abs(i - r) % Dk < 1e-4) return !0; if (o) { var c = i; i = vo(r), r = vo(c) } else i = vo(i), r = vo(r); i > r && (r += Dk); var p = Math.atan2(l, s); return 0 > p && (p += Dk), p >= i && r >= p || p + Dk >= i && r >= p + Dk } function xo(t, e, n, i, r, o) { if (o > e && o > i || e > o && i > o) return 0; if (i === e) return 0; var a = (o - e) / (i - e), s = e > i ? 1 : -1; (1 === a || 0 === a) && (s = e > i ? .5 : -.5); var l = a * (n - t) + t; return l === r ? 1 / 0 : l > r ? s : 0 } function _o(t, e) { return Math.abs(t - e) < Pk } function bo() { var t = Rk[0]; Rk[0] = Rk[1], Rk[1] = t } function wo(t, e, n, i, r, o, a, s, l, u) { if (u > e && u > i && u > o && u > s || e > u && i > u && o > u && s > u) return 0; var h = jr(e, i, o, s, u, Ok); if (0 === h) return 0; for (var c = 0, p = -1, d = void 0, f = void 0, g = 0; h > g; g++) { var y = Ok[g], v = 0 === y || 1 === y ? .5 : 1, m = Zr(t, n, r, a, y); l > m || (0 > p && (p = qr(e, i, o, s, Rk), Rk[1] < Rk[0] && p > 1 && bo(), d = Zr(e, i, o, s, Rk[0]), p > 1 && (f = Zr(e, i, o, s, Rk[1]))), c += 2 === p ? y < Rk[0] ? e > d ? v : -v : y < Rk[1] ? d > f ? v : -v : f > s ? v : -v : y < Rk[0] ? e > d ? v : -v : d > s ? v : -v) } return c } function So(t, e, n, i, r, o, a, s) { if (s > e && s > i && s > o || e > s && i > s && o > s) return 0; var l = eo(e, i, o, s, Ok); if (0 === l) return 0; var u = no(e, i, o); if (u >= 0 && 1 >= u) { for (var h = 0, c = Qr(e, i, o, u), p = 0; l > p; p++) { var d = 0 === Ok[p] || 1 === Ok[p] ? .5 : 1, f = Qr(t, n, r, Ok[p]); a > f || (h += Ok[p] < u ? e > c ? d : -d : c > o ? d : -d) } return h } var d = 0 === Ok[0] || 1 === Ok[0] ? .5 : 1, f = Qr(t, n, r, Ok[0]); return a > f ? 0 : e > o ? d : -d } function Mo(t, e, n, i, r, o, a, s) { if (s -= e, s > n || -n > s) return 0; var l = Math.sqrt(n * n - s * s); Ok[0] = -l, Ok[1] = l; var u = Math.abs(i - r); if (1e-4 > u) return 0; if (u >= kk - 1e-4) { i = 0, r = kk; var h = o ? 1 : -1; return a >= Ok[0] + t && a <= Ok[1] + t ? h : 0 } if (i > r) { var c = i; i = r, r = c } 0 > i && (i += kk, r += kk); for (var p = 0, d = 0; 2 > d; d++) { var f = Ok[d]; if (f + t > a) { var g = Math.atan2(s, f), h = o ? 1 : -1; 0 > g && (g = kk + g), (g >= i && r >= g || g + kk >= i && r >= g + kk) && (g > Math.PI / 2 && g < 1.5 * Math.PI && (h = -h), p += h) } } return p } function Io(t, e, n, i, r) { for (var o, a, s = t.data, l = t.len(), u = 0, h = 0, c = 0, p = 0, d = 0, f = 0; l > f;) { var g = s[f++], y = 1 === f; switch (g === Lk.M && f > 1 && (n || (u += xo(h, c, p, d, i, r))), y && (h = s[f], c = s[f + 1], p = h, d = c), g) { case Lk.M: p = s[f++], d = s[f++], h = p, c = d; break; case Lk.L: if (n) { if (fo(h, c, s[f], s[f + 1], e, i, r)) return !0 } else u += xo(h, c, s[f], s[f + 1], i, r) || 0; h = s[f++], c = s[f++]; break; case Lk.C: if (n) { if (go(h, c, s[f++], s[f++], s[f++], s[f++], s[f], s[f + 1], e, i, r)) return !0 } else u += wo(h, c, s[f++], s[f++], s[f++], s[f++], s[f], s[f + 1], i, r) || 0; h = s[f++], c = s[f++]; break; case Lk.Q: if (n) { if (yo(h, c, s[f++], s[f++], s[f], s[f + 1], e, i, r)) return !0 } else u += So(h, c, s[f++], s[f++], s[f], s[f + 1], i, r) || 0; h = s[f++], c = s[f++]; break; case Lk.A: var v = s[f++], m = s[f++], x = s[f++], _ = s[f++], b = s[f++], w = s[f++]; f += 1; var S = !!(1 - s[f++]); o = Math.cos(b) * x + v, a = Math.sin(b) * _ + m, y ? (p = o, d = a) : u += xo(h, c, o, a, i, r); var M = (i - v) * _ / x + v; if (n) { if (mo(v, m, _, b, b + w, S, e, M, r)) return !0 } else u += Mo(v, m, _, b, b + w, S, M, r); h = Math.cos(b + w) * x + v, c = Math.sin(b + w) * _ + m; break; case Lk.R: p = h = s[f++], d = c = s[f++]; var I = s[f++], T = s[f++]; if (o = p + I, a = d + T, n) { if (fo(p, d, o, d, e, i, r) || fo(o, d, o, a, e, i, r) || fo(o, a, p, a, e, i, r) || fo(p, a, p, d, e, i, r)) return !0 } else u += xo(o, d, o, a, i, r), u += xo(p, a, p, d, i, r); break; case Lk.Z: if (n) { if (fo(h, c, p, d, e, i, r)) return !0 } else u += xo(h, c, p, d, i, r); h = p, c = d } } return n || _o(c, d) || (u += xo(h, c, p, d, i, r) || 0), 0 !== u } function To(t, e, n) { return Io(t, 0, !1, e, n) } function Co(t, e, n, i) { return Io(t, e, !0, n, i) } function Ao(t) { return !!(t && "string" != typeof t && t.width && t.height) } function Do(t, e) { var n, i, r, o, a = e.x, s = e.y, l = e.width, u = e.height, h = e.r; 0 > l && (a += l, l = -l), 0 > u && (s += u, u = -u), "number" == typeof h ? n = i = r = o = h : h instanceof Array ? 1 === h.length ? n = i = r = o = h[0] : 2 === h.length ? (n = r = h[0], i = o = h[1]) : 3 === h.length ? (n = h[0], i = o = h[1], r = h[2]) : (n = h[0], i = h[1], r = h[2], o = h[3]) : n = i = r = o = 0; var c; n + i > l && (c = n + i, n *= l / c, i *= l / c), r + o > l && (c = r + o, r *= l / c, o *= l / c), i + r > u && (c = i + r, i *= u / c, r *= u / c), n + o > u && (c = n + o, n *= u / c, o *= u / c), t.moveTo(a + n, s), t.lineTo(a + l - i, s), 0 !== i && t.arc(a + l - i, s + i, i, -Math.PI / 2, 0), t.lineTo(a + l, s + u - r), 0 !== r && t.arc(a + l - r, s + u - r, r, 0, Math.PI / 2), t.lineTo(a + o, s + u), 0 !== o && t.arc(a + o, s + u - o, o, Math.PI / 2, Math.PI), t.lineTo(a, s + n), 0 !== n && t.arc(a + n, s + n, n, Math.PI, 1.5 * Math.PI) } function Lo(t, e, n) { if (e) { var i = e.x1, r = e.x2, o = e.y1, a = e.y2; t.x1 = i, t.x2 = r, t.y1 = o, t.y2 = a; var s = n && n.lineWidth; return s ? (Xk(2 * i) === Xk(2 * r) && (t.x1 = t.x2 = Po(i, s, !0)), Xk(2 * o) === Xk(2 * a) && (t.y1 = t.y2 = Po(o, s, !0)), t) : t } } function ko(t, e, n) { if (e) { var i = e.x, r = e.y, o = e.width, a = e.height; t.x = i, t.y = r, t.width = o, t.height = a; var s = n && n.lineWidth; return s ? (t.x = Po(i, s, !0), t.y = Po(r, s, !0), t.width = Math.max(Po(i + o, s, !1) - t.x, 0 === o ? 0 : 1), t.height = Math.max(Po(r + a, s, !1) - t.y, 0 === a ? 0 : 1), t) : t } } function Po(t, e, n) { if (!e) return t; var i = Xk(2 * t); return (i + Xk(e)) % 2 === 0 ? i / 2 : (i + (n ? 1 : -1)) / 2 } function Oo(t) { return Ro(t), y(t.rich, Ro), t } function Ro(t) { if (t) { t.font = $k.makeFont(t); var e = t.align; "middle" === e && (e = "center"), t.align = null == e || Jk[e] ? e : "left"; var n = t.verticalAlign; "center" === n && (n = "middle"), t.verticalAlign = null == n || Qk[n] ? n : "top"; var i = t.padding; i && (t.padding = G(t.padding)) } } function zo(t, e) { return null == t || 0 >= e || "transparent" === t || "none" === t ? null : t.image || t.colorStops ? "#000" : t } function Eo(t) { return null == t || "none" === t ? null : t.image || t.colorStops ? "#000" : t } function No(t, e, n) { return "right" === e ? t - n[1] : "center" === e ? t + n[3] / 2 - n[1] / 2 : t + n[3] } function Bo(t) { var e = t.text; return null != e && (e += ""), e } function Vo(t) { return !!(t.backgroundColor || t.borderWidth && t.borderColor) } function Fo(t) { return null != t && "none" !== t } function Go(t) { if ("string" != typeof t) return t; var e = yP.get(t); return e || (e = un(t, -.1), yP.put(t, e)), e } function Ho(t, e, n) { t.onHoverStateChange && (t.hoverState || 0) !== n && t.onHoverStateChange(e), t.hoverState = n } function Wo(t) { Ho(t, "emphasis", aP) } function Xo(t) { t.hoverState === aP && Ho(t, "normal", rP) } function Yo(t) { Ho(t, "blur", oP) } function Zo(t) { t.hoverState === oP && Ho(t, "normal", rP) } function Uo(t) { t.selected = !0 } function jo(t) { t.selected = !1 } function qo(t, e, n) { e(t, n) } function Ko(t, e, n) { qo(t, e, n), t.isGroup && t.traverse(function (t) { qo(t, e, n) }) } function $o(t, e) { switch (e) { case"emphasis": t.hoverState = aP; break; case"normal": t.hoverState = rP; break; case"blur": t.hoverState = oP; break; case"select": t.selected = !0 } } function Jo(t, e, n, i) { for (var r = t.style, o = {}, a = 0; a < e.length; a++) { var s = e[a], l = r[s]; o[s] = null == l ? i && i[s] : l } for (var a = 0; a < t.animators.length; a++) { var u = t.animators[a]; u.__fromStateTransition && u.__fromStateTransition.indexOf(n) < 0 && "style" === u.targetName && u.saveFinalToTarget(o, e) } return o } function Qo(t, e, n, i) { var r = n && p(n, "select") >= 0, o = !1; if (t instanceof Bk) { var a = iP(t), s = r ? a.selectFill || a.normalFill : a.normalFill, l = r ? a.selectStroke || a.normalStroke : a.normalStroke; if (Fo(s) || Fo(l)) { i = i || {}; var u = i.style || {}; !Fo(u.fill) && Fo(s) ? (o = !0, i = h({}, i), u = h({}, u), u.fill = Go(s)) : !Fo(u.stroke) && Fo(l) && (o || (i = h({}, i), u = h({}, u)), u.stroke = Go(l)), i.style = u } } if (i && null == i.z2) { o || (i = h({}, i)); var c = t.z2EmphasisLift; i.z2 = t.z2 + (null != c ? c : uP) } return i } function ta(t, e, n) { if (n && null == n.z2) { n = h({}, n); var i = t.z2SelectLift; n.z2 = t.z2 + (null != i ? i : hP) } return n } function ea(t, e, n) { var i = p(t.currentStates, e) >= 0, r = t.style.opacity, o = i ? null : Jo(t, ["opacity"], e, {opacity: 1}); n = n || {}; var a = n.style || {}; return null == a.opacity && (n = h({}, n), a = h({opacity: i ? r : .1 * o.opacity}, a), n.style = a), n } function na(t, e) { var n = this.states[t]; if (this.style) { if ("emphasis" === t) return Qo(this, t, e, n); if ("blur" === t) return ea(this, t, n); if ("select" === t) return ta(this, t, n) } return n } function ia(t) { t.stateProxy = na; var e = t.getTextContent(), n = t.getTextGuideLine(); e && (e.stateProxy = na), n && (n.stateProxy = na) } function ra(t, e) { !pa(t, e) && !t.__highByOuter && Ko(t, Wo) } function oa(t, e) { !pa(t, e) && !t.__highByOuter && Ko(t, Xo) } function aa(t, e) { t.__highByOuter |= 1 << (e || 0), Ko(t, Wo) } function sa(t, e) { !(t.__highByOuter &= ~(1 << (e || 0))) && Ko(t, Xo) } function la(t) { Ko(t, Yo) } function ua(t) { Ko(t, Zo) } function ha(t) { Ko(t, Uo) } function ca(t) { Ko(t, jo) } function pa(t, e) { return t.__highDownSilentOnTouch && e.zrByTouch } function da(t) { var e = t.getModel(); e.eachComponent(function (e, n) { var i = "series" === e ? t.getViewOfSeriesModel(n) : t.getViewOfComponentModel(n); i.group.traverse(function (t) { Zo(t) }) }) } function fa(t, e, n, i) { function r(t, e) { for (var n = 0; n < e.length; n++) { var i = t.getItemGraphicEl(e[n]); i && ua(i) } } var o = i.getModel(); if (n = n || "coordinateSystem", null != t && e && "none" !== e) { var a = o.getSeriesByIndex(t), s = a.coordinateSystem; s && s.master && (s = s.master); var l = []; o.eachSeries(function (t) { var o = a === t, u = t.coordinateSystem; u && u.master && (u = u.master); var h = u && s ? u === s : o; if (!("series" === n && !o || "coordinateSystem" === n && !h || "series" === e && o)) { var c = i.getViewOfSeriesModel(t); if (c.group.traverse(function (t) { Yo(t) }), g(e)) r(t.getData(), e); else if (D(e)) for (var p = b(e), d = 0; d < p.length; d++) r(t.getData(p[d]), e[p[d]]); l.push(t) } }), o.eachComponent(function (t, e) { if ("series" !== t) { var n = i.getViewOfComponentModel(e); n && n.blurSeries && n.blurSeries(l, o) } }) } } function ga(t, e, n) { if (null != t && null != e) { var i = n.getModel().getComponent(t, e); if (i) { var r = n.getViewOfComponentModel(i); r && r.focusBlurEnabled && r.group.traverse(function (t) { Yo(t) }) } } } function ya(t, e, n) { var i = t.seriesIndex, r = t.getData(e.dataType), o = lr(r, e); o = (M(o) ? o[0] : o) || 0; var a = r.getItemGraphicEl(o); if (!a) for (var s = r.count(), l = 0; !a && s > l;) a = r.getItemGraphicEl(l++); if (a) { var u = tP(a); fa(i, u.focus, u.blurScope, n) } else { var h = t.get(["emphasis", "focus"]), c = t.get(["emphasis", "blurScope"]); null != h && fa(i, h, c, n) } } function va(t, e, n, i) { var r = {focusSelf: !1, dispatchers: null}; if (null == t || "series" === t || null == e || null == n) return r; var o = i.getModel().getComponent(t, e); if (!o) return r; var a = i.getViewOfComponentModel(o); if (!a || !a.findHighDownDispatchers) return r; for (var s, l = a.findHighDownDispatchers(n), u = 0; u < l.length; u++) if ("self" === tP(l[u]).focus) { s = !0; break } return {focusSelf: s, dispatchers: l} } function ma(t, e, n) { var i = tP(t), r = va(i.componentMainType, i.componentIndex, i.componentHighDownName, n), o = r.dispatchers, a = r.focusSelf; o ? (a && ga(i.componentMainType, i.componentIndex, n), y(o, function (t) { return ra(t, e) })) : (fa(i.seriesIndex, i.focus, i.blurScope, n), "self" === i.focus && ga(i.componentMainType, i.componentIndex, n), ra(t, e)) } function xa(t, e, n) { da(n); var i = tP(t), r = va(i.componentMainType, i.componentIndex, i.componentHighDownName, n).dispatchers; r ? y(r, function (t) { return oa(t, e) }) : oa(t, e) } function _a(t, e) { if (La(e)) { var n = e.dataType, i = t.getData(n), r = lr(i, e); M(r) || (r = [r]), t[e.type === gP ? "toggleSelect" : e.type === dP ? "select" : "unselect"](r, n) } } function ba(t) { var e = t.getAllData(); y(e, function (e) { var n = e.data, i = e.type; n.eachItemGraphicEl(function (e, n) { t.isSelected(n, i) ? ha(e) : ca(e) }) }) } function wa(t) { var e = []; return t.eachSeries(function (t) { var n = t.getAllData(); y(n, function (n) { var i = (n.data, n.type), r = t.getSelectedDataIndices(); if (r.length > 0) { var o = {dataIndex: r, seriesIndex: t.seriesIndex}; null != i && (o.dataType = i), e.push(o) } }) }), e } function Sa(t, e, n) { Ta(t, !0), Ko(t, ia), Ma(t, e, n) } function Ma(t, e, n) { var i = tP(t); null != e ? (i.focus = e, i.blurScope = n) : i.focus && (i.focus = null) } function Ia(t, e, n, i) { n = n || "itemStyle"; for (var r = 0; r < vP.length; r++) { var o = vP[r], a = e.getModel([o, n]), s = t.ensureState(o); s.style = i ? i(a) : a[mP[n]]() } } function Ta(t, e) { var n = e === !1, i = t; t.highDownSilentOnTouch && (i.__highDownSilentOnTouch = t.highDownSilentOnTouch), (!n || i.__highDownDispatcher) && (i.__highByOuter = i.__highByOuter || 0, i.__highDownDispatcher = !n) } function Ca(t) { return !(!t || !t.__highDownDispatcher) } function Aa(t, e, n) { var i = tP(t); i.componentMainType = e.mainType, i.componentIndex = e.componentIndex, i.componentHighDownName = n } function Da(t) { var e = nP[t]; return null == e && 32 >= eP && (e = nP[t] = eP++), e } function La(t) { var e = t.type; return e === dP || e === fP || e === gP } function ka(t) { var e = t.type; return e === cP || e === pP } function Pa(t) { var e = iP(t); e.normalFill = t.style.fill, e.normalStroke = t.style.stroke; var n = t.states.select || {}; e.selectFill = n.style && n.style.fill || null, e.selectStroke = n.style && n.style.stroke || null } function Oa(t, e) { var n, i, r, o, a, s, l = t.data, u = t.len(), h = xP.M, c = xP.C, p = xP.L, d = xP.R, f = xP.A, g = xP.Q; for (r = 0, o = 0; u > r;) { switch (n = l[r++], o = r, i = 0, n) { case h: i = 1; break; case p: i = 1; break; case c: i = 3; break; case g: i = 2; break; case f: var y = e[4], v = e[5], m = bP(e[0] * e[0] + e[1] * e[1]), x = bP(e[2] * e[2] + e[3] * e[3]), _ = wP(-e[1] / x, e[0] / m); l[r] *= m, l[r++] += y, l[r] *= x, l[r++] += v, l[r++] *= m, l[r++] *= x, l[r++] += _, l[r++] += _, r += 2, o = r; break; case d: s[0] = l[r++], s[1] = l[r++], ge(s, s, e), l[o++] = s[0], l[o++] = s[1], s[0] += l[r++], s[1] += l[r++], ge(s, s, e), l[o++] = s[0], l[o++] = s[1] } for (a = 0; i > a; a++) { var b = _P[a]; b[0] = l[r++], b[1] = l[r++], ge(b, b, e), l[o++] = b[0], l[o++] = b[1] } } t.increaseVersion() } function Ra(t) { return Math.sqrt(t[0] * t[0] + t[1] * t[1]) } function za(t, e) { return (t[0] * e[0] + t[1] * e[1]) / (Ra(t) * Ra(e)) } function Ea(t, e) { return (t[0] * e[1] < t[1] * e[0] ? -1 : 1) * Math.acos(za(t, e)) } function Na(t, e, n, i, r, o, a, s, l, u, h) { var c = l * (TP / 180), p = IP(c) * (t - n) / 2 + MP(c) * (e - i) / 2, d = -1 * MP(c) * (t - n) / 2 + IP(c) * (e - i) / 2, f = p * p / (a * a) + d * d / (s * s); f > 1 && (a *= SP(f), s *= SP(f)); var g = (r === o ? -1 : 1) * SP((a * a * s * s - a * a * d * d - s * s * p * p) / (a * a * d * d + s * s * p * p)) || 0, y = g * a * d / s, v = g * -s * p / a, m = (t + n) / 2 + IP(c) * y - MP(c) * v, x = (e + i) / 2 + MP(c) * y + IP(c) * v, _ = Ea([1, 0], [(p - y) / a, (d - v) / s]), b = [(p - y) / a, (d - v) / s], w = [(-1 * p - y) / a, (-1 * d - v) / s], S = Ea(b, w); if (za(b, w) <= -1 && (S = TP), za(b, w) >= 1 && (S = 0), 0 > S) { var M = Math.round(S / TP * 1e6) / 1e6; S = 2 * TP + M % 2 * TP } h.addData(u, m, x, a, s, _, S, c, o) } function Ba(t) { var e = new Ck; if (!t) return e; var n, i = 0, r = 0, o = i, a = r, s = Ck.CMD, l = t.match(CP); if (!l) return e; for (var u = 0; u < l.length; u++) { for (var h = l[u], c = h.charAt(0), p = void 0, d = h.match(AP) || [], f = d.length, g = 0; f > g; g++) d[g] = parseFloat(d[g]); for (var y = 0; f > y;) { var v = void 0, m = void 0, x = void 0, _ = void 0, b = void 0, w = void 0, S = void 0, M = i, I = r, T = void 0, C = void 0; switch (c) { case"l": i += d[y++], r += d[y++], p = s.L, e.addData(p, i, r); break; case"L": i = d[y++], r = d[y++], p = s.L, e.addData(p, i, r); break; case"m": i += d[y++], r += d[y++], p = s.M, e.addData(p, i, r), o = i, a = r, c = "l"; break; case"M": i = d[y++], r = d[y++], p = s.M, e.addData(p, i, r), o = i, a = r, c = "L"; break; case"h": i += d[y++], p = s.L, e.addData(p, i, r); break; case"H": i = d[y++], p = s.L, e.addData(p, i, r); break; case"v": r += d[y++], p = s.L, e.addData(p, i, r); break; case"V": r = d[y++], p = s.L, e.addData(p, i, r); break; case"C": p = s.C, e.addData(p, d[y++], d[y++], d[y++], d[y++], d[y++], d[y++]), i = d[y - 2], r = d[y - 1]; break; case"c": p = s.C, e.addData(p, d[y++] + i, d[y++] + r, d[y++] + i, d[y++] + r, d[y++] + i, d[y++] + r), i += d[y - 2], r += d[y - 1]; break; case"S": v = i, m = r, T = e.len(), C = e.data, n === s.C && (v += i - C[T - 4], m += r - C[T - 3]), p = s.C, M = d[y++], I = d[y++], i = d[y++], r = d[y++], e.addData(p, v, m, M, I, i, r); break; case"s": v = i, m = r, T = e.len(), C = e.data, n === s.C && (v += i - C[T - 4], m += r - C[T - 3]), p = s.C, M = i + d[y++], I = r + d[y++], i += d[y++], r += d[y++], e.addData(p, v, m, M, I, i, r); break; case"Q": M = d[y++], I = d[y++], i = d[y++], r = d[y++], p = s.Q, e.addData(p, M, I, i, r); break; case"q": M = d[y++] + i, I = d[y++] + r, i += d[y++], r += d[y++], p = s.Q, e.addData(p, M, I, i, r); break; case"T": v = i, m = r, T = e.len(), C = e.data, n === s.Q && (v += i - C[T - 4], m += r - C[T - 3]), i = d[y++], r = d[y++], p = s.Q, e.addData(p, v, m, i, r); break; case"t": v = i, m = r, T = e.len(), C = e.data, n === s.Q && (v += i - C[T - 4], m += r - C[T - 3]), i += d[y++], r += d[y++], p = s.Q, e.addData(p, v, m, i, r); break; case"A": x = d[y++], _ = d[y++], b = d[y++], w = d[y++], S = d[y++], M = i, I = r, i = d[y++], r = d[y++], p = s.A, Na(M, I, i, r, w, S, x, _, b, p, e); break; case"a": x = d[y++], _ = d[y++], b = d[y++], w = d[y++], S = d[y++], M = i, I = r, i += d[y++], r += d[y++], p = s.A, Na(M, I, i, r, w, S, x, _, b, p, e) } } ("z" === c || "Z" === c) && (p = s.Z, e.addData(p), i = o, r = a), n = p } return e.toStatic(), e } function Va(t) { return null != t.setData } function Fa(t, e) { var n = Ba(t), i = h({}, e); return i.buildPath = function (t) { if (Va(t)) { t.setData(n.data); var e = t.getContext(); e && t.rebuildPath(e, 1) } else { var e = t; n.rebuildPath(e, 1) } }, i.applyTransform = function (t) { Oa(n, t), this.dirtyShape() }, i } function Ga(t, e) { return new DP(Fa(t, e)) } function Ha(t, n) { var i = Fa(t, n), r = function (t) { function n(e) { var n = t.call(this, e) || this; return n.applyTransform = i.applyTransform, n.buildPath = i.buildPath, n } return e(n, t), n }(DP); return r } function Wa(t, e) { for (var n = [], i = t.length, r = 0; i > r; r++) { var o = t[r]; o.path || o.createPathProxy(), o.shapeChanged() && o.buildPath(o.path, o.shape, !0), n.push(o.path) } var a = new Bk(e); return a.createPathProxy(), a.buildPath = function (t) { if (Va(t)) { t.appendPath(n); var e = t.getContext(); e && t.rebuildPath(e, 1) } }, a } function Xa(t, e, n, i, r, o, a, s) { var l = n - t, u = i - e, h = a - r, c = s - o, p = c * l - h * u; return XP > p * p ? void 0 : (p = (h * (e - o) - c * (t - r)) / p, [t + p * l, e + p * u]) } function Ya(t, e, n, i, r, o, a) { var s = t - n, l = e - i, u = (a ? o : -o) / GP(s * s + l * l), h = u * l, c = -u * s, p = t + h, d = e + c, f = n + h, g = i + c, y = (p + f) / 2, v = (d + g) / 2, m = f - p, x = g - d, _ = m * m + x * x, b = r - o, w = p * g - f * d, S = (0 > x ? -1 : 1) * GP(HP(0, b * b * _ - w * w)), M = (w * x - m * S) / _, I = (-w * m - x * S) / _, T = (w * x + m * S) / _, C = (-w * m + x * S) / _, A = M - y, D = I - v, L = T - y, k = C - v; return A * A + D * D > L * L + k * k && (M = T, I = C), { cx: M, cy: I, x01: -h, y01: -c, x11: M * (r / b - 1), y11: I * (r / b - 1) } } function Za(t, e) { var n = HP(e.r, 0), i = HP(e.r0 || 0, 0), r = n > 0, o = i > 0; if (r || o) { if (r || (n = i, i = 0), i > n) { var a = n; n = i, i = a } var s, l = !!e.clockwise, u = e.startAngle, h = e.endAngle; if (u === h) s = 0; else { var c = [u, h]; po(c, !l), s = FP(c[0] - c[1]) } var p = e.cx, d = e.cy, f = e.cornerRadius || 0, g = e.innerCornerRadius || 0; if (n > XP) if (s > zP - XP) t.moveTo(p + n * NP(u), d + n * EP(u)), t.arc(p, d, n, u, h, !l), i > XP && (t.moveTo(p + i * NP(h), d + i * EP(h)), t.arc(p, d, i, h, u, l)); else { var y = FP(n - i) / 2, v = WP(y, f), m = WP(y, g), x = m, _ = v, b = n * NP(u), w = n * EP(u), S = i * NP(h), M = i * EP(h), I = void 0, T = void 0, C = void 0, A = void 0; if ((v > XP || m > XP) && (I = n * NP(h), T = n * EP(h), C = i * NP(u), A = i * EP(u), RP > s)) { var D = Xa(b, w, C, A, I, T, S, M); if (D) { var L = b - D[0], k = w - D[1], P = I - D[0], O = T - D[1], R = 1 / EP(BP((L * P + k * O) / (GP(L * L + k * k) * GP(P * P + O * O))) / 2), z = GP(D[0] * D[0] + D[1] * D[1]); x = WP(m, (i - z) / (R - 1)), _ = WP(v, (n - z) / (R + 1)) } } if (s > XP) if (_ > XP) { var E = Ya(C, A, b, w, n, _, l), N = Ya(I, T, S, M, n, _, l); t.moveTo(p + E.cx + E.x01, d + E.cy + E.y01), v > _ ? t.arc(p + E.cx, d + E.cy, _, VP(E.y01, E.x01), VP(N.y01, N.x01), !l) : (t.arc(p + E.cx, d + E.cy, _, VP(E.y01, E.x01), VP(E.y11, E.x11), !l), t.arc(p, d, n, VP(E.cy + E.y11, E.cx + E.x11), VP(N.cy + N.y11, N.cx + N.x11), !l), t.arc(p + N.cx, d + N.cy, _, VP(N.y11, N.x11), VP(N.y01, N.x01), !l)) } else t.moveTo(p + b, d + w), t.arc(p, d, n, u, h, !l); else t.moveTo(p + b, d + w); if (i > XP && s > XP) if (x > XP) { var E = Ya(S, M, I, T, i, -x, l), N = Ya(b, w, C, A, i, -x, l); t.lineTo(p + E.cx + E.x01, d + E.cy + E.y01), m > x ? t.arc(p + E.cx, d + E.cy, x, VP(E.y01, E.x01), VP(N.y01, N.x01), !l) : (t.arc(p + E.cx, d + E.cy, x, VP(E.y01, E.x01), VP(E.y11, E.x11), !l), t.arc(p, d, i, VP(E.cy + E.y11, E.cx + E.x11), VP(N.cy + N.y11, N.cx + N.x11), l), t.arc(p + N.cx, d + N.cy, x, VP(N.y11, N.x11), VP(N.y01, N.x01), !l)) } else t.lineTo(p + S, d + M), t.arc(p, d, i, h, u, l); else t.lineTo(p + S, d + M) } else t.moveTo(p, d); t.closePath() } } function Ua(t, e, n, i, r, o, a) { var s = .5 * (n - t), l = .5 * (i - e); return (2 * (e - n) + s + l) * a + (-3 * (e - n) - 2 * s - l) * o + s * r + e } function ja(t, e) { for (var n = t.length, i = [], r = 0, o = 1; n > o; o++) r += ce(t[o - 1], t[o]); var a = r / 2; a = n > a ? n : a; for (var o = 0; a > o; o++) { var s = o / (a - 1) * (e ? n : n - 1), l = Math.floor(s), u = s - l, h = void 0, c = t[l % n], p = void 0, d = void 0; e ? (h = t[(l - 1 + n) % n], p = t[(l + 1) % n], d = t[(l + 2) % n]) : (h = t[0 === l ? l : l - 1], p = t[l > n - 2 ? n - 1 : l + 1], d = t[l > n - 3 ? n - 1 : l + 2]); var f = u * u, g = u * f; i.push([Ua(h[0], c[0], p[0], d[0], u, f, g), Ua(h[1], c[1], p[1], d[1], u, f, g)]) } return i } function qa(t, e, n, i) { var r, o, a, s, l = [], u = [], h = [], c = []; if (i) { a = [1 / 0, 1 / 0], s = [-1 / 0, -1 / 0]; for (var p = 0, d = t.length; d > p; p++) ye(a, a, t[p]), ve(s, s, t[p]); ye(a, a, i[0]), ve(s, s, i[1]) } for (var p = 0, d = t.length; d > p; p++) { var f = t[p]; if (n) r = t[p ? p - 1 : d - 1], o = t[(p + 1) % d]; else { if (0 === p || p === d - 1) { l.push(Q(t[p])); continue } r = t[p - 1], o = t[p + 1] } ie(u, o, r), ue(u, u, e); var g = ce(f, r), y = ce(f, o), v = g + y; 0 !== v && (g /= v, y /= v), ue(h, u, -g), ue(c, u, y); var m = ee([], f, h), x = ee([], f, c); i && (ve(m, m, a), ye(m, m, s), ve(x, x, a), ye(x, x, s)), l.push(m), l.push(x) } return n && l.push(l.shift()), l } function Ka(t, e, n) { var i = e.smooth, r = e.points; if (r && r.length >= 2) { if (i && "spline" !== i) { var o = qa(r, i, n, e.smoothConstraint); t.moveTo(r[0][0], r[0][1]); for (var a = r.length, s = 0; (n ? a : a - 1) > s; s++) { var l = o[2 * s], u = o[2 * s + 1], h = r[(s + 1) % a]; t.bezierCurveTo(l[0], l[1], u[0], u[1], h[0], h[1]) } } else { "spline" === i && (r = ja(r, n)), t.moveTo(r[0][0], r[0][1]); for (var s = 1, c = r.length; c > s; s++) t.lineTo(r[s][0], r[s][1]) } n && t.closePath() } } function $a(t, e, n) { var i = t.cpx2, r = t.cpy2; return null === i || null === r ? [(n ? Ur : Zr)(t.x1, t.cpx1, t.cpx2, t.x2, e), (n ? Ur : Zr)(t.y1, t.cpy1, t.cpy2, t.y2, e)] : [(n ? to : Qr)(t.x1, t.cpx1, t.x2, e), (n ? to : Qr)(t.y1, t.cpy1, t.y2, e)] } function Ja(t) { return Bk.extend(t) } function Qa(t, e) { return bO(t, e) } function ts(t, e) { _O[t] = e } function es(t) { return _O.hasOwnProperty(t) ? _O[t] : void 0 } function ns(t, e, n, i) { var r = Ga(t, e); return n && ("center" === i && (n = rs(n, r.getBoundingRect())), os(r, n)), r } function is(t, e, n) { var i = new Wk({ style: {image: t, x: e.x, y: e.y, width: e.width, height: e.height}, onload: function (t) { if ("center" === n) { var r = {width: t.width, height: t.height}; i.setStyle(rs(e, r)) } } }); return i } function rs(t, e) { var n, i = e.width / e.height, r = t.height * i; r <= t.width ? n = t.height : (r = t.width, n = r / i); var o = t.x + t.width / 2, a = t.y + t.height / 2; return {x: o - r / 2, y: a - n / 2, width: r, height: n} } function os(t, e) { if (t.applyTransform) { var n = t.getBoundingRect(), i = n.calculateTransform(e); t.applyTransform(i) } } function as(t) { return Lo(t.shape, t.shape, t.style), t } function ss(t) { return ko(t.shape, t.shape, t.style), t } function ls(t, e, n, i, r, o, a) { var s, l = !1; "function" == typeof r ? (a = o, o = r, r = null) : D(r) && (o = r.cb, a = r.during, l = r.isFrom, s = r.removeOpt, r = r.dataIndex); var u, h = "update" === t, c = "remove" === t; if (i && i.ecModel) { var p = i.ecModel.getUpdatePayload(); u = p && p.animation } var d = i && i.isAnimationEnabled(); if (c || e.stopAnimation("remove"), d) { var f = void 0, g = void 0, y = void 0; u ? (f = u.duration || 0, g = u.easing || "cubicOut", y = u.delay || 0) : c ? (s = s || {}, f = B(s.duration, 200), g = B(s.easing, "cubicOut"), y = 0) : (f = i.getShallow(h ? "animationDurationUpdate" : "animationDuration"), g = i.getShallow(h ? "animationEasingUpdate" : "animationEasing"), y = i.getShallow(h ? "animationDelayUpdate" : "animationDelay")), "function" == typeof y && (y = y(r, i.getAnimationDelayParams ? i.getAnimationDelayParams(e, r) : null)), "function" == typeof f && (f = f(r)), f > 0 ? l ? e.animateFrom(n, { duration: f, delay: y || 0, easing: g, done: o, force: !!o || !!a, scope: t, during: a }) : e.animateTo(n, { duration: f, delay: y || 0, easing: g, done: o, force: !!o || !!a, setToFinal: !0, scope: t, during: a }) : (e.stopAnimation(), !l && e.attr(n), o && o()) } else e.stopAnimation(), !l && e.attr(n), a && a(1), o && o() } function us(t, e, n, i, r, o) { ls("update", t, e, n, i, r, o) } function hs(t, e, n, i, r, o) { ls("init", t, e, n, i, r, o) } function cs(t, e, n, i, r, o) { fs(t) || ls("remove", t, e, n, i, r, o) } function ps(t, e, n, i) { t.removeTextContent(), t.removeTextGuideLine(), cs(t, {style: {opacity: 0}}, e, n, i) } function ds(t, e, n) { function i() { t.parent && t.parent.remove(t) } t.isGroup ? t.traverse(function (t) { t.isGroup || ps(t, e, n, i) }) : ps(t, e, n, i) } function fs(t) { if (!t.__zr) return !0; for (var e = 0; e < t.animators.length; e++) { var n = t.animators[e]; if ("remove" === n.scope) return !0 } return !1 } function gs(t, e) { for (var n = Hn([]); t && t !== e;) Xn(n, t.getLocalTransform(), n), t = t.parent; return n } function ys(t, e, n) { return e && !g(e) && (e = GD.getLocalTransform(e)), n && (e = jn([], e)), ge([], t, e) } function vs(t, e, n) { var i = 0 === e[4] || 0 === e[5] || 0 === e[0] ? 1 : Math.abs(2 * e[4] / e[0]), r = 0 === e[4] || 0 === e[5] || 0 === e[2] ? 1 : Math.abs(2 * e[4] / e[2]), o = ["left" === t ? -i : "right" === t ? i : 0, "top" === t ? -r : "bottom" === t ? r : 0]; return o = ys(o, e, n), Math.abs(o[0]) > Math.abs(o[1]) ? o[0] > 0 ? "right" : "left" : o[1] > 0 ? "bottom" : "top" } function ms(t) { return !t.isGroup } function xs(t) { return null != t.shape } function _s(t, e, n) { function i(t) { var e = {}; return t.traverse(function (t) { ms(t) && t.anid && (e[t.anid] = t) }), e } function r(t) { var e = {x: t.x, y: t.y, rotation: t.rotation}; return xs(t) && (e.shape = h({}, t.shape)), e } if (t && e) { var o = i(t); e.traverse(function (t) { if (ms(t) && t.anid) { var e = o[t.anid]; if (e) { var i = r(t); t.attr(r(e)), us(t, i, n, tP(t).dataIndex) } } }) } } function bs(t, e) { return v(t, function (t) { var n = t[0]; n = mO(n, e.x), n = xO(n, e.x + e.width); var i = t[1]; return i = mO(i, e.y), i = xO(i, e.y + e.height), [n, i] }) } function ws(t, e) { var n = mO(t.x, e.x), i = xO(t.x + t.width, e.x + e.width), r = mO(t.y, e.y), o = xO(t.y + t.height, e.y + e.height); return i >= n && o >= r ? {x: n, y: r, width: i - n, height: o - r} : void 0 } function Ss(t, e, n) { var i = h({rectHover: !0}, e), r = i.style = {strokeNoScale: !0}; return n = n || { x: -1, y: -1, width: 2, height: 2 }, t ? 0 === t.indexOf("image://") ? (r.image = t.slice(8), c(r, n), new Wk(i)) : ns(t.replace("path://", ""), i, n, "center") : void 0 } function Ms(t, e, n, i, r) { for (var o = 0, a = r[r.length - 1]; o < r.length; o++) { var s = r[o]; if (Is(t, e, n, i, s[0], s[1], a[0], a[1])) return !0; a = s } } function Is(t, e, n, i, r, o, a, s) { var l = n - t, u = i - e, h = a - r, c = s - o, p = Ts(h, c, l, u); if (Cs(p)) return !1; var d = t - r, f = e - o, g = Ts(d, f, l, u) / p; if (0 > g || g > 1) return !1; var y = Ts(d, f, h, c) / p; return 0 > y || y > 1 ? !1 : !0 } function Ts(t, e, n, i) { return t * i - n * e } function Cs(t) { return 1e-6 >= t && t >= -1e-6 } function As(t) { var e = t.itemTooltipOption, n = t.componentModel, i = t.itemName, r = T(e) ? {formatter: e} : e, o = n.mainType, a = n.componentIndex, s = {componentType: o, name: i, $vars: ["name"]}; s[o + "Index"] = a; var l = t.formatterParamsExtra; l && y(b(l), function (t) { q(s, t) || (s[t] = l[t], s.$vars.push(t)) }); var u = tP(t.el); u.componentMainType = o, u.componentIndex = a, u.tooltipConfig = { name: i, option: c({content: i, formatterParams: s}, r) } } function Ds(t, e) { for (var n = 0; n < sP.length; n++) { var i = sP[n], r = e[i], o = t.ensureState(i); o.style = o.style || {}, o.style.text = r } var a = t.currentStates.slice(); t.clearStates(!0), t.setStyle({text: e.normal}), t.useStates(a, !0) } function Ls(t, e, n) { var i, r = t.labelFetcher, o = t.labelDataIndex, a = t.labelDimIndex, s = e.normal; r && (i = r.getFormattedLabel(o, "normal", null, a, s && s.get("formatter"), null != n ? {interpolatedValue: n} : null)), null == i && (i = I(t.defaultText) ? t.defaultText(o, t, n) : t.defaultText); for (var l = {normal: i}, u = 0; u < sP.length; u++) { var h = sP[u], c = e[h]; l[h] = B(r ? r.getFormattedLabel(o, h, null, a, c && c.get("formatter")) : null, i) } return l } function ks(t, e, n, i) { n = n || IO; for (var r = t instanceof $k, o = !1, a = 0; a < lP.length; a++) { var s = e[lP[a]]; if (s && s.getShallow("show")) { o = !0; break } } var l = r ? t : t.getTextContent(); if (o) { r || (l || (l = new $k, t.setTextContent(l)), t.stateProxy && (l.stateProxy = t.stateProxy)); var u = Ls(n, e), h = e.normal, c = !!h.getShallow("show"), p = Os(h, i && i.normal, n, !1, !r); p.text = u.normal, r || t.setTextConfig(Rs(h, n, !1)); for (var a = 0; a < sP.length; a++) { var d = sP[a], s = e[d]; if (s) { var f = l.ensureState(d), g = !!B(s.getShallow("show"), c); if (g !== c && (f.ignore = !g), f.style = Os(s, i && i[d], n, !0, !r), f.style.text = u[d], !r) { var y = t.ensureState(d); y.textConfig = Rs(s, n, !0) } } } l.silent = !!h.getShallow("silent"), null != l.style.x && (p.x = l.style.x), null != l.style.y && (p.y = l.style.y), l.ignore = !c, l.useStyle(p), l.dirty(), n.enableTextSetter && (DO(l).setLabelText = function (t) { var i = Ls(n, e, t); Ds(l, i) }) } else l && (l.ignore = !0); t.dirty() } function Ps(t, e) { e = e || "label"; for (var n = {normal: t.getModel(e)}, i = 0; i < sP.length; i++) { var r = sP[i]; n[r] = t.getModel([r, e]) } return n } function Os(t, e, n, i, r) { var o = {}; return zs(o, t, n, i, r), e && h(o, e), o } function Rs(t, e, n) { e = e || {}; var i, r = {}, o = t.getShallow("rotate"), a = B(t.getShallow("distance"), n ? null : 5), s = t.getShallow("offset"); return i = t.getShallow("position") || (n ? null : "inside"), "outside" === i && (i = e.defaultOutsidePosition || "top"), null != i && (r.position = i), null != s && (r.offset = s), null != o && (o *= Math.PI / 180, r.rotation = o), null != a && (r.distance = a), r.outsideFill = "inherit" === t.get("color") ? e.inheritColor || null : "auto", r } function zs(t, e, n, i, r) { n = n || IO; var o, a = e.ecModel, s = a && a.option.textStyle, l = Es(e); if (l) { o = {}; for (var u in l) if (l.hasOwnProperty(u)) { var h = e.getModel(["rich", u]); Ns(o[u] = {}, h, s, n, i, r, !1, !0) } } o && (t.rich = o); var c = e.get("overflow"); c && (t.overflow = c); var p = e.get("minMargin"); null != p && (t.margin = p), Ns(t, e, s, n, i, r, !0, !1) } function Es(t) { for (var e; t && t !== t.ecModel;) { var n = (t.option || IO).rich; if (n) { e = e || {}; for (var i = b(n), r = 0; r < i.length; r++) { var o = i[r]; e[o] = 1 } } t = t.parentModel } return e } function Ns(t, e, n, i, r, o, a, s) { n = !r && n || IO; var l = i && i.inheritColor, u = e.getShallow("color"), h = e.getShallow("textBorderColor"), c = B(e.getShallow("opacity"), n.opacity); ("inherit" === u || "auto" === u) && (u = l ? l : null), ("inherit" === h || "auto" === h) && (h = l ? l : null), o || (u = u || n.color, h = h || n.textBorderColor), null != u && (t.fill = u), null != h && (t.stroke = h); var p = B(e.getShallow("textBorderWidth"), n.textBorderWidth); null != p && (t.lineWidth = p); var d = B(e.getShallow("textBorderType"), n.textBorderType); null != d && (t.lineDash = d); var f = B(e.getShallow("textBorderDashOffset"), n.textBorderDashOffset); null != f && (t.lineDashOffset = f), r || null != c || s || (c = i && i.defaultOpacity), null != c && (t.opacity = c), r || o || null == t.fill && i.inheritColor && (t.fill = i.inheritColor); for (var g = 0; g < TO.length; g++) { var y = TO[g], v = B(e.getShallow(y), n[y]); null != v && (t[y] = v) } for (var g = 0; g < CO.length; g++) { var y = CO[g], v = e.getShallow(y); null != v && (t[y] = v) } if (null == t.verticalAlign) { var m = e.getShallow("baseline"); null != m && (t.verticalAlign = m) } if (!a || !i.disableBox) { for (var g = 0; g < AO.length; g++) { var y = AO[g], v = e.getShallow(y); null != v && (t[y] = v) } var x = e.getShallow("borderType"); null != x && (t.borderDash = x), "auto" !== t.backgroundColor && "inherit" !== t.backgroundColor || !l || (t.backgroundColor = l), "auto" !== t.borderColor && "inherit" !== t.borderColor || !l || (t.borderColor = l) } } function Bs(t, e) { var n = e && e.getModel("textStyle"); return W([t.fontStyle || n && n.getShallow("fontStyle") || "", t.fontWeight || n && n.getShallow("fontWeight") || "", (t.fontSize || n && n.getShallow("fontSize") || 12) + "px", t.fontFamily || n && n.getShallow("fontFamily") || "sans-serif"].join(" ")) } function Vs(t, e, n, i) { if (t) { var r = DO(t); r.prevValue = r.value, r.value = n; var o = e.normal; r.valueAnimation = o.get("valueAnimation"), r.valueAnimation && (r.precision = o.get("precision"), r.defaultInterpolatedText = i, r.statesModels = e) } } function Fs(t, e, n, i, r) { function o(i) { var o = vr(n, a.precision, l, u, i); a.interpolatedValue = 1 === i ? null : o; var h = Ls({labelDataIndex: e, labelFetcher: r, defaultText: s ? s(o) : o + ""}, a.statesModels, o); Ds(t, h) } var a = DO(t); if (a.valueAnimation) { var s = a.defaultInterpolatedText, l = B(a.interpolatedValue, a.prevValue), u = a.value; (null == l ? hs : us)(t, {}, i, e, null, o) } } function Gs(t) { return [t || "", FO++].join("_") } function Hs(t) { var e = {}; t.registerSubTypeDefaulter = function (t, n) { var i = mr(t); e[i.main] = n }, t.determineSubType = function (n, i) { var r = i.type; if (!r) { var o = mr(n).main; t.hasSubTypes(n) && e[o] && (r = e[o](i)) } return r } } function Ws(t, e) { function n(t) { var n = {}, o = []; return y(t, function (a) { var s = i(n, a), l = s.originalDeps = e(a), u = r(l, t); s.entryCount = u.length, 0 === s.entryCount && o.push(a), y(u, function (t) { p(s.predecessor, t) < 0 && s.predecessor.push(t); var e = i(n, t); p(e.successor, t) < 0 && e.successor.push(a) }) }), {graph: n, noEntryList: o} } function i(t, e) { return t[e] || (t[e] = {predecessor: [], successor: []}), t[e] } function r(t, e) { var n = []; return y(t, function (t) { p(e, t) >= 0 && n.push(t) }), n } t.topologicalTravel = function (t, e, i, r) { function o(t) { l[t].entryCount--, 0 === l[t].entryCount && u.push(t) } function a(t) { h[t] = !0, o(t) } if (t.length) { var s = n(e), l = s.graph, u = s.noEntryList, h = {}; for (y(t, function (t) { h[t] = !0 }); u.length;) { var c = u.pop(), p = l[c], d = !!h[c]; d && (i.call(r, c, p.originalDeps.slice()), delete h[c]), y(p.successor, d ? a : o) } y(h, function () { var t = ""; throw new Error(t) }) } } } function Xs(t, e) { return l(l({}, t, !0), e, !0) } function Ys(t, e) { t = t.toUpperCase(), UO[t] = new VO(e), ZO[t] = e } function Zs(t) { if (T(t)) { var e = ZO[t.toUpperCase()] || {}; return t === WO || t === XO ? s(e) : l(s(e), s(ZO[YO]), !1) } return l(s(t), s(ZO[YO]), !1) } function Us(t) { return UO[t] } function js() { return UO[YO] } function qs(t, e) { return t += "", "0000".substr(0, e - t.length) + t } function Ks(t) { switch (t) { case"half-year": case"quarter": return "month"; case"week": case"half-week": return "day"; case"half-day": case"quarter-day": return "hour"; default: return t } } function $s(t) { return t === Ks(t) } function Js(t) { switch (t) { case"year": case"month": return "day"; case"millisecond": return "millisecond"; default: return "second" } } function Qs(t, e, n, i) { var r = Li(t), o = r[il(n)](), a = r[rl(n)]() + 1, s = Math.floor((a - 1) / 4) + 1, l = r[ol(n)](), u = r["get" + (n ? "UTC" : "") + "Day"](), h = r[al(n)](), c = (h - 1) % 12 + 1, p = r[sl(n)](), d = r[ll(n)](), f = r[ul(n)](), g = i instanceof VO ? i : Us(i || jO) || js(), y = g.getModel("time"), v = y.get("month"), m = y.get("monthAbbr"), x = y.get("dayOfWeek"), _ = y.get("dayOfWeekAbbr"); return (e || "").replace(/{yyyy}/g, o + "").replace(/{yy}/g, o % 100 + "").replace(/{Q}/g, s + "").replace(/{MMMM}/g, v[a - 1]).replace(/{MMM}/g, m[a - 1]).replace(/{MM}/g, qs(a, 2)).replace(/{M}/g, a + "").replace(/{dd}/g, qs(l, 2)).replace(/{d}/g, l + "").replace(/{eeee}/g, x[u]).replace(/{ee}/g, _[u]).replace(/{e}/g, u + "").replace(/{HH}/g, qs(h, 2)).replace(/{H}/g, h + "").replace(/{hh}/g, qs(c + "", 2)).replace(/{h}/g, c + "").replace(/{mm}/g, qs(p, 2)).replace(/{m}/g, p + "").replace(/{ss}/g, qs(d, 2)).replace(/{s}/g, d + "").replace(/{SSS}/g, qs(f, 3)).replace(/{S}/g, f + "") } function tl(t, e, n, i, r) { var o = null; if ("string" == typeof n) o = n; else if ("function" == typeof n) o = n(t.value, e, {level: t.level}); else { var a = h({}, tR); if (t.level > 0) for (var s = 0; s < iR.length; ++s) a[iR[s]] = "{primary|" + a[iR[s]] + "}"; var l = n ? n.inherit === !1 ? n : c(n, a) : a, u = el(t.value, r); if (l[u]) o = l[u]; else if (l.inherit) { for (var p = rR.indexOf(u), s = p - 1; s >= 0; --s) if (l[u]) { o = l[u]; break } o = o || a.none } if (M(o)) { var d = null == t.level ? 0 : t.level >= 0 ? t.level : o.length + t.level; d = Math.min(d, o.length - 1), o = o[d] } } return Qs(new Date(t.value), o, r, i) } function el(t, e) { var n = Li(t), i = n[rl(e)]() + 1, r = n[ol(e)](), o = n[al(e)](), a = n[sl(e)](), s = n[ll(e)](), l = n[ul(e)](), u = 0 === l, h = u && 0 === s, c = h && 0 === a, p = c && 0 === o, d = p && 1 === r, f = d && 1 === i; return f ? "year" : d ? "month" : p ? "day" : c ? "hour" : h ? "minute" : u ? "second" : "millisecond" } function nl(t, e, n) { var i = "number" == typeof t ? Li(t) : t; switch (e = e || el(t, n)) { case"year": return i[il(n)](); case"half-year": return i[rl(n)]() >= 6 ? 1 : 0; case"quarter": return Math.floor((i[rl(n)]() + 1) / 4); case"month": return i[rl(n)](); case"day": return i[ol(n)](); case"half-day": return i[al(n)]() / 24; case"hour": return i[al(n)](); case"minute": return i[sl(n)](); case"second": return i[ll(n)](); case"millisecond": return i[ul(n)]() } } function il(t) { return t ? "getUTCFullYear" : "getFullYear" } function rl(t) { return t ? "getUTCMonth" : "getMonth" } function ol(t) { return t ? "getUTCDate" : "getDate" } function al(t) { return t ? "getUTCHours" : "getHours" } function sl(t) { return t ? "getUTCMinutes" : "getMinutes" } function ll(t) { return t ? "getUTCSeconds" : "getSeconds" } function ul(t) { return t ? "getUTCSeconds" : "getSeconds" } function hl(t) { return t ? "setUTCFullYear" : "setFullYear" } function cl(t) { return t ? "setUTCMonth" : "setMonth" } function pl(t) { return t ? "setUTCDate" : "setDate" } function dl(t) { return t ? "setUTCHours" : "setHours" } function fl(t) { return t ? "setUTCMinutes" : "setMinutes" } function gl(t) { return t ? "setUTCSeconds" : "setSeconds" } function yl(t) { return t ? "setUTCSeconds" : "setSeconds" } function vl(t, e, n, i, r, o, a, s) { var l = new $k({ style: { text: t, font: e, align: n, verticalAlign: i, padding: r, rich: o, overflow: a ? "truncate" : null, lineHeight: s } }); return l.getBoundingRect() } function ml(t) { if (!Ni(t)) return T(t) ? t : "-"; var e = (t + "").split("."); return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (e.length > 1 ? "." + e[1] : "") } function xl(t, e) { return t = (t || "").toLowerCase().replace(/-(.)/g, function (t, e) { return e.toUpperCase() }), e && t && (t = t.charAt(0).toUpperCase() + t.slice(1)), t } function _l(t) { return null == t ? "" : (t + "").replace(aR, function (t, e) { return sR[e] }) } function bl(t, e, n) { function i(t) { return t && W(t) ? t : "-" } function r(t) { return !(null == t || isNaN(t) || !isFinite(t)) } var o = "{yyyy}-{MM}-{dd} {hh}:{mm}:{ss}", a = "time" === e, s = t instanceof Date; if (a || s) { var l = a ? Li(t) : t; if (!isNaN(+l)) return Qs(l, o, n); if (s) return "-" } if ("ordinal" === e) return C(t) ? i(t) : A(t) && r(t) ? t + "" : "-"; var u = Ei(t); return r(u) ? ml(u) : C(t) ? i(t) : "-" } function wl(t, e, n) { M(e) || (e = [e]); var i = e.length; if (!i) return ""; for (var r = e[0].$vars || [], o = 0; o < r.length; o++) { var a = lR[o]; t = t.replace(uR(a), uR(a, 0)) } for (var s = 0; i > s; s++) for (var l = 0; l < r.length; l++) { var u = e[s][r[l]]; t = t.replace(uR(lR[l], s), n ? _l(u) : u) } return t } function Sl(t, e, n) { return y(e, function (e, i) { t = t.replace("{" + i + "}", n ? _l(e) : e) }), t } function Ml(t, e) { var n = T(t) ? {color: t, extraCssText: e} : t || {}, i = n.color, r = n.type; e = n.extraCssText; var o = n.renderMode || "html"; if (!i) return ""; if ("html" === o) return "subItem" === r ? '' : ''; var a = n.markerId || "markerX"; return { renderMode: o, content: "{" + a + "|} ", style: "subItem" === r ? {width: 4, height: 4, borderRadius: 2, backgroundColor: i} : { width: 10, height: 10, borderRadius: 5, backgroundColor: i } } } function Il(t, e, n) { ("week" === t || "month" === t || "quarter" === t || "half-year" === t || "year" === t) && (t = "MM-dd\nyyyy"); var i = Li(e), r = n ? "UTC" : "", o = i["get" + r + "FullYear"](), a = i["get" + r + "Month"]() + 1, s = i["get" + r + "Date"](), l = i["get" + r + "Hours"](), u = i["get" + r + "Minutes"](), h = i["get" + r + "Seconds"](), c = i["get" + r + "Milliseconds"](); return t = t.replace("MM", qs(a, 2)).replace("M", a).replace("yyyy", o).replace("yy", o % 100 + "").replace("dd", qs(s, 2)).replace("d", s).replace("hh", qs(l, 2)).replace("h", l).replace("mm", qs(u, 2)).replace("m", u).replace("ss", qs(h, 2)).replace("s", h).replace("SSS", qs(c, 3)) } function Tl(t) { return t ? t.charAt(0).toUpperCase() + t.substr(1) : t } function Cl(t, e) { return e = e || "transparent", T(t) ? t : D(t) ? t.colorStops && (t.colorStops[0] || {}).color || e : e } function Al(t, e) { if ("_blank" === e || "blank" === e) { var n = window.open(); n.opener = null, n.location.href = t } else window.open(t, e) } function Dl(t, e, n, i, r) { var o = 0, a = 0; null == i && (i = 1 / 0), null == r && (r = 1 / 0); var s = 0; e.eachChild(function (l, u) { var h, c, p = l.getBoundingRect(), d = e.childAt(u + 1), f = d && d.getBoundingRect(); if ("horizontal" === t) { var g = p.width + (f ? -f.x + p.x : 0); h = o + g, h > i || l.newline ? (o = 0, h = g, a += s + n, s = p.height) : s = Math.max(s, p.height) } else { var y = p.height + (f ? -f.y + p.y : 0); c = a + y, c > r || l.newline ? (o += s + n, a = 0, c = y, s = p.width) : s = Math.max(s, p.width) } l.newline || (l.x = o, l.y = a, l.markRedraw(), "horizontal" === t ? o = h + n : a = c + n) }) } function Ll(t, e, n) { var i = e.width, r = e.height, o = _i(t.left, i), a = _i(t.top, r), s = _i(t.right, i), l = _i(t.bottom, r); return (isNaN(o) || isNaN(parseFloat(t.left))) && (o = 0), (isNaN(s) || isNaN(parseFloat(t.right))) && (s = i), (isNaN(a) || isNaN(parseFloat(t.top))) && (a = 0), (isNaN(l) || isNaN(parseFloat(t.bottom))) && (l = r), n = oR(n || 0), { width: Math.max(s - o - n[1] - n[3], 0), height: Math.max(l - a - n[0] - n[2], 0) } } function kl(t, e, n) { n = oR(n || 0); var i = e.width, r = e.height, o = _i(t.left, i), a = _i(t.top, r), s = _i(t.right, i), l = _i(t.bottom, r), u = _i(t.width, i), h = _i(t.height, r), c = n[2] + n[0], p = n[1] + n[3], d = t.aspect; switch (isNaN(u) && (u = i - s - p - o), isNaN(h) && (h = r - l - c - a), null != d && (isNaN(u) && isNaN(h) && (d > i / r ? u = .8 * i : h = .8 * r), isNaN(u) && (u = d * h), isNaN(h) && (h = u / d)), isNaN(o) && (o = i - s - u - p), isNaN(a) && (a = r - l - h - c), t.left || t.right) { case"center": o = i / 2 - u / 2 - n[3]; break; case"right": o = i - u - p } switch (t.top || t.bottom) { case"middle": case"center": a = r / 2 - h / 2 - n[0]; break; case"bottom": a = r - h - c } o = o || 0, a = a || 0, isNaN(u) && (u = i - p - o - (s || 0)), isNaN(h) && (h = r - c - a - (l || 0)); var f = new $D(o + n[3], a + n[0], u, h); return f.margin = n, f } function Pl(t, e, n, i, r) { var o = !r || !r.hv || r.hv[0], a = !r || !r.hv || r.hv[1], s = r && r.boundingMode || "all"; if (o || a) { var l; if ("raw" === s) l = "group" === t.type ? new $D(0, 0, +e.width || 0, +e.height || 0) : t.getBoundingRect(); else if (l = t.getBoundingRect(), t.needLocalTransform()) { var u = t.getLocalTransform(); l = l.clone(), l.applyTransform(u) } var h = kl(c({width: l.width, height: l.height}, e), n, i), p = o ? h.x - l.x : 0, d = a ? h.y - l.y : 0; "raw" === s ? (t.x = p, t.y = d) : (t.x += p, t.y += d), t.markRedraw() } } function Ol(t, e) { return null != t[pR[e][0]] || null != t[pR[e][1]] && null != t[pR[e][2]] } function Rl(t) { var e = t.layoutMode || t.constructor.layoutMode; return D(e) ? e : e ? {type: e} : null } function zl(t, e, n) { function i(n, i) { var a = {}, l = 0, u = {}, h = 0, c = 2; if (hR(n, function (e) { u[e] = t[e] }), hR(n, function (t) { r(e, t) && (a[t] = u[t] = e[t]), o(a, t) && l++, o(u, t) && h++ }), s[i]) return o(e, n[1]) ? u[n[2]] = null : o(e, n[2]) && (u[n[1]] = null), u; if (h !== c && l) { if (l >= c) return a; for (var p = 0; p < n.length; p++) { var d = n[p]; if (!r(a, d) && r(t, d)) { a[d] = t[d]; break } } return a } return u } function r(t, e) { return t.hasOwnProperty(e) } function o(t, e) { return null != t[e] && "auto" !== t[e] } function a(t, e, n) { hR(t, function (t) { e[t] = n[t] }) } var s = n && n.ignoreSize; !M(s) && (s = [s, s]); var l = i(pR[0], 0), u = i(pR[1], 1); a(pR[0], t, l), a(pR[1], t, u) } function El(t) { return Nl({}, t) } function Nl(t, e) { return e && t && hR(cR, function (n) { e.hasOwnProperty(n) && (t[n] = e[n]) }), t } function Bl(t) { var e = []; return y(gR.getClassesByMainType(t), function (t) { e = e.concat(t.dependencies || t.prototype.dependencies || []) }), e = v(e, function (t) { return mr(t).main }), "dataset" !== t && p(e, "dataset") <= 0 && e.unshift("dataset"), e } function Vl(t) { kR(t).datasetMap = Z() } function Fl(t, e, n) { function i(t, e, n) { for (var i = 0; n > i; i++) t.push(e + i) } function r(t) { var e = t.dimsDef; return e ? e.length : 1 } var o = {}, a = Hl(e); if (!a || !t) return o; var s, l, u = [], h = [], c = e.ecModel, p = kR(c).datasetMap, d = a.uid + "_" + n.seriesLayoutBy; t = t.slice(), y(t, function (e, n) { var i = D(e) ? e : t[n] = {name: e}; "ordinal" === i.type && null == s && (s = n, l = r(i)), o[i.name] = [] }); var f = p.get(d) || p.set(d, {categoryWayDim: l, valueWayDim: 0}); return y(t, function (t, e) { var n = t.name, a = r(t); if (null == s) { var l = f.valueWayDim; i(o[n], l, a), i(h, l, a), f.valueWayDim += a } else if (s === e) i(o[n], 0, a), i(u, 0, a); else { var l = f.categoryWayDim; i(o[n], l, a), i(h, l, a), f.categoryWayDim += a } }), u.length && (o.itemName = u), h.length && (o.seriesName = h), o } function Gl(t, e, n) { var i = {}, r = Hl(t); if (!r) return i; var o, a = e.sourceFormat, s = e.dimensionsDefine; (a === MR || a === IR) && y(s, function (t, e) { "name" === (D(t) ? t.name : t) && (o = e) }); var l = function () { function t(t) { return null != t.v && null != t.n } for (var i = {}, r = {}, l = [], u = 0, h = Math.min(5, n); h > u; u++) { var c = Yl(e.data, a, e.seriesLayoutBy, s, e.startIndex, u); l.push(c); var p = c === LR.Not; if (p && null == i.v && u !== o && (i.v = u), (null == i.n || i.n === i.v || !p && l[i.n] === LR.Not) && (i.n = u), t(i) && l[i.n] !== LR.Not) return i; p || (c === LR.Might && null == r.v && u !== o && (r.v = u), (null == r.n || r.n === r.v) && (r.n = u)) } return t(i) ? i : t(r) ? r : null }(); if (l) { i.value = [l.v]; var u = null != o ? o : l.n; i.itemName = [u], i.seriesName = [u] } return i } function Hl(t) { var e = t.get("data", !0); return e ? void 0 : pr(t.ecModel, "dataset", { index: t.get("datasetIndex", !0), id: t.get("datasetId", !0) }, wL).models[0] } function Wl(t) { return t.get("transform", !0) || t.get("fromTransformResult", !0) ? pr(t.ecModel, "dataset", { index: t.get("fromDatasetIndex", !0), id: t.get("fromDatasetId", !0) }, wL).models : [] } function Xl(t, e) { return Yl(t.data, t.sourceFormat, t.seriesLayoutBy, t.dimensionsDefine, t.startIndex, e) } function Yl(t, e, n, i, r, o) { function a(t) { var e = T(t); return null != t && isFinite(t) && "" !== t ? e ? LR.Might : LR.Not : e && "-" !== t ? LR.Must : void 0 } var s, l = 5; if (k(t)) return LR.Not; var u, h; if (i) { var c = i[o]; D(c) ? (u = c.name, h = c.type) : T(c) && (u = c) } if (null != h) return "ordinal" === h ? LR.Must : LR.Not; if (e === SR) { var p = t; if (n === DR) { for (var d = p[o], f = 0; f < (d || []).length && l > f; f++) if (null != (s = a(d[r + f]))) return s } else for (var f = 0; f < p.length && l > f; f++) { var g = p[r + f]; if (g && null != (s = a(g[o]))) return s } } else if (e === MR) { var y = t; if (!u) return LR.Not; for (var f = 0; f < y.length && l > f; f++) { var v = y[f]; if (v && null != (s = a(v[u]))) return s } } else if (e === IR) { var m = t; if (!u) return LR.Not; var d = m[u]; if (!d || k(d)) return LR.Not; for (var f = 0; f < d.length && l > f; f++) if (null != (s = a(d[f]))) return s } else if (e === wR) for (var x = t, f = 0; f < x.length && l > f; f++) { var v = x[f], _ = Xi(v); if (!M(_)) return LR.Not; if (null != (s = a(_[o]))) return s } return LR.Not } function Zl(t, e) { H(null == PR.get(t) && e), PR.set(t, e) } function Ul(t, e, n) { var i = PR.get(e); if (!i) return n; var r = i(t); return r ? n.concat(r) : n } function jl(t, e, n, i) { var r = Hi(t.get(["aria", "decal", "decals"])); return Kl(t, RR, r, null, e, n, i) } function ql(t, e) { for (var n = t.length, i = 0; n > i; i++) if (t[i].length > e) return t[i]; return t[n - 1] } function Kl(t, e, n, i, r, o, a) { o = o || t; var s = e(o), l = s.paletteIdx || 0, u = s.paletteNameMap = s.paletteNameMap || {}; if (u.hasOwnProperty(r)) return u[r]; var h = null != a && i ? ql(i, a) : n; if (h = h || n, h && h.length) { var c = h[l]; return r && (u[r] = c), s.paletteIdx = (l + 1) % h.length, c } } function $l(t, e) { e(t).paletteIdx = 0, e(t).paletteNameMap = {} } function Jl(t, e) { if (e) { var n = e.seriesIndex, i = e.seriesId, r = e.seriesName; return null != n && t.componentIndex !== n || null != i && t.id !== i || null != r && t.name !== r } } function Ql(t, e) { var n = t.color && !t.colorLayer; y(e, function (e, i) { "colorLayer" === i && n || gR.hasClass(i) || ("object" == typeof e ? t[i] = t[i] ? l(t[i], e, !1) : s(e) : null == t[i] && (t[i] = e)) }) } function tu(t, e, n) { if (M(e)) { var i = Z(); return y(e, function (t) { if (null != t) { var e = er(t, null); null != e && i.set(t, !0) } }), x(n, function (e) { return e && i.get(e[t]) }) } var r = er(e, null); return x(n, function (e) { return e && null != r && e[t] === r }) } function eu(t, e) { return e.hasOwnProperty("subType") ? x(t, function (t) { return t && t.subType === e.subType }) : t } function nu(t) { var e = Z(); return t && y(Hi(t.replaceMerge), function (t) { e.set(t, !0) }), {replaceMergeMainTypeMap: e} } function iu(t, e, n) { function i(t) { y(e, function (e) { e(t, n) }) } var r, o, a = [], s = t.baseOption, l = t.timeline, u = t.options, h = t.media, c = !!t.media, p = !!(u || l || s && s.timeline); return s ? (o = s, o.timeline || (o.timeline = l)) : ((p || c) && (t.options = t.media = null), o = t), c && M(h) && y(h, function (t) { t && t.option && (t.query ? a.push(t) : r || (r = t)) }), i(o), y(u, function (t) { return i(t) }), y(a, function (t) { return i(t.option) }), {baseOption: o, timelineOptions: u || [], mediaDefault: r, mediaList: a} } function ru(t, e, n) { var i = {width: e, height: n, aspectratio: e / n}, r = !0; return y(t, function (t, e) { var n = e.match(jR); if (n && n[1] && n[2]) { var o = n[1], a = n[2].toLowerCase(); ou(i[a], t, o) || (r = !1) } }), r } function ou(t, e, n) { return "min" === n ? t >= e : "max" === n ? e >= t : t === e } function au(t, e) { return t.join(",") === e.join(",") } function su(t) { var e = t && t.itemStyle; if (e) for (var n = 0, i = JR.length; i > n; n++) { var r = JR[n], o = e.normal, a = e.emphasis; o && o[r] && (t[r] = t[r] || {}, t[r].normal ? l(t[r].normal, o[r]) : t[r].normal = o[r], o[r] = null), a && a[r] && (t[r] = t[r] || {}, t[r].emphasis ? l(t[r].emphasis, a[r]) : t[r].emphasis = a[r], a[r] = null) } } function lu(t, e, n) { if (t && t[e] && (t[e].normal || t[e].emphasis)) { var i = t[e].normal, r = t[e].emphasis; i && (n ? (t[e].normal = t[e].emphasis = null, c(t[e], i)) : t[e] = i), r && (t.emphasis = t.emphasis || {}, t.emphasis[e] = r, r.focus && (t.emphasis.focus = r.focus), r.blurScope && (t.emphasis.blurScope = r.blurScope)) } } function uu(t) { lu(t, "itemStyle"), lu(t, "lineStyle"), lu(t, "areaStyle"), lu(t, "label"), lu(t, "labelLine"), lu(t, "upperLabel"), lu(t, "edgeLabel") } function hu(t, e) { var n = $R(t) && t[e], i = $R(n) && n.textStyle; if (i) for (var r = 0, o = _L.length; o > r; r++) { var a = _L[r]; i.hasOwnProperty(a) && (n[a] = i[a]) } } function cu(t) { t && (uu(t), hu(t, "label"), t.emphasis && hu(t.emphasis, "label")) } function pu(t) { if ($R(t)) { su(t), uu(t), hu(t, "label"), hu(t, "upperLabel"), hu(t, "edgeLabel"), t.emphasis && (hu(t.emphasis, "label"), hu(t.emphasis, "upperLabel"), hu(t.emphasis, "edgeLabel")); var e = t.markPoint; e && (su(e), cu(e)); var n = t.markLine; n && (su(n), cu(n)); var i = t.markArea; i && cu(i); var r = t.data; if ("graph" === t.type) { r = r || t.nodes; var o = t.links || t.edges; if (o && !k(o)) for (var a = 0; a < o.length; a++) cu(o[a]); y(t.categories, function (t) { uu(t) }) } if (r && !k(r)) for (var a = 0; a < r.length; a++) cu(r[a]); if (e = t.markPoint, e && e.data) for (var s = e.data, a = 0; a < s.length; a++) cu(s[a]); if (n = t.markLine, n && n.data) for (var l = n.data, a = 0; a < l.length; a++) M(l[a]) ? (cu(l[a][0]), cu(l[a][1])) : cu(l[a]); "gauge" === t.type ? (hu(t, "axisLabel"), hu(t, "title"), hu(t, "detail")) : "treemap" === t.type ? (lu(t.breadcrumb, "itemStyle"), y(t.levels, function (t) { uu(t) })) : "tree" === t.type && uu(t.leaves) } } function du(t) { return M(t) ? t : t ? [t] : [] } function fu(t) { return (M(t) ? t[0] : t) || {} } function gu(t, e) { KR(du(t.series), function (t) { $R(t) && pu(t) }); var n = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"]; e && n.push("valueAxis", "categoryAxis", "logAxis", "timeAxis"), KR(n, function (e) { KR(du(t[e]), function (t) { t && (hu(t, "axisLabel"), hu(t.axisPointer, "label")) }) }), KR(du(t.parallel), function (t) { var e = t && t.parallelAxisDefault; hu(e, "axisLabel"), hu(e && e.axisPointer, "label") }), KR(du(t.calendar), function (t) { lu(t, "itemStyle"), hu(t, "dayLabel"), hu(t, "monthLabel"), hu(t, "yearLabel") }), KR(du(t.radar), function (t) { hu(t, "name"), t.name && null == t.axisName && (t.axisName = t.name, delete t.name), null != t.nameGap && null == t.axisNameGap && (t.axisNameGap = t.nameGap, delete t.nameGap) }), KR(du(t.geo), function (t) { $R(t) && (cu(t), KR(du(t.regions), function (t) { cu(t) })) }), KR(du(t.timeline), function (t) { cu(t), lu(t, "label"), lu(t, "itemStyle"), lu(t, "controlStyle", !0); var e = t.data; M(e) && y(e, function (t) { D(t) && (lu(t, "label"), lu(t, "itemStyle")) }) }), KR(du(t.toolbox), function (t) { lu(t, "iconStyle"), KR(t.feature, function (t) { lu(t, "iconStyle") }) }), hu(fu(t.axisPointer), "label"), hu(fu(t.tooltip).axisPointer, "label") } function yu(t, e) { for (var n = e.split(","), i = t, r = 0; r < n.length && (i = i && i[n[r]], null != i); r++) ; return i } function vu(t, e, n, i) { for (var r, o = e.split(","), a = t, s = 0; s < o.length - 1; s++) r = o[s], null == a[r] && (a[r] = {}), a = a[r]; (i || null == a[o[s]]) && (a[o[s]] = n) } function mu(t) { t && y(QR, function (e) { e[0] in t && !(e[1] in t) && (t[e[1]] = t[e[0]]) }) } function xu(t) { var e = t && t.itemStyle; if (e) for (var n = 0; n < ez.length; n++) { var i = ez[n][1], r = ez[n][0]; null != e[i] && (e[r] = e[i]) } } function _u(t) { t && "edge" === t.alignTo && null != t.margin && null == t.edgeDistance && (t.edgeDistance = t.margin) } function bu(t) { t && t.downplay && !t.blur && (t.blur = t.downplay) } function wu(t) { t && null != t.focusNodeAdjacency && (t.emphasis = t.emphasis || {}, null == t.emphasis.focus && (t.emphasis.focus = "adjacency")) } function Su(t, e) { if (t) for (var n = 0; n < t.length; n++) e(t[n]), t[n] && Su(t[n].children, e) } function Mu(t, e) { gu(t, e), t.series = Hi(t.series), y(t.series, function (t) { if (D(t)) { var e = t.type; if ("line" === e) null != t.clipOverflow && (t.clip = t.clipOverflow); else if ("pie" === e || "gauge" === e) { null != t.clockWise && (t.clockwise = t.clockWise), _u(t.label); var n = t.data; if (n && !k(n)) for (var i = 0; i < n.length; i++) _u(n[i]); null != t.hoverOffset && (t.emphasis = t.emphasis || {}, (t.emphasis.scaleSize = null) && (t.emphasis.scaleSize = t.hoverOffset)) } else if ("gauge" === e) { var r = yu(t, "pointer.color"); null != r && vu(t, "itemStyle.color", r) } else if ("bar" === e) { xu(t), xu(t.backgroundStyle), xu(t.emphasis); var n = t.data; if (n && !k(n)) for (var i = 0; i < n.length; i++) "object" == typeof n[i] && (xu(n[i]), xu(n[i] && n[i].emphasis)) } else if ("sunburst" === e) { var o = t.highlightPolicy; o && (t.emphasis = t.emphasis || {}, t.emphasis.focus || (t.emphasis.focus = o)), bu(t), Su(t.data, bu) } else "graph" === e || "sankey" === e ? wu(t) : "map" === e && (t.mapType && !t.map && (t.map = t.mapType), t.mapLocation && c(t, t.mapLocation)); null != t.hoverAnimation && (t.emphasis = t.emphasis || {}, t.emphasis && null == t.emphasis.scale && (t.emphasis.scale = t.hoverAnimation)), mu(t) } }), t.dataRange && (t.visualMap = t.dataRange), y(tz, function (e) { var n = t[e]; n && (M(n) || (n = [n]), y(n, function (t) { mu(t) })) }) } function Iu(t) { var e = Z(); t.eachSeries(function (t) { var n = t.get("stack"); if (n) { var i = e.get(n) || e.set(n, []), r = t.getData(), o = { stackResultDimension: r.getCalculationInfo("stackResultDimension"), stackedOverDimension: r.getCalculationInfo("stackedOverDimension"), stackedDimension: r.getCalculationInfo("stackedDimension"), stackedByDimension: r.getCalculationInfo("stackedByDimension"), isStackedByIndex: r.getCalculationInfo("isStackedByIndex"), data: r, seriesModel: t }; if (!o.stackedDimension || !o.isStackedByIndex && !o.stackedByDimension) return; i.length && r.setCalculationInfo("stackedOnSeries", i[i.length - 1].seriesModel), i.push(o) } }), e.each(Tu) } function Tu(t) { y(t, function (e, n) { var i = [], r = [0 / 0, 0 / 0], o = [e.stackResultDimension, e.stackedOverDimension], a = e.data, s = e.isStackedByIndex, l = a.map(o, function (o, l, u) { var h = a.get(e.stackedDimension, u); if (isNaN(h)) return r; var c, p; s ? p = a.getRawIndex(u) : c = a.get(e.stackedByDimension, u); for (var d = 0 / 0, f = n - 1; f >= 0; f--) { var g = t[f]; if (s || (p = g.data.rawIndexOf(g.stackedByDimension, c)), p >= 0) { var y = g.data.getByRawIndex(g.stackResultDimension, p); if (h >= 0 && y > 0 || 0 >= h && 0 > y) { h = Ci(h, y), d = y; break } } } return i[0] = h, i[1] = d, i }); a.hostModel.setData(l), e.data = l }) } function Cu(t) { return t instanceof nz } function Au(t, e, n, i) { n = n || Pu(t); var r = e.seriesLayoutBy, o = Ou(t, n, r, e.sourceHeader, e.dimensions), a = new nz({ data: t, sourceFormat: n, seriesLayoutBy: r, dimensionsDefine: o.dimensionsDefine, startIndex: o.startIndex, dimensionsDetectedCount: o.dimensionsDetectedCount, encodeDefine: ku(i), metaRawOption: s(e) }); return a } function Du(t) { return new nz({data: t, sourceFormat: k(t) ? TR : wR}) } function Lu(t) { return new nz({ data: t.data, sourceFormat: t.sourceFormat, seriesLayoutBy: t.seriesLayoutBy, dimensionsDefine: s(t.dimensionsDefine), startIndex: t.startIndex, dimensionsDetectedCount: t.dimensionsDetectedCount, encodeDefine: ku(t.encodeDefine) }) } function ku(t) { return t ? Z(t) : null } function Pu(t) { var e = CR; if (k(t)) e = TR; else if (M(t)) { 0 === t.length && (e = SR); for (var n = 0, i = t.length; i > n; n++) { var r = t[n]; if (null != r) { if (M(r)) { e = SR; break } if (D(r)) { e = MR; break } } } } else if (D(t)) for (var o in t) if (q(t, o) && g(t[o])) { e = IR; break } return e } function Ou(t, e, n, i, r) { var o, a; if (!t) return {dimensionsDefine: zu(r), startIndex: a, dimensionsDetectedCount: o}; if (e === SR) { var s = t; "auto" === i || null == i ? Eu(function (t) { null != t && "-" !== t && (T(t) ? null == a && (a = 1) : a = 0) }, n, s, 10) : a = A(i) ? i : i ? 1 : 0, r || 1 !== a || (r = [], Eu(function (t, e) { r[e] = null != t ? t + "" : "" }, n, s, 1 / 0)), o = r ? r.length : n === DR ? s.length : s[0] ? s[0].length : null } else if (e === MR) r || (r = Ru(t)); else if (e === IR) r || (r = [], y(t, function (t, e) { r.push(e) })); else if (e === wR) { var l = Xi(t[0]); o = M(l) && l.length || 1 } return {startIndex: a, dimensionsDefine: zu(r), dimensionsDetectedCount: o} } function Ru(t) { for (var e, n = 0; n < t.length && !(e = t[n++]);) ; if (e) { var i = []; return y(e, function (t, e) { i.push(e) }), i } } function zu(t) { if (t) { var e = Z(); return v(t, function (t) { t = D(t) ? t : {name: t}; var n = {name: t.name, displayName: t.displayName, type: t.type}; if (null == n.name) return n; n.name += "", null == n.displayName && (n.displayName = n.name); var i = e.get(n.name); return i ? n.name += "-" + i.count++ : e.set(n.name, {count: 1}), n }) } } function Eu(t, e, n, i) { if (e === DR) for (var r = 0; r < n.length && i > r; r++) t(n[r] ? n[r][0] : null, r); else for (var o = n[0] || [], r = 0; r < o.length && i > r; r++) t(o[r], r) } function Nu(t, e) { var n = oz[Fu(t, e)]; return n } function Bu(t, e) { var n = sz[Fu(t, e)]; return n } function Vu(t) { var e = uz[t]; return e } function Fu(t, e) { return t === SR ? t + "_" + e : t } function Gu(t, e, n) { if (t) { var i = t.getRawDataItem(e); if (null != i) { var r, o, a = t.getProvider().getSource().sourceFormat, s = t.getDimensionInfo(n); return s && (r = s.name, o = s.index), Vu(a)(i, o, r) } } } function Hu(t) { var e, n; return D(t) ? t.type && (n = t) : e = t, {markupText: e, markupFragment: n} } function Wu(t) { return new pz(t) } function Xu(t, e) { var n = e && e.type; if ("ordinal" === n) { var i = e && e.ordinalMeta; return i ? i.parseAndCollect(t) : t } return "time" === n && "number" != typeof t && null != t && "-" !== t && (t = +Li(t)), null == t || "" === t ? 0 / 0 : +t } function Yu(t, e) { var n = new yz, i = t.data, r = n.sourceFormat = t.sourceFormat, o = t.startIndex, a = ""; t.seriesLayoutBy !== AR && Gi(a); var s = [], l = {}, u = t.dimensionsDefine; if (u) y(u, function (t, e) { var n = t.name, i = {index: e, name: n, displayName: t.displayName}; if (s.push(i), null != n) { var r = ""; q(l, n) && Gi(r), l[n] = i } }); else for (var h = 0; h < t.dimensionsDetectedCount; h++) s.push({index: h}); var c = Nu(r, AR); e.__isBuiltIn && (n.getRawDataItem = function (t) { return c(i, o, s, t) }, n.getRawData = xA(Zu, null, t)), n.cloneRawData = xA(Uu, null, t); var p = Bu(r, AR); n.count = xA(p, null, i, o, s); var d = Vu(r); n.retrieveValue = function (t, e) { var n = c(i, o, s, t); return f(n, e) }; var f = n.retrieveValueFromItem = function (t, e) { if (null != t) { var n = s[e]; return n ? d(t, e, n.name) : void 0 } }; return n.getDimensionInfo = xA(ju, null, s, l), n.cloneAllDimensionInfo = xA(qu, null, s), n } function Zu(t) { var e = t.sourceFormat; if (!Qu(e)) { var n = ""; Gi(n) } return t.data } function Uu(t) { var e = t.sourceFormat, n = t.data; if (!Qu(e)) { var i = ""; Gi(i) } if (e === SR) { for (var r = [], o = 0, a = n.length; a > o; o++) r.push(n[o].slice()); return r } if (e === MR) { for (var r = [], o = 0, a = n.length; a > o; o++) r.push(h({}, n[o])); return r } } function ju(t, e, n) { return null != n ? "number" == typeof n || !isNaN(n) && !q(e, n) ? t[n] : q(e, n) ? e[n] : void 0 : void 0 } function qu(t) { return s(t) } function Ku(t) { t = s(t); var e = t.type, n = ""; e || Gi(n); var i = e.split(":"); 2 !== i.length && Gi(n); var r = !1; "echartsAll" === i[0] && (e = i[1], r = !0), t.__isBuiltIn = r, vz.set(e, t) } function $u(t, e, n) { var i = Hi(t), r = i.length, o = ""; r || Gi(o); for (var a = 0, s = r; s > a; a++) { var l = i[a]; e = Ju(l, e, n, 1 === r ? null : a), a !== s - 1 && (e.length = Math.max(e.length, 1)) } return e } function Ju(t, e) { var n = ""; e.length || Gi(n), D(t) || Gi(n); var i = t.type, r = vz.get(i); r || Gi(n); var o = v(e, function (t) { return Yu(t, r) }), a = Hi(r.transform({upstream: o[0], upstreamList: o, config: s(t.config)})); return v(a, function (t, n) { var i = ""; D(t) || Gi(i), t.data || Gi(i); var r = Pu(t.data); Qu(r) || Gi(i); var o, a = e[0]; if (a && 0 === n && !t.dimensions) { var s = a.startIndex; s && (t.data = a.data.slice(0, s).concat(t.data)), o = { seriesLayoutBy: AR, sourceHeader: s, dimensions: a.metaRawOption.dimensions } } else o = {seriesLayoutBy: AR, sourceHeader: 0, dimensions: t.dimensions}; return Au(t.data, o, null, null) }) } function Qu(t) { return t === SR || t === MR } function th(t) { var e = t.option.transform; e && X(t.option.transform) } function eh(t) { return "series" === t.mainType } function nh(t) { throw new Error(t) } function ih(t, e) { var n = t.color || "#6e7079", i = t.fontSize || 12, r = t.fontWeight || "400", o = t.color || "#464646", a = t.fontSize || 14, s = t.fontWeight || "900"; return "html" === e ? { nameStyle: "font-size:" + _l(i + "") + "px;color:" + _l(n) + ";font-weight:" + _l(r + ""), valueStyle: "font-size:" + _l(a + "") + "px;color:" + _l(o) + ";font-weight:" + _l(s + "") } : {nameStyle: {fontSize: i, fill: n, fontWeight: r}, valueStyle: {fontSize: a, fill: o, fontWeight: s}} } function rh(t, e) { return e.type = t, e } function oh(t) { return q(wz, t.type) && wz[t.type] } function ah(t, e, n, i) { var r = [], o = e.blocks || []; H(!o || M(o)), o = o || []; var a = t.orderMode; if (e.sortBlocks && a) { o = o.slice(); var s = {valueAsc: "asc", valueDesc: "desc"}; if (q(s, a)) { var l = new gz(s[a], null); o.sort(function (t, e) { return l.evaluate(t.sortParam, e.sortParam) }) } else "seriesDesc" === a && o.reverse() } var u = lh(e); return y(o, function (e, n) { var o = oh(e).build(t, e, n > 0 ? u.html : 0, i); null != o && r.push(o) }), r.length ? "richText" === t.renderMode ? r.join(u.richText) : uh(r.join(""), n) : void 0 } function sh(t, e, n, i, r, o) { if (t) { var a = oh(t); a.planLayout(t); var s = {useUTC: r, renderMode: n, orderMode: i, markupStyleCreator: e}; return a.build(s, t, 0, o) } } function lh(t) { var e = t.__gapLevelBetweenSubBlocks; return {html: _z[e], richText: bz[e]} } function uh(t, e) { var n = '
', i = "margin: " + e + "px 0 0"; return '
' + t + n + "
" } function hh(t, e, n) { var i = e ? "margin-left:2px" : ""; return '' + _l(t) + "" } function ch(t, e, n, i) { var r = n ? "10px" : "20px", o = e ? "float:right;margin-left:" + r : ""; return '' + v(t, function (t) { return _l(t) }).join("  ") + "" } function ph(t, e, n) { return t.markupStyleCreator.wrapRichTextStyle(e, n) } function dh(t, e, n, i, r) { var o = [r], a = i ? 10 : 20; return n && o.push({ padding: [0, 0, 0, a], align: "right" }), t.markupStyleCreator.wrapRichTextStyle(e.join(" "), o) } function fh(t, e) { var n = t.getData().getItemVisual(e, "style"), i = n[t.visualDrawType]; return Cl(i) } function gh(t, e) { var n = t.get("padding"); return null != n ? n : "richText" === e ? [8, 10] : 10 } function yh(t) { var e, n, i, r, o = t.series, a = t.dataIndex, s = t.multipleSeries, l = o.getData(), u = l.mapDimensionsAll("defaultedTooltip"), h = u.length, c = o.getRawValue(a), p = M(c), d = fh(o, a); if (h > 1 || p && !h) { var f = vh(c, o, a, u, d); e = f.inlineValues, n = f.inlineValueTypes, i = f.blocks, r = f.inlineValues[0] } else if (h) { var g = l.getDimensionInfo(u[0]); r = e = Gu(l, a, u[0]), n = g.type } else r = e = p ? c[0] : c; var y = nr(o), v = y && o.name || "", m = l.getName(a), x = s ? v : m; return rh("section", { header: v, noHeader: s || !y, sortParam: r, blocks: [rh("nameValue", { markerType: "item", markerColor: d, name: x, noName: !W(x), value: e, valueType: n })].concat(i || []) }) } function vh(t, e, n, i, r) { function o(t, e) { var n = a.getDimensionInfo(e); n && n.otherDims.tooltip !== !1 && (s ? h.push(rh("nameValue", { markerType: "subItem", markerColor: r, name: n.displayName, value: t, valueType: n.type })) : (l.push(t), u.push(n.type))) } var a = e.getData(), s = m(t, function (t, e, n) { var i = a.getDimensionInfo(n); return t = t || i && i.tooltip !== !1 && null != i.displayName }, !1), l = [], u = [], h = []; return i.length ? y(i, function (t) { o(Gu(a, n, t), t) }) : y(t, o), {inlineValues: l, inlineValueTypes: u, blocks: h} } function mh(t, e) { return t.getName(e) || t.getId(e) } function xh(t) { var e = t.name; nr(t) || (t.name = _h(t) || e) } function _h(t) { var e = t.getRawData(), n = e.mapDimensionsAll("seriesName"), i = []; return y(n, function (t) { var n = e.getDimensionInfo(t); n.displayName && i.push(n.displayName) }), i.join(" ") } function bh(t) { return t.model.getRawData().count() } function wh(t) { var e = t.model; return e.setData(e.getRawData().cloneShallow()), Sh } function Sh(t, e) { e.outputData && t.end > e.outputData.count() && e.model.getRawData().cloneShallow(e.outputData) } function Mh(t, e) { y(n(t.CHANGABLE_METHODS, t.DOWNSAMPLE_METHODS), function (n) { t.wrapMethod(n, S(Ih, e)) }) } function Ih(t, e) { var n = Th(t); return n && n.setOutputEnd((e || this).count()), e } function Th(t) { var e = (t.ecModel || {}).scheduler, n = e && e.getPipeline(t.uid); if (n) { var i = n.currentTask; if (i) { var r = i.agentStubMap; r && (i = r.get(t.uid)) } return i } } function Ch() { var t = ur(); return function (e) { var n = t(e), i = e.pipelineContext, r = !!n.large, o = !!n.progressiveRender, a = n.large = !(!i || !i.large), s = n.progressiveRender = !(!i || !i.progressiveRender); return !(r === a && o === s) && "reset" } } function Ah(t, e, n) { t && ("emphasis" === e ? aa : sa)(t, n) } function Dh(t, e, n) { var i = lr(t, e), r = e && null != e.highlightKey ? Da(e.highlightKey) : null; null != i ? y(Hi(i), function (e) { Ah(t.getItemGraphicEl(e), n, r) }) : t.eachItemGraphicEl(function (t) { Ah(t, n, r) }) } function Lh(t) { return Az(t.model) } function kh(t) { var e = t.model, n = t.ecModel, i = t.api, r = t.payload, o = e.pipelineContext.progressiveRender, a = t.view, s = r && Cz(r).updateMethod, l = o ? "incrementalPrepareRender" : s && a[s] ? s : "render"; return "render" !== l && a[l](e, n, i, r), kz[l] } function Ph(t, e, n) { function i() { h = (new Date).getTime(), c = null, t.apply(a, s || []) } var r, o, a, s, l, u = 0, h = 0, c = null; e = e || 0; var p = function () { for (var t = [], p = 0; p < arguments.length; p++) t[p] = arguments[p]; r = (new Date).getTime(), a = this, s = t; var d = l || e, f = l || n; l = null, o = r - (f ? u : h) - d, clearTimeout(c), f ? c = setTimeout(i, d) : o >= 0 ? i() : c = setTimeout(i, -o), u = r }; return p.clear = function () { c && (clearTimeout(c), c = null) }, p.debounceNextCall = function (t) { l = t }, p } function Oh(t, e, n, i) { var r = t[e]; if (r) { var o = r[Pz] || r, a = r[Rz], s = r[Oz]; if (s !== n || a !== i) { if (null == n || !i) return t[e] = o; r = t[e] = Ph(o, n, "debounce" === i), r[Pz] = o, r[Rz] = i, r[Oz] = n } return r } } function Rh(t, e) { var n = t[e]; n && n[Pz] && (t[e] = n[Pz]) } function zh(t, e) { var n = t.visualStyleMapper || Ez[e]; return n ? n : (console.warn("Unkown style type '" + e + "'."), Ez.itemStyle) } function Eh(t, e) { var n = t.visualDrawType || Nz[e]; return n ? n : (console.warn("Unkown style type '" + e + "'."), "fill") } function Nh(t, e) { e = e || {}, c(e, { text: "loading", textColor: "#000", fontSize: 12, fontWeight: "normal", fontStyle: "normal", fontFamily: "sans-serif", maskColor: "rgba(255, 255, 255, 0.8)", showSpinner: !0, color: "#5470c6", spinnerRadius: 10, lineWidth: 5, zlevel: 0 }); var n = new sL, i = new Uk({style: {fill: e.maskColor}, zlevel: e.zlevel, z: 1e4}); n.add(i); var r = new $k({ style: { text: e.text, fill: e.textColor, fontSize: e.fontSize, fontWeight: e.fontWeight, fontStyle: e.fontStyle, fontFamily: e.fontFamily }, zlevel: e.zlevel, z: 10001 }), o = new Uk({ style: {fill: "none"}, textContent: r, textConfig: {position: "right", distance: 10}, zlevel: e.zlevel, z: 10001 }); n.add(o); var a; return e.showSpinner && (a = new aO({ shape: {startAngle: -Hz / 2, endAngle: -Hz / 2 + .1, r: e.spinnerRadius}, style: {stroke: e.color, lineCap: "round", lineWidth: e.lineWidth}, zlevel: e.zlevel, z: 10001 }), a.animateShape(!0).when(1e3, {endAngle: 3 * Hz / 2}).start("circularInOut"), a.animateShape(!0).when(1e3, {startAngle: 3 * Hz / 2}).delay(300).start("circularInOut"), n.add(a)), n.resize = function () { var n = r.getBoundingRect().width, s = e.showSpinner ? e.spinnerRadius : 0, l = (t.getWidth() - 2 * s - (e.showSpinner && n ? 10 : 0) - n) / 2 - (e.showSpinner && n ? 0 : 5 + n / 2) + (e.showSpinner ? 0 : n / 2) + (n ? 0 : s), u = t.getHeight() / 2; e.showSpinner && a.setShape({cx: l, cy: u}), o.setShape({ x: l - s, y: u - s, width: 2 * s, height: 2 * s }), i.setShape({x: 0, y: 0, width: t.getWidth(), height: t.getHeight()}) }, n.resize(), n } function Bh(t) { t.overallReset(t.ecModel, t.api, t.payload) } function Vh(t) { return t.overallProgress && Fh } function Fh() { this.agent.dirty(), this.getDownstream().dirty() } function Gh() { this.agent && this.agent.dirty() } function Hh(t) { return t.plan ? t.plan(t.model, t.ecModel, t.api, t.payload) : null } function Wh(t) { t.useClearVisual && t.data.clearAllVisual(); var e = t.resetDefines = Hi(t.reset(t.model, t.ecModel, t.api, t.payload)); return e.length > 1 ? v(e, function (t, e) { return Xh(e) }) : Xz } function Xh(t) { return function (e, n) { var i = n.data, r = n.resetDefines[t]; if (r && r.dataEach) for (var o = e.start; o < e.end; o++) r.dataEach(i, o); else r && r.progress && r.progress(e, i) } } function Yh(t) { return t.data.count() } function Zh(t) { Lz = null; try { t(Yz, Zz) } catch (e) { } return Lz } function Uh(t, e) { for (var n in e.prototype) t[n] = K } function jh(t, e, n) { switch (n) { case"color": var i = t.getItemVisual(e, "style"); return i[t.getVisual("drawType")]; case"opacity": return t.getItemVisual(e, "style").opacity; case"symbol": case"symbolSize": case"liftZ": return t.getItemVisual(e, n) } } function qh(t, e) { switch (e) { case"color": var n = t.getVisual("style"); return n[t.getVisual("drawType")]; case"opacity": return t.getVisual("style").opacity; case"symbol": case"symbolSize": case"liftZ": return t.getVisual(e) } } function Kh(t, e, n, i) { switch (n) { case"color": var r = t.ensureUniqueItemVisual(e, "style"); r[t.getVisual("drawType")] = i, t.setItemVisual(e, "colorFromPalette", !1); break; case"opacity": t.ensureUniqueItemVisual(e, "style").opacity = i; break; case"symbol": case"symbolSize": case"liftZ": t.setItemVisual(e, n, i) } } function $h(t, e, n, i, r) { var o = n.width, a = n.height; switch (t) { case"top": i.set(n.x + o / 2, n.y - e), r.set(0, -1); break; case"bottom": i.set(n.x + o / 2, n.y + a + e), r.set(0, 1); break; case"left": i.set(n.x - e, n.y + a / 2), r.set(-1, 0); break; case"right": i.set(n.x + o + e, n.y + a / 2), r.set(1, 0) } } function Jh(t, e, n, i, r, o, a, s, l) { a -= t, s -= e; var u = Math.sqrt(a * a + s * s); a /= u, s /= u; var h = a * n + t, c = s * n + e; if (Math.abs(i - r) % iE < 1e-4) return l[0] = h, l[1] = c, u - n; if (o) { var p = i; i = vo(r), r = vo(p) } else i = vo(i), r = vo(r); i > r && (r += iE); var d = Math.atan2(s, a); if (0 > d && (d += iE), d >= i && r >= d || d + iE >= i && r >= d + iE) return l[0] = h, l[1] = c, u - n; var f = n * Math.cos(i) + t, g = n * Math.sin(i) + e, y = n * Math.cos(r) + t, v = n * Math.sin(r) + e, m = (f - a) * (f - a) + (g - s) * (g - s), x = (y - a) * (y - a) + (v - s) * (v - s); return x > m ? (l[0] = f, l[1] = g, Math.sqrt(m)) : (l[0] = y, l[1] = v, Math.sqrt(x)) } function Qh(t, e, n, i, r, o, a, s) { var l = r - t, u = o - e, h = n - t, c = i - e, p = Math.sqrt(h * h + c * c); h /= p, c /= p; var d = l * h + u * c, f = d / p; s && (f = Math.min(Math.max(f, 0), 1)), f *= p; var g = a[0] = t + f * h, y = a[1] = e + f * c; return Math.sqrt((g - r) * (g - r) + (y - o) * (y - o)) } function tc(t, e, n, i, r, o, a) { 0 > n && (t += n, n = -n), 0 > i && (e += i, i = -i); var s = t + n, l = e + i, u = a[0] = Math.min(Math.max(r, t), s), h = a[1] = Math.min(Math.max(o, e), l); return Math.sqrt((u - r) * (u - r) + (h - o) * (h - o)) } function ec(t, e, n) { var i = tc(e.x, e.y, e.width, e.height, t.x, t.y, aE); return n.set(aE[0], aE[1]), i } function nc(t, e, n) { for (var i, r, o = 0, a = 0, s = 0, l = 0, u = 1 / 0, h = e.data, c = t.x, p = t.y, d = 0; d < h.length;) { var f = h[d++]; 1 === d && (o = h[d], a = h[d + 1], s = o, l = a); var g = u; switch (f) { case rE.M: s = h[d++], l = h[d++], o = s, a = l; break; case rE.L: g = Qh(o, a, h[d], h[d + 1], c, p, aE, !0), o = h[d++], a = h[d++]; break; case rE.C: g = $r(o, a, h[d++], h[d++], h[d++], h[d++], h[d], h[d + 1], c, p, aE), o = h[d++], a = h[d++]; break; case rE.Q: g = ro(o, a, h[d++], h[d++], h[d], h[d + 1], c, p, aE), o = h[d++], a = h[d++]; break; case rE.A: var y = h[d++], v = h[d++], m = h[d++], x = h[d++], _ = h[d++], b = h[d++]; d += 1; var w = !!(1 - h[d++]); i = Math.cos(_) * m + y, r = Math.sin(_) * x + v, 1 >= d && (s = i, l = r); var S = (c - y) * x / m + y; g = Jh(y, v, x, _, _ + b, w, S, p, aE), o = Math.cos(_ + b) * m + y, a = Math.sin(_ + b) * x + v; break; case rE.R: s = o = h[d++], l = a = h[d++]; var M = h[d++], I = h[d++]; g = tc(s, l, M, I, c, p, aE); break; case rE.Z: g = Qh(o, a, s, l, c, p, aE, !0), o = s, a = l } u > g && (u = g, n.set(aE[0], aE[1])) } return u } function ic(t, e) { if (t) { var n = t.getTextGuideLine(), i = t.getTextContent(); if (i && n) { var r = t.textGuideLineConfig || {}, o = [[0, 0], [0, 0], [0, 0]], a = r.candidates || oE, s = i.getBoundingRect().clone(); s.applyTransform(i.getComputedTransform()); var l = 1 / 0, u = r.anchor, h = t.getComputedTransform(), c = h && jn([], h), p = e.get("length2") || 0; u && uE.copy(u); for (var d = 0; d < a.length; d++) { var f = a[d]; $h(f, 0, s, sE, hE), HD.scaleAndAdd(lE, sE, hE, p), lE.transform(c); var g = t.getBoundingRect(), y = u ? u.distance(lE) : t instanceof Bk ? nc(lE, t.path, uE) : ec(lE, g, uE); l > y && (l = y, lE.transform(h), uE.transform(h), uE.toArray(o[0]), lE.toArray(o[1]), sE.toArray(o[2])) } rc(o, e.get("minTurnAngle")), n.setShape({points: o}) } } } function rc(t, e) { if (180 >= e && e > 0) { e = e / 180 * Math.PI, sE.fromArray(t[0]), lE.fromArray(t[1]), uE.fromArray(t[2]), HD.sub(hE, sE, lE), HD.sub(cE, uE, lE); var n = hE.len(), i = cE.len(); if (!(.001 > n || .001 > i)) { hE.scale(1 / n), cE.scale(1 / i); var r = hE.dot(cE), o = Math.cos(e); if (r > o) { var a = Qh(lE.x, lE.y, uE.x, uE.y, sE.x, sE.y, pE, !1); dE.fromArray(pE), dE.scaleAndAdd(cE, a / Math.tan(Math.PI - e)); var s = uE.x !== lE.x ? (dE.x - lE.x) / (uE.x - lE.x) : (dE.y - lE.y) / (uE.y - lE.y); if (isNaN(s)) return; 0 > s ? HD.copy(dE, lE) : s > 1 && HD.copy(dE, uE), dE.toArray(t[1]) } } } } function oc(t, e, n) { if (180 >= n && n > 0) { n = n / 180 * Math.PI, sE.fromArray(t[0]), lE.fromArray(t[1]), uE.fromArray(t[2]), HD.sub(hE, lE, sE), HD.sub(cE, uE, lE); var i = hE.len(), r = cE.len(); if (!(.001 > i || .001 > r)) { hE.scale(1 / i), cE.scale(1 / r); var o = hE.dot(e), a = Math.cos(n); if (a > o) { var s = Qh(lE.x, lE.y, uE.x, uE.y, sE.x, sE.y, pE, !1); dE.fromArray(pE); var l = Math.PI / 2, u = Math.acos(cE.dot(e)), h = l + u - n; if (h >= l) HD.copy(dE, uE); else { dE.scaleAndAdd(cE, s / Math.tan(Math.PI / 2 - h)); var c = uE.x !== lE.x ? (dE.x - lE.x) / (uE.x - lE.x) : (dE.y - lE.y) / (uE.y - lE.y); if (isNaN(c)) return; 0 > c ? HD.copy(dE, lE) : c > 1 && HD.copy(dE, uE) } dE.toArray(t[1]) } } } } function ac(t, e, n, i) { var r = "normal" === n, o = r ? t : t.ensureState(n); o.ignore = e; var a = i.get("smooth"); a && a === !0 && (a = .3), o.shape = o.shape || {}, a > 0 && (o.shape.smooth = a); var s = i.getModel("lineStyle").getLineStyle(); r ? t.useStyle(s) : o.style = s } function sc(t, e) { var n = e.smooth, i = e.points; if (i) if (t.moveTo(i[0][0], i[0][1]), n > 0 && i.length >= 3) { var r = IA(i[0], i[1]), o = IA(i[1], i[2]); if (!r || !o) return t.lineTo(i[1][0], i[1][1]), void t.lineTo(i[2][0], i[2][1]); var a = Math.min(r, o) * n, s = fe([], i[1], i[0], a / r), l = fe([], i[1], i[2], a / o), u = fe([], s, l, .5); t.bezierCurveTo(s[0], s[1], s[0], s[1], u[0], u[1]), t.bezierCurveTo(l[0], l[1], l[0], l[1], i[2][0], i[2][1]) } else for (var h = 1; h < i.length; h++) t.lineTo(i[h][0], i[h][1]) } function lc(t, e, n) { var i = t.getTextGuideLine(), r = t.getTextContent(); if (!r) return void (i && t.removeTextGuideLine()); for (var o = e.normal, a = o.get("show"), s = r.ignore, l = 0; l < lP.length; l++) { var u = lP[l], h = e[u], p = "normal" === u; if (h) { var d = h.get("show"), f = p ? s : B(r.states[u] && r.states[u].ignore, s); if (f || !B(d, a)) { var g = p ? i : i && i.states.normal; g && (g.ignore = !0); continue } i || (i = new JP, t.setTextGuideLine(i), p || !s && a || ac(i, !0, "normal", e.normal), t.stateProxy && (i.stateProxy = t.stateProxy)), ac(i, !1, u, h) } } if (i) { c(i.style, n), i.style.fill = null; var y = o.get("showAbove"), v = t.textGuideLineConfig = t.textGuideLineConfig || {}; v.showAbove = y || !1, i.buildPath = sc } } function uc(t, e) { e = e || "labelLine"; for (var n = {normal: t.getModel(e)}, i = 0; i < sP.length; i++) { var r = sP[i]; n[r] = t.getModel([r, e]) } return n } function hc(t) { for (var e = [], n = 0; n < t.length; n++) { var i = t[n]; if (!i.defaultAttr.ignore) { var r = i.label, o = r.getComputedTransform(), a = r.getBoundingRect(), s = !o || o[1] < 1e-5 && o[2] < 1e-5, l = r.style.margin || 0, u = a.clone(); u.applyTransform(o), u.x -= l / 2, u.y -= l / 2, u.width += l, u.height += l; var h = s ? new gO(a, o) : null; e.push({ label: r, labelLine: i.labelLine, rect: u, localRect: a, obb: h, priority: i.priority, defaultAttr: i.defaultAttr, layoutOption: i.computedLayoutOption, axisAligned: s, transform: o }) } } return e } function cc(t, e, n, i, r, o) { function a() { b = S.rect[e] - i, w = r - M.rect[e] - M.rect[n] } function s(t, e, n) { if (0 > t) { var i = Math.min(e, -t); if (i > 0) { l(i * n, 0, c); var r = i + t; 0 > r && u(-r * n, 1) } else u(-t * n, 1) } } function l(n, i, r) { 0 !== n && (f = !0); for (var o = i; r > o; o++) { var a = t[o], s = a.rect; s[e] += n, a.label[e] += n } } function u(i, r) { for (var o = [], a = 0, s = 1; c > s; s++) { var u = t[s - 1].rect, h = Math.max(t[s].rect[e] - u[e] - u[n], 0); o.push(h), a += h } if (a) { var p = Math.min(Math.abs(i) / a, r); if (i > 0) for (var s = 0; c - 1 > s; s++) { var d = o[s] * p; l(d, 0, s + 1) } else for (var s = c - 1; s > 0; s--) { var d = o[s - 1] * p; l(-d, s, c) } } } function h(t) { var e = 0 > t ? -1 : 1; t = Math.abs(t); for (var n = Math.ceil(t / (c - 1)), i = 0; c - 1 > i; i++) if (e > 0 ? l(n, 0, i + 1) : l(-n, c - i - 1, c), t -= n, 0 >= t) return } var c = t.length; if (!(2 > c)) { t.sort(function (t, n) { return t.rect[e] - n.rect[e] }); for (var p, d = 0, f = !1, g = [], y = 0, v = 0; c > v; v++) { var m = t[v], x = m.rect; p = x[e] - d, 0 > p && (x[e] -= p, m.label[e] -= p, f = !0); var _ = Math.max(-p, 0); g.push(_), y += _, d = x[e] + x[n] } y > 0 && o && l(-y / c, 0, c); var b, w, S = t[0], M = t[c - 1]; return a(), 0 > b && u(-b, .8), 0 > w && u(w, .8), a(), s(b, w, 1), s(w, b, -1), a(), 0 > b && h(-b), 0 > w && h(w), f } } function pc(t, e, n, i) { return cc(t, "x", "width", e, n, i) } function dc(t, e, n, i) { return cc(t, "y", "height", e, n, i) } function fc(t) { function e(t) { if (!t.ignore) { var e = t.ensureState("emphasis"); null == e.ignore && (e.ignore = !1) } t.ignore = !0 } var n = []; t.sort(function (t, e) { return e.priority - t.priority }); for (var i = new $D(0, 0, 0, 0), r = 0; r < t.length; r++) { var o = t[r], a = o.axisAligned, s = o.localRect, l = o.transform, u = o.label, h = o.labelLine; i.copy(o.rect), i.width -= .1, i.height -= .1, i.x += .05, i.y += .05; for (var c = o.obb, p = !1, d = 0; d < n.length; d++) { var f = n[d]; if (i.intersect(f.rect)) { if (a && f.axisAligned) { p = !0; break } if (f.obb || (f.obb = new gO(f.localRect, f.transform)), c || (c = new gO(s, l)), c.intersect(f.obb)) { p = !0; break } } } p ? (e(u), h && e(h)) : (u.attr("ignore", o.defaultAttr.ignore), h && h.attr("ignore", o.defaultAttr.labelGuideIgnore), n.push(o)) } } function gc(t) { if (t) { for (var e = [], n = 0; n < t.length; n++) e.push(t[n].slice()); return e } } function yc(t, e) { var n = t.label, i = e && e.getTextGuideLine(); return { dataIndex: t.dataIndex, dataType: t.dataType, seriesIndex: t.seriesModel.seriesIndex, text: t.label.style.text, rect: t.hostRect, labelRect: t.rect, align: n.style.align, verticalAlign: n.style.verticalAlign, labelLinePoints: gc(i && i.shape.points) } } function vc(t, e, n) { for (var i = 0; i < n.length; i++) { var r = n[i]; null != e[r] && (t[r] = e[r]) } } function mc(t, e) { function n(e, n) { var i = []; return e.eachComponent({mainType: "series", subType: t, query: n}, function (t) { i.push(t.seriesIndex) }), i } y([[t + "ToggleSelect", "toggleSelect"], [t + "Select", "select"], [t + "UnSelect", "unselect"]], function (t) { e(t[0], function (e, i, r) { e = h({}, e), r.dispatchAction(h(e, {type: t[1], seriesIndex: n(i, e)})) }) }) } function xc(t, e, n, i, r) { var o = t + e; n.isSilent(o) || i.eachComponent({mainType: "series", subType: "pie"}, function (t) { for (var e = t.seriesIndex, i = r.selected, a = 0; a < i.length; a++) if (i[a].seriesIndex === e) { var s = t.getData(), l = lr(s, r.fromActionPayload); n.trigger(o, { type: o, seriesId: t.id, name: s.getName(M(l) ? l[0] : l), selected: h({}, t.option.selectedMap) }) } }) } function _c(t, e, n) { t.on("selectchanged", function (t) { var i = n.getModel(); t.isFromClick ? (xc("map", "selectchanged", e, i, t), xc("pie", "selectchanged", e, i, t)) : "select" === t.fromAction ? (xc("map", "selected", e, i, t), xc("pie", "selected", e, i, t)) : "unselect" === t.fromAction && (xc("map", "unselected", e, i, t), xc("pie", "unselected", e, i, t)) }) } function bc(t, e, n) { for (var i; t && (!e(t) || (i = t, !n));) t = t.__hostTarget || t.parent; return i } function wc(t, e) { if ("image" !== this.type) { var n = this.style; this.__isEmptyBrush ? (n.stroke = t, n.fill = e || "#fff", n.lineWidth = 2) : "line" === this.shape.symbolType ? n.stroke = t : n.fill = t, this.markRedraw() } } function Sc(t, e, n, i, r, o, a) { var s = 0 === t.indexOf("empty"); s && (t = t.substr(5, 1).toLowerCase() + t.substr(6)); var l; return l = 0 === t.indexOf("image://") ? is(t.slice(8), new $D(e, n, i, r), a ? "center" : "cover") : 0 === t.indexOf("path://") ? ns(t.slice(7), {}, new $D(e, n, i, r), a ? "center" : "cover") : new LE({ shape: { symbolType: t, x: e, y: n, width: i, height: r } }), l.__isEmptyBrush = s, l.setColor = wc, o && l.setColor(o), l } function Mc(t, e, n) { var i = null == e.x ? 0 : e.x, r = null == e.x2 ? 1 : e.x2, o = null == e.y ? 0 : e.y, a = null == e.y2 ? 0 : e.y2; e.global || (i = i * n.width + n.x, r = r * n.width + n.x, o = o * n.height + n.y, a = a * n.height + n.y), i = isNaN(i) ? 0 : i, r = isNaN(r) ? 1 : r, o = isNaN(o) ? 0 : o, a = isNaN(a) ? 0 : a; var s = t.createLinearGradient(i, o, r, a); return s } function Ic(t, e, n) { var i = n.width, r = n.height, o = Math.min(i, r), a = null == e.x ? .5 : e.x, s = null == e.y ? .5 : e.y, l = null == e.r ? .5 : e.r; e.global || (a = a * i + n.x, s = s * r + n.y, l *= o); var u = t.createRadialGradient(a, s, 0, a, s, l); return u } function Tc(t, e, n) { for (var i = "radial" === e.type ? Ic(t, e, n) : Mc(t, e, n), r = e.colorStops, o = 0; o < r.length; o++) i.addColorStop(r[o].offset, r[o].color); return i } function Cc(t, e) { if (t === e || !t && !e) return !1; if (!t || !e || t.length !== e.length) return !0; for (var n = 0; n < t.length; n++) if (t[n] !== e[n]) return !0; return !1 } function Ac(t, e) { return t && "solid" !== t && e > 0 ? (e = e || 1, "dashed" === t ? [4 * e, 2 * e] : "dotted" === t ? [e] : A(t) ? [t] : M(t) ? t : null) : null } function Dc(t) { var e = t.stroke; return !(null == e || "none" === e || !(t.lineWidth > 0)) } function Lc(t) { var e = t.fill; return null != e && "none" !== e } function kc(t, e) { if (null != e.fillOpacity && 1 !== e.fillOpacity) { var n = t.globalAlpha; t.globalAlpha = e.fillOpacity * e.opacity, t.fill(), t.globalAlpha = n } else t.fill() } function Pc(t, e) { if (null != e.strokeOpacity && 1 !== e.strokeOpacity) { var n = t.globalAlpha; t.globalAlpha = e.strokeOpacity * e.opacity, t.stroke(), t.globalAlpha = n } else t.stroke() } function Oc(t, e, n) { var i = Lr(e.image, e.__image, n); if (Pr(i)) { var r = t.createPattern(i, e.repeat || "repeat"); if ("function" == typeof DOMMatrix && r.setTransform) { var o = new DOMMatrix; o.rotateSelf(0, 0, (e.rotation || 0) / Math.PI * 180), o.scaleSelf(e.scaleX || 1, e.scaleY || 1), o.translateSelf(e.x || 0, e.y || 0), r.setTransform(o) } return r } } function Rc(t, e, n, i) { var r = Dc(n), o = Lc(n), a = n.strokePercent, s = 1 > a, l = !e.path; e.silent && !s || !l || e.createPathProxy(); var u = e.path || kE; if (!i) { var h = n.fill, c = n.stroke, p = o && !!h.colorStops, d = r && !!c.colorStops, f = o && !!h.image, g = r && !!c.image, y = void 0, m = void 0, x = void 0, _ = void 0, b = void 0; (p || d) && (b = e.getBoundingRect()), p && (y = e.__dirty ? Tc(t, h, b) : e.__canvasFillGradient, e.__canvasFillGradient = y), d && (m = e.__dirty ? Tc(t, c, b) : e.__canvasStrokeGradient, e.__canvasStrokeGradient = m), f && (x = e.__dirty || !e.__canvasFillPattern ? Oc(t, h, e) : e.__canvasFillPattern, e.__canvasFillPattern = x), g && (_ = e.__dirty || !e.__canvasStrokePattern ? Oc(t, c, e) : e.__canvasStrokePattern, e.__canvasStrokePattern = x), p ? t.fillStyle = y : f && (x ? t.fillStyle = x : o = !1), d ? t.strokeStyle = m : g && (_ ? t.strokeStyle = _ : r = !1) } var w = n.lineDash && n.lineWidth > 0 && Ac(n.lineDash, n.lineWidth), S = n.lineDashOffset, M = !!t.setLineDash, I = e.getGlobalScale(); if (u.setScale(I[0], I[1], e.segmentIgnoreThreshold), w) { var T = n.strokeNoScale && e.getLineScale ? e.getLineScale() : 1; T && 1 !== T && (w = v(w, function (t) { return t / T }), S /= T) } var C = !0; (l || e.__dirty & KA || w && !M && r) && (u.setDPR(t.dpr), s ? u.setContext(null) : (u.setContext(t), C = !1), u.reset(), w && !M && (u.setLineDash(w), u.setLineDashOffset(S)), e.buildPath(u, e.shape, i), u.toStatic(), e.pathUpdated()), C && u.rebuildPath(t, s ? a : 1), w && M && (t.setLineDash(w), t.lineDashOffset = S), i || (n.strokeFirst ? (r && Pc(t, n), o && kc(t, n)) : (o && kc(t, n), r && Pc(t, n))), w && M && t.setLineDash([]) } function zc(t, e, n) { var i = e.__image = Lr(n.image, e.__image, e, e.onload); if (i && Pr(i)) { var r = n.x || 0, o = n.y || 0, a = e.getWidth(), s = e.getHeight(), l = i.width / i.height; if (null == a && null != s ? a = s * l : null == s && null != a ? s = a / l : null == a && null == s && (a = i.width, s = i.height), n.sWidth && n.sHeight) { var u = n.sx || 0, h = n.sy || 0; t.drawImage(i, u, h, n.sWidth, n.sHeight, r, o, a, s) } else if (n.sx && n.sy) { var u = n.sx, h = n.sy, c = a - u, p = s - h; t.drawImage(i, u, h, c, p, r, o, a, s) } else t.drawImage(i, r, o, a, s) } } function Ec(t, e, n) { var i = n.text; if (null != i && (i += ""), i) { t.font = n.font || QD, t.textAlign = n.textAlign, t.textBaseline = n.textBaseline; var r = void 0; if (t.setLineDash) { var o = n.lineDash && n.lineWidth > 0 && Ac(n.lineDash, n.lineWidth), a = n.lineDashOffset; if (o) { var s = n.strokeNoScale && e.getLineScale ? e.getLineScale() : 1; s && 1 !== s && (o = v(o, function (t) { return t / s }), a /= s), t.setLineDash(o), t.lineDashOffset = a, r = !0 } } n.strokeFirst ? (Dc(n) && t.strokeText(i, n.x, n.y), Lc(n) && t.fillText(i, n.x, n.y)) : (Lc(n) && t.fillText(i, n.x, n.y), Dc(n) && t.strokeText(i, n.x, n.y)), r && t.setLineDash([]) } } function Nc(t, e, n, i, r) { var o = !1; if (!i && (n = n || {}, e === n)) return !1; if (i || e.opacity !== n.opacity) { o || (Xc(t, r), o = !0); var a = Math.max(Math.min(e.opacity, 1), 0); t.globalAlpha = isNaN(a) ? BL.opacity : a } (i || e.blend !== n.blend) && (o || (Xc(t, r), o = !0), t.globalCompositeOperation = e.blend || BL.blend); for (var s = 0; s < PE.length; s++) { var l = PE[s]; (i || e[l] !== n[l]) && (o || (Xc(t, r), o = !0), t[l] = t.dpr * (e[l] || 0)) } return (i || e.shadowColor !== n.shadowColor) && (o || (Xc(t, r), o = !0), t.shadowColor = e.shadowColor || BL.shadowColor), o } function Bc(t, e, n, i, r) { var o = Yc(e, r.inHover), a = i ? null : n && Yc(n, r.inHover) || {}; if (o === a) return !1; var s = Nc(t, o, a, i, r); if ((i || o.fill !== a.fill) && (s || (Xc(t, r), s = !0), t.fillStyle = o.fill), (i || o.stroke !== a.stroke) && (s || (Xc(t, r), s = !0), t.strokeStyle = o.stroke), (i || o.opacity !== a.opacity) && (s || (Xc(t, r), s = !0), t.globalAlpha = null == o.opacity ? 1 : o.opacity), e.hasStroke()) { var l = o.lineWidth, u = l / (o.strokeNoScale && e && e.getLineScale ? e.getLineScale() : 1); t.lineWidth !== u && (s || (Xc(t, r), s = !0), t.lineWidth = u) } for (var h = 0; h < OE.length; h++) { var c = OE[h], p = c[0]; (i || o[p] !== a[p]) && (s || (Xc(t, r), s = !0), t[p] = o[p] || c[1]) } return s } function Vc(t, e, n, i, r) { return Nc(t, Yc(e, r.inHover), n && Yc(n, r.inHover), i, r) } function Fc(t, e) { var n = e.transform, i = t.dpr || 1; n ? t.setTransform(i * n[0], i * n[1], i * n[2], i * n[3], i * n[4], i * n[5]) : t.setTransform(i, 0, 0, i, 0, 0) } function Gc(t, e, n) { for (var i = !1, r = 0; r < t.length; r++) { var o = t[r]; i = i || o.isZeroArea(), Fc(e, o), e.beginPath(), o.buildPath(e, o.shape), e.clip() } n.allClipped = i } function Hc(t, e) { return t && e ? t[0] !== e[0] || t[1] !== e[1] || t[2] !== e[2] || t[3] !== e[3] || t[4] !== e[4] || t[5] !== e[5] : t || e ? !0 : !1 } function Wc(t) { var e = Lc(t), n = Dc(t); return !(t.lineDash || !(+e ^ +n) || e && "string" != typeof t.fill || n && "string" != typeof t.stroke || t.strokePercent < 1 || t.strokeOpacity < 1 || t.fillOpacity < 1) } function Xc(t, e) { e.batchFill && t.fill(), e.batchStroke && t.stroke(), e.batchFill = "", e.batchStroke = "" } function Yc(t, e) { return e ? t.__hoverStyle || t.style : t.style } function Zc(t, e) { Uc(t, e, {inHover: !1, viewWidth: 0, viewHeight: 0}, !0) } function Uc(t, e, n, i) { var r = e.transform; if (!e.shouldBePainted(n.viewWidth, n.viewHeight, !1, !1)) return e.__dirty &= ~jA, void (e.__isRendered = !1); var o = e.__clipPaths, a = n.prevElClipPaths, s = !1, l = !1; if ((!a || Cc(o, a)) && (a && a.length && (Xc(t, n), t.restore(), l = s = !0, n.prevElClipPaths = null, n.allClipped = !1, n.prevEl = null), o && o.length && (Xc(t, n), t.save(), Gc(o, t, n), s = !0), n.prevElClipPaths = o), n.allClipped) return void (e.__isRendered = !1); e.beforeBrush && e.beforeBrush(), e.innerBeforeBrush(); var u = n.prevEl; u || (l = s = !0); var h = e instanceof Bk && e.autoBatch && Wc(e.style); s || Hc(r, u.transform) ? (Xc(t, n), Fc(t, e)) : h || Xc(t, n); var c = Yc(e, n.inHover); e instanceof Bk ? (n.lastDrawType !== RE && (l = !0, n.lastDrawType = RE), Bc(t, e, u, l, n), h && (n.batchFill || n.batchStroke) || t.beginPath(), Rc(t, e, c, h), h && (n.batchFill = c.fill || "", n.batchStroke = c.stroke || "")) : e instanceof Fk ? (n.lastDrawType !== EE && (l = !0, n.lastDrawType = EE), Bc(t, e, u, l, n), Ec(t, e, c)) : e instanceof Wk ? (n.lastDrawType !== zE && (l = !0, n.lastDrawType = zE), Vc(t, e, u, l, n), zc(t, e, c)) : e instanceof vO && (n.lastDrawType !== NE && (l = !0, n.lastDrawType = NE), jc(t, e, n)), h && i && Xc(t, n), e.innerAfterBrush(), e.afterBrush && e.afterBrush(), n.prevEl = e, e.__dirty = 0, e.__isRendered = !0 } function jc(t, e, n) { var i = e.getDisplayables(), r = e.getTemporalDisplayables(); t.save(); var o, a, s = { prevElClipPaths: null, prevEl: null, allClipped: !1, viewWidth: n.viewWidth, viewHeight: n.viewHeight, inHover: n.inHover }; for (o = e.getCursor(), a = i.length; a > o; o++) { var l = i[o]; l.beforeBrush && l.beforeBrush(), l.innerBeforeBrush(), Uc(t, l, s, o === a - 1), l.innerAfterBrush(), l.afterBrush && l.afterBrush(), s.prevEl = l } for (var u = 0, h = r.length; h > u; u++) { var l = r[u]; l.beforeBrush && l.beforeBrush(), l.innerBeforeBrush(), Uc(t, l, s, u === h - 1), l.innerAfterBrush(), l.afterBrush && l.afterBrush(), s.prevEl = l } e.clearTemporalDisplayables(), e.notClear = !0, t.restore() } function qc(t, e) { function n(t) { function e() { for (var t = 1, e = 0, n = m.length; n > e; ++e) t = Fi(t, m[e]); for (var i = 1, e = 0, n = v.length; n > e; ++e) i = Fi(i, v[e].length); t *= i; var r = x * m.length * v.length; return { width: Math.max(1, Math.min(t, s.maxTileWidth)), height: Math.max(1, Math.min(r, s.maxTileHeight)) } } function n() { function t(t, e, n, a, l) { var u = o ? 1 : i, h = Sc(l, t * u, e * u, n * u, a * u, s.color, s.symbolKeepAspect); o ? b.appendChild(r.painter.paintOne(h)) : Zc(f, h) } f && (f.clearRect(0, 0, _.width, _.height), s.backgroundColor && (f.fillStyle = s.backgroundColor, f.fillRect(0, 0, _.width, _.height))); for (var e = 0, n = 0; n < y.length; ++n) e += y[n]; if (!(0 >= e)) for (var a = -x, l = 0, u = 0, h = 0; a < w.height;) { if (l % 2 === 0) { for (var c = u / 2 % v.length, p = 0, d = 0, m = 0; p < 2 * w.width;) { for (var S = 0, n = 0; n < g[h].length; ++n) S += g[h][n]; if (0 >= S) break; if (d % 2 === 0) { var M = .5 * (1 - s.symbolSize), I = p + g[h][d] * M, T = a + y[l] * M, C = g[h][d] * s.symbolSize, A = y[l] * s.symbolSize, D = m / 2 % v[c].length; t(I, T, C, A, v[c][D]) } p += g[h][d], ++m, ++d, d === g[h].length && (d = 0) } ++h, h === g.length && (h = 0) } a += y[l], ++u, ++l, l === y.length && (l = 0) } } for (var a = [i], l = !0, u = 0; u < FE.length; ++u) { var h = s[FE[u]], c = typeof h; if (null != h && !M(h) && "string" !== c && "number" !== c && "boolean" !== c) { l = !1; break } a.push(h) } var p; if (l) { p = a.join(",") + (o ? "-svg" : ""); var d = VE.get(p); d && (o ? t.svgElement = d : t.image = d) } var f, g = $c(s.dashArrayX), y = Jc(s.dashArrayY), v = Kc(s.symbol), m = Qc(g), x = tp(y), _ = !o && mA(), b = o && r.painter.createSVGElement("g"), w = e(); _ && (_.width = w.width * i, _.height = w.height * i, f = _.getContext("2d")), n(), l && VE.put(p, _ || b), t.image = _, t.svgElement = b, t.svgWidth = w.width, t.svgHeight = w.height } if ("none" === t) return null; var i = e.getDevicePixelRatio(), r = e.getZr(), o = "svg" === r.painter.type; t.dirty && BE["delete"](t); var a = BE.get(t); if (a) return a; var s = c(t, { symbol: "rect", symbolSize: 1, symbolKeepAspect: !0, color: "rgba(0, 0, 0, 0.2)", backgroundColor: null, dashArrayX: 5, dashArrayY: 5, rotation: 0, maxTileWidth: 512, maxTileHeight: 512 }); "none" === s.backgroundColor && (s.backgroundColor = null); var l = {repeat: "repeat"}; return n(l), l.rotation = s.rotation, l.scaleX = l.scaleY = o ? 1 : 1 / i, BE.set(t, l), t.dirty = !1, l } function Kc(t) { if (!t || 0 === t.length) return [["rect"]]; if ("string" == typeof t) return [[t]]; for (var e = !0, n = 0; n < t.length; ++n) if ("string" != typeof t[n]) { e = !1; break } if (e) return Kc([t]); for (var i = [], n = 0; n < t.length; ++n) i.push("string" == typeof t[n] ? [t[n]] : t[n]); return i } function $c(t) { if (!t || 0 === t.length) return [[0, 0]]; if ("number" == typeof t) { var e = Math.ceil(t); return [[e, e]] } for (var n = !0, i = 0; i < t.length; ++i) if ("number" != typeof t[i]) { n = !1; break } if (n) return $c([t]); for (var r = [], i = 0; i < t.length; ++i) if ("number" == typeof t[i]) { var e = Math.ceil(t[i]); r.push([e, e]) } else { var e = v(t[i], function (t) { return Math.ceil(t) }); r.push(e.length % 2 === 1 ? e.concat(e) : e) } return r } function Jc(t) { if (!t || "object" == typeof t && 0 === t.length) return [0, 0]; if ("number" == typeof t) { var e = Math.ceil(t); return [e, e] } var n = v(t, function (t) { return Math.ceil(t) }); return t.length % 2 ? n.concat(n) : n } function Qc(t) { return v(t, function (t) { return tp(t) }) } function tp(t) { for (var e = 0, n = 0; n < t.length; ++n) e += t[n]; return t.length % 2 === 1 ? 2 * e : e } function ep(t, e) { t.eachRawSeries(function (n) { if (!t.isSeriesFiltered(n)) { var i = n.getData(); i.hasItemVisual() && i.each(function (t) { var n = i.getItemVisual(t, "decal"); if (n) { var r = i.ensureUniqueItemVisual(t, "style"); r.decal = qc(n, e) } }); var r = i.getVisual("decal"); if (r) { var o = i.getVisual("style"); o.decal = qc(r, e) } } }) } function np(t) { if (T(t)) { var e = new DOMParser; t = e.parseFromString(t, "text/xml") } var n = t; for (9 === n.nodeType && (n = n.firstChild); "svg" !== n.nodeName.toLowerCase() || 1 !== n.nodeType;) n = n.nextSibling; return n } function ip(t, e) { var n = t.getAttribute("gradientUnits"); "userSpaceOnUse" === n && (e.global = !0) } function rp(t, e) { for (var n = t.firstChild; n;) { if (1 === n.nodeType && "stop" === n.nodeName.toLocaleLowerCase()) { var i = n.getAttribute("offset"), r = void 0; r = i && i.indexOf("%") > 0 ? parseInt(i, 10) / 100 : i ? parseFloat(i) : 0; var o = {}; dp(n, o, o); var a = o.stopColor || n.getAttribute("stop-color") || "#000000"; e.colorStops.push({offset: r, color: a}) } n = n.nextSibling } } function op(t, e) { t && t.__inheritedStyle && (e.__inheritedStyle || (e.__inheritedStyle = {}), c(e.__inheritedStyle, t.__inheritedStyle)) } function ap(t) { for (var e = cp(t), n = [], i = 0; i < e.length; i += 2) { var r = parseFloat(e[i]), o = parseFloat(e[i + 1]); n.push([r, o]) } return n } function sp(t, e, n, i, r) { var o = e, a = o.__inheritedStyle = o.__inheritedStyle || {}, s = {}; 1 === t.nodeType && (pp(t, e), dp(t, a, s), i || fp(t, a, s)), o.style = o.style || {}, null != a.fill && (o.style.fill = up(o, "fill", a.fill, n)), null != a.stroke && (o.style.stroke = up(o, "stroke", a.stroke, n)), y(["lineWidth", "opacity", "fillOpacity", "strokeOpacity", "miterLimit", "fontSize"], function (t) { null != a[t] && (o.style[t] = parseFloat(a[t])) }), y(["lineDashOffset", "lineCap", "lineJoin", "fontWeight", "fontFamily", "fontStyle", "textAlign"], function (t) { null != a[t] && (o.style[t] = a[t]) }), r && (o.__selfStyle = s), a.lineDash && (o.style.lineDash = v(cp(a.lineDash), function (t) { return parseFloat(t) })), ("hidden" === a.visibility || "collapse" === a.visibility) && (o.invisible = !0), "none" === a.display && (o.ignore = !0) } function lp(t, e) { var n = e.__selfStyle; if (n) { var i = n.textBaseline, r = i; i && "auto" !== i ? "baseline" === i ? r = "alphabetic" : "before-edge" === i || "text-before-edge" === i ? r = "top" : "after-edge" === i || "text-after-edge" === i ? r = "bottom" : ("central" === i || "mathematical" === i) && (r = "middle") : r = "alphabetic", t.style.textBaseline = r } var o = e.__inheritedStyle; if (o) { var a = o.textAlign, s = a; a && ("middle" === a && (s = "center"), t.style.textAlign = s) } } function up(t, e, n, i) { var r = n && n.match(UE); if (r) { var o = W(r[1]); return void i.push([t, e, o]) } return "none" === n && (n = null), n } function hp(t, e) { for (var n = 0; n < e.length; n++) { var i = e[n]; i[0].style[i[1]] = t[i[2]] } } function cp(t) { return t.match(jE) || [] } function pp(t, e) { var n = t.getAttribute("transform"); if (n) { n = n.replace(/,/g, " "); var i = [], r = null; n.replace(qE, function (t, e, n) { return i.push(e, n), "" }); for (var o = i.length - 1; o > 0; o -= 2) { var a = i[o], s = i[o - 1], l = cp(a); switch (r = r || Gn(), s) { case"translate": Yn(r, r, [parseFloat(l[0]), parseFloat(l[1] || "0")]); break; case"scale": Un(r, r, [parseFloat(l[0]), parseFloat(l[1] || l[0])]); break; case"rotate": Zn(r, r, -parseFloat(l[0]) * KE); break; case"skewX": var u = Math.tan(parseFloat(l[0]) * KE); Xn(r, [1, 0, u, 1, 0, 0], r); break; case"skewY": var h = Math.tan(parseFloat(l[0]) * KE); Xn(r, [1, h, 0, 1, 0, 0], r); break; case"matrix": r[0] = parseFloat(l[0]), r[1] = parseFloat(l[1]), r[2] = parseFloat(l[2]), r[3] = parseFloat(l[3]), r[4] = parseFloat(l[4]), r[5] = parseFloat(l[5]) } } e.setLocalTransform(r) } } function dp(t, e, n) { var i = t.getAttribute("style"); if (i) { $E.lastIndex = 0; for (var r; null != (r = $E.exec(i));) { var o = r[1], a = q(GE, o) ? GE[o] : null; a && (e[a] = r[2]); var s = q(WE, o) ? WE[o] : null; s && (n[s] = r[2]) } } } function fp(t, e, n) { for (var i = 0; i < HE.length; i++) { var r = HE[i], o = t.getAttribute(r); null != o && (e[GE[r]] = o) } for (var i = 0; i < XE.length; i++) { var r = XE[i], o = t.getAttribute(r); null != o && (n[WE[r]] = o) } } function gp(t, e) { var n = e.width / t.width, i = e.height / t.height, r = Math.min(n, i); return { scale: r, x: -(t.x + t.width / 2) * r + (e.x + e.width / 2), y: -(t.y + t.height / 2) * r + (e.y + e.height / 2) } } function yp(t, e) { var n = new YE; return n.parse(t, e) } function vp(t, e) { return Math.abs(t - e) < JE } function mp(t, e, n) { var i = 0, r = t[0]; if (!r) return !1; for (var o = 1; o < t.length; o++) { var a = t[o]; i += xo(r[0], r[1], a[0], a[1], e, n), r = a } var s = t[0]; return vp(r[0], s[0]) && vp(r[1], s[1]) || (i += xo(r[0], r[1], s[0], s[1], e, n)), 0 !== i } function xp(t) { t.silent = !1, t.isGroup && t.traverse(function (t) { t.silent = !1 }) } function _p(t) { var e = [], n = Z(); return y(t, function (t) { if (null == t.namedFrom) { var i = new nN(t.name, t.el); e.push(i), n.set(t.name, i) } }), {regions: e, regionsMap: n} } function bp(t) { if (!t.UTF8Encoding) return t; var e = t, n = e.UTF8Scale; null == n && (n = 1024); for (var i = e.features, r = 0; r < i.length; r++) { var o = i[r], a = o.geometry; if ("Polygon" === a.type) for (var s = a.coordinates, l = 0; l < s.length; l++) s[l] = wp(s[l], a.encodeOffsets[l], n); else if ("MultiPolygon" === a.type) for (var s = a.coordinates, l = 0; l < s.length; l++) for (var u = s[l], h = 0; h < u.length; h++) u[h] = wp(u[h], a.encodeOffsets[l][h], n) } return e.UTF8Encoding = !1, e } function wp(t, e, n) { for (var i = [], r = e[0], o = e[1], a = 0; a < t.length; a += 2) { var s = t.charCodeAt(a) - 64, l = t.charCodeAt(a + 1) - 64; s = s >> 1 ^ -(1 & s), l = l >> 1 ^ -(1 & l), s += r, l += o, r = s, o = l, i.push([s / n, l / n]) } return i } function Sp(t, e) { return t = bp(t), v(x(t.features, function (t) { return t.geometry && t.properties && t.geometry.coordinates.length > 0 }), function (t) { var n = t.properties, i = t.geometry, r = []; if ("Polygon" === i.type) { var o = i.coordinates; r.push({type: "polygon", exterior: o[0], interiors: o.slice(1)}) } if ("MultiPolygon" === i.type) { var o = i.coordinates; y(o, function (t) { t[0] && r.push({type: "polygon", exterior: t[0], interiors: t.slice(1)}) }) } var a = new eN(n[e || "name"], r, n.cp); return a.properties = n, a }) } function Mp(t, e) { if ("china" === t) { for (var n = 0; n < e.length; n++) if (e[n].name === aN) return; e.push(new eN(aN, v(sN, function (t) { return {type: "polygon", exterior: t} }), oN)) } } function Ip(t, e) { if ("china" === t) { var n = hN[e.name]; if (n) { var i = e.getCenter(); i[0] += n[0] / 10.5, i[1] += -n[1] / 14, e.setCenter(i) } } } function Tp(t, e) { if ("world" === t) { var n = cN[e.name]; if (n) { var i = [n[0], n[1]]; e.setCenter(i) } } } function Cp(t, e) { "china" === t && "台湾" === e.name && e.geometries.push({type: "polygon", exterior: pN[0]}) } function Ap(t) { for (var e, n = 0; n < t.length; n++) { var i = t[n].getBoundingRect(); e = e || i.clone(), e.union(i) } return e } function Dp(t) { return T(t) ? "undefined" != typeof JSON && JSON.parse ? JSON.parse(t) : new Function("return (" + t + ");")() : t } function Lp(t) { return function () { for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; return this.isDisposed() ? void 0 : Pp(this, t, e) } } function kp(t) { return function () { for (var e = [], n = 0; n < arguments.length; n++) e[n] = arguments[n]; return Pp(this, t, e) } } function Pp(t, e, n) { return n[0] = n[0] && n[0].toLowerCase(), LA.prototype[e].apply(t, n) } function Op(t, e, n) { var i = Np(t); if (i) return i; var r = new xB(t, e, n); return r.id = "ec_" + OB++, kB[r.id] = r, dr(t, zB, r.id), gB(r), mN(TB, function (t) { t(r) }), r } function Rp(t) { if (M(t)) { var e = t; t = null, mN(e, function (e) { null != e.group && (t = e.group) }), t = t || "g_" + RB++, mN(e, function (e) { e.group = t }) } return PB[t] = !0, t } function zp(t) { PB[t] = !1 } function Ep(t) { "string" == typeof t ? t = kB[t] : t instanceof xB || (t = Np(t)), t instanceof xB && !t.isDisposed() && t.dispose() } function Np(t) { return kB[fr(t, zB)] } function Bp(t) { return kB[t] } function Vp(t, e) { DB[t] = e } function Fp(t) { bN(IB, t) < 0 && IB.push(t) } function Gp(t, e) { qp(MB, t, e, DN) } function Hp(t) { bN(TB, t) < 0 && t && TB.push(t) } function Wp(t) { bN(CB, t) < 0 && t && CB.push(t) } function Xp(t, e, n) { "function" == typeof e && (n = e, e = ""); var i = _N(t) ? t.type : [t, t = {event: e}][0]; t.event = (t.event || i).toLowerCase(), e = t.event, SB[e] || (vN(YN.test(i) && YN.test(e)), wB[i] || (wB[i] = { action: n, actionInfo: t }), SB[e] = i) } function Yp(t, e) { UR.register(t, e) } function Zp(t) { var e = UR.get(t); return e ? e.getDimensionsInfo ? e.getDimensionsInfo() : e.dimensions.slice() : void 0 } function Up(t, e) { qp(AB, t, e, kN, "layout") } function jp(t, e) { qp(AB, t, e, RN, "visual") } function qp(t, e, n, i, r) { if ((xN(e) || _N(e)) && (n = e, e = i), !(bN(NB, n) >= 0)) { NB.push(n); var o = Wz.wrapStageHandler(n, r); o.__prio = e, o.__raw = n, t.push(o) } } function Kp(t, e) { LB[t] = e } function $p(t) { r("createCanvas", t) } function Jp(t, e, n) { yN.registerMap(t, e, n) } function Qp(t) { return yN.getMapForUser(t) } function td(t) { return null == t ? 0 : t.length || 1 } function ed(t) { return t } function nd(t) { var e = {}, n = e.encode = {}, i = Z(), r = [], o = [], a = e.userOutput = {dimensionNames: t.dimensions.slice(), encode: {}}; y(t.dimensions, function (e) { var s = t.getDimensionInfo(e), l = s.coordDim; if (l) { var u = s.coordDimIndex; id(n, l)[u] = e, s.isExtraCoord || (i.set(l, 1), od(s.type) && (r[0] = e), id(a.encode, l)[u] = s.index), s.defaultTooltip && o.push(e) } bR.each(function (t, e) { var i = id(n, e), r = s.otherDims[e]; null != r && r !== !1 && (i[r] = s.name) }) }); var s = [], l = {}; i.each(function (t, e) { var i = n[e]; l[e] = i[0], s = s.concat(i) }), e.dataDimsOnCoord = s, e.encodeFirstDimNotExtra = l; var u = n.label; u && u.length && (r = u.slice()); var h = n.tooltip; return h && h.length ? o = h.slice() : o.length || (o = r.slice()), n.defaultedLabel = r, n.defaultedTooltip = o, e } function id(t, e) { return t.hasOwnProperty(e) || (t[e] = []), t[e] } function rd(t) { return "category" === t ? "ordinal" : "time" === t ? "time" : "float" } function od(t) { return !("ordinal" === t || "time" === t) } function ad(t, e, n) { function i(t, e, n) { null != bR.get(e) ? t.otherDims[e] = n : (t.coordDim = e, t.coordDimIndex = n, a.set(e, !0)) } Cu(e) || (e = Du(e)), n = n || {}, t = (t || []).slice(); for (var r = (n.dimsDef || []).slice(), o = Z(), a = Z(), l = [], u = sd(e, t, r, n.dimCount), p = 0; u > p; p++) { var d = r[p], f = r[p] = h({}, D(d) ? d : {name: d}), g = f.name, v = l[p] = new eV; null != g && null == o.get(g) && (v.name = v.displayName = g, o.set(g, p)), null != f.type && (v.type = f.type), null != f.displayName && (v.displayName = f.displayName) } var m = n.encodeDef; !m && n.encodeDefaulter && (m = n.encodeDefaulter(e, u)); var x = Z(m); x.each(function (t, e) { var n = Hi(t).slice(); if (1 === n.length && !T(n[0]) && n[0] < 0) return void x.set(e, !1); var r = x.set(e, []); y(n, function (t, n) { var a = T(t) ? o.get(t) : t; null != a && u > a && (r[n] = a, i(l[a], e, n)) }) }); var _ = 0; y(t, function (t) { var e, n, r, o; if (T(t)) e = t, o = {}; else { o = t, e = o.name; var a = o.ordinalMeta; o.ordinalMeta = null, o = s(o), o.ordinalMeta = a, n = o.dimsDef, r = o.otherDims, o.name = o.coordDim = o.coordDimIndex = o.dimsDef = o.otherDims = null } var u = x.get(e); if (u !== !1) { if (u = Hi(u), !u.length) for (var h = 0; h < (n && n.length || 1); h++) { for (; _ < l.length && null != l[_].coordDim;) _++; _ < l.length && u.push(_++) } y(u, function (t, a) { var s = l[t]; if (i(c(s, o), e, a), null == s.name && n) { var u = n[a]; !D(u) && (u = {name: u}), s.name = s.displayName = u.name, s.defaultTooltip = u.defaultTooltip } r && c(s.otherDims, r) }) } }); var b = n.generateCoord, w = n.generateCoordCount, S = null != w; w = b ? w || 1 : 0; for (var M = b || "value", I = 0; u > I; I++) { var v = l[I] = l[I] || new eV, C = v.coordDim; null == C && (v.coordDim = ld(M, a, S), v.coordDimIndex = 0, (!b || 0 >= w) && (v.isExtraCoord = !0), w--), null == v.name && (v.name = ld(v.coordDim, o, !1)), null != v.type || Xl(e, I) !== LR.Must && (!v.isExtraCoord || null == v.otherDims.itemName && null == v.otherDims.seriesName) || (v.type = "ordinal") } return l } function sd(t, e, n, i) { var r = Math.max(t.dimensionsDetectedCount || 1, e.length, n.length, i || 0); return y(e, function (t) { var e; D(t) && (e = t.dimsDef) && (r = Math.max(r, e.length)) }), r } function ld(t, e, n) { if (n || null != e.get(t)) { for (var i = 0; null != e.get(t + i);) i++; t += i } return e.set(t, !0), t } function ud(t, e) { return e = e || {}, ad(e.coordDimensions || [], t, { dimsDef: e.dimensionsDefine || t.dimensionsDefine, encodeDef: e.encodeDefine || t.encodeDefine, dimCount: e.dimensionsCount, encodeDefaulter: e.encodeDefaulter, generateCoord: e.generateCoord, generateCoordCount: e.generateCoordCount }) } function hd(t) { var e = t.get("coordinateSystem"), n = new gV(e), i = yV[e]; return i ? (i(t, n, n.axisMap, n.categoryAxisMap), n) : void 0 } function cd(t) { return "category" === t.get("type") } function pd(t, e, n) { n = n || {}; var i, r, o, a, s = n.byIndex, l = n.stackedCoordDimension, u = !(!t || !t.get("stack")); if (y(e, function (t, n) { T(t) && (e[n] = t = {name: t}), u && !t.isExtraCoord && (s || i || !t.ordinalMeta || (i = t), r || "ordinal" === t.type || "time" === t.type || l && l !== t.coordDim || (r = t)) }), !r || s || i || (s = !0), r) { o = "__\x00ecstackresult", a = "__\x00ecstackedover", i && (i.createInvertedIndices = !0); var h = r.coordDim, c = r.type, p = 0; y(e, function (t) { t.coordDim === h && p++ }), e.push({ name: o, coordDim: h, coordDimIndex: p, type: c, isExtraCoord: !0, isCalculationCoord: !0 }), p++, e.push({name: a, coordDim: a, coordDimIndex: p, type: c, isExtraCoord: !0, isCalculationCoord: !0}) } return { stackedDimension: r && r.name, stackedByDimension: i && i.name, isStackedByIndex: s, stackedOverDimension: a, stackResultDimension: o } } function dd(t, e) { return !!e && e === t.getCalculationInfo("stackedDimension") } function fd(t, e) { return dd(t, e) ? t.getCalculationInfo("stackResultDimension") : e } function gd(t, e, n) { n = n || {}, Cu(t) || (t = Du(t)); var i, r = e.get("coordinateSystem"), o = UR.get(r), a = hd(e); a && a.coordSysDims && (i = v(a.coordSysDims, function (t) { var e = {name: t}, n = a.axisMap.get(t); if (n) { var i = n.get("type"); e.type = rd(i) } return e })), i || (i = o && (o.getDimensionsInfo ? o.getDimensionsInfo() : o.dimensions.slice()) || ["x", "y"]); var s, l, u = n.useEncodeDefaulter, h = ud(t, { coordDimensions: i, generateCoord: n.generateCoord, encodeDefaulter: I(u) ? u : u ? S(Fl, i, e) : null }); a && y(h, function (t, e) { var i = t.coordDim, r = a.categoryAxisMap.get(i); r && (null == s && (s = e), t.ordinalMeta = r.getOrdinalMeta(), n.createInvertedIndices && (t.createInvertedIndices = !0)), null != t.otherDims.itemName && (l = !0) }), l || null == s || (h[s].otherDims.itemName = 0); var c = pd(e, h), p = new fV(h, e); p.setCalculationInfo(c); var d = null != s && yd(t) ? function (t, e, n, i) { return i === s ? n : this.defaultDimValueGetter(t, e, n, i) } : null; return p.hasItemOption = !1, p.initData(t, null, d), p } function yd(t) { if (t.sourceFormat === wR) { var e = vd(t.data || []); return null != e && !M(Xi(e)) } } function vd(t) { for (var e = 0; e < t.length && null == t[e];) e++; return t[e] } function md(t) { return D(t) && null != t.value ? t.value : t + "" } function xd(t, e, n, i) { var r = {}, o = t[1] - t[0], a = r.interval = Oi(o / e, !0); null != n && n > a && (a = r.interval = n), null != i && a > i && (a = r.interval = i); var s = r.intervalPrecision = _d(a), l = r.niceTickExtent = [xV(Math.ceil(t[0] / a) * a, s), xV(Math.floor(t[1] / a) * a, s)]; return wd(l, t), r } function _d(t) { return Si(t) + 2 } function bd(t, e, n) { t[e] = Math.max(Math.min(t[e], n[1]), n[0]) } function wd(t, e) { !isFinite(t[0]) && (t[0] = e[0]), !isFinite(t[1]) && (t[1] = e[1]), bd(t, 0, e), bd(t, 1, e), t[0] > t[1] && (t[0] = t[1]) } function Sd(t, e) { return t >= e[0] && t <= e[1] } function Md(t, e) { return e[1] === e[0] ? .5 : (t - e[0]) / (e[1] - e[0]) } function Id(t, e) { return t * (e[1] - e[0]) + e[0] } function Td(t) { return t.get("stack") || SV + t.seriesIndex } function Cd(t) { return t.dim + t.index } function Ad(t) { var e = [], n = t.axis, i = "axis0"; if ("category" === n.type) { for (var r = n.getBandWidth(), o = 0; o < t.count; o++) e.push(c({ bandWidth: r, axisKey: i, stackId: SV + o }, t)); for (var a = Pd(e), s = [], o = 0; o < t.count; o++) { var l = a[i][SV + o]; l.offsetCenter = l.offset + l.width / 2, s.push(l) } return s } } function Dd(t, e) { var n = []; return e.eachSeriesByType(t, function (t) { zd(t) && !Ed(t) && n.push(t) }), n } function Ld(t) { var e = {}; y(t, function (t) { var n = t.coordinateSystem, i = n.getBaseAxis(); if ("time" === i.type || "value" === i.type) for (var r = t.getData(), o = i.dim + "_" + i.index, a = r.mapDimension(i.dim), s = 0, l = r.count(); l > s; ++s) { var u = r.get(a, s); e[o] ? e[o].push(u) : e[o] = [u] } }); var n = {}; for (var i in e) if (e.hasOwnProperty(i)) { var r = e[i]; if (r) { r.sort(function (t, e) { return t - e }); for (var o = null, a = 1; a < r.length; ++a) { var s = r[a] - r[a - 1]; s > 0 && (o = null === o ? s : Math.min(o, s)) } n[i] = o } } return n } function kd(t) { var e = Ld(t), n = []; return y(t, function (t) { var i, r = t.coordinateSystem, o = r.getBaseAxis(), a = o.getExtent(); if ("category" === o.type) i = o.getBandWidth(); else if ("value" === o.type || "time" === o.type) { var s = o.dim + "_" + o.index, l = e[s], u = Math.abs(a[1] - a[0]), h = o.scale.getExtent(), c = Math.abs(h[1] - h[0]); i = l ? u / c * l : u } else { var p = t.getData(); i = Math.abs(a[1] - a[0]) / p.count() } var d = _i(t.get("barWidth"), i), f = _i(t.get("barMaxWidth"), i), g = _i(t.get("barMinWidth") || 1, i), y = t.get("barGap"), v = t.get("barCategoryGap"); n.push({ bandWidth: i, barWidth: d, barMaxWidth: f, barMinWidth: g, barGap: y, barCategoryGap: v, axisKey: Cd(o), stackId: Td(t) }) }), Pd(n) } function Pd(t) { var e = {}; y(t, function (t) { var n = t.axisKey, i = t.bandWidth, r = e[n] || { bandWidth: i, remainedWidth: i, autoWidthCount: 0, categoryGap: null, gap: "20%", stacks: {} }, o = r.stacks; e[n] = r; var a = t.stackId; o[a] || r.autoWidthCount++, o[a] = o[a] || {width: 0, maxWidth: 0}; var s = t.barWidth; s && !o[a].width && (o[a].width = s, s = Math.min(r.remainedWidth, s), r.remainedWidth -= s); var l = t.barMaxWidth; l && (o[a].maxWidth = l); var u = t.barMinWidth; u && (o[a].minWidth = u); var h = t.barGap; null != h && (r.gap = h); var c = t.barCategoryGap; null != c && (r.categoryGap = c) }); var n = {}; return y(e, function (t, e) { n[e] = {}; var i = t.stacks, r = t.bandWidth, o = t.categoryGap; if (null == o) { var a = b(i).length; o = Math.max(35 - 4 * a, 15) + "%" } var s = _i(o, r), l = _i(t.gap, 1), u = t.remainedWidth, h = t.autoWidthCount, c = (u - s) / (h + (h - 1) * l); c = Math.max(c, 0), y(i, function (t) { var e = t.maxWidth, n = t.minWidth; if (t.width) { var i = t.width; e && (i = Math.min(i, e)), n && (i = Math.max(i, n)), t.width = i, u -= i + l * i, h-- } else { var i = c; e && i > e && (i = Math.min(e, u)), n && n > i && (i = n), i !== c && (t.width = i, u -= i + l * i, h--) } }), c = (u - s) / (h + (h - 1) * l), c = Math.max(c, 0); var p, d = 0; y(i, function (t) { t.width || (t.width = c), p = t, d += t.width * (1 + l) }), p && (d -= p.width * l); var f = -d / 2; y(i, function (t, i) { n[e][i] = n[e][i] || {bandWidth: r, offset: f, width: t.width}, f += t.width * (1 + l) }) }), n } function Od(t, e, n) { if (t && e) { var i = t[Cd(e)]; return null != i && null != n ? i[Td(n)] : i } } function Rd(t, e) { var n = Dd(t, e), i = kd(n), r = {}; y(n, function (t) { var e = t.getData(), n = t.coordinateSystem, o = n.getBaseAxis(), a = Td(t), s = i[Cd(o)][a], l = s.offset, u = s.width, h = n.getOtherAxis(o), c = t.get("barMinHeight") || 0; r[a] = r[a] || [], e.setLayout({bandWidth: s.bandWidth, offset: l, size: u}); for (var p = e.mapDimension(h.dim), d = e.mapDimension(o.dim), f = dd(e, p), g = h.isHorizontal(), y = Nd(o, h, f), v = 0, m = e.count(); m > v; v++) { var x = e.get(p, v), _ = e.get(d, v), b = x >= 0 ? "p" : "n", w = y; f && (r[a][_] || (r[a][_] = {p: y, n: y}), w = r[a][_][b]); var S = void 0, M = void 0, I = void 0, T = void 0; if (g) { var C = n.dataToPoint([x, _]); S = w, M = C[1] + l, I = C[0] - y, T = u, Math.abs(I) < c && (I = (0 > I ? -1 : 1) * c), isNaN(I) || f && (r[a][_][b] += I) } else { var C = n.dataToPoint([_, x]); S = C[0] + l, M = w, I = u, T = C[1] - y, Math.abs(T) < c && (T = (0 >= T ? -1 : 1) * c), isNaN(T) || f && (r[a][_][b] += T) } e.setItemLayout(v, {x: S, y: M, width: I, height: T}) } }) } function zd(t) { return t.coordinateSystem && "cartesian2d" === t.coordinateSystem.type } function Ed(t) { return t.pipelineContext && t.pipelineContext.large } function Nd(t, e) { return e.toGlobalCoord(e.dataToCoord("log" === e.type ? 1 : 0)) } function Bd(t, e, n, i) { var r = Li(e), o = Li(n), a = function (t) { return nl(r, t, i) === nl(o, t, i) }, s = function () { return a("year") }, l = function () { return s() && a("month") }, u = function () { return l() && a("day") }, h = function () { return u() && a("hour") }, c = function () { return h() && a("minute") }, p = function () { return c() && a("second") }, d = function () { return p() && a("millisecond") }; switch (t) { case"year": return s(); case"month": return l(); case"day": return u(); case"hour": return h(); case"minute": return c(); case"second": return p(); case"millisecond": return d() } } function Vd(t) { return t /= JO, t > 16 ? 16 : t > 7.5 ? 7 : t > 3.5 ? 4 : t > 1.5 ? 2 : 1 } function Fd(t) { var e = 30 * JO; return t /= e, t > 6 ? 6 : t > 3 ? 3 : t > 2 ? 2 : 1 } function Gd(t) { return t /= $O, t > 12 ? 12 : t > 6 ? 6 : t > 3.5 ? 4 : t > 2 ? 2 : 1 } function Hd(t, e) { return t /= e ? KO : qO, t > 30 ? 30 : t > 20 ? 20 : t > 15 ? 15 : t > 10 ? 10 : t > 5 ? 5 : t > 2 ? 2 : 1 } function Wd(t) { return Oi(t, !0) } function Xd(t, e, n) { var i = new Date(t); switch (Ks(e)) { case"year": case"month": i[cl(n)](0); case"day": i[pl(n)](1); case"hour": i[dl(n)](0); case"minute": i[fl(n)](0); case"second": i[gl(n)](0), i[yl(n)](0) } return i.getTime() } function Yd(t, e, n, i) { function r(t, e, n, r, o, a, s) { for (var l = new Date(e), u = e, h = l[r](); n > u && u <= i[1];) s.push({value: u}), h += t, l[o](h), u = l.getTime(); s.push({value: u, notAdd: !0}) } function o(t, o, a) { var s = [], l = !o.length; if (!Bd(Ks(t), i[0], i[1], n)) { l && (o = [{value: Xd(new Date(i[0]), t, n)}, {value: i[1]}]); for (var u = 0; u < o.length - 1; u++) { var h = o[u].value, c = o[u + 1].value; if (h !== c) { var p = void 0, d = void 0, f = void 0, g = !1; switch (t) { case"year": p = Math.max(1, Math.round(e / JO / 365)), d = il(n), f = hl(n); break; case"half-year": case"quarter": case"month": p = Fd(e), d = rl(n), f = cl(n); break; case"week": case"half-week": case"day": p = Vd(e, 31), d = ol(n), f = pl(n), g = !0; break; case"half-day": case"quarter-day": case"hour": p = Gd(e), d = al(n), f = dl(n); break; case"minute": p = Hd(e, !0), d = sl(n), f = fl(n); break; case"second": p = Hd(e, !1), d = ll(n), f = gl(n); break; case"millisecond": p = Wd(e), d = ul(n), f = yl(n) } r(p, h, c, d, f, g, s), "year" === t && a.length > 1 && 0 === u && a.unshift({value: a[0].value - p}) } } for (var u = 0; u < s.length; u++) a.push(s[u]); return s } } for (var a = 1e4, s = rR, l = 0, u = [], h = [], c = 0, p = 0, d = 0; d < s.length && l++ < a; ++d) { var f = Ks(s[d]); if ($s(s[d])) { o(s[d], u[u.length - 1] || [], h); var g = s[d + 1] ? Ks(s[d + 1]) : null; if (f !== g) { if (h.length) { p = c, h.sort(function (t, e) { return t.value - e.value }); for (var y = [], m = 0; m < h.length; ++m) { var _ = h[m].value; (0 === m || h[m - 1].value !== _) && (y.push(h[m]), _ >= i[0] && _ <= i[1] && c++) } var b = (i[1] - i[0]) / e; if (c > 1.5 * b && p > b / 1.5) break; if (u.push(y), c > b || t === s[d]) break } h = [] } } } for (var w = x(v(u, function (t) { return x(t, function (t) { return t.value >= i[0] && t.value <= i[1] && !t.notAdd }) }), function (t) { return t.length > 0 }), S = [], M = w.length - 1, d = 0; d < w.length; ++d) for (var I = w[d], T = 0; T < I.length; ++T) S.push({ value: I[T].value, level: M - d }); S.sort(function (t, e) { return t.value - e.value }); for (var C = [], d = 0; d < S.length; ++d) (0 === d || S[d].value !== S[d - 1].value) && C.push(S[d]); return C } function Zd(t, e) { return PV(t, Si(e)) } function Ud(t, e, n) { var i = t.rawExtentInfo; return i ? i : (i = new VV(t, e, n), t.rawExtentInfo = i, i) } function jd(t, e) { return null == e ? null : E(e) ? 0 / 0 : t.parse(e) } function qd(t, e) { var n = t.type, i = Ud(t, e, t.getExtent()).calculate(); t.setBlank(i.isBlank); var r = i.min, o = i.max, a = e.ecModel; if (a && "time" === n) { var s = Dd("bar", a), l = !1; if (y(s, function (t) { l = l || t.getBaseAxis() === e.axis }), l) { var u = kd(s), h = Kd(r, o, e, u); r = h.min, o = h.max } } return {extent: [r, o], fixMin: i.minFixed, fixMax: i.maxFixed} } function Kd(t, e, n, i) { var r = n.axis.getExtent(), o = r[1] - r[0], a = Od(i, n.axis); if (void 0 === a) return {min: t, max: e}; var s = 1 / 0; y(a, function (t) { s = Math.min(t.offset, s) }); var l = -1 / 0; y(a, function (t) { l = Math.max(t.offset + t.width, l) }), s = Math.abs(s), l = Math.abs(l); var u = s + l, h = e - t, c = 1 - (s + l) / o, p = h / c - h; return e += p * (l / u), t -= p * (s / u), {min: t, max: e} } function $d(t, e) { var n = qd(t, e), i = n.extent, r = e.get("splitNumber"); t instanceof NV && (t.base = e.get("logBase")); var o = t.type; t.setExtent(i[0], i[1]), t.niceExtent({ splitNumber: r, fixMin: n.fixMin, fixMax: n.fixMax, minInterval: "interval" === o || "time" === o ? e.get("minInterval") : null, maxInterval: "interval" === o || "time" === o ? e.get("maxInterval") : null }); var a = e.get("interval"); null != a && t.setInterval && t.setInterval(a) } function Jd(t, e) { if (e = e || t.get("type")) switch (e) { case"category": return new _V({ ordinalMeta: t.getOrdinalMeta ? t.getOrdinalMeta() : t.getCategories(), extent: [1 / 0, -1 / 0] }); case"time": return new AV({locale: t.ecModel.getLocaleModel(), useUTC: t.ecModel.get("useUTC")}); default: return new (vV.getClass(e) || wV) } } function Qd(t) { var e = t.scale.getExtent(), n = e[0], i = e[1]; return !(n > 0 && i > 0 || 0 > n && 0 > i) } function tf(t) { var e = t.getLabelModel().get("formatter"), n = "category" === t.type ? t.scale.getExtent()[0] : null; return "time" === t.scale.type ? function (e) { return function (n, i) { return t.scale.getFormattedLabel(n, i, e) } }(e) : "string" == typeof e ? function (e) { return function (n) { var i = t.scale.getLabel(n), r = e.replace("{value}", null != i ? i : ""); return r } }(e) : "function" == typeof e ? function (e) { return function (i, r) { return null != n && (r = i.value - n), e(ef(t, i), r, null != i.level ? {level: i.level} : null) } }(e) : function (e) { return t.scale.getLabel(e) } } function ef(t, e) { return "category" === t.type ? t.scale.getLabel(e) : e.value } function nf(t) { var e = t.model, n = t.scale; if (e.get(["axisLabel", "show"]) && !n.isBlank()) { var i, r, o = n.getExtent(); n instanceof _V ? r = n.count() : (i = n.getTicks(), r = i.length); var a, s = t.getLabelModel(), l = tf(t), u = 1; r > 40 && (u = Math.ceil(r / 40)); for (var h = 0; r > h; h += u) { var c = i ? i[h] : {value: o[0] + h}, p = l(c, h), d = s.getTextRect(p), f = rf(d, s.get("rotate") || 0); a ? a.union(f) : a = f } return a } } function rf(t, e) { var n = e * Math.PI / 180, i = t.width, r = t.height, o = i * Math.abs(Math.cos(n)) + Math.abs(r * Math.sin(n)), a = i * Math.abs(Math.sin(n)) + Math.abs(r * Math.cos(n)), s = new $D(t.x, t.y, o, a); return s } function of(t) { var e = t.get("interval"); return null == e ? "auto" : e } function af(t) { return "category" === t.type && 0 === of(t.getLabelModel()) } function sf(t, e) { var n = {}; return y(t.mapDimensionsAll(e), function (e) { n[fd(t, e)] = !0 }), b(n) } function lf(t, e, n) { e && y(sf(e, n), function (n) { var i = e.getApproximateExtent(n); i[0] < t[0] && (t[0] = i[0]), i[1] > t[1] && (t[1] = i[1]) }) } function uf(t) { return gd(t.getSource(), t) } function hf(t, e) { var n = e; e instanceof VO || (n = new VO(e)); var i = Jd(n); return i.setExtent(t[0], t[1]), $d(i, n), i } function cf(t) { f(t, HV) } function pf(t, e) { return e = e || {}, Os(t, null, null, "normal" !== e.state) } function df(t) { return M(t) ? void y(t, function (t) { df(t) }) : void (p(YV, t) >= 0 || (YV.push(t), I(t) && (t = {install: t}), t.install(ZV))) } function ff(t) { return "category" === t.type ? yf(t) : xf(t) } function gf(t, e) { return "category" === t.type ? mf(t, e) : { ticks: v(t.scale.getTicks(), function (t) { return t.value }) } } function yf(t) { var e = t.getLabelModel(), n = vf(t, e); return !e.get("show") || t.scale.isBlank() ? {labels: [], labelCategoryInterval: n.labelCategoryInterval} : n } function vf(t, e) { var n = _f(t, "labels"), i = of(e), r = bf(n, i); if (r) return r; var o, a; return I(i) ? o = Cf(t, i) : (a = "auto" === i ? Sf(t) : i, o = Tf(t, a)), wf(n, i, { labels: o, labelCategoryInterval: a }) } function mf(t, e) { var n = _f(t, "ticks"), i = of(e), r = bf(n, i); if (r) return r; var o, a; if ((!e.get("show") || t.scale.isBlank()) && (o = []), I(i)) o = Cf(t, i, !0); else if ("auto" === i) { var s = vf(t, t.getLabelModel()); a = s.labelCategoryInterval, o = v(s.labels, function (t) { return t.tickValue }) } else a = i, o = Tf(t, a, !0); return wf(n, i, {ticks: o, tickCategoryInterval: a}) } function xf(t) { var e = t.scale.getTicks(), n = tf(t); return { labels: v(e, function (e, i) { return {formattedLabel: n(e, i), rawLabel: t.scale.getLabel(e), tickValue: e.value} }) } } function _f(t, e) { return JV(t)[e] || (JV(t)[e] = []) } function bf(t, e) { for (var n = 0; n < t.length; n++) if (t[n].key === e) return t[n].value } function wf(t, e, n) { return t.push({key: e, value: n}), n } function Sf(t) { var e = JV(t).autoInterval; return null != e ? e : JV(t).autoInterval = t.calculateCategoryInterval() } function Mf(t) { var e = If(t), n = tf(t), i = (e.axisRotate - e.labelRotate) / 180 * Math.PI, r = t.scale, o = r.getExtent(), a = r.count(); if (o[1] - o[0] < 1) return 0; var s = 1; a > 40 && (s = Math.max(1, Math.floor(a / 40))); for (var l = o[0], u = t.dataToCoord(l + 1) - t.dataToCoord(l), h = Math.abs(u * Math.cos(i)), c = Math.abs(u * Math.sin(i)), p = 0, d = 0; l <= o[1]; l += s) { var f = 0, g = 0, y = ti(n({value: l}), e.font, "center", "top"); f = 1.3 * y.width, g = 1.3 * y.height, p = Math.max(p, f, 7), d = Math.max(d, g, 7) } var v = p / h, m = d / c; isNaN(v) && (v = 1 / 0), isNaN(m) && (m = 1 / 0); var x = Math.max(0, Math.floor(Math.min(v, m))), _ = JV(t.model), b = t.getExtent(), w = _.lastAutoInterval, S = _.lastTickCount; return null != w && null != S && Math.abs(w - x) <= 1 && Math.abs(S - a) <= 1 && w > x && _.axisExtent0 === b[0] && _.axisExtent1 === b[1] ? x = w : (_.lastTickCount = a, _.lastAutoInterval = x, _.axisExtent0 = b[0], _.axisExtent1 = b[1]), x } function If(t) { var e = t.getLabelModel(); return { axisRotate: t.getRotate ? t.getRotate() : t.isHorizontal && !t.isHorizontal() ? 90 : 0, labelRotate: e.get("rotate") || 0, font: e.getFont() } } function Tf(t, e, n) { function i(t) { var e = {value: t}; l.push(n ? t : {formattedLabel: r(e), rawLabel: o.getLabel(e), tickValue: t}) } var r = tf(t), o = t.scale, a = o.getExtent(), s = t.getLabelModel(), l = [], u = Math.max((e || 0) + 1, 1), h = a[0], c = o.count(); 0 !== h && u > 1 && c / u > 2 && (h = Math.round(Math.ceil(h / u) * u)); var p = af(t), d = s.get("showMinLabel") || p, f = s.get("showMaxLabel") || p; d && h !== a[0] && i(a[0]); for (var g = h; g <= a[1]; g += u) i(g); return f && g - u !== a[1] && i(a[1]), l } function Cf(t, e, n) { var i = t.scale, r = tf(t), o = []; return y(i.getTicks(), function (t) { var a = i.getLabel(t), s = t.value; e(t.value, a) && o.push(n ? s : {formattedLabel: r(t), rawLabel: a, tickValue: s}) }), o } function Af(t, e) { var n = t[1] - t[0], i = e, r = n / i / 2; t[0] += r, t[1] -= r } function Df(t, e, n, i) { function r(t, e) { return t = bi(t), e = bi(e), p ? t > e : e > t } var o = e.length; if (t.onBand && !n && o) { var a, s, l = t.getExtent(); if (1 === o) e[0].coord = l[0], a = e[1] = {coord: l[0]}; else { var u = e[o - 1].tickValue - e[0].tickValue, h = (e[o - 1].coord - e[0].coord) / u; y(e, function (t) { t.coord -= h / 2 }); var c = t.scale.getExtent(); s = 1 + c[1] - e[o - 1].tickValue, a = {coord: e[o - 1].coord + h * s}, e.push(a) } var p = l[0] > l[1]; r(e[0].coord, l[0]) && (i ? e[0].coord = l[0] : e.shift()), i && r(l[0], e[0].coord) && e.unshift({coord: l[0]}), r(l[1], a.coord) && (i ? a.coord = l[1] : e.pop()), i && r(a.coord, l[1]) && e.push({coord: l[1]}) } } function Lf(t) { var e = gR.extend(t); return gR.registerClass(e), e } function kf(t) { var e = Tz.extend(t); return Tz.registerClass(e), e } function Pf(t) { var e = Iz.extend(t); return Iz.registerClass(e), e } function Of(t) { var e = Dz.extend(t); return Dz.registerClass(e), e } function Rf() { return !1 } function zf(t, e, n) { var i = mA(), r = e.getWidth(), o = e.getHeight(), a = i.style; return a && (a.position = "absolute", a.left = "0", a.top = "0", a.width = r + "px", a.height = o + "px", i.setAttribute("data-zr-dom-id", t)), i.width = r * n, i.height = o * n, i } function Ef(t) { return parseInt(t, 10) } function Nf(t) { return t ? t.__builtin__ ? !0 : "function" != typeof t.resize || "function" != typeof t.refresh ? !1 : !0 : !1 } function Bf(t, e) { var n = document.createElement("div"); return n.style.cssText = ["position:relative", "width:" + t + "px", "height:" + e + "px", "padding:0", "margin:0", "border-width:0"].join(";") + ";", n } function Vf(t) { t.registerPainter("canvas", aF) } function Ff(t) { t.registerComponentModel(sF), t.registerComponentView(lF) } function Gf(t) { return { seriesType: t, reset: function (t, e, n) { var i = t.getData(), r = t.get("sampling"), o = t.coordinateSystem, a = i.count(); if (a > 10 && "cartesian2d" === o.type && r) { var s = o.getBaseAxis(), l = o.getOtherAxis(s), u = s.getExtent(), h = n.getDevicePixelRatio(), c = Math.abs(u[1] - u[0]) * (h || 1), p = Math.round(a / c); if (p > 1) { "lttb" === r && t.setData(i.lttbDownSample(i.mapDimension(l.dim), 1 / p)); var d = void 0; "string" == typeof r ? d = uF[r] : "function" == typeof r && (d = r), d && t.setData(i.downSample(i.mapDimension(l.dim), 1 / p, d, hF)) } } } } } function Hf(t, e, n, i, r) { var o = t.getArea(), a = o.x, s = o.y, l = o.width, u = o.height, h = n.get(["lineStyle", "width"]) || 2; a -= h / 2, s -= h / 2, l += h, u += h, a = Math.floor(a), l = Math.round(l); var c = new Uk({shape: {x: a, y: s, width: l, height: u}}); if (e) { var p = t.getBaseAxis(), d = p.isHorizontal(), f = p.inverse; d ? (f && (c.shape.x += l), c.shape.width = 0) : (f || (c.shape.y += u), c.shape.height = 0); var g = "function" == typeof r ? function (t) { r(t, c) } : null; hs(c, {shape: {width: l, height: u, x: a, y: s}}, n, null, i, g) } return c } function Wf(t, e, n) { var i = t.getArea(), r = bi(i.r0, 1), o = bi(i.r, 1), a = new ZP({ shape: { cx: bi(t.cx, 1), cy: bi(t.cy, 1), r0: r, r: o, startAngle: i.startAngle, endAngle: i.endAngle, clockwise: i.clockwise } }); if (e) { var s = "angle" === t.getBaseAxis().dim; s ? a.shape.endAngle = i.startAngle : a.shape.r = r, hs(a, {shape: {endAngle: i.endAngle, r: o}}, n) } return a } function Xf(t, e, n, i, r) { return t ? "polar" === t.type ? Wf(t, e, n) : "cartesian2d" === t.type ? Hf(t, e, n, i, r) : null : null } function Yf(t, e) { return t.type === e } function Zf(t, e) { var n = t.mapDimensionsAll("defaultedLabel"), i = n.length; if (1 === i) { var r = Gu(t, e, n[0]); return null != r ? r + "" : null } if (i) { for (var o = [], a = 0; a < n.length; a++) o.push(Gu(t, e, n[a])); return o.join(" ") } } function Uf(t, e) { var n = t.mapDimensionsAll("defaultedLabel"); if (!M(e)) return e + ""; for (var i = [], r = 0; r < n.length; r++) { var o = t.getDimensionInfo(n[r]); o && i.push(e[o.index]) } return i.join(" ") } function jf(t, e) { var n = t.getArea && t.getArea(); if (Yf(t, "cartesian2d")) { var i = t.getBaseAxis(); if ("category" !== i.type || !i.onBand) { var r = e.getLayout("bandWidth"); i.isHorizontal() ? (n.x -= r, n.width += 2 * r) : (n.y -= r, n.height += 2 * r) } } return n } function qf(t, e) { var n = t.get("realtimeSort", !0), i = e.getBaseAxis(); return n && "category" === i.type && "cartesian2d" === e.type ? { baseAxis: i, otherAxis: e.getOtherAxis(i) } : void 0 } function Kf(t, e, n, i, r, o, a, s) { var l, u; o ? (u = {x: i.x, width: i.width}, l = {y: i.y, height: i.height}) : (u = { y: i.y, height: i.height }, l = {x: i.x, width: i.width}), s || (a ? us : hs)(n, {shape: l}, e, r, null); var h = e ? t.baseAxis.model : null; (a ? us : hs)(n, {shape: u}, h, r) } function $f(t) { return null != t.startAngle && null != t.endAngle && t.startAngle === t.endAngle } function Jf(t, e, n, i, r, o, a, s) { var l = e.getItemVisual(n, "style"); s || t.setShape("r", i.get(["itemStyle", "borderRadius"]) || 0), t.useStyle(l); var u = i.getShallow("cursor"); if (u && t.attr("cursor", u), !s) { var h = a ? r.height > 0 ? "bottom" : "top" : r.width > 0 ? "left" : "right", c = Ps(i); ks(t, c, { labelFetcher: o, labelDataIndex: n, defaultText: Zf(o.getData(), n), inheritColor: l.fill, defaultOpacity: l.opacity, defaultOutsidePosition: h }); var p = t.getTextContent(); Vs(p, c, o.getRawValue(n), function (t) { return Uf(e, t) }) } var d = i.getModel(["emphasis"]); Sa(t, d.get("focus"), d.get("blurScope")), Ia(t, i), $f(r) && (t.style.fill = "none", t.style.stroke = "none", y(t.states, function (t) { t.style && (t.style.fill = t.style.stroke = "none") })) } function Qf(t, e) { var n = t.get(["itemStyle", "borderColor"]); if (!n || "none" === n) return 0; var i = t.get(["itemStyle", "borderWidth"]) || 0, r = isNaN(e.width) ? Number.MAX_VALUE : Math.abs(e.width), o = isNaN(e.height) ? Number.MAX_VALUE : Math.abs(e.height); return Math.min(i, r, o) } function tg(t, e, n) { var i = t.getData(), r = [], o = i.getLayout("valueAxisHorizontal") ? 1 : 0; r[1 - o] = i.getLayout("valueAxisStart"); var a = i.getLayout("largeDataIndices"), s = i.getLayout("barWidth"), l = t.getModel("backgroundStyle"), u = t.get("showBackground", !0); if (u) { var h = i.getLayout("largeBackgroundPoints"), c = []; c[1 - o] = i.getLayout("backgroundStart"); var p = new SF({shape: {points: h}, incremental: !!n, silent: !0, z2: 0}); p.__startPoint = c, p.__baseDimIdx = o, p.__largeDataIndices = a, p.__barWidth = s, ig(p, l, i), e.add(p) } var d = new SF({shape: {points: i.getLayout("largePoints")}, incremental: !!n}); d.__startPoint = r, d.__baseDimIdx = o, d.__largeDataIndices = a, d.__barWidth = s, e.add(d), ng(d, t, i), tP(d).seriesIndex = t.seriesIndex, t.get("silent") || (d.on("mousedown", MF), d.on("mousemove", MF)) } function eg(t, e, n) { var i = t.__baseDimIdx, r = 1 - i, o = t.shape.points, a = t.__largeDataIndices, s = Math.abs(t.__barWidth / 2), l = t.__startPoint[r]; gF[0] = e, gF[1] = n; for (var u = gF[i], h = gF[1 - i], c = u - s, p = u + s, d = 0, f = o.length / 2; f > d; d++) { var g = 2 * d, y = o[g + i], v = o[g + r]; if (y >= c && p >= y && (v >= l ? h >= l && v >= h : h >= v && l >= h)) return a[d] } return -1 } function ng(t, e, n) { var i = n.getVisual("style"); t.useStyle(h({}, i)), t.style.fill = null, t.style.stroke = i.fill, t.style.lineWidth = n.getLayout("barWidth") } function ig(t, e, n) { var i = e.get("borderColor") || e.get("color"), r = e.getItemStyle(); t.useStyle(r), t.style.fill = null, t.style.stroke = i, t.style.lineWidth = n.getLayout("barWidth") } function rg(t, e, n) { if (Yf(n, "cartesian2d")) { var i = e, r = n.getArea(); return {x: t ? i.x : r.x, y: t ? r.y : i.y, width: t ? i.width : r.width, height: t ? r.height : i.height} } var r = n.getArea(), o = e; return { cx: r.cx, cy: r.cy, r0: t ? r.r0 : o.r0, r: t ? r.r : o.r, startAngle: t ? o.startAngle : 0, endAngle: t ? o.endAngle : 2 * Math.PI } } function og(t, e, n) { var i = "polar" === t.type ? ZP : Uk; return new i({shape: rg(e, n, t), silent: !0, z2: 0}) } function ag(t) { t.registerChartView(mF), t.registerSeriesModel(pF), t.registerLayout(t.PRIORITY.VISUAL.LAYOUT, S(Rd, "bar")), t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, TV), t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC, Gf("bar")), t.registerAction({ type: "changeAxisOrder", event: "changeAxisOrder", update: "update" }, function (t, e) { var n = t.componentType || "series"; e.eachComponent({mainType: n, query: t}, function (e) { t.sortInfo && e.axis.setCategorySortInfo(t.sortInfo) }) }) } function sg(t, e) { this.parent.drift(t, e) } function lg(t, e, n, i) { return !(!e || isNaN(e[0]) || isNaN(e[1]) || i.isIgnore && i.isIgnore(n) || i.clipShape && !i.clipShape.contain(e[0], e[1]) || "none" === t.getItemVisual(n, "symbol")) } function ug(t) { return null == t || D(t) || (t = {isIgnore: t}), t || {} } function hg(t) { var e = t.hostModel, n = e.getModel("emphasis"); return { emphasisItemStyle: n.getModel("itemStyle").getItemStyle(), blurItemStyle: e.getModel(["blur", "itemStyle"]).getItemStyle(), selectItemStyle: e.getModel(["select", "itemStyle"]).getItemStyle(), focus: n.get("focus"), blurScope: n.get("blurScope"), hoverScale: n.get("scale"), labelStatesModels: Ps(e), cursorStyle: e.get("cursor") } } function cg(t, e, n) { var i = t.getBaseAxis(), r = t.getOtherAxis(i), o = pg(r, n), a = i.dim, s = r.dim, l = e.mapDimension(s), u = e.mapDimension(a), h = "x" === s || "radius" === s ? 1 : 0, c = v(t.dimensions, function (t) { return e.mapDimension(t) }), p = !1, d = e.getCalculationInfo("stackResultDimension"); return dd(e, c[0]) && (p = !0, c[0] = d), dd(e, c[1]) && (p = !0, c[1] = d), { dataDimsForPoint: c, valueStart: o, valueAxisDim: s, baseAxisDim: a, stacked: !!p, valueDim: l, baseDim: u, baseDataOffset: h, stackedOverDimension: e.getCalculationInfo("stackedOverDimension") } } function pg(t, e) { var n = 0, i = t.scale.getExtent(); return "start" === e ? n = i[0] : "end" === e ? n = i[1] : i[0] > 0 ? n = i[0] : i[1] < 0 && (n = i[1]), n } function dg(t, e, n, i) { var r = 0 / 0; t.stacked && (r = n.get(n.getCalculationInfo("stackedOverDimension"), i)), isNaN(r) && (r = t.valueStart); var o = t.baseDataOffset, a = []; return a[o] = n.get(t.baseDim, i), a[1 - o] = r, e.dataToPoint(a) } function fg(t) { return M(t) ? AF ? new Float32Array(t) : t : new DF(t) } function gg(t, e) { var n = []; return e.diff(t).add(function (t) { n.push({cmd: "+", idx: t}) }).update(function (t, e) { n.push({cmd: "=", idx: e, idx1: t}) }).remove(function (t) { n.push({cmd: "-", idx: t}) }).execute(), n } function yg(t, e, n, i, r, o, a) { for (var s = gg(t, e), l = [], u = [], h = [], c = [], p = [], d = [], f = [], g = cg(r, e, a), y = t.getLayout("points") || [], v = e.getLayout("points") || [], m = 0; m < s.length; m++) { var x = s[m], _ = !0, b = void 0, w = void 0; switch (x.cmd) { case"=": b = 2 * x.idx, w = 2 * x.idx1; var S = y[b], M = y[b + 1], I = v[w], T = v[w + 1]; (isNaN(S) || isNaN(M)) && (S = I, M = T), l.push(S, M), u.push(I, T), h.push(n[b], n[b + 1]), c.push(i[w], i[w + 1]), f.push(e.getRawIndex(x.idx1)); break; case"+": var C = x.idx, A = g.dataDimsForPoint, D = r.dataToPoint([e.get(A[0], C), e.get(A[1], C)]); w = 2 * C, l.push(D[0], D[1]), u.push(v[w], v[w + 1]); var L = dg(g, r, e, C); h.push(L[0], L[1]), c.push(i[w], i[w + 1]), f.push(e.getRawIndex(C)); break; case"-": _ = !1 } _ && (p.push(x), d.push(d.length)) } d.sort(function (t, e) { return f[t] - f[e] }); for (var k = l.length, P = fg(k), O = fg(k), R = fg(k), z = fg(k), E = [], m = 0; m < d.length; m++) { var N = d[m], B = 2 * m, V = 2 * N; P[B] = l[V], P[B + 1] = l[V + 1], O[B] = u[V], O[B + 1] = u[V + 1], R[B] = h[V], R[B + 1] = h[V + 1], z[B] = c[V], z[B + 1] = c[V + 1], E[m] = p[N] } return {current: P, next: O, stackedOnCurrent: R, stackedOnNext: z, status: E} } function vg(t, e) { return isNaN(t) || isNaN(e) } function mg(t, e, n, i, r, o, a, s, l) { for (var u, h, c, p, d, f, g = n, y = 0; i > y; y++) { var v = e[2 * g], m = e[2 * g + 1]; if (g >= r || 0 > g) break; if (vg(v, m)) { if (l) { g += o; continue } break } if (g === n) t[o > 0 ? "moveTo" : "lineTo"](v, m), c = v, p = m; else { var x = v - u, _ = m - h; if (.5 > x * x + _ * _) { g += o; continue } if (a > 0) { var b = g + o, w = e[2 * b], S = e[2 * b + 1], M = y + 1; if (l) for (; vg(w, S) && i > M;) M++, b += o, w = e[2 * b], S = e[2 * b + 1]; var I = .5, T = 0, C = 0, A = void 0, D = void 0; if (M >= i || vg(w, S)) d = v, f = m; else { T = w - u, C = S - h; var L = v - u, k = w - v, P = m - h, O = S - m, R = void 0, z = void 0; "x" === s ? (R = Math.abs(L), z = Math.abs(k), d = v - R * a, f = m, A = v + R * a, D = m) : "y" === s ? (R = Math.abs(P), z = Math.abs(O), d = v, f = m - R * a, A = v, D = m + R * a) : (R = Math.sqrt(L * L + P * P), z = Math.sqrt(k * k + O * O), I = z / (z + R), d = v - T * a * (1 - I), f = m - C * a * (1 - I), A = v + T * a * I, D = m + C * a * I, A = LF(A, kF(w, v)), D = LF(D, kF(S, m)), A = kF(A, LF(w, v)), D = kF(D, LF(S, m)), T = A - v, C = D - m, d = v - T * R / z, f = m - C * R / z, d = LF(d, kF(u, v)), f = LF(f, kF(h, m)), d = kF(d, LF(u, v)), f = kF(f, LF(h, m)), T = v - d, C = m - f, A = v + T * z / R, D = m + C * z / R) } t.bezierCurveTo(c, p, d, f, v, m), c = A, p = D } else t.lineTo(v, m) } u = v, h = m, g += o } return y } function xg(t, e) { if (t.length === e.length) { for (var n = 0; n < t.length; n++) if (t[n] !== e[n]) return; return !0 } } function _g(t) { for (var e = 1 / 0, n = 1 / 0, i = -1 / 0, r = -1 / 0, o = 0; o < t.length;) { var a = t[o++], s = t[o++]; isNaN(a) || (e = Math.min(a, e), i = Math.max(a, i)), isNaN(s) || (n = Math.min(s, n), r = Math.max(s, r)) } return [[e, n], [i, r]] } function bg(t, e) { var n = _g(t), i = n[0], r = n[1], o = _g(e), a = o[0], s = o[1]; return Math.max(Math.abs(i[0] - a[0]), Math.abs(i[1] - a[1]), Math.abs(r[0] - s[0]), Math.abs(r[1] - s[1])) } function wg(t) { return "number" == typeof t ? t : t ? .5 : 0 } function Sg(t, e, n) { if (!n.valueDim) return []; for (var i = e.count(), r = fg(2 * i), o = 0; i > o; o++) { var a = dg(n, t, e, o); r[2 * o] = a[0], r[2 * o + 1] = a[1] } return r } function Mg(t, e, n) { for (var i = e.getBaseAxis(), r = "x" === i.dim || "radius" === i.dim ? 0 : 1, o = [], a = 0, s = [], l = [], u = []; a < t.length - 2; a += 2) switch (u[0] = t[a + 2], u[1] = t[a + 3], l[0] = t[a], l[1] = t[a + 1], o.push(l[0], l[1]), n) { case"end": s[r] = u[r], s[1 - r] = l[1 - r], o.push(s[0], s[1]); break; case"middle": var h = (l[r] + u[r]) / 2, c = []; s[r] = c[r] = h, s[1 - r] = l[1 - r], c[1 - r] = u[1 - r], o.push(s[0], s[1]), o.push(c[0], c[1]); break; default: s[r] = l[r], s[1 - r] = u[1 - r], o.push(s[0], s[1]) } return o.push(t[a++], t[a++]), o } function Ig(t, e) { var n = t.getVisual("visualMeta"); if (n && n.length && t.count() && "cartesian2d" === e.type) { for (var i, r, o = n.length - 1; o >= 0; o--) { var a = n[o].dimension, s = t.dimensions[a], l = t.getDimensionInfo(s); if (i = l && l.coordDim, "x" === i || "y" === i) { r = n[o]; break } } if (r) { var u = e.getAxis(i), h = v(r.stops, function (t) { return {offset: 0, coord: u.toGlobalCoord(u.dataToCoord(t.value, !0)), color: t.color} }), c = h.length, p = r.outerColors.slice(); c && h[0].coord > h[c - 1].coord && (h.reverse(), p.reverse()); var d = 10, f = h[0].coord - d, g = h[c - 1].coord + d, m = g - f; if (.001 > m) return "transparent"; y(h, function (t) { t.offset = (t.coord - f) / m }), h.push({ offset: c ? h[c - 1].offset : .5, color: p[1] || "transparent" }), h.unshift({offset: c ? h[0].offset : .5, color: p[0] || "transparent"}); var x = new uO(0, 0, 0, 0, h, !0); return x[i] = f, x[i + "2"] = g, x } } } function Tg(t, e, n) { var i = t.get("showAllSymbol"), r = "auto" === i; if (!i || r) { var o = n.getAxesByScale("ordinal")[0]; if (o && (!r || !Cg(o, e))) { var a = e.mapDimension(o.dim), s = {}; return y(o.getViewLabels(), function (t) { var e = o.scale.getRawOrdinalNumber(t.tickValue); s[e] = 1 }), function (t) { return !s.hasOwnProperty(e.get(a, t)) } } } } function Cg(t, e) { var n = t.getExtent(), i = Math.abs(n[1] - n[0]) / t.scale.count(); isNaN(i) && (i = 0); for (var r = e.count(), o = Math.max(1, Math.round(r / 5)), a = 0; r > a; a += o) if (1.5 * TF.getSymbolSize(e, a)[t.isHorizontal() ? 1 : 0] > i) return !1; return !0 } function Ag(t, e) { return isNaN(t) || isNaN(e) } function Dg(t) { for (var e = t.length / 2; e > 0 && Ag(t[2 * e - 2], t[2 * e - 1]); e--) ; return e - 1 } function Lg(t, e) { return [t[2 * e], t[2 * e + 1]] } function kg(t, e, n) { for (var i, r, o = t.length / 2, a = "x" === n ? 0 : 1, s = 0, l = -1, u = 0; o > u; u++) if (r = t[2 * u + a], !isNaN(r) && !isNaN(t[2 * u + 1 - a])) if (0 !== u) { if (e >= i && r >= e || i >= e && e >= r) { l = u; break } s = u, i = r } else i = r; return {range: [s, l], t: (e - i) / (r - i)} } function Pg(t, e, n, i) { if (Yf(e, "cartesian2d")) { var r = i.getModel("endLabel"), o = r.get("show"), a = r.get("valueAnimation"), s = i.getData(), l = {lastFrameIndex: 0}, u = o ? function (n, i) { t._endLabelOnDuring(n, i, s, l, a, r, e) } : null, h = e.getBaseAxis().isHorizontal(), c = Hf(e, n, i, function () { var e = t._endLabel; e && n && null != l.originalX && e.attr({x: l.originalX, y: l.originalY}) }, u); if (!i.get("clip", !0)) { var p = c.shape, d = Math.max(p.width, p.height); h ? (p.y -= d, p.height += 2 * d) : (p.x -= d, p.width += 2 * d) } return u && u(1, c), c } return Wf(e, n, i) } function Og(t, e) { var n = e.getBaseAxis(), i = n.isHorizontal(), r = n.inverse, o = i ? r ? "right" : "left" : "center", a = i ? "middle" : r ? "top" : "bottom"; return {normal: {align: t.get("align") || o, verticalAlign: t.get("verticalAlign") || a}} } function Rg(t, e) { return { seriesType: t, plan: Ch(), reset: function (t) { var n = t.getData(), i = t.coordinateSystem, r = t.pipelineContext, o = e || r.large; if (i) { var a = v(i.dimensions, function (t) { return n.mapDimension(t) }).slice(0, 2), s = a.length, l = n.getCalculationInfo("stackResultDimension"); dd(n, a[0]) && (a[0] = l), dd(n, a[1]) && (a[1] = l); var u = n.getDimensionInfo(a[0]), h = n.getDimensionInfo(a[1]), c = u && u.index, p = h && h.index; return s && { progress: function (t, e) { for (var n = t.end - t.start, r = o && fg(n * s), a = [], l = [], u = t.start, h = 0; u < t.end; u++) { var d = void 0; if (1 === s) { var f = e.getByDimIdx(c, u); d = i.dataToPoint(f, null, l) } else a[0] = e.getByDimIdx(c, u), a[1] = e.getByDimIdx(p, u), d = i.dataToPoint(a, null, l); o ? (r[h++] = d[0], r[h++] = d[1]) : e.setItemLayout(u, d.slice()) } o && e.setLayout("points", r) } } } } } } function zg(t) { t.registerChartView(EF), t.registerSeriesModel(IF), t.registerLayout(Rg("line", !0)), t.registerVisual({ seriesType: "line", reset: function (t) { var e = t.getData(), n = t.getModel("lineStyle").getLineStyle(); n && !n.stroke && (n.stroke = e.getVisual("style").fill), e.setVisual("legendLineStyle", n) } }), t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC, Gf("line")) } function Eg(t, e) { return kl(t.getBoxLayoutParams(), {width: e.getWidth(), height: e.getHeight()}) } function Ng(t, e, n) { e.eachSeriesByType(t, function (t) { var e = t.getData(), i = e.mapDimension("value"), r = Eg(t, n), o = t.get("center"), a = t.get("radius"); M(a) || (a = [0, a]), M(o) || (o = [o, o]); var s = _i(r.width, n.getWidth()), l = _i(r.height, n.getHeight()), u = Math.min(s, l), h = _i(o[0], s) + r.x, c = _i(o[1], l) + r.y, p = _i(a[0], u / 2), d = _i(a[1], u / 2), f = -t.get("startAngle") * BF, g = t.get("minAngle") * BF, y = 0; e.each(i, function (t) { !isNaN(t) && y++ }); var v = e.getSum(i), m = Math.PI / (v || y) * 2, x = t.get("clockwise"), _ = t.get("roseType"), b = t.get("stillShowZeroSum"), w = e.getDataExtent(i); w[0] = 0; var S = NF, I = 0, T = f, C = x ? 1 : -1; if (e.setLayout({viewRect: r, r: d}), e.each(i, function (t, n) { var i; if (isNaN(t)) return void e.setItemLayout(n, { angle: 0 / 0, startAngle: 0 / 0, endAngle: 0 / 0, clockwise: x, cx: h, cy: c, r0: p, r: _ ? 0 / 0 : d }); i = "area" !== _ ? 0 === v && b ? m : t * m : NF / y, g > i ? (i = g, S -= g) : I += t; var r = T + C * i; e.setItemLayout(n, { angle: i, startAngle: T, endAngle: r, clockwise: x, cx: h, cy: c, r0: p, r: _ ? xi(t, w, [p, d]) : d }), T = r }), NF > S && y) if (.001 >= S) { var A = NF / y; e.each(i, function (t, n) { if (!isNaN(t)) { var i = e.getItemLayout(n); i.angle = A, i.startAngle = f + C * n * A, i.endAngle = f + C * (n + 1) * A } }) } else m = S / I, T = f, e.each(i, function (t, n) { if (!isNaN(t)) { var i = e.getItemLayout(n), r = i.angle === g ? g : t * m; i.startAngle = T, i.endAngle = T + C * r, T += C * r } }) }) } function Bg(t) { return { seriesType: t, reset: function (t, e) { var n = e.findComponents({mainType: "legend"}); if (n && n.length) { var i = t.getData(); i.filterSelf(function (t) { for (var e = i.getName(t), r = 0; r < n.length; r++) if (!n[r].isSelected(e)) return !1; return !0 }) } } } } function Vg(t, e, n, i, r, o, a, s, l, u) { function h(t) { for (var o = t.rB, a = o * o, s = 0; s < t.list.length; s++) { var l = t.list[s], u = Math.abs(l.label.y - n), h = i + l.len, c = h * h, p = Math.sqrt((1 - Math.abs(u * u / a)) * c); l.label.x = e + (p + l.len2) * r } } function c(t) { for (var o = {list: [], maxY: 0}, a = { list: [], maxY: 0 }, s = 0; s < t.length; s++) if ("none" === t[s].labelAlignTo) { var l = t[s], u = l.label.y > n ? a : o, c = Math.abs(l.label.y - n); if (c > u.maxY) { var p = l.label.x - e - l.len2 * r, d = i + l.len, f = Math.abs(p) < d ? Math.sqrt(c * c / (1 - p * p / d / d)) : d; u.rB = f, u.maxY = c } u.list.push(l) } h(o), h(a) } if (!(t.length < 2)) { for (var p = t.length, d = 0; p > d; d++) if ("outer" === t[d].position && "labelLine" === t[d].labelAlignTo) { var f = t[d].label.x - u; t[d].linePoints[1][0] += f, t[d].label.x = u } dc(t, l, l + a) && c(t) } } function Fg(t, e, n, i, r, o, a, s) { for (var l = [], u = [], h = Number.MAX_VALUE, c = -Number.MAX_VALUE, p = 0; p < t.length; p++) { var d = t[p].label; Gg(t[p]) || (d.x < e ? (h = Math.min(h, d.x), l.push(t[p])) : (c = Math.max(c, d.x), u.push(t[p]))) } Vg(u, e, n, i, 1, r, o, a, s, c), Vg(l, e, n, i, -1, r, o, a, s, h); for (var p = 0; p < t.length; p++) { var f = t[p], d = f.label; if (!Gg(f)) { var g = f.linePoints; if (g) { var y = "edge" === f.labelAlignTo, v = f.rect.width, m = void 0; m = y ? d.x < e ? g[2][0] - f.labelDistance - a - f.edgeDistance : a + r - f.edgeDistance - g[2][0] - f.labelDistance : d.x < e ? d.x - a - f.bleedMargin : a + r - d.x - f.bleedMargin, m < f.rect.width && (f.label.style.width = m, "edge" === f.labelAlignTo && (v = m)); var x = g[1][0] - g[2][0]; y ? g[2][0] = d.x < e ? a + f.edgeDistance + v + f.labelDistance : a + r - f.edgeDistance - v - f.labelDistance : (g[2][0] = d.x < e ? d.x + f.labelDistance : d.x - f.labelDistance, g[1][0] = g[2][0] + x), g[1][1] = g[2][1] = d.y } } } } function Gg(t) { return "center" === t.position } function Hg(t) { function e(t) { t.ignore = !0 } function n(t) { if (!t.ignore) return !0; for (var e in t.states) if (t.states[e].ignore === !1) return !0; return !1 } var i, r, o = t.getData(), a = [], s = !1, l = (t.get("minShowLabelAngle") || 0) * VF, u = o.getLayout("viewRect"), h = o.getLayout("r"), c = u.width, p = u.x, d = u.y, f = u.height; o.each(function (t) { var u = o.getItemGraphicEl(t), d = u.shape, f = u.getTextContent(), g = u.getTextGuideLine(), v = o.getItemModel(t), m = v.getModel("label"), x = m.get("position") || v.get(["emphasis", "label", "position"]), _ = m.get("distanceToLabelLine"), b = m.get("alignTo"), w = _i(m.get("edgeDistance"), c), S = m.get("bleedMargin"), M = v.getModel("labelLine"), I = M.get("length"); I = _i(I, c); var T = M.get("length2"); if (T = _i(T, c), Math.abs(d.endAngle - d.startAngle) < l) return y(f.states, e), void (f.ignore = !0); if (n(f)) { var C, A, D, L, k = (d.startAngle + d.endAngle) / 2, P = Math.cos(k), O = Math.sin(k); i = d.cx, r = d.cy; var R = "inside" === x || "inner" === x; if ("center" === x) C = d.cx, A = d.cy, L = "center"; else { var z = (R ? (d.r + d.r0) / 2 * P : d.r * P) + i, E = (R ? (d.r + d.r0) / 2 * O : d.r * O) + r; if (C = z + 3 * P, A = E + 3 * O, !R) { var N = z + P * (I + h - d.r), B = E + O * (I + h - d.r), V = N + (0 > P ? -1 : 1) * T, F = B; C = "edge" === b ? 0 > P ? p + w : p + c - w : V + (0 > P ? -_ : _), A = F, D = [[z, E], [N, B], [V, F]] } L = R ? "center" : "edge" === b ? P > 0 ? "right" : "left" : P > 0 ? "left" : "right" } var G, H = m.get("rotate"); if (G = "number" == typeof H ? H * (Math.PI / 180) : H ? 0 > P ? -k + Math.PI : -k : 0, s = !!G, f.x = C, f.y = A, f.rotation = G, f.setStyle({verticalAlign: "middle"}), R) { f.setStyle({align: L}); var W = f.states.select; W && (W.x += f.x, W.y += f.y) } else { var X = f.getBoundingRect().clone(); X.applyTransform(f.getComputedTransform()); var Y = (f.style.margin || 0) + 2.1; X.y -= Y / 2, X.height += Y, a.push({ label: f, labelLine: g, position: x, len: I, len2: T, minTurnAngle: M.get("minTurnAngle"), maxSurfaceAngle: M.get("maxSurfaceAngle"), surfaceNormal: new HD(P, O), linePoints: D, textAlign: L, labelDistance: _, labelAlignTo: b, edgeDistance: w, bleedMargin: S, rect: X }) } u.setTextConfig({inside: R}) } }), !s && t.get("avoidLabelOverlap") && Fg(a, i, r, h, c, f, p, d); for (var g = 0; g < a.length; g++) { var v = a[g], m = v.label, x = v.labelLine, _ = isNaN(m.x) || isNaN(m.y); if (m) { m.setStyle({align: v.textAlign}), _ && (y(m.states, e), m.ignore = !0); var b = m.states.select; b && (b.x += m.x, b.y += m.y) } if (x) { var w = v.linePoints; _ || !w ? (y(x.states, e), x.ignore = !0) : (rc(w, v.minTurnAngle), oc(w, v.surfaceNormal, v.maxSurfaceAngle), x.setShape({points: w}), m.__hostTarget.textGuideLineConfig = {anchor: new HD(w[0][0], w[0][1])}) } } } function Wg(t, e) { var n = t.get("borderRadius"); return null == n ? null : (M(n) || (n = [n, n]), { innerCornerRadius: ri(n[0], e.r0), cornerRadius: ri(n[1], e.r) }) } function Xg(t, e, n) { e = M(e) && {coordDimensions: e} || h({}, e); var i = t.getSource(), r = ud(i, e), o = new fV(r, t); return o.initData(i, n), o } function Yg(t) { t.registerChartView(GF), t.registerSeriesModel(WF), mc("pie", t.registerAction), t.registerLayout(S(Ng, "pie")), t.registerProcessor(Bg("pie")) } function Zg(t, n, i, r) { y(rG, function (o, a) { var s = l(l({}, iG[a], !0), r, !0), u = function (t) { function i() { for (var e = [], i = 0; i < arguments.length; i++) e[i] = arguments[i]; var r = t.apply(this, e) || this; return r.type = n + "Axis." + a, r } return e(i, t), i.prototype.mergeDefaultAndTheme = function (t, e) { var n = Rl(this), i = n ? El(t) : {}, r = e.getTheme(); l(t, r.get(a + "Axis")), l(t, this.getDefaultOption()), t.type = Ug(t), n && zl(t, i, n) }, i.prototype.optionUpdated = function () { var t = this.option; "category" === t.type && (this.__ordinalMeta = mV.createByAxisModel(this)) }, i.prototype.getCategories = function (t) { var e = this.option; return "category" === e.type ? t ? e.data : this.__ordinalMeta.categories : void 0 }, i.prototype.getOrdinalMeta = function () { return this.__ordinalMeta }, i.type = n + "Axis." + a, i.defaultOption = s, i }(i); t.registerComponentModel(u) }), t.registerSubTypeDefaulter(n + "Axis", Ug) } function Ug(t) { return t.type || (t.data ? "category" : "value") } function jg(t) { return "interval" === t.type || "time" === t.type } function qg(t, e, n) { n = n || {}; var i = t.coordinateSystem, r = e.axis, o = {}, a = r.getAxesOnZeroOf()[0], s = r.position, l = a ? "onZero" : s, u = r.dim, h = i.getRect(), c = [h.x, h.x + h.width, h.y, h.y + h.height], p = {left: 0, right: 1, top: 0, bottom: 1, onZero: 2}, d = e.get("offset") || 0, f = "x" === u ? [c[2] - d, c[3] + d] : [c[0] - d, c[1] + d]; if (a) { var g = a.toGlobalCoord(a.dataToCoord(0)); f[p.onZero] = Math.max(Math.min(g, f[1]), f[0]) } o.position = ["y" === u ? f[p[l]] : c[0], "x" === u ? f[p[l]] : c[3]], o.rotation = Math.PI / 2 * ("x" === u ? 0 : 1); var y = {top: -1, bottom: 1, left: -1, right: 1}; o.labelDirection = o.tickDirection = o.nameDirection = y[s], o.labelOffset = a ? f[p[s]] - f[p.onZero] : 0, e.get(["axisTick", "inside"]) && (o.tickDirection = -o.tickDirection), N(n.labelInside, e.get(["axisLabel", "inside"])) && (o.labelDirection = -o.labelDirection); var v = e.get(["axisLabel", "rotate"]); return o.labelRotate = "top" === l ? -v : v, o.z2 = 1, o } function Kg(t) { return "cartesian2d" === t.get("coordinateSystem") } function $g(t) { var e = {xAxisModel: null, yAxisModel: null}; return y(e, function (n, i) { var r = i.replace(/Model$/, ""), o = t.getReferringComponents(r, wL).models[0]; e[i] = o }), e } function Jg(t, e) { return t.getCoordSysModel() === e } function Qg(t, e, n, i) { function r(t) { return t.dim + "_" + t.index } n.getAxesOnZeroOf = function () { return o ? [o] : [] }; var o, a = t[e], s = n.model, l = s.get(["axisLine", "onZero"]), u = s.get(["axisLine", "onZeroAxisIndex"]); if (l) { if (null != u) ty(a[u]) && (o = a[u]); else for (var h in a) if (a.hasOwnProperty(h) && ty(a[h]) && !i[r(a[h])]) { o = a[h]; break } o && (i[r(o)] = !0) } } function ty(t) { return t && "category" !== t.type && "time" !== t.type && Qd(t) } function ey(t, e) { var n = t.getExtent(), i = n[0] + n[1]; t.toGlobalCoord = "x" === t.dim ? function (t) { return t + e } : function (t) { return i - t + e }, t.toLocalCoord = "x" === t.dim ? function (t) { return t - e } : function (t) { return i - t + e } } function ny(t, e, n, i) { var r, o, a = Ai(n - t), s = i[0] > i[1], l = "start" === e && !s || "start" !== e && s; return Di(a - hG / 2) ? (o = l ? "bottom" : "top", r = "center") : Di(a - 1.5 * hG) ? (o = l ? "top" : "bottom", r = "center") : (o = "middle", r = 1.5 * hG > a && a > hG / 2 ? l ? "left" : "right" : l ? "right" : "left"), { rotation: a, textAlign: r, textVerticalAlign: o } } function iy(t, e, n) { if (!af(t.axis)) { var i = t.get(["axisLabel", "showMinLabel"]), r = t.get(["axisLabel", "showMaxLabel"]); e = e || [], n = n || []; var o = e[0], a = e[1], s = e[e.length - 1], l = e[e.length - 2], u = n[0], h = n[1], c = n[n.length - 1], p = n[n.length - 2]; i === !1 ? (ry(o), ry(u)) : oy(o, a) && (i ? (ry(a), ry(h)) : (ry(o), ry(u))), r === !1 ? (ry(s), ry(c)) : oy(l, s) && (r ? (ry(l), ry(p)) : (ry(s), ry(c))) } } function ry(t) { t && (t.ignore = !0) } function oy(t, e) { var n = t && t.getBoundingRect().clone(), i = e && e.getBoundingRect().clone(); if (n && i) { var r = Hn([]); return Zn(r, r, -t.rotation), n.applyTransform(Xn([], r, t.getLocalTransform())), i.applyTransform(Xn([], r, e.getLocalTransform())), n.intersect(i) } } function ay(t) { return "middle" === t || "center" === t } function sy(t, e, n, i, r) { for (var o = [], a = [], s = [], l = 0; l < t.length; l++) { var u = t[l].coord; a[0] = u, a[1] = 0, s[0] = u, s[1] = n, e && (ge(a, a, e), ge(s, s, e)); var h = new eO({ subPixelOptimize: !0, shape: {x1: a[0], y1: a[1], x2: s[0], y2: s[1]}, style: i, z2: 2, autoBatch: !0, silent: !0 }); h.anid = r + "_" + t[l].tickValue, o.push(h) } return o } function ly(t, e, n, i) { var r = n.axis, o = n.getModel("axisTick"), a = o.get("show"); if ("auto" === a && i.handleAutoShown && (a = i.handleAutoShown("axisTick")), a && !r.scale.isBlank()) { for (var s = o.getModel("lineStyle"), l = i.tickDirection * o.get("length"), u = r.getTicksCoords(), h = sy(u, e.transform, l, c(s.getLineStyle(), {stroke: n.get(["axisLine", "lineStyle", "color"])}), "ticks"), p = 0; p < h.length; p++) t.add(h[p]); return h } } function uy(t, e, n, i) { var r = n.axis, o = n.getModel("minorTick"); if (o.get("show") && !r.scale.isBlank()) { var a = r.getMinorTicksCoords(); if (a.length) for (var s = o.getModel("lineStyle"), l = i * o.get("length"), u = c(s.getLineStyle(), c(n.getModel("axisTick").getLineStyle(), {stroke: n.get(["axisLine", "lineStyle", "color"])})), h = 0; h < a.length; h++) for (var p = sy(a[h], e.transform, l, u, "minorticks_" + h), d = 0; d < p.length; d++) t.add(p[d]) } } function hy(t, e, n, i) { var r = n.axis, o = N(i.axisLabelShow, n.get(["axisLabel", "show"])); if (o && !r.scale.isBlank()) { var a = n.getModel("axisLabel"), s = a.get("margin"), l = r.getViewLabels(), u = (N(i.labelRotate, a.get("rotate")) || 0) * hG / 180, h = cG.innerTextLayout(i.rotation, u, i.labelDirection), c = n.getCategories && n.getCategories(!0), p = [], d = cG.isLabelSilent(n), f = n.get("triggerEvent"); return y(l, function (o, l) { var u = "ordinal" === r.scale.type ? r.scale.getRawOrdinalNumber(o.tickValue) : o.tickValue, g = o.formattedLabel, y = o.rawLabel, v = a; if (c && c[u]) { var m = c[u]; D(m) && m.textStyle && (v = new VO(m.textStyle, a, n.ecModel)) } var x = v.getTextColor() || n.get(["axisLine", "lineStyle", "color"]), _ = r.dataToCoord(u), b = new $k({ x: _, y: i.labelOffset + i.labelDirection * s, rotation: h.rotation, silent: d, z2: 10, style: Os(v, { text: g, align: v.getShallow("align", !0) || h.textAlign, verticalAlign: v.getShallow("verticalAlign", !0) || v.getShallow("baseline", !0) || h.textVerticalAlign, fill: "function" == typeof x ? x("category" === r.type ? y : "value" === r.type ? u + "" : u, l) : x }) }); if (b.anid = "label_" + u, f) { var w = cG.makeAxisEventDataBase(n); w.targetType = "axisLabel", w.value = y, tP(b).eventData = w } e.add(b), b.updateTransform(), p.push(b), t.add(b), b.decomposeTransform() }), p } } function cy(t, e) { var n = {axesInfo: {}, seriesInvolved: !1, coordSysAxesInfo: {}, coordSysMap: {}}; return py(n, t, e), n.seriesInvolved && fy(n, t), n } function py(t, e, n) { var i = e.getComponent("tooltip"), r = e.getComponent("axisPointer"), o = r.get("link", !0) || [], a = []; y(n.getCoordinateSystems(), function (n) { function s(i, s, l) { var h = l.model.getModel("axisPointer", r), p = h.get("show"); if (p && ("auto" !== p || i || _y(h))) { null == s && (s = h.get("triggerTooltip")), h = i ? dy(l, c, r, e, i, s) : h; var d = h.get("snap"), f = by(l.model), g = s || d || "category" === l.type, y = t.axesInfo[f] = { key: f, axis: l, coordSys: n, axisPointerModel: h, triggerTooltip: s, involveSeries: g, snap: d, useHandle: _y(h), seriesModels: [], linkGroup: null }; u[f] = y, t.seriesInvolved = t.seriesInvolved || g; var v = gy(o, l); if (null != v) { var m = a[v] || (a[v] = {axesInfo: {}}); m.axesInfo[f] = y, m.mapper = o[v].mapper, y.linkGroup = m } } } if (n.axisPointerEnabled) { var l = by(n.model), u = t.coordSysAxesInfo[l] = {}; t.coordSysMap[l] = n; var h = n.model, c = h.getModel("tooltip", i); if (y(n.getAxes(), S(s, !1, null)), n.getTooltipAxes && i && c.get("show")) { var p = "axis" === c.get("trigger"), d = "cross" === c.get(["axisPointer", "type"]), f = n.getTooltipAxes(c.get(["axisPointer", "axis"])); (p || d) && y(f.baseAxes, S(s, d ? "cross" : !0, p)), d && y(f.otherAxes, S(s, "cross", !1)) } } }) } function dy(t, e, n, i, r, o) { var a = e.getModel("axisPointer"), l = ["type", "snap", "lineStyle", "shadowStyle", "label", "animation", "animationDurationUpdate", "animationEasingUpdate", "z"], u = {}; y(l, function (t) { u[t] = s(a.get(t)) }), u.snap = "category" !== t.type && !!o, "cross" === a.get("type") && (u.type = "line"); var h = u.label || (u.label = {}); if (null == h.show && (h.show = !1), "cross" === r) { var p = a.get(["label", "show"]); if (h.show = null != p ? p : !0, !o) { var d = u.lineStyle = a.get("crossStyle"); d && c(h, d.textStyle) } } return t.model.getModel("axisPointer", new VO(u, n, i)) } function fy(t, e) { e.eachSeries(function (e) { var n = e.coordinateSystem, i = e.get(["tooltip", "trigger"], !0), r = e.get(["tooltip", "show"], !0); n && "none" !== i && i !== !1 && "item" !== i && r !== !1 && e.get(["axisPointer", "show"], !0) !== !1 && y(t.coordSysAxesInfo[by(n.model)], function (t) { var i = t.axis; n.getAxis(i.dim) === i && (t.seriesModels.push(e), null == t.seriesDataCount && (t.seriesDataCount = 0), t.seriesDataCount += e.getData().count()) }) }) } function gy(t, e) { for (var n = e.model, i = e.dim, r = 0; r < t.length; r++) { var o = t[r] || {}; if (yy(o[i + "AxisId"], n.id) || yy(o[i + "AxisIndex"], n.componentIndex) || yy(o[i + "AxisName"], n.name)) return r } } function yy(t, e) { return "all" === t || M(t) && p(t, e) >= 0 || t === e } function vy(t) { var e = my(t); if (e) { var n = e.axisPointerModel, i = e.axis.scale, r = n.option, o = n.get("status"), a = n.get("value"); null != a && (a = i.parse(a)); var s = _y(n); null == o && (r.status = s ? "show" : "hide"); var l = i.getExtent().slice(); l[0] > l[1] && l.reverse(), (null == a || a > l[1]) && (a = l[1]), a < l[0] && (a = l[0]), r.value = a, s && (r.status = e.axis.scale.isBlank() ? "hide" : "show") } } function my(t) { var e = (t.ecModel.getComponent("axisPointer") || {}).coordSysAxesInfo; return e && e.axesInfo[by(t)] } function xy(t) { var e = my(t); return e && e.axisPointerModel } function _y(t) { return !!t.get(["handle", "show"]) } function by(t) { return t.type + "||" + t.id } function wy(t, e, n, i) { var r = n.axis; if (!r.scale.isBlank()) { var o = n.getModel("splitArea"), a = o.getModel("areaStyle"), s = a.get("color"), l = i.coordinateSystem.getRect(), u = r.getTicksCoords({tickModel: o, clamp: !0}); if (u.length) { var h = s.length, p = gG(t).splitAreaColors, d = Z(), f = 0; if (p) for (var g = 0; g < u.length; g++) { var y = p.get(u[g].tickValue); if (null != y) { f = (y + (h - 1) * g) % h; break } } var v = r.toGlobalCoord(u[0].coord), m = a.getAreaStyle(); s = M(s) ? s : [s]; for (var g = 1; g < u.length; g++) { var x = r.toGlobalCoord(u[g].coord), _ = void 0, b = void 0, w = void 0, S = void 0; r.isHorizontal() ? (_ = v, b = l.y, w = x - _, S = l.height, v = _ + w) : (_ = l.x, b = v, w = l.width, S = x - b, v = b + S); var I = u[g - 1].tickValue; null != I && d.set(I, f), e.add(new Uk({ anid: null != I ? "area_" + I : null, shape: {x: _, y: b, width: w, height: S}, style: c({fill: s[f]}, m), autoBatch: !0, silent: !0 })), f = (f + 1) % h } gG(t).splitAreaColors = d } } } function Sy(t) { gG(t).splitAreaColors = null } function My(t) { t.registerComponentView(wG), t.registerComponentModel(KF), t.registerCoordinateSystem("cartesian2d", uG), Zg(t, "x", $F, SG), Zg(t, "y", $F, SG), t.registerComponentView(_G), t.registerComponentView(bG), t.registerPreprocessor(function (t) { t.xAxis && t.yAxis && !t.grid && (t.grid = {}) }) } function Iy(t) { df(My), t.registerSeriesModel(XF), t.registerChartView(qF), t.registerLayout(Rg("scatter")) } function Ty(t) { return M(t) || (t = [+t, +t]), t } function Cy(t, e) { var n = e.rippleEffectColor || e.color; t.eachChild(function (t) { t.attr({ z: e.z, zlevel: e.zlevel, style: {stroke: "stroke" === e.brushType ? n : null, fill: "fill" === e.brushType ? n : null} }) }) } function Ay(t) { t.registerChartView(TG), t.registerSeriesModel(CG), t.registerLayout(Rg("effectScatter")) } function Dy(t, e, n) { var i = t.ends; return new kG({shape: {points: n ? Py(i, t) : i}, z2: 100}) } function Ly(t, e) { for (var n = !0, i = 0; i < e.ends.length; i++) if (t.contain(e.ends[i][0], e.ends[i][1])) { n = !1; break } return n } function ky(t, e, n, i) { var r = e.getItemModel(n); t.useStyle(e.getItemVisual(n, "style")), t.style.strokeNoScale = !0, t.__simpleBox = i, Ia(t, r) } function Py(t, e) { return v(t, function (t) { return t = t.slice(), t[1] = e.initBaseline, t }) } function Oy(t, e, n) { var i = t.getData(), r = i.getLayout("largePoints"), o = new OG({shape: {points: r}, __sign: 1}); e.add(o); var a = new OG({shape: {points: r}, __sign: -1}); e.add(a), Ry(1, o, t, i), Ry(-1, a, t, i), n && (o.incremental = !0, a.incremental = !0) } function Ry(t, e, n) { var i = n.get(["itemStyle", t > 0 ? "borderColor" : "borderColor0"]) || n.get(["itemStyle", t > 0 ? "color" : "color0"]), r = n.getModel("itemStyle").getItemStyle(AG); e.useStyle(r), e.style.fill = null, e.style.stroke = i } function zy(t) { t && M(t.series) && y(t.series, function (t) { D(t) && "k" === t.type && (t.type = "candlestick") }) } function Ey(t, e, n, i, r) { var o; return o = n > i ? -1 : i > n ? 1 : e > 0 ? t.get(r, e - 1) <= i ? 1 : -1 : 1 } function Ny(t, e) { var n, i = t.getBaseAxis(), r = "category" === i.type ? i.getBandWidth() : (n = i.getExtent(), Math.abs(n[1] - n[0]) / e.count()), o = _i(B(t.get("barMaxWidth"), r), r), a = _i(B(t.get("barMinWidth"), 1), r), s = t.get("barWidth"); return null != s ? _i(s, r) : Math.max(Math.min(r / 2, o), a) } function By(t) { t.registerChartView(DG), t.registerSeriesModel(zG), t.registerPreprocessor(zy), t.registerVisual(FG), t.registerLayout(HG) } function Vy(t) { t.eachSeriesByType("radar", function (t) { var e = t.getData(), n = [], i = t.coordinateSystem; if (i) { var r = i.getIndicatorAxes(); y(r, function (t, o) { e.each(e.mapDimension(r[o].dim), function (t, e) { n[e] = n[e] || []; var r = i.dataToPoint(t, o); n[e][o] = Fy(r) ? r : Gy(i) }) }), e.each(function (t) { var r = _(n[t], function (t) { return Fy(t) }) || Gy(i); n[t].push(r.slice()), e.setItemLayout(t, n[t]) }) } }) } function Fy(t) { return !isNaN(t[0]) && !isNaN(t[1]) } function Gy(t) { return [t.cx, t.cy] } function Hy(t) { var e = t.polar; if (e) { M(e) || (e = [e]); var n = []; y(e, function (e) { e.indicator ? (e.type && !e.shape && (e.shape = e.type), t.radar = t.radar || [], M(t.radar) || (t.radar = [t.radar]), t.radar.push(e)) : n.push(e) }), t.polar = n } y(t.series, function (t) { t && "radar" === t.type && t.polarIndex && (t.radarIndex = t.polarIndex) }) } function Wy(t) { return M(t) || (t = [+t, +t]), t } function Xy(t, e) { return c({show: e}, t) } function Yy(t) { t.registerCoordinateSystem("radar", KG), t.registerComponentModel(ZG), t.registerComponentView(jG), t.registerVisual({ seriesType: "radar", reset: function (t) { var e = t.getData(); e.each(function (t) { e.setItemVisual(t, "legendIcon", "roundRect") }), e.setVisual("legendIcon", "roundRect") } }) } function Zy(t) { df(Yy), t.registerChartView(WG), t.registerSeriesModel(XG), t.registerLayout(Vy), t.registerProcessor(Bg("radar")), t.registerPreprocessor(Hy) } function Uy(t, e, n) { var i = t[1] - t[0]; e = v(e, function (e) { return {interval: [(e.interval[0] - t[0]) / i, (e.interval[1] - t[0]) / i]} }); var r = e.length, o = 0; return function (t) { var i; for (i = o; r > i; i++) { var a = e[i].interval; if (a[0] <= t && t <= a[1]) { o = i; break } } if (i === r) for (i = o - 1; i >= 0; i--) { var a = e[i].interval; if (a[0] <= t && t <= a[1]) { o = i; break } } return i >= 0 && r > i && n[i] } } function jy(t, e) { var n = t[1] - t[0]; return e = [(e[0] - t[0]) / n, (e[1] - t[0]) / n], function (t) { return t >= e[0] && t <= e[1] } } function qy(t) { var e = t.dimensions; return "lng" === e[0] && "lat" === e[1] } function Ky(t) { t.registerChartView(QG), t.registerSeriesModel(tH) } function $y(t) { var e = t; e.hierNode = { defaultAncestor: null, ancestor: e, prelim: 0, modifier: 0, change: 0, shift: 0, i: 0, thread: null }; for (var n, i, r = [e]; n = r.pop();) if (i = n.children, n.isExpand && i.length) for (var o = i.length, a = o - 1; a >= 0; a--) { var s = i[a]; s.hierNode = { defaultAncestor: null, ancestor: s, prelim: 0, modifier: 0, change: 0, shift: 0, i: a, thread: null }, r.push(s) } } function Jy(t, e) { var n = t.isExpand ? t.children : [], i = t.parentNode.children, r = t.hierNode.i ? i[t.hierNode.i - 1] : null; if (n.length) { iv(t); var o = (n[0].hierNode.prelim + n[n.length - 1].hierNode.prelim) / 2; r ? (t.hierNode.prelim = r.hierNode.prelim + e(t, r), t.hierNode.modifier = t.hierNode.prelim - o) : t.hierNode.prelim = o } else r && (t.hierNode.prelim = r.hierNode.prelim + e(t, r)); t.parentNode.hierNode.defaultAncestor = rv(t, r, t.parentNode.hierNode.defaultAncestor || i[0], e) } function Qy(t) { var e = t.hierNode.prelim + t.parentNode.hierNode.modifier; t.setLayout({x: e}, !0), t.hierNode.modifier += t.parentNode.hierNode.modifier } function tv(t) { return arguments.length ? t : uv } function ev(t, e) { return t -= Math.PI / 2, {x: e * Math.cos(t), y: e * Math.sin(t)} } function nv(t, e) { return kl(t.getBoxLayoutParams(), {width: e.getWidth(), height: e.getHeight()}) } function iv(t) { for (var e = t.children, n = e.length, i = 0, r = 0; --n >= 0;) { var o = e[n]; o.hierNode.prelim += i, o.hierNode.modifier += i, r += o.hierNode.change, i += o.hierNode.shift + r } } function rv(t, e, n, i) { if (e) { for (var r = t, o = t, a = o.parentNode.children[0], s = e, l = r.hierNode.modifier, u = o.hierNode.modifier, h = a.hierNode.modifier, c = s.hierNode.modifier; s = ov(s), o = av(o), s && o;) { r = ov(r), a = av(a), r.hierNode.ancestor = t; var p = s.hierNode.prelim + c - o.hierNode.prelim - u + i(s, o); p > 0 && (lv(sv(s, t, n), t, p), u += p, l += p), c += s.hierNode.modifier, u += o.hierNode.modifier, l += r.hierNode.modifier, h += a.hierNode.modifier } s && !ov(r) && (r.hierNode.thread = s, r.hierNode.modifier += c - l), o && !av(a) && (a.hierNode.thread = o, a.hierNode.modifier += u - h, n = t) } return n } function ov(t) { var e = t.children; return e.length && t.isExpand ? e[e.length - 1] : t.hierNode.thread } function av(t) { var e = t.children; return e.length && t.isExpand ? e[0] : t.hierNode.thread } function sv(t, e, n) { return t.hierNode.ancestor.parentNode === e.parentNode ? t.hierNode.ancestor : n } function lv(t, e, n) { var i = n / (e.hierNode.i - t.hierNode.i); e.hierNode.change -= i, e.hierNode.shift += n, e.hierNode.modifier += n, e.hierNode.prelim += n, t.hierNode.change += i } function uv(t, e) { return t.parentNode === e.parentNode ? 1 : 2 } function hv(t) { var e = t.seriesModel; return e ? e.coordinateSystem : null } function cv(t, e, n) { var i = t.target; i.x += e, i.y += n, i.dirty() } function pv(t, e, n, i) { var r = t.target, o = t.zoomLimit, a = t.zoom = t.zoom || 1; if (a *= e, o) { var s = o.min || 0, l = o.max || 1 / 0; a = Math.max(Math.min(l, a), s) } var u = a / t.zoom; t.zoom = a, r.x -= (n - r.x) * (u - 1), r.y -= (i - r.y) * (u - 1), r.scaleX *= u, r.scaleY *= u, r.dirty() } function dv(t, e, n) { var i = yv(t); i[e] = n } function fv(t, e, n) { var i = yv(t), r = i[e]; r === n && (i[e] = null) } function gv(t, e) { return !!yv(t)[e] } function yv(t) { return t[iH] || (t[iH] = {}) } function vv(t, e, n, i, r) { t.pointerChecker && t.pointerChecker(i, r.originX, r.originY) && (NA(i.event), mv(t, e, n, i, r)) } function mv(t, e, n, i, r) { r.isAvailableBehavior = xA(xv, null, n, i), t.trigger(e, r) } function xv(t, e, n) { var i = n[t]; return !t || i && (!T(i) || e.event[i + "Key"]) } function _v(t, e, n) { var i = e.getComponentByElement(t.topTarget), r = i && i.coordinateSystem; return i && i !== n && !oH.hasOwnProperty(i.mainType) && r && r.model !== n } function bv(t, e) { var n = t.getItemLayout(e); return n && !isNaN(n.x) && !isNaN(n.y) } function wv(t, e, n, i, r) { var o = !n, a = t.tree.getNodeByDataIndex(e), s = a.getModel(), l = a.getVisual("style").fill, u = a.isExpand === !1 && 0 !== a.children.length ? l : "#fff", h = t.tree.root, c = a.parentNode === h ? a : a.parentNode || a, p = t.getItemGraphicEl(c.dataIndex), d = c.getLayout(), f = p ? {x: p.__oldX, y: p.__oldY, rawX: p.__radialOldRawX, rawY: p.__radialOldRawY} : d, g = a.getLayout(); o ? (n = new TF(t, e, null, { symbolInnerColor: u, useNameLabel: !0 }), n.x = f.x, n.y = f.y) : n.updateData(t, e, null, { symbolInnerColor: u, useNameLabel: !0 }), n.__radialOldRawX = n.__radialRawX, n.__radialOldRawY = n.__radialRawY, n.__radialRawX = g.rawX, n.__radialRawY = g.rawY, i.add(n), t.setItemGraphicEl(e, n), n.__oldX = n.x, n.__oldY = n.y, us(n, { x: g.x, y: g.y }, r); var y = n.getSymbolPath(); if ("radial" === r.get("layout")) { var v = h.children[0], m = v.getLayout(), x = v.children.length, _ = void 0, b = void 0; if (g.x === m.x && a.isExpand === !0) { var w = { x: (v.children[0].getLayout().x + v.children[x - 1].getLayout().x) / 2, y: (v.children[0].getLayout().y + v.children[x - 1].getLayout().y) / 2 }; _ = Math.atan2(w.y - m.y, w.x - m.x), 0 > _ && (_ = 2 * Math.PI + _), b = w.x < m.x, b && (_ -= Math.PI) } else _ = Math.atan2(g.y - m.y, g.x - m.x), 0 > _ && (_ = 2 * Math.PI + _), 0 === a.children.length || 0 !== a.children.length && a.isExpand === !1 ? (b = g.x < m.x, b && (_ -= Math.PI)) : (b = g.x > m.x, b || (_ -= Math.PI)); var S = b ? "left" : "right", M = s.getModel("label"), I = M.get("rotate"), T = I * (Math.PI / 180), C = y.getTextContent(); C && (y.setTextConfig({ position: M.get("position") || S, rotation: null == I ? -_ : T, origin: "center" }), C.setStyle("verticalAlign", "middle")) } var A = s.get(["emphasis", "focus"]), D = "ancestor" === A ? a.getAncestorsIndices() : "descendant" === A ? a.getDescendantIndices() : null; D && (tP(n).focus = D), Sv(r, a, h, n, f, d, g, i), n.__edge && (n.onHoverStateChange = function (e) { if ("blur" !== e) { var i = a.parentNode && t.getItemGraphicEl(a.parentNode.dataIndex); i && i.hoverState === oP || $o(n.__edge, e) } }) } function Sv(t, e, n, i, r, o, a, s) { var l = e.getModel(), u = t.get("edgeShape"), h = t.get("layout"), p = t.getOrient(), d = t.get(["lineStyle", "curveness"]), f = t.get("edgeForkPosition"), g = l.getModel("lineStyle").getLineStyle(), y = i.__edge; if ("curve" === u) e.parentNode && e.parentNode !== n && (y || (y = i.__edge = new rO({shape: Iv(h, p, d, r, r)})), us(y, {shape: Iv(h, p, d, o, a)}, t)); else if ("polyline" === u && "orthogonal" === h && e !== n && e.children && 0 !== e.children.length && e.isExpand === !0) { for (var v = e.children, m = [], x = 0; x < v.length; x++) { var _ = v[x].getLayout(); m.push([_.x, _.y]) } y || (y = i.__edge = new sH({ shape: { parentPoint: [a.x, a.y], childPoints: [[a.x, a.y]], orient: p, forkPosition: f } })), us(y, {shape: {parentPoint: [a.x, a.y], childPoints: m}}, t) } y && (y.useStyle(c({strokeNoScale: !0, fill: null}, g)), Ia(y, l, "lineStyle"), ia(y), s.add(y)) } function Mv(t, e, n, i, r) { for (var o, a = t.tree.getNodeByDataIndex(e), s = t.tree.root, l = a.parentNode === s ? a : a.parentNode || a; o = l.getLayout(), null == o;) l = l.parentNode === s ? l : l.parentNode || l; var u = {duration: r.get("animationDurationUpdate"), easing: r.get("animationEasingUpdate")}; cs(n, {x: o.x + 1, y: o.y + 1}, r, { cb: function () { i.remove(n), t.setItemGraphicEl(e, null) }, removeOpt: u }), n.fadeOut(null, {fadeLabel: !0, animation: u}); var h = t.getItemGraphicEl(l.dataIndex), c = h.__edge, p = n.__edge || (l.isExpand === !1 || 1 === l.children.length ? c : void 0), d = r.get("edgeShape"), f = r.get("layout"), g = r.get("orient"), y = r.get(["lineStyle", "curveness"]); p && ("curve" === d ? cs(p, {shape: Iv(f, g, y, o, o), style: {opacity: 0}}, r, { cb: function () { i.remove(p) }, removeOpt: u }) : "polyline" === d && "orthogonal" === r.get("layout") && cs(p, { shape: { parentPoint: [o.x, o.y], childPoints: [[o.x, o.y]] }, style: {opacity: 0} }, r, { cb: function () { i.remove(p) }, removeOpt: u })) } function Iv(t, e, n, i, r) { var o, a, s, l, u, h, c, p; if ("radial" === t) { u = i.rawX, c = i.rawY, h = r.rawX, p = r.rawY; var d = ev(u, c), f = ev(u, c + (p - c) * n), g = ev(h, p + (c - p) * n), y = ev(h, p); return { x1: d.x || 0, y1: d.y || 0, x2: y.x || 0, y2: y.y || 0, cpx1: f.x || 0, cpy1: f.y || 0, cpx2: g.x || 0, cpy2: g.y || 0 } } return u = i.x, c = i.y, h = r.x, p = r.y, ("LR" === e || "RL" === e) && (o = u + (h - u) * n, a = c, s = h + (u - h) * n, l = p), ("TB" === e || "BT" === e) && (o = u, a = c + (p - c) * n, s = h, l = p + (c - p) * n), { x1: u, y1: c, x2: h, y2: p, cpx1: o, cpy1: a, cpx2: s, cpy2: l } } function Tv(t) { var e = t.mainData, n = t.datas; n || (n = {main: e}, t.datasAttr = {main: "data"}), t.datas = t.mainData = null, Ov(e, n, t), y(n, function (n) { y(e.TRANSFERABLE_METHODS, function (e) { n.wrapMethod(e, S(Cv, t)) }) }), e.wrapMethod("cloneShallow", S(Dv, t)), y(e.CHANGABLE_METHODS, function (n) { e.wrapMethod(n, S(Av, t)) }), H(n[e.dataType] === e) } function Cv(t, e) { if (Pv(this)) { var n = h({}, uH(this).datas); n[this.dataType] = e, Ov(e, n, t) } else Rv(e, this.dataType, uH(this).mainData, t); return e } function Av(t, e) { return t.struct && t.struct.update(), e } function Dv(t, e) { return y(uH(e).datas, function (n, i) { n !== e && Rv(n.cloneShallow(), i, e, t) }), e } function Lv(t) { var e = uH(this).mainData; return null == t || null == e ? e : uH(e).datas[t] } function kv() { var t = uH(this).mainData; return null == t ? [{data: t}] : v(b(uH(t).datas), function (e) { return {type: e, data: uH(t).datas[e]} }) } function Pv(t) { return uH(t).mainData === t } function Ov(t, e, n) { uH(t).datas = {}, y(e, function (e, i) { Rv(e, i, t, n) }) } function Rv(t, e, n, i) { uH(n).datas[e] = t, uH(t).mainData = n, t.dataType = e, i.struct && (t[i.structAttr] = i.struct, i.struct[i.datasAttr[e]] = t), t.getLinkedData = Lv, t.getLinkedDataAll = kv } function zv(t, e) { var n = e.children; t.parentNode !== e && (n.push(t), t.parentNode = e) } function Ev(t, e, n) { if (t && p(e, t.type) >= 0) { var i = n.getData().tree.root, r = t.targetNode; if ("string" == typeof r && (r = i.getNodeById(r)), r && i.contains(r)) return {node: r}; var o = t.targetNodeId; if (null != o && (r = i.getNodeById(o))) return {node: r} } } function Nv(t) { for (var e = []; t;) t = t.parentNode, t && e.push(t); return e.reverse() } function Bv(t, e) { var n = Nv(t); return p(n, e) >= 0 } function Vv(t, e) { for (var n = []; t;) { var i = t.dataIndex; n.push({name: t.name, dataIndex: i, value: e.getRawValue(i)}), t = t.parentNode } return n.reverse(), n } function Fv(t, e, n) { for (var i, r = [t], o = []; i = r.pop();) if (o.push(i), i.isExpand) { var a = i.children; if (a.length) for (var s = 0; s < a.length; s++) r.push(a[s]) } for (; i = o.pop();) e(i, n) } function Gv(t, e) { for (var n, i = [t]; n = i.pop();) if (e(n), n.isExpand) { var r = n.children; if (r.length) for (var o = r.length - 1; o >= 0; o--) i.push(r[o]) } } function Hv(t, e) { t.eachSeriesByType("tree", function (t) { Wv(t, e) }) } function Wv(t, e) { var n = nv(t, e); t.layoutInfo = n; var i = t.get("layout"), r = 0, o = 0, a = null; "radial" === i ? (r = 2 * Math.PI, o = Math.min(n.height, n.width) / 2, a = tv(function (t, e) { return (t.parentNode === e.parentNode ? 1 : 2) / t.depth })) : (r = n.width, o = n.height, a = tv()); var s = t.getData().tree.root, l = s.children[0]; if (l) { $y(s), Fv(l, Jy, a), s.hierNode.modifier = -l.hierNode.prelim, Gv(l, Qy); var u = l, h = l, c = l; Gv(l, function (t) { var e = t.getLayout().x; e < u.getLayout().x && (u = t), e > h.getLayout().x && (h = t), t.depth > c.depth && (c = t) }); var p = u === h ? 1 : a(u, h) / 2, d = p - u.getLayout().x, f = 0, g = 0, y = 0, v = 0; if ("radial" === i) f = r / (h.getLayout().x + p + d), g = o / (c.depth - 1 || 1), Gv(l, function (t) { y = (t.getLayout().x + d) * f, v = (t.depth - 1) * g; var e = ev(y, v); t.setLayout({x: e.x, y: e.y, rawX: y, rawY: v}, !0) }); else { var m = t.getOrient(); "RL" === m || "LR" === m ? (g = o / (h.getLayout().x + p + d), f = r / (c.depth - 1 || 1), Gv(l, function (t) { v = (t.getLayout().x + d) * g, y = "LR" === m ? (t.depth - 1) * f : r - (t.depth - 1) * f, t.setLayout({ x: y, y: v }, !0) })) : ("TB" === m || "BT" === m) && (f = r / (h.getLayout().x + p + d), g = o / (c.depth - 1 || 1), Gv(l, function (t) { y = (t.getLayout().x + d) * f, v = "TB" === m ? (t.depth - 1) * g : o - (t.depth - 1) * g, t.setLayout({ x: y, y: v }, !0) })) } } } function Xv(t) { t.eachSeriesByType("tree", function (t) { var e = t.getData(), n = e.tree; n.eachNode(function (t) { var n = t.getModel(), i = n.getModel("itemStyle").getItemStyle(), r = e.ensureUniqueItemVisual(t.dataIndex, "style"); h(r, i) }) }) } function Yv(t, e, n) { var i = t.getZoom(), r = t.getCenter(), o = e.zoom, a = t.dataToPoint(r); if (null != e.dx && null != e.dy && (a[0] -= e.dx, a[1] -= e.dy, t.setCenter(t.pointToData(a))), null != o) { if (n) { var s = n.min || 0, l = n.max || 1 / 0; o = Math.max(Math.min(i * o, l), s) / i } t.scaleX *= o, t.scaleY *= o; var u = (e.originX - t.x) * (o - 1), h = (e.originY - t.y) * (o - 1); t.x -= u, t.y -= h, t.updateTransform(), t.setCenter(t.pointToData(a)), t.setZoom(o * i) } return {center: t.getCenter(), zoom: t.getZoom()} } function Zv(t) { t.registerAction({ type: "treeExpandAndCollapse", event: "treeExpandAndCollapse", update: "update" }, function (t, e) { e.eachComponent({mainType: "series", subType: "tree", query: t}, function (e) { var n = t.dataIndex, i = e.getData().tree, r = i.getNodeByDataIndex(n); r.isExpand = !r.isExpand }) }), t.registerAction({type: "treeRoam", event: "treeRoam", update: "none"}, function (t, e) { e.eachComponent({mainType: "series", subType: "tree", query: t}, function (e) { var n = e.coordinateSystem, i = Yv(n, t); e.setCenter && e.setCenter(i.center), e.setZoom && e.setZoom(i.zoom) }) }) } function Uv(t) { t.registerChartView(lH), t.registerSeriesModel(pH), t.registerLayout(Hv), t.registerVisual(Xv), Zv(t) } function jv(t) { for (var e = 0; e < fH.length; e++) t.registerAction({type: fH[e], update: "updateView"}, dH); t.registerAction({type: "treemapRootToNode", update: "updateView"}, function (t, e) { function n(e) { var n = ["treemapZoomToNode", "treemapRootToNode"], i = Ev(t, n, e); if (i) { var r = e.getViewRoot(); r && (t.direction = Bv(r, i.node) ? "rollUp" : "drillDown"), e.resetViewRoot(i.node) } } e.eachComponent({mainType: "series", subType: "treemap", query: t}, n) }) } function qv(t) { var e = t.getData(), n = e.tree, i = {}; n.eachNode(function (e) { for (var n = e; n && n.depth > 1;) n = n.parentNode; var r = jl(t.ecModel, n.name || n.dataIndex + "", i); e.setVisual("decal", r) }) } function Kv(t) { var e = 0; y(t.children, function (t) { Kv(t); var n = t.value; M(n) && (n = n[0]), e += n }); var n = t.value; M(n) && (n = n[0]), (null == n || isNaN(n)) && (n = e), 0 > n && (n = 0), M(t.value) ? t.value[0] = n : t.value = n } function $v(t, e) { var n = Hi(e.get("color")), i = Hi(e.get(["aria", "decal", "decals"])); if (n) { t = t || []; var r, o; y(t, function (t) { var e = new VO(t), n = e.get("color"), i = e.get("decal"); (e.get(["itemStyle", "color"]) || n && "none" !== n) && (r = !0), (e.get(["itemStyle", "decal"]) || i && "none" !== i) && (o = !0) }); var a = t[0] || (t[0] = {}); return r || (a.color = n.slice()), !o && i && (a.decal = i.slice()), t } } function Jv(t, e, n, i, r, o) { var a = [[r ? t : t - mH, e], [t + n, e], [t + n, e + i], [r ? t : t - mH, e + i]]; return !o && a.splice(2, 0, [t + n + mH, e + i / 2]), !r && a.push([t, e + i / 2]), a } function Qv(t, e, n) { tP(t).eventData = { componentType: "series", componentSubType: "treemap", componentIndex: e.componentIndex, seriesIndex: e.componentIndex, seriesName: e.name, seriesType: "treemap", selfType: "breadcrumb", nodeData: {dataIndex: n && n.dataIndex, name: n && n.name}, treePathInfo: n && Vv(n, e) } } function tm() { return new _H } function em() { return {nodeGroup: [], background: [], content: []} } function nm(t, e, n, i, r, o, a, s, l, u) { function c(e, n, i) { var r = tP(n); if (r.dataIndex = a.dataIndex, r.seriesIndex = t.seriesIndex, n.setShape({ x: 0, y: 0, width: w, height: S, r: z }), I) d(n); else { n.invisible = !1; var o = a.getVisual("style"), s = o.stroke, l = LH(k); l.fill = s; var u = DH(P); u.fill = P.get("borderColor"); var h = DH(O); h.fill = O.get("borderColor"); var c = DH(R); if (c.fill = R.get("borderColor"), i) { var p = w - 2 * M; f(n, s, o.opacity, {x: M, y: 0, width: p, height: D}) } else n.removeTextContent(); n.setStyle(l), n.ensureState("emphasis").style = u, n.ensureState("blur").style = h, n.ensureState("select").style = c, ia(n) } e.add(n) } function p(e, n) { var i = tP(n); i.dataIndex = a.dataIndex, i.seriesIndex = t.seriesIndex; var r = Math.max(w - 2 * M, 0), o = Math.max(S - 2 * M, 0); if (n.culling = !0, n.setShape({x: M, y: M, width: r, height: o, r: z}), I) d(n); else { n.invisible = !1; var s = a.getVisual("style"), l = s.fill, u = LH(k); u.fill = l, u.decal = s.decal; var h = DH(P), c = DH(O), p = DH(R); f(n, l, s.opacity, null), n.setStyle(u), n.ensureState("emphasis").style = h, n.ensureState("blur").style = c, n.ensureState("select").style = p, ia(n) } e.add(n) } function d(t) { !t.invisible && o.push(t) } function f(e, n, i, r) { var o = b.getModel(r ? IH : MH), s = er(b.get("name"), null), l = o.getShallow("show"); ks(e, Ps(b, r ? IH : MH), { defaultText: l ? s : null, inheritColor: n, defaultOpacity: i, labelFetcher: t, labelDataIndex: a.dataIndex }); var u = e.getTextContent(), h = u.style, c = G(h.padding || 0); r && (e.setTextConfig({layoutRect: r}), u.disableLabelLayout = !0), u.beforeUpdate = function () { var t = Math.max((r ? r.width : e.shape.width) - c[1] - c[3], 0), n = Math.max((r ? r.height : e.shape.height) - c[0] - c[2], 0); (h.width !== t || h.height !== n) && u.setStyle({width: t, height: n}) }, h.truncateMinChar = 2, h.lineOverflow = "truncate", g(h, r, x); var p = u.getState("emphasis"); g(p ? p.style : null, r, x) } function g(e, n, i) { var r = e ? e.text : null; if (!n && i.isLeafRoot && null != r) { var o = t.get("drillDownIcon", !0); e.text = o ? o + " " + r : r } } function y(t, i, o, a) { var s = null != C && n[t][C], l = r[t]; return s ? (n[t][C] = null, v(l, s)) : I || (s = new i, s instanceof HL && (s.z2 = im(o, a)), m(l, s)), e[t][T] = s } function v(t, e) { var n = t[T] = {}; e instanceof bH ? (n.oldX = e.x, n.oldY = e.y) : n.oldShape = h({}, e.shape) } function m(t, e) { var n = t[T] = {}, o = a.parentNode, s = e instanceof sL; if (o && (!i || "drillDown" === i.direction)) { var l = 0, u = 0, h = r.background[o.getRawIndex()]; !i && h && h.oldShape && (l = h.oldShape.width, u = h.oldShape.height), s ? (n.oldX = 0, n.oldY = u) : n.oldShape = { x: l, y: u, width: 0, height: 0 } } n.fadein = !s } if (a) { var x = a.getLayout(), _ = t.getData(), b = a.getModel(); if (_.setItemGraphicEl(a.dataIndex, null), x && x.isInView) { var w = x.width, S = x.height, M = x.borderWidth, I = x.invisible, T = a.getRawIndex(), C = s && s.getRawIndex(), A = a.viewChildren, D = x.upperHeight, L = A && A.length, k = b.getModel("itemStyle"), P = b.getModel(["emphasis", "itemStyle"]), O = b.getModel(["blur", "itemStyle"]), R = b.getModel(["select", "itemStyle"]), z = k.get("borderRadius") || 0, E = y("nodeGroup", bH); if (E) { if (l.add(E), E.x = x.x || 0, E.y = x.y || 0, E.markRedraw(), kH(E).nodeWidth = w, kH(E).nodeHeight = S, x.isAboveViewRoot) return E; var N = y("background", wH, u, CH); N && c(E, N, L && x.upperLabelHeight); var B = b.get(["emphasis", "focus"]), V = b.get(["emphasis", "blurScope"]), F = "ancestor" === B ? a.getAncestorsIndices() : "descendant" === B ? a.getDescendantIndices() : B; if (L) Ca(E) && Ta(E, !1), N && (Ta(N, !0), _.setItemGraphicEl(a.dataIndex, N), Ma(N, F, V)); else { var H = y("content", wH, u, AH); H && p(E, H), N && Ca(N) && Ta(N, !1), Ta(E, !0), _.setItemGraphicEl(a.dataIndex, E), Ma(E, F, V) } return E } } } } function im(t, e) { return t * TH + e } function rm(t) { var e = t.pieceList; t.hasSpecialVisual = !1, y(e, function (e, n) { e.originIndex = n, null != e.visual && (t.hasSpecialVisual = !0) }) } function om(t) { var e = t.categories, n = t.categoryMap = {}, i = t.visual; if (OH(e, function (t, e) { n[t] = e }), !M(i)) { var r = []; D(i) ? OH(i, function (t, e) { var i = n[e]; r[null != i ? i : zH] = t }) : r[zH] = i, i = fm(t, r) } for (var o = e.length - 1; o >= 0; o--) null == i[o] && (delete n[e[o]], e.pop()) } function am(t, e) { var n = t.visual, i = []; D(n) ? OH(n, function (t) { i.push(t) }) : null != n && i.push(n); var r = {color: 1, symbol: 1}; e || 1 !== i.length || r.hasOwnProperty(t.type) || (i[1] = i[0]), fm(t, i) } function sm(t) { return { applyVisual: function (e, n, i) { var r = this.mapValueToVisual(e); i("color", t(n("color"), r)) }, _normalizedToVisual: pm([0, 1]) } } function lm(t) { var e = this.option.visual; return e[Math.round(xi(t, [0, 1], [0, e.length - 1], !0))] || {} } function um(t) { return function (e, n, i) { i(t, this.mapValueToVisual(e)) } } function hm(t) { var e = this.option.visual; return e[this.option.loop && t !== zH ? t % e.length : t] } function cm() { return this.option.visual[0] } function pm(t) { return { linear: function (e) { return xi(e, t, this.option.visual, !0) }, category: hm, piecewise: function (e, n) { var i = dm.call(this, n); return null == i && (i = xi(e, t, this.option.visual, !0)), i }, fixed: cm } } function dm(t) { var e = this.option, n = e.pieceList; if (e.hasSpecialVisual) { var i = EH.findPieceIndex(t, n), r = n[i]; if (r && r.visual) return r.visual[this.type] } } function fm(t, e) { return t.visual = e, "color" === t.type && (t.parsedVisual = v(e, function (t) { return an(t) })), e } function gm(t, e, n) { return t ? n >= e : n > e } function ym(t, e, n, i) { var r = t.getModel(), o = t.getLayout(), a = t.hostTree.data; if (o && !o.invisible && o.isInView) { var s, l = r.getModel(BH), u = vm(l, e, i), h = a.ensureUniqueItemVisual(t.dataIndex, "style"), c = l.get("borderColor"), p = l.get("borderColorSaturation"); null != p && (s = mm(u), c = xm(p, s)), h.stroke = c; var d = t.viewChildren; if (d && d.length) { var f = bm(t, r, o, l, u, d); y(d, function (t, e) { if (t.depth >= n.length || t === n[t.depth]) { var o = Sm(r, u, t, e, f, i); ym(t, o, n, i) } }) } else s = mm(u), h.fill = s } } function vm(t, e, n) { var i = h({}, e), r = n.designatedVisualItemStyle; return y(["color", "colorAlpha", "colorSaturation"], function (n) { r[n] = e[n]; var o = t.get(n); r[n] = null, null != o && (i[n] = o) }), i } function mm(t) { var e = _m(t, "color"); if (e) { var n = _m(t, "colorAlpha"), i = _m(t, "colorSaturation"); return i && (e = dn(e, null, null, i)), n && (e = fn(e, n)), e } } function xm(t, e) { return null != e ? dn(e, null, null, t) : null } function _m(t, e) { var n = t[e]; return null != n && "none" !== n ? n : void 0 } function bm(t, e, n, i, r, o) { if (o && o.length) { var a = wm(e, "color") || null != r.color && "none" !== r.color && (wm(e, "colorAlpha") || wm(e, "colorSaturation")); if (a) { var s = e.get("visualMin"), l = e.get("visualMax"), u = n.dataExtent.slice(); null != s && s < u[0] && (u[0] = s), null != l && l > u[1] && (u[1] = l); var h = e.get("colorMappingBy"), c = {type: a.name, dataExtent: u, visual: a.range}; "color" !== c.type || "index" !== h && "id" !== h ? c.mappingMethod = "linear" : (c.mappingMethod = "category", c.loop = !0); var p = new EH(c); return VH(p).drColorMappingBy = h, p } } } function wm(t, e) { var n = t.get(e); return M(n) && n.length ? {name: e, range: n} : null } function Sm(t, e, n, i, r, o) { var a = h({}, e); if (r) { var s = r.type, l = "color" === s && VH(r).drColorMappingBy, u = "index" === l ? i : "id" === l ? o.mapIdToIndex(n.getId()) : n.getValue(t.get("visualDimension")); a[s] = r.mapValueToVisual(u) } return a } function Mm(t, e, n, i) { var r, o; if (!t.isRemoved()) { var a = t.getLayout(); r = a.width, o = a.height; var s = t.getModel(), l = s.get(YH), u = s.get(ZH) / 2, h = Rm(s), c = Math.max(l, h), p = l - u, d = c - u; t.setLayout({ borderWidth: l, upperHeight: c, upperLabelHeight: h }, !0), r = GH(r - 2 * p, 0), o = GH(o - p - d, 0); var f = r * o, g = Im(t, s, f, e, n, i); if (g.length) { var y = {x: p, y: d, width: r, height: o}, v = HH(r, o), m = 1 / 0, x = []; x.area = 0; for (var _ = 0, b = g.length; b > _;) { var w = g[_]; x.push(w), x.area += w.getLayout().area; var S = Dm(x, v, e.squareRatio); m >= S ? (_++, m = S) : (x.area -= x.pop().getLayout().area, Lm(x, v, y, u, !1), v = HH(y.width, y.height), x.length = x.area = 0, m = 1 / 0) } if (x.length && Lm(x, v, y, u, !0), !n) { var M = s.get("childrenVisibleMin"); null != M && M > f && (n = !0) } for (var _ = 0, b = g.length; b > _; _++) Mm(g[_], e, n, i + 1) } } } function Im(t, e, n, i, r, o) { var a = t.children || [], s = i.sort; "asc" !== s && "desc" !== s && (s = null); var l = null != i.leafDepth && i.leafDepth <= o; if (r && !l) return t.viewChildren = []; a = x(a, function (t) { return !t.isRemoved() }), Cm(a, s); var u = Am(e, a, s); if (0 === u.sum) return t.viewChildren = []; if (u.sum = Tm(e, n, u.sum, s, a), 0 === u.sum) return t.viewChildren = []; for (var h = 0, c = a.length; c > h; h++) { var p = a[h].getValue() / u.sum * n; a[h].setLayout({area: p}) } return l && (a.length && t.setLayout({isLeafRoot: !0}, !0), a.length = 0), t.viewChildren = a, t.setLayout({dataExtent: u.dataExtent}, !0), a } function Tm(t, e, n, i, r) { if (!i) return n; for (var o = t.get("visibleMin"), a = r.length, s = a, l = a - 1; l >= 0; l--) { var u = r["asc" === i ? a - l - 1 : l].getValue(); o > u / n * e && (s = l, n -= u) } return "asc" === i ? r.splice(0, a - s) : r.splice(s, a - s), n } function Cm(t, e) { return e && t.sort(function (t, n) { var i = "asc" === e ? t.getValue() - n.getValue() : n.getValue() - t.getValue(); return 0 === i ? "asc" === e ? t.dataIndex - n.dataIndex : n.dataIndex - t.dataIndex : i }), t } function Am(t, e, n) { for (var i = 0, r = 0, o = e.length; o > r; r++) i += e[r].getValue(); var a, s = t.get("visualDimension"); return e && e.length ? "value" === s && n ? (a = [e[e.length - 1].getValue(), e[0].getValue()], "asc" === n && a.reverse()) : (a = [1 / 0, -1 / 0], XH(e, function (t) { var e = t.getValue(s); e < a[0] && (a[0] = e), e > a[1] && (a[1] = e) })) : a = [0 / 0, 0 / 0], {sum: i, dataExtent: a} } function Dm(t, e, n) { for (var i = 0, r = 1 / 0, o = 0, a = void 0, s = t.length; s > o; o++) a = t[o].getLayout().area, a && (r > a && (r = a), a > i && (i = a)); var l = t.area * t.area, u = e * e * n; return l ? GH(u * i / l, l / (u * r)) : 1 / 0 } function Lm(t, e, n, i, r) { var o = e === n.width ? 0 : 1, a = 1 - o, s = ["x", "y"], l = ["width", "height"], u = n[s[o]], h = e ? t.area / e : 0; (r || h > n[l[a]]) && (h = n[l[a]]); for (var c = 0, p = t.length; p > c; c++) { var d = t[c], f = {}, g = h ? d.getLayout().area / h : 0, y = f[l[a]] = GH(h - 2 * i, 0), v = n[s[o]] + n[l[o]] - u, m = c === p - 1 || g > v ? v : g, x = f[l[o]] = GH(m - 2 * i, 0); f[s[a]] = n[s[a]] + HH(i, y / 2), f[s[o]] = u + HH(i, x / 2), u += m, d.setLayout(f, !0) } n[s[a]] += h, n[l[a]] -= h } function km(t, e, n, i, r) { var o = (e || {}).node, a = [i, r]; if (!o || o === n) return a; for (var s, l = i * r, u = l * t.option.zoomToNodeRatio; s = o.parentNode;) { for (var h = 0, c = s.children, p = 0, d = c.length; d > p; p++) h += c[p].getValue(); var f = o.getValue(); if (0 === f) return a; u *= h / f; var g = s.getModel(), y = g.get(YH), v = Math.max(y, Rm(g)); u += 4 * y * y + (3 * y + v) * Math.pow(u, .5), u > yL && (u = yL), o = s } l > u && (u = l); var m = Math.pow(u / l, .5); return [i * m, r * m] } function Pm(t, e, n) { if (e) return {x: e.x, y: e.y}; var i = {x: 0, y: 0}; if (!n) return i; var r = n.node, o = r.getLayout(); if (!o) return i; for (var a = [o.width / 2, o.height / 2], s = r; s;) { var l = s.getLayout(); a[0] += l.x, a[1] += l.y, s = s.parentNode } return {x: t.width / 2 - a[0], y: t.height / 2 - a[1]} } function Om(t, e, n, i, r) { var o = t.getLayout(), a = n[r], s = a && a === t; if (!(a && !s || r === n.length && t !== i)) { t.setLayout({isInView: !0, invisible: !s && !e.intersect(o), isAboveViewRoot: s}, !0); var l = new $D(e.x - o.x, e.y - o.y, e.width, e.height); XH(t.viewChildren || [], function (t) { Om(t, l, n, i, r + 1) }) } } function Rm(t) { return t.get(UH) ? t.get(jH) : 0 } function zm(t) { t.registerSeriesModel(gH), t.registerChartView(PH), t.registerVisual(FH), t.registerLayout(qH), jv(t) } function Em(t) { t.registerAction({type: QH, update: "updateView"}, function (t, e) { function n(e) { var n = Ev(t, [QH], e); if (n) { var i = e.getViewRoot(); i && (t.direction = Bv(i, n.node) ? "rollUp" : "drillDown"), e.resetViewRoot(n.node) } } e.eachComponent({mainType: "series", subType: "sunburst", query: t}, n) }), t.registerAction({type: tW, update: "none"}, function (t, e, n) { function i(e) { var n = Ev(t, [tW], e); n && (t.dataIndex = n.node.dataIndex) } t = h({}, t), e.eachComponent({ mainType: "series", subType: "sunburst", query: t }, i), n.dispatchAction(h(t, {type: "highlight"})) }), t.registerAction({type: eW, update: "updateView"}, function (t, e, n) { t = h({}, t), n.dispatchAction(h(t, {type: "downplay"})) }) } function Nm(t) { var e = 0; y(t.children, function (t) { Nm(t); var n = t.value; M(n) && (n = n[0]), e += n }); var n = t.value; M(n) && (n = n[0]), (null == n || isNaN(n)) && (n = e), 0 > n && (n = 0), M(t.value) ? t.value[0] = n : t.value = n } function Bm(t, e, n) { e.eachSeriesByType(t, function (t) { var e = t.get("center"), i = t.get("radius"); M(i) || (i = [0, i]), M(e) || (e = [e, e]); var r = n.getWidth(), o = n.getHeight(), a = Math.min(r, o), s = _i(e[0], r), l = _i(e[1], o), u = _i(i[0], a / 2), h = _i(i[1], a / 2), c = -t.get("startAngle") * rW, p = t.get("minAngle") * rW, d = t.getData().tree.root, f = t.getViewRoot(), g = f.depth, v = t.get("sort"); null != v && Vm(f, v); var m = 0; y(f.children, function (t) { !isNaN(t.getValue()) && m++ }); var x = f.getValue(), _ = Math.PI / (x || m) * 2, b = f.depth > 0, w = f.height - (b ? -1 : 1), S = (h - u) / (w || 1), I = t.get("clockwise"), T = t.get("stillShowZeroSum"), C = I ? 1 : -1, A = function (t, e) { if (t) { var n = e; if (t !== d) { var i = t.getValue(), r = 0 === x && T ? _ : i * _; p > r && (r = p), n = e + C * r; var o = t.depth - g - (b ? -1 : 1), h = u + S * o, c = u + S * (o + 1), f = t.getModel(); null != f.get("r0") && (h = _i(f.get("r0"), a / 2)), null != f.get("r") && (c = _i(f.get("r"), a / 2)), t.setLayout({ angle: r, startAngle: e, endAngle: n, clockwise: I, cx: s, cy: l, r0: h, r: c }) } if (t.children && t.children.length) { var v = 0; y(t.children, function (t) { v += A(t, e + v) }) } return n - e } }; if (b) { var D = u, L = u + S, k = 2 * Math.PI; d.setLayout({angle: k, startAngle: c, endAngle: c + k, clockwise: I, cx: s, cy: l, r0: D, r: L}) } A(f, c) }) } function Vm(t, e) { var n = t.children || []; t.children = Fm(n, e), n.length && y(t.children, function (t) { Vm(t, e) }) } function Fm(t, e) { if ("function" == typeof e) { var n = v(t, function (t, e) { var n = t.getValue(); return { params: { depth: t.depth, height: t.height, dataIndex: t.dataIndex, getValue: function () { return n } }, index: e } }); return n.sort(function (t, n) { return e(t.params, n.params) }), v(n, function (e) { return t[e.index] }) } var i = "asc" === e; return t.sort(function (t, e) { var n = (t.getValue() - e.getValue()) * (i ? 1 : -1); return 0 === n ? (t.dataIndex - e.dataIndex) * (i ? -1 : 1) : n }) } function Gm(t) { function e(t, e, i) { for (var r = t; r && r.depth > 1;) r = r.parentNode; var o = e.getColorFromPalette(r.name || r.dataIndex + "", n); return t.depth > 1 && "string" == typeof o && (o = un(o, (t.depth - 1) / (i - 1) * .5)), o } var n = {}; t.eachSeriesByType("sunburst", function (t) { var n = t.getData(), i = n.tree; i.eachNode(function (r) { var o = r.getModel(), a = o.getModel("itemStyle").getItemStyle(); a.fill || (a.fill = e(r, t, i.root.height)); var s = n.ensureUniqueItemVisual(r.dataIndex, "style"); h(s, a) }) }) } function Hm(t) { t.registerChartView(nW), t.registerSeriesModel(iW), t.registerLayout(S(Bm, "sunburst")), t.registerProcessor(S(Bg, "sunburst")), t.registerVisual(Gm), Em(t) } function Wm(t) { return isNaN(+t.cpx1) || isNaN(+t.cpy1) } function Xm(t) { return "_" + t + "Type" } function Ym(t, e, n) { var i = e.getItemVisual(n, t); if (i && "none" !== i) { var r = e.getItemVisual(n, t + "Size"), o = e.getItemVisual(n, t + "Rotate"), a = e.getItemVisual(n, t + "Offset") || 0, s = e.getItemVisual(n, t + "KeepAspect"), l = M(r) ? r : [r, r], u = M(a) ? a : [a, a]; u[0] = _i(u[0], l[0]), u[1] = _i(B(u[1], u[0]), l[1]); var h = Sc(i, -l[0] / 2 + u[0], -l[1] / 2 + u[1], l[0], l[1], null, s); return h.__specifiedRotation = null == o || isNaN(o) ? void 0 : +o * Math.PI / 180 || 0, h.name = t, h } } function Zm(t) { var e = new lW({name: "line", subPixelOptimize: !0}); return Um(e.shape, t), e } function Um(t, e) { t.x1 = e[0][0], t.y1 = e[0][1], t.x2 = e[1][0], t.y2 = e[1][1], t.percent = 1; var n = e[2]; n ? (t.cpx1 = n[0], t.cpy1 = n[1]) : (t.cpx1 = 0 / 0, t.cpy1 = 0 / 0) } function jm(t) { return t.animators && t.animators.length > 0 } function qm(t) { var e = t.hostModel; return { lineStyle: e.getModel("lineStyle").getLineStyle(), emphasisLineStyle: e.getModel(["emphasis", "lineStyle"]).getLineStyle(), blurLineStyle: e.getModel(["blur", "lineStyle"]).getLineStyle(), selectLineStyle: e.getModel(["select", "lineStyle"]).getLineStyle(), labelStatesModels: Ps(e) } } function Km(t) { return isNaN(t[0]) || isNaN(t[1]) } function $m(t) { return !Km(t[0]) && !Km(t[1]) } function Jm(t) { var e = t.data; e && e[0] && e[0][0] && e[0][0].coord && (t.data = v(e, function (t) { var e = [t[0].coord, t[1].coord], n = {coords: e}; return t[0].name && (n.fromName = t[0].name), t[1].name && (n.toName = t[1].name), u([n, t[0], t[1]]) })) } function Qm(t) { return t instanceof Array || (t = [t, t]), t } function tx(t) { t.registerChartView(xW), t.registerSeriesModel(wW), t.registerLayout(mW), t.registerVisual(SW) } function ex(t) { var e = t.findComponents({mainType: "legend"}); e && e.length && t.eachSeriesByType("graph", function (t) { var n = t.getCategoriesData(), i = t.getGraph(), r = i.data, o = n.mapArray(n.getName); r.filterSelf(function (t) { var n = r.getItemModel(t), i = n.getShallow("category"); if (null != i) { "number" == typeof i && (i = o[i]); for (var a = 0; a < e.length; a++) if (!e[a].isSelected(i)) return !1 } return !0 }) }) } function nx(t) { var e = {}; t.eachSeriesByType("graph", function (t) { var n = t.getCategoriesData(), i = t.getData(), r = {}; n.each(function (i) { var o = n.getName(i); r["ec-" + o] = i; var a = n.getItemModel(i), s = a.getModel("itemStyle").getItemStyle(); s.fill || (s.fill = t.getColorFromPalette(o, e)), n.setItemVisual(i, "style", s); for (var l = ["symbol", "symbolSize", "symbolKeepAspect"], u = 0; u < l.length; u++) { var h = a.getShallow(l[u], !0); null != h && n.setItemVisual(i, l[u], h) } }), n.count() && i.each(function (t) { var e = i.getItemModel(t), o = e.getShallow("category"); if (null != o) { "string" == typeof o && (o = r["ec-" + o]); var a = n.getItemVisual(o, "style"), s = i.ensureUniqueItemVisual(t, "style"); h(s, a); for (var l = ["symbol", "symbolSize", "symbolKeepAspect"], u = 0; u < l.length; u++) i.setItemVisual(t, l[u], n.getItemVisual(o, l[u])) } }) }) } function ix(t) { return t instanceof Array || (t = [t, t]), t } function rx(t) { t.eachSeriesByType("graph", function (t) { var e = t.getGraph(), n = t.getEdgeData(), i = ix(t.get("edgeSymbol")), r = ix(t.get("edgeSymbolSize")); n.setVisual("fromSymbol", i && i[0]), n.setVisual("toSymbol", i && i[1]), n.setVisual("fromSymbolSize", r && r[0]), n.setVisual("toSymbolSize", r && r[1]), n.setVisual("style", t.getModel("lineStyle").getLineStyle()), n.each(function (t) { var i = n.getItemModel(t), r = e.getEdgeByIndex(t), o = ix(i.getShallow("symbol", !0)), a = ix(i.getShallow("symbolSize", !0)), s = i.getModel("lineStyle").getLineStyle(), l = n.ensureUniqueItemVisual(t, "style"); switch (h(l, s), l.stroke) { case"source": var u = r.node1.getVisual("style"); l.stroke = u && u.fill; break; case"target": var u = r.node2.getVisual("style"); l.stroke = u && u.fill } o[0] && r.setVisual("fromSymbol", o[0]), o[1] && r.setVisual("toSymbol", o[1]), a[0] && r.setVisual("fromSymbolSize", a[0]), a[1] && r.setVisual("toSymbolSize", a[1]) }) }) } function ox(t) { IW(t) && (t.__curvenessList = [], t.__edgeMap = {}, TW(t)) } function ax(t, e, n, i) { if (IW(n)) { var r = CW(t, e, n), o = n.__edgeMap, a = o[AW(r)]; o[r] && !a ? o[r].isForward = !0 : a && o[r] && (a.isForward = !0, o[r].isForward = !1), o[r] = o[r] || [], o[r].push(i) } } function sx(t, e, n, i) { var r = IW(e), o = M(r); if (!r) return null; var a = DW(t, e); if (!a) return null; for (var s = -1, l = 0; l < a.length; l++) if (a[l] === n) { s = l; break } var u = LW(t, e); TW(e, u), t.lineStyle = t.lineStyle || {}; var h = CW(t.node1, t.node2, e), c = e.__curvenessList, p = o ? 0 : u % 2 ? 0 : 1; if (a.isForward) return c[p + s]; var d = AW(h), f = kW(d, e), g = c[s + f + p]; return i ? o ? r && 0 === r[0] ? (f + p) % 2 ? g : -g : ((f % 2 ? 0 : 1) + p) % 2 ? g : -g : (f + p) % 2 ? g : -g : c[s + f + p] } function lx(t) { var e = t.coordinateSystem; if (!e || "view" === e.type) { var n = t.getGraph(); n.eachNode(function (t) { var e = t.getModel(); t.setLayout([+e.get("x"), +e.get("y")]) }), ux(n, t) } } function ux(t, e) { t.eachEdge(function (t, n) { var i = V(t.getModel().get(["lineStyle", "curveness"]), -sx(t, e, n, !0), 0), r = Q(t.node1.getLayout()), o = Q(t.node2.getLayout()), a = [r, o]; +i && a.push([(r[0] + o[0]) / 2 - (r[1] - o[1]) * i, (r[1] + o[1]) / 2 - (o[0] - r[0]) * i]), t.setLayout(a) }) } function hx(t) { t.eachSeriesByType("graph", function (t) { var e = t.get("layout"), n = t.coordinateSystem; if (n && "view" !== n.type) { var i = t.getData(), r = []; y(n.dimensions, function (t) { r = r.concat(i.mapDimensionsAll(t)) }); for (var o = 0; o < i.count(); o++) { for (var a = [], s = !1, l = 0; l < r.length; l++) { var u = i.get(r[l], o); isNaN(u) || (s = !0), a.push(u) } s ? i.setItemLayout(o, n.dataToPoint(a)) : i.setItemLayout(o, [0 / 0, 0 / 0]) } ux(i.graph, t) } else e && "none" !== e || lx(t) }) } function cx(t) { var e = t.coordinateSystem; if ("view" !== e.type) return 1; var n = t.option.nodeScaleRatio, i = e.scaleX, r = e.getZoom(), o = (r - 1) * n + 1; return o / i } function px(t) { var e = t.getVisual("symbolSize"); return e instanceof Array && (e = (e[0] + e[1]) / 2), +e } function dx(t, e) { var n = t.coordinateSystem; if (!n || "view" === n.type) { var i = n.getBoundingRect(), r = t.getData(), o = r.graph, a = i.width / 2 + i.x, s = i.height / 2 + i.y, l = Math.min(i.width, i.height) / 2, u = r.count(); r.setLayout({cx: a, cy: s}), u && (RW[e](t, o, r, l, a, s, u), o.eachEdge(function (e, n) { var i, r = V(e.getModel().get(["lineStyle", "curveness"]), sx(e, t, n), 0), o = Q(e.node1.getLayout()), l = Q(e.node2.getLayout()), u = (o[0] + l[0]) / 2, h = (o[1] + l[1]) / 2; +r && (r *= 3, i = [a * r + u * (1 - r), s * r + h * (1 - r)]), e.setLayout([o, l, i]) })) } } function fx(t) { t.eachSeriesByType("graph", function (t) { "circular" === t.get("layout") && dx(t, "symbolSize") }) } function gx(t, e, n) { for (var i = t, r = e, o = n.rect, a = o.width, s = o.height, l = [o.x + a / 2, o.y + s / 2], u = null == n.gravity ? .1 : n.gravity, h = 0; h < i.length; h++) { var c = i[h]; c.p || (c.p = $(a * (Math.random() - .5) + l[0], s * (Math.random() - .5) + l[1])), c.pp = Q(c.p), c.edges = null } var p, d, f = null == n.friction ? .6 : n.friction, g = f; return { warmUp: function () { g = .8 * f }, setFixed: function (t) { i[t].fixed = !0 }, setUnfixed: function (t) { i[t].fixed = !1 }, beforeStep: function (t) { p = t }, afterStep: function (t) { d = t }, step: function (t) { p && p(i, r); for (var e = [], n = i.length, o = 0; o < r.length; o++) { var a = r[o]; if (!a.ignoreForceLayout) { var s = a.n1, h = a.n2; ie(e, h.p, s.p); var c = re(e) - a.d, f = h.w / (s.w + h.w); isNaN(f) && (f = 0), he(e, e), !s.fixed && zW(s.p, s.p, e, f * c * g), !h.fixed && zW(h.p, h.p, e, -(1 - f) * c * g) } } for (var o = 0; n > o; o++) { var y = i[o]; y.fixed || (ie(e, l, y.p), zW(y.p, y.p, e, u * g)) } for (var o = 0; n > o; o++) for (var s = i[o], v = o + 1; n > v; v++) { var h = i[v]; ie(e, h.p, s.p); var c = re(e); 0 === c && (te(e, Math.random() - .5, Math.random() - .5), c = 1); var m = (s.rep + h.rep) / c / c; !s.fixed && zW(s.pp, s.pp, e, m), !h.fixed && zW(h.pp, h.pp, e, -m) } for (var x = [], o = 0; n > o; o++) { var y = i[o]; y.fixed || (ie(x, y.p, y.pp), zW(y.p, y.p, x, g), J(y.pp, y.p)) } g = .992 * g; var _ = .01 > g; d && d(i, r, _), t && t(_) } } } function yx(t) { t.eachSeriesByType("graph", function (t) { var e = t.coordinateSystem; if (!e || "view" === e.type) if ("force" === t.get("layout")) { var n = t.preservedPoints || {}, i = t.getGraph(), r = i.data, o = i.edgeData, a = t.getModel("force"), s = a.get("initLayout"); t.preservedPoints ? r.each(function (t) { var e = r.getId(t); r.setItemLayout(t, n[e] || [0 / 0, 0 / 0]) }) : s && "none" !== s ? "circular" === s && dx(t, "value") : lx(t); var l = r.getDataExtent("value"), u = o.getDataExtent("value"), h = a.get("repulsion"), c = a.get("edgeLength"), p = M(h) ? h : [h, h], d = M(c) ? c : [c, c]; d = [d[1], d[0]]; var f = r.mapArray("value", function (t, e) { var n = r.getItemLayout(e), i = xi(t, l, p); return isNaN(i) && (i = (p[0] + p[1]) / 2), { w: i, rep: i, fixed: r.getItemModel(e).get("fixed"), p: !n || isNaN(n[0]) || isNaN(n[1]) ? null : n } }), g = o.mapArray("value", function (e, n) { var r = i.getEdgeByIndex(n), o = xi(e, u, d); isNaN(o) && (o = (d[0] + d[1]) / 2); var a = r.getModel(), s = V(r.getModel().get(["lineStyle", "curveness"]), -sx(r, t, n, !0), 0); return { n1: f[r.node1.dataIndex], n2: f[r.node2.dataIndex], d: o, curveness: s, ignoreForceLayout: a.get("ignoreForceLayout") } }), y = e.getBoundingRect(), v = gx(f, g, {rect: y, gravity: a.get("gravity"), friction: a.get("friction")}); v.beforeStep(function (t) { for (var e = 0, n = t.length; n > e; e++) t[e].fixed && J(t[e].p, i.getNodeByIndex(e).getLayout()) }), v.afterStep(function (t, e) { for (var o = 0, a = t.length; a > o; o++) t[o].fixed || i.getNodeByIndex(o).setLayout(t[o].p), n[r.getId(o)] = t[o].p; for (var o = 0, a = e.length; a > o; o++) { var s = e[o], l = i.getEdgeByIndex(o), u = s.n1.p, h = s.n2.p, c = l.getLayout(); c = c ? c.slice() : [], c[0] = c[0] || [], c[1] = c[1] || [], J(c[0], u), J(c[1], h), +s.curveness && (c[2] = [(u[0] + h[0]) / 2 - (u[1] - h[1]) * s.curveness, (u[1] + h[1]) / 2 - (h[0] - u[0]) * s.curveness]), l.setLayout(c) } }), t.forceLayout = v, t.preservedPoints = n, v.step() } else t.forceLayout = null }) } function vx(t, e, n) { var i = h(t.getBoxLayoutParams(), {aspect: n}); return kl(i, {width: e.getWidth(), height: e.getHeight()}) } function mx(t, e) { var n = []; return t.eachSeriesByType("graph", function (t) { var i = t.get("coordinateSystem"); if (!i || "view" === i) { var r = t.getData(), o = r.mapArray(function (t) { var e = r.getItemModel(t); return [+e.get("x"), +e.get("y")] }), a = [], s = []; ao(o, a, s), s[0] - a[0] === 0 && (s[0] += 1, a[0] -= 1), s[1] - a[1] === 0 && (s[1] += 1, a[1] -= 1); var l = (s[0] - a[0]) / (s[1] - a[1]), u = vx(t, e, l); isNaN(l) && (a = [u.x, u.y], s = [u.x + u.width, u.y + u.height]); var h = s[0] - a[0], c = s[1] - a[1], p = u.width, d = u.height, f = t.coordinateSystem = new nH; f.zoomLimit = t.get("scaleLimit"), f.setBoundingRect(a[0], a[1], h, c), f.setViewRect(u.x, u.y, p, d), f.setCenter(t.get("center")), f.setZoom(t.get("zoom")), n.push(f) } }), n } function xx(t, e, n) { for (var i, r = t[0], o = t[1], a = t[2], s = 1 / 0, l = n * n, u = .1, h = .1; .9 >= h; h += .1) { EW[0] = VW(r[0], o[0], a[0], h), EW[1] = VW(r[1], o[1], a[1], h); var c = GW(FW(EW, e) - l); s > c && (s = c, i = h) } for (var p = 0; 32 > p; p++) { var d = i + u; NW[0] = VW(r[0], o[0], a[0], i), NW[1] = VW(r[1], o[1], a[1], i), BW[0] = VW(r[0], o[0], a[0], d), BW[1] = VW(r[1], o[1], a[1], d); var c = FW(NW, e) - l; if (GW(c) < .01) break; var f = FW(BW, e) - l; u /= 2, 0 > c ? f >= 0 ? i += u : i -= u : f >= 0 ? i -= u : i += u } return i } function _x(t, e) { var n = [], i = io, r = [[], [], []], o = [[], []], a = []; e /= 2, t.eachEdge(function (t) { var s = t.getLayout(), l = t.getVisual("fromSymbol"), u = t.getVisual("toSymbol"); s.__original || (s.__original = [Q(s[0]), Q(s[1])], s[2] && s.__original.push(Q(s[2]))); var h = s.__original; if (null != s[2]) { if (J(r[0], h[0]), J(r[1], h[2]), J(r[2], h[1]), l && "none" !== l) { var c = px(t.node1), p = xx(r, h[0], c * e); i(r[0][0], r[1][0], r[2][0], p, n), r[0][0] = n[3], r[1][0] = n[4], i(r[0][1], r[1][1], r[2][1], p, n), r[0][1] = n[3], r[1][1] = n[4] } if (u && "none" !== u) { var c = px(t.node2), p = xx(r, h[1], c * e); i(r[0][0], r[1][0], r[2][0], p, n), r[1][0] = n[1], r[2][0] = n[2], i(r[0][1], r[1][1], r[2][1], p, n), r[1][1] = n[1], r[2][1] = n[2] } J(s[0], r[0]), J(s[1], r[2]), J(s[2], r[1]) } else { if (J(o[0], h[0]), J(o[1], h[1]), ie(a, o[1], o[0]), he(a, a), l && "none" !== l) { var c = px(t.node1); ne(o[0], o[0], a, c * e) } if (u && "none" !== u) { var c = px(t.node2); ne(o[1], o[1], a, -c * e) } J(s[0], o[0]), J(s[1], o[1]) } }) } function bx(t) { return "view" === t.type } function Sx(t) { return "_EC_" + t } function Mx(t, e) { return { getValue: function (n) { var i = this[t][e]; return i.get(i.getDimension(n || "value"), this.dataIndex) }, setVisual: function (n, i) { this.dataIndex >= 0 && this[t][e].setItemVisual(this.dataIndex, n, i) }, getVisual: function (n) { return this[t][e].getItemVisual(this.dataIndex, n) }, setLayout: function (n, i) { this.dataIndex >= 0 && this[t][e].setItemLayout(this.dataIndex, n, i) }, getLayout: function () { return this[t][e].getItemLayout(this.dataIndex) }, getGraphicEl: function () { return this[t][e].getItemGraphicEl(this.dataIndex) }, getRawIndex: function () { return this[t][e].getRawIndex(this.dataIndex) } } } function Ix(t, e, n, i, r) { for (var o = new WW(i), a = 0; a < t.length; a++) o.addNode(N(t[a].id, t[a].name, a), a); for (var s = [], l = [], u = 0, a = 0; a < e.length; a++) { var h = e[a], c = h.source, d = h.target; o.addEdge(c, d, u) && (l.push(h), s.push(N(er(h.id, null), c + " > " + d)), u++) } var f, g = n.get("coordinateSystem"); if ("cartesian2d" === g || "polar" === g) f = gd(t, n); else { var y = UR.get(g), v = y ? y.dimensions || [] : []; p(v, "value") < 0 && v.concat(["value"]); var m = ud(t, {coordDimensions: v}); f = new fV(m, n), f.initData(t) } var x = new fV(["value"], n); return x.initData(l, s), r && r(f, x), Tv({ mainData: f, struct: o, structAttr: "graph", datas: {node: f, edge: x}, datasAttr: {node: "data", edge: "edgeData"} }), o.update(), o } function Tx(t) { t.registerChartView(HW), t.registerSeriesModel(ZW), t.registerProcessor(ex), t.registerVisual(nx), t.registerVisual(rx), t.registerLayout(hx), t.registerLayout(t.PRIORITY.VISUAL.POST_CHART_LAYOUT, fx), t.registerLayout(yx), t.registerCoordinateSystem("graphView", { dimensions: nH.dimensions, create: mx }), t.registerAction({ type: "focusNodeAdjacency", event: "focusNodeAdjacency", update: "series:focusNodeAdjacency" }, function () { }), t.registerAction({ type: "unfocusNodeAdjacency", event: "unfocusNodeAdjacency", update: "series:unfocusNodeAdjacency" }, function () { }), t.registerAction(UW, function (t, e) { e.eachComponent({mainType: "series", query: t}, function (e) { var n = e.coordinateSystem, i = Yv(n, t); e.setCenter && e.setCenter(i.center), e.setZoom && e.setZoom(i.zoom) }) }) } function Cx(t, e, n, i, r) { var o = t.ends, a = new $W({shape: {points: r ? Dx(o, i, t) : o}}); return Ax(t, a, e, n, r), a } function Ax(t, e, n, i, r) { var o = n.hostModel, a = MO[r ? "initProps" : "updateProps"]; a(e, {shape: {points: t.ends}}, o, i), e.useStyle(n.getItemVisual(i, "style")), e.style.strokeNoScale = !0, e.z2 = 100; var s = n.getItemModel(i); Ia(e, s), Sa(e, s.get(["emphasis", "focus"]), s.get(["emphasis", "blurScope"])) } function Dx(t, e, n) { return v(t, function (t) { return t = t.slice(), t[e] = n.initBaseline, t }) } function Lx() { } function kx(t) { var e = Px(t); JW(e, function (t) { var e = t.seriesModels; e.length && (Ox(t), JW(e, function (e, n) { Rx(e, t.boxOffsetList[n], t.boxWidthList[n]) })) }) } function Px(t) { var e = [], n = []; return t.eachSeriesByType("boxplot", function (t) { var i = t.getBaseAxis(), r = p(n, i); 0 > r && (r = n.length, n[r] = i, e[r] = {axis: i, seriesModels: []}), e[r].seriesModels.push(t) }), e } function Ox(t) { var e, n, i = t.axis, r = t.seriesModels, o = r.length, a = t.boxWidthList = [], s = t.boxOffsetList = [], l = []; if ("category" === i.type) n = i.getBandWidth(); else { var u = 0; JW(r, function (t) { u = Math.max(u, t.getData().count()) }), e = i.getExtent(), Math.abs(e[1] - e[0]) / u } JW(r, function (t) { var e = t.get("boxWidth"); M(e) || (e = [e, e]), l.push([_i(e[0], n) || 0, _i(e[1], n) || 0]) }); var h = .8 * n - 2, c = h / o * .3, p = (h - c * (o - 1)) / o, d = p / 2 - h / 2; JW(r, function (t, e) { s.push(d), d += c + p, a.push(Math.min(Math.max(p, l[e][0]), l[e][1])) }) } function Rx(t, e, n) { function i(t, n, i) { var r = s.get(n, i), o = []; o[u] = t, o[h] = r; var l; return isNaN(t) || isNaN(r) ? l = [0 / 0, 0 / 0] : (l = a.dataToPoint(o), l[u] += e), l } function r(t, e, n) { var i = e.slice(), r = e.slice(); i[u] += l, r[u] -= l, n ? t.push(i, r) : t.push(r, i) } function o(t, e) { var n = e.slice(), i = e.slice(); n[u] -= l, i[u] += l, t.push(n, i) } var a = t.coordinateSystem, s = t.getData(), l = n / 2, u = "horizontal" === t.get("layout") ? 0 : 1, h = 1 - u, c = ["x", "y"], p = s.mapDimension(c[u]), d = s.mapDimensionsAll(c[h]); if (!(null == p || d.length < 5)) for (var f = 0; f < s.count(); f++) { var g = s.get(p, f), y = i(g, d[2], f), v = i(g, d[0], f), m = i(g, d[1], f), x = i(g, d[3], f), _ = i(g, d[4], f), b = []; r(b, m, !1), r(b, x, !0), b.push(v, m, _, x), o(b, v), o(b, _), o(b, y), s.setItemLayout(f, { initBaseline: y[h], ends: b }) } } function zx(t, e) { e = e || {}; for (var n = [], i = [], r = e.boundIQR, o = "none" === r || 0 === r, a = 0; a < t.length; a++) { var s = wi(t[a].slice()), l = Ri(s, .25), u = Ri(s, .5), h = Ri(s, .75), c = s[0], p = s[s.length - 1], d = (null == r ? 1.5 : r) * (h - l), f = o ? c : Math.max(c, l - d), g = o ? p : Math.min(p, h + d), y = e.itemNameFormatter, v = I(y) ? y({value: a}) : T(y) ? y.replace("{value}", a + "") : a + ""; n.push([v, f, l, u, h, g]); for (var m = 0; m < s.length; m++) { var x = s[m]; if (f > x || x > g) { var _ = [v, x]; i.push(_) } } } return {boxData: n, outliers: i} } function Ex(t) { t.registerSeriesModel(jW), t.registerChartView(qW), t.registerVisual(Lx), t.registerLayout(kx), t.registerTransform(QW) } function Nx(t, e, n) { var i = t.model, r = t.getRect(), o = new Uk({shape: {x: r.x, y: r.y, width: r.width, height: r.height}}), a = "horizontal" === i.get("layout") ? "width" : "height"; return o.setShape(a, 0), hs(o, {shape: {width: r.width, height: r.height}}, e, n), o } function Bx(t, e, n, i) { for (var r = [], o = 0; o < n.length; o++) { var a = n[o], s = t.get(t.mapDimension(a), e); Hx(s, i.getAxis(a).type) || r.push(i.dataToPoint(s, a)) } return r } function Vx(t, e, n, i, r) { var o = Bx(t, n, i, r), a = new JP({shape: {points: o}, z2: 10}); return e.add(a), t.setItemGraphicEl(n, a), a } function Fx(t) { var e = t.get("smooth", !0); return e === !0 && (e = tX), e = Ei(e), E(e) && (e = 0), {smooth: e} } function Gx(t, e, n, i) { t.useStyle(e.getItemVisual(n, "style")), t.style.fill = null, t.setShape("smooth", i.smooth); var r = e.getItemModel(n), o = r.getModel("emphasis"); Ia(t, r, "lineStyle"), Sa(t, o.get("focus"), o.get("blurScope")) } function Hx(t, e) { return "category" === e ? null == t : null == t || isNaN(t) } function Wx(t) { var e = t.ecModel.getComponent("parallel", t.get("parallelIndex")); if (e) { var n = {}; return y(e.dimensions, function (t) { var e = Xx(t); n[t] = e }), n } } function Xx(t) { return +t.replace("dim", "") } function Yx(t) { Zx(t), Ux(t) } function Zx(t) { if (!t.parallel) { var e = !1; y(t.series, function (t) { t && "parallel" === t.type && (e = !0) }), e && (t.parallel = [{}]) } } function Ux(t) { var e = Hi(t.parallelAxis); y(e, function (e) { if (D(e)) { var n = e.parallelIndex || 0, i = Hi(t.parallel)[n]; i && i.parallelAxisDefault && l(e, i.parallelAxisDefault, !1) } }) } function jx(t, e) { var n = t._model; return n.get("axisExpandable") && n.get("axisExpandTriggerOn") === e } function qx(t, e, n, i, r, o) { t = t || 0; var a = n[1] - n[0]; if (null != r && (r = $x(r, [0, a])), null != o && (o = Math.max(o, null != r ? r : 0)), "all" === i) { var s = Math.abs(e[1] - e[0]); s = $x(s, [0, a]), r = o = $x(s, [r, o]), i = 0 } e[0] = $x(e[0], n), e[1] = $x(e[1], n); var l = Kx(e, i); e[i] += t; var u = r || 0, h = n.slice(); l.sign < 0 ? h[0] += u : h[1] -= u, e[i] = $x(e[i], h); var c; return c = Kx(e, i), null != r && (c.sign !== l.sign || c.span < r) && (e[1 - i] = e[i] + l.sign * r), c = Kx(e, i), null != o && c.span > o && (e[1 - i] = e[i] + c.sign * o), e } function Kx(t, e) { var n = t[e] - t[1 - e]; return {span: Math.abs(n), sign: n > 0 ? -1 : 0 > n ? 1 : e ? -1 : 1} } function $x(t, e) { return Math.min(null != e[1] ? e[1] : 1 / 0, Math.max(null != e[0] ? e[0] : -1 / 0, t)) } function Jx(t, e) { return cX(pX(t, e[0]), e[1]) } function Qx(t, e) { var n = e.layoutLength / (e.axisCount - 1); return {position: n * t, axisNameAvailableWidth: n, axisLabelShow: !0} } function t_(t, e) { var n, i, r = e.layoutLength, o = e.axisExpandWidth, a = e.axisCount, s = e.axisCollapseWidth, l = e.winInnerIndices, u = s, h = !1; return t < l[0] ? (n = t * s, i = s) : t <= l[1] ? (n = e.axisExpandWindow0Pos + t * o - e.axisExpandWindow[0], u = o, h = !0) : (n = r - (a - 1 - t) * s, i = s), { position: n, axisNameAvailableWidth: u, axisLabelShow: h, nameTruncateMaxWidth: i } } function e_(t, e) { var n = []; return t.eachComponent("parallel", function (i, r) { var o = new vX(i, t, e); o.name = "parallel_" + r, o.resize(i, e), i.coordinateSystem = o, o.model = i, n.push(o) }), t.eachSeries(function (t) { if ("parallel" === t.get("coordinateSystem")) { var e = t.getReferringComponents("parallel", wL).models[0]; t.coordinateSystem = e.coordinateSystem } }), n } function n_(t, e) { var n = RX[e.brushType].createCover(t, e); return n.__brushOption = e, o_(n, e), t.group.add(n), n } function i_(t, e) { var n = s_(e); return n.endCreating && (n.endCreating(t, e), o_(e, e.__brushOption)), e } function r_(t, e) { var n = e.__brushOption; s_(e).updateCoverShape(t, e, n.range, n) } function o_(t, e) { var n = e.z; null == n && (n = MX), t.traverse(function (t) { t.z = n, t.z2 = n }) } function a_(t, e) { s_(e).updateCommon(t, e), r_(t, e) } function s_(t) { return RX[t.__brushOption.brushType] } function l_(t, e, n) { var i = t._panels; if (!i) return _X; var r, o = t._transform; return y(i, function (t) { t.isTargetByCursor(e, n, o) && (r = t) }), r } function u_(t, e) { var n = t._panels; if (!n) return _X; var i = e.__brushOption.panelId; return null != i ? n[i] : _X } function h_(t) { var e = t._covers, n = e.length; return y(e, function (e) { t.group.remove(e) }, t), e.length = 0, !!n } function c_(t, e) { var n = v(t._covers, function (t) { var e = t.__brushOption, n = s(e.range); return {brushType: e.brushType, panelId: e.panelId, range: n} }); t.trigger("brush", {areas: n, isEnd: !!e.isEnd, removeOnClick: !!e.removeOnClick}) } function p_(t) { var e = t._track; if (!e.length) return !1; var n = e[e.length - 1], i = e[0], r = n[0] - i[0], o = n[1] - i[1], a = SX(r * r + o * o, .5); return a > IX } function d_(t) { var e = t.length - 1; return 0 > e && (e = 0), [t[0], t[e]] } function f_(t, e, n, i) { var r = new sL; return r.add(new Uk({ name: "main", style: m_(n), silent: !0, draggable: !0, cursor: "move", drift: S(S_, t, e, r, ["n", "s", "w", "e"]), ondragend: S(c_, e, {isEnd: !0}) })), y(i, function (n) { r.add(new Uk({ name: n.join(""), style: {opacity: 0}, draggable: !0, silent: !0, invisible: !0, drift: S(S_, t, e, r, n), ondragend: S(c_, e, {isEnd: !0}) })) }), r } function g_(t, e, n, i) { var r = i.brushStyle.lineWidth || 0, o = wX(r, TX), a = n[0][0], s = n[1][0], l = a - r / 2, u = s - r / 2, h = n[0][1], c = n[1][1], p = h - o + r / 2, d = c - o + r / 2, f = h - a, g = c - s, y = f + r, v = g + r; v_(t, e, "main", a, s, f, g), i.transformable && (v_(t, e, "w", l, u, o, v), v_(t, e, "e", p, u, o, v), v_(t, e, "n", l, u, y, o), v_(t, e, "s", l, d, y, o), v_(t, e, "nw", l, u, o, o), v_(t, e, "ne", p, u, o, o), v_(t, e, "sw", l, d, o, o), v_(t, e, "se", p, d, o, o)) } function y_(t, e) { var n = e.__brushOption, i = n.transformable, r = e.childAt(0); r.useStyle(m_(n)), r.attr({ silent: !i, cursor: i ? "move" : "default" }), y([["w"], ["e"], ["n"], ["s"], ["s", "e"], ["s", "w"], ["n", "e"], ["n", "w"]], function (n) { var r = e.childOfName(n.join("")), o = 1 === n.length ? b_(t, n[0]) : w_(t, n); r && r.attr({silent: !i, invisible: !i, cursor: i ? DX[o] + "-resize" : null}) }) } function v_(t, e, n, i, r, o, a) { var s = e.childOfName(n); s && s.setShape(C_(T_(t, e, [[i, r], [i + o, r + a]]))) } function m_(t) { return c({strokeNoScale: !0}, t.brushStyle) } function x_(t, e, n, i) { var r = [bX(t, n), bX(e, i)], o = [wX(t, n), wX(e, i)]; return [[r[0], o[0]], [r[1], o[1]]] } function __(t) { return gs(t.group) } function b_(t, e) { var n = {w: "left", e: "right", n: "top", s: "bottom"}, i = {left: "w", right: "e", top: "n", bottom: "s"}, r = vs(n[e], __(t)); return i[r] } function w_(t, e) { var n = [b_(t, e[0]), b_(t, e[1])]; return ("e" === n[0] || "w" === n[0]) && n.reverse(), n.join("") } function S_(t, e, n, i, r, o) { var a = n.__brushOption, s = t.toRectRange(a.range), l = I_(e, r, o); y(i, function (t) { var e = AX[t]; s[e[0]][e[1]] += l[e[0]] }), a.range = t.fromRectRange(x_(s[0][0], s[1][0], s[0][1], s[1][1])), a_(e, n), c_(e, {isEnd: !1}) } function M_(t, e, n, i) { var r = e.__brushOption.range, o = I_(t, n, i); y(r, function (t) { t[0] += o[0], t[1] += o[1] }), a_(t, e), c_(t, {isEnd: !1}) } function I_(t, e, n) { var i = t.group, r = i.transformCoordToLocal(e, n), o = i.transformCoordToLocal(0, 0); return [r[0] - o[0], r[1] - o[1]] } function T_(t, e, n) { var i = u_(t, e); return i && i !== _X ? i.clipPath(n, t._transform) : s(n) } function C_(t) { var e = bX(t[0][0], t[1][0]), n = bX(t[0][1], t[1][1]), i = wX(t[0][0], t[1][0]), r = wX(t[0][1], t[1][1]); return {x: e, y: n, width: i - e, height: r - n} } function A_(t, e, n) { if (t._brushType && !R_(t, e.offsetX, e.offsetY)) { var i = t._zr, r = t._covers, o = l_(t, e, n); if (!t._dragging) for (var a = 0; a < r.length; a++) { var s = r[a].__brushOption; if (o && (o === _X || s.panelId === o.panelId) && RX[s.brushType].contain(r[a], n[0], n[1])) return } o && i.setCursorStyle("crosshair") } } function D_(t) { var e = t.event; e.preventDefault && e.preventDefault() } function L_(t, e, n) { return t.childOfName("main").contain(e, n) } function k_(t, e, n, i) { var r, o = t._creatingCover, a = t._creatingPanel, l = t._brushOption; if (t._track.push(n.slice()), p_(t) || o) { if (a && !o) { "single" === l.brushMode && h_(t); var u = s(l); u.brushType = P_(u.brushType, a), u.panelId = a === _X ? null : a.panelId, o = t._creatingCover = n_(t, u), t._covers.push(o) } if (o) { var h = RX[P_(t._brushType, a)], c = o.__brushOption; c.range = h.getCreatingRange(T_(t, o, t._track)), i && (i_(t, o), h.updateCommon(t, o)), r_(t, o), r = {isEnd: i} } } else i && "single" === l.brushMode && l.removeOnClick && l_(t, e, n) && h_(t) && (r = { isEnd: i, removeOnClick: !0 }); return r } function P_(t, e) { return "auto" === t ? e.defaultBrushType : t } function O_(t, e) { if (t._dragging) { D_(e); var n = e.offsetX, i = e.offsetY, r = t.group.transformCoordToLocal(n, i), o = k_(t, e, r, !0); t._dragging = !1, t._track = [], t._creatingCover = null, o && c_(t, o) } } function R_(t, e, n) { var i = t._zr; return 0 > e || e > i.getWidth() || 0 > n || n > i.getHeight() } function z_(t) { return { createCover: function (e, n) { return f_({ toRectRange: function (e) { var n = [e, [0, 100]]; return t && n.reverse(), n }, fromRectRange: function (e) { return e[t] } }, e, n, [[["w"], ["e"]], [["n"], ["s"]]][t]) }, getCreatingRange: function (e) { var n = d_(e), i = bX(n[0][t], n[1][t]), r = wX(n[0][t], n[1][t]); return [i, r] }, updateCoverShape: function (e, n, i, r) { var o, a = u_(e, n); if (a !== _X && a.getLinearBrushOtherExtent) o = a.getLinearBrushOtherExtent(t); else { var s = e._zr; o = [0, [s.getWidth(), s.getHeight()][1 - t]] } var l = [i, o]; t && l.reverse(), g_(e, n, l, r) }, updateCommon: y_, contain: L_ } } function E_(t) { return t = V_(t), function (e) { return bs(e, t) } } function N_(t, e) { return t = V_(t), function (n) { var i = null != e ? e : n, r = i ? t.width : t.height, o = i ? t.x : t.y; return [o, o + (r || 0)] } } function B_(t, e, n) { var i = V_(t); return function (t, r) { return i.contain(r[0], r[1]) && !_v(t, e, n) } } function V_(t) { return $D.create(t) } function F_(t, e, n) { return n && "axisAreaSelect" === n.type && e.findComponents({mainType: "parallelAxis", query: n})[0] === t } function G_(t) { var e = t.axis; return v(t.activeIntervals, function (t) { return {brushType: "lineX", panelId: "pl", range: [e.dataToCoord(t[0], !0), e.dataToCoord(t[1], !0)]} }) } function H_(t, e) { return e.getComponent("parallel", t.get("parallelIndex")) } function W_(t) { t.registerAction(NX, function (t, e) { e.eachComponent({mainType: "parallelAxis", query: t}, function (e) { e.axis.model.setActiveIntervals(t.intervals) }) }), t.registerAction("parallelAxisExpand", function (t, e) { e.eachComponent({mainType: "parallel", query: t}, function (e) { e.setAxisExpand(t) }) }) } function X_(t) { t.registerComponentView(aX), t.registerComponentModel(lX), t.registerCoordinateSystem("parallel", mX), t.registerPreprocessor(Yx), t.registerComponentModel(xX), t.registerComponentView(EX), Zg(t, "parallel", xX, BX), W_(t) } function Y_(t) { df(X_), t.registerChartView(eX), t.registerSeriesModel(nX), t.registerVisual(t.PRIORITY.VISUAL.BRUSH, rX) } function Z_(t, e) { var n = t.get("center"), i = e.getWidth(), r = e.getHeight(), o = Math.min(i, r), a = _i(n[0], e.getWidth()), s = _i(n[1], e.getHeight()), l = _i(t.get("radius"), o / 2); return {cx: a, cy: s, r: l} } function U_(t, e) { var n = null == t ? "" : t + ""; return e && ("string" == typeof e ? n = e.replace("{value}", n) : "function" == typeof e && (n = e(t))), n } function j_(t) { t.registerChartView(HX), t.registerSeriesModel(WX) } function q_(t, e) { return kl(t.getBoxLayoutParams(), {width: e.getWidth(), height: e.getHeight()}) } function K_(t, e) { for (var n = t.mapDimension("value"), i = t.mapArray(n, function (t) { return t }), r = [], o = "ascending" === e, a = 0, s = t.count(); s > a; a++) r[a] = a; return "function" == typeof e ? r.sort(e) : "none" !== e && r.sort(function (t, e) { return o ? i[t] - i[e] : i[e] - i[t] }), r } function $_(t) { var e = t.hostModel, n = e.get("orient"); t.each(function (e) { var i, r, o, a, s = t.getItemModel(e), l = s.getModel("label"), u = l.get("position"), h = s.getModel("labelLine"), c = t.getItemLayout(e), p = c.points, d = "inner" === u || "inside" === u || "center" === u || "insideLeft" === u || "insideRight" === u; if (d) "insideLeft" === u ? (r = (p[0][0] + p[3][0]) / 2 + 5, o = (p[0][1] + p[3][1]) / 2, i = "left") : "insideRight" === u ? (r = (p[1][0] + p[2][0]) / 2 - 5, o = (p[1][1] + p[2][1]) / 2, i = "right") : (r = (p[0][0] + p[1][0] + p[2][0] + p[3][0]) / 4, o = (p[0][1] + p[1][1] + p[2][1] + p[3][1]) / 4, i = "center"), a = [[r, o], [r, o]]; else { var f = void 0, g = void 0, y = void 0, v = void 0, m = h.get("length"); "left" === u ? (f = (p[3][0] + p[0][0]) / 2, g = (p[3][1] + p[0][1]) / 2, y = f - m, r = y - 5, i = "right") : "right" === u ? (f = (p[1][0] + p[2][0]) / 2, g = (p[1][1] + p[2][1]) / 2, y = f + m, r = y + 5, i = "left") : "top" === u ? (f = (p[3][0] + p[0][0]) / 2, g = (p[3][1] + p[0][1]) / 2, v = g - m, o = v - 5, i = "center") : "bottom" === u ? (f = (p[1][0] + p[2][0]) / 2, g = (p[1][1] + p[2][1]) / 2, v = g + m, o = v + 5, i = "center") : "rightTop" === u ? (f = "horizontal" === n ? p[3][0] : p[1][0], g = "horizontal" === n ? p[3][1] : p[1][1], "horizontal" === n ? (v = g - m, o = v - 5, i = "center") : (y = f + m, r = y + 5, i = "top")) : "rightBottom" === u ? (f = p[2][0], g = p[2][1], "horizontal" === n ? (v = g + m, o = v + 5, i = "center") : (y = f + m, r = y + 5, i = "bottom")) : "leftTop" === u ? (f = p[0][0], g = "horizontal" === n ? p[0][1] : p[1][1], "horizontal" === n ? (v = g - m, o = v - 5, i = "center") : (y = f - m, r = y - 5, i = "right")) : "leftBottom" === u ? (f = "horizontal" === n ? p[1][0] : p[3][0], g = "horizontal" === n ? p[1][1] : p[2][1], "horizontal" === n ? (v = g + m, o = v + 5, i = "center") : (y = f - m, r = y - 5, i = "right")) : (f = (p[1][0] + p[2][0]) / 2, g = (p[1][1] + p[2][1]) / 2, "horizontal" === n ? (v = g + m, o = v + 5, i = "center") : (y = f + m, r = y + 5, i = "left")), "horizontal" === n ? (y = f, r = y) : (v = g, o = v), a = [[f, g], [y, v]] } c.label = {linePoints: a, x: r, y: o, verticalAlign: "middle", textAlign: i, inside: d} }) } function J_(t, e) { t.eachSeriesByType("funnel", function (t) { var n = t.getData(), i = n.mapDimension("value"), r = t.get("sort"), o = q_(t, e), a = t.get("orient"), s = o.width, l = o.height, u = K_(n, r), h = o.x, c = o.y, p = "horizontal" === a ? [_i(t.get("minSize"), l), _i(t.get("maxSize"), l)] : [_i(t.get("minSize"), s), _i(t.get("maxSize"), s)], d = n.getDataExtent(i), f = t.get("min"), g = t.get("max"); null == f && (f = Math.min(d[0], 0)), null == g && (g = d[1]); var y = t.get("funnelAlign"), v = t.get("gap"), m = "horizontal" === a ? s : l, x = (m - v * (n.count() - 1)) / n.count(), _ = function (t, e) { if ("horizontal" === a) { var r = n.get(i, t) || 0, o = xi(r, [f, g], p, !0), u = void 0; switch (y) { case"top": u = c; break; case"center": u = c + (l - o) / 2; break; case"bottom": u = c + (l - o) } return [[e, u], [e, u + o]] } var d, v = n.get(i, t) || 0, m = xi(v, [f, g], p, !0); switch (y) { case"left": d = h; break; case"center": d = h + (s - m) / 2; break; case"right": d = h + s - m } return [[d, e], [d + m, e]] }; "ascending" === r && (x = -x, v = -v, "horizontal" === a ? h += s : c += l, u = u.reverse()); for (var b = 0; b < u.length; b++) { var w = u[b], S = u[b + 1], M = n.getItemModel(w); if ("horizontal" === a) { var I = M.get(["itemStyle", "width"]); null == I ? I = x : (I = _i(I, s), "ascending" === r && (I = -I)); var T = _(w, h), C = _(S, h + I); h += I + v, n.setItemLayout(w, {points: T.concat(C.slice().reverse())}) } else { var A = M.get(["itemStyle", "height"]); null == A ? A = x : (A = _i(A, l), "ascending" === r && (A = -A)); var T = _(w, c), C = _(S, c + A); c += A + v, n.setItemLayout(w, {points: T.concat(C.slice().reverse())}) } } $_(n) }) } function Q_(t) { t.registerChartView(ZX), t.registerSeriesModel(UX), t.registerLayout(J_), t.registerProcessor(Bg("funnel")) } function tb(t, e, n) { var i = new Uk({shape: {x: t.x - 10, y: t.y - 10, width: 0, height: t.height + 20}}); return hs(i, {shape: {width: t.width + 20}}, e, n), i } function eb(t, e) { t.eachSeriesByType("sankey", function (t) { var n = t.get("nodeWidth"), i = t.get("nodeGap"), r = nb(t, e); t.layoutInfo = r; var o = r.width, a = r.height, s = t.getGraph(), l = s.nodes, u = s.edges; rb(l); var h = x(l, function (t) { return 0 === t.getLayout().value }), c = 0 !== h.length ? 0 : t.get("layoutIterations"), p = t.get("orient"), d = t.get("nodeAlign"); ib(l, u, n, i, o, a, c, p, d) }) } function nb(t, e) { return kl(t.getBoxLayoutParams(), {width: e.getWidth(), height: e.getHeight()}) } function ib(t, e, n, i, r, o, a, s, l) { ob(t, e, n, r, o, s, l), hb(t, e, o, r, i, a, s), Sb(t, s) } function rb(t) { y(t, function (t) { var e = bb(t.outEdges, _b), n = bb(t.inEdges, _b), i = t.getValue() || 0, r = Math.max(e, n, i); t.setLayout({value: r}, !0) }) } function ob(t, e, n, i, r, o, a) { for (var s = [], l = [], u = [], h = [], c = 0, p = 0; p < e.length; p++) s[p] = 1; for (var p = 0; p < t.length; p++) l[p] = t[p].inEdges.length, 0 === l[p] && u.push(t[p]); for (var d = -1; u.length;) { for (var f = 0; f < u.length; f++) { var g = u[f], y = g.hostGraph.data.getRawDataItem(g.dataIndex), v = null != y.depth && y.depth >= 0; v && y.depth > d && (d = y.depth), g.setLayout({depth: v ? y.depth : c}, !0), "vertical" === o ? g.setLayout({dy: n}, !0) : g.setLayout({dx: n}, !0); for (var m = 0; m < g.outEdges.length; m++) { var x = g.outEdges[m], _ = e.indexOf(x); s[_] = 0; var b = x.node2, w = t.indexOf(b); 0 === --l[w] && h.indexOf(b) < 0 && h.push(b) } } ++c, u = h, h = [] } for (var p = 0; p < s.length; p++) if (1 === s[p]) throw new Error("Sankey is a DAG, the original data has cycle!"); var S = d > c - 1 ? d : c - 1; a && "left" !== a && sb(t, a, o, S); var M = "vertical" === o ? (r - n) / S : (i - n) / S; ub(t, M, o) } function ab(t) { var e = t.hostGraph.data.getRawDataItem(t.dataIndex); return null != e.depth && e.depth >= 0 } function sb(t, e, n, i) { if ("right" === e) { for (var r = [], o = t, a = 0; o.length;) { for (var s = 0; s < o.length; s++) { var l = o[s]; l.setLayout({skNodeHeight: a}, !0); for (var u = 0; u < l.inEdges.length; u++) { var h = l.inEdges[u]; r.indexOf(h.node1) < 0 && r.push(h.node1) } } o = r, r = [], ++a } y(t, function (t) { ab(t) || t.setLayout({depth: Math.max(0, i - t.getLayout().skNodeHeight)}, !0) }) } else "justify" === e && lb(t, i) } function lb(t, e) { y(t, function (t) { ab(t) || t.outEdges.length || t.setLayout({depth: e}, !0) }) } function ub(t, e, n) { y(t, function (t) { var i = t.getLayout().depth * e; "vertical" === n ? t.setLayout({y: i}, !0) : t.setLayout({x: i}, !0) }) } function hb(t, e, n, i, r, o, a) { var s = cb(t, a); pb(s, e, n, i, r, a), db(s, r, n, i, a); for (var l = 1; o > 0; o--) l *= .99, fb(s, l, a), db(s, r, n, i, a), wb(s, l, a), db(s, r, n, i, a) } function cb(t, e) { var n = [], i = "vertical" === e ? "y" : "x", r = yr(t, function (t) { return t.getLayout()[i] }); return r.keys.sort(function (t, e) { return t - e }), y(r.keys, function (t) { n.push(r.buckets.get(t)) }), n } function pb(t, e, n, i, r, o) { var a = 1 / 0; y(t, function (t) { var e = t.length, s = 0; y(t, function (t) { s += t.getLayout().value }); var l = "vertical" === o ? (i - (e - 1) * r) / s : (n - (e - 1) * r) / s; a > l && (a = l) }), y(t, function (t) { y(t, function (t, e) { var n = t.getLayout().value * a; "vertical" === o ? (t.setLayout({x: e}, !0), t.setLayout({dx: n}, !0)) : (t.setLayout({y: e}, !0), t.setLayout({dy: n}, !0)) }) }), y(e, function (t) { var e = +t.getValue() * a; t.setLayout({dy: e}, !0) }) } function db(t, e, n, i, r) { var o = "vertical" === r ? "x" : "y"; y(t, function (t) { t.sort(function (t, e) { return t.getLayout()[o] - e.getLayout()[o] }); for (var a, s, l, u = 0, h = t.length, c = "vertical" === r ? "dx" : "dy", p = 0; h > p; p++) s = t[p], l = u - s.getLayout()[o], l > 0 && (a = s.getLayout()[o] + l, "vertical" === r ? s.setLayout({x: a}, !0) : s.setLayout({y: a}, !0)), u = s.getLayout()[o] + s.getLayout()[c] + e; var d = "vertical" === r ? i : n; if (l = u - e - d, l > 0) { a = s.getLayout()[o] - l, "vertical" === r ? s.setLayout({x: a}, !0) : s.setLayout({y: a}, !0), u = a; for (var p = h - 2; p >= 0; --p) s = t[p], l = s.getLayout()[o] + s.getLayout()[c] + e - u, l > 0 && (a = s.getLayout()[o] - l, "vertical" === r ? s.setLayout({x: a}, !0) : s.setLayout({y: a}, !0)), u = s.getLayout()[o] } }) } function fb(t, e, n) { y(t.slice().reverse(), function (t) { y(t, function (t) { if (t.outEdges.length) { var i = bb(t.outEdges, gb, n) / bb(t.outEdges, _b); if (isNaN(i)) { var r = t.outEdges.length; i = r ? bb(t.outEdges, yb, n) / r : 0 } if ("vertical" === n) { var o = t.getLayout().x + (i - xb(t, n)) * e; t.setLayout({x: o}, !0) } else { var a = t.getLayout().y + (i - xb(t, n)) * e; t.setLayout({y: a}, !0) } } }) }) } function gb(t, e) { return xb(t.node2, e) * t.getValue() } function yb(t, e) { return xb(t.node2, e) } function vb(t, e) { return xb(t.node1, e) * t.getValue() } function mb(t, e) { return xb(t.node1, e) } function xb(t, e) { return "vertical" === e ? t.getLayout().x + t.getLayout().dx / 2 : t.getLayout().y + t.getLayout().dy / 2 } function _b(t) { return t.getValue() } function bb(t, e, n) { for (var i = 0, r = t.length, o = -1; ++o < r;) { var a = +e(t[o], n); isNaN(a) || (i += a) } return i } function wb(t, e, n) { y(t, function (t) { y(t, function (t) { if (t.inEdges.length) { var i = bb(t.inEdges, vb, n) / bb(t.inEdges, _b); if (isNaN(i)) { var r = t.inEdges.length; i = r ? bb(t.inEdges, mb, n) / r : 0 } if ("vertical" === n) { var o = t.getLayout().x + (i - xb(t, n)) * e; t.setLayout({x: o}, !0) } else { var a = t.getLayout().y + (i - xb(t, n)) * e; t.setLayout({y: a}, !0) } } }) }) } function Sb(t, e) { var n = "vertical" === e ? "x" : "y"; y(t, function (t) { t.outEdges.sort(function (t, e) { return t.node2.getLayout()[n] - e.node2.getLayout()[n] }), t.inEdges.sort(function (t, e) { return t.node1.getLayout()[n] - e.node1.getLayout()[n] }) }), y(t, function (t) { var e = 0, n = 0; y(t.outEdges, function (t) { t.setLayout({sy: e}, !0), e += t.getLayout().dy }), y(t.inEdges, function (t) { t.setLayout({ty: n}, !0), n += t.getLayout().dy }) }) } function Mb(t) { t.eachSeriesByType("sankey", function (t) { var e = t.getGraph(), n = e.nodes; if (n.length) { var i = 1 / 0, r = -1 / 0; y(n, function (t) { var e = t.getLayout().value; i > e && (i = e), e > r && (r = e) }), y(n, function (e) { var n = new EH({ type: "color", mappingMethod: "linear", dataExtent: [i, r], visual: t.get("color") }), o = n.mapValueToVisual(e.getLayout().value), a = e.getModel().get(["itemStyle", "color"]); null != a ? (e.setVisual("color", a), e.setVisual("style", {fill: a})) : (e.setVisual("color", o), e.setVisual("style", {fill: o})) }) } }) } function Ib(t) { t.registerChartView(KX), t.registerSeriesModel($X), t.registerLayout(eb), t.registerVisual(Mb), t.registerAction({ type: "dragNode", event: "dragnode", update: "update" }, function (t, e) { e.eachComponent({mainType: "series", subType: "sankey", query: t}, function (e) { e.setNodePosition(t.dataIndex, [t.localX, t.localY]) }) }) } function Tb(t, e, n) { var i = new Uk({shape: {x: t.x - 10, y: t.y - 10, width: 0, height: t.height + 20}}); return hs(i, {shape: {x: t.x - 50, width: t.width + 100, height: t.height + 20}}, e, n), i } function Cb(t) { t.eachSeriesByType("themeRiver", function (t) { var e = t.getData(), n = t.coordinateSystem, i = {}, r = n.getRect(); i.rect = r; var o = t.get("boundaryGap"), a = n.getAxis(); if (i.boundaryGap = o, "horizontal" === a.orient) { o[0] = _i(o[0], r.height), o[1] = _i(o[1], r.height); var s = r.height - o[0] - o[1]; Ab(e, t, s) } else { o[0] = _i(o[0], r.width), o[1] = _i(o[1], r.width); var l = r.width - o[0] - o[1]; Ab(e, t, l) } e.setLayout("layoutInfo", i) }) } function Ab(t, e, n) { if (t.count()) for (var i, r = e.coordinateSystem, o = e.getLayerSeries(), a = t.mapDimension("single"), s = t.mapDimension("value"), l = v(o, function (e) { return v(e.indices, function (e) { var n = r.dataToPoint(t.get(a, e)); return n[1] = t.get(s, e), n }) }), u = Db(l), h = u.y0, c = n / u.max, p = o.length, d = o[0].indices.length, f = 0; d > f; ++f) { i = h[f] * c, t.setItemLayout(o[0].indices[f], {layerIndex: 0, x: l[0][f][0], y0: i, y: l[0][f][1] * c}); for (var g = 1; p > g; ++g) i += l[g - 1][f][1] * c, t.setItemLayout(o[g].indices[f], { layerIndex: g, x: l[g][f][0], y0: i, y: l[g][f][1] * c }) } } function Db(t) { for (var e = t.length, n = t[0].length, i = [], r = [], o = 0, a = 0; n > a; ++a) { for (var s = 0, l = 0; e > l; ++l) s += t[l][a][1]; s > o && (o = s), i.push(s) } for (var u = 0; n > u; ++u) r[u] = (o - i[u]) / 2; o = 0; for (var h = 0; n > h; ++h) { var c = i[h] + r[h]; c > o && (o = c) } return {y0: r, max: o} } function Lb(t) { t.registerChartView(JX), t.registerSeriesModel(tY), t.registerLayout(Cb), t.registerProcessor(Bg("themeRiver")) } function kb(t, e, n, i) { var r = t.getItemLayout(e), o = n.get("symbolRepeat"), a = n.get("symbolClip"), s = n.get("symbolPosition") || "start", l = n.get("symbolRotate"), u = (l || 0) * Math.PI / 180 || 0, h = n.get("symbolPatternSize") || 2, c = n.isAnimationEnabled(), p = { dataIndex: e, layout: r, itemModel: n, symbolType: t.getItemVisual(e, "symbol") || "circle", style: t.getItemVisual(e, "style"), symbolClip: a, symbolRepeat: o, symbolRepeatDirection: n.get("symbolRepeatDirection"), symbolPatternSize: h, rotation: u, animationModel: c ? n : null, hoverScale: c && n.get(["emphasis", "scale"]), z2: n.getShallow("z", !0) || 0 }; Pb(n, o, r, i, p), Rb(t, e, r, o, a, p.boundingLength, p.pxSign, h, i, p), zb(n, p.symbolScale, u, i, p); var d = p.symbolSize, f = n.get("symbolOffset"); return M(f) && (f = [_i(f[0], d[0]), _i(f[1], d[1])]), Eb(n, d, r, o, a, f, s, p.valueLineWidth, p.boundingLength, p.repeatCutLength, i, p), p } function Pb(t, e, n, i, r) { var o, a = i.valueDim, s = t.get("symbolBoundingData"), l = i.coordSys.getOtherAxis(i.coordSys.getBaseAxis()), u = l.toGlobalCoord(l.dataToCoord(0)), h = 1 - +(n[a.wh] <= 0); if (M(s)) { var c = [Ob(l, s[0]) - u, Ob(l, s[1]) - u]; c[1] < c[0] && c.reverse(), o = c[h] } else o = null != s ? Ob(l, s) - u : e ? i.coordSysExtent[a.index][h] - u : n[a.wh]; r.boundingLength = o, e && (r.repeatCutLength = n[a.wh]), r.pxSign = o > 0 ? 1 : 0 > o ? -1 : 0 } function Ob(t, e) { return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e))) } function Rb(t, e, n, i, r, o, a, s, l, u) { var h, c = l.valueDim, p = l.categoryDim, d = Math.abs(n[p.wh]), f = t.getItemVisual(e, "symbolSize"); h = M(f) ? f.slice() : null == f ? ["100%", "100%"] : [f, f], h[p.index] = _i(h[p.index], d), h[c.index] = _i(h[c.index], i ? d : Math.abs(o)), u.symbolSize = h; var g = u.symbolScale = [h[0] / s, h[1] / s]; g[c.index] *= (l.isHorizontal ? -1 : 1) * a } function zb(t, e, n, i, r) { var o = t.get(eY) || 0; o && (iY.attr({ scaleX: e[0], scaleY: e[1], rotation: n }), iY.updateTransform(), o /= iY.getLineScale(), o *= e[i.valueDim.index]), r.valueLineWidth = o } function Eb(t, e, n, i, r, o, a, s, l, u, c, p) { var d = c.categoryDim, f = c.valueDim, g = p.pxSign, y = Math.max(e[f.index] + s, 0), v = y; if (i) { var m = Math.abs(l), x = N(t.get("symbolMargin"), "15%") + "", _ = !1; x.lastIndexOf("!") === x.length - 1 && (_ = !0, x = x.slice(0, x.length - 1)); var b = _i(x, e[f.index]), w = Math.max(y + 2 * b, 0), S = _ ? 0 : 2 * b, M = Ni(i), I = M ? i : Jb((m + S) / w), T = m - I * y; b = T / 2 / (_ ? I : I - 1), w = y + 2 * b, S = _ ? 0 : 2 * b, M || "fixed" === i || (I = u ? Jb((Math.abs(u) + S) / w) : 0), v = I * w - S, p.repeatTimes = I, p.symbolMargin = b } var C = g * (v / 2), A = p.pathPosition = []; A[d.index] = n[d.wh] / 2, A[f.index] = "start" === a ? C : "end" === a ? l - C : l / 2, o && (A[0] += o[0], A[1] += o[1]); var D = p.bundlePosition = []; D[d.index] = n[d.xy], D[f.index] = n[f.xy]; var L = p.barRectShape = h({}, n); L[f.wh] = g * Math.max(Math.abs(n[f.wh]), Math.abs(A[f.index] + C)), L[d.wh] = n[d.wh]; var k = p.clipShape = {}; k[d.xy] = -n[d.xy], k[d.wh] = c.ecSize[d.wh], k[f.xy] = 0, k[f.wh] = n[f.wh] } function Nb(t) { var e = t.symbolPatternSize, n = Sc(t.symbolType, -e / 2, -e / 2, e, e); return n.attr({culling: !0}), "image" !== n.type && n.setStyle({strokeNoScale: !0}), n } function Bb(t, e, n, i) { function r(t) { var e = l.slice(), i = n.pxSign, r = t; return ("start" === n.symbolRepeatDirection ? i > 0 : 0 > i) && (r = h - 1 - t), e[u.index] = p * (r - h / 2 + .5) + l[u.index], { x: e[0], y: e[1], scaleX: n.symbolScale[0], scaleY: n.symbolScale[1], rotation: n.rotation } } var o = t.__pictorialBundle, a = n.symbolSize, s = n.valueLineWidth, l = n.pathPosition, u = e.valueDim, h = n.repeatTimes || 0, c = 0, p = a[e.valueDim.index] + s + 2 * n.symbolMargin; for (qb(t, function (t) { t.__pictorialAnimationIndex = c, t.__pictorialRepeatTimes = h, h > c ? Kb(t, null, r(c), n, i) : Kb(t, null, { scaleX: 0, scaleY: 0 }, n, i, function () { o.remove(t) }), c++ }); h > c; c++) { var d = Nb(n); d.__pictorialAnimationIndex = c, d.__pictorialRepeatTimes = h, o.add(d); var f = r(c); Kb(d, {x: f.x, y: f.y, scaleX: 0, scaleY: 0}, { scaleX: f.scaleX, scaleY: f.scaleY, rotation: f.rotation }, n, i) } } function Vb(t, e, n, i) { var r = t.__pictorialBundle, o = t.__pictorialMainPath; o ? Kb(o, null, { x: n.pathPosition[0], y: n.pathPosition[1], scaleX: n.symbolScale[0], scaleY: n.symbolScale[1], rotation: n.rotation }, n, i) : (o = t.__pictorialMainPath = Nb(n), r.add(o), Kb(o, { x: n.pathPosition[0], y: n.pathPosition[1], scaleX: 0, scaleY: 0, rotation: n.rotation }, {scaleX: n.symbolScale[0], scaleY: n.symbolScale[1]}, n, i)) } function Fb(t, e, n) { var i = h({}, e.barRectShape), r = t.__pictorialBarRect; r ? Kb(r, null, {shape: i}, e, n) : (r = t.__pictorialBarRect = new Uk({ z2: 2, shape: i, silent: !0, style: {stroke: "transparent", fill: "transparent", lineWidth: 0} }), t.add(r)) } function Gb(t, e, n, i) { if (n.symbolClip) { var r = t.__pictorialClipPath, o = h({}, n.clipShape), a = e.valueDim, s = n.animationModel, l = n.dataIndex; if (r) us(r, {shape: o}, s, l); else { o[a.wh] = 0, r = new Uk({shape: o}), t.__pictorialBundle.setClipPath(r), t.__pictorialClipPath = r; var u = {}; u[a.wh] = n.clipShape[a.wh], MO[i ? "updateProps" : "initProps"](r, {shape: u}, s, l) } } } function Hb(t, e) { var n = t.getItemModel(e); return n.getAnimationDelayParams = Wb, n.isAnimationEnabled = Xb, n } function Wb(t) { return {index: t.__pictorialAnimationIndex, count: t.__pictorialRepeatTimes} } function Xb() { return this.parentModel.isAnimationEnabled() && !!this.getShallow("animation") } function Yb(t, e, n, i) { var r = new sL, o = new sL; return r.add(o), r.__pictorialBundle = o, o.x = n.bundlePosition[0], o.y = n.bundlePosition[1], n.symbolRepeat ? Bb(r, e, n) : Vb(r, e, n), Fb(r, n, i), Gb(r, e, n, i), r.__pictorialShapeStr = jb(t, n), r.__pictorialSymbolMeta = n, r } function Zb(t, e, n) { var i = n.animationModel, r = n.dataIndex, o = t.__pictorialBundle; us(o, { x: n.bundlePosition[0], y: n.bundlePosition[1] }, i, r), n.symbolRepeat ? Bb(t, e, n, !0) : Vb(t, e, n, !0), Fb(t, n, !0), Gb(t, e, n, !0) } function Ub(t, e, n, i) { var r = i.__pictorialBarRect; r && r.removeTextContent(); var o = []; qb(i, function (t) { o.push(t) }), i.__pictorialMainPath && o.push(i.__pictorialMainPath), i.__pictorialClipPath && (n = null), y(o, function (t) { cs(t, {scaleX: 0, scaleY: 0}, n, e, function () { i.parent && i.parent.remove(i) }) }), t.setItemGraphicEl(e, null) } function jb(t, e) { return [t.getItemVisual(e.dataIndex, "symbol") || "none", !!e.symbolRepeat, !!e.symbolClip].join(":") } function qb(t, e, n) { y(t.__pictorialBundle.children(), function (i) { i !== t.__pictorialBarRect && e.call(n, i) }) } function Kb(t, e, n, i, r, o) { e && t.attr(e), i.symbolClip && !r ? n && t.attr(n) : n && MO[r ? "updateProps" : "initProps"](t, n, i.animationModel, i.dataIndex, o) } function $b(t, e, n) { var i = n.dataIndex, r = n.itemModel, o = r.getModel("emphasis"), a = o.getModel("itemStyle").getItemStyle(), s = r.getModel(["blur", "itemStyle"]).getItemStyle(), l = r.getModel(["select", "itemStyle"]).getItemStyle(), u = r.getShallow("cursor"), c = o.get("focus"), p = o.get("blurScope"), d = o.get("scale"); qb(t, function (t) { if (t instanceof Wk) { var e = t.style; t.useStyle(h({image: e.image, x: e.x, y: e.y, width: e.width, height: e.height}, n.style)) } else t.useStyle(n.style); var i = t.ensureState("emphasis"); i.style = a, d && (i.scaleX = 1.1 * t.scaleX, i.scaleY = 1.1 * t.scaleY), t.ensureState("blur").style = s, t.ensureState("select").style = l, u && (t.cursor = u), t.z2 = n.z2 }); var f = e.valueDim.posDesc[+(n.boundingLength > 0)], g = t.__pictorialBarRect; ks(g, Ps(r), { labelFetcher: e.seriesModel, labelDataIndex: i, defaultText: Zf(e.seriesModel.getData(), i), inheritColor: n.style.fill, defaultOpacity: n.style.opacity, defaultOutsidePosition: f }), Sa(t, c, p) } function Jb(t) { var e = Math.round(t); return Math.abs(t - e) < 1e-4 ? e : Math.ceil(t) } function Qb(t) { t.registerChartView(rY), t.registerSeriesModel(oY), t.registerLayout(S(Rd, "pictorialBar")) } function tw(t, e) { return e = e || [0, 0], v(["x", "y"], function (n, i) { var r = this.getAxis(n), o = e[i], a = t[i] / 2; return "category" === r.type ? r.getBandWidth() : Math.abs(r.dataToCoord(o - a) - r.dataToCoord(o + a)) }, this) } function ew(t) { var e = t.master.getRect(); return { coordSys: {type: "cartesian2d", x: e.x, y: e.y, width: e.width, height: e.height}, api: { coord: function (e) { return t.dataToPoint(e) }, size: xA(tw, t) } } } function nw(t, e) { return e = e || [0, 0], v([0, 1], function (n) { var i = e[n], r = t[n] / 2, o = [], a = []; return o[n] = i - r, a[n] = i + r, o[1 - n] = a[1 - n] = e[1 - n], Math.abs(this.dataToPoint(o)[n] - this.dataToPoint(a)[n]) }, this) } function iw(t) { var e = t.getBoundingRect(); return { coordSys: {type: "geo", x: e.x, y: e.y, width: e.width, height: e.height, zoom: t.getZoom()}, api: { coord: function (e) { return t.dataToPoint(e) }, size: xA(nw, t) } } } function rw(t, e) { var n = this.getAxis(), i = e instanceof Array ? e[0] : e, r = (t instanceof Array ? t[0] : t) / 2; return "category" === n.type ? n.getBandWidth() : Math.abs(n.dataToCoord(i - r) - n.dataToCoord(i + r)) } function ow(t) { var e = t.getRect(); return { coordSys: {type: "singleAxis", x: e.x, y: e.y, width: e.width, height: e.height}, api: { coord: function (e) { return t.dataToPoint(e) }, size: xA(rw, t) } } } function aw(t, e) { return e = e || [0, 0], v(["Radius", "Angle"], function (n, i) { var r = "get" + n + "Axis", o = this[r](), a = e[i], s = t[i] / 2, l = "category" === o.type ? o.getBandWidth() : Math.abs(o.dataToCoord(a - s) - o.dataToCoord(a + s)); return "Angle" === n && (l = l * Math.PI / 180), l }, this) } function sw(t) { var e = t.getRadiusAxis(), n = t.getAngleAxis(), i = e.getExtent(); return i[0] > i[1] && i.reverse(), { coordSys: {type: "polar", cx: t.cx, cy: t.cy, r: i[1], r0: i[0]}, api: { coord: function (i) { var r = e.dataToRadius(i[0]), o = n.dataToAngle(i[1]), a = t.coordToPoint([r, o]); return a.push(r, o * Math.PI / 180), a }, size: xA(aw, t) } } } function lw(t) { var e = t.getRect(), n = t.getRangeInfo(); return { coordSys: { type: "calendar", x: e.x, y: e.y, width: e.width, height: e.height, cellWidth: t.getCellWidth(), cellHeight: t.getCellHeight(), rangeInfo: {start: n.start, end: n.end, weeks: n.weeks, dayCount: n.allDay} }, api: { coord: function (e, n) { return t.dataToPoint(e, n) } } } } function uw(t, e, n, i) { return t && (t.legacy || t.legacy !== !1 && !n && !i && "tspan" !== e && ("text" === e || q(t, "text"))) } function hw(t, e, n) { var i, r, o, a = t; if ("text" === e) o = a; else { o = {}, q(a, "text") && (o.text = a.text), q(a, "rich") && (o.rich = a.rich), q(a, "textFill") && (o.fill = a.textFill), q(a, "textStroke") && (o.stroke = a.textStroke), r = { type: "text", style: o, silent: !0 }, i = {}; var s = q(a, "textPosition"); n ? i.position = s ? a.textPosition : "inside" : s && (i.position = a.textPosition), q(a, "textPosition") && (i.position = a.textPosition), q(a, "textOffset") && (i.offset = a.textOffset), q(a, "textRotation") && (i.rotation = a.textRotation), q(a, "textDistance") && (i.distance = a.textDistance) } return cw(o, t), y(o.rich, function (t) { cw(t, t) }), {textConfig: i, textContent: r} } function cw(t, e) { e && (e.font = e.textFont || e.font, q(e, "textStrokeWidth") && (t.lineWidth = e.textStrokeWidth), q(e, "textAlign") && (t.align = e.textAlign), q(e, "textVerticalAlign") && (t.verticalAlign = e.textVerticalAlign), q(e, "textLineHeight") && (t.lineHeight = e.textLineHeight), q(e, "textWidth") && (t.width = e.textWidth), q(e, "textHeight") && (t.height = e.textHeight), q(e, "textBackgroundColor") && (t.backgroundColor = e.textBackgroundColor), q(e, "textPadding") && (t.padding = e.textPadding), q(e, "textBorderColor") && (t.borderColor = e.textBorderColor), q(e, "textBorderWidth") && (t.borderWidth = e.textBorderWidth), q(e, "textBorderRadius") && (t.borderRadius = e.textBorderRadius), q(e, "textBoxShadowColor") && (t.shadowColor = e.textBoxShadowColor), q(e, "textBoxShadowBlur") && (t.shadowBlur = e.textBoxShadowBlur), q(e, "textBoxShadowOffsetX") && (t.shadowOffsetX = e.textBoxShadowOffsetX), q(e, "textBoxShadowOffsetY") && (t.shadowOffsetY = e.textBoxShadowOffsetY)) } function pw(t, e, n) { var i = t; i.textPosition = i.textPosition || n.position || "inside", null != n.offset && (i.textOffset = n.offset), null != n.rotation && (i.textRotation = n.rotation), null != n.distance && (i.textDistance = n.distance); var r = i.textPosition.indexOf("inside") >= 0, o = t.fill || "#000"; dw(i, e); var a = null == i.textFill; return r ? a && (i.textFill = n.insideFill || "#fff", !i.textStroke && n.insideStroke && (i.textStroke = n.insideStroke), !i.textStroke && (i.textStroke = o), null == i.textStrokeWidth && (i.textStrokeWidth = 2)) : (a && (i.textFill = t.fill || n.outsideFill || "#000"), !i.textStroke && n.outsideStroke && (i.textStroke = n.outsideStroke)), i.text = e.text, i.rich = e.rich, y(e.rich, function (t) { dw(t, t) }), i } function dw(t, e) { e && (q(e, "fill") && (t.textFill = e.fill), q(e, "stroke") && (t.textStroke = e.fill), q(e, "lineWidth") && (t.textStrokeWidth = e.lineWidth), q(e, "font") && (t.font = e.font), q(e, "fontStyle") && (t.fontStyle = e.fontStyle), q(e, "fontWeight") && (t.fontWeight = e.fontWeight), q(e, "fontSize") && (t.fontSize = e.fontSize), q(e, "fontFamily") && (t.fontFamily = e.fontFamily), q(e, "align") && (t.textAlign = e.align), q(e, "verticalAlign") && (t.textVerticalAlign = e.verticalAlign), q(e, "lineHeight") && (t.textLineHeight = e.lineHeight), q(e, "width") && (t.textWidth = e.width), q(e, "height") && (t.textHeight = e.height), q(e, "backgroundColor") && (t.textBackgroundColor = e.backgroundColor), q(e, "padding") && (t.textPadding = e.padding), q(e, "borderColor") && (t.textBorderColor = e.borderColor), q(e, "borderWidth") && (t.textBorderWidth = e.borderWidth), q(e, "borderRadius") && (t.textBorderRadius = e.borderRadius), q(e, "shadowColor") && (t.textBoxShadowColor = e.shadowColor), q(e, "shadowBlur") && (t.textBoxShadowBlur = e.shadowBlur), q(e, "shadowOffsetX") && (t.textBoxShadowOffsetX = e.shadowOffsetX), q(e, "shadowOffsetY") && (t.textBoxShadowOffsetY = e.shadowOffsetY), q(e, "textShadowColor") && (t.textShadowColor = e.textShadowColor), q(e, "textShadowBlur") && (t.textShadowBlur = e.textShadowBlur), q(e, "textShadowOffsetX") && (t.textShadowOffsetX = e.textShadowOffsetX), q(e, "textShadowOffsetY") && (t.textShadowOffsetY = e.textShadowOffsetY)) } function fw(t, e) { return Math.abs(t - e) < 1e-5 } function gw(t) { function e(t, e) { r && r.length > 2 && c.push(r), r = [t, e] } function n(t, e, n, i) { fw(t, n) && fw(e, i) || r.push(t, e, n, i, n, i) } function i(t, e, n, i, o, a) { var s = Math.abs(e - t), l = 4 * Math.tan(s / 4) / 3, u = t > e ? -1 : 1, h = Math.cos(t), c = Math.sin(t), p = Math.cos(e), d = Math.sin(e), f = h * o + n, g = c * a + i, y = p * o + n, v = d * a + i, m = o * l * u, x = a * l * u; r.push(f - m * c, g + x * h, y + m * d, v - x * p, y, v) } for (var r, o, a, s, l, u = t.data, h = t.len(), c = [], p = 0, d = 0, f = 0, g = 0, y = 0; h > y;) { var v = u[y++], m = 1 === y; switch (m && (p = u[y], d = u[y + 1], f = p, g = d, (v === aY.L || v === aY.C || v === aY.Q) && (r = [f, g])), v) { case aY.M: p = f = u[y++], d = g = u[y++], e(f, g); break; case aY.L: o = u[y++], a = u[y++], n(p, d, o, a), p = o, d = a; break; case aY.C: r.push(u[y++], u[y++], u[y++], u[y++], p = u[y++], d = u[y++]); break; case aY.Q: o = u[y++], a = u[y++], s = u[y++], l = u[y++], r.push(p + 2 / 3 * (o - p), d + 2 / 3 * (a - d), s + 2 / 3 * (o - s), l + 2 / 3 * (a - l), s, l), p = s, d = l; break; case aY.A: var x = u[y++], _ = u[y++], b = u[y++], w = u[y++], S = u[y++], M = u[y++] + S; y += 1; var I = !u[y++]; o = Math.cos(S) * b + x, a = Math.sin(S) * w + _, m ? (f = o, g = a, e(f, g)) : n(p, d, o, a), p = Math.cos(M) * b + x, d = Math.sin(M) * w + _; for (var T = (I ? -1 : 1) * Math.PI / 2, C = S; I ? C > M : M > C; C += T) { var A = I ? Math.max(C + T, M) : Math.min(C + T, M); i(C, A, x, _, b, w) } break; case aY.R: f = p = u[y++], g = d = u[y++], o = f + u[y++], a = g + u[y++], e(o, g), n(o, g, o, a), n(o, a, f, a), n(f, a, f, g), n(f, g, o, g); break; case aY.Z: r && n(p, d, f, g), p = f, d = g } } return r && r.length > 2 && c.push(r), c } function yw(t, e) { var n = t.length, i = e.length; if (n === i) return [t, e]; for (var r = i > n ? t : e, o = Math.min(n, i), a = Math.abs(i - n) / 6, s = (o - 2) / 6, l = Math.ceil(a / s) + 1, u = [r[0], r[1]], h = a, c = [], p = [], d = 2; o > d;) { var f = r[d - 2], g = r[d - 1], y = r[d++], v = r[d++], m = r[d++], x = r[d++], _ = r[d++], b = r[d++]; if (0 >= h) u.push(y, v, m, x, _, b); else { for (var w = Math.min(h, l - 1) + 1, S = 1; w >= S; S++) { var M = S / w; Kr(f, y, m, _, M, c), Kr(g, v, x, b, M, p), f = c[3], g = p[3], u.push(c[1], p[1], c[2], p[2], f, g), y = c[5], v = p[5], m = c[6], x = p[6] } h -= w - 1 } } return r === t ? [u, e] : [t, u] } function vw(t, e) { for (var n = t.length, i = t[n - 2], r = t[n - 1], o = [], a = 0; a < e.length;) o[a++] = i, o[a++] = r; return o } function mw(t, e) { for (var n, i, r, o = [], a = [], s = 0; s < Math.max(t.length, e.length); s++) { var l = t[s], u = e[s], h = void 0, c = void 0; l ? u ? (n = yw(l, u), h = n[0], c = n[1], i = h, r = c) : (c = vw(r || l, l), h = l) : (h = vw(i || u, u), c = u), o.push(h), a.push(c) } return [o, a] } function xw(t) { for (var e = 0, n = 0, i = 0, r = t.length, o = 0, a = r - 2; r > o; a = o, o += 2) { var s = t[a], l = t[a + 1], u = t[o], h = t[o + 1], c = s * h - u * l; e += c, n += (s + u) * c, i += (l + h) * c } return 0 === e ? [t[0] || 0, t[1] || 0] : [n / e / 3, i / e / 3, e] } function _w(t, e, n, i) { for (var r = (t.length - 2) / 6, o = 1 / 0, a = 0, s = t.length, l = s - 2, u = 0; r > u; u++) { for (var h = 6 * u, c = 0, p = 0; s > p; p += 2) { var d = 0 === p ? h : (h + p - 2) % l + 2, f = t[d] - n[0], g = t[d + 1] - n[1], y = e[p] - i[0], v = e[p + 1] - i[1], m = y - f, x = v - g; c += m * m + x * x } o > c && (o = c, a = u) } return a } function bw(t) { for (var e = [], n = t.length, i = 0; n > i; i += 2) e[i] = t[n - i - 2], e[i + 1] = t[n - i - 1]; return e } function ww(t, e, n, i) { for (var r, o = [], a = 0; a < t.length; a++) { var s = t[a], l = e[a], u = xw(s), h = xw(l); null == r && (r = u[2] < 0 != h[2] < 0); var c = [], p = [], d = 0, f = 1 / 0, g = [], y = s.length; r && (s = bw(s)); for (var v = 6 * _w(s, l, u, h), m = y - 2, x = 0; m > x; x += 2) { var _ = (v + x) % m + 2; c[x + 2] = s[_] - u[0], c[x + 3] = s[_ + 1] - u[1] } if (c[0] = s[v] - u[0], c[1] = s[v + 1] - u[1], n > 0) for (var b = i / n, w = -i / 2; i / 2 >= w; w += b) { for (var S = Math.sin(w), M = Math.cos(w), I = 0, x = 0; x < s.length; x += 2) { var T = c[x], C = c[x + 1], A = l[x] - h[0], D = l[x + 1] - h[1], L = A * M - D * S, k = A * S + D * M; g[x] = L, g[x + 1] = k; var P = L - T, O = k - C; I += P * P + O * O } if (f > I) { f = I, d = w; for (var R = 0; R < g.length; R++) p[R] = g[R] } } else for (var z = 0; y > z; z += 2) p[z] = l[z] - h[0], p[z + 1] = l[z + 1] - h[1]; o.push({from: c, to: p, fromCp: u, toCp: h, rotation: -d}) } return o } function Sw(t, e, n) { var i, r; if (!t || !e) return e; !t.path && t.createPathProxy(), i = t.path, i.beginPath(), t.buildPath(i, t.shape), !e.path && e.createPathProxy(), r = e.path, r === i && (r = new Ck(!1)), r.beginPath(), Aw(e) ? e.__oldBuildPath(r, e.shape) : e.buildPath(r, e.shape); var o = mw(gw(i), gw(r)), a = o[0], s = o[1], l = ww(a, s, 10, Math.PI); Iw(e, l, 0); var u = n && n.done, h = n && n.aborted, p = n && n.during; return e.animateTo({__morphT: 1}, c({ during: function (t) { e.dirtyShape(), p && p(t) }, done: function () { Cw(e), e.createPathProxy(), e.dirtyShape(), u && u() }, aborted: function () { h && h() } }, n)), e } function Mw(t) { for (var e = this.__morphingData, n = this.__morphT, i = 1 - n, r = [], o = 0; o < e.length; o++) { var a = e[o], s = a.from, l = a.to, u = a.rotation * n, h = a.fromCp, c = a.toCp, p = Math.sin(u), d = Math.cos(u); fe(r, h, c, n); for (var f = 0; f < s.length; f += 2) { var g = s[f], y = s[f + 1], v = l[f], m = l[f + 1], x = g * i + v * n, _ = y * i + m * n; hY[f] = x * d - _ * p + r[0], hY[f + 1] = x * p + _ * d + r[1] } for (var f = 0; f < s.length;) 0 === f && t.moveTo(hY[f++], hY[f++]), t.bezierCurveTo(hY[f++], hY[f++], hY[f++], hY[f++], hY[f++], hY[f++]) } } function Iw(t, e, n) { if (Aw(t)) return void Tw(t, e, n); var i = t; i.__oldBuildPath = i.buildPath, i.buildPath = Mw, Tw(i, e, n) } function Tw(t, e, n) { t.__morphingData = e, t.__morphT = n } function Cw(t) { Aw(t) && (t.buildPath = t.__oldBuildPath, t.__oldBuildPath = t.__morphingData = null) } function Aw(t) { return null != t.__oldBuildPath } function Dw(t) { return !!t.__combiningSubList } function Lw(t) { return Aw(t) || Dw(t) } function kw(t, e, n, i) { for (var r = [], o = 0, a = 0; a < t.length; a++) { var s = t[a]; if (Dw(s)) { for (var l = s.__combiningSubList, u = 0; u < l.length; u++) r.push(l[u]); o += l.length } else r.push(s), o++ } if (o) { var h = n ? n.dividingMethod : null, p = Fw(e, o, h); H(p.length === o); for (var d = n && n.done, f = n && n.aborted, g = n && n.during, y = 0, v = !1, m = c({ during: function (t) { g && g(t) }, done: function () { y++, y === p.length && (Ow(e), d && d()) }, aborted: function () { v || (v = !0, f && f()) } }, n), a = 0; o > a; a++) { var x = r[a], _ = p[a]; i && i(e, _, !0), Sw(x, _, m) } return Pw(e, p), {fromIndividuals: r, toIndividuals: p, count: o} } } function Pw(t, e) { if (Dw(t)) return void Rw(t, e); var n = t; Rw(n, e), n.__oldAddSelfToZr = t.addSelfToZr, n.__oldRemoveSelfFromZr = t.removeSelfFromZr, n.addSelfToZr = zw, n.removeSelfFromZr = Nw, n.__oldBuildPath = n.buildPath, n.buildPath = K, n.childrenRef = Bw } function Ow(t) { if (Dw(t)) { var e = t; Rw(e, null), e.addSelfToZr = e.__oldAddSelfToZr, e.removeSelfFromZr = e.__oldRemoveSelfFromZr, e.buildPath = e.__oldBuildPath, e.childrenRef = e.__combiningSubList = e.__oldAddSelfToZr = e.__oldRemoveSelfFromZr = e.__oldBuildPath = null } } function Rw(t, e) { if (t.__combiningSubList !== e) { if (Ew(t, "removeSelfFromZr"), t.__combiningSubList = e, e) for (var n = 0; n < e.length; n++) e[n].parent = t; Ew(t, "addSelfToZr") } } function zw(t) { this.__oldAddSelfToZr(t), Ew(this, "addSelfToZr") } function Ew(t, e) { var n = t.__combiningSubList, i = t.__zr; if (n && i) for (var r = 0; r < n.length; r++) { var o = n[r]; o[e](i) } } function Nw(t) { this.__oldRemoveSelfFromZr(t); for (var e = this.__combiningSubList, n = 0; n < e.length; n++) { var i = e[n]; i.removeSelfFromZr(t) } } function Bw() { return this.__combiningSubList } function Vw(t, e, n, i) { var r, o = e.length, a = n ? n.dividingMethod : null, s = !1; if (Dw(t)) { var l = t.__combiningSubList; l.length === o ? r = l : (r = Fw(t, o, a), s = !0) } else r = Fw(t, o, a), s = !0; H(r.length === o); for (var u = 0; o > u; u++) s && i && i(t, r[u], !1), Sw(r[u], e[u], n); return {fromIndividuals: r, toIndividuals: e, count: o} } function Fw(t, e, n) { return "duplicate" === n ? Hw(t, e) : Gw(t, e) } function Gw(t, e) { var n = []; if (0 >= e) return n; if (1 === e) return Hw(t, e); if (t instanceof Uk) for (var i = t.shape, r = i.height > i.width ? 1 : 0, o = uY[r], a = lY[r], s = i[o] / e, l = i[a], u = 0; e > u; u++, l += s) { var h = {x: i.x, y: i.y, width: i.width, height: i.height}; h[a] = l, h[o] = e - 1 > u ? s : i[a] + i[o] - l; var c = new Uk({shape: h}); n.push(c) } else { if (!(t instanceof ZP)) return Hw(t, e); for (var i = t.shape, p = i.clockwise, d = i.startAngle, f = i.endAngle, g = Ww(d, i.endAngle, p), y = (g - d) / e, v = d, u = 0; e > u; u++, v += y) { var c = new ZP({ shape: { cx: i.cx, cy: i.cy, r: i.r, r0: i.r0, clockwise: p, startAngle: v, endAngle: u === e - 1 ? f : v + y } }); n.push(c) } } return n } function Hw(t, e) { var n = []; if (0 >= e) return n; for (var i = t.constructor, r = 0; e > r; r++) { var o = new i({shape: s(t.shape)}); n.push(o) } return n } function Ww(t, e, n) { return e + sY * Math[n ? "ceil" : "floor"]((t - e) / sY) } function Xw(t, e, n) { if (t) { if ("oneToOne" === e) return function (e, n) { return t.getId(n) }; var i = t.getDimension(n), r = t.getDimensionInfo(i); if (!r) { var o = ""; Gi(o) } var a = r.ordinalMeta; return function (e, n) { var r = t.get(i, n); return a && (r = a.categories[r]), null == r || E(r) ? e + "" : "_ec_" + r } } } function Yw(t) { var e, n = t.type; if ("path" === n) { var i = t.shape, r = null != i.width && null != i.height ? { x: i.x || 0, y: i.y || 0, width: i.width, height: i.height } : null, o = TS(i); e = ns(o, null, r, i.layout || "center"), cY(e).customPathData = o } else if ("image" === n) e = new Wk({}), cY(e).customImagePath = t.style.image; else if ("text" === n) e = new $k({}); else if ("group" === n) e = new sL; else { if ("compoundPath" === n) throw new Error('"compoundPath" is not supported yet.'); var a = es(n); if (!a) { var s = ""; Gi(s) } e = new a } return cY(e).customGraphicType = n, e.name = t.name, e.z2EmphasisLift = 1, e.z2SelectLift = 1, e } function Zw(t, e, n, i, r, o, a, s, l, u) { var h = {}, c = {}, p = e.isGroup ? null : e; !n && qw("shape", e, null, r, h, l), Kw("shape", r, c), !n && qw("extra", e, null, r, h, l), Kw("extra", r, c), !n && $w(e, null, r, h, l), Jw(r, c); var d = a && a.normal.cfg; if (d && e.setTextConfig(d), "text" === e.type && o) { var f = o; q(f, "textFill") && (f.fill = f.textFill), q(f, "textStroke") && (f.stroke = f.textStroke) } if (o) { var g = void 0, y = AS(e) ? o.decal : null; t && y && (y.dirty = !0, g = qc(y, t)), o.__decalPattern = g } return !n && Qw(e, null, r, o, h, l), p && q(r, "invisible") && (p.invisible = r.invisible), n || (Uw(e, c, o), jw(e, i, r, s, h, l)), q(r, "silent") && (e.silent = r.silent), q(r, "ignore") && (e.ignore = r.ignore), u || q(r, "info") && (cY(e).info = r.info), o ? e.dirty() : e.markRedraw(), n ? c : null } function Uw(t, e, n) { var i = t.isGroup ? null : t; if (i && n) { var r = n.__decalPattern, o = void 0; r && (o = n.decal, n.decal = r), i.useStyle(n), r && (n.decal = o); for (var a = i.animators, s = 0; s < a.length; s++) { var l = a[s]; "style" === l.targetName && l.changeTarget(i.style) } } e && t.attr(e) } function jw(t, e, n, i, r, o) { if (r) { var a = n.during; cY(t).userDuring = a; var s = a ? xA(iS, {el: t, userDuring: a}) : null, l = {dataIndex: e, isFrom: !0, during: s}; o ? hs(t, r, i, l) : us(t, r, i, l) } } function qw(t, e, n, i, r, o) { var a = i[t]; if (a) { var s, l = e[t], u = a.enterFrom; if (o && u) { !s && (s = r[t] = {}); for (var h = b(u), c = 0; c < h.length; c++) { var d = h[c]; s[d] = u[d] } } if (!o && l && (null == n || "shape" !== t)) if (a.transition) { !s && (s = r[t] = {}); for (var f = Hi(a.transition), c = 0; c < f.length; c++) { var d = f[c], g = l[d]; s[d] = g } } else if (p(i.transition, t) >= 0) { !s && (s = r[t] = {}); for (var y = b(l), c = 0; c < y.length; c++) { var d = y[c], g = l[d]; eS(a[d], g) && (s[d] = g) } } var v = a.leaveTo; if (v) for (var m = nS(e), x = m[t] || (m[t] = {}), _ = b(v), c = 0; c < _.length; c++) { var d = _[c]; x[d] = v[d] } } } function Kw(t, e, n) { var i = e[t]; if (i) for (var r = n[t] = {}, o = b(i), a = 0; a < o.length; a++) { var s = o[a]; r[s] = Dn(i[s]) } } function $w(t, e, n, i, r) { var o = n.enterFrom; if (r && o) for (var a = b(o), s = 0; s < a.length; s++) { var l = a[s]; i[l] = o[l] } if (!r) if (e) { var u = tS(e, t); uS(i, "x", u), uS(i, "y", u), uS(i, "scaleX", u), uS(i, "scaleY", u), uS(i, "originX", u), uS(i, "originY", u), uS(i, "rotation", u) } else if (n.transition) for (var h = Hi(n.transition), s = 0; s < h.length; s++) { var l = h[s]; if ("style" !== l && "shape" !== l && "extra" !== l) { var c = t[l]; i[l] = c } } else uS(i, "x", t), uS(i, "y", t); var p = n.leaveTo; if (p) for (var d = nS(t), f = b(p), s = 0; s < f.length; s++) { var l = f[s]; d[l] = p[l] } } function Jw(t, e) { sS(t, e, "position"), sS(t, e, "scale"), sS(t, e, "origin"), lS(t, e, "x"), lS(t, e, "y"), lS(t, e, "scaleX"), lS(t, e, "scaleY"), lS(t, e, "originX"), lS(t, e, "originY"), lS(t, e, "rotation") } function Qw(t, e, n, i, r, o) { if (i) { var a, s = e || t, l = s.style, u = i.enterFrom; if (o && u) { var h = b(u); !a && (a = r.style = {}); for (var c = 0; c < h.length; c++) { var d = h[c]; a[d] = u[d] } } if (!o && l) if (i.transition) { var f = Hi(i.transition); !a && (a = r.style = {}); for (var c = 0; c < f.length; c++) { var d = f[c], g = l[d]; a[d] = g } } else if (t.getAnimationStyleProps && p(n.transition, "style") >= 0) { var y = t.getAnimationStyleProps(), v = y ? y.style : null; if (v) { !a && (a = r.style = {}); for (var m = b(i), c = 0; c < m.length; c++) { var d = m[c]; if (v[d]) { var g = l[d]; a[d] = g } } } } var x = i.leaveTo; if (x) for (var _ = b(x), w = nS(t), S = w.style || (w.style = {}), c = 0; c < _.length; c++) { var d = _[c]; S[d] = x[d] } } } function tS(t, e) { if (!t || t === e || t.parent === e.parent) return t; var n = IY.transform || (IY.transform = Hn([])), i = t.getComputedTransform(); i ? Wn(n, i) : Hn(n); var r = e.parent; return r && r.getComputedTransform(), IY.originX = t.originX, IY.originY = t.originY, IY.parent = r, IY.decomposeTransform(), IY } function eS(t, e) { return g(t) ? t !== e : null != t && isFinite(t) } function nS(t) { var e = cY(t); return e.leaveToProps || (e.leaveToProps = {}) } function iS() { var t = this, e = t.el; if (e) { var n = cY(e).userDuring, i = t.userDuring; if (n !== i) return void (t.el = t.userDuring = null); DY.el = e, DY.isShapeDirty = !1, DY.isStyleDirty = !1, i(LY), DY.isShapeDirty && e.dirtyShape && e.dirtyShape(), DY.isStyleDirty && e.dirtyStyle && e.dirtyStyle() } } function rS(t, e, n, i, r) { var o = e.isGroup ? null : e, a = r && r[t].cfg; if (o) { var s = o.ensureState(t); if (i === !1) { var l = o.getState(t); l && (l.style = null) } else s.style = i || null; a && (s.textConfig = a), ia(o) } } function oS(t, e, n) { if (!t.isGroup) { var i = t, r = n.currentZ, o = n.currentZLevel; i.z = r, i.zlevel = o; var a = e.z2; null != a && (i.z2 = a || 0); for (var s = 0; s < xY.length; s++) aS(i, e, xY[s]) } } function aS(t, e, n) { var i, r = n === yY, o = r ? e : mS(e, n), a = o ? o.z2 : null; null != a && (i = r ? t : t.ensureState(n), i.z2 = a || 0) } function sS(t, e, n, i) { var r = t[n], o = MY[n]; r && (i ? (e[o[0]] = i[o[0]], e[o[1]] = i[o[1]]) : (e[o[0]] = r[0], e[o[1]] = r[1])) } function lS(t, e, n, i) { null != t[n] && (e[n] = i ? i[n] : t[n]) } function uS(t, e, n) { n && (t[e] = n[e]) } function hS(t, e, n, i) { function r(t) { return t === b ? w || (w = e.getItemModel(t)) : e.getItemModel(t) } function o(t, n) { return e.hasItemOption ? t === b ? I[n] || (I[n] = r(t).getModel(_Y[n])) : r(t).getModel(_Y[n]) : A[n] } function a(t, n) { return e.hasItemOption ? t === b ? C[n] || (C[n] = r(t).getModel(bY[n])) : r(t).getModel(bY[n]) : D[n] } function s(t, n) { return null == n && (n = b), e.get(e.getDimension(t || 0), n) } function l(t, n) { null == n && (n = b); var i = e.getDimensionInfo(t || 0); if (i) { var r = e.get(i.name, n), o = i && i.ordinalMeta; return o ? o.categories[r] : r } } function u(n, i) { null == i && (i = b); var r = e.getItemVisual(i, "style"), s = r && r.fill, l = r && r.opacity, u = o(i, yY).getItemStyle(); null != s && (u.fill = s), null != l && (u.opacity = l); var h = {inheritColor: T(s) ? s : "#000"}, c = a(i, yY), f = Os(c, null, h, !1, !0); f.text = c.getShallow("show") ? B(t.getFormattedLabel(i, yY), Zf(e, i)) : null; var g = Rs(c, h, !1); return d(n, u), u = pw(u, f, g), n && p(u, n), u.legacy = !0, u } function h(n, i) { null == i && (i = b); var r = o(i, gY).getItemStyle(), s = a(i, gY), l = Os(s, null, null, !0, !0); l.text = s.getShallow("show") ? V(t.getFormattedLabel(i, gY), t.getFormattedLabel(i, yY), Zf(e, i)) : null; var u = Rs(s, null, !0); return d(n, r), r = pw(r, l, u), n && p(r, n), r.legacy = !0, r } function p(t, e) { for (var n in e) q(e, n) && (t[n] = e[n]) } function d(t, e) { t && (t.textFill && (e.textFill = t.textFill), t.textPosition && (e.textPosition = t.textPosition)) } function f(t, n) { if (null == n && (n = b), q(dY, t)) { var i = e.getItemVisual(n, "style"); return i ? i[dY[t]] : null } return q(fY, t) ? e.getItemVisual(n, t) : void 0 } function g(t) { if ("cartesian2d" === x.type) { var e = x.getBaseAxis(); return Ad(c({axis: e}, t)) } } function y() { return n.getCurrentSeriesIndices() } function v(t) { return Bs(t, n) } var m = t.get("renderItem"), x = t.coordinateSystem, _ = {}; x && (_ = x.prepareCustoms ? x.prepareCustoms(x) : TY[x.type](x)); for (var b, w, S = c({ getWidth: i.getWidth, getHeight: i.getHeight, getZr: i.getZr, getDevicePixelRatio: i.getDevicePixelRatio, value: s, style: u, ordinalRawValue: l, styleEmphasis: h, visual: f, barLayout: g, currentSeriesIndices: y, font: v }, _.api || {}), M = { context: {}, seriesId: t.id, seriesName: t.name, seriesIndex: t.seriesIndex, coordSys: _.coordSys, dataInsideLength: e.count(), encode: cS(t.getData()) }, I = {}, C = {}, A = {}, D = {}, L = 0; L < xY.length; L++) { var k = xY[L]; A[k] = t.getModel(_Y[k]), D[k] = t.getModel(bY[k]) } return function (t, n) { return b = t, w = null, I = {}, C = {}, m && m(c({ dataIndexInside: t, dataIndex: e.getRawIndex(t), actionType: n ? n.type : null }, M), S) } } function cS(t) { var e = {}; return y(t.dimensions, function (n, i) { var r = t.getDimensionInfo(n); if (!r.isExtraCoord) { var o = r.coordDim, a = e[o] = e[o] || []; a[r.coordDimIndex] = i } }), e } function pS(t, e, n, i, r, o, a, s) { return i ? (e = dS(t, e, n, i, r, o, !0, s), e && a.setItemGraphicEl(n, e), e && Sa(e, i.focus, i.blurScope), e) : void DS(e, o) } function dS(t, e, n, i, r, o, a, s) { var l = -1; e && fS(e, i) && (l = o.childrenRef().indexOf(e), e = null); var u = !e; e ? e.clearStates() : e = Yw(i); var h = cY(e).canMorph = i.morph && AS(e), c = h && s && s.hasFrom(), p = u && !c; SY.normal.cfg = SY.normal.conOpt = SY.emphasis.cfg = SY.emphasis.conOpt = SY.blur.cfg = SY.blur.conOpt = SY.select.cfg = SY.select.conOpt = null, SY.isLegacy = !1, yS(e, n, i, r, p, SY), gS(e, n, i, r, p); var d = Zw(t, e, c, n, i, i.style, SY, r, p, !1); c && s.addTo(e, i, n, d); for (var f = 0; f < xY.length; f++) { var g = xY[f]; if (g !== yY) { var y = mS(i, g), v = xS(i, y, g); rS(g, e, y, v, SY, a, !1) } } return oS(e, i, r, SY), "group" === i.type && _S(t, e, n, i, r, s), l >= 0 ? o.replaceAt(e, l) : o.add(e), e } function fS(t, e) { var n = cY(t), i = e.type, r = e.shape, o = e.style; return null != i && i !== n.customGraphicType || "path" === i && CS(r) && TS(r) !== n.customPathData || "image" === i && q(o, "image") && o.image !== n.customImagePath } function gS(t, e, n, i, r) { var o = n.clipPath; if (o === !1) t && t.getClipPath() && t.removeClipPath(); else if (o) { var a = t.getClipPath(); a && fS(a, o) && (a = null), a || (a = Yw(o), t.setClipPath(a)), Zw(null, a, null, e, o, null, null, i, r, !1) } } function yS(t, e, n, i, r, o) { if (!t.isGroup) { vS(n, null, o), vS(n, gY, o); var a = o.normal.conOpt, s = o.emphasis.conOpt, l = o.blur.conOpt, u = o.select.conOpt; if (null != a || null != s || null != u || null != l) { var h = t.getTextContent(); if (a === !1) h && t.removeTextContent(); else { a = o.normal.conOpt = a || {type: "text"}, h ? h.clearStates() : (h = Yw(a), t.setTextContent(h)); var c = a && a.style; Zw(null, h, null, e, a, c, null, i, r, !0); for (var p = 0; p < xY.length; p++) { var d = xY[p]; if (d !== yY) { var f = o[d].conOpt; rS(d, h, f, xS(a, f, d), null, !1, !0) } } c ? h.dirty() : h.markRedraw() } } } } function vS(t, e, n) { var i = e ? mS(t, e) : t, r = e ? xS(t, i, gY) : t.style, o = t.type, a = i ? i.textConfig : null, s = t.textContent, l = s ? e ? mS(s, e) : s : null; if (r && (n.isLegacy || uw(r, o, !!a, !!l))) { n.isLegacy = !0; var u = hw(r, o, !e); !a && u.textConfig && (a = u.textConfig), !l && u.textContent && (l = u.textContent) } if (!e && l) { var h = l; !h.type && (h.type = "text") } var c = e ? n[e] : n.normal; c.cfg = a, c.conOpt = l } function mS(t, e) { return e ? t ? t[e] : null : t } function xS(t, e, n) { var i = e && e.style; return null == i && n === gY && t && (i = t.styleEmphasis), i } function _S(t, e, n, i, r, o) { var a = i.children, s = a ? a.length : 0, l = i.$mergeChildren, u = "byName" === l || i.diffChildrenByName, h = l === !1; if (s || u || h) { if (u) return void bS({ api: t, oldChildren: e.children() || [], newChildren: a || [], dataIndex: n, seriesModel: r, group: e, morphPreparation: o }); h && e.removeAll(); for (var c = 0; s > c; c++) a[c] && dS(t, e.childAt(c), n, a[c], r, e, !1, o); for (var p = e.childCount() - 1; p >= c; p--) IS(e.childAt(p), r, e) } } function bS(t) { new tV(t.oldChildren, t.newChildren, wS, wS, t).add(SS).update(SS).remove(MS).execute() } function wS(t, e) { var n = t && t.name; return null != n ? n : wY + e } function SS(t, e) { var n = this.context, i = null != t ? n.newChildren[t] : null, r = null != e ? n.oldChildren[e] : null; dS(n.api, r, n.dataIndex, i, n.seriesModel, n.group, !1, n.morphPreparation) } function MS(t) { var e = this.context, n = e.oldChildren[t]; IS(n, e.seriesModel, e.group) } function IS(t, e, n) { if (t) { var i = cY(t).leaveToProps; i ? us(t, i, e, { cb: function () { n.remove(t) } }) : n.remove(t) } } function TS(t) { return t && (t.pathData || t.d) } function CS(t) { return t && (q(t, "pathData") || q(t, "d")) } function AS(t) { return t && t instanceof Bk } function DS(t, e) { t && e.remove(t) } function LS(t, e, n) { e.style = n ? s(t.style) : t.style, e.zlevel = t.zlevel, e.z = t.z, e.z2 = t.z2 } function kS(t) { t.registerChartView(AY), t.registerSeriesModel(CY) } function PS(t, e, n, i) { OS(PY(n).lastProp, i) || (PY(n).lastProp = i, e ? us(n, i, t) : (n.stopAnimation(), n.attr(i))) } function OS(t, e) { if (D(t) && D(e)) { var n = !0; return y(e, function (e, i) { n = n && OS(t[i], e) }), !!n } return t === e } function RS(t, e) { t[e.get(["label", "show"]) ? "show" : "hide"]() } function zS(t) { return {x: t.x || 0, y: t.y || 0, rotation: t.rotation || 0} } function ES(t, e, n) { var i = e.get("z"), r = e.get("zlevel"); t && t.traverse(function (t) { "group" !== t.type && (null != i && (t.z = i), null != r && (t.zlevel = r), t.silent = n) }) } function NS(t) { var e, n = t.get("type"), i = t.getModel(n + "Style"); return "line" === n ? (e = i.getLineStyle(), e.fill = null) : "shadow" === n && (e = i.getAreaStyle(), e.stroke = null), e } function BS(t, e, n, i, r) { var o = n.get("value"), a = FS(o, e.axis, e.ecModel, n.get("seriesDataIndices"), { precision: n.get(["label", "precision"]), formatter: n.get(["label", "formatter"]) }), s = n.getModel("label"), l = oR(s.get("padding") || 0), u = s.getFont(), h = ti(a, u), c = r.position, p = h.width + l[1] + l[3], d = h.height + l[0] + l[2], f = r.align; "right" === f && (c[0] -= p), "center" === f && (c[0] -= p / 2); var g = r.verticalAlign; "bottom" === g && (c[1] -= d), "middle" === g && (c[1] -= d / 2), VS(c, p, d, i); var y = s.get("backgroundColor"); y && "auto" !== y || (y = e.get(["axisLine", "lineStyle", "color"])), t.label = { x: c[0], y: c[1], style: Os(s, {text: a, font: u, fill: s.getTextColor(), padding: l, backgroundColor: y}), z2: 10 } } function VS(t, e, n, i) { var r = i.getWidth(), o = i.getHeight(); t[0] = Math.min(t[0] + e, r) - e, t[1] = Math.min(t[1] + n, o) - n, t[0] = Math.max(t[0], 0), t[1] = Math.max(t[1], 0) } function FS(t, e, n, i, r) { t = e.scale.parse(t); var o = e.scale.getLabel({value: t}, {precision: r.precision}), a = r.formatter; if (a) { var s = {value: ef(e, {value: t}), axisDimension: e.dim, axisIndex: e.index, seriesData: []}; y(i, function (t) { var e = n.getSeriesByIndex(t.seriesIndex), i = t.dataIndexInside, r = e && e.getDataParams(i); r && s.seriesData.push(r) }), T(a) ? o = a.replace("{value}", o) : I(a) && (o = a(s)) } return o } function GS(t, e, n) { var i = Gn(); return Zn(i, i, n.rotation), Yn(i, i, n.position), ys([t.dataToCoord(e), (n.labelOffset || 0) + (n.labelDirection || 1) * (n.labelMargin || 0)], i) } function HS(t, e, n, i, r, o) { var a = cG.innerTextLayout(n.rotation, 0, n.labelDirection); n.labelMargin = r.get(["label", "margin"]), BS(e, i, r, o, { position: GS(i.axis, t, n), align: a.textAlign, verticalAlign: a.textVerticalAlign }) } function WS(t, e, n) { return n = n || 0, {x1: t[n], y1: t[1 - n], x2: e[n], y2: e[1 - n]} } function XS(t, e, n) { return n = n || 0, {x: t[n], y: t[1 - n], width: e[n], height: e[1 - n]} } function YS(t, e, n, i, r, o) { return {cx: t, cy: e, r0: n, r: i, startAngle: r, endAngle: o, clockwise: !0} } function ZS(t, e, n, i, r) { var o = e.axis, a = o.dataToCoord(t), s = i.getAngleAxis().getExtent()[0]; s = s / 180 * Math.PI; var l, u, h, c = i.getRadiusAxis().getExtent(); if ("radius" === o.dim) { var p = Gn(); Zn(p, p, s), Yn(p, p, [i.cx, i.cy]), l = ys([a, -r], p); var d = e.getModel("axisLabel").get("rotate") || 0, f = cG.innerTextLayout(s, d * Math.PI / 180, -1); u = f.textAlign, h = f.textVerticalAlign } else { var g = c[1]; l = i.coordToPoint([g + r, a]); var y = i.cx, v = i.cy; u = Math.abs(l[0] - y) / g < .3 ? "center" : l[0] > y ? "left" : "right", h = Math.abs(l[1] - v) / g < .3 ? "middle" : l[1] > v ? "top" : "bottom" } return {position: l, align: u, verticalAlign: h} } function US(t, e) { var n = {}; return n[e.dim + "AxisIndex"] = e.index, t.getCartesian(n) } function jS(t) { return "x" === t.dim ? 0 : 1 } function qS(t, e, n) { if (!oA.node) { var i = e.getZr(); GY(i).records || (GY(i).records = {}), KS(i, e); var r = GY(i).records[t] || (GY(i).records[t] = {}); r.handler = n } } function KS(t, e) { function n(n, i) { t.on(n, function (n) { var r = tM(e); HY(GY(t).records, function (t) { t && i(t, n, r.dispatchAction) }), $S(r.pendings, e) }) } GY(t).initialized || (GY(t).initialized = !0, n("click", S(QS, "click")), n("mousemove", S(QS, "mousemove")), n("globalout", JS)) } function $S(t, e) { var n, i = t.showTip.length, r = t.hideTip.length; i ? n = t.showTip[i - 1] : r && (n = t.hideTip[r - 1]), n && (n.dispatchAction = null, e.dispatchAction(n)) } function JS(t, e, n) { t.handler("leave", null, n) } function QS(t, e, n, i) { e.handler(t, n, i) } function tM(t) { var e = {showTip: [], hideTip: []}, n = function (i) { var r = e[i.type]; r ? r.push(i) : (i.dispatchAction = n, t.dispatchAction(i)) }; return {dispatchAction: n, pendings: e} } function eM(t, e) { if (!oA.node) { var n = e.getZr(), i = (GY(n).records || {})[t]; i && (GY(n).records[t] = null) } } function nM(t, e) { var n, i = [], r = t.seriesIndex; if (null == r || !(n = e.getSeriesByIndex(r))) return {point: []}; var o = n.getData(), a = lr(o, t); if (null == a || 0 > a || M(a)) return {point: []}; var s = o.getItemGraphicEl(a), l = n.coordinateSystem; if (n.getTooltipPosition) i = n.getTooltipPosition(a) || []; else if (l && l.dataToPoint) if (t.isStacked) { var u = l.getBaseAxis(), h = l.getOtherAxis(u), c = h.dim, p = u.dim, d = "x" === c || "radius" === c ? 1 : 0, f = o.mapDimension(p), g = []; g[d] = o.get(f, a), g[1 - d] = o.get(o.getCalculationInfo("stackResultDimension"), a), i = l.dataToPoint(g) || [] } else i = l.dataToPoint(o.getValues(v(l.dimensions, function (t) { return o.mapDimension(t) }), a)) || []; else if (s) { var y = s.getBoundingRect().clone(); y.applyTransform(s.transform), i = [y.x + y.width / 2, y.y + y.height / 2] } return {point: i, el: s} } function iM(t, e, n) { var i = t.currTrigger, r = [t.x, t.y], o = t, a = t.dispatchAction || xA(n.dispatchAction, n), s = e.getComponent("axisPointer").coordSysAxesInfo; if (s) { dM(r) && (r = nM({seriesIndex: o.seriesIndex, dataIndex: o.dataIndex}, e).point); var l = dM(r), u = o.axesInfo, h = s.axesInfo, c = "leave" === i || dM(r), p = {}, d = {}, f = {list: [], map: {}}, g = {showPointer: S(aM, d), showTooltip: S(sM, f)}; y(s.coordSysMap, function (t, e) { var n = l || t.containPoint(r); y(s.coordSysAxesInfo[e], function (t) { var e = t.axis, i = cM(u, t); if (!c && n && (!u || i)) { var o = i && i.value; null != o || l || (o = e.pointToData(r)), null != o && rM(t, o, g, !1, p) } }) }); var v = {}; return y(h, function (t, e) { var n = t.linkGroup; n && !d[e] && y(n.axesInfo, function (e, i) { var r = d[i]; if (e !== t && r) { var o = r.value; n.mapper && (o = t.axis.scale.parse(n.mapper(o, pM(e), pM(t)))), v[t.key] = o } }) }), y(v, function (t, e) { rM(h[e], t, g, !0, p) }), lM(d, h, p), uM(f, r, t, a), hM(h, a, n), p } } function rM(t, e, n, i, r) { var o = t.axis; if (!o.scale.isBlank() && o.containData(e)) { if (!t.involveSeries) return void n.showPointer(t, e); var a = oM(e, t), s = a.payloadBatch, l = a.snapToValue; s[0] && null == r.seriesIndex && h(r, s[0]), !i && t.snap && o.containData(l) && null != l && (e = l), n.showPointer(t, e, s), n.showTooltip(t, a, l) } } function oM(t, e) { var n = e.axis, i = n.dim, r = t, o = [], a = Number.MAX_VALUE, s = -1; return y(e.seriesModels, function (e) { var l, u, h = e.getData().mapDimensionsAll(i); if (e.getAxisTooltipData) { var c = e.getAxisTooltipData(h, t, n); u = c.dataIndices, l = c.nestestValue } else { if (u = e.getData().indicesOfNearest(h[0], t, "category" === n.type ? .5 : null), !u.length) return; l = e.getData().get(h[0], u[0]) } if (null != l && isFinite(l)) { var p = t - l, d = Math.abs(p); a >= d && ((a > d || p >= 0 && 0 > s) && (a = d, s = p, r = l, o.length = 0), y(u, function (t) { o.push({seriesIndex: e.seriesIndex, dataIndexInside: t, dataIndex: e.getData().getRawIndex(t)}) })) } }), {payloadBatch: o, snapToValue: r} } function aM(t, e, n, i) { t[e.key] = {value: n, payloadBatch: i} } function sM(t, e, n, i) { var r = n.payloadBatch, o = e.axis, a = o.model, s = e.axisPointerModel; if (e.triggerTooltip && r.length) { var l = e.coordSys.model, u = by(l), h = t.map[u]; h || (h = t.map[u] = { coordSysId: l.id, coordSysIndex: l.componentIndex, coordSysType: l.type, coordSysMainType: l.mainType, dataByAxis: [] }, t.list.push(h)), h.dataByAxis.push({ axisDim: o.dim, axisIndex: a.componentIndex, axisType: a.type, axisId: a.id, value: i, valueLabelOpt: {precision: s.get(["label", "precision"]), formatter: s.get(["label", "formatter"])}, seriesDataIndices: r.slice() }) } } function lM(t, e, n) { var i = n.axesInfo = []; y(e, function (e, n) { var r = e.axisPointerModel.option, o = t[n]; o ? (!e.useHandle && (r.status = "show"), r.value = o.value, r.seriesDataIndices = (o.payloadBatch || []).slice()) : !e.useHandle && (r.status = "hide"), "show" === r.status && i.push({ axisDim: e.axis.dim, axisIndex: e.axis.model.componentIndex, value: r.value }) }) } function uM(t, e, n, i) { if (dM(e) || !t.list.length) return void i({type: "hideTip"}); var r = ((t.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {}; i({ type: "showTip", escapeConnect: !0, x: e[0], y: e[1], tooltipOption: n.tooltipOption, position: n.position, dataIndexInside: r.dataIndexInside, dataIndex: r.dataIndex, seriesIndex: r.seriesIndex, dataByCoordSys: t.list }) } function hM(t, e, n) { var i = n.getZr(), r = "axisPointerLastHighlights", o = XY(i)[r] || {}, a = XY(i)[r] = {}; y(t, function (t) { var e = t.axisPointerModel.option; "show" === e.status && y(e.seriesDataIndices, function (t) { var e = t.seriesIndex + " | " + t.dataIndex; a[e] = t }) }); var s = [], l = []; y(o, function (t, e) { !a[e] && l.push(t) }), y(a, function (t, e) { !o[e] && s.push(t) }), l.length && n.dispatchAction({ type: "downplay", escapeConnect: !0, notBlur: !0, batch: l }), s.length && n.dispatchAction({type: "highlight", escapeConnect: !0, notBlur: !0, batch: s}) } function cM(t, e) { for (var n = 0; n < (t || []).length; n++) { var i = t[n]; if (e.axis.dim === i.axisDim && e.axis.model.componentIndex === i.axisIndex) return i } } function pM(t) { var e = t.axis.model, n = {}, i = n.axisDim = t.axis.dim; return n.axisIndex = n[i + "AxisIndex"] = e.componentIndex, n.axisName = n[i + "AxisName"] = e.name, n.axisId = n[i + "AxisId"] = e.id, n } function dM(t) { return !t || null == t[0] || isNaN(t[0]) || null == t[1] || isNaN(t[1]) } function fM(t) { fG.registerAxisPointerClass("CartesianAxisPointer", BY), t.registerComponentModel(FY), t.registerComponentView(WY), t.registerPreprocessor(function (t) { if (t) { (!t.axisPointer || 0 === t.axisPointer.length) && (t.axisPointer = {}); var e = t.axisPointer.link; e && !M(e) && (t.axisPointer.link = [e]) } }), t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC, function (t, e) { t.getComponent("axisPointer").coordSysAxesInfo = cy(t, e) }), t.registerAction({type: "updateAxisPointer", event: "updateAxisPointer", update: ":updateAxisPointer"}, iM) } function gM(t) { var e = t.seriesModel, n = t.polarModel; return n && n.coordinateSystem || e && e.coordinateSystem } function yM(t, e, n) { var i = e.get("center"), r = n.getWidth(), o = n.getHeight(); t.cx = _i(i[0], r), t.cy = _i(i[1], o); var a = t.getRadiusAxis(), s = Math.min(r, o) / 2, l = e.get("radius"); null == l ? l = [0, "100%"] : M(l) || (l = [0, l]); var u = [_i(l[0], s), _i(l[1], s)]; a.inverse ? a.setExtent(u[1], u[0]) : a.setExtent(u[0], u[1]) } function vM(t) { var e = this, n = e.getAngleAxis(), i = e.getRadiusAxis(); if (n.scale.setExtent(1 / 0, -1 / 0), i.scale.setExtent(1 / 0, -1 / 0), t.eachSeries(function (t) { if (t.coordinateSystem === e) { var r = t.getData(); y(sf(r, "radius"), function (t) { i.scale.unionExtentFromData(r, t) }), y(sf(r, "angle"), function (t) { n.scale.unionExtentFromData(r, t) }) } }), $d(n.scale, n.model), $d(i.scale, i.model), "category" === n.type && !n.onBand) { var r = n.getExtent(), o = 360 / n.scale.count(); n.inverse ? r[1] += o : r[1] -= o, n.setExtent(r[0], r[1]) } } function mM(t) { return "angleAxis" === t.mainType } function xM(t, e) { if (t.type = e.get("type"), t.scale = Jd(e), t.onBand = e.get("boundaryGap") && "category" === t.type, t.inverse = e.get("inverse"), mM(e)) { t.inverse = t.inverse !== e.get("clockwise"); var n = e.get("startAngle"); t.setExtent(n, n + (t.inverse ? -360 : 360)) } e.axis = t, t.model = e } function _M(t, e, n) { e[1] > e[0] && (e = e.slice().reverse()); var i = t.coordToPoint([e[0], n]), r = t.coordToPoint([e[1], n]); return {x1: i[0], y1: i[1], x2: r[0], y2: r[1]} } function bM(t) { var e = t.getRadiusAxis(); return e.inverse ? 0 : 1 } function wM(t) { var e = t[0], n = t[t.length - 1]; e && n && Math.abs(Math.abs(e.coord - n.coord) - 360) < 1e-4 && t.pop() } function SM(t, e, n) { return { position: [t.cx, t.cy], rotation: n / 180 * Math.PI, labelDirection: -1, tickDirection: -1, nameDirection: 1, labelRotate: e.getModel("axisLabel").get("rotate"), z2: 1 } } function MM(t) { return t.get("stack") || "__ec_stack_" + t.seriesIndex } function IM(t, e) { return e.dim + t.model.componentIndex } function TM(t, e) { var n = {}, i = CM(x(e.getSeriesByType(t), function (t) { return !e.isSeriesFiltered(t) && t.coordinateSystem && "polar" === t.coordinateSystem.type })); e.eachSeriesByType(t, function (t) { if ("polar" === t.coordinateSystem.type) { var e = t.getData(), r = t.coordinateSystem, o = r.getBaseAxis(), a = IM(r, o), s = MM(t), l = i[a][s], u = l.offset, h = l.width, c = r.getOtherAxis(o), p = t.coordinateSystem.cx, d = t.coordinateSystem.cy, f = t.get("barMinHeight") || 0, g = t.get("barMinAngle") || 0; n[s] = n[s] || []; for (var y = e.mapDimension(c.dim), v = e.mapDimension(o.dim), m = dd(e, y), x = "radius" !== o.dim || !t.get("roundCap", !0), _ = c.dataToCoord(0), b = 0, w = e.count(); w > b; b++) { var S = e.get(y, b), M = e.get(v, b), I = S >= 0 ? "p" : "n", T = _; m && (n[s][M] || (n[s][M] = {p: _, n: _}), T = n[s][M][I]); var C = void 0, A = void 0, D = void 0, L = void 0; if ("radius" === c.dim) { var k = c.dataToCoord(S) - _, P = o.dataToCoord(M); Math.abs(k) < f && (k = (0 > k ? -1 : 1) * f), C = T, A = T + k, D = P - u, L = D - h, m && (n[s][M][I] = A) } else { var O = c.dataToCoord(S, x) - _, R = o.dataToCoord(M); Math.abs(O) < g && (O = (0 > O ? -1 : 1) * g), C = R + u, A = C + h, D = T, L = T + O, m && (n[s][M][I] = L) } e.setItemLayout(b, { cx: p, cy: d, r0: C, r: A, startAngle: -D * Math.PI / 180, endAngle: -L * Math.PI / 180 }) } } }) } function CM(t) { var e = {}; y(t, function (t) { var n = t.getData(), i = t.coordinateSystem, r = i.getBaseAxis(), o = IM(i, r), a = r.getExtent(), s = "category" === r.type ? r.getBandWidth() : Math.abs(a[1] - a[0]) / n.count(), l = e[o] || { bandWidth: s, remainedWidth: s, autoWidthCount: 0, categoryGap: "20%", gap: "30%", stacks: {} }, u = l.stacks; e[o] = l; var h = MM(t); u[h] || l.autoWidthCount++, u[h] = u[h] || {width: 0, maxWidth: 0}; var c = _i(t.get("barWidth"), s), p = _i(t.get("barMaxWidth"), s), d = t.get("barGap"), f = t.get("barCategoryGap"); c && !u[h].width && (c = Math.min(l.remainedWidth, c), u[h].width = c, l.remainedWidth -= c), p && (u[h].maxWidth = p), null != d && (l.gap = d), null != f && (l.categoryGap = f) }); var n = {}; return y(e, function (t, e) { n[e] = {}; var i = t.stacks, r = t.bandWidth, o = _i(t.categoryGap, r), a = _i(t.gap, 1), s = t.remainedWidth, l = t.autoWidthCount, u = (s - o) / (l + (l - 1) * a); u = Math.max(u, 0), y(i, function (t) { var e = t.maxWidth; e && u > e && (e = Math.min(e, s), t.width && (e = Math.min(e, t.width)), s -= e, t.width = e, l--) }), u = (s - o) / (l + (l - 1) * a), u = Math.max(u, 0); var h, c = 0; y(i, function (t) { t.width || (t.width = u), h = t, c += t.width * (1 + a) }), h && (c -= h.width * a); var p = -c / 2; y(i, function (t, i) { n[e][i] = n[e][i] || {offset: p, width: t.width}, p += t.width * (1 + a) }) }), n } function AM(t) { df(fM), fG.registerAxisPointerClass("PolarAxisPointer", EY), t.registerCoordinateSystem("polar", QY), t.registerComponentModel(YY), t.registerComponentView(uZ), Zg(t, "angle", UY, sZ), Zg(t, "radius", jY, lZ), t.registerComponentView(eZ), t.registerComponentView(oZ), t.registerLayout(S(TM, "bar")) } function DM(t) { var e = t.geoModel, n = t.seriesModel; return e ? e.coordinateSystem : n ? n.coordinateSystem || (n.getReferringComponents("geo", wL).models[0] || {}).coordinateSystem : null } function LM(t, e) { var n = t.get("boundingCoords"); if (null != n) { var i = n[0], r = n[1]; isNaN(i[0]) || isNaN(i[1]) || isNaN(r[0]) || isNaN(r[1]) || this.setBoundingRect(i[0], i[1], r[0] - i[0], r[1] - i[1]) } var o, a, s = this.getBoundingRect(), l = t.get("layoutCenter"), u = t.get("layoutSize"), h = e.getWidth(), c = e.getHeight(), p = s.width / s.height * this.aspectScale, d = !1; l && u && (o = [_i(l[0], h), _i(l[1], c)], a = _i(u, Math.min(h, c)), isNaN(o[0]) || isNaN(o[1]) || isNaN(a) || (d = !0)); var f; if (d) f = {}, p > 1 ? (f.width = a, f.height = a / p) : (f.height = a, f.width = a * p), f.y = o[1] - f.height / 2, f.x = o[0] - f.width / 2; else { var g = t.getBoxLayoutParams(); g.aspect = p, f = kl(g, {width: h, height: c}) } this.setViewRect(f.x, f.y, f.width, f.height), this.setCenter(t.get("center")), this.setZoom(t.get("zoom")) } function kM(t, e) { y(e.get("geoCoord"), function (e, n) { t.addGeoCoord(n, e) }) } function PM(t) { var e = t.getItemStyle(), n = t.get("areaColor"); return null != n && (e.fill = n), e } function OM(t, e, n, i) { var r = i.getModel("itemStyle"), o = i.getModel(["emphasis", "itemStyle"]), a = i.getModel(["blur", "itemStyle"]), s = i.getModel(["select", "itemStyle"]), l = PM(r), u = PM(o), h = PM(s), c = PM(a), p = t.data; if (p) { var d = p.getItemVisual(n, "style"), f = p.getItemVisual(n, "decal"); t.isVisualEncodedByVisualMap && d.fill && (l.fill = d.fill), f && (l.decal = qc(f, t.api)) } e.setStyle(l), e.style.strokeNoScale = !0, e.ensureState("emphasis").style = u, e.ensureState("select").style = h, e.ensureState("blur").style = c, ia(e) } function RM(t, e, n, i, r, o, a) { var s = t.data, l = t.isGeo, u = s && isNaN(s.get(s.mapDimension("value"), o)), h = s && s.getItemLayout(o); if (l || u || h && h.showLabel) { var c = l ? n : o, p = void 0; (!s || o >= 0) && (p = r); var d = a ? {normal: {align: "center", verticalAlign: "middle"}} : null; ks(e, Ps(i), {labelFetcher: p, labelDataIndex: c, defaultText: n}, d); var f = e.getTextContent(); if (f && (xZ(f).ignore = f.ignore, e.textConfig && a)) { var g = e.getBoundingRect().clone(); e.textConfig.layoutRect = g, e.textConfig.position = [(a[0] - g.x) / g.width * 100 + "%", (a[1] - g.y) / g.height * 100 + "%"] } e.disableLabelAnimation = !0 } else e.removeTextContent(), e.removeTextConfig(), e.disableLabelAnimation = null } function zM(t, e, n, i, r, o) { t.data ? t.data.setItemGraphicEl(o, e) : tP(e).eventData = { componentType: "geo", componentIndex: r.componentIndex, geoIndex: r.componentIndex, name: n, region: i && i.option || {} } } function EM(t, e, n, i, r) { t.data || As({el: e, componentModel: r, itemName: n, itemTooltipOption: i.get("tooltip")}) } function NM(t, e, n, i, r) { e.highDownSilentOnTouch = !!r.get("selectedMode"); var o = i.getModel("emphasis"), a = o.get("focus"); return Sa(e, a, o.get("blurScope")), t.isGeo && Aa(e, r, n), a } function BM(t) { function e(e, n) { n.update = "geo:updateSelectStatus", t.registerAction(n, function (t, n) { var i = {}, r = []; return n.eachComponent({mainType: "geo", query: t}, function (n) { n[e](t.name); var o = n.coordinateSystem; y(o.regions, function (t) { i[t.name] = n.isSelected(t.name) || !1 }); var a = []; y(i, function (t, e) { i[e] && a.push(e) }), r.push({geoIndex: n.componentIndex, name: a}) }), {selected: i, allSelected: r, name: t.name} }) } t.registerCoordinateSystem("geo", dZ), t.registerComponentModel(fZ), t.registerComponentView(bZ), e("toggleSelected", { type: "geoToggleSelect", event: "geoselectchanged" }), e("select", {type: "geoSelect", event: "geoselected"}), e("unSelect", { type: "geoUnSelect", event: "geounselected" }), t.registerAction({type: "geoRoam", event: "geoRoam", update: "updateTransform"}, function (t, e) { var n = t.componentType || "series"; e.eachComponent({mainType: n, query: t}, function (e) { var i = e.coordinateSystem; if ("geo" === i.type) { var r = Yv(i, t, e.get("scaleLimit")); e.setCenter && e.setCenter(r.center), e.setZoom && e.setZoom(r.zoom), "series" === n && y(e.seriesGroup, function (t) { t.setCenter(r.center), t.setZoom(r.zoom) }) } }) }) } function VM(t, e) { e = e || {}; var n = t.coordinateSystem, i = t.axis, r = {}, o = i.position, a = i.orient, s = n.getRect(), l = [s.x, s.x + s.width, s.y, s.y + s.height], u = {horizontal: {top: l[2], bottom: l[3]}, vertical: {left: l[0], right: l[1]}}; r.position = ["vertical" === a ? u.vertical[o] : l[0], "horizontal" === a ? u.horizontal[o] : l[3]]; var h = {horizontal: 0, vertical: 1}; r.rotation = Math.PI / 2 * h[a]; var c = {top: -1, bottom: 1, right: 1, left: -1}; r.labelDirection = r.tickDirection = r.nameDirection = c[o], t.get(["axisTick", "inside"]) && (r.tickDirection = -r.tickDirection), N(e.labelInside, t.get(["axisLabel", "inside"])) && (r.labelDirection = -r.labelDirection); var p = e.rotate; return null == p && (p = t.get(["axisLabel", "rotate"])), r.labelRotation = "top" === o ? -p : p, r.z2 = 1, r } function FM(t) { var e = t.seriesModel, n = t.singleAxisModel; return n && n.coordinateSystem || e && e.coordinateSystem } function GM(t, e) { var n = []; return t.eachComponent("singleAxis", function (i, r) { var o = new AZ(i, t, e); o.name = "single_" + r, o.resize(i, e), i.coordinateSystem = o, n.push(o) }), t.eachSeries(function (t) { if ("singleAxis" === t.get("coordinateSystem")) { var e = t.getReferringComponents("singleAxis", wL).models[0]; t.coordinateSystem = e && e.coordinateSystem } }), n } function HM(t) { return t.isHorizontal() ? 0 : 1 } function WM(t, e) { var n = t.getRect(); return [n[LZ[e]], n[LZ[e]] + n[kZ[e]]] } function XM(t) { df(fM), fG.registerAxisPointerClass("SingleAxisPointer", PZ), t.registerComponentView(RZ), t.registerComponentView(MZ), t.registerComponentModel(TZ), Zg(t, "single", TZ, TZ.defaultOption), t.registerCoordinateSystem("single", DZ) } function YM(t, e) { var n, i = t.cellSize; n = M(i) ? i : t.cellSize = [i, i], 1 === n.length && (n[1] = n[0]); var r = v([0, 1], function (t) { return Ol(e, t) && (n[t] = "auto"), null != n[t] && "auto" !== n[t] }); zl(t, e, {type: "box", ignoreSize: r}) } function ZM(t) { var e = t.calendarModel, n = t.seriesModel, i = e ? e.coordinateSystem : n ? n.coordinateSystem : null; return i } function UM(t) { t.registerComponentModel(zZ), t.registerComponentView(BZ), t.registerCoordinateSystem("calendar", FZ) } function jM(t) { t.registerComponentModel(GZ), t.registerComponentView(HZ) } function qM(t, e, n) { var i = e.getBoxLayoutParams(), r = e.get("padding"), o = {width: n.getWidth(), height: n.getHeight()}, a = kl(i, o, r); dR(e.get("orient"), t, e.get("itemGap"), a.width, a.height), Pl(t, i, o, r) } function KM(t, e) { var n = oR(e.get("padding")), i = e.getItemStyle(["color", "opacity"]); return i.fill = e.get("backgroundColor"), t = new Uk({ shape: { x: t.x - n[3], y: t.y - n[0], width: t.width + n[1] + n[3], height: t.height + n[0] + n[2], r: e.get("borderRadius") }, style: i, silent: !0, z2: -1 }) } function $M(t, e, n, i, r, o, a) { for (var s = e.getModel("itemStyle"), l = EO.concat([["decal"]]), u = {}, h = 0; h < l.length; ++h) { var c = l[h][l[h].length - 1], p = l[h][0], d = s.getShallow(c); if ("inherit" === d) switch (p) { case"fill": u.fill = r[o]; break; case"stroke": u.stroke = r[0 === t.lastIndexOf("empty", 0) ? "fill" : "stroke"]; break; case"opacity": u.opacity = ("fill" === o ? r : i).opacity; break; default: u[p] = r[p] } else "auto" === d && "lineWidth" === p ? u.lineWidth = r.lineWidth > 0 ? 2 : 0 : u[p] = d } for (var f = e.getModel("lineStyle"), g = OO.concat([["inactiveColor"], ["inactiveWidth"]]), y = {}, h = 0; h < g.length; ++h) { var c = g[h][1], p = g[h][0], d = f.getShallow(c); "inherit" === d ? y[p] = i[p] : "auto" === d && "lineWidth" === p ? y.lineWidth = i.lineWidth > 0 ? 2 : 0 : y[p] = d } if ("auto" === u.fill && (u.fill = r.fill), "auto" === u.stroke && (u.stroke = r.fill), "auto" === y.stroke && (y.stroke = r.fill), !a) { var v = e.get("inactiveBorderWidth"), m = u[t.indexOf("empty") > -1 ? "fill" : "stroke"]; u.lineWidth = "auto" === v ? r.lineWidth > 0 && m ? 2 : 0 : u.lineWidth, u.fill = e.get("inactiveColor"), u.stroke = e.get("inactiveBorderColor"), y.stroke = n.get("inactiveColor"), y.lineWidth = n.get("inactiveWidth") } return {itemStyle: u, lineStyle: y} } function JM(t) { var e = t.icon || "roundRect", n = Sc(e, 0, 0, t.itemWidth, t.itemHeight, t.itemStyle.fill); return n.setStyle(t.itemStyle), n.rotation = (t.iconRotate || 0) * Math.PI / 180, n.setOrigin([t.itemWidth / 2, t.itemHeight / 2]), e.indexOf("empty") > -1 && (n.style.stroke = n.style.fill, n.style.fill = "#fff", n.style.lineWidth = 2), n } function QM(t, e, n, i) { nI(t, e, n, i), n.dispatchAction({type: "legendToggleSelect", name: null != t ? t : e}), eI(t, e, n, i) } function tI(t) { for (var e, n = t.getZr().storage.getDisplayList(), i = 0, r = n.length; r > i && !(e = n[i].states.emphasis);) i++; return e && e.hoverLayer } function eI(t, e, n, i) { tI(n) || n.dispatchAction({type: "highlight", seriesName: t, name: e, excludeSeriesId: i}) } function nI(t, e, n, i) { tI(n) || n.dispatchAction({type: "downplay", seriesName: t, name: e, excludeSeriesId: i}) } function iI(t) { var e = t.findComponents({mainType: "legend"}); e && e.length && t.filterSeries(function (t) { for (var n = 0; n < e.length; n++) if (!e[n].isSelected(t.name)) return !1; return !0 }) } function rI(t, e, n) { var i, r = {}, o = "toggleSelected" === t; return n.eachComponent("legend", function (n) { o && null != i ? n[i ? "select" : "unSelect"](e.name) : "allSelect" === t || "inverseSelect" === t ? n[t]() : (n[t](e.name), i = n.isSelected(e.name)); var a = n.getData(); y(a, function (t) { var e = t.get("name"); if ("\n" !== e && "" !== e) { var i = n.isSelected(e); r[e] = r.hasOwnProperty(e) ? r[e] && i : i } }) }), "allSelect" === t || "inverseSelect" === t ? {selected: r} : {name: e.name, selected: r} } function oI(t) { t.registerAction("legendToggleSelect", "legendselectchanged", S(rI, "toggleSelected")), t.registerAction("legendAllSelect", "legendselectall", S(rI, "allSelect")), t.registerAction("legendInverseSelect", "legendinverseselect", S(rI, "inverseSelect")), t.registerAction("legendSelect", "legendselected", S(rI, "select")), t.registerAction("legendUnSelect", "legendunselected", S(rI, "unSelect")) } function aI(t) { t.registerComponentModel(XZ), t.registerComponentView(jZ), t.registerProcessor(t.PRIORITY.PROCESSOR.SERIES_FILTER, iI), t.registerSubTypeDefaulter("legend", function () { return "plain" }), oI(t) } function sI(t, e, n) { var i = t.getOrient(), r = [1, 1]; r[i.index] = 0, zl(e, n, {type: "box", ignoreSize: !!r}) } function lI(t) { t.registerAction("legendScroll", "legendscroll", function (t, e) { var n = t.scrollDataIndex; null != n && e.eachComponent({mainType: "legend", subType: "scroll", query: t}, function (t) { t.setScrollDataIndex(n) }) }) } function uI(t) { df(aI), t.registerComponentModel(qZ), t.registerComponentView(QZ), lI(t) } function hI(t) { var e = t.get("confine"); return null != e ? !!e : "richText" === t.get("renderMode") } function cI(t) { if (oA.domSupported) for (var e = document.documentElement.style, n = 0, i = t.length; i > n; n++) if (t[n] in e) return t[n] } function pI(t, e) { if (!t) return e; e = xl(e, !0); var n = t.indexOf(e); return t = -1 === n ? e : "-" + t.slice(0, n) + "-" + e, t.toLowerCase() } function dI(t, e) { var n = t.currentStyle || document.defaultView && document.defaultView.getComputedStyle(t); return n ? e ? n[e] : n : null } function fI(t) { return t = "left" === t ? "right" : "right" === t ? "left" : "top" === t ? "bottom" : "top" } function gI(t, e, n) { if (!T(n) || "inside" === n) return ""; e = Cl(e); var i = fI(n), r = i + ":-6px;", o = rU + ":"; p(["left", "right"], i) > -1 ? (r += "top:50%", o += "translateY(-50%) rotate(" + ("left" === i ? -225 : -45) + "deg)") : (r += "left:50%", o += "translateX(-50%) rotate(" + ("top" === i ? 225 : 45) + "deg)"); var a = e + " solid 1px;", s = ["position:absolute;width:10px;height:10px;", r + ";" + o + ";", "border-bottom:" + a, "border-right:" + a, "background-color:" + t + ";", "box-shadow:8px 8px 16px -3px #000;"]; return '
' } function yI(t, e) { var n = "cubic-bezier(0.23,1,0.32,1)", i = " " + t / 2 + "s " + n, r = "opacity" + i + ",visibility" + i; return e || (i = " " + t + "s " + n, r += oA.transformSupported ? "," + rU + i : ",left" + i + ",top" + i), iU + ":" + r } function vI(t, e, n) { var i = t.toFixed(0) + "px", r = e.toFixed(0) + "px"; if (!oA.transformSupported) return n ? "top:" + r + ";left:" + i + ";" : [["top", r], ["left", i]]; var o = oA.transform3dSupported, a = "translate" + (o ? "3d" : "") + "(" + i + "," + r + (o ? ",0" : "") + ")"; return n ? "top:0;left:0;" + rU + ":" + a + ";" : [["top", 0], ["left", 0], [eU, a]] } function mI(t) { var e = [], n = t.get("fontSize"), i = t.getTextColor(); i && e.push("color:" + i), e.push("font:" + t.getFont()), n && e.push("line-height:" + Math.round(3 * n / 2) + "px"); var r = t.get("textShadowColor"), o = t.get("textShadowBlur") || 0, a = t.get("textShadowOffsetX") || 0, s = t.get("textShadowOffsetY") || 0; return r && o && e.push("text-shadow:" + a + "px " + s + "px " + o + "px " + r), y(["decoration", "align"], function (n) { var i = t.get(n); i && e.push("text-" + n + ":" + i) }), e.join(";") } function xI(t, e, n) { var i = [], r = t.get("transitionDuration"), o = t.get("backgroundColor"), a = t.get("shadowBlur"), s = t.get("shadowColor"), l = t.get("shadowOffsetX"), u = t.get("shadowOffsetY"), h = t.getModel("textStyle"), c = gh(t, "html"), p = l + "px " + u + "px " + a + "px " + s; return i.push("box-shadow:" + p), e && r && i.push(yI(r, n)), o && (oA.canvasSupported ? i.push("background-color:" + o) : (i.push("background-color:#" + hn(o)), i.push("filter:alpha(opacity=70)"))), y(["width", "color", "radius"], function (e) { var n = "border-" + e, r = xl(n), o = t.get(r); null != o && i.push(n + ":" + o + ("color" === e ? "" : "px")) }), i.push(mI(h)), null != c && i.push("padding:" + oR(c).join("px ") + "px"), i.join(";") + ";" } function _I(t, e, n, i, r) { var o = e && e.painter; if (n) { var a = o && o.getViewportRoot(); a && _e(t, a, document.body, i, r) } else { t[0] = i, t[1] = r; var s = o && o.getViewportRootOffset(); s && (t[0] += s.offsetLeft, t[1] += s.offsetTop) } t[2] = t[0] / e.getWidth(), t[3] = t[1] / e.getHeight() } function bI(t) { return Math.max(0, t) } function wI(t) { var e = bI(t.shadowBlur || 0), n = bI(t.shadowOffsetX || 0), i = bI(t.shadowOffsetY || 0); return {left: bI(e - n), right: bI(e + n), top: bI(e - i), bottom: bI(e + i)} } function SI(t, e, n, i) { t[0] = n, t[1] = i, t[2] = t[0] / e.getWidth(), t[3] = t[1] / e.getHeight() } function MI(t, e, n) { var i, r = e.ecModel; n ? (i = new VO(n, r, r), i = new VO(e.option, i, r)) : i = e; for (var o = t.length - 1; o >= 0; o--) { var a = t[o]; a && (a instanceof VO && (a = a.get("tooltip", !0)), T(a) && (a = {formatter: a}), a && (i = new VO(a, i, r))) } return i } function II(t, e) { return t.dispatchAction || xA(e.dispatchAction, e) } function TI(t, e, n, i, r, o, a) { var s = n.getOuterSize(), l = s.width, u = s.height; return null != o && (t + l + o + 2 > i ? t -= l + o : t += o), null != a && (e + u + a > r ? e -= u + a : e += a), [t, e] } function CI(t, e, n, i, r) { var o = n.getOuterSize(), a = o.width, s = o.height; return t = Math.min(t + a, i) - a, e = Math.min(e + s, r) - s, t = Math.max(t, 0), e = Math.max(e, 0), [t, e] } function AI(t, e, n) { var i = n[0], r = n[1], o = 10, a = 5, s = 0, l = 0, u = e.width, h = e.height; switch (t) { case"inside": s = e.x + u / 2 - i / 2, l = e.y + h / 2 - r / 2; break; case"top": s = e.x + u / 2 - i / 2, l = e.y - r - o; break; case"bottom": s = e.x + u / 2 - i / 2, l = e.y + h + o; break; case"left": s = e.x - i - o - a, l = e.y + h / 2 - r / 2; break; case"right": s = e.x + u + o + a, l = e.y + h / 2 - r / 2 } return [s, l] } function DI(t) { return "center" === t || "middle" === t } function LI(t, e, n) { var i = cr(t).queryOptionMap, r = i.keys()[0]; if (r && "series" !== r) { var o = pr(e, r, i.get(r), {useDefault: !1, enableAll: !1, enableNone: !1}), a = o.models[0]; if (a) { var s, l = n.getViewOfComponentModel(a); return l.group.traverse(function (e) { var n = tP(e).tooltipConfig; return n && n.name === t.name ? (s = e, !0) : void 0 }), s ? {componentMainType: r, componentIndex: a.componentIndex, el: s} : void 0 } } } function kI(t) { df(fM), t.registerComponentModel(tU), t.registerComponentView(pU), t.registerAction({ type: "showTip", event: "showTip", update: "tooltip:manuallyShowTip" }, function () { }), t.registerAction({type: "hideTip", event: "hideTip", update: "tooltip:manuallyHideTip"}, function () { }) } function PI(t, e) { if (!t) return !1; for (var n = M(t) ? t : [t], i = 0; i < n.length; i++) if (n[i] && n[i][e]) return !0; return !1 } function OI(t) { Wi(t, "label", ["show"]) } function RI(t) { return !(isNaN(parseFloat(t.x)) && isNaN(parseFloat(t.y))) } function zI(t) { return !isNaN(parseFloat(t.x)) && !isNaN(parseFloat(t.y)) } function EI(t, e, n, i, r, o) { var a = [], s = dd(e, i), l = s ? e.getCalculationInfo("stackResultDimension") : i, u = HI(e, l, t), h = e.indicesOfNearest(l, u)[0]; a[r] = e.get(n, h), a[o] = e.get(l, h); var c = e.get(i, h), p = Si(e.get(i, h)); return p = Math.min(p, 20), p >= 0 && (a[o] = +a[o].toFixed(p)), [a, c] } function NI(t, e) { var n = t.getData(), i = t.coordinateSystem; if (e && !zI(e) && !M(e.coord) && i) { var r = i.dimensions, o = BI(e, n, i, t); if (e = s(e), e.type && yU[e.type] && o.baseAxis && o.valueAxis) { var a = p(r, o.baseAxis.dim), l = p(r, o.valueAxis.dim), u = yU[e.type](n, o.baseDataDim, o.valueDataDim, a, l); e.coord = u[0], e.value = u[1] } else { for (var h = [null != e.xAxis ? e.xAxis : e.radiusAxis, null != e.yAxis ? e.yAxis : e.angleAxis], c = 0; 2 > c; c++) yU[h[c]] && (h[c] = HI(n, n.mapDimension(r[c]), h[c])); e.coord = h } } return e } function BI(t, e, n, i) { var r = {}; return null != t.valueIndex || null != t.valueDim ? (r.valueDataDim = null != t.valueIndex ? e.getDimension(t.valueIndex) : t.valueDim, r.valueAxis = n.getAxis(VI(i, r.valueDataDim)), r.baseAxis = n.getOtherAxis(r.valueAxis), r.baseDataDim = e.mapDimension(r.baseAxis.dim)) : (r.baseAxis = i.getBaseAxis(), r.valueAxis = n.getOtherAxis(r.baseAxis), r.baseDataDim = e.mapDimension(r.baseAxis.dim), r.valueDataDim = e.mapDimension(r.valueAxis.dim)), r } function VI(t, e) { var n = t.getData(), i = n.dimensions; e = n.getDimension(e); for (var r = 0; r < i.length; r++) { var o = n.getDimensionInfo(i[r]); if (o.name === e) return o.coordDim } } function FI(t, e) { return t && t.containData && e.coord && !RI(e) ? t.containData(e.coord) : !0 } function GI(t, e, n, i) { return 2 > i ? t.coord && t.coord[i] : t.value } function HI(t, e, n) { if ("average" === n) { var i = 0, r = 0; return t.each(e, function (t) { isNaN(t) || (i += t, r++) }), i / r } return "median" === n ? t.getMedian(e) : t.getDataExtent(e)["max" === n ? 1 : 0] } function WI(t, e, n) { var i = e.coordinateSystem; t.each(function (r) { var o, a = t.getItemModel(r), s = _i(a.get("x"), n.getWidth()), l = _i(a.get("y"), n.getHeight()); if (isNaN(s) || isNaN(l)) { if (e.getMarkerPosition) o = e.getMarkerPosition(t.getValues(t.dimensions, r)); else if (i) { var u = t.get(i.dimensions[0], r), h = t.get(i.dimensions[1], r); o = i.dataToPoint([u, h]) } } else o = [s, l]; isNaN(s) || (o[0] = s), isNaN(l) || (o[1] = l), t.setItemLayout(r, o) }) } function XI(t, e, n) { var i; i = t ? v(t && t.dimensions, function (t) { var n = e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {}; return c({name: t}, n) }) : [{name: "value", type: "float"}]; var r = new fV(i, n), o = v(n.get("data"), S(NI, e)); return t && (o = x(o, S(FI, t))), r.initData(o, null, t ? GI : function (t) { return t.value }), r } function YI(t) { t.registerComponentModel(gU), t.registerComponentView(xU), t.registerPreprocessor(function (t) { PI(t.series, "markPoint") && (t.markPoint = t.markPoint || {}) }) } function ZI(t) { return !isNaN(t) && !isFinite(t) } function UI(t, e, n, i) { var r = 1 - t, o = i.dimensions[t]; return ZI(e[r]) && ZI(n[r]) && e[t] === n[t] && i.getAxis(o).containData(e[t]) } function jI(t, e) { if ("cartesian2d" === t.type) { var n = e[0].coord, i = e[1].coord; if (n && i && (UI(1, n, i, t) || UI(0, n, i, t))) return !0 } return FI(t, e[0]) && FI(t, e[1]) } function qI(t, e, n, i, r) { var o, a = i.coordinateSystem, s = t.getItemModel(e), l = _i(s.get("x"), r.getWidth()), u = _i(s.get("y"), r.getHeight()); if (isNaN(l) || isNaN(u)) { if (i.getMarkerPosition) o = i.getMarkerPosition(t.getValues(t.dimensions, e)); else { var h = a.dimensions, c = t.get(h[0], e), p = t.get(h[1], e); o = a.dataToPoint([c, p]) } if (Yf(a, "cartesian2d")) { var d = a.getAxis("x"), f = a.getAxis("y"), h = a.dimensions; ZI(t.get(h[0], e)) ? o[0] = d.toGlobalCoord(d.getExtent()[n ? 0 : 1]) : ZI(t.get(h[1], e)) && (o[1] = f.toGlobalCoord(f.getExtent()[n ? 0 : 1])) } isNaN(l) || (o[0] = l), isNaN(u) || (o[1] = u) } else o = [l, u]; t.setItemLayout(e, o) } function KI(t, e, n) { var i; i = t ? v(t && t.dimensions, function (t) { var n = e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {}; return c({name: t}, n) }) : [{name: "value", type: "float"}]; var r = new fV(i, n), o = new fV(i, n), a = new fV([], n), s = v(n.get("data"), S(wU, e, t, n)); t && (s = x(s, S(jI, t))); var l = t ? GI : function (t) { return t.value }; return r.initData(v(s, function (t) { return t[0] }), null, l), o.initData(v(s, function (t) { return t[1] }), null, l), a.initData(v(s, function (t) { return t[2] })), a.hasItemOption = !0, {from: r, to: o, line: a} } function $I(t) { t.registerComponentModel(_U), t.registerComponentView(SU), t.registerPreprocessor(function (t) { PI(t.series, "markLine") && (t.markLine = t.markLine || {}) }) } function JI(t) { return !isNaN(t) && !isFinite(t) } function QI(t, e, n) { var i = 1 - t; return JI(e[i]) && JI(n[i]) } function tT(t, e) { var n = e.coord[0], i = e.coord[1]; return Yf(t, "cartesian2d") && n && i && (QI(1, n, i, t) || QI(0, n, i, t)) ? !0 : FI(t, { coord: n, x: e.x0, y: e.y0 }) || FI(t, {coord: i, x: e.x1, y: e.y1}) } function eT(t, e, n, i, r) { var o, a = i.coordinateSystem, s = t.getItemModel(e), l = _i(s.get(n[0]), r.getWidth()), u = _i(s.get(n[1]), r.getHeight()); if (isNaN(l) || isNaN(u)) { if (i.getMarkerPosition) o = i.getMarkerPosition(t.getValues(n, e)); else { var h = t.get(n[0], e), c = t.get(n[1], e), p = [h, c]; a.clampData && a.clampData(p, p), o = a.dataToPoint(p, !0) } if (Yf(a, "cartesian2d")) { var d = a.getAxis("x"), f = a.getAxis("y"), h = t.get(n[0], e), c = t.get(n[1], e); JI(h) ? o[0] = d.toGlobalCoord(d.getExtent()["x0" === n[0] ? 0 : 1]) : JI(c) && (o[1] = f.toGlobalCoord(f.getExtent()["y0" === n[1] ? 0 : 1])) } isNaN(l) || (o[0] = l), isNaN(u) || (o[1] = u) } else o = [l, u]; return o } function nT(t, e, n) { var i, r, o = ["x0", "y0", "x1", "y1"]; t ? (i = v(t && t.dimensions, function (t) { var n = e.getData(), i = n.getDimensionInfo(n.mapDimension(t)) || {}; return c({name: t}, i) }), r = new fV(v(o, function (t, e) { return {name: t, type: i[e % 2].type} }), n)) : (i = [{name: "value", type: "float"}], r = new fV(i, n)); var a = v(n.get("data"), S(TU, e, t, n)); t && (a = x(a, S(tT, t))); var s = t ? function (t, e, n, i) { return t.coord[Math.floor(i / 2)][i % 2] } : function (t) { return t.value }; return r.initData(a, null, s), r.hasItemOption = !0, r } function iT(t) { t.registerComponentModel(MU), t.registerComponentView(AU), t.registerPreprocessor(function (t) { PI(t.series, "markArea") && (t.markArea = t.markArea || {}) }) } function rT(t, e) { if (e = e || t.get("type")) switch (e) { case"category": return new _V({ordinalMeta: t.getCategories(), extent: [1 / 0, -1 / 0]}); case"time": return new AV({locale: t.ecModel.getLocaleModel(), useUTC: t.ecModel.get("useUTC")}); default: return new wV } } function oT(t, e) { return kl(t.getBoxLayoutParams(), {width: e.getWidth(), height: e.getHeight()}, t.get("padding")) } function aT(t, e, n, i) { var r = i.style, o = Ss(t.get(["controlStyle", e]), i || {}, new $D(n[0], n[1], n[2], n[3])); return r && o.setStyle(r), o } function sT(t, e, n, i, r, o) { var a = e.get("color"); if (r) r.setColor(a), n.add(r), o && o.onUpdate(r); else { var s = t.get("symbol"); r = Sc(s, -1, -1, 2, 2, a), r.setStyle("strokeNoScale", !0), n.add(r), o && o.onCreate(r) } var u = e.getItemStyle(["color"]); r.setStyle(u), i = l({rectHover: !0, z2: 100}, i, !0); var h = t.get("symbolSize"); h = h instanceof Array ? h.slice() : [+h, +h], i.scaleX = h[0] / 2, i.scaleY = h[1] / 2; var c = t.get("symbolOffset"); c && (i.x = i.x || 0, i.y = i.y || 0, i.x += _i(c[0], h[0]), i.y += _i(c[1], h[1])); var p = t.get("symbolRotate"); return i.rotation = (p || 0) * Math.PI / 180 || 0, r.attr(i), r.updateTransform(), r } function lT(t, e, n, i, r, o) { if (!t.dragging) { var a = r.getModel("checkpointStyle"), s = i.dataToCoord(r.getData().get("value", n)); if (o || !a.get("animation", !0)) t.attr({x: s, y: 0}), e && e.attr({shape: {x2: s}}); else { var l = {duration: a.get("animationDuration", !0), easing: a.get("animationEasing", !0)}; t.stopAnimation(null, !0), t.animateTo({x: s, y: 0}, l), e && e.animateTo({shape: {x2: s}}, l) } } } function uT(t) { t.registerAction({ type: "timelineChange", event: "timelineChanged", update: "prepareAndUpdate" }, function (t, e) { var n = e.getComponent("timeline"); return n && null != t.currentIndex && (n.setCurrentIndex(t.currentIndex), !n.get("loop", !0) && n.isIndexMax() && n.setPlayState(!1)), e.resetOption("timeline", {replaceMerge: n.get("replaceMerge", !0)}), c({currentIndex: n.option.currentIndex}, t) }), t.registerAction({ type: "timelinePlayChange", event: "timelinePlayChanged", update: "update" }, function (t, e) { var n = e.getComponent("timeline"); n && null != t.playState && n.setPlayState(t.playState) }) } function hT(t) { var e = t && t.timeline; M(e) || (e = e ? [e] : []), y(e, function (t) { t && cT(t) }) } function cT(t) { var e = t.type, n = {number: "value", time: "time"}; if (n[e] && (t.axisType = n[e], delete t.type), pT(t), dT(t, "controlPosition")) { var i = t.controlStyle || (t.controlStyle = {}); dT(i, "position") || (i.position = t.controlPosition), "none" !== i.position || dT(i, "show") || (i.show = !1, delete i.position), delete t.controlPosition } y(t.data || [], function (t) { D(t) && !M(t) && (!dT(t, "value") && dT(t, "name") && (t.value = t.name), pT(t)) }) } function pT(t) { var e = t.itemStyle || (t.itemStyle = {}), n = e.emphasis || (e.emphasis = {}), i = t.label || t.label || {}, r = i.normal || (i.normal = {}), o = {normal: 1, emphasis: 1}; y(i, function (t, e) { o[e] || dT(r, e) || (r[e] = t) }), n.label && !dT(i, "emphasis") && (i.emphasis = n.label, delete n.label) } function dT(t, e) { return t.hasOwnProperty(e) } function fT(t) { t.registerComponentModel(LU), t.registerComponentView(zU), t.registerSubTypeDefaulter("timeline", function () { return "slider" }), uT(t), t.registerPreprocessor(hT) } function gT(t) { var e = t.get("coordinateSystem"); return p(NU, e) >= 0 } function yT(t) { return t + "Axis" } function vT(t, e) { function n(t) { !l.get(t.uid) && r(t) && (i(t), u = !0) } function i(t) { l.set(t.uid, !0), s.push(t), o(t) } function r(t) { var e = !1; return t.eachTargetAxis(function (t, n) { var i = a.get(t); i && i[n] && (e = !0) }), e } function o(t) { t.eachTargetAxis(function (t, e) { (a.get(t) || a.set(t, []))[e] = !0 }) } var a = Z(), s = [], l = Z(); t.eachComponent({mainType: "dataZoom", query: e}, function (t) { l.get(t.uid) || i(t) }); var u; do u = !1, t.eachComponent("dataZoom", n); while (u); return s } function mT(t) { var e = t.ecModel, n = {infoList: [], infoMap: Z()}; return t.eachTargetAxis(function (t, i) { var r = e.getComponent(yT(t), i); if (r) { var o = r.getCoordSysModel(); if (o) { var a = o.uid, s = n.infoMap.get(a); s || (s = {model: o, axisModels: []}, n.infoList.push(s), n.infoMap.set(a, s)), s.axisModels.push(r) } } }), n } function xT(t) { var e = {}; return y(["start", "end", "startValue", "endValue", "throttle"], function (n) { t.hasOwnProperty(n) && (e[n] = t[n]) }), e } function _T(t, e, n) { HU(t).coordSysRecordMap.each(function (t) { var i = t.dataZoomInfoMap.get(e.uid); i && (i.getRange = n) }) } function bT(t, e) { for (var n = HU(t).coordSysRecordMap, i = n.keys(), r = 0; r < i.length; r++) { var o = i[r], a = n.get(o), s = a.dataZoomInfoMap; if (s) { var l = e.uid, u = s.get(l); u && (s.removeKey(l), s.keys().length || wT(n, a)) } } } function wT(t, e) { if (e) { t.removeKey(e.model.uid); var n = e.controller; n && n.dispose() } } function ST(t, e) { var n = {model: e, containsPoint: S(IT, e), dispatchAction: S(MT, t), dataZoomInfoMap: null, controller: null}, i = n.controller = new rH(t.getZr()); return y(["pan", "zoom", "scrollMove"], function (t) { i.on(t, function (e) { var i = []; n.dataZoomInfoMap.each(function (r) { if (e.isAvailableBehavior(r.model.option)) { var o = (r.getRange || {})[t], a = o && o(r.dzReferCoordSysInfo, n.model.mainType, n.controller, e); !r.model.get("disabled", !0) && a && i.push({dataZoomId: r.model.id, start: a[0], end: a[1]}) } }), i.length && n.dispatchAction(i) }) }), n } function MT(t, e) { t.dispatchAction({type: "dataZoom", animation: {easing: "cubicOut", duration: 100}, batch: e}) } function IT(t, e, n, i) { return t.coordinateSystem.containPoint([n, i]) } function TT(t) { var e, n = "type_", i = {type_true: 2, type_move: 1, type_false: 0, type_undefined: -1}, r = !0; return t.each(function (t) { var o = t.model, a = o.get("disabled", !0) ? !1 : o.get("zoomLock", !0) ? "move" : !0; i[n + a] > i[n + e] && (e = a), r = r && o.get("preventDefaultMouseMove", !0) }), { controlType: e, opt: {zoomOnMouseWheel: !0, moveOnMouseMove: !0, moveOnMouseWheel: !0, preventDefaultMouseMove: !!r} } } function CT(t) { t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER, function (t, e) { var n = HU(e), i = n.coordSysRecordMap || (n.coordSysRecordMap = Z()); i.each(function (t) { t.dataZoomInfoMap = null }), t.eachComponent({mainType: "dataZoom", subType: "inside"}, function (t) { var n = mT(t); y(n.infoList, function (n) { var r = n.model.uid, o = i.get(r) || i.set(r, ST(e, n.model)), a = o.dataZoomInfoMap || (o.dataZoomInfoMap = Z()); a.set(t.uid, {dzReferCoordSysInfo: n, model: t, getRange: null}) }) }), i.each(function (t) { var e, n = t.controller, r = t.dataZoomInfoMap; if (r) { var o = r.keys()[0]; null != o && (e = r.get(o)) } if (!e) return void wT(i, t); var a = TT(r); n.enable(a.controlType, a.opt), n.setPointerChecker(t.containsPoint), Oh(t, "dispatchAction", e.model.get("throttle", !0), "fixRate") }) }) } function AT(t) { return function (e, n, i, r) { var o = this.range, a = o.slice(), s = e.axisModels[0]; if (s) { var l = t(a, s, e, n, i, r); return qx(l, a, [0, 100], "all"), this.range = a, o[0] !== a[0] || o[1] !== a[1] ? a : void 0 } } } function DT(t, e, n) { var i = [1 / 0, -1 / 0]; ZU(n, function (t) { lf(i, t.getData(), e) }); var r = t.getAxisModel(), o = Ud(r.axis.scale, r, i).calculate(); return [o.min, o.max] } function LT(t) { t.registerAction("dataZoom", function (t, e) { var n = vT(e, t); y(n, function (e) { e.setRawRange({start: t.start, end: t.end, startValue: t.startValue, endValue: t.endValue}) }) }) } function kT(t) { KU || (KU = !0, t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER, qU), LT(t), t.registerSubTypeDefaulter("dataZoom", function () { return "slider" })) } function PT(t) { kT(t), t.registerComponentModel(FU), t.registerComponentView(WU), CT(t) } function OT(t) { var e = {x: "y", y: "x", radius: "angle", angle: "radius"}; return e[t] } function RT(t) { return "vertical" === t ? "ns-resize" : "ew-resize" } function zT(t) { t.registerComponentModel($U), t.registerComponentView(lj), kT(t) } function ET() { df(PT), df(zT) } function NT(t, e) { var n = Hi(t ? t.brush : []); if (n.length) { var i = []; y(n, function (t) { var e = t.hasOwnProperty("toolbox") ? t.toolbox : []; e instanceof Array && (i = i.concat(e)) }); var r = t && t.toolbox; M(r) && (r = r[0]), r || (r = {feature: {}}, t.toolbox = [r]); var o = r.feature || (r.feature = {}), a = o.brush || (o.brush = {}), s = a.type || (a.type = []); s.push.apply(s, i), BT(s), e && !s.length && s.push.apply(s, uj) } } function BT(t) { var e = {}; y(t, function (t) { e[t] = 1 }), t.length = 0, y(e, function (e, n) { t.push(n) }) } function VT(t) { if (t) for (var e in t) if (t.hasOwnProperty(e)) return !0 } function FT(t, e, n) { function i() { var t = function () { }; t.prototype.__hidden = t.prototype; var e = new t; return e } var r = {}; return hj(e, function (e) { var o = r[e] = i(); hj(t[e], function (t, i) { if (EH.isValidType(i)) { var r = {type: i, visual: t}; n && n(r, e), o[i] = new EH(r), "opacity" === i && (r = s(r), r.type = "colorAlpha", o.__hidden.__alphaForOpacity = new EH(r)) } }) }), r } function GT(t, e, n) { var i; y(n, function (t) { e.hasOwnProperty(t) && VT(e[t]) && (i = !0) }), i && y(n, function (n) { e.hasOwnProperty(n) && VT(e[n]) ? t[n] = s(e[n]) : delete t[n] }) } function HT(t, e, n, i, r, o) { function a(t) { return jh(n, h, t) } function s(t, e) { Kh(n, h, t, e) } function l(t, l) { h = null == o ? t : l; var c = n.getRawDataItem(h); if (!c || c.visualMap !== !1) for (var p = i.call(r, t), d = e[p], f = u[p], g = 0, y = f.length; y > g; g++) { var v = f[g]; d[v] && d[v].applyVisual(t, a, s) } } var u = {}; y(t, function (t) { var n = EH.prepareVisualTypes(e[t]); u[t] = n }); var h; null == o ? n.each(l) : n.each([o], l) } function WT(t, e, n, i) { var r = {}; return y(t, function (t) { var n = EH.prepareVisualTypes(e[t]); r[t] = n }), { progress: function (t, o) { function a(t) { return jh(o, u, t) } function s(t, e) { Kh(o, u, t, e) } var l; null != i && (l = o.getDimension(i)); for (var u; null != (u = t.next());) { var h = o.getRawDataItem(u); if (!h || h.visualMap !== !1) for (var c = null != i ? o.get(l, u) : u, p = n(c), d = e[p], f = r[p], g = 0, y = f.length; y > g; g++) { var v = f[g]; d[v] && d[v].applyVisual(c, a, s) } } } } } function XT(t) { var e = t.brushType, n = { point: function (i) { return cj[e].point(i, n, t) }, rect: function (i) { return cj[e].rect(i, n, t) } }; return n } function YT(t) { var e = ["x", "y"], n = ["width", "height"]; return { point: function (e, n, i) { if (e) { var r = i.range, o = e[t]; return ZT(o, r) } }, rect: function (i, r, o) { if (i) { var a = o.range, s = [i[e[t]], i[e[t]] + i[n[t]]]; return s[1] < s[0] && s.reverse(), ZT(s[0], a) || ZT(s[1], a) || ZT(a[0], s) || ZT(a[1], s) } } } } function ZT(t, e) { return e[0] <= t && t <= e[1] } function UT(t) { return t[0] > t[1] && t.reverse(), t } function jT(t, e) { return hr(t, e, {includeMainTypes: pj}) } function qT(t, e, n, i) { var r = n.getAxis(["x", "y"][t]), o = UT(v([0, 1], function (t) { return e ? r.coordToData(r.toLocalCoord(i[t]), !0) : r.toGlobalCoord(r.dataToCoord(i[t])) })), a = []; return a[t] = o, a[1 - t] = [0 / 0, 0 / 0], {values: o, xyMinMax: a} } function KT(t, e, n, i) { return [e[0] - i[t] * n[0], e[1] - i[t] * n[1]] } function $T(t, e) { var n = JT(t), i = JT(e), r = [n[0] / i[0], n[1] / i[1]]; return isNaN(r[0]) && (r[0] = 1), isNaN(r[1]) && (r[1] = 1), r } function JT(t) { return t ? [t[0][1] - t[0][0], t[1][1] - t[1][0]] : [0 / 0, 0 / 0] } function QT(t) { t.eachComponent({mainType: "brush"}, function (e) { var n = e.brushTargetManager = new dj(e.option, t); n.setInputRanges(e.areas, t) }) } function tC(t, e, n) { var i, r, o = []; t.eachComponent({mainType: "brush"}, function (t) { n && "takeGlobalCursor" === n.type && t.setBrushOption("brush" === n.key ? n.brushOption : {brushType: !1}) }), QT(t), t.eachComponent({mainType: "brush"}, function (e, n) { function a(t) { return "all" === f || !!g[t] } function l(t) { return !!t.length } function u(t, e) { var n = t.coordinateSystem; _ = _ || n.hasAxisBrushed(), a(e) && n.eachActiveState(t.getData(), function (t, e) { "active" === t && (m[e] = 1) }) } function h(n, i, r) { if (n.brushSelector && !rC(e, i) && (y(b, function (i) { e.brushTargetManager.controlSeries(i, n, t) && r.push(i), _ = _ || l(r) }), a(i) && l(r))) { var o = n.getData(); o.each(function (t) { iC(n, r, o, t) && (m[t] = 1) }) } } var p = {brushId: e.id, brushIndex: n, brushName: e.name, areas: s(e.areas), selected: []}; o.push(p); var d = e.option, f = d.brushLink, g = [], m = [], x = [], _ = !1; n || (i = d.throttleType, r = d.throttleDelay); var b = v(e.areas, function (t) { var e = wj[t.brushType], n = c({boundingRect: e ? e(t) : void 0}, t); return n.selectors = XT(n), n }), w = FT(e.option, xj, function (t) { t.mappingMethod = "fixed" }); M(f) && y(f, function (t) { g[t] = 1 }), t.eachSeries(function (t, e) { var n = x[e] = []; "parallel" === t.subType ? u(t, e) : h(t, e, n) }), t.eachSeries(function (t, e) { var n = {seriesId: t.id, seriesIndex: e, seriesName: t.name, dataIndex: []}; p.selected.push(n); var i = x[e], r = t.getData(), o = a(e) ? function (t) { return m[t] ? (n.dataIndex.push(r.getRawIndex(t)), "inBrush") : "outOfBrush" } : function (e) { return iC(t, i, r, e) ? (n.dataIndex.push(r.getRawIndex(e)), "inBrush") : "outOfBrush" }; (a(e) ? _ : l(i)) && HT(xj, w, r, o) }) }), eC(e, i, r, o, n) } function eC(t, e, n, i, r) { if (r) { var o = t.getZr(); if (!o[bj]) { o[_j] || (o[_j] = nC); var a = Oh(o, _j, n, e); a(t, i) } } } function nC(t, e) { if (!t.isDisposed()) { var n = t.getZr(); n[bj] = !0, t.dispatchAction({type: "brushSelect", batch: e}), n[bj] = !1 } } function iC(t, e, n, i) { for (var r = 0, o = e.length; o > r; r++) { var a = e[r]; if (t.brushSelector(i, n, a.selectors, a)) return !0 } } function rC(t, e) { var n = t.option.seriesIndex; return null != n && "all" !== n && (M(n) ? p(n, e) < 0 : e !== n) } function oC(t) { return new $D(t[0][0], t[1][0], t[0][1] - t[0][0], t[1][1] - t[1][0]) } function aC(t, e) { return l({ brushType: t.brushType, brushMode: t.brushMode, transformable: t.transformable, brushStyle: new VO(t.brushStyle).getItemStyle(), removeOnClick: t.removeOnClick, z: t.z }, e, !0) } function sC(t, e) { Cj[t] = e } function lC(t) { return Cj[t] } function uC(t) { t.registerComponentView(Sj), t.registerComponentModel(Ij), t.registerPreprocessor(NT), t.registerVisual(t.PRIORITY.VISUAL.BRUSH, tC), t.registerAction({ type: "brush", event: "brush", update: "updateVisual" }, function (t, e) { e.eachComponent({mainType: "brush", query: t}, function (e) { e.setAreas(t.areas) }) }), t.registerAction({type: "brushSelect", event: "brushSelected", update: "none"}, function () { }), t.registerAction({type: "brushEnd", event: "brushEnd", update: "none"}, function () { }), sC("brush", Dj) } function hC(t, e, n) { if (n[0] === n[1]) return n.slice(); for (var i = 200, r = (n[1] - n[0]) / i, o = n[0], a = [], s = 0; i >= s && o < n[1]; s++) a.push(o), o += r; return a.push(n[1]), a } function cC(t, e, n) { var i = t.option, r = i.align; if (null != r && "auto" !== r) return r; for (var o = { width: e.getWidth(), height: e.getHeight() }, a = "horizontal" === i.orient ? 1 : 0, s = Hj[a], l = [0, null, 10], u = {}, h = 0; 3 > h; h++) u[Hj[1 - a][h]] = l[h], u[s[h]] = 2 === h ? n[0] : i[s[h]]; var c = [["x", "width", 3], ["y", "height", 0]][a], p = kl(u, o, i.padding); return s[(p.margin[c[2]] || 0) + p[c[0]] + .5 * p[c[1]] < .5 * o[c[1]] ? 0 : 1] } function pC(t, e) { return y(t || [], function (t) { null != t.dataIndex && (t.dataIndexInside = t.dataIndex, t.dataIndex = null), t.highlightKey = "visualMap" + (e ? e.componentIndex : "") }), t } function dC(t, e, n, i) { return new KP({ shape: {points: t}, draggable: !!n, cursor: e, drift: n, onmousemove: function (t) { NA(t.event) }, ondragend: i }) } function fC(t, e, n) { var i = Uj / 2, r = t.get("hoverLinkDataSize"); return r && (i = Wj(r, e, n, !0) / 2), i } function gC(t) { var e = t.get("hoverLinkOnHandle"); return !!(null == e ? t.get("realtime") : e) } function yC(t) { return "vertical" === t ? "ns-resize" : "ew-resize" } function vC(t, e, n, i) { function r(t) { return l[t] } function o(t, e) { l[t] = e } for (var a = e.targetVisuals[i], s = EH.prepareVisualTypes(a), l = {color: qh(t.getData(), "color")}, u = 0, h = s.length; h > u; u++) { var c = s[u], p = a["opacity" === c ? "__alphaForOpacity" : c]; p && p.applyVisual(n, r, o) } return l.color } function mC(t) { var e = t && t.visualMap; M(e) || (e = e ? [e] : []), Qj(e, function (t) { if (t) { xC(t, "splitList") && !xC(t, "pieces") && (t.pieces = t.splitList, delete t.splitList); var e = t.pieces; e && M(e) && Qj(e, function (t) { D(t) && (xC(t, "start") && !xC(t, "min") && (t.min = t.start), xC(t, "end") && !xC(t, "max") && (t.max = t.end)) }) } }) } function xC(t, e) { return t && t.hasOwnProperty && t.hasOwnProperty(e) } function _C(t) { tq || (tq = !0, t.registerSubTypeDefaulter("visualMap", function (t) { return t.categories || (t.pieces ? t.pieces.length > 0 : t.splitNumber > 0) && !t.calculable ? "piecewise" : "continuous" }), t.registerAction(Kj, $j), y(Jj, function (e) { t.registerVisual(t.PRIORITY.VISUAL.COMPONENT, e) }), t.registerPreprocessor(mC)) } function bC(t) { t.registerComponentModel(Fj), t.registerComponentView(qj), _C(t) } function wC(t, e) { var n = t.inverse; ("vertical" === t.orient ? !n : n) && e.reverse() } function SC(t) { t.registerComponentModel(eq), t.registerComponentView(iq), _C(t) } function MC() { df(bC), df(SC) } function IC(t) { t.registerComponentModel(rq), t.registerComponentView(oq), kT(t) } function TC(t) { return 0 === t.indexOf("my") } function CC(t) { var e = {}, n = [], i = []; return t.eachRawSeries(function (t) { var r = t.coordinateSystem; if (!r || "cartesian2d" !== r.type && "polar" !== r.type) n.push(t); else { var o = r.getBaseAxis(); if ("category" === o.type) { var a = o.dim + "_" + o.index; e[a] || (e[a] = {categoryAxis: o, valueAxis: r.getOtherAxis(o), series: []}, i.push({ axisDim: o.dim, axisIndex: o.index })), e[a].series.push(t) } else n.push(t) } }), {seriesGroupByCategoryAxis: e, other: n, meta: i} } function AC(t) { var e = []; return y(t, function (t) { var n = t.categoryAxis, i = t.valueAxis, r = i.dim, o = [" "].concat(v(t.series, function (t) { return t.name })), a = [n.model.getCategories()]; y(t.series, function (t) { var e = t.getRawData(); a.push(t.getRawData().mapArray(e.mapDimension(r), function (t) { return t })) }); for (var s = [o.join(fq)], l = 0; l < a[0].length; l++) { for (var u = [], h = 0; h < a.length; h++) u.push(a[h][l]); s.push(u.join(fq)) } e.push(s.join("\n")) }), e.join("\n\n" + dq + "\n\n") } function DC(t) { return v(t, function (t) { var e = t.getRawData(), n = [t.name], i = []; return e.each(e.dimensions, function () { for (var t = arguments.length, r = arguments[t - 1], o = e.getName(r), a = 0; t - 1 > a; a++) i[a] = arguments[a]; n.push((o ? o + fq : "") + i.join(fq)) }), n.join("\n") }).join("\n\n" + dq + "\n\n") } function LC(t) { var e = CC(t); return { value: x([AC(e.seriesGroupByCategoryAxis), DC(e.other)], function (t) { return !!t.replace(/[\n\t\s]/g, "") }).join("\n\n" + dq + "\n\n"), meta: e.meta } } function kC(t) { return t.replace(/^\s\s*/, "").replace(/\s\s*$/, "") } function PC(t) { var e = t.slice(0, t.indexOf("\n")); return e.indexOf(fq) >= 0 ? !0 : void 0 } function OC(t) { for (var e = t.split(/\n+/g), n = kC(e.shift()).split(gq), i = [], r = v(n, function (t) { return {name: t, data: []} }), o = 0; o < e.length; o++) { var a = kC(e[o]).split(gq); i.push(a.shift()); for (var s = 0; s < a.length; s++) r[s] && (r[s].data[o] = a[s]) } return {series: r, categories: i} } function RC(t) { for (var e = t.split(/\n+/g), n = kC(e.shift()), i = [], r = 0; r < e.length; r++) { var o = kC(e[r]); if (o) { var a = o.split(gq), s = "", l = void 0, u = !1; isNaN(a[0]) ? (u = !0, s = a[0], a = a.slice(1), i[r] = { name: s, value: [] }, l = i[r].value) : l = i[r] = []; for (var h = 0; h < a.length; h++) l.push(+a[h]); 1 === l.length && (u ? i[r].value = l[0] : i[r] = l[0]) } } return {name: n, data: i} } function zC(t, e) { var n = t.split(new RegExp("\n*" + dq + "\n*", "g")), i = {series: []}; return y(n, function (t, n) { if (PC(t)) { var r = OC(t), o = e[n], a = o.axisDim + "Axis"; o && (i[a] = i[a] || [], i[a][o.axisIndex] = {data: r.categories}, i.series = i.series.concat(r.series)) } else { var r = RC(t); i.series.push(r) } }), i } function EC(t, e) { return v(t, function (t, n) { var i = e && e[n]; if (D(i) && !M(i)) { var r = D(t) && !M(t); r || (t = {value: t}); var o = null != i.name && null == t.name; return t = c(t, i), o && delete t.name, t } return t }) } function NC(t, e) { var n = GC(t); vq(e, function (e, i) { for (var r = n.length - 1; r >= 0; r--) { var o = n[r]; if (o[i]) break } if (0 > r) { var a = t.queryComponents({mainType: "dataZoom", subType: "select", id: i})[0]; if (a) { var s = a.getPercentRange(); n[0][i] = {dataZoomId: i, start: s[0], end: s[1]} } } }), n.push(e) } function BC(t) { var e = GC(t), n = e[e.length - 1]; e.length > 1 && e.pop(); var i = {}; return vq(n, function (t, n) { for (var r = e.length - 1; r >= 0; r--) if (t = e[r][n]) { i[n] = t; break } }), i } function VC(t) { mq(t).snapshots = null } function FC(t) { return GC(t).length } function GC(t) { var e = mq(t); return e.snapshots || (e.snapshots = [{}]), e.snapshots } function HC(t) { var e = { xAxisIndex: t.get("xAxisIndex", !0), yAxisIndex: t.get("yAxisIndex", !0), xAxisId: t.get("xAxisId", !0), yAxisId: t.get("yAxisId", !0) }; return null == e.xAxisIndex && null == e.xAxisId && (e.xAxisIndex = "all"), null == e.yAxisIndex && null == e.yAxisId && (e.yAxisIndex = "all"), e } function WC(t, e) { t.setIconStatus("back", FC(e) > 1 ? "emphasis" : "normal") } function XC(t, e, n, i, r) { var o = n._isZoomActive; i && "takeGlobalCursor" === i.type && (o = "dataZoomSelect" === i.key ? i.dataZoomSelectActive : !1), n._isZoomActive = o, t.setIconStatus("zoom", o ? "emphasis" : "normal"); var a = new dj(HC(t), e, {include: ["grid"]}), s = a.makePanelOpts(r, function (t) { return t.xAxisDeclared && !t.yAxisDeclared ? "lineX" : !t.xAxisDeclared && t.yAxisDeclared ? "lineY" : "rect" }); n._brushController.setPanels(s).enableBrush(o && s.length ? { brushType: "auto", brushStyle: t.getModel("brushStyle").getItemStyle() } : !1) } function YC(t) { t.registerComponentModel(aq), t.registerComponentView(sq), sC("saveAsImage", lq), sC("magicType", cq), sC("dataView", yq), sC("dataZoom", wq), sC("restore", xq), df(IC) } function ZC(t, e, n, i) { var r = n.type, o = q(Iq, r) ? Iq[r] : es(r), a = new o(n); e.add(a), i.set(t, a), Mq(a).__ecGraphicId = t } function UC(t, e) { var n = t && t.parent; n && ("group" === t.type && t.traverse(function (t) { UC(t, e) }), e.removeKey(Mq(t).__ecGraphicId), n.remove(t)) } function jC(t) { return t = h({}, t), y(["id", "parentId", "$action", "hv", "bounding", "textContent"].concat(cR), function (e) { delete t[e] }), t } function qC(t, e) { var n; return y(e, function (e) { null != t[e] && "auto" !== t[e] && (n = !0) }), n } function KC(t, e) { var n = t.existing; if (e.id = t.keyInfo.id, !e.type && n && (e.type = n.type), null == e.parentId) { var i = e.parentOption; i ? e.parentId = i.id : n && (e.parentId = n.parentId) } e.parentOption = null } function $C(t, e, n) { var i = h({}, n), r = t[e], o = n.$action || "merge"; "merge" === o ? r ? (l(r, i, !0), zl(r, i, {ignoreSize: !0}), Nl(n, r)) : t[e] = i : "replace" === o ? t[e] = i : "remove" === o && r && (t[e] = null) } function JC(t, e) { if (t && (t.hv = e.hv = [qC(e, ["left", "right"]), qC(e, ["top", "bottom"])], "group" === t.type)) { var n = t, i = e; null == n.width && (n.width = i.width = 0), null == n.height && (n.height = i.height = 0) } } function QC(t, e, n) { var i = tP(t).eventData; t.silent || t.ignore || i || (i = tP(t).eventData = { componentType: "graphic", componentIndex: e.componentIndex, name: t.name }), i && (i.info = n.info) } function tA(t) { t.registerComponentModel(Cq), t.registerComponentView(Aq), t.registerPreprocessor(Tq) } var eA = function (t, e) { return (eA = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]) })(t, e) }, nA = function () { return nA = Object.assign || function (t) { for (var e, n = 1, i = arguments.length; i > n; n++) { e = arguments[n]; for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]) } return t }, nA.apply(this, arguments) }, iA = function () { function t() { this.firefox = !1, this.ie = !1, this.edge = !1, this.newEdge = !1, this.weChat = !1 } return t }(), rA = function () { function t() { this.browser = new iA, this.node = !1, this.wxa = !1, this.worker = !1, this.canvasSupported = !1, this.svgSupported = !1, this.touchEventsSupported = !1, this.pointerEventsSupported = !1, this.domSupported = !1, this.transformSupported = !1, this.transform3dSupported = !1 } return t }(), oA = new rA; "object" == typeof wx && "function" == typeof wx.getSystemInfoSync ? (oA.wxa = !0, oA.canvasSupported = !0, oA.touchEventsSupported = !0) : "undefined" == typeof document && "undefined" != typeof self ? (oA.worker = !0, oA.canvasSupported = !0) : "undefined" == typeof navigator ? (oA.node = !0, oA.canvasSupported = !0, oA.svgSupported = !0) : i(navigator.userAgent, oA); var aA = { "[object Function]": !0, "[object RegExp]": !0, "[object Date]": !0, "[object Error]": !0, "[object CanvasGradient]": !0, "[object CanvasPattern]": !0, "[object Image]": !0, "[object Canvas]": !0 }, sA = { "[object Int8Array]": !0, "[object Uint8Array]": !0, "[object Uint8ClampedArray]": !0, "[object Int16Array]": !0, "[object Uint16Array]": !0, "[object Int32Array]": !0, "[object Uint32Array]": !0, "[object Float32Array]": !0, "[object Float64Array]": !0 }, lA = Object.prototype.toString, uA = Array.prototype, hA = uA.forEach, cA = uA.filter, pA = uA.slice, dA = uA.map, fA = function () { }.constructor, gA = fA ? fA.prototype : null, yA = {}, vA = 2311, mA = function () { return yA.createCanvas() }; yA.createCanvas = function () { return document.createElement("canvas") }; var xA = gA && I(gA.bind) ? gA.call.bind(gA.bind) : w, _A = "__ec_primitive__", bA = function () { function t(e) { function n(t, e) { i ? r.set(t, e) : r.set(e, t) } this.data = {}; var i = M(e); this.data = {}; var r = this; e instanceof t ? e.each(n) : e && y(e, n) } return t.prototype.get = function (t) { return this.data.hasOwnProperty(t) ? this.data[t] : null }, t.prototype.set = function (t, e) { return this.data[t] = e }, t.prototype.each = function (t, e) { for (var n in this.data) this.data.hasOwnProperty(n) && t.call(e, this.data[n], n) }, t.prototype.keys = function () { return b(this.data) }, t.prototype.removeKey = function (t) { delete this.data[t] }, t }(), wA = (Object.freeze || Object)({ $override: r, guid: o, logError: a, clone: s, merge: l, mergeAll: u, extend: h, defaults: c, createCanvas: mA, indexOf: p, inherits: d, mixin: f, isArrayLike: g, each: y, map: v, reduce: m, filter: x, find: _, keys: b, bind: xA, curry: S, isArray: M, isFunction: I, isString: T, isStringSafe: C, isNumber: A, isObject: D, isBuiltInObject: L, isTypedArray: k, isDom: P, isGradientObject: O, isImagePatternObject: R, isRegExp: z, eqNaN: E, retrieve: N, retrieve2: B, retrieve3: V, slice: F, normalizeCssArray: G, assert: H, trim: W, setAsPrimitive: X, isPrimitive: Y, HashMap: bA, createHashMap: Z, concatArray: U, createObject: j, hasOwn: q, noop: K }), SA = re, MA = oe, IA = ce, TA = pe, CA = (Object.freeze || Object)({ create: $, copy: J, clone: Q, set: te, add: ee, scaleAndAdd: ne, sub: ie, len: re, length: SA, lenSquare: oe, lengthSquare: MA, mul: ae, div: se, dot: le, scale: ue, normalize: he, distance: ce, dist: IA, distanceSquare: pe, distSquare: TA, negate: de, lerp: fe, applyTransform: ge, min: ye, max: ve }), AA = function () { function t(t, e) { this.target = t, this.topTarget = e && e.topTarget } return t }(), DA = function () { function t(t) { this.handler = t, t.on("mousedown", this._dragStart, this), t.on("mousemove", this._drag, this), t.on("mouseup", this._dragEnd, this) } return t.prototype._dragStart = function (t) { for (var e = t.target; e && !e.draggable;) e = e.parent; e && (this._draggingTarget = e, e.dragging = !0, this._x = t.offsetX, this._y = t.offsetY, this.handler.dispatchToElement(new AA(e, t), "dragstart", t.event)) }, t.prototype._drag = function (t) { var e = this._draggingTarget; if (e) { var n = t.offsetX, i = t.offsetY, r = n - this._x, o = i - this._y; this._x = n, this._y = i, e.drift(r, o, t), this.handler.dispatchToElement(new AA(e, t), "drag", t.event); var a = this.handler.findHover(n, i, e).target, s = this._dropTarget; this._dropTarget = a, e !== a && (s && a !== s && this.handler.dispatchToElement(new AA(s, t), "dragleave", t.event), a && a !== s && this.handler.dispatchToElement(new AA(a, t), "dragenter", t.event)) } }, t.prototype._dragEnd = function (t) { var e = this._draggingTarget; e && (e.dragging = !1), this.handler.dispatchToElement(new AA(e, t), "dragend", t.event), this._dropTarget && this.handler.dispatchToElement(new AA(this._dropTarget, t), "drop", t.event), this._draggingTarget = null, this._dropTarget = null }, t }(), LA = function () { function t(t) { t && (this._$eventProcessor = t) } return t.prototype.on = function (t, e, n, i) { this._$handlers || (this._$handlers = {}); var r = this._$handlers; if ("function" == typeof e && (i = n, n = e, e = null), !n || !t) return this; var o = this._$eventProcessor; null != e && o && o.normalizeQuery && (e = o.normalizeQuery(e)), r[t] || (r[t] = []); for (var a = 0; a < r[t].length; a++) if (r[t][a].h === n) return this; var s = {h: n, query: e, ctx: i || this, callAtLast: n.zrEventfulCallAtLast}, l = r[t].length - 1, u = r[t][l]; return u && u.callAtLast ? r[t].splice(l, 0, s) : r[t].push(s), this }, t.prototype.isSilent = function (t) { var e = this._$handlers; return !e || !e[t] || !e[t].length }, t.prototype.off = function (t, e) { var n = this._$handlers; if (!n) return this; if (!t) return this._$handlers = {}, this; if (e) { if (n[t]) { for (var i = [], r = 0, o = n[t].length; o > r; r++) n[t][r].h !== e && i.push(n[t][r]); n[t] = i } n[t] && 0 === n[t].length && delete n[t] } else delete n[t]; return this }, t.prototype.trigger = function (t) { for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; if (!this._$handlers) return this; var i = this._$handlers[t], r = this._$eventProcessor; if (i) for (var o = e.length, a = i.length, s = 0; a > s; s++) { var l = i[s]; if (!r || !r.filter || null == l.query || r.filter(t, l.query)) switch (o) { case 0: l.h.call(l.ctx); break; case 1: l.h.call(l.ctx, e[0]); break; case 2: l.h.call(l.ctx, e[0], e[1]); break; default: l.h.apply(l.ctx, e) } } return r && r.afterTrigger && r.afterTrigger(t), this }, t.prototype.triggerWithContext = function (t) { if (!this._$handlers) return this; var e = this._$handlers[t], n = this._$eventProcessor; if (e) for (var i = arguments, r = i.length, o = i[r - 1], a = e.length, s = 0; a > s; s++) { var l = e[s]; if (!n || !n.filter || null == l.query || n.filter(t, l.query)) switch (r) { case 0: l.h.call(o); break; case 1: l.h.call(o, i[0]); break; case 2: l.h.call(o, i[0], i[1]); break; default: l.h.apply(o, i.slice(1, r - 1)) } } return n && n.afterTrigger && n.afterTrigger(t), this }, t }(), kA = Math.log(2), PA = "___zrEVENTSAVED", OA = [], RA = "undefined" != typeof window && !!window.addEventListener, zA = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, EA = [], NA = RA ? function (t) { t.preventDefault(), t.stopPropagation(), t.cancelBubble = !0 } : function (t) { t.returnValue = !1, t.cancelBubble = !0 }, BA = function () { function t() { this._track = [] } return t.prototype.recognize = function (t, e, n) { return this._doTrack(t, e, n), this._recognize(t) }, t.prototype.clear = function () { return this._track.length = 0, this }, t.prototype._doTrack = function (t, e, n) { var i = t.touches; if (i) { for (var r = {points: [], touches: [], target: e, event: t}, o = 0, a = i.length; a > o; o++) { var s = i[o], l = Ie(n, s, {}); r.points.push([l.zrX, l.zrY]), r.touches.push(s) } this._track.push(r) } }, t.prototype._recognize = function (t) { for (var e in VA) if (VA.hasOwnProperty(e)) { var n = VA[e](this._track, t); if (n) return n } }, t }(), VA = { pinch: function (t, e) { var n = t.length; if (n) { var i = (t[n - 1] || {}).points, r = (t[n - 2] || {}).points || i; if (r && r.length > 1 && i && i.length > 1) { var o = Oe(i) / Oe(r); !isFinite(o) && (o = 1), e.pinchScale = o; var a = Re(i); return e.pinchX = a[0], e.pinchY = a[1], {type: "pinch", target: t[0].target, event: e} } } } }, FA = "silent", GA = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.handler = null, e } return e(n, t), n.prototype.dispose = function () { }, n.prototype.setCursor = function () { }, n }(LA), HA = function () { function t(t, e) { this.x = t, this.y = e } return t }(), WA = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], XA = function (t) { function n(e, n, i, r) { var o = t.call(this) || this; return o._hovered = new HA(0, 0), o.storage = e, o.painter = n, o.painterRoot = r, i = i || new GA, o.proxy = null, o.setHandlerProxy(i), o._draggingMgr = new DA(o), o } return e(n, t), n.prototype.setHandlerProxy = function (t) { this.proxy && this.proxy.dispose(), t && (y(WA, function (e) { t.on && t.on(e, this[e], this) }, this), t.handler = this), this.proxy = t }, n.prototype.mousemove = function (t) { var e = t.zrX, n = t.zrY, i = Be(this, e, n), r = this._hovered, o = r.target; o && !o.__zr && (r = this.findHover(r.x, r.y), o = r.target); var a = this._hovered = i ? new HA(e, n) : this.findHover(e, n), s = a.target, l = this.proxy; l.setCursor && l.setCursor(s ? s.cursor : "default"), o && s !== o && this.dispatchToElement(r, "mouseout", t), this.dispatchToElement(a, "mousemove", t), s && s !== o && this.dispatchToElement(a, "mouseover", t) }, n.prototype.mouseout = function (t) { var e = t.zrEventControl; "only_globalout" !== e && this.dispatchToElement(this._hovered, "mouseout", t), "no_globalout" !== e && this.trigger("globalout", { type: "globalout", event: t }) }, n.prototype.resize = function () { this._hovered = new HA(0, 0) }, n.prototype.dispatch = function (t, e) { var n = this[t]; n && n.call(this, e) }, n.prototype.dispose = function () { this.proxy.dispose(), this.storage = null, this.proxy = null, this.painter = null }, n.prototype.setCursorStyle = function (t) { var e = this.proxy; e.setCursor && e.setCursor(t) }, n.prototype.dispatchToElement = function (t, e, n) { t = t || {}; var i = t.target; if (!i || !i.silent) { for (var r = "on" + e, o = ze(e, t, n); i && (i[r] && (o.cancelBubble = !!i[r].call(i, o)), i.trigger(e, o), i = i.__hostTarget ? i.__hostTarget : i.parent, !o.cancelBubble);) ; o.cancelBubble || (this.trigger(e, o), this.painter && this.painter.eachOtherLayer && this.painter.eachOtherLayer(function (t) { "function" == typeof t[r] && t[r].call(t, o), t.trigger && t.trigger(e, o) })) } }, n.prototype.findHover = function (t, e, n) { for (var i = this.storage.getDisplayList(), r = new HA(t, e), o = i.length - 1; o >= 0; o--) { var a = void 0; if (i[o] !== n && !i[o].ignore && (a = Ne(i[o], t, e)) && (!r.topTarget && (r.topTarget = i[o]), a !== FA)) { r.target = i[o]; break } } return r }, n.prototype.processGesture = function (t, e) { this._gestureMgr || (this._gestureMgr = new BA); var n = this._gestureMgr; "start" === e && n.clear(); var i = n.recognize(t, this.findHover(t.zrX, t.zrY, null).target, this.proxy.dom); if ("end" === e && n.clear(), i) { var r = i.type; t.gestureEvent = r; var o = new HA; o.target = i.target, this.dispatchToElement(o, r, i.event) } }, n }(LA); y(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function (t) { XA.prototype[t] = function (e) { var n, i, r = e.zrX, o = e.zrY, a = Be(this, r, o); if ("mouseup" === t && a || (n = this.findHover(r, o), i = n.target), "mousedown" === t) this._downEl = i, this._downPoint = [e.zrX, e.zrY], this._upEl = i; else if ("mouseup" === t) this._upEl = i; else if ("click" === t) { if (this._downEl !== this._upEl || !this._downPoint || IA(this._downPoint, [e.zrX, e.zrY]) > 4) return; this._downPoint = null } this.dispatchToElement(n, t, e) } }); var YA, ZA = 32, UA = 7, jA = 1, qA = 2, KA = 4, $A = !1, JA = function () { function t() { this._roots = [], this._displayList = [], this._displayListLen = 0, this.displayableSortFunc = je } return t.prototype.traverse = function (t, e) { for (var n = 0; n < this._roots.length; n++) this._roots[n].traverse(t, e) }, t.prototype.getDisplayList = function (t, e) { e = e || !1; var n = this._displayList; return (t || !n.length) && this.updateDisplayList(e), n }, t.prototype.updateDisplayList = function (t) { this._displayListLen = 0; for (var e = this._roots, n = this._displayList, i = 0, r = e.length; r > i; i++) this._updateAndAddDisplayable(e[i], null, t); n.length = this._displayListLen, oA.canvasSupported && Ze(n, je) }, t.prototype._updateAndAddDisplayable = function (t, e, n) { if (!t.ignore || n) { t.beforeUpdate(), t.update(), t.afterUpdate(); var i = t.getClipPath(); if (t.ignoreClip) e = null; else if (i) { e = e ? e.slice() : []; for (var r = i, o = t; r;) r.parent = o, r.updateTransform(), e.push(r), o = r, r = r.getClipPath() } if (t.childrenRef) { for (var a = t.childrenRef(), s = 0; s < a.length; s++) { var l = a[s]; t.__dirty && (l.__dirty |= jA), this._updateAndAddDisplayable(l, e, n) } t.__dirty = 0 } else { var u = t; e && e.length ? u.__clipPaths = e : u.__clipPaths && u.__clipPaths.length > 0 && (u.__clipPaths = []), isNaN(u.z) && (Ue(), u.z = 0), isNaN(u.z2) && (Ue(), u.z2 = 0), isNaN(u.zlevel) && (Ue(), u.zlevel = 0), this._displayList[this._displayListLen++] = u } var h = t.getDecalElement && t.getDecalElement(); h && this._updateAndAddDisplayable(h, e, n); var c = t.getTextGuideLine(); c && this._updateAndAddDisplayable(c, e, n); var p = t.getTextContent(); p && this._updateAndAddDisplayable(p, e, n) } }, t.prototype.addRoot = function (t) { t.__zr && t.__zr.storage === this || this._roots.push(t) }, t.prototype.delRoot = function (t) { if (t instanceof Array) for (var e = 0, n = t.length; n > e; e++) this.delRoot(t[e]); else { var i = p(this._roots, t); i >= 0 && this._roots.splice(i, 1) } }, t.prototype.delAllRoots = function () { this._roots = [], this._displayList = [], this._displayListLen = 0 }, t.prototype.getRoots = function () { return this._roots }, t.prototype.dispose = function () { this._displayList = null, this._roots = null }, t }(); YA = "undefined" != typeof window && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function (t) { return setTimeout(t, 16) }; var QA = YA, tD = { linear: function (t) { return t }, quadraticIn: function (t) { return t * t }, quadraticOut: function (t) { return t * (2 - t) }, quadraticInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1) }, cubicIn: function (t) { return t * t * t }, cubicOut: function (t) { return --t * t * t + 1 }, cubicInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2) }, quarticIn: function (t) { return t * t * t * t }, quarticOut: function (t) { return 1 - --t * t * t * t }, quarticInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2) }, quinticIn: function (t) { return t * t * t * t * t }, quinticOut: function (t) { return --t * t * t * t * t + 1 }, quinticInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2) }, sinusoidalIn: function (t) { return 1 - Math.cos(t * Math.PI / 2) }, sinusoidalOut: function (t) { return Math.sin(t * Math.PI / 2) }, sinusoidalInOut: function (t) { return .5 * (1 - Math.cos(Math.PI * t)) }, exponentialIn: function (t) { return 0 === t ? 0 : Math.pow(1024, t - 1) }, exponentialOut: function (t) { return 1 === t ? 1 : 1 - Math.pow(2, -10 * t) }, exponentialInOut: function (t) { return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? .5 * Math.pow(1024, t - 1) : .5 * (-Math.pow(2, -10 * (t - 1)) + 2) }, circularIn: function (t) { return 1 - Math.sqrt(1 - t * t) }, circularOut: function (t) { return Math.sqrt(1 - --t * t) }, circularInOut: function (t) { return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1) }, elasticIn: function (t) { var e, n = .1, i = .4; return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 / n) / (2 * Math.PI), -(n * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / i))) }, elasticOut: function (t) { var e, n = .1, i = .4; return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 / n) / (2 * Math.PI), n * Math.pow(2, -10 * t) * Math.sin(2 * (t - e) * Math.PI / i) + 1) }, elasticInOut: function (t) { var e, n = .1, i = .4; return 0 === t ? 0 : 1 === t ? 1 : (!n || 1 > n ? (n = 1, e = i / 4) : e = i * Math.asin(1 / n) / (2 * Math.PI), (t *= 2) < 1 ? -.5 * n * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / i) : n * Math.pow(2, -10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / i) * .5 + 1) }, backIn: function (t) { var e = 1.70158; return t * t * ((e + 1) * t - e) }, backOut: function (t) { var e = 1.70158; return --t * t * ((e + 1) * t + e) + 1 }, backInOut: function (t) { var e = 2.5949095; return (t *= 2) < 1 ? .5 * t * t * ((e + 1) * t - e) : .5 * ((t -= 2) * t * ((e + 1) * t + e) + 2) }, bounceIn: function (t) { return 1 - tD.bounceOut(1 - t) }, bounceOut: function (t) { return 1 / 2.75 > t ? 7.5625 * t * t : 2 / 2.75 > t ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : 2.5 / 2.75 > t ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 }, bounceInOut: function (t) { return .5 > t ? .5 * tD.bounceIn(2 * t) : .5 * tD.bounceOut(2 * t - 1) + .5 } }, eD = function () { function t(t) { this._initialized = !1, this._startTime = 0, this._pausedTime = 0, this._paused = !1, this._life = t.life || 1e3, this._delay = t.delay || 0, this.loop = null == t.loop ? !1 : t.loop, this.gap = t.gap || 0, this.easing = t.easing || "linear", this.onframe = t.onframe, this.ondestroy = t.ondestroy, this.onrestart = t.onrestart } return t.prototype.step = function (t, e) { if (this._initialized || (this._startTime = t + this._delay, this._initialized = !0), this._paused) return void (this._pausedTime += e); var n = (t - this._startTime - this._pausedTime) / this._life; 0 > n && (n = 0), n = Math.min(n, 1); var i = this.easing, r = "string" == typeof i ? tD[i] : i, o = "function" == typeof r ? r(n) : n; if (this.onframe && this.onframe(o), 1 === n) { if (!this.loop) return !0; this._restart(t), this.onrestart && this.onrestart() } return !1 }, t.prototype._restart = function (t) { var e = (t - this._startTime - this._pausedTime) % this._life; this._startTime = t - e + this.gap, this._pausedTime = 0 }, t.prototype.pause = function () { this._paused = !0 }, t.prototype.resume = function () { this._paused = !1 }, t }(), nD = function () { function t(t) { this.value = t } return t }(), iD = function () { function t() { this._len = 0 } return t.prototype.insert = function (t) { var e = new nD(t); return this.insertEntry(e), e }, t.prototype.insertEntry = function (t) { this.head ? (this.tail.next = t, t.prev = this.tail, t.next = null, this.tail = t) : this.head = this.tail = t, this._len++ }, t.prototype.remove = function (t) { var e = t.prev, n = t.next; e ? e.next = n : this.head = n, n ? n.prev = e : this.tail = e, t.next = t.prev = null, this._len-- }, t.prototype.len = function () { return this._len }, t.prototype.clear = function () { this.head = this.tail = null, this._len = 0 }, t }(), rD = function () { function t(t) { this._list = new iD, this._maxSize = 10, this._map = {}, this._maxSize = t } return t.prototype.put = function (t, e) { var n = this._list, i = this._map, r = null; if (null == i[t]) { var o = n.len(), a = this._lastRemovedEntry; if (o >= this._maxSize && o > 0) { var s = n.head; n.remove(s), delete i[s.key], r = s.value, this._lastRemovedEntry = s } a ? a.value = e : a = new nD(e), a.key = t, n.insertEntry(a), i[t] = a } return r }, t.prototype.get = function (t) { var e = this._map[t], n = this._list; return null != e ? (e !== n.tail && (n.remove(e), n.insertEntry(e)), e.value) : void 0 }, t.prototype.clear = function () { this._list.clear(), this._map = {} }, t.prototype.len = function () { return this._list.len() }, t }(), oD = { transparent: [0, 0, 0, 0], aliceblue: [240, 248, 255, 1], antiquewhite: [250, 235, 215, 1], aqua: [0, 255, 255, 1], aquamarine: [127, 255, 212, 1], azure: [240, 255, 255, 1], beige: [245, 245, 220, 1], bisque: [255, 228, 196, 1], black: [0, 0, 0, 1], blanchedalmond: [255, 235, 205, 1], blue: [0, 0, 255, 1], blueviolet: [138, 43, 226, 1], brown: [165, 42, 42, 1], burlywood: [222, 184, 135, 1], cadetblue: [95, 158, 160, 1], chartreuse: [127, 255, 0, 1], chocolate: [210, 105, 30, 1], coral: [255, 127, 80, 1], cornflowerblue: [100, 149, 237, 1], cornsilk: [255, 248, 220, 1], crimson: [220, 20, 60, 1], cyan: [0, 255, 255, 1], darkblue: [0, 0, 139, 1], darkcyan: [0, 139, 139, 1], darkgoldenrod: [184, 134, 11, 1], darkgray: [169, 169, 169, 1], darkgreen: [0, 100, 0, 1], darkgrey: [169, 169, 169, 1], darkkhaki: [189, 183, 107, 1], darkmagenta: [139, 0, 139, 1], darkolivegreen: [85, 107, 47, 1], darkorange: [255, 140, 0, 1], darkorchid: [153, 50, 204, 1], darkred: [139, 0, 0, 1], darksalmon: [233, 150, 122, 1], darkseagreen: [143, 188, 143, 1], darkslateblue: [72, 61, 139, 1], darkslategray: [47, 79, 79, 1], darkslategrey: [47, 79, 79, 1], darkturquoise: [0, 206, 209, 1], darkviolet: [148, 0, 211, 1], deeppink: [255, 20, 147, 1], deepskyblue: [0, 191, 255, 1], dimgray: [105, 105, 105, 1], dimgrey: [105, 105, 105, 1], dodgerblue: [30, 144, 255, 1], firebrick: [178, 34, 34, 1], floralwhite: [255, 250, 240, 1], forestgreen: [34, 139, 34, 1], fuchsia: [255, 0, 255, 1], gainsboro: [220, 220, 220, 1], ghostwhite: [248, 248, 255, 1], gold: [255, 215, 0, 1], goldenrod: [218, 165, 32, 1], gray: [128, 128, 128, 1], green: [0, 128, 0, 1], greenyellow: [173, 255, 47, 1], grey: [128, 128, 128, 1], honeydew: [240, 255, 240, 1], hotpink: [255, 105, 180, 1], indianred: [205, 92, 92, 1], indigo: [75, 0, 130, 1], ivory: [255, 255, 240, 1], khaki: [240, 230, 140, 1], lavender: [230, 230, 250, 1], lavenderblush: [255, 240, 245, 1], lawngreen: [124, 252, 0, 1], lemonchiffon: [255, 250, 205, 1], lightblue: [173, 216, 230, 1], lightcoral: [240, 128, 128, 1], lightcyan: [224, 255, 255, 1], lightgoldenrodyellow: [250, 250, 210, 1], lightgray: [211, 211, 211, 1], lightgreen: [144, 238, 144, 1], lightgrey: [211, 211, 211, 1], lightpink: [255, 182, 193, 1], lightsalmon: [255, 160, 122, 1], lightseagreen: [32, 178, 170, 1], lightskyblue: [135, 206, 250, 1], lightslategray: [119, 136, 153, 1], lightslategrey: [119, 136, 153, 1], lightsteelblue: [176, 196, 222, 1], lightyellow: [255, 255, 224, 1], lime: [0, 255, 0, 1], limegreen: [50, 205, 50, 1], linen: [250, 240, 230, 1], magenta: [255, 0, 255, 1], maroon: [128, 0, 0, 1], mediumaquamarine: [102, 205, 170, 1], mediumblue: [0, 0, 205, 1], mediumorchid: [186, 85, 211, 1], mediumpurple: [147, 112, 219, 1], mediumseagreen: [60, 179, 113, 1], mediumslateblue: [123, 104, 238, 1], mediumspringgreen: [0, 250, 154, 1], mediumturquoise: [72, 209, 204, 1], mediumvioletred: [199, 21, 133, 1], midnightblue: [25, 25, 112, 1], mintcream: [245, 255, 250, 1], mistyrose: [255, 228, 225, 1], moccasin: [255, 228, 181, 1], navajowhite: [255, 222, 173, 1], navy: [0, 0, 128, 1], oldlace: [253, 245, 230, 1], olive: [128, 128, 0, 1], olivedrab: [107, 142, 35, 1], orange: [255, 165, 0, 1], orangered: [255, 69, 0, 1], orchid: [218, 112, 214, 1], palegoldenrod: [238, 232, 170, 1], palegreen: [152, 251, 152, 1], paleturquoise: [175, 238, 238, 1], palevioletred: [219, 112, 147, 1], papayawhip: [255, 239, 213, 1], peachpuff: [255, 218, 185, 1], peru: [205, 133, 63, 1], pink: [255, 192, 203, 1], plum: [221, 160, 221, 1], powderblue: [176, 224, 230, 1], purple: [128, 0, 128, 1], red: [255, 0, 0, 1], rosybrown: [188, 143, 143, 1], royalblue: [65, 105, 225, 1], saddlebrown: [139, 69, 19, 1], salmon: [250, 128, 114, 1], sandybrown: [244, 164, 96, 1], seagreen: [46, 139, 87, 1], seashell: [255, 245, 238, 1], sienna: [160, 82, 45, 1], silver: [192, 192, 192, 1], skyblue: [135, 206, 235, 1], slateblue: [106, 90, 205, 1], slategray: [112, 128, 144, 1], slategrey: [112, 128, 144, 1], snow: [255, 250, 250, 1], springgreen: [0, 255, 127, 1], steelblue: [70, 130, 180, 1], tan: [210, 180, 140, 1], teal: [0, 128, 128, 1], thistle: [216, 191, 216, 1], tomato: [255, 99, 71, 1], turquoise: [64, 224, 208, 1], violet: [238, 130, 238, 1], wheat: [245, 222, 179, 1], white: [255, 255, 255, 1], whitesmoke: [245, 245, 245, 1], yellow: [255, 255, 0, 1], yellowgreen: [154, 205, 50, 1] }, aD = new rD(20), sD = null, lD = cn, uD = pn, hD = (Object.freeze || Object)({ parse: an, lift: un, toHex: hn, fastLerp: cn, fastMapToColor: lD, lerp: pn, mapToColor: uD, modifyHSL: dn, modifyAlpha: fn, stringify: gn, lum: yn, random: vn }), cD = Array.prototype.slice, pD = [0, 0, 0, 0], dD = function () { function t(t) { this.keyframes = [], this.maxTime = 0, this.arrDim = 0, this.interpolable = !0, this._needsSort = !1, this._isAllValueEqual = !0, this._lastFrame = 0, this._lastFramePercent = 0, this.propName = t } return t.prototype.isFinished = function () { return this._finished }, t.prototype.setFinished = function () { this._finished = !0, this._additiveTrack && this._additiveTrack.setFinished() }, t.prototype.needsAnimate = function () { return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable }, t.prototype.getAdditiveTrack = function () { return this._additiveTrack }, t.prototype.addKeyframe = function (t, e) { t >= this.maxTime ? this.maxTime = t : this._needsSort = !0; var n = this.keyframes, i = n.length; if (this.interpolable) if (g(e)) { var r = kn(e); if (i > 0 && this.arrDim !== r) return void (this.interpolable = !1); if (1 === r && "number" != typeof e[0] || 2 === r && "number" != typeof e[0][0]) return void (this.interpolable = !1); if (i > 0) { var o = n[i - 1]; this._isAllValueEqual && (1 === r ? In(e, o.value) || (this._isAllValueEqual = !1) : this._isAllValueEqual = !1) } this.arrDim = r } else { if (this.arrDim > 0) return void (this.interpolable = !1); if ("string" == typeof e) { var a = an(e); a ? (e = a, this.isValueColor = !0) : this.interpolable = !1 } else if ("number" != typeof e || isNaN(e)) return void (this.interpolable = !1); if (this._isAllValueEqual && i > 0) { var o = n[i - 1]; this.isValueColor && !In(o.value, e) ? this._isAllValueEqual = !1 : o.value !== e && (this._isAllValueEqual = !1) } } var s = {time: t, value: e, percent: 0}; return this.keyframes.push(s), s }, t.prototype.prepare = function (t) { var e = this.keyframes; this._needsSort && e.sort(function (t, e) { return t.time - e.time }); for (var n = this.arrDim, i = e.length, r = e[i - 1], o = 0; i > o; o++) e[o].percent = e[o].time / this.maxTime, n > 0 && o !== i - 1 && Mn(e[o].value, r.value, n); if (t && this.needsAnimate() && t.needsAnimate() && n === t.arrDim && this.isValueColor === t.isValueColor && !t._finished) { this._additiveTrack = t; for (var a = e[0].value, o = 0; i > o; o++) 0 === n ? e[o].additiveValue = this.isValueColor ? wn([], e[o].value, a, -1) : e[o].value - a : 1 === n ? e[o].additiveValue = wn([], e[o].value, a, -1) : 2 === n && (e[o].additiveValue = Sn([], e[o].value, a, -1)) } }, t.prototype.step = function (t, e) { if (!this._finished) { this._additiveTrack && this._additiveTrack._finished && (this._additiveTrack = null); var n, i = null != this._additiveTrack, r = i ? "additiveValue" : "value", o = this.keyframes, a = this.keyframes.length, s = this.propName, l = this.arrDim, u = this.isValueColor; if (0 > e) n = 0; else if (e < this._lastFramePercent) { var h = Math.min(this._lastFrame + 1, a - 1); for (n = h; n >= 0 && !(o[n].percent <= e); n--) ; n = Math.min(n, a - 2) } else { for (n = this._lastFrame; a > n && !(o[n].percent > e); n++) ; n = Math.min(n - 1, a - 2) } var c = o[n + 1], p = o[n]; if (p && c) { this._lastFrame = n, this._lastFramePercent = e; var d = c.percent - p.percent; if (0 !== d) { var f = (e - p.percent) / d, g = i ? this._additiveValue : u ? pD : t[s]; if ((l > 0 || u) && !g && (g = this._additiveValue = []), this.useSpline) { var y = o[n][r], v = o[0 === n ? n : n - 1][r], m = o[n > a - 2 ? a - 1 : n + 1][r], x = o[n > a - 3 ? a - 1 : n + 2][r]; if (l > 0) 1 === l ? Cn(g, v, y, m, x, f, f * f, f * f * f) : An(g, v, y, m, x, f, f * f, f * f * f); else if (u) Cn(g, v, y, m, x, f, f * f, f * f * f), i || (t[s] = Ln(g)); else { var _ = void 0; _ = this.interpolable ? Tn(v, y, m, x, f, f * f, f * f * f) : m, i ? this._additiveValue = _ : t[s] = _ } } else if (l > 0) 1 === l ? _n(g, p[r], c[r], f) : bn(g, p[r], c[r], f); else if (u) _n(g, p[r], c[r], f), i || (t[s] = Ln(g)); else { var _ = void 0; _ = this.interpolable ? mn(p[r], c[r], f) : xn(p[r], c[r], f), i ? this._additiveValue = _ : t[s] = _ } i && this._addToTarget(t) } } } }, t.prototype._addToTarget = function (t) { var e = this.arrDim, n = this.propName, i = this._additiveValue; 0 === e ? this.isValueColor ? (an(t[n], pD), wn(pD, pD, i, 1), t[n] = Ln(pD)) : t[n] = t[n] + i : 1 === e ? wn(t[n], t[n], i, 1) : 2 === e && Sn(t[n], t[n], i, 1) }, t }(), fD = function () { function t(t, e, n) { return this._tracks = {}, this._trackKeys = [], this._delay = 0, this._maxTime = 0, this._paused = !1, this._started = 0, this._clip = null, this._target = t, this._loop = e, e && n ? void a("Can' use additive animation on looped animation.") : void (this._additiveAnimators = n) } return t.prototype.getTarget = function () { return this._target }, t.prototype.changeTarget = function (t) { this._target = t }, t.prototype.when = function (t, e) { return this.whenWithKeys(t, e, b(e)) }, t.prototype.whenWithKeys = function (t, e, n) { for (var i = this._tracks, r = 0; r < n.length; r++) { var o = n[r], a = i[o]; if (!a) { a = i[o] = new dD(o); var s = void 0, l = this._getAdditiveTrack(o); if (l) { var u = l.keyframes[l.keyframes.length - 1]; s = u && u.value, l.isValueColor && s && (s = Ln(s)) } else s = this._target[o]; if (null == s) continue; 0 !== t && a.addKeyframe(0, Dn(s)), this._trackKeys.push(o) } a.addKeyframe(t, Dn(e[o])) } return this._maxTime = Math.max(this._maxTime, t), this }, t.prototype.pause = function () { this._clip.pause(), this._paused = !0 }, t.prototype.resume = function () { this._clip.resume(), this._paused = !1 }, t.prototype.isPaused = function () { return !!this._paused }, t.prototype._doneCallback = function () { this._setTracksFinished(), this._clip = null; var t = this._doneList; if (t) for (var e = t.length, n = 0; e > n; n++) t[n].call(this) }, t.prototype._abortedCallback = function () { this._setTracksFinished(); var t = this.animation, e = this._abortedList; if (t && t.removeClip(this._clip), this._clip = null, e) for (var n = 0; n < e.length; n++) e[n].call(this) }, t.prototype._setTracksFinished = function () { for (var t = this._tracks, e = this._trackKeys, n = 0; n < e.length; n++) t[e[n]].setFinished() }, t.prototype._getAdditiveTrack = function (t) { var e, n = this._additiveAnimators; if (n) for (var i = 0; i < n.length; i++) { var r = n[i].getTrack(t); r && (e = r) } return e }, t.prototype.start = function (t, e) { if (!(this._started > 0)) { this._started = 1; for (var n = this, i = [], r = 0; r < this._trackKeys.length; r++) { var o = this._trackKeys[r], a = this._tracks[o], s = this._getAdditiveTrack(o), l = a.keyframes; if (a.prepare(s), a.needsAnimate()) i.push(a); else if (!a.interpolable) { var u = l[l.length - 1]; u && (n._target[a.propName] = u.value) } } if (i.length || e) { var h = new eD({ life: this._maxTime, loop: this._loop, delay: this._delay, onframe: function (t) { n._started = 2; var e = n._additiveAnimators; if (e) { for (var r = !1, o = 0; o < e.length; o++) if (e[o]._clip) { r = !0; break } r || (n._additiveAnimators = null) } for (var o = 0; o < i.length; o++) i[o].step(n._target, t); var a = n._onframeList; if (a) for (var o = 0; o < a.length; o++) a[o](n._target, t) }, ondestroy: function () { n._doneCallback() } }); this._clip = h, this.animation && this.animation.addClip(h), t && "spline" !== t && (h.easing = t) } else this._doneCallback(); return this } }, t.prototype.stop = function (t) { if (this._clip) { var e = this._clip; t && e.onframe(1), this._abortedCallback() } }, t.prototype.delay = function (t) { return this._delay = t, this }, t.prototype.during = function (t) { return t && (this._onframeList || (this._onframeList = []), this._onframeList.push(t)), this }, t.prototype.done = function (t) { return t && (this._doneList || (this._doneList = []), this._doneList.push(t)), this }, t.prototype.aborted = function (t) { return t && (this._abortedList || (this._abortedList = []), this._abortedList.push(t)), this }, t.prototype.getClip = function () { return this._clip }, t.prototype.getTrack = function (t) { return this._tracks[t] }, t.prototype.stopTracks = function (t, e) { if (!t.length || !this._clip) return !0; for (var n = this._tracks, i = this._trackKeys, r = 0; r < t.length; r++) { var o = n[t[r]]; o && (e ? o.step(this._target, 1) : 1 === this._started && o.step(this._target, 0), o.setFinished()) } for (var a = !0, r = 0; r < i.length; r++) if (!n[i[r]].isFinished()) { a = !1; break } return a && this._abortedCallback(), a }, t.prototype.saveFinalToTarget = function (t, e) { if (t) { e = e || this._trackKeys; for (var n = 0; n < e.length; n++) { var i = e[n], r = this._tracks[i]; if (r && !r.isFinished()) { var o = r.keyframes, a = o[o.length - 1]; if (a) { var s = Dn(a.value); r.isValueColor && (s = Ln(s)), t[i] = s } } } } }, t.prototype.__changeFinalValue = function (t, e) { e = e || b(t); for (var n = 0; n < e.length; n++) { var i = e[n], r = this._tracks[i]; if (r) { var o = r.keyframes; if (o.length > 1) { var a = o.pop(); r.addKeyframe(a.time, t[i]), r.prepare(r.getAdditiveTrack()) } } } }, t }(), gD = function (t) { function n(e) { var n = t.call(this) || this; return n._running = !1, n._time = 0, n._pausedTime = 0, n._pauseStart = 0, n._paused = !1, e = e || {}, n.stage = e.stage || {}, n.onframe = e.onframe || function () { }, n } return e(n, t), n.prototype.addClip = function (t) { t.animation && this.removeClip(t), this._clipsHead ? (this._clipsTail.next = t, t.prev = this._clipsTail, t.next = null, this._clipsTail = t) : this._clipsHead = this._clipsTail = t, t.animation = this }, n.prototype.addAnimator = function (t) { t.animation = this; var e = t.getClip(); e && this.addClip(e) }, n.prototype.removeClip = function (t) { if (t.animation) { var e = t.prev, n = t.next; e ? e.next = n : this._clipsHead = n, n ? n.prev = e : this._clipsTail = e, t.next = t.prev = t.animation = null } }, n.prototype.removeAnimator = function (t) { var e = t.getClip(); e && this.removeClip(e), t.animation = null }, n.prototype.update = function (t) { for (var e = (new Date).getTime() - this._pausedTime, n = e - this._time, i = this._clipsHead; i;) { var r = i.next, o = i.step(e, n); o ? (i.ondestroy && i.ondestroy(), this.removeClip(i), i = r) : i = r } this._time = e, t || (this.onframe(n), this.trigger("frame", n), this.stage.update && this.stage.update()) }, n.prototype._startLoop = function () { function t() { e._running && (QA(t), !e._paused && e.update()) } var e = this; this._running = !0, QA(t) }, n.prototype.start = function () { this._running || (this._time = (new Date).getTime(), this._pausedTime = 0, this._startLoop()) }, n.prototype.stop = function () { this._running = !1 }, n.prototype.pause = function () { this._paused || (this._pauseStart = (new Date).getTime(), this._paused = !0) }, n.prototype.resume = function () { this._paused && (this._pausedTime += (new Date).getTime() - this._pauseStart, this._paused = !1) }, n.prototype.clear = function () { for (var t = this._clipsHead; t;) { var e = t.next; t.prev = t.next = t.animation = null, t = e } this._clipsHead = this._clipsTail = null }, n.prototype.isFinished = function () { return null == this._clipsHead }, n.prototype.animate = function (t, e) { e = e || {}, this.start(); var n = new fD(t, e.loop); return this.addAnimator(n), n }, n }(LA), yD = 300, vD = oA.domSupported, mD = function () { var t = ["click", "dblclick", "mousewheel", "wheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], e = ["touchstart", "touchend", "touchmove"], n = {pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1}, i = v(t, function (t) { var e = t.replace("mouse", "pointer"); return n.hasOwnProperty(e) ? e : t }); return {mouse: t, touch: e, pointer: i} }(), xD = {mouse: ["mousemove", "mouseup"], pointer: ["pointermove", "pointerup"]}, _D = !1, bD = function () { function t(t, e) { this.stopPropagation = K, this.stopImmediatePropagation = K, this.preventDefault = K, this.type = e.type, this.target = this.currentTarget = t.dom, this.pointerType = e.pointerType, this.clientX = e.clientX, this.clientY = e.clientY } return t }(), wD = { mousedown: function (t) { t = Ae(this.dom, t), this.__mayPointerCapture = [t.zrX, t.zrY], this.trigger("mousedown", t) }, mousemove: function (t) { t = Ae(this.dom, t); var e = this.__mayPointerCapture; !e || t.zrX === e[0] && t.zrY === e[1] || this.__togglePointerCapture(!0), this.trigger("mousemove", t) }, mouseup: function (t) { t = Ae(this.dom, t), this.__togglePointerCapture(!1), this.trigger("mouseup", t) }, mouseout: function (t) { t = Ae(this.dom, t); var e = t.toElement || t.relatedTarget; En(this, e) || (this.__pointerCapturing && (t.zrEventControl = "no_globalout"), this.trigger("mouseout", t)) }, wheel: function (t) { _D = !0, t = Ae(this.dom, t), this.trigger("mousewheel", t) }, mousewheel: function (t) { _D || (t = Ae(this.dom, t), this.trigger("mousewheel", t)) }, touchstart: function (t) { t = Ae(this.dom, t), Rn(t), this.__lastTouchMoment = new Date, this.handler.processGesture(t, "start"), wD.mousemove.call(this, t), wD.mousedown.call(this, t) }, touchmove: function (t) { t = Ae(this.dom, t), Rn(t), this.handler.processGesture(t, "change"), wD.mousemove.call(this, t) }, touchend: function (t) { t = Ae(this.dom, t), Rn(t), this.handler.processGesture(t, "end"), wD.mouseup.call(this, t), +new Date - +this.__lastTouchMoment < yD && wD.click.call(this, t) }, pointerdown: function (t) { wD.mousedown.call(this, t) }, pointermove: function (t) { Pn(t) || wD.mousemove.call(this, t) }, pointerup: function (t) { wD.mouseup.call(this, t) }, pointerout: function (t) { Pn(t) || wD.mouseout.call(this, t) } }; y(["click", "dblclick", "contextmenu"], function (t) { wD[t] = function (e) { e = Ae(this.dom, e), this.trigger(t, e) } }); var SD = { pointermove: function (t) { Pn(t) || SD.mousemove.call(this, t) }, pointerup: function (t) { SD.mouseup.call(this, t) }, mousemove: function (t) { this.trigger("mousemove", t) }, mouseup: function (t) { var e = this.__pointerCapturing; this.__togglePointerCapture(!1), this.trigger("mouseup", t), e && (t.zrEventControl = "only_globalout", this.trigger("mouseout", t)) } }, MD = function () { function t(t, e) { this.mounted = {}, this.listenerOpts = {}, this.touching = !1, this.domTarget = t, this.domHandlers = e } return t }(), ID = function (t) { function n(e, n) { var i = t.call(this) || this; return i.__pointerCapturing = !1, i.dom = e, i.painterRoot = n, i._localHandlerScope = new MD(e, wD), vD && (i._globalHandlerScope = new MD(document, SD)), Nn(i, i._localHandlerScope), i } return e(n, t), n.prototype.dispose = function () { Fn(this._localHandlerScope), vD && Fn(this._globalHandlerScope) }, n.prototype.setCursor = function (t) { this.dom.style && (this.dom.style.cursor = t || "default") }, n.prototype.__togglePointerCapture = function (t) { if (this.__mayPointerCapture = null, vD && +this.__pointerCapturing ^ +t) { this.__pointerCapturing = t; var e = this._globalHandlerScope; t ? Bn(this, e) : Fn(e) } }, n }(LA), TD = 1; "undefined" != typeof window && (TD = Math.max(window.devicePixelRatio || window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI || 1, 1)); var CD, AD, DD = TD, LD = .4, kD = "#333", PD = "#ccc", OD = "#eee", RD = (Object.freeze || Object)({ create: Gn, identity: Hn, copy: Wn, mul: Xn, translate: Yn, rotate: Zn, scale: Un, invert: jn, clone: qn }), zD = Hn, ED = 5e-5, ND = [], BD = [], VD = Gn(), FD = Math.abs, GD = function () { function t() { } return t.prototype.setPosition = function (t) { this.x = t[0], this.y = t[1] }, t.prototype.setScale = function (t) { this.scaleX = t[0], this.scaleY = t[1] }, t.prototype.setSkew = function (t) { this.skewX = t[0], this.skewY = t[1] }, t.prototype.setOrigin = function (t) { this.originX = t[0], this.originY = t[1] }, t.prototype.needLocalTransform = function () { return Kn(this.rotation) || Kn(this.x) || Kn(this.y) || Kn(this.scaleX - 1) || Kn(this.scaleY - 1) }, t.prototype.updateTransform = function () { var t = this.parent, e = t && t.transform, n = this.needLocalTransform(), i = this.transform; return n || e ? (i = i || Gn(), n ? this.getLocalTransform(i) : zD(i), e && (n ? Xn(i, t.transform, i) : Wn(i, t.transform)), this.transform = i, void this._resolveGlobalScaleRatio(i)) : void (i && zD(i)) }, t.prototype._resolveGlobalScaleRatio = function (t) { var e = this.globalScaleRatio; if (null != e && 1 !== e) { this.getGlobalScale(ND); var n = ND[0] < 0 ? -1 : 1, i = ND[1] < 0 ? -1 : 1, r = ((ND[0] - n) * e + n) / ND[0] || 0, o = ((ND[1] - i) * e + i) / ND[1] || 0; t[0] *= r, t[1] *= r, t[2] *= o, t[3] *= o } this.invTransform = this.invTransform || Gn(), jn(this.invTransform, t) }, t.prototype.getLocalTransform = function (e) { return t.getLocalTransform(this, e) }, t.prototype.getComputedTransform = function () { for (var t = this, e = []; t;) e.push(t), t = t.parent; for (; t = e.pop();) t.updateTransform(); return this.transform }, t.prototype.setLocalTransform = function (t) { if (t) { var e = t[0] * t[0] + t[1] * t[1], n = t[2] * t[2] + t[3] * t[3], i = Math.atan2(t[1], t[0]), r = Math.PI / 2 + i - Math.atan2(t[3], t[2]); n = Math.sqrt(n) * Math.cos(r), e = Math.sqrt(e), this.skewX = r, this.skewY = 0, this.rotation = -i, this.x = +t[4], this.y = +t[5], this.scaleX = e, this.scaleY = n, this.originX = 0, this.originY = 0 } }, t.prototype.decomposeTransform = function () { if (this.transform) { var t = this.parent, e = this.transform; t && t.transform && (Xn(BD, t.invTransform, e), e = BD); var n = this.originX, i = this.originY; (n || i) && (VD[4] = n, VD[5] = i, Xn(BD, e, VD), BD[4] -= n, BD[5] -= i, e = BD), this.setLocalTransform(e) } }, t.prototype.getGlobalScale = function (t) { var e = this.transform; return t = t || [], e ? (t[0] = Math.sqrt(e[0] * e[0] + e[1] * e[1]), t[1] = Math.sqrt(e[2] * e[2] + e[3] * e[3]), e[0] < 0 && (t[0] = -t[0]), e[3] < 0 && (t[1] = -t[1]), t) : (t[0] = 1, t[1] = 1, t) }, t.prototype.transformCoordToLocal = function (t, e) { var n = [t, e], i = this.invTransform; return i && ge(n, n, i), n }, t.prototype.transformCoordToGlobal = function (t, e) { var n = [t, e], i = this.transform; return i && ge(n, n, i), n }, t.prototype.getLineScale = function () { var t = this.transform; return t && FD(t[0] - 1) > 1e-10 && FD(t[3] - 1) > 1e-10 ? Math.sqrt(FD(t[0] * t[3] - t[2] * t[1])) : 1 }, t.getLocalTransform = function (t, e) { e = e || []; var n = t.originX || 0, i = t.originY || 0, r = t.scaleX, o = t.scaleY, a = t.rotation || 0, s = t.x, l = t.y, u = t.skewX ? Math.tan(t.skewX) : 0, h = t.skewY ? Math.tan(-t.skewY) : 0; return n || i ? (e[4] = -n * r - u * i * o, e[5] = -i * o - h * n * r) : e[4] = e[5] = 0, e[0] = r, e[3] = o, e[1] = h * r, e[2] = u * o, a && Zn(e, e, a), e[4] += n + s, e[5] += i + l, e }, t.initDefaultProps = function () { var e = t.prototype; e.x = 0, e.y = 0, e.scaleX = 1, e.scaleY = 1, e.originX = 0, e.originY = 0, e.skewX = 0, e.skewY = 0, e.rotation = 0, e.globalScaleRatio = 1 }(), t }(), HD = function () { function t(t, e) { this.x = t || 0, this.y = e || 0 } return t.prototype.copy = function (t) { return this.x = t.x, this.y = t.y, this }, t.prototype.clone = function () { return new t(this.x, this.y) }, t.prototype.set = function (t, e) { return this.x = t, this.y = e, this }, t.prototype.equal = function (t) { return t.x === this.x && t.y === this.y }, t.prototype.add = function (t) { return this.x += t.x, this.y += t.y, this }, t.prototype.scale = function (t) { this.x *= t, this.y *= t }, t.prototype.scaleAndAdd = function (t, e) { this.x += t.x * e, this.y += t.y * e }, t.prototype.sub = function (t) { return this.x -= t.x, this.y -= t.y, this }, t.prototype.dot = function (t) { return this.x * t.x + this.y * t.y }, t.prototype.len = function () { return Math.sqrt(this.x * this.x + this.y * this.y) }, t.prototype.lenSquare = function () { return this.x * this.x + this.y * this.y }, t.prototype.normalize = function () { var t = this.len(); return this.x /= t, this.y /= t, this }, t.prototype.distance = function (t) { var e = this.x - t.x, n = this.y - t.y; return Math.sqrt(e * e + n * n) }, t.prototype.distanceSquare = function (t) { var e = this.x - t.x, n = this.y - t.y; return e * e + n * n }, t.prototype.negate = function () { return this.x = -this.x, this.y = -this.y, this }, t.prototype.transform = function (t) { if (t) { var e = this.x, n = this.y; return this.x = t[0] * e + t[2] * n + t[4], this.y = t[1] * e + t[3] * n + t[5], this } }, t.prototype.toArray = function (t) { return t[0] = this.x, t[1] = this.y, t }, t.prototype.fromArray = function (t) { this.x = t[0], this.y = t[1] }, t.set = function (t, e, n) { t.x = e, t.y = n }, t.copy = function (t, e) { t.x = e.x, t.y = e.y }, t.len = function (t) { return Math.sqrt(t.x * t.x + t.y * t.y) }, t.lenSquare = function (t) { return t.x * t.x + t.y * t.y }, t.dot = function (t, e) { return t.x * e.x + t.y * e.y }, t.add = function (t, e, n) { t.x = e.x + n.x, t.y = e.y + n.y }, t.sub = function (t, e, n) { t.x = e.x - n.x, t.y = e.y - n.y }, t.scale = function (t, e, n) { t.x = e.x * n, t.y = e.y * n }, t.scaleAndAdd = function (t, e, n, i) { t.x = e.x + n.x * i, t.y = e.y + n.y * i }, t.lerp = function (t, e, n, i) { var r = 1 - i; t.x = r * e.x + i * n.x, t.y = r * e.y + i * n.y }, t }(), WD = Math.min, XD = Math.max, YD = new HD, ZD = new HD, UD = new HD, jD = new HD, qD = new HD, KD = new HD, $D = function () { function t(t, e, n, i) { 0 > n && (t += n, n = -n), 0 > i && (e += i, i = -i), this.x = t, this.y = e, this.width = n, this.height = i } return t.prototype.union = function (t) { var e = WD(t.x, this.x), n = WD(t.y, this.y); this.width = isFinite(this.x) && isFinite(this.width) ? XD(t.x + t.width, this.x + this.width) - e : t.width, this.height = isFinite(this.y) && isFinite(this.height) ? XD(t.y + t.height, this.y + this.height) - n : t.height, this.x = e, this.y = n }, t.prototype.applyTransform = function (e) { t.applyTransform(this, this, e) }, t.prototype.calculateTransform = function (t) { var e = this, n = t.width / e.width, i = t.height / e.height, r = Gn(); return Yn(r, r, [-e.x, -e.y]), Un(r, r, [n, i]), Yn(r, r, [t.x, t.y]), r }, t.prototype.intersect = function (e, n) { if (!e) return !1; e instanceof t || (e = t.create(e)); var i = this, r = i.x, o = i.x + i.width, a = i.y, s = i.y + i.height, l = e.x, u = e.x + e.width, h = e.y, c = e.y + e.height, p = !(l > o || r > u || h > s || a > c); if (n) { var d = 1 / 0, f = 0, g = Math.abs(o - l), y = Math.abs(u - r), v = Math.abs(s - h), m = Math.abs(c - a), x = Math.min(g, y), _ = Math.min(v, m); l > o || r > u ? x > f && (f = x, y > g ? HD.set(KD, -g, 0) : HD.set(KD, y, 0)) : d > x && (d = x, y > g ? HD.set(qD, g, 0) : HD.set(qD, -y, 0)), h > s || a > c ? _ > f && (f = _, m > v ? HD.set(KD, 0, -v) : HD.set(KD, 0, m)) : d > x && (d = x, m > v ? HD.set(qD, 0, v) : HD.set(qD, 0, -m)) } return n && HD.copy(n, p ? qD : KD), p }, t.prototype.contain = function (t, e) { var n = this; return t >= n.x && t <= n.x + n.width && e >= n.y && e <= n.y + n.height }, t.prototype.clone = function () { return new t(this.x, this.y, this.width, this.height) }, t.prototype.copy = function (e) { t.copy(this, e) }, t.prototype.plain = function () { return {x: this.x, y: this.y, width: this.width, height: this.height} }, t.prototype.isFinite = function () { return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height) }, t.prototype.isZero = function () { return 0 === this.width || 0 === this.height }, t.create = function (e) { return new t(e.x, e.y, e.width, e.height) }, t.copy = function (t, e) { t.x = e.x, t.y = e.y, t.width = e.width, t.height = e.height }, t.applyTransform = function (e, n, i) { if (!i) return void (e !== n && t.copy(e, n)); if (i[1] < 1e-5 && i[1] > -1e-5 && i[2] < 1e-5 && i[2] > -1e-5) { var r = i[0], o = i[3], a = i[4], s = i[5]; return e.x = n.x * r + a, e.y = n.y * o + s, e.width = n.width * r, e.height = n.height * o, e.width < 0 && (e.x += e.width, e.width = -e.width), void (e.height < 0 && (e.y += e.height, e.height = -e.height)) } YD.x = UD.x = n.x, YD.y = jD.y = n.y, ZD.x = jD.x = n.x + n.width, ZD.y = UD.y = n.y + n.height, YD.transform(i), jD.transform(i), ZD.transform(i), UD.transform(i), e.x = WD(YD.x, ZD.x, UD.x, jD.x), e.y = WD(YD.y, ZD.y, UD.y, jD.y); var l = XD(YD.x, ZD.x, UD.x, jD.x), u = XD(YD.y, ZD.y, UD.y, jD.y); e.width = l - e.x, e.height = u - e.y }, t }(), JD = {}, QD = "12px sans-serif", tL = {measureText: $n}, eL = "__zr_normal__", nL = ["x", "y", "scaleX", "scaleY", "originX", "originY", "rotation", "ignore"], iL = {x: !0, y: !0, scaleX: !0, scaleY: !0, originX: !0, originY: !0, rotation: !0, ignore: !1}, rL = {}, oL = new $D(0, 0, 0, 0), aL = function () { function t(t) { this.id = o(), this.animators = [], this.currentStates = [], this.states = {}, this._init(t) } return t.prototype._init = function (t) { this.attr(t) }, t.prototype.drift = function (t, e) { switch (this.draggable) { case"horizontal": e = 0; break; case"vertical": t = 0 } var n = this.transform; n || (n = this.transform = [1, 0, 0, 1, 0, 0]), n[4] += t, n[5] += e, this.decomposeTransform(), this.markRedraw() }, t.prototype.beforeUpdate = function () { }, t.prototype.afterUpdate = function () { }, t.prototype.update = function () { this.updateTransform(), this.__dirty && this.updateInnerText() }, t.prototype.updateInnerText = function (t) { var e = this._textContent; if (e && (!e.ignore || t)) { this.textConfig || (this.textConfig = {}); var n = this.textConfig, i = n.local, r = e.attachedTransform, o = void 0, a = void 0, s = !1; r.parent = i ? this : null; var l = !1; if (r.x = e.x, r.y = e.y, r.originX = e.originX, r.originY = e.originY, r.rotation = e.rotation, r.scaleX = e.scaleX, r.scaleY = e.scaleY, null != n.position) { var u = oL; u.copy(n.layoutRect ? n.layoutRect : this.getBoundingRect()), i || u.applyTransform(this.transform), this.calculateTextPosition ? this.calculateTextPosition(rL, n, u) : oi(rL, n, u), r.x = rL.x, r.y = rL.y, o = rL.align, a = rL.verticalAlign; var h = n.origin; if (h && null != n.rotation) { var c = void 0, p = void 0; "center" === h ? (c = .5 * u.width, p = .5 * u.height) : (c = ri(h[0], u.width), p = ri(h[1], u.height)), l = !0, r.originX = -r.x + c + (i ? 0 : u.x), r.originY = -r.y + p + (i ? 0 : u.y) } } null != n.rotation && (r.rotation = n.rotation); var d = n.offset; d && (r.x += d[0], r.y += d[1], l || (r.originX = -d[0], r.originY = -d[1])); var f = null == n.inside ? "string" == typeof n.position && n.position.indexOf("inside") >= 0 : n.inside, g = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {}), y = void 0, v = void 0, m = void 0; f && this.canBeInsideText() ? (y = n.insideFill, v = n.insideStroke, (null == y || "auto" === y) && (y = this.getInsideTextFill()), (null == v || "auto" === v) && (v = this.getInsideTextStroke(y), m = !0)) : (y = n.outsideFill, v = n.outsideStroke, (null == y || "auto" === y) && (y = this.getOutsideFill()), (null == v || "auto" === v) && (v = this.getOutsideStroke(y), m = !0)), y = y || "#000", (y !== g.fill || v !== g.stroke || m !== g.autoStroke || o !== g.align || a !== g.verticalAlign) && (s = !0, g.fill = y, g.stroke = v, g.autoStroke = m, g.align = o, g.verticalAlign = a, e.setDefaultTextStyle(g)), e.__dirty |= jA, s && e.dirtyStyle(!0) } }, t.prototype.canBeInsideText = function () { return !0 }, t.prototype.getInsideTextFill = function () { return "#fff" }, t.prototype.getInsideTextStroke = function () { return "#000" }, t.prototype.getOutsideFill = function () { return this.__zr && this.__zr.isDarkMode() ? PD : kD }, t.prototype.getOutsideStroke = function () { var t = this.__zr && this.__zr.getBackgroundColor(), e = "string" == typeof t && an(t); e || (e = [255, 255, 255, 1]); for (var n = e[3], i = this.__zr.isDarkMode(), r = 0; 3 > r; r++) e[r] = e[r] * n + (i ? 0 : 255) * (1 - n); return e[3] = 1, gn(e, "rgba") }, t.prototype.traverse = function () { }, t.prototype.attrKV = function (t, e) { "textConfig" === t ? this.setTextConfig(e) : "textContent" === t ? this.setTextContent(e) : "clipPath" === t ? this.setClipPath(e) : "extra" === t ? (this.extra = this.extra || {}, h(this.extra, e)) : this[t] = e }, t.prototype.hide = function () { this.ignore = !0, this.markRedraw() }, t.prototype.show = function () { this.ignore = !1, this.markRedraw() }, t.prototype.attr = function (t, e) { if ("string" == typeof t) this.attrKV(t, e); else if (D(t)) for (var n = t, i = b(n), r = 0; r < i.length; r++) { var o = i[r]; this.attrKV(o, t[o]) } return this.markRedraw(), this }, t.prototype.saveCurrentToNormalState = function (t) { this._innerSaveToNormal(t); for (var e = this._normalState, n = 0; n < this.animators.length; n++) { var i = this.animators[n], r = i.__fromStateTransition; if (!r || r === eL) { var o = i.targetName, a = o ? e[o] : e; i.saveFinalToTarget(a) } } }, t.prototype._innerSaveToNormal = function (t) { var e = this._normalState; e || (e = this._normalState = {}), t.textConfig && !e.textConfig && (e.textConfig = this.textConfig), this._savePrimaryToNormal(t, e, nL) }, t.prototype._savePrimaryToNormal = function (t, e, n) { for (var i = 0; i < n.length; i++) { var r = n[i]; null == t[r] || r in e || (e[r] = this[r]) } }, t.prototype.hasState = function () { return this.currentStates.length > 0 }, t.prototype.getState = function (t) { return this.states[t] }, t.prototype.ensureState = function (t) { var e = this.states; return e[t] || (e[t] = {}), e[t] }, t.prototype.clearStates = function (t) { this.useState(eL, !1, t) }, t.prototype.useState = function (t, e, n, i) { var r = t === eL, o = this.hasState(); if (o || !r) { var s = this.currentStates, l = this.stateTransition; if (!(p(s, t) >= 0) || !e && 1 !== s.length) { var u; if (this.stateProxy && !r && (u = this.stateProxy(t)), u || (u = this.states && this.states[t]), !u && !r) return void a("State " + t + " not exists."); r || this.saveCurrentToNormalState(u); var h = !!(u && u.hoverLayer || i); h && this._toggleHoverLayerFlag(!0), this._applyStateObj(t, u, this._normalState, e, !n && !this.__inHover && l && l.duration > 0, l); var c = this._textContent, d = this._textGuide; return c && c.useState(t, e, n, h), d && d.useState(t, e, n, h), r ? (this.currentStates = [], this._normalState = {}) : e ? this.currentStates.push(t) : this.currentStates = [t], this._updateAnimationTargets(), this.markRedraw(), !h && this.__inHover && (this._toggleHoverLayerFlag(!1), this.__dirty &= ~jA), u } } }, t.prototype.useStates = function (t, e, n) { if (t.length) { var i = [], r = this.currentStates, o = t.length, a = o === r.length; if (a) for (var s = 0; o > s; s++) if (t[s] !== r[s]) { a = !1; break } if (a) return; for (var s = 0; o > s; s++) { var l = t[s], u = void 0; this.stateProxy && (u = this.stateProxy(l, t)), u || (u = this.states[l]), u && i.push(u) } var h = i[o - 1], c = !!(h && h.hoverLayer || n); c && this._toggleHoverLayerFlag(!0); var p = this._mergeStates(i), d = this.stateTransition; this.saveCurrentToNormalState(p), this._applyStateObj(t.join(","), p, this._normalState, !1, !e && !this.__inHover && d && d.duration > 0, d); var f = this._textContent, g = this._textGuide; f && f.useStates(t, e, c), g && g.useStates(t, e, c), this._updateAnimationTargets(), this.currentStates = t.slice(), this.markRedraw(), !c && this.__inHover && (this._toggleHoverLayerFlag(!1), this.__dirty &= ~jA) } else this.clearStates() }, t.prototype._updateAnimationTargets = function () { for (var t = 0; t < this.animators.length; t++) { var e = this.animators[t]; e.targetName && e.changeTarget(this[e.targetName]) } }, t.prototype.removeState = function (t) { var e = p(this.currentStates, t); if (e >= 0) { var n = this.currentStates.slice(); n.splice(e, 1), this.useStates(n) } }, t.prototype.replaceState = function (t, e, n) { var i = this.currentStates.slice(), r = p(i, t), o = p(i, e) >= 0; r >= 0 ? o ? i.splice(r, 1) : i[r] = e : n && !o && i.push(e), this.useStates(i) }, t.prototype.toggleState = function (t, e) { e ? this.useState(t, !0) : this.removeState(t) }, t.prototype._mergeStates = function (t) { for (var e, n = {}, i = 0; i < t.length; i++) { var r = t[i]; h(n, r), r.textConfig && (e = e || {}, h(e, r.textConfig)) } return e && (n.textConfig = e), n }, t.prototype._applyStateObj = function (t, e, n, i, r, o) { var a = !(e && i); e && e.textConfig ? (this.textConfig = h({}, i ? this.textConfig : n.textConfig), h(this.textConfig, e.textConfig)) : a && n.textConfig && (this.textConfig = n.textConfig); for (var s = {}, l = !1, u = 0; u < nL.length; u++) { var c = nL[u], p = r && iL[c]; e && null != e[c] ? p ? (l = !0, s[c] = e[c]) : this[c] = e[c] : a && null != n[c] && (p ? (l = !0, s[c] = n[c]) : this[c] = n[c]) } if (!r) for (var u = 0; u < this.animators.length; u++) { var d = this.animators[u], f = d.targetName; d.__changeFinalValue(f ? (e || n)[f] : e || n) } l && this._transitionState(t, s, o) }, t.prototype._attachComponent = function (t) { if (t.__zr && !t.__hostTarget) throw new Error("Text element has been added to zrender."); if (t === this) throw new Error("Recursive component attachment."); var e = this.__zr; e && t.addSelfToZr(e), t.__zr = e, t.__hostTarget = this }, t.prototype._detachComponent = function (t) { t.__zr && t.removeSelfFromZr(t.__zr), t.__zr = null, t.__hostTarget = null }, t.prototype.getClipPath = function () { return this._clipPath }, t.prototype.setClipPath = function (t) { this._clipPath && this._clipPath !== t && this.removeClipPath(), this._attachComponent(t), this._clipPath = t, this.markRedraw() }, t.prototype.removeClipPath = function () { var t = this._clipPath; t && (this._detachComponent(t), this._clipPath = null, this.markRedraw()) }, t.prototype.getTextContent = function () { return this._textContent }, t.prototype.setTextContent = function (t) { var e = this._textContent; if (e !== t) { if (e && e !== t && this.removeTextContent(), t.__zr && !t.__hostTarget) throw new Error("Text element has been added to zrender."); t.attachedTransform = new GD, this._attachComponent(t), this._textContent = t, this.markRedraw() } }, t.prototype.setTextConfig = function (t) { this.textConfig || (this.textConfig = {}), h(this.textConfig, t), this.markRedraw() }, t.prototype.removeTextConfig = function () { this.textConfig = null, this.markRedraw() }, t.prototype.removeTextContent = function () { var t = this._textContent; t && (t.attachedTransform = null, this._detachComponent(t), this._textContent = null, this._innerTextDefaultStyle = null, this.markRedraw()) }, t.prototype.getTextGuideLine = function () { return this._textGuide }, t.prototype.setTextGuideLine = function (t) { this._textGuide && this._textGuide !== t && this.removeTextGuideLine(), this._attachComponent(t), this._textGuide = t, this.markRedraw() }, t.prototype.removeTextGuideLine = function () { var t = this._textGuide; t && (this._detachComponent(t), this._textGuide = null, this.markRedraw()) }, t.prototype.markRedraw = function () { this.__dirty |= jA; var t = this.__zr; t && (this.__inHover ? t.refreshHover() : t.refresh()), this.__hostTarget && this.__hostTarget.markRedraw() }, t.prototype.dirty = function () { this.markRedraw() }, t.prototype._toggleHoverLayerFlag = function (t) { this.__inHover = t; var e = this._textContent, n = this._textGuide; e && (e.__inHover = t), n && (n.__inHover = t) }, t.prototype.addSelfToZr = function (t) { this.__zr = t; var e = this.animators; if (e) for (var n = 0; n < e.length; n++) t.animation.addAnimator(e[n]); this._clipPath && this._clipPath.addSelfToZr(t), this._textContent && this._textContent.addSelfToZr(t), this._textGuide && this._textGuide.addSelfToZr(t) }, t.prototype.removeSelfFromZr = function (t) { this.__zr = null; var e = this.animators; if (e) for (var n = 0; n < e.length; n++) t.animation.removeAnimator(e[n]); this._clipPath && this._clipPath.removeSelfFromZr(t), this._textContent && this._textContent.removeSelfFromZr(t), this._textGuide && this._textGuide.removeSelfFromZr(t) }, t.prototype.animate = function (t, e) { var n = t ? this[t] : this; if (!n) return void a('Property "' + t + '" is not existed in element ' + this.id); var i = new fD(n, e); return this.addAnimator(i, t), i }, t.prototype.addAnimator = function (t, e) { var n = this.__zr, i = this; t.during(function () { i.updateDuringAnimation(e) }).done(function () { var e = i.animators, n = p(e, t); n >= 0 && e.splice(n, 1) }), this.animators.push(t), n && n.animation.addAnimator(t), n && n.wakeUp() }, t.prototype.updateDuringAnimation = function () { this.markRedraw() }, t.prototype.stopAnimation = function (t, e) { for (var n = this.animators, i = n.length, r = [], o = 0; i > o; o++) { var a = n[o]; t && t !== a.scope ? r.push(a) : a.stop(e) } return this.animators = r, this }, t.prototype.animateTo = function (t, e, n) { ai(this, t, e, n) }, t.prototype.animateFrom = function (t, e, n) { ai(this, t, e, n, !0) }, t.prototype._transitionState = function (t, e, n, i) { for (var r = ai(this, e, n, i), o = 0; o < r.length; o++) r[o].__fromStateTransition = t }, t.prototype.getBoundingRect = function () { return null }, t.prototype.getPaintRect = function () { return null }, t.initDefaultProps = function () { function e(t, e, n) { r[t + e + n] || (console.warn("DEPRECATED: '" + t + "' has been deprecated. use '" + e + "', '" + n + "' instead"), r[t + e + n] = !0) } function n(t, n, r, o) { function a(t, e) { Object.defineProperty(e, 0, { get: function () { return t[r] }, set: function (e) { t[r] = e } }), Object.defineProperty(e, 1, { get: function () { return t[o] }, set: function (e) { t[o] = e } }) } Object.defineProperty(i, t, { get: function () { if (e(t, r, o), !this[n]) { var i = this[n] = []; a(this, i) } return this[n] }, set: function (i) { e(t, r, o), this[r] = i[0], this[o] = i[1], this[n] = i, a(this, i) } }) } var i = t.prototype; i.type = "element", i.name = "", i.ignore = !1, i.silent = !1, i.isGroup = !1, i.draggable = !1, i.dragging = !1, i.ignoreClip = !1, i.__inHover = !1, i.__dirty = jA; var r = {}; Object.defineProperty && (!oA.browser.ie || oA.browser.version > 8) && (n("position", "_legacyPos", "x", "y"), n("scale", "_legacyScale", "scaleX", "scaleY"), n("origin", "_legacyOrigin", "originX", "originY")) }(), t }(); f(aL, LA), f(aL, GD); var sL = function (t) { function n(e) { var n = t.call(this) || this; return n.isGroup = !0, n._children = [], n.attr(e), n } return e(n, t), n.prototype.childrenRef = function () { return this._children }, n.prototype.children = function () { return this._children.slice() }, n.prototype.childAt = function (t) { return this._children[t] }, n.prototype.childOfName = function (t) { for (var e = this._children, n = 0; n < e.length; n++) if (e[n].name === t) return e[n] }, n.prototype.childCount = function () { return this._children.length }, n.prototype.add = function (t) { if (t && (t !== this && t.parent !== this && (this._children.push(t), this._doAdd(t)), t.__hostTarget)) throw"This elemenet has been used as an attachment"; return this }, n.prototype.addBefore = function (t, e) { if (t && t !== this && t.parent !== this && e && e.parent === this) { var n = this._children, i = n.indexOf(e); i >= 0 && (n.splice(i, 0, t), this._doAdd(t)) } return this }, n.prototype.replaceAt = function (t, e) { var n = this._children, i = n[e]; if (t && t !== this && t.parent !== this && t !== i) { n[e] = t, i.parent = null; var r = this.__zr; r && i.removeSelfFromZr(r), this._doAdd(t) } return this }, n.prototype._doAdd = function (t) { t.parent && t.parent.remove(t), t.parent = this; var e = this.__zr; e && e !== t.__zr && t.addSelfToZr(e), e && e.refresh() }, n.prototype.remove = function (t) { var e = this.__zr, n = this._children, i = p(n, t); return 0 > i ? this : (n.splice(i, 1), t.parent = null, e && t.removeSelfFromZr(e), e && e.refresh(), this) }, n.prototype.removeAll = function () { for (var t = this._children, e = this.__zr, n = 0; n < t.length; n++) { var i = t[n]; e && i.removeSelfFromZr(e), i.parent = null } return t.length = 0, this }, n.prototype.eachChild = function (t, e) { for (var n = this._children, i = 0; i < n.length; i++) { var r = n[i]; t.call(e, r, i) } return this }, n.prototype.traverse = function (t, e) { for (var n = 0; n < this._children.length; n++) { var i = this._children[n], r = t.call(e, i); i.isGroup && !r && i.traverse(t, e) } return this }, n.prototype.addSelfToZr = function (e) { t.prototype.addSelfToZr.call(this, e); for (var n = 0; n < this._children.length; n++) { var i = this._children[n]; i.addSelfToZr(e) } }, n.prototype.removeSelfFromZr = function (e) { t.prototype.removeSelfFromZr.call(this, e); for (var n = 0; n < this._children.length; n++) { var i = this._children[n]; i.removeSelfFromZr(e) } }, n.prototype.getBoundingRect = function (t) { for (var e = new $D(0, 0, 0, 0), n = t || this._children, i = [], r = null, o = 0; o < n.length; o++) { var a = n[o]; if (!a.ignore && !a.invisible) { var s = a.getBoundingRect(), l = a.getLocalTransform(i); l ? ($D.applyTransform(e, s, l), r = r || e.clone(), r.union(e)) : (r = r || s.clone(), r.union(s)) } } return r || e }, n }(aL); sL.prototype.type = "group"; var lL = !oA.canvasSupported, uL = {}, hL = {}, cL = function () { function t(t, e, n) { var i = this; this._sleepAfterStill = 10, this._stillFrameAccum = 0, this._needsRefresh = !0, this._needsRefreshHover = !0, this._darkMode = !1, n = n || {}, this.dom = e, this.id = t; var r = new JA, o = n.renderer || "canvas"; if (lL) throw new Error("IE8 support has been dropped since 5.0"); if (uL[o] || (o = b(uL)[0]), !uL[o]) throw new Error("Renderer '" + o + "' is not imported. Please import it first."); n.useDirtyRect = null == n.useDirtyRect ? !1 : n.useDirtyRect; var a = new uL[o](e, r, n, t); this.storage = r, this.painter = a; var s = oA.node || oA.worker ? null : new ID(a.getViewportRoot(), a.root); this.handler = new XA(r, a, s, a.root), this.animation = new gD({ stage: { update: function () { return i._flush(!0) } } }), this.animation.start() } return t.prototype.add = function (t) { t && (this.storage.addRoot(t), t.addSelfToZr(this), this.refresh()) }, t.prototype.remove = function (t) { t && (this.storage.delRoot(t), t.removeSelfFromZr(this), this.refresh()) }, t.prototype.configLayer = function (t, e) { this.painter.configLayer && this.painter.configLayer(t, e), this.refresh() }, t.prototype.setBackgroundColor = function (t) { this.painter.setBackgroundColor && this.painter.setBackgroundColor(t), this.refresh(), this._backgroundColor = t, this._darkMode = pi(t) }, t.prototype.getBackgroundColor = function () { return this._backgroundColor }, t.prototype.setDarkMode = function (t) { this._darkMode = t }, t.prototype.isDarkMode = function () { return this._darkMode }, t.prototype.refreshImmediately = function (t) { t || this.animation.update(!0), this._needsRefresh = !1, this.painter.refresh(), this._needsRefresh = !1 }, t.prototype.refresh = function () { this._needsRefresh = !0, this.animation.start() }, t.prototype.flush = function () { this._flush(!1) }, t.prototype._flush = function (t) { var e, n = (new Date).getTime(); this._needsRefresh && (e = !0, this.refreshImmediately(t)), this._needsRefreshHover && (e = !0, this.refreshHoverImmediately()); var i = (new Date).getTime(); e ? (this._stillFrameAccum = 0, this.trigger("rendered", {elapsedTime: i - n})) : this._sleepAfterStill > 0 && (this._stillFrameAccum++, this._stillFrameAccum > this._sleepAfterStill && this.animation.stop()) }, t.prototype.setSleepAfterStill = function (t) { this._sleepAfterStill = t }, t.prototype.wakeUp = function () { this.animation.start(), this._stillFrameAccum = 0 }, t.prototype.addHover = function () { }, t.prototype.removeHover = function () { }, t.prototype.clearHover = function () { }, t.prototype.refreshHover = function () { this._needsRefreshHover = !0 }, t.prototype.refreshHoverImmediately = function () { this._needsRefreshHover = !1, this.painter.refreshHover && "canvas" === this.painter.getType() && this.painter.refreshHover() }, t.prototype.resize = function (t) { t = t || {}, this.painter.resize(t.width, t.height), this.handler.resize() }, t.prototype.clearAnimation = function () { this.animation.clear() }, t.prototype.getWidth = function () { return this.painter.getWidth() }, t.prototype.getHeight = function () { return this.painter.getHeight() }, t.prototype.pathToImage = function (t, e) { return this.painter.pathToImage ? this.painter.pathToImage(t, e) : void 0 }, t.prototype.setCursorStyle = function (t) { this.handler.setCursorStyle(t) }, t.prototype.findHover = function (t, e) { return this.handler.findHover(t, e) }, t.prototype.on = function (t, e, n) { return this.handler.on(t, e, n), this }, t.prototype.off = function (t, e) { this.handler.off(t, e) }, t.prototype.trigger = function (t, e) { this.handler.trigger(t, e) }, t.prototype.clear = function () { for (var t = this.storage.getRoots(), e = 0; e < t.length; e++) t[e] instanceof sL && t[e].removeSelfFromZr(this); this.storage.delAllRoots(), this.painter.clear() }, t.prototype.dispose = function () { this.animation.stop(), this.clear(), this.storage.dispose(), this.painter.dispose(), this.handler.dispose(), this.animation = this.storage = this.painter = this.handler = null, ci(this.id) }, t }(), pL = "5.1.1", dL = (Object.freeze || Object)({ init: di, dispose: fi, disposeAll: gi, getInstance: yi, registerPainter: vi, version: pL }), fL = 1e-4, gL = 20, yL = 9007199254740991, vL = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/, mL = ("undefined" != typeof console && console.warn && console.log, "series\x00"), xL = "\x00_ec_\x00", _L = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "rich", "tag", "color", "textBorderColor", "textBorderWidth", "width", "height", "lineHeight", "align", "verticalAlign", "baseline", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY", "backgroundColor", "borderColor", "borderWidth", "borderRadius", "padding"], bL = Bi(), wL = {useDefault: !0, enableAll: !1, enableNone: !1}, SL = {useDefault: !1, enableAll: !0, enableNone: !0}, ML = ".", IL = "___EC__COMPONENT__CONTAINER___", TL = "___EC__EXTENDED_CLASS___", CL = Math.round(10 * Math.random()), AL = [["fill", "color"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["opacity"], ["shadowColor"]], DL = Ar(AL), LL = function () { function t() { } return t.prototype.getAreaStyle = function (t, e) { return DL(this, t, e) }, t }(), kL = new rD(50), PL = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g, OL = function () { function t() { } return t }(), RL = function () { function t(t) { this.tokens = [], t && (this.tokens = t) } return t }(), zL = function () { function t() { this.width = 0, this.height = 0, this.contentWidth = 0, this.contentHeight = 0, this.outerWidth = 0, this.outerHeight = 0, this.lines = [] } return t }(), EL = m(",&?/;] ".split(""), function (t, e) { return t[e] = !0, t }, {}), NL = "__zr_style_" + Math.round(10 * Math.random()), BL = {shadowBlur: 0, shadowOffsetX: 0, shadowOffsetY: 0, shadowColor: "#000", opacity: 1, blend: "source-over"}, VL = {style: {shadowBlur: !0, shadowOffsetX: !0, shadowOffsetY: !0, shadowColor: !0, opacity: !0}}; BL[NL] = !0; var FL = ["z", "z2", "invisible"], GL = ["invisible"], HL = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype._init = function (e) { for (var n = b(e), i = 0; i < n.length; i++) { var r = n[i]; "style" === r ? this.useStyle(e[r]) : t.prototype.attrKV.call(this, r, e[r]) } this.style || this.useStyle({}) }, n.prototype.beforeBrush = function () { }, n.prototype.afterBrush = function () { }, n.prototype.innerBeforeBrush = function () { }, n.prototype.innerAfterBrush = function () { }, n.prototype.shouldBePainted = function (t, e, n, i) { var r = this.transform; if (this.ignore || this.invisible || 0 === this.style.opacity || this.culling && Wr(this, t, e) || r && !r[0] && !r[3]) return !1; if (n && this.__clipPaths) for (var o = 0; o < this.__clipPaths.length; ++o) if (this.__clipPaths[o].isZeroArea()) return !1; if (i && this.parent) for (var a = this.parent; a;) { if (a.ignore) return !1; a = a.parent } return !0 }, n.prototype.contain = function (t, e) { return this.rectContain(t, e) }, n.prototype.traverse = function (t, e) { t.call(e, this) }, n.prototype.rectContain = function (t, e) { var n = this.transformCoordToLocal(t, e), i = this.getBoundingRect(); return i.contain(n[0], n[1]) }, n.prototype.getPaintRect = function () { var t = this._paintRect; if (!this._paintRect || this.__dirty) { var e = this.transform, n = this.getBoundingRect(), i = this.style, r = i.shadowBlur || 0, o = i.shadowOffsetX || 0, a = i.shadowOffsetY || 0; t = this._paintRect || (this._paintRect = new $D(0, 0, 0, 0)), e ? $D.applyTransform(t, n, e) : t.copy(n), (r || o || a) && (t.width += 2 * r + Math.abs(o), t.height += 2 * r + Math.abs(a), t.x = Math.min(t.x, t.x + o - r), t.y = Math.min(t.y, t.y + a - r)); var s = this.dirtyRectTolerance; t.isZero() || (t.x = Math.floor(t.x - s), t.y = Math.floor(t.y - s), t.width = Math.ceil(t.width + 1 + 2 * s), t.height = Math.ceil(t.height + 1 + 2 * s)) } return t }, n.prototype.setPrevPaintRect = function (t) { t ? (this._prevPaintRect = this._prevPaintRect || new $D(0, 0, 0, 0), this._prevPaintRect.copy(t)) : this._prevPaintRect = null }, n.prototype.getPrevPaintRect = function () { return this._prevPaintRect }, n.prototype.animateStyle = function (t) { return this.animate("style", t) }, n.prototype.updateDuringAnimation = function (t) { "style" === t ? this.dirtyStyle() : this.markRedraw() }, n.prototype.attrKV = function (e, n) { "style" !== e ? t.prototype.attrKV.call(this, e, n) : this.style ? this.setStyle(n) : this.useStyle(n) }, n.prototype.setStyle = function (t, e) { return "string" == typeof t ? this.style[t] = e : h(this.style, t), this.dirtyStyle(), this }, n.prototype.dirtyStyle = function (t) { t || this.markRedraw(), this.__dirty |= qA, this._rect && (this._rect = null) }, n.prototype.dirty = function () { this.dirtyStyle() }, n.prototype.styleChanged = function () { return !!(this.__dirty & qA) }, n.prototype.styleUpdated = function () { this.__dirty &= ~qA }, n.prototype.createStyle = function (t) { return j(BL, t) }, n.prototype.useStyle = function (t) { t[NL] || (t = this.createStyle(t)), this.__inHover ? this.__hoverStyle = t : this.style = t, this.dirtyStyle() }, n.prototype.isStyleObject = function (t) { return t[NL] }, n.prototype._innerSaveToNormal = function (e) { t.prototype._innerSaveToNormal.call(this, e); var n = this._normalState; e.style && !n.style && (n.style = this._mergeStyle(this.createStyle(), this.style)), this._savePrimaryToNormal(e, n, FL) }, n.prototype._applyStateObj = function (e, n, i, r, o, a) { t.prototype._applyStateObj.call(this, e, n, i, r, o, a); var s, l = !(n && r); if (n && n.style ? o ? r ? s = n.style : (s = this._mergeStyle(this.createStyle(), i.style), this._mergeStyle(s, n.style)) : (s = this._mergeStyle(this.createStyle(), r ? this.style : i.style), this._mergeStyle(s, n.style)) : l && (s = i.style), s) if (o) { var u = this.style; if (this.style = this.createStyle(l ? {} : u), l) for (var h = b(u), c = 0; c < h.length; c++) { var p = h[c]; p in s && (s[p] = s[p], this.style[p] = u[p]) } for (var d = b(s), c = 0; c < d.length; c++) { var p = d[c]; this.style[p] = this.style[p] } this._transitionState(e, {style: s}, a, this.getAnimationStyleProps()) } else this.useStyle(s); for (var f = this.__inHover ? GL : FL, c = 0; c < f.length; c++) { var p = f[c]; n && null != n[p] ? this[p] = n[p] : l && null != i[p] && (this[p] = i[p]) } }, n.prototype._mergeStates = function (e) { for (var n, i = t.prototype._mergeStates.call(this, e), r = 0; r < e.length; r++) { var o = e[r]; o.style && (n = n || {}, this._mergeStyle(n, o.style)) } return n && (i.style = n), i }, n.prototype._mergeStyle = function (t, e) { return h(t, e), t }, n.prototype.getAnimationStyleProps = function () { return VL }, n.initDefaultProps = function () { var t = n.prototype; t.type = "displayable", t.invisible = !1, t.z = 0, t.z2 = 0, t.zlevel = 0, t.culling = !1, t.cursor = "pointer", t.rectHover = !1, t.incremental = !1, t._rect = null, t.dirtyRectTolerance = 0, t.__dirty = jA | qA }(), n }(aL), WL = new $D(0, 0, 0, 0), XL = new $D(0, 0, 0, 0), YL = Math.pow, ZL = Math.sqrt, UL = 1e-8, jL = 1e-4, qL = ZL(3), KL = 1 / 3, $L = $(), JL = $(), QL = $(), tk = Math.min, ek = Math.max, nk = Math.sin, ik = Math.cos, rk = 2 * Math.PI, ok = $(), ak = $(), sk = $(), lk = [], uk = [], hk = {M: 1, L: 2, C: 3, Q: 4, A: 5, Z: 6, R: 7}, ck = [], pk = [], dk = [], fk = [], gk = [], yk = [], vk = Math.min, mk = Math.max, xk = Math.cos, _k = Math.sin, bk = Math.sqrt, wk = Math.abs, Sk = Math.PI, Mk = 2 * Sk, Ik = "undefined" != typeof Float32Array, Tk = [], Ck = function () { function t(t) { this.dpr = 1, this._xi = 0, this._yi = 0, this._x0 = 0, this._y0 = 0, this._len = 0, t && (this._saveData = !1), this._saveData && (this.data = []) } return t.prototype.increaseVersion = function () { this._version++ }, t.prototype.getVersion = function () { return this._version }, t.prototype.setScale = function (t, e, n) { n = n || 0, n > 0 && (this._ux = wk(n / DD / t) || 0, this._uy = wk(n / DD / e) || 0) }, t.prototype.setDPR = function (t) { this.dpr = t }, t.prototype.setContext = function (t) { this._ctx = t }, t.prototype.getContext = function () { return this._ctx }, t.prototype.beginPath = function () { return this._ctx && this._ctx.beginPath(), this.reset(), this }, t.prototype.reset = function () { this._saveData && (this._len = 0), this._lineDash && (this._lineDash = null, this._dashOffset = 0), this._pathSegLen && (this._pathSegLen = null, this._pathLen = 0), this._version++ }, t.prototype.moveTo = function (t, e) { return this._drawPendingPt(), this.addData(hk.M, t, e), this._ctx && this._ctx.moveTo(t, e), this._x0 = t, this._y0 = e, this._xi = t, this._yi = e, this }, t.prototype.lineTo = function (t, e) { var n = wk(t - this._xi), i = wk(e - this._yi), r = n > this._ux || i > this._uy; if (this.addData(hk.L, t, e), this._ctx && r && (this._needsDash ? this._dashedLineTo(t, e) : this._ctx.lineTo(t, e)), r) this._xi = t, this._yi = e, this._pendingPtDist = 0; else { var o = n * n + i * i; o > this._pendingPtDist && (this._pendingPtX = t, this._pendingPtY = e, this._pendingPtDist = o) } return this }, t.prototype.bezierCurveTo = function (t, e, n, i, r, o) { return this.addData(hk.C, t, e, n, i, r, o), this._ctx && (this._needsDash ? this._dashedBezierTo(t, e, n, i, r, o) : this._ctx.bezierCurveTo(t, e, n, i, r, o)), this._xi = r, this._yi = o, this }, t.prototype.quadraticCurveTo = function (t, e, n, i) { return this.addData(hk.Q, t, e, n, i), this._ctx && (this._needsDash ? this._dashedQuadraticTo(t, e, n, i) : this._ctx.quadraticCurveTo(t, e, n, i)), this._xi = n, this._yi = i, this }, t.prototype.arc = function (t, e, n, i, r, o) { Tk[0] = i, Tk[1] = r, po(Tk, o), i = Tk[0], r = Tk[1]; var a = r - i; return this.addData(hk.A, t, e, n, n, i, a, 0, o ? 0 : 1), this._ctx && this._ctx.arc(t, e, n, i, r, o), this._xi = xk(r) * n + t, this._yi = _k(r) * n + e, this }, t.prototype.arcTo = function (t, e, n, i, r) { return this._ctx && this._ctx.arcTo(t, e, n, i, r), this }, t.prototype.rect = function (t, e, n, i) { return this._ctx && this._ctx.rect(t, e, n, i), this.addData(hk.R, t, e, n, i), this }, t.prototype.closePath = function () { this._drawPendingPt(), this.addData(hk.Z); var t = this._ctx, e = this._x0, n = this._y0; return t && (this._needsDash && this._dashedLineTo(e, n), t.closePath()), this._xi = e, this._yi = n, this }, t.prototype.fill = function (t) { t && t.fill(), this.toStatic() }, t.prototype.stroke = function (t) { t && t.stroke(), this.toStatic() }, t.prototype.setLineDash = function (t) { if (t instanceof Array) { this._lineDash = t, this._dashIdx = 0; for (var e = 0, n = 0; n < t.length; n++) e += t[n]; this._dashSum = e, this._needsDash = !0 } else this._lineDash = null, this._needsDash = !1; return this }, t.prototype.setLineDashOffset = function (t) { return this._dashOffset = t, this }, t.prototype.len = function () { return this._len }, t.prototype.setData = function (t) { var e = t.length; this.data && this.data.length === e || !Ik || (this.data = new Float32Array(e)); for (var n = 0; e > n; n++) this.data[n] = t[n]; this._len = e }, t.prototype.appendPath = function (t) { t instanceof Array || (t = [t]); for (var e = t.length, n = 0, i = this._len, r = 0; e > r; r++) n += t[r].len(); Ik && this.data instanceof Float32Array && (this.data = new Float32Array(i + n)); for (var r = 0; e > r; r++) for (var o = t[r].data, a = 0; a < o.length; a++) this.data[i++] = o[a]; this._len = i }, t.prototype.addData = function () { if (this._saveData) { var t = this.data; this._len + arguments.length > t.length && (this._expandData(), t = this.data); for (var e = 0; e < arguments.length; e++) t[this._len++] = arguments[e] } }, t.prototype._drawPendingPt = function () { this._pendingPtDist > 0 && (this._ctx && this._ctx.lineTo(this._pendingPtX, this._pendingPtY), this._pendingPtDist = 0) }, t.prototype._expandData = function () { if (!(this.data instanceof Array)) { for (var t = [], e = 0; e < this._len; e++) t[e] = this.data[e]; this.data = t } }, t.prototype._dashedLineTo = function (t, e) { var n, i, r = this._dashSum, o = this._lineDash, a = this._ctx, s = this._dashOffset, l = this._xi, u = this._yi, h = t - l, c = e - u, p = bk(h * h + c * c), d = l, f = u, g = o.length; for (h /= p, c /= p, 0 > s && (s = r + s), s %= r, d -= s * h, f -= s * c; h > 0 && t >= d || 0 > h && d >= t || 0 === h && (c > 0 && e >= f || 0 > c && f >= e);) i = this._dashIdx, n = o[i], d += h * n, f += c * n, this._dashIdx = (i + 1) % g, h > 0 && l > d || 0 > h && d > l || c > 0 && u > f || 0 > c && f > u || a[i % 2 ? "moveTo" : "lineTo"](h >= 0 ? vk(d, t) : mk(d, t), c >= 0 ? vk(f, e) : mk(f, e)); h = d - t, c = f - e, this._dashOffset = -bk(h * h + c * c) }, t.prototype._dashedBezierTo = function (t, e, n, i, r, o) { var a, s, l, u, h, c = this._ctx, p = this._dashSum, d = this._dashOffset, f = this._lineDash, g = this._xi, y = this._yi, v = 0, m = this._dashIdx, x = f.length, _ = 0; for (0 > d && (d = p + d), d %= p, a = 0; 1 > a; a += .1) s = Zr(g, t, n, r, a + .1) - Zr(g, t, n, r, a), l = Zr(y, e, i, o, a + .1) - Zr(y, e, i, o, a), v += bk(s * s + l * l); for (; x > m && (_ += f[m], !(_ > d)); m++) ; for (a = (_ - d) / v; 1 >= a;) u = Zr(g, t, n, r, a), h = Zr(y, e, i, o, a), m % 2 ? c.moveTo(u, h) : c.lineTo(u, h), a += f[m] / v, m = (m + 1) % x; m % 2 !== 0 && c.lineTo(r, o), s = r - u, l = o - h, this._dashOffset = -bk(s * s + l * l) }, t.prototype._dashedQuadraticTo = function (t, e, n, i) { var r = n, o = i; n = (n + 2 * t) / 3, i = (i + 2 * e) / 3, t = (this._xi + 2 * t) / 3, e = (this._yi + 2 * e) / 3, this._dashedBezierTo(t, e, n, i, r, o) }, t.prototype.toStatic = function () { if (this._saveData) { this._drawPendingPt(); var t = this.data; t instanceof Array && (t.length = this._len, Ik && this._len > 11 && (this.data = new Float32Array(t))) } }, t.prototype.getBoundingRect = function () { dk[0] = dk[1] = gk[0] = gk[1] = Number.MAX_VALUE, fk[0] = fk[1] = yk[0] = yk[1] = -Number.MAX_VALUE; var t, e = this.data, n = 0, i = 0, r = 0, o = 0; for (t = 0; t < this._len;) { var a = e[t++], s = 1 === t; switch (s && (n = e[t], i = e[t + 1], r = n, o = i), a) { case hk.M: n = r = e[t++], i = o = e[t++], gk[0] = r, gk[1] = o, yk[0] = r, yk[1] = o; break; case hk.L: so(n, i, e[t], e[t + 1], gk, yk), n = e[t++], i = e[t++]; break; case hk.C: lo(n, i, e[t++], e[t++], e[t++], e[t++], e[t], e[t + 1], gk, yk), n = e[t++], i = e[t++]; break; case hk.Q: uo(n, i, e[t++], e[t++], e[t], e[t + 1], gk, yk), n = e[t++], i = e[t++]; break; case hk.A: var l = e[t++], u = e[t++], h = e[t++], c = e[t++], p = e[t++], d = e[t++] + p; t += 1; var f = !e[t++]; s && (r = xk(p) * h + l, o = _k(p) * c + u), ho(l, u, h, c, p, d, f, gk, yk), n = xk(d) * h + l, i = _k(d) * c + u; break; case hk.R: r = n = e[t++], o = i = e[t++]; var g = e[t++], y = e[t++]; so(r, o, r + g, o + y, gk, yk); break; case hk.Z: n = r, i = o } ye(dk, dk, gk), ve(fk, fk, yk) } return 0 === t && (dk[0] = dk[1] = fk[0] = fk[1] = 0), new $D(dk[0], dk[1], fk[0] - dk[0], fk[1] - dk[1]) }, t.prototype._calculateLength = function () { var t = this.data, e = this._len, n = this._ux, i = this._uy, r = 0, o = 0, a = 0, s = 0; this._pathSegLen || (this._pathSegLen = []); for (var l = this._pathSegLen, u = 0, h = 0, c = 0; e > c;) { var p = t[c++], d = 1 === c; d && (r = t[c], o = t[c + 1], a = r, s = o); var f = -1; switch (p) { case hk.M: r = a = t[c++], o = s = t[c++]; break; case hk.L: var g = t[c++], y = t[c++], v = g - r, m = y - o; (wk(v) > n || wk(m) > i || c === e - 1) && (f = Math.sqrt(v * v + m * m), r = g, o = y); break; case hk.C: var x = t[c++], _ = t[c++], g = t[c++], y = t[c++], b = t[c++], w = t[c++]; f = Jr(r, o, x, _, g, y, b, w, 10), r = b, o = w; break; case hk.Q: var x = t[c++], _ = t[c++], g = t[c++], y = t[c++]; f = oo(r, o, x, _, g, y, 10), r = g, o = y; break; case hk.A: var S = t[c++], M = t[c++], I = t[c++], T = t[c++], C = t[c++], A = t[c++], D = A + C; c += 1; { !t[c++] } d && (a = xk(C) * I + S, s = _k(C) * T + M), f = mk(I, T) * vk(Mk, Math.abs(A)), r = xk(D) * I + S, o = _k(D) * T + M; break; case hk.R: a = r = t[c++], s = o = t[c++]; var L = t[c++], k = t[c++]; f = 2 * L + 2 * k; break; case hk.Z: var v = a - r, m = s - o; f = Math.sqrt(v * v + m * m), r = a, o = s } f >= 0 && (l[h++] = f, u += f) } return this._pathLen = u, u }, t.prototype.rebuildPath = function (t, e) { var n, i, r, o, a, s, l, u, h, c, p, d = this.data, f = this._ux, g = this._uy, y = this._len, v = 1 > e, m = 0, x = 0, _ = 0; if (!v || (this._pathSegLen || this._calculateLength(), l = this._pathSegLen, u = this._pathLen, h = e * u)) t:for (var b = 0; y > b;) { var w = d[b++], S = 1 === b; switch (S && (r = d[b], o = d[b + 1], n = r, i = o), w) { case hk.M: _ > 0 && (t.lineTo(c, p), _ = 0), n = r = d[b++], i = o = d[b++], t.moveTo(r, o); break; case hk.L: a = d[b++], s = d[b++]; var M = wk(a - r), I = wk(s - o); if (M > f || I > g) { if (v) { var T = l[x++]; if (m + T > h) { var C = (h - m) / T; t.lineTo(r * (1 - C) + a * C, o * (1 - C) + s * C); break t } m += T } t.lineTo(a, s), r = a, o = s, _ = 0 } else { var A = M * M + I * I; A > _ && (c = a, p = s, _ = A) } break; case hk.C: var D = d[b++], L = d[b++], k = d[b++], P = d[b++], O = d[b++], R = d[b++]; if (v) { var T = l[x++]; if (m + T > h) { var C = (h - m) / T; Kr(r, D, k, O, C, ck), Kr(o, L, P, R, C, pk), t.bezierCurveTo(ck[1], pk[1], ck[2], pk[2], ck[3], pk[3]); break t } m += T } t.bezierCurveTo(D, L, k, P, O, R), r = O, o = R; break; case hk.Q: var D = d[b++], L = d[b++], k = d[b++], P = d[b++]; if (v) { var T = l[x++]; if (m + T > h) { var C = (h - m) / T; io(r, D, k, C, ck), io(o, L, P, C, pk), t.quadraticCurveTo(ck[1], pk[1], ck[2], pk[2]); break t } m += T } t.quadraticCurveTo(D, L, k, P), r = k, o = P; break; case hk.A: var z = d[b++], E = d[b++], N = d[b++], B = d[b++], V = d[b++], F = d[b++], G = d[b++], H = !d[b++], W = N > B ? N : B, X = wk(N - B) > .001, Y = V + F, Z = !1; if (v) { var T = l[x++]; m + T > h && (Y = V + F * (h - m) / T, Z = !0), m += T } if (X && t.ellipse ? t.ellipse(z, E, N, B, G, V, Y, H) : t.arc(z, E, W, V, Y, H), Z) break t; S && (n = xk(V) * N + z, i = _k(V) * B + E), r = xk(Y) * N + z, o = _k(Y) * B + E; break; case hk.R: n = r = d[b], i = o = d[b + 1], a = d[b++], s = d[b++]; var U = d[b++], j = d[b++]; if (v) { var T = l[x++]; if (m + T > h) { var q = h - m; t.moveTo(a, s), t.lineTo(a + vk(q, U), s), q -= U, q > 0 && t.lineTo(a + U, s + vk(q, j)), q -= j, q > 0 && t.lineTo(a + mk(U - q, 0), s + j), q -= U, q > 0 && t.lineTo(a, s + mk(j - q, 0)); break t } m += T } t.rect(a, s, U, j); break; case hk.Z: if (_ > 0 && (t.lineTo(c, p), _ = 0), v) { var T = l[x++]; if (m + T > h) { var C = (h - m) / T; t.lineTo(r * (1 - C) + n * C, o * (1 - C) + i * C); break t } m += T } t.closePath(), r = n, o = i } } }, t.CMD = hk, t.initDefaultProps = function () { var e = t.prototype; e._saveData = !0, e._needsDash = !1, e._dashOffset = 0, e._dashIdx = 0, e._dashSum = 0, e._ux = 0, e._uy = 0, e._pendingPtDist = 0, e._version = 0 }(), t }(), Ak = 2 * Math.PI, Dk = 2 * Math.PI, Lk = Ck.CMD, kk = 2 * Math.PI, Pk = 1e-4, Ok = [-1, -1, -1], Rk = [-1, -1], zk = c({ fill: "#000", stroke: null, strokePercent: 1, fillOpacity: 1, strokeOpacity: 1, lineDashOffset: 0, lineWidth: 1, lineCap: "butt", miterLimit: 10, strokeNoScale: !1, strokeFirst: !1 }, BL), Ek = { style: c({ fill: !0, stroke: !0, strokePercent: !0, fillOpacity: !0, strokeOpacity: !0, lineDashOffset: !0, lineWidth: !0, miterLimit: !0 }, VL.style) }, Nk = ["x", "y", "rotation", "scaleX", "scaleY", "originX", "originY", "invisible", "culling", "z", "z2", "zlevel", "parent"], Bk = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.update = function () { var e = this; t.prototype.update.call(this); var i = this.style; if (i.decal) { var r = this._decalEl = this._decalEl || new n; r.buildPath === n.prototype.buildPath && (r.buildPath = function (t) { e.buildPath(t, e.shape) }), r.silent = !0; var o = r.style; for (var a in i) o[a] !== i[a] && (o[a] = i[a]); o.fill = i.fill ? i.decal : null, o.decal = null, o.shadowColor = null, i.strokeFirst && (o.stroke = null); for (var s = 0; s < Nk.length; ++s) r[Nk[s]] = this[Nk[s]]; r.__dirty |= jA } else this._decalEl && (this._decalEl = null) }, n.prototype.getDecalElement = function () { return this._decalEl }, n.prototype._init = function (e) { var n = b(e); this.shape = this.getDefaultShape(); var i = this.getDefaultStyle(); i && this.useStyle(i); for (var r = 0; r < n.length; r++) { var o = n[r], a = e[o]; "style" === o ? this.style ? h(this.style, a) : this.useStyle(a) : "shape" === o ? h(this.shape, a) : t.prototype.attrKV.call(this, o, a) } this.style || this.useStyle({}) }, n.prototype.getDefaultStyle = function () { return null }, n.prototype.getDefaultShape = function () { return {} }, n.prototype.canBeInsideText = function () { return this.hasFill() }, n.prototype.getInsideTextFill = function () { var t = this.style.fill; if ("none" !== t) { if (T(t)) { var e = yn(t, 0); return e > .5 ? kD : e > .2 ? OD : PD } if (t) return PD } return kD }, n.prototype.getInsideTextStroke = function (t) { var e = this.style.fill; if (T(e)) { var n = this.__zr, i = !(!n || !n.isDarkMode()), r = yn(t, 0) < LD; if (i === r) return e } }, n.prototype.buildPath = function () { }, n.prototype.pathUpdated = function () { this.__dirty &= ~KA }, n.prototype.createPathProxy = function () { this.path = new Ck(!1) }, n.prototype.hasStroke = function () { var t = this.style, e = t.stroke; return !(null == e || "none" === e || !(t.lineWidth > 0)) }, n.prototype.hasFill = function () { var t = this.style, e = t.fill; return null != e && "none" !== e }, n.prototype.getBoundingRect = function () { var t = this._rect, e = this.style, n = !t; if (n) { var i = !1; this.path || (i = !0, this.createPathProxy()); var r = this.path; (i || this.__dirty & KA) && (r.beginPath(), this.buildPath(r, this.shape, !1), this.pathUpdated()), t = r.getBoundingRect() } if (this._rect = t, this.hasStroke() && this.path && this.path.len() > 0) { var o = this._rectWithStroke || (this._rectWithStroke = t.clone()); if (this.__dirty || n) { o.copy(t); var a = e.strokeNoScale ? this.getLineScale() : 1, s = e.lineWidth; if (!this.hasFill()) { var l = this.strokeContainThreshold; s = Math.max(s, null == l ? 4 : l) } a > 1e-10 && (o.width += s / a, o.height += s / a, o.x -= s / a / 2, o.y -= s / a / 2) } return o } return t }, n.prototype.contain = function (t, e) { var n = this.transformCoordToLocal(t, e), i = this.getBoundingRect(), r = this.style; if (t = n[0], e = n[1], i.contain(t, e)) { var o = this.path; if (this.hasStroke()) { var a = r.lineWidth, s = r.strokeNoScale ? this.getLineScale() : 1; if (s > 1e-10 && (this.hasFill() || (a = Math.max(a, this.strokeContainThreshold)), Co(o, a / s, t, e))) return !0 } if (this.hasFill()) return To(o, t, e) } return !1 }, n.prototype.dirtyShape = function () { this.__dirty |= KA, this._rect && (this._rect = null), this._decalEl && this._decalEl.dirtyShape(), this.markRedraw() }, n.prototype.dirty = function () { this.dirtyStyle(), this.dirtyShape() }, n.prototype.animateShape = function (t) { return this.animate("shape", t) }, n.prototype.updateDuringAnimation = function (t) { "style" === t ? this.dirtyStyle() : "shape" === t ? this.dirtyShape() : this.markRedraw() }, n.prototype.attrKV = function (e, n) { "shape" === e ? this.setShape(n) : t.prototype.attrKV.call(this, e, n) }, n.prototype.setShape = function (t, e) { var n = this.shape; return n || (n = this.shape = {}), "string" == typeof t ? n[t] = e : h(n, t), this.dirtyShape(), this }, n.prototype.shapeChanged = function () { return !!(this.__dirty & KA) }, n.prototype.createStyle = function (t) { return j(zk, t) }, n.prototype._innerSaveToNormal = function (e) { t.prototype._innerSaveToNormal.call(this, e); var n = this._normalState; e.shape && !n.shape && (n.shape = h({}, this.shape)) }, n.prototype._applyStateObj = function (e, n, i, r, o, a) { t.prototype._applyStateObj.call(this, e, n, i, r, o, a); var s, l = !(n && r); if (n && n.shape ? o ? r ? s = n.shape : (s = h({}, i.shape), h(s, n.shape)) : (s = h({}, r ? this.shape : i.shape), h(s, n.shape)) : l && (s = i.shape), s) if (o) { this.shape = h({}, this.shape); for (var u = {}, c = b(s), p = 0; p < c.length; p++) { var d = c[p]; "object" == typeof s[d] ? this.shape[d] = s[d] : u[d] = s[d] } this._transitionState(e, {shape: u}, a) } else this.shape = s, this.dirtyShape() }, n.prototype._mergeStates = function (e) { for (var n, i = t.prototype._mergeStates.call(this, e), r = 0; r < e.length; r++) { var o = e[r]; o.shape && (n = n || {}, this._mergeStyle(n, o.shape)) } return n && (i.shape = n), i }, n.prototype.getAnimationStyleProps = function () { return Ek }, n.prototype.isZeroArea = function () { return !1 }, n.extend = function (t) { var i = function (n) { function i(e) { var i = n.call(this, e) || this; return t.init && t.init.call(i, e), i } return e(i, n), i.prototype.getDefaultStyle = function () { return s(t.style) }, i.prototype.getDefaultShape = function () { return s(t.shape) }, i }(n); for (var r in t) "function" == typeof t[r] && (i.prototype[r] = t[r]); return i }, n.initDefaultProps = function () { var t = n.prototype; t.type = "path", t.strokeContainThreshold = 5, t.segmentIgnoreThreshold = 0, t.subPixelOptimize = !1, t.autoBatch = !1, t.__dirty = jA | qA | KA }(), n }(HL), Vk = c({strokeFirst: !0, font: QD, x: 0, y: 0, textAlign: "left", textBaseline: "top", miterLimit: 2}, zk), Fk = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.hasStroke = function () { var t = this.style, e = t.stroke; return null != e && "none" !== e && t.lineWidth > 0 }, n.prototype.hasFill = function () { var t = this.style, e = t.fill; return null != e && "none" !== e }, n.prototype.createStyle = function (t) { return j(Vk, t) }, n.prototype.setBoundingRect = function (t) { this._rect = t }, n.prototype.getBoundingRect = function () { var t = this.style; if (!this._rect) { var e = t.text; null != e ? e += "" : e = ""; var n = ti(e, t.font, t.textAlign, t.textBaseline); if (n.x += t.x || 0, n.y += t.y || 0, this.hasStroke()) { var i = t.lineWidth; n.x -= i / 2, n.y -= i / 2, n.width += i, n.height += i } this._rect = n } return this._rect }, n.initDefaultProps = function () { var t = n.prototype; t.dirtyRectTolerance = 10 }(), n }(HL); Fk.prototype.type = "tspan"; var Gk = c({x: 0, y: 0}, BL), Hk = {style: c({x: !0, y: !0, width: !0, height: !0, sx: !0, sy: !0, sWidth: !0, sHeight: !0}, VL.style)}, Wk = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.createStyle = function (t) { return j(Gk, t) }, n.prototype._getSize = function (t) { var e = this.style, n = e[t]; if (null != n) return n; var i = Ao(e.image) ? e.image : this.__image; if (!i) return 0; var r = "width" === t ? "height" : "width", o = e[r]; return null == o ? i[t] : i[t] / i[r] * o }, n.prototype.getWidth = function () { return this._getSize("width") }, n.prototype.getHeight = function () { return this._getSize("height") }, n.prototype.getAnimationStyleProps = function () { return Hk }, n.prototype.getBoundingRect = function () { var t = this.style; return this._rect || (this._rect = new $D(t.x || 0, t.y || 0, this.getWidth(), this.getHeight())), this._rect }, n }(HL); Wk.prototype.type = "image"; var Xk = Math.round, Yk = function () { function t() { this.x = 0, this.y = 0, this.width = 0, this.height = 0 } return t }(), Zk = {}, Uk = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultShape = function () { return new Yk }, n.prototype.buildPath = function (t, e) { var n, i, r, o; if (this.subPixelOptimize) { var a = ko(Zk, e, this.style); n = a.x, i = a.y, r = a.width, o = a.height, a.r = e.r, e = a } else n = e.x, i = e.y, r = e.width, o = e.height; e.r ? Do(t, e) : t.rect(n, i, r, o) }, n.prototype.isZeroArea = function () { return !this.shape.width || !this.shape.height }, n }(Bk); Uk.prototype.type = "rect"; var jk = {fill: "#000"}, qk = 2, Kk = { style: c({ fill: !0, stroke: !0, fillOpacity: !0, strokeOpacity: !0, lineWidth: !0, fontSize: !0, lineHeight: !0, width: !0, height: !0, textShadowColor: !0, textShadowBlur: !0, textShadowOffsetX: !0, textShadowOffsetY: !0, backgroundColor: !0, padding: !0, borderColor: !0, borderWidth: !0, borderRadius: !0 }, VL.style) }, $k = function (t) { function n(e) { var n = t.call(this) || this; return n.type = "text", n._children = [], n._defaultStyle = jk, n.attr(e), n } return e(n, t), n.prototype.childrenRef = function () { return this._children }, n.prototype.update = function () { this.styleChanged() && this._updateSubTexts(); for (var e = 0; e < this._children.length; e++) { var n = this._children[e]; n.zlevel = this.zlevel, n.z = this.z, n.z2 = this.z2, n.culling = this.culling, n.cursor = this.cursor, n.invisible = this.invisible } var i = this.attachedTransform; if (i) { i.updateTransform(); var r = i.transform; r ? (this.transform = this.transform || [], Wn(this.transform, r)) : this.transform = null } else t.prototype.update.call(this) }, n.prototype.getComputedTransform = function () { return this.__hostTarget && (this.__hostTarget.getComputedTransform(), this.__hostTarget.updateInnerText(!0)), this.attachedTransform ? this.attachedTransform.getComputedTransform() : t.prototype.getComputedTransform.call(this) }, n.prototype._updateSubTexts = function () { this._childCursor = 0, Oo(this.style), this.style.rich ? this._updateRichTexts() : this._updatePlainTexts(), this._children.length = this._childCursor, this.styleUpdated() }, n.prototype.addSelfToZr = function (e) { t.prototype.addSelfToZr.call(this, e); for (var n = 0; n < this._children.length; n++) this._children[n].__zr = e }, n.prototype.removeSelfFromZr = function (e) { t.prototype.removeSelfFromZr.call(this, e); for (var n = 0; n < this._children.length; n++) this._children[n].__zr = null }, n.prototype.getBoundingRect = function () { if (this.styleChanged() && this._updateSubTexts(), !this._rect) { for (var t = new $D(0, 0, 0, 0), e = this._children, n = [], i = null, r = 0; r < e.length; r++) { var o = e[r], a = o.getBoundingRect(), s = o.getLocalTransform(n); s ? (t.copy(a), t.applyTransform(s), i = i || t.clone(), i.union(t)) : (i = i || a.clone(), i.union(a)) } this._rect = i || t } return this._rect }, n.prototype.setDefaultTextStyle = function (t) { this._defaultStyle = t || jk }, n.prototype.setTextContent = function () { throw new Error("Can't attach text on another text") }, n.prototype._mergeStyle = function (t, e) { if (!e) return t; var n = e.rich, i = t.rich || n && {}; return h(t, e), n && i ? (this._mergeRich(i, n), t.rich = i) : i && (t.rich = i), t }, n.prototype._mergeRich = function (t, e) { for (var n = b(e), i = 0; i < n.length; i++) { var r = n[i]; t[r] = t[r] || {}, h(t[r], e[r]) } }, n.prototype.getAnimationStyleProps = function () { return Kk }, n.prototype._getOrCreateChild = function (t) { var e = this._children[this._childCursor]; return e && e instanceof t || (e = new t), this._children[this._childCursor++] = e, e.__zr = this.__zr, e.parent = this, e }, n.prototype._updatePlainTexts = function () { var t = this.style, e = t.font || QD, n = t.padding, i = Bo(t), r = Nr(i, t), o = Vo(t), a = !!t.backgroundColor, s = r.outerHeight, l = r.lines, u = r.lineHeight, h = this._defaultStyle, c = t.x || 0, p = t.y || 0, d = t.align || h.align || "left", f = t.verticalAlign || h.verticalAlign || "top", g = c, y = ni(p, r.contentHeight, f); if (o || n) { var v = r.width; n && (v += n[1] + n[3]); var m = ei(c, v, d), x = ni(p, s, f); o && this._renderBackground(t, t, m, x, v, s) } y += u / 2, n && (g = No(c, d, n), "top" === f ? y += n[0] : "bottom" === f && (y -= n[2])); for (var _ = 0, b = !1, w = (Eo("fill" in t ? t.fill : (b = !0, h.fill))), S = (zo("stroke" in t ? t.stroke : a || h.autoStroke && !b ? null : (_ = qk, h.stroke))), M = t.textShadowBlur > 0, I = null != t.width && ("truncate" === t.overflow || "break" === t.overflow || "breakAll" === t.overflow), T = r.calculatedLineHeight, C = 0; C < l.length; C++) { var A = this._getOrCreateChild(Fk), D = A.createStyle(); A.useStyle(D), D.text = l[C], D.x = g, D.y = y, d && (D.textAlign = d), D.textBaseline = "middle", D.opacity = t.opacity, D.strokeFirst = !0, M && (D.shadowBlur = t.textShadowBlur || 0, D.shadowColor = t.textShadowColor || "transparent", D.shadowOffsetX = t.textShadowOffsetX || 0, D.shadowOffsetY = t.textShadowOffsetY || 0), S && (D.stroke = S, D.lineWidth = t.lineWidth || _, D.lineDash = t.lineDash, D.lineDashOffset = t.lineDashOffset || 0), w && (D.fill = w), D.font = e, y += u, I && A.setBoundingRect(new $D(ei(D.x, t.width, D.textAlign), ni(D.y, T, D.textBaseline), t.width, T)) } }, n.prototype._updateRichTexts = function () { var t = this.style, e = Bo(t), n = Br(e, t), i = n.width, r = n.outerWidth, o = n.outerHeight, a = t.padding, s = t.x || 0, l = t.y || 0, u = this._defaultStyle, h = t.align || u.align, c = t.verticalAlign || u.verticalAlign, p = ei(s, r, h), d = ni(l, o, c), f = p, g = d; a && (f += a[3], g += a[0]); var y = f + i; Vo(t) && this._renderBackground(t, t, p, d, r, o); for (var v = !!t.backgroundColor, m = 0; m < n.lines.length; m++) { for (var x = n.lines[m], _ = x.tokens, b = _.length, w = x.lineHeight, S = x.width, M = 0, I = f, T = y, C = b - 1, A = void 0; b > M && (A = _[M], !A.align || "left" === A.align);) this._placeToken(A, t, w, g, I, "left", v), S -= A.width, I += A.width, M++; for (; C >= 0 && (A = _[C], "right" === A.align);) this._placeToken(A, t, w, g, T, "right", v), S -= A.width, T -= A.width, C--; for (I += (i - (I - f) - (y - T) - S) / 2; C >= M;) A = _[M], this._placeToken(A, t, w, g, I + A.width / 2, "center", v), I += A.width, M++; g += w } }, n.prototype._placeToken = function (t, e, n, i, r, o, a) { var s = e.rich[t.styleName] || {}; s.text = t.text; var l = t.verticalAlign, u = i + n / 2; "top" === l ? u = i + t.height / 2 : "bottom" === l && (u = i + n - t.height / 2); var h = !t.isLineHolder && Vo(s); h && this._renderBackground(s, e, "right" === o ? r - t.width : "center" === o ? r - t.width / 2 : r, u - t.height / 2, t.width, t.height); var c = !!s.backgroundColor, p = t.textPadding; p && (r = No(r, o, p), u -= t.height / 2 - p[0] - t.innerHeight / 2); var d = this._getOrCreateChild(Fk), f = d.createStyle(); d.useStyle(f); var g = this._defaultStyle, y = !1, v = 0, m = zo("fill" in s ? s.fill : "fill" in e ? e.fill : (y = !0, g.fill)), x = zo("stroke" in s ? s.stroke : "stroke" in e ? e.stroke : c || a || g.autoStroke && !y ? null : (v = qk, g.stroke)), _ = s.textShadowBlur > 0 || e.textShadowBlur > 0; f.text = t.text, f.x = r, f.y = u, _ && (f.shadowBlur = s.textShadowBlur || e.textShadowBlur || 0, f.shadowColor = s.textShadowColor || e.textShadowColor || "transparent", f.shadowOffsetX = s.textShadowOffsetX || e.textShadowOffsetX || 0, f.shadowOffsetY = s.textShadowOffsetY || e.textShadowOffsetY || 0), f.textAlign = o, f.textBaseline = "middle", f.font = t.font || QD, f.opacity = V(s.opacity, e.opacity, 1), x && (f.lineWidth = V(s.lineWidth, e.lineWidth, v), f.lineDash = B(s.lineDash, e.lineDash), f.lineDashOffset = e.lineDashOffset || 0, f.stroke = x), m && (f.fill = m); var b = t.contentWidth, w = t.contentHeight; d.setBoundingRect(new $D(ei(f.x, b, f.textAlign), ni(f.y, w, f.textBaseline), b, w)) }, n.prototype._renderBackground = function (t, e, n, i, r, o) { var a, s, l = t.backgroundColor, u = t.borderWidth, h = t.borderColor, c = l && l.image, p = l && !c, d = t.borderRadius, f = this; if (p || u && h) { a = this._getOrCreateChild(Uk), a.useStyle(a.createStyle()), a.style.fill = null; var g = a.shape; g.x = n, g.y = i, g.width = r, g.height = o, g.r = d, a.dirtyShape() } if (p) { var y = a.style; y.fill = l || null, y.fillOpacity = B(t.fillOpacity, 1) } else if (c) { s = this._getOrCreateChild(Wk), s.onload = function () { f.dirtyStyle() }; var v = s.style; v.image = l.image, v.x = n, v.y = i, v.width = r, v.height = o } if (u && h) { var y = a.style; y.lineWidth = u, y.stroke = h, y.strokeOpacity = B(t.strokeOpacity, 1), y.lineDash = t.borderDash, y.lineDashOffset = t.borderDashOffset || 0, a.strokeContainThreshold = 0, a.hasFill() && a.hasStroke() && (y.strokeFirst = !0, y.lineWidth *= 2) } var m = (a || s).style; m.shadowBlur = t.shadowBlur || 0, m.shadowColor = t.shadowColor || "transparent", m.shadowOffsetX = t.shadowOffsetX || 0, m.shadowOffsetY = t.shadowOffsetY || 0, m.opacity = V(t.opacity, e.opacity, 1) }, n.makeFont = function (t) { var e = ""; if (t.fontSize || t.fontFamily || t.fontWeight) { var n = ""; n = "string" != typeof t.fontSize || -1 === t.fontSize.indexOf("px") && -1 === t.fontSize.indexOf("rem") && -1 === t.fontSize.indexOf("em") ? isNaN(+t.fontSize) ? "12px" : t.fontSize + "px" : t.fontSize, e = [t.fontStyle, t.fontWeight, n, t.fontFamily || "sans-serif"].join(" ") } return e && W(e) || t.textFont || t.font }, n }(HL), Jk = {left: !0, right: 1, center: 1}, Qk = {top: 1, bottom: 1, middle: 1}, tP = ur(), eP = 1, nP = {}, iP = ur(), rP = 0, oP = 1, aP = 2, sP = ["emphasis", "blur", "select"], lP = ["normal", "emphasis", "blur", "select"], uP = 10, hP = 9, cP = "highlight", pP = "downplay", dP = "select", fP = "unselect", gP = "toggleSelect", yP = new rD(100), vP = ["emphasis", "blur", "select"], mP = {itemStyle: "getItemStyle", lineStyle: "getLineStyle", areaStyle: "getAreaStyle"}, xP = Ck.CMD, _P = [[], [], []], bP = Math.sqrt, wP = Math.atan2, SP = Math.sqrt, MP = Math.sin, IP = Math.cos, TP = Math.PI, CP = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi, AP = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g, DP = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.applyTransform = function () { }, n }(Bk), LP = function () { function t() { this.cx = 0, this.cy = 0, this.r = 0 } return t }(), kP = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultShape = function () { return new LP }, n.prototype.buildPath = function (t, e, n) { n && t.moveTo(e.cx + e.r, e.cy), t.arc(e.cx, e.cy, e.r, 0, 2 * Math.PI) }, n }(Bk); kP.prototype.type = "circle"; var PP = function () { function t() { this.cx = 0, this.cy = 0, this.rx = 0, this.ry = 0 } return t }(), OP = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultShape = function () { return new PP }, n.prototype.buildPath = function (t, e) { var n = .5522848, i = e.cx, r = e.cy, o = e.rx, a = e.ry, s = o * n, l = a * n; t.moveTo(i - o, r), t.bezierCurveTo(i - o, r - l, i - s, r - a, i, r - a), t.bezierCurveTo(i + s, r - a, i + o, r - l, i + o, r), t.bezierCurveTo(i + o, r + l, i + s, r + a, i, r + a), t.bezierCurveTo(i - s, r + a, i - o, r + l, i - o, r), t.closePath() }, n }(Bk); OP.prototype.type = "ellipse"; var RP = Math.PI, zP = 2 * RP, EP = Math.sin, NP = Math.cos, BP = Math.acos, VP = Math.atan2, FP = Math.abs, GP = Math.sqrt, HP = Math.max, WP = Math.min, XP = 1e-4, YP = function () { function t() { this.cx = 0, this.cy = 0, this.r0 = 0, this.r = 0, this.startAngle = 0, this.endAngle = 2 * Math.PI, this.clockwise = !0, this.cornerRadius = 0, this.innerCornerRadius = 0 } return t }(), ZP = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultShape = function () { return new YP }, n.prototype.buildPath = function (t, e) { Za(t, e) }, n.prototype.isZeroArea = function () { return this.shape.startAngle === this.shape.endAngle || this.shape.r === this.shape.r0 }, n }(Bk); ZP.prototype.type = "sector"; var UP = function () { function t() { this.cx = 0, this.cy = 0, this.r = 0, this.r0 = 0 } return t }(), jP = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultShape = function () { return new UP }, n.prototype.buildPath = function (t, e) { var n = e.cx, i = e.cy, r = 2 * Math.PI; t.moveTo(n + e.r, i), t.arc(n, i, e.r, 0, r, !1), t.moveTo(n + e.r0, i), t.arc(n, i, e.r0, 0, r, !0) }, n }(Bk); jP.prototype.type = "ring"; var qP = function () { function t() { this.points = null, this.smooth = 0, this.smoothConstraint = null } return t }(), KP = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultShape = function () { return new qP }, n.prototype.buildPath = function (t, e) { Ka(t, e, !0) }, n }(Bk); KP.prototype.type = "polygon"; var $P = function () { function t() { this.points = null, this.percent = 1, this.smooth = 0, this.smoothConstraint = null } return t }(), JP = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultStyle = function () { return {stroke: "#000", fill: null} }, n.prototype.getDefaultShape = function () { return new $P }, n.prototype.buildPath = function (t, e) { Ka(t, e, !1) }, n }(Bk); JP.prototype.type = "polyline"; var QP = {}, tO = function () { function t() { this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.percent = 1 } return t }(), eO = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultStyle = function () { return {stroke: "#000", fill: null} }, n.prototype.getDefaultShape = function () { return new tO }, n.prototype.buildPath = function (t, e) { var n, i, r, o; if (this.subPixelOptimize) { var a = Lo(QP, e, this.style); n = a.x1, i = a.y1, r = a.x2, o = a.y2 } else n = e.x1, i = e.y1, r = e.x2, o = e.y2; var s = e.percent; 0 !== s && (t.moveTo(n, i), 1 > s && (r = n * (1 - s) + r * s, o = i * (1 - s) + o * s), t.lineTo(r, o)) }, n.prototype.pointAt = function (t) { var e = this.shape; return [e.x1 * (1 - t) + e.x2 * t, e.y1 * (1 - t) + e.y2 * t] }, n }(Bk); eO.prototype.type = "line"; var nO = [], iO = function () { function t() { this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.cpx1 = 0, this.cpy1 = 0, this.percent = 1 } return t }(), rO = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultStyle = function () { return {stroke: "#000", fill: null} }, n.prototype.getDefaultShape = function () { return new iO }, n.prototype.buildPath = function (t, e) { var n = e.x1, i = e.y1, r = e.x2, o = e.y2, a = e.cpx1, s = e.cpy1, l = e.cpx2, u = e.cpy2, h = e.percent; 0 !== h && (t.moveTo(n, i), null == l || null == u ? (1 > h && (io(n, a, r, h, nO), a = nO[1], r = nO[2], io(i, s, o, h, nO), s = nO[1], o = nO[2]), t.quadraticCurveTo(a, s, r, o)) : (1 > h && (Kr(n, a, l, r, h, nO), a = nO[1], l = nO[2], r = nO[3], Kr(i, s, u, o, h, nO), s = nO[1], u = nO[2], o = nO[3]), t.bezierCurveTo(a, s, l, u, r, o))) }, n.prototype.pointAt = function (t) { return $a(this.shape, t, !1) }, n.prototype.tangentAt = function (t) { var e = $a(this.shape, t, !0); return he(e, e) }, n }(Bk); rO.prototype.type = "bezier-curve"; var oO = function () { function t() { this.cx = 0, this.cy = 0, this.r = 0, this.startAngle = 0, this.endAngle = 2 * Math.PI, this.clockwise = !0 } return t }(), aO = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultStyle = function () { return {stroke: "#000", fill: null} }, n.prototype.getDefaultShape = function () { return new oO }, n.prototype.buildPath = function (t, e) { var n = e.cx, i = e.cy, r = Math.max(e.r, 0), o = e.startAngle, a = e.endAngle, s = e.clockwise, l = Math.cos(o), u = Math.sin(o); t.moveTo(l * r + n, u * r + i), t.arc(n, i, r, o, a, !s) }, n }(Bk); aO.prototype.type = "arc"; var sO = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = "compound", e } return e(n, t), n.prototype._updatePathDirty = function () { for (var t = this.shape.paths, e = this.shapeChanged(), n = 0; n < t.length; n++) e = e || t[n].shapeChanged(); e && this.dirtyShape() }, n.prototype.beforeBrush = function () { this._updatePathDirty(); for (var t = this.shape.paths || [], e = this.getGlobalScale(), n = 0; n < t.length; n++) t[n].path || t[n].createPathProxy(), t[n].path.setScale(e[0], e[1], t[n].segmentIgnoreThreshold) }, n.prototype.buildPath = function (t, e) { for (var n = e.paths || [], i = 0; i < n.length; i++) n[i].buildPath(t, n[i].shape, !0) }, n.prototype.afterBrush = function () { for (var t = this.shape.paths || [], e = 0; e < t.length; e++) t[e].pathUpdated() }, n.prototype.getBoundingRect = function () { return this._updatePathDirty.call(this), Bk.prototype.getBoundingRect.call(this) }, n }(Bk), lO = function () { function t(t) { this.colorStops = t || [] } return t.prototype.addColorStop = function (t, e) { this.colorStops.push({offset: t, color: e}) }, t }(), uO = function (t) { function n(e, n, i, r, o, a) { var s = t.call(this, o) || this; return s.x = null == e ? 0 : e, s.y = null == n ? 0 : n, s.x2 = null == i ? 1 : i, s.y2 = null == r ? 0 : r, s.type = "linear", s.global = a || !1, s } return e(n, t), n }(lO), hO = function (t) { function n(e, n, i, r, o) { var a = t.call(this, r) || this; return a.x = null == e ? .5 : e, a.y = null == n ? .5 : n, a.r = null == i ? .5 : i, a.type = "radial", a.global = o || !1, a } return e(n, t), n }(lO), cO = [0, 0], pO = [0, 0], dO = new HD, fO = new HD, gO = function () { function t(t, e) { this._corners = [], this._axes = [], this._origin = [0, 0]; for (var n = 0; 4 > n; n++) this._corners[n] = new HD; for (var n = 0; 2 > n; n++) this._axes[n] = new HD; t && this.fromBoundingRect(t, e) } return t.prototype.fromBoundingRect = function (t, e) { var n = this._corners, i = this._axes, r = t.x, o = t.y, a = r + t.width, s = o + t.height; if (n[0].set(r, o), n[1].set(a, o), n[2].set(a, s), n[3].set(r, s), e) for (var l = 0; 4 > l; l++) n[l].transform(e); HD.sub(i[0], n[1], n[0]), HD.sub(i[1], n[3], n[0]), i[0].normalize(), i[1].normalize(); for (var l = 0; 2 > l; l++) this._origin[l] = i[l].dot(n[0]) }, t.prototype.intersect = function (t, e) { var n = !0, i = !e; return dO.set(1 / 0, 1 / 0), fO.set(0, 0), !this._intersectCheckOneSide(this, t, dO, fO, i, 1) && (n = !1, i) ? n : !this._intersectCheckOneSide(t, this, dO, fO, i, -1) && (n = !1, i) ? n : (i || HD.copy(e, n ? dO : fO), n) }, t.prototype._intersectCheckOneSide = function (t, e, n, i, r, o) { for (var a = !0, s = 0; 2 > s; s++) { var l = this._axes[s]; if (this._getProjMinMaxOnAxis(s, t._corners, cO), this._getProjMinMaxOnAxis(s, e._corners, pO), cO[1] < pO[0] || cO[0] > pO[1]) { if (a = !1, r) return a; var u = Math.abs(pO[0] - cO[1]), h = Math.abs(cO[0] - pO[1]); Math.min(u, h) > i.len() && (h > u ? HD.scale(i, l, -u * o) : HD.scale(i, l, h * o)) } else if (n) { var u = Math.abs(pO[0] - cO[1]), h = Math.abs(cO[0] - pO[1]); Math.min(u, h) < n.len() && (h > u ? HD.scale(n, l, u * o) : HD.scale(n, l, -h * o)) } } return a }, t.prototype._getProjMinMaxOnAxis = function (t, e, n) { for (var i = this._axes[t], r = this._origin, o = e[0].dot(i) + r[t], a = o, s = o, l = 1; l < e.length; l++) { var u = e[l].dot(i) + r[t]; a = Math.min(u, a), s = Math.max(u, s) } n[0] = a, n[1] = s }, t }(), yO = [], vO = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.notClear = !0, e.incremental = !0, e._displayables = [], e._temporaryDisplayables = [], e._cursor = 0, e } return e(n, t), n.prototype.traverse = function (t, e) { t.call(e, this) }, n.prototype.useStyle = function () { this.style = {} }, n.prototype.getCursor = function () { return this._cursor }, n.prototype.innerAfterBrush = function () { this._cursor = this._displayables.length }, n.prototype.clearDisplaybles = function () { this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.markRedraw(), this.notClear = !1 }, n.prototype.clearTemporalDisplayables = function () { this._temporaryDisplayables = [] }, n.prototype.addDisplayable = function (t, e) { e ? this._temporaryDisplayables.push(t) : this._displayables.push(t), this.markRedraw() }, n.prototype.addDisplayables = function (t, e) { e = e || !1; for (var n = 0; n < t.length; n++) this.addDisplayable(t[n], e) }, n.prototype.getDisplayables = function () { return this._displayables }, n.prototype.getTemporalDisplayables = function () { return this._temporaryDisplayables }, n.prototype.eachPendingDisplayable = function (t) { for (var e = this._cursor; e < this._displayables.length; e++) t && t(this._displayables[e]); for (var e = 0; e < this._temporaryDisplayables.length; e++) t && t(this._temporaryDisplayables[e]) }, n.prototype.update = function () { this.updateTransform(); for (var t = this._cursor; t < this._displayables.length; t++) { var e = this._displayables[t]; e.parent = this, e.update(), e.parent = null } for (var t = 0; t < this._temporaryDisplayables.length; t++) { var e = this._temporaryDisplayables[t]; e.parent = this, e.update(), e.parent = null } }, n.prototype.getBoundingRect = function () { if (!this._rect) { for (var t = new $D(1 / 0, 1 / 0, -1 / 0, -1 / 0), e = 0; e < this._displayables.length; e++) { var n = this._displayables[e], i = n.getBoundingRect().clone(); n.needLocalTransform() && i.applyTransform(n.getLocalTransform(yO)), t.union(i) } this._rect = t } return this._rect }, n.prototype.contain = function (t, e) { var n = this.transformCoordToLocal(t, e), i = this.getBoundingRect(); if (i.contain(n[0], n[1])) for (var r = 0; r < this._displayables.length; r++) { var o = this._displayables[r]; if (o.contain(t, e)) return !0 } return !1 }, n }(HL), mO = Math.max, xO = Math.min, _O = {}, bO = Ha, wO = Wa, SO = Po; ts("circle", kP), ts("ellipse", OP), ts("sector", ZP), ts("ring", jP), ts("polygon", KP), ts("polyline", JP), ts("rect", Uk), ts("line", eO), ts("bezierCurve", rO), ts("arc", aO); var MO = (Object.freeze || Object)({ extendShape: Ja, extendPath: Qa, registerShape: ts, getShapeClass: es, makePath: ns, makeImage: is, mergePath: wO, resizePath: os, subPixelOptimizeLine: as, subPixelOptimizeRect: ss, subPixelOptimize: SO, updateProps: us, initProps: hs, removeElement: cs, removeElementWithFadeOut: ds, isElementRemoved: fs, getTransform: gs, applyTransform: ys, transformDirection: vs, groupTransition: _s, clipPointsByRect: bs, clipRectByRect: ws, createIcon: Ss, linePolygonIntersect: Ms, lineLineIntersect: Is, setTooltipConfig: As, Group: sL, Image: Wk, Text: $k, Circle: kP, Ellipse: OP, Sector: ZP, Ring: jP, Polygon: KP, Polyline: JP, Rect: Uk, Line: eO, BezierCurve: rO, Arc: aO, IncrementalDisplayable: vO, CompoundPath: sO, LinearGradient: uO, RadialGradient: hO, BoundingRect: $D, OrientedBoundingRect: gO, Point: HD, Path: Bk }), IO = {}, TO = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY"], CO = ["align", "lineHeight", "width", "height", "tag", "verticalAlign"], AO = ["padding", "borderWidth", "borderRadius", "borderDashOffset", "backgroundColor", "borderColor", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"], DO = ur(), LO = ["textStyle", "color"], kO = new $k, PO = function () { function t() { } return t.prototype.getTextColor = function (t) { var e = this.ecModel; return this.getShallow("color") || (!t && e ? e.get(LO) : null) }, t.prototype.getFont = function () { return Bs({ fontStyle: this.getShallow("fontStyle"), fontWeight: this.getShallow("fontWeight"), fontSize: this.getShallow("fontSize"), fontFamily: this.getShallow("fontFamily") }, this.ecModel) }, t.prototype.getTextRect = function (t) { return kO.useStyle({ text: t, fontStyle: this.getShallow("fontStyle"), fontWeight: this.getShallow("fontWeight"), fontSize: this.getShallow("fontSize"), fontFamily: this.getShallow("fontFamily"), verticalAlign: this.getShallow("verticalAlign") || this.getShallow("baseline"), padding: this.getShallow("padding"), lineHeight: this.getShallow("lineHeight"), rich: this.getShallow("rich") }), kO.update(), kO.getBoundingRect() }, t }(), OO = [["lineWidth", "width"], ["stroke", "color"], ["opacity"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["shadowColor"], ["lineDash", "type"], ["lineDashOffset", "dashOffset"], ["lineCap", "cap"], ["lineJoin", "join"], ["miterLimit"]], RO = Ar(OO), zO = function () { function t() { } return t.prototype.getLineStyle = function (t) { return RO(this, t) }, t }(), EO = [["fill", "color"], ["stroke", "borderColor"], ["lineWidth", "borderWidth"], ["opacity"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["shadowColor"], ["lineDash", "borderType"], ["lineDashOffset", "borderDashOffset"], ["lineCap", "borderCap"], ["lineJoin", "borderJoin"], ["miterLimit", "borderMiterLimit"]], NO = Ar(EO), BO = function () { function t() { } return t.prototype.getItemStyle = function (t, e) { return NO(this, t, e) }, t }(), VO = function () { function t(t, e, n) { this.parentModel = e, this.ecModel = n, this.option = t } return t.prototype.init = function () { for (var t = [], e = 3; e < arguments.length; e++) t[e - 3] = arguments[e] }, t.prototype.mergeOption = function (t) { l(this.option, t, !0) }, t.prototype.get = function (t, e) { return null == t ? this.option : this._doGet(this.parsePath(t), !e && this.parentModel) }, t.prototype.getShallow = function (t, e) { var n = this.option, i = null == n ? n : n[t]; if (null == i && !e) { var r = this.parentModel; r && (i = r.getShallow(t)) } return i }, t.prototype.getModel = function (e, n) { var i = null != e, r = i ? this.parsePath(e) : null, o = i ? this._doGet(r) : this.option; return n = n || this.parentModel && this.parentModel.getModel(this.resolveParentPath(r)), new t(o, n, this.ecModel) }, t.prototype.isEmpty = function () { return null == this.option }, t.prototype.restoreData = function () { }, t.prototype.clone = function () { var t = this.constructor; return new t(s(this.option)) }, t.prototype.parsePath = function (t) { return "string" == typeof t ? t.split(".") : t }, t.prototype.resolveParentPath = function (t) { return t }, t.prototype.isAnimationEnabled = function () { if (!oA.node && this.option) { if (null != this.option.animation) return !!this.option.animation; if (this.parentModel) return this.parentModel.isAnimationEnabled() } }, t.prototype._doGet = function (t, e) { var n = this.option; if (!t) return n; for (var i = 0; i < t.length && (!t[i] || (n = n && "object" == typeof n ? n[t[i]] : null, null != n)); i++) ; return null == n && e && (n = e._doGet(this.resolveParentPath(t), e.parentModel)), n }, t }(); br(VO), Mr(VO), f(VO, zO), f(VO, BO), f(VO, LL), f(VO, PO); var FO = Math.round(10 * Math.random()), GO = { time: { month: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], monthAbbr: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], dayOfWeekAbbr: ["日", "一", "二", "三", "四", "五", "六"] }, legend: {selector: {all: "全选", inverse: "反选"}}, toolbox: { brush: { title: { rect: "矩形选择", polygon: "圈选", lineX: "横向选择", lineY: "纵向选择", keep: "保持选择", clear: "清除选择" } }, dataView: {title: "数据视图", lang: ["数据视图", "关闭", "刷新"]}, dataZoom: {title: {zoom: "区域缩放", back: "区域缩放还原"}}, magicType: {title: {line: "切换为折线图", bar: "切换为柱状图", stack: "切换为堆叠", tiled: "切换为平铺"}}, restore: {title: "还原"}, saveAsImage: {title: "保存为图片", lang: ["右键另存为图片"]} }, series: { typeNames: { pie: "饼图", bar: "柱状图", line: "折线图", scatter: "散点图", effectScatter: "涟漪散点图", radar: "雷达图", tree: "树图", treemap: "矩形树图", boxplot: "箱型图", candlestick: "K线图", k: "K线图", heatmap: "热力图", map: "地图", parallel: "平行坐标图", lines: "线图", graph: "关系图", sankey: "桑基图", funnel: "漏斗图", gauge: "仪表盘图", pictorialBar: "象形柱图", themeRiver: "主题河流图", sunburst: "旭日图" } }, aria: { general: {withTitle: "这是一个关于“{title}”的图表。", withoutTitle: "这是一个图表,"}, series: { single: { prefix: "", withName: "图表类型是{seriesType},表示{seriesName}。", withoutName: "图表类型是{seriesType}。" }, multiple: { prefix: "它由{seriesCount}个图表系列组成。", withName: "第{seriesId}个系列是一个表示{seriesName}的{seriesType},", withoutName: "第{seriesId}个系列是一个{seriesType},", separator: {middle: ";", end: "。"} } }, data: { allData: "其数据是——", partialData: "其中,前{displayCnt}项是——", withName: "{name}的数据是{value}", withoutName: "{value}", separator: {middle: ",", end: ""} } } }, HO = { time: { month: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], monthAbbr: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], dayOfWeekAbbr: ["日", "一", "二", "三", "四", "五", "六"] }, legend: {selector: {all: "全选", inverse: "反选"}}, toolbox: { brush: { title: { rect: "矩形选择", polygon: "圈选", lineX: "横向选择", lineY: "纵向选择", keep: "保持选择", clear: "清除选择" } }, dataView: {title: "数据视图", lang: ["数据视图", "关闭", "刷新"]}, dataZoom: {title: {zoom: "区域缩放", back: "区域缩放还原"}}, magicType: {title: {line: "切换为折线图", bar: "切换为柱状图", stack: "切换为堆叠", tiled: "切换为平铺"}}, restore: {title: "还原"}, saveAsImage: {title: "保存为图片", lang: ["右键另存为图片"]} }, series: { typeNames: { pie: "饼图", bar: "柱状图", line: "折线图", scatter: "散点图", effectScatter: "涟漪散点图", radar: "雷达图", tree: "树图", treemap: "矩形树图", boxplot: "箱型图", candlestick: "K线图", k: "K线图", heatmap: "热力图", map: "地图", parallel: "平行坐标图", lines: "线图", graph: "关系图", sankey: "桑基图", funnel: "漏斗图", gauge: "仪表盘图", pictorialBar: "象形柱图", themeRiver: "主题河流图", sunburst: "旭日图" } }, aria: { general: {withTitle: "这是一个关于“{title}”的图表。", withoutTitle: "这是一个图表,"}, series: { single: { prefix: "", withName: "图表类型是{seriesType},表示{seriesName}。", withoutName: "图表类型是{seriesType}。" }, multiple: { prefix: "它由{seriesCount}个图表系列组成。", withName: "第{seriesId}个系列是一个表示{seriesName}的{seriesType},", withoutName: "第{seriesId}个系列是一个{seriesType},", separator: {middle: ";", end: "。"} } }, data: { allData: "其数据是——", partialData: "其中,前{displayCnt}项是——", withName: "{name}的数据是{value}", withoutName: "{value}", separator: {middle: ",", end: ""} } } }, WO = "ZH", XO = "EN", YO = XO, ZO = {}, UO = {}, jO = oA.domSupported ? function () { var t = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase(); return t.indexOf(WO) > -1 ? WO : YO }() : YO; Ys(XO, GO), Ys(WO, HO); var qO = 1e3, KO = 60 * qO, $O = 60 * KO, JO = 24 * $O, QO = 365 * JO, tR = { year: "{yyyy}", month: "{MMM}", day: "{d}", hour: "{HH}:{mm}", minute: "{HH}:{mm}", second: "{HH}:{mm}:{ss}", millisecond: "{hh}:{mm}:{ss} {SSS}", none: "{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}" }, eR = "{yyyy}-{MM}-{dd}", nR = { year: "{yyyy}", month: "{yyyy}-{MM}", day: eR, hour: eR + " " + tR.hour, minute: eR + " " + tR.minute, second: eR + " " + tR.second, millisecond: tR.none }, iR = ["year", "month", "day", "hour", "minute", "second", "millisecond"], rR = ["year", "half-year", "quarter", "month", "week", "half-week", "day", "half-day", "quarter-day", "hour", "minute", "second", "millisecond"], oR = G, aR = /([&<>"'])/g, sR = {"&": "&", "<": "<", ">": ">", '"': """, "'": "'"}, lR = ["a", "b", "c", "d", "e", "f", "g"], uR = function (t, e) { return "{" + t + (null == e ? "" : e) + "}" }, hR = y, cR = ["left", "right", "top", "bottom", "width", "height"], pR = [["width", "left", "right"], ["height", "top", "bottom"]], dR = Dl, fR = (S(Dl, "vertical"), S(Dl, "horizontal"), ur()), gR = function (t) { function n(e, n, i) { var r = t.call(this, e, n, i) || this; return r.uid = Gs("ec_cpt_model"), r } return e(n, t), n.prototype.init = function (t, e, n) { this.mergeDefaultAndTheme(t, n) }, n.prototype.mergeDefaultAndTheme = function (t, e) { var n = Rl(this), i = n ? El(t) : {}, r = e.getTheme(); l(t, r.get(this.mainType)), l(t, this.getDefaultOption()), n && zl(t, i, n) }, n.prototype.mergeOption = function (t) { l(this.option, t, !0); var e = Rl(this); e && zl(this.option, t, e) }, n.prototype.optionUpdated = function () { }, n.prototype.getDefaultOption = function () { var t = this.constructor; if (!_r(t)) return t.defaultOption; var e = fR(this); if (!e.defaultOption) { for (var n = [], i = t; i;) { var r = i.prototype.defaultOption; r && n.push(r), i = i.superClass } for (var o = {}, a = n.length - 1; a >= 0; a--) o = l(o, n[a], !0); e.defaultOption = o } return e.defaultOption }, n.prototype.getReferringComponents = function (t, e) { var n = t + "Index", i = t + "Id"; return pr(this.ecModel, t, {index: this.get(n, !0), id: this.get(i, !0)}, e) }, n.prototype.getBoxLayoutParams = function () { var t = this; return { left: t.get("left"), top: t.get("top"), right: t.get("right"), bottom: t.get("bottom"), width: t.get("width"), height: t.get("height") } }, n.protoInitialize = function () { var t = n.prototype; t.type = "component", t.id = "", t.name = "", t.mainType = "", t.subType = "", t.componentIndex = 0 }(), n }(VO); Sr(gR, VO), Cr(gR), Hs(gR), Ws(gR, Bl); var yR = ""; "undefined" != typeof navigator && (yR = navigator.platform || ""); var vR, mR, xR = "rgba(0, 0, 0, 0.2)", _R = { darkMode: "auto", color: ["#5470c6", "#91cc75", "#fac858", "#ee6666", "#73c0de", "#3ba272", "#fc8452", "#9a60b4", "#ea7ccc"], gradientColor: ["#f6efa6", "#d88273", "#bf444c"], aria: { decal: { decals: [{ color: xR, dashArrayX: [1, 0], dashArrayY: [2, 5], symbolSize: 1, rotation: Math.PI / 6 }, { color: xR, symbol: "circle", dashArrayX: [[8, 8], [0, 8, 8, 0]], dashArrayY: [6, 0], symbolSize: .8 }, {color: xR, dashArrayX: [1, 0], dashArrayY: [4, 3], rotation: -Math.PI / 4}, { color: xR, dashArrayX: [[6, 6], [0, 6, 6, 0]], dashArrayY: [6, 0] }, { color: xR, dashArrayX: [[1, 0], [1, 6]], dashArrayY: [1, 0, 6, 0], rotation: Math.PI / 4 }, { color: xR, symbol: "triangle", dashArrayX: [[9, 9], [0, 9, 9, 0]], dashArrayY: [7, 2], symbolSize: .75 }] } }, textStyle: { fontFamily: yR.match(/^Win/) ? "Microsoft YaHei" : "sans-serif", fontSize: 12, fontStyle: "normal", fontWeight: "normal" }, blendMode: null, stateAnimation: {duration: 300, easing: "cubicOut"}, animation: "auto", animationDuration: 1e3, animationDurationUpdate: 500, animationEasing: "cubicInOut", animationEasingUpdate: "cubicInOut", animationThreshold: 2e3, progressiveThreshold: 3e3, progressive: 400, hoverLayerThreshold: 3e3, useUTC: !1 }, bR = Z(["tooltip", "label", "itemName", "itemId", "seriesName"]), wR = "original", SR = "arrayRows", MR = "objectRows", IR = "keyedColumns", TR = "typedArray", CR = "unknown", AR = "column", DR = "row", LR = {Must: 1, Might: 2, Not: 3}, kR = ur(), PR = Z(), OR = ur(), RR = ur(), zR = function () { function t() { } return t.prototype.getColorFromPalette = function (t, e, n) { var i = Hi(this.get("color", !0)), r = this.get("colorLayer", !0); return Kl(this, OR, i, r, t, e, n) }, t.prototype.clearColorPalette = function () { $l(this, OR) }, t }(), ER = "\x00_ec_inner", NR = 1, BR = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.init = function (t, e, n, i, r, o) { i = i || {}, this.option = null, this._theme = new VO(i), this._locale = new VO(r), this._optionManager = o }, n.prototype.setOption = function (t, e, n) { var i = nu(e); this._optionManager.setOption(t, n, i), this._resetOption(null, i) }, n.prototype.resetOption = function (t, e) { return this._resetOption(t, nu(e)) }, n.prototype._resetOption = function (t, e) { var n = !1, i = this._optionManager; if (!t || "recreate" === t) { var r = i.mountOption("recreate" === t); this.option && "recreate" !== t ? (this.restoreData(), this._mergeOption(r, e)) : mR(this, r), n = !0 } if (("timeline" === t || "media" === t) && this.restoreData(), !t || "recreate" === t || "timeline" === t) { var o = i.getTimelineOption(this); o && (n = !0, this._mergeOption(o, e)) } if (!t || "recreate" === t || "media" === t) { var a = i.getMediaOption(this); a.length && y(a, function (t) { n = !0, this._mergeOption(t, e) }, this) } return n }, n.prototype.mergeOption = function (t) { this._mergeOption(t, null) }, n.prototype._mergeOption = function (t, e) { function n(e) { var n = Ul(this, e, Hi(t[e])), a = r.get(e), s = a ? c && c.get(e) ? "replaceMerge" : "normalMerge" : "replaceAll", l = Zi(a, n, s); or(l, e, gR), i[e] = null, r.set(e, null), o.set(e, 0); var u = [], p = [], d = 0; y(l, function (t, n) { var i = t.existing, r = t.newOption; if (r) { var o = "series" === e, a = gR.getClass(e, t.keyInfo.subType, !o); if (!a) return; if (i && i.constructor === a) i.name = t.keyInfo.name, i.mergeOption(r, this), i.optionUpdated(r, !1); else { var s = h({componentIndex: n}, t.keyInfo); i = new a(r, this, this, s), h(i, s), t.brandNew && (i.__requireNewView = !0), i.init(r, this, this), i.optionUpdated(null, !0) } } else i && (i.mergeOption({}, this), i.optionUpdated({}, !1)); i ? (u.push(i.option), p.push(i), d++) : (u.push(void 0), p.push(void 0)) }, this), i[e] = u, r.set(e, p), o.set(e, d), "series" === e && vR(this) } var i = this.option, r = this._componentsMap, o = this._componentsCount, a = [], u = Z(), c = e && e.replaceMergeMainTypeMap; Vl(this), y(t, function (t, e) { null != t && (gR.hasClass(e) ? e && (a.push(e), u.set(e, !0)) : i[e] = null == i[e] ? s(t) : l(i[e], t, !0)) }), c && c.each(function (t, e) { gR.hasClass(e) && !u.get(e) && (a.push(e), u.set(e, !0)) }), gR.topologicalTravel(a, gR.getAllClassMainTypes(), n, this), this._seriesIndices || vR(this) }, n.prototype.getOption = function () { var t = s(this.option); return y(t, function (e, n) { if (gR.hasClass(n)) { for (var i = Hi(e), r = i.length, o = !1, a = r - 1; a >= 0; a--) i[a] && !ir(i[a]) ? o = !0 : (i[a] = null, !o && r--); i.length = r, t[n] = i } }), delete t[ER], t }, n.prototype.getTheme = function () { return this._theme }, n.prototype.getLocaleModel = function () { return this._locale }, n.prototype.getLocale = function (t) { var e = this.getLocaleModel(); return e.get(t) }, n.prototype.setUpdatePayload = function (t) { this._payload = t }, n.prototype.getUpdatePayload = function () { return this._payload }, n.prototype.getComponent = function (t, e) { var n = this._componentsMap.get(t); if (n) { var i = n[e || 0]; if (i) return i; if (null == e) for (var r = 0; r < n.length; r++) if (n[r]) return n[r] } }, n.prototype.queryComponents = function (t) { var e = t.mainType; if (!e) return []; var n = t.index, i = t.id, r = t.name, o = this._componentsMap.get(e); if (!o || !o.length) return []; var a; return null != n ? (a = [], y(Hi(n), function (t) { o[t] && a.push(o[t]) })) : a = null != i ? tu("id", i, o) : null != r ? tu("name", r, o) : x(o, function (t) { return !!t }), eu(a, t) }, n.prototype.findComponents = function (t) { function e(t) { var e = r + "Index", n = r + "Id", i = r + "Name"; return !t || null == t[e] && null == t[n] && null == t[i] ? null : { mainType: r, index: t[e], id: t[n], name: t[i] } } function n(e) { return t.filter ? x(e, t.filter) : e } var i = t.query, r = t.mainType, o = e(i), a = o ? this.queryComponents(o) : x(this._componentsMap.get(r), function (t) { return !!t }); return n(eu(a, t)) }, n.prototype.eachComponent = function (t, e, n) { var i = this._componentsMap; if (I(t)) { var r = e, o = t; i.each(function (t, e) { for (var n = 0; t && n < t.length; n++) { var i = t[n]; i && o.call(r, e, i, i.componentIndex) } }) } else for (var a = T(t) ? i.get(t) : D(t) ? this.findComponents(t) : null, s = 0; a && s < a.length; s++) { var l = a[s]; l && e.call(n, l, l.componentIndex) } }, n.prototype.getSeriesByName = function (t) { var e = er(t, null); return x(this._componentsMap.get("series"), function (t) { return !!t && null != e && t.name === e }) }, n.prototype.getSeriesByIndex = function (t) { return this._componentsMap.get("series")[t] }, n.prototype.getSeriesByType = function (t) { return x(this._componentsMap.get("series"), function (e) { return !!e && e.subType === t }) }, n.prototype.getSeries = function () { return x(this._componentsMap.get("series").slice(), function (t) { return !!t }) }, n.prototype.getSeriesCount = function () { return this._componentsCount.get("series") }, n.prototype.eachSeries = function (t, e) { y(this._seriesIndices, function (n) { var i = this._componentsMap.get("series")[n]; t.call(e, i, n) }, this) }, n.prototype.eachRawSeries = function (t, e) { y(this._componentsMap.get("series"), function (n) { n && t.call(e, n, n.componentIndex) }) }, n.prototype.eachSeriesByType = function (t, e, n) { y(this._seriesIndices, function (i) { var r = this._componentsMap.get("series")[i]; r.subType === t && e.call(n, r, i) }, this) }, n.prototype.eachRawSeriesByType = function (t, e, n) { return y(this.getSeriesByType(t), e, n) }, n.prototype.isSeriesFiltered = function (t) { return null == this._seriesIndicesMap.get(t.componentIndex) }, n.prototype.getCurrentSeriesIndices = function () { return (this._seriesIndices || []).slice() }, n.prototype.filterSeries = function (t, e) { var n = []; y(this._seriesIndices, function (i) { var r = this._componentsMap.get("series")[i]; t.call(e, r, i) && n.push(i) }, this), this._seriesIndices = n, this._seriesIndicesMap = Z(n) }, n.prototype.restoreData = function (t) { vR(this); var e = this._componentsMap, n = []; e.each(function (t, e) { gR.hasClass(e) && n.push(e) }), gR.topologicalTravel(n, gR.getAllClassMainTypes(), function (n) { y(e.get(n), function (e) { !e || "series" === n && Jl(e, t) || e.restoreData() }) }) }, n.internalField = function () { vR = function (t) { var e = t._seriesIndices = []; y(t._componentsMap.get("series"), function (t) { t && e.push(t.componentIndex) }), t._seriesIndicesMap = Z(e) }, mR = function (t, e) { t.option = {}, t.option[ER] = NR, t._componentsMap = Z({series: []}), t._componentsCount = Z(); var n = e.aria; D(n) && null == n.enabled && (n.enabled = !0), Ql(e, t._theme.option), l(e, _R, !1), t._mergeOption(e, null) } }(), n }(VO); f(BR, zR); var VR, FR, GR, HR, WR, XR = ["getDom", "getZr", "getWidth", "getHeight", "getDevicePixelRatio", "dispatchAction", "isDisposed", "on", "off", "getDataURL", "getConnectedDataURL", "getOption", "getId", "updateLabelLayout"], YR = function () { function t(t) { y(XR, function (e) { this[e] = xA(t[e], t) }, this) } return t }(), ZR = {}, UR = function () { function t() { this._coordinateSystems = [] } return t.prototype.create = function (t, e) { var n = []; y(ZR, function (i) { var r = i.create(t, e); n = n.concat(r || []) }), this._coordinateSystems = n }, t.prototype.update = function (t, e) { y(this._coordinateSystems, function (n) { n.update && n.update(t, e) }) }, t.prototype.getCoordinateSystems = function () { return this._coordinateSystems.slice() }, t.register = function (t, e) { ZR[t] = e }, t.get = function (t) { return ZR[t] }, t }(), jR = /^(min|max)?(.+)$/, qR = function () { function t(t) { this._timelineOptions = [], this._mediaList = [], this._currentMediaIndices = [], this._api = t } return t.prototype.setOption = function (t, e) { t && (y(Hi(t.series), function (t) { t && t.data && k(t.data) && X(t.data) }), y(Hi(t.dataset), function (t) { t && t.source && k(t.source) && X(t.source) })), t = s(t); var n = this._optionBackup, i = iu(t, e, !n); this._newBaseOption = i.baseOption, n ? (i.timelineOptions.length && (n.timelineOptions = i.timelineOptions), i.mediaList.length && (n.mediaList = i.mediaList), i.mediaDefault && (n.mediaDefault = i.mediaDefault)) : this._optionBackup = i }, t.prototype.mountOption = function (t) { var e = this._optionBackup; return this._timelineOptions = e.timelineOptions, this._mediaList = e.mediaList, this._mediaDefault = e.mediaDefault, this._currentMediaIndices = [], s(t ? e.baseOption : this._newBaseOption) }, t.prototype.getTimelineOption = function (t) { var e, n = this._timelineOptions; if (n.length) { var i = t.getComponent("timeline"); i && (e = s(n[i.getCurrentIndex()])) } return e }, t.prototype.getMediaOption = function () { var t = this._api.getWidth(), e = this._api.getHeight(), n = this._mediaList, i = this._mediaDefault, r = [], o = []; if (!n.length && !i) return o; for (var a = 0, l = n.length; l > a; a++) ru(n[a].query, t, e) && r.push(a); return !r.length && i && (r = [-1]), r.length && !au(r, this._currentMediaIndices) && (o = v(r, function (t) { return s(-1 === t ? i.option : n[t].option) })), this._currentMediaIndices = r, o }, t }(), KR = y, $R = D, JR = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"], QR = [["x", "left"], ["y", "top"], ["x2", "right"], ["y2", "bottom"]], tz = ["grid", "geo", "parallel", "legend", "toolbox", "title", "visualMap", "dataZoom", "timeline"], ez = [["borderRadius", "barBorderRadius"], ["borderColor", "barBorderColor"], ["borderWidth", "barBorderWidth"]], nz = function () { function t(t) { this.data = t.data || (t.sourceFormat === IR ? {} : []), this.sourceFormat = t.sourceFormat || CR, this.seriesLayoutBy = t.seriesLayoutBy || AR, this.startIndex = t.startIndex || 0, this.dimensionsDefine = t.dimensionsDefine, this.dimensionsDetectedCount = t.dimensionsDetectedCount, this.encodeDefine = t.encodeDefine, this.metaRawOption = t.metaRawOption } return t }(), iz = function () { function t(t, e) { var n = Cu(t) ? t : Du(t); this._source = n; var i = this._data = n.data; n.sourceFormat === TR && (this._offset = 0, this._dimSize = e, this._data = i), WR(this, i, n) } return t.prototype.getSource = function () { return this._source }, t.prototype.count = function () { return 0 }, t.prototype.getItem = function () { }, t.prototype.appendData = function () { }, t.prototype.clean = function () { }, t.protoInitialize = function () { var e = t.prototype; e.pure = !1, e.persistent = !0 }(), t.internalField = function () { function t(t) { for (var e = 0; e < t.length; e++) this._data.push(t[e]) } var e; WR = function (t, e, o) { var a = o.sourceFormat, s = o.seriesLayoutBy, l = o.startIndex, u = o.dimensionsDefine, c = HR[Fu(a, s)]; if (h(t, c), a === TR) t.getItem = n, t.count = r, t.fillStorage = i; else { var p = Nu(a, s); t.getItem = xA(p, null, e, l, u); var d = Bu(a, s); t.count = xA(d, null, e, l, u) } }; var n = function (t, e) { t -= this._offset, e = e || []; for (var n = this._data, i = this._dimSize, r = i * t, o = 0; i > o; o++) e[o] = n[r + o]; return e }, i = function (t, e, n, i) { for (var r = this._data, o = this._dimSize, a = 0; o > a; a++) { for (var s = i[a], l = null == s[0] ? 1 / 0 : s[0], u = null == s[1] ? -1 / 0 : s[1], h = e - t, c = n[a], p = 0; h > p; p++) { var d = r[p * o + a]; c[t + p] = d, l > d && (l = d), d > u && (u = d) } s[0] = l, s[1] = u } }, r = function () { return this._data ? this._data.length / this._dimSize : 0 }; e = {}, e[SR + "_" + AR] = {pure: !0, appendData: t}, e[SR + "_" + DR] = { pure: !0, appendData: function () { throw new Error('Do not support appendData when set seriesLayoutBy: "row".') } }, e[MR] = {pure: !0, appendData: t}, e[IR] = { pure: !0, appendData: function (t) { var e = this._data; y(t, function (t, n) { for (var i = e[n] || (e[n] = []), r = 0; r < (t || []).length; r++) i.push(t[r]) }) } }, e[wR] = {appendData: t}, e[TR] = { persistent: !1, pure: !0, appendData: function (t) { this._data = t }, clean: function () { this._offset += this.count(), this._data = null } }, HR = e }(), t }(), rz = function (t, e, n, i) { return t[i] }, oz = (VR = {}, VR[SR + "_" + AR] = function (t, e, n, i) { return t[i + e] }, VR[SR + "_" + DR] = function (t, e, n, i) { i += e; for (var r = [], o = t, a = 0; a < o.length; a++) { var s = o[a]; r.push(s ? s[i] : null) } return r }, VR[MR] = rz, VR[IR] = function (t, e, n, i) { for (var r = [], o = 0; o < n.length; o++) { var a = n[o].name, s = t[a]; r.push(s ? s[i] : null) } return r }, VR[wR] = rz, VR), az = function (t) { return t.length }, sz = (FR = {}, FR[SR + "_" + AR] = function (t, e) { return Math.max(0, t.length - e) }, FR[SR + "_" + DR] = function (t, e) { var n = t[0]; return n ? Math.max(0, n.length - e) : 0 }, FR[MR] = az, FR[IR] = function (t, e, n) { var i = n[0].name, r = t[i]; return r ? r.length : 0 }, FR[wR] = az, FR), lz = function (t, e) { return null != e ? t[e] : t }, uz = (GR = {}, GR[SR] = lz, GR[MR] = function (t, e, n) { return null != e ? t[n] : t }, GR[IR] = lz, GR[wR] = function (t, e) { var n = Xi(t); return null != e && n instanceof Array ? n[e] : n }, GR[TR] = lz, GR), hz = /\{@(.+?)\}/g, cz = function () { function t() { } return t.prototype.getDataParams = function (t, e) { var n = this.getData(e), i = this.getRawValue(t, e), r = n.getRawIndex(t), o = n.getName(t), a = n.getRawDataItem(t), s = n.getItemVisual(t, "style"), l = s && s[n.getItemVisual(t, "drawType") || "fill"], u = s && s.stroke, h = this.mainType, c = "series" === h, p = n.userOutput; return { componentType: h, componentSubType: this.subType, componentIndex: this.componentIndex, seriesType: c ? this.subType : null, seriesIndex: this.seriesIndex, seriesId: c ? this.id : null, seriesName: c ? this.name : null, name: o, dataIndex: r, data: a, dataType: e, value: i, color: l, borderColor: u, dimensionNames: p ? p.dimensionNames : null, encode: p ? p.encode : null, $vars: ["seriesName", "name", "value"] } }, t.prototype.getFormattedLabel = function (t, e, n, i, r, o) { e = e || "normal"; var a = this.getData(n), s = this.getDataParams(t, n); if (o && (s.value = o.interpolatedValue), null != i && M(s.value) && (s.value = s.value[i]), !r) { var l = a.getItemModel(t); r = l.get("normal" === e ? ["label", "formatter"] : [e, "label", "formatter"]) } if ("function" == typeof r) return s.status = e, s.dimensionIndex = i, r(s); if ("string" == typeof r) { var u = wl(r, s); return u.replace(hz, function (e, n) { var i = n.length, r = "[" === n.charAt(0) && "]" === n.charAt(i - 1) ? +n.slice(1, i - 1) : n, s = Gu(a, t, r); if (o && M(o.interpolatedValue)) { var l = a.getDimensionInfo(r); l && (s = o.interpolatedValue[l.index]) } return null != s ? s + "" : "" }) } }, t.prototype.getRawValue = function (t, e) { return Gu(this.getData(e), t) }, t.prototype.formatTooltip = function () { }, t }(), pz = function () { function t(t) { t = t || {}, this._reset = t.reset, this._plan = t.plan, this._count = t.count, this._onDirty = t.onDirty, this._dirty = !0 } return t.prototype.perform = function (t) { function e(t) { return !(t >= 1) && (t = 1), t } var n = this._upstream, i = t && t.skip; if (this._dirty && n) { var r = this.context; r.data = r.outputData = n.context.outputData } this.__pipeline && (this.__pipeline.currentTask = this); var o; this._plan && !i && (o = this._plan(this.context)); var a = e(this._modBy), s = this._modDataCount || 0, l = e(t && t.modBy), u = t && t.modDataCount || 0; (a !== l || s !== u) && (o = "reset"); var h; (this._dirty || "reset" === o) && (this._dirty = !1, h = this._doReset(i)), this._modBy = l, this._modDataCount = u; var c = t && t.step; if (this._dueEnd = n ? n._outputDueEnd : this._count ? this._count(this.context) : 1 / 0, this._progress) { var p = this._dueIndex, d = Math.min(null != c ? this._dueIndex + c : 1 / 0, this._dueEnd); if (!i && (h || d > p)) { var f = this._progress; if (M(f)) for (var g = 0; g < f.length; g++) this._doProgress(f[g], p, d, l, u); else this._doProgress(f, p, d, l, u) } this._dueIndex = d; var y = null != this._settedOutputEnd ? this._settedOutputEnd : d; this._outputDueEnd = y } else this._dueIndex = this._outputDueEnd = null != this._settedOutputEnd ? this._settedOutputEnd : this._dueEnd; return this.unfinished() }, t.prototype.dirty = function () { this._dirty = !0, this._onDirty && this._onDirty(this.context) }, t.prototype._doProgress = function (t, e, n, i, r) { dz.reset(e, n, i, r), this._callingProgress = t, this._callingProgress({ start: e, end: n, count: n - e, next: dz.next }, this.context) }, t.prototype._doReset = function (t) { this._dueIndex = this._outputDueEnd = this._dueEnd = 0, this._settedOutputEnd = null; var e, n; !t && this._reset && (e = this._reset(this.context), e && e.progress && (n = e.forceFirstProgress, e = e.progress), M(e) && !e.length && (e = null)), this._progress = e, this._modBy = this._modDataCount = null; var i = this._downstream; return i && i.dirty(), n }, t.prototype.unfinished = function () { return this._progress && this._dueIndex < this._dueEnd }, t.prototype.pipe = function (t) { (this._downstream !== t || this._dirty) && (this._downstream = t, t._upstream = this, t.dirty()) }, t.prototype.dispose = function () { this._disposed || (this._upstream && (this._upstream._downstream = null), this._downstream && (this._downstream._upstream = null), this._dirty = !1, this._disposed = !0) }, t.prototype.getUpstream = function () { return this._upstream }, t.prototype.getDownstream = function () { return this._downstream }, t.prototype.setOutputEnd = function (t) { this._outputDueEnd = this._settedOutputEnd = t }, t }(), dz = function () { function t() { return n > i ? i++ : null } function e() { var t = i % a * r + Math.ceil(i / a), e = i >= n ? null : o > t ? t : i; return i++, e } var n, i, r, o, a, s = { reset: function (l, u, h, c) { i = l, n = u, r = h, o = c, a = Math.ceil(o / r), s.next = r > 1 && o > 0 ? e : t } }; return s }(), fz = (Z({ number: function (t) { return parseFloat(t) }, time: function (t) { return +Li(t) }, trim: function (t) { return "string" == typeof t ? W(t) : t } }), { lt: function (t, e) { return e > t }, lte: function (t, e) { return e >= t }, gt: function (t, e) { return t > e }, gte: function (t, e) { return t >= e } }), gz = (function () { function t(t, e) { if ("number" != typeof e) { var n = ""; Gi(n) } this._opFn = fz[t], this._rvalFloat = Ei(e) } return t.prototype.evaluate = function (t) { return "number" == typeof t ? this._opFn(t, this._rvalFloat) : this._opFn(Ei(t), this._rvalFloat) }, t }(), function () { function t(t, e) { var n = "desc" === t; this._resultLT = n ? 1 : -1, null == e && (e = n ? "min" : "max"), this._incomparable = "min" === e ? -1 / 0 : 1 / 0 } return t.prototype.evaluate = function (t, e) { var n = typeof t, i = typeof e, r = "number" === n ? t : Ei(t), o = "number" === i ? e : Ei(e), a = isNaN(r), s = isNaN(o); if (a && (r = this._incomparable), s && (o = this._incomparable), a && s) { var l = "string" === n, u = "string" === i; l && (r = u ? t : 0), u && (o = l ? e : 0) } return o > r ? this._resultLT : r > o ? -this._resultLT : 0 }, t }()), yz = (function () { function t(t, e) { this._rval = e, this._isEQ = t, this._rvalTypeof = typeof e, this._rvalFloat = Ei(e) } return t.prototype.evaluate = function (t) { var e = t === this._rval; if (!e) { var n = typeof t; n === this._rvalTypeof || "number" !== n && "number" !== this._rvalTypeof || (e = Ei(t) === this._rvalFloat) } return this._isEQ ? e : !e }, t }(), function () { function t() { } return t.prototype.getRawData = function () { throw new Error("not supported") }, t.prototype.getRawDataItem = function () { throw new Error("not supported") }, t.prototype.cloneRawData = function () { }, t.prototype.getDimensionInfo = function () { }, t.prototype.cloneAllDimensionInfo = function () { }, t.prototype.count = function () { }, t.prototype.retrieveValue = function () { }, t.prototype.retrieveValueFromItem = function () { }, t.prototype.convertValue = function (t, e) { return Xu(t, e) }, t }()), vz = Z(), mz = function () { function t(t) { this._sourceList = [], this._upstreamSignList = [], this._versionSignBase = 0, this._sourceHost = t } return t.prototype.dirty = function () { this._setLocalSource([], []) }, t.prototype._setLocalSource = function (t, e) { this._sourceList = t, this._upstreamSignList = e, this._versionSignBase++, this._versionSignBase > 9e10 && (this._versionSignBase = 0) }, t.prototype._getVersionSign = function () { return this._sourceHost.uid + "_" + this._versionSignBase }, t.prototype.prepareSource = function () { this._isDirty() && this._createSource() }, t.prototype._createSource = function () { this._setLocalSource([], []); var t, e, n = this._sourceHost, i = this._getUpstreamSourceManagers(), r = !!i.length; if (eh(n)) { var o = n, a = void 0, s = void 0, l = void 0; if (r) { var u = i[0]; u.prepareSource(), l = u.getSource(), a = l.data, s = l.sourceFormat, e = [u._getVersionSign()] } else a = o.get("data", !0), s = k(a) ? TR : wR, e = []; var h = this._getSourceMetaRawOption(), c = l ? l.metaRawOption : null, p = B(h.seriesLayoutBy, c ? c.seriesLayoutBy : null), d = B(h.sourceHeader, c ? c.sourceHeader : null), f = B(h.dimensions, c ? c.dimensions : null); t = [Au(a, {seriesLayoutBy: p, sourceHeader: d, dimensions: f}, s, o.get("encode", !0))] } else { var g = n; if (r) { var y = this._applyTransform(i); t = y.sourceList, e = y.upstreamSignList } else { var v = g.get("source", !0); t = [Au(v, this._getSourceMetaRawOption(), null, null)], e = [] } } this._setLocalSource(t, e) }, t.prototype._applyTransform = function (t) { var e = this._sourceHost, n = e.get("transform", !0), i = e.get("fromTransformResult", !0); if (null != i) { var r = ""; 1 !== t.length && nh(r) } var o, a = [], s = []; return y(t, function (t) { t.prepareSource(); var e = t.getSource(i || 0), n = ""; null == i || e || nh(n), a.push(e), s.push(t._getVersionSign()) }), n ? o = $u(n, a, {datasetIndex: e.componentIndex}) : null != i && (o = [Lu(a[0])]), { sourceList: o, upstreamSignList: s } }, t.prototype._isDirty = function () { var t = this._sourceList; if (!t.length) return !0; for (var e = this._getUpstreamSourceManagers(), n = 0; n < e.length; n++) { var i = e[n]; if (i._isDirty() || this._upstreamSignList[n] !== i._getVersionSign()) return !0 } }, t.prototype.getSource = function (t) { return this._sourceList[t || 0] }, t.prototype._getUpstreamSourceManagers = function () { var t = this._sourceHost; if (eh(t)) { var e = Hl(t); return e ? [e.getSourceManager()] : [] } return v(Wl(t), function (t) { return t.getSourceManager() }) }, t.prototype._getSourceMetaRawOption = function () { var t, e, n, i = this._sourceHost; if (eh(i)) t = i.get("seriesLayoutBy", !0), e = i.get("sourceHeader", !0), n = i.get("dimensions", !0); else if (!this._getUpstreamSourceManagers().length) { var r = i; t = r.get("seriesLayoutBy", !0), e = r.get("sourceHeader", !0), n = r.get("dimensions", !0) } return {seriesLayoutBy: t, sourceHeader: e, dimensions: n} }, t }(), xz = "line-height:1", _z = [0, 10, 20, 30], bz = ["", "\n", "\n\n", "\n\n\n"], wz = { section: { planLayout: function (t) { var e = t.blocks.length, n = e > 1 || e > 0 && !t.noHeader, i = 0; y(t.blocks, function (t) { oh(t).planLayout(t); var e = t.__gapLevelBetweenSubBlocks; e >= i && (i = e + (!n || e && ("section" !== t.type || t.noHeader) ? 0 : 1)) }), t.__gapLevelBetweenSubBlocks = i }, build: function (t, e, n, i) { var r = e.noHeader, o = lh(e), a = ah(t, e, r ? n : o.html, i); if (r) return a; var s = bl(e.header, "ordinal", t.useUTC), l = ih(i, t.renderMode).nameStyle; return "richText" === t.renderMode ? ph(t, s, l) + o.richText + a : uh('
' + _l(s) + "
" + a, n) } }, nameValue: { planLayout: function (t) { t.__gapLevelBetweenSubBlocks = 0 }, build: function (t, e, n, i) { var r = t.renderMode, o = e.noName, a = e.noValue, s = !e.markerType, l = e.name, u = e.value, h = t.useUTC; if (!o || !a) { var c = s ? "" : t.markupStyleCreator.makeTooltipMarker(e.markerType, e.markerColor || "#333", r), p = o ? "" : bl(l, "ordinal", h), d = e.valueType, f = a ? [] : M(u) ? v(u, function (t, e) { return bl(t, M(d) ? d[e] : d, h) }) : [bl(u, M(d) ? d[0] : d, h)], g = !s || !o, y = !s && o, m = ih(i, r), x = m.nameStyle, _ = m.valueStyle; return "richText" === r ? (s ? "" : c) + (o ? "" : ph(t, p, x)) + (a ? "" : dh(t, f, g, y, _)) : uh((s ? "" : c) + (o ? "" : hh(p, !s, x)) + (a ? "" : ch(f, g, y, _)), n) } } } }, Sz = function () { function t() { this.richTextStyles = {}, this._nextStyleNameId = Bi() } return t.prototype._generateStyleName = function () { return "__EC_aUTo_" + this._nextStyleNameId++ }, t.prototype.makeTooltipMarker = function (t, e, n) { var i = "richText" === n ? this._generateStyleName() : null, r = Ml({color: e, type: t, renderMode: n, markerId: i}); return T(r) ? r : (this.richTextStyles[i] = r.style, r.content) }, t.prototype.wrapRichTextStyle = function (t, e) { var n = {}; M(e) ? y(e, function (t) { return h(n, t) }) : h(n, e); var i = this._generateStyleName(); return this.richTextStyles[i] = n, "{" + i + "|" + t + "}" }, t }(), Mz = ur(), Iz = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e._selectedDataIndicesMap = {}, e } return e(n, t), n.prototype.init = function (t, e, n) { this.seriesIndex = this.componentIndex, this.dataTask = Wu({ count: bh, reset: wh }), this.dataTask.context = {model: this}, this.mergeDefaultAndTheme(t, n); var i = Mz(this).sourceManager = new mz(this); i.prepareSource(); var r = this.getInitialData(t, n); Mh(r, this), this.dataTask.context.data = r, Mz(this).dataBeforeProcessed = r, xh(this), this._initSelectedMapFromData(r) }, n.prototype.mergeDefaultAndTheme = function (t, e) { var n = Rl(this), i = n ? El(t) : {}, r = this.subType; gR.hasClass(r) && (r += "Series"), l(t, e.getTheme().get(this.subType)), l(t, this.getDefaultOption()), Wi(t, "label", ["show"]), this.fillDataTextStyle(t.data), n && zl(t, i, n) }, n.prototype.mergeOption = function (t, e) { t = l(this.option, t, !0), this.fillDataTextStyle(t.data); var n = Rl(this); n && zl(this.option, t, n); var i = Mz(this).sourceManager; i.dirty(), i.prepareSource(); var r = this.getInitialData(t, e); Mh(r, this), this.dataTask.dirty(), this.dataTask.context.data = r, Mz(this).dataBeforeProcessed = r, xh(this), this._initSelectedMapFromData(r) }, n.prototype.fillDataTextStyle = function (t) { if (t && !k(t)) for (var e = ["show"], n = 0; n < t.length; n++) t[n] && t[n].label && Wi(t[n], "label", e) }, n.prototype.getInitialData = function () { }, n.prototype.appendData = function (t) { var e = this.getRawData(); e.appendData(t.data) }, n.prototype.getData = function (t) { var e = Th(this); if (e) { var n = e.context.data; return null == t ? n : n.getLinkedData(t) } return Mz(this).data }, n.prototype.getAllData = function () { var t = this.getData(); return t && t.getLinkedDataAll ? t.getLinkedDataAll() : [{data: t}] }, n.prototype.setData = function (t) { var e = Th(this); if (e) { var n = e.context; n.outputData = t, e !== this.dataTask && (n.data = t) } Mz(this).data = t }, n.prototype.getSource = function () { return Mz(this).sourceManager.getSource() }, n.prototype.getRawData = function () { return Mz(this).dataBeforeProcessed }, n.prototype.getBaseAxis = function () { var t = this.coordinateSystem; return t && t.getBaseAxis && t.getBaseAxis() }, n.prototype.formatTooltip = function (t, e) { return yh({series: this, dataIndex: t, multipleSeries: e}) }, n.prototype.isAnimationEnabled = function () { if (oA.node) return !1; var t = this.getShallow("animation"); return t && this.getData().count() > this.getShallow("animationThreshold") && (t = !1), !!t }, n.prototype.restoreData = function () { this.dataTask.dirty() }, n.prototype.getColorFromPalette = function (t, e, n) { var i = this.ecModel, r = zR.prototype.getColorFromPalette.call(this, t, e, n); return r || (r = i.getColorFromPalette(t, e, n)), r }, n.prototype.coordDimToDataDim = function (t) { return this.getRawData().mapDimensionsAll(t) }, n.prototype.getProgressive = function () { return this.get("progressive") }, n.prototype.getProgressiveThreshold = function () { return this.get("progressiveThreshold") }, n.prototype.select = function (t, e) { this._innerSelect(this.getData(e), t) }, n.prototype.unselect = function (t, e) { var n = this.option.selectedMap; if (n) for (var i = this.getData(e), r = 0; r < t.length; r++) { var o = t[r], a = mh(i, o); n[a] = !1, this._selectedDataIndicesMap[a] = -1 } }, n.prototype.toggleSelect = function (t, e) { for (var n = [], i = 0; i < t.length; i++) n[0] = t[i], this.isSelected(t[i], e) ? this.unselect(n, e) : this.select(n, e) }, n.prototype.getSelectedDataIndices = function () { for (var t = this._selectedDataIndicesMap, e = b(t), n = [], i = 0; i < e.length; i++) { var r = t[e[i]]; r >= 0 && n.push(r) } return n }, n.prototype.isSelected = function (t, e) { var n = this.option.selectedMap; if (!n) return !1; var i = this.getData(e), r = mh(i, t); return n[r] || !1 }, n.prototype._innerSelect = function (t, e) { var n, i, r = this.option.selectedMode, o = e.length; if (r && o) if ("multiple" === r) for (var a = this.option.selectedMap || (this.option.selectedMap = {}), s = 0; o > s; s++) { var l = e[s], u = mh(t, l); a[u] = !0, this._selectedDataIndicesMap[u] = t.getRawIndex(l) } else if ("single" === r || r === !0) { var h = e[o - 1], u = mh(t, h); this.option.selectedMap = (n = {}, n[u] = !0, n), this._selectedDataIndicesMap = (i = {}, i[u] = t.getRawIndex(h), i) } }, n.prototype._initSelectedMapFromData = function (t) { if (!this.option.selectedMap) { var e = []; t.hasItemOption && t.each(function (n) { var i = t.getRawDataItem(n); i && i.selected && e.push(n) }), e.length > 0 && this._innerSelect(t, e) } }, n.registerClass = function (t) { return gR.registerClass(t) }, n.protoInitialize = function () { var t = n.prototype; t.type = "series.__base__", t.seriesIndex = 0, t.useColorPaletteOnData = !1, t.ignoreStyleOnData = !1, t.hasSymbolVisual = !1, t.defaultSymbol = "circle", t.visualStyleAccessPath = "itemStyle", t.visualDrawType = "fill" }(), n }(gR); f(Iz, cz), f(Iz, zR), Sr(Iz, gR); var Tz = function () { function t() { this.group = new sL, this.uid = Gs("viewComponent") } return t.prototype.init = function () { }, t.prototype.render = function () { }, t.prototype.dispose = function () { }, t.prototype.updateView = function () { }, t.prototype.updateLayout = function () { }, t.prototype.updateVisual = function () { }, t.prototype.blurSeries = function () { }, t }(); br(Tz), Cr(Tz); var Cz = ur(), Az = Ch(), Dz = function () { function t() { this.group = new sL, this.uid = Gs("viewChart"), this.renderTask = Wu({ plan: Lh, reset: kh }), this.renderTask.context = {view: this} } return t.prototype.init = function () { }, t.prototype.render = function () { }, t.prototype.highlight = function (t, e, n, i) { Dh(t.getData(), i, "emphasis") }, t.prototype.downplay = function (t, e, n, i) { Dh(t.getData(), i, "normal") }, t.prototype.remove = function () { this.group.removeAll() }, t.prototype.dispose = function () { }, t.prototype.updateView = function (t, e, n, i) { this.render(t, e, n, i) }, t.prototype.updateLayout = function (t, e, n, i) { this.render(t, e, n, i) }, t.prototype.updateVisual = function (t, e, n, i) { this.render(t, e, n, i) }, t.markUpdateMethod = function (t, e) { Cz(t).updateMethod = e }, t.protoInitialize = function () { var e = t.prototype; e.type = "chart" }(), t }(); br(Dz, ["dispose"]), Cr(Dz); var Lz, kz = { incrementalPrepareRender: { progress: function (t, e) { e.view.incrementalRender(t, e.model, e.ecModel, e.api, e.payload) } }, render: { forceFirstProgress: !0, progress: function (t, e) { e.view.render(e.model, e.ecModel, e.api, e.payload) } } }, Pz = "\x00__throttleOriginMethod", Oz = "\x00__throttleRate", Rz = "\x00__throttleType", zz = ur(), Ez = {itemStyle: Ar(EO, !0), lineStyle: Ar(OO, !0)}, Nz = {lineStyle: "stroke", itemStyle: "fill"}, Bz = { createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { var n = t.getData(), i = t.visualStyleAccessPath || "itemStyle", r = t.getModel(i), o = zh(t, i), a = o(r), s = r.getShallow("decal"); s && (n.setVisual("decal", s), s.dirty = !0); var l = Eh(t, i), u = a[l], c = I(u) ? u : null, p = "auto" === a.fill || "auto" === a.stroke; if (!a[l] || c || p) { var d = t.getColorFromPalette(t.name, null, e.getSeriesCount()); a[l] || (a[l] = d, n.setVisual("colorFromPalette", !0)), a.fill = "auto" === a.fill || "function" == typeof a.fill ? d : a.fill, a.stroke = "auto" === a.stroke || "function" == typeof a.stroke ? d : a.stroke } return n.setVisual("style", a), n.setVisual("drawType", l), !e.isSeriesFiltered(t) && c ? (n.setVisual("colorFromPalette", !1), { dataEach: function (e, n) { var i = t.getDataParams(n), r = h({}, a); r[l] = c(i), e.setItemVisual(n, "style", r) } }) : void 0 } }, Vz = new VO, Fz = { createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { if (!t.ignoreStyleOnData && !e.isSeriesFiltered(t)) { var n = t.getData(), i = t.visualStyleAccessPath || "itemStyle", r = zh(t, i), o = n.getVisual("drawType"); return { dataEach: n.hasItemOption ? function (t, e) { var n = t.getRawDataItem(e); if (n && n[i]) { Vz.option = n[i]; var a = r(Vz), s = t.ensureUniqueItemVisual(e, "style"); h(s, a), Vz.option.decal && (t.setItemVisual(e, "decal", Vz.option.decal), Vz.option.decal.dirty = !0), o in a && t.setItemVisual(e, "colorFromPalette", !1) } } : null } } } }, Gz = { performRawSeries: !0, overallReset: function (t) { var e = Z(); t.eachSeries(function (t) { if (t.useColorPaletteOnData) { var n = e.get(t.type); n || (n = {}, e.set(t.type, n)), zz(t).scope = n } }), t.eachSeries(function (e) { if (e.useColorPaletteOnData && !t.isSeriesFiltered(e)) { var n = e.getRawData(), i = {}, r = e.getData(), o = zz(e).scope, a = e.visualStyleAccessPath || "itemStyle", s = Eh(e, a); r.each(function (t) { var e = r.getRawIndex(t); i[e] = t }), n.each(function (t) { var a = i[t], l = r.getItemVisual(a, "colorFromPalette"); if (l) { var u = r.ensureUniqueItemVisual(a, "style"), h = n.getName(t) || t + "", c = n.count(); u[s] = e.getColorFromPalette(h, o, c) } }) } }) } }, Hz = Math.PI, Wz = function () { function t(t, e, n, i) { this._stageTaskMap = Z(), this.ecInstance = t, this.api = e, n = this._dataProcessorHandlers = n.slice(), i = this._visualHandlers = i.slice(), this._allHandlers = n.concat(i) } return t.prototype.restoreData = function (t, e) { t.restoreData(e), this._stageTaskMap.each(function (t) { var e = t.overallTask; e && e.dirty() }) }, t.prototype.getPerformArgs = function (t, e) { if (t.__pipeline) { var n = this._pipelineMap.get(t.__pipeline.id), i = n.context, r = !e && n.progressiveEnabled && (!i || i.progressiveRender) && t.__idxInPipeline > n.blockIndex, o = r ? n.step : null, a = i && i.modDataCount, s = null != a ? Math.ceil(a / o) : null; return {step: o, modBy: s, modDataCount: a} } }, t.prototype.getPipeline = function (t) { return this._pipelineMap.get(t) }, t.prototype.updateStreamModes = function (t, e) { var n = this._pipelineMap.get(t.uid), i = t.getData(), r = i.count(), o = n.progressiveEnabled && e.incrementalPrepareRender && r >= n.threshold, a = t.get("large") && r >= t.get("largeThreshold"), s = "mod" === t.get("progressiveChunkMode") ? r : null; t.pipelineContext = n.context = {progressiveRender: o, modDataCount: s, large: a} }, t.prototype.restorePipelines = function (t) { var e = this, n = e._pipelineMap = Z(); t.eachSeries(function (t) { var i = t.getProgressive(), r = t.uid; n.set(r, { id: r, head: null, tail: null, threshold: t.getProgressiveThreshold(), progressiveEnabled: i && !(t.preventIncremental && t.preventIncremental()), blockIndex: -1, step: Math.round(i || 700), count: 0 }), e._pipe(t, t.dataTask) }) }, t.prototype.prepareStageTasks = function () { var t = this._stageTaskMap, e = this.api.getModel(), n = this.api; y(this._allHandlers, function (i) { var r = t.get(i.uid) || t.set(i.uid, {}), o = ""; H(!(i.reset && i.overallReset), o), i.reset && this._createSeriesStageTask(i, r, e, n), i.overallReset && this._createOverallStageTask(i, r, e, n) }, this) }, t.prototype.prepareView = function (t, e, n, i) { var r = t.renderTask, o = r.context; o.model = e, o.ecModel = n, o.api = i, r.__block = !t.incrementalPrepareRender, this._pipe(e, r) }, t.prototype.performDataProcessorTasks = function (t, e) { this._performStageTasks(this._dataProcessorHandlers, t, e, {block: !0}) }, t.prototype.performVisualTasks = function (t, e, n) { this._performStageTasks(this._visualHandlers, t, e, n) }, t.prototype._performStageTasks = function (t, e, n, i) { function r(t, e) { return t.setDirty && (!t.dirtyMap || t.dirtyMap.get(e.__pipeline.id)) } i = i || {}; var o = !1, a = this; y(t, function (t) { if (!i.visualType || i.visualType === t.visualType) { var s = a._stageTaskMap.get(t.uid), l = s.seriesTaskMap, u = s.overallTask; if (u) { var h, c = u.agentStubMap; c.each(function (t) { r(i, t) && (t.dirty(), h = !0) }), h && u.dirty(), a.updatePayload(u, n); var p = a.getPerformArgs(u, i.block); c.each(function (t) { t.perform(p) }), u.perform(p) && (o = !0) } else l && l.each(function (s) { r(i, s) && s.dirty(); var l = a.getPerformArgs(s, i.block); l.skip = !t.performRawSeries && e.isSeriesFiltered(s.context.model), a.updatePayload(s, n), s.perform(l) && (o = !0) }) } }), this.unfinished = o || this.unfinished }, t.prototype.performSeriesTasks = function (t) { var e; t.eachSeries(function (t) { e = t.dataTask.perform() || e }), this.unfinished = e || this.unfinished }, t.prototype.plan = function () { this._pipelineMap.each(function (t) { var e = t.tail; do { if (e.__block) { t.blockIndex = e.__idxInPipeline; break } e = e.getUpstream() } while (e) }) }, t.prototype.updatePayload = function (t, e) { "remain" !== e && (t.context.payload = e) }, t.prototype._createSeriesStageTask = function (t, e, n, i) { function r(e) { var r = e.uid, l = s.set(r, a && a.get(r) || Wu({plan: Hh, reset: Wh, count: Yh})); l.context = { model: e, ecModel: n, api: i, useClearVisual: t.isVisual && !t.isLayout, plan: t.plan, reset: t.reset, scheduler: o }, o._pipe(e, l) } var o = this, a = e.seriesTaskMap, s = e.seriesTaskMap = Z(), l = t.seriesType, u = t.getTargetSeries; t.createOnAllSeries ? n.eachRawSeries(r) : l ? n.eachRawSeriesByType(l, r) : u && u(n, i).each(r) }, t.prototype._createOverallStageTask = function (t, e, n, i) { function r(t) { var e = t.uid, n = l.set(e, s && s.get(e) || (p = !0, Wu({reset: Vh, onDirty: Gh}))); n.context = {model: t, overallProgress: c}, n.agent = a, n.__block = c, o._pipe(t, n) } var o = this, a = e.overallTask = e.overallTask || Wu({reset: Bh}); a.context = {ecModel: n, api: i, overallReset: t.overallReset, scheduler: o}; var s = a.agentStubMap, l = a.agentStubMap = Z(), u = t.seriesType, h = t.getTargetSeries, c = !0, p = !1, d = ""; H(!t.createOnAllSeries, d), u ? n.eachRawSeriesByType(u, r) : h ? h(n, i).each(r) : (c = !1, y(n.getSeries(), r)), p && a.dirty() }, t.prototype._pipe = function (t, e) { var n = t.uid, i = this._pipelineMap.get(n); !i.head && (i.head = e), i.tail && i.tail.pipe(e), i.tail = e, e.__idxInPipeline = i.count++, e.__pipeline = i }, t.wrapStageHandler = function (t, e) { return I(t) && (t = { overallReset: t, seriesType: Zh(t) }), t.uid = Gs("stageHandler"), e && (t.visualType = e), t }, t }(), Xz = Xh(0), Yz = {}, Zz = {}; Uh(Yz, BR), Uh(Zz, YR), Yz.eachSeriesByType = Yz.eachRawSeriesByType = function (t) { Lz = t }, Yz.eachComponent = function (t) { "series" === t.mainType && t.subType && (Lz = t.subType) }; var Uz = ["#37A2DA", "#32C5E9", "#67E0E3", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#E062AE", "#E690D1", "#e7bcf3", "#9d96f5", "#8378EA", "#96BFFF"], jz = { color: Uz, colorLayer: [["#37A2DA", "#ffd85c", "#fd7b5f"], ["#37A2DA", "#67E0E3", "#FFDB5C", "#ff9f7f", "#E062AE", "#9d96f5"], ["#37A2DA", "#32C5E9", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#e7bcf3", "#8378EA", "#96BFFF"], Uz] }, qz = "#B9B8CE", Kz = "#100C2A", $z = function () { return { axisLine: {lineStyle: {color: qz}}, splitLine: {lineStyle: {color: "#484753"}}, splitArea: {areaStyle: {color: ["rgba(255,255,255,0.02)", "rgba(255,255,255,0.05)"]}}, minorSplitLine: {lineStyle: {color: "#20203B"}} } }, Jz = ["#4992ff", "#7cffb2", "#fddd60", "#ff6e76", "#58d9f9", "#05c091", "#ff8a45", "#8d48e3", "#dd79ff"], Qz = { darkMode: !0, color: Jz, backgroundColor: Kz, axisPointer: {lineStyle: {color: "#817f91"}, crossStyle: {color: "#817f91"}, label: {color: "#fff"}}, legend: {textStyle: {color: qz}}, textStyle: {color: qz}, title: {textStyle: {color: "#EEF1FA"}, subtextStyle: {color: "#B9B8CE"}}, toolbox: {iconStyle: {borderColor: qz}}, dataZoom: { borderColor: "#71708A", textStyle: {color: qz}, brushStyle: {color: "rgba(135,163,206,0.3)"}, handleStyle: {color: "#353450", borderColor: "#C5CBE3"}, moveHandleStyle: {color: "#B0B6C3", opacity: .3}, fillerColor: "rgba(135,163,206,0.2)", emphasis: { handleStyle: {borderColor: "#91B7F2", color: "#4D587D"}, moveHandleStyle: {color: "#636D9A", opacity: .7} }, dataBackground: {lineStyle: {color: "#71708A", width: 1}, areaStyle: {color: "#71708A"}}, selectedDataBackground: {lineStyle: {color: "#87A3CE"}, areaStyle: {color: "#87A3CE"}} }, visualMap: {textStyle: {color: qz}}, timeline: {lineStyle: {color: qz}, label: {color: qz}, controlStyle: {color: qz, borderColor: qz}}, calendar: {itemStyle: {color: Kz}, dayLabel: {color: qz}, monthLabel: {color: qz}, yearLabel: {color: qz}}, timeAxis: $z(), logAxis: $z(), valueAxis: $z(), categoryAxis: $z(), line: {symbol: "circle"}, graph: {color: Jz}, gauge: { title: {color: qz}, axisLine: {lineStyle: {color: [[1, "rgba(207,212,219,0.2)"]]}}, axisLabel: {color: qz}, detail: {color: "#EEF1FA"} }, candlestick: {itemStyle: {color: "#f64e56", color0: "#54ea92", borderColor: "#f64e56", borderColor0: "#54ea92"}} }; Qz.categoryAxis.splitLine.show = !1; var tE = function () { function t() { } return t.prototype.normalizeQuery = function (t) { var e = {}, n = {}, i = {}; if (T(t)) { var r = mr(t); e.mainType = r.main || null, e.subType = r.sub || null } else { var o = ["Index", "Name", "Id"], a = {name: 1, dataIndex: 1, dataType: 1}; y(t, function (t, r) { for (var s = !1, l = 0; l < o.length; l++) { var u = o[l], h = r.lastIndexOf(u); if (h > 0 && h === r.length - u.length) { var c = r.slice(0, h); "data" !== c && (e.mainType = c, e[u.toLowerCase()] = t, s = !0) } } a.hasOwnProperty(r) && (n[r] = t, s = !0), s || (i[r] = t) }) } return {cptQuery: e, dataQuery: n, otherQuery: i} }, t.prototype.filter = function (t, e) { function n(t, e, n, i) { return null == t[n] || e[i || n] === t[n] } var i = this.eventInfo; if (!i) return !0; var r = i.targetEl, o = i.packedEvent, a = i.model, s = i.view; if (!a || !s) return !0; var l = e.cptQuery, u = e.dataQuery; return n(l, a, "mainType") && n(l, a, "subType") && n(l, a, "index", "componentIndex") && n(l, a, "name") && n(l, a, "id") && n(u, o, "name") && n(u, o, "dataIndex") && n(u, o, "dataType") && (!s.filterForExposedEvent || s.filterForExposedEvent(t, e.otherQuery, r, o)) }, t.prototype.afterTrigger = function () { this.eventInfo = null }, t }(), eE = { createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { function n(e, n) { var i = t.getRawValue(n), a = t.getDataParams(n); u && e.setItemVisual(n, "symbol", r(i, a)), h && e.setItemVisual(n, "symbolSize", o(i, a)), c && e.setItemVisual(n, "symbolRotate", s(i, a)), p && e.setItemVisual(n, "symbolOffset", l(i, a)) } var i = t.getData(); if (t.legendIcon && i.setVisual("legendIcon", t.legendIcon), t.hasSymbolVisual) { var r = t.get("symbol"), o = t.get("symbolSize"), a = t.get("symbolKeepAspect"), s = t.get("symbolRotate"), l = t.get("symbolOffset"), u = I(r), h = I(o), c = I(s), p = I(l), d = u || h || c || p, f = !u && r ? r : t.defaultSymbol, g = h ? null : o, y = c ? null : s, v = p ? null : l; if (i.setVisual({ legendIcon: t.legendIcon || f, symbol: f, symbolSize: g, symbolKeepAspect: a, symbolRotate: y, symbolOffset: v }), !e.isSeriesFiltered(t)) return {dataEach: d ? n : null} } } }, nE = { createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { function n(t, e) { var n = t.getItemModel(e), i = n.getShallow("symbol", !0), r = n.getShallow("symbolSize", !0), o = n.getShallow("symbolRotate", !0), a = n.getShallow("symbolOffset", !0), s = n.getShallow("symbolKeepAspect", !0); null != i && t.setItemVisual(e, "symbol", i), null != r && t.setItemVisual(e, "symbolSize", r), null != o && t.setItemVisual(e, "symbolRotate", o), null != a && t.setItemVisual(e, "symbolOffset", a), null != s && t.setItemVisual(e, "symbolKeepAspect", s) } if (t.hasSymbolVisual && !e.isSeriesFiltered(t)) { var i = t.getData(); return {dataEach: i.hasItemOption ? n : null} } } }, iE = 2 * Math.PI, rE = Ck.CMD, oE = ["top", "right", "bottom", "left"], aE = [], sE = new HD, lE = new HD, uE = new HD, hE = new HD, cE = new HD, pE = [], dE = new HD, fE = ["align", "verticalAlign", "width", "height", "fontSize"], gE = new GD, yE = ur(), vE = ur(), mE = ["x", "y", "rotation"], xE = function () { function t() { this._labelList = [], this._chartViewList = [] } return t.prototype.clearLabels = function () { this._labelList = [], this._chartViewList = [] }, t.prototype._addLabel = function (t, e, n, i, r) { var o = i.style, a = i.__hostTarget, s = a.textConfig || {}, l = i.getComputedTransform(), u = i.getBoundingRect().plain(); $D.applyTransform(u, u, l), l ? gE.setLocalTransform(l) : (gE.x = gE.y = gE.rotation = gE.originX = gE.originY = 0, gE.scaleX = gE.scaleY = 1); var h, c = i.__hostTarget; if (c) { h = c.getBoundingRect().plain(); var p = c.getComputedTransform(); $D.applyTransform(h, h, p) } var d = h && c.getTextGuideLine(); this._labelList.push({ label: i, labelLine: d, seriesModel: n, dataIndex: t, dataType: e, layoutOption: r, computedLayoutOption: null, rect: u, hostRect: h, priority: h ? h.width * h.height : 0, defaultAttr: { ignore: i.ignore, labelGuideIgnore: d && d.ignore, x: gE.x, y: gE.y, scaleX: gE.scaleX, scaleY: gE.scaleY, rotation: gE.rotation, style: { x: o.x, y: o.y, align: o.align, verticalAlign: o.verticalAlign, width: o.width, height: o.height, fontSize: o.fontSize }, cursor: i.cursor, attachedPos: s.position, attachedRot: s.rotation } }) }, t.prototype.addLabelsOfSeries = function (t) { var e = this; this._chartViewList.push(t); var n = t.__model, i = n.get("labelLayout"); (I(i) || b(i).length) && t.group.traverse(function (t) { if (t.ignore) return !0; var r = t.getTextContent(), o = tP(t); r && !r.disableLabelLayout && e._addLabel(o.dataIndex, o.dataType, n, r, i) }) }, t.prototype.updateLayoutConfig = function (t) { function e(t, e) { return function () { ic(t, e) } } for (var n = t.getWidth(), i = t.getHeight(), r = 0; r < this._labelList.length; r++) { var o = this._labelList[r], a = o.label, s = a.__hostTarget, l = o.defaultAttr, u = void 0; u = "function" == typeof o.layoutOption ? o.layoutOption(yc(o, s)) : o.layoutOption, u = u || {}, o.computedLayoutOption = u; var h = Math.PI / 180; s && s.setTextConfig({ local: !1, position: null != u.x || null != u.y ? null : l.attachedPos, rotation: null != u.rotate ? u.rotate * h : l.attachedRot, offset: [u.dx || 0, u.dy || 0] }); var c = !1; if (null != u.x ? (a.x = _i(u.x, n), a.setStyle("x", 0), c = !0) : (a.x = l.x, a.setStyle("x", l.style.x)), null != u.y ? (a.y = _i(u.y, i), a.setStyle("y", 0), c = !0) : (a.y = l.y, a.setStyle("y", l.style.y)), u.labelLinePoints) { var p = s.getTextGuideLine(); p && (p.setShape({points: u.labelLinePoints}), c = !1) } var d = yE(a); d.needsUpdateLabelLine = c, a.rotation = null != u.rotate ? u.rotate * h : l.rotation, a.scaleX = l.scaleX, a.scaleY = l.scaleY; for (var f = 0; f < fE.length; f++) { var g = fE[f]; a.setStyle(g, null != u[g] ? u[g] : l.style[g]) } if (u.draggable) { if (a.draggable = !0, a.cursor = "move", s) { var y = o.seriesModel; if (null != o.dataIndex) { var v = o.seriesModel.getData(o.dataType); y = v.getItemModel(o.dataIndex) } a.on("drag", e(s, y.getModel("labelLine"))) } } else a.off("drag"), a.cursor = l.cursor } }, t.prototype.layout = function (t) { var e = t.getWidth(), n = t.getHeight(), i = hc(this._labelList), r = x(i, function (t) { return "shiftX" === t.layoutOption.moveOverlap }), o = x(i, function (t) { return "shiftY" === t.layoutOption.moveOverlap }); pc(r, 0, e), dc(o, 0, n); var a = x(i, function (t) { return t.layoutOption.hideOverlap }); fc(a) }, t.prototype.processLabelsOverall = function () { var t = this; y(this._chartViewList, function (e) { var n = e.__model, i = e.ignoreLabelLineUpdate, r = n.isAnimationEnabled(); e.group.traverse(function (e) { if (e.ignore) return !0; var o = !i, a = e.getTextContent(); !o && a && (o = yE(a).needsUpdateLabelLine), o && t._updateLabelLine(e, n), r && t._animateLabels(e, n) }) }) }, t.prototype._updateLabelLine = function (t, e) { var n = t.getTextContent(), i = tP(t), r = i.dataIndex; if (n && null != r) { var o = e.getData(i.dataType), a = o.getItemModel(r), s = {}, l = o.getItemVisual(r, "style"), u = o.getVisual("drawType"); s.stroke = l[u]; var h = a.getModel("labelLine"); lc(t, uc(a), s), ic(t, h) } }, t.prototype._animateLabels = function (t, e) { var n = t.getTextContent(), i = t.getTextGuideLine(); if (n && !n.ignore && !n.invisible && !t.disableLabelAnimation && !fs(t)) { var r = yE(n), o = r.oldLayout, a = tP(t), s = a.dataIndex, l = {x: n.x, y: n.y, rotation: n.rotation}, u = e.getData(a.dataType); if (o) { n.attr(o); var h = t.prevStates; h && (p(h, "select") >= 0 && n.attr(r.oldLayoutSelect), p(h, "emphasis") >= 0 && n.attr(r.oldLayoutEmphasis)), us(n, l, e, s) } else if (n.attr(l), !DO(n).valueAnimation) { var c = B(n.style.opacity, 1); n.style.opacity = 0, hs(n, {style: {opacity: c}}, e, s) } if (r.oldLayout = l, n.states.select) { var d = r.oldLayoutSelect = {}; vc(d, l, mE), vc(d, n.states.select, mE) } if (n.states.emphasis) { var f = r.oldLayoutEmphasis = {}; vc(f, l, mE), vc(f, n.states.emphasis, mE) } Fs(n, s, u, e, e) } if (i && !i.ignore && !i.invisible) { var r = vE(i), o = r.oldLayout, g = {points: i.shape.points}; o ? (i.attr({shape: o}), us(i, {shape: g}, e)) : (i.setShape(g), i.style.strokePercent = 0, hs(i, {style: {strokePercent: 1}}, e)), r.oldLayout = g } }, t }(), _E = Math.round(9 * Math.random()), bE = function () { function t() { this._id = "__ec_inner_" + _E++ } return t.prototype.get = function (t) { return this._guard(t)[this._id] }, t.prototype.set = function (t, e) { var n = this._guard(t); return "function" == typeof Object.defineProperty ? Object.defineProperty(n, this._id, { value: e, enumerable: !1, configurable: !0 }) : n[this._id] = e, this }, t.prototype["delete"] = function (t) { return this.has(t) ? (delete this._guard(t)[this._id], !0) : !1 }, t.prototype.has = function (t) { return !!this._guard(t)[this._id] }, t.prototype._guard = function (t) { if (t !== Object(t)) throw TypeError("Value of WeakMap is not a non-null object."); return t }, t }(), wE = Bk.extend({ type: "triangle", shape: {cx: 0, cy: 0, width: 0, height: 0}, buildPath: function (t, e) { var n = e.cx, i = e.cy, r = e.width / 2, o = e.height / 2; t.moveTo(n, i - o), t.lineTo(n + r, i + o), t.lineTo(n - r, i + o), t.closePath() } }), SE = Bk.extend({ type: "diamond", shape: {cx: 0, cy: 0, width: 0, height: 0}, buildPath: function (t, e) { var n = e.cx, i = e.cy, r = e.width / 2, o = e.height / 2; t.moveTo(n, i - o), t.lineTo(n + r, i), t.lineTo(n, i + o), t.lineTo(n - r, i), t.closePath() } }), ME = Bk.extend({ type: "pin", shape: {x: 0, y: 0, width: 0, height: 0}, buildPath: function (t, e) { var n = e.x, i = e.y, r = e.width / 5 * 3, o = Math.max(r, e.height), a = r / 2, s = a * a / (o - a), l = i - o + a + s, u = Math.asin(s / a), h = Math.cos(u) * a, c = Math.sin(u), p = Math.cos(u), d = .6 * a, f = .7 * a; t.moveTo(n - h, l + s), t.arc(n, l, a, Math.PI - u, 2 * Math.PI + u), t.bezierCurveTo(n + h - c * d, l + s + p * d, n, i - f, n, i), t.bezierCurveTo(n, i - f, n - h + c * d, l + s + p * d, n - h, l + s), t.closePath() } }), IE = Bk.extend({ type: "arrow", shape: {x: 0, y: 0, width: 0, height: 0}, buildPath: function (t, e) { var n = e.height, i = e.width, r = e.x, o = e.y, a = i / 3 * 2; t.moveTo(r, o), t.lineTo(r + a, o + n), t.lineTo(r, o + n / 4 * 3), t.lineTo(r - a, o + n), t.lineTo(r, o), t.closePath() } }), TE = {line: eO, rect: Uk, roundRect: Uk, square: Uk, circle: kP, diamond: SE, pin: ME, arrow: IE, triangle: wE}, CE = { line: function (t, e, n, i, r) { r.x1 = t, r.y1 = e + i / 2, r.x2 = t + n, r.y2 = e + i / 2 }, rect: function (t, e, n, i, r) { r.x = t, r.y = e, r.width = n, r.height = i }, roundRect: function (t, e, n, i, r) { r.x = t, r.y = e, r.width = n, r.height = i, r.r = Math.min(n, i) / 4 }, square: function (t, e, n, i, r) { var o = Math.min(n, i); r.x = t, r.y = e, r.width = o, r.height = o }, circle: function (t, e, n, i, r) { r.cx = t + n / 2, r.cy = e + i / 2, r.r = Math.min(n, i) / 2 }, diamond: function (t, e, n, i, r) { r.cx = t + n / 2, r.cy = e + i / 2, r.width = n, r.height = i }, pin: function (t, e, n, i, r) { r.x = t + n / 2, r.y = e + i / 2, r.width = n, r.height = i }, arrow: function (t, e, n, i, r) { r.x = t + n / 2, r.y = e + i / 2, r.width = n, r.height = i }, triangle: function (t, e, n, i, r) { r.cx = t + n / 2, r.cy = e + i / 2, r.width = n, r.height = i } }, AE = {}; y(TE, function (t, e) { AE[e] = new t }); for (var DE, LE = Bk.extend({ type: "symbol", shape: {symbolType: "", x: 0, y: 0, width: 0, height: 0}, calculateTextPosition: function (t, e, n) { var i = oi(t, e, n), r = this.shape; return r && "pin" === r.symbolType && "inside" === e.position && (i.y = n.y + .4 * n.height), i }, buildPath: function (t, e, n) { var i = e.symbolType; if ("none" !== i) { var r = AE[i]; r || (i = "rect", r = AE[i]), CE[i](e.x, e.y, e.width, e.height, r.shape), r.buildPath(t, r.shape, n) } } }), kE = new Ck(!0), PE = ["shadowBlur", "shadowOffsetX", "shadowOffsetY"], OE = [["lineCap", "butt"], ["lineJoin", "miter"], ["miterLimit", 10]], RE = 1, zE = 2, EE = 3, NE = 4, BE = new bE, VE = new rD(100), FE = ["symbol", "symbolSize", "symbolKeepAspect", "color", "backgroundColor", "dashArrayX", "dashArrayY", "maxTileWidth", "maxTileHeight"], GE = { fill: "fill", stroke: "stroke", "stroke-width": "lineWidth", opacity: "opacity", "fill-opacity": "fillOpacity", "stroke-opacity": "strokeOpacity", "stroke-dasharray": "lineDash", "stroke-dashoffset": "lineDashOffset", "stroke-linecap": "lineCap", "stroke-linejoin": "lineJoin", "stroke-miterlimit": "miterLimit", "font-family": "fontFamily", "font-size": "fontSize", "font-style": "fontStyle", "font-weight": "fontWeight", "text-anchor": "textAlign", visibility: "visibility", display: "display" }, HE = b(GE), WE = { "alignment-baseline": "textBaseline", "stop-color": "stopColor" }, XE = b(WE), YE = function () { function t() { this._defs = {}, this._root = null } return t.prototype.parse = function (t, e) { e = e || {}; var n = np(t); if (!n) throw new Error("Illegal svg"); this._defsUsePending = []; var i = new sL; this._root = i; var r = [], o = n.getAttribute("viewBox") || "", a = parseFloat(n.getAttribute("width") || e.width), s = parseFloat(n.getAttribute("height") || e.height); isNaN(a) && (a = null), isNaN(s) && (s = null), sp(n, i, null, !0, !1); for (var l = n.firstChild; l;) this._parseNode(l, i, r, null, !1, !1), l = l.nextSibling; hp(this._defs, this._defsUsePending), this._defsUsePending = []; var u, h; if (o) { var c = cp(o); c.length >= 4 && (u = { x: parseFloat(c[0] || 0), y: parseFloat(c[1] || 0), width: parseFloat(c[2]), height: parseFloat(c[3]) }) } if (u && null != a && null != s && (h = gp(u, {x: 0, y: 0, width: a, height: s}), !e.ignoreViewBox)) { var p = i; i = new sL, i.add(p), p.scaleX = p.scaleY = h.scale, p.x = h.x, p.y = h.y } return e.ignoreRootClip || null == a || null == s || i.setClipPath(new Uk({ shape: { x: 0, y: 0, width: a, height: s } })), {root: i, width: a, height: s, viewBoxRect: u, viewBoxTransform: h, named: r} }, t.prototype._parseNode = function (t, e, n, i, r, o) { var a, s = t.nodeName.toLowerCase(), l = i; if ("defs" === s && (r = !0), "text" === s && (o = !0), "defs" === s || "switch" === s) a = e; else { if (!r) { var u = DE[s]; if (u && q(DE, s)) { a = u.call(this, t, e); var h = t.getAttribute("name"); if (h) { var c = {name: h, namedFrom: null, svgNodeTagLower: s, el: a}; n.push(c), "g" === s && (l = c) } else i && n.push({name: i.name, namedFrom: i, svgNodeTagLower: s, el: a}); e.add(a) } } var p = ZE[s]; if (p && q(ZE, s)) { var d = p.call(this, t), f = t.getAttribute("id"); f && (this._defs[f] = d) } } if (a && a.isGroup) for (var g = t.firstChild; g;) 1 === g.nodeType ? this._parseNode(g, a, n, l, r, o) : 3 === g.nodeType && o && this._parseText(g, a), g = g.nextSibling }, t.prototype._parseText = function (t, e) { var n = new Fk({style: {text: t.textContent}, silent: !0, x: this._textX || 0, y: this._textY || 0}); op(e, n), sp(t, n, this._defsUsePending, !1, !1), lp(n, e); var i = n.style, r = i.fontSize; r && 9 > r && (i.fontSize = 9, n.scaleX *= r / 9, n.scaleY *= r / 9); var o = (i.fontSize || i.fontFamily) && [i.fontStyle, i.fontWeight, (i.fontSize || 12) + "px", i.fontFamily || "sans-serif"].join(" "); i.font = o; var a = n.getBoundingRect(); return this._textX += a.width, e.add(n), n }, t.internalField = function () { DE = { g: function (t, e) { var n = new sL; return op(e, n), sp(t, n, this._defsUsePending, !1, !1), n }, rect: function (t, e) { var n = new Uk; return op(e, n), sp(t, n, this._defsUsePending, !1, !1), n.setShape({ x: parseFloat(t.getAttribute("x") || "0"), y: parseFloat(t.getAttribute("y") || "0"), width: parseFloat(t.getAttribute("width") || "0"), height: parseFloat(t.getAttribute("height") || "0") }), n.silent = !0, n }, circle: function (t, e) { var n = new kP; return op(e, n), sp(t, n, this._defsUsePending, !1, !1), n.setShape({ cx: parseFloat(t.getAttribute("cx") || "0"), cy: parseFloat(t.getAttribute("cy") || "0"), r: parseFloat(t.getAttribute("r") || "0") }), n.silent = !0, n }, line: function (t, e) { var n = new eO; return op(e, n), sp(t, n, this._defsUsePending, !1, !1), n.setShape({ x1: parseFloat(t.getAttribute("x1") || "0"), y1: parseFloat(t.getAttribute("y1") || "0"), x2: parseFloat(t.getAttribute("x2") || "0"), y2: parseFloat(t.getAttribute("y2") || "0") }), n.silent = !0, n }, ellipse: function (t, e) { var n = new OP; return op(e, n), sp(t, n, this._defsUsePending, !1, !1), n.setShape({ cx: parseFloat(t.getAttribute("cx") || "0"), cy: parseFloat(t.getAttribute("cy") || "0"), rx: parseFloat(t.getAttribute("rx") || "0"), ry: parseFloat(t.getAttribute("ry") || "0") }), n.silent = !0, n }, polygon: function (t, e) { var n, i = t.getAttribute("points"); i && (n = ap(i)); var r = new KP({shape: {points: n || []}, silent: !0}); return op(e, r), sp(t, r, this._defsUsePending, !1, !1), r }, polyline: function (t, e) { var n, i = t.getAttribute("points"); i && (n = ap(i)); var r = new JP({shape: {points: n || []}, silent: !0}); return op(e, r), sp(t, r, this._defsUsePending, !1, !1), r }, image: function (t, e) { var n = new Wk; return op(e, n), sp(t, n, this._defsUsePending, !1, !1), n.setStyle({ image: t.getAttribute("xlink:href"), x: +t.getAttribute("x"), y: +t.getAttribute("y"), width: +t.getAttribute("width"), height: +t.getAttribute("height") }), n.silent = !0, n }, text: function (t, e) { var n = t.getAttribute("x") || "0", i = t.getAttribute("y") || "0", r = t.getAttribute("dx") || "0", o = t.getAttribute("dy") || "0"; this._textX = parseFloat(n) + parseFloat(r), this._textY = parseFloat(i) + parseFloat(o); var a = new sL; return op(e, a), sp(t, a, this._defsUsePending, !1, !0), a }, tspan: function (t, e) { var n = t.getAttribute("x"), i = t.getAttribute("y"); null != n && (this._textX = parseFloat(n)), null != i && (this._textY = parseFloat(i)); var r = t.getAttribute("dx") || "0", o = t.getAttribute("dy") || "0", a = new sL; return op(e, a), sp(t, a, this._defsUsePending, !1, !0), this._textX += parseFloat(r), this._textY += parseFloat(o), a }, path: function (t, e) { var n = t.getAttribute("d") || "", i = Ga(n); return op(e, i), sp(t, i, this._defsUsePending, !1, !1), i.silent = !0, i } } }(), t }(), ZE = { lineargradient: function (t) { var e = parseInt(t.getAttribute("x1") || "0", 10), n = parseInt(t.getAttribute("y1") || "0", 10), i = parseInt(t.getAttribute("x2") || "10", 10), r = parseInt(t.getAttribute("y2") || "0", 10), o = new uO(e, n, i, r); return ip(t, o), rp(t, o), o }, radialgradient: function (t) { var e = parseInt(t.getAttribute("cx") || "0", 10), n = parseInt(t.getAttribute("cy") || "0", 10), i = parseInt(t.getAttribute("r") || "0", 10), r = new hO(e, n, i); return ip(t, r), rp(t, r), r } }, UE = /^url\(\s*#(.*?)\)/, jE = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g, qE = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.eE,]*)\)/g, KE = Math.PI / 180, $E = /([^\s:;]+)\s*:\s*([^:;]+)/g, JE = 1e-8, QE = [], tN = function () { function t(t) { this.name = t } return t.prototype.getCenter = function () { }, t }(), eN = function (t) { function n(e, n, i) { var r = t.call(this, e) || this; if (r.type = "geoJSON", r.geometries = n, i) i = [i[0], i[1]]; else { var o = r.getBoundingRect(); i = [o.x + o.width / 2, o.y + o.height / 2] } return r._center = i, r } return e(n, t), n.prototype.getBoundingRect = function () { var t = this._rect; if (t) return t; for (var e = Number.MAX_VALUE, n = [e, e], i = [-e, -e], r = [], o = [], a = this.geometries, s = 0; s < a.length; s++) if ("polygon" === a[s].type) { var l = a[s].exterior; ao(l, r, o), ye(n, n, r), ve(i, i, o) } return 0 === s && (n[0] = n[1] = i[0] = i[1] = 0), this._rect = new $D(n[0], n[1], i[0] - n[0], i[1] - n[1]) }, n.prototype.contain = function (t) { var e = this.getBoundingRect(), n = this.geometries; if (!e.contain(t[0], t[1])) return !1; t:for (var i = 0, r = n.length; r > i; i++) if ("polygon" === n[i].type) { var o = n[i].exterior, a = n[i].interiors; if (mp(o, t[0], t[1])) { for (var s = 0; s < (a ? a.length : 0); s++) if (mp(a[s], t[0], t[1])) continue t; return !0 } } return !1 }, n.prototype.transformTo = function (t, e, n, i) { var r = this.getBoundingRect(), o = r.width / r.height; n ? i || (i = n / o) : n = o * i; for (var a = new $D(t, e, n, i), s = r.calculateTransform(a), l = this.geometries, u = 0; u < l.length; u++) if ("polygon" === l[u].type) { for (var h = l[u].exterior, c = l[u].interiors, p = 0; p < h.length; p++) ge(h[p], h[p], s); for (var d = 0; d < (c ? c.length : 0); d++) for (var p = 0; p < c[d].length; p++) ge(c[d][p], c[d][p], s) } r = this._rect, r.copy(a), this._center = [r.x + r.width / 2, r.y + r.height / 2] }, n.prototype.cloneShallow = function (t) { null == t && (t = this.name); var e = new n(t, this.geometries, this._center); return e._rect = this._rect, e.transformTo = null, e }, n.prototype.getCenter = function () { return this._center }, n.prototype.setCenter = function (t) { this._center = t }, n }(tN), nN = function (t) { function n(e, n) { var i = t.call(this, e) || this; return i.type = "geoSVG", i._elOnlyForCalculate = n, i } return e(n, t), n.prototype.getCenter = function () { var t = this._center; return t || (t = this._center = this._calculateCenter()), t }, n.prototype._calculateCenter = function () { for (var t = this._elOnlyForCalculate, e = t.getBoundingRect(), n = [e.x + e.width / 2, e.y + e.height / 2], i = Hn(QE), r = t; r && !r.isGeoSVGGraphicRoot;) Xn(i, r.getLocalTransform(), i), r = r.parent; return jn(i, i), ge(n, n, i), n }, n }(tN), iN = Z(["rect", "circle", "line", "ellipse", "polygon", "polyline", "path", "text", "tspan", "g"]), rN = function () { function t(t, e) { this.type = "geoSVG", this._usedGraphicMap = Z(), this._freedGraphics = [], this._mapName = t, this._parsedXML = np(e) } return t.prototype.load = function () { var t = this._firstGraphic; if (!t) { t = this._firstGraphic = this._buildGraphic(this._parsedXML), this._freedGraphics.push(t), this._boundingRect = this._firstGraphic.boundingRect.clone(); var e = _p(t.named), n = e.regions, i = e.regionsMap; this._regions = n, this._regionsMap = i } return {boundingRect: this._boundingRect, regions: this._regions, regionsMap: this._regionsMap} }, t.prototype._buildGraphic = function (t) { var e, n; try { e = t && yp(t, {ignoreViewBox: !0, ignoreRootClip: !0}) || {}, n = e.root, H(null != n) } catch (i) { throw new Error("Invalid svg format\n" + i.message) } var r = new sL; r.add(n), r.isGeoSVGGraphicRoot = !0; var o = e.width, a = e.height, s = e.viewBoxRect, l = this._boundingRect; if (!l) { var u = void 0, h = void 0, c = void 0, p = void 0; if (null != o ? (u = 0, c = o) : s && (u = s.x, c = s.width), null != a ? (h = 0, p = a) : s && (h = s.y, p = s.height), null == u || null == h) { var d = n.getBoundingRect(); null == u && (u = d.x, c = d.width), null == h && (h = d.y, p = d.height) } l = this._boundingRect = new $D(u, h, c, p) } if (s) { var f = gp(s, l); n.scaleX = n.scaleY = f.scale, n.x = f.x, n.y = f.y } r.setClipPath(new Uk({shape: l.plain()})); var g = []; return y(e.named, function (t) { null != iN.get(t.svgNodeTagLower) && (g.push(t), xp(t.el)) }), {root: r, boundingRect: l, named: g} }, t.prototype.useGraphic = function (t) { var e = this._usedGraphicMap, n = e.get(t); return n ? n : (n = this._freedGraphics.pop() || this._buildGraphic(this._parsedXML), e.set(t, n), n) }, t.prototype.freeGraphic = function (t) { var e = this._usedGraphicMap, n = e.get(t); n && (e.removeKey(t), this._freedGraphics.push(n)) }, t }(), oN = [126, 25], aN = "南海诸岛", sN = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, .7], [52, .7], [56, 7.7], [59, .7], [64, .7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]], lN = 0; lN < sN.length; lN++) for (var uN = 0; uN < sN[lN].length; uN++) sN[lN][uN][0] /= 10.5, sN[lN][uN][1] /= -14, sN[lN][uN][0] += oN[0], sN[lN][uN][1] += oN[1]; var hN = {"南海诸岛": [32, 80], "广东": [0, -10], "香港": [10, 5], "澳门": [-10, 10], "天津": [5, 5]}, cN = {Russia: [100, 60], "United States": [-99, 38], "United States of America": [-99, 38]}, pN = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]], dN = "name", fN = function () { function t(t, e, n) { this.type = "geoJSON", this._parsedMap = Z(), this._mapName = t, this._specialAreas = n, this._geoJSON = Dp(e) } return t.prototype.load = function (t, e) { e = e || dN; var n = this._parsedMap.get(e); if (!n) { var i = this._parseToRegions(e); n = this._parsedMap.set(e, {regions: i, boundingRect: Ap(i)}) } var r = Z(), o = []; return y(n.regions, function (e) { var n = e.name; t && t.hasOwnProperty(n) && (e = e.cloneShallow(n = t[n])), o.push(e), r.set(n, e) }), {regions: o, boundingRect: n.boundingRect || new $D(0, 0, 0, 0), regionsMap: r} }, t.prototype._parseToRegions = function (t) { var e, n = this._mapName, i = this._geoJSON; try { e = i ? Sp(i, t) : [] } catch (r) { throw new Error("Invalid geoJson format\n" + r.message) } return Mp(n, e), y(e, function (t) { var e = t.name; Ip(n, t), Tp(n, t), Cp(n, t); var i = this._specialAreas && this._specialAreas[e]; i && t.transformTo(i.left, i.top, i.width, i.height) }, this), e }, t.prototype.getMapForUser = function () { return {geoJson: this._geoJSON, geoJSON: this._geoJSON, specialAreas: this._specialAreas} }, t }(), gN = Z(), yN = { registerMap: function (t, e, n) { if (e.svg) { var i = new rN(t, e.svg); gN.set(t, i) } else { var r = e.geoJson || e.geoJSON; r && !e.features ? n = e.specialAreas : r = e; var i = new fN(t, r, n); gN.set(t, i) } }, getGeoResource: function (t) { return gN.get(t) }, getMapForUser: function (t) { var e = gN.get(t); return e && "geoJSON" === e.type && e.getMapForUser() }, load: function (t, e, n) { var i = gN.get(t); if (i) return i.load(e, n) } }, vN = H, mN = y, xN = I, _N = D, bN = p, wN = "undefined" != typeof window, SN = "5.1.2", MN = {zrender: "5.1.1"}, IN = 1, TN = 800, CN = 900, AN = 1e3, DN = 2e3, LN = 5e3, kN = 1e3, PN = 1100, ON = 2e3, RN = 3e3, zN = 4e3, EN = 4500, NN = 4600, BN = 5e3, VN = 6e3, FN = 7e3, GN = { PROCESSOR: {FILTER: AN, SERIES_FILTER: TN, STATISTIC: LN}, VISUAL: { LAYOUT: kN, PROGRESSIVE_LAYOUT: PN, GLOBAL: ON, CHART: RN, POST_CHART_LAYOUT: NN, COMPONENT: zN, BRUSH: BN, CHART_ITEM: EN, ARIA: VN, DECAL: FN } }, HN = "__flagInMainProcess", WN = "__optionUpdated", XN = "__needsUpdateStatus", YN = /^[a-zA-Z0-9_]+$/, ZN = "__connectUpdateStatus", UN = 0, jN = 1, qN = 2, KN = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n }(LA), $N = KN.prototype; $N.on = kp("on"), $N.off = kp("off"); var JN, QN, tB, eB, nB, iB, rB, oB, aB, sB, lB, uB, hB, cB, pB, dB, fB, gB, yB, vB, mB, xB = function (t) { function n(e, n, i) { function r(t, e) { return t.__prio - e.__prio } var o = t.call(this, new tE) || this; o._chartsViews = [], o._chartsMap = {}, o._componentsViews = [], o._componentsMap = {}, o._pendingActions = [], i = i || {}, "string" == typeof n && (n = DB[n]), o._dom = e; var a = "canvas", l = !1, u = o._zr = di(e, { renderer: i.renderer || a, devicePixelRatio: i.devicePixelRatio, width: i.width, height: i.height, useDirtyRect: null == i.useDirtyRect ? l : i.useDirtyRect }); o._throttledZrFlush = Ph(xA(u.flush, u), 17), n = s(n), n && Mu(n, !0), o._theme = n, o._locale = Zs(i.locale || jO), o._coordSysMgr = new UR; var h = o._api = fB(o); return Ze(AB, r), Ze(MB, r), o._scheduler = new Wz(o, h, MB, AB), o._messageCenter = new KN, o._labelManager = new xE, o._initEvents(), o.resize = xA(o.resize, o), u.animation.on("frame", o._onframe, o), sB(u, o), lB(u, o), X(o), o } return e(n, t), n.prototype._onframe = function () { if (!this._disposed) { mB(this); var t = this._scheduler; if (this[WN]) { var e = this[WN].silent; this[HN] = !0, JN(this), eB.update.call(this), this._zr.flush(), this[HN] = !1, this[WN] = !1, oB.call(this, e), aB.call(this, e) } else if (t.unfinished) { var n = IN, i = this._model, r = this._api; t.unfinished = !1; do { var o = +new Date; t.performSeriesTasks(i), t.performDataProcessorTasks(i), iB(this, i), t.performVisualTasks(i), pB(this, this._model, r, "remain"), n -= +new Date - o } while (n > 0 && t.unfinished); t.unfinished || this._zr.flush() } } }, n.prototype.getDom = function () { return this._dom }, n.prototype.getId = function () { return this.id }, n.prototype.getZr = function () { return this._zr }, n.prototype.setOption = function (t, e, n) { if (!this._disposed) { var i, r, o; if (_N(e) && (n = e.lazyUpdate, i = e.silent, r = e.replaceMerge, o = e.transition, e = e.notMerge), this[HN] = !0, !this._model || e) { var a = new qR(this._api), s = this._theme, l = this._model = new BR; l.scheduler = this._scheduler, l.init(null, null, null, s, this._locale, a) } this._model.setOption(t, {replaceMerge: r}, IB), yB(this, o), n ? (this[WN] = {silent: i}, this[HN] = !1, this.getZr().wakeUp()) : (JN(this), eB.update.call(this), this._zr.flush(), this[WN] = !1, this[HN] = !1, oB.call(this, i), aB.call(this, i)) } }, n.prototype.setTheme = function () { console.error("echartsAll#setTheme() is DEPRECATED in echartsAll 3.0") }, n.prototype.getModel = function () { return this._model }, n.prototype.getOption = function () { return this._model && this._model.getOption() }, n.prototype.getWidth = function () { return this._zr.getWidth() }, n.prototype.getHeight = function () { return this._zr.getHeight() }, n.prototype.getDevicePixelRatio = function () { return this._zr.painter.dpr || wN && window.devicePixelRatio || 1 }, n.prototype.getRenderedCanvas = function (t) { return oA.canvasSupported ? (t = t || {}, this._zr.painter.getRenderedCanvas({ backgroundColor: t.backgroundColor || this._model.get("backgroundColor"), pixelRatio: t.pixelRatio || this.getDevicePixelRatio() })) : void 0 }, n.prototype.getSvgDataURL = function () { if (oA.svgSupported) { var t = this._zr, e = t.storage.getDisplayList(); return y(e, function (t) { t.stopAnimation(null, !0) }), t.painter.toDataURL() } }, n.prototype.getDataURL = function (t) { if (!this._disposed) { t = t || {}; var e = t.excludeComponents, n = this._model, i = [], r = this; mN(e, function (t) { n.eachComponent({mainType: t}, function (t) { var e = r._componentsMap[t.__viewId]; e.group.ignore || (i.push(e), e.group.ignore = !0) }) }); var o = "svg" === this._zr.painter.getType() ? this.getSvgDataURL() : this.getRenderedCanvas(t).toDataURL("image/" + (t && t.type || "png")); return mN(i, function (t) { t.group.ignore = !1 }), o } }, n.prototype.getConnectedDataURL = function (t) { if (!this._disposed && oA.canvasSupported) { var e = "svg" === t.type, n = this.group, i = Math.min, r = Math.max, o = 1 / 0; if (PB[n]) { var a = o, l = o, u = -o, h = -o, c = [], p = t && t.pixelRatio || this.getDevicePixelRatio(); y(kB, function (o) { if (o.group === n) { var p = e ? o.getZr().painter.getSvgDom().innerHTML : o.getRenderedCanvas(s(t)), d = o.getDom().getBoundingClientRect(); a = i(d.left, a), l = i(d.top, l), u = r(d.right, u), h = r(d.bottom, h), c.push({ dom: p, left: d.left, top: d.top }) } }), a *= p, l *= p, u *= p, h *= p; var d = u - a, f = h - l, g = mA(), v = di(g, {renderer: e ? "svg" : "canvas"}); if (v.resize({width: d, height: f}), e) { var m = ""; return mN(c, function (t) { var e = t.left - a, n = t.top - l; m += '' + t.dom + "" }), v.painter.getSvgRoot().innerHTML = m, t.connectedBackgroundColor && v.painter.setBackgroundColor(t.connectedBackgroundColor), v.refreshImmediately(), v.painter.toDataURL() } return t.connectedBackgroundColor && v.add(new Uk({ shape: {x: 0, y: 0, width: d, height: f}, style: {fill: t.connectedBackgroundColor} })), mN(c, function (t) { var e = new Wk({style: {x: t.left * p - a, y: t.top * p - l, image: t.dom}}); v.add(e) }), v.refreshImmediately(), g.toDataURL("image/" + (t && t.type || "png")) } return this.getDataURL(t) } }, n.prototype.convertToPixel = function (t, e) { return nB(this, "convertToPixel", t, e) }, n.prototype.convertFromPixel = function (t, e) { return nB(this, "convertFromPixel", t, e) }, n.prototype.containPixel = function (t, e) { if (!this._disposed) { var n, i = this._model, r = hr(i, t); return y(r, function (t, i) { i.indexOf("Models") >= 0 && y(t, function (t) { var r = t.coordinateSystem; if (r && r.containPoint) n = n || !!r.containPoint(e); else if ("seriesModels" === i) { var o = this._chartsMap[t.__viewId]; o && o.containPoint && (n = n || o.containPoint(e, t)) } }, this) }, this), !!n } }, n.prototype.getVisual = function (t, e) { var n = this._model, i = hr(n, t, {defaultMainType: "series"}), r = i.seriesModel, o = r.getData(), a = i.hasOwnProperty("dataIndexInside") ? i.dataIndexInside : i.hasOwnProperty("dataIndex") ? o.indexOfRawIndex(i.dataIndex) : null; return null != a ? jh(o, a, e) : qh(o, e) }, n.prototype.getViewOfComponentModel = function (t) { return this._componentsMap[t.__viewId] }, n.prototype.getViewOfSeriesModel = function (t) { return this._chartsMap[t.__viewId] }, n.prototype._initEvents = function () { var t = this; mN(bB, function (e) { var n = function (n) { var i, r = t.getModel(), o = n.target, a = "globalout" === e; if (a ? i = {} : o && bc(o, function (t) { var e = tP(t); if (e && null != e.dataIndex) { var n = e.dataModel || r.getSeriesByIndex(e.seriesIndex); return i = n && n.getDataParams(e.dataIndex, e.dataType) || {}, !0 } return e.eventData ? (i = h({}, e.eventData), !0) : void 0 }, !0), i) { var s = i.componentType, l = i.componentIndex; ("markLine" === s || "markPoint" === s || "markArea" === s) && (s = "series", l = i.seriesIndex); var u = s && null != l && r.getComponent(s, l), c = u && t["series" === u.mainType ? "_chartsMap" : "_componentsMap"][u.__viewId]; i.event = n, i.type = e, t._$eventProcessor.eventInfo = { targetEl: o, packedEvent: i, model: u, view: c }, t.trigger(e, i) } }; n.zrEventfulCallAtLast = !0, t._zr.on(e, n, t) }), mN(SB, function (e, n) { t._messageCenter.on(n, function (t) { this.trigger(n, t) }, t) }), mN(["selectchanged"], function (e) { t._messageCenter.on(e, function (t) { this.trigger(e, t) }, t) }), _c(this._messageCenter, this, this._api) }, n.prototype.isDisposed = function () { return this._disposed }, n.prototype.clear = function () { this._disposed || this.setOption({series: []}, !0) }, n.prototype.dispose = function () { if (!this._disposed) { this._disposed = !0, dr(this.getDom(), zB, ""); var t = this._api, e = this._model; mN(this._componentsViews, function (n) { n.dispose(e, t) }), mN(this._chartsViews, function (n) { n.dispose(e, t) }), this._zr.dispose(), delete kB[this.id] } }, n.prototype.resize = function (t) { if (!this._disposed) { this._zr.resize(t); var e = this._model; if (this._loadingFX && this._loadingFX.resize(), e) { var n = e.resetOption("media"), i = t && t.silent; this[WN] && (null == i && (i = this[WN].silent), n = !0, this[WN] = !1), this[HN] = !0, n && JN(this), eB.update.call(this, { type: "resize", animation: h({duration: 0}, t && t.animation) }), this[HN] = !1, oB.call(this, i), aB.call(this, i) } } }, n.prototype.showLoading = function (t, e) { if (!this._disposed && (_N(t) && (e = t, t = ""), t = t || "default", this.hideLoading(), LB[t])) { var n = LB[t](this._api, e), i = this._zr; this._loadingFX = n, i.add(n) } }, n.prototype.hideLoading = function () { this._disposed || (this._loadingFX && this._zr.remove(this._loadingFX), this._loadingFX = null) }, n.prototype.makeActionFromEvent = function (t) { var e = h({}, t); return e.type = SB[t.type], e }, n.prototype.dispatchAction = function (t, e) { if (!this._disposed && (_N(e) || (e = {silent: !!e}), wB[t.type] && this._model)) { if (this[HN]) return void this._pendingActions.push(t); var n = e.silent; rB.call(this, t, n); var i = e.flush; i ? this._zr.flush() : i !== !1 && oA.browser.weChat && this._throttledZrFlush(), oB.call(this, n), aB.call(this, n) } }, n.prototype.updateLabelLayout = function () { var t = this._labelManager; t.updateLayoutConfig(this._api), t.layout(this._api), t.processLabelsOverall() }, n.prototype.appendData = function (t) { if (!this._disposed) { var e = t.seriesIndex, n = this.getModel(), i = n.getSeriesByIndex(e); i.appendData(t), this._scheduler.unfinished = !0, this.getZr().wakeUp() } }, n.internalField = function () { function t(t) { for (var e = [], n = t.currentStates, i = 0; i < n.length; i++) { var r = n[i]; "emphasis" !== r && "blur" !== r && "select" !== r && e.push(r) } t.selected && t.states.select && e.push("select"), t.hoverState === aP && t.states.emphasis ? e.push("emphasis") : t.hoverState === oP && t.states.blur && e.push("blur"), t.useStates(e) } function n(t, e) { var n = t._zr, i = n.storage, r = 0; i.traverse(function (t) { t.isGroup || r++ }), r > e.get("hoverLayerThreshold") && !oA.node && !oA.worker && e.eachSeries(function (e) { if (!e.preventUsingHoverLayer) { var n = t._chartsMap[e.__viewId]; n.__alive && n.group.traverse(function (t) { t.states.emphasis && (t.states.emphasis.hoverLayer = !0) }) } }) } function i(t, e) { var n = t.get("blendMode") || null; e.group.traverse(function (t) { t.isGroup || (t.style.blend = n), t.eachPendingDisplayable && t.eachPendingDisplayable(function (t) { t.style.blend = n }) }) } function r(t, e) { t.preventAutoZ || o(e.group, t.get("z") || 0, t.get("zlevel") || 0, -1 / 0) } function o(t, e, n, i) { var r = t.getTextContent(), a = t.getTextGuideLine(), s = t.isGroup; if (s) for (var l = t.childrenRef(), u = 0; u < l.length; u++) i = Math.max(o(l[u], e, n, i), i); else t.z = e, t.zlevel = n, i = Math.max(t.z2, i); if (r && (r.z = e, r.zlevel = n, isFinite(i) && (r.z2 = i + 2)), a) { var h = t.textGuideLineConfig; a.z = e, a.zlevel = n, isFinite(i) && (a.z2 = i + (h && h.showAbove ? 1 : -1)) } return i } function a(t, e) { e.group.traverse(function (t) { if (!fs(t)) { var e = t.getTextContent(), n = t.getTextGuideLine(); t.stateTransition && (t.stateTransition = null), e && e.stateTransition && (e.stateTransition = null), n && n.stateTransition && (n.stateTransition = null), t.hasState() ? (t.prevStates = t.currentStates, t.clearStates()) : t.prevStates && (t.prevStates = null) } }) } function s(e, n) { var i = e.getModel("stateAnimation"), r = e.isAnimationEnabled(), o = i.get("duration"), a = o > 0 ? {duration: o, delay: i.get("delay"), easing: i.get("easing")} : null; n.group.traverse(function (e) { if (e.states && e.states.emphasis) { if (fs(e)) return; if (e instanceof Bk && Pa(e), e.__dirty) { var n = e.prevStates; n && e.useStates(n) } if (r) { e.stateTransition = a; var i = e.getTextContent(), o = e.getTextGuideLine(); i && (i.stateTransition = a), o && (o.stateTransition = a) } e.__dirty && t(e) } }) } JN = function (t) { var e = t._scheduler; e.restorePipelines(t._model), e.prepareStageTasks(), QN(t, !0), QN(t, !1), e.plan() }, QN = function (t, e) { function n(t) { var n = t.__requireNewView; t.__requireNewView = !1; var u = "_ec_" + t.id + "_" + t.type, h = !n && a[u]; if (!h) { var c = mr(t.type), p = e ? Tz.getClass(c.main, c.sub) : Dz.getClass(c.sub); h = new p, h.init(i, l), a[u] = h, o.push(h), s.add(h.group) } t.__viewId = h.__id = u, h.__alive = !0, h.__model = t, h.group.__ecComponentInfo = { mainType: t.mainType, index: t.componentIndex }, !e && r.prepareView(h, t, i, l) } for (var i = t._model, r = t._scheduler, o = e ? t._componentsViews : t._chartsViews, a = e ? t._componentsMap : t._chartsMap, s = t._zr, l = t._api, u = 0; u < o.length; u++) o[u].__alive = !1; e ? i.eachComponent(function (t, e) { "series" !== t && n(e) }) : i.eachSeries(n); for (var u = 0; u < o.length;) { var h = o[u]; h.__alive ? u++ : (!e && h.renderTask.dispose(), s.remove(h.group), h.dispose(i, l), o.splice(u, 1), a[h.__id] === h && delete a[h.__id], h.__id = h.group.__ecComponentInfo = null) } }, tB = function (t, e, n, i, r) { function o(i) { i && i.__alive && i[e] && i[e](i.__model, a, t._api, n) } var a = t._model; if (a.setUpdatePayload(n), !i) return void mN([].concat(t._componentsViews).concat(t._chartsViews), o); var s = {}; s[i + "Id"] = n[i + "Id"], s[i + "Index"] = n[i + "Index"], s[i + "Name"] = n[i + "Name"]; var l = {mainType: i, query: s}; r && (l.subType = r); var u, h = n.excludeSeriesId; null != h && (u = Z(), mN(Hi(h), function (t) { var e = er(t, null); null != e && u.set(e, !0) })), ka(n) && da(t._api), a && a.eachComponent(l, function (e) { if (!u || null == u.get(e.id)) { if (ka(n)) if (e instanceof Iz) n.type !== cP || n.notBlur || ya(e, n, t._api); else { var r = va(e.mainType, e.componentIndex, n.name, t._api), a = r.focusSelf, s = r.dispatchers; n.type === cP && a && !n.notBlur && ga(e.mainType, e.componentIndex, t._api), s && mN(s, function (t) { n.type === cP ? aa(t) : sa(t) }) } else La(n) && e instanceof Iz && (_a(e, n, t._api), ba(e), vB(t)); o(t["series" === i ? "_chartsMap" : "_componentsMap"][e.__viewId]) } }, t) }, eB = { prepareAndUpdate: function (t) { JN(this), eB.update.call(this, t) }, update: function (t) { var e = this._model, n = this._api, i = this._zr, r = this._coordSysMgr, o = this._scheduler; if (e) { e.setUpdatePayload(t), o.restoreData(e, t), o.performSeriesTasks(e), r.create(e, n), o.performDataProcessorTasks(e, t), iB(this, e), r.update(e, n), uB(e), o.performVisualTasks(e, t), hB(this, e, n, t); var a = e.get("backgroundColor") || "transparent", s = e.get("darkMode"); if (oA.canvasSupported) i.setBackgroundColor(a), null != s && "auto" !== s && i.setDarkMode(s); else { var l = an(a); a = gn(l, "rgb"), 0 === l[3] && (a = "transparent") } dB(e, n) } }, updateTransform: function (t) { var e = this, n = this._model, i = this._api; if (n) { n.setUpdatePayload(t); var r = []; n.eachComponent(function (o, a) { if ("series" !== o) { var s = e.getViewOfComponentModel(a); if (s && s.__alive) if (s.updateTransform) { var l = s.updateTransform(a, n, i, t); l && l.update && r.push(s) } else r.push(s) } }); var o = Z(); n.eachSeries(function (r) { var a = e._chartsMap[r.__viewId]; if (a.updateTransform) { var s = a.updateTransform(r, n, i, t); s && s.update && o.set(r.uid, 1) } else o.set(r.uid, 1) }), uB(n), this._scheduler.performVisualTasks(n, t, { setDirty: !0, dirtyMap: o }), pB(this, n, i, t, o), dB(n, this._api) } }, updateView: function (t) { var e = this._model; e && (e.setUpdatePayload(t), Dz.markUpdateMethod(t, "updateView"), uB(e), this._scheduler.performVisualTasks(e, t, {setDirty: !0}), hB(this, this._model, this._api, t), dB(e, this._api)) }, updateVisual: function (t) { var e = this, n = this._model; n && (n.setUpdatePayload(t), n.eachSeries(function (t) { t.getData().clearAllVisual() }), Dz.markUpdateMethod(t, "updateVisual"), uB(n), this._scheduler.performVisualTasks(n, t, { visualType: "visual", setDirty: !0 }), n.eachComponent(function (i, r) { if ("series" !== i) { var o = e.getViewOfComponentModel(r); o && o.__alive && o.updateVisual(r, n, e._api, t) } }), n.eachSeries(function (i) { var r = e._chartsMap[i.__viewId]; r.updateVisual(i, n, e._api, t) }), dB(n, this._api)) }, updateLayout: function (t) { eB.update.call(this, t) } }, nB = function (t, e, n, i) { if (!t._disposed) for (var r, o = t._model, a = t._coordSysMgr.getCoordinateSystems(), s = hr(o, n), l = 0; l < a.length; l++) { var u = a[l]; if (u[e] && null != (r = u[e](o, s, i))) return r } }, iB = function (t, e) { var n = t._chartsMap, i = t._scheduler; e.eachSeries(function (t) { i.updateStreamModes(t, n[t.__viewId]) }) }, rB = function (t, e) { var n = this, i = this.getModel(), r = t.type, o = t.escapeConnect, a = wB[r], s = a.actionInfo, l = (s.update || "update").split(":"), u = l.pop(), p = null != l[0] && mr(l[0]); this[HN] = !0; var d = [t], f = !1; t.batch && (f = !0, d = v(t.batch, function (e) { return e = c(h({}, e), t), e.batch = null, e })); var g, y = [], m = La(t), x = ka(t); if (mN(d, function (e) { if (g = a.action(e, n._model, n._api), g = g || h({}, e), g.type = s.event || g.type, y.push(g), x) { var i = cr(t), r = i.queryOptionMap, o = i.mainTypeSpecified, l = o ? r.keys()[0] : "series"; tB(n, u, e, l), vB(n) } else m ? (tB(n, u, e, "series"), vB(n)) : p && tB(n, u, e, p.main, p.sub) }), "none" === u || x || m || p || (this[WN] ? (JN(this), eB.update.call(this, t), this[WN] = !1) : eB[u].call(this, t)), g = f ? { type: s.event || r, escapeConnect: o, batch: y } : y[0], this[HN] = !1, !e) { var _ = this._messageCenter; if (_.trigger(g.type, g), m) { var b = { type: "selectchanged", escapeConnect: o, selected: wa(i), isFromClick: t.isFromClick || !1, fromAction: t.type, fromActionPayload: t }; _.trigger(b.type, b) } } }, oB = function (t) { for (var e = this._pendingActions; e.length;) { var n = e.shift(); rB.call(this, n, t) } }, aB = function (t) { !t && this.trigger("updated") }, sB = function (t, e) { t.on("rendered", function (n) { e.trigger("rendered", n), !t.animation.isFinished() || e[WN] || e._scheduler.unfinished || e._pendingActions.length || e.trigger("finished") }) }, lB = function (t, e) { t.on("mouseover", function (t) { var n = t.target, i = bc(n, Ca); i && (ma(i, t, e._api), vB(e)) }).on("mouseout", function (t) { var n = t.target, i = bc(n, Ca); i && (xa(i, t, e._api), vB(e)) }).on("click", function (t) { var n = t.target, i = bc(n, function (t) { return null != tP(t).dataIndex }, !0); if (i) { var r = i.selected ? "unselect" : "select", o = tP(i); e._api.dispatchAction({ type: r, dataType: o.dataType, dataIndexInside: o.dataIndex, seriesIndex: o.seriesIndex, isFromClick: !0 }) } }) }, uB = function (t) { t.clearColorPalette(), t.eachSeries(function (t) { t.clearColorPalette() }) }, hB = function (t, e, n, i) { cB(t, e, n, i), mN(t._chartsViews, function (t) { t.__alive = !1 }), pB(t, e, n, i), mN(t._chartsViews, function (t) { t.__alive || t.remove(e, n) }) }, cB = function (t, e, n, i, o) { mN(o || t._componentsViews, function (t) { var o = t.__model; a(o, t), t.render(o, e, n, i), r(o, t), s(o, t) }) }, pB = function (t, e, o, l, u) { var h = t._scheduler, c = t._labelManager; c.clearLabels(); var p = !1; e.eachSeries(function (e) { var n = t._chartsMap[e.__viewId]; n.__alive = !0; var r = n.renderTask; h.updatePayload(r, l), a(e, n), u && u.get(e.uid) && r.dirty(), r.perform(h.getPerformArgs(r)) && (p = !0), e.__transientTransitionOpt = null, n.group.silent = !!e.get("silent"), i(e, n), ba(e), c.addLabelsOfSeries(n) }), h.unfinished = p || h.unfinished, c.updateLayoutConfig(o), c.layout(o), c.processLabelsOverall(), e.eachSeries(function (e) { var n = t._chartsMap[e.__viewId]; r(e, n), s(e, n) }), n(t, e) }, dB = function (t, e) { mN(CB, function (n) { n(t, e) }) }, vB = function (t) { t[XN] = !0, t.getZr().wakeUp() }, mB = function (e) { e[XN] && (e.getZr().storage.traverse(function (e) { fs(e) || t(e) }), e[XN] = !1) }, fB = function (t) { return new (function (n) { function i() { return null !== n && n.apply(this, arguments) || this } return e(i, n), i.prototype.getCoordinateSystems = function () { return t._coordSysMgr.getCoordinateSystems() }, i.prototype.getComponentByElement = function (e) { for (; e;) { var n = e.__ecComponentInfo; if (null != n) return t._model.getComponent(n.mainType, n.index); e = e.parent } }, i.prototype.enterEmphasis = function (e, n) { aa(e, n), vB(t) }, i.prototype.leaveEmphasis = function (e, n) { sa(e, n), vB(t) }, i.prototype.enterBlur = function (e) { la(e), vB(t) }, i.prototype.leaveBlur = function (e) { ua(e), vB(t) }, i.prototype.enterSelect = function (e) { ha(e), vB(t) }, i.prototype.leaveSelect = function (e) { ca(e), vB(t) }, i.prototype.getModel = function () { return t.getModel() }, i.prototype.getViewOfComponentModel = function (e) { return t.getViewOfComponentModel(e) }, i.prototype.getViewOfSeriesModel = function (e) { return t.getViewOfSeriesModel(e) }, i }(YR))(t) }, gB = function (t) { function e(t, e) { for (var n = 0; n < t.length; n++) { var i = t[n]; i[ZN] = e } } mN(SB, function (n, i) { t._messageCenter.on(i, function (n) { if (PB[t.group] && t[ZN] !== UN) { if (n && n.escapeConnect) return; var i = t.makeActionFromEvent(n), r = []; mN(kB, function (e) { e !== t && e.group === t.group && r.push(e) }), e(r, UN), mN(r, function (t) { t[ZN] !== jN && t.dispatchAction(i) }), e(r, qN) } }) }) }, yB = function (t, e) { var n = t._model; y(Hi(e), function (t) { var e, i = t.from, r = t.to; null == r && Gi(e); var o = {includeMainTypes: ["series"], enableAll: !1, enableNone: !1}, a = i ? hr(n, i, o) : null, s = hr(n, r, o), l = s.seriesModel; null == l && (e = ""), a && a.seriesModel !== l && (e = ""), null != e && Gi(e), l.__transientTransitionOpt = { from: i ? i.dimension : null, to: r.dimension, dividingMethod: t.dividingMethod } }) } }(), n }(LA), _B = xB.prototype; _B.on = Lp("on"), _B.off = Lp("off"), _B.one = function (t, e, n) { function i() { for (var n = [], o = 0; o < arguments.length; o++) n[o] = arguments[o]; e && e.apply && e.apply(this, n), r.off(t, i) } var r = this; this.on.call(this, t, i, n) }; var bB = ["click", "dblclick", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup", "globalout", "contextmenu"], wB = {}, SB = {}, MB = [], IB = [], TB = [], CB = [], AB = [], DB = {}, LB = {}, kB = {}, PB = {}, OB = +new Date - 0, RB = +new Date - 0, zB = "_echartsAll_instance_", EB = zp, NB = [], BB = Ku; jp(ON, Bz), jp(EN, Fz), jp(EN, Gz), jp(ON, eE), jp(EN, nE), jp(FN, ep), Fp(Mu), Gp(CN, Iu), Kp("default", Nh), Xp({ type: cP, event: cP, update: cP }, K), Xp({type: pP, event: pP, update: pP}, K), Xp({type: dP, event: dP, update: dP}, K), Xp({ type: fP, event: fP, update: fP }, K), Xp({type: gP, event: gP, update: gP}, K), Vp("light", jz), Vp("dark", Qz); var VB, FB, GB, HB, WB, XB, YB, ZB, UB, jB, qB, KB, $B, JB, QB = {}, tV = function () { function t(t, e, n, i, r, o) { this._old = t, this._new = e, this._oldKeyGetter = n || ed, this._newKeyGetter = i || ed, this.context = r, this._diffModeMultiple = "multiple" === o } return t.prototype.add = function (t) { return this._add = t, this }, t.prototype.update = function (t) { return this._update = t, this }, t.prototype.updateManyToOne = function (t) { return this._updateManyToOne = t, this }, t.prototype.updateOneToMany = function (t) { return this._updateOneToMany = t, this }, t.prototype.remove = function (t) { return this._remove = t, this }, t.prototype.execute = function () { this[this._diffModeMultiple ? "_executeMultiple" : "_executeOneToOne"]() }, t.prototype._executeOneToOne = function () { var t = this._old, e = this._new, n = {}, i = new Array(t.length), r = new Array(e.length); this._initIndexMap(t, null, i, "_oldKeyGetter"), this._initIndexMap(e, n, r, "_newKeyGetter"); for (var o = 0; o < t.length; o++) { var a = i[o], s = n[a], l = td(s); if (l > 1) { var u = s.shift(); 1 === s.length && (n[a] = s[0]), this._update && this._update(u, o) } else 1 === l ? (n[a] = null, this._update && this._update(s, o)) : this._remove && this._remove(o) } this._performRestAdd(r, n) }, t.prototype._executeMultiple = function () { var t = this._old, e = this._new, n = {}, i = {}, r = [], o = []; this._initIndexMap(t, n, r, "_oldKeyGetter"), this._initIndexMap(e, i, o, "_newKeyGetter"); for (var a = 0; a < r.length; a++) { var s = r[a], l = n[s], u = i[s], h = td(l), c = td(u); if (h > 1 && 1 === c) this._updateManyToOne && this._updateManyToOne(u, l), i[s] = null; else if (1 === h && c > 1) this._updateOneToMany && this._updateOneToMany(u, l), i[s] = null; else if (1 === h && 1 === c) this._update && this._update(u, l), i[s] = null; else if (h > 1) for (var p = 0; h > p; p++) this._remove && this._remove(l[p]); else this._remove && this._remove(l) } this._performRestAdd(o, i) }, t.prototype._performRestAdd = function (t, e) { for (var n = 0; n < t.length; n++) { var i = t[n], r = e[i], o = td(r); if (o > 1) for (var a = 0; o > a; a++) this._add && this._add(r[a]); else 1 === o && this._add && this._add(r); e[i] = null } }, t.prototype._initIndexMap = function (t, e, n, i) { for (var r = this._diffModeMultiple, o = 0; o < t.length; o++) { var a = "_ec_" + this[i](t[o], o); if (r || (n[o] = a), e) { var s = e[a], l = td(s); 0 === l ? (e[a] = o, r && n.push(a)) : 1 === l ? e[a] = [s, o] : s.push(o) } } }, t }(), eV = function () { function t(t) { this.otherDims = {}, null != t && h(this, t) } return t }(), nV = Math.floor, iV = D, rV = v, oV = "undefined", aV = -1, sV = "e\x00\x00", lV = { "float": typeof Float64Array === oV ? Array : Float64Array, "int": typeof Int32Array === oV ? Array : Int32Array, ordinal: Array, number: Array, time: Array }, uV = typeof Uint32Array === oV ? Array : Uint32Array, hV = typeof Int32Array === oV ? Array : Int32Array, cV = typeof Uint16Array === oV ? Array : Uint16Array, pV = ["hasItemOption", "_nameList", "_idList", "_invertedIndicesMap", "_rawData", "_dimValueGetter", "_count", "_rawCount", "_nameDimIdx", "_idDimIdx", "_nameRepeatCount"], dV = ["_extent", "_approximateExtent", "_rawExtent"], fV = function () { function t(t, e) { this.type = "list", this._count = 0, this._rawCount = 0, this._storage = {}, this._storageArr = [], this._nameList = [], this._idList = [], this._visual = {}, this._layout = {}, this._itemVisuals = [], this._itemLayouts = [], this._graphicEls = [], this._rawExtent = {}, this._extent = {}, this._approximateExtent = {}, this._calculationInfo = {}, this.hasItemOption = !0, this.TRANSFERABLE_METHODS = ["cloneShallow", "downSample", "lttbDownSample", "map"], this.CHANGABLE_METHODS = ["filterSelf", "selectRange"], this.DOWNSAMPLE_METHODS = ["downSample", "lttbDownSample"], this.getRawIndex = WB, t = t || ["x", "y"]; for (var n = {}, i = [], r = {}, o = 0; o < t.length; o++) { var a = t[o], s = T(a) ? new eV({name: a}) : a instanceof eV ? a : new eV(a), l = s.name; s.type = s.type || "float", s.coordDim || (s.coordDim = l, s.coordDimIndex = 0); var u = s.otherDims = s.otherDims || {}; i.push(l), n[l] = s, s.index = o, s.createInvertedIndices && (r[l] = []), 0 === u.itemName && (this._nameDimIdx = o, this._nameOrdinalMeta = s.ordinalMeta), 0 === u.itemId && (this._idDimIdx = o, this._idOrdinalMeta = s.ordinalMeta) } this.dimensions = i, this._dimensionInfos = n, this.hostModel = e, this._dimensionsSummary = nd(this), this._invertedIndicesMap = r, this.userOutput = this._dimensionsSummary.userOutput } return t.prototype.getDimension = function (t) { return ("number" == typeof t || !isNaN(t) && !this._dimensionInfos.hasOwnProperty(t)) && (t = this.dimensions[t]), t }, t.prototype.getDimensionInfo = function (t) { return this._dimensionInfos[this.getDimension(t)] }, t.prototype.getDimensionsOnCoord = function () { return this._dimensionsSummary.dataDimsOnCoord.slice() }, t.prototype.mapDimension = function (t, e) { var n = this._dimensionsSummary; if (null == e) return n.encodeFirstDimNotExtra[t]; var i = n.encode[t]; return i ? i[e] : null }, t.prototype.mapDimensionsAll = function (t) { var e = this._dimensionsSummary, n = e.encode[t]; return (n || []).slice() }, t.prototype.initData = function (t, e, n) { var i = Cu(t) || g(t), r = i ? new iz(t, this.dimensions.length) : t; this._rawData = r; var o = r.getSource().sourceFormat; this._storage = {}, this._indices = null, this._dontMakeIdFromName = null != this._idDimIdx || o === TR || !!r.fillStorage, this._nameList = (e || []).slice(), this._idList = [], this._nameRepeatCount = {}, n || (this.hasItemOption = !1), this.defaultDimValueGetter = VB[o], this._dimValueGetter = n = n || this.defaultDimValueGetter, this._dimValueGetterArrayRows = VB.arrayRows, this._rawExtent = {}, this._initDataFromProvider(0, r.count()), r.pure && (this.hasItemOption = !1) }, t.prototype.getProvider = function () { return this._rawData }, t.prototype.appendData = function (t) { var e = this._rawData, n = this.count(); e.appendData(t); var i = e.count(); e.persistent || (i += n), this._initDataFromProvider(n, i, !0) }, t.prototype.appendValues = function (t, e) { for (var n = this._storage, i = this.dimensions, r = i.length, o = this._rawExtent, a = this.count(), s = a + Math.max(t.length, e ? e.length : 0), l = 0; r > l; l++) { var u = i[l]; o[u] || (o[u] = KB()), HB(n, this._dimensionInfos[u], s, !0) } for (var h = rV(i, function (t) { return o[t] }), c = this._storageArr = rV(i, function (t) { return n[t] }), p = [], d = a; s > d; d++) { for (var f = d - a, g = 0; r > g; g++) { var u = i[g], y = this._dimValueGetterArrayRows(t[f] || p, u, f, g); c[g][d] = y; var v = h[g]; y < v[0] && (v[0] = y), y > v[1] && (v[1] = y) } e && (this._nameList[d] = e[f], this._dontMakeIdFromName || UB(this, d)) } this._rawCount = this._count = s, this._extent = {}, FB(this) }, t.prototype._initDataFromProvider = function (t, e, n) { if (!(t >= e)) { for (var i = this._rawData, r = this._storage, o = this.dimensions, a = o.length, s = this._dimensionInfos, l = this._nameList, u = this._idList, h = this._rawExtent, c = i.getSource().sourceFormat, p = c === wR, d = 0; a > d; d++) { var f = o[d]; h[f] || (h[f] = KB()), HB(r, s[f], e, n) } var g = this._storageArr = rV(o, function (t) { return r[t] }), y = rV(o, function (t) { return h[t] }); if (i.fillStorage) i.fillStorage(t, e, g, y); else for (var v = [], m = t; e > m; m++) { v = i.getItem(m, v); for (var x = 0; a > x; x++) { var f = o[x], _ = g[x], b = this._dimValueGetter(v, f, m, x); _[m] = b; var w = y[x]; b < w[0] && (w[0] = b), b > w[1] && (w[1] = b) } if (p && !i.pure && v) { var S = v.name; null == l[m] && null != S && (l[m] = er(S, null)); var M = v.id; null == u[m] && null != M && (u[m] = er(M, null)) } this._dontMakeIdFromName || UB(this, m) } !i.persistent && i.clean && i.clean(), this._rawCount = this._count = e, this._extent = {}, FB(this) } }, t.prototype.count = function () { return this._count }, t.prototype.getIndices = function () { var t, e = this._indices; if (e) { var n = e.constructor, i = this._count; if (n === Array) { t = new n(i); for (var r = 0; i > r; r++) t[r] = e[r] } else t = new n(e.buffer, 0, i) } else { var n = GB(this); t = new n(this.count()); for (var r = 0; r < t.length; r++) t[r] = r } return t }, t.prototype.getByDimIdx = function (t, e) { if (!(e >= 0 && e < this._count)) return 0 / 0; var n = this._storageArr[t]; return n ? n[this.getRawIndex(e)] : 0 / 0 }, t.prototype.get = function (t, e) { if (!(e >= 0 && e < this._count)) return 0 / 0; var n = this._storage[t]; return n ? n[this.getRawIndex(e)] : 0 / 0 }, t.prototype.getByRawIndex = function (t, e) { if (!(e >= 0 && e < this._rawCount)) return 0 / 0; var n = this._storage[t]; return n ? n[e] : 0 / 0 }, t.prototype.getValues = function (t, e) { var n = []; M(t) || (e = t, t = this.dimensions); for (var i = 0, r = t.length; r > i; i++) n.push(this.get(t[i], e)); return n }, t.prototype.hasValue = function (t) { for (var e = this._dimensionsSummary.dataDimsOnCoord, n = 0, i = e.length; i > n; n++) if (isNaN(this.get(e[n], t))) return !1; return !0 }, t.prototype.getDataExtent = function (t) { t = this.getDimension(t); var e = this._storage[t], n = KB(); if (!e) return n; var i, r = this.count(), o = !this._indices; if (o) return this._rawExtent[t].slice(); if (i = this._extent[t]) return i.slice(); i = n; for (var a = i[0], s = i[1], l = 0; r > l; l++) { var u = this.getRawIndex(l), h = e[u]; a > h && (a = h), h > s && (s = h) } return i = [a, s], this._extent[t] = i, i }, t.prototype.getApproximateExtent = function (t) { return t = this.getDimension(t), this._approximateExtent[t] || this.getDataExtent(t) }, t.prototype.setApproximateExtent = function (t, e) { e = this.getDimension(e), this._approximateExtent[e] = t.slice() }, t.prototype.getCalculationInfo = function (t) { return this._calculationInfo[t] }, t.prototype.setCalculationInfo = function (t, e) { iV(t) ? h(this._calculationInfo, t) : this._calculationInfo[t] = e }, t.prototype.getSum = function (t) { var e = this._storage[t], n = 0; if (e) for (var i = 0, r = this.count(); r > i; i++) { var o = this.get(t, i); isNaN(o) || (n += o) } return n }, t.prototype.getMedian = function (t) { var e = []; this.each(t, function (t) { isNaN(t) || e.push(t) }); var n = e.sort(function (t, e) { return t - e }), i = this.count(); return 0 === i ? 0 : i % 2 === 1 ? n[(i - 1) / 2] : (n[i / 2] + n[i / 2 - 1]) / 2 }, t.prototype.rawIndexOf = function (t, e) { var n = t && this._invertedIndicesMap[t], i = n[e]; return null == i || isNaN(i) ? aV : i }, t.prototype.indexOfName = function (t) { for (var e = 0, n = this.count(); n > e; e++) if (this.getName(e) === t) return e; return -1 }, t.prototype.indexOfRawIndex = function (t) { if (t >= this._rawCount || 0 > t) return -1; if (!this._indices) return t; var e = this._indices, n = e[t]; if (null != n && n < this._count && n === t) return t; for (var i = 0, r = this._count - 1; r >= i;) { var o = (i + r) / 2 | 0; if (e[o] < t) i = o + 1; else { if (!(e[o] > t)) return o; r = o - 1 } } return -1 }, t.prototype.indicesOfNearest = function (t, e, n) { var i = this._storage, r = i[t], o = []; if (!r) return o; null == n && (n = 1 / 0); for (var a = 1 / 0, s = -1, l = 0, u = 0, h = this.count(); h > u; u++) { var c = this.getRawIndex(u), p = e - r[c], d = Math.abs(p); n >= d && ((a > d || d === a && p >= 0 && 0 > s) && (a = d, s = p, l = 0), p === s && (o[l++] = u)) } return o.length = l, o }, t.prototype.getRawDataItem = function (t) { if (this._rawData.persistent) return this._rawData.getItem(this.getRawIndex(t)); for (var e = [], n = 0; n < this.dimensions.length; n++) { var i = this.dimensions[n]; e.push(this.get(i, t)) } return e }, t.prototype.getName = function (t) { var e = this.getRawIndex(t), n = this._nameList[e]; return null == n && null != this._nameDimIdx && (n = ZB(this, this._nameDimIdx, this._nameOrdinalMeta, e)), null == n && (n = ""), n }, t.prototype.getId = function (t) { return YB(this, this.getRawIndex(t)) }, t.prototype.each = function (t, e, n, i) { var r = this; if (this._count) { "function" == typeof t && (i = n, n = e, e = t, t = []); for (var o = n || i || this, a = rV(jB(t), this.getDimension, this), s = a.length, l = rV(a, function (t) { return r._dimensionInfos[t].index }), u = this._storageArr, h = 0, c = this.count(); c > h; h++) { var p = this.getRawIndex(h); switch (s) { case 0: e.call(o, h); break; case 1: e.call(o, u[l[0]][p], h); break; case 2: e.call(o, u[l[0]][p], u[l[1]][p], h); break; default: for (var d = 0, f = []; s > d; d++) f[d] = u[l[d]][p]; f[d] = h, e.apply(o, f) } } } }, t.prototype.filterSelf = function (t, e, n, i) { var r = this; if (this._count) { "function" == typeof t && (i = n, n = e, e = t, t = []); for (var o = n || i || this, a = rV(jB(t), this.getDimension, this), s = this.count(), l = GB(this), u = new l(s), h = [], c = a.length, p = 0, d = rV(a, function (t) { return r._dimensionInfos[t].index }), f = d[0], g = this._storageArr, y = 0; s > y; y++) { var v = void 0, m = this.getRawIndex(y); if (0 === c) v = e.call(o, y); else if (1 === c) { var x = g[f][m]; v = e.call(o, x, y) } else { for (var _ = 0; c > _; _++) h[_] = g[d[_]][m]; h[_] = y, v = e.apply(o, h) } v && (u[p++] = m) } return s > p && (this._indices = u), this._count = p, this._extent = {}, this.getRawIndex = this._indices ? XB : WB, this } }, t.prototype.selectRange = function (t) { var e = this, n = this._count; if (n) { var i = []; for (var r in t) t.hasOwnProperty(r) && i.push(r); var o = i.length; if (o) { var a = this.count(), s = GB(this), l = new s(a), u = 0, h = i[0], c = rV(i, function (t) { return e._dimensionInfos[t].index }), p = t[h][0], d = t[h][1], f = this._storageArr, g = !1; if (!this._indices) { var y = 0; if (1 === o) { for (var v = f[c[0]], m = 0; n > m; m++) { var x = v[m]; (x >= p && d >= x || isNaN(x)) && (l[u++] = y), y++ } g = !0 } else if (2 === o) { for (var v = f[c[0]], _ = f[c[1]], b = t[i[1]][0], w = t[i[1]][1], m = 0; n > m; m++) { var x = v[m], S = _[m]; (x >= p && d >= x || isNaN(x)) && (S >= b && w >= S || isNaN(S)) && (l[u++] = y), y++ } g = !0 } } if (!g) if (1 === o) for (var m = 0; a > m; m++) { var M = this.getRawIndex(m), x = f[c[0]][M]; (x >= p && d >= x || isNaN(x)) && (l[u++] = M) } else for (var m = 0; a > m; m++) { for (var I = !0, M = this.getRawIndex(m), T = 0; o > T; T++) { var C = i[T], x = f[c[T]][M]; (x < t[C][0] || x > t[C][1]) && (I = !1) } I && (l[u++] = this.getRawIndex(m)) } return a > u && (this._indices = l), this._count = u, this._extent = {}, this.getRawIndex = this._indices ? XB : WB, this } } }, t.prototype.mapArray = function (t, e, n, i) { "function" == typeof t && (i = n, n = e, e = t, t = []), n = n || i || this; var r = []; return this.each(t, function () { r.push(e && e.apply(this, arguments)) }, n), r }, t.prototype.map = function (t, e, n, i) { var r = n || i || this, o = rV(jB(t), this.getDimension, this), a = qB(this, o), s = a._storage; a._indices = this._indices, a.getRawIndex = a._indices ? XB : WB; for (var l = [], u = o.length, h = this.count(), c = [], p = a._rawExtent, d = 0; h > d; d++) { for (var f = 0; u > f; f++) c[f] = this.get(o[f], d); c[u] = d; var g = e && e.apply(r, c); if (null != g) { "object" != typeof g && (l[0] = g, g = l); for (var y = this.getRawIndex(d), v = 0; v < g.length; v++) { var m = o[v], x = g[v], _ = p[m], b = s[m]; b && (b[y] = x), x < _[0] && (_[0] = x), x > _[1] && (_[1] = x) } } } return a }, t.prototype.downSample = function (t, e, n, i) { for (var r = qB(this, [t]), o = r._storage, a = [], s = nV(1 / e), l = o[t], u = this.count(), h = r._rawExtent[t], c = new (GB(this))(u), p = 0, d = 0; u > d; d += s) { s > u - d && (s = u - d, a.length = s); for (var f = 0; s > f; f++) { var g = this.getRawIndex(d + f); a[f] = l[g] } var y = n(a), v = this.getRawIndex(Math.min(d + i(a, y) || 0, u - 1)); l[v] = y, y < h[0] && (h[0] = y), y > h[1] && (h[1] = y), c[p++] = v } return r._count = p, r._indices = c, r.getRawIndex = XB, r }, t.prototype.lttbDownSample = function (t, e) { var n, i, r, o = qB(this, []), a = o._storage, s = a[t], l = this.count(), u = new (GB(this))(l), h = 0, c = nV(1 / e), p = this.getRawIndex(0); u[h++] = p; for (var d = 1; l - 1 > d; d += c) { for (var f = Math.min(d + c, l - 1), g = Math.min(d + 2 * c, l), y = (g + f) / 2, v = 0, m = f; g > m; m++) { var x = this.getRawIndex(m), _ = s[x]; isNaN(_) || (v += _) } v /= g - f; var b = d, w = Math.min(d + c, l), S = d - 1, M = s[p]; n = -1, r = b; for (var m = b; w > m; m++) { var x = this.getRawIndex(m), _ = s[x]; isNaN(_) || (i = Math.abs((S - y) * (_ - M) - (S - m) * (v - M)), i > n && (n = i, r = x)) } u[h++] = r, p = r } return u[h++] = this.getRawIndex(l - 1), o._count = h, o._indices = u, o.getRawIndex = XB, o }, t.prototype.getItemModel = function (t) { var e = this.hostModel, n = this.getRawDataItem(t); return new VO(n, e, e && e.ecModel) }, t.prototype.diff = function (t) { var e = this; return new tV(t ? t.getIndices() : [], this.getIndices(), function (e) { return YB(t, e) }, function (t) { return YB(e, t) }) }, t.prototype.getVisual = function (t) { var e = this._visual; return e && e[t] }, t.prototype.setVisual = function (t, e) { this._visual = this._visual || {}, iV(t) ? h(this._visual, t) : this._visual[t] = e }, t.prototype.getItemVisual = function (t, e) { var n = this._itemVisuals[t], i = n && n[e]; return null == i ? this.getVisual(e) : i }, t.prototype.hasItemVisual = function () { return this._itemVisuals.length > 0 }, t.prototype.ensureUniqueItemVisual = function (t, e) { var n = this._itemVisuals, i = n[t]; i || (i = n[t] = {}); var r = i[e]; return null == r && (r = this.getVisual(e), M(r) ? r = r.slice() : iV(r) && (r = h({}, r)), i[e] = r), r }, t.prototype.setItemVisual = function (t, e, n) { var i = this._itemVisuals[t] || {}; this._itemVisuals[t] = i, iV(e) ? h(i, e) : i[e] = n }, t.prototype.clearAllVisual = function () { this._visual = {}, this._itemVisuals = [] }, t.prototype.setLayout = function (t, e) { if (iV(t)) for (var n in t) t.hasOwnProperty(n) && this.setLayout(n, t[n]); else this._layout[t] = e }, t.prototype.getLayout = function (t) { return this._layout[t] }, t.prototype.getItemLayout = function (t) { return this._itemLayouts[t] }, t.prototype.setItemLayout = function (t, e, n) { this._itemLayouts[t] = n ? h(this._itemLayouts[t] || {}, e) : e }, t.prototype.clearItemLayouts = function () { this._itemLayouts.length = 0 }, t.prototype.setItemGraphicEl = function (t, e) { var n = this.hostModel; if (e) { var i = tP(e); i.dataIndex = t, i.dataType = this.dataType, i.seriesIndex = n && n.seriesIndex, "group" === e.type && e.traverse($B, e) } this._graphicEls[t] = e }, t.prototype.getItemGraphicEl = function (t) { return this._graphicEls[t] }, t.prototype.eachItemGraphicEl = function (t, e) { y(this._graphicEls, function (n, i) { n && t && t.call(e, n, i) }) }, t.prototype.cloneShallow = function (e) { if (!e) { var n = rV(this.dimensions, this.getDimensionInfo, this); e = new t(n, this.hostModel) } if (e._storage = this._storage, e._storageArr = this._storageArr, JB(e, this), this._indices) { var i = this._indices.constructor; if (i === Array) { var r = this._indices.length; e._indices = new i(r); for (var o = 0; r > o; o++) e._indices[o] = this._indices[o] } else e._indices = new i(this._indices) } else e._indices = null; return e.getRawIndex = e._indices ? XB : WB, e }, t.prototype.wrapMethod = function (t, e) { var n = this[t]; "function" == typeof n && (this.__wrappedMethods = this.__wrappedMethods || [], this.__wrappedMethods.push(t), this[t] = function () { var t = n.apply(this, arguments); return e.apply(this, [t].concat(F(arguments))) }) }, t.internalField = function () { function e(t, e, n, i) { return Xu(t[i], this._dimensionInfos[e]) } function n(t) { var e = t.constructor; return e === Array ? t.slice() : new e(t) } VB = { arrayRows: e, objectRows: function (t, e) { return Xu(t[e], this._dimensionInfos[e]) }, keyedColumns: e, original: function (t, e, n, i) { var r = t && (null == t.value ? t : t.value); return !this._rawData.pure && Yi(t) && (this.hasItemOption = !0), Xu(r instanceof Array ? r[i] : r, this._dimensionInfos[e]) }, typedArray: function (t, e, n, i) { return t[i] } }, FB = function (t) { var e = t._invertedIndicesMap; y(e, function (n, i) { var r = t._dimensionInfos[i], o = r.ordinalMeta; if (o) { n = e[i] = new hV(o.categories.length); for (var a = 0; a < n.length; a++) n[a] = aV; for (var a = 0; a < t._count; a++) n[t.get(i, a)] = a } }) }, ZB = function (t, e, n, i) { var r, o = t._storageArr[e]; return o && (r = o[i], n && n.categories.length && (r = n.categories[r])), er(r, null) }, GB = function (t) { return t._rawCount > 65535 ? uV : cV }, HB = function (t, e, n, i) { var r = lV[e.type], o = e.name; if (i) { var a = t[o], s = a && a.length; if (s !== n) { for (var l = new r(n), u = 0; s > u; u++) l[u] = a[u]; t[o] = l } } else t[o] = new r(n) }, WB = function (t) { return t }, XB = function (t) { return t < this._count && t >= 0 ? this._indices[t] : -1 }, YB = function (t, e) { var n = t._idList[e]; return null == n && null != t._idDimIdx && (n = ZB(t, t._idDimIdx, t._idOrdinalMeta, e)), null == n && (n = sV + e), n }, jB = function (t) { return M(t) || (t = null != t ? [t] : []), t }, qB = function (e, i) { var r = e.dimensions, o = new t(rV(r, e.getDimensionInfo, e), e.hostModel); JB(o, e); for (var a = o._storage = {}, s = e._storage, l = o._storageArr = [], u = 0; u < r.length; u++) { var h = r[u]; s[h] && (p(i, h) >= 0 ? (a[h] = n(s[h]), o._rawExtent[h] = KB(), o._extent[h] = null) : a[h] = s[h], l.push(a[h])) } return o }, KB = function () { return [1 / 0, -1 / 0] }, $B = function (t) { var e = tP(t), n = tP(this); e.seriesIndex = n.seriesIndex, e.dataIndex = n.dataIndex, e.dataType = n.dataType }, JB = function (t, e) { y(pV.concat(e.__wrappedMethods || []), function (n) { e.hasOwnProperty(n) && (t[n] = e[n]) }), t.__wrappedMethods = e.__wrappedMethods, y(dV, function (n) { t[n] = s(e[n]) }), t._calculationInfo = h({}, e._calculationInfo) }, UB = function (t, e) { var n = t._nameList, i = t._idList, r = t._nameDimIdx, o = t._idDimIdx, a = n[e], s = i[e]; if (null == a && null != r && (n[e] = a = ZB(t, r, t._nameOrdinalMeta, e)), null == s && null != o && (i[e] = s = ZB(t, o, t._idOrdinalMeta, e)), null == s && null != a) { var l = t._nameRepeatCount, u = l[a] = (l[a] || 0) + 1; s = a, u > 1 && (s += "__ec__" + u), i[e] = s } } }(), t }(), gV = function () { function t(t) { this.coordSysDims = [], this.axisMap = Z(), this.categoryAxisMap = Z(), this.coordSysName = t } return t }(), yV = { cartesian2d: function (t, e, n, i) { var r = t.getReferringComponents("xAxis", wL).models[0], o = t.getReferringComponents("yAxis", wL).models[0]; e.coordSysDims = ["x", "y"], n.set("x", r), n.set("y", o), cd(r) && (i.set("x", r), e.firstCategoryDimIndex = 0), cd(o) && (i.set("y", o), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = 1)) }, singleAxis: function (t, e, n, i) { var r = t.getReferringComponents("singleAxis", wL).models[0]; e.coordSysDims = ["single"], n.set("single", r), cd(r) && (i.set("single", r), e.firstCategoryDimIndex = 0) }, polar: function (t, e, n, i) { var r = t.getReferringComponents("polar", wL).models[0], o = r.findAxisModel("radiusAxis"), a = r.findAxisModel("angleAxis"); e.coordSysDims = ["radius", "angle"], n.set("radius", o), n.set("angle", a), cd(o) && (i.set("radius", o), e.firstCategoryDimIndex = 0), cd(a) && (i.set("angle", a), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = 1)) }, geo: function (t, e) { e.coordSysDims = ["lng", "lat"] }, parallel: function (t, e, n, i) { var r = t.ecModel, o = r.getComponent("parallel", t.get("parallelIndex")), a = e.coordSysDims = o.dimensions.slice(); y(o.parallelAxisIndex, function (t, o) { var s = r.getComponent("parallelAxis", t), l = a[o]; n.set(l, s), cd(s) && (i.set(l, s), null == e.firstCategoryDimIndex && (e.firstCategoryDimIndex = o)) }) } }, vV = function () { function t(t) { this._setting = t || {}, this._extent = [1 / 0, -1 / 0] } return t.prototype.getSetting = function (t) { return this._setting[t] }, t.prototype.unionExtent = function (t) { var e = this._extent; t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]) }, t.prototype.unionExtentFromData = function (t, e) { this.unionExtent(t.getApproximateExtent(e)) }, t.prototype.getExtent = function () { return this._extent.slice() }, t.prototype.setExtent = function (t, e) { var n = this._extent; isNaN(t) || (n[0] = t), isNaN(e) || (n[1] = e) }, t.prototype.isInExtentRange = function (t) { return this._extent[0] <= t && this._extent[1] >= t }, t.prototype.isBlank = function () { return this._isBlank }, t.prototype.setBlank = function (t) { this._isBlank = t }, t }(); Cr(vV); var mV = function () { function t(t) { this.categories = t.categories || [], this._needCollect = t.needCollect, this._deduplication = t.deduplication } return t.createByAxisModel = function (e) { var n = e.option, i = n.data, r = i && v(i, md); return new t({categories: r, needCollect: !r, deduplication: n.dedplication !== !1}) }, t.prototype.getOrdinal = function (t) { return this._getOrCreateMap().get(t) }, t.prototype.parseAndCollect = function (t) { var e, n = this._needCollect; if ("string" != typeof t && !n) return t; if (n && !this._deduplication) return e = this.categories.length, this.categories[e] = t, e; var i = this._getOrCreateMap(); return e = i.get(t), null == e && (n ? (e = this.categories.length, this.categories[e] = t, i.set(t, e)) : e = 0 / 0), e }, t.prototype._getOrCreateMap = function () { return this._map || (this._map = Z(this.categories)) }, t }(), xV = bi, _V = function (t) { function n(e) { var n = t.call(this, e) || this; n.type = "ordinal"; var i = n.getSetting("ordinalMeta"); return i || (i = new mV({})), M(i) && (i = new mV({ categories: v(i, function (t) { return D(t) ? t.value : t }) })), n._ordinalMeta = i, n._extent = n.getSetting("extent") || [0, i.categories.length - 1], n } return e(n, t), n.prototype.parse = function (t) { return "string" == typeof t ? this._ordinalMeta.getOrdinal(t) : Math.round(t) }, n.prototype.contain = function (t) { return t = this.parse(t), Sd(t, this._extent) && null != this._ordinalMeta.categories[t] }, n.prototype.normalize = function (t) { return t = this._getTickNumber(this.parse(t)), Md(t, this._extent) }, n.prototype.scale = function (t) { return t = Math.round(Id(t, this._extent)), this.getRawOrdinalNumber(t) }, n.prototype.getTicks = function () { for (var t = [], e = this._extent, n = e[0]; n <= e[1];) t.push({value: n}), n++; return t }, n.prototype.getMinorTicks = function () { }, n.prototype.setSortInfo = function (t) { if (null == t) return void (this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null); for (var e = t.ordinalNumbers, n = this._ordinalNumbersByTick = [], i = this._ticksByOrdinalNumber = [], r = 0, o = this._ordinalMeta.categories.length, a = Math.min(o, e.length); a > r; ++r) { var s = e[r]; n[r] = s, i[s] = r } for (var l = 0; o > r; ++r) { for (; null != i[l];) l++; n.push(l), i[l] = r } }, n.prototype._getTickNumber = function (t) { var e = this._ticksByOrdinalNumber; return e && t >= 0 && t < e.length ? e[t] : t }, n.prototype.getRawOrdinalNumber = function (t) { var e = this._ordinalNumbersByTick; return e && t >= 0 && t < e.length ? e[t] : t }, n.prototype.getLabel = function (t) { if (!this.isBlank()) { var e = this.getRawOrdinalNumber(t.value), n = this._ordinalMeta.categories[e]; return null == n ? "" : n + "" } }, n.prototype.count = function () { return this._extent[1] - this._extent[0] + 1 }, n.prototype.unionExtentFromData = function (t, e) { this.unionExtent(t.getApproximateExtent(e)) }, n.prototype.isInExtentRange = function (t) { return t = this._getTickNumber(t), this._extent[0] <= t && this._extent[1] >= t }, n.prototype.getOrdinalMeta = function () { return this._ordinalMeta }, n.prototype.niceTicks = function () { }, n.prototype.niceExtent = function () { }, n.type = "ordinal", n }(vV); vV.registerClass(_V); var bV = bi, wV = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = "interval", e._interval = 0, e._intervalPrecision = 2, e } return e(n, t), n.prototype.parse = function (t) { return t }, n.prototype.contain = function (t) { return Sd(t, this._extent) }, n.prototype.normalize = function (t) { return Md(t, this._extent) }, n.prototype.scale = function (t) { return Id(t, this._extent) }, n.prototype.setExtent = function (t, e) { var n = this._extent; isNaN(t) || (n[0] = parseFloat(t)), isNaN(e) || (n[1] = parseFloat(e)) }, n.prototype.unionExtent = function (t) { var e = this._extent; t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]), this.setExtent(e[0], e[1]) }, n.prototype.getInterval = function () { return this._interval }, n.prototype.setInterval = function (t) { this._interval = t, this._niceExtent = this._extent.slice(), this._intervalPrecision = _d(t) }, n.prototype.getTicks = function (t) { var e = this._interval, n = this._extent, i = this._niceExtent, r = this._intervalPrecision, o = []; if (!e) return o; var a = 1e4; n[0] < i[0] && o.push(t ? {value: bV(i[0] - e, r)} : {value: n[0]}); for (var s = i[0]; s <= i[1] && (o.push({value: s}), s = bV(s + e, r), s !== o[o.length - 1].value);) if (o.length > a) return []; var l = o.length ? o[o.length - 1].value : i[1]; return n[1] > l && o.push(t ? {value: bV(l + e, r)} : {value: n[1]}), o }, n.prototype.getMinorTicks = function (t) { for (var e = this.getTicks(!0), n = [], i = this.getExtent(), r = 1; r < e.length; r++) { for (var o = e[r], a = e[r - 1], s = 0, l = [], u = o.value - a.value, h = u / t; t - 1 > s;) { var c = bV(a.value + (s + 1) * h); c > i[0] && c < i[1] && l.push(c), s++ } n.push(l) } return n }, n.prototype.getLabel = function (t, e) { if (null == t) return ""; var n = e && e.precision; null == n ? n = Si(t.value) || 0 : "auto" === n && (n = this._intervalPrecision); var i = bV(t.value, n, !0); return ml(i) }, n.prototype.niceTicks = function (t, e, n) { t = t || 5; var i = this._extent, r = i[1] - i[0]; if (isFinite(r)) { 0 > r && (r = -r, i.reverse()); var o = xd(i, t, e, n); this._intervalPrecision = o.intervalPrecision, this._interval = o.interval, this._niceExtent = o.niceTickExtent } }, n.prototype.niceExtent = function (t) { var e = this._extent; if (e[0] === e[1]) if (0 !== e[0]) { var n = e[0]; t.fixMax ? e[0] -= n / 2 : (e[1] += n / 2, e[0] -= n / 2) } else e[1] = 1; var i = e[1] - e[0]; isFinite(i) || (e[0] = 0, e[1] = 1), this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval); var r = this._interval; t.fixMin || (e[0] = bV(Math.floor(e[0] / r) * r)), t.fixMax || (e[1] = bV(Math.ceil(e[1] / r) * r)) }, n.type = "interval", n }(vV); vV.registerClass(wV); var SV = "__ec_stack_", MV = .5, IV = "undefined" != typeof Float32Array ? Float32Array : Array, TV = { seriesType: "bar", plan: Ch(), reset: function (t) { if (zd(t) && Ed(t)) { var e = t.getData(), n = t.coordinateSystem, i = n.master.getRect(), r = n.getBaseAxis(), o = n.getOtherAxis(r), a = e.mapDimension(o.dim), s = e.mapDimension(r.dim), l = o.isHorizontal(), u = l ? 0 : 1, h = Od(kd([t]), r, t).width; return h > MV || (h = MV), { progress: function (t, e) { for (var c, p = t.count, d = new IV(2 * p), f = new IV(2 * p), g = new IV(p), y = [], v = [], m = 0, x = 0; null != (c = t.next());) v[u] = e.get(a, c), v[1 - u] = e.get(s, c), y = n.dataToPoint(v, null), f[m] = l ? i.x + i.width : y[0], d[m++] = y[0], f[m] = l ? y[1] : i.y + i.height, d[m++] = y[1], g[x++] = c; e.setLayout({ largePoints: d, largeDataIndices: g, largeBackgroundPoints: f, barWidth: h, valueAxisStart: Nd(r, o, !1), backgroundStart: l ? i.x : i.y, valueAxisHorizontal: l }) } } } } }, CV = function (t, e, n, i) { for (; i > n;) { var r = n + i >>> 1; t[r][1] < e ? n = r + 1 : i = r } return n }, AV = function (t) { function n(e) { var n = t.call(this, e) || this; return n.type = "time", n } return e(n, t), n.prototype.getLabel = function (t) { var e = this.getSetting("useUTC"); return Qs(t.value, nR[Js(Ks(this._minLevelUnit))] || nR.second, e, this.getSetting("locale")) }, n.prototype.getFormattedLabel = function (t, e, n) { var i = this.getSetting("useUTC"), r = this.getSetting("locale"); return tl(t, e, n, r, i) }, n.prototype.getTicks = function () { var t = this._interval, e = this._extent, n = []; if (!t) return n; n.push({value: e[0], level: 0}); var i = this.getSetting("useUTC"), r = Yd(this._minLevelUnit, this._approxInterval, i, e); return n = n.concat(r), n.push({value: e[1], level: 0}), n }, n.prototype.niceExtent = function (t) { var e = this._extent; if (e[0] === e[1] && (e[0] -= JO, e[1] += JO), e[1] === -1 / 0 && 1 / 0 === e[0]) { var n = new Date; e[1] = +new Date(n.getFullYear(), n.getMonth(), n.getDate()), e[0] = e[1] - JO } this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval) }, n.prototype.niceTicks = function (t, e, n) { t = t || 10; var i = this._extent, r = i[1] - i[0]; this._approxInterval = r / t, null != e && this._approxInterval < e && (this._approxInterval = e), null != n && this._approxInterval > n && (this._approxInterval = n); var o = DV.length, a = Math.min(CV(DV, this._approxInterval, 0, o), o - 1); this._interval = DV[a][1], this._minLevelUnit = DV[Math.max(a - 1, 0)][0] }, n.prototype.parse = function (t) { return "number" == typeof t ? t : +Li(t) }, n.prototype.contain = function (t) { return Sd(this.parse(t), this._extent) }, n.prototype.normalize = function (t) { return Md(this.parse(t), this._extent) }, n.prototype.scale = function (t) { return Id(t, this._extent) }, n.type = "time", n }(wV), DV = [["second", qO], ["minute", KO], ["hour", $O], ["quarter-day", 6 * $O], ["half-day", 12 * $O], ["day", 1.2 * JO], ["half-week", 3.5 * JO], ["week", 7 * JO], ["month", 31 * JO], ["quarter", 95 * JO], ["half-year", QO / 2], ["year", QO]]; vV.registerClass(AV); var LV = vV.prototype, kV = wV.prototype, PV = bi, OV = Math.floor, RV = Math.ceil, zV = Math.pow, EV = Math.log, NV = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = "log", e.base = 10, e._originalScale = new wV, e._interval = 0, e } return e(n, t), n.prototype.getTicks = function (t) { var e = this._originalScale, n = this._extent, i = e.getExtent(), r = kV.getTicks.call(this, t); return v(r, function (t) { var e = t.value, r = bi(zV(this.base, e)); return r = e === n[0] && this._fixMin ? Zd(r, i[0]) : r, r = e === n[1] && this._fixMax ? Zd(r, i[1]) : r, {value: r} }, this) }, n.prototype.setExtent = function (t, e) { var n = this.base; t = EV(t) / EV(n), e = EV(e) / EV(n), kV.setExtent.call(this, t, e) }, n.prototype.getExtent = function () { var t = this.base, e = LV.getExtent.call(this); e[0] = zV(t, e[0]), e[1] = zV(t, e[1]); var n = this._originalScale, i = n.getExtent(); return this._fixMin && (e[0] = Zd(e[0], i[0])), this._fixMax && (e[1] = Zd(e[1], i[1])), e }, n.prototype.unionExtent = function (t) { this._originalScale.unionExtent(t); var e = this.base; t[0] = EV(t[0]) / EV(e), t[1] = EV(t[1]) / EV(e), LV.unionExtent.call(this, t) }, n.prototype.unionExtentFromData = function (t, e) { this.unionExtent(t.getApproximateExtent(e)) }, n.prototype.niceTicks = function (t) { t = t || 10; var e = this._extent, n = e[1] - e[0]; if (!(1 / 0 === n || 0 >= n)) { var i = ki(n), r = t / n * i; for (.5 >= r && (i *= 10); !isNaN(i) && Math.abs(i) < 1 && Math.abs(i) > 0;) i *= 10; var o = [bi(RV(e[0] / i) * i), bi(OV(e[1] / i) * i)]; this._interval = i, this._niceExtent = o } }, n.prototype.niceExtent = function (t) { kV.niceExtent.call(this, t), this._fixMin = t.fixMin, this._fixMax = t.fixMax }, n.prototype.parse = function (t) { return t }, n.prototype.contain = function (t) { return t = EV(t) / EV(this.base), Sd(t, this._extent) }, n.prototype.normalize = function (t) { return t = EV(t) / EV(this.base), Md(t, this._extent) }, n.prototype.scale = function (t) { return t = Id(t, this._extent), zV(this.base, t) }, n.type = "log", n }(vV), BV = NV.prototype; BV.getMinorTicks = kV.getMinorTicks, BV.getLabel = kV.getLabel, vV.registerClass(NV); var VV = function () { function t(t, e, n) { this._prepareParams(t, e, n) } return t.prototype._prepareParams = function (t, e, n) { n[1] < n[0] && (n = [0 / 0, 0 / 0]), this._dataMin = n[0], this._dataMax = n[1]; var i = this._isOrdinal = "ordinal" === t.type; this._needCrossZero = e.getNeedCrossZero && e.getNeedCrossZero(); var r = this._modelMinRaw = e.get("min", !0); I(r) ? this._modelMinNum = jd(t, r({ min: n[0], max: n[1] })) : "dataMin" !== r && (this._modelMinNum = jd(t, r)); var o = this._modelMaxRaw = e.get("max", !0); if (I(o) ? this._modelMaxNum = jd(t, o({ min: n[0], max: n[1] })) : "dataMax" !== o && (this._modelMaxNum = jd(t, o)), i) this._axisDataLen = e.getCategories().length; else { var a = e.get("boundaryGap"), s = M(a) ? a : [a || 0, a || 0]; this._boundaryGapInner = "boolean" == typeof s[0] || "boolean" == typeof s[1] ? [0, 0] : [ri(s[0], 1), ri(s[1], 1)] } }, t.prototype.calculate = function () { var t = this._isOrdinal, e = this._dataMin, n = this._dataMax, i = this._axisDataLen, r = this._boundaryGapInner, o = t ? null : n - e || Math.abs(e), a = "dataMin" === this._modelMinRaw ? e : this._modelMinNum, s = "dataMax" === this._modelMaxRaw ? n : this._modelMaxNum, l = null != a, u = null != s; null == a && (a = t ? i ? 0 : 0 / 0 : e - r[0] * o), null == s && (s = t ? i ? i - 1 : 0 / 0 : n + r[1] * o), (null == a || !isFinite(a)) && (a = 0 / 0), (null == s || !isFinite(s)) && (s = 0 / 0), a > s && (a = 0 / 0, s = 0 / 0); var h = E(a) || E(s) || t && !i; this._needCrossZero && (a > 0 && s > 0 && !l && (a = 0), 0 > a && 0 > s && !u && (s = 0)); var c = this._determinedMin, p = this._determinedMax; return null != c && (a = c, l = !0), null != p && (s = p, u = !0), { min: a, max: s, minFixed: l, maxFixed: u, isBlank: h } }, t.prototype.modifyDataMinMax = function (t, e) { this[GV[t]] = e }, t.prototype.setDeterminedMinMax = function (t, e) { var n = FV[t]; this[n] = e }, t.prototype.freeze = function () { this.frozen = !0 }, t }(), FV = {min: "_determinedMin", max: "_determinedMax"}, GV = {min: "_dataMin", max: "_dataMax"}, HV = function () { function t() { } return t.prototype.getNeedCrossZero = function () { var t = this.option; return !t.scale }, t.prototype.getCoordSysModel = function () { }, t }(), WV = {isDimensionStacked: dd, enableDataStack: pd, getStackedDimension: fd}, XV = (Object.freeze || Object)({ createList: uf, getLayoutRect: kl, dataStack: WV, createScale: hf, mixinAxisModelCommonMethods: cf, getECData: tP, createTextStyle: pf, createDimensions: ud, createSymbol: Sc, enableHoverEmphasis: Sa }), YV = [], ZV = { registerPreprocessor: Fp, registerProcessor: Gp, registerPostInit: Hp, registerPostUpdate: Wp, registerAction: Xp, registerCoordinateSystem: Yp, registerLayout: Up, registerVisual: jp, registerTransform: BB, registerLoading: Kp, registerMap: Jp, PRIORITY: GN, ComponentModel: gR, ComponentView: Tz, SeriesModel: Iz, ChartView: Dz, registerComponentModel: function (t) { gR.registerClass(t) }, registerComponentView: function (t) { Tz.registerClass(t) }, registerSeriesModel: function (t) { Iz.registerClass(t) }, registerChartView: function (t) { Dz.registerClass(t) }, registerSubTypeDefaulter: function (t, e) { gR.registerSubTypeDefaulter(t, e) }, registerPainter: function (t, e) { vi(t, e) } }, UV = (Object.freeze || Object)({ linearMap: xi, round: bi, asc: wi, getPrecision: Si, getPrecisionSafe: Mi, getPixelPrecision: Ii, getPercentWithPrecision: Ti, MAX_SAFE_INTEGER: yL, remRadian: Ai, isRadianAroundZero: Di, parseDate: Li, quantity: ki, quantityExponent: Pi, nice: Oi, quantile: Ri, reformIntervals: zi, isNumeric: Ni, numericToNumber: Ei }), jV = (Object.freeze || Object)({parse: Li, format: Qs}), qV = (Object.freeze || Object)({ extendShape: Ja, extendPath: Qa, makePath: ns, makeImage: is, mergePath: wO, resizePath: os, createIcon: Ss, updateProps: us, initProps: hs, getTransform: gs, clipPointsByRect: bs, clipRectByRect: ws, registerShape: ts, getShapeClass: es, Group: sL, Image: Wk, Text: $k, Circle: kP, Ellipse: OP, Sector: ZP, Ring: jP, Polygon: KP, Polyline: JP, Rect: Uk, Line: eO, BezierCurve: rO, Arc: aO, IncrementalDisplayable: vO, CompoundPath: sO, LinearGradient: uO, RadialGradient: hO, BoundingRect: $D }), KV = (Object.freeze || Object)({ addCommas: ml, toCamelCase: xl, normalizeCssArray: oR, encodeHTML: _l, formatTpl: wl, getTooltipMarker: Ml, formatTime: Il, capitalFirst: Tl, truncateText: Or, getTextRect: vl }), $V = (Object.freeze || Object)({ map: v, each: y, indexOf: p, inherits: d, reduce: m, filter: x, bind: xA, curry: S, isArray: M, isString: T, isObject: D, isFunction: I, extend: h, defaults: c, clone: s, merge: l }), JV = ur(), QV = [0, 1], tF = function () { function t(t, e, n) { this.onBand = !1, this.inverse = !1, this.dim = t, this.scale = e, this._extent = n || [0, 0] } return t.prototype.contain = function (t) { var e = this._extent, n = Math.min(e[0], e[1]), i = Math.max(e[0], e[1]); return t >= n && i >= t }, t.prototype.containData = function (t) { return this.scale.contain(t) }, t.prototype.getExtent = function () { return this._extent.slice() }, t.prototype.getPixelPrecision = function (t) { return Ii(t || this.scale.getExtent(), this._extent) }, t.prototype.setExtent = function (t, e) { var n = this._extent; n[0] = t, n[1] = e }, t.prototype.dataToCoord = function (t, e) { var n = this._extent, i = this.scale; return t = i.normalize(t), this.onBand && "ordinal" === i.type && (n = n.slice(), Af(n, i.count())), xi(t, QV, n, e) }, t.prototype.coordToData = function (t, e) { var n = this._extent, i = this.scale; this.onBand && "ordinal" === i.type && (n = n.slice(), Af(n, i.count())); var r = xi(t, n, QV, e); return this.scale.scale(r) }, t.prototype.pointToData = function () { }, t.prototype.getTicksCoords = function (t) { t = t || {}; var e = t.tickModel || this.getTickModel(), n = gf(this, e), i = n.ticks, r = v(i, function (t) { return { coord: this.dataToCoord("ordinal" === this.scale.type ? this.scale.getRawOrdinalNumber(t) : t), tickValue: t } }, this), o = e.get("alignWithLabel"); return Df(this, r, o, t.clamp), r }, t.prototype.getMinorTicksCoords = function () { if ("ordinal" === this.scale.type) return []; var t = this.model.getModel("minorTick"), e = t.get("splitNumber"); e > 0 && 100 > e || (e = 5); var n = this.scale.getMinorTicks(e), i = v(n, function (t) { return v(t, function (t) { return {coord: this.dataToCoord(t), tickValue: t} }, this) }, this); return i }, t.prototype.getViewLabels = function () { return ff(this).labels }, t.prototype.getLabelModel = function () { return this.model.getModel("axisLabel") }, t.prototype.getTickModel = function () { return this.model.getModel("axisTick") }, t.prototype.getBandWidth = function () { var t = this._extent, e = this.scale.getExtent(), n = e[1] - e[0] + (this.onBand ? 1 : 0); 0 === n && (n = 1); var i = Math.abs(t[1] - t[0]); return Math.abs(i) / n }, t.prototype.calculateCategoryInterval = function () { return Mf(this) }, t }(), eF = function (t) { function n(e, n, i) { var r = t.call(this) || this; r.motionBlur = !1, r.lastFrameAlpha = .7, r.dpr = 1, r.virtual = !1, r.config = {}, r.incremental = !1, r.zlevel = 0, r.maxRepaintRectCount = 5, r.__dirty = !0, r.__firstTimePaint = !0, r.__used = !1, r.__drawIndex = 0, r.__startIndex = 0, r.__endIndex = 0, r.__prevStartIndex = null, r.__prevEndIndex = null; var o; i = i || DD, "string" == typeof e ? o = zf(e, n, i) : D(e) && (o = e, e = o.id), r.id = e, r.dom = o; var a = o.style; return a && (o.onselectstart = Rf, a.webkitUserSelect = "none", a.userSelect = "none", a.webkitTapHighlightColor = "rgba(0,0,0,0)", a["-webkit-touch-callout"] = "none", a.padding = "0", a.margin = "0", a.borderWidth = "0"), r.domBack = null, r.ctxBack = null, r.painter = n, r.config = null, r.dpr = i, r } return e(n, t), n.prototype.getElementCount = function () { return this.__endIndex - this.__startIndex }, n.prototype.afterBrush = function () { this.__prevStartIndex = this.__startIndex, this.__prevEndIndex = this.__endIndex }, n.prototype.initContext = function () { this.ctx = this.dom.getContext("2d"), this.ctx.dpr = this.dpr }, n.prototype.setUnpainted = function () { this.__firstTimePaint = !0 }, n.prototype.createBackBuffer = function () { var t = this.dpr; this.domBack = zf("back-" + this.id, this.painter, t), this.ctxBack = this.domBack.getContext("2d"), 1 !== t && this.ctxBack.scale(t, t) }, n.prototype.createRepaintRects = function (t, e, n, i) { function r(t) { if (t.isFinite() && !t.isZero()) if (0 === o.length) { var e = new $D(0, 0, 0, 0); e.copy(t), o.push(e) } else { for (var n = !1, i = 1 / 0, r = 0, u = 0; u < o.length; ++u) { var h = o[u]; if (h.intersect(t)) { var c = new $D(0, 0, 0, 0); c.copy(h), c.union(t), o[u] = c, n = !0; break } if (s) { l.copy(t), l.union(h); var p = t.width * t.height, d = h.width * h.height, f = l.width * l.height, g = f - p - d; i > g && (i = g, r = u) } } if (s && (o[r].union(t), n = !0), !n) { var e = new $D(0, 0, 0, 0); e.copy(t), o.push(e) } s || (s = o.length >= a) } } if (this.__firstTimePaint) return this.__firstTimePaint = !1, null; for (var o = [], a = this.maxRepaintRectCount, s = !1, l = new $D(0, 0, 0, 0), u = this.__startIndex; u < this.__endIndex; ++u) { var h = t[u]; if (h) { var c = h.shouldBePainted(n, i, !0, !0), p = h.__isRendered && (h.__dirty & jA || !c) ? h.getPrevPaintRect() : null; p && r(p); var d = c && (h.__dirty & jA || !h.__isRendered) ? h.getPaintRect() : null; d && r(d) } } for (var u = this.__prevStartIndex; u < this.__prevEndIndex; ++u) { var h = e[u], c = h.shouldBePainted(n, i, !0, !0); if (h && (!c || !h.__zr) && h.__isRendered) { var p = h.getPrevPaintRect(); p && r(p) } } var f; do { f = !1; for (var u = 0; u < o.length;) if (o[u].isZero()) o.splice(u, 1); else { for (var g = u + 1; g < o.length;) o[u].intersect(o[g]) ? (f = !0, o[u].union(o[g]), o.splice(g, 1)) : g++; u++ } } while (f); return this._paintRects = o, o }, n.prototype.debugGetPaintRects = function () { return (this._paintRects || []).slice() }, n.prototype.resize = function (t, e) { var n = this.dpr, i = this.dom, r = i.style, o = this.domBack; r && (r.width = t + "px", r.height = e + "px"), i.width = t * n, i.height = e * n, o && (o.width = t * n, o.height = e * n, 1 !== n && this.ctxBack.scale(n, n)) }, n.prototype.clear = function (t, e, n) { function i(t, n, i, r) { if (o.clearRect(t, n, i, r), e && "transparent" !== e) { var a = void 0; O(e) ? (a = e.__canvasGradient || Tc(o, e, { x: 0, y: 0, width: i, height: r }), e.__canvasGradient = a) : R(e) && (a = Oc(o, e, { dirty: function () { c.setUnpainted(), c.__painter.refresh() } })), o.save(), o.fillStyle = a || e, o.fillRect(t, n, i, r), o.restore() } l && (o.save(), o.globalAlpha = u, o.drawImage(p, t, n, i, r), o.restore()) } var r = this.dom, o = this.ctx, a = r.width, s = r.height; e = e || this.clearColor; var l = this.motionBlur && !t, u = this.lastFrameAlpha, h = this.dpr, c = this; l && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation = "copy", this.ctxBack.drawImage(r, 0, 0, a / h, s / h)); var p = this.domBack; !n || l ? i(0, 0, a, s) : n.length && y(n, function (t) { i(t.x * h, t.y * h, t.width * h, t.height * h) }) }, n }(LA), nF = 1e5, iF = 314159, rF = .01, oF = .001, aF = function () { function t(t, e, n) { this.type = "canvas", this._zlevelList = [], this._prevDisplayList = [], this._layers = {}, this._layerConfig = {}, this._needsManuallyCompositing = !1, this.type = "canvas"; var i = !t.nodeName || "CANVAS" === t.nodeName.toUpperCase(); this._opts = n = h({}, n || {}), this.dpr = n.devicePixelRatio || DD, this._singleCanvas = i, this.root = t; var r = t.style; r && (r.webkitTapHighlightColor = "transparent", r.webkitUserSelect = "none", r.userSelect = "none", r["-webkit-touch-callout"] = "none", t.innerHTML = ""), this.storage = e; var o = this._zlevelList; this._prevDisplayList = []; var a = this._layers; if (i) { var s = t, l = s.width, u = s.height; null != n.width && (l = n.width), null != n.height && (u = n.height), this.dpr = n.devicePixelRatio || 1, s.width = l * this.dpr, s.height = u * this.dpr, this._width = l, this._height = u; var c = new eF(s, this, this.dpr); c.__builtin__ = !0, c.initContext(), a[iF] = c, c.zlevel = iF, o.push(iF), this._domRoot = t } else { this._width = this._getSize(0), this._height = this._getSize(1); var p = this._domRoot = Bf(this._width, this._height); t.appendChild(p) } } return t.prototype.getType = function () { return "canvas" }, t.prototype.isSingleCanvas = function () { return this._singleCanvas }, t.prototype.getViewportRoot = function () { return this._domRoot }, t.prototype.getViewportRootOffset = function () { var t = this.getViewportRoot(); return t ? {offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0} : void 0 }, t.prototype.refresh = function (t) { var e = this.storage.getDisplayList(!0), n = this._prevDisplayList, i = this._zlevelList; this._redrawId = Math.random(), this._paintList(e, n, t, this._redrawId); for (var r = 0; r < i.length; r++) { var o = i[r], a = this._layers[o]; if (!a.__builtin__ && a.refresh) { var s = 0 === r ? this._backgroundColor : null; a.refresh(s) } } return this._opts.useDirtyRect && (this._prevDisplayList = e.slice()), this }, t.prototype.refreshHover = function () { this._paintHoverList(this.storage.getDisplayList(!1)) }, t.prototype._paintHoverList = function (t) { var e = t.length, n = this._hoverlayer; if (n && n.clear(), e) { for (var i, r = {inHover: !0, viewWidth: this._width, viewHeight: this._height}, o = 0; e > o; o++) { var a = t[o]; a.__inHover && (n || (n = this._hoverlayer = this.getLayer(nF)), i || (i = n.ctx, i.save()), Uc(i, a, r, o === e - 1)) } i && i.restore() } }, t.prototype.getHoverLayer = function () { return this.getLayer(nF) }, t.prototype.paintOne = function (t, e) { Zc(t, e) }, t.prototype._paintList = function (t, e, n, i) { if (this._redrawId === i) { n = n || !1, this._updateLayerStatus(t); var r = this._doPaintList(t, e, n), o = r.finished, a = r.needsRefreshHover; if (this._needsManuallyCompositing && this._compositeManually(), a && this._paintHoverList(t), o) this.eachLayer(function (t) { t.afterBrush && t.afterBrush() }); else { var s = this; QA(function () { s._paintList(t, e, n, i) }) } } }, t.prototype._compositeManually = function () { var t = this.getLayer(iF).ctx, e = this._domRoot.width, n = this._domRoot.height; t.clearRect(0, 0, e, n), this.eachBuiltinLayer(function (i) { i.virtual && t.drawImage(i.dom, 0, 0, e, n) }) }, t.prototype._doPaintList = function (t, e, n) { for (var i = this, r = [], o = this._opts.useDirtyRect, a = 0; a < this._zlevelList.length; a++) { var s = this._zlevelList[a], l = this._layers[s]; l.__builtin__ && l !== this._hoverlayer && (l.__dirty || n) && r.push(l) } for (var u = !0, h = !1, c = function (a) { var s = r[a], l = s.ctx, c = o && s.createRepaintRects(t, e, p._width, p._height), d = n ? s.__startIndex : s.__drawIndex, f = !n && s.incremental && Date.now, g = f && Date.now(), y = s.zlevel === p._zlevelList[0] ? p._backgroundColor : null; if (s.__startIndex === s.__endIndex) s.clear(!1, y, c); else if (d === s.__startIndex) { var v = t[d]; v.incremental && v.notClear && !n || s.clear(!1, y, c) } -1 === d && (console.error("For some unknown reason. drawIndex is -1"), d = s.__startIndex); var m, x = function (e) { var n = {inHover: !1, allClipped: !1, prevEl: null, viewWidth: i._width, viewHeight: i._height}; for (m = d; m < s.__endIndex; m++) { var r = t[m]; if (r.__inHover && (h = !0), i._doPaintEl(r, s, o, e, n, m === s.__endIndex - 1), f) { var a = Date.now() - g; if (a > 15) break } } n.prevElClipPaths && l.restore() }; if (c) if (0 === c.length) m = s.__endIndex; else for (var _ = p.dpr, b = 0; b < c.length; ++b) { var w = c[b]; l.save(), l.beginPath(), l.rect(w.x * _, w.y * _, w.width * _, w.height * _), l.clip(), x(w), l.restore() } else l.save(), x(), l.restore(); s.__drawIndex = m, s.__drawIndex < s.__endIndex && (u = !1) }, p = this, d = 0; d < r.length; d++) c(d); return oA.wxa && y(this._layers, function (t) { t && t.ctx && t.ctx.draw && t.ctx.draw() }), {finished: u, needsRefreshHover: h} }, t.prototype._doPaintEl = function (t, e, n, i, r, o) { var a = e.ctx; if (n) { var s = t.getPaintRect(); (!i || s && s.intersect(i)) && (Uc(a, t, r, o), t.setPrevPaintRect(s)) } else Uc(a, t, r, o) }, t.prototype.getLayer = function (t, e) { this._singleCanvas && !this._needsManuallyCompositing && (t = iF); var n = this._layers[t]; return n || (n = new eF("zr_" + t, this, this.dpr), n.zlevel = t, n.__builtin__ = !0, this._layerConfig[t] ? l(n, this._layerConfig[t], !0) : this._layerConfig[t - rF] && l(n, this._layerConfig[t - rF], !0), e && (n.virtual = e), this.insertLayer(t, n), n.initContext()), n }, t.prototype.insertLayer = function (t, e) { var n = this._layers, i = this._zlevelList, r = i.length, o = this._domRoot, s = null, l = -1; if (n[t]) return void a("ZLevel " + t + " has been used already"); if (!Nf(e)) return void a("Layer of zlevel " + t + " is not valid"); if (r > 0 && t > i[0]) { for (l = 0; r - 1 > l && !(i[l] < t && i[l + 1] > t); l++) ; s = n[i[l]] } if (i.splice(l + 1, 0, t), n[t] = e, !e.virtual) if (s) { var u = s.dom; u.nextSibling ? o.insertBefore(e.dom, u.nextSibling) : o.appendChild(e.dom) } else o.firstChild ? o.insertBefore(e.dom, o.firstChild) : o.appendChild(e.dom); e.__painter = this }, t.prototype.eachLayer = function (t, e) { for (var n = this._zlevelList, i = 0; i < n.length; i++) { var r = n[i]; t.call(e, this._layers[r], r) } }, t.prototype.eachBuiltinLayer = function (t, e) { for (var n = this._zlevelList, i = 0; i < n.length; i++) { var r = n[i], o = this._layers[r]; o.__builtin__ && t.call(e, o, r) } }, t.prototype.eachOtherLayer = function (t, e) { for (var n = this._zlevelList, i = 0; i < n.length; i++) { var r = n[i], o = this._layers[r]; o.__builtin__ || t.call(e, o, r) } }, t.prototype.getLayers = function () { return this._layers }, t.prototype._updateLayerStatus = function (t) { function e(t) { s && (s.__endIndex !== t && (s.__dirty = !0), s.__endIndex = t) } if (this.eachBuiltinLayer(function (t) { t.__dirty = t.__used = !1 }), this._singleCanvas) for (var n = 1; n < t.length; n++) { var i = t[n]; if (i.zlevel !== t[n - 1].zlevel || i.incremental) { this._needsManuallyCompositing = !0; break } } var r, o, s = null, l = 0; for (o = 0; o < t.length; o++) { var i = t[o], u = i.zlevel, h = void 0; r !== u && (r = u, l = 0), i.incremental ? (h = this.getLayer(u + oF, this._needsManuallyCompositing), h.incremental = !0, l = 1) : h = this.getLayer(u + (l > 0 ? rF : 0), this._needsManuallyCompositing), h.__builtin__ || a("ZLevel " + u + " has been used by unkown layer " + h.id), h !== s && (h.__used = !0, h.__startIndex !== o && (h.__dirty = !0), h.__startIndex = o, h.__drawIndex = h.incremental ? -1 : o, e(o), s = h), i.__dirty & jA && !i.__inHover && (h.__dirty = !0, h.incremental && h.__drawIndex < 0 && (h.__drawIndex = o)) } e(o), this.eachBuiltinLayer(function (t) { !t.__used && t.getElementCount() > 0 && (t.__dirty = !0, t.__startIndex = t.__endIndex = t.__drawIndex = 0), t.__dirty && t.__drawIndex < 0 && (t.__drawIndex = t.__startIndex) }) }, t.prototype.clear = function () { return this.eachBuiltinLayer(this._clearLayer), this }, t.prototype._clearLayer = function (t) { t.clear() }, t.prototype.setBackgroundColor = function (t) { this._backgroundColor = t, y(this._layers, function (t) { t.setUnpainted() }) }, t.prototype.configLayer = function (t, e) { if (e) { var n = this._layerConfig; n[t] ? l(n[t], e, !0) : n[t] = e; for (var i = 0; i < this._zlevelList.length; i++) { var r = this._zlevelList[i]; if (r === t || r === t + rF) { var o = this._layers[r]; l(o, n[t], !0) } } } }, t.prototype.delLayer = function (t) { var e = this._layers, n = this._zlevelList, i = e[t]; i && (i.dom.parentNode.removeChild(i.dom), delete e[t], n.splice(p(n, t), 1)) }, t.prototype.resize = function (t, e) { if (this._domRoot.style) { var n = this._domRoot; n.style.display = "none"; var i = this._opts; if (null != t && (i.width = t), null != e && (i.height = e), t = this._getSize(0), e = this._getSize(1), n.style.display = "", this._width !== t || e !== this._height) { n.style.width = t + "px", n.style.height = e + "px"; for (var r in this._layers) this._layers.hasOwnProperty(r) && this._layers[r].resize(t, e); this.refresh(!0) } this._width = t, this._height = e } else { if (null == t || null == e) return; this._width = t, this._height = e, this.getLayer(iF).resize(t, e) } return this }, t.prototype.clearLayer = function (t) { var e = this._layers[t]; e && e.clear() }, t.prototype.dispose = function () { this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null }, t.prototype.getRenderedCanvas = function (t) { if (t = t || {}, this._singleCanvas && !this._compositeManually) return this._layers[iF].dom; var e = new eF("image", this, t.pixelRatio || this.dpr); e.initContext(), e.clear(!1, t.backgroundColor || this._backgroundColor); var n = e.ctx; if (t.pixelRatio <= this.dpr) { this.refresh(); var i = e.dom.width, r = e.dom.height; this.eachLayer(function (t) { t.__builtin__ ? n.drawImage(t.dom, 0, 0, i, r) : t.renderToCanvas && (n.save(), t.renderToCanvas(n), n.restore()) }) } else for (var o = { inHover: !1, viewWidth: this._width, viewHeight: this._height }, a = this.storage.getDisplayList(!0), s = 0, l = a.length; l > s; s++) { var u = a[s]; Uc(n, u, o, s === l - 1) } return e.dom }, t.prototype.getWidth = function () { return this._width }, t.prototype.getHeight = function () { return this._height }, t.prototype._getSize = function (t) { var e = this._opts, n = ["width", "height"][t], i = ["clientWidth", "clientHeight"][t], r = ["paddingLeft", "paddingTop"][t], o = ["paddingRight", "paddingBottom"][t]; if (null != e[n] && "auto" !== e[n]) return parseFloat(e[n]); var a = this.root, s = document.defaultView.getComputedStyle(a); return (a[i] || Ef(s[n]) || Ef(a.style[n])) - (Ef(s[r]) || 0) - (Ef(s[o]) || 0) | 0 }, t.prototype.pathToImage = function (t, e) { e = e || this.dpr; var n = document.createElement("canvas"), i = n.getContext("2d"), r = t.getBoundingRect(), o = t.style, a = o.shadowBlur * e, s = o.shadowOffsetX * e, l = o.shadowOffsetY * e, u = t.hasStroke() ? o.lineWidth : 0, c = Math.max(u / 2, -s + a), p = Math.max(u / 2, s + a), d = Math.max(u / 2, -l + a), f = Math.max(u / 2, l + a), g = r.width + c + p, y = r.height + d + f; n.width = g * e, n.height = y * e, i.scale(e, e), i.clearRect(0, 0, g, y), i.dpr = e; var v = { x: t.x, y: t.y, scaleX: t.scaleX, scaleY: t.scaleY, rotation: t.rotation, originX: t.originX, originY: t.originY }; t.x = c - r.x, t.y = d - r.y, t.rotation = 0, t.scaleX = 1, t.scaleY = 1, t.updateTransform(), t && Uc(i, t, { inHover: !1, viewWidth: this._width, viewHeight: this._height }, !0); var m = new Wk({style: {x: 0, y: 0, image: n}}); return h(t, v), m }, t }(), sF = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = "dataset", e } return e(n, t), n.prototype.init = function (e, n, i) { t.prototype.init.call(this, e, n, i), this._sourceManager = new mz(this), th(this) }, n.prototype.mergeOption = function (e, n) { t.prototype.mergeOption.call(this, e, n), th(this) }, n.prototype.optionUpdated = function () { this._sourceManager.dirty() }, n.prototype.getSourceManager = function () { return this._sourceManager }, n.type = "dataset", n.defaultOption = {seriesLayoutBy: AR}, n }(gR), lF = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = "dataset", e } return e(n, t), n.type = "dataset", n }(Tz); df([Vf, Ff]); var uF = { average: function (t) { for (var e = 0, n = 0, i = 0; i < t.length; i++) isNaN(t[i]) || (e += t[i], n++); return 0 === n ? 0 / 0 : e / n }, sum: function (t) { for (var e = 0, n = 0; n < t.length; n++) e += t[n] || 0; return e }, max: function (t) { for (var e = -1 / 0, n = 0; n < t.length; n++) t[n] > e && (e = t[n]); return isFinite(e) ? e : 0 / 0 }, min: function (t) { for (var e = 1 / 0, n = 0; n < t.length; n++) t[n] < e && (e = t[n]); return isFinite(e) ? e : 0 / 0 }, nearest: function (t) { return t[0] } }, hF = function (t) { return Math.round(t.length / 2) }, cF = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.getInitialData = function () { return gd(this.getSource(), this, {useEncodeDefaulter: !0}) }, n.prototype.getMarkerPosition = function (t) { var e = this.coordinateSystem; if (e) { var n = e.dataToPoint(e.clampData(t)), i = this.getData(), r = i.getLayout("offset"), o = i.getLayout("size"), a = e.getBaseAxis().isHorizontal() ? 0 : 1; return n[a] += r + o / 2, n } return [0 / 0, 0 / 0] }, n.type = "series.__base_bar__", n.defaultOption = { zlevel: 0, z: 2, coordinateSystem: "cartesian2d", legendHoverLink: !0, barMinHeight: 0, barMinAngle: 0, large: !1, largeThreshold: 400, progressive: 3e3, progressiveChunkMode: "mod" }, n }(Iz); Iz.registerClass(cF); var pF = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.getInitialData = function () { return gd(this.getSource(), this, { useEncodeDefaulter: !0, createInvertedIndices: !!this.get("realtimeSort", !0) || null }) }, n.prototype.getProgressive = function () { return this.get("large") ? this.get("progressive") : !1 }, n.prototype.getProgressiveThreshold = function () { var t = this.get("progressiveThreshold"), e = this.get("largeThreshold"); return e > t && (t = e), t }, n.prototype.brushSelector = function (t, e, n) { return n.rect(e.getItemLayout(t)) }, n.type = "series.bar", n.dependencies = ["grid", "polar"], n.defaultOption = Xs(cF.defaultOption, { clip: !0, roundCap: !1, showBackground: !1, backgroundStyle: { color: "rgba(180, 180, 180, 0.2)", borderColor: null, borderWidth: 0, borderType: "solid", borderRadius: 0, shadowBlur: 0, shadowColor: null, shadowOffsetX: 0, shadowOffsetY: 0, opacity: 1 }, select: {itemStyle: {borderColor: "#212121"}}, realtimeSort: !1 }), n }(cF), dF = function () { function t() { this.cx = 0, this.cy = 0, this.r0 = 0, this.r = 0, this.startAngle = 0, this.endAngle = 2 * Math.PI, this.clockwise = !0 } return t }(), fF = function (t) { function n(e) { var n = t.call(this, e) || this; return n.type = "sausage", n } return e(n, t), n.prototype.getDefaultShape = function () { return new dF }, n.prototype.buildPath = function (t, e) { var n = e.cx, i = e.cy, r = Math.max(e.r0 || 0, 0), o = Math.max(e.r, 0), a = .5 * (o - r), s = r + a, l = e.startAngle, u = e.endAngle, h = e.clockwise, c = Math.cos(l), p = Math.sin(l), d = Math.cos(u), f = Math.sin(u), g = h ? u - l < 2 * Math.PI : l - u < 2 * Math.PI; g && (t.moveTo(c * r + n, p * r + i), t.arc(c * s + n, p * s + i, a, -Math.PI + l, l, !h)), t.arc(n, i, o, l, u, !h), t.moveTo(d * o + n, f * o + i), t.arc(d * s + n, f * s + i, a, u - 2 * Math.PI, u - Math.PI, !h), 0 !== r && (t.arc(n, i, r, u, l, h), t.moveTo(c * r + n, f * r + i)), t.closePath() }, n }(Bk), gF = [0, 0], yF = Math.max, vF = Math.min, mF = function (t) { function n() { var e = t.call(this) || this; return e.type = n.type, e._isFirstFrame = !0, e } return e(n, t), n.prototype.render = function (t, e, n, i) { this._model = t, this._removeOnRenderedListener(n), this._updateDrawMode(t); var r = t.get("coordinateSystem"); ("cartesian2d" === r || "polar" === r) && (this._isLargeDraw ? this._renderLarge(t, e, n) : this._renderNormal(t, e, n, i)) }, n.prototype.incrementalPrepareRender = function (t) { this._clear(), this._updateDrawMode(t), this._updateLargeClip(t) }, n.prototype.incrementalRender = function (t, e) { this._incrementalRenderLarge(t, e) }, n.prototype._updateDrawMode = function (t) { var e = t.pipelineContext.large; (null == this._isLargeDraw || e !== this._isLargeDraw) && (this._isLargeDraw = e, this._clear()) }, n.prototype._renderNormal = function (t, e, n, i) { function r(t) { var e = bF[u.type](s, t), n = og(u, o, e); return n.useStyle(v.getItemStyle()), "cartesian2d" === u.type && n.setShape("r", m), x[t] = n, n } var o, a = this.group, s = t.getData(), l = this._data, u = t.coordinateSystem, h = u.getBaseAxis(); "cartesian2d" === u.type ? o = h.isHorizontal() : "polar" === u.type && (o = "angle" === h.dim); var c = t.isAnimationEnabled() ? t : null, p = qf(t, u); p && this._enableRealtimeSort(p, s, n); var d = t.get("clip", !0) || p, f = jf(u, s); a.removeClipPath(); var g = t.get("roundCap", !0), y = t.get("showBackground", !0), v = t.getModel("backgroundStyle"), m = v.get("borderRadius") || 0, x = [], _ = this._backgroundEls, b = i && i.isInitSort, w = i && "changeAxisOrder" === i.type; s.diff(l).add(function (e) { var n = s.getItemModel(e), i = bF[u.type](s, e, n); if (y && r(e), s.hasValue(e)) { var l = !1; d && (l = xF[u.type](f, i)); var v = _F[u.type](t, s, e, i, o, c, h.model, !1, g); Jf(v, s, e, n, i, t, o, "polar" === u.type), b ? v.attr({shape: i}) : p ? Kf(p, c, v, i, e, o, !1, !1) : hs(v, {shape: i}, t, e), s.setItemGraphicEl(e, v), a.add(v), v.ignore = l } }).update(function (e, n) { var i = s.getItemModel(e), S = bF[u.type](s, e, i); if (y) { var M = void 0; 0 === _.length ? M = r(n) : (M = _[n], M.useStyle(v.getItemStyle()), "cartesian2d" === u.type && M.setShape("r", m), x[e] = M); var I = bF[u.type](s, e), T = rg(o, I, u); us(M, {shape: T}, c, e) } var C = l.getItemGraphicEl(n); if (!s.hasValue(e)) return a.remove(C), void (C = null); var A = !1; d && (A = xF[u.type](f, S), A && a.remove(C)), C || (C = _F[u.type](t, s, e, S, o, c, h.model, !!C, g)), w || Jf(C, s, e, i, S, t, o, "polar" === u.type), b ? C.attr({shape: S}) : p ? Kf(p, c, C, S, e, o, !0, w) : us(C, {shape: S}, t, e, null), s.setItemGraphicEl(e, C), C.ignore = A, a.add(C) }).remove(function (e) { var n = l.getItemGraphicEl(e); n && ds(n, t, e) }).execute(); var S = this._backgroundGroup || (this._backgroundGroup = new sL); S.removeAll(); for (var M = 0; M < x.length; ++M) S.add(x[M]); a.add(S), this._backgroundEls = x, this._data = s }, n.prototype._renderLarge = function (t) { this._clear(), tg(t, this.group), this._updateLargeClip(t) }, n.prototype._incrementalRenderLarge = function (t, e) { this._removeBackground(), tg(e, this.group, !0) }, n.prototype._updateLargeClip = function (t) { var e = t.get("clip", !0) ? Xf(t.coordinateSystem, !1, t) : null; e ? this.group.setClipPath(e) : this.group.removeClipPath() }, n.prototype._enableRealtimeSort = function (t, e, n) { var i = this; if (e.count()) { var r = t.baseAxis; if (this._isFirstFrame) this._dispatchInitSort(e, t, n), this._isFirstFrame = !1; else { var o = function (t) { var n = e.getItemGraphicEl(t); if (n) { var i = n.shape; return Math.abs(r.isHorizontal() ? i.height : i.width) || 0 } return 0 }; this._onRendered = function () { i._updateSortWithinSameData(e, o, r, n) }, n.getZr().on("rendered", this._onRendered) } } }, n.prototype._dataSort = function (t, e, n) { var i = []; return t.each(t.mapDimension(e.dim), function (t, e) { var r = n(e); r = null == r ? 0 / 0 : r, i.push({dataIndex: e, mappedValue: r, ordinalNumber: t}) }), i.sort(function (t, e) { return e.mappedValue - t.mappedValue }), { ordinalNumbers: v(i, function (t) { return t.ordinalNumber }) } }, n.prototype._isOrderChangedWithinSameData = function (t, e, n) { for (var i = n.scale, r = t.mapDimension(n.dim), o = Number.MAX_VALUE, a = 0, s = i.getOrdinalMeta().categories.length; s > a; ++a) { var l = t.rawIndexOf(r, i.getRawOrdinalNumber(a)), u = 0 > l ? Number.MIN_VALUE : e(t.indexOfRawIndex(l)); if (u > o) return !0; o = u } return !1 }, n.prototype._isOrderDifferentInView = function (t, e) { for (var n = e.scale, i = n.getExtent(), r = Math.max(0, i[0]), o = Math.min(i[1], n.getOrdinalMeta().categories.length - 1); o >= r; ++r) if (t.ordinalNumbers[r] !== n.getRawOrdinalNumber(r)) return !0 }, n.prototype._updateSortWithinSameData = function (t, e, n, i) { if (this._isOrderChangedWithinSameData(t, e, n)) { var r = this._dataSort(t, n, e); this._isOrderDifferentInView(r, n) && (this._removeOnRenderedListener(i), i.dispatchAction({ type: "changeAxisOrder", componentType: n.dim + "Axis", axisId: n.index, sortInfo: r })) } }, n.prototype._dispatchInitSort = function (t, e, n) { var i = e.baseAxis, r = this._dataSort(t, i, function (n) { return t.get(t.mapDimension(e.otherAxis.dim), n) }); n.dispatchAction({ type: "changeAxisOrder", componentType: i.dim + "Axis", isInitSort: !0, axisId: i.index, sortInfo: r, animation: {duration: 0} }) }, n.prototype.remove = function (t, e) { this._clear(this._model), this._removeOnRenderedListener(e) }, n.prototype.dispose = function (t, e) { this._removeOnRenderedListener(e) }, n.prototype._removeOnRenderedListener = function (t) { this._onRendered && (t.getZr().off("rendered", this._onRendered), this._onRendered = null) }, n.prototype._clear = function (t) { var e = this.group, n = this._data; t && t.isAnimationEnabled() && n && !this._isLargeDraw ? (this._removeBackground(), this._backgroundEls = [], n.eachItemGraphicEl(function (e) { ds(e, t, tP(e).dataIndex) })) : e.removeAll(), this._data = null, this._isFirstFrame = !0 }, n.prototype._removeBackground = function () { this.group.remove(this._backgroundGroup), this._backgroundGroup = null }, n.type = "bar", n }(Dz), xF = { cartesian2d: function (t, e) { var n = e.width < 0 ? -1 : 1, i = e.height < 0 ? -1 : 1; 0 > n && (e.x += e.width, e.width = -e.width), 0 > i && (e.y += e.height, e.height = -e.height); var r = t.x + t.width, o = t.y + t.height, a = yF(e.x, t.x), s = vF(e.x + e.width, r), l = yF(e.y, t.y), u = vF(e.y + e.height, o), h = a > s, c = l > u; return e.x = h && a > r ? s : a, e.y = c && l > o ? u : l, e.width = h ? 0 : s - a, e.height = c ? 0 : u - l, 0 > n && (e.x += e.width, e.width = -e.width), 0 > i && (e.y += e.height, e.height = -e.height), h || c }, polar: function (t, e) { var n = e.r0 <= e.r ? 1 : -1; if (0 > n) { var i = e.r; e.r = e.r0, e.r0 = i } var r = vF(e.r, t.r), o = yF(e.r0, t.r0); e.r = r, e.r0 = o; var a = 0 > r - o; if (0 > n) { var i = e.r; e.r = e.r0, e.r0 = i } return a } }, _F = { cartesian2d: function (t, e, n, i, r, o) { var a = new Uk({shape: h({}, i), z2: 1}); if (a.__dataIndex = n, a.name = "item", o) { var s = a.shape, l = r ? "height" : "width"; s[l] = 0 } return a }, polar: function (t, e, n, i, r, o, a, s, l) { var u = i.startAngle < i.endAngle, h = !r && l ? fF : ZP, p = new h({shape: c({clockwise: u}, i), z2: 1}); if (p.name = "item", o) { var d = p.shape, f = r ? "r" : "endAngle", g = {}; d[f] = r ? 0 : i.startAngle, g[f] = i[f], (s ? us : hs)(p, {shape: g}, o) } return p } }, bF = { cartesian2d: function (t, e, n) { var i = t.getItemLayout(e), r = n ? Qf(n, i) : 0, o = i.width > 0 ? 1 : -1, a = i.height > 0 ? 1 : -1; return {x: i.x + o * r / 2, y: i.y + a * r / 2, width: i.width - o * r, height: i.height - a * r} }, polar: function (t, e) { var n = t.getItemLayout(e); return {cx: n.cx, cy: n.cy, r0: n.r0, r: n.r, startAngle: n.startAngle, endAngle: n.endAngle} } }, wF = function () { function t() { } return t }(), SF = function (t) { function n(e) { var n = t.call(this, e) || this; return n.type = "largeBar", n } return e(n, t), n.prototype.getDefaultShape = function () { return new wF }, n.prototype.buildPath = function (t, e) { for (var n = e.points, i = this.__startPoint, r = this.__baseDimIdx, o = 0; o < n.length; o += 2) i[r] = n[o + r], t.moveTo(i[0], i[1]), t.lineTo(n[o], n[o + 1]) }, n }(Bk), MF = Ph(function (t) { var e = this, n = eg(e, t.offsetX, t.offsetY); tP(e).dataIndex = n >= 0 ? n : null }, 30, !1); df(ag); var IF = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.hasSymbolVisual = !0, e } return e(n, t), n.prototype.getInitialData = function () { return gd(this.getSource(), this, {useEncodeDefaulter: !0}) }, n.prototype.getLegendIcon = function (t) { var e = new sL, n = Sc("line", 0, t.itemHeight / 2, t.itemWidth, 0, t.lineStyle.stroke, !1); e.add(n), n.setStyle(t.lineStyle); var i = this.getData().getVisual("symbol"), r = this.getData().getVisual("symbolRotate"), o = "none" === i ? "circle" : i, a = .8 * t.itemHeight, s = Sc(o, (t.itemWidth - a) / 2, (t.itemHeight - a) / 2, a, a, t.itemStyle.fill); e.add(s), s.setStyle(t.itemStyle); var l = "inherit" === t.iconRotate ? r : t.iconRotate || 0; return s.rotation = l * Math.PI / 180, s.setOrigin([t.itemWidth / 2, t.itemHeight / 2]), o.indexOf("empty") > -1 && (s.style.stroke = s.style.fill, s.style.fill = "#fff", s.style.lineWidth = 2), e }, n.type = "series.line", n.dependencies = ["grid", "polar"], n.defaultOption = { zlevel: 0, z: 3, coordinateSystem: "cartesian2d", legendHoverLink: !0, clip: !0, label: {position: "top"}, endLabel: {show: !1, valueAnimation: !0, distance: 8}, lineStyle: {width: 2, type: "solid"}, emphasis: {scale: !0, lineStyle: {width: "bolder"}}, step: !1, smooth: !1, smoothMonotone: null, symbol: "emptyCircle", symbolSize: 4, symbolRotate: null, showSymbol: !0, showAllSymbol: "auto", connectNulls: !1, sampling: "none", animationEasing: "linear", progressive: 0, hoverLayerThreshold: 1 / 0 }, n }(Iz), TF = function (t) { function n(e, n, i, r) { var o = t.call(this) || this; return o.updateData(e, n, i, r), o } return e(n, t), n.prototype._createSymbol = function (t, e, n, i, r) { this.removeAll(); var o = Sc(t, -1, -1, 2, 2, null, r); o.attr({ z2: 100, culling: !0, scaleX: i[0] / 2, scaleY: i[1] / 2 }), o.drift = sg, this._symbolType = t, this.add(o) }, n.prototype.stopSymbolAnimation = function (t) { this.childAt(0).stopAnimation(null, t) }, n.prototype.getSymbolPath = function () { return this.childAt(0) }, n.prototype.highlight = function () { aa(this.childAt(0)) }, n.prototype.downplay = function () { sa(this.childAt(0)) }, n.prototype.setZ = function (t, e) { var n = this.childAt(0); n.zlevel = t, n.z = e }, n.prototype.setDraggable = function (t) { var e = this.childAt(0); e.draggable = t, e.cursor = t ? "move" : e.cursor }, n.prototype.updateData = function (t, e, i, r) { this.silent = !1; var o = t.getItemVisual(e, "symbol") || "circle", a = t.hostModel, s = n.getSymbolSize(t, e), l = o !== this._symbolType, u = r && r.disableAnimation; if (l) { var h = t.getItemVisual(e, "symbolKeepAspect"); this._createSymbol(o, t, e, s, h) } else { var c = this.childAt(0); c.silent = !1; var p = {scaleX: s[0] / 2, scaleY: s[1] / 2}; u ? c.attr(p) : us(c, p, a, e) } if (this._updateCommon(t, e, s, i, r), l) { var c = this.childAt(0); if (!u) { var p = {scaleX: this._sizeX, scaleY: this._sizeY, style: {opacity: c.style.opacity}}; c.scaleX = c.scaleY = 0, c.style.opacity = 0, hs(c, p, a, e) } } u && this.childAt(0).stopAnimation("remove"), this._seriesModel = a }, n.prototype._updateCommon = function (t, e, n, i, r) { function o(e) { return C ? t.getName(e) : Zf(t, e) } var a, s, l, u, c, p, d, f, g = this.childAt(0), y = t.hostModel; if (i && (a = i.emphasisItemStyle, s = i.blurItemStyle, l = i.selectItemStyle, u = i.focus, c = i.blurScope, p = i.labelStatesModels, d = i.hoverScale, f = i.cursorStyle), !i || t.hasItemOption) { var v = i && i.itemModel ? i.itemModel : t.getItemModel(e), m = v.getModel("emphasis"); a = m.getModel("itemStyle").getItemStyle(), l = v.getModel(["select", "itemStyle"]).getItemStyle(), s = v.getModel(["blur", "itemStyle"]).getItemStyle(), u = m.get("focus"), c = m.get("blurScope"), p = Ps(v), d = m.getShallow("scale"), f = v.getShallow("cursor") } var x = t.getItemVisual(e, "symbolRotate"); g.attr("rotation", (x || 0) * Math.PI / 180 || 0); var _ = t.getItemVisual(e, "symbolOffset") || 0; _ && (M(_) || (_ = [_, _]), g.x = _i(_[0], n[0]), g.y = _i(B(_[1], _[0]) || 0, n[1])), f && g.attr("cursor", f); var b = t.getItemVisual(e, "style"), w = b.fill; if (g instanceof Wk) { var S = g.style; g.useStyle(h({image: S.image, x: S.x, y: S.y, width: S.width, height: S.height}, b)) } else g.useStyle(g.__isEmptyBrush ? h({}, b) : b), g.style.decal = null, g.setColor(w, r && r.symbolInnerColor), g.style.strokeNoScale = !0; var I = t.getItemVisual(e, "liftZ"), T = this._z2; null != I ? null == T && (this._z2 = g.z2, g.z2 += I) : null != T && (g.z2 = T, this._z2 = null); var C = r && r.useNameLabel; ks(g, p, { labelFetcher: y, labelDataIndex: e, defaultText: o, inheritColor: w, defaultOpacity: b.opacity }), this._sizeX = n[0] / 2, this._sizeY = n[1] / 2; var A = g.ensureState("emphasis"); if (A.style = a, g.ensureState("select").style = l, g.ensureState("blur").style = s, d) { var D = Math.max(1.1, 3 / this._sizeY); A.scaleX = this._sizeX * D, A.scaleY = this._sizeY * D } this.setSymbolScale(1), Sa(this, u, c) }, n.prototype.setSymbolScale = function (t) { this.scaleX = this.scaleY = t }, n.prototype.fadeOut = function (t, e) { var n = this.childAt(0), i = this._seriesModel, r = tP(this).dataIndex, o = e && e.animation; if (this.silent = n.silent = !0, e && e.fadeLabel) { var a = n.getTextContent(); a && cs(a, {style: {opacity: 0}}, i, { dataIndex: r, removeOpt: o, cb: function () { n.removeTextContent() } }) } else n.removeTextContent(); cs(n, {style: {opacity: 0}, scaleX: 0, scaleY: 0}, i, {dataIndex: r, cb: t, removeOpt: o}) }, n.getSymbolSize = function (t, e) { var n = t.getItemVisual(e, "symbolSize"); return M(n) ? n.slice() : [+n, +n] }, n }(sL), CF = function () { function t(t) { this.group = new sL, this._SymbolCtor = t || TF } return t.prototype.updateData = function (t, e) { e = ug(e); var n = this.group, i = t.hostModel, r = this._data, o = this._SymbolCtor, a = e.disableAnimation, s = hg(t), l = {disableAnimation: a}, u = e.getSymbolPoint || function (e) { return t.getItemLayout(e) }; r || n.removeAll(), t.diff(r).add(function (i) { var r = u(i); if (lg(t, r, i, e)) { var a = new o(t, i, s, l); a.setPosition(r), t.setItemGraphicEl(i, a), n.add(a) } }).update(function (h, c) { var p = r.getItemGraphicEl(c), d = u(h); if (!lg(t, d, h, e)) return void n.remove(p); if (p) { p.updateData(t, h, s, l); var f = {x: d[0], y: d[1]}; a ? p.attr(f) : us(p, f, i) } else p = new o(t, h), p.setPosition(d); n.add(p), t.setItemGraphicEl(h, p) }).remove(function (t) { var e = r.getItemGraphicEl(t); e && e.fadeOut(function () { n.remove(e) }) }).execute(), this._getSymbolPoint = u, this._data = t }, t.prototype.isPersistent = function () { return !0 }, t.prototype.updateLayout = function () { var t = this, e = this._data; e && e.eachItemGraphicEl(function (e, n) { var i = t._getSymbolPoint(n); e.setPosition(i), e.markRedraw() }) }, t.prototype.incrementalPrepareUpdate = function (t) { this._seriesScope = hg(t), this._data = null, this.group.removeAll() }, t.prototype.incrementalUpdate = function (t, e, n) { function i(t) { t.isGroup || (t.incremental = !0, t.ensureState("emphasis").hoverLayer = !0) } n = ug(n); for (var r = t.start; r < t.end; r++) { var o = e.getItemLayout(r); if (lg(e, o, r, n)) { var a = new this._SymbolCtor(e, r, this._seriesScope); a.traverse(i), a.setPosition(o), this.group.add(a), e.setItemGraphicEl(r, a) } } }, t.prototype.remove = function (t) { var e = this.group, n = this._data; n && t ? n.eachItemGraphicEl(function (t) { t.fadeOut(function () { e.remove(t) }) }) : e.removeAll() }, t }(), AF = "undefined" != typeof Float32Array, DF = AF ? Float32Array : Array, LF = Math.min, kF = Math.max, PF = function () { function t() { this.smooth = 0, this.smoothConstraint = !0 } return t }(), OF = function (t) { function n(e) { var n = t.call(this, e) || this; return n.type = "ec-polyline", n } return e(n, t), n.prototype.getDefaultStyle = function () { return {stroke: "#000", fill: null} }, n.prototype.getDefaultShape = function () { return new PF }, n.prototype.buildPath = function (t, e) { var n = e.points, i = 0, r = n.length / 2; if (e.connectNulls) { for (; r > 0 && vg(n[2 * r - 2], n[2 * r - 1]); r--) ; for (; r > i && vg(n[2 * i], n[2 * i + 1]); i++) ; } for (; r > i;) i += mg(t, n, i, r, r, 1, e.smooth, e.smoothMonotone, e.connectNulls) + 1 }, n.prototype.getPointOn = function (t, e) { this.path || (this.createPathProxy(), this.buildPath(this.path, this.shape)); for (var n, i, r = this.path, o = r.data, a = Ck.CMD, s = "x" === e, l = [], u = 0; u < o.length;) { var h = o[u++], c = void 0, p = void 0, d = void 0, f = void 0, g = void 0, y = void 0, v = void 0; switch (h) { case a.M: n = o[u++], i = o[u++]; break; case a.L: if (c = o[u++], p = o[u++], v = s ? (t - n) / (c - n) : (t - i) / (p - i), 1 >= v && v >= 0) { var m = s ? (p - i) * v + i : (c - n) * v + n; return s ? [t, m] : [m, t] } n = c, i = p; break; case a.C: c = o[u++], p = o[u++], d = o[u++], f = o[u++], g = o[u++], y = o[u++]; var x = s ? jr(n, c, d, g, t, l) : jr(i, p, f, y, t, l); if (x > 0) for (var _ = 0; x > _; _++) { var b = l[_]; if (1 >= b && b >= 0) { var m = s ? Zr(i, p, f, y, b) : Zr(n, c, d, g, b); return s ? [t, m] : [m, t] } } n = g, i = y } } }, n }(Bk), RF = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n }(PF), zF = function (t) { function n(e) { var n = t.call(this, e) || this; return n.type = "ec-polygon", n } return e(n, t), n.prototype.getDefaultShape = function () { return new RF }, n.prototype.buildPath = function (t, e) { var n = e.points, i = e.stackedOnPoints, r = 0, o = n.length / 2, a = e.smoothMonotone; if (e.connectNulls) { for (; o > 0 && vg(n[2 * o - 2], n[2 * o - 1]); o--) ; for (; o > r && vg(n[2 * r], n[2 * r + 1]); r++) ; } for (; o > r;) { var s = mg(t, n, r, o, o, 1, e.smooth, a, e.connectNulls); mg(t, i, r + s - 1, s, o, -1, e.stackedOnSmooth, a, e.connectNulls), r += s + 1, t.closePath() } }, n }(Bk), EF = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.init = function () { var t = new sL, e = new CF; this.group.add(e.group), this._symbolDraw = e, this._lineGroup = t }, n.prototype.render = function (t, e, n) { var i = this, r = t.coordinateSystem, o = this.group, a = t.getData(), s = t.getModel("lineStyle"), l = t.getModel("areaStyle"), u = a.getLayout("points") || [], h = "polar" === r.type, p = this._coordSys, d = this._symbolDraw, f = this._polyline, g = this._polygon, y = this._lineGroup, v = t.get("animation"), m = !l.isEmpty(), x = l.get("origin"), _ = cg(r, a, x), b = m && Sg(r, a, _), w = t.get("showSymbol"), S = w && !h && Tg(t, a, r), M = this._data; M && M.eachItemGraphicEl(function (t, e) { t.__temp && (o.remove(t), M.setItemGraphicEl(e, null)) }), w || d.remove(), o.add(y); var I, T = h ? !1 : t.get("step"); r && r.getArea && t.get("clip", !0) && (I = r.getArea(), null != I.width ? (I.x -= .1, I.y -= .1, I.width += .2, I.height += .2) : I.r0 && (I.r0 -= .5, I.r += .5)), this._clipShapeForSymbol = I; var C = Ig(a, r) || a.getVisual("style")[a.getVisual("drawType")]; f && p.type === r.type && T === this._step ? (m && !g ? g = this._newPolygon(u, b) : g && !m && (y.remove(g), g = this._polygon = null), h || this._initOrUpdateEndLabel(t, r, Cl(C)), y.setClipPath(Pg(this, r, !1, t)), w && d.updateData(a, { isIgnore: S, clipShape: I, disableAnimation: !0, getSymbolPoint: function (t) { return [u[2 * t], u[2 * t + 1]] } }), xg(this._stackedOnPoints, b) && xg(this._points, u) || (v ? this._doUpdateAnimation(a, b, r, n, T, x) : (T && (u = Mg(u, r, T), b && (b = Mg(b, r, T))), f.setShape({points: u}), g && g.setShape({ points: u, stackedOnPoints: b })))) : (w && d.updateData(a, { isIgnore: S, clipShape: I, disableAnimation: !0, getSymbolPoint: function (t) { return [u[2 * t], u[2 * t + 1]] } }), v && this._initSymbolLabelAnimation(a, r, I), T && (u = Mg(u, r, T), b && (b = Mg(b, r, T))), f = this._newPolyline(u), m && (g = this._newPolygon(u, b)), h || this._initOrUpdateEndLabel(t, r, Cl(C)), y.setClipPath(Pg(this, r, !0, t))); var A = t.get(["emphasis", "focus"]), D = t.get(["emphasis", "blurScope"]); if (f.useStyle(c(s.getLineStyle(), { fill: "none", stroke: C, lineJoin: "bevel" })), Ia(f, t, "lineStyle"), f.style.lineWidth > 0 && "bolder" === t.get(["emphasis", "lineStyle", "width"])) { var L = f.getState("emphasis").style; L.lineWidth = +f.style.lineWidth + 1 } tP(f).seriesIndex = t.seriesIndex, Sa(f, A, D); var k = wg(t.get("smooth")), P = t.get("smoothMonotone"), O = t.get("connectNulls"); if (f.setShape({smooth: k, smoothMonotone: P, connectNulls: O}), g) { var R = a.getCalculationInfo("stackedOnSeries"), z = 0; g.useStyle(c(l.getAreaStyle(), { fill: C, opacity: .7, lineJoin: "bevel", decal: a.getVisual("style").decal })), R && (z = wg(R.get("smooth"))), g.setShape({ smooth: k, stackedOnSmooth: z, smoothMonotone: P, connectNulls: O }), Ia(g, t, "areaStyle"), tP(g).seriesIndex = t.seriesIndex, Sa(g, A, D) } var E = function (t) { i._changePolyState(t) }; a.eachItemGraphicEl(function (t) { t && (t.onHoverStateChange = E) }), this._polyline.onHoverStateChange = E, this._data = a, this._coordSys = r, this._stackedOnPoints = b, this._points = u, this._step = T, this._valueOrigin = x }, n.prototype.dispose = function () { }, n.prototype.highlight = function (t, e, n, i) { var r = t.getData(), o = lr(r, i); if (this._changePolyState("emphasis"), !(o instanceof Array) && null != o && o >= 0) { var a = r.getLayout("points"), s = r.getItemGraphicEl(o); if (!s) { var l = a[2 * o], u = a[2 * o + 1]; if (isNaN(l) || isNaN(u)) return; if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(l, u)) return; var h = t.get("zlevel"), c = t.get("z"); s = new TF(r, o), s.x = l, s.y = u, s.setZ(h, c); var p = s.getSymbolPath().getTextContent(); p && (p.zlevel = h, p.z = c, p.z2 = this._polyline.z2 + 1), s.__temp = !0, r.setItemGraphicEl(o, s), s.stopSymbolAnimation(!0), this.group.add(s) } s.highlight() } else Dz.prototype.highlight.call(this, t, e, n, i) }, n.prototype.downplay = function (t, e, n, i) { var r = t.getData(), o = lr(r, i); if (this._changePolyState("normal"), null != o && o >= 0) { var a = r.getItemGraphicEl(o); a && (a.__temp ? (r.setItemGraphicEl(o, null), this.group.remove(a)) : a.downplay()) } else Dz.prototype.downplay.call(this, t, e, n, i) }, n.prototype._changePolyState = function (t) { var e = this._polygon; $o(this._polyline, t), e && $o(e, t) }, n.prototype._newPolyline = function (t) { var e = this._polyline; return e && this._lineGroup.remove(e), e = new OF({ shape: {points: t}, segmentIgnoreThreshold: 2, z2: 10 }), this._lineGroup.add(e), this._polyline = e, e }, n.prototype._newPolygon = function (t, e) { var n = this._polygon; return n && this._lineGroup.remove(n), n = new zF({ shape: {points: t, stackedOnPoints: e}, segmentIgnoreThreshold: 2 }), this._lineGroup.add(n), this._polygon = n, n }, n.prototype._initSymbolLabelAnimation = function (t, e, n) { var i, r, o = e.getBaseAxis(), a = o.inverse; "cartesian2d" === e.type ? (i = o.isHorizontal(), r = !1) : "polar" === e.type && (i = "angle" === o.dim, r = !0); var s = t.hostModel, l = s.get("animationDuration"); "function" == typeof l && (l = l(null)); var u = s.get("animationDelay") || 0, h = "function" == typeof u ? u(null) : u; t.eachItemGraphicEl(function (t, o) { var s = t; if (s) { var c = [t.x, t.y], p = void 0, d = void 0, f = void 0; if (n) if (r) { var g = n, y = e.pointToCoord(c); i ? (p = g.startAngle, d = g.endAngle, f = -y[1] / 180 * Math.PI) : (p = g.r0, d = g.r, f = y[0]) } else { var v = n; i ? (p = v.x, d = v.x + v.width, f = t.x) : (p = v.y + v.height, d = v.y, f = t.y) } var m = d === p ? 0 : (f - p) / (d - p); a && (m = 1 - m); var x = "function" == typeof u ? u(o) : l * m + h, _ = s.getSymbolPath(), b = _.getTextContent(); s.attr({scaleX: 0, scaleY: 0}), s.animateTo({scaleX: 1, scaleY: 1}, { duration: 200, delay: x }), b && b.animateFrom({style: {opacity: 0}}, { duration: 300, delay: x }), _.disableLabelAnimation = !0 } }) }, n.prototype._initOrUpdateEndLabel = function (t, e, n) { var i = t.getModel("endLabel"); if (i.get("show")) { var r = t.getData(), o = this._polyline, a = this._endLabel; a || (a = this._endLabel = new $k({z2: 200}), a.ignoreClip = !0, o.setTextContent(this._endLabel), o.disableLabelAnimation = !0); var s = Dg(r.getLayout("points")); s >= 0 && (ks(o, Ps(t, "endLabel"), { inheritColor: n, labelFetcher: t, labelDataIndex: s, defaultText: function (t, e, n) { return null != n ? Uf(r, n) : Zf(r, t) }, enableTextSetter: !0 }, Og(i, e)), o.textConfig.position = null) } else this._endLabel && (this._polyline.removeTextContent(), this._endLabel = null) }, n.prototype._endLabelOnDuring = function (t, e, n, i, r, o, a) { var s = this._endLabel, l = this._polyline; if (s) { 1 > t && null == i.originalX && (i.originalX = s.x, i.originalY = s.y); var u = n.getLayout("points"), h = n.hostModel, c = h.get("connectNulls"), p = o.get("precision"), d = o.get("distance") || 0, f = a.getBaseAxis(), g = f.isHorizontal(), y = f.inverse, v = e.shape, m = y ? g ? v.x : v.y + v.height : g ? v.x + v.width : v.y, x = (g ? d : 0) * (y ? -1 : 1), _ = (g ? 0 : -d) * (y ? -1 : 1), b = g ? "x" : "y", w = kg(u, m, b), S = w.range, M = S[1] - S[0], I = void 0; if (M >= 1) { if (M > 1 && !c) { var T = Lg(u, S[0]); s.attr({x: T[0] + x, y: T[1] + _}), r && (I = h.getRawValue(S[0])) } else { var T = l.getPointOn(m, b); T && s.attr({x: T[0] + x, y: T[1] + _}); var C = h.getRawValue(S[0]), A = h.getRawValue(S[1]); r && (I = vr(n, p, C, A, w.t)) } i.lastFrameIndex = S[0] } else { var D = 1 === t || i.lastFrameIndex > 0 ? S[0] : 0, T = Lg(u, D); r && (I = h.getRawValue(D)), s.attr({x: T[0] + x, y: T[1] + _}) } r && DO(s).setLabelText(I) } }, n.prototype._doUpdateAnimation = function (t, e, n, i, r, o) { var a = this._polyline, s = this._polygon, l = t.hostModel, u = yg(this._data, t, this._stackedOnPoints, e, this._coordSys, n, this._valueOrigin, o), h = u.current, c = u.stackedOnCurrent, p = u.next, d = u.stackedOnNext; if (r && (h = Mg(u.current, n, r), c = Mg(u.stackedOnCurrent, n, r), p = Mg(u.next, n, r), d = Mg(u.stackedOnNext, n, r)), bg(h, p) > 3e3 || s && bg(c, d) > 3e3) return a.setShape({points: p}), void (s && s.setShape({ points: p, stackedOnPoints: d })); a.shape.__points = u.current, a.shape.points = h; var f = {shape: {points: p}}; u.current !== h && (f.shape.__points = u.next), a.stopAnimation(), us(a, f, l), s && (s.setShape({ points: h, stackedOnPoints: c }), s.stopAnimation(), us(s, {shape: {stackedOnPoints: d}}, l), a.shape.points !== s.shape.points && (s.shape.points = a.shape.points)); for (var g = [], y = u.status, v = 0; v < y.length; v++) { var m = y[v].cmd; if ("=" === m) { var x = t.getItemGraphicEl(y[v].idx1); x && g.push({el: x, ptIdx: v}) } } a.animators && a.animators.length && a.animators[0].during(function () { s && s.dirtyShape(); for (var t = a.shape.__points, e = 0; e < g.length; e++) { var n = g[e].el, i = 2 * g[e].ptIdx; n.x = t[i], n.y = t[i + 1], n.markRedraw() } }) }, n.prototype.remove = function () { var t = this.group, e = this._data; this._lineGroup.removeAll(), this._symbolDraw.remove(!0), e && e.eachItemGraphicEl(function (n, i) { n.__temp && (t.remove(n), e.setItemGraphicEl(i, null)) }), this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null }, n.type = "line", n }(Dz); df(zg); var NF = 2 * Math.PI, BF = Math.PI / 180, VF = Math.PI / 180, FF = function (t) { function n(e, n, i) { var r = t.call(this) || this; r.z2 = 2; var o = new $k; return r.setTextContent(o), r.updateData(e, n, i, !0), r } return e(n, t), n.prototype.updateData = function (t, e, n, i) { var r = this, o = t.hostModel, a = t.getItemModel(e), s = a.getModel("emphasis"), l = t.getItemLayout(e), u = h(Wg(a.getModel("itemStyle"), l) || {}, l); if (isNaN(u.startAngle)) return void r.setShape(u); if (i) { r.setShape(u); var c = o.getShallow("animationType"); "scale" === c ? (r.shape.r = l.r0, hs(r, {shape: {r: l.r}}, o, e)) : null != n ? (r.setShape({ startAngle: n, endAngle: n }), hs(r, { shape: { startAngle: l.startAngle, endAngle: l.endAngle } }, o, e)) : (r.shape.endAngle = l.startAngle, us(r, {shape: {endAngle: l.endAngle}}, o, e)) } else us(r, {shape: u}, o, e); r.useStyle(t.getItemVisual(e, "style")), Ia(r, a); var p = (l.startAngle + l.endAngle) / 2, d = o.get("selectedOffset"), f = Math.cos(p) * d, g = Math.sin(p) * d, y = a.getShallow("cursor"); y && r.attr("cursor", y), this._updateLabel(o, t, e), r.ensureState("emphasis").shape = nA({r: l.r + (s.get("scale") ? s.get("scaleSize") || 0 : 0)}, Wg(s.getModel("itemStyle"), l)), h(r.ensureState("select"), { x: f, y: g, shape: Wg(a.getModel(["select", "itemStyle"]), l) }), h(r.ensureState("blur"), {shape: Wg(a.getModel(["blur", "itemStyle"]), l)}); var v = r.getTextGuideLine(), m = r.getTextContent(); v && h(v.ensureState("select"), {x: f, y: g}), h(m.ensureState("select"), { x: f, y: g }), Sa(this, s.get("focus"), s.get("blurScope")) }, n.prototype._updateLabel = function (t, e, n) { var i = this, r = e.getItemModel(n), o = r.getModel("labelLine"), a = e.getItemVisual(n, "style"), s = a && a.fill, l = a && a.opacity; ks(i, Ps(r), { labelFetcher: e.hostModel, labelDataIndex: n, inheritColor: s, defaultOpacity: l, defaultText: t.getFormattedLabel(n, "normal") || e.getName(n) }); var u = i.getTextContent(); i.setTextConfig({position: null, rotation: null}), u.attr({z2: 10}); var h = t.get(["label", "position"]); if ("outside" !== h && "outer" !== h) i.removeTextGuideLine(); else { var c = this.getTextGuideLine(); c || (c = new JP, this.setTextGuideLine(c)), lc(this, uc(r), { stroke: s, opacity: V(o.get(["lineStyle", "opacity"]), l, 1) }) } }, n }(ZP), GF = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.ignoreLabelLineUpdate = !0, e } return e(n, t), n.prototype.init = function () { var t = new sL; this._sectorGroup = t }, n.prototype.render = function (t) { var e, n = t.getData(), i = this._data, r = this.group; if (!i && n.count() > 0) { for (var o = n.getItemLayout(0), a = 1; isNaN(o && o.startAngle) && a < n.count(); ++a) o = n.getItemLayout(a); o && (e = o.startAngle) } n.diff(i).add(function (t) { var i = new FF(n, t, e); n.setItemGraphicEl(t, i), r.add(i) }).update(function (t, o) { var a = i.getItemGraphicEl(o); a.updateData(n, t, e), a.off("click"), r.add(a), n.setItemGraphicEl(t, a) }).remove(function (e) { var n = i.getItemGraphicEl(e); ds(n, t, e) }).execute(), Hg(t), "expansion" !== t.get("animationTypeUpdate") && (this._data = n) }, n.prototype.dispose = function () { }, n.prototype.containPoint = function (t, e) { var n = e.getData(), i = n.getItemLayout(0); if (i) { var r = t[0] - i.cx, o = t[1] - i.cy, a = Math.sqrt(r * r + o * o); return a <= i.r && a >= i.r0 } }, n.type = "pie", n }(Dz), HF = function () { function t(t, e) { this._getDataWithEncodedVisual = t, this._getRawData = e } return t.prototype.getAllNames = function () { var t = this._getRawData(); return t.mapArray(t.getName) }, t.prototype.containName = function (t) { var e = this._getRawData(); return e.indexOfName(t) >= 0 }, t.prototype.indexOfName = function (t) { var e = this._getDataWithEncodedVisual(); return e.indexOfName(t) }, t.prototype.getItemVisual = function (t, e) { var n = this._getDataWithEncodedVisual(); return n.getItemVisual(t, e) }, t }(), WF = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.useColorPaletteOnData = !0, e } return e(n, t), n.prototype.init = function (e) { t.prototype.init.apply(this, arguments), this.legendVisualProvider = new HF(xA(this.getData, this), xA(this.getRawData, this)), this._defaultLabelLine(e) }, n.prototype.mergeOption = function () { t.prototype.mergeOption.apply(this, arguments) }, n.prototype.getInitialData = function () { return Xg(this, {coordDimensions: ["value"], encodeDefaulter: S(Gl, this)}) }, n.prototype.getDataParams = function (e) { var n = this.getData(), i = t.prototype.getDataParams.call(this, e), r = []; return n.each(n.mapDimension("value"), function (t) { r.push(t) }), i.percent = Ti(r, e, n.hostModel.get("percentPrecision")), i.$vars.push("percent"), i }, n.prototype._defaultLabelLine = function (t) { Wi(t, "labelLine", ["show"]); var e = t.labelLine, n = t.emphasis.labelLine; e.show = e.show && t.label.show, n.show = n.show && t.emphasis.label.show }, n.type = "series.pie", n.defaultOption = { zlevel: 0, z: 2, legendHoverLink: !0, center: ["50%", "50%"], radius: [0, "75%"], clockwise: !0, startAngle: 90, minAngle: 0, minShowLabelAngle: 0, selectedOffset: 10, percentPrecision: 2, stillShowZeroSum: !0, left: 0, top: 0, right: 0, bottom: 0, width: null, height: null, label: { rotate: 0, show: !0, overflow: "truncate", position: "outer", alignTo: "none", edgeDistance: "25%", bleedMargin: 10, distanceToLabelLine: 5 }, labelLine: { show: !0, length: 15, length2: 15, smooth: !1, minTurnAngle: 90, maxSurfaceAngle: 90, lineStyle: {width: 1, type: "solid"} }, itemStyle: {borderWidth: 1}, labelLayout: {hideOverlap: !0}, emphasis: {scale: !0, scaleSize: 5}, avoidLabelOverlap: !0, animationType: "expansion", animationDuration: 1e3, animationTypeUpdate: "transition", animationEasingUpdate: "cubicInOut", animationDurationUpdate: 500, animationEasing: "cubicInOut" }, n }(Iz); df(Yg); var XF = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.hasSymbolVisual = !0, e } return e(n, t), n.prototype.getInitialData = function () { return gd(this.getSource(), this, {useEncodeDefaulter: !0}) }, n.prototype.getProgressive = function () { var t = this.option.progressive; return null == t ? this.option.large ? 5e3 : this.get("progressive") : t }, n.prototype.getProgressiveThreshold = function () { var t = this.option.progressiveThreshold; return null == t ? this.option.large ? 1e4 : this.get("progressiveThreshold") : t }, n.prototype.brushSelector = function (t, e, n) { return n.point(e.getItemLayout(t)) }, n.type = "series.scatter", n.dependencies = ["grid", "polar", "geo", "singleAxis", "calendar"], n.defaultOption = { coordinateSystem: "cartesian2d", zlevel: 0, z: 2, legendHoverLink: !0, symbolSize: 10, large: !1, largeThreshold: 2e3, itemStyle: {opacity: .8}, emphasis: {scale: !0}, clip: !0, select: {itemStyle: {borderColor: "#212121"}} }, n }(Iz), YF = 4, ZF = function () { function t() { } return t }(), UF = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultShape = function () { return new ZF }, n.prototype.buildPath = function (t, e) { var n = e.points, i = e.size, r = this.symbolProxy, o = r.shape, a = t.getContext ? t.getContext() : t, s = a && i[0] < YF; if (s) return void (this._ctx = a); this._ctx = null; for (var l = 0; l < n.length;) { var u = n[l++], h = n[l++]; isNaN(u) || isNaN(h) || (!this.softClipShape || this.softClipShape.contain(u, h)) && (o.x = u - i[0] / 2, o.y = h - i[1] / 2, o.width = i[0], o.height = i[1], r.buildPath(t, o, !0)) } }, n.prototype.afterBrush = function () { var t = this.shape, e = t.points, n = t.size, i = this._ctx; if (i) for (var r = 0; r < e.length;) { var o = e[r++], a = e[r++]; isNaN(o) || isNaN(a) || (!this.softClipShape || this.softClipShape.contain(o, a)) && i.fillRect(o - n[0] / 2, a - n[1] / 2, n[0], n[1]) } }, n.prototype.findDataIndex = function (t, e) { for (var n = this.shape, i = n.points, r = n.size, o = Math.max(r[0], 4), a = Math.max(r[1], 4), s = i.length / 2 - 1; s >= 0; s--) { var l = 2 * s, u = i[l] - o / 2, h = i[l + 1] - a / 2; if (t >= u && e >= h && u + o >= t && h + a >= e) return s } return -1 }, n }(Bk), jF = function () { function t() { this.group = new sL } return t.prototype.isPersistent = function () { return !this._incremental }, t.prototype.updateData = function (t, e) { this.group.removeAll(); var n = new UF({rectHover: !0, cursor: "default"}); n.setShape({points: t.getLayout("points")}), this._setCommon(n, t, !1, e), this.group.add(n), this._incremental = null }, t.prototype.updateLayout = function (t) { if (!this._incremental) { var e = t.getLayout("points"); this.group.eachChild(function (t) { if (null != t.startIndex) { var n = 2 * (t.endIndex - t.startIndex), i = 4 * t.startIndex * 2; e = new Float32Array(e.buffer, i, n) } t.setShape("points", e) }) } }, t.prototype.incrementalPrepareUpdate = function (t) { this.group.removeAll(), this._clearIncremental(), t.count() > 2e6 ? (this._incremental || (this._incremental = new vO({silent: !0})), this.group.add(this._incremental)) : this._incremental = null }, t.prototype.incrementalUpdate = function (t, e, n) { var i; this._incremental ? (i = new UF, this._incremental.addDisplayable(i, !0)) : (i = new UF({ rectHover: !0, cursor: "default", startIndex: t.start, endIndex: t.end }), i.incremental = !0, this.group.add(i)), i.setShape({points: e.getLayout("points")}), this._setCommon(i, e, !!this._incremental, n) }, t.prototype._setCommon = function (t, e, n, i) { var r = e.hostModel; i = i || {}; var o = e.getVisual("symbolSize"); t.setShape("size", o instanceof Array ? o : [o, o]), t.softClipShape = i.clipShape || null, t.symbolProxy = Sc(e.getVisual("symbol"), 0, 0, 0, 0), t.setColor = t.symbolProxy.setColor; var a = t.shape.size[0] < YF; t.useStyle(r.getModel("itemStyle").getItemStyle(a ? ["color", "shadowBlur", "shadowColor"] : ["color"])); var s = e.getVisual("style"), l = s && s.fill; if (l && t.setColor(l), !n) { var u = tP(t); u.seriesIndex = r.seriesIndex, t.on("mousemove", function (e) { u.dataIndex = null; var n = t.findDataIndex(e.offsetX, e.offsetY); n >= 0 && (u.dataIndex = n + (t.startIndex || 0)) }) } }, t.prototype.remove = function () { this._clearIncremental(), this._incremental = null, this.group.removeAll() }, t.prototype._clearIncremental = function () { var t = this._incremental; t && t.clearDisplaybles() }, t }(), qF = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t) { var e = t.getData(), n = this._updateSymbolDraw(e, t); n.updateData(e, {clipShape: this._getClipShape(t)}), this._finished = !0 }, n.prototype.incrementalPrepareRender = function (t) { var e = t.getData(), n = this._updateSymbolDraw(e, t); n.incrementalPrepareUpdate(e), this._finished = !1 }, n.prototype.incrementalRender = function (t, e) { this._symbolDraw.incrementalUpdate(t, e.getData(), {clipShape: this._getClipShape(e)}), this._finished = t.end === e.getData().count() }, n.prototype.updateTransform = function (t, e, n) { var i = t.getData(); if (this.group.dirty(), !this._finished || i.count() > 1e4 || !this._symbolDraw.isPersistent()) return {update: !0}; var r = Rg("").reset(t, e, n); r.progress && r.progress({start: 0, end: i.count(), count: i.count()}, i), this._symbolDraw.updateLayout(i) }, n.prototype._getClipShape = function (t) { var e = t.coordinateSystem, n = e && e.getArea && e.getArea(); return t.get("clip", !0) ? n : null }, n.prototype._updateSymbolDraw = function (t, e) { var n = this._symbolDraw, i = e.pipelineContext, r = i.large; return n && r === this._isLargeDraw || (n && n.remove(), n = this._symbolDraw = r ? new jF : new CF, this._isLargeDraw = r, this.group.removeAll()), this.group.add(n.group), n }, n.prototype.remove = function () { this._symbolDraw && this._symbolDraw.remove(!0), this._symbolDraw = null }, n.prototype.dispose = function () { }, n.type = "scatter", n }(Dz), KF = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.type = "grid", n.dependencies = ["xAxis", "yAxis"], n.layoutMode = "box", n.defaultOption = { show: !1, zlevel: 0, z: 0, left: "10%", top: 60, right: "10%", bottom: 70, containLabel: !1, backgroundColor: "rgba(0,0,0,0)", borderWidth: 1, borderColor: "#ccc" }, n }(gR), $F = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.getCoordSysModel = function () { return this.getReferringComponents("grid", wL).models[0] }, n.type = "cartesian2dAxis", n }(gR); f($F, HV); var JF = { show: !0, zlevel: 0, z: 0, inverse: !1, name: "", nameLocation: "end", nameRotate: null, nameTruncate: {maxWidth: null, ellipsis: "...", placeholder: "."}, nameTextStyle: {}, nameGap: 15, silent: !1, triggerEvent: !1, tooltip: {show: !1}, axisPointer: {}, axisLine: { show: !0, onZero: !0, onZeroAxisIndex: null, lineStyle: {color: "#6E7079", width: 1, type: "solid"}, symbol: ["none", "none"], symbolSize: [10, 15] }, axisTick: {show: !0, inside: !1, length: 5, lineStyle: {width: 1}}, axisLabel: {show: !0, inside: !1, rotate: 0, showMinLabel: null, showMaxLabel: null, margin: 8, fontSize: 12}, splitLine: {show: !0, lineStyle: {color: ["#E0E6F1"], width: 1, type: "solid"}}, splitArea: {show: !1, areaStyle: {color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]}} }, QF = l({ boundaryGap: !0, deduplication: null, splitLine: {show: !1}, axisTick: {alignWithLabel: !1, interval: "auto"}, axisLabel: {interval: "auto"} }, JF), tG = l({ boundaryGap: [0, 0], axisLine: {show: "auto"}, axisTick: {show: "auto"}, splitNumber: 5, minorTick: {show: !1, splitNumber: 5, length: 3, lineStyle: {}}, minorSplitLine: {show: !1, lineStyle: {color: "#F4F7FD", width: 1}} }, JF), eG = l({ scale: !0, splitNumber: 6, axisLabel: {showMinLabel: !1, showMaxLabel: !1, rich: {primary: {fontWeight: "bold"}}}, splitLine: {show: !1} }, tG), nG = c({scale: !0, logBase: 10}, tG), iG = {category: QF, value: tG, time: eG, log: nG}, rG = {value: 1, category: 1, time: 1, log: 1}, oG = function () { function t(t) { this.type = "cartesian", this._dimList = [], this._axes = {}, this.name = t || "" } return t.prototype.getAxis = function (t) { return this._axes[t] }, t.prototype.getAxes = function () { return v(this._dimList, function (t) { return this._axes[t] }, this) }, t.prototype.getAxesByScale = function (t) { return t = t.toLowerCase(), x(this.getAxes(), function (e) { return e.scale.type === t }) }, t.prototype.addAxis = function (t) { var e = t.dim; this._axes[e] = t, this._dimList.push(e) }, t }(), aG = ["x", "y"], sG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = "cartesian2d", e.dimensions = aG, e } return e(n, t), n.prototype.calcAffineTransform = function () { this._transform = this._invTransform = null; var t = this.getAxis("x").scale, e = this.getAxis("y").scale; if (jg(t) && jg(e)) { var n = t.getExtent(), i = e.getExtent(), r = this.dataToPoint([n[0], i[0]]), o = this.dataToPoint([n[1], i[1]]), a = n[1] - n[0], s = i[1] - i[0]; if (a && s) { var l = (o[0] - r[0]) / a, u = (o[1] - r[1]) / s, h = r[0] - n[0] * l, c = r[1] - i[0] * u, p = this._transform = [l, 0, 0, u, h, c]; this._invTransform = jn([], p) } } }, n.prototype.getBaseAxis = function () { return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAxis("x") }, n.prototype.containPoint = function (t) { var e = this.getAxis("x"), n = this.getAxis("y"); return e.contain(e.toLocalCoord(t[0])) && n.contain(n.toLocalCoord(t[1])) }, n.prototype.containData = function (t) { return this.getAxis("x").containData(t[0]) && this.getAxis("y").containData(t[1]) }, n.prototype.dataToPoint = function (t, e, n) { n = n || []; var i = t[0], r = t[1]; if (this._transform && null != i && isFinite(i) && null != r && isFinite(r)) return ge(n, t, this._transform); var o = this.getAxis("x"), a = this.getAxis("y"); return n[0] = o.toGlobalCoord(o.dataToCoord(i, e)), n[1] = a.toGlobalCoord(a.dataToCoord(r, e)), n }, n.prototype.clampData = function (t, e) { var n = this.getAxis("x").scale, i = this.getAxis("y").scale, r = n.getExtent(), o = i.getExtent(), a = n.parse(t[0]), s = i.parse(t[1]); return e = e || [], e[0] = Math.min(Math.max(Math.min(r[0], r[1]), a), Math.max(r[0], r[1])), e[1] = Math.min(Math.max(Math.min(o[0], o[1]), s), Math.max(o[0], o[1])), e }, n.prototype.pointToData = function (t, e) { var n = []; if (this._invTransform) return ge(n, t, this._invTransform); var i = this.getAxis("x"), r = this.getAxis("y"); return n[0] = i.coordToData(i.toLocalCoord(t[0]), e), n[1] = r.coordToData(r.toLocalCoord(t[1]), e), n }, n.prototype.getOtherAxis = function (t) { return this.getAxis("x" === t.dim ? "y" : "x") }, n.prototype.getArea = function () { var t = this.getAxis("x").getGlobalExtent(), e = this.getAxis("y").getGlobalExtent(), n = Math.min(t[0], t[1]), i = Math.min(e[0], e[1]), r = Math.max(t[0], t[1]) - n, o = Math.max(e[0], e[1]) - i; return new $D(n, i, r, o) }, n }(oG), lG = function (t) { function n(e, n, i, r, o) { var a = t.call(this, e, n, i) || this; return a.index = 0, a.type = r || "value", a.position = o || "bottom", a } return e(n, t), n.prototype.isHorizontal = function () { var t = this.position; return "top" === t || "bottom" === t }, n.prototype.getGlobalExtent = function (t) { var e = this.getExtent(); return e[0] = this.toGlobalCoord(e[0]), e[1] = this.toGlobalCoord(e[1]), t && e[0] > e[1] && e.reverse(), e }, n.prototype.pointToData = function (t, e) { return this.coordToData(this.toLocalCoord(t["x" === this.dim ? 0 : 1]), e) }, n.prototype.setCategorySortInfo = function (t) { return "category" !== this.type ? !1 : (this.model.option.categorySortInfo = t, void this.scale.setSortInfo(t)) }, n }(tF), uG = function () { function t(t, e, n) { this.type = "grid", this._coordsMap = {}, this._coordsList = [], this._axesMap = {}, this._axesList = [], this.axisPointerEnabled = !0, this.dimensions = aG, this._initCartesian(t, e, n), this.model = t } return t.prototype.getRect = function () { return this._rect }, t.prototype.update = function (t, e) { var n = this._axesMap; this._updateScale(t, this.model), y(n.x, function (t) { $d(t.scale, t.model) }), y(n.y, function (t) { $d(t.scale, t.model) }); var i = {}; y(n.x, function (t) { Qg(n, "y", t, i) }), y(n.y, function (t) { Qg(n, "x", t, i) }), this.resize(this.model, e) }, t.prototype.resize = function (t, e, n) { function i() { y(s, function (t) { var e = t.isHorizontal(), n = e ? [0, a.width] : [0, a.height], i = t.inverse ? 1 : 0; t.setExtent(n[i], n[1 - i]), ey(t, e ? a.x : a.y) }) } var r = t.getBoxLayoutParams(), o = !n && t.get("containLabel"), a = kl(r, {width: e.getWidth(), height: e.getHeight()}); this._rect = a; var s = this._axesList; i(), o && (y(s, function (t) { if (!t.model.get(["axisLabel", "inside"])) { var e = nf(t); if (e) { var n = t.isHorizontal() ? "height" : "width", i = t.model.get(["axisLabel", "margin"]); a[n] -= e[n] + i, "top" === t.position ? a.y += e.height + i : "left" === t.position && (a.x += e.width + i) } } }), i()), y(this._coordsList, function (t) { t.calcAffineTransform() }) }, t.prototype.getAxis = function (t, e) { var n = this._axesMap[t]; return null != n ? n[e || 0] : void 0 }, t.prototype.getAxes = function () { return this._axesList.slice() }, t.prototype.getCartesian = function (t, e) { if (null != t && null != e) { var n = "x" + t + "y" + e; return this._coordsMap[n] } D(t) && (e = t.yAxisIndex, t = t.xAxisIndex); for (var i = 0, r = this._coordsList; i < r.length; i++) if (r[i].getAxis("x").index === t || r[i].getAxis("y").index === e) return r[i] }, t.prototype.getCartesians = function () { return this._coordsList.slice() }, t.prototype.convertToPixel = function (t, e, n) { var i = this._findConvertTarget(e); return i.cartesian ? i.cartesian.dataToPoint(n) : i.axis ? i.axis.toGlobalCoord(i.axis.dataToCoord(n)) : null }, t.prototype.convertFromPixel = function (t, e, n) { var i = this._findConvertTarget(e); return i.cartesian ? i.cartesian.pointToData(n) : i.axis ? i.axis.coordToData(i.axis.toLocalCoord(n)) : null }, t.prototype._findConvertTarget = function (t) { var e, n, i = t.seriesModel, r = t.xAxisModel || i && i.getReferringComponents("xAxis", wL).models[0], o = t.yAxisModel || i && i.getReferringComponents("yAxis", wL).models[0], a = t.gridModel, s = this._coordsList; if (i) e = i.coordinateSystem, p(s, e) < 0 && (e = null); else if (r && o) e = this.getCartesian(r.componentIndex, o.componentIndex); else if (r) n = this.getAxis("x", r.componentIndex); else if (o) n = this.getAxis("y", o.componentIndex); else if (a) { var l = a.coordinateSystem; l === this && (e = this._coordsList[0]) } return {cartesian: e, axis: n} }, t.prototype.containPoint = function (t) { var e = this._coordsList[0]; return e ? e.containPoint(t) : void 0 }, t.prototype._initCartesian = function (t, e) { function n(e) { return function (n, i) { if (Jg(n, t)) { var l = n.get("position"); "x" === e ? "top" !== l && "bottom" !== l && (l = o.bottom ? "top" : "bottom") : "left" !== l && "right" !== l && (l = o.left ? "right" : "left"), o[l] = !0; var u = new lG(e, Jd(n), [0, 0], n.get("type"), l), h = "category" === u.type; u.onBand = h && n.get("boundaryGap"), u.inverse = n.get("inverse"), n.axis = u, u.model = n, u.grid = r, u.index = i, r._axesList.push(u), a[e][i] = u, s[e]++ } } } var i = this, r = this, o = {left: !1, right: !1, top: !1, bottom: !1}, a = {x: {}, y: {}}, s = {x: 0, y: 0}; return e.eachComponent("xAxis", n("x"), this), e.eachComponent("yAxis", n("y"), this), s.x && s.y ? (this._axesMap = a, void y(a.x, function (e, n) { y(a.y, function (r, o) { var a = "x" + n + "y" + o, s = new sG(a); s.master = i, s.model = t, i._coordsMap[a] = s, i._coordsList.push(s), s.addAxis(e), s.addAxis(r) }) })) : (this._axesMap = {}, void (this._axesList = [])) }, t.prototype._updateScale = function (t, e) { function n(t, e) { y(sf(t, e.dim), function (n) { e.scale.unionExtentFromData(t, n) }) } y(this._axesList, function (t) { if (t.scale.setExtent(1 / 0, -1 / 0), "category" === t.type) { var e = t.model.get("categorySortInfo"); t.scale.setSortInfo(e) } }), t.eachSeries(function (t) { if (Kg(t)) { var i = $g(t), r = i.xAxisModel, o = i.yAxisModel; if (!Jg(r, e) || !Jg(o, e)) return; var a = this.getCartesian(r.componentIndex, o.componentIndex), s = t.getData(), l = a.getAxis("x"), u = a.getAxis("y"); "list" === s.type && (n(s, l), n(s, u)) } }, this) }, t.prototype.getTooltipAxes = function (t) { var e = [], n = []; return y(this.getCartesians(), function (i) { var r = null != t && "auto" !== t ? i.getAxis(t) : i.getBaseAxis(), o = i.getOtherAxis(r); p(e, r) < 0 && e.push(r), p(n, o) < 0 && n.push(o) }), {baseAxes: e, otherAxes: n} }, t.create = function (e, n) { var i = []; return e.eachComponent("grid", function (r, o) { var a = new t(r, e, n); a.name = "grid_" + o, a.resize(r, n, !0), r.coordinateSystem = a, i.push(a) }), e.eachSeries(function (t) { if (Kg(t)) { var e = $g(t), n = e.xAxisModel, i = e.yAxisModel, r = n.getCoordSysModel(), o = r.coordinateSystem; t.coordinateSystem = o.getCartesian(n.componentIndex, i.componentIndex) } }), i }, t.dimensions = aG, t }(), hG = Math.PI, cG = function () { function t(t, e) { this.group = new sL, this.opt = e, this.axisModel = t, c(e, { labelOffset: 0, nameDirection: 1, tickDirection: 1, labelDirection: 1, silent: !0, handleAutoShown: function () { return !0 } }); var n = new sL({x: e.position[0], y: e.position[1], rotation: e.rotation}); n.updateTransform(), this._transformGroup = n } return t.prototype.hasBuilder = function (t) { return !!pG[t] }, t.prototype.add = function (t) { pG[t](this.opt, this.axisModel, this.group, this._transformGroup) }, t.prototype.getGroup = function () { return this.group }, t.innerTextLayout = function (t, e, n) { var i, r, o = Ai(e - t); return Di(o) ? (r = n > 0 ? "top" : "bottom", i = "center") : Di(o - hG) ? (r = n > 0 ? "bottom" : "top", i = "center") : (r = "middle", i = o > 0 && hG > o ? n > 0 ? "right" : "left" : n > 0 ? "left" : "right"), { rotation: o, textAlign: i, textVerticalAlign: r } }, t.makeAxisEventDataBase = function (t) { var e = {componentType: t.mainType, componentIndex: t.componentIndex}; return e[t.mainType + "Index"] = t.componentIndex, e }, t.isLabelSilent = function (t) { var e = t.get("tooltip"); return t.get("silent") || !(t.get("triggerEvent") || e && e.show) }, t }(), pG = { axisLine: function (t, e, n, i) { var r = e.get(["axisLine", "show"]); if ("auto" === r && t.handleAutoShown && (r = t.handleAutoShown("axisLine")), r) { var o = e.axis.getExtent(), a = i.transform, s = [o[0], 0], l = [o[1], 0]; a && (ge(s, s, a), ge(l, l, a)); var u = h({lineCap: "round"}, e.getModel(["axisLine", "lineStyle"]).getLineStyle()), c = new eO({ subPixelOptimize: !0, shape: {x1: s[0], y1: s[1], x2: l[0], y2: l[1]}, style: u, strokeContainThreshold: t.strokeContainThreshold || 5, silent: !0, z2: 1 }); c.anid = "line", n.add(c); var p = e.get(["axisLine", "symbol"]), d = e.get(["axisLine", "symbolSize"]), f = e.get(["axisLine", "symbolOffset"]) || 0; if ("number" == typeof f && (f = [f, f]), null != p) { "string" == typeof p && (p = [p, p]), ("string" == typeof d || "number" == typeof d) && (d = [d, d]); var g = d[0], v = d[1]; y([{rotate: t.rotation + Math.PI / 2, offset: f[0], r: 0}, { rotate: t.rotation - Math.PI / 2, offset: f[1], r: Math.sqrt((s[0] - l[0]) * (s[0] - l[0]) + (s[1] - l[1]) * (s[1] - l[1])) }], function (e, i) { if ("none" !== p[i] && null != p[i]) { var r = Sc(p[i], -g / 2, -v / 2, g, v, u.stroke, !0), o = e.r + e.offset; r.attr({ rotation: e.rotate, x: s[0] + o * Math.cos(t.rotation), y: s[1] - o * Math.sin(t.rotation), silent: !0, z2: 11 }), n.add(r) } }) } } }, axisTickLabel: function (t, e, n, i) { var r = ly(n, i, e, t), o = hy(n, i, e, t); iy(e, o, r), uy(n, i, e, t.tickDirection) }, axisName: function (t, e, n, i) { var r = N(t.axisName, e.get("name")); if (r) { var o, a = e.get("nameLocation"), s = t.nameDirection, l = e.getModel("nameTextStyle"), u = e.get("nameGap") || 0, h = e.axis.getExtent(), c = h[0] > h[1] ? -1 : 1, p = ["start" === a ? h[0] - c * u : "end" === a ? h[1] + c * u : (h[0] + h[1]) / 2, ay(a) ? t.labelOffset + s * u : 0], d = e.get("nameRotate"); null != d && (d = d * hG / 180); var f; ay(a) ? o = cG.innerTextLayout(t.rotation, null != d ? d : t.rotation, s) : (o = ny(t.rotation, a, d || 0, h), f = t.axisNameAvailableWidth, null != f && (f = Math.abs(f / Math.sin(o.rotation)), !isFinite(f) && (f = null))); var g = l.getFont(), y = e.get("nameTruncate", !0) || {}, v = y.ellipsis, m = N(t.nameTruncateMaxWidth, y.maxWidth, f), x = new $k({ x: p[0], y: p[1], rotation: o.rotation, silent: cG.isLabelSilent(e), style: Os(l, { text: r, font: g, overflow: "truncate", width: m, ellipsis: v, fill: l.getTextColor() || e.get(["axisLine", "lineStyle", "color"]), align: l.get("align") || o.textAlign, verticalAlign: l.get("verticalAlign") || o.textVerticalAlign }), z2: 1 }); if (As({ el: x, componentModel: e, itemName: r }), x.__fullText = r, x.anid = "name", e.get("triggerEvent")) { var _ = cG.makeAxisEventDataBase(e); _.targetType = "axisName", _.name = r, tP(x).eventData = _ } i.add(x), x.updateTransform(), n.add(x), x.decomposeTransform() } } }, dG = {}, fG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (e, n, i) { this.axisPointerClass && vy(e), t.prototype.render.apply(this, arguments), this._doUpdateAxisPointerClass(e, i, !0) }, n.prototype.updateAxisPointer = function (t, e, n) { this._doUpdateAxisPointerClass(t, n, !1) }, n.prototype.remove = function (t, e) { var n = this._axisPointer; n && n.remove(e) }, n.prototype.dispose = function (e, n) { this._disposeAxisPointer(n), t.prototype.dispose.apply(this, arguments) }, n.prototype._doUpdateAxisPointerClass = function (t, e, i) { var r = n.getAxisPointerClass(this.axisPointerClass); if (r) { var o = xy(t); o ? (this._axisPointer || (this._axisPointer = new r)).render(t, o, e, i) : this._disposeAxisPointer(e) } }, n.prototype._disposeAxisPointer = function (t) { this._axisPointer && this._axisPointer.dispose(t), this._axisPointer = null }, n.registerAxisPointerClass = function (t, e) { dG[t] = e }, n.getAxisPointerClass = function (t) { return t && dG[t] }, n.type = "axis", n }(Tz), gG = ur(), yG = ["axisLine", "axisTickLabel", "axisName"], vG = ["splitArea", "splitLine", "minorSplitLine"], mG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.axisPointerClass = "CartesianAxisPointer", e } return e(n, t), n.prototype.render = function (e, n, i, r) { this.group.removeAll(); var o = this._axisGroup; if (this._axisGroup = new sL, this.group.add(this._axisGroup), e.get("show")) { var a = e.getCoordSysModel(), s = qg(a, e), l = new cG(e, h({ handleAutoShown: function () { for (var t = a.coordinateSystem.getCartesians(), n = 0; n < t.length; n++) { var i = t[n].getOtherAxis(e.axis).type; if ("value" === i || "log" === i) return !0 } return !1 } }, s)); y(yG, l.add, l), this._axisGroup.add(l.getGroup()), y(vG, function (t) { e.get([t, "show"]) && xG[t](this, this._axisGroup, e, a) }, this), _s(o, this._axisGroup, e), t.prototype.render.call(this, e, n, i, r) } }, n.prototype.remove = function () { Sy(this) }, n.type = "cartesianAxis", n }(fG), xG = { splitLine: function (t, e, n, i) { var r = n.axis; if (!r.scale.isBlank()) { var o = n.getModel("splitLine"), a = o.getModel("lineStyle"), s = a.get("color"); s = M(s) ? s : [s]; for (var l = i.coordinateSystem.getRect(), u = r.isHorizontal(), h = 0, p = r.getTicksCoords({tickModel: o}), d = [], f = [], g = a.getLineStyle(), y = 0; y < p.length; y++) { var v = r.toGlobalCoord(p[y].coord); u ? (d[0] = v, d[1] = l.y, f[0] = v, f[1] = l.y + l.height) : (d[0] = l.x, d[1] = v, f[0] = l.x + l.width, f[1] = v); var m = h++ % s.length, x = p[y].tickValue; e.add(new eO({ anid: null != x ? "line_" + p[y].tickValue : null, subPixelOptimize: !0, autoBatch: !0, shape: {x1: d[0], y1: d[1], x2: f[0], y2: f[1]}, style: c({stroke: s[m]}, g), silent: !0 })) } } }, minorSplitLine: function (t, e, n, i) { var r = n.axis, o = n.getModel("minorSplitLine"), a = o.getModel("lineStyle"), s = i.coordinateSystem.getRect(), l = r.isHorizontal(), u = r.getMinorTicksCoords(); if (u.length) for (var h = [], c = [], p = a.getLineStyle(), d = 0; d < u.length; d++) for (var f = 0; f < u[d].length; f++) { var g = r.toGlobalCoord(u[d][f].coord); l ? (h[0] = g, h[1] = s.y, c[0] = g, c[1] = s.y + s.height) : (h[0] = s.x, h[1] = g, c[0] = s.x + s.width, c[1] = g), e.add(new eO({ anid: "minor_line_" + u[d][f].tickValue, subPixelOptimize: !0, autoBatch: !0, shape: {x1: h[0], y1: h[1], x2: c[0], y2: c[1]}, style: p, silent: !0 })) } }, splitArea: function (t, e, n, i) { wy(t, e, n, i) } }, _G = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "xAxis", n }(mG), bG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = _G.type, e } return e(n, t), n.type = "yAxis", n }(mG), wG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = "grid", e } return e(n, t), n.prototype.render = function (t) { this.group.removeAll(), t.get("show") && this.group.add(new Uk({ shape: t.coordinateSystem.getRect(), style: c({fill: t.get("backgroundColor")}, t.getItemStyle()), silent: !0, z2: -1 })) }, n.type = "grid", n }(Tz), SG = {offset: 0}; df(Iy); var MG = 3, IG = function (t) { function n(e, n) { var i = t.call(this) || this, r = new TF(e, n), o = new sL; return i.add(r), i.add(o), i.updateData(e, n), i } return e(n, t), n.prototype.stopEffectAnimation = function () { this.childAt(1).removeAll() }, n.prototype.startEffectAnimation = function (t) { for (var e = t.symbolType, n = t.color, i = this.childAt(1), r = 0; MG > r; r++) { var o = Sc(e, -1, -1, 2, 2, n); o.attr({style: {strokeNoScale: !0}, z2: 99, silent: !0, scaleX: .5, scaleY: .5}); var a = -r / MG * t.period + t.effectOffset; o.animate("", !0).when(t.period, { scaleX: t.rippleScale / 2, scaleY: t.rippleScale / 2 }).delay(a).start(), o.animateStyle(!0).when(t.period, {opacity: 0}).delay(a).start(), i.add(o) } Cy(i, t) }, n.prototype.updateEffectAnimation = function (t) { for (var e = this._effectCfg, n = this.childAt(1), i = ["symbolType", "period", "rippleScale"], r = 0; r < i.length; r++) { var o = i[r]; if (e[o] !== t[o]) return this.stopEffectAnimation(), void this.startEffectAnimation(t) } Cy(n, t) }, n.prototype.highlight = function () { aa(this) }, n.prototype.downplay = function () { sa(this) }, n.prototype.updateData = function (t, e) { var n = this, i = t.hostModel; this.childAt(0).updateData(t, e); var r = this.childAt(1), o = t.getItemModel(e), a = t.getItemVisual(e, "symbol"), s = Ty(t.getItemVisual(e, "symbolSize")), l = t.getItemVisual(e, "style"), u = l && l.fill; r.setScale(s), r.traverse(function (t) { t.setStyle("fill", u) }); var h = t.getItemVisual(e, "symbolOffset"); h && (M(h) || (h = [h, h]), r.x = _i(h[0], s[0]), r.y = _i(B(h[1], h[0]) || 0, s[1])); var c = t.getItemVisual(e, "symbolRotate"); r.rotation = (c || 0) * Math.PI / 180 || 0; var p = {}; p.showEffectOn = i.get("showEffectOn"), p.rippleScale = o.get(["rippleEffect", "scale"]), p.brushType = o.get(["rippleEffect", "brushType"]), p.period = 1e3 * o.get(["rippleEffect", "period"]), p.effectOffset = e / t.count(), p.z = i.getShallow("z") || 0, p.zlevel = i.getShallow("zlevel") || 0, p.symbolType = a, p.color = u, p.rippleEffectColor = o.get(["rippleEffect", "color"]), this.off("mouseover").off("mouseout").off("emphasis").off("normal"), "render" === p.showEffectOn ? (this._effectCfg ? this.updateEffectAnimation(p) : this.startEffectAnimation(p), this._effectCfg = p) : (this._effectCfg = null, this.stopEffectAnimation(), this.onHoverStateChange = function (t) { "emphasis" === t ? "render" !== p.showEffectOn && n.startEffectAnimation(p) : "normal" === t && "render" !== p.showEffectOn && n.stopEffectAnimation() }), this._effectCfg = p, Sa(this) }, n.prototype.fadeOut = function (t) { this.off("mouseover").off("mouseout"), t && t() }, n }(sL), TG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.init = function () { this._symbolDraw = new CF(IG) }, n.prototype.render = function (t) { var e = t.getData(), n = this._symbolDraw; n.updateData(e, {clipShape: this._getClipShape(t)}), this.group.add(n.group) }, n.prototype._getClipShape = function (t) { var e = t.coordinateSystem, n = e && e.getArea && e.getArea(); return t.get("clip", !0) ? n : null }, n.prototype.updateTransform = function (t, e, n) { var i = t.getData(); this.group.dirty(); var r = Rg("").reset(t, e, n); r.progress && r.progress({start: 0, end: i.count(), count: i.count()}, i), this._symbolDraw.updateLayout() }, n.prototype._updateGroupTransform = function (t) { var e = t.coordinateSystem; e && e.getRoamTransform && (this.group.transform = qn(e.getRoamTransform()), this.group.decomposeTransform()) }, n.prototype.remove = function () { this._symbolDraw && this._symbolDraw.remove(!0) }, n.type = "effectScatter", n }(Dz), CG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.hasSymbolVisual = !0, e } return e(n, t), n.prototype.getInitialData = function () { return gd(this.getSource(), this, {useEncodeDefaulter: !0}) }, n.prototype.brushSelector = function (t, e, n) { return n.point(e.getItemLayout(t)) }, n.type = "series.effectScatter", n.dependencies = ["grid", "polar"], n.defaultOption = { coordinateSystem: "cartesian2d", zlevel: 0, z: 2, legendHoverLink: !0, effectType: "ripple", progressive: 0, showEffectOn: "render", clip: !0, rippleEffect: {period: 4, scale: 2.5, brushType: "fill"}, symbolSize: 10 }, n }(Iz); df(Ay); var AG = ["color", "borderColor"], DG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t) { this.group.removeClipPath(), this._updateDrawMode(t), this._isLargeDraw ? this._renderLarge(t) : this._renderNormal(t) }, n.prototype.incrementalPrepareRender = function (t) { this._clear(), this._updateDrawMode(t) }, n.prototype.incrementalRender = function (t, e) { this._isLargeDraw ? this._incrementalRenderLarge(t, e) : this._incrementalRenderNormal(t, e) }, n.prototype._updateDrawMode = function (t) { var e = t.pipelineContext.large; (null == this._isLargeDraw || e !== this._isLargeDraw) && (this._isLargeDraw = e, this._clear()) }, n.prototype._renderNormal = function (t) { var e = t.getData(), n = this._data, i = this.group, r = e.getLayout("isSimpleBox"), o = t.get("clip", !0), a = t.coordinateSystem, s = a.getArea && a.getArea(); this._data || i.removeAll(), e.diff(n).add(function (n) { if (e.hasValue(n)) { var a = e.getItemLayout(n); if (o && Ly(s, a)) return; var l = Dy(a, n, !0); hs(l, {shape: {points: a.ends}}, t, n), ky(l, e, n, r), i.add(l), e.setItemGraphicEl(n, l) } }).update(function (a, l) { var u = n.getItemGraphicEl(l); if (!e.hasValue(a)) return void i.remove(u); var h = e.getItemLayout(a); return o && Ly(s, h) ? void i.remove(u) : (u ? us(u, {shape: {points: h.ends}}, t, a) : u = Dy(h, a), ky(u, e, a, r), i.add(u), void e.setItemGraphicEl(a, u)) }).remove(function (t) { var e = n.getItemGraphicEl(t); e && i.remove(e) }).execute(), this._data = e }, n.prototype._renderLarge = function (t) { this._clear(), Oy(t, this.group); var e = t.get("clip", !0) ? Xf(t.coordinateSystem, !1, t) : null; e ? this.group.setClipPath(e) : this.group.removeClipPath() }, n.prototype._incrementalRenderNormal = function (t, e) { for (var n, i = e.getData(), r = i.getLayout("isSimpleBox"); null != (n = t.next());) { var o = i.getItemLayout(n), a = Dy(o, n); ky(a, i, n, r), a.incremental = !0, this.group.add(a) } }, n.prototype._incrementalRenderLarge = function (t, e) { Oy(e, this.group, !0) }, n.prototype.remove = function () { this._clear() }, n.prototype._clear = function () { this.group.removeAll(), this._data = null }, n.type = "candlestick", n }(Dz), LG = function () { function t() { } return t }(), kG = function (t) { function n(e) { var n = t.call(this, e) || this; return n.type = "normalCandlestickBox", n } return e(n, t), n.prototype.getDefaultShape = function () { return new LG }, n.prototype.buildPath = function (t, e) { var n = e.points; this.__simpleBox ? (t.moveTo(n[4][0], n[4][1]), t.lineTo(n[6][0], n[6][1])) : (t.moveTo(n[0][0], n[0][1]), t.lineTo(n[1][0], n[1][1]), t.lineTo(n[2][0], n[2][1]), t.lineTo(n[3][0], n[3][1]), t.closePath(), t.moveTo(n[4][0], n[4][1]), t.lineTo(n[5][0], n[5][1]), t.moveTo(n[6][0], n[6][1]), t.lineTo(n[7][0], n[7][1])) }, n }(Bk), PG = function () { function t() { } return t }(), OG = function (t) { function n(e) { var n = t.call(this, e) || this; return n.type = "largeCandlestickBox", n } return e(n, t), n.prototype.getDefaultShape = function () { return new PG }, n.prototype.buildPath = function (t, e) { for (var n = e.points, i = 0; i < n.length;) if (this.__sign === n[i++]) { var r = n[i++]; t.moveTo(r, n[i++]), t.lineTo(r, n[i++]) } else i += 3 }, n }(Bk), RG = function () { function t() { } return t.prototype.getInitialData = function (t, e) { var n, i, r = e.getComponent("xAxis", this.get("xAxisIndex")), o = e.getComponent("yAxis", this.get("yAxisIndex")), a = r.get("type"), s = o.get("type"); "category" === a ? (t.layout = "horizontal", n = r.getOrdinalMeta(), i = !0) : "category" === s ? (t.layout = "vertical", n = o.getOrdinalMeta(), i = !0) : t.layout = t.layout || "horizontal"; var l = ["x", "y"], u = "horizontal" === t.layout ? 0 : 1, h = this._baseAxisDim = l[u], c = l[1 - u], p = [r, o], d = p[u].get("type"), f = p[1 - u].get("type"), g = t.data; if (g && i) { var v = []; y(g, function (t, e) { var n; M(t) ? (n = t.slice(), t.unshift(e)) : M(t.value) ? (n = t.value.slice(), t.value.unshift(e)) : n = t, v.push(n) }), t.data = v } var m = this.defaultValueDimensions, x = [{ name: h, type: rd(d), ordinalMeta: n, otherDims: {tooltip: !1, itemName: 0}, dimsDef: ["base"] }, {name: c, type: rd(f), dimsDef: m.slice()}]; return Xg(this, {coordDimensions: x, dimensionsCount: m.length + 1, encodeDefaulter: S(Fl, x, this)}) }, t.prototype.getBaseAxis = function () { var t = this._baseAxisDim; return this.ecModel.getComponent(t + "Axis", this.get(t + "AxisIndex")).axis }, t }(), zG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.defaultValueDimensions = [{name: "open", defaultTooltip: !0}, { name: "close", defaultTooltip: !0 }, {name: "lowest", defaultTooltip: !0}, {name: "highest", defaultTooltip: !0}], e } return e(n, t), n.prototype.getShadowDim = function () { return "open" }, n.prototype.brushSelector = function (t, e, n) { var i = e.getItemLayout(t); return i && n.rect(i.brushRect) }, n.type = "series.candlestick", n.dependencies = ["xAxis", "yAxis", "grid"], n.defaultOption = { zlevel: 0, z: 2, coordinateSystem: "cartesian2d", legendHoverLink: !0, layout: null, clip: !0, itemStyle: { color: "#eb5454", color0: "#47b262", borderColor: "#eb5454", borderColor0: "#47b262", borderWidth: 1 }, emphasis: {scale: !0, itemStyle: {borderWidth: 2}}, barMaxWidth: null, barMinWidth: null, barWidth: null, large: !0, largeThreshold: 600, progressive: 3e3, progressiveThreshold: 1e4, progressiveChunkMode: "mod", animationEasing: "linear", animationDuration: 300 }, n }(Iz); f(zG, RG, !0); var EG = ["itemStyle", "borderColor"], NG = ["itemStyle", "borderColor0"], BG = ["itemStyle", "color"], VG = ["itemStyle", "color0"], FG = { seriesType: "candlestick", plan: Ch(), performRawSeries: !0, reset: function (t, e) { function n(t, e) { return e.get(t > 0 ? BG : VG) } function i(t, e) { return e.get(t > 0 ? EG : NG) } if (!e.isSeriesFiltered(t)) { var r = t.pipelineContext.large; return !r && { progress: function (t, e) { for (var r; null != (r = t.next());) { var o = e.getItemModel(r), a = e.getItemLayout(r).sign, s = o.getItemStyle(); s.fill = n(a, o), s.stroke = i(a, o) || s.fill; var l = e.ensureUniqueItemVisual(r, "style"); h(l, s) } } } } } }, GG = "undefined" != typeof Float32Array ? Float32Array : Array, HG = { seriesType: "candlestick", plan: Ch(), reset: function (t) { function e(t, e) { function n(t, e) { var n = []; return n[a] = e, n[s] = t, isNaN(e) || isNaN(t) ? [0 / 0, 0 / 0] : i.dataToPoint(n) } function r(t, e, n) { var i = e.slice(), r = e.slice(); i[a] = SO(i[a] + o / 2, 1, !1), r[a] = SO(r[a] - o / 2, 1, !0), n ? t.push(i, r) : t.push(r, i) } function l(t, e, i) { var r = n(t, i), l = n(e, i); return r[a] -= o / 2, l[a] -= o / 2, { x: r[0], y: r[1], width: s ? o : l[0] - r[0], height: s ? l[1] - r[1] : o } } function h(t) { return t[a] = SO(t[a], 1), t } for (var g; null != (g = t.next());) { var y = e.get(u, g), v = e.get(c, g), m = e.get(p, g), x = e.get(d, g), _ = e.get(f, g), b = Math.min(v, m), w = Math.max(v, m), S = n(b, y), M = n(w, y), I = n(x, y), T = n(_, y), C = []; r(C, M, 0), r(C, S, 1), C.push(h(T), h(M), h(I), h(S)), e.setItemLayout(g, { sign: Ey(e, g, v, m, p), initBaseline: v > m ? M[s] : S[s], ends: C, brushRect: l(x, _, y) }) } } function n(t, e) { for (var n, r, o = new GG(4 * t.count), l = 0, h = [], g = []; null != (r = t.next());) { var y = e.get(u, r), v = e.get(c, r), m = e.get(p, r), x = e.get(d, r), _ = e.get(f, r); isNaN(y) || isNaN(x) || isNaN(_) ? (o[l++] = 0 / 0, l += 3) : (o[l++] = Ey(e, r, v, m, p), h[a] = y, h[s] = x, n = i.dataToPoint(h, null, g), o[l++] = n ? n[0] : 0 / 0, o[l++] = n ? n[1] : 0 / 0, h[s] = _, n = i.dataToPoint(h, null, g), o[l++] = n ? n[1] : 0 / 0) } e.setLayout("largePoints", o) } var i = t.coordinateSystem, r = t.getData(), o = Ny(t, r), a = 0, s = 1, l = ["x", "y"], u = r.mapDimension(l[a]), h = r.mapDimensionsAll(l[s]), c = h[0], p = h[1], d = h[2], f = h[3]; return r.setLayout({ candleWidth: o, isSimpleBox: 1.3 >= o }), null == u || h.length < 4 ? void 0 : {progress: t.pipelineContext.large ? n : e} } }; df(By); var WG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t) { function e(t, e) { var n = t.getItemVisual(e, "symbol") || "circle"; if ("none" !== n) { var i = Wy(t.getItemVisual(e, "symbolSize")), r = Sc(n, -1, -1, 2, 2), o = t.getItemVisual(e, "symbolRotate") || 0; return r.attr({ style: {strokeNoScale: !0}, z2: 100, scaleX: i[0] / 2, scaleY: i[1] / 2, rotation: o * Math.PI / 180 || 0 }), r } } function n(n, i, r, o, a, s) { r.removeAll(); for (var l = 0; l < i.length - 1; l++) { var u = e(o, a); u && (u.__dimIdx = l, n[l] ? (u.setPosition(n[l]), MO[s ? "initProps" : "updateProps"](u, { x: i[l][0], y: i[l][1] }, t, a)) : u.setPosition(i[l]), r.add(u)) } } function i(t) { return v(t, function () { return [r.cx, r.cy] }) } var r = t.coordinateSystem, o = this.group, a = t.getData(), l = this._data; a.diff(l).add(function (e) { var r = a.getItemLayout(e); if (r) { var o = new KP, s = new JP, l = {shape: {points: r}}; o.shape.points = i(r), s.shape.points = i(r), hs(o, l, t, e), hs(s, l, t, e); var u = new sL, h = new sL; u.add(s), u.add(o), u.add(h), n(s.shape.points, r, h, a, e, !0), a.setItemGraphicEl(e, u) } }).update(function (e, i) { var r = l.getItemGraphicEl(i), o = r.childAt(0), s = r.childAt(1), u = r.childAt(2), h = {shape: {points: a.getItemLayout(e)}}; h.shape.points && (n(o.shape.points, h.shape.points, u, a, e, !1), us(o, h, t), us(s, h, t), a.setItemGraphicEl(e, r)) }).remove(function (t) { o.remove(l.getItemGraphicEl(t)) }).execute(), a.eachItemGraphicEl(function (t, e) { var n = a.getItemModel(e), i = t.childAt(0), r = t.childAt(1), l = t.childAt(2), u = a.getItemVisual(e, "style"), p = u.fill; o.add(t), i.useStyle(c(n.getModel("lineStyle").getLineStyle(), { fill: "none", stroke: p })), Ia(i, n, "lineStyle"), Ia(r, n, "areaStyle"); var d = n.getModel("areaStyle"), f = d.isEmpty() && d.parentModel.isEmpty(); r.ignore = f, y(["emphasis", "select", "blur"], function (t) { var e = n.getModel([t, "areaStyle"]), i = e.isEmpty() && e.parentModel.isEmpty(); r.ensureState(t).ignore = i && f }), r.useStyle(c(d.getAreaStyle(), {fill: p, opacity: .7, decal: u.decal})); var g = n.getModel("emphasis"), v = g.getModel("itemStyle").getItemStyle(); l.eachChild(function (t) { if (t instanceof Wk) { var i = t.style; t.useStyle(h({image: i.image, x: i.x, y: i.y, width: i.width, height: i.height}, u)) } else t.useStyle(u), t.setColor(p); var r = t.ensureState("emphasis"); r.style = s(v); var o = a.get(a.dimensions[t.__dimIdx], e); (null == o || isNaN(o)) && (o = ""), ks(t, Ps(n), { labelFetcher: a.hostModel, labelDataIndex: e, labelDimIndex: t.__dimIdx, defaultText: o, inheritColor: p, defaultOpacity: u.opacity }) }), Sa(t, g.get("focus"), g.get("blurScope")) }), this._data = a }, n.prototype.remove = function () { this.group.removeAll(), this._data = null }, n.type = "radar", n }(Dz), XG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.useColorPaletteOnData = !0, e.hasSymbolVisual = !0, e } return e(n, t), n.prototype.init = function () { t.prototype.init.apply(this, arguments), this.legendVisualProvider = new HF(xA(this.getData, this), xA(this.getRawData, this)) }, n.prototype.getInitialData = function () { return Xg(this, {generateCoord: "indicator_", generateCoordCount: 1 / 0}) }, n.prototype.formatTooltip = function (t) { var e = this.getData(), n = this.coordinateSystem, i = n.getIndicatorAxes(), r = this.getData().getName(t), o = "" === r ? this.name : r, a = fh(this, t); return rh("section", { header: o, sortBlocks: !0, blocks: v(i, function (n) { var i = e.get(e.mapDimension(n.dim), t); return rh("nameValue", { markerType: "subItem", markerColor: a, name: n.name, value: i, sortParam: i }) }) }) }, n.prototype.getTooltipPosition = function (t) { if (null != t) for (var e = this.getData(), n = this.coordinateSystem, i = e.getValues(v(n.dimensions, function (t) { return e.mapDimension(t) }), t), r = 0, o = i.length; o > r; r++) if (!isNaN(i[r])) { var a = n.getIndicatorAxes(); return n.coordToPoint(a[r].dataToCoord(i[r]), r) } }, n.type = "series.radar", n.dependencies = ["radar"], n.defaultOption = { zlevel: 0, z: 2, coordinateSystem: "radar", legendHoverLink: !0, radarIndex: 0, lineStyle: {width: 2, type: "solid"}, label: {position: "top"}, symbolSize: 8 }, n }(Iz), YG = iG.value, ZG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.optionUpdated = function () { var t = this.get("boundaryGap"), e = this.get("splitNumber"), n = this.get("scale"), i = this.get("axisLine"), r = this.get("axisTick"), o = this.get("axisLabel"), a = this.get("axisName"), u = this.get(["axisName", "show"]), h = this.get(["axisName", "formatter"]), p = this.get("axisNameGap"), d = this.get("triggerEvent"), g = v(this.get("indicator") || [], function (g) { null != g.max && g.max > 0 && !g.min ? g.min = 0 : null != g.min && g.min < 0 && !g.max && (g.max = 0); var y = a; null != g.color && (y = c({color: g.color}, a)); var v = l(s(g), { boundaryGap: t, splitNumber: e, scale: n, axisLine: i, axisTick: r, axisLabel: o, name: g.text, nameLocation: "end", nameGap: p, nameTextStyle: y, triggerEvent: d }, !1); if (u || (v.name = ""), "string" == typeof h) { var m = v.name; v.name = h.replace("{value}", null != m ? m : "") } else "function" == typeof h && (v.name = h(v.name, v)); var x = new VO(v, null, this.ecModel); return f(x, HV.prototype), x.mainType = "radar", x.componentIndex = this.componentIndex, x }, this); this._indicatorModels = g }, n.prototype.getIndicatorModels = function () { return this._indicatorModels }, n.type = "radar", n.defaultOption = { zlevel: 0, z: 0, center: ["50%", "50%"], radius: "75%", startAngle: 90, axisName: {show: !0}, boundaryGap: [0, 0], splitNumber: 5, axisNameGap: 15, scale: !1, shape: "polygon", axisLine: l({lineStyle: {color: "#bbb"}}, YG.axisLine), axisLabel: Xy(YG.axisLabel, !1), axisTick: Xy(YG.axisTick, !1), splitLine: Xy(YG.splitLine, !0), splitArea: Xy(YG.splitArea, !0), indicator: [] }, n }(gR), UG = ["axisLine", "axisTickLabel", "axisName"], jG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t) { var e = this.group; e.removeAll(), this._buildAxes(t), this._buildSplitLineAndArea(t) }, n.prototype._buildAxes = function (t) { var e = t.coordinateSystem, n = e.getIndicatorAxes(), i = v(n, function (t) { var n = new cG(t.model, { position: [e.cx, e.cy], rotation: t.angle, labelDirection: -1, tickDirection: -1, nameDirection: 1 }); return n }); y(i, function (t) { y(UG, t.add, t), this.group.add(t.getGroup()) }, this) }, n.prototype._buildSplitLineAndArea = function (t) { function e(t, e, n) { var i = n % e.length; return t[i] = t[i] || [], i } var n = t.coordinateSystem, i = n.getIndicatorAxes(); if (i.length) { var r = t.get("shape"), o = t.getModel("splitLine"), a = t.getModel("splitArea"), s = o.getModel("lineStyle"), l = a.getModel("areaStyle"), u = o.get("show"), h = a.get("show"), p = s.get("color"), d = l.get("color"), f = M(p) ? p : [p], g = M(d) ? d : [d], m = [], x = []; if ("circle" === r) for (var _ = i[0].getTicksCoords(), b = n.cx, w = n.cy, S = 0; S < _.length; S++) { if (u) { var I = e(m, f, S); m[I].push(new kP({shape: {cx: b, cy: w, r: _[S].coord}})) } if (h && S < _.length - 1) { var I = e(x, g, S); x[I].push(new jP({shape: {cx: b, cy: w, r0: _[S].coord, r: _[S + 1].coord}})) } } else for (var T, C = v(i, function (t, e) { var i = t.getTicksCoords(); return T = null == T ? i.length - 1 : Math.min(i.length - 1, T), v(i, function (t) { return n.coordToPoint(t.coord, e) }) }), A = [], S = 0; T >= S; S++) { for (var D = [], L = 0; L < i.length; L++) D.push(C[L][S]); if (D[0] && D.push(D[0].slice()), u) { var I = e(m, f, S); m[I].push(new JP({shape: {points: D}})) } if (h && A) { var I = e(x, g, S - 1); x[I].push(new KP({shape: {points: D.concat(A)}})) } A = D.slice().reverse() } var k = s.getLineStyle(), P = l.getAreaStyle(); y(x, function (t, e) { this.group.add(wO(t, {style: c({stroke: "none", fill: g[e % g.length]}, P), silent: !0})) }, this), y(m, function (t, e) { this.group.add(wO(t, {style: c({fill: "none", stroke: f[e % f.length]}, k), silent: !0})) }, this) } }, n.type = "radar", n }(Tz), qG = function (t) { function n(e, n, i) { var r = t.call(this, e, n, i) || this; return r.type = "value", r.angle = 0, r.name = "", r } return e(n, t), n }(tF), KG = function () { function t(t, e, n) { this.dimensions = [], this._model = t, this._indicatorAxes = v(t.getIndicatorModels(), function (t, e) { var n = "indicator_" + e, i = new qG(n, new wV); return i.name = t.get("name"), i.model = t, t.axis = i, this.dimensions.push(n), i }, this), this.resize(t, n) } return t.prototype.getIndicatorAxes = function () { return this._indicatorAxes }, t.prototype.dataToPoint = function (t, e) { var n = this._indicatorAxes[e]; return this.coordToPoint(n.dataToCoord(t), e) }, t.prototype.coordToPoint = function (t, e) { var n = this._indicatorAxes[e], i = n.angle, r = this.cx + t * Math.cos(i), o = this.cy - t * Math.sin(i); return [r, o] }, t.prototype.pointToData = function (t) { var e = t[0] - this.cx, n = t[1] - this.cy, i = Math.sqrt(e * e + n * n); e /= i, n /= i; for (var r, o = Math.atan2(-n, e), a = 1 / 0, s = -1, l = 0; l < this._indicatorAxes.length; l++) { var u = this._indicatorAxes[l], h = Math.abs(o - u.angle); a > h && (r = u, s = l, a = h) } return [s, +(r && r.coordToData(i))] }, t.prototype.resize = function (t, e) { var n = t.get("center"), i = e.getWidth(), r = e.getHeight(), o = Math.min(i, r) / 2; this.cx = _i(n[0], i), this.cy = _i(n[1], r), this.startAngle = t.get("startAngle") * Math.PI / 180; var a = t.get("radius"); ("string" == typeof a || "number" == typeof a) && (a = [0, a]), this.r0 = _i(a[0], o), this.r = _i(a[1], o), y(this._indicatorAxes, function (t, e) { t.setExtent(this.r0, this.r); var n = this.startAngle + e * Math.PI * 2 / this._indicatorAxes.length; n = Math.atan2(Math.sin(n), Math.cos(n)), t.angle = n }, this) }, t.prototype.update = function (t) { function e(t) { var e = Math.pow(10, Math.floor(Math.log(t) / Math.LN10)), n = t / e; return 2 === n ? n = 5 : n *= 2, n * e } var n = this._indicatorAxes, i = this._model; y(n, function (t) { t.scale.setExtent(1 / 0, -1 / 0) }), t.eachSeriesByType("radar", function (e) { if ("radar" === e.get("coordinateSystem") && t.getComponent("radar", e.get("radarIndex")) === i) { var r = e.getData(); y(n, function (t) { t.scale.unionExtentFromData(r, r.mapDimension(t.dim)) }) } }, this); var r = i.get("splitNumber"); y(n, function (t) { var n = qd(t.scale, t.model).extent; $d(t.scale, t.model); var i = t.model, o = t.scale, a = jd(o, i.get("min", !0)), s = jd(o, i.get("max", !0)), l = o.getInterval(); if (null != a && null != s) o.setExtent(+a, +s), o.setInterval((s - a) / r); else if (null != a) { var u = void 0; do u = a + l * r, o.setExtent(+a, u), o.setInterval(l), l = e(l); while (u < n[1] && isFinite(u) && isFinite(n[1])) } else if (null != s) { var h = void 0; do h = s - l * r, o.setExtent(h, +s), o.setInterval(l), l = e(l); while (h > n[0] && isFinite(h) && isFinite(n[0])) } else { var c = o.getTicks().length - 1; c > r && (l = e(l)); var u = Math.ceil(n[1] / l) * l, h = bi(u - l * r); o.setExtent(h, u), o.setInterval(l) } }) }, t.prototype.convertToPixel = function () { return console.warn("Not implemented."), null }, t.prototype.convertFromPixel = function () { return console.warn("Not implemented."), null }, t.prototype.containPoint = function () { return console.warn("Not implemented."), !1 }, t.create = function (e, n) { var i = []; return e.eachComponent("radar", function (r) { var o = new t(r, e, n); i.push(o), r.coordinateSystem = o }), e.eachSeriesByType("radar", function (t) { "radar" === t.get("coordinateSystem") && (t.coordinateSystem = i[t.get("radarIndex") || 0]) }), i }, t.dimensions = [], t }(); df(Zy); var $G = 256, JG = function () { function t() { this.blurSize = 30, this.pointSize = 20, this.maxOpacity = 1, this.minOpacity = 0, this._gradientPixels = { inRange: null, outOfRange: null }; var t = mA(); this.canvas = t } return t.prototype.update = function (t, e, n, i, r, o) { var a = this._getBrush(), s = this._getGradient(r, "inRange"), l = this._getGradient(r, "outOfRange"), u = this.pointSize + this.blurSize, h = this.canvas, c = h.getContext("2d"), p = t.length; h.width = e, h.height = n; for (var d = 0; p > d; ++d) { var f = t[d], g = f[0], y = f[1], v = f[2], m = i(v); c.globalAlpha = m, c.drawImage(a, g - u, y - u) } if (!h.width || !h.height) return h; for (var x = c.getImageData(0, 0, h.width, h.height), _ = x.data, b = 0, w = _.length, S = this.minOpacity, M = this.maxOpacity, I = M - S; w > b;) { var m = _[b + 3] / 256, T = 4 * Math.floor(m * ($G - 1)); if (m > 0) { var C = o(m) ? s : l; m > 0 && (m = m * I + S), _[b++] = C[T], _[b++] = C[T + 1], _[b++] = C[T + 2], _[b++] = C[T + 3] * m * 256 } else b += 4 } return c.putImageData(x, 0, 0), h }, t.prototype._getBrush = function () { var t = this._brushCanvas || (this._brushCanvas = mA()), e = this.pointSize + this.blurSize, n = 2 * e; t.width = n, t.height = n; var i = t.getContext("2d"); return i.clearRect(0, 0, n, n), i.shadowOffsetX = n, i.shadowBlur = this.blurSize, i.shadowColor = "#000", i.beginPath(), i.arc(-e, e, this.pointSize, 0, 2 * Math.PI, !0), i.closePath(), i.fill(), t }, t.prototype._getGradient = function (t, e) { for (var n = this._gradientPixels, i = n[e] || (n[e] = new Uint8ClampedArray(1024)), r = [0, 0, 0, 0], o = 0, a = 0; 256 > a; a++) t[e](a / 255, !0, r), i[o++] = r[0], i[o++] = r[1], i[o++] = r[2], i[o++] = r[3]; return i }, t }(), QG = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t, e, n) { var i; e.eachComponent("visualMap", function (e) { e.eachTargetSeries(function (n) { n === t && (i = e) }) }), this.group.removeAll(), this._incrementalDisplayable = null; var r = t.coordinateSystem; "cartesian2d" === r.type || "calendar" === r.type ? this._renderOnCartesianAndCalendar(t, n, 0, t.getData().count()) : qy(r) && this._renderOnGeo(r, t, i, n) }, n.prototype.incrementalPrepareRender = function () { this.group.removeAll() }, n.prototype.incrementalRender = function (t, e, n, i) { var r = e.coordinateSystem; r && (qy(r) ? this.render(e, n, i) : this._renderOnCartesianAndCalendar(e, i, t.start, t.end, !0)) }, n.prototype._renderOnCartesianAndCalendar = function (t, e, n, i, r) { var o, a, s, l, u = t.coordinateSystem; if (Yf(u, "cartesian2d")) { var h = u.getAxis("x"), c = u.getAxis("y"); o = h.getBandWidth(), a = c.getBandWidth(), s = h.scale.getExtent(), l = c.scale.getExtent() } for (var p = this.group, d = t.getData(), f = t.getModel(["emphasis", "itemStyle"]).getItemStyle(), g = t.getModel(["blur", "itemStyle"]).getItemStyle(), y = t.getModel(["select", "itemStyle"]).getItemStyle(), v = Ps(t), m = t.get(["emphasis", "focus"]), x = t.get(["emphasis", "blurScope"]), _ = Yf(u, "cartesian2d") ? [d.mapDimension("x"), d.mapDimension("y"), d.mapDimension("value")] : [d.mapDimension("time"), d.mapDimension("value")], b = n; i > b; b++) { var w = void 0, S = d.getItemVisual(b, "style"); if (Yf(u, "cartesian2d")) { var M = d.get(_[0], b), I = d.get(_[1], b); if (isNaN(d.get(_[2], b)) || M < s[0] || M > s[1] || I < l[0] || I > l[1]) continue; var T = u.dataToPoint([M, I]); w = new Uk({ shape: { x: Math.floor(Math.round(T[0]) - o / 2), y: Math.floor(Math.round(T[1]) - a / 2), width: Math.ceil(o), height: Math.ceil(a) }, style: S }) } else { if (isNaN(d.get(_[1], b))) continue; w = new Uk({z2: 1, shape: u.dataToRect([d.get(_[0], b)]).contentShape, style: S}) } var C = d.getItemModel(b); if (d.hasItemOption) { var A = C.getModel("emphasis"); f = A.getModel("itemStyle").getItemStyle(), g = C.getModel(["blur", "itemStyle"]).getItemStyle(), y = C.getModel(["select", "itemStyle"]).getItemStyle(), m = A.get("focus"), x = A.get("blurScope"), v = Ps(C) } var D = t.getRawValue(b), L = "-"; D && null != D[2] && (L = D[2] + ""), ks(w, v, { labelFetcher: t, labelDataIndex: b, defaultOpacity: S.opacity, defaultText: L }), w.ensureState("emphasis").style = f, w.ensureState("blur").style = g, w.ensureState("select").style = y, Sa(w, m, x), w.incremental = r, r && (w.states.emphasis.hoverLayer = !0), p.add(w), d.setItemGraphicEl(b, w) } }, n.prototype._renderOnGeo = function (t, e, n, i) { var r = n.targetVisuals.inRange, o = n.targetVisuals.outOfRange, a = e.getData(), s = this._hmLayer || this._hmLayer || new JG; s.blurSize = e.get("blurSize"), s.pointSize = e.get("pointSize"), s.minOpacity = e.get("minOpacity"), s.maxOpacity = e.get("maxOpacity"); var l = t.getViewRect().clone(), u = t.getRoamTransform(); l.applyTransform(u); var h = Math.max(l.x, 0), c = Math.max(l.y, 0), p = Math.min(l.width + l.x, i.getWidth()), d = Math.min(l.height + l.y, i.getHeight()), f = p - h, g = d - c, y = [a.mapDimension("lng"), a.mapDimension("lat"), a.mapDimension("value")], v = a.mapArray(y, function (e, n, i) { var r = t.dataToPoint([e, n]); return r[0] -= h, r[1] -= c, r.push(i), r }), m = n.getExtent(), x = "visualMap.continuous" === n.type ? jy(m, n.option.range) : Uy(m, n.getPieceList(), n.option.selected); s.update(v, f, g, r.color.getNormalizer(), { inRange: r.color.getColorMapper(), outOfRange: o.color.getColorMapper() }, x); var _ = new Wk({style: {width: f, height: g, x: h, y: c, image: s.canvas}, silent: !0}); this.group.add(_) }, n.type = "heatmap", n }(Dz), tH = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.getInitialData = function () { return gd(this.getSource(), this, {generateCoord: "value"}) }, n.prototype.preventIncremental = function () { var t = UR.get(this.get("coordinateSystem")); return t && t.dimensions ? "lng" === t.dimensions[0] && "lat" === t.dimensions[1] : void 0 }, n.type = "series.heatmap", n.dependencies = ["grid", "geo", "calendar"], n.defaultOption = { coordinateSystem: "cartesian2d", zlevel: 0, z: 2, geoIndex: 0, blurSize: 30, pointSize: 20, maxOpacity: 1, minOpacity: 0, select: {itemStyle: {borderColor: "#212121"}} }, n }(Iz); df(Ky); var eH = ge, nH = function (t) { function n(e) { var n = t.call(this) || this; return n.type = "view", n.dimensions = ["x", "y"], n._roamTransformable = new GD, n._rawTransformable = new GD, n.name = e, n } return e(n, t), n.prototype.setBoundingRect = function (t, e, n, i) { return this._rect = new $D(t, e, n, i), this._rect }, n.prototype.getBoundingRect = function () { return this._rect }, n.prototype.setViewRect = function (t, e, n, i) { this._transformTo(t, e, n, i), this._viewRect = new $D(t, e, n, i) }, n.prototype._transformTo = function (t, e, n, i) { var r = this.getBoundingRect(), o = this._rawTransformable; o.transform = r.calculateTransform(new $D(t, e, n, i)); var a = o.parent; o.parent = null, o.decomposeTransform(), o.parent = a, this._updateTransform() }, n.prototype.setCenter = function (t) { t && (this._center = t, this._updateCenterAndZoom()) }, n.prototype.setZoom = function (t) { t = t || 1; var e = this.zoomLimit; e && (null != e.max && (t = Math.min(e.max, t)), null != e.min && (t = Math.max(e.min, t))), this._zoom = t, this._updateCenterAndZoom() }, n.prototype.getDefaultCenter = function () { var t = this.getBoundingRect(), e = t.x + t.width / 2, n = t.y + t.height / 2; return [e, n] }, n.prototype.getCenter = function () { return this._center || this.getDefaultCenter() }, n.prototype.getZoom = function () { return this._zoom || 1 }, n.prototype.getRoamTransform = function () { return this._roamTransformable.getLocalTransform() }, n.prototype._updateCenterAndZoom = function () { var t = this._rawTransformable.getLocalTransform(), e = this._roamTransformable, n = this.getDefaultCenter(), i = this.getCenter(), r = this.getZoom(); i = ge([], i, t), n = ge([], n, t), e.originX = i[0], e.originY = i[1], e.x = n[0] - i[0], e.y = n[1] - i[1], e.scaleX = e.scaleY = r, this._updateTransform() }, n.prototype._updateTransform = function () { var t = this._roamTransformable, e = this._rawTransformable; e.parent = t, t.updateTransform(), e.updateTransform(), Wn(this.transform || (this.transform = []), e.transform || Gn()), this._rawTransform = e.getLocalTransform(), this.invTransform = this.invTransform || [], jn(this.invTransform, this.transform), this.decomposeTransform() }, n.prototype.getTransformInfo = function () { var t = this._rawTransformable, e = this._roamTransformable, n = new GD; return n.transform = e.transform, n.decomposeTransform(), { roam: { x: n.x, y: n.y, scaleX: n.scaleX, scaleY: n.scaleY }, raw: {x: t.x, y: t.y, scaleX: t.scaleX, scaleY: t.scaleY} } }, n.prototype.getViewRect = function () { return this._viewRect }, n.prototype.getViewRectAfterRoam = function () { var t = this.getBoundingRect().clone(); return t.applyTransform(this.transform), t }, n.prototype.dataToPoint = function (t, e, n) { var i = e ? this._rawTransform : this.transform; return n = n || [], i ? eH(n, t, i) : J(n, t) }, n.prototype.pointToData = function (t) { var e = this.invTransform; return e ? eH([], t, e) : [t[0], t[1]] }, n.prototype.convertToPixel = function (t, e, n) { var i = hv(e); return i === this ? i.dataToPoint(n) : null }, n.prototype.convertFromPixel = function (t, e, n) { var i = hv(e); return i === this ? i.pointToData(n) : null }, n.prototype.containPoint = function (t) { return this.getViewRectAfterRoam().contain(t[0], t[1]) }, n.dimensions = ["x", "y"], n }(GD), iH = "\x00_ec_interaction_mutex"; Xp({type: "takeGlobalCursor", event: "globalCursorTaken", update: "update"}, function () { }); var rH = function (t) { function n(e) { var n = t.call(this) || this; n._zr = e; var i = xA(n._mousedownHandler, n), r = xA(n._mousemoveHandler, n), o = xA(n._mouseupHandler, n), a = xA(n._mousewheelHandler, n), l = xA(n._pinchHandler, n); return n.enable = function (t, n) { this.disable(), this._opt = c(s(n) || {}, { zoomOnMouseWheel: !0, moveOnMouseMove: !0, moveOnMouseWheel: !1, preventDefaultMouseMove: !0 }), null == t && (t = !0), (t === !0 || "move" === t || "pan" === t) && (e.on("mousedown", i), e.on("mousemove", r), e.on("mouseup", o)), (t === !0 || "scale" === t || "zoom" === t) && (e.on("mousewheel", a), e.on("pinch", l)) }, n.disable = function () { e.off("mousedown", i), e.off("mousemove", r), e.off("mouseup", o), e.off("mousewheel", a), e.off("pinch", l) }, n } return e(n, t), n.prototype.isDragging = function () { return this._dragging }, n.prototype.isPinching = function () { return this._pinching }, n.prototype.setPointerChecker = function (t) { this.pointerChecker = t }, n.prototype.dispose = function () { this.disable() }, n.prototype._mousedownHandler = function (t) { if (!(Pe(t) || t.target && t.target.draggable)) { var e = t.offsetX, n = t.offsetY; this.pointerChecker && this.pointerChecker(t, e, n) && (this._x = e, this._y = n, this._dragging = !0) } }, n.prototype._mousemoveHandler = function (t) { if (this._dragging && xv("moveOnMouseMove", t, this._opt) && "pinch" !== t.gestureEvent && !gv(this._zr, "globalPan")) { var e = t.offsetX, n = t.offsetY, i = this._x, r = this._y, o = e - i, a = n - r; this._x = e, this._y = n, this._opt.preventDefaultMouseMove && NA(t.event), mv(this, "pan", "moveOnMouseMove", t, { dx: o, dy: a, oldX: i, oldY: r, newX: e, newY: n, isAvailableBehavior: null }) } }, n.prototype._mouseupHandler = function (t) { Pe(t) || (this._dragging = !1) }, n.prototype._mousewheelHandler = function (t) { var e = xv("zoomOnMouseWheel", t, this._opt), n = xv("moveOnMouseWheel", t, this._opt), i = t.wheelDelta, r = Math.abs(i), o = t.offsetX, a = t.offsetY; if (0 !== i && (e || n)) { if (e) { var s = r > 3 ? 1.4 : r > 1 ? 1.2 : 1.1, l = i > 0 ? s : 1 / s; vv(this, "zoom", "zoomOnMouseWheel", t, { scale: l, originX: o, originY: a, isAvailableBehavior: null }) } if (n) { var u = Math.abs(i), h = (i > 0 ? 1 : -1) * (u > 3 ? .4 : u > 1 ? .15 : .05); vv(this, "scrollMove", "moveOnMouseWheel", t, { scrollDelta: h, originX: o, originY: a, isAvailableBehavior: null }) } } }, n.prototype._pinchHandler = function (t) { if (!gv(this._zr, "globalPan")) { var e = t.pinchScale > 1 ? 1.1 : 1 / 1.1; vv(this, "zoom", null, t, {scale: e, originX: t.pinchX, originY: t.pinchY, isAvailableBehavior: null}) } }, n }(LA), oH = {axisPointer: 1, tooltip: 1, brush: 1}, aH = function () { function t() { this.parentPoint = [], this.childPoints = [] } return t }(), sH = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultStyle = function () { return {stroke: "#000", fill: null} }, n.prototype.getDefaultShape = function () { return new aH }, n.prototype.buildPath = function (t, e) { var n = e.childPoints, i = n.length, r = e.parentPoint, o = n[0], a = n[i - 1]; if (1 === i) return t.moveTo(r[0], r[1]), void t.lineTo(o[0], o[1]); var s = e.orient, l = "TB" === s || "BT" === s ? 0 : 1, u = 1 - l, h = _i(e.forkPosition, 1), c = []; c[l] = r[l], c[u] = r[u] + (a[u] - r[u]) * h, t.moveTo(r[0], r[1]), t.lineTo(c[0], c[1]), t.moveTo(o[0], o[1]), c[l] = o[l], t.lineTo(c[0], c[1]), c[l] = a[l], t.lineTo(c[0], c[1]), t.lineTo(a[0], a[1]); for (var p = 1; i - 1 > p; p++) { var d = n[p]; t.moveTo(d[0], d[1]), c[l] = d[l], t.lineTo(c[0], c[1]) } }, n }(Bk), lH = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e._mainGroup = new sL, e } return e(n, t), n.prototype.init = function (t, e) { this._controller = new rH(e.getZr()), this._controllerHost = {target: this.group}, this.group.add(this._mainGroup) }, n.prototype.render = function (t, e, n) { var i = t.getData(), r = t.layoutInfo, o = this._mainGroup, a = t.get("layout"); "radial" === a ? (o.x = r.x + r.width / 2, o.y = r.y + r.height / 2) : (o.x = r.x, o.y = r.y), this._updateViewCoordSys(t), this._updateController(t, e, n); var s = this._data; i.diff(s).add(function (e) { bv(i, e) && wv(i, e, null, o, t) }).update(function (e, n) { var r = s.getItemGraphicEl(n); return bv(i, e) ? void wv(i, e, r, o, t) : void (r && Mv(s, n, r, o, t)) }).remove(function (e) { var n = s.getItemGraphicEl(e); n && Mv(s, e, n, o, t) }).execute(), this._nodeScaleRatio = t.get("nodeScaleRatio"), this._updateNodeAndLinkScale(t), t.get("expandAndCollapse") === !0 && i.eachItemGraphicEl(function (e, i) { e.off("click").on("click", function () { n.dispatchAction({type: "treeExpandAndCollapse", seriesId: t.id, dataIndex: i}) }) }), this._data = i }, n.prototype._updateViewCoordSys = function (t) { var e = t.getData(), n = []; e.each(function (t) { var i = e.getItemLayout(t); !i || isNaN(i.x) || isNaN(i.y) || n.push([+i.x, +i.y]) }); var i = [], r = []; ao(n, i, r); var o = this._min, a = this._max; r[0] - i[0] === 0 && (i[0] = o ? o[0] : i[0] - 1, r[0] = a ? a[0] : r[0] + 1), r[1] - i[1] === 0 && (i[1] = o ? o[1] : i[1] - 1, r[1] = a ? a[1] : r[1] + 1); var s = t.coordinateSystem = new nH; s.zoomLimit = t.get("scaleLimit"), s.setBoundingRect(i[0], i[1], r[0] - i[0], r[1] - i[1]), s.setCenter(t.get("center")), s.setZoom(t.get("zoom")), this.group.attr({ x: s.x, y: s.y, scaleX: s.scaleX, scaleY: s.scaleY }), this._min = i, this._max = r }, n.prototype._updateController = function (t, e, n) { var i = this, r = this._controller, o = this._controllerHost, a = this.group; r.setPointerChecker(function (e, i, r) { var o = a.getBoundingRect(); return o.applyTransform(a.transform), o.contain(i, r) && !_v(e, n, t) }), r.enable(t.get("roam")), o.zoomLimit = t.get("scaleLimit"), o.zoom = t.coordinateSystem.getZoom(), r.off("pan").off("zoom").on("pan", function (e) { cv(o, e.dx, e.dy), n.dispatchAction({seriesId: t.id, type: "treeRoam", dx: e.dx, dy: e.dy}) }).on("zoom", function (e) { pv(o, e.scale, e.originX, e.originY), n.dispatchAction({ seriesId: t.id, type: "treeRoam", zoom: e.scale, originX: e.originX, originY: e.originY }), i._updateNodeAndLinkScale(t), n.updateLabelLayout() }) }, n.prototype._updateNodeAndLinkScale = function (t) { var e = t.getData(), n = this._getNodeGlobalScale(t); e.eachItemGraphicEl(function (t) { t.setSymbolScale(n) }) }, n.prototype._getNodeGlobalScale = function (t) { var e = t.coordinateSystem; if ("view" !== e.type) return 1; var n = this._nodeScaleRatio, i = e.scaleX || 1, r = e.getZoom(), o = (r - 1) * n + 1; return o / i }, n.prototype.dispose = function () { this._controller && this._controller.dispose(), this._controllerHost = null }, n.prototype.remove = function () { this._mainGroup.removeAll(), this._data = null }, n.type = "tree", n }(Dz), uH = ur(), hH = function () { function t(t, e) { this.depth = 0, this.height = 0, this.dataIndex = -1, this.children = [], this.viewChildren = [], this.isExpand = !1, this.name = t || "", this.hostTree = e } return t.prototype.isRemoved = function () { return this.dataIndex < 0 }, t.prototype.eachNode = function (t, e, n) { "function" == typeof t && (n = e, e = t, t = null), t = t || {}, T(t) && (t = {order: t}); var i, r = t.order || "preorder", o = this[t.attr || "children"]; "preorder" === r && (i = e.call(n, this)); for (var a = 0; !i && a < o.length; a++) o[a].eachNode(t, e, n); "postorder" === r && e.call(n, this) }, t.prototype.updateDepthAndHeight = function (t) { var e = 0; this.depth = t; for (var n = 0; n < this.children.length; n++) { var i = this.children[n]; i.updateDepthAndHeight(t + 1), i.height > e && (e = i.height) } this.height = e + 1 }, t.prototype.getNodeById = function (t) { if (this.getId() === t) return this; for (var e = 0, n = this.children, i = n.length; i > e; e++) { var r = n[e].getNodeById(t); if (r) return r } }, t.prototype.contains = function (t) { if (t === this) return !0; for (var e = 0, n = this.children, i = n.length; i > e; e++) { var r = n[e].contains(t); if (r) return r } }, t.prototype.getAncestors = function (t) { for (var e = [], n = t ? this : this.parentNode; n;) e.push(n), n = n.parentNode; return e.reverse(), e }, t.prototype.getAncestorsIndices = function () { for (var t = [], e = this; e;) t.push(e.dataIndex), e = e.parentNode; return t.reverse(), t }, t.prototype.getDescendantIndices = function () { var t = []; return this.eachNode(function (e) { t.push(e.dataIndex) }), t }, t.prototype.getValue = function (t) { var e = this.hostTree.data; return e.get(e.getDimension(t || "value"), this.dataIndex) }, t.prototype.setLayout = function (t, e) { this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, t, e) }, t.prototype.getLayout = function () { return this.hostTree.data.getItemLayout(this.dataIndex) }, t.prototype.getModel = function (t) { if (!(this.dataIndex < 0)) { var e = this.hostTree, n = e.data.getItemModel(this.dataIndex); return n.getModel(t) } }, t.prototype.getLevelModel = function () { return (this.hostTree.levelModels || [])[this.depth] }, t.prototype.setVisual = function (t, e) { this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, t, e) }, t.prototype.getVisual = function (t) { return this.hostTree.data.getItemVisual(this.dataIndex, t) }, t.prototype.getRawIndex = function () { return this.hostTree.data.getRawIndex(this.dataIndex) }, t.prototype.getId = function () { return this.hostTree.data.getId(this.dataIndex) }, t.prototype.isAncestorOf = function (t) { for (var e = t.parentNode; e;) { if (e === this) return !0; e = e.parentNode } return !1 }, t.prototype.isDescendantOf = function (t) { return t !== this && t.isAncestorOf(this) }, t }(), cH = function () { function t(t) { this.type = "tree", this._nodes = [], this.hostModel = t } return t.prototype.eachNode = function (t, e, n) { this.root.eachNode(t, e, n) }, t.prototype.getNodeByDataIndex = function (t) { var e = this.data.getRawIndex(t); return this._nodes[e] }, t.prototype.getNodeById = function (t) { return this.root.getNodeById(t) }, t.prototype.update = function () { for (var t = this.data, e = this._nodes, n = 0, i = e.length; i > n; n++) e[n].dataIndex = -1; for (var n = 0, i = t.count(); i > n; n++) e[t.getRawIndex(n)].dataIndex = n }, t.prototype.clearLayouts = function () { this.data.clearItemLayouts() }, t.createTree = function (e, n, i) { function r(t, e) { var n = t.value; s = Math.max(s, M(n) ? n.length : 1), a.push(t); var i = new hH(er(t.name, ""), o); e ? zv(i, e) : o.root = i, o._nodes.push(i); var l = t.children; if (l) for (var u = 0; u < l.length; u++) r(l[u], i) } var o = new t(n), a = [], s = 1; r(e), o.root.updateDepthAndHeight(0); var l = ud(a, {coordDimensions: ["value"], dimensionsCount: s}), u = new fV(l, n); return u.initData(a), i && i(u), Tv({mainData: u, struct: o, structAttr: "tree"}), o.update(), o }, t }(), pH = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.hasSymbolVisual = !0, e.ignoreStyleOnData = !0, e } return e(n, t), n.prototype.getInitialData = function (t) { function e(t) { t.wrapMethod("getItemModel", function (t, e) { var n = o.getNodeByDataIndex(e); return n && n.children.length && n.isExpand || (t.parentModel = r), t }) } var n = {name: t.name, children: t.data}, i = t.leaves || {}, r = new VO(i, this, this.ecModel), o = cH.createTree(n, this, e), a = 0; o.eachNode("preorder", function (t) { t.depth > a && (a = t.depth) }); var s = t.expandAndCollapse, l = s && t.initialTreeDepth >= 0 ? t.initialTreeDepth : a; return o.root.eachNode("preorder", function (t) { var e = t.hostTree.data.getRawDataItem(t.dataIndex); t.isExpand = e && null != e.collapsed ? !e.collapsed : t.depth <= l }), o.data }, n.prototype.getOrient = function () { var t = this.get("orient"); return "horizontal" === t ? t = "LR" : "vertical" === t && (t = "TB"), t }, n.prototype.setZoom = function (t) { this.option.zoom = t }, n.prototype.setCenter = function (t) { this.option.center = t }, n.prototype.formatTooltip = function (t) { for (var e = this.getData().tree, n = e.root.children[0], i = e.getNodeByDataIndex(t), r = i.getValue(), o = i.name; i && i !== n;) o = i.parentNode.name + "." + o, i = i.parentNode; return rh("nameValue", {name: o, value: r, noValue: isNaN(r) || null == r}) }, n.prototype.getDataParams = function (e) { var n = t.prototype.getDataParams.apply(this, arguments), i = this.getData().tree.getNodeByDataIndex(e); return n.treeAncestors = Vv(i, this), n }, n.type = "series.tree", n.layoutMode = "box", n.defaultOption = { zlevel: 0, z: 2, coordinateSystem: "view", left: "12%", top: "12%", right: "12%", bottom: "12%", layout: "orthogonal", edgeShape: "curve", edgeForkPosition: "50%", roam: !1, nodeScaleRatio: .4, center: null, zoom: 1, orient: "LR", symbol: "emptyCircle", symbolSize: 7, expandAndCollapse: !0, initialTreeDepth: 2, lineStyle: {color: "#ccc", width: 1.5, curveness: .5}, itemStyle: {color: "lightsteelblue", borderWidth: 1.5}, label: {show: !0}, animationEasing: "linear", animationDuration: 700, animationDurationUpdate: 500 }, n }(Iz); df(Uv); var dH = function () { }, fH = ["treemapZoomToNode", "treemapRender", "treemapMove"], gH = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.preventUsingHoverLayer = !0, e } return e(n, t), n.prototype.getInitialData = function (t, e) { function n(t) { t.wrapMethod("getItemModel", function (t, e) { var n = l.getNodeByDataIndex(e), i = n ? s[n.depth] : null; return t.parentModel = i || a, t }) } var i = {name: t.name, children: t.data}; Kv(i); var r = t.levels || [], o = this.designatedVisualItemStyle = {}, a = new VO({itemStyle: o}, this, e); r = t.levels = $v(r, e); var s = v(r || [], function (t) { return new VO(t, a, e) }, this), l = cH.createTree(i, this, n); return l.data }, n.prototype.optionUpdated = function () { this.resetViewRoot() }, n.prototype.formatTooltip = function (t) { var e = this.getData(), n = this.getRawValue(t), i = e.getName(t); return rh("nameValue", {name: i, value: n}) }, n.prototype.getDataParams = function (e) { var n = t.prototype.getDataParams.apply(this, arguments), i = this.getData().tree.getNodeByDataIndex(e); return n.treePathInfo = Vv(i, this), n }, n.prototype.setLayoutInfo = function (t) { this.layoutInfo = this.layoutInfo || {}, h(this.layoutInfo, t) }, n.prototype.mapIdToIndex = function (t) { var e = this._idIndexMap; e || (e = this._idIndexMap = Z(), this._idIndexMapCount = 0); var n = e.get(t); return null == n && e.set(t, n = this._idIndexMapCount++), n }, n.prototype.getViewRoot = function () { return this._viewRoot }, n.prototype.resetViewRoot = function (t) { t ? this._viewRoot = t : t = this._viewRoot; var e = this.getRawData().tree.root; (!t || t !== e && !e.contains(t)) && (this._viewRoot = e) }, n.prototype.enableAriaDecal = function () { qv(this) }, n.type = "series.treemap", n.layoutMode = "box", n.defaultOption = { progressive: 0, left: "center", top: "middle", width: "80%", height: "80%", sort: !0, clipWindow: "origin", squareRatio: .5 * (1 + Math.sqrt(5)), leafDepth: null, drillDownIcon: "▶", zoomToNodeRatio: .1024, roam: !0, nodeClick: "zoomToNode", animation: !0, animationDurationUpdate: 900, animationEasing: "quinticInOut", breadcrumb: { show: !0, height: 22, left: "center", top: "bottom", emptyItemWidth: 25, itemStyle: {color: "rgba(0,0,0,0.7)", textStyle: {color: "#fff"}} }, label: {show: !0, distance: 0, padding: 5, position: "inside", color: "#fff", overflow: "truncate"}, upperLabel: {show: !1, position: [0, "50%"], height: 20, overflow: "truncate", verticalAlign: "middle"}, itemStyle: { color: null, colorAlpha: null, colorSaturation: null, borderWidth: 0, gapWidth: 0, borderColor: "#fff", borderColorSaturation: null }, emphasis: {upperLabel: {show: !0, position: [0, "50%"], ellipsis: !0, verticalAlign: "middle"}}, visualDimension: 0, visualMin: null, visualMax: null, color: [], colorAlpha: null, colorSaturation: null, colorMappingBy: "index", visibleMin: 10, childrenVisibleMin: null, levels: [] }, n }(Iz), yH = 8, vH = 8, mH = 5, xH = function () { function t(t) { this.group = new sL, t.add(this.group) } return t.prototype.render = function (t, e, n, i) { var r = t.getModel("breadcrumb"), o = this.group; if (o.removeAll(), r.get("show") && n) { var a = r.getModel("itemStyle"), s = a.getModel("textStyle"), l = { pos: {left: r.get("left"), right: r.get("right"), top: r.get("top"), bottom: r.get("bottom")}, box: {width: e.getWidth(), height: e.getHeight()}, emptyItemWidth: r.get("emptyItemWidth"), totalWidth: 0, renderList: [] }; this._prepare(n, l, s), this._renderContent(t, l, a, s, i), Pl(o, l.pos, l.box) } }, t.prototype._prepare = function (t, e, n) { for (var i = t; i; i = i.parentNode) { var r = er(i.getModel().get("name"), ""), o = n.getTextRect(r), a = Math.max(o.width + 2 * yH, e.emptyItemWidth); e.totalWidth += a + vH, e.renderList.push({node: i, text: r, width: a}) } }, t.prototype._renderContent = function (t, e, n, i, r) { for (var o = 0, a = e.emptyItemWidth, s = t.get(["breadcrumb", "height"]), l = Ll(e.pos, e.box), u = e.totalWidth, h = e.renderList, p = h.length - 1; p >= 0; p--) { var d = h[p], f = d.node, g = d.width, y = d.text; u > l.width && (u -= g - a, g = a, y = null); var v = new KP({ shape: {points: Jv(o, 0, g, s, p === h.length - 1, 0 === p)}, style: c(n.getItemStyle(), {lineJoin: "bevel"}), textContent: new $k({style: {text: y, fill: i.getTextColor(), font: i.getFont()}}), textConfig: {position: "inside"}, z2: 1e4 * uP, onclick: S(r, f) }); v.disableLabelAnimation = !0, this.group.add(v), Qv(v, t, f), o += g + vH } }, t.prototype.remove = function () { this.group.removeAll() }, t }(), _H = function () { function t() { this._storage = [], this._elExistsMap = {} } return t.prototype.add = function (t, e, n, i, r) { return this._elExistsMap[t.id] ? !1 : (this._elExistsMap[t.id] = !0, this._storage.push({ el: t, target: e, duration: n, delay: i, easing: r }), !0) }, t.prototype.finished = function (t) { return this._finishedCallback = t, this }, t.prototype.start = function () { for (var t = this, e = this._storage.length, n = function () { e--, 0 >= e && (t._storage.length = 0, t._elExistsMap = {}, t._finishedCallback && t._finishedCallback()) }, i = 0, r = this._storage.length; r > i; i++) { var o = this._storage[i]; o.el.animateTo(o.target, { duration: o.duration, delay: o.delay, easing: o.easing, setToFinal: !0, done: n, aborted: n }) } return this }, t }(), bH = sL, wH = Uk, SH = 3, MH = "label", IH = "upperLabel", TH = 10 * uP, CH = 2 * uP, AH = 3 * uP, DH = Ar([["fill", "color"], ["stroke", "strokeColor"], ["lineWidth", "strokeWidth"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["shadowColor"]]), LH = function (t) { var e = DH(t); return e.stroke = e.fill = e.lineWidth = null, e }, kH = ur(), PH = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e._state = "ready", e._storage = em(), e } return e(n, t), n.prototype.render = function (t, e, n, i) { var r = e.findComponents({mainType: "series", subType: "treemap", query: i}); if (!(p(r, t) < 0)) { this.seriesModel = t, this.api = n, this.ecModel = e; var o = ["treemapZoomToNode", "treemapRootToNode"], a = Ev(i, o, t), s = i && i.type, l = t.layoutInfo, u = !this._oldTree, h = this._storage, c = "treemapRootToNode" === s && a && h ? { rootNodeGroup: h.nodeGroup[a.node.getRawIndex()], direction: i.direction } : null, d = this._giveContainerGroup(l), f = this._doRender(d, t, c); u || s && "treemapZoomToNode" !== s && "treemapRootToNode" !== s ? f.renderFinally() : this._doAnimation(d, f, t, c), this._resetController(n), this._renderBreadcrumb(t, n, a) } }, n.prototype._giveContainerGroup = function (t) { var e = this._containerGroup; return e || (e = this._containerGroup = new bH, this._initEvents(e), this.group.add(e)), e.x = t.x, e.y = t.y, e }, n.prototype._doRender = function (t, e, n) { function i(t, i, r, o) { return nm(e, h, c, n, u, p, t, i, r, o) } function r(t, e, n, o, a) { function s(t) { return t.getId() } function l(s, l) { var u = null != s ? t[s] : null, h = null != l ? e[l] : null, c = i(u, h, n, a); c && r(u && u.viewChildren || [], h && h.viewChildren || [], c, o, a + 1) } o ? (e = t, y(t, function (t, e) { !t.isRemoved() && l(e, e) })) : new tV(e, t, s, s).add(l).update(l).remove(S(l, null)).execute() } function o(t) { var e = em(); return t && y(t, function (t, n) { var i = e[n]; y(t, function (t) { t && (i.push(t), kH(t).willDelete = !0) }) }), e } function a() { y(d, function (t) { y(t, function (t) { t.parent && t.parent.remove(t) }) }), y(p, function (t) { t.invisible = !0, t.dirty() }) } var s = e.getData().tree, l = this._oldTree, u = em(), h = em(), c = this._storage, p = []; r(s.root ? [s.root] : [], l && l.root ? [l.root] : [], t, s === l || !l, 0); var d = o(c); return this._oldTree = s, this._storage = h, {lastsForAnimation: u, willDeleteEls: d, renderFinally: a} }, n.prototype._doAnimation = function (t, e, n, i) { if (n.get("animation")) { var r = n.get("animationDurationUpdate"), o = n.get("animationEasing"), a = (I(r) ? 0 : r) || 0, s = (I(o) ? null : o) || "cubicOut", l = tm(); y(e.willDeleteEls, function (t, e) { y(t, function (t) { if (!t.invisible) { var n, r = t.parent, o = kH(r); if (i && "drillDown" === i.direction) n = r === i.rootNodeGroup ? { shape: { x: 0, y: 0, width: o.nodeWidth, height: o.nodeHeight }, style: {opacity: 0} } : {style: {opacity: 0}}; else { var u = 0, h = 0; o.willDelete || (u = o.nodeWidth / 2, h = o.nodeHeight / 2), n = "nodeGroup" === e ? { x: u, y: h, style: {opacity: 0} } : {shape: {x: u, y: h, width: 0, height: 0}, style: {opacity: 0}} } n && l.add(t, n, a, 0, s) } }) }), y(this._storage, function (t, n) { y(t, function (t, i) { var r = e.lastsForAnimation[n][i], o = {}; r && (t instanceof sL ? null != r.oldX && (o.x = t.x, o.y = t.y, t.x = r.oldX, t.y = r.oldY) : (r.oldShape && (o.shape = h({}, t.shape), t.setShape(r.oldShape)), r.fadein ? (t.setStyle("opacity", 0), o.style = {opacity: 1}) : 1 !== t.style.opacity && (o.style = {opacity: 1})), l.add(t, o, a, 0, s)) }) }, this), this._state = "animating", l.finished(xA(function () { this._state = "ready", e.renderFinally() }, this)).start() } }, n.prototype._resetController = function (t) { var e = this._controller; e || (e = this._controller = new rH(t.getZr()), e.enable(this.seriesModel.get("roam")), e.on("pan", xA(this._onPan, this)), e.on("zoom", xA(this._onZoom, this))); var n = new $D(0, 0, t.getWidth(), t.getHeight()); e.setPointerChecker(function (t, e, i) { return n.contain(e, i) }) }, n.prototype._clearController = function () { var t = this._controller; t && (t.dispose(), t = null) }, n.prototype._onPan = function (t) { if ("animating" !== this._state && (Math.abs(t.dx) > SH || Math.abs(t.dy) > SH)) { var e = this.seriesModel.getData().tree.root; if (!e) return; var n = e.getLayout(); if (!n) return; this.api.dispatchAction({ type: "treemapMove", from: this.uid, seriesId: this.seriesModel.id, rootRect: {x: n.x + t.dx, y: n.y + t.dy, width: n.width, height: n.height} }) } }, n.prototype._onZoom = function (t) { var e = t.originX, n = t.originY; if ("animating" !== this._state) { var i = this.seriesModel.getData().tree.root; if (!i) return; var r = i.getLayout(); if (!r) return; var o = new $D(r.x, r.y, r.width, r.height), a = this.seriesModel.layoutInfo; e -= a.x, n -= a.y; var s = Gn(); Yn(s, s, [-e, -n]), Un(s, s, [t.scale, t.scale]), Yn(s, s, [e, n]), o.applyTransform(s), this.api.dispatchAction({ type: "treemapRender", from: this.uid, seriesId: this.seriesModel.id, rootRect: {x: o.x, y: o.y, width: o.width, height: o.height} }) } }, n.prototype._initEvents = function (t) { var e = this; t.on("click", function (t) { if ("ready" === e._state) { var n = e.seriesModel.get("nodeClick", !0); if (n) { var i = e.findTarget(t.offsetX, t.offsetY); if (i) { var r = i.node; if (r.getLayout().isLeafRoot) e._rootToNode(i); else if ("zoomToNode" === n) e._zoomToNode(i); else if ("link" === n) { var o = r.hostTree.data.getItemModel(r.dataIndex), a = o.get("link", !0), s = o.get("target", !0) || "blank"; a && Al(a, s) } } } } }, this) }, n.prototype._renderBreadcrumb = function (t, e, n) { var i = this; n || (n = null != t.get("leafDepth", !0) ? {node: t.getViewRoot()} : this.findTarget(e.getWidth() / 2, e.getHeight() / 2), n || (n = {node: t.getData().tree.root})), (this._breadcrumb || (this._breadcrumb = new xH(this.group))).render(t, e, n.node, function (e) { "animating" !== i._state && (Bv(t.getViewRoot(), e) ? i._rootToNode({node: e}) : i._zoomToNode({node: e})) }) }, n.prototype.remove = function () { this._clearController(), this._containerGroup && this._containerGroup.removeAll(), this._storage = em(), this._state = "ready", this._breadcrumb && this._breadcrumb.remove() }, n.prototype.dispose = function () { this._clearController() }, n.prototype._zoomToNode = function (t) { this.api.dispatchAction({ type: "treemapZoomToNode", from: this.uid, seriesId: this.seriesModel.id, targetNode: t.node }) }, n.prototype._rootToNode = function (t) { this.api.dispatchAction({ type: "treemapRootToNode", from: this.uid, seriesId: this.seriesModel.id, targetNode: t.node }) }, n.prototype.findTarget = function (t, e) { var n, i = this.seriesModel.getViewRoot(); return i.eachNode({attr: "viewChildren", order: "preorder"}, function (i) { var r = this._storage.background[i.getRawIndex()]; if (r) { var o = r.transformCoordToLocal(t, e), a = r.shape; if (!(a.x <= o[0] && o[0] <= a.x + a.width && a.y <= o[1] && o[1] <= a.y + a.height)) return !1; n = {node: i, offsetX: o[0], offsetY: o[1]} } }, this), n }, n.type = "treemap", n }(Dz), OH = y, RH = D, zH = -1, EH = function () { function t(e) { var n = e.mappingMethod, i = e.type, r = this.option = s(e); this.type = i, this.mappingMethod = n, this._normalizeData = NH[n]; var o = t.visualHandlers[i]; this.applyVisual = o.applyVisual, this.getColorMapper = o.getColorMapper, this._normalizedToVisual = o._normalizedToVisual[n], "piecewise" === n ? (am(r), rm(r)) : "category" === n ? r.categories ? om(r) : am(r, !0) : (H("linear" !== n || r.dataExtent), am(r)) } return t.prototype.mapValueToVisual = function (t) { var e = this._normalizeData(t); return this._normalizedToVisual(e, t) }, t.prototype.getNormalizer = function () { return xA(this._normalizeData, this) }, t.listVisualTypes = function () { return b(t.visualHandlers) }, t.isValidType = function (e) { return t.visualHandlers.hasOwnProperty(e) }, t.eachVisual = function (t, e, n) { D(t) ? y(t, e, n) : e.call(n, t) }, t.mapVisual = function (e, n, i) { var r, o = M(e) ? [] : D(e) ? {} : (r = !0, null); return t.eachVisual(e, function (t, e) { var a = n.call(i, t, e); r ? o = a : o[e] = a }), o }, t.retrieveVisuals = function (e) { var n, i = {}; return e && OH(t.visualHandlers, function (t, r) { e.hasOwnProperty(r) && (i[r] = e[r], n = !0) }), n ? i : null }, t.prepareVisualTypes = function (t) { if (M(t)) t = t.slice(); else { if (!RH(t)) return []; var e = []; OH(t, function (t, n) { e.push(n) }), t = e } return t.sort(function (t, e) { return "color" === e && "color" !== t && 0 === t.indexOf("color") ? 1 : -1 }), t }, t.dependsOn = function (t, e) { return "color" === e ? !(!t || 0 !== t.indexOf(e)) : t === e }, t.findPieceIndex = function (t, e, n) { function i(e, n) { var i = Math.abs(e - t); o > i && (o = i, r = n) } for (var r, o = 1 / 0, a = 0, s = e.length; s > a; a++) { var l = e[a].value; if (null != l) { if (l === t || "string" == typeof l && l === t + "") return a; n && i(l, a) } } for (var a = 0, s = e.length; s > a; a++) { var u = e[a], h = u.interval, c = u.close; if (h) { if (h[0] === -1 / 0) { if (gm(c[1], t, h[1])) return a } else if (1 / 0 === h[1]) { if (gm(c[0], h[0], t)) return a } else if (gm(c[0], h[0], t) && gm(c[1], t, h[1])) return a; n && i(h[0], a), n && i(h[1], a) } } return n ? 1 / 0 === t ? e.length - 1 : t === -1 / 0 ? 0 : r : void 0 }, t.visualHandlers = { color: { applyVisual: um("color"), getColorMapper: function () { var t = this.option; return xA("category" === t.mappingMethod ? function (t, e) { return !e && (t = this._normalizeData(t)), hm.call(this, t) } : function (e, n, i) { var r = !!i; return !n && (e = this._normalizeData(e)), i = cn(e, t.parsedVisual, i), r ? i : gn(i, "rgba") }, this) }, _normalizedToVisual: { linear: function (t) { return gn(cn(t, this.option.parsedVisual), "rgba") }, category: hm, piecewise: function (t, e) { var n = dm.call(this, e); return null == n && (n = gn(cn(t, this.option.parsedVisual), "rgba")), n }, fixed: cm } }, colorHue: sm(function (t, e) { return dn(t, e) }), colorSaturation: sm(function (t, e) { return dn(t, null, e) }), colorLightness: sm(function (t, e) { return dn(t, null, null, e) }), colorAlpha: sm(function (t, e) { return fn(t, e) }), decal: { applyVisual: um("decal"), _normalizedToVisual: {linear: null, category: hm, piecewise: null, fixed: null} }, opacity: {applyVisual: um("opacity"), _normalizedToVisual: pm([0, 1])}, liftZ: { applyVisual: um("liftZ"), _normalizedToVisual: {linear: cm, category: cm, piecewise: cm, fixed: cm} }, symbol: { applyVisual: function (t, e, n) { var i = this.mapValueToVisual(t); n("symbol", i) }, _normalizedToVisual: { linear: lm, category: hm, piecewise: function (t, e) { var n = dm.call(this, e); return null == n && (n = lm.call(this, t)), n }, fixed: cm } }, symbolSize: {applyVisual: um("symbolSize"), _normalizedToVisual: pm([0, 1])} }, t }(), NH = { linear: function (t) { return xi(t, this.option.dataExtent, [0, 1], !0) }, piecewise: function (t) { var e = this.option.pieceList, n = EH.findPieceIndex(t, e, !0); return null != n ? xi(n, [0, e.length - 1], [0, 1], !0) : void 0 }, category: function (t) { var e = this.option.categories ? this.option.categoryMap[t] : t; return null == e ? zH : e }, fixed: K }, BH = "itemStyle", VH = ur(), FH = { seriesType: "treemap", reset: function (t) { var e = t.getData().tree, n = e.root; n.isRemoved() || ym(n, {}, t.getViewRoot().getAncestors(), t) } }, GH = Math.max, HH = Math.min, WH = N, XH = y, YH = ["itemStyle", "borderWidth"], ZH = ["itemStyle", "gapWidth"], UH = ["upperLabel", "show"], jH = ["upperLabel", "height"], qH = { seriesType: "treemap", reset: function (t, e, n, i) { var r = n.getWidth(), o = n.getHeight(), a = t.option, s = kl(t.getBoxLayoutParams(), {width: n.getWidth(), height: n.getHeight()}), l = a.size || [], u = _i(WH(s.width, l[0]), r), c = _i(WH(s.height, l[1]), o), p = i && i.type, d = ["treemapZoomToNode", "treemapRootToNode"], f = Ev(i, d, t), g = "treemapRender" === p || "treemapMove" === p ? i.rootRect : null, y = t.getViewRoot(), v = Nv(y); if ("treemapMove" !== p) { var m = "treemapZoomToNode" === p ? km(t, f, y, u, c) : g ? [g.width, g.height] : [u, c], x = a.sort; x && "asc" !== x && "desc" !== x && (x = "desc"); var _ = {squareRatio: a.squareRatio, sort: x, leafDepth: a.leafDepth}; y.hostTree.clearLayouts(); var b = {x: 0, y: 0, width: m[0], height: m[1], area: m[0] * m[1]}; y.setLayout(b), Mm(y, _, !1, 0), b = y.getLayout(), XH(v, function (t, e) { var n = (v[e + 1] || y).getValue(); t.setLayout(h({dataExtent: [n, n], borderWidth: 0, upperHeight: 0}, b)) }) } var w = t.getData().tree.root; w.setLayout(Pm(s, g, f), !0), t.setLayoutInfo(s), Om(w, new $D(-s.x, -s.y, r, o), v, y, 0) } }; df(zm); var KH = 2, $H = 4, JH = function (t) { function n(e, n, i, r) { var o = t.call(this) || this; o.z2 = KH, o.textConfig = {inside: !0}, tP(o).seriesIndex = n.seriesIndex; var a = new $k({z2: $H, silent: e.getModel().get(["label", "silent"])}); return o.setTextContent(a), o.updateData(!0, e, n, i, r), o } return e(n, t), n.prototype.updateData = function (t, e, n, i, r) { this.node = e, e.piece = this, n = n || this._seriesModel, i = i || this._ecModel; var o = this; tP(o).dataIndex = e.dataIndex; var a = e.getModel(), s = a.getModel("emphasis"), l = e.getLayout(), u = h({}, l); u.label = null; var c = e.getVisual("style"); c.lineJoin = "bevel"; var p = e.getVisual("decal"); p && (c.decal = qc(p, r)); var d = Wg(a.getModel("itemStyle"), u); h(u, d), y(sP, function (t) { var e = o.ensureState(t), n = a.getModel([t, "itemStyle"]); e.style = n.getItemStyle(); var i = Wg(n, u); i && (e.shape = i) }), t ? (o.setShape(u), o.shape.r = l.r0, us(o, {shape: {r: l.r}}, n, e.dataIndex)) : us(o, {shape: u}, n), o.useStyle(c), this._updateLabel(n); var f = a.getShallow("cursor"); f && o.attr("cursor", f), this._seriesModel = n || this._seriesModel, this._ecModel = i || this._ecModel; var g = s.get("focus"), v = "ancestor" === g ? e.getAncestorsIndices() : "descendant" === g ? e.getDescendantIndices() : g; Sa(this, v, s.get("blurScope")) }, n.prototype._updateLabel = function (t) { function e(t, e) { var n = t.get(e); return null == n ? r.get(e) : n } var n = this, i = this.node.getModel(), r = i.getModel("label"), o = this.node.getLayout(), a = o.endAngle - o.startAngle, s = (o.startAngle + o.endAngle) / 2, l = Math.cos(s), u = Math.sin(s), h = this, c = h.getTextContent(), p = this.node.dataIndex, d = r.get("minAngle") / 180 * Math.PI, f = r.get("show") && !(null != d && Math.abs(a) < d); c.ignore = !f, y(lP, function (r) { var a = i.getModel("normal" === r ? "label" : [r, "label"]), d = "normal" === r, f = d ? c : c.ensureState(r), g = t.getFormattedLabel(p, r); d && (g = g || n.node.name), f.style = Os(a, {}, null, "normal" !== r, !0), g && (f.style.text = g); var y = a.get("show"); null == y || d || (f.ignore = !y); var v = e(a, "position"), m = d ? h : h.states[r], x = m.style.fill; m.textConfig = {outsideFill: "inherit" === a.get("color") ? x : null, inside: "outside" !== v}; var _, b = e(a, "distance") || 0, w = e(a, "align"); "outside" === v ? (_ = o.r + b, w = s > Math.PI / 2 ? "right" : "left") : w && "center" !== w ? "left" === w ? (_ = o.r0 + b, s > Math.PI / 2 && (w = "right")) : "right" === w && (_ = o.r - b, s > Math.PI / 2 && (w = "left")) : (_ = (o.r + o.r0) / 2, w = "center"), f.style.align = w, f.style.verticalAlign = e(a, "verticalAlign") || "middle", f.x = _ * l + o.cx, f.y = _ * u + o.cy; var S = e(a, "rotate"), M = 0; "radial" === S ? (M = -s, M < -Math.PI / 2 && (M += Math.PI)) : "tangential" === S ? (M = Math.PI / 2 - s, M > Math.PI / 2 ? M -= Math.PI : M < -Math.PI / 2 && (M += Math.PI)) : "number" == typeof S && (M = S * Math.PI / 180), f.rotation = M }), c.dirtyStyle() }, n }(ZP), QH = "sunburstRootToNode", tW = "sunburstHighlight", eW = "sunburstUnhighlight", nW = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t, e, n) { function i(t, e) { function n(t) { return t.getId() } function i(n, i) { var o = null == n ? null : t[n], a = null == i ? null : e[i]; r(o, a) } (0 !== t.length || 0 !== e.length) && new tV(e, t, n, n).add(i).update(i).remove(S(i, null)).execute() } function r(i, r) { if (p || !i || i.getValue() || (i = null), i !== u && r !== u) if (r && r.piece) i ? (r.piece.updateData(!1, i, t, e, n), l.setItemGraphicEl(i.dataIndex, r.piece)) : o(r); else if (i) { var a = new JH(i, t, e, n); c.add(a), l.setItemGraphicEl(i.dataIndex, a) } } function o(t) { t && t.piece && (c.remove(t.piece), t.piece = null) } function a(i, r) { r.depth > 0 ? (s.virtualPiece ? s.virtualPiece.updateData(!1, i, t, e, n) : (s.virtualPiece = new JH(i, t, e, n), c.add(s.virtualPiece)), r.piece.off("click"), s.virtualPiece.on("click", function () { s._rootToNode(r.parentNode) })) : s.virtualPiece && (c.remove(s.virtualPiece), s.virtualPiece = null) } var s = this; this.seriesModel = t, this.api = n, this.ecModel = e; var l = t.getData(), u = l.tree.root, h = t.getViewRoot(), c = this.group, p = t.get("renderLabelForZeroData"), d = []; h.eachNode(function (t) { d.push(t) }); var f = this._oldChildren || []; i(d, f), a(u, h), this._initEvents(), this._oldChildren = d }, n.prototype._initEvents = function () { var t = this; this.group.off("click"), this.group.on("click", function (e) { var n = !1, i = t.seriesModel.getViewRoot(); i.eachNode(function (i) { if (!n && i.piece && i.piece === e.target) { var r = i.getModel().get("nodeClick"); if ("rootToNode" === r) t._rootToNode(i); else if ("link" === r) { var o = i.getModel(), a = o.get("link"); if (a) { var s = o.get("target", !0) || "_blank"; Al(a, s) } } n = !0 } }) }) }, n.prototype._rootToNode = function (t) { t !== this.seriesModel.getViewRoot() && this.api.dispatchAction({ type: QH, from: this.uid, seriesId: this.seriesModel.id, targetNode: t }) }, n.prototype.containPoint = function (t, e) { var n = e.getData(), i = n.getItemLayout(0); if (i) { var r = t[0] - i.cx, o = t[1] - i.cy, a = Math.sqrt(r * r + o * o); return a <= i.r && a >= i.r0 } }, n.type = "sunburst", n }(Dz), iW = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.ignoreStyleOnData = !0, e } return e(n, t), n.prototype.getInitialData = function (t, e) { function n(t) { t.wrapMethod("getItemModel", function (t, e) { var n = o.getNodeByDataIndex(e), i = r[n.depth]; return i && (t.parentModel = i), t }) } var i = {name: t.name, children: t.data}; Nm(i); var r = v(t.levels || [], function (t) { return new VO(t, this, e) }, this), o = cH.createTree(i, this, n); return o.data }, n.prototype.optionUpdated = function () { this.resetViewRoot() }, n.prototype.getDataParams = function (e) { var n = t.prototype.getDataParams.apply(this, arguments), i = this.getData().tree.getNodeByDataIndex(e); return n.treePathInfo = Vv(i, this), n }, n.prototype.getViewRoot = function () { return this._viewRoot }, n.prototype.resetViewRoot = function (t) { t ? this._viewRoot = t : t = this._viewRoot; var e = this.getRawData().tree.root; (!t || t !== e && !e.contains(t)) && (this._viewRoot = e) }, n.prototype.enableAriaDecal = function () { qv(this) }, n.type = "series.sunburst", n.defaultOption = { zlevel: 0, z: 2, center: ["50%", "50%"], radius: [0, "75%"], clockwise: !0, startAngle: 90, minAngle: 0, stillShowZeroSum: !0, nodeClick: "rootToNode", renderLabelForZeroData: !1, label: { rotate: "radial", show: !0, opacity: 1, align: "center", position: "inside", distance: 5, silent: !0 }, itemStyle: { borderWidth: 1, borderColor: "white", borderType: "solid", shadowBlur: 0, shadowColor: "rgba(0, 0, 0, 0.2)", shadowOffsetX: 0, shadowOffsetY: 0, opacity: 1 }, emphasis: {focus: "descendant"}, blur: {itemStyle: {opacity: .2}, label: {opacity: .1}}, animationType: "expansion", animationDuration: 1e3, animationDurationUpdate: 500, data: [], levels: [], sort: "desc" }, n }(Iz), rW = Math.PI / 180; df(Hm); var oW = eO.prototype, aW = rO.prototype, sW = function () { function t() { this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.percent = 1 } return t }(), lW = (function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n }(sW), function (t) { function n(e) { var n = t.call(this, e) || this; return n.type = "ec-line", n } return e(n, t), n.prototype.getDefaultStyle = function () { return {stroke: "#000", fill: null} }, n.prototype.getDefaultShape = function () { return new sW }, n.prototype.buildPath = function (t, e) { Wm(e) ? oW.buildPath.call(this, t, e) : aW.buildPath.call(this, t, e) }, n.prototype.pointAt = function (t) { return Wm(this.shape) ? oW.pointAt.call(this, t) : aW.pointAt.call(this, t) }, n.prototype.tangentAt = function (t) { var e = this.shape, n = Wm(e) ? [e.x2 - e.x1, e.y2 - e.y1] : aW.tangentAt.call(this, t); return he(n, n) }, n }(Bk)), uW = ["fromSymbol", "toSymbol"], hW = function (t) { function n(e, n, i) { var r = t.call(this) || this; return r._createLine(e, n, i), r } return e(n, t), n.prototype._createLine = function (t, e, n) { var i = t.hostModel, r = t.getItemLayout(e), o = Zm(r); o.shape.percent = 0, hs(o, {shape: {percent: 1}}, i, e), this.add(o), y(uW, function (n) { var i = Ym(n, t, e); this.add(i), this[Xm(n)] = t.getItemVisual(e, n) }, this), this._updateCommonStl(t, e, n) }, n.prototype.updateData = function (t, e, n) { var i = t.hostModel, r = this.childOfName("line"), o = t.getItemLayout(e), a = {shape: {}}; Um(a.shape, o), us(r, a, i, e), y(uW, function (n) { var i = t.getItemVisual(e, n), r = Xm(n); if (this[r] !== i) { this.remove(this.childOfName(n)); var o = Ym(n, t, e); this.add(o) } this[r] = i }, this), this._updateCommonStl(t, e, n) }, n.prototype.getLinePath = function () { return this.childAt(0) }, n.prototype._updateCommonStl = function (t, e, n) { var i = t.hostModel, r = this.childOfName("line"), o = n && n.emphasisLineStyle, a = n && n.blurLineStyle, s = n && n.selectLineStyle, l = n && n.labelStatesModels; if (!n || t.hasItemOption) { var u = t.getItemModel(e); o = u.getModel(["emphasis", "lineStyle"]).getLineStyle(), a = u.getModel(["blur", "lineStyle"]).getLineStyle(), s = u.getModel(["select", "lineStyle"]).getLineStyle(), l = Ps(u) } var h = t.getItemVisual(e, "style"), c = h.stroke; r.useStyle(h), r.style.fill = null, r.style.strokeNoScale = !0, r.ensureState("emphasis").style = o, r.ensureState("blur").style = a, r.ensureState("select").style = s, y(uW, function (t) { var e = this.childOfName(t); if (e) { e.setColor(c), e.style.opacity = h.opacity; for (var n = 0; n < sP.length; n++) { var i = sP[n], o = r.getState(i); if (o) { var a = o.style || {}, s = e.ensureState(i), l = s.style || (s.style = {}); null != a.stroke && (l[e.__isEmptyBrush ? "stroke" : "fill"] = a.stroke), null != a.opacity && (l.opacity = a.opacity) } } e.markRedraw() } }, this); var p = i.getRawValue(e); ks(this, l, { labelDataIndex: e, labelFetcher: { getFormattedLabel: function (e, n) { return i.getFormattedLabel(e, n, t.dataType) } }, inheritColor: c || "#000", defaultOpacity: h.opacity, defaultText: (null == p ? t.getName(e) : isFinite(p) ? bi(p) : p) + "" }); var d = this.getTextContent(); if (d) { var f = l.normal; d.__align = d.style.align, d.__verticalAlign = d.style.verticalAlign, d.__position = f.get("position") || "middle"; var g = f.get("distance"); M(g) || (g = [g, g]), d.__labelDistance = g } this.setTextConfig({position: null, local: !0, inside: !1}), Sa(this) }, n.prototype.highlight = function () { aa(this) }, n.prototype.downplay = function () { sa(this) }, n.prototype.updateLayout = function (t, e) { this.setLinePoints(t.getItemLayout(e)) }, n.prototype.setLinePoints = function (t) { var e = this.childOfName("line"); Um(e.shape, t), e.dirty() }, n.prototype.beforeUpdate = function () { function t(t, e) { var n = t.__specifiedRotation; if (null == n) { var i = s.tangentAt(e); t.attr("rotation", (1 === e ? -1 : 1) * Math.PI / 2 - Math.atan2(i[1], i[0])) } else t.attr("rotation", n) } var e = this, n = e.childOfName("fromSymbol"), i = e.childOfName("toSymbol"), r = e.getTextContent(); if (n || i || r && !r.ignore) { for (var o = 1, a = this.parent; a;) a.scaleX && (o /= a.scaleX), a = a.parent; var s = e.childOfName("line"); if (this.__dirty || s.__dirty) { var l = s.shape.percent, u = s.pointAt(0), h = s.pointAt(l), c = ie([], h, u); if (he(c, c), n && (n.setPosition(u), t(n, 0), n.scaleX = n.scaleY = o * l, n.markRedraw()), i && (i.setPosition(h), t(i, 1), i.scaleX = i.scaleY = o * l, i.markRedraw()), r && !r.ignore) { r.x = r.y = 0, r.originX = r.originY = 0; var p = void 0, d = void 0, f = r.__labelDistance, g = f[0] * o, y = f[1] * o, v = l / 2, m = s.tangentAt(v), x = [m[1], -m[0]], _ = s.pointAt(v); x[1] > 0 && (x[0] = -x[0], x[1] = -x[1]); var b = m[0] < 0 ? -1 : 1; if ("start" !== r.__position && "end" !== r.__position) { var w = -Math.atan2(m[1], m[0]); h[0] < u[0] && (w = Math.PI + w), r.rotation = w } var S = void 0; switch (r.__position) { case"insideStartTop": case"insideMiddleTop": case"insideEndTop": case"middle": S = -y, d = "bottom"; break; case"insideStartBottom": case"insideMiddleBottom": case"insideEndBottom": S = y, d = "top"; break; default: S = 0, d = "middle" } switch (r.__position) { case"end": r.x = c[0] * g + h[0], r.y = c[1] * y + h[1], p = c[0] > .8 ? "left" : c[0] < -.8 ? "right" : "center", d = c[1] > .8 ? "top" : c[1] < -.8 ? "bottom" : "middle"; break; case"start": r.x = -c[0] * g + u[0], r.y = -c[1] * y + u[1], p = c[0] > .8 ? "right" : c[0] < -.8 ? "left" : "center", d = c[1] > .8 ? "bottom" : c[1] < -.8 ? "top" : "middle"; break; case"insideStartTop": case"insideStart": case"insideStartBottom": r.x = g * b + u[0], r.y = u[1] + S, p = m[0] < 0 ? "right" : "left", r.originX = -g * b, r.originY = -S; break; case"insideMiddleTop": case"insideMiddle": case"insideMiddleBottom": case"middle": r.x = _[0], r.y = _[1] + S, p = "center", r.originY = -S; break; case"insideEndTop": case"insideEnd": case"insideEndBottom": r.x = -g * b + h[0], r.y = h[1] + S, p = m[0] >= 0 ? "right" : "left", r.originX = g * b, r.originY = -S } r.scaleX = r.scaleY = o, r.setStyle({ verticalAlign: r.__verticalAlign || d, align: r.__align || p }) } } } }, n }(sL), cW = function () { function t(t) { this.group = new sL, this._LineCtor = t || hW } return t.prototype.isPersistent = function () { return !0 }, t.prototype.updateData = function (t) { var e = this, n = this, i = n.group, r = n._lineData; n._lineData = t, r || i.removeAll(); var o = qm(t); t.diff(r).add(function (n) { e._doAdd(t, n, o) }).update(function (n, i) { e._doUpdate(r, t, i, n, o) }).remove(function (t) { i.remove(r.getItemGraphicEl(t)) }).execute() }, t.prototype.updateLayout = function () { var t = this._lineData; t && t.eachItemGraphicEl(function (e, n) { e.updateLayout(t, n) }, this) }, t.prototype.incrementalPrepareUpdate = function (t) { this._seriesScope = qm(t), this._lineData = null, this.group.removeAll() }, t.prototype.incrementalUpdate = function (t, e) { function n(t) { t.isGroup || jm(t) || (t.incremental = !0, t.ensureState("emphasis").hoverLayer = !0) } for (var i = t.start; i < t.end; i++) { var r = e.getItemLayout(i); if ($m(r)) { var o = new this._LineCtor(e, i, this._seriesScope); o.traverse(n), this.group.add(o), e.setItemGraphicEl(i, o) } } }, t.prototype.remove = function () { this.group.removeAll() }, t.prototype._doAdd = function (t, e, n) { var i = t.getItemLayout(e); if ($m(i)) { var r = new this._LineCtor(t, e, n); t.setItemGraphicEl(e, r), this.group.add(r) } }, t.prototype._doUpdate = function (t, e, n, i, r) { var o = t.getItemGraphicEl(n); return $m(e.getItemLayout(i)) ? (o ? o.updateData(e, i, r) : o = new this._LineCtor(e, i, r), e.setItemGraphicEl(i, o), void this.group.add(o)) : void this.group.remove(o) }, t }(), pW = function (t) { function n(e, n, i) { var r = t.call(this) || this; return r.add(r.createLine(e, n, i)), r._updateEffectSymbol(e, n), r } return e(n, t), n.prototype.createLine = function (t, e, n) { return new hW(t, e, n) }, n.prototype._updateEffectSymbol = function (t, e) { var n = t.getItemModel(e), i = n.getModel("effect"), r = i.get("symbolSize"), o = i.get("symbol"); M(r) || (r = [r, r]); var a = t.getItemVisual(e, "style"), s = i.get("color") || a && a.stroke, l = this.childAt(1); this._symbolType !== o && (this.remove(l), l = Sc(o, -.5, -.5, 1, 1, s), l.z2 = 100, l.culling = !0, this.add(l)), l && (l.setStyle("shadowColor", s), l.setStyle(i.getItemStyle(["color"])), l.scaleX = r[0], l.scaleY = r[1], l.setColor(s), this._symbolType = o, this._symbolScale = r, this._updateEffectAnimation(t, i, e)) }, n.prototype._updateEffectAnimation = function (t, e, n) { var i = this.childAt(1); if (i) { var r = this, o = t.getItemLayout(n), a = 1e3 * e.get("period"), s = e.get("loop"), l = e.get("constantSpeed"), u = N(e.get("delay"), function (e) { return e / t.count() * a / 3 }); if (i.ignore = !0, this._updateAnimationPoints(i, o), l > 0 && (a = this._getLineLength(i) / l * 1e3), (a !== this._period || s !== this._loop) && (i.stopAnimation(), a > 0)) { var h = void 0; h = "function" == typeof u ? u(n) : u, i.__t > 0 && (h = -a * i.__t), i.__t = 0; var c = i.animate("", s).when(a, {__t: 1}).delay(h).during(function () { r._updateSymbolPosition(i) }); s || c.done(function () { r.remove(i) }), c.start() } this._period = a, this._loop = s } }, n.prototype._getLineLength = function (t) { return IA(t.__p1, t.__cp1) + IA(t.__cp1, t.__p2) }, n.prototype._updateAnimationPoints = function (t, e) { t.__p1 = e[0], t.__p2 = e[1], t.__cp1 = e[2] || [(e[0][0] + e[1][0]) / 2, (e[0][1] + e[1][1]) / 2] }, n.prototype.updateData = function (t, e, n) { this.childAt(0).updateData(t, e, n), this._updateEffectSymbol(t, e) }, n.prototype._updateSymbolPosition = function (t) { var e = t.__p1, n = t.__p2, i = t.__cp1, r = t.__t, o = [t.x, t.y], a = o.slice(), s = Qr, l = to; o[0] = s(e[0], i[0], n[0], r), o[1] = s(e[1], i[1], n[1], r); var u = l(e[0], i[0], n[0], r), h = l(e[1], i[1], n[1], r); t.rotation = -Math.atan2(h, u) - Math.PI / 2, ("line" === this._symbolType || "rect" === this._symbolType || "roundRect" === this._symbolType) && (void 0 !== t.__lastT && t.__lastT < t.__t ? (t.scaleY = 1.05 * IA(a, o), 1 === r && (o[0] = a[0] + (o[0] - a[0]) / 2, o[1] = a[1] + (o[1] - a[1]) / 2)) : t.scaleY = 1 === t.__lastT ? 2 * IA(e, o) : this._symbolScale[1]), t.__lastT = t.__t, t.ignore = !1, t.x = o[0], t.y = o[1] }, n.prototype.updateLayout = function (t, e) { this.childAt(0).updateLayout(t, e); var n = t.getItemModel(e).getModel("effect"); this._updateEffectAnimation(t, n, e) }, n }(sL), dW = function (t) { function n(e, n, i) { var r = t.call(this) || this; return r._createPolyline(e, n, i), r } return e(n, t), n.prototype._createPolyline = function (t, e, n) { var i = t.getItemLayout(e), r = new JP({shape: {points: i}}); this.add(r), this._updateCommonStl(t, e, n) }, n.prototype.updateData = function (t, e, n) { var i = t.hostModel, r = this.childAt(0), o = {shape: {points: t.getItemLayout(e)}}; us(r, o, i, e), this._updateCommonStl(t, e, n) }, n.prototype._updateCommonStl = function (t, e, n) { var i = this.childAt(0), r = t.getItemModel(e), o = n && n.emphasisLineStyle; (!n || t.hasItemOption) && (o = r.getModel(["emphasis", "lineStyle"]).getLineStyle()), i.useStyle(t.getItemVisual(e, "style")), i.style.fill = null, i.style.strokeNoScale = !0; var a = i.ensureState("emphasis"); a.style = o, Sa(this) }, n.prototype.updateLayout = function (t, e) { var n = this.childAt(0); n.setShape("points", t.getItemLayout(e)) }, n }(sL), fW = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e._lastFrame = 0, e._lastFramePercent = 0, e } return e(n, t), n.prototype.createLine = function (t, e, n) { return new dW(t, e, n) }, n.prototype._updateAnimationPoints = function (t, e) { this._points = e; for (var n = [0], i = 0, r = 1; r < e.length; r++) { var o = e[r - 1], a = e[r]; i += IA(o, a), n.push(i) } if (0 === i) return void (this._length = 0); for (var r = 0; r < n.length; r++) n[r] /= i; this._offsets = n, this._length = i }, n.prototype._getLineLength = function () { return this._length }, n.prototype._updateSymbolPosition = function (t) { var e = t.__t, n = this._points, i = this._offsets, r = n.length; if (i) { var o, a = this._lastFrame; if (e < this._lastFramePercent) { var s = Math.min(a + 1, r - 1); for (o = s; o >= 0 && !(i[o] <= e); o--) ; o = Math.min(o, r - 2) } else { for (o = a; r > o && !(i[o] > e); o++) ; o = Math.min(o - 1, r - 2) } var l = (e - i[o]) / (i[o + 1] - i[o]), u = n[o], h = n[o + 1]; t.x = u[0] * (1 - l) + l * h[0], t.y = u[1] * (1 - l) + l * h[1]; var c = h[0] - u[0], p = h[1] - u[1]; t.rotation = -Math.atan2(p, c) - Math.PI / 2, this._lastFrame = o, this._lastFramePercent = e, t.ignore = !1 } }, n }(pW), gW = function () { function t() { this.polyline = !1, this.curveness = 0, this.segs = [] } return t }(), yW = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultStyle = function () { return {stroke: "#000", fill: null} }, n.prototype.getDefaultShape = function () { return new gW }, n.prototype.buildPath = function (t, e) { var n = e.segs, i = e.curveness; if (e.polyline) for (var r = 0; r < n.length;) { var o = n[r++]; if (o > 0) { t.moveTo(n[r++], n[r++]); for (var a = 1; o > a; a++) t.lineTo(n[r++], n[r++]) } } else for (var r = 0; r < n.length;) { var s = n[r++], l = n[r++], u = n[r++], h = n[r++]; if (t.moveTo(s, l), i > 0) { var c = (s + u) / 2 - (l - h) * i, p = (l + h) / 2 - (u - s) * i; t.quadraticCurveTo(c, p, u, h) } else t.lineTo(u, h) } }, n.prototype.findDataIndex = function (t, e) { var n = this.shape, i = n.segs, r = n.curveness, o = this.style.lineWidth; if (n.polyline) for (var a = 0, s = 0; s < i.length;) { var l = i[s++]; if (l > 0) for (var u = i[s++], h = i[s++], c = 1; l > c; c++) { var p = i[s++], d = i[s++]; if (fo(u, h, p, d, o, t, e)) return a } a++ } else for (var a = 0, s = 0; s < i.length;) { var u = i[s++], h = i[s++], p = i[s++], d = i[s++]; if (r > 0) { var f = (u + p) / 2 - (h - d) * r, g = (h + d) / 2 - (p - u) * r; if (yo(u, h, f, g, p, d, o, t, e)) return a } else if (fo(u, h, p, d, o, t, e)) return a; a++ } return -1 }, n }(Bk), vW = function () { function t() { this.group = new sL } return t.prototype.isPersistent = function () { return !this._incremental }, t.prototype.updateData = function (t) { this.group.removeAll(); var e = new yW({rectHover: !0, cursor: "default"}); e.setShape({segs: t.getLayout("linesPoints")}), this._setCommon(e, t), this.group.add(e), this._incremental = null }, t.prototype.incrementalPrepareUpdate = function (t) { this.group.removeAll(), this._clearIncremental(), t.count() > 5e5 ? (this._incremental || (this._incremental = new vO({silent: !0})), this.group.add(this._incremental)) : this._incremental = null }, t.prototype.incrementalUpdate = function (t, e) { var n = new yW; n.setShape({segs: e.getLayout("linesPoints")}), this._setCommon(n, e, !!this._incremental), this._incremental ? this._incremental.addDisplayable(n, !0) : (n.rectHover = !0, n.cursor = "default", n.__startIndex = t.start, this.group.add(n)) }, t.prototype.remove = function () { this._clearIncremental(), this._incremental = null, this.group.removeAll() }, t.prototype._setCommon = function (t, e, n) { var i = e.hostModel; t.setShape({ polyline: i.get("polyline"), curveness: i.get(["lineStyle", "curveness"]) }), t.useStyle(i.getModel("lineStyle").getLineStyle()), t.style.strokeNoScale = !0; var r = e.getVisual("style"); if (r && r.stroke && t.setStyle("stroke", r.stroke), t.setStyle("fill", null), !n) { var o = tP(t); o.seriesIndex = i.seriesIndex, t.on("mousemove", function (e) { o.dataIndex = null; var n = t.findDataIndex(e.offsetX, e.offsetY); n > 0 && (o.dataIndex = n + t.__startIndex) }) } }, t.prototype._clearIncremental = function () { var t = this._incremental; t && t.clearDisplaybles() }, t }(), mW = { seriesType: "lines", plan: Ch(), reset: function (t) { var e = t.coordinateSystem, n = t.get("polyline"), i = t.pipelineContext.large; return { progress: function (r, o) { var a = []; if (i) { var s = void 0, l = r.end - r.start; if (n) { for (var u = 0, h = r.start; h < r.end; h++) u += t.getLineCoordsCount(h); s = new Float32Array(l + 2 * u) } else s = new Float32Array(4 * l); for (var c = 0, p = [], h = r.start; h < r.end; h++) { var d = t.getLineCoords(h, a); n && (s[c++] = d); for (var f = 0; d > f; f++) p = e.dataToPoint(a[f], !1, p), s[c++] = p[0], s[c++] = p[1] } o.setLayout("linesPoints", s) } else for (var h = r.start; h < r.end; h++) { var g = o.getItemModel(h), d = t.getLineCoords(h, a), y = []; if (n) for (var v = 0; d > v; v++) y.push(e.dataToPoint(a[v])); else { y[0] = e.dataToPoint(a[0]), y[1] = e.dataToPoint(a[1]); var m = g.get(["lineStyle", "curveness"]); +m && (y[2] = [(y[0][0] + y[1][0]) / 2 - (y[0][1] - y[1][1]) * m, (y[0][1] + y[1][1]) / 2 - (y[1][0] - y[0][0]) * m]) } o.setItemLayout(h, y) } } } } }, xW = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t, e, n) { var i = t.getData(), r = this._updateLineDraw(i, t), o = t.get("zlevel"), a = t.get(["effect", "trailLength"]), s = n.getZr(), l = "svg" === s.painter.getType(); l || s.painter.getLayer(o).clear(!0), null == this._lastZlevel || l || s.configLayer(this._lastZlevel, {motionBlur: !1}), this._showEffect(t) && a && (l || s.configLayer(o, { motionBlur: !0, lastFrameAlpha: Math.max(Math.min(a / 10 + .9, 1), 0) })), r.updateData(i); var u = t.get("clip", !0) && Xf(t.coordinateSystem, !1, t); u ? this.group.setClipPath(u) : this.group.removeClipPath(), this._lastZlevel = o, this._finished = !0 }, n.prototype.incrementalPrepareRender = function (t, e, n) { var i = t.getData(), r = this._updateLineDraw(i, t); r.incrementalPrepareUpdate(i), this._clearLayer(n), this._finished = !1 }, n.prototype.incrementalRender = function (t, e) { this._lineDraw.incrementalUpdate(t, e.getData()), this._finished = t.end === e.getData().count() }, n.prototype.updateTransform = function (t, e, n) { var i = t.getData(), r = t.pipelineContext; if (!this._finished || r.large || r.progressiveRender) return {update: !0}; var o = mW.reset(t, e, n); o.progress && o.progress({ start: 0, end: i.count(), count: i.count() }, i), this._lineDraw.updateLayout(), this._clearLayer(n) }, n.prototype._updateLineDraw = function (t, e) { var n = this._lineDraw, i = this._showEffect(e), r = !!e.get("polyline"), o = e.pipelineContext, a = o.large; return n && i === this._hasEffet && r === this._isPolyline && a === this._isLargeDraw || (n && n.remove(), n = this._lineDraw = a ? new vW : new cW(r ? i ? fW : dW : i ? pW : hW), this._hasEffet = i, this._isPolyline = r, this._isLargeDraw = a, this.group.removeAll()), this.group.add(n.group), n }, n.prototype._showEffect = function (t) { return !!t.get(["effect", "show"]) }, n.prototype._clearLayer = function (t) { var e = t.getZr(), n = "svg" === e.painter.getType(); n || null == this._lastZlevel || e.painter.getLayer(this._lastZlevel).clear(!0) }, n.prototype.remove = function (t, e) { this._lineDraw && this._lineDraw.remove(), this._lineDraw = null, this._clearLayer(e) }, n.type = "lines", n }(Dz), _W = "undefined" == typeof Uint32Array ? Array : Uint32Array, bW = "undefined" == typeof Float64Array ? Array : Float64Array, wW = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.visualStyleAccessPath = "lineStyle", e.visualDrawType = "stroke", e } return e(n, t), n.prototype.init = function (e) { e.data = e.data || [], Jm(e); var n = this._processFlatCoordsArray(e.data); this._flatCoords = n.flatCoords, this._flatCoordsOffset = n.flatCoordsOffset, n.flatCoords && (e.data = new Float32Array(n.count)), t.prototype.init.apply(this, arguments) }, n.prototype.mergeOption = function (e) { if (Jm(e), e.data) { var n = this._processFlatCoordsArray(e.data); this._flatCoords = n.flatCoords, this._flatCoordsOffset = n.flatCoordsOffset, n.flatCoords && (e.data = new Float32Array(n.count)) } t.prototype.mergeOption.apply(this, arguments) }, n.prototype.appendData = function (t) { var e = this._processFlatCoordsArray(t.data); e.flatCoords && (this._flatCoords ? (this._flatCoords = U(this._flatCoords, e.flatCoords), this._flatCoordsOffset = U(this._flatCoordsOffset, e.flatCoordsOffset)) : (this._flatCoords = e.flatCoords, this._flatCoordsOffset = e.flatCoordsOffset), t.data = new Float32Array(e.count)), this.getRawData().appendData(t.data) }, n.prototype._getCoordsFromItemModel = function (t) { var e = this.getData().getItemModel(t), n = e.option instanceof Array ? e.option : e.getShallow("coords"); return n }, n.prototype.getLineCoordsCount = function (t) { return this._flatCoordsOffset ? this._flatCoordsOffset[2 * t + 1] : this._getCoordsFromItemModel(t).length }, n.prototype.getLineCoords = function (t, e) { if (this._flatCoordsOffset) { for (var n = this._flatCoordsOffset[2 * t], i = this._flatCoordsOffset[2 * t + 1], r = 0; i > r; r++) e[r] = e[r] || [], e[r][0] = this._flatCoords[n + 2 * r], e[r][1] = this._flatCoords[n + 2 * r + 1]; return i } for (var o = this._getCoordsFromItemModel(t), r = 0; r < o.length; r++) e[r] = e[r] || [], e[r][0] = o[r][0], e[r][1] = o[r][1]; return o.length }, n.prototype._processFlatCoordsArray = function (t) { var e = 0; if (this._flatCoords && (e = this._flatCoords.length), "number" == typeof t[0]) { for (var n = t.length, i = new _W(n), r = new bW(n), o = 0, a = 0, s = 0, l = 0; n > l;) { s++; var u = t[l++]; i[a++] = o + e, i[a++] = u; for (var h = 0; u > h; h++) { var c = t[l++], p = t[l++]; r[o++] = c, r[o++] = p } } return {flatCoordsOffset: new Uint32Array(i.buffer, 0, a), flatCoords: r, count: s} } return {flatCoordsOffset: null, flatCoords: null, count: t.length} }, n.prototype.getInitialData = function (t) { var e = new fV(["value"], this); return e.hasItemOption = !1, e.initData(t.data, [], function (t, n, i, r) { if (t instanceof Array) return 0 / 0; e.hasItemOption = !0; var o = t.value; return null != o ? o instanceof Array ? o[r] : o : void 0 }), e }, n.prototype.formatTooltip = function (t) { var e = this.getData(), n = e.getItemModel(t), i = n.get("name"); if (i) return i; var r = n.get("fromName"), o = n.get("toName"), a = []; return null != r && a.push(r), null != o && a.push(o), rh("nameValue", {name: a.join(" > ")}) }, n.prototype.preventIncremental = function () { return !!this.get(["effect", "show"]) }, n.prototype.getProgressive = function () { var t = this.option.progressive; return null == t ? this.option.large ? 1e4 : this.get("progressive") : t }, n.prototype.getProgressiveThreshold = function () { var t = this.option.progressiveThreshold; return null == t ? this.option.large ? 2e4 : this.get("progressiveThreshold") : t }, n.type = "series.lines", n.dependencies = ["grid", "polar", "geo", "calendar"], n.defaultOption = { coordinateSystem: "geo", zlevel: 0, z: 2, legendHoverLink: !0, xAxisIndex: 0, yAxisIndex: 0, symbol: ["none", "none"], symbolSize: [10, 10], geoIndex: 0, effect: {show: !1, period: 4, constantSpeed: 0, symbol: "circle", symbolSize: 3, loop: !0, trailLength: .2}, large: !1, largeThreshold: 2e3, polyline: !1, clip: !0, label: {show: !1, position: "end"}, lineStyle: {opacity: .5} }, n }(Iz), SW = { seriesType: "lines", reset: function (t) { function e(t, e) { var n = t.getItemModel(e), i = Qm(n.getShallow("symbol", !0)), r = Qm(n.getShallow("symbolSize", !0)); i[0] && t.setItemVisual(e, "fromSymbol", i[0]), i[1] && t.setItemVisual(e, "toSymbol", i[1]), r[0] && t.setItemVisual(e, "fromSymbolSize", r[0]), r[1] && t.setItemVisual(e, "toSymbolSize", r[1]) } var n = Qm(t.get("symbol")), i = Qm(t.get("symbolSize")), r = t.getData(); return r.setVisual("fromSymbol", n && n[0]), r.setVisual("toSymbol", n && n[1]), r.setVisual("fromSymbolSize", i && i[0]), r.setVisual("toSymbolSize", i && i[1]), {dataEach: r.hasItemOption ? e : null} } }; df(tx); var MW = "-->", IW = function (t) { return t.get("autoCurveness") || null }, TW = function (t, e) { var n = IW(t), i = 20, r = []; if ("number" == typeof n) i = n; else if (M(n)) return void (t.__curvenessList = n); e > i && (i = e); var o = i % 2 ? i + 2 : i + 3; r = []; for (var a = 0; o > a; a++) r.push((a % 2 ? a + 1 : a) / 10 * (a % 2 ? -1 : 1)); t.__curvenessList = r }, CW = function (t, e, n) { var i = [t.id, t.dataIndex].join("."), r = [e.id, e.dataIndex].join("."); return [n.uid, i, r].join(MW) }, AW = function (t) { var e = t.split(MW); return [e[0], e[2], e[1]].join(MW) }, DW = function (t, e) { var n = CW(t.node1, t.node2, e); return e.__edgeMap[n] }, LW = function (t, e) { var n = kW(CW(t.node1, t.node2, e), e), i = kW(CW(t.node2, t.node1, e), e); return n + i }, kW = function (t, e) { var n = e.__edgeMap; return n[t] ? n[t].length : 0 }, PW = Math.PI, OW = [], RW = { value: function (t, e, n, i, r, o, a) { var s = 0, l = n.getSum("value"), u = 2 * Math.PI / (l || a); e.eachNode(function (t) { var e = t.getValue("value"), n = u * (l ? e : 1) / 2; s += n, t.setLayout([i * Math.cos(s) + r, i * Math.sin(s) + o]), s += n }) }, symbolSize: function (t, e, n, i, r, o, a) { var s = 0; OW.length = a; var l = cx(t); e.eachNode(function (t) { var e = px(t); isNaN(e) && (e = 2), 0 > e && (e = 0), e *= l; var n = Math.asin(e / 2 / i); isNaN(n) && (n = PW / 2), OW[t.dataIndex] = n, s += 2 * n }); var u = (2 * PW - s) / a / 2, h = 0; e.eachNode(function (t) { var e = u + OW[t.dataIndex]; h += e, t.setLayout([i * Math.cos(h) + r, i * Math.sin(h) + o]), h += e }) } }, zW = ne, EW = [], NW = [], BW = [], VW = Qr, FW = TA, GW = Math.abs, HW = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.init = function (t, e) { var n = new CF, i = new cW, r = this.group; this._controller = new rH(e.getZr()), this._controllerHost = {target: r}, r.add(n.group), r.add(i.group), this._symbolDraw = n, this._lineDraw = i, this._firstRender = !0 }, n.prototype.render = function (t, e, n) { var i = this, r = t.coordinateSystem; this._model = t; var o = this._symbolDraw, a = this._lineDraw, s = this.group; if (bx(r)) { var l = {x: r.x, y: r.y, scaleX: r.scaleX, scaleY: r.scaleY}; this._firstRender ? s.attr(l) : us(s, l, t) } _x(t.getGraph(), cx(t)); var u = t.getData(); o.updateData(u); var c = t.getEdgeData(); a.updateData(c), this._updateNodeAndLinkScale(), this._updateController(t, e, n), clearTimeout(this._layoutTimeout); var p = t.forceLayout, d = t.get(["force", "layoutAnimation"]); p && this._startForceLayoutIteration(p, d), u.graph.eachNode(function (t) { var e = t.dataIndex, n = t.getGraphicEl(), r = t.getModel(); n.off("drag").off("dragend"); var o = r.get("draggable"); o && n.on("drag", function () { p && (p.warmUp(), !i._layouting && i._startForceLayoutIteration(p, d), p.setFixed(e), u.setItemLayout(e, [n.x, n.y])) }).on("dragend", function () { p && p.setUnfixed(e) }), n.setDraggable(o && !!p); var a = r.get(["emphasis", "focus"]); "adjacency" === a && (tP(n).focus = t.getAdjacentDataIndices()) }), u.graph.eachEdge(function (t) { var e = t.getGraphicEl(), n = t.getModel().get(["emphasis", "focus"]); "adjacency" === n && (tP(e).focus = {edge: [t.dataIndex], node: [t.node1.dataIndex, t.node2.dataIndex]}) }); var f = "circular" === t.get("layout") && t.get(["circular", "rotateLabel"]), g = u.getLayout("cx"), y = u.getLayout("cy"); u.eachItemGraphicEl(function (t, e) { var n = u.getItemModel(e), i = n.get(["label", "rotate"]) || 0, r = t.getSymbolPath(); if (f) { var o = u.getItemLayout(e), a = Math.atan2(o[1] - y, o[0] - g); 0 > a && (a = 2 * Math.PI + a); var s = o[0] < g; s && (a -= Math.PI); var l = s ? "left" : "right"; r.setTextConfig({rotation: -a, position: l, origin: "center"}); var c = r.ensureState("emphasis"); h(c.textConfig || (c.textConfig = {}), {position: l}) } else r.setTextConfig({rotation: i *= Math.PI / 180}) }), this._firstRender = !1 }, n.prototype.dispose = function () { this._controller && this._controller.dispose(), this._controllerHost = null }, n.prototype._startForceLayoutIteration = function (t, e) { var n = this; !function i() { t.step(function (t) { n.updateLayout(n._model), (n._layouting = !t) && (e ? n._layoutTimeout = setTimeout(i, 16) : i()) }) }() }, n.prototype._updateController = function (t, e, n) { var i = this, r = this._controller, o = this._controllerHost, a = this.group; return r.setPointerChecker(function (e, i, r) { var o = a.getBoundingRect(); return o.applyTransform(a.transform), o.contain(i, r) && !_v(e, n, t) }), bx(t.coordinateSystem) ? (r.enable(t.get("roam")), o.zoomLimit = t.get("scaleLimit"), o.zoom = t.coordinateSystem.getZoom(), void r.off("pan").off("zoom").on("pan", function (e) { cv(o, e.dx, e.dy), n.dispatchAction({seriesId: t.id, type: "graphRoam", dx: e.dx, dy: e.dy}) }).on("zoom", function (e) { pv(o, e.scale, e.originX, e.originY), n.dispatchAction({ seriesId: t.id, type: "graphRoam", zoom: e.scale, originX: e.originX, originY: e.originY }), i._updateNodeAndLinkScale(), _x(t.getGraph(), cx(t)), i._lineDraw.updateLayout(), n.updateLabelLayout() })) : void r.disable() }, n.prototype._updateNodeAndLinkScale = function () { var t = this._model, e = t.getData(), n = cx(t); e.eachItemGraphicEl(function (t) { t.setSymbolScale(n) }) }, n.prototype.updateLayout = function (t) { _x(t.getGraph(), cx(t)), this._symbolDraw.updateLayout(), this._lineDraw.updateLayout() }, n.prototype.remove = function () { this._symbolDraw && this._symbolDraw.remove(), this._lineDraw && this._lineDraw.remove() }, n.type = "graph", n }(Dz), WW = function () { function t(t) { this.type = "graph", this.nodes = [], this.edges = [], this._nodesMap = {}, this._edgesMap = {}, this._directed = t || !1 } return t.prototype.isDirected = function () { return this._directed }, t.prototype.addNode = function (t, e) { t = null == t ? "" + e : "" + t; var n = this._nodesMap; if (!n[Sx(t)]) { var i = new XW(t, e); return i.hostGraph = this, this.nodes.push(i), n[Sx(t)] = i, i } }, t.prototype.getNodeByIndex = function (t) { var e = this.data.getRawIndex(t); return this.nodes[e] }, t.prototype.getNodeById = function (t) { return this._nodesMap[Sx(t)] }, t.prototype.addEdge = function (t, e, n) { var i = this._nodesMap, r = this._edgesMap; if ("number" == typeof t && (t = this.nodes[t]), "number" == typeof e && (e = this.nodes[e]), t instanceof XW || (t = i[Sx(t)]), e instanceof XW || (e = i[Sx(e)]), t && e) { var o = t.id + "-" + e.id, a = new YW(t, e, n); return a.hostGraph = this, this._directed && (t.outEdges.push(a), e.inEdges.push(a)), t.edges.push(a), t !== e && e.edges.push(a), this.edges.push(a), r[o] = a, a } }, t.prototype.getEdgeByIndex = function (t) { var e = this.edgeData.getRawIndex(t); return this.edges[e] }, t.prototype.getEdge = function (t, e) { t instanceof XW && (t = t.id), e instanceof XW && (e = e.id); var n = this._edgesMap; return this._directed ? n[t + "-" + e] : n[t + "-" + e] || n[e + "-" + t] }, t.prototype.eachNode = function (t, e) { for (var n = this.nodes, i = n.length, r = 0; i > r; r++) n[r].dataIndex >= 0 && t.call(e, n[r], r) }, t.prototype.eachEdge = function (t, e) { for (var n = this.edges, i = n.length, r = 0; i > r; r++) n[r].dataIndex >= 0 && n[r].node1.dataIndex >= 0 && n[r].node2.dataIndex >= 0 && t.call(e, n[r], r) }, t.prototype.breadthFirstTraverse = function (t, e, n, i) { if (e instanceof XW || (e = this._nodesMap[Sx(e)]), e) { for (var r = "out" === n ? "outEdges" : "in" === n ? "inEdges" : "edges", o = 0; o < this.nodes.length; o++) this.nodes[o].__visited = !1; if (!t.call(i, e, null)) for (var a = [e]; a.length;) for (var s = a.shift(), l = s[r], o = 0; o < l.length; o++) { var u = l[o], h = u.node1 === s ? u.node2 : u.node1; if (!h.__visited) { if (t.call(i, h, s)) return; a.push(h), h.__visited = !0 } } } }, t.prototype.update = function () { for (var t = this.data, e = this.edgeData, n = this.nodes, i = this.edges, r = 0, o = n.length; o > r; r++) n[r].dataIndex = -1; for (var r = 0, o = t.count(); o > r; r++) n[t.getRawIndex(r)].dataIndex = r; e.filterSelf(function (t) { var n = i[e.getRawIndex(t)]; return n.node1.dataIndex >= 0 && n.node2.dataIndex >= 0 }); for (var r = 0, o = i.length; o > r; r++) i[r].dataIndex = -1; for (var r = 0, o = e.count(); o > r; r++) i[e.getRawIndex(r)].dataIndex = r }, t.prototype.clone = function () { for (var e = new t(this._directed), n = this.nodes, i = this.edges, r = 0; r < n.length; r++) e.addNode(n[r].id, n[r].dataIndex); for (var r = 0; r < i.length; r++) { var o = i[r]; e.addEdge(o.node1.id, o.node2.id, o.dataIndex) } return e }, t }(), XW = function () { function t(t, e) { this.inEdges = [], this.outEdges = [], this.edges = [], this.dataIndex = -1, this.id = null == t ? "" : t, this.dataIndex = null == e ? -1 : e } return t.prototype.degree = function () { return this.edges.length }, t.prototype.inDegree = function () { return this.inEdges.length }, t.prototype.outDegree = function () { return this.outEdges.length }, t.prototype.getModel = function (t) { if (!(this.dataIndex < 0)) { var e = this.hostGraph, n = e.data.getItemModel(this.dataIndex); return n.getModel(t) } }, t.prototype.getAdjacentDataIndices = function () { for (var t = {edge: [], node: []}, e = 0; e < this.edges.length; e++) { var n = this.edges[e]; n.dataIndex < 0 || (t.edge.push(n.dataIndex), t.node.push(n.node1.dataIndex, n.node2.dataIndex)) } return t }, t }(), YW = function () { function t(t, e, n) { this.dataIndex = -1, this.node1 = t, this.node2 = e, this.dataIndex = null == n ? -1 : n } return t.prototype.getModel = function (t) { if (!(this.dataIndex < 0)) { var e = this.hostGraph, n = e.edgeData.getItemModel(this.dataIndex); return n.getModel(t) } }, t.prototype.getAdjacentDataIndices = function () { return {edge: [this.dataIndex], node: [this.node1.dataIndex, this.node2.dataIndex]} }, t }(); f(XW, Mx("hostGraph", "data")), f(YW, Mx("hostGraph", "edgeData")); var ZW = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.hasSymbolVisual = !0, e } return e(n, t), n.prototype.init = function (e) { function n() { return i._categoriesData } t.prototype.init.apply(this, arguments); var i = this; this.legendVisualProvider = new HF(n, n), this.fillDataTextStyle(e.edges || e.links), this._updateCategoriesData() }, n.prototype.mergeOption = function (e) { t.prototype.mergeOption.apply(this, arguments), this.fillDataTextStyle(e.edges || e.links), this._updateCategoriesData() }, n.prototype.mergeDefaultAndTheme = function (e) { t.prototype.mergeDefaultAndTheme.apply(this, arguments), Wi(e, "edgeLabel", ["show"]) }, n.prototype.getInitialData = function (t) { function e(t, e) { function n(t, e) { var n = o.call(this, t, e); return n.resolveParentPath = i, n } function i(t) { if (t && ("label" === t[0] || "label" === t[1])) { var e = t.slice(); return "label" === t[0] ? e[0] = "edgeLabel" : "label" === t[1] && (e[1] = "edgeLabel"), e } return t } t.wrapMethod("getItemModel", function (t) { var e = r._categoriesModels, n = t.getShallow("category"), i = e[n]; return i && (i.parentModel = t.parentModel, t.parentModel = i), t }); var o = VO.prototype.getModel; e.wrapMethod("getItemModel", function (t) { return t.resolveParentPath = i, t.getModel = n, t }) } var n = t.edges || t.links || [], i = t.data || t.nodes || [], r = this; if (i && n) { ox(this); var o = Ix(i, n, this, !0, e); return y(o.edges, function (t) { ax(t.node1, t.node2, this, t.dataIndex) }, this), o.data } }, n.prototype.getGraph = function () { return this.getData().graph }, n.prototype.getEdgeData = function () { return this.getGraph().edgeData }, n.prototype.getCategoriesData = function () { return this._categoriesData }, n.prototype.formatTooltip = function (t, e, n) { if ("edge" === n) { var i = this.getData(), r = this.getDataParams(t, n), o = i.graph.getEdgeByIndex(t), a = i.getName(o.node1.dataIndex), s = i.getName(o.node2.dataIndex), l = []; return null != a && l.push(a), null != s && l.push(s), rh("nameValue", { name: l.join(" > "), value: r.value, noValue: null == r.value }) } var u = yh({series: this, dataIndex: t, multipleSeries: e}); return u }, n.prototype._updateCategoriesData = function () { var t = v(this.option.categories || [], function (t) { return null != t.value ? t : h({value: 0}, t) }), e = new fV(["value"], this); e.initData(t), this._categoriesData = e, this._categoriesModels = e.mapArray(function (t) { return e.getItemModel(t) }) }, n.prototype.setZoom = function (t) { this.option.zoom = t }, n.prototype.setCenter = function (t) { this.option.center = t }, n.prototype.isAnimationEnabled = function () { return t.prototype.isAnimationEnabled.call(this) && !("force" === this.get("layout") && this.get(["force", "layoutAnimation"])) }, n.type = "series.graph", n.dependencies = ["grid", "polar", "geo", "singleAxis", "calendar"], n.defaultOption = { zlevel: 0, z: 2, coordinateSystem: "view", legendHoverLink: !0, layout: null, circular: {rotateLabel: !1}, force: { initLayout: null, repulsion: [0, 50], gravity: .1, friction: .6, edgeLength: 30, layoutAnimation: !0 }, left: "center", top: "center", symbol: "circle", symbolSize: 10, edgeSymbol: ["none", "none"], edgeSymbolSize: 10, edgeLabel: {position: "middle", distance: 5}, draggable: !1, roam: !1, center: null, zoom: 1, nodeScaleRatio: .6, label: {show: !1, formatter: "{b}"}, itemStyle: {}, lineStyle: {color: "#aaa", width: 1, opacity: .5}, emphasis: {scale: !0, label: {show: !0}}, select: {itemStyle: {borderColor: "#212121"}} }, n }(Iz), UW = {type: "graphRoam", event: "graphRoam", update: "none"}; df(Tx); var jW = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.defaultValueDimensions = [{name: "min", defaultTooltip: !0}, { name: "Q1", defaultTooltip: !0 }, {name: "median", defaultTooltip: !0}, {name: "Q3", defaultTooltip: !0}, { name: "max", defaultTooltip: !0 }], e.visualDrawType = "stroke", e } return e(n, t), n.type = "series.boxplot", n.dependencies = ["xAxis", "yAxis", "grid"], n.defaultOption = { zlevel: 0, z: 2, coordinateSystem: "cartesian2d", legendHoverLink: !0, layout: null, boxWidth: [7, 50], itemStyle: {color: "#fff", borderWidth: 1}, emphasis: { scale: !0, itemStyle: { borderWidth: 2, shadowBlur: 5, shadowOffsetX: 1, shadowOffsetY: 1, shadowColor: "rgba(0,0,0,0.2)" } }, animationDuration: 800 }, n }(Iz); f(jW, RG, !0); var qW = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t) { var e = t.getData(), n = this.group, i = this._data; this._data || n.removeAll(); var r = "horizontal" === t.get("layout") ? 1 : 0; e.diff(i).add(function (t) { if (e.hasValue(t)) { var i = e.getItemLayout(t), o = Cx(i, e, t, r, !0); e.setItemGraphicEl(t, o), n.add(o) } }).update(function (t, o) { var a = i.getItemGraphicEl(o); if (!e.hasValue(t)) return void n.remove(a); var s = e.getItemLayout(t); a ? Ax(s, a, e, t) : a = Cx(s, e, t, r), n.add(a), e.setItemGraphicEl(t, a) }).remove(function (t) { var e = i.getItemGraphicEl(t); e && n.remove(e) }).execute(), this._data = e }, n.prototype.remove = function () { var t = this.group, e = this._data; this._data = null, e && e.eachItemGraphicEl(function (e) { e && t.remove(e) }) }, n.type = "boxplot", n }(Dz), KW = function () { function t() { } return t }(), $W = function (t) { function n(e) { var n = t.call(this, e) || this; return n.type = "boxplotBoxPath", n } return e(n, t), n.prototype.getDefaultShape = function () { return new KW }, n.prototype.buildPath = function (t, e) { var n = e.points, i = 0; for (t.moveTo(n[i][0], n[i][1]), i++; 4 > i; i++) t.lineTo(n[i][0], n[i][1]); for (t.closePath(); i < n.length; i++) t.moveTo(n[i][0], n[i][1]), i++, t.lineTo(n[i][0], n[i][1]) }, n }(Bk), JW = y, QW = { type: "echartsAll:boxplot", transform: function (t) { var e = t.upstream; if (e.sourceFormat !== SR) { var n = ""; Gi(n) } var i = zx(e.getRawData(), t.config); return [{dimensions: ["ItemName", "Low", "Q1", "Q2", "Q3", "High"], data: i.boxData}, {data: i.outliers}] } }; df(Ex); var tX = .3, eX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e._dataGroup = new sL, e._initialized = !1, e } return e(n, t), n.prototype.init = function () { this.group.add(this._dataGroup) }, n.prototype.render = function (t) { function e(t) { var e = Vx(o, r, t, l, s); Gx(e, o, t, u) } function n(e, n) { var i = a.getItemGraphicEl(n), r = Bx(o, e, l, s); o.setItemGraphicEl(e, i), us(i, {shape: {points: r}}, t, e), Gx(i, o, e, u) } function i(t) { var e = a.getItemGraphicEl(t); r.remove(e) } var r = this._dataGroup, o = t.getData(), a = this._data, s = t.coordinateSystem, l = s.dimensions, u = Fx(t); if (o.diff(a).add(e).update(n).remove(i).execute(), !this._initialized) { this._initialized = !0; var h = Nx(s, t, function () { setTimeout(function () { r.removeClipPath() }) }); r.setClipPath(h) } this._data = o }, n.prototype.incrementalPrepareRender = function () { this._initialized = !0, this._data = null, this._dataGroup.removeAll() }, n.prototype.incrementalRender = function (t, e) { for (var n = e.getData(), i = e.coordinateSystem, r = i.dimensions, o = Fx(e), a = t.start; a < t.end; a++) { var s = Vx(n, this._dataGroup, a, r, i); s.incremental = !0, Gx(s, n, a, o) } }, n.prototype.remove = function () { this._dataGroup && this._dataGroup.removeAll(), this._data = null }, n.type = "parallel", n }(Dz), nX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.visualStyleAccessPath = "lineStyle", e.visualDrawType = "stroke", e } return e(n, t), n.prototype.getInitialData = function () { return gd(this.getSource(), this, {useEncodeDefaulter: xA(Wx, null, this)}) }, n.prototype.getRawIndicesByActiveState = function (t) { var e = this.coordinateSystem, n = this.getData(), i = []; return e.eachActiveState(n, function (e, r) { t === e && i.push(n.getRawIndex(r)) }), i }, n.type = "series.parallel", n.dependencies = ["parallel"], n.defaultOption = { zlevel: 0, z: 2, coordinateSystem: "parallel", parallelIndex: 0, label: {show: !1}, inactiveOpacity: .05, activeOpacity: 1, lineStyle: {width: 1, opacity: .45, type: "solid"}, emphasis: {label: {show: !1}}, progressive: 500, smooth: !1, animationEasing: "linear" }, n }(Iz), iX = ["lineStyle", "opacity"], rX = { seriesType: "parallel", reset: function (t) { var e = t.coordinateSystem, n = { normal: t.get(["lineStyle", "opacity"]), active: t.get("activeOpacity"), inactive: t.get("inactiveOpacity") }; return { progress: function (t, i) { e.eachActiveState(i, function (t, e) { var r = n[t]; if ("normal" === t && i.hasItemOption) { var o = i.getItemModel(e).get(iX, !0); null != o && (r = o) } var a = i.ensureUniqueItemVisual(e, "style"); a.opacity = r }, t.start, t.end) } } } }, oX = 5, aX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t, e, n) { this._model = t, this._api = n, this._handlers || (this._handlers = {}, y(sX, function (t, e) { n.getZr().on(e, this._handlers[e] = xA(t, this)) }, this)), Oh(this, "_throttledDispatchExpand", t.get("axisExpandRate"), "fixRate") }, n.prototype.dispose = function (t, e) { y(this._handlers, function (t, n) { e.getZr().off(n, t) }), this._handlers = null }, n.prototype._throttledDispatchExpand = function (t) { this._dispatchExpand(t) }, n.prototype._dispatchExpand = function (t) { t && this._api.dispatchAction(h({type: "parallelAxisExpand"}, t)) }, n.type = "parallel", n }(Tz), sX = { mousedown: function (t) { jx(this, "click") && (this._mouseDownPoint = [t.offsetX, t.offsetY]) }, mouseup: function (t) { var e = this._mouseDownPoint; if (jx(this, "click") && e) { var n = [t.offsetX, t.offsetY], i = Math.pow(e[0] - n[0], 2) + Math.pow(e[1] - n[1], 2); if (i > oX) return; var r = this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX, t.offsetY]); "none" !== r.behavior && this._dispatchExpand({axisExpandWindow: r.axisExpandWindow}) } this._mouseDownPoint = null }, mousemove: function (t) { if (!this._mouseDownPoint && jx(this, "mousemove")) { var e = this._model, n = e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX, t.offsetY]), i = n.behavior; "jump" === i && this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")), this._throttledDispatchExpand("none" === i ? null : { axisExpandWindow: n.axisExpandWindow, animation: "jump" === i ? null : {duration: 0} }) } } }, lX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.init = function () { t.prototype.init.apply(this, arguments), this.mergeOption({}) }, n.prototype.mergeOption = function (t) { var e = this.option; t && l(e, t, !0), this._initDimensions() }, n.prototype.contains = function (t, e) { var n = t.get("parallelIndex"); return null != n && e.getComponent("parallel", n) === this }, n.prototype.setAxisExpand = function (t) { y(["axisExpandable", "axisExpandCenter", "axisExpandCount", "axisExpandWidth", "axisExpandWindow"], function (e) { t.hasOwnProperty(e) && (this.option[e] = t[e]) }, this) }, n.prototype._initDimensions = function () { var t = this.dimensions = [], e = this.parallelAxisIndex = [], n = x(this.ecModel.queryComponents({mainType: "parallelAxis"}), function (t) { return (t.get("parallelIndex") || 0) === this.componentIndex }, this); y(n, function (n) { t.push("dim" + n.get("dim")), e.push(n.componentIndex) }) }, n.type = "parallel", n.dependencies = ["parallelAxis"], n.layoutMode = "box", n.defaultOption = { zlevel: 0, z: 0, left: 80, top: 60, right: 80, bottom: 60, layout: "horizontal", axisExpandable: !1, axisExpandCenter: null, axisExpandCount: 0, axisExpandWidth: 50, axisExpandRate: 17, axisExpandDebounce: 50, axisExpandSlideTriggerArea: [-.15, .05, .4], axisExpandTriggerOn: "click", parallelAxisDefault: null }, n }(gR), uX = function (t) { function n(e, n, i, r, o) { var a = t.call(this, e, n, i) || this; return a.type = r || "value", a.axisIndex = o, a } return e(n, t), n.prototype.isHorizontal = function () { return "horizontal" !== this.coordinateSystem.getModel().get("layout") }, n }(tF), hX = y, cX = Math.min, pX = Math.max, dX = Math.floor, fX = Math.ceil, gX = bi, yX = Math.PI, vX = function () { function t(t, e, n) { this.type = "parallel", this._axesMap = Z(), this._axesLayout = {}, this.dimensions = t.dimensions, this._model = t, this._init(t, e, n) } return t.prototype._init = function (t, e) { var n = t.dimensions, i = t.parallelAxisIndex; hX(n, function (t, n) { var r = i[n], o = e.getComponent("parallelAxis", r), a = this._axesMap.set(t, new uX(t, Jd(o), [0, 0], o.get("type"), r)), s = "category" === a.type; a.onBand = s && o.get("boundaryGap"), a.inverse = o.get("inverse"), o.axis = a, a.model = o, a.coordinateSystem = o.coordinateSystem = this }, this) }, t.prototype.update = function (t) { this._updateAxesFromSeries(this._model, t) }, t.prototype.containPoint = function (t) { var e = this._makeLayoutInfo(), n = e.axisBase, i = e.layoutBase, r = e.pixelDimIndex, o = t[1 - r], a = t[r]; return o >= n && o <= n + e.axisLength && a >= i && a <= i + e.layoutLength }, t.prototype.getModel = function () { return this._model }, t.prototype._updateAxesFromSeries = function (t, e) { e.eachSeries(function (n) { if (t.contains(n, e)) { var i = n.getData(); hX(this.dimensions, function (t) { var e = this._axesMap.get(t); e.scale.unionExtentFromData(i, i.mapDimension(t)), $d(e.scale, e.model) }, this) } }, this) }, t.prototype.resize = function (t, e) { this._rect = kl(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }), this._layoutAxes() }, t.prototype.getRect = function () { return this._rect }, t.prototype._makeLayoutInfo = function () { var t, e = this._model, n = this._rect, i = ["x", "y"], r = ["width", "height"], o = e.get("layout"), a = "horizontal" === o ? 0 : 1, s = n[r[a]], l = [0, s], u = this.dimensions.length, h = Jx(e.get("axisExpandWidth"), l), c = Jx(e.get("axisExpandCount") || 0, [0, u]), p = e.get("axisExpandable") && u > 3 && u > c && c > 1 && h > 0 && s > 0, d = e.get("axisExpandWindow"); if (d) t = Jx(d[1] - d[0], l), d[1] = d[0] + t; else { t = Jx(h * (c - 1), l); var f = e.get("axisExpandCenter") || dX(u / 2); d = [h * f - t / 2], d[1] = d[0] + t } var g = (s - t) / (u - c); 3 > g && (g = 0); var y = [dX(gX(d[0] / h, 1)) + 1, fX(gX(d[1] / h, 1)) - 1], v = g / h * d[0]; return { layout: o, pixelDimIndex: a, layoutBase: n[i[a]], layoutLength: s, axisBase: n[i[1 - a]], axisLength: n[r[1 - a]], axisExpandable: p, axisExpandWidth: h, axisCollapseWidth: g, axisExpandWindow: d, axisCount: u, winInnerIndices: y, axisExpandWindow0Pos: v } }, t.prototype._layoutAxes = function () { var t = this._rect, e = this._axesMap, n = this.dimensions, i = this._makeLayoutInfo(), r = i.layout; e.each(function (t) { var e = [0, i.axisLength], n = t.inverse ? 1 : 0; t.setExtent(e[n], e[1 - n]) }), hX(n, function (e, n) { var o = (i.axisExpandable ? t_ : Qx)(n, i), a = {horizontal: {x: o.position, y: i.axisLength}, vertical: {x: 0, y: o.position}}, s = {horizontal: yX / 2, vertical: 0}, l = [a[r].x + t.x, a[r].y + t.y], u = s[r], h = Gn(); Zn(h, h, u), Yn(h, h, l), this._axesLayout[e] = { position: l, rotation: u, transform: h, axisNameAvailableWidth: o.axisNameAvailableWidth, axisLabelShow: o.axisLabelShow, nameTruncateMaxWidth: o.nameTruncateMaxWidth, tickDirection: 1, labelDirection: 1 } }, this) }, t.prototype.getAxis = function (t) { return this._axesMap.get(t) }, t.prototype.dataToPoint = function (t, e) { return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t), e) }, t.prototype.eachActiveState = function (t, e, n, i) { null == n && (n = 0), null == i && (i = t.count()); var r = this._axesMap, o = this.dimensions, a = [], s = []; y(o, function (e) { a.push(t.mapDimension(e)), s.push(r.get(e).model) }); for (var l = this.hasAxisBrushed(), u = n; i > u; u++) { var h = void 0; if (l) { h = "active"; for (var c = t.getValues(a, u), p = 0, d = o.length; d > p; p++) { var f = s[p].getActiveState(c[p]); if ("inactive" === f) { h = "inactive"; break } } } else h = "normal"; e(h, u) } }, t.prototype.hasAxisBrushed = function () { for (var t = this.dimensions, e = this._axesMap, n = !1, i = 0, r = t.length; r > i; i++) "normal" !== e.get(t[i]).model.getActiveState() && (n = !0); return n }, t.prototype.axisCoordToPoint = function (t, e) { var n = this._axesLayout[e]; return ys([t, 0], n.transform) }, t.prototype.getAxisLayout = function (t) { return s(this._axesLayout[t]) }, t.prototype.getSlidedAxisExpandWindow = function (t) { var e = this._makeLayoutInfo(), n = e.pixelDimIndex, i = e.axisExpandWindow.slice(), r = i[1] - i[0], o = [0, e.axisExpandWidth * (e.axisCount - 1)]; if (!this.containPoint(t)) return {behavior: "none", axisExpandWindow: i}; var a, s = t[n] - e.layoutBase - e.axisExpandWindow0Pos, l = "slide", u = e.axisCollapseWidth, h = this._model.get("axisExpandSlideTriggerArea"), c = null != h[0]; if (u) c && u && s < r * h[0] ? (l = "jump", a = s - r * h[2]) : c && u && s > r * (1 - h[0]) ? (l = "jump", a = s - r * (1 - h[2])) : (a = s - r * h[1]) >= 0 && (a = s - r * (1 - h[1])) <= 0 && (a = 0), a *= e.axisExpandWidth / u, a ? qx(a, i, o, "all") : l = "none"; else { var p = i[1] - i[0], d = o[1] * s / p; i = [pX(0, d - p / 2)], i[1] = cX(o[1], i[0] + p), i[0] = i[1] - p } return {axisExpandWindow: i, behavior: l} }, t }(), mX = {create: e_}, xX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.activeIntervals = [], e } return e(n, t), n.prototype.getAreaSelectStyle = function () { return Ar([["fill", "color"], ["lineWidth", "borderWidth"], ["stroke", "borderColor"], ["width", "width"], ["opacity", "opacity"]])(this.getModel("areaSelectStyle")) }, n.prototype.setActiveIntervals = function (t) { var e = this.activeIntervals = s(t); if (e) for (var n = e.length - 1; n >= 0; n--) wi(e[n]) }, n.prototype.getActiveState = function (t) { var e = this.activeIntervals; if (!e.length) return "normal"; if (null == t || isNaN(+t)) return "inactive"; if (1 === e.length) { var n = e[0]; if (n[0] <= t && t <= n[1]) return "active" } else for (var i = 0, r = e.length; r > i; i++) if (e[i][0] <= t && t <= e[i][1]) return "active"; return "inactive" }, n }(gR); f(xX, HV); var _X = !0, bX = Math.min, wX = Math.max, SX = Math.pow, MX = 1e4, IX = 6, TX = 6, CX = "globalPan", AX = {w: [0, 0], e: [0, 1], n: [1, 0], s: [1, 1]}, DX = {w: "ew", e: "ew", n: "ns", s: "ns", ne: "nesw", sw: "nesw", nw: "nwse", se: "nwse"}, LX = { brushStyle: {lineWidth: 2, stroke: "rgba(210,219,238,0.3)", fill: "#D2DBEE"}, transformable: !0, brushMode: "single", removeOnClick: !1 }, kX = 0, PX = function (t) { function n(e) { var n = t.call(this) || this; return n._track = [], n._covers = [], n._handlers = {}, n._zr = e, n.group = new sL, n._uid = "brushController_" + kX++, y(OX, function (t, e) { this._handlers[e] = xA(t, this) }, n), n } return e(n, t), n.prototype.enableBrush = function (t) { return this._brushType && this._doDisableBrush(), t.brushType && this._doEnableBrush(t), this }, n.prototype._doEnableBrush = function (t) { var e = this._zr; this._enableGlobalPan || dv(e, CX, this._uid), y(this._handlers, function (t, n) { e.on(n, t) }), this._brushType = t.brushType, this._brushOption = l(s(LX), t, !0) }, n.prototype._doDisableBrush = function () { var t = this._zr; fv(t, CX, this._uid), y(this._handlers, function (e, n) { t.off(n, e) }), this._brushType = this._brushOption = null }, n.prototype.setPanels = function (t) { if (t && t.length) { var e = this._panels = {}; y(t, function (t) { e[t.panelId] = s(t) }) } else this._panels = null; return this }, n.prototype.mount = function (t) { t = t || {}, this._enableGlobalPan = t.enableGlobalPan; var e = this.group; return this._zr.add(e), e.attr({ x: t.x || 0, y: t.y || 0, rotation: t.rotation || 0, scaleX: t.scaleX || 1, scaleY: t.scaleY || 1 }), this._transform = e.getLocalTransform(), this }, n.prototype.updateCovers = function (t) { function e(t, e) { return (null != t.id ? t.id : o + e) + "-" + t.brushType } function n(t, n) { return e(t.__brushOption, n) } function i(e, n) { var i = t[e]; if (null != n && a[n] === c) u[e] = a[n]; else { var r = u[e] = null != n ? (a[n].__brushOption = i, a[n]) : i_(h, n_(h, i)); a_(h, r) } } function r(t) { a[t] !== c && h.group.remove(a[t]) } t = v(t, function (t) { return l(s(LX), t, !0) }); var o = "\x00-brush-index-", a = this._covers, u = this._covers = [], h = this, c = this._creatingCover; return new tV(a, t, n, e).add(i).update(i).remove(r).execute(), this }, n.prototype.unmount = function () { return this.enableBrush(!1), h_(this), this._zr.remove(this.group), this }, n.prototype.dispose = function () { this.unmount(), this.off() }, n }(LA), OX = { mousedown: function (t) { if (this._dragging) O_(this, t); else if (!t.target || !t.target.draggable) { D_(t); var e = this.group.transformCoordToLocal(t.offsetX, t.offsetY); this._creatingCover = null; var n = this._creatingPanel = l_(this, t, e); n && (this._dragging = !0, this._track = [e.slice()]) } }, mousemove: function (t) { var e = t.offsetX, n = t.offsetY, i = this.group.transformCoordToLocal(e, n); if (A_(this, t, i), this._dragging) { D_(t); var r = k_(this, t, i, !1); r && c_(this, r) } }, mouseup: function (t) { O_(this, t) } }, RX = { lineX: z_(0), lineY: z_(1), rect: { createCover: function (t, e) { function n(t) { return t } return f_({ toRectRange: n, fromRectRange: n }, t, e, [["w"], ["e"], ["n"], ["s"], ["s", "e"], ["s", "w"], ["n", "e"], ["n", "w"]]) }, getCreatingRange: function (t) { var e = d_(t); return x_(e[1][0], e[1][1], e[0][0], e[0][1]) }, updateCoverShape: function (t, e, n, i) { g_(t, e, n, i) }, updateCommon: y_, contain: L_ }, polygon: { createCover: function (t, e) { var n = new sL; return n.add(new JP({name: "main", style: m_(e), silent: !0})), n }, getCreatingRange: function (t) { return t }, endCreating: function (t, e) { e.remove(e.childAt(0)), e.add(new KP({ name: "main", draggable: !0, drift: S(M_, t, e), ondragend: S(c_, t, {isEnd: !0}) })) }, updateCoverShape: function (t, e, n) { e.childAt(0).setShape({points: T_(t, e, n)}) }, updateCommon: y_, contain: L_ } }, zX = ["axisLine", "axisTickLabel", "axisName"], EX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.init = function (e, n) { t.prototype.init.apply(this, arguments), (this._brushController = new PX(n.getZr())).on("brush", xA(this._onBrush, this)) }, n.prototype.render = function (t, e, n, i) { if (!F_(t, e, i)) { this.axisModel = t, this.api = n, this.group.removeAll(); var r = this._axisGroup; if (this._axisGroup = new sL, this.group.add(this._axisGroup), t.get("show")) { var o = H_(t, e), a = o.coordinateSystem, s = t.getAreaSelectStyle(), l = s.width, u = t.axis.dim, c = a.getAxisLayout(u), p = h({strokeContainThreshold: l}, c), d = new cG(t, p); y(zX, d.add, d), this._axisGroup.add(d.getGroup()), this._refreshBrushController(p, s, t, o, l, n), _s(r, this._axisGroup, t) } } }, n.prototype._refreshBrushController = function (t, e, n, i, r, o) { var a = n.axis.getExtent(), s = a[1] - a[0], l = Math.min(30, .1 * Math.abs(s)), u = $D.create({x: a[0], y: -r / 2, width: s, height: r}); u.x -= l, u.width += 2 * l, this._brushController.mount({ enableGlobalPan: !0, rotation: t.rotation, x: t.position[0], y: t.position[1] }).setPanels([{ panelId: "pl", clipPath: E_(u), isTargetByCursor: B_(u, o, i), getLinearBrushOtherExtent: N_(u, 0) }]).enableBrush({brushType: "lineX", brushStyle: e, removeOnClick: !0}).updateCovers(G_(n)) }, n.prototype._onBrush = function (t) { var e = t.areas, n = this.axisModel, i = n.axis, r = v(e, function (t) { return [i.coordToData(t.range[0], !0), i.coordToData(t.range[1], !0)] }); (!n.option.realtime === t.isEnd || t.removeOnClick) && this.api.dispatchAction({ type: "axisAreaSelect", parallelAxisId: n.id, intervals: r }) }, n.prototype.dispose = function () { this._brushController.dispose() }, n.type = "parallelAxis", n }(Tz), NX = {type: "axisAreaSelect", event: "axisAreaSelected"}, BX = { type: "value", areaSelectStyle: { width: 20, borderWidth: 1, borderColor: "rgba(160,197,232)", color: "rgba(160,197,232)", opacity: .3 }, realtime: !0, z: 10 }; df(Y_); var VX = function () { function t() { this.angle = 0, this.width = 10, this.r = 10, this.x = 0, this.y = 0 } return t }(), FX = function (t) { function n(e) { var n = t.call(this, e) || this; return n.type = "pointer", n } return e(n, t), n.prototype.getDefaultShape = function () { return new VX }, n.prototype.buildPath = function (t, e) { var n = Math.cos, i = Math.sin, r = e.r, o = e.width, a = e.angle, s = e.x - n(a) * o * (o >= r / 3 ? 1 : 2), l = e.y - i(a) * o * (o >= r / 3 ? 1 : 2); a = e.angle - Math.PI / 2, t.moveTo(s, l), t.lineTo(e.x + n(a) * o, e.y + i(a) * o), t.lineTo(e.x + n(e.angle) * r, e.y + i(e.angle) * r), t.lineTo(e.x - n(a) * o, e.y - i(a) * o), t.lineTo(s, l) }, n }(Bk), GX = 2 * Math.PI, HX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t, e, n) { this.group.removeAll(); var i = t.get(["axisLine", "lineStyle", "color"]), r = Z_(t, n); this._renderMain(t, e, n, i, r), this._data = t.getData() }, n.prototype.dispose = function () { }, n.prototype._renderMain = function (t, e, n, i, r) { for (var o = this.group, a = t.get("clockwise"), s = -t.get("startAngle") / 180 * Math.PI, l = -t.get("endAngle") / 180 * Math.PI, u = t.getModel("axisLine"), h = u.get("roundCap"), c = h ? fF : ZP, p = u.get("show"), d = u.getModel("lineStyle"), f = d.get("width"), g = (l - s) % GX || l === s ? (l - s) % GX : GX, y = s, v = 0; p && v < i.length; v++) { var m = Math.min(Math.max(i[v][0], 0), 1); l = s + g * m; var x = new c({ shape: { startAngle: y, endAngle: l, cx: r.cx, cy: r.cy, clockwise: a, r0: r.r - f, r: r.r }, silent: !0 }); x.setStyle({fill: i[v][1]}), x.setStyle(d.getLineStyle(["color", "width"])), o.add(x), y = l } var _ = function (t) { if (0 >= t) return i[0][1]; var e; for (e = 0; e < i.length; e++) if (i[e][0] >= t && (0 === e ? 0 : i[e - 1][0]) < t) return i[e][1]; return i[e - 1][1] }; if (!a) { var b = s; s = l, l = b } this._renderTicks(t, e, n, _, r, s, l, a, f), this._renderTitleAndDetail(t, e, n, _, r), this._renderAnchor(t, r), this._renderPointer(t, e, n, _, r, s, l, a, f) }, n.prototype._renderTicks = function (t, e, n, i, r, o, a, s, l) { for (var u, h, c = this.group, p = r.cx, d = r.cy, f = r.r, g = +t.get("min"), y = +t.get("max"), v = t.getModel("splitLine"), m = t.getModel("axisTick"), x = t.getModel("axisLabel"), _ = t.get("splitNumber"), b = m.get("splitNumber"), w = _i(v.get("length"), f), S = _i(m.get("length"), f), M = o, I = (a - o) / _, T = I / b, C = v.getModel("lineStyle").getLineStyle(), A = m.getModel("lineStyle").getLineStyle(), D = v.get("distance"), L = 0; _ >= L; L++) { if (u = Math.cos(M), h = Math.sin(M), v.get("show")) { var k = D ? D + l : l, P = new eO({ shape: { x1: u * (f - k) + p, y1: h * (f - k) + d, x2: u * (f - w - k) + p, y2: h * (f - w - k) + d }, style: C, silent: !0 }); "auto" === C.stroke && P.setStyle({stroke: i(L / _)}), c.add(P) } if (x.get("show")) { var k = x.get("distance") + D, O = U_(bi(L / _ * (y - g) + g), x.get("formatter")), R = i(L / _); c.add(new $k({ style: Os(x, { text: O, x: u * (f - w - k) + p, y: h * (f - w - k) + d, verticalAlign: -.8 > h ? "top" : h > .8 ? "bottom" : "middle", align: -.4 > u ? "left" : u > .4 ? "right" : "center" }, {inheritColor: R}), silent: !0 })) } if (m.get("show") && L !== _) { var k = m.get("distance"); k = k ? k + l : l; for (var z = 0; b >= z; z++) { u = Math.cos(M), h = Math.sin(M); var E = new eO({ shape: { x1: u * (f - k) + p, y1: h * (f - k) + d, x2: u * (f - S - k) + p, y2: h * (f - S - k) + d }, silent: !0, style: A }); "auto" === A.stroke && E.setStyle({stroke: i((L + z / b) / _)}), c.add(E), M += T } M -= T } else M += I } }, n.prototype._renderPointer = function (t, e, n, i, r, o, a, s, l) { function u(e, n) { var i, o = x.getItemModel(e), a = o.getModel("pointer"), s = _i(a.get("width"), r.r), l = _i(a.get("length"), r.r), u = t.get(["pointer", "icon"]), h = a.get("offsetCenter"), c = _i(h[0], r.r), p = _i(h[1], r.r), d = a.get("keepAspect"); return i = u ? Sc(u, c - s / 2, p - l, s, l, null, d) : new FX({ shape: { angle: -Math.PI / 2, width: s, r: l, x: c, y: p } }), i.rotation = -(n + Math.PI / 2), i.x = r.cx, i.y = r.cy, i } function c(t, e) { var n = v.get("roundCap"), i = n ? fF : ZP, a = v.get("overlap"), u = a ? v.get("width") : l / x.count(), h = a ? r.r - u : r.r - (t + 1) * u, c = a ? r.r : r.r - t * u, p = new i({shape: {startAngle: o, endAngle: e, cx: r.cx, cy: r.cy, clockwise: s, r0: h, r: c}}); return a && (p.z2 = w - x.get(_, t) % w), p } var p = this.group, d = this._data, f = this._progressEls, g = [], y = t.get(["pointer", "show"]), v = t.getModel("progress"), m = v.get("show"), x = t.getData(), _ = x.mapDimension("value"), b = +t.get("min"), w = +t.get("max"), S = [b, w], M = [o, a]; (m || y) && (x.diff(d).add(function (e) { if (y) { var n = u(e, o); hs(n, {rotation: -(xi(x.get(_, e), S, M, !0) + Math.PI / 2)}, t), p.add(n), x.setItemGraphicEl(e, n) } if (m) { var i = c(e, o), r = v.get("clip"); hs(i, {shape: {endAngle: xi(x.get(_, e), S, M, r)}}, t), p.add(i), g[e] = i } }).update(function (e, n) { if (y) { var i = d.getItemGraphicEl(n), r = i ? i.rotation : o, a = u(e, r); a.rotation = r, us(a, {rotation: -(xi(x.get(_, e), S, M, !0) + Math.PI / 2)}, t), p.add(a), x.setItemGraphicEl(e, a) } if (m) { var s = f[n], l = s ? s.shape.endAngle : o, h = c(e, l), b = v.get("clip"); us(h, {shape: {endAngle: xi(x.get(_, e), S, M, b)}}, t), p.add(h), g[e] = h } }).execute(), x.each(function (t) { var e = x.getItemModel(t), n = e.getModel("emphasis"); if (y) { var r = x.getItemGraphicEl(t), o = x.getItemVisual(t, "style"), a = o.fill; if (r instanceof Wk) { var s = r.style; r.useStyle(h({image: s.image, x: s.x, y: s.y, width: s.width, height: s.height}, o)) } else r.useStyle(o), "pointer" !== r.type && r.setColor(a); r.setStyle(e.getModel(["pointer", "itemStyle"]).getItemStyle()), "auto" === r.style.fill && r.setStyle("fill", i(xi(x.get(_, t), S, [0, 1], !0))), r.z2EmphasisLift = 0, Ia(r, e), Sa(r, n.get("focus"), n.get("blurScope")) } if (m) { var l = g[t]; l.useStyle(x.getItemVisual(t, "style")), l.setStyle(e.getModel(["progress", "itemStyle"]).getItemStyle()), l.z2EmphasisLift = 0, Ia(l, e), Sa(l, n.get("focus"), n.get("blurScope")) } }), this._progressEls = g) }, n.prototype._renderAnchor = function (t, e) { var n = t.getModel("anchor"), i = n.get("show"); if (i) { var r = n.get("size"), o = n.get("icon"), a = n.get("offsetCenter"), s = n.get("keepAspect"), l = Sc(o, e.cx - r / 2 + _i(a[0], e.r), e.cy - r / 2 + _i(a[1], e.r), r, r, null, s); l.z2 = n.get("showAbove") ? 1 : 0, l.setStyle(n.getModel("itemStyle").getItemStyle()), this.group.add(l) } }, n.prototype._renderTitleAndDetail = function (t, e, n, i, r) { var o = this, a = t.getData(), s = a.mapDimension("value"), l = +t.get("min"), u = +t.get("max"), h = new sL, c = [], p = [], d = t.isAnimationEnabled(); a.diff(this._data).add(function (t) { c[t] = new $k({silent: !0}), p[t] = new $k({silent: !0}) }).update(function (t, e) { c[t] = o._titleEls[e], p[t] = o._detailEls[e] }).execute(), a.each(function (e) { var n = a.getItemModel(e), o = a.get(s, e), f = new sL, g = i(xi(o, [l, u], [0, 1], !0)), y = n.getModel("title"); if (y.get("show")) { var v = y.get("offsetCenter"), m = r.cx + _i(v[0], r.r), x = r.cy + _i(v[1], r.r), _ = c[e]; _.attr({ style: Os(y, { x: m, y: x, text: a.getName(e), align: "center", verticalAlign: "middle" }, {inheritColor: g}) }), f.add(_) } var b = n.getModel("detail"); if (b.get("show")) { var w = b.get("offsetCenter"), S = r.cx + _i(w[0], r.r), M = r.cy + _i(w[1], r.r), I = _i(b.get("width"), r.r), T = _i(b.get("height"), r.r), C = t.get(["progress", "show"]) ? a.getItemVisual(e, "style").fill : g, _ = p[e], A = b.get("formatter"); _.attr({ style: Os(b, { x: S, y: M, text: U_(o, A), width: isNaN(I) ? null : I, height: isNaN(T) ? null : T, align: "center", verticalAlign: "middle" }, {inheritColor: C}) }), Vs(_, {normal: b}, o, function (t) { return U_(t, A) }), d && Fs(_, e, a, t, { getFormattedLabel: function (t, e, n, i, r, a) { return U_(a ? a.interpolatedValue : o, A) } }), f.add(_) } h.add(f) }), this.group.add(h), this._titleEls = c, this._detailEls = p }, n.type = "gauge", n }(Dz), WX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.visualStyleAccessPath = "itemStyle", e.useColorPaletteOnData = !0, e } return e(n, t), n.prototype.getInitialData = function () { return Xg(this, ["value"]) }, n.type = "series.gauge", n.defaultOption = { zlevel: 0, z: 2, center: ["50%", "50%"], legendHoverLink: !0, radius: "75%", startAngle: 225, endAngle: -45, clockwise: !0, min: 0, max: 100, splitNumber: 10, axisLine: {show: !0, roundCap: !1, lineStyle: {color: [[1, "#E6EBF8"]], width: 10}}, progress: {show: !1, overlap: !0, width: 10, roundCap: !1, clip: !0}, splitLine: {show: !0, length: 10, distance: 10, lineStyle: {color: "#63677A", width: 3, type: "solid"}}, axisTick: { show: !0, splitNumber: 5, length: 6, distance: 10, lineStyle: {color: "#63677A", width: 1, type: "solid"} }, axisLabel: {show: !0, distance: 15, color: "#464646", fontSize: 12}, pointer: {icon: null, offsetCenter: [0, 0], show: !0, length: "60%", width: 6, keepAspect: !1}, anchor: { show: !1, showAbove: !1, size: 6, icon: "circle", offsetCenter: [0, 0], keepAspect: !1, itemStyle: {color: "#fff", borderWidth: 0, borderColor: "#5470c6"} }, title: {show: !0, offsetCenter: [0, "20%"], color: "#464646", fontSize: 16, valueAnimation: !1}, detail: { show: !0, backgroundColor: "rgba(0,0,0,0)", borderWidth: 0, borderColor: "#ccc", width: 100, height: null, padding: [5, 10], offsetCenter: [0, "40%"], color: "#464646", fontSize: 30, fontWeight: "bold", lineHeight: 30, valueAnimation: !1 } }, n }(Iz); df(j_); var XX = ["itemStyle", "opacity"], YX = function (t) { function n(e, n) { var i = t.call(this) || this, r = i, o = new JP, a = new $k; return r.setTextContent(a), i.setTextGuideLine(o), i.updateData(e, n, !0), i } return e(n, t), n.prototype.updateData = function (t, e, n) { var i = this, r = t.hostModel, o = t.getItemModel(e), a = t.getItemLayout(e), s = o.getModel("emphasis"), l = o.get(XX); l = null == l ? 1 : l, i.useStyle(t.getItemVisual(e, "style")), i.style.lineJoin = "round", n ? (i.setShape({points: a.points}), i.style.opacity = 0, hs(i, {style: {opacity: l}}, r, e)) : us(i, { style: {opacity: l}, shape: {points: a.points} }, r, e), Ia(i, o), this._updateLabel(t, e), Sa(this, s.get("focus"), s.get("blurScope")) }, n.prototype._updateLabel = function (t, e) { var n = this, i = this.getTextGuideLine(), r = n.getTextContent(), o = t.hostModel, a = t.getItemModel(e), s = t.getItemLayout(e), l = s.label, u = t.getItemVisual(e, "style"), h = u.fill; ks(r, Ps(a), { labelFetcher: t.hostModel, labelDataIndex: e, defaultOpacity: u.opacity, defaultText: t.getName(e) }, {normal: {align: l.textAlign, verticalAlign: l.verticalAlign}}), n.setTextConfig({ local: !0, inside: !!l.inside, insideStroke: h, outsideFill: h }); var c = l.linePoints; i.setShape({points: c}), n.textGuideLineConfig = {anchor: c ? new HD(c[0][0], c[0][1]) : null}, us(r, { style: { x: l.x, y: l.y } }, o, e), r.attr({rotation: l.rotation, originX: l.x, originY: l.y, z2: 10}), lc(n, uc(a), {stroke: h}) }, n }(KP), ZX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.ignoreLabelLineUpdate = !0, e } return e(n, t), n.prototype.render = function (t) { var e = t.getData(), n = this._data, i = this.group; e.diff(n).add(function (t) { var n = new YX(e, t); e.setItemGraphicEl(t, n), i.add(n) }).update(function (t, r) { var o = n.getItemGraphicEl(r); o.updateData(e, t), i.add(o), e.setItemGraphicEl(t, o) }).remove(function (e) { var i = n.getItemGraphicEl(e); ds(i, t, e) }).execute(), this._data = e }, n.prototype.remove = function () { this.group.removeAll(), this._data = null }, n.prototype.dispose = function () { }, n.type = "funnel", n }(Dz), UX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.useColorPaletteOnData = !0, e } return e(n, t), n.prototype.init = function (e) { t.prototype.init.apply(this, arguments), this.legendVisualProvider = new HF(xA(this.getData, this), xA(this.getRawData, this)), this._defaultLabelLine(e) }, n.prototype.getInitialData = function () { return Xg(this, {coordDimensions: ["value"], encodeDefaulter: S(Gl, this)}) }, n.prototype._defaultLabelLine = function (t) { Wi(t, "labelLine", ["show"]); var e = t.labelLine, n = t.emphasis.labelLine; e.show = e.show && t.label.show, n.show = n.show && t.emphasis.label.show }, n.prototype.getDataParams = function (e) { var n = this.getData(), i = t.prototype.getDataParams.call(this, e), r = n.mapDimension("value"), o = n.getSum(r); return i.percent = o ? +(n.get(r, e) / o * 100).toFixed(2) : 0, i.$vars.push("percent"), i }, n.type = "series.funnel", n.defaultOption = { zlevel: 0, z: 2, legendHoverLink: !0, left: 80, top: 60, right: 80, bottom: 60, minSize: "0%", maxSize: "100%", sort: "descending", orient: "vertical", gap: 0, funnelAlign: "center", label: {show: !0, position: "outer"}, labelLine: {show: !0, length: 20, lineStyle: {width: 1}}, itemStyle: {borderColor: "#fff", borderWidth: 1}, emphasis: {label: {show: !0}}, select: {itemStyle: {borderColor: "#212121"}} }, n }(Iz); df(Q_); var jX = function () { function t() { this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.cpx1 = 0, this.cpy1 = 0, this.cpx2 = 0, this.cpy2 = 0, this.extent = 0 } return t }(), qX = function (t) { function n(e) { return t.call(this, e) || this } return e(n, t), n.prototype.getDefaultShape = function () { return new jX }, n.prototype.buildPath = function (t, e) { var n = e.extent; t.moveTo(e.x1, e.y1), t.bezierCurveTo(e.cpx1, e.cpy1, e.cpx2, e.cpy2, e.x2, e.y2), "vertical" === e.orient ? (t.lineTo(e.x2 + n, e.y2), t.bezierCurveTo(e.cpx2 + n, e.cpy2, e.cpx1 + n, e.cpy1, e.x1 + n, e.y1)) : (t.lineTo(e.x2, e.y2 + n), t.bezierCurveTo(e.cpx2, e.cpy2 + n, e.cpx1, e.cpy1 + n, e.x1, e.y1 + n)), t.closePath() }, n.prototype.highlight = function () { aa(this) }, n.prototype.downplay = function () { sa(this) }, n }(Bk), KX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e._focusAdjacencyDisabled = !1, e } return e(n, t), n.prototype.render = function (t, e, n) { var i = this, r = t.getGraph(), o = this.group, a = t.layoutInfo, s = a.width, l = a.height, u = t.getData(), h = t.getData("edge"), c = t.get("orient"); this._model = t, o.removeAll(), o.x = a.x, o.y = a.y, r.eachEdge(function (e) { var n = new qX, i = tP(n); i.dataIndex = e.dataIndex, i.seriesIndex = t.seriesIndex, i.dataType = "edge"; var r, a, u, p, d, f, g, y, v = e.getModel(), m = v.getModel("lineStyle"), x = m.get("curveness"), _ = e.node1.getLayout(), b = e.node1.getModel(), w = b.get("localX"), S = b.get("localY"), M = e.node2.getLayout(), I = e.node2.getModel(), T = I.get("localX"), C = I.get("localY"), A = e.getLayout(); switch (n.shape.extent = Math.max(1, A.dy), n.shape.orient = c, "vertical" === c ? (r = (null != w ? w * s : _.x) + A.sy, a = (null != S ? S * l : _.y) + _.dy, u = (null != T ? T * s : M.x) + A.ty, p = null != C ? C * l : M.y, d = r, f = a * (1 - x) + p * x, g = u, y = a * x + p * (1 - x)) : (r = (null != w ? w * s : _.x) + _.dx, a = (null != S ? S * l : _.y) + A.sy, u = null != T ? T * s : M.x, p = (null != C ? C * l : M.y) + A.ty, d = r * (1 - x) + u * x, f = a, g = r * x + u * (1 - x), y = p), n.setShape({ x1: r, y1: a, x2: u, y2: p, cpx1: d, cpy1: f, cpx2: g, cpy2: y }), n.useStyle(m.getItemStyle()), n.style.fill) { case"source": n.style.fill = e.node1.getVisual("color"), n.style.decal = e.node1.getVisual("style").decal; break; case"target": n.style.fill = e.node2.getVisual("color"), n.style.decal = e.node2.getVisual("style").decal; break; case"gradient": var D = e.node1.getVisual("color"), L = e.node2.getVisual("color"); "string" == typeof D && "string" == typeof L && (n.style.fill = new uO(0, 0, 1, 0, [{ color: D, offset: 0 }, {color: L, offset: 1}])) } var k = v.getModel("emphasis"); Ia(n, v, "lineStyle", function (t) { return t.getItemStyle() }), o.add(n), h.setItemGraphicEl(e.dataIndex, n); var P = k.get("focus"); Sa(n, "adjacency" === P ? e.getAdjacentDataIndices() : P, k.get("blurScope")), tP(n).dataType = "edge" }), r.eachNode(function (e) { var n = e.getLayout(), i = e.getModel(), r = i.get("localX"), a = i.get("localY"), h = i.getModel("emphasis"), c = new Uk({ shape: { x: null != r ? r * s : n.x, y: null != a ? a * l : n.y, width: n.dx, height: n.dy }, style: i.getModel("itemStyle").getItemStyle(), z2: 10 }); ks(c, Ps(i), { labelFetcher: t, labelDataIndex: e.dataIndex, defaultText: e.id }), c.disableLabelAnimation = !0, c.setStyle("fill", e.getVisual("color")), c.setStyle("decal", e.getVisual("style").decal), Ia(c, i), o.add(c), u.setItemGraphicEl(e.dataIndex, c), tP(c).dataType = "node"; var p = h.get("focus"); Sa(c, "adjacency" === p ? e.getAdjacentDataIndices() : p, h.get("blurScope")) }), u.eachItemGraphicEl(function (e, r) { var o = u.getItemModel(r); o.get("draggable") && (e.drift = function (e, o) { i._focusAdjacencyDisabled = !0, this.shape.x += e, this.shape.y += o, this.dirty(), n.dispatchAction({ type: "dragNode", seriesId: t.id, dataIndex: u.getRawIndex(r), localX: this.shape.x / s, localY: this.shape.y / l }) }, e.ondragend = function () { i._focusAdjacencyDisabled = !1 }, e.draggable = !0, e.cursor = "move") }), !this._data && t.isAnimationEnabled() && o.setClipPath(tb(o.getBoundingRect(), t, function () { o.removeClipPath() })), this._data = t.getData() }, n.prototype.dispose = function () { }, n.type = "sankey", n }(Dz), $X = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.getInitialData = function (t, e) { function n(t, e) { t.wrapMethod("getItemModel", function (t, e) { var n = t.parentModel, i = n.getData().getItemLayout(e); if (i) { var r = i.depth, o = n.levelModels[r]; o && (t.parentModel = o) } return t }), e.wrapMethod("getItemModel", function (t, e) { var n = t.parentModel, i = n.getGraph().getEdgeByIndex(e), r = i.node1.getLayout(); if (r) { var o = r.depth, a = n.levelModels[o]; a && (t.parentModel = a) } return t }) } var i = t.edges || t.links, r = t.data || t.nodes, o = t.levels; this.levelModels = []; for (var a = this.levelModels, s = 0; s < o.length; s++) null != o[s].depth && o[s].depth >= 0 && (a[o[s].depth] = new VO(o[s], this, e)); if (r && i) { var l = Ix(r, i, this, !0, n); return l.data } }, n.prototype.setNodePosition = function (t, e) { var n = this.option.data[t]; n.localX = e[0], n.localY = e[1] }, n.prototype.getGraph = function () { return this.getData().graph }, n.prototype.getEdgeData = function () { return this.getGraph().edgeData }, n.prototype.formatTooltip = function (t, e, n) { function i(t) { return isNaN(t) || null == t } if ("edge" === n) { var r = this.getDataParams(t, n), o = r.data, a = r.value, s = o.source + " -- " + o.target; return rh("nameValue", {name: s, value: a, noValue: i(a)}) } var l = this.getGraph().getNodeByIndex(t), u = l.getLayout().value, h = this.getDataParams(t, n).data.name; return rh("nameValue", {name: null != h ? h + "" : null, value: u, noValue: i(u)}) }, n.prototype.optionUpdated = function () { }, n.prototype.getDataParams = function (e, n) { var i = t.prototype.getDataParams.call(this, e, n); if (null == i.value && "node" === n) { var r = this.getGraph().getNodeByIndex(e), o = r.getLayout().value; i.value = o } return i }, n.type = "series.sankey", n.defaultOption = { zlevel: 0, z: 2, coordinateSystem: "view", left: "5%", top: "5%", right: "20%", bottom: "5%", orient: "horizontal", nodeWidth: 20, nodeGap: 8, draggable: !0, layoutIterations: 32, label: {show: !0, position: "right", fontSize: 12}, levels: [], nodeAlign: "justify", lineStyle: {color: "#314656", opacity: .2, curveness: .5}, emphasis: {label: {show: !0}, lineStyle: {opacity: .5}}, select: {itemStyle: {borderColor: "#212121"}}, animationEasing: "linear", animationDuration: 1e3 }, n }(Iz); df(Ib); var JX = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e._layers = [], e } return e(n, t), n.prototype.render = function (t) { function e(t) { return t.name } function n(e, n, s) { var l = r._layers; if ("remove" === e) return void o.remove(l[n]); for (var u, h = [], p = [], d = a[n].indices, f = 0; f < d.length; f++) { var g = i.getItemLayout(d[f]), y = g.x, v = g.y0, m = g.y; h.push(y, v), p.push(y, v + m), u = i.getItemVisual(d[f], "style") } var x, _ = i.getItemLayout(d[0]), b = t.getModel("label"), w = b.get("margin"), S = t.getModel("emphasis"); if ("add" === e) { var M = c[n] = new sL; x = new zF({ shape: { points: h, stackedOnPoints: p, smooth: .4, stackedOnSmooth: .4, smoothConstraint: !1 }, z2: 0 }), M.add(x), o.add(M), t.isAnimationEnabled() && x.setClipPath(Tb(x.getBoundingRect(), t, function () { x.removeClipPath() })) } else { var M = l[s]; x = M.childAt(0), o.add(M), c[n] = M, us(x, {shape: {points: h, stackedOnPoints: p}}, t) } ks(x, Ps(t), { labelDataIndex: d[f - 1], defaultText: i.getName(d[f - 1]), inheritColor: u.fill }, {normal: {verticalAlign: "middle"}}), x.setTextConfig({position: null, local: !0}); var I = x.getTextContent(); I && (I.x = _.x - w, I.y = _.y0 + _.y / 2), x.useStyle(u), i.setItemGraphicEl(n, x), Ia(x, t), Sa(x, S.get("focus"), S.get("blurScope")) } var i = t.getData(), r = this, o = this.group, a = t.getLayerSeries(), s = i.getLayout("layoutInfo"), l = s.rect, u = s.boundaryGap; o.x = 0, o.y = l.y + u[0]; var h = new tV(this._layersSeries || [], a, e, e), c = []; h.add(xA(n, this, "add")).update(xA(n, this, "update")).remove(xA(n, this, "remove")).execute(), this._layersSeries = a, this._layers = c }, n.type = "themeRiver", n }(Dz), QX = 2, tY = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.useColorPaletteOnData = !0, e } return e(n, t), n.prototype.init = function () { t.prototype.init.apply(this, arguments), this.legendVisualProvider = new HF(xA(this.getData, this), xA(this.getRawData, this)) }, n.prototype.fixData = function (t) { var e = t.length, n = {}, i = yr(t, function (t) { return n.hasOwnProperty(t[0] + "") || (n[t[0] + ""] = -1), t[2] }), r = []; i.buckets.each(function (t, e) { r.push({name: e, dataList: t}) }); for (var o = r.length, a = 0; o > a; ++a) { for (var s = r[a].name, l = 0; l < r[a].dataList.length; ++l) { var u = r[a].dataList[l][0] + ""; n[u] = a } for (var u in n) n.hasOwnProperty(u) && n[u] !== a && (n[u] = a, t[e] = [u, 0, s], e++) } return t }, n.prototype.getInitialData = function (t) { for (var e = this.getReferringComponents("singleAxis", wL).models[0], n = e.get("type"), i = x(t.data, function (t) { return void 0 !== t[2] }), r = this.fixData(i || []), o = [], a = this.nameMap = Z(), s = 0, l = 0; l < r.length; ++l) o.push(r[l][QX]), a.get(r[l][QX]) || (a.set(r[l][QX], s), s++); var u = ud(r, { coordDimensions: ["single"], dimensionsDefine: [{name: "time", type: rd(n)}, {name: "value", type: "float"}, { name: "name", type: "ordinal" }], encodeDefine: {single: 0, value: 1, itemName: 2} }), h = new fV(u, this); return h.initData(r), h }, n.prototype.getLayerSeries = function () { for (var t = this.getData(), e = t.count(), n = [], i = 0; e > i; ++i) n[i] = i; var r = t.mapDimension("single"), o = yr(n, function (e) { return t.get("name", e) }), a = []; return o.buckets.each(function (e, n) { e.sort(function (e, n) { return t.get(r, e) - t.get(r, n) }), a.push({name: n, indices: e}) }), a }, n.prototype.getAxisTooltipData = function (t, e) { M(t) || (t = t ? [t] : []); for (var n, i = this.getData(), r = this.getLayerSeries(), o = [], a = r.length, s = 0; a > s; ++s) { for (var l = Number.MAX_VALUE, u = -1, h = r[s].indices.length, c = 0; h > c; ++c) { var p = i.get(t[0], r[s].indices[c]), d = Math.abs(p - e); l >= d && (n = p, l = d, u = r[s].indices[c]) } o.push(u) } return {dataIndices: o, nestestValue: n} }, n.prototype.formatTooltip = function (t) { var e = this.getData(), n = e.getName(t), i = e.get(e.mapDimension("value"), t); return rh("nameValue", {name: n, value: i}) }, n.type = "series.themeRiver", n.dependencies = ["singleAxis"], n.defaultOption = { zlevel: 0, z: 2, coordinateSystem: "singleAxis", boundaryGap: ["10%", "10%"], singleAxisIndex: 0, animationEasing: "linear", label: {margin: 4, show: !0, position: "left", fontSize: 11}, emphasis: {label: {show: !0}} }, n }(Iz); df(Lb); var eY = ["itemStyle", "borderWidth"], nY = [{xy: "x", wh: "width", index: 0, posDesc: ["left", "right"]}, { xy: "y", wh: "height", index: 1, posDesc: ["top", "bottom"] }], iY = new kP, rY = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t, e, n) { var i = this.group, r = t.getData(), o = this._data, a = t.coordinateSystem, s = a.getBaseAxis(), l = s.isHorizontal(), u = a.master.getRect(), h = { ecSize: {width: n.getWidth(), height: n.getHeight()}, seriesModel: t, coordSys: a, coordSysExtent: [[u.x, u.x + u.width], [u.y, u.y + u.height]], isHorizontal: l, valueDim: nY[+l], categoryDim: nY[1 - +l] }; return r.diff(o).add(function (t) { if (r.hasValue(t)) { var e = Hb(r, t), n = kb(r, t, e, h), o = Yb(r, h, n); r.setItemGraphicEl(t, o), i.add(o), $b(o, h, n) } }).update(function (t, e) { var n = o.getItemGraphicEl(e); if (!r.hasValue(t)) return void i.remove(n); var a = Hb(r, t), s = kb(r, t, a, h), l = jb(r, s); n && l !== n.__pictorialShapeStr && (i.remove(n), r.setItemGraphicEl(t, null), n = null), n ? Zb(n, h, s) : n = Yb(r, h, s, !0), r.setItemGraphicEl(t, n), n.__pictorialSymbolMeta = s, i.add(n), $b(n, h, s) }).remove(function (t) { var e = o.getItemGraphicEl(t); e && Ub(o, t, e.__pictorialSymbolMeta.animationModel, e) }).execute(), this._data = r, this.group }, n.prototype.remove = function (t) { var e = this.group, n = this._data; t.get("animation") ? n && n.eachItemGraphicEl(function (e) { Ub(n, tP(e).dataIndex, t, e) }) : e.removeAll() }, n.type = "pictorialBar", n }(Dz), oY = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.hasSymbolVisual = !0, e.defaultSymbol = "roundRect", e } return e(n, t), n.prototype.getInitialData = function (e) { return e.stack = null, t.prototype.getInitialData.apply(this, arguments) }, n.type = "series.pictorialBar", n.dependencies = ["grid"], n.defaultOption = Xs(cF.defaultOption, { symbol: "circle", symbolSize: null, symbolRotate: null, symbolPosition: null, symbolOffset: null, symbolMargin: null, symbolRepeat: !1, symbolRepeatDirection: "end", symbolClip: !1, symbolBoundingData: null, symbolPatternSize: 400, barGap: "-100%", progressive: 0, emphasis: {scale: !1}, select: {itemStyle: {borderColor: "#212121"}} }), n }(cF); df(Qb); var aY = Ck.CMD, sY = 2 * Math.PI, lY = ["x", "y"], uY = ["width", "height"], hY = [], cY = ur(), pY = {x: 1, y: 1, scaleX: 1, scaleY: 1, originX: 1, originY: 1, rotation: 1}, dY = (b(pY).join(", "), {color: "fill", borderColor: "stroke"}), fY = {symbol: 1, symbolSize: 1, symbolKeepAspect: 1, legendIcon: 1, visualMeta: 1, liftZ: 1, decal: 1}, gY = "emphasis", yY = "normal", vY = "blur", mY = "select", xY = [yY, gY, vY, mY], _Y = {normal: ["itemStyle"], emphasis: [gY, "itemStyle"], blur: [vY, "itemStyle"], select: [mY, "itemStyle"]}, bY = {normal: ["label"], emphasis: [gY, "label"], blur: [vY, "label"], select: [mY, "label"]}, wY = "e\x00\x00", SY = {normal: {}, emphasis: {}, blur: {}, select: {}}, MY = {position: ["x", "y"], scale: ["scaleX", "scaleY"], origin: ["originX", "originY"]}, IY = new GD, TY = {cartesian2d: ew, geo: iw, singleAxis: ow, polar: sw, calendar: lw}, CY = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.optionUpdated = function () { this.currentZLevel = this.get("zlevel", !0), this.currentZ = this.get("z", !0) }, n.prototype.getInitialData = function () { return gd(this.getSource(), this) }, n.prototype.getDataParams = function (e, n, i) { var r = t.prototype.getDataParams.call(this, e, n); return i && (r.info = cY(i).info), r }, n.type = "series.custom", n.dependencies = ["grid", "polar", "geo", "singleAxis", "calendar"], n.defaultOption = { coordinateSystem: "cartesian2d", zlevel: 0, z: 2, legendHoverLink: !0, clip: !1 }, n }(Iz), AY = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t, e, n, i) { var r = this._data, o = t.getData(), a = this.group, s = hS(t, o, e, n); r || a.removeAll(); var l = t.__transientTransitionOpt; if (!l || null != l.from && null != l.to) { var u = new kY(t, l), h = l ? "multiple" : "oneToOne"; new tV(r ? r.getIndices() : [], o.getIndices(), Xw(r, h, l && l.from), Xw(o, h, l && l.to), null, h).add(function (e) { pS(n, null, e, s(e, i), t, a, o, null) }).remove(function (e) { IS(r.getItemGraphicEl(e), t, a) }).update(function (e, l) { u.reset("oneToOne"); var h = r.getItemGraphicEl(l); u.findAndAddFrom(h), u.hasFrom() && (DS(h, a), h = null), pS(n, h, e, s(e, i), t, a, o, u), u.applyMorphing() }).updateManyToOne(function (e, l) { u.reset("manyToOne"); for (var h = 0; h < l.length; h++) { var c = r.getItemGraphicEl(l[h]); u.findAndAddFrom(c), DS(c, a) } pS(n, null, e, s(e, i), t, a, o, u), u.applyMorphing() }).updateOneToMany(function (e, l) { u.reset("oneToMany"); var h = e.length, c = r.getItemGraphicEl(l); u.findAndAddFrom(c), DS(c, a); for (var p = 0; h > p; p++) pS(n, null, e[p], s(e[p], i), t, a, o, u); u.applyMorphing() }).execute() } else r && r.each(function (e) { IS(r.getItemGraphicEl(e), t, a) }), o.each(function (e) { pS(n, null, e, s(e, i), t, a, o, null) }); var c = t.get("clip", !0) ? Xf(t.coordinateSystem, !1, t) : null; c ? a.setClipPath(c) : a.removeClipPath(), this._data = o }, n.prototype.incrementalPrepareRender = function () { this.group.removeAll(), this._data = null }, n.prototype.incrementalRender = function (t, e, n, i, r) { function o(t) { t.isGroup || (t.incremental = !0, t.ensureState("emphasis").hoverLayer = !0) } for (var a = e.getData(), s = hS(e, a, n, i), l = t.start; l < t.end; l++) { var u = pS(null, null, l, s(l, r), e, this.group, a, null); u && u.traverse(o) } }, n.prototype.filterForExposedEvent = function (t, e, n) { var i = e.element; if (null == i || n.name === i) return !0; for (; (n = n.__hostTarget || n.parent) && n !== this.group;) if (n.name === i) return !0; return !1 }, n.type = "custom", n }(Dz), DY = {}, LY = { setTransform: function (t, e) { return DY.el[t] = e, this }, getTransform: function (t) { return DY.el[t] }, setShape: function (t, e) { var n = DY.el.shape || (DY.el.shape = {}); return n[t] = e, DY.isShapeDirty = !0, this }, getShape: function (t) { var e = DY.el.shape; return e ? e[t] : void 0 }, setStyle: function (t, e) { var n = DY.el.style; return n && (n[t] = e, DY.isStyleDirty = !0), this }, getStyle: function (t) { var e = DY.el.style; return e ? e[t] : void 0 }, setExtra: function (t, e) { var n = DY.el.extra || (DY.el.extra = {}); return n[t] = e, this }, getExtra: function (t) { var e = DY.el.extra; return e ? e[t] : void 0 } }, kY = function () { function t(t, e) { this._fromList = [], this._toList = [], this._toElOptionList = [], this._allPropsFinalList = [], this._toDataIndices = [], this._morphConfigList = [], this._seriesModel = t, this._transOpt = e } return t.prototype.hasFrom = function () { return !!this._fromList.length }, t.prototype.findAndAddFrom = function (t) { if (t && (cY(t).canMorph && this._fromList.push(t), t.isGroup)) for (var e = t.childrenRef(), n = 0; n < e.length; n++) this.findAndAddFrom(e[n]) }, t.prototype.addTo = function (t, e, n, i) { t && (this._toList.push(t), this._toElOptionList.push(e), this._toDataIndices.push(n), this._allPropsFinalList.push(i)) }, t.prototype.applyMorphing = function () { var t = this._type, e = this._fromList, n = this._toList, i = n.length, r = e.length; if (r && i) if ("oneToOne" === t) for (var o = 0; i > o; o++) this._oneToOneForSingleTo(o, o); else if ("manyToOne" === t) for (var a = Math.max(1, Math.floor(r / i)), o = 0, s = 0; i > o; o++, s += a) { var l = o + 1 >= i ? r - s : a; this._manyToOneForSingleTo(o, s >= r ? null : s, l) } else if ("oneToMany" === t) for (var u = Math.max(1, Math.floor(i / r)), h = 0, c = 0; i > h; h += u, c++) { var p = h + u >= i ? i - h : u; this._oneToManyForSingleFrom(h, p, c >= r ? null : c) } }, t.prototype._oneToOneForSingleTo = function (t, e) { var n = this._toList[t], i = this._toElOptionList[t], r = this._toDataIndices[t], o = this._allPropsFinalList[t], a = this._fromList[e], s = this._getOrCreateMorphConfig(r), l = s.duration; if (a && Dw(a)) { if (Uw(n, o, i.style), l) { var u = kw([a], n, s, LS); this._processResultIndividuals(u, t, null) } } else { var h = l && a && (a !== n || Lw(a)) ? a : null, c = {}; qw("shape", n, h, i, c, !1), qw("extra", n, h, i, c, !1), $w(n, h, i, c, !1), Qw(n, h, i, i.style, c, !1), Uw(n, o, i.style), h && Sw(h, n, s), jw(n, r, i, this._seriesModel, c, !1) } }, t.prototype._manyToOneForSingleTo = function (t, e, n) { var i = this._toList[t], r = this._toElOptionList[t], o = this._allPropsFinalList[t]; Uw(i, o, r.style); var a = this._getOrCreateMorphConfig(this._toDataIndices[t]); if (a.duration && null != e) { for (var s = [], l = e; n > l; l++) s.push(this._fromList[l]); var u = kw(s, i, a, LS); this._processResultIndividuals(u, t, null) } }, t.prototype._oneToManyForSingleFrom = function (t, e, n) { for (var i = null == n ? null : this._fromList[n], r = this._toList, o = [], a = t; e > a; a++) { var s = r[a]; Uw(s, this._allPropsFinalList[a], this._toElOptionList[a].style), o.push(s) } var l = this._getOrCreateMorphConfig(this._toDataIndices[t]); if (l.duration && i) { var u = Vw(i, o, l, LS); this._processResultIndividuals(u, t, e) } }, t.prototype._processResultIndividuals = function (t, e, n) { for (var i = null != n, r = 0; r < t.count; r++) { var o = t.fromIndividuals[r], a = t.toIndividuals[r], s = e + (i ? r : 0), l = this._toElOptionList[s], u = this._toDataIndices[s], h = {}; $w(a, o, l, h, !1), Qw(a, o, l, l.style, h, !1), jw(a, u, l, this._seriesModel, h, !1) } }, t.prototype._getOrCreateMorphConfig = function (t) { var e = this._morphConfigList, n = e[t]; if (n) return n; var i, r, o, a = this._seriesModel, s = this._transOpt; if (a.isAnimationEnabled()) { var l = void 0; if (a && a.ecModel) { var u = a.ecModel.getUpdatePayload(); l = u && u.animation } if (l) i = l.duration || 0, r = l.easing || "cubicOut", o = l.delay || 0; else { r = a.get("animationEasingUpdate"); var h = a.get("animationDelayUpdate"); o = I(h) ? h(t) : h; var c = a.get("animationDurationUpdate"); i = I(c) ? c(t) : c } } return n = {duration: i || 0, delay: o, easing: r, dividingMethod: s ? s.dividingMethod : null}, e[t] = n, n }, t.prototype.reset = function (t) { this._type = t, this._fromList.length = this._toList.length = this._toElOptionList.length = this._allPropsFinalList.length = this._toDataIndices.length = 0 }, t }(); df(kS), df(My); var PY = ur(), OY = s, RY = xA, zY = function () { function t() { this._dragging = !1, this.animationThreshold = 15 } return t.prototype.render = function (t, e, n, i) { var r = e.get("value"), o = e.get("status"); if (this._axisModel = t, this._axisPointerModel = e, this._api = n, i || this._lastValue !== r || this._lastStatus !== o) { this._lastValue = r, this._lastStatus = o; var a = this._group, s = this._handle; if (!o || "hide" === o) return a && a.hide(), void (s && s.hide()); a && a.show(), s && s.show(); var l = {}; this.makeElOption(l, r, t, e, n); var u = l.graphicKey; u !== this._lastGraphicKey && this.clear(n), this._lastGraphicKey = u; var h = this._moveAnimation = this.determineAnimation(t, e); if (a) { var c = S(PS, e, h); this.updatePointerEl(a, l, c), this.updateLabelEl(a, l, c, e) } else a = this._group = new sL, this.createPointerEl(a, l, t, e), this.createLabelEl(a, l, t, e), n.getZr().add(a); ES(a, e, !0), this._renderHandle(r) } }, t.prototype.remove = function (t) { this.clear(t) }, t.prototype.dispose = function (t) { this.clear(t) }, t.prototype.determineAnimation = function (t, e) { var n = e.get("animation"), i = t.axis, r = "category" === i.type, o = e.get("snap"); if (!o && !r) return !1; if ("auto" === n || null == n) { var a = this.animationThreshold; if (r && i.getBandWidth() > a) return !0; if (o) { var s = my(t).seriesDataCount, l = i.getExtent(); return Math.abs(l[0] - l[1]) / s > a } return !1 } return n === !0 }, t.prototype.makeElOption = function () { }, t.prototype.createPointerEl = function (t, e) { var n = e.pointer; if (n) { var i = PY(t).pointerEl = new MO[n.type](OY(e.pointer)); t.add(i) } }, t.prototype.createLabelEl = function (t, e, n, i) { if (e.label) { var r = PY(t).labelEl = new $k(OY(e.label)); t.add(r), RS(r, i) } }, t.prototype.updatePointerEl = function (t, e, n) { var i = PY(t).pointerEl; i && e.pointer && (i.setStyle(e.pointer.style), n(i, {shape: e.pointer.shape})) }, t.prototype.updateLabelEl = function (t, e, n, i) { var r = PY(t).labelEl; r && (r.setStyle(e.label.style), n(r, {x: e.label.x, y: e.label.y}), RS(r, i)) }, t.prototype._renderHandle = function (t) { if (!this._dragging && this.updateHandleTransform) { var e = this._axisPointerModel, n = this._api.getZr(), i = this._handle, r = e.getModel("handle"), o = e.get("status"); if (!r.get("show") || !o || "hide" === o) return i && n.remove(i), void (this._handle = null); var a; this._handle || (a = !0, i = this._handle = Ss(r.get("icon"), { cursor: "move", draggable: !0, onmousemove: function (t) { NA(t.event) }, onmousedown: RY(this._onHandleDragMove, this, 0, 0), drift: RY(this._onHandleDragMove, this), ondragend: RY(this._onHandleDragEnd, this) }), n.add(i)), ES(i, e, !1), i.setStyle(r.getItemStyle(null, ["color", "borderColor", "borderWidth", "opacity", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"])); var s = r.get("size"); M(s) || (s = [s, s]), i.scaleX = s[0] / 2, i.scaleY = s[1] / 2, Oh(this, "_doDispatchAxisPointer", r.get("throttle") || 0, "fixRate"), this._moveHandleToValue(t, a) } }, t.prototype._moveHandleToValue = function (t, e) { PS(this._axisPointerModel, !e && this._moveAnimation, this._handle, zS(this.getHandleTransform(t, this._axisModel, this._axisPointerModel))) }, t.prototype._onHandleDragMove = function (t, e) { var n = this._handle; if (n) { this._dragging = !0; var i = this.updateHandleTransform(zS(n), [t, e], this._axisModel, this._axisPointerModel); this._payloadInfo = i, n.stopAnimation(), n.attr(zS(i)), PY(n).lastProp = null, this._doDispatchAxisPointer() } }, t.prototype._doDispatchAxisPointer = function () { var t = this._handle; if (t) { var e = this._payloadInfo, n = this._axisModel; this._api.dispatchAction({ type: "updateAxisPointer", x: e.cursorPoint[0], y: e.cursorPoint[1], tooltipOption: e.tooltipOption, axesInfo: [{axisDim: n.axis.dim, axisIndex: n.componentIndex}] }) } }, t.prototype._onHandleDragEnd = function () { this._dragging = !1; var t = this._handle; if (t) { var e = this._axisPointerModel.get("value"); this._moveHandleToValue(e), this._api.dispatchAction({type: "hideTip"}) } }, t.prototype.clear = function (t) { this._lastValue = null, this._lastStatus = null; var e = t.getZr(), n = this._group, i = this._handle; e && n && (this._lastGraphicKey = null, n && e.remove(n), i && e.remove(i), this._group = null, this._handle = null, this._payloadInfo = null) }, t.prototype.doClear = function () { }, t.prototype.buildLabel = function (t, e, n) { return n = n || 0, {x: t[n], y: t[1 - n], width: e[n], height: e[1 - n]} }, t }(), EY = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.makeElOption = function (t, e, n, i, r) { var o = n.axis; "angle" === o.dim && (this.animationThreshold = Math.PI / 18); var a = o.polar, s = a.getOtherAxis(o), l = s.getExtent(), u = o.dataToCoord(e), h = i.get("type"); if (h && "none" !== h) { var c = NS(i), p = NY[h](o, a, u, l); p.style = c, t.graphicKey = p.type, t.pointer = p } var d = i.get(["label", "margin"]), f = ZS(e, n, i, a, d); BS(t, n, i, r, f) }, n }(zY), NY = { line: function (t, e, n, i) { return "angle" === t.dim ? { type: "Line", shape: WS(e.coordToPoint([i[0], n]), e.coordToPoint([i[1], n])) } : {type: "Circle", shape: {cx: e.cx, cy: e.cy, r: n}} }, shadow: function (t, e, n, i) { var r = Math.max(1, t.getBandWidth()), o = Math.PI / 180; return "angle" === t.dim ? { type: "Sector", shape: YS(e.cx, e.cy, i[0], i[1], (-n - r / 2) * o, (-n + r / 2) * o) } : {type: "Sector", shape: YS(e.cx, e.cy, n - r / 2, n + r / 2, 0, 2 * Math.PI)} } }, BY = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.makeElOption = function (t, e, n, i, r) { var o = n.axis, a = o.grid, s = i.get("type"), l = US(a, o).getOtherAxis(o).getGlobalExtent(), u = o.toGlobalCoord(o.dataToCoord(e, !0)); if (s && "none" !== s) { var h = NS(i), c = VY[s](o, u, l); c.style = h, t.graphicKey = c.type, t.pointer = c } var p = qg(a.model, n); HS(e, t, p, n, i, r) }, n.prototype.getHandleTransform = function (t, e, n) { var i = qg(e.axis.grid.model, e, {labelInside: !1}); i.labelMargin = n.get(["handle", "margin"]); var r = GS(e.axis, t, i); return {x: r[0], y: r[1], rotation: i.rotation + (i.labelDirection < 0 ? Math.PI : 0)} }, n.prototype.updateHandleTransform = function (t, e, n) { var i = n.axis, r = i.grid, o = i.getGlobalExtent(!0), a = US(r, i).getOtherAxis(i).getGlobalExtent(), s = "x" === i.dim ? 0 : 1, l = [t.x, t.y]; l[s] += e[s], l[s] = Math.min(o[1], l[s]), l[s] = Math.max(o[0], l[s]); var u = (a[1] + a[0]) / 2, h = [u, u]; h[s] = l[s]; var c = [{verticalAlign: "middle"}, {align: "center"}]; return {x: l[0], y: l[1], rotation: t.rotation, cursorPoint: h, tooltipOption: c[s]} }, n }(zY), VY = { line: function (t, e, n) { var i = WS([e, n[0]], [e, n[1]], jS(t)); return {type: "Line", subPixelOptimize: !0, shape: i} }, shadow: function (t, e, n) { var i = Math.max(1, t.getBandWidth()), r = n[1] - n[0]; return {type: "Rect", shape: XS([e - i / 2, n[0]], [i, r], jS(t))} } }, FY = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "axisPointer", n.defaultOption = { show: "auto", zlevel: 0, z: 50, type: "line", snap: !1, triggerTooltip: !0, value: null, status: null, link: [], animation: null, animationDurationUpdate: 200, lineStyle: {color: "#B9BEC9", width: 1, type: "dashed"}, shadowStyle: {color: "rgba(210,219,238,0.2)"}, label: { show: !0, formatter: null, precision: "auto", margin: 3, color: "#fff", padding: [5, 7, 5, 7], backgroundColor: "auto", borderColor: null, borderWidth: 0, borderRadius: 3 }, handle: { show: !1, icon: "M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z", size: 45, margin: 50, color: "#333", shadowBlur: 3, shadowColor: "#aaa", shadowOffsetX: 0, shadowOffsetY: 2, throttle: 40 } }, n }(gR), GY = ur(), HY = y, WY = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t, e, n) { var i = e.getComponent("tooltip"), r = t.get("triggerOn") || i && i.get("triggerOn") || "mousemove|click"; qS("axisPointer", n, function (t, e, n) { "none" !== r && ("leave" === t || r.indexOf(t) >= 0) && n({ type: "updateAxisPointer", currTrigger: t, x: e && e.offsetX, y: e && e.offsetY }) }) }, n.prototype.remove = function (t, e) { eM("axisPointer", e) }, n.prototype.dispose = function (t, e) { eM("axisPointer", e) }, n.type = "axisPointer", n }(Tz), XY = ur(), YY = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.findAxisModel = function (t) { var e, n = this.ecModel; return n.eachComponent(t, function (t) { t.getCoordSysModel() === this && (e = t) }, this), e }, n.type = "polar", n.dependencies = ["radiusAxis", "angleAxis"], n.defaultOption = { zlevel: 0, z: 0, center: ["50%", "50%"], radius: "80%" }, n }(gR), ZY = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.getCoordSysModel = function () { return this.getReferringComponents("polar", wL).models[0] }, n.type = "polarAxis", n }(gR); f(ZY, HV); var UY = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "angleAxis", n }(ZY), jY = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "radiusAxis", n }(ZY), qY = function (t) { function n(e, n) { return t.call(this, "radius", e, n) || this } return e(n, t), n.prototype.pointToData = function (t, e) { return this.polar.pointToData(t, e)["radius" === this.dim ? 0 : 1] }, n }(tF); qY.prototype.dataToRadius = tF.prototype.dataToCoord, qY.prototype.radiusToData = tF.prototype.coordToData; var KY = ur(), $Y = function (t) { function n(e, n) { return t.call(this, "angle", e, n || [0, 360]) || this } return e(n, t), n.prototype.pointToData = function (t, e) { return this.polar.pointToData(t, e)["radius" === this.dim ? 0 : 1] }, n.prototype.calculateCategoryInterval = function () { var t = this, e = t.getLabelModel(), n = t.scale, i = n.getExtent(), r = n.count(); if (i[1] - i[0] < 1) return 0; var o = i[0], a = t.dataToCoord(o + 1) - t.dataToCoord(o), s = Math.abs(a), l = ti(null == o ? "" : o + "", e.getFont(), "center", "top"), u = Math.max(l.height, 7), h = u / s; isNaN(h) && (h = 1 / 0); var c = Math.max(0, Math.floor(h)), p = KY(t.model), d = p.lastAutoInterval, f = p.lastTickCount; return null != d && null != f && Math.abs(d - c) <= 1 && Math.abs(f - r) <= 1 && d > c ? c = d : (p.lastTickCount = r, p.lastAutoInterval = c), c }, n }(tF); $Y.prototype.dataToAngle = tF.prototype.dataToCoord, $Y.prototype.angleToData = tF.prototype.coordToData; var JY = function () { function t(t) { this.dimensions = ["radius", "angle"], this.type = "polar", this.cx = 0, this.cy = 0, this._radiusAxis = new qY, this._angleAxis = new $Y, this.axisPointerEnabled = !0, this.name = t || "", this._radiusAxis.polar = this._angleAxis.polar = this } return t.prototype.containPoint = function (t) { var e = this.pointToCoord(t); return this._radiusAxis.contain(e[0]) && this._angleAxis.contain(e[1]) }, t.prototype.containData = function (t) { return this._radiusAxis.containData(t[0]) && this._angleAxis.containData(t[1]) }, t.prototype.getAxis = function (t) { var e = "_" + t + "Axis"; return this[e] }, t.prototype.getAxes = function () { return [this._radiusAxis, this._angleAxis] }, t.prototype.getAxesByScale = function (t) { var e = [], n = this._angleAxis, i = this._radiusAxis; return n.scale.type === t && e.push(n), i.scale.type === t && e.push(i), e }, t.prototype.getAngleAxis = function () { return this._angleAxis }, t.prototype.getRadiusAxis = function () { return this._radiusAxis }, t.prototype.getOtherAxis = function (t) { var e = this._angleAxis; return t === e ? this._radiusAxis : e }, t.prototype.getBaseAxis = function () { return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAngleAxis() }, t.prototype.getTooltipAxes = function (t) { var e = null != t && "auto" !== t ? this.getAxis(t) : this.getBaseAxis(); return {baseAxes: [e], otherAxes: [this.getOtherAxis(e)]} }, t.prototype.dataToPoint = function (t, e) { return this.coordToPoint([this._radiusAxis.dataToRadius(t[0], e), this._angleAxis.dataToAngle(t[1], e)]) }, t.prototype.pointToData = function (t, e) { var n = this.pointToCoord(t); return [this._radiusAxis.radiusToData(n[0], e), this._angleAxis.angleToData(n[1], e)] }, t.prototype.pointToCoord = function (t) { var e = t[0] - this.cx, n = t[1] - this.cy, i = this.getAngleAxis(), r = i.getExtent(), o = Math.min(r[0], r[1]), a = Math.max(r[0], r[1]); i.inverse ? o = a - 360 : a = o + 360; var s = Math.sqrt(e * e + n * n); e /= s, n /= s; for (var l = Math.atan2(-n, e) / Math.PI * 180, u = o > l ? 1 : -1; o > l || l > a;) l += 360 * u; return [s, l] }, t.prototype.coordToPoint = function (t) { var e = t[0], n = t[1] / 180 * Math.PI, i = Math.cos(n) * e + this.cx, r = -Math.sin(n) * e + this.cy; return [i, r] }, t.prototype.getArea = function () { var t = this.getAngleAxis(), e = this.getRadiusAxis(), n = e.getExtent().slice(); n[0] > n[1] && n.reverse(); var i = t.getExtent(), r = Math.PI / 180; return { cx: this.cx, cy: this.cy, r0: n[0], r: n[1], startAngle: -i[0] * r, endAngle: -i[1] * r, clockwise: t.inverse, contain: function (t, e) { var n = t - this.cx, i = e - this.cy, r = n * n + i * i, o = this.r, a = this.r0; return o * o >= r && r >= a * a } } }, t.prototype.convertToPixel = function (t, e, n) { var i = gM(e); return i === this ? this.dataToPoint(n) : null }, t.prototype.convertFromPixel = function (t, e, n) { var i = gM(e); return i === this ? this.pointToData(n) : null }, t }(), QY = { dimensions: JY.prototype.dimensions, create: function (t, e) { var n = []; return t.eachComponent("polar", function (t, i) { var r = new JY(i + ""); r.update = vM; var o = r.getRadiusAxis(), a = r.getAngleAxis(), s = t.findAxisModel("radiusAxis"), l = t.findAxisModel("angleAxis"); xM(o, s), xM(a, l), yM(r, t, e), n.push(r), t.coordinateSystem = r, r.model = t }), t.eachSeries(function (t) { if ("polar" === t.get("coordinateSystem")) { var e = t.getReferringComponents("polar", wL).models[0]; t.coordinateSystem = e.coordinateSystem } }), n } }, tZ = ["axisLine", "axisLabel", "axisTick", "minorTick", "splitLine", "minorSplitLine", "splitArea"], eZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.axisPointerClass = "PolarAxisPointer", e } return e(n, t), n.prototype.render = function (t) { if (this.group.removeAll(), t.get("show")) { var e = t.axis, n = e.polar, i = n.getRadiusAxis().getExtent(), r = e.getTicksCoords(), o = e.getMinorTicksCoords(), a = v(e.getViewLabels(), function (t) { t = s(t); var n = e.scale, i = "ordinal" === n.type ? n.getRawOrdinalNumber(t.tickValue) : t.tickValue; return t.coord = e.dataToCoord(i), t }); wM(a), wM(r), y(tZ, function (s) { !t.get([s, "show"]) || e.scale.isBlank() && "axisLine" !== s || nZ[s](this.group, t, n, r, o, i, a) }, this) } }, n.type = "angleAxis", n }(fG), nZ = { axisLine: function (t, e, n, i, r, o) { var a, s = e.getModel(["axisLine", "lineStyle"]), l = bM(n), u = l ? 0 : 1; a = 0 === o[u] ? new kP({ shape: {cx: n.cx, cy: n.cy, r: o[l]}, style: s.getLineStyle(), z2: 1, silent: !0 }) : new jP({ shape: {cx: n.cx, cy: n.cy, r: o[l], r0: o[u]}, style: s.getLineStyle(), z2: 1, silent: !0 }), a.style.fill = null, t.add(a) }, axisTick: function (t, e, n, i, r, o) { var a = e.getModel("axisTick"), s = (a.get("inside") ? -1 : 1) * a.get("length"), l = o[bM(n)], u = v(i, function (t) { return new eO({shape: _M(n, [l, l + s], t.coord)}) }); t.add(wO(u, {style: c(a.getModel("lineStyle").getLineStyle(), {stroke: e.get(["axisLine", "lineStyle", "color"])})})) }, minorTick: function (t, e, n, i, r, o) { if (r.length) { for (var a = e.getModel("axisTick"), s = e.getModel("minorTick"), l = (a.get("inside") ? -1 : 1) * s.get("length"), u = o[bM(n)], h = [], p = 0; p < r.length; p++) for (var d = 0; d < r[p].length; d++) h.push(new eO({shape: _M(n, [u, u + l], r[p][d].coord)})); t.add(wO(h, {style: c(s.getModel("lineStyle").getLineStyle(), c(a.getLineStyle(), {stroke: e.get(["axisLine", "lineStyle", "color"])}))})) } }, axisLabel: function (t, e, n, i, r, o, a) { var s = e.getCategories(!0), l = e.getModel("axisLabel"), u = l.get("margin"), h = e.get("triggerEvent"); y(a, function (i) { var r = l, a = i.tickValue, c = o[bM(n)], p = n.coordToPoint([c + u, i.coord]), d = n.cx, f = n.cy, g = Math.abs(p[0] - d) / c < .3 ? "center" : p[0] > d ? "left" : "right", y = Math.abs(p[1] - f) / c < .3 ? "middle" : p[1] > f ? "top" : "bottom"; if (s && s[a]) { var v = s[a]; D(v) && v.textStyle && (r = new VO(v.textStyle, l, l.ecModel)) } var m = new $k({ silent: cG.isLabelSilent(e), style: Os(r, { x: p[0], y: p[1], fill: r.getTextColor() || e.get(["axisLine", "lineStyle", "color"]), text: i.formattedLabel, align: g, verticalAlign: y }) }); if (t.add(m), h) { var x = cG.makeAxisEventDataBase(e); x.targetType = "axisLabel", x.value = i.rawLabel, tP(m).eventData = x } }, this) }, splitLine: function (t, e, n, i, r, o) { var a = e.getModel("splitLine"), s = a.getModel("lineStyle"), l = s.get("color"), u = 0; l = l instanceof Array ? l : [l]; for (var h = [], p = 0; p < i.length; p++) { var d = u++ % l.length; h[d] = h[d] || [], h[d].push(new eO({shape: _M(n, o, i[p].coord)})) } for (var p = 0; p < h.length; p++) t.add(wO(h[p], { style: c({stroke: l[p % l.length]}, s.getLineStyle()), silent: !0, z: e.get("z") })) }, minorSplitLine: function (t, e, n, i, r, o) { if (r.length) { for (var a = e.getModel("minorSplitLine"), s = a.getModel("lineStyle"), l = [], u = 0; u < r.length; u++) for (var h = 0; h < r[u].length; h++) l.push(new eO({shape: _M(n, o, r[u][h].coord)})); t.add(wO(l, {style: s.getLineStyle(), silent: !0, z: e.get("z")})) } }, splitArea: function (t, e, n, i, r, o) { if (i.length) { var a = e.getModel("splitArea"), s = a.getModel("areaStyle"), l = s.get("color"), u = 0; l = l instanceof Array ? l : [l]; for (var h = [], p = Math.PI / 180, d = -i[0].coord * p, f = Math.min(o[0], o[1]), g = Math.max(o[0], o[1]), y = e.get("clockwise"), v = 1, m = i.length; m >= v; v++) { var x = v === m ? i[0].coord : i[v].coord, _ = u++ % l.length; h[_] = h[_] || [], h[_].push(new ZP({ shape: { cx: n.cx, cy: n.cy, r0: f, r: g, startAngle: d, endAngle: -x * p, clockwise: y }, silent: !0 })), d = -x * p } for (var v = 0; v < h.length; v++) t.add(wO(h[v], { style: c({fill: l[v % l.length]}, s.getAreaStyle()), silent: !0 })) } } }, iZ = ["axisLine", "axisTickLabel", "axisName"], rZ = ["splitLine", "splitArea", "minorSplitLine"], oZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.axisPointerClass = "PolarAxisPointer", e } return e(n, t), n.prototype.render = function (t) { if (this.group.removeAll(), t.get("show")) { var e = this._axisGroup, n = this._axisGroup = new sL; this.group.add(n); var i = t.axis, r = i.polar, o = r.getAngleAxis(), a = i.getTicksCoords(), s = i.getMinorTicksCoords(), l = o.getExtent()[0], u = i.getExtent(), h = SM(r, t, l), c = new cG(t, h); y(iZ, c.add, c), n.add(c.getGroup()), _s(e, n, t), y(rZ, function (e) { t.get([e, "show"]) && !i.scale.isBlank() && aZ[e](this.group, t, r, l, u, a, s) }, this) } }, n.type = "radiusAxis", n }(fG), aZ = { splitLine: function (t, e, n, i, r, o) { var a = e.getModel("splitLine"), s = a.getModel("lineStyle"), l = s.get("color"), u = 0; l = l instanceof Array ? l : [l]; for (var h = [], p = 0; p < o.length; p++) { var d = u++ % l.length; h[d] = h[d] || [], h[d].push(new kP({shape: {cx: n.cx, cy: n.cy, r: o[p].coord}})) } for (var p = 0; p < h.length; p++) t.add(wO(h[p], { style: c({ stroke: l[p % l.length], fill: null }, s.getLineStyle()), silent: !0 })) }, minorSplitLine: function (t, e, n, i, r, o, a) { if (a.length) { for (var s = e.getModel("minorSplitLine"), l = s.getModel("lineStyle"), u = [], h = 0; h < a.length; h++) for (var p = 0; p < a[h].length; p++) u.push(new kP({ shape: { cx: n.cx, cy: n.cy, r: a[h][p].coord } })); t.add(wO(u, {style: c({fill: null}, l.getLineStyle()), silent: !0})) } }, splitArea: function (t, e, n, i, r, o) { if (o.length) { var a = e.getModel("splitArea"), s = a.getModel("areaStyle"), l = s.get("color"), u = 0; l = l instanceof Array ? l : [l]; for (var h = [], p = o[0].coord, d = 1; d < o.length; d++) { var f = u++ % l.length; h[f] = h[f] || [], h[f].push(new ZP({ shape: { cx: n.cx, cy: n.cy, r0: p, r: o[d].coord, startAngle: 0, endAngle: 2 * Math.PI }, silent: !0 })), p = o[d].coord } for (var d = 0; d < h.length; d++) t.add(wO(h[d], { style: c({fill: l[d % l.length]}, s.getAreaStyle()), silent: !0 })) } } }, sZ = {startAngle: 90, clockwise: !0, splitNumber: 12, axisLabel: {rotate: 0}}, lZ = {splitNumber: 5}, uZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "polar", n }(Tz); df(AM); var hZ = {geoJSON: {aspectScale: .75, invertLongitute: !0}, geoSVG: {aspectScale: 1, invertLongitute: !1}}, cZ = function (t) { function n(e, n, i) { var r = t.call(this, e) || this; r.dimensions = ["lng", "lat"], r.type = "geo", r._nameCoordMap = Z(), r.map = n; var o = yN.load(n, i.nameMap, i.nameProperty), a = yN.getGeoResource(n); r.resourceType = a ? a.type : null; var s = hZ[a.type]; r._regionsMap = o.regionsMap, r._invertLongitute = s.invertLongitute, r.regions = o.regions, r.aspectScale = B(i.aspectScale, s.aspectScale); var l = o.boundingRect; return r.setBoundingRect(l.x, l.y, l.width, l.height), r } return e(n, t), n.prototype._transformTo = function (t, e, n, i) { var r = this.getBoundingRect(), o = this._invertLongitute; r = r.clone(), o && (r.y = -r.y - r.height); var a = this._rawTransformable; a.transform = r.calculateTransform(new $D(t, e, n, i)); var s = a.parent; a.parent = null, a.decomposeTransform(), a.parent = s, o && (a.scaleY = -a.scaleY), this._updateTransform() }, n.prototype.getRegion = function (t) { return this._regionsMap.get(t) }, n.prototype.getRegionByCoord = function (t) { for (var e = this.regions, n = 0; n < e.length; n++) { var i = e[n]; if ("geoJSON" === i.type && i.contain(t)) return e[n] } }, n.prototype.addGeoCoord = function (t, e) { this._nameCoordMap.set(t, e) }, n.prototype.getGeoCoord = function (t) { var e = this._regionsMap.get(t); return this._nameCoordMap.get(t) || e && e.getCenter() }, n.prototype.dataToPoint = function (t, e, n) { return "string" == typeof t && (t = this.getGeoCoord(t)), t ? nH.prototype.dataToPoint.call(this, t, e, n) : void 0 }, n.prototype.convertToPixel = function (t, e, n) { var i = DM(e); return i === this ? i.dataToPoint(n) : null }, n.prototype.convertFromPixel = function (t, e, n) { var i = DM(e); return i === this ? i.pointToData(n) : null }, n }(nH); f(cZ, nH); var pZ = function () { function t() { this.dimensions = cZ.prototype.dimensions } return t.prototype.create = function (t, e) { var n = []; t.eachComponent("geo", function (t, i) { var r = t.get("map"), o = new cZ(r + i, r, { nameMap: t.get("nameMap"), nameProperty: t.get("nameProperty"), aspectScale: t.get("aspectScale") }); o.zoomLimit = t.get("scaleLimit"), n.push(o), t.coordinateSystem = o, o.model = t, o.resize = LM, o.resize(t, e) }), t.eachSeries(function (t) { var e = t.get("coordinateSystem"); if ("geo" === e) { var i = t.get("geoIndex") || 0; t.coordinateSystem = n[i] } }); var i = {}; return t.eachSeriesByType("map", function (t) { if (!t.getHostGeoModel()) { var e = t.getMapType(); i[e] = i[e] || [], i[e].push(t) } }), y(i, function (t, i) { var r = v(t, function (t) { return t.get("nameMap") }), o = new cZ(i, i, { nameMap: u(r), nameProperty: t[0].get("nameProperty"), aspectScale: t[0].get("aspectScale") }); o.zoomLimit = N.apply(null, v(t, function (t) { return t.get("scaleLimit") })), n.push(o), o.resize = LM, o.resize(t[0], e), y(t, function (t) { t.coordinateSystem = o, kM(o, t) }) }), n }, t.prototype.getFilledRegions = function (t, e, n, i) { for (var r = (t || []).slice(), o = Z(), a = 0; a < r.length; a++) o.set(r[a].name, r[a]); var s = yN.load(e, n, i); return y(s.regions, function (t) { var e = t.name; !o.get(e) && r.push({name: e}) }), r }, t }(), dZ = new pZ, fZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.init = function (t, e, n) { var i = yN.getGeoResource(t.map); if (i && "geoJSON" === i.type) { var r = t.itemStyle = t.itemStyle || {}; "color" in r || (r.color = "#eee") } this.mergeDefaultAndTheme(t, n), Wi(t, "label", ["show"]) }, n.prototype.optionUpdated = function () { var t = this, e = this.option; e.regions = dZ.getFilledRegions(e.regions, e.map, e.nameMap, e.nameProperty); var n = {}; this._optionModelMap = m(e.regions || [], function (e, i) { var r = i.name; return r && (e.set(r, new VO(i, t, t.ecModel)), i.selected && (n[r] = !0)), e }, Z()), e.selectedMap || (e.selectedMap = n) }, n.prototype.getRegionModel = function (t) { return this._optionModelMap.get(t) || new VO(null, this, this.ecModel) }, n.prototype.getFormattedLabel = function (t, e) { var n = this.getRegionModel(t), i = n.get("normal" === e ? ["label", "formatter"] : ["emphasis", "label", "formatter"]), r = {name: t}; return "function" == typeof i ? (r.status = e, i(r)) : "string" == typeof i ? i.replace("{a}", null != t ? t : "") : void 0 }, n.prototype.setZoom = function (t) { this.option.zoom = t }, n.prototype.setCenter = function (t) { this.option.center = t }, n.prototype.select = function (t) { var e = this.option, n = e.selectedMode; if (n) { "multiple" !== n && (e.selectedMap = null); var i = e.selectedMap || (e.selectedMap = {}); i[t] = !0 } }, n.prototype.unSelect = function (t) { var e = this.option.selectedMap; e && (e[t] = !1) }, n.prototype.toggleSelected = function (t) { this[this.isSelected(t) ? "unSelect" : "select"](t) }, n.prototype.isSelected = function (t) { var e = this.option.selectedMap; return !(!e || !e[t]) }, n.type = "geo", n.layoutMode = "box", n.defaultOption = { zlevel: 0, z: 0, show: !0, left: "center", top: "center", aspectScale: null, silent: !1, map: "", boundingCoords: null, center: null, zoom: 1, scaleLimit: null, label: {show: !1, color: "#000"}, itemStyle: {borderWidth: .5, borderColor: "#444"}, emphasis: {label: {show: !0, color: "rgb(100,0,0)"}, itemStyle: {color: "rgba(255,215,0,0.8)"}}, select: {label: {show: !0, color: "rgb(100,0,0)"}, itemStyle: {color: "rgba(255,215,0,0.8)"}}, regions: [] }, n }(gR), gZ = ["rect", "circle", "line", "ellipse", "polygon", "polyline", "path"], yZ = Z(gZ), vZ = Z(gZ.concat(["g"])), mZ = Z(gZ.concat(["g"])), xZ = ur(), _Z = function () { function t(t) { var e = new sL; this.uid = Gs("ec_map_draw"), this._controller = new rH(t.getZr()), this._controllerHost = {target: e}, this.group = e, e.add(this._regionsGroup = new sL), e.add(this._svgGroup = new sL) } return t.prototype.draw = function (t, e, n, i, r) { var o = "geo" === t.mainType, a = t.getData && t.getData(); o && e.eachComponent({mainType: "series", subType: "map"}, function (e) { a || e.getHostGeoModel() !== t || (a = e.getData()) }); var s = t.coordinateSystem, l = this._regionsGroup, u = this.group, h = s.getTransformInfo(), c = h.raw, p = h.roam, d = !l.childAt(0) || r; d ? (u.x = p.x, u.y = p.y, u.scaleX = p.scaleX, u.scaleY = p.scaleY, u.dirty()) : us(u, p, t); var f = a && a.getVisual("visualMeta") && a.getVisual("visualMeta").length > 0, g = { api: n, geo: s, mapOrGeoModel: t, data: a, isVisualEncodedByVisualMap: f, isGeo: o, transformInfoRaw: c }; "geoJSON" === s.resourceType ? this._buildGeoJSON(g) : "geoSVG" === s.resourceType && this._buildSVG(g), this._updateController(t, e, n), this._updateMapSelectHandler(t, l, n, i) }, t.prototype._buildGeoJSON = function (t) { var e = this._regionsGroupByName = Z(), n = Z(), i = this._regionsGroup, r = t.transformInfoRaw, o = t.mapOrGeoModel, a = t.data, s = function (t) { return [t[0] * r.scaleX + r.x, t[1] * r.scaleY + r.y] }; i.removeAll(), y(t.geo.regions, function (r) { var l = r.name, u = e.get(l), h = n.get(l) || {}, c = h.dataIdx, p = h.regionModel; u || (u = e.set(l, new sL), i.add(u), c = a ? a.indexOfName(l) : null, p = t.isGeo ? o.getRegionModel(l) : a ? a.getItemModel(c) : null, n.set(l, { dataIdx: c, regionModel: p })); var d = new sO({segmentIgnoreThreshold: 1, shape: {paths: []}}); u.add(d), y(r.geometries, function (t) { if ("polygon" === t.type) { for (var e = [], n = 0; n < t.exterior.length; ++n) e.push(s(t.exterior[n])); d.shape.paths.push(new KP({segmentIgnoreThreshold: 1, shape: {points: e}})); for (var n = 0; n < (t.interiors ? t.interiors.length : 0); ++n) { for (var i = t.interiors[n], r = [], o = 0; o < i.length; ++o) r.push(s(i[o])); d.shape.paths.push(new KP({segmentIgnoreThreshold: 1, shape: {points: r}})) } } }), OM(t, d, c, p), d instanceof HL && (d.culling = !0); var f = s(r.getCenter()); RM(t, d, l, p, o, c, f) }), e.each(function (e, i) { var r = n.get(i), a = r.dataIdx, s = r.regionModel; zM(t, e, i, s, o, a), EM(t, e, i, s, o), NM(t, e, i, s, o) }, this) }, t.prototype._buildSVG = function (t) { var e = t.geo.map, n = t.transformInfoRaw; this._svgGroup.x = n.x, this._svgGroup.y = n.y, this._svgGroup.scaleX = n.scaleX, this._svgGroup.scaleY = n.scaleY, this._svgResourceChanged(e) && (this._freeSVG(), this._useSVG(e)); var i = this._svgDispatcherMap = Z(), r = !1; y(this._svgGraphicRecord.named, function (e) { var n = e.name, o = t.mapOrGeoModel, a = t.data, s = e.svgNodeTagLower, l = e.el, u = a ? a.indexOfName(n) : null, h = o.getRegionModel(n); if (null != yZ.get(s) && l instanceof HL && OM(t, l, u, h), l instanceof HL && (l.culling = !0), l.z2EmphasisLift = 0, !e.namedFrom && (null != mZ.get(s) && RM(t, l, n, h, o, u, null), zM(t, l, n, h, o, u), EM(t, l, n, h, o), null != vZ.get(s))) { var c = NM(t, l, n, h, o); "self" === c && (r = !0); var p = i.get(n) || i.set(n, []); p.push(l) } }, this), this._enableBlurEntireSVG(r, t) }, t.prototype._enableBlurEntireSVG = function (t, e) { if (t && e.isGeo) { var n = e.mapOrGeoModel.getModel(["blur", "itemStyle"]).getItemStyle(), i = n.opacity; this._svgGraphicRecord.root.traverse(function (t) { if (!t.isGroup) { ia(t); var e = t.ensureState("blur").style || {}; null == e.opacity && null != i && (e.opacity = i), t.ensureState("emphasis") } }) } }, t.prototype.remove = function () { this._regionsGroup.removeAll(), this._regionsGroupByName = null, this._svgGroup.removeAll(), this._freeSVG(), this._controller.dispose(), this._controllerHost = null }, t.prototype.findHighDownDispatchers = function (t, e) { if (null == t) return []; var n = e.coordinateSystem; if ("geoJSON" === n.resourceType) { var i = this._regionsGroupByName; if (i) { var r = i.get(t); return r ? [r] : [] } } else if ("geoSVG" === n.resourceType) return this._svgDispatcherMap && this._svgDispatcherMap.get(t) || [] }, t.prototype._svgResourceChanged = function (t) { return this._svgMapName !== t }, t.prototype._useSVG = function (t) { var e = yN.getGeoResource(t); if (e && "geoSVG" === e.type) { var n = e.useGraphic(this.uid); this._svgGroup.add(n.root), this._svgGraphicRecord = n, this._svgMapName = t } }, t.prototype._freeSVG = function () { var t = this._svgMapName; if (null != t) { var e = yN.getGeoResource(t); e && "geoSVG" === e.type && e.freeGraphic(this.uid), this._svgGraphicRecord = null, this._svgDispatcherMap = null, this._svgGroup.removeAll(), this._svgMapName = null } }, t.prototype._updateController = function (t, e, n) { function i() { var e = {type: "geoRoam", componentType: s}; return e[s + "Id"] = t.id, e } var r = t.coordinateSystem, o = this._controller, a = this._controllerHost; a.zoomLimit = t.get("scaleLimit"), a.zoom = r.getZoom(), o.enable(t.get("roam") || !1); var s = t.mainType; o.off("pan").on("pan", function (t) { this._mouseDownFlag = !1, cv(a, t.dx, t.dy), n.dispatchAction(h(i(), {dx: t.dx, dy: t.dy})) }, this), o.off("zoom").on("zoom", function (t) { this._mouseDownFlag = !1, pv(a, t.scale, t.originX, t.originY), n.dispatchAction(h(i(), { zoom: t.scale, originX: t.originX, originY: t.originY })) }, this), o.setPointerChecker(function (e, i, o) { return r.containPoint([i, o]) && !_v(e, n, t) }) }, t.prototype.resetForLabelLayout = function () { this.group.traverse(function (t) { var e = t.getTextContent(); e && (e.ignore = xZ(e).ignore) }) }, t.prototype._updateMapSelectHandler = function (t, e) { var n = this; e.off("mousedown"), e.off("click"), t.get("selectedMode") && (e.on("mousedown", function () { n._mouseDownFlag = !0 }), e.on("click", function () { n._mouseDownFlag && (n._mouseDownFlag = !1) })) }, t }(), bZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.focusBlurEnabled = !0, e } return e(n, t), n.prototype.init = function (t, e) { var n = new _Z(e); this._mapDraw = n, this.group.add(n.group), this._api = e }, n.prototype.render = function (t, e, n, i) { var r = this._mapDraw; t.get("show") ? r.draw(t, e, n, this, i) : this._mapDraw.group.removeAll(), r.group.on("click", this._handleRegionClick, this), r.group.silent = t.get("silent"), this._model = t, this.updateSelectStatus(t, e, n) }, n.prototype._handleRegionClick = function (t) { var e; bc(t.target, function (t) { return null != (e = tP(t).eventData) }, !0), e && this._api.dispatchAction({type: "geoToggleSelect", geoId: this._model.id, name: e.name}) }, n.prototype.updateSelectStatus = function (t, e, n) { var i = this; this._mapDraw.group.traverse(function (t) { var e = tP(t).eventData; return e ? (i._model.isSelected(e.name) ? n.enterSelect(t) : n.leaveSelect(t), !0) : void 0 }) }, n.prototype.findHighDownDispatchers = function (t) { return this._mapDraw && this._mapDraw.findHighDownDispatchers(t, this._model) }, n.prototype.dispose = function () { this._mapDraw && this._mapDraw.remove() }, n.type = "geo", n }(Tz); df(BM); var wZ = ["axisLine", "axisTickLabel", "axisName"], SZ = ["splitArea", "splitLine"], MZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.axisPointerClass = "SingleAxisPointer", e } return e(n, t), n.prototype.render = function (e, n, i, r) { var o = this.group; o.removeAll(); var a = this._axisGroup; this._axisGroup = new sL; var s = VM(e), l = new cG(e, s); y(wZ, l.add, l), o.add(this._axisGroup), o.add(l.getGroup()), y(SZ, function (t) { e.get([t, "show"]) && IZ[t](this, this.group, this._axisGroup, e) }, this), _s(a, this._axisGroup, e), t.prototype.render.call(this, e, n, i, r) }, n.prototype.remove = function () { Sy(this) }, n.type = "singleAxis", n }(fG), IZ = { splitLine: function (t, e, n, i) { var r = i.axis; if (!r.scale.isBlank()) { var o = i.getModel("splitLine"), a = o.getModel("lineStyle"), s = a.get("color"); s = s instanceof Array ? s : [s]; for (var l = i.coordinateSystem.getRect(), u = r.isHorizontal(), h = [], p = 0, d = r.getTicksCoords({tickModel: o}), f = [], g = [], y = 0; y < d.length; ++y) { var v = r.toGlobalCoord(d[y].coord); u ? (f[0] = v, f[1] = l.y, g[0] = v, g[1] = l.y + l.height) : (f[0] = l.x, f[1] = v, g[0] = l.x + l.width, g[1] = v); var m = p++ % s.length; h[m] = h[m] || [], h[m].push(new eO({ subPixelOptimize: !0, shape: {x1: f[0], y1: f[1], x2: g[0], y2: g[1]}, silent: !0 })) } for (var x = a.getLineStyle(["color"]), y = 0; y < h.length; ++y) e.add(wO(h[y], { style: c({stroke: s[y % s.length]}, x), silent: !0 })) } }, splitArea: function (t, e, n, i) { wy(t, n, i, i) } }, TZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.getCoordSysModel = function () { return this }, n.type = "singleAxis", n.layoutMode = "box", n.defaultOption = { left: "5%", top: "5%", right: "5%", bottom: "5%", type: "value", position: "bottom", orient: "horizontal", axisLine: {show: !0, lineStyle: {width: 1, type: "solid"}}, tooltip: {show: !0}, axisTick: {show: !0, length: 6, lineStyle: {width: 1}}, axisLabel: {show: !0, interval: "auto"}, splitLine: {show: !0, lineStyle: {type: "dashed", opacity: .2}} }, n }(gR); f(TZ, HV.prototype); var CZ = function (t) { function n(e, n, i, r, o) { var a = t.call(this, e, n, i) || this; return a.type = r || "value", a.position = o || "bottom", a } return e(n, t), n.prototype.isHorizontal = function () { var t = this.position; return "top" === t || "bottom" === t }, n.prototype.pointToData = function (t) { return this.coordinateSystem.pointToData(t)[0] }, n }(tF), AZ = function () { function t(t, e, n) { this.type = "single", this.dimension = "single", this.dimensions = ["single"], this.axisPointerEnabled = !0, this.model = t, this._init(t, e, n) } return t.prototype._init = function (t) { var e = this.dimension, n = new CZ(e, Jd(t), [0, 0], t.get("type"), t.get("position")), i = "category" === n.type; n.onBand = i && t.get("boundaryGap"), n.inverse = t.get("inverse"), n.orient = t.get("orient"), t.axis = n, n.model = t, n.coordinateSystem = this, this._axis = n }, t.prototype.update = function (t) { t.eachSeries(function (t) { if (t.coordinateSystem === this) { var e = t.getData(); y(e.mapDimensionsAll(this.dimension), function (t) { this._axis.scale.unionExtentFromData(e, t) }, this), $d(this._axis.scale, this._axis.model) } }, this) }, t.prototype.resize = function (t, e) { this._rect = kl({ left: t.get("left"), top: t.get("top"), right: t.get("right"), bottom: t.get("bottom"), width: t.get("width"), height: t.get("height") }, {width: e.getWidth(), height: e.getHeight()}), this._adjustAxis() }, t.prototype.getRect = function () { return this._rect }, t.prototype._adjustAxis = function () { var t = this._rect, e = this._axis, n = e.isHorizontal(), i = n ? [0, t.width] : [0, t.height], r = e.reverse ? 1 : 0; e.setExtent(i[r], i[1 - r]), this._updateAxisTransform(e, n ? t.x : t.y) }, t.prototype._updateAxisTransform = function (t, e) { var n = t.getExtent(), i = n[0] + n[1], r = t.isHorizontal(); t.toGlobalCoord = r ? function (t) { return t + e } : function (t) { return i - t + e }, t.toLocalCoord = r ? function (t) { return t - e } : function (t) { return i - t + e } }, t.prototype.getAxis = function () { return this._axis }, t.prototype.getBaseAxis = function () { return this._axis }, t.prototype.getAxes = function () { return [this._axis] }, t.prototype.getTooltipAxes = function () { return {baseAxes: [this.getAxis()], otherAxes: []} }, t.prototype.containPoint = function (t) { var e = this.getRect(), n = this.getAxis(), i = n.orient; return "horizontal" === i ? n.contain(n.toLocalCoord(t[0])) && t[1] >= e.y && t[1] <= e.y + e.height : n.contain(n.toLocalCoord(t[1])) && t[0] >= e.y && t[0] <= e.y + e.height }, t.prototype.pointToData = function (t) { var e = this.getAxis(); return [e.coordToData(e.toLocalCoord(t["horizontal" === e.orient ? 0 : 1]))] }, t.prototype.dataToPoint = function (t) { var e = this.getAxis(), n = this.getRect(), i = [], r = "horizontal" === e.orient ? 0 : 1; return t instanceof Array && (t = t[0]), i[r] = e.toGlobalCoord(e.dataToCoord(+t)), i[1 - r] = 0 === r ? n.y + n.height / 2 : n.x + n.width / 2, i }, t.prototype.convertToPixel = function (t, e, n) { var i = FM(e); return i === this ? this.dataToPoint(n) : null }, t.prototype.convertFromPixel = function (t, e, n) { var i = FM(e); return i === this ? this.pointToData(n) : null }, t }(), DZ = {create: GM, dimensions: AZ.prototype.dimensions}, LZ = ["x", "y"], kZ = ["width", "height"], PZ = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.makeElOption = function (t, e, n, i, r) { var o = n.axis, a = o.coordinateSystem, s = WM(a, 1 - HM(o)), l = a.dataToPoint(e)[0], u = i.get("type"); if (u && "none" !== u) { var h = NS(i), c = OZ[u](o, l, s); c.style = h, t.graphicKey = c.type, t.pointer = c } var p = VM(n); HS(e, t, p, n, i, r) }, n.prototype.getHandleTransform = function (t, e, n) { var i = VM(e, {labelInside: !1}); i.labelMargin = n.get(["handle", "margin"]); var r = GS(e.axis, t, i); return {x: r[0], y: r[1], rotation: i.rotation + (i.labelDirection < 0 ? Math.PI : 0)} }, n.prototype.updateHandleTransform = function (t, e, n) { var i = n.axis, r = i.coordinateSystem, o = HM(i), a = WM(r, o), s = [t.x, t.y]; s[o] += e[o], s[o] = Math.min(a[1], s[o]), s[o] = Math.max(a[0], s[o]); var l = WM(r, 1 - o), u = (l[1] + l[0]) / 2, h = [u, u]; return h[o] = s[o], { x: s[0], y: s[1], rotation: t.rotation, cursorPoint: h, tooltipOption: {verticalAlign: "middle"} } }, n }(zY), OZ = { line: function (t, e, n) { var i = WS([e, n[0]], [e, n[1]], HM(t)); return {type: "Line", subPixelOptimize: !0, shape: i} }, shadow: function (t, e, n) { var i = t.getBandWidth(), r = n[1] - n[0]; return {type: "Rect", shape: XS([e - i / 2, n[0]], [i, r], HM(t))} } }, RZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "single", n }(Tz); df(XM); var zZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.init = function (e) { var n = El(e); t.prototype.init.apply(this, arguments), YM(e, n) }, n.prototype.mergeOption = function (e) { t.prototype.mergeOption.apply(this, arguments), YM(this.option, e) }, n.prototype.getCellSize = function () { return this.option.cellSize }, n.type = "calendar", n.defaultOption = { zlevel: 0, z: 2, left: 80, top: 60, cellSize: 20, orient: "horizontal", splitLine: {show: !0, lineStyle: {color: "#000", width: 1, type: "solid"}}, itemStyle: {color: "#fff", borderWidth: 1, borderColor: "#ccc"}, dayLabel: {show: !0, firstDay: 0, position: "start", margin: "50%", nameMap: "en", color: "#000"}, monthLabel: { show: !0, position: "start", margin: 5, align: "center", nameMap: "en", formatter: null, color: "#000" }, yearLabel: { show: !0, position: null, margin: 30, formatter: null, color: "#ccc", fontFamily: "sans-serif", fontWeight: "bolder", fontSize: 20 } }, n }(gR), EZ = { EN: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], CN: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"] }, NZ = {EN: ["S", "M", "T", "W", "T", "F", "S"], CN: ["日", "一", "二", "三", "四", "五", "六"]}, BZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t) { var e = this.group; e.removeAll(); var n = t.coordinateSystem, i = n.getRangeInfo(), r = n.getOrient(); this._renderDayRect(t, i, e), this._renderLines(t, i, r, e), this._renderYearText(t, i, r, e), this._renderMonthText(t, r, e), this._renderWeekText(t, i, r, e) }, n.prototype._renderDayRect = function (t, e, n) { for (var i = t.coordinateSystem, r = t.getModel("itemStyle").getItemStyle(), o = i.getCellWidth(), a = i.getCellHeight(), s = e.start.time; s <= e.end.time; s = i.getNextNDay(s, 1).time) { var l = i.dataToRect([s], !1).tl, u = new Uk({shape: {x: l[0], y: l[1], width: o, height: a}, cursor: "default", style: r}); n.add(u) } }, n.prototype._renderLines = function (t, e, n, i) { function r(e) { o._firstDayOfMonth.push(a.getDateInfo(e)), o._firstDayPoints.push(a.dataToRect([e], !1).tl); var r = o._getLinePointsOfOneWeek(t, e, n); o._tlpoints.push(r[0]), o._blpoints.push(r[r.length - 1]), l && o._drawSplitline(r, s, i) } var o = this, a = t.coordinateSystem, s = t.getModel(["splitLine", "lineStyle"]).getLineStyle(), l = t.get(["splitLine", "show"]), u = s.lineWidth; this._tlpoints = [], this._blpoints = [], this._firstDayOfMonth = [], this._firstDayPoints = []; for (var h = e.start, c = 0; h.time <= e.end.time; c++) { r(h.formatedDate), 0 === c && (h = a.getDateInfo(e.start.y + "-" + e.start.m)); var p = h.date; p.setMonth(p.getMonth() + 1), h = a.getDateInfo(p) } r(a.getNextNDay(e.end.time, 1).formatedDate), l && this._drawSplitline(o._getEdgesPoints(o._tlpoints, u, n), s, i), l && this._drawSplitline(o._getEdgesPoints(o._blpoints, u, n), s, i) }, n.prototype._getEdgesPoints = function (t, e, n) { var i = [t[0].slice(), t[t.length - 1].slice()], r = "horizontal" === n ? 0 : 1; return i[0][r] = i[0][r] - e / 2, i[1][r] = i[1][r] + e / 2, i }, n.prototype._drawSplitline = function (t, e, n) { var i = new JP({z2: 20, shape: {points: t}, style: e}); n.add(i) }, n.prototype._getLinePointsOfOneWeek = function (t, e, n) { for (var i = t.coordinateSystem, r = i.getDateInfo(e), o = [], a = 0; 7 > a; a++) { var s = i.getNextNDay(r.time, a), l = i.dataToRect([s.time], !1); o[2 * s.day] = l.tl, o[2 * s.day + 1] = l["horizontal" === n ? "bl" : "tr"] } return o }, n.prototype._formatterLabel = function (t, e) { return "string" == typeof t && t ? Sl(t, e) : "function" == typeof t ? t(e) : e.nameMap }, n.prototype._yearTextPositionControl = function (t, e, n, i, r) { var o = e[0], a = e[1], s = ["center", "bottom"]; "bottom" === i ? (a += r, s = ["center", "top"]) : "left" === i ? o -= r : "right" === i ? (o += r, s = ["center", "top"]) : a -= r; var l = 0; return ("left" === i || "right" === i) && (l = Math.PI / 2), { rotation: l, x: o, y: a, style: {align: s[0], verticalAlign: s[1]} } }, n.prototype._renderYearText = function (t, e, n, i) { var r = t.getModel("yearLabel"); if (r.get("show")) { var o = r.get("margin"), a = r.get("position"); a || (a = "horizontal" !== n ? "top" : "left"); var s = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]], l = (s[0][0] + s[1][0]) / 2, u = (s[0][1] + s[1][1]) / 2, h = "horizontal" === n ? 0 : 1, c = {top: [l, s[h][1]], bottom: [l, s[1 - h][1]], left: [s[1 - h][0], u], right: [s[h][0], u]}, p = e.start.y; +e.end.y > +e.start.y && (p = p + "-" + e.end.y); var d = r.get("formatter"), f = {start: e.start.y, end: e.end.y, nameMap: p}, g = this._formatterLabel(d, f), y = new $k({z2: 30, style: Os(r, {text: g})}); y.attr(this._yearTextPositionControl(y, c[a], n, a, o)), i.add(y) } }, n.prototype._monthTextPositionControl = function (t, e, n, i, r) { var o = "left", a = "top", s = t[0], l = t[1]; return "horizontal" === n ? (l += r, e && (o = "center"), "start" === i && (a = "bottom")) : (s += r, e && (a = "middle"), "start" === i && (o = "right")), { x: s, y: l, align: o, verticalAlign: a } }, n.prototype._renderMonthText = function (t, e, n) { var i = t.getModel("monthLabel"); if (i.get("show")) { var r = i.get("nameMap"), o = i.get("margin"), a = i.get("position"), s = i.get("align"), l = [this._tlpoints, this._blpoints]; T(r) && (r = EZ[r.toUpperCase()] || []); var u = "start" === a ? 0 : 1, c = "horizontal" === e ? 0 : 1; o = "start" === a ? -o : o; for (var p = "center" === s, d = 0; d < l[u].length - 1; d++) { var f = l[u][d].slice(), g = this._firstDayOfMonth[d]; if (p) { var y = this._firstDayPoints[d]; f[c] = (y[c] + l[0][d + 1][c]) / 2 } var v = i.get("formatter"), m = r[+g.m - 1], x = {yyyy: g.y, yy: (g.y + "").slice(2), MM: g.m, M: +g.m, nameMap: m}, _ = this._formatterLabel(v, x), b = new $k({z2: 30, style: h(Os(i, {text: _}), this._monthTextPositionControl(f, p, e, a, o))}); n.add(b) } } }, n.prototype._weekTextPositionControl = function (t, e, n, i, r) { var o = "center", a = "middle", s = t[0], l = t[1], u = "start" === n; return "horizontal" === e ? (s = s + i + (u ? 1 : -1) * r[0] / 2, o = u ? "right" : "left") : (l = l + i + (u ? 1 : -1) * r[1] / 2, a = u ? "bottom" : "top"), { x: s, y: l, align: o, verticalAlign: a } }, n.prototype._renderWeekText = function (t, e, n, i) { var r = t.getModel("dayLabel"); if (r.get("show")) { var o = t.coordinateSystem, a = r.get("position"), s = r.get("nameMap"), l = r.get("margin"), u = o.getFirstDayOfWeek(); T(s) && (s = NZ[s.toUpperCase()] || []); var c = o.getNextNDay(e.end.time, 7 - e.lweek).time, p = [o.getCellWidth(), o.getCellHeight()]; l = _i(l, Math.min(p[1], p[0])), "start" === a && (c = o.getNextNDay(e.start.time, -(7 + e.fweek)).time, l = -l); for (var d = 0; 7 > d; d++) { var f = o.getNextNDay(c, d), g = o.dataToRect([f.time], !1).center, y = d; y = Math.abs((d + u) % 7); var v = new $k({ z2: 30, style: h(Os(r, {text: s[y]}), this._weekTextPositionControl(g, n, a, l, p)) }); i.add(v) } } }, n.type = "calendar", n }(Tz), VZ = 864e5, FZ = function () { function t(e) { this.type = "calendar", this.dimensions = t.dimensions, this.getDimensionsInfo = t.getDimensionsInfo, this._model = e } return t.getDimensionsInfo = function () { return [{name: "time", type: "time"}, "value"] }, t.prototype.getRangeInfo = function () { return this._rangeInfo }, t.prototype.getModel = function () { return this._model }, t.prototype.getRect = function () { return this._rect }, t.prototype.getCellWidth = function () { return this._sw }, t.prototype.getCellHeight = function () { return this._sh }, t.prototype.getOrient = function () { return this._orient }, t.prototype.getFirstDayOfWeek = function () { return this._firstDayOfWeek }, t.prototype.getDateInfo = function (t) { t = Li(t); var e = t.getFullYear(), n = t.getMonth() + 1, i = 10 > n ? "0" + n : "" + n, r = t.getDate(), o = 10 > r ? "0" + r : "" + r, a = t.getDay(); return a = Math.abs((a + 7 - this.getFirstDayOfWeek()) % 7), { y: e + "", m: i, d: o, day: a, time: t.getTime(), formatedDate: e + "-" + i + "-" + o, date: t } }, t.prototype.getNextNDay = function (t, e) { return e = e || 0, 0 === e ? this.getDateInfo(t) : (t = new Date(this.getDateInfo(t).time), t.setDate(t.getDate() + e), this.getDateInfo(t)) }, t.prototype.update = function (t, e) { function n(t, e) { return null != t[e] && "auto" !== t[e] } this._firstDayOfWeek = +this._model.getModel("dayLabel").get("firstDay"), this._orient = this._model.get("orient"), this._lineWidth = this._model.getModel("itemStyle").getItemStyle().lineWidth || 0, this._rangeInfo = this._getRangeInfo(this._initRangeOption()); var i = this._rangeInfo.weeks || 1, r = ["width", "height"], o = this._model.getCellSize().slice(), a = this._model.getBoxLayoutParams(), s = "horizontal" === this._orient ? [i, 7] : [7, i]; y([0, 1], function (t) { n(o, t) && (a[r[t]] = o[t] * s[t]) }); var l = {width: e.getWidth(), height: e.getHeight()}, u = this._rect = kl(a, l); y([0, 1], function (t) { n(o, t) || (o[t] = u[r[t]] / s[t]) }), this._sw = o[0], this._sh = o[1] }, t.prototype.dataToPoint = function (t, e) { M(t) && (t = t[0]), null == e && (e = !0); var n = this.getDateInfo(t), i = this._rangeInfo, r = n.formatedDate; if (e && !(n.time >= i.start.time && n.time < i.end.time + VZ)) return [0 / 0, 0 / 0]; var o = n.day, a = this._getRangeInfo([i.start.time, r]).nthWeek; return "vertical" === this._orient ? [this._rect.x + o * this._sw + this._sw / 2, this._rect.y + a * this._sh + this._sh / 2] : [this._rect.x + a * this._sw + this._sw / 2, this._rect.y + o * this._sh + this._sh / 2] }, t.prototype.pointToData = function (t) { var e = this.pointToDate(t); return e && e.time }, t.prototype.dataToRect = function (t, e) { var n = this.dataToPoint(t, e); return { contentShape: { x: n[0] - (this._sw - this._lineWidth) / 2, y: n[1] - (this._sh - this._lineWidth) / 2, width: this._sw - this._lineWidth, height: this._sh - this._lineWidth }, center: n, tl: [n[0] - this._sw / 2, n[1] - this._sh / 2], tr: [n[0] + this._sw / 2, n[1] - this._sh / 2], br: [n[0] + this._sw / 2, n[1] + this._sh / 2], bl: [n[0] - this._sw / 2, n[1] + this._sh / 2] } }, t.prototype.pointToDate = function (t) { var e = Math.floor((t[0] - this._rect.x) / this._sw) + 1, n = Math.floor((t[1] - this._rect.y) / this._sh) + 1, i = this._rangeInfo.range; return "vertical" === this._orient ? this._getDateByWeeksAndDay(n, e - 1, i) : this._getDateByWeeksAndDay(e, n - 1, i) }, t.prototype.convertToPixel = function (t, e, n) { var i = ZM(e); return i === this ? i.dataToPoint(n) : null }, t.prototype.convertFromPixel = function (t, e, n) { var i = ZM(e); return i === this ? i.pointToData(n) : null }, t.prototype.containPoint = function () { return console.warn("Not implemented."), !1 }, t.prototype._initRangeOption = function () { var t, e = this._model.get("range"); if (M(e) && 1 === e.length && (e = e[0]), M(e)) t = e; else { var n = e.toString(); if (/^\d{4}$/.test(n) && (t = [n + "-01-01", n + "-12-31"]), /^\d{4}[\/|-]\d{1,2}$/.test(n)) { var i = this.getDateInfo(n), r = i.date; r.setMonth(r.getMonth() + 1); var o = this.getNextNDay(r, -1); t = [i.formatedDate, o.formatedDate] } /^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(n) && (t = [n, n]) } if (!t) return e; var a = this._getRangeInfo(t); return a.start.time > a.end.time && t.reverse(), t }, t.prototype._getRangeInfo = function (t) { var e, n = [this.getDateInfo(t[0]), this.getDateInfo(t[1])]; n[0].time > n[1].time && (e = !0, n.reverse()); var i = Math.floor(n[1].time / VZ) - Math.floor(n[0].time / VZ) + 1, r = new Date(n[0].time), o = r.getDate(), a = n[1].date.getDate(); r.setDate(o + i - 1); var s = r.getDate(); if (s !== a) for (var l = r.getTime() - n[1].time > 0 ? 1 : -1; (s = r.getDate()) !== a && (r.getTime() - n[1].time) * l > 0;) i -= l, r.setDate(s - l); var u = Math.floor((i + n[0].day + 6) / 7), h = e ? -u + 1 : u - 1; return e && n.reverse(), { range: [n[0].formatedDate, n[1].formatedDate], start: n[0], end: n[1], allDay: i, weeks: u, nthWeek: h, fweek: n[0].day, lweek: n[1].day } }, t.prototype._getDateByWeeksAndDay = function (t, e, n) { var i = this._getRangeInfo(n); if (t > i.weeks || 0 === t && e < i.fweek || t === i.weeks && e > i.lweek) return null; var r = 7 * (t - 1) - i.fweek + e, o = new Date(i.start.time); return o.setDate(+i.start.d + r), this.getDateInfo(o) }, t.create = function (e, n) { var i = []; return e.eachComponent("calendar", function (r) { var o = new t(r, e, n); i.push(o), r.coordinateSystem = o }), e.eachSeries(function (t) { "calendar" === t.get("coordinateSystem") && (t.coordinateSystem = i[t.get("calendarIndex") || 0]) }), i }, t.dimensions = ["time", "value"], t }(); df(UM); var GZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.layoutMode = {type: "box", ignoreSize: !0}, e } return e(n, t), n.type = "title", n.defaultOption = { zlevel: 0, z: 6, show: !0, text: "", target: "blank", subtext: "", subtarget: "blank", left: 0, top: 0, backgroundColor: "rgba(0,0,0,0)", borderColor: "#ccc", borderWidth: 0, padding: 5, itemGap: 10, textStyle: {fontSize: 18, fontWeight: "bold", color: "#464646"}, subtextStyle: {fontSize: 12, color: "#6E7079"} }, n }(gR), HZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t, e, n) { if (this.group.removeAll(), t.get("show")) { var i = this.group, r = t.getModel("textStyle"), o = t.getModel("subtextStyle"), a = t.get("textAlign"), s = B(t.get("textBaseline"), t.get("textVerticalAlign")), l = new $k({style: Os(r, {text: t.get("text"), fill: r.getTextColor()}, {disableBox: !0}), z2: 10}), u = l.getBoundingRect(), h = t.get("subtext"), c = new $k({ style: Os(o, { text: h, fill: o.getTextColor(), y: u.height + t.get("itemGap"), verticalAlign: "top" }, {disableBox: !0}), z2: 10 }), p = t.get("link"), d = t.get("sublink"), f = t.get("triggerEvent", !0); l.silent = !p && !f, c.silent = !d && !f, p && l.on("click", function () { Al(p, "_" + t.get("target")) }), d && c.on("click", function () { Al(d, "_" + t.get("subtarget")) }), tP(l).eventData = tP(c).eventData = f ? { componentType: "title", componentIndex: t.componentIndex } : null, i.add(l), h && i.add(c); var g = i.getBoundingRect(), y = t.getBoxLayoutParams(); y.width = g.width, y.height = g.height; var v = kl(y, {width: n.getWidth(), height: n.getHeight()}, t.get("padding")); a || (a = t.get("left") || t.get("right"), "middle" === a && (a = "center"), "right" === a ? v.x += v.width : "center" === a && (v.x += v.width / 2)), s || (s = t.get("top") || t.get("bottom"), "center" === s && (s = "middle"), "bottom" === s ? v.y += v.height : "middle" === s && (v.y += v.height / 2), s = s || "top"), i.x = v.x, i.y = v.y, i.markRedraw(); var m = {align: a, verticalAlign: s}; l.setStyle(m), c.setStyle(m), g = i.getBoundingRect(); var x = v.margin, _ = t.getItemStyle(["color", "opacity"]); _.fill = t.get("backgroundColor"); var b = new Uk({ shape: { x: g.x - x[3], y: g.y - x[0], width: g.width + x[1] + x[3], height: g.height + x[0] + x[2], r: t.get("borderRadius") }, style: _, subPixelOptimize: !0, silent: !0 }); i.add(b) } }, n.type = "title", n }(Tz); df(jM); var WZ = function (t, e) { return "all" === e ? { type: "all", title: t.getLocale(["legend", "selector", "all"]) } : "inverse" === e ? {type: "inverse", title: t.getLocale(["legend", "selector", "inverse"])} : void 0 }, XZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.layoutMode = {type: "box", ignoreSize: !0}, e } return e(n, t), n.prototype.init = function (t, e, n) { this.mergeDefaultAndTheme(t, n), t.selected = t.selected || {}, this._updateSelector(t) }, n.prototype.mergeOption = function (e, n) { t.prototype.mergeOption.call(this, e, n), this._updateSelector(e) }, n.prototype._updateSelector = function (t) { var e = t.selector, n = this.ecModel; e === !0 && (e = t.selector = ["all", "inverse"]), M(e) && y(e, function (t, i) { T(t) && (t = {type: t}), e[i] = l(t, WZ(n, t.type)) }) }, n.prototype.optionUpdated = function () { this._updateData(this.ecModel); var t = this._data; if (t[0] && "single" === this.get("selectedMode")) { for (var e = !1, n = 0; n < t.length; n++) { var i = t[n].get("name"); if (this.isSelected(i)) { this.select(i), e = !0; break } } !e && this.select(t[0].get("name")) } }, n.prototype._updateData = function (t) { var e = [], n = []; t.eachRawSeries(function (i) { var r = i.name; n.push(r); var o; if (i.legendVisualProvider) { var a = i.legendVisualProvider, s = a.getAllNames(); t.isSeriesFiltered(i) || (n = n.concat(s)), s.length ? e = e.concat(s) : o = !0 } else o = !0; o && nr(i) && e.push(i.name) }), this._availableNames = n; var i = this.get("data") || e, r = v(i, function (t) { return ("string" == typeof t || "number" == typeof t) && (t = {name: t}), new VO(t, this, this.ecModel) }, this); this._data = r }, n.prototype.getData = function () { return this._data }, n.prototype.select = function (t) { var e = this.option.selected, n = this.get("selectedMode"); if ("single" === n) { var i = this._data; y(i, function (t) { e[t.get("name")] = !1 }) } e[t] = !0 }, n.prototype.unSelect = function (t) { "single" !== this.get("selectedMode") && (this.option.selected[t] = !1) }, n.prototype.toggleSelected = function (t) { var e = this.option.selected; e.hasOwnProperty(t) || (e[t] = !0), this[e[t] ? "unSelect" : "select"](t) }, n.prototype.allSelect = function () { var t = this._data, e = this.option.selected; y(t, function (t) { e[t.get("name", !0)] = !0 }) }, n.prototype.inverseSelect = function () { var t = this._data, e = this.option.selected; y(t, function (t) { var n = t.get("name", !0); e.hasOwnProperty(n) || (e[n] = !0), e[n] = !e[n] }) }, n.prototype.isSelected = function (t) { var e = this.option.selected; return !(e.hasOwnProperty(t) && !e[t]) && p(this._availableNames, t) >= 0 }, n.prototype.getOrient = function () { return "vertical" === this.get("orient") ? {index: 1, name: "vertical"} : {index: 0, name: "horizontal"} }, n.type = "legend.plain", n.dependencies = ["series"], n.defaultOption = { zlevel: 0, z: 4, show: !0, orient: "horizontal", left: "center", top: 0, align: "auto", backgroundColor: "rgba(0,0,0,0)", borderColor: "#ccc", borderRadius: 0, borderWidth: 0, padding: 5, itemGap: 10, itemWidth: 25, itemHeight: 14, symbolRotate: "inherit", inactiveColor: "#ccc", inactiveBorderColor: "#ccc", inactiveBorderWidth: "auto", itemStyle: { color: "inherit", opacity: "inherit", decal: "inherit", shadowBlur: 0, shadowColor: null, shadowOffsetX: 0, shadowOffsetY: 0, borderColor: "inherit", borderWidth: "auto", borderCap: "inherit", borderJoin: "inherit", borderDashOffset: "inherit", borderMiterLimit: "inherit" }, lineStyle: { width: "auto", color: "inherit", inactiveColor: "#ccc", inactiveWidth: 2, opacity: "inherit", type: "inherit", cap: "inherit", join: "inherit", dashOffset: "inherit", miterLimit: "inherit", shadowBlur: 0, shadowColor: null, shadowOffsetX: 0, shadowOffsetY: 0 }, textStyle: {color: "#333"}, selectedMode: !0, selector: !1, selectorLabel: { show: !0, borderRadius: 10, padding: [3, 5, 3, 5], fontSize: 12, fontFamily: " sans-serif", color: "#666", borderWidth: 1, borderColor: "#666" }, emphasis: {selectorLabel: {show: !0, color: "#eee", backgroundColor: "#666"}}, selectorPosition: "auto", selectorItemGap: 7, selectorButtonGap: 10, tooltip: {show: !1} }, n }(gR), YZ = S, ZZ = y, UZ = sL, jZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.newlineDisabled = !1, e } return e(n, t), n.prototype.init = function () { this.group.add(this._contentGroup = new UZ), this.group.add(this._selectorGroup = new UZ), this._isFirstRender = !0 }, n.prototype.getContentGroup = function () { return this._contentGroup }, n.prototype.getSelectorGroup = function () { return this._selectorGroup }, n.prototype.render = function (t, e, n) { var i = this._isFirstRender; if (this._isFirstRender = !1, this.resetInner(), t.get("show", !0)) { var r = t.get("align"), o = t.get("orient"); r && "auto" !== r || (r = "right" === t.get("left") && "vertical" === o ? "right" : "left"); var a = t.get("selector", !0), s = t.get("selectorPosition", !0); !a || s && "auto" !== s || (s = "horizontal" === o ? "end" : "start"), this.renderInner(r, t, e, n, a, o, s); var l = t.getBoxLayoutParams(), u = {width: n.getWidth(), height: n.getHeight()}, h = t.get("padding"), p = kl(l, u, h), d = this.layoutInner(t, r, p, i, a, s), f = kl(c({width: d.width, height: d.height}, l), u, h); this.group.x = f.x - d.x, this.group.y = f.y - d.y, this.group.markRedraw(), this.group.add(this._backgroundEl = KM(d, t)) } }, n.prototype.resetInner = function () { this.getContentGroup().removeAll(), this._backgroundEl && this.group.remove(this._backgroundEl), this.getSelectorGroup().removeAll() }, n.prototype.renderInner = function (t, e, n, i, r, o, a) { var s = this.getContentGroup(), l = Z(), u = e.get("selectedMode"), h = []; n.eachRawSeries(function (t) { !t.get("legendHoverLink") && h.push(t.id) }), ZZ(e.getData(), function (r, o) { var a = r.get("name"); if (!this.newlineDisabled && ("" === a || "\n" === a)) { var c = new UZ; return c.newline = !0, void s.add(c) } var p = n.getSeriesByName(a)[0]; if (!l.get(a)) if (p) { var d = p.getData(), f = d.getVisual("legendLineStyle") || {}, g = d.getVisual("legendIcon"), y = d.getVisual("style"), v = this._createItem(p, a, o, r, e, t, f, y, g, u); v.on("click", YZ(QM, a, null, i, h)).on("mouseover", YZ(eI, p.name, null, i, h)).on("mouseout", YZ(nI, p.name, null, i, h)), l.set(a, !0) } else n.eachRawSeries(function (n) { if (!l.get(a) && n.legendVisualProvider) { var s = n.legendVisualProvider; if (!s.containName(a)) return; var c = s.indexOfName(a), p = s.getItemVisual(c, "style"), d = s.getItemVisual(c, "legendIcon"), f = an(p.fill); f && 0 === f[3] && (f[3] = .2, p.fill = gn(f, "rgba")); var g = this._createItem(n, a, o, r, e, t, {}, p, d, u); g.on("click", YZ(QM, null, a, i, h)).on("mouseover", YZ(eI, null, a, i, h)).on("mouseout", YZ(nI, null, a, i, h)), l.set(a, !0) } }, this) }, this), r && this._createSelector(r, e, i, o, a) }, n.prototype._createSelector = function (t, e, n) { var i = this.getSelectorGroup(); ZZ(t, function (t) { var r = t.type, o = new $k({ style: {x: 0, y: 0, align: "center", verticalAlign: "middle"}, onclick: function () { n.dispatchAction({type: "all" === r ? "legendAllSelect" : "legendInverseSelect"}) } }); i.add(o); var a = e.getModel("selectorLabel"), s = e.getModel(["emphasis", "selectorLabel"]); ks(o, {normal: a, emphasis: s}, {defaultText: t.title}), Sa(o) }) }, n.prototype._createItem = function (t, e, n, i, r, o, a, s, l, u) { var h = t.visualDrawType, c = r.get("itemWidth"), p = r.get("itemHeight"), d = r.isSelected(e), f = i.get("symbolRotate"), g = i.get("icon"); l = g || l || "roundRect"; var y = r.getModel("lineStyle"), v = $M(l, i, y, a, s, h, d), m = new UZ, x = i.getModel("textStyle"); if ("function" != typeof t.getLegendIcon || g && "inherit" !== g) { var _ = "inherit" === g && t.getData().getVisual("symbol") ? "inherit" === f ? t.getData().getVisual("symbolRotate") : f : 0; m.add(JM({ itemWidth: c, itemHeight: p, icon: l, iconRotate: _, itemStyle: v.itemStyle, lineStyle: v.lineStyle })) } else m.add(t.getLegendIcon({ itemWidth: c, itemHeight: p, icon: l, iconRotate: f, itemStyle: v.itemStyle, lineStyle: v.lineStyle })); var b = "left" === o ? c + 5 : -5, w = o, S = r.get("formatter"), M = e; "string" == typeof S && S ? M = S.replace("{name}", null != e ? e : "") : "function" == typeof S && (M = S(e)); var I = i.get("inactiveColor"); m.add(new $k({ style: Os(x, { text: M, x: b, y: p / 2, fill: d ? x.getTextColor() : I, align: w, verticalAlign: "middle" }) })); var T = new Uk({shape: m.getBoundingRect(), invisible: !0}), C = i.getModel("tooltip"); return C.get("show") && As({ el: T, componentModel: r, itemName: e, itemTooltipOption: C.option }), m.add(T), m.eachChild(function (t) { t.silent = !0 }), T.silent = !u, this.getContentGroup().add(m), Sa(m), m.__legendDataIndex = n, m }, n.prototype.layoutInner = function (t, e, n, i, r, o) { var a = this.getContentGroup(), s = this.getSelectorGroup(); dR(t.get("orient"), a, t.get("itemGap"), n.width, n.height); var l = a.getBoundingRect(), u = [-l.x, -l.y]; if (s.markRedraw(), a.markRedraw(), r) { dR("horizontal", s, t.get("selectorItemGap", !0)); var h = s.getBoundingRect(), c = [-h.x, -h.y], p = t.get("selectorButtonGap", !0), d = t.getOrient().index, f = 0 === d ? "width" : "height", g = 0 === d ? "height" : "width", y = 0 === d ? "y" : "x"; "end" === o ? c[d] += l[f] + p : u[d] += h[f] + p, c[1 - d] += l[g] / 2 - h[g] / 2, s.x = c[0], s.y = c[1], a.x = u[0], a.y = u[1]; var v = {x: 0, y: 0}; return v[f] = l[f] + p + h[f], v[g] = Math.max(l[g], h[g]), v[y] = Math.min(0, h[y] + c[1 - d]), v } return a.x = u[0], a.y = u[1], this.group.getBoundingRect() }, n.prototype.remove = function () { this.getContentGroup().removeAll(), this._isFirstRender = !0 }, n.type = "legend.plain", n }(Tz), qZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.setScrollDataIndex = function (t) { this.option.scrollDataIndex = t }, n.prototype.init = function (e, n, i) { var r = El(e); t.prototype.init.call(this, e, n, i), sI(this, e, r) }, n.prototype.mergeOption = function (e, n) { t.prototype.mergeOption.call(this, e, n), sI(this, this.option, e) }, n.type = "legend.scroll", n.defaultOption = Xs(XZ.defaultOption, { scrollDataIndex: 0, pageButtonItemGap: 5, pageButtonGap: null, pageButtonPosition: "end", pageFormatter: "{current}/{total}", pageIcons: { horizontal: ["M0,0L12,-10L12,10z", "M0,0L-12,-10L-12,10z"], vertical: ["M0,0L20,0L10,-20z", "M0,0L20,0L10,20z"] }, pageIconColor: "#2f4554", pageIconInactiveColor: "#aaa", pageIconSize: 15, pageTextStyle: {color: "#333"}, animationDurationUpdate: 800 }), n }(XZ), KZ = sL, $Z = ["width", "height"], JZ = ["x", "y"], QZ = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.newlineDisabled = !0, e._currentIndex = 0, e } return e(n, t), n.prototype.init = function () { t.prototype.init.call(this), this.group.add(this._containerGroup = new KZ), this._containerGroup.add(this.getContentGroup()), this.group.add(this._controllerGroup = new KZ) }, n.prototype.resetInner = function () { t.prototype.resetInner.call(this), this._controllerGroup.removeAll(), this._containerGroup.removeClipPath(), this._containerGroup.__rectSize = null }, n.prototype.renderInner = function (e, n, i, r, o, a, s) { function l(t, e) { var i = t + "DataIndex", o = Ss(n.get("pageIcons", !0)[n.getOrient().name][e], {onclick: xA(u._pageGo, u, i, n, r)}, { x: -p[0] / 2, y: -p[1] / 2, width: p[0], height: p[1] }); o.name = t, h.add(o) } var u = this; t.prototype.renderInner.call(this, e, n, i, r, o, a, s); var h = this._controllerGroup, c = n.get("pageIconSize", !0), p = M(c) ? c : [c, c]; l("pagePrev", 0); var d = n.getModel("pageTextStyle"); h.add(new $k({ name: "pageText", style: { text: "xx/xx", fill: d.getTextColor(), font: d.getFont(), verticalAlign: "middle", align: "center" }, silent: !0 })), l("pageNext", 1) }, n.prototype.layoutInner = function (t, e, n, i, r, o) { var a = this.getSelectorGroup(), l = t.getOrient().index, u = $Z[l], h = JZ[l], c = $Z[1 - l], p = JZ[1 - l]; r && dR("horizontal", a, t.get("selectorItemGap", !0)); var d = t.get("selectorButtonGap", !0), f = a.getBoundingRect(), g = [-f.x, -f.y], y = s(n); r && (y[u] = n[u] - f[u] - d); var v = this._layoutContentAndController(t, i, y, l, u, c, p, h); if (r) { if ("end" === o) g[l] += v[u] + d; else { var m = f[u] + d; g[l] -= m, v[h] -= m } v[u] += f[u] + d, g[1 - l] += v[p] + v[c] / 2 - f[c] / 2, v[c] = Math.max(v[c], f[c]), v[p] = Math.min(v[p], f[p] + g[1 - l]), a.x = g[0], a.y = g[1], a.markRedraw() } return v }, n.prototype._layoutContentAndController = function (t, e, n, i, r, o, a, s) { var l = this.getContentGroup(), u = this._containerGroup, h = this._controllerGroup; dR(t.get("orient"), l, t.get("itemGap"), i ? n.width : null, i ? null : n.height), dR("horizontal", h, t.get("pageButtonItemGap", !0)); var c = l.getBoundingRect(), p = h.getBoundingRect(), d = this._showController = c[r] > n[r], f = [-c.x, -c.y]; e || (f[i] = l[s]); var g = [0, 0], y = [-p.x, -p.y], v = B(t.get("pageButtonGap", !0), t.get("itemGap", !0)); if (d) { var m = t.get("pageButtonPosition", !0); "end" === m ? y[i] += n[r] - p[r] : g[i] += p[r] + v } y[1 - i] += c[o] / 2 - p[o] / 2, l.setPosition(f), u.setPosition(g), h.setPosition(y); var x = {x: 0, y: 0}; if (x[r] = d ? n[r] : c[r], x[o] = Math.max(c[o], p[o]), x[a] = Math.min(0, p[a] + y[1 - i]), u.__rectSize = n[r], d) { var _ = {x: 0, y: 0}; _[r] = Math.max(n[r] - p[r] - v, 0), _[o] = x[o], u.setClipPath(new Uk({shape: _})), u.__rectSize = _[r] } else h.eachChild(function (t) { t.attr({invisible: !0, silent: !0}) }); var b = this._getPageInfo(t); return null != b.pageIndex && us(l, { x: b.contentPosition[0], y: b.contentPosition[1] }, d ? t : null), this._updatePageInfoView(t, b), x }, n.prototype._pageGo = function (t, e, n) { var i = this._getPageInfo(e)[t]; null != i && n.dispatchAction({type: "legendScroll", scrollDataIndex: i, legendId: e.id}) }, n.prototype._updatePageInfoView = function (t, e) { var n = this._controllerGroup; y(["pagePrev", "pageNext"], function (i) { var r = i + "DataIndex", o = null != e[r], a = n.childOfName(i); a && (a.setStyle("fill", o ? t.get("pageIconColor", !0) : t.get("pageIconInactiveColor", !0)), a.cursor = o ? "pointer" : "default") }); var i = n.childOfName("pageText"), r = t.get("pageFormatter"), o = e.pageIndex, a = null != o ? o + 1 : 0, s = e.pageCount; i && r && i.setStyle("text", T(r) ? r.replace("{current}", null == a ? "" : a + "").replace("{total}", null == s ? "" : s + "") : r({ current: a, total: s })) }, n.prototype._getPageInfo = function (t) { function e(t) { if (t) { var e = t.getBoundingRect(), n = e[l] + t[l]; return {s: n, e: n + e[s], i: t.__legendDataIndex} } } function n(t, e) { return t.e >= e && t.s <= e + o } var i = t.get("scrollDataIndex", !0), r = this.getContentGroup(), o = this._containerGroup.__rectSize, a = t.getOrient().index, s = $Z[a], l = JZ[a], u = this._findTargetItemIndex(i), h = r.children(), c = h[u], p = h.length, d = p ? 1 : 0, f = { contentPosition: [r.x, r.y], pageCount: d, pageIndex: d - 1, pagePrevDataIndex: null, pageNextDataIndex: null }; if (!c) return f; var g = e(c); f.contentPosition[a] = -g.s; for (var y = u + 1, v = g, m = g, x = null; p >= y; ++y) x = e(h[y]), (!x && m.e > v.s + o || x && !n(x, v.s)) && (v = m.i > v.i ? m : x, v && (null == f.pageNextDataIndex && (f.pageNextDataIndex = v.i), ++f.pageCount)), m = x; for (var y = u - 1, v = g, m = g, x = null; y >= -1; --y) x = e(h[y]), x && n(m, x.s) || !(v.i < m.i) || (m = v, null == f.pagePrevDataIndex && (f.pagePrevDataIndex = v.i), ++f.pageCount, ++f.pageIndex), v = x; return f }, n.prototype._findTargetItemIndex = function (t) { if (!this._showController) return 0; var e, n, i = this.getContentGroup(); return i.eachChild(function (i, r) { var o = i.__legendDataIndex; null == n && null != o && (n = r), o === t && (e = r) }), null != e ? e : n }, n.type = "legend.scroll", n }(jZ); df(uI); var tU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "tooltip", n.dependencies = ["axisPointer"], n.defaultOption = { zlevel: 0, z: 60, show: !0, showContent: !0, trigger: "item", triggerOn: "mousemove|click", alwaysShowContent: !1, displayMode: "single", renderMode: "auto", confine: null, showDelay: 0, hideDelay: 100, transitionDuration: .4, enterable: !1, backgroundColor: "#fff", shadowBlur: 10, shadowColor: "rgba(0, 0, 0, .2)", shadowOffsetX: 1, shadowOffsetY: 2, borderRadius: 4, borderWidth: 1, padding: null, extraCssText: "", axisPointer: { type: "line", axis: "auto", animation: "auto", animationDurationUpdate: 200, animationEasingUpdate: "exponentialOut", crossStyle: {color: "#999", width: 1, type: "dashed", textStyle: {}} }, textStyle: {color: "#666", fontSize: 14} }, n }(gR), eU = cI(["transform", "webkitTransform", "OTransform", "MozTransform", "msTransform"]), nU = cI(["webkitTransition", "transition", "OTransition", "MozTransition", "msTransition"]), iU = pI(nU, "transition"), rU = pI(eU, "transform"), oU = "position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;" + (oA.transform3dSupported ? "will-change:transform;" : ""), aU = function () { function t(t, e, n) { if (this._show = !1, this._styleCoord = [0, 0, 0, 0], this._enterable = !0, this._firstShow = !0, this._longHide = !0, oA.wxa) return null; var i = document.createElement("div"); i.domBelongToZr = !0, this.el = i; var r = this._zr = e.getZr(), o = this._appendToBody = n && n.appendToBody; _I(this._styleCoord, r, o, e.getWidth() / 2, e.getHeight() / 2), o ? document.body.appendChild(i) : t.appendChild(i), this._container = t; var a = this; i.onmouseenter = function () { a._enterable && (clearTimeout(a._hideTimeout), a._show = !0), a._inContent = !0 }, i.onmousemove = function (t) { if (t = t || window.event, !a._enterable) { var e = r.handler, n = r.painter.getViewportRoot(); Ae(n, t, !0), e.dispatch("mousemove", t) } }, i.onmouseleave = function () { a._inContent = !1, a._enterable && a._show && a.hideLater(a._hideDelay) } } return t.prototype.update = function (t) { var e = this._container, n = dI(e, "position"), i = e.style; "absolute" !== i.position && "absolute" !== n && (i.position = "relative"); var r = t.get("alwaysShowContent"); r && this._moveIfResized(), this.el.className = t.get("className") || "" }, t.prototype.show = function (t, e) { clearTimeout(this._hideTimeout), clearTimeout(this._longHideTimeout); var n = this.el, i = n.style, r = this._styleCoord; n.innerHTML ? i.cssText = oU + xI(t, !this._firstShow, this._longHide) + vI(r[0], r[1], !0) + ("border-color:" + Cl(e) + ";") + (t.get("extraCssText") || "") + (";pointer-event:" + (this._enterable ? "auto" : "none")) : i.display = "none", this._show = !0, this._firstShow = !1, this._longHide = !1 }, t.prototype.setContent = function (t, e, n, i, r) { if (null != t) { var o = this.el; if (T(r) && "item" === n.get("trigger") && !hI(n) && (t += gI(n.get("backgroundColor"), i, r)), T(t)) o.innerHTML = t; else if (t) { o.innerHTML = "", M(t) || (t = [t]); for (var a = 0; a < t.length; a++) P(t[a]) && t[a].parentNode !== o && o.appendChild(t[a]) } } }, t.prototype.setEnterable = function (t) { this._enterable = t }, t.prototype.getSize = function () { var t = this.el; return [t.clientWidth, t.clientHeight] }, t.prototype.moveTo = function (t, e) { var n = this._styleCoord; if (_I(n, this._zr, this._appendToBody, t, e), null != n[0] && null != n[1]) { var i = this.el.style, r = vI(n[0], n[1]); y(r, function (t) { i[t[0]] = t[1] }) } }, t.prototype._moveIfResized = function () { var t = this._styleCoord[2], e = this._styleCoord[3]; this.moveTo(t * this._zr.getWidth(), e * this._zr.getHeight()) }, t.prototype.hide = function () { var t = this, e = this.el.style; e.visibility = "hidden", e.opacity = "0", oA.transform3dSupported && (e.willChange = ""), this._show = !1, this._longHideTimeout = setTimeout(function () { return t._longHide = !0 }, 500) }, t.prototype.hideLater = function (t) { !this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout = setTimeout(xA(this.hide, this), t)) : this.hide()) }, t.prototype.isShow = function () { return this._show }, t.prototype.dispose = function () { this.el.parentNode.removeChild(this.el) }, t.prototype.getOuterSize = function () { var t = this.el.clientWidth, e = this.el.clientHeight, n = dI(this.el); return n && (t += parseInt(n.borderLeftWidth, 10) + parseInt(n.borderRightWidth, 10), e += parseInt(n.borderTopWidth, 10) + parseInt(n.borderBottomWidth, 10)), { width: t, height: e } }, t }(), sU = function () { function t(t) { this._show = !1, this._styleCoord = [0, 0, 0, 0], this._enterable = !0, this._zr = t.getZr(), SI(this._styleCoord, this._zr, t.getWidth() / 2, t.getHeight() / 2) } return t.prototype.update = function (t) { var e = t.get("alwaysShowContent"); e && this._moveIfResized() }, t.prototype.show = function () { this._hideTimeout && clearTimeout(this._hideTimeout), this.el.show(), this._show = !0 }, t.prototype.setContent = function (t, e, n, i) { D(t) && Gi(""), this.el && this._zr.remove(this.el); var r = n.getModel("textStyle"); this.el = new $k({ style: { rich: e.richTextStyles, text: t, lineHeight: 22, backgroundColor: n.get("backgroundColor"), borderRadius: n.get("borderRadius"), borderWidth: 1, borderColor: i, shadowColor: n.get("shadowColor"), shadowBlur: n.get("shadowBlur"), shadowOffsetX: n.get("shadowOffsetX"), shadowOffsetY: n.get("shadowOffsetY"), textShadowColor: r.get("textShadowColor"), textShadowBlur: r.get("textShadowBlur") || 0, textShadowOffsetX: r.get("textShadowOffsetX") || 0, textShadowOffsetY: r.get("textShadowOffsetY") || 0, fill: n.get(["textStyle", "color"]), padding: gh(n, "richText"), verticalAlign: "top", align: "left" }, z: n.get("z") }), this._zr.add(this.el); var o = this; this.el.on("mouseover", function () { o._enterable && (clearTimeout(o._hideTimeout), o._show = !0), o._inContent = !0 }), this.el.on("mouseout", function () { o._enterable && o._show && o.hideLater(o._hideDelay), o._inContent = !1 }) }, t.prototype.setEnterable = function (t) { this._enterable = t }, t.prototype.getSize = function () { var t = this.el, e = this.el.getBoundingRect(), n = wI(t.style); return [e.width + n.left + n.right, e.height + n.top + n.bottom] }, t.prototype.moveTo = function (t, e) { var n = this.el; if (n) { var i = this._styleCoord; SI(i, this._zr, t, e), t = i[0], e = i[1]; var r = n.style, o = bI(r.borderWidth || 0), a = wI(r); n.x = t + o + a.left, n.y = e + o + a.top, n.markRedraw() } }, t.prototype._moveIfResized = function () { var t = this._styleCoord[2], e = this._styleCoord[3]; this.moveTo(t * this._zr.getWidth(), e * this._zr.getHeight()) }, t.prototype.hide = function () { this.el && this.el.hide(), this._show = !1 }, t.prototype.hideLater = function (t) { !this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout = setTimeout(xA(this.hide, this), t)) : this.hide()) }, t.prototype.isShow = function () { return this._show }, t.prototype.getOuterSize = function () { var t = this.getSize(); return {width: t[0], height: t[1]} }, t.prototype.dispose = function () { this._zr.remove(this.el) }, t }(), lU = xA, uU = y, hU = _i, cU = new Uk({shape: {x: -1, y: -1, width: 2, height: 2}}), pU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.init = function (t, e) { if (!oA.node) { var n = t.getComponent("tooltip"), i = n.get("renderMode"); this._renderMode = gr(i), this._tooltipContent = "richText" === this._renderMode ? new sU(e) : new aU(e.getDom(), e, {appendToBody: n.get("appendToBody", !0)}) } }, n.prototype.render = function (t, e, n) { if (!oA.node) { this.group.removeAll(), this._tooltipModel = t, this._ecModel = e, this._api = n, this._alwaysShowContent = t.get("alwaysShowContent"); var i = this._tooltipContent; i.update(t), i.setEnterable(t.get("enterable")), this._initGlobalListener(), this._keepShow() } }, n.prototype._initGlobalListener = function () { var t = this._tooltipModel, e = t.get("triggerOn"); qS("itemTooltip", this._api, lU(function (t, n, i) { "none" !== e && (e.indexOf(t) >= 0 ? this._tryShow(n, i) : "leave" === t && this._hide(i)) }, this)) }, n.prototype._keepShow = function () { var t = this._tooltipModel, e = this._ecModel, n = this._api; if (null != this._lastX && null != this._lastY && "none" !== t.get("triggerOn")) { var i = this; clearTimeout(this._refreshUpdateTimeout), this._refreshUpdateTimeout = setTimeout(function () { !n.isDisposed() && i.manuallyShowTip(t, e, n, { x: i._lastX, y: i._lastY, dataByCoordSys: i._lastDataByCoordSys }) }) } }, n.prototype.manuallyShowTip = function (t, e, n, i) { if (i.from !== this.uid && !oA.node) { var r = II(i, n); this._ticket = ""; var o = i.dataByCoordSys, a = LI(i, e, n); if (a) { var s = a.el.getBoundingRect().clone(); s.applyTransform(a.el.transform), this._tryShow({ offsetX: s.x + s.width / 2, offsetY: s.y + s.height / 2, target: a.el, position: i.position, positionDefault: "bottom" }, r) } else if (i.tooltip && null != i.x && null != i.y) { var l = cU; l.x = i.x, l.y = i.y, l.update(), tP(l).tooltipConfig = { name: null, option: i.tooltip }, this._tryShow({offsetX: i.x, offsetY: i.y, target: l}, r) } else if (o) this._tryShow({ offsetX: i.x, offsetY: i.y, position: i.position, dataByCoordSys: o, tooltipOption: i.tooltipOption }, r); else if (null != i.seriesIndex) { if (this._manuallyAxisShowTip(t, e, n, i)) return; var u = nM(i, e), h = u.point[0], c = u.point[1]; null != h && null != c && this._tryShow({ offsetX: h, offsetY: c, target: u.el, position: i.position, positionDefault: "bottom" }, r) } else null != i.x && null != i.y && (n.dispatchAction({ type: "updateAxisPointer", x: i.x, y: i.y }), this._tryShow({ offsetX: i.x, offsetY: i.y, position: i.position, target: n.getZr().findHover(i.x, i.y).target }, r)) } }, n.prototype.manuallyHideTip = function (t, e, n, i) { var r = this._tooltipContent; !this._alwaysShowContent && this._tooltipModel && r.hideLater(this._tooltipModel.get("hideDelay")), this._lastX = this._lastY = this._lastDataByCoordSys = null, i.from !== this.uid && this._hide(II(i, n)) }, n.prototype._manuallyAxisShowTip = function (t, e, n, i) { var r = i.seriesIndex, o = i.dataIndex, a = e.getComponent("axisPointer").coordSysAxesInfo; if (null != r && null != o && null != a) { var s = e.getSeriesByIndex(r); if (s) { var l = s.getData(), u = MI([l.getItemModel(o), s, (s.coordinateSystem || {}).model], this._tooltipModel); if ("axis" === u.get("trigger")) return n.dispatchAction({ type: "updateAxisPointer", seriesIndex: r, dataIndex: o, position: i.position }), !0 } } }, n.prototype._tryShow = function (t, e) { var n = t.target, i = this._tooltipModel; if (i) { this._lastX = t.offsetX, this._lastY = t.offsetY; var r = t.dataByCoordSys; if (r && r.length) this._showAxisTooltip(r, t); else if (n) { this._lastDataByCoordSys = null; var o, a; bc(n, function (t) { return null != tP(t).dataIndex ? (o = t, !0) : null != tP(t).tooltipConfig ? (a = t, !0) : void 0 }, !0), o ? this._showSeriesItemTooltip(t, o, e) : a ? this._showComponentItemTooltip(t, a, e) : this._hide(e) } else this._lastDataByCoordSys = null, this._hide(e) } }, n.prototype._showOrMove = function (t, e) { var n = t.get("showDelay"); e = xA(e, this), clearTimeout(this._showTimout), n > 0 ? this._showTimout = setTimeout(e, n) : e() }, n.prototype._showAxisTooltip = function (t, e) { var n = this._ecModel, i = this._tooltipModel, r = [e.offsetX, e.offsetY], o = MI([e.tooltipOption], i), a = this._renderMode, s = [], l = rh("section", {blocks: [], noHeader: !0}), u = [], h = new Sz; uU(t, function (t) { uU(t.dataByAxis, function (t) { var e = n.getComponent(t.axisDim + "Axis", t.axisIndex), i = t.value; if (e && null != i) { var r = FS(i, e.axis, n, t.seriesDataIndices, t.valueLabelOpt), o = rh("section", {header: r, noHeader: !W(r), sortBlocks: !0, blocks: []}); l.blocks.push(o), y(t.seriesDataIndices, function (l) { var c = n.getSeriesByIndex(l.seriesIndex), p = l.dataIndexInside, d = c.getDataParams(p); d.axisDim = t.axisDim, d.axisIndex = t.axisIndex, d.axisType = t.axisType, d.axisId = t.axisId, d.axisValue = ef(e.axis, {value: i}), d.axisValueLabel = r, d.marker = h.makeTooltipMarker("item", Cl(d.color), a); var f = Hu(c.formatTooltip(p, !0, null)); f.markupFragment && o.blocks.push(f.markupFragment), f.markupText && u.push(f.markupText), s.push(d) }) } }) }), l.blocks.reverse(), u.reverse(); var c = e.position, p = o.get("order"), d = sh(l, h, a, p, n.get("useUTC"), o.get("textStyle")); d && u.unshift(d); var f = "richText" === a ? "\n\n" : "
", g = u.join(f); this._showOrMove(o, function () { this._updateContentNotChangedOnAxis(t) ? this._updatePosition(o, c, r[0], r[1], this._tooltipContent, s) : this._showTooltipContent(o, g, s, Math.random() + "", r[0], r[1], c, null, h) }) }, n.prototype._showSeriesItemTooltip = function (t, e, n) { var i = this._ecModel, r = tP(e), o = r.seriesIndex, a = i.getSeriesByIndex(o), s = r.dataModel || a, l = r.dataIndex, u = r.dataType, h = s.getData(u), c = this._renderMode, p = t.positionDefault, d = MI([h.getItemModel(l), s, a && (a.coordinateSystem || {}).model], this._tooltipModel, p ? {position: p} : null), f = d.get("trigger"); if (null == f || "item" === f) { var g = s.getDataParams(l, u), y = new Sz; g.marker = y.makeTooltipMarker("item", Cl(g.color), c); var v = Hu(s.formatTooltip(l, !1, u)), m = d.get("order"), x = v.markupFragment ? sh(v.markupFragment, y, c, m, i.get("useUTC"), d.get("textStyle")) : v.markupText, _ = "item_" + s.name + "_" + l; this._showOrMove(d, function () { this._showTooltipContent(d, x, g, _, t.offsetX, t.offsetY, t.position, t.target, y) }), n({ type: "showTip", dataIndexInside: l, dataIndex: h.getRawIndex(l), seriesIndex: o, from: this.uid }) } }, n.prototype._showComponentItemTooltip = function (t, e, n) { var i = tP(e), r = i.tooltipConfig, o = r.option || {}; if (T(o)) { var a = o; o = {content: a, formatter: a} } var l = [o], u = this._ecModel.getComponent(i.componentMainType, i.componentIndex); u && l.push(u), l.push({formatter: o.content}); var h = t.positionDefault, c = MI(l, this._tooltipModel, h ? {position: h} : null), p = c.get("content"), d = Math.random() + "", f = new Sz; this._showOrMove(c, function () { var n = s(c.get("formatterParams") || {}); this._showTooltipContent(c, p, n, d, t.offsetX, t.offsetY, t.position, e, f) }), n({type: "showTip", from: this.uid}) }, n.prototype._showTooltipContent = function (t, e, n, i, r, o, a, s, l) { if (this._ticket = "", t.get("showContent") && t.get("show")) { var u = this._tooltipContent, h = t.get("formatter"); a = a || t.get("position"); var c = e, p = this._getNearestPoint([r, o], n, t.get("trigger"), t.get("borderColor")), d = p.color; if (h && T(h)) { var f = t.ecModel.get("useUTC"), g = M(n) ? n[0] : n, y = g && g.axisType && g.axisType.indexOf("time") >= 0; c = h, y && (c = Qs(g.axisValue, c, f)), c = wl(c, n, !0) } else if (I(h)) { var v = lU(function (e, i) { e === this._ticket && (u.setContent(i, l, t, d, a), this._updatePosition(t, a, r, o, u, n, s)) }, this); this._ticket = i, c = h(n, i, v) } u.setContent(c, l, t, d, a), u.show(t, d), this._updatePosition(t, a, r, o, u, n, s) } }, n.prototype._getNearestPoint = function (t, e, n, i) { return "axis" === n || M(e) ? {color: i || ("html" === this._renderMode ? "#fff" : "none")} : M(e) ? void 0 : {color: i || e.color || e.borderColor} }, n.prototype._updatePosition = function (t, e, n, i, r, o, a) { var s = this._api.getWidth(), l = this._api.getHeight(); e = e || t.get("position"); var u = r.getSize(), h = t.get("align"), c = t.get("verticalAlign"), p = a && a.getBoundingRect().clone(); if (a && p.applyTransform(a.transform), I(e) && (e = e([n, i], o, r.el, p, { viewSize: [s, l], contentSize: u.slice() })), M(e)) n = hU(e[0], s), i = hU(e[1], l); else if (D(e)) { var d = e; d.width = u[0], d.height = u[1]; var f = kl(d, {width: s, height: l}); n = f.x, i = f.y, h = null, c = null } else if (T(e) && a) { var g = AI(e, p, u); n = g[0], i = g[1] } else { var g = TI(n, i, r, s, l, h ? null : 20, c ? null : 20); n = g[0], i = g[1] } if (h && (n -= DI(h) ? u[0] / 2 : "right" === h ? u[0] : 0), c && (i -= DI(c) ? u[1] / 2 : "bottom" === c ? u[1] : 0), hI(t)) { var g = CI(n, i, r, s, l); n = g[0], i = g[1] } r.moveTo(n, i) }, n.prototype._updateContentNotChangedOnAxis = function (t) { var e = this._lastDataByCoordSys, n = !!e && e.length === t.length; return n && uU(e, function (e, i) { var r = e.dataByAxis || [], o = t[i] || {}, a = o.dataByAxis || []; n = n && r.length === a.length, n && uU(r, function (t, e) { var i = a[e] || {}, r = t.seriesDataIndices || [], o = i.seriesDataIndices || []; n = n && t.value === i.value && t.axisType === i.axisType && t.axisId === i.axisId && r.length === o.length, n && uU(r, function (t, e) { var i = o[e]; n = n && t.seriesIndex === i.seriesIndex && t.dataIndex === i.dataIndex }) }) }), this._lastDataByCoordSys = t, !!n }, n.prototype._hide = function (t) { this._lastDataByCoordSys = null, t({type: "hideTip", from: this.uid}) }, n.prototype.dispose = function (t, e) { oA.node || (this._tooltipContent.dispose(), eM("itemTooltip", e)) }, n.type = "tooltip", n }(Tz); df(kI); var dU = ur(), fU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.createdBySelf = !1, e } return e(n, t), n.prototype.init = function (t, e, n) { this.mergeDefaultAndTheme(t, n), this._mergeOption(t, n, !1, !0) }, n.prototype.isAnimationEnabled = function () { if (oA.node) return !1; var t = this.__hostSeries; return this.getShallow("animation") && t && t.isAnimationEnabled() }, n.prototype.mergeOption = function (t, e) { this._mergeOption(t, e, !1, !1) }, n.prototype._mergeOption = function (t, e, n, i) { var r = this.mainType; n || e.eachSeries(function (t) { var n = t.get(this.mainType, !0), o = dU(t)[r]; return n && n.data ? (o ? o._mergeOption(n, e, !0) : (i && OI(n), y(n.data, function (t) { t instanceof Array ? (OI(t[0]), OI(t[1])) : OI(t) }), o = this.createMarkerModelFromSeries(n, this, e), h(o, { mainType: this.mainType, seriesIndex: t.seriesIndex, name: t.name, createdBySelf: !0 }), o.__hostSeries = t), void (dU(t)[r] = o)) : void (dU(t)[r] = null) }, this) }, n.prototype.formatTooltip = function (t) { var e = this.getData(), n = this.getRawValue(t), i = e.getName(t); return rh("section", { header: this.name, blocks: [rh("nameValue", {name: i, value: n, noName: !i, noValue: null == n})] }) }, n.prototype.getData = function () { return this._data }, n.prototype.setData = function (t) { this._data = t }, n.getMarkerModelFromSeries = function (t, e) { return dU(t)[e] }, n.type = "marker", n.dependencies = ["series", "grid", "polar", "geo"], n }(gR); f(fU, cz.prototype); var gU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.createMarkerModelFromSeries = function (t, e, i) { return new n(t, e, i) }, n.type = "markPoint", n.defaultOption = { zlevel: 0, z: 5, symbol: "pin", symbolSize: 50, tooltip: {trigger: "item"}, label: {show: !0, position: "inside"}, itemStyle: {borderWidth: 2}, emphasis: {label: {show: !0}} }, n }(fU), yU = {min: S(EI, "min"), max: S(EI, "max"), average: S(EI, "average"), median: S(EI, "median")}, vU = ur(), mU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.init = function () { this.markerGroupMap = Z() }, n.prototype.render = function (t, e, n) { var i = this, r = this.markerGroupMap; r.each(function (t) { vU(t).keep = !1 }), e.eachSeries(function (t) { var r = fU.getMarkerModelFromSeries(t, i.type); r && i.renderSeries(t, r, e, n) }), r.each(function (t) { !vU(t).keep && i.group.remove(t.group) }) }, n.prototype.markKeep = function (t) { vU(t).keep = !0 }, n.prototype.blurSeries = function (t) { var e = this; y(t, function (t) { var n = fU.getMarkerModelFromSeries(t, e.type); if (n) { var i = n.getData(); i.eachItemGraphicEl(function (t) { t && la(t) }) } }) }, n.type = "marker", n }(Tz), xU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.updateTransform = function (t, e, n) { e.eachSeries(function (t) { var e = fU.getMarkerModelFromSeries(t, "markPoint"); e && (WI(e.getData(), t, n), this.markerGroupMap.get(t.id).updateLayout()) }, this) }, n.prototype.renderSeries = function (t, e, n, i) { var r = t.coordinateSystem, o = t.id, a = t.getData(), s = this.markerGroupMap, l = s.get(o) || s.set(o, new CF), u = XI(r, t, e); e.setData(u), WI(e.getData(), t, i), u.each(function (t) { var n = u.getItemModel(t), i = n.getShallow("symbol"), r = n.getShallow("symbolSize"), o = n.getShallow("symbolRotate"); if (I(i) || I(r) || I(o)) { var s = e.getRawValue(t), l = e.getDataParams(t); I(i) && (i = i(s, l)), I(r) && (r = r(s, l)), I(o) && (o = o(s, l)) } var h = n.getModel("itemStyle").getItemStyle(), c = qh(a, "color"); h.fill || (h.fill = c), u.setItemVisual(t, {symbol: i, symbolSize: r, symbolRotate: o, style: h}) }), l.updateData(u), this.group.add(l.group), u.eachItemGraphicEl(function (t) { t.traverse(function (t) { tP(t).dataModel = e }) }), this.markKeep(l), l.group.silent = e.get("silent") || t.get("silent") }, n.type = "markPoint", n }(mU); df(YI); var _U = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.createMarkerModelFromSeries = function (t, e, i) { return new n(t, e, i) }, n.type = "markLine", n.defaultOption = { zlevel: 0, z: 5, symbol: ["circle", "arrow"], symbolSize: [8, 16], symbolOffset: 0, precision: 2, tooltip: {trigger: "item"}, label: {show: !0, position: "end", distance: 5}, lineStyle: {type: "dashed"}, emphasis: {label: {show: !0}, lineStyle: {width: 3}}, animationEasing: "linear" }, n }(fU), bU = ur(), wU = function (t, e, n, i) { var r, o = t.getData(); if (M(i)) r = i; else { var a = i.type; if ("min" === a || "max" === a || "average" === a || "median" === a || null != i.xAxis || null != i.yAxis) { var u = void 0, c = void 0; if (null != i.yAxis || null != i.xAxis) u = e.getAxis(null != i.yAxis ? "y" : "x"), c = N(i.yAxis, i.xAxis); else { var p = BI(i, o, e, t); u = p.valueAxis; var d = fd(o, p.valueDataDim); c = HI(o, d, a) } var f = "x" === u.dim ? 0 : 1, g = 1 - f, y = s(i), v = {coord: []}; y.type = null, y.coord = [], y.coord[g] = -1 / 0, v.coord[g] = 1 / 0; var m = n.get("precision"); m >= 0 && "number" == typeof c && (c = +c.toFixed(Math.min(m, 20))), y.coord[f] = v.coord[f] = c, r = [y, v, { type: a, valueIndex: i.valueIndex, value: c }] } else r = [] } var x = [NI(t, r[0]), NI(t, r[1]), h({}, r[2])]; return x[2].type = x[2].type || null, l(x[2], x[0]), l(x[2], x[1]), x }, SU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.updateTransform = function (t, e, n) { e.eachSeries(function (t) { var e = fU.getMarkerModelFromSeries(t, "markLine"); if (e) { var i = e.getData(), r = bU(e).from, o = bU(e).to; r.each(function (e) { qI(r, e, !0, t, n), qI(o, e, !1, t, n) }), i.each(function (t) { i.setItemLayout(t, [r.getItemLayout(t), o.getItemLayout(t)]) }), this.markerGroupMap.get(t.id).updateLayout() } }, this) }, n.prototype.renderSeries = function (t, e, n, i) { function r(e, n, r) { var o = e.getItemModel(n); qI(e, n, r, t, i); var a = o.getModel("itemStyle").getItemStyle(); null == a.fill && (a.fill = qh(s, "color")), e.setItemVisual(n, { symbolKeepAspect: o.get("symbolKeepAspect"), symbolOffset: B(o.get("symbolOffset"), v[r ? 0 : 1]), symbolRotate: B(o.get("symbolRotate", !0), y[r ? 0 : 1]), symbolSize: B(o.get("symbolSize"), g[r ? 0 : 1]), symbol: B(o.get("symbol", !0), f[r ? 0 : 1]), style: a }) } var o = t.coordinateSystem, a = t.id, s = t.getData(), l = this.markerGroupMap, u = l.get(a) || l.set(a, new cW); this.group.add(u.group); var h = KI(o, t, e), c = h.from, p = h.to, d = h.line; bU(e).from = c, bU(e).to = p, e.setData(d); var f = e.get("symbol"), g = e.get("symbolSize"), y = e.get("symbolRotate"), v = e.get("symbolOffset"); M(f) || (f = [f, f]), M(g) || (g = [g, g]), M(y) || (y = [y, y]), M(v) || (v = [v, v]), h.from.each(function (t) { r(c, t, !0), r(p, t, !1) }), d.each(function (t) { var e = d.getItemModel(t).getModel("lineStyle").getLineStyle(); d.setItemLayout(t, [c.getItemLayout(t), p.getItemLayout(t)]), null == e.stroke && (e.stroke = c.getItemVisual(t, "style").fill), d.setItemVisual(t, { fromSymbolKeepAspect: c.getItemVisual(t, "symbolKeepAspect"), fromSymbolOffset: c.getItemVisual(t, "symbolOffset"), fromSymbolRotate: c.getItemVisual(t, "symbolRotate"), fromSymbolSize: c.getItemVisual(t, "symbolSize"), fromSymbol: c.getItemVisual(t, "symbol"), toSymbolKeepAspect: p.getItemVisual(t, "symbolKeepAspect"), toSymbolOffset: p.getItemVisual(t, "symbolOffset"), toSymbolRotate: p.getItemVisual(t, "symbolRotate"), toSymbolSize: p.getItemVisual(t, "symbolSize"), toSymbol: p.getItemVisual(t, "symbol"), style: e }) }), u.updateData(d), h.line.eachItemGraphicEl(function (t) { t.traverse(function (t) { tP(t).dataModel = e }) }), this.markKeep(u), u.group.silent = e.get("silent") || t.get("silent") }, n.type = "markLine", n }(mU); df($I); var MU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.createMarkerModelFromSeries = function (t, e, i) { return new n(t, e, i) }, n.type = "markArea", n.defaultOption = { zlevel: 0, z: 1, tooltip: {trigger: "item"}, animation: !1, label: {show: !0, position: "top"}, itemStyle: {borderWidth: 0}, emphasis: {label: {show: !0, position: "top"}} }, n }(fU), IU = ur(), TU = function (t, e, n, i) { var r = NI(t, i[0]), o = NI(t, i[1]), a = r.coord, s = o.coord; a[0] = N(a[0], -1 / 0), a[1] = N(a[1], -1 / 0), s[0] = N(s[0], 1 / 0), s[1] = N(s[1], 1 / 0); var l = u([{}, r, o]); return l.coord = [r.coord, o.coord], l.x0 = r.x, l.y0 = r.y, l.x1 = o.x, l.y1 = o.y, l }, CU = [["x0", "y0"], ["x1", "y0"], ["x1", "y1"], ["x0", "y1"]], AU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.updateTransform = function (t, e, n) { e.eachSeries(function (t) { var e = fU.getMarkerModelFromSeries(t, "markArea"); if (e) { var i = e.getData(); i.each(function (e) { var r = v(CU, function (r) { return eT(i, e, r, t, n) }); i.setItemLayout(e, r); var o = i.getItemGraphicEl(e); o.setShape("points", r) }) } }, this) }, n.prototype.renderSeries = function (t, e, n, i) { var r = t.coordinateSystem, o = t.id, a = t.getData(), s = this.markerGroupMap, l = s.get(o) || s.set(o, {group: new sL}); this.group.add(l.group), this.markKeep(l); var u = nT(r, t, e); e.setData(u), u.each(function (e) { var n = v(CU, function (n) { return eT(u, e, n, t, i) }), o = r.getAxis("x").scale, s = r.getAxis("y").scale, l = o.getExtent(), h = s.getExtent(), c = [o.parse(u.get("x0", e)), o.parse(u.get("x1", e))], p = [s.parse(u.get("y0", e)), s.parse(u.get("y1", e))]; wi(c), wi(p); var d = !(l[0] > c[1] || l[1] < c[0] || h[0] > p[1] || h[1] < p[0]), f = !d; u.setItemLayout(e, {points: n, allClipped: f}); var g = u.getItemModel(e).getModel("itemStyle").getItemStyle(), y = qh(a, "color"); g.fill || (g.fill = y, "string" == typeof g.fill && (g.fill = fn(g.fill, .4))), g.stroke || (g.stroke = y), u.setItemVisual(e, "style", g) }), u.diff(IU(l).data).add(function (t) { var e = u.getItemLayout(t); if (!e.allClipped) { var n = new KP({shape: {points: e.points}}); u.setItemGraphicEl(t, n), l.group.add(n) } }).update(function (t, n) { var i = IU(l).data.getItemGraphicEl(n), r = u.getItemLayout(t); r.allClipped ? i && l.group.remove(i) : (i ? us(i, {shape: {points: r.points}}, e, t) : i = new KP({shape: {points: r.points}}), u.setItemGraphicEl(t, i), l.group.add(i)) }).remove(function (t) { var e = IU(l).data.getItemGraphicEl(t); l.group.remove(e) }).execute(), u.eachItemGraphicEl(function (t, n) { var i = u.getItemModel(n), r = u.getItemVisual(n, "style"); t.useStyle(u.getItemVisual(n, "style")), ks(t, Ps(i), { labelFetcher: e, labelDataIndex: n, defaultText: u.getName(n) || "", inheritColor: "string" == typeof r.fill ? fn(r.fill, 1) : "#000" }), Ia(t, i), Sa(t), tP(t).dataModel = e }), IU(l).data = u, l.group.silent = e.get("silent") || t.get("silent") }, n.type = "markArea", n }(mU); df(iT); var DU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.layoutMode = "box", e } return e(n, t), n.prototype.init = function (t, e, n) { this.mergeDefaultAndTheme(t, n), this._initData() }, n.prototype.mergeOption = function () { t.prototype.mergeOption.apply(this, arguments), this._initData() }, n.prototype.setCurrentIndex = function (t) { null == t && (t = this.option.currentIndex); var e = this._data.count(); this.option.loop ? t = (t % e + e) % e : (t >= e && (t = e - 1), 0 > t && (t = 0)), this.option.currentIndex = t }, n.prototype.getCurrentIndex = function () { return this.option.currentIndex }, n.prototype.isIndexMax = function () { return this.getCurrentIndex() >= this._data.count() - 1 }, n.prototype.setPlayState = function (t) { this.option.autoPlay = !!t }, n.prototype.getPlayState = function () { return !!this.option.autoPlay }, n.prototype._initData = function () { var t, e = this.option, n = e.data || [], i = e.axisType, r = this._names = []; "category" === i ? (t = [], y(n, function (e, n) { var i, o = er(Xi(e), ""); D(e) ? (i = s(e), i.value = n) : i = n, t.push(i), r.push(o) })) : t = n; var o = {category: "ordinal", time: "time", value: "number"}[i] || "number", a = this._data = new fV([{name: "value", type: o}], this); a.initData(t, r) }, n.prototype.getData = function () { return this._data }, n.prototype.getCategories = function () { return "category" === this.get("axisType") ? this._names.slice() : void 0 }, n.type = "timeline", n.defaultOption = { zlevel: 0, z: 4, show: !0, axisType: "time", realtime: !0, left: "20%", top: null, right: "20%", bottom: 0, width: null, height: 40, padding: 5, controlPosition: "left", autoPlay: !1, rewind: !1, loop: !0, playInterval: 2e3, currentIndex: 0, itemStyle: {}, label: {color: "#000"}, data: [] }, n }(gR), LU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "timeline.slider", n.defaultOption = Xs(DU.defaultOption, { backgroundColor: "rgba(0,0,0,0)", borderColor: "#ccc", borderWidth: 0, orient: "horizontal", inverse: !1, tooltip: {trigger: "item"}, symbol: "circle", symbolSize: 12, lineStyle: {show: !0, width: 2, color: "#DAE1F5"}, label: {position: "auto", show: !0, interval: "auto", rotate: 0, color: "#A4B1D7"}, itemStyle: {color: "#A4B1D7", borderWidth: 1}, checkpointStyle: { symbol: "circle", symbolSize: 15, color: "#316bf3", borderColor: "#fff", borderWidth: 2, shadowBlur: 2, shadowOffsetX: 1, shadowOffsetY: 1, shadowColor: "rgba(0, 0, 0, 0.3)", animation: !0, animationDuration: 300, animationEasing: "quinticInOut" }, controlStyle: { show: !0, showPlayBtn: !0, showPrevBtn: !0, showNextBtn: !0, itemSize: 24, itemGap: 12, position: "left", playIcon: "path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z", stopIcon: "path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z", nextIcon: "M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z", prevIcon: "M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z", prevBtnSize: 18, nextBtnSize: 18, color: "#A4B1D7", borderColor: "#A4B1D7", borderWidth: 1 }, emphasis: { label: {show: !0, color: "#6f778d"}, itemStyle: {color: "#316BF3"}, controlStyle: {color: "#316BF3", borderColor: "#316BF3", borderWidth: 2} }, progress: {lineStyle: {color: "#316BF3"}, itemStyle: {color: "#316BF3"}, label: {color: "#6f778d"}}, data: [] }), n }(DU); f(LU, cz.prototype); var kU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "timeline", n }(Tz), PU = function (t) { function n(e, n, i, r) { var o = t.call(this, e, n, i) || this; return o.type = r || "value", o } return e(n, t), n.prototype.getLabelModel = function () { return this.model.getModel("label") }, n.prototype.isHorizontal = function () { return "horizontal" === this.model.get("orient") }, n }(tF), OU = Math.PI, RU = ur(), zU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.init = function (t, e) { this.api = e }, n.prototype.render = function (t, e, n) { if (this.model = t, this.api = n, this.ecModel = e, this.group.removeAll(), t.get("show", !0)) { var i = this._layout(t, n), r = this._createGroup("_mainGroup"), o = this._createGroup("_labelGroup"), a = this._axis = this._createAxis(i, t); t.formatTooltip = function (t) { var e = a.scale.getLabel({value: t}); return rh("nameValue", {noName: !0, value: e}) }, y(["AxisLine", "AxisTick", "Control", "CurrentPointer"], function (e) { this["_render" + e](i, r, a, t) }, this), this._renderAxisLabel(i, o, a, t), this._position(i, t) } this._doPlayStop(), this._updateTicksStatus() }, n.prototype.remove = function () { this._clearTimer(), this.group.removeAll() }, n.prototype.dispose = function () { this._clearTimer() }, n.prototype._layout = function (t, e) { var n, i = t.get(["label", "position"]), r = t.get("orient"), o = oT(t, e); n = null == i || "auto" === i ? "horizontal" === r ? o.y + o.height / 2 < e.getHeight() / 2 ? "-" : "+" : o.x + o.width / 2 < e.getWidth() / 2 ? "+" : "-" : T(i) ? { horizontal: { top: "-", bottom: "+" }, vertical: {left: "-", right: "+"} }[r][i] : i; var a = {horizontal: "center", vertical: n >= 0 || "+" === n ? "left" : "right"}, s = {horizontal: n >= 0 || "+" === n ? "top" : "bottom", vertical: "middle"}, l = {horizontal: 0, vertical: OU / 2}, u = "vertical" === r ? o.height : o.width, h = t.getModel("controlStyle"), c = h.get("show", !0), p = c ? h.get("itemSize") : 0, d = c ? h.get("itemGap") : 0, f = p + d, g = t.get(["label", "rotate"]) || 0; g = g * OU / 180; var y, v, m, x = h.get("position", !0), _ = c && h.get("showPlayBtn", !0), b = c && h.get("showPrevBtn", !0), w = c && h.get("showNextBtn", !0), S = 0, M = u; "left" === x || "bottom" === x ? (_ && (y = [0, 0], S += f), b && (v = [S, 0], S += f), w && (m = [M - p, 0], M -= f)) : (_ && (y = [M - p, 0], M -= f), b && (v = [0, 0], S += f), w && (m = [M - p, 0], M -= f)); var I = [S, M]; return t.get("inverse") && I.reverse(), { viewRect: o, mainLength: u, orient: r, rotation: l[r], labelRotation: g, labelPosOpt: n, labelAlign: t.get(["label", "align"]) || a[r], labelBaseline: t.get(["label", "verticalAlign"]) || t.get(["label", "baseline"]) || s[r], playPosition: y, prevBtnPosition: v, nextBtnPosition: m, axisExtent: I, controlSize: p, controlGap: d } }, n.prototype._position = function (t) { function e(t) { t.originX = h[0][0] - t.x, t.originY = h[1][0] - t.y } function n(t) { return [[t.x, t.x + t.width], [t.y, t.y + t.height]] } function i(t, e, n, i, r) { t[i] += n[i][r] - e[i][r] } var r = this._mainGroup, o = this._labelGroup, a = t.viewRect; if ("vertical" === t.orient) { var s = Gn(), l = a.x, u = a.y + a.height; Yn(s, s, [-l, -u]), Zn(s, s, -OU / 2), Yn(s, s, [l, u]), a = a.clone(), a.applyTransform(s) } var h = n(a), c = n(r.getBoundingRect()), p = n(o.getBoundingRect()), d = [r.x, r.y], f = [o.x, o.y]; f[0] = d[0] = h[0][0]; var g = t.labelPosOpt; if (null == g || T(g)) { var y = "+" === g ? 0 : 1; i(d, c, h, 1, y), i(f, p, h, 1, 1 - y) } else { var y = g >= 0 ? 0 : 1; i(d, c, h, 1, y), f[1] = d[1] + g } r.setPosition(d), o.setPosition(f), r.rotation = o.rotation = t.rotation, e(r), e(o) }, n.prototype._createAxis = function (t, e) { var n = e.getData(), i = e.get("axisType"), r = rT(e, i); r.getTicks = function () { return n.mapArray(["value"], function (t) { return {value: t} }) }; var o = n.getDataExtent("value"); r.setExtent(o[0], o[1]), r.niceTicks(); var a = new PU("value", r, t.axisExtent, i); return a.model = e, a }, n.prototype._createGroup = function (t) { var e = this[t] = new sL; return this.group.add(e), e }, n.prototype._renderAxisLine = function (t, e, n, i) { var r = n.getExtent(); if (i.get(["lineStyle", "show"])) { var o = new eO({ shape: {x1: r[0], y1: 0, x2: r[1], y2: 0}, style: h({lineCap: "round"}, i.getModel("lineStyle").getLineStyle()), silent: !0, z2: 1 }); e.add(o); var a = this._progressLine = new eO({ shape: { x1: r[0], x2: this._currentPointer ? this._currentPointer.x : r[0], y1: 0, y2: 0 }, style: c({ lineCap: "round", lineWidth: o.style.lineWidth }, i.getModel(["progress", "lineStyle"]).getLineStyle()), silent: !0, z2: 1 }); e.add(a) } }, n.prototype._renderAxisTick = function (t, e, n, i) { var r = this, o = i.getData(), a = n.scale.getTicks(); this._tickSymbols = [], y(a, function (t) { var a = n.dataToCoord(t.value), s = o.getItemModel(t.value), l = s.getModel("itemStyle"), u = s.getModel(["emphasis", "itemStyle"]), h = s.getModel(["progress", "itemStyle"]), c = {x: a, y: 0, onclick: xA(r._changeTimeline, r, t.value)}, p = sT(s, l, e, c); p.ensureState("emphasis").style = u.getItemStyle(), p.ensureState("progress").style = h.getItemStyle(), Sa(p); var d = tP(p); s.get("tooltip") ? (d.dataIndex = t.value, d.dataModel = i) : d.dataIndex = d.dataModel = null, r._tickSymbols.push(p) }) }, n.prototype._renderAxisLabel = function (t, e, n, i) { var r = this, o = n.getLabelModel(); if (o.get("show")) { var a = i.getData(), s = n.getViewLabels(); this._tickLabels = [], y(s, function (i) { var o = i.tickValue, s = a.getItemModel(o), l = s.getModel("label"), u = s.getModel(["emphasis", "label"]), h = s.getModel(["progress", "label"]), c = n.dataToCoord(i.tickValue), p = new $k({ x: c, y: 0, rotation: t.labelRotation - t.rotation, onclick: xA(r._changeTimeline, r, o), silent: !1, style: Os(l, {text: i.formattedLabel, align: t.labelAlign, verticalAlign: t.labelBaseline}) }); p.ensureState("emphasis").style = Os(u), p.ensureState("progress").style = Os(h), e.add(p), Sa(p), RU(p).dataIndex = o, r._tickLabels.push(p) }) } }, n.prototype._renderControl = function (t, e, n, i) { function r(t, n, r, u) { if (t) { var h = ri(B(i.get(["controlStyle", n + "BtnSize"]), o), o), c = [0, -h / 2, h, h], p = aT(i, n + "Icon", c, { x: t[0], y: t[1], originX: o / 2, originY: 0, rotation: u ? -a : 0, rectHover: !0, style: s, onclick: r }); p.ensureState("emphasis").style = l, e.add(p), Sa(p) } } var o = t.controlSize, a = t.rotation, s = i.getModel("controlStyle").getItemStyle(), l = i.getModel(["emphasis", "controlStyle"]).getItemStyle(), u = i.getPlayState(), h = i.get("inverse", !0); r(t.nextBtnPosition, "next", xA(this._changeTimeline, this, h ? "-" : "+")), r(t.prevBtnPosition, "prev", xA(this._changeTimeline, this, h ? "+" : "-")), r(t.playPosition, u ? "stop" : "play", xA(this._handlePlayClick, this, !u), !0) }, n.prototype._renderCurrentPointer = function (t, e, n, i) { var r = i.getData(), o = i.getCurrentIndex(), a = r.getItemModel(o).getModel("checkpointStyle"), s = this, l = { onCreate: function (t) { t.draggable = !0, t.drift = xA(s._handlePointerDrag, s), t.ondragend = xA(s._handlePointerDragend, s), lT(t, s._progressLine, o, n, i, !0) }, onUpdate: function (t) { lT(t, s._progressLine, o, n, i) } }; this._currentPointer = sT(a, a, this._mainGroup, {}, this._currentPointer, l) }, n.prototype._handlePlayClick = function (t) { this._clearTimer(), this.api.dispatchAction({type: "timelinePlayChange", playState: t, from: this.uid}) }, n.prototype._handlePointerDrag = function (t, e, n) { this._clearTimer(), this._pointerChangeTimeline([n.offsetX, n.offsetY]) }, n.prototype._handlePointerDragend = function (t) { this._pointerChangeTimeline([t.offsetX, t.offsetY], !0) }, n.prototype._pointerChangeTimeline = function (t, e) { var n = this._toAxisCoord(t)[0], i = this._axis, r = wi(i.getExtent().slice()); n > r[1] && (n = r[1]), n < r[0] && (n = r[0]), this._currentPointer.x = n, this._currentPointer.markRedraw(), this._progressLine.shape.x2 = n, this._progressLine.dirty(); var o = this._findNearestTick(n), a = this.model; (e || o !== a.getCurrentIndex() && a.get("realtime")) && this._changeTimeline(o) }, n.prototype._doPlayStop = function () { var t = this; this._clearTimer(), this.model.getPlayState() && (this._timer = setTimeout(function () { var e = t.model; t._changeTimeline(e.getCurrentIndex() + (e.get("rewind", !0) ? -1 : 1)) }, this.model.get("playInterval"))) }, n.prototype._toAxisCoord = function (t) { var e = this._mainGroup.getLocalTransform(); return ys(t, e, !0) }, n.prototype._findNearestTick = function (t) { var e, n = this.model.getData(), i = 1 / 0, r = this._axis; return n.each(["value"], function (n, o) { var a = r.dataToCoord(n), s = Math.abs(a - t); i > s && (i = s, e = o) }), e }, n.prototype._clearTimer = function () { this._timer && (clearTimeout(this._timer), this._timer = null) }, n.prototype._changeTimeline = function (t) { var e = this.model.getCurrentIndex(); "+" === t ? t = e + 1 : "-" === t && (t = e - 1), this.api.dispatchAction({ type: "timelineChange", currentIndex: t, from: this.uid }) }, n.prototype._updateTicksStatus = function () { var t = this.model.getCurrentIndex(), e = this._tickSymbols, n = this._tickLabels; if (e) for (var i = 0; i < e.length; i++) e && e[i] && e[i].toggleState("progress", t > i); if (n) for (var i = 0; i < n.length; i++) n && n[i] && n[i].toggleState("progress", RU(n[i]).dataIndex <= t) }, n.type = "timeline.slider", n }(kU); df(fT); var EU = ["x", "y", "radius", "angle", "single"], NU = ["cartesian2d", "polar", "singleAxis"], BU = function () { function t() { this.indexList = [], this.indexMap = [] } return t.prototype.add = function (t) { this.indexMap[t] || (this.indexList.push(t), this.indexMap[t] = !0) }, t }(), VU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e._autoThrottle = !0, e._noTarget = !0, e._rangePropMode = ["percent", "percent"], e } return e(n, t), n.prototype.init = function (t, e, n) { var i = xT(t); this.settledOption = i, this.mergeDefaultAndTheme(t, n), this._doInit(i) }, n.prototype.mergeOption = function (t) { var e = xT(t); l(this.option, t, !0), l(this.settledOption, e, !0), this._doInit(e) }, n.prototype._doInit = function (t) { var e = this.option; this._setDefaultThrottle(t), this._updateRangeUse(t); var n = this.settledOption; y([["start", "startValue"], ["end", "endValue"]], function (t, i) { "value" === this._rangePropMode[i] && (e[t[0]] = n[t[0]] = null) }, this), this._resetTarget() }, n.prototype._resetTarget = function () { var t = this.get("orient", !0), e = this._targetAxisInfoMap = Z(), n = this._fillSpecifiedTargetAxis(e); n ? this._orient = t || this._makeAutoOrientByTargetAxis() : (this._orient = t || "horizontal", this._fillAutoTargetAxisByOrient(e, this._orient)), this._noTarget = !0, e.each(function (t) { t.indexList.length && (this._noTarget = !1) }, this) }, n.prototype._fillSpecifiedTargetAxis = function (t) { var e = !1; return y(EU, function (n) { var i = this.getReferringComponents(yT(n), SL); if (i.specified) { e = !0; var r = new BU; y(i.models, function (t) { r.add(t.componentIndex) }), t.set(n, r) } }, this), e }, n.prototype._fillAutoTargetAxisByOrient = function (t, e) { function n(e, n) { var i = e[0]; if (i) { var o = new BU; if (o.add(i.componentIndex), t.set(n, o), r = !1, "x" === n || "y" === n) { var a = i.getReferringComponents("grid", wL).models[0]; a && y(e, function (t) { i.componentIndex !== t.componentIndex && a === t.getReferringComponents("grid", wL).models[0] && o.add(t.componentIndex) }) } } } var i = this.ecModel, r = !0; if (r) { var o = "vertical" === e ? "y" : "x", a = i.findComponents({mainType: o + "Axis"}); n(a, o) } if (r) { var a = i.findComponents({ mainType: "singleAxis", filter: function (t) { return t.get("orient", !0) === e } }); n(a, "single") } r && y(EU, function (e) { if (r) { var n = i.findComponents({ mainType: yT(e), filter: function (t) { return "category" === t.get("type", !0) } }); if (n[0]) { var o = new BU; o.add(n[0].componentIndex), t.set(e, o), r = !1 } } }, this) }, n.prototype._makeAutoOrientByTargetAxis = function () { var t; return this.eachTargetAxis(function (e) { !t && (t = e) }, this), "y" === t ? "vertical" : "horizontal" }, n.prototype._setDefaultThrottle = function (t) { if (t.hasOwnProperty("throttle") && (this._autoThrottle = !1), this._autoThrottle) { var e = this.ecModel.option; this.option.throttle = e.animation && e.animationDurationUpdate > 0 ? 100 : 20 } }, n.prototype._updateRangeUse = function (t) { var e = this._rangePropMode, n = this.get("rangeMode"); y([["start", "startValue"], ["end", "endValue"]], function (i, r) { var o = null != t[i[0]], a = null != t[i[1]]; o && !a ? e[r] = "percent" : !o && a ? e[r] = "value" : n ? e[r] = n[r] : o && (e[r] = "percent") }) }, n.prototype.noTarget = function () { return this._noTarget }, n.prototype.getFirstTargetAxisModel = function () { var t; return this.eachTargetAxis(function (e, n) { null == t && (t = this.ecModel.getComponent(yT(e), n)) }, this), t }, n.prototype.eachTargetAxis = function (t, e) { this._targetAxisInfoMap.each(function (n, i) { y(n.indexList, function (n) { t.call(e, i, n) }) }) }, n.prototype.getAxisProxy = function (t, e) { var n = this.getAxisModel(t, e); return n ? n.__dzAxisProxy : void 0 }, n.prototype.getAxisModel = function (t, e) { var n = this._targetAxisInfoMap.get(t); return n && n.indexMap[e] ? this.ecModel.getComponent(yT(t), e) : void 0 }, n.prototype.setRawRange = function (t) { var e = this.option, n = this.settledOption; y([["start", "startValue"], ["end", "endValue"]], function (i) { (null != t[i[0]] || null != t[i[1]]) && (e[i[0]] = n[i[0]] = t[i[0]], e[i[1]] = n[i[1]] = t[i[1]]) }, this), this._updateRangeUse(t) }, n.prototype.setCalculatedRange = function (t) { var e = this.option; y(["start", "startValue", "end", "endValue"], function (n) { e[n] = t[n] }) }, n.prototype.getPercentRange = function () { var t = this.findRepresentativeAxisProxy(); return t ? t.getDataPercentWindow() : void 0 }, n.prototype.getValueRange = function (t, e) { if (null != t || null != e) return this.getAxisProxy(t, e).getDataValueWindow(); var n = this.findRepresentativeAxisProxy(); return n ? n.getDataValueWindow() : void 0 }, n.prototype.findRepresentativeAxisProxy = function (t) { if (t) return t.__dzAxisProxy; for (var e, n = this._targetAxisInfoMap.keys(), i = 0; i < n.length; i++) for (var r = n[i], o = this._targetAxisInfoMap.get(r), a = 0; a < o.indexList.length; a++) { var s = this.getAxisProxy(r, o.indexList[a]); if (s.hostedBy(this)) return s; e || (e = s) } return e }, n.prototype.getRangePropMode = function () { return this._rangePropMode.slice() }, n.prototype.getOrient = function () { return this._orient }, n.type = "dataZoom", n.dependencies = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "series", "toolbox"], n.defaultOption = { zlevel: 0, z: 4, filterMode: "filter", start: 0, end: 100 }, n }(gR), FU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "dataZoom.inside", n.defaultOption = Xs(VU.defaultOption, { disabled: !1, zoomLock: !1, zoomOnMouseWheel: !0, moveOnMouseMove: !0, moveOnMouseWheel: !1, preventDefaultMouseMove: !0 }), n }(VU), GU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.render = function (t, e, n) { this.dataZoomModel = t, this.ecModel = e, this.api = n }, n.type = "dataZoom", n }(Tz), HU = ur(), WU = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = "dataZoom.inside", e } return e(n, t), n.prototype.render = function (e, n, i) { return t.prototype.render.apply(this, arguments), e.noTarget() ? void this._clear() : (this.range = e.getPercentRange(), void _T(i, e, { pan: xA(XU.pan, this), zoom: xA(XU.zoom, this), scrollMove: xA(XU.scrollMove, this) })) }, n.prototype.dispose = function () { this._clear(), t.prototype.dispose.apply(this, arguments) }, n.prototype._clear = function () { bT(this.api, this.dataZoomModel), this.range = null }, n.type = "dataZoom.inside", n }(GU), XU = { zoom: function (t, e, n, i) { var r = this.range, o = r.slice(), a = t.axisModels[0]; if (a) { var s = YU[e](null, [i.originX, i.originY], a, n, t), l = (s.signal > 0 ? s.pixelStart + s.pixelLength - s.pixel : s.pixel - s.pixelStart) / s.pixelLength * (o[1] - o[0]) + o[0], u = Math.max(1 / i.scale, 0); o[0] = (o[0] - l) * u + l, o[1] = (o[1] - l) * u + l; var h = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan(); return qx(0, o, [0, 100], 0, h.minSpan, h.maxSpan), this.range = o, r[0] !== o[0] || r[1] !== o[1] ? o : void 0 } }, pan: AT(function (t, e, n, i, r, o) { var a = YU[i]([o.oldX, o.oldY], [o.newX, o.newY], e, r, n); return a.signal * (t[1] - t[0]) * a.pixel / a.pixelLength }), scrollMove: AT(function (t, e, n, i, r, o) { var a = YU[i]([0, 0], [o.scrollDelta, o.scrollDelta], e, r, n); return a.signal * (t[1] - t[0]) * o.scrollDelta }) }, YU = { grid: function (t, e, n, i, r) { var o = n.axis, a = {}, s = r.model.coordinateSystem.getRect(); return t = t || [0, 0], "x" === o.dim ? (a.pixel = e[0] - t[0], a.pixelLength = s.width, a.pixelStart = s.x, a.signal = o.inverse ? 1 : -1) : (a.pixel = e[1] - t[1], a.pixelLength = s.height, a.pixelStart = s.y, a.signal = o.inverse ? -1 : 1), a }, polar: function (t, e, n, i, r) { var o = n.axis, a = {}, s = r.model.coordinateSystem, l = s.getRadiusAxis().getExtent(), u = s.getAngleAxis().getExtent(); return t = t ? s.pointToCoord(t) : [0, 0], e = s.pointToCoord(e), "radiusAxis" === n.mainType ? (a.pixel = e[0] - t[0], a.pixelLength = l[1] - l[0], a.pixelStart = l[0], a.signal = o.inverse ? 1 : -1) : (a.pixel = e[1] - t[1], a.pixelLength = u[1] - u[0], a.pixelStart = u[0], a.signal = o.inverse ? -1 : 1), a }, singleAxis: function (t, e, n, i, r) { var o = n.axis, a = r.model.coordinateSystem.getRect(), s = {}; return t = t || [0, 0], "horizontal" === o.orient ? (s.pixel = e[0] - t[0], s.pixelLength = a.width, s.pixelStart = a.x, s.signal = o.inverse ? 1 : -1) : (s.pixel = e[1] - t[1], s.pixelLength = a.height, s.pixelStart = a.y, s.signal = o.inverse ? -1 : 1), s } }, ZU = y, UU = wi, jU = function () { function t(t, e, n, i) { this._dimName = t, this._axisIndex = e, this.ecModel = i, this._dataZoomModel = n } return t.prototype.hostedBy = function (t) { return this._dataZoomModel === t }, t.prototype.getDataValueWindow = function () { return this._valueWindow.slice() }, t.prototype.getDataPercentWindow = function () { return this._percentWindow.slice() }, t.prototype.getTargetSeriesModels = function () { var t = []; return this.ecModel.eachSeries(function (e) { if (gT(e)) { var n = yT(this._dimName), i = e.getReferringComponents(n, wL).models[0]; i && this._axisIndex === i.componentIndex && t.push(e) } }, this), t }, t.prototype.getAxisModel = function () { return this.ecModel.getComponent(this._dimName + "Axis", this._axisIndex) }, t.prototype.getMinMaxSpan = function () { return s(this._minMaxSpan) }, t.prototype.calculateDataWindow = function (t) { function e(t, e, n, i, r) { var a = r ? "Span" : "ValueSpan"; qx(0, t, n, "all", h["min" + a], h["max" + a]); for (var s = 0; 2 > s; s++) e[s] = xi(t[s], n, i, !0), r && (e[s] = o.parse(e[s])) } var n, i = this._dataExtent, r = this.getAxisModel(), o = r.axis.scale, a = this._dataZoomModel.getRangePropMode(), s = [0, 100], l = [], u = []; ZU(["start", "end"], function (e, r) { var h = t[e], c = t[e + "Value"]; "percent" === a[r] ? (null == h && (h = s[r]), c = o.parse(xi(h, s, i))) : (n = !0, c = null == c ? i[r] : o.parse(c), h = xi(c, i, s)), u[r] = c, l[r] = h }), UU(u), UU(l); var h = this._minMaxSpan; return n ? e(u, l, i, s, !1) : e(l, u, s, i, !0), {valueWindow: u, percentWindow: l} }, t.prototype.reset = function (t) { if (t === this._dataZoomModel) { var e = this.getTargetSeriesModels(); this._dataExtent = DT(this, this._dimName, e), this._updateMinMaxSpan(); var n = this.calculateDataWindow(t.settledOption); this._valueWindow = n.valueWindow, this._percentWindow = n.percentWindow, this._setAxisModel() } }, t.prototype.filterData = function (t) { function e(t) { return t >= o[0] && t <= o[1] } if (t === this._dataZoomModel) { var n = this._dimName, i = this.getTargetSeriesModels(), r = t.get("filterMode"), o = this._valueWindow; "none" !== r && ZU(i, function (t) { var i = t.getData(), a = i.mapDimensionsAll(n); a.length && ("weakFilter" === r ? i.filterSelf(function (t) { for (var e, n, r, s = 0; s < a.length; s++) { var l = i.get(a[s], t), u = !isNaN(l), h = l < o[0], c = l > o[1]; if (u && !h && !c) return !0; u && (r = !0), h && (e = !0), c && (n = !0) } return r && e && n }) : ZU(a, function (n) { if ("empty" === r) t.setData(i = i.map(n, function (t) { return e(t) ? t : 0 / 0 })); else { var a = {}; a[n] = o, i.selectRange(a) } }), ZU(a, function (t) { i.setApproximateExtent(o, t) })) }) } }, t.prototype._updateMinMaxSpan = function () { var t = this._minMaxSpan = {}, e = this._dataZoomModel, n = this._dataExtent; ZU(["min", "max"], function (i) { var r = e.get(i + "Span"), o = e.get(i + "ValueSpan"); null != o && (o = this.getAxisModel().axis.scale.parse(o)), null != o ? r = xi(n[0] + o, n, [0, 100], !0) : null != r && (o = xi(r, [0, 100], n, !0) - n[0]), t[i + "Span"] = r, t[i + "ValueSpan"] = o }, this) }, t.prototype._setAxisModel = function () { var t = this.getAxisModel(), e = this._percentWindow, n = this._valueWindow; if (e) { var i = Ii(n, [0, 500]); i = Math.min(i, 20); var r = t.axis.scale.rawExtentInfo; 0 !== e[0] && r.setDeterminedMinMax("min", +n[0].toFixed(i)), 100 !== e[1] && r.setDeterminedMinMax("max", +n[1].toFixed(i)), r.freeze() } }, t }(), qU = { getTargetSeries: function (t) { function e(e) { t.eachComponent("dataZoom", function (n) { n.eachTargetAxis(function (i, r) { var o = t.getComponent(yT(i), r); e(i, r, o, n) }) }) } e(function (t, e, n) { n.__dzAxisProxy = null }); var n = []; e(function (e, i, r, o) { r.__dzAxisProxy || (r.__dzAxisProxy = new jU(e, i, o, t), n.push(r.__dzAxisProxy)) }); var i = Z(); return y(n, function (t) { y(t.getTargetSeriesModels(), function (t) { i.set(t.uid, t) }) }), i }, overallReset: function (t, e) { t.eachComponent("dataZoom", function (t) { t.eachTargetAxis(function (e, n) { t.getAxisProxy(e, n).reset(t) }), t.eachTargetAxis(function (n, i) { t.getAxisProxy(n, i).filterData(t, e) }) }), t.eachComponent("dataZoom", function (t) { var e = t.findRepresentativeAxisProxy(); if (e) { var n = e.getDataPercentWindow(), i = e.getDataValueWindow(); t.setCalculatedRange({start: n[0], end: n[1], startValue: i[0], endValue: i[1]}) } }) } }, KU = !1, $U = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "dataZoom.slider", n.layoutMode = "box", n.defaultOption = Xs(VU.defaultOption, { show: !0, right: "ph", top: "ph", width: "ph", height: "ph", left: null, bottom: null, borderColor: "#d2dbee", borderRadius: 3, backgroundColor: "rgba(47,69,84,0)", dataBackground: {lineStyle: {color: "#d2dbee", width: .5}, areaStyle: {color: "#d2dbee", opacity: .2}}, selectedDataBackground: { lineStyle: {color: "#8fb0f7", width: .5}, areaStyle: {color: "#8fb0f7", opacity: .2} }, fillerColor: "rgba(135,175,274,0.2)", handleIcon: "path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z", handleSize: "100%", handleStyle: {color: "#fff", borderColor: "#ACB8D1"}, moveHandleSize: 7, moveHandleIcon: "path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z", moveHandleStyle: {color: "#D2DBEE", opacity: .7}, showDetail: !0, showDataShadow: "auto", realtime: !0, zoomLock: !1, textStyle: {color: "#6E7079"}, brushSelect: !0, brushStyle: {color: "rgba(135,175,274,0.15)"}, emphasis: {handleStyle: {borderColor: "#8FB0F7"}, moveHandleStyle: {color: "#8FB0F7"}} }), n }(VU), JU = Uk, QU = 7, tj = 1, ej = 30, nj = 7, ij = "horizontal", rj = "vertical", oj = 5, aj = ["line", "bar", "candlestick", "scatter"], sj = {easing: "cubicOut", duration: 100}, lj = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e._displayables = {}, e } return e(n, t), n.prototype.init = function (t, e) { this.api = e, this._onBrush = xA(this._onBrush, this), this._onBrushEnd = xA(this._onBrushEnd, this) }, n.prototype.render = function (e, n, i, r) { return t.prototype.render.apply(this, arguments), Oh(this, "_dispatchZoomAction", e.get("throttle"), "fixRate"), this._orient = e.getOrient(), e.get("show") === !1 ? void this.group.removeAll() : e.noTarget() ? (this._clear(), void this.group.removeAll()) : (r && "dataZoom" === r.type && r.from === this.uid || this._buildView(), void this._updateView()) }, n.prototype.dispose = function () { this._clear(), t.prototype.dispose.apply(this, arguments) }, n.prototype._clear = function () { Rh(this, "_dispatchZoomAction"); var t = this.api.getZr(); t.off("mousemove", this._onBrush), t.off("mouseup", this._onBrushEnd) }, n.prototype._buildView = function () { var t = this.group; t.removeAll(), this._brushing = !1, this._displayables.brushRect = null, this._resetLocation(), this._resetInterval(); var e = this._displayables.sliderGroup = new sL; this._renderBackground(), this._renderHandle(), this._renderDataShadow(), t.add(e), this._positionGroup() }, n.prototype._resetLocation = function () { var t = this.dataZoomModel, e = this.api, n = t.get("brushSelect"), i = n ? nj : 0, r = this._findCoordRect(), o = {width: e.getWidth(), height: e.getHeight()}, a = this._orient === ij ? { right: o.width - r.x - r.width, top: o.height - ej - QU - i, width: r.width, height: ej } : {right: QU, top: r.y, width: ej, height: r.height}, s = El(t.option); y(["right", "top", "width", "height"], function (t) { "ph" === s[t] && (s[t] = a[t]) }); var l = kl(s, o); this._location = { x: l.x, y: l.y }, this._size = [l.width, l.height], this._orient === rj && this._size.reverse() }, n.prototype._positionGroup = function () { var t = this.group, e = this._location, n = this._orient, i = this.dataZoomModel.getFirstTargetAxisModel(), r = i && i.get("inverse"), o = this._displayables.sliderGroup, a = (this._dataShadowInfo || {}).otherAxisInverse; o.attr(n !== ij || r ? n === ij && r ? { scaleY: a ? 1 : -1, scaleX: -1 } : n !== rj || r ? {scaleY: a ? -1 : 1, scaleX: -1, rotation: Math.PI / 2} : { scaleY: a ? -1 : 1, scaleX: 1, rotation: Math.PI / 2 } : {scaleY: a ? 1 : -1, scaleX: 1}); var s = t.getBoundingRect([o]); t.x = e.x - s.x, t.y = e.y - s.y, t.markRedraw() }, n.prototype._getViewExtent = function () { return [0, this._size[0]] }, n.prototype._renderBackground = function () { var t = this.dataZoomModel, e = this._size, n = this._displayables.sliderGroup, i = t.get("brushSelect"); n.add(new JU({ silent: !0, shape: {x: 0, y: 0, width: e[0], height: e[1]}, style: {fill: t.get("backgroundColor")}, z2: -40 })); var r = new JU({ shape: {x: 0, y: 0, width: e[0], height: e[1]}, style: {fill: "transparent"}, z2: 0, onclick: xA(this._onClickPanel, this) }), o = this.api.getZr(); i ? (r.on("mousedown", this._onBrushStart, this), r.cursor = "crosshair", o.on("mousemove", this._onBrush), o.on("mouseup", this._onBrushEnd)) : (o.off("mousemove", this._onBrush), o.off("mouseup", this._onBrushEnd)), n.add(r) }, n.prototype._renderDataShadow = function () { function t(t) { var e = y.getModel(t ? "selectedDataBackground" : "dataBackground"), n = new sL, i = new KP({ shape: {points: c}, segmentIgnoreThreshold: 1, style: e.getModel("areaStyle").getAreaStyle(), silent: !0, z2: -20 }), r = new JP({ shape: {points: p}, segmentIgnoreThreshold: 1, style: e.getModel("lineStyle").getLineStyle(), silent: !0, z2: -19 }); return n.add(i), n.add(r), n } var e = this._dataShadowInfo = this._prepareDataShadowInfo(); if (this._displayables.dataShadowSegs = [], e) { var n = this._size, i = e.series, r = i.getRawData(), o = i.getShadowDim ? i.getShadowDim() : e.otherDim; if (null != o) { var a = r.getDataExtent(o), s = .3 * (a[1] - a[0]); a = [a[0] - s, a[1] + s]; var l, u = [0, n[1]], h = [0, n[0]], c = [[n[0], 0], [0, 0]], p = [], d = h[1] / (r.count() - 1), f = 0, g = Math.round(r.count() / n[0]); r.each([o], function (t, e) { if (g > 0 && e % g) return void (f += d); var n = null == t || isNaN(t) || "" === t, i = n ? 0 : xi(t, a, u, !0); n && !l && e ? (c.push([c[c.length - 1][0], 0]), p.push([p[p.length - 1][0], 0])) : !n && l && (c.push([f, 0]), p.push([f, 0])), c.push([f, i]), p.push([f, i]), f += d, l = n }); for (var y = this.dataZoomModel, v = 0; 3 > v; v++) { var m = t(1 === v); this._displayables.sliderGroup.add(m), this._displayables.dataShadowSegs.push(m) } } } }, n.prototype._prepareDataShadowInfo = function () { var t = this.dataZoomModel, e = t.get("showDataShadow"); if (e !== !1) { var n, i = this.ecModel; return t.eachTargetAxis(function (r, o) { var a = t.getAxisProxy(r, o).getTargetSeriesModels(); y(a, function (t) { if (!(n || e !== !0 && p(aj, t.get("type")) < 0)) { var a, s = i.getComponent(yT(r), o).axis, l = OT(r), u = t.coordinateSystem; null != l && u.getOtherAxis && (a = u.getOtherAxis(s).inverse), l = t.getData().mapDimension(l), n = { thisAxis: s, series: t, thisDim: r, otherDim: l, otherAxisInverse: a } } }, this) }, this), n } }, n.prototype._renderHandle = function () { var t = this.group, e = this._displayables, n = e.handles = [null, null], i = e.handleLabels = [null, null], r = this._displayables.sliderGroup, o = this._size, a = this.dataZoomModel, s = this.api, l = a.get("borderRadius") || 0, u = a.get("brushSelect"), h = e.filler = new JU({ silent: u, style: {fill: a.get("fillerColor")}, textConfig: {position: "inside"} }); r.add(h), r.add(new JU({ silent: !0, subPixelOptimize: !0, shape: {x: 0, y: 0, width: o[0], height: o[1], r: l}, style: { stroke: a.get("dataBackgroundColor") || a.get("borderColor"), lineWidth: tj, fill: "rgba(0,0,0,0)" } })), y([0, 1], function (e) { var o = a.get("handleIcon"); !AE[o] && o.indexOf("path://") < 0 && o.indexOf("image://") < 0 && (o = "path://" + o); var s = Sc(o, -1, 0, 2, 2, null, !0); s.attr({ cursor: RT(this._orient), draggable: !0, drift: xA(this._onDragMove, this, e), ondragend: xA(this._onDragEnd, this), onmouseover: xA(this._showDataInfo, this, !0), onmouseout: xA(this._showDataInfo, this, !1), z2: 5 }); var l = s.getBoundingRect(), u = a.get("handleSize"); this._handleHeight = _i(u, this._size[1]), this._handleWidth = l.width / l.height * this._handleHeight, s.setStyle(a.getModel("handleStyle").getItemStyle()), s.style.strokeNoScale = !0, s.rectHover = !0, s.ensureState("emphasis").style = a.getModel(["emphasis", "handleStyle"]).getItemStyle(), Sa(s); var h = a.get("handleColor"); null != h && (s.style.fill = h), r.add(n[e] = s); var c = a.getModel("textStyle"); t.add(i[e] = new $k({ silent: !0, invisible: !0, style: Os(c, { x: 0, y: 0, text: "", verticalAlign: "middle", align: "center", fill: c.getTextColor(), font: c.getFont() }), z2: 10 })) }, this); var c = h; if (u) { var p = _i(a.get("moveHandleSize"), o[1]), d = e.moveHandle = new Uk({ style: a.getModel("moveHandleStyle").getItemStyle(), silent: !0, shape: {r: [0, 0, 2, 2], y: o[1] - .5, height: p} }), f = .8 * p, g = e.moveHandleIcon = Sc(a.get("moveHandleIcon"), -f / 2, -f / 2, f, f, "#fff", !0); g.silent = !0, g.y = o[1] + p / 2 - .5, d.ensureState("emphasis").style = a.getModel(["emphasis", "moveHandleStyle"]).getItemStyle(); var v = Math.min(o[1] / 2, Math.max(p, 10)); c = e.moveZone = new Uk({ invisible: !0, shape: {y: o[1] - v, height: p + v} }), c.on("mouseover", function () { s.enterEmphasis(d) }).on("mouseout", function () { s.leaveEmphasis(d) }), r.add(d), r.add(g), r.add(c) } c.attr({ draggable: !0, cursor: RT(this._orient), drift: xA(this._onDragMove, this, "all"), ondragstart: xA(this._showDataInfo, this, !0), ondragend: xA(this._onDragEnd, this), onmouseover: xA(this._showDataInfo, this, !0), onmouseout: xA(this._showDataInfo, this, !1) }) }, n.prototype._resetInterval = function () { var t = this._range = this.dataZoomModel.getPercentRange(), e = this._getViewExtent(); this._handleEnds = [xi(t[0], [0, 100], e, !0), xi(t[1], [0, 100], e, !0)] }, n.prototype._updateInterval = function (t, e) { var n = this.dataZoomModel, i = this._handleEnds, r = this._getViewExtent(), o = n.findRepresentativeAxisProxy().getMinMaxSpan(), a = [0, 100]; qx(e, i, r, n.get("zoomLock") ? "all" : t, null != o.minSpan ? xi(o.minSpan, a, r, !0) : null, null != o.maxSpan ? xi(o.maxSpan, a, r, !0) : null); var s = this._range, l = this._range = wi([xi(i[0], r, a, !0), xi(i[1], r, a, !0)]); return !s || s[0] !== l[0] || s[1] !== l[1] }, n.prototype._updateView = function (t) { var e = this._displayables, n = this._handleEnds, i = wi(n.slice()), r = this._size; y([0, 1], function (t) { var i = e.handles[t], o = this._handleHeight; i.attr({scaleX: o / 2, scaleY: o / 2, x: n[t] + (t ? -1 : 1), y: r[1] / 2 - o / 2}) }, this), e.filler.setShape({x: i[0], y: 0, width: i[1] - i[0], height: r[1]}); var o = {x: i[0], width: i[1] - i[0]}; e.moveHandle && (e.moveHandle.setShape(o), e.moveZone.setShape(o), e.moveZone.getBoundingRect(), e.moveHandleIcon && e.moveHandleIcon.attr("x", o.x + o.width / 2)); for (var a = e.dataShadowSegs, s = [0, i[0], i[1], r[0]], l = 0; l < a.length; l++) { var u = a[l], h = u.getClipPath(); h || (h = new Uk, u.setClipPath(h)), h.setShape({x: s[l], y: 0, width: s[l + 1] - s[l], height: r[1]}) } this._updateDataInfo(t) }, n.prototype._updateDataInfo = function (t) { function e(t) { var e = gs(i.handles[t].parent, this.group), n = vs(0 === t ? "right" : "left", e), s = this._handleWidth / 2 + oj, l = ys([c[t] + (0 === t ? -s : s), this._size[1] / 2], e); r[t].setStyle({ x: l[0], y: l[1], verticalAlign: o === ij ? "middle" : n, align: o === ij ? n : "center", text: a[t] }) } var n = this.dataZoomModel, i = this._displayables, r = i.handleLabels, o = this._orient, a = ["", ""]; if (n.get("showDetail")) { var s = n.findRepresentativeAxisProxy(); if (s) { var l = s.getAxisModel().axis, u = this._range, h = t ? s.calculateDataWindow({start: u[0], end: u[1]}).valueWindow : s.getDataValueWindow(); a = [this._formatLabel(h[0], l), this._formatLabel(h[1], l)] } } var c = wi(this._handleEnds.slice()); e.call(this, 0), e.call(this, 1) }, n.prototype._formatLabel = function (t, e) { var n = this.dataZoomModel, i = n.get("labelFormatter"), r = n.get("labelPrecision"); (null == r || "auto" === r) && (r = e.getPixelPrecision()); var o = null == t || isNaN(t) ? "" : "category" === e.type || "time" === e.type ? e.scale.getLabel({value: Math.round(t)}) : t.toFixed(Math.min(r, 20)); return I(i) ? i(t, o) : T(i) ? i.replace("{value}", o) : o }, n.prototype._showDataInfo = function (t) { t = this._dragging || t; var e = this._displayables, n = e.handleLabels; n[0].attr("invisible", !t), n[1].attr("invisible", !t), e.moveHandle && this.api[t ? "enterEmphasis" : "leaveEmphasis"](e.moveHandle, 1) }, n.prototype._onDragMove = function (t, e, n, i) { this._dragging = !0, NA(i.event); var r = this._displayables.sliderGroup.getLocalTransform(), o = ys([e, n], r, !0), a = this._updateInterval(t, o[0]), s = this.dataZoomModel.get("realtime"); this._updateView(!s), a && s && this._dispatchZoomAction(!0) }, n.prototype._onDragEnd = function () { this._dragging = !1, this._showDataInfo(!1); var t = this.dataZoomModel.get("realtime"); !t && this._dispatchZoomAction(!1) }, n.prototype._onClickPanel = function (t) { var e = this._size, n = this._displayables.sliderGroup.transformCoordToLocal(t.offsetX, t.offsetY); if (!(n[0] < 0 || n[0] > e[0] || n[1] < 0 || n[1] > e[1])) { var i = this._handleEnds, r = (i[0] + i[1]) / 2, o = this._updateInterval("all", n[0] - r); this._updateView(), o && this._dispatchZoomAction(!1) } }, n.prototype._onBrushStart = function (t) { var e = t.offsetX, n = t.offsetY; this._brushStart = new HD(e, n), this._brushing = !0, this._brushStartTime = +new Date }, n.prototype._onBrushEnd = function () { if (this._brushing) { var t = this._displayables.brushRect; if (this._brushing = !1, t) { t.attr("ignore", !0); var e = t.shape, n = +new Date; if (!(n - this._brushStartTime < 200 && Math.abs(e.width) < 5)) { var i = this._getViewExtent(), r = [0, 100]; this._range = wi([xi(e.x, i, r, !0), xi(e.x + e.width, i, r, !0)]), this._handleEnds = [e.x, e.x + e.width], this._updateView(), this._dispatchZoomAction(!1) } } } }, n.prototype._onBrush = function (t) { this._brushing && (NA(t.event), this._updateBrushRect(t.offsetX, t.offsetY)) }, n.prototype._updateBrushRect = function (t, e) { var n = this._displayables, i = this.dataZoomModel, r = n.brushRect; r || (r = n.brushRect = new JU({ silent: !0, style: i.getModel("brushStyle").getItemStyle() }), n.sliderGroup.add(r)), r.attr("ignore", !1); var o = this._brushStart, a = this._displayables.sliderGroup, s = a.transformCoordToLocal(t, e), l = a.transformCoordToLocal(o.x, o.y), u = this._size; s[0] = Math.max(Math.min(u[0], s[0]), 0), r.setShape({x: l[0], y: 0, width: s[0] - l[0], height: u[1]}) }, n.prototype._dispatchZoomAction = function (t) { var e = this._range; this.api.dispatchAction({ type: "dataZoom", from: this.uid, dataZoomId: this.dataZoomModel.id, animation: t ? sj : null, start: e[0], end: e[1] }) }, n.prototype._findCoordRect = function () { var t, e = mT(this.dataZoomModel).infoList; if (!t && e.length) { var n = e[0].model.coordinateSystem; t = n.getRect && n.getRect() } if (!t) { var i = this.api.getWidth(), r = this.api.getHeight(); t = {x: .2 * i, y: .2 * r, width: .6 * i, height: .6 * r} } return t }, n.type = "dataZoom.slider", n }(GU); df(ET); var uj = ["rect", "polygon", "keep", "clear"], hj = y, cj = { lineX: YT(0), lineY: YT(1), rect: { point: function (t, e, n) { return t && n.boundingRect.contain(t[0], t[1]) }, rect: function (t, e, n) { return t && n.boundingRect.intersect(t) } }, polygon: { point: function (t, e, n) { return t && n.boundingRect.contain(t[0], t[1]) && mp(n.range, t[0], t[1]) }, rect: function (t, e, n) { var i = n.range; if (!t || i.length <= 1) return !1; var r = t.x, o = t.y, a = t.width, s = t.height, l = i[0]; return mp(i, r, o) || mp(i, r + a, o) || mp(i, r, o + s) || mp(i, r + a, o + s) || $D.create(t).contain(l[0], l[1]) || Ms(r, o, r + a, o, i) || Ms(r, o, r, o + s, i) || Ms(r + a, o, r + a, o + s, i) || Ms(r, o + s, r + a, o + s, i) ? !0 : void 0 } } }, pj = ["grid", "xAxis", "yAxis", "geo", "graph", "polar", "radiusAxis", "angleAxis", "bmap"], dj = function () { function t(t, e, n) { var i = this; this._targetInfoList = []; var r = jT(e, t); y(fj, function (t, e) { (!n || !n.include || p(n.include, e) >= 0) && t(r, i._targetInfoList) }) } return t.prototype.setOutputRanges = function (t, e) { return this.matchOutputRanges(t, e, function (t, e, n) { if ((t.coordRanges || (t.coordRanges = [])).push(e), !t.coordRange) { t.coordRange = e; var i = vj[t.brushType](0, n, e); t.__rangeOffset = {offset: mj[t.brushType](i.values, t.range, [1, 1]), xyMinMax: i.xyMinMax} } }), t }, t.prototype.matchOutputRanges = function (t, e, n) { y(t, function (t) { var i = this.findTargetInfo(t, e); i && i !== !0 && y(i.coordSyses, function (i) { var r = vj[t.brushType](1, i, t.range, !0); n(t, r.values, i, e) }) }, this) }, t.prototype.setInputRanges = function (t, e) { y(t, function (t) { var n = this.findTargetInfo(t, e); if (t.range = t.range || [], n && n !== !0) { t.panelId = n.panelId; var i = vj[t.brushType](0, n.coordSys, t.coordRange), r = t.__rangeOffset; t.range = r ? mj[t.brushType](i.values, r.offset, $T(i.xyMinMax, r.xyMinMax)) : i.values } }, this) }, t.prototype.makePanelOpts = function (t, e) { return v(this._targetInfoList, function (n) { var i = n.getPanelRect(); return { panelId: n.panelId, defaultBrushType: e ? e(n) : null, clipPath: E_(i), isTargetByCursor: B_(i, t, n.coordSysModel), getLinearBrushOtherExtent: N_(i) } }) }, t.prototype.controlSeries = function (t, e, n) { var i = this.findTargetInfo(t, n); return i === !0 || i && p(i.coordSyses, e.coordinateSystem) >= 0 }, t.prototype.findTargetInfo = function (t, e) { for (var n = this._targetInfoList, i = jT(e, t), r = 0; r < n.length; r++) { var o = n[r], a = t.panelId; if (a) { if (o.panelId === a) return o } else for (var s = 0; s < gj.length; s++) if (gj[s](i, o)) return o } return !0 }, t }(), fj = { grid: function (t, e) { var n = t.xAxisModels, i = t.yAxisModels, r = t.gridModels, o = Z(), a = {}, s = {}; (n || i || r) && (y(n, function (t) { var e = t.axis.grid.model; o.set(e.id, e), a[e.id] = !0 }), y(i, function (t) { var e = t.axis.grid.model; o.set(e.id, e), s[e.id] = !0 }), y(r, function (t) { o.set(t.id, t), a[t.id] = !0, s[t.id] = !0 }), o.each(function (t) { var r = t.coordinateSystem, o = []; y(r.getCartesians(), function (t) { (p(n, t.getAxis("x").model) >= 0 || p(i, t.getAxis("y").model) >= 0) && o.push(t) }), e.push({ panelId: "grid--" + t.id, gridModel: t, coordSysModel: t, coordSys: o[0], coordSyses: o, getPanelRect: yj.grid, xAxisDeclared: a[t.id], yAxisDeclared: s[t.id] }) })) }, geo: function (t, e) { y(t.geoModels, function (t) { var n = t.coordinateSystem; e.push({ panelId: "geo--" + t.id, geoModel: t, coordSysModel: t, coordSys: n, coordSyses: [n], getPanelRect: yj.geo }) }) } }, gj = [function (t, e) { var n = t.xAxisModel, i = t.yAxisModel, r = t.gridModel; return !r && n && (r = n.axis.grid.model), !r && i && (r = i.axis.grid.model), r && r === e.gridModel }, function (t, e) { var n = t.geoModel; return n && n === e.geoModel }], yj = { grid: function () { return this.coordSys.master.getRect().clone() }, geo: function () { var t = this.coordSys, e = t.getBoundingRect().clone(); return e.applyTransform(gs(t)), e } }, vj = { lineX: S(qT, 0), lineY: S(qT, 1), rect: function (t, e, n, i) { var r = t ? e.pointToData([n[0][0], n[1][0]], i) : e.dataToPoint([n[0][0], n[1][0]], i), o = t ? e.pointToData([n[0][1], n[1][1]], i) : e.dataToPoint([n[0][1], n[1][1]], i), a = [UT([r[0], o[0]]), UT([r[1], o[1]])]; return {values: a, xyMinMax: a} }, polygon: function (t, e, n, i) { var r = [[1 / 0, -1 / 0], [1 / 0, -1 / 0]], o = v(n, function (n) { var o = t ? e.pointToData(n, i) : e.dataToPoint(n, i); return r[0][0] = Math.min(r[0][0], o[0]), r[1][0] = Math.min(r[1][0], o[1]), r[0][1] = Math.max(r[0][1], o[0]), r[1][1] = Math.max(r[1][1], o[1]), o }); return {values: o, xyMinMax: r} } }, mj = { lineX: S(KT, 0), lineY: S(KT, 1), rect: function (t, e, n) { return [[t[0][0] - n[0] * e[0][0], t[0][1] - n[0] * e[0][1]], [t[1][0] - n[1] * e[1][0], t[1][1] - n[1] * e[1][1]]] }, polygon: function (t, e, n) { return v(t, function (t, i) { return [t[0] - n[0] * e[i][0], t[1] - n[1] * e[i][1]] }) } }, xj = ["inBrush", "outOfBrush"], _j = "__ecBrushSelect", bj = "__ecInBrushSelectEvent", wj = { rect: function (t) { return oC(t.range) }, polygon: function (t) { for (var e, n = t.range, i = 0, r = n.length; r > i; i++) { e = e || [[1 / 0, -1 / 0], [1 / 0, -1 / 0]]; var o = n[i]; o[0] < e[0][0] && (e[0][0] = o[0]), o[0] > e[0][1] && (e[0][1] = o[0]), o[1] < e[1][0] && (e[1][0] = o[1]), o[1] > e[1][1] && (e[1][1] = o[1]) } return e && oC(e) } }, Sj = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.init = function (t, e) { this.ecModel = t, this.api = e, this.model, (this._brushController = new PX(e.getZr())).on("brush", xA(this._onBrush, this)).mount() }, n.prototype.render = function (t, e, n, i) { this.model = t, this._updateController(t, e, n, i) }, n.prototype.updateTransform = function (t, e, n, i) { QT(e), this._updateController(t, e, n, i) }, n.prototype.updateVisual = function (t, e, n, i) { this.updateTransform(t, e, n, i) }, n.prototype.updateView = function (t, e, n, i) { this._updateController(t, e, n, i) }, n.prototype._updateController = function (t, e, n, i) { (!i || i.$from !== t.id) && this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice()) }, n.prototype.dispose = function () { this._brushController.dispose() }, n.prototype._onBrush = function (t) { var e = this.model.id, n = this.model.brushTargetManager.setOutputRanges(t.areas, this.ecModel); (!t.isEnd || t.removeOnClick) && this.api.dispatchAction({ type: "brush", brushId: e, areas: s(n), $from: e }), t.isEnd && this.api.dispatchAction({type: "brushEnd", brushId: e, areas: s(n), $from: e}) }, n.type = "brush", n }(Tz), Mj = "#ddd", Ij = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.areas = [], e.brushOption = {}, e } return e(n, t), n.prototype.optionUpdated = function (t, e) { var n = this.option; !e && GT(n, t, ["inBrush", "outOfBrush"]); var i = n.inBrush = n.inBrush || {}; n.outOfBrush = n.outOfBrush || {color: Mj}, i.hasOwnProperty("liftZ") || (i.liftZ = 5) }, n.prototype.setAreas = function (t) { t && (this.areas = v(t, function (t) { return aC(this.option, t) }, this)) }, n.prototype.setBrushOption = function (t) { this.brushOption = aC(this.option, t), this.brushType = this.brushOption.brushType }, n.type = "brush", n.dependencies = ["geo", "grid", "xAxis", "yAxis", "parallel", "series"], n.defaultOption = { seriesIndex: "all", brushType: "rect", brushMode: "single", transformable: !0, brushStyle: {borderWidth: 1, color: "rgba(210,219,238,0.3)", borderColor: "#D2DBEE"}, throttleType: "fixRate", throttleDelay: 0, removeOnClick: !0, z: 1e4 }, n }(gR), Tj = function () { function t() { } return t }(), Cj = {}, Aj = ["rect", "polygon", "lineX", "lineY", "keep", "clear"], Dj = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.render = function (t, e) { var n, i, r; e.eachComponent({mainType: "brush"}, function (t) { n = t.brushType, i = t.brushOption.brushMode || "single", r = r || !!t.areas.length }), this._brushType = n, this._brushMode = i, y(t.get("type", !0), function (e) { t.setIconStatus(e, ("keep" === e ? "multiple" === i : "clear" === e ? r : e === n) ? "emphasis" : "normal") }) }, n.prototype.updateView = function (t, e, n) { this.render(t, e, n) }, n.prototype.getIcons = function () { var t = this.model, e = t.get("icon", !0), n = {}; return y(t.get("type", !0), function (t) { e[t] && (n[t] = e[t]) }), n }, n.prototype.onclick = function (t, e, n) { var i = this._brushType, r = this._brushMode; "clear" === n ? (e.dispatchAction({type: "axisAreaSelect", intervals: []}), e.dispatchAction({ type: "brush", command: "clear", areas: [] })) : e.dispatchAction({ type: "takeGlobalCursor", key: "brush", brushOption: { brushType: "keep" === n ? i : i === n ? !1 : n, brushMode: "keep" === n ? "multiple" === r ? "single" : "multiple" : r } }) }, n.getDefaultOption = function (t) { var e = { show: !0, type: Aj.slice(), icon: { rect: "M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13", polygon: "M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2", lineX: "M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4", lineY: "M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4", keep: "M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z", clear: "M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2" }, title: t.getLocale(["toolbox", "brush", "title"]) }; return e }, n }(Tj); df(uC); var Lj = { get: function (t, e, n) { var i = s((kj[t] || {})[e]); return n && M(i) ? i[i.length - 1] : i } }, kj = { color: {active: ["#006edd", "#e0ffff"], inactive: ["rgba(0,0,0,0)"]}, colorHue: {active: [0, 360], inactive: [0, 0]}, colorSaturation: {active: [.3, 1], inactive: [0, 0]}, colorLightness: {active: [.9, .5], inactive: [0, 0]}, colorAlpha: {active: [.3, 1], inactive: [0, 0]}, opacity: {active: [.3, 1], inactive: [0, 0]}, symbol: {active: ["circle", "roundRect", "diamond"], inactive: ["none"]}, symbolSize: {active: [10, 50], inactive: [0, 0]} }, Pj = EH.mapVisual, Oj = EH.eachVisual, Rj = M, zj = y, Ej = wi, Nj = xi, Bj = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.stateList = ["inRange", "outOfRange"], e.replacableOptionKeys = ["inRange", "outOfRange", "target", "controller", "color"], e.layoutMode = { type: "box", ignoreSize: !0 }, e.dataBound = [-1 / 0, 1 / 0], e.targetVisuals = {}, e.controllerVisuals = {}, e } return e(n, t), n.prototype.init = function (t, e, n) { this.mergeDefaultAndTheme(t, n) }, n.prototype.optionUpdated = function (t, e) { var n = this.option; oA.canvasSupported || (n.realtime = !1), !e && GT(n, t, this.replacableOptionKeys), this.textStyleModel = this.getModel("textStyle"), this.resetItemSize(), this.completeVisualOption() }, n.prototype.resetVisual = function (t) { var e = this.stateList; t = xA(t, this), this.controllerVisuals = FT(this.option.controller, e, t), this.targetVisuals = FT(this.option.target, e, t) }, n.prototype.getItemSymbol = function () { return null }, n.prototype.getTargetSeriesIndices = function () { var t = this.option.seriesIndex, e = []; return null == t || "all" === t ? this.ecModel.eachSeries(function (t, n) { e.push(n) }) : e = Hi(t), e }, n.prototype.eachTargetSeries = function (t, e) { y(this.getTargetSeriesIndices(), function (n) { var i = this.ecModel.getSeriesByIndex(n); i && t.call(e, i) }, this) }, n.prototype.isTargetSeries = function (t) { var e = !1; return this.eachTargetSeries(function (n) { n === t && (e = !0) }), e }, n.prototype.formatValueText = function (t, e, n) { function i(t) { return t === s[0] ? "min" : t === s[1] ? "max" : (+t).toFixed(Math.min(a, 20)) } var r, o = this.option, a = o.precision, s = this.dataBound, l = o.formatter; n = n || ["<", ">"], M(t) && (t = t.slice(), r = !0); var u = e ? t : r ? [i(t[0]), i(t[1])] : i(t); return T(l) ? l.replace("{value}", r ? u[0] : u).replace("{value2}", r ? u[1] : u) : I(l) ? r ? l(t[0], t[1]) : l(t) : r ? t[0] === s[0] ? n[0] + " " + u[1] : t[1] === s[1] ? n[1] + " " + u[0] : u[0] + " - " + u[1] : u }, n.prototype.resetExtent = function () { var t = this.option, e = Ej([t.min, t.max]); this._dataExtent = e }, n.prototype.getDataDimension = function (t) { var e = this.option.dimension, n = t.dimensions; if (null != e || n.length) { if (null != e) return t.getDimension(e); for (var i = t.dimensions, r = i.length - 1; r >= 0; r--) { var o = i[r], a = t.getDimensionInfo(o); if (!a.isCalculationCoord) return o } } }, n.prototype.getExtent = function () { return this._dataExtent.slice() }, n.prototype.completeVisualOption = function () { function t(t) { Rj(r.color) && !t.inRange && (t.inRange = {color: r.color.slice().reverse()}), t.inRange = t.inRange || {color: i.get("gradientColor")} } function e(t, e, n) { var i = t[e], r = t[n]; i && !r && (r = t[n] = {}, zj(i, function (t, e) { if (EH.isValidType(e)) { var n = Lj.get(e, "inactive", h); null != n && (r[e] = n, "color" !== e || r.hasOwnProperty("opacity") || r.hasOwnProperty("colorAlpha") || (r.opacity = [0, 0])) } })) } function n(t) { var e = (t.inRange || {}).symbol || (t.outOfRange || {}).symbol, n = (t.inRange || {}).symbolSize || (t.outOfRange || {}).symbolSize, i = this.get("inactiveColor"), r = this.getItemSymbol(), o = r || "roundRect"; zj(this.stateList, function (r) { var a = this.itemSize, l = t[r]; l || (l = t[r] = {color: h ? i : [i]}), null == l.symbol && (l.symbol = e && s(e) || (h ? o : [o])), null == l.symbolSize && (l.symbolSize = n && s(n) || (h ? a[0] : [a[0], a[0]])), l.symbol = Pj(l.symbol, function (t) { return "none" === t ? o : t }); var u = l.symbolSize; if (null != u) { var c = -1 / 0; Oj(u, function (t) { t > c && (c = t) }), l.symbolSize = Pj(u, function (t) { return Nj(t, [0, c], [0, a[0]], !0) }) } }, this) } var i = this.ecModel, r = this.option, o = {inRange: r.inRange, outOfRange: r.outOfRange}, a = r.target || (r.target = {}), u = r.controller || (r.controller = {}); l(a, o), l(u, o); var h = this.isCategory(); t.call(this, a), t.call(this, u), e.call(this, a, "inRange", "outOfRange"), n.call(this, u) }, n.prototype.resetItemSize = function () { this.itemSize = [parseFloat(this.get("itemWidth")), parseFloat(this.get("itemHeight"))] }, n.prototype.isCategory = function () { return !!this.option.categories }, n.prototype.setSelected = function () { }, n.prototype.getSelected = function () { return null }, n.prototype.getValueState = function () { return null }, n.prototype.getVisualMeta = function () { return null }, n.type = "visualMap", n.dependencies = ["series"], n.defaultOption = { show: !0, zlevel: 0, z: 4, seriesIndex: "all", min: 0, max: 200, left: 0, right: null, top: null, bottom: 0, itemWidth: null, itemHeight: null, inverse: !1, orient: "vertical", backgroundColor: "rgba(0,0,0,0)", borderColor: "#ccc", contentColor: "#5793f3", inactiveColor: "#aaa", borderWidth: 0, padding: 5, textGap: 10, precision: 0, textStyle: {color: "#333"} }, n }(gR), Vj = [20, 140], Fj = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.optionUpdated = function () { t.prototype.optionUpdated.apply(this, arguments), this.resetExtent(), this.resetVisual(function (t) { t.mappingMethod = "linear", t.dataExtent = this.getExtent() }), this._resetRange() }, n.prototype.resetItemSize = function () { t.prototype.resetItemSize.apply(this, arguments); var e = this.itemSize; (null == e[0] || isNaN(e[0])) && (e[0] = Vj[0]), (null == e[1] || isNaN(e[1])) && (e[1] = Vj[1]) }, n.prototype._resetRange = function () { var t = this.getExtent(), e = this.option.range; !e || e.auto ? (t.auto = 1, this.option.range = t) : M(e) && (e[0] > e[1] && e.reverse(), e[0] = Math.max(e[0], t[0]), e[1] = Math.min(e[1], t[1])) }, n.prototype.completeVisualOption = function () { t.prototype.completeVisualOption.apply(this, arguments), y(this.stateList, function (t) { var e = this.option.controller[t].symbolSize; e && e[0] !== e[1] && (e[0] = e[1] / 3) }, this) }, n.prototype.setSelected = function (t) { this.option.range = t.slice(), this._resetRange() }, n.prototype.getSelected = function () { var t = this.getExtent(), e = wi((this.get("range") || []).slice()); return e[0] > t[1] && (e[0] = t[1]), e[1] > t[1] && (e[1] = t[1]), e[0] < t[0] && (e[0] = t[0]), e[1] < t[0] && (e[1] = t[0]), e }, n.prototype.getValueState = function (t) { var e = this.option.range, n = this.getExtent(); return (e[0] <= n[0] || e[0] <= t) && (e[1] >= n[1] || t <= e[1]) ? "inRange" : "outOfRange" }, n.prototype.findTargetDataIndices = function (t) { var e = []; return this.eachTargetSeries(function (n) { var i = [], r = n.getData(); r.each(this.getDataDimension(r), function (e, n) { t[0] <= e && e <= t[1] && i.push(n) }, this), e.push({seriesId: n.id, dataIndex: i}) }, this), e }, n.prototype.getVisualMeta = function (t) { function e(e, n) { r.push({value: e, color: t(e, n)}) } for (var n = hC(this, "outOfRange", this.getExtent()), i = hC(this, "inRange", this.option.range.slice()), r = [], o = 0, a = 0, s = i.length, l = n.length; l > a && (!i.length || n[a] <= i[0]); a++) n[a] < i[o] && e(n[a], "outOfRange"); for (var u = 1; s > o; o++, u = 0) u && r.length && e(i[o], "outOfRange"), e(i[o], "inRange"); for (var u = 1; l > a; a++) (!i.length || i[i.length - 1] < n[a]) && (u && (r.length && e(r[r.length - 1].value, "outOfRange"), u = 0), e(n[a], "outOfRange")); var h = r.length; return {stops: r, outerColors: [h ? r[0].color : "transparent", h ? r[h - 1].color : "transparent"]} }, n.type = "visualMap.continuous", n.defaultOption = Xs(Bj.defaultOption, { align: "auto", calculable: !1, hoverLink: !0, realtime: !0, handleIcon: "path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z", handleSize: "120%", handleStyle: {borderColor: "#fff", borderWidth: 1}, indicatorIcon: "circle", indicatorSize: "50%", indicatorStyle: { borderColor: "#fff", borderWidth: 2, shadowBlur: 2, shadowOffsetX: 1, shadowOffsetY: 1, shadowColor: "rgba(0,0,0,0.2)" } }), n }(Bj), Gj = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.autoPositionValues = {left: 1, right: 1, top: 1, bottom: 1}, e } return e(n, t), n.prototype.init = function (t, e) { this.ecModel = t, this.api = e }, n.prototype.render = function (t, e, n, i) { return this.visualMapModel = t, t.get("show") === !1 ? void this.group.removeAll() : void this.doRender(t, e, n, i) }, n.prototype.renderBackground = function (t) { var e = this.visualMapModel, n = oR(e.get("padding") || 0), i = t.getBoundingRect(); t.add(new Uk({ z2: -1, silent: !0, shape: {x: i.x - n[3], y: i.y - n[0], width: i.width + n[3] + n[1], height: i.height + n[0] + n[2]}, style: {fill: e.get("backgroundColor"), stroke: e.get("borderColor"), lineWidth: e.get("borderWidth")} })) }, n.prototype.getControllerVisual = function (t, e, n) { function i(t) { return s[t] } function r(t, e) { s[t] = e } n = n || {}; var o = n.forceState, a = this.visualMapModel, s = {}; if ("color" === e) { var l = a.get("contentColor"); s.color = l } var u = a.controllerVisuals[o || a.getValueState(t)], h = EH.prepareVisualTypes(u); return y(h, function (o) { var a = u[o]; n.convertOpacityToAlpha && "opacity" === o && (o = "colorAlpha", a = u.__alphaForOpacity), EH.dependsOn(o, e) && a && a.applyVisual(t, i, r) }), s[e] }, n.prototype.positionGroup = function (t) { var e = this.visualMapModel, n = this.api; Pl(t, e.getBoxLayoutParams(), {width: n.getWidth(), height: n.getHeight()}) }, n.prototype.doRender = function () { }, n.type = "visualMap", n }(Tz), Hj = [["left", "right", "width"], ["top", "bottom", "height"]], Wj = xi, Xj = y, Yj = Math.min, Zj = Math.max, Uj = 12, jj = 6, qj = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e._shapes = {}, e._dataInterval = [], e._handleEnds = [], e._hoverLinkDataIndices = [], e } return e(n, t), n.prototype.doRender = function (t, e, n, i) { this._api = n, i && "selectDataRange" === i.type && i.from === this.uid || this._buildView() }, n.prototype._buildView = function () { this.group.removeAll(); var t = this.visualMapModel, e = this.group; this._orient = t.get("orient"), this._useHandle = t.get("calculable"), this._resetInterval(), this._renderBar(e); var n = t.get("text"); this._renderEndsText(e, n, 0), this._renderEndsText(e, n, 1), this._updateView(!0), this.renderBackground(e), this._updateView(), this._enableHoverLinkToSeries(), this._enableHoverLinkFromSeries(), this.positionGroup(e) }, n.prototype._renderEndsText = function (t, e, n) { if (e) { var i = e[1 - n]; i = null != i ? i + "" : ""; var r = this.visualMapModel, o = r.get("textGap"), a = r.itemSize, s = this._shapes.mainGroup, l = this._applyTransform([a[0] / 2, 0 === n ? -o : a[1] + o], s), u = this._applyTransform(0 === n ? "bottom" : "top", s), h = this._orient, c = this.visualMapModel.textStyleModel; this.group.add(new $k({ style: { x: l[0], y: l[1], verticalAlign: "horizontal" === h ? "middle" : u, align: "horizontal" === h ? u : "center", text: i, font: c.getFont(), fill: c.getTextColor() } })) } }, n.prototype._renderBar = function (t) { var e = this.visualMapModel, n = this._shapes, i = e.itemSize, r = this._orient, o = this._useHandle, a = cC(e, this.api, i), s = n.mainGroup = this._createBarGroup(a), l = new sL; s.add(l), l.add(n.outOfRange = dC()), l.add(n.inRange = dC(null, o ? yC(this._orient) : null, xA(this._dragHandle, this, "all", !1), xA(this._dragHandle, this, "all", !0))), l.setClipPath(new Uk({ shape: { x: 0, y: 0, width: i[0], height: i[1], r: 3 } })); var u = e.textStyleModel.getTextRect("国"), h = Zj(u.width, u.height); o && (n.handleThumbs = [], n.handleLabels = [], n.handleLabelPoints = [], this._createHandle(e, s, 0, i, h, r), this._createHandle(e, s, 1, i, h, r)), this._createIndicator(e, s, i, h, r), t.add(s) }, n.prototype._createHandle = function (t, e, n, i) { var r = xA(this._dragHandle, this, n, !1), o = xA(this._dragHandle, this, n, !0), a = ri(t.get("handleSize"), i[0]), s = Sc(t.get("handleIcon"), -a / 2, -a / 2, a, a, null, !0), l = yC(this._orient); s.attr({ cursor: l, draggable: !0, drift: r, ondragend: o, onmousemove: function (t) { NA(t.event) } }), s.x = i[0] / 2, s.useStyle(t.getModel("handleStyle").getItemStyle()), s.setStyle({ strokeNoScale: !0, strokeFirst: !0 }), s.style.lineWidth *= 2, s.ensureState("emphasis").style = t.getModel(["emphasis", "handleStyle"]).getItemStyle(), Ta(s, !0), e.add(s); var u = this.visualMapModel.textStyleModel, h = new $k({ cursor: l, draggable: !0, drift: r, onmousemove: function (t) { NA(t.event) }, ondragend: o, style: {x: 0, y: 0, text: "", font: u.getFont(), fill: u.getTextColor()} }); h.ensureState("blur").style = {opacity: .1}, h.stateTransition = {duration: 200}, this.group.add(h); var c = [a, 0], p = this._shapes; p.handleThumbs[n] = s, p.handleLabelPoints[n] = c, p.handleLabels[n] = h }, n.prototype._createIndicator = function (t, e, n, i, r) { var o = ri(t.get("indicatorSize"), n[0]), a = Sc(t.get("indicatorIcon"), -o / 2, -o / 2, o, o, null, !0); a.attr({cursor: "move", invisible: !0, silent: !0, x: n[0] / 2}); var s = t.getModel("indicatorStyle").getItemStyle(); if (a instanceof Wk) { var l = a.style; a.useStyle(h({image: l.image, x: l.x, y: l.y, width: l.width, height: l.height}, s)) } else a.useStyle(s); e.add(a); var u = this.visualMapModel.textStyleModel, c = new $k({ silent: !0, invisible: !0, style: {x: 0, y: 0, text: "", font: u.getFont(), fill: u.getTextColor()} }); this.group.add(c); var p = [("horizontal" === r ? i / 2 : jj) + n[0] / 2, 0], d = this._shapes; d.indicator = a, d.indicatorLabel = c, d.indicatorLabelPoint = p, this._firstShowIndicator = !0 }, n.prototype._dragHandle = function (t, e, n, i) { if (this._useHandle) { if (this._dragging = !e, !e) { var r = this._applyTransform([n, i], this._shapes.mainGroup, !0); this._updateInterval(t, r[1]), this._hideIndicator(), this._updateView() } e === !this.visualMapModel.get("realtime") && this.api.dispatchAction({ type: "selectDataRange", from: this.uid, visualMapId: this.visualMapModel.id, selected: this._dataInterval.slice() }), e ? !this._hovering && this._clearHoverLinkToSeries() : gC(this.visualMapModel) && this._doHoverLinkToSeries(this._handleEnds[t], !1) } }, n.prototype._resetInterval = function () { var t = this.visualMapModel, e = this._dataInterval = t.getSelected(), n = t.getExtent(), i = [0, t.itemSize[1]]; this._handleEnds = [Wj(e[0], n, i, !0), Wj(e[1], n, i, !0)] }, n.prototype._updateInterval = function (t, e) { e = e || 0; var n = this.visualMapModel, i = this._handleEnds, r = [0, n.itemSize[1]]; qx(e, i, r, t, 0); var o = n.getExtent(); this._dataInterval = [Wj(i[0], r, o, !0), Wj(i[1], r, o, !0)] }, n.prototype._updateView = function (t) { var e = this.visualMapModel, n = e.getExtent(), i = this._shapes, r = [0, e.itemSize[1]], o = t ? r : this._handleEnds, a = this._createBarVisual(this._dataInterval, n, o, "inRange"), s = this._createBarVisual(n, n, r, "outOfRange"); i.inRange.setStyle({fill: a.barColor}).setShape("points", a.barPoints), i.outOfRange.setStyle({fill: s.barColor}).setShape("points", s.barPoints), this._updateHandle(o, a) }, n.prototype._createBarVisual = function (t, e, n, i) { var r = {forceState: i, convertOpacityToAlpha: !0}, o = this._makeColorGradient(t, r), a = [this.getControllerVisual(t[0], "symbolSize", r), this.getControllerVisual(t[1], "symbolSize", r)], s = this._createBarPoints(n, a); return {barColor: new uO(0, 0, 0, 1, o), barPoints: s, handlesColor: [o[0].color, o[o.length - 1].color]} }, n.prototype._makeColorGradient = function (t, e) { var n = 100, i = [], r = (t[1] - t[0]) / n; i.push({color: this.getControllerVisual(t[0], "color", e), offset: 0}); for (var o = 1; n > o; o++) { var a = t[0] + r * o; if (a > t[1]) break; i.push({color: this.getControllerVisual(a, "color", e), offset: o / n}) } return i.push({color: this.getControllerVisual(t[1], "color", e), offset: 1}), i }, n.prototype._createBarPoints = function (t, e) { var n = this.visualMapModel.itemSize; return [[n[0] - e[0], t[0]], [n[0], t[0]], [n[0], t[1]], [n[0] - e[1], t[1]]] }, n.prototype._createBarGroup = function (t) { var e = this._orient, n = this.visualMapModel.get("inverse"); return new sL("horizontal" !== e || n ? "horizontal" === e && n ? { scaleX: "bottom" === t ? -1 : 1, rotation: -Math.PI / 2 } : "vertical" !== e || n ? {scaleX: "left" === t ? 1 : -1} : { scaleX: "left" === t ? 1 : -1, scaleY: -1 } : {scaleX: "bottom" === t ? 1 : -1, rotation: Math.PI / 2}) }, n.prototype._updateHandle = function (t, e) { if (this._useHandle) { var n = this._shapes, i = this.visualMapModel, r = n.handleThumbs, o = n.handleLabels, a = i.itemSize, s = i.getExtent(); Xj([0, 1], function (l) { var u = r[l]; u.setStyle("fill", e.handlesColor[l]), u.y = t[l]; var h = Wj(t[l], [0, a[1]], s, !0), c = this.getControllerVisual(h, "symbolSize"); u.scaleX = u.scaleY = c / a[0], u.x = a[0] - c / 2; var p = ys(n.handleLabelPoints[l], gs(u, this.group)); o[l].setStyle({ x: p[0], y: p[1], text: i.formatValueText(this._dataInterval[l]), verticalAlign: "middle", align: "vertical" === this._orient ? this._applyTransform("left", n.mainGroup) : "center" }) }, this) } }, n.prototype._showIndicator = function (t, e, n) { var i = this.visualMapModel, r = i.getExtent(), o = i.itemSize, a = [0, o[1]], s = this._shapes, l = s.indicator; if (l) { l.attr("invisible", !1); var u = {convertOpacityToAlpha: !0}, h = this.getControllerVisual(t, "color", u), c = this.getControllerVisual(t, "symbolSize"), p = Wj(t, r, a, !0), d = o[0] - c / 2, f = {x: l.x, y: l.y}; l.y = p, l.x = d; var g = ys(s.indicatorLabelPoint, gs(l, this.group)), y = s.indicatorLabel; y.attr("invisible", !1); var v = this._applyTransform("left", s.mainGroup), m = this._orient, x = "horizontal" === m; y.setStyle({ text: (n ? n : "") + i.formatValueText(e), verticalAlign: x ? v : "middle", align: x ? "center" : v }); var _ = {x: d, y: p, style: {fill: h}}, b = {style: {x: g[0], y: g[1]}}; if (i.ecModel.isAnimationEnabled() && !this._firstShowIndicator) { var w = {duration: 100, easing: "cubicInOut", additive: !0}; l.x = f.x, l.y = f.y, l.animateTo(_, w), y.animateTo(b, w) } else l.attr(_), y.attr(b); this._firstShowIndicator = !1; var S = this._shapes.handleLabels; if (S) for (var M = 0; M < S.length; M++) this._api.enterBlur(S[M]) } }, n.prototype._enableHoverLinkToSeries = function () { var t = this; this._shapes.mainGroup.on("mousemove", function (e) { if (t._hovering = !0, !t._dragging) { var n = t.visualMapModel.itemSize, i = t._applyTransform([e.offsetX, e.offsetY], t._shapes.mainGroup, !0, !0); i[1] = Yj(Zj(0, i[1]), n[1]), t._doHoverLinkToSeries(i[1], 0 <= i[0] && i[0] <= n[0]) } }).on("mouseout", function () { t._hovering = !1, !t._dragging && t._clearHoverLinkToSeries() }) }, n.prototype._enableHoverLinkFromSeries = function () { var t = this.api.getZr(); this.visualMapModel.option.hoverLink ? (t.on("mouseover", this._hoverLinkFromSeriesMouseOver, this), t.on("mouseout", this._hideIndicator, this)) : this._clearHoverLinkFromSeries() }, n.prototype._doHoverLinkToSeries = function (t, e) { var n = this.visualMapModel, i = n.itemSize; if (n.option.hoverLink) { var r = [0, i[1]], o = n.getExtent(); t = Yj(Zj(r[0], t), r[1]); var a = fC(n, o, r), s = [t - a, t + a], l = Wj(t, r, o, !0), u = [Wj(s[0], r, o, !0), Wj(s[1], r, o, !0)]; s[0] < r[0] && (u[0] = -1 / 0), s[1] > r[1] && (u[1] = 1 / 0), e && (u[0] === -1 / 0 ? this._showIndicator(l, u[1], "< ", a) : 1 / 0 === u[1] ? this._showIndicator(l, u[0], "> ", a) : this._showIndicator(l, l, "≈ ", a)); var h = this._hoverLinkDataIndices, c = []; (e || gC(n)) && (c = this._hoverLinkDataIndices = n.findTargetDataIndices(u)); var p = sr(h, c); this._dispatchHighDown("downplay", pC(p[0], n)), this._dispatchHighDown("highlight", pC(p[1], n)) } }, n.prototype._hoverLinkFromSeriesMouseOver = function (t) { var e = t.target, n = this.visualMapModel; if (e && null != tP(e).dataIndex) { var i = tP(e), r = this.ecModel.getSeriesByIndex(i.seriesIndex); if (n.isTargetSeries(r)) { var o = r.getData(i.dataType), a = o.get(n.getDataDimension(o), i.dataIndex); isNaN(a) || this._showIndicator(a, a) } } }, n.prototype._hideIndicator = function () { var t = this._shapes; t.indicator && t.indicator.attr("invisible", !0), t.indicatorLabel && t.indicatorLabel.attr("invisible", !0); var e = this._shapes.handleLabels; if (e) for (var n = 0; n < e.length; n++) this._api.leaveBlur(e[n]) }, n.prototype._clearHoverLinkToSeries = function () { this._hideIndicator(); var t = this._hoverLinkDataIndices; this._dispatchHighDown("downplay", pC(t, this.visualMapModel)), t.length = 0 }, n.prototype._clearHoverLinkFromSeries = function () { this._hideIndicator(); var t = this.api.getZr(); t.off("mouseover", this._hoverLinkFromSeriesMouseOver), t.off("mouseout", this._hideIndicator) }, n.prototype._applyTransform = function (t, e, n, i) { var r = gs(e, i ? null : this.group); return M(t) ? ys(t, r, n) : vs(t, r, n) }, n.prototype._dispatchHighDown = function (t, e) { e && e.length && this.api.dispatchAction({type: t, batch: e}) }, n.prototype.dispose = function () { this._clearHoverLinkFromSeries(), this._clearHoverLinkToSeries() }, n.prototype.remove = function () { this._clearHoverLinkFromSeries(), this._clearHoverLinkToSeries() }, n.type = "visualMap.continuous", n }(Gj), Kj = {type: "selectDataRange", event: "dataRangeSelected", update: "update"}, $j = function (t, e) { e.eachComponent({mainType: "visualMap", query: t}, function (e) { e.setSelected(t.selected) }) }, Jj = [{ createOnAllSeries: !0, reset: function (t, e) { var n = []; return e.eachComponent("visualMap", function (e) { var i = t.pipelineContext; !e.isTargetSeries(t) || i && i.large || n.push(WT(e.stateList, e.targetVisuals, xA(e.getValueState, e), e.getDataDimension(t.getData()))) }), n } }, { createOnAllSeries: !0, reset: function (t, e) { var n = t.getData(), i = []; e.eachComponent("visualMap", function (e) { if (e.isTargetSeries(t)) { var r = e.getVisualMeta(xA(vC, null, t, e)) || {stops: [], outerColors: []}, o = e.getDataDimension(n), a = n.getDimensionInfo(o); null != a && (r.dimension = a.index, i.push(r)) } }), t.getData().setVisual("visualMeta", i) } }], Qj = y, tq = !1, eq = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e._pieceList = [], e } return e(n, t), n.prototype.optionUpdated = function (e, n) { t.prototype.optionUpdated.apply(this, arguments), this.resetExtent(); var i = this._mode = this._determineMode(); this._pieceList = [], nq[this._mode].call(this, this._pieceList), this._resetSelected(e, n); var r = this.option.categories; this.resetVisual(function (t, e) { "categories" === i ? (t.mappingMethod = "category", t.categories = s(r)) : (t.dataExtent = this.getExtent(), t.mappingMethod = "piecewise", t.pieceList = v(this._pieceList, function (t) { return t = s(t), "inRange" !== e && (t.visual = null), t })) }) }, n.prototype.completeVisualOption = function () { function e(t, e, n) { return t && t[e] && t[e].hasOwnProperty(n) } var n = this.option, i = {}, r = EH.listVisualTypes(), o = this.isCategory(); y(n.pieces, function (t) { y(r, function (e) { t.hasOwnProperty(e) && (i[e] = 1) }) }), y(i, function (t, i) { var r = !1; y(this.stateList, function (t) { r = r || e(n, t, i) || e(n.target, t, i) }, this), !r && y(this.stateList, function (t) { (n[t] || (n[t] = {}))[i] = Lj.get(i, "inRange" === t ? "active" : "inactive", o) }) }, this), t.prototype.completeVisualOption.apply(this, arguments) }, n.prototype._resetSelected = function (t, e) { var n = this.option, i = this._pieceList, r = (e ? n : t).selected || {}; if (n.selected = r, y(i, function (t) { var e = this.getSelectedMapKey(t); r.hasOwnProperty(e) || (r[e] = !0) }, this), "single" === n.selectedMode) { var o = !1; y(i, function (t) { var e = this.getSelectedMapKey(t); r[e] && (o ? r[e] = !1 : o = !0) }, this) } }, n.prototype.getItemSymbol = function () { return this.get("itemSymbol") }, n.prototype.getSelectedMapKey = function (t) { return "categories" === this._mode ? t.value + "" : t.index + "" }, n.prototype.getPieceList = function () { return this._pieceList }, n.prototype._determineMode = function () { var t = this.option; return t.pieces && t.pieces.length > 0 ? "pieces" : this.option.categories ? "categories" : "splitNumber" }, n.prototype.setSelected = function (t) { this.option.selected = s(t) }, n.prototype.getValueState = function (t) { var e = EH.findPieceIndex(t, this._pieceList); return null != e && this.option.selected[this.getSelectedMapKey(this._pieceList[e])] ? "inRange" : "outOfRange" }, n.prototype.findTargetDataIndices = function (t) { var e = [], n = this._pieceList; return this.eachTargetSeries(function (i) { var r = [], o = i.getData(); o.each(this.getDataDimension(o), function (e, i) { var o = EH.findPieceIndex(e, n); o === t && r.push(i) }, this), e.push({seriesId: i.id, dataIndex: r}) }, this), e }, n.prototype.getRepresentValue = function (t) { var e; if (this.isCategory()) e = t.value; else if (null != t.value) e = t.value; else { var n = t.interval || []; e = n[0] === -1 / 0 && 1 / 0 === n[1] ? 0 : (n[0] + n[1]) / 2 } return e }, n.prototype.getVisualMeta = function (t) { function e(e, o) { var a = r.getRepresentValue({interval: e}); o || (o = r.getValueState(a)); var s = t(a, o); e[0] === -1 / 0 ? i[0] = s : 1 / 0 === e[1] ? i[1] = s : n.push({value: e[0], color: s}, { value: e[1], color: s }) } if (!this.isCategory()) { var n = [], i = ["", ""], r = this, o = this._pieceList.slice(); if (o.length) { var a = o[0].interval[0]; a !== -1 / 0 && o.unshift({interval: [-1 / 0, a]}), a = o[o.length - 1].interval[1], 1 / 0 !== a && o.push({interval: [a, 1 / 0]}) } else o.push({interval: [-1 / 0, 1 / 0]}); var s = -1 / 0; return y(o, function (t) { var n = t.interval; n && (n[0] > s && e([s, n[0]], "outOfRange"), e(n.slice()), s = n[1]) }, this), {stops: n, outerColors: i} } }, n.type = "visualMap.piecewise", n.defaultOption = Xs(Bj.defaultOption, { selected: null, minOpen: !1, maxOpen: !1, align: "auto", itemWidth: 20, itemHeight: 14, itemSymbol: "roundRect", pieces: null, categories: null, splitNumber: 5, selectedMode: "multiple", itemGap: 10, hoverLink: !0 }), n }(Bj), nq = { splitNumber: function (t) { var e = this.option, n = Math.min(e.precision, 20), i = this.getExtent(), r = e.splitNumber; r = Math.max(parseInt(r, 10), 1), e.splitNumber = r; for (var o = (i[1] - i[0]) / r; +o.toFixed(n) !== o && 5 > n;) n++; e.precision = n, o = +o.toFixed(n), e.minOpen && t.push({interval: [-1 / 0, i[0]], close: [0, 0]}); for (var a = 0, s = i[0]; r > a; s += o, a++) { var l = a === r - 1 ? i[1] : s + o; t.push({interval: [s, l], close: [1, 1]}) } e.maxOpen && t.push({interval: [i[1], 1 / 0], close: [0, 0]}), zi(t), y(t, function (t, e) { t.index = e, t.text = this.formatValueText(t.interval) }, this) }, categories: function (t) { var e = this.option; y(e.categories, function (e) { t.push({text: this.formatValueText(e, !0), value: e}) }, this), wC(e, t) }, pieces: function (t) { var e = this.option; y(e.pieces, function (e, n) { D(e) || (e = {value: e}); var i = {text: "", index: n}; if (null != e.label && (i.text = e.label), e.hasOwnProperty("value")) { var r = i.value = e.value; i.interval = [r, r], i.close = [1, 1] } else { for (var o = i.interval = [], a = i.close = [0, 0], s = [1, 0, 1], l = [-1 / 0, 1 / 0], u = [], h = 0; 2 > h; h++) { for (var c = [["gte", "gt", "min"], ["lte", "lt", "max"]][h], p = 0; 3 > p && null == o[h]; p++) o[h] = e[c[p]], a[h] = s[p], u[h] = 2 === p; null == o[h] && (o[h] = l[h]) } u[0] && 1 / 0 === o[1] && (a[0] = 0), u[1] && o[0] === -1 / 0 && (a[1] = 0), o[0] === o[1] && a[0] && a[1] && (i.value = o[0]) } i.visual = EH.retrieveVisuals(e), t.push(i) }, this), wC(e, t), zi(t), y(t, function (t) { var e = t.close, n = [["<", "≤"][e[1]], [">", "≥"][e[0]]]; t.text = t.text || this.formatValueText(null != t.value ? t.value : t.interval, !1, n) }, this) } }, iq = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.doRender = function () { var t = this.group; t.removeAll(); var e = this.visualMapModel, n = e.get("textGap"), i = e.textStyleModel, r = i.getFont(), o = i.getTextColor(), a = this._getItemAlign(), s = e.itemSize, l = this._getViewData(), u = l.endsText, h = N(e.get("showLabel", !0), !u); u && this._renderEndsText(t, u[0], s, h, a), y(l.viewPieceList, function (i) { var l = i.piece, u = new sL; u.onclick = xA(this._onItemClick, this, l), this._enableHoverLink(u, i.indexInModelPieceList); var c = e.getRepresentValue(l); if (this._createItemSymbol(u, c, [0, 0, s[0], s[1]]), h) { var p = this.visualMapModel.getValueState(c); u.add(new $k({ style: { x: "right" === a ? -n : s[0] + n, y: s[1] / 2, text: l.text, verticalAlign: "middle", align: a, font: r, fill: o, opacity: "outOfRange" === p ? .5 : 1 } })) } t.add(u) }, this), u && this._renderEndsText(t, u[1], s, h, a), dR(e.get("orient"), t, e.get("itemGap")), this.renderBackground(t), this.positionGroup(t) }, n.prototype._enableHoverLink = function (t, e) { var n = this; t.on("mouseover", function () { return i("highlight") }).on("mouseout", function () { return i("downplay") }); var i = function (t) { var i = n.visualMapModel; i.option.hoverLink && n.api.dispatchAction({type: t, batch: pC(i.findTargetDataIndices(e), i)}) } }, n.prototype._getItemAlign = function () { var t = this.visualMapModel, e = t.option; if ("vertical" === e.orient) return cC(t, this.api, t.itemSize); var n = e.align; return n && "auto" !== n || (n = "left"), n }, n.prototype._renderEndsText = function (t, e, n, i, r) { if (e) { var o = new sL, a = this.visualMapModel.textStyleModel; o.add(new $k({ style: { x: i ? "right" === r ? n[0] : 0 : n[0] / 2, y: n[1] / 2, verticalAlign: "middle", align: i ? r : "center", text: e, font: a.getFont(), fill: a.getTextColor() } })), t.add(o) } }, n.prototype._getViewData = function () { var t = this.visualMapModel, e = v(t.getPieceList(), function (t, e) { return {piece: t, indexInModelPieceList: e} }), n = t.get("text"), i = t.get("orient"), r = t.get("inverse"); return ("horizontal" === i ? r : !r) ? e.reverse() : n && (n = n.slice().reverse()), { viewPieceList: e, endsText: n } }, n.prototype._createItemSymbol = function (t, e, n) { t.add(Sc(this.getControllerVisual(e, "symbol"), n[0], n[1], n[2], n[3], this.getControllerVisual(e, "color"))) }, n.prototype._onItemClick = function (t) { var e = this.visualMapModel, n = e.option, i = s(n.selected), r = e.getSelectedMapKey(t); "single" === n.selectedMode ? (i[r] = !0, y(i, function (t, e) { i[e] = e === r })) : i[r] = !i[r], this.api.dispatchAction({ type: "selectDataRange", from: this.uid, visualMapId: this.visualMapModel.id, selected: i }) }, n.type = "visualMap.piecewise", n }(Gj); df(MC); var rq = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "dataZoom.select", n }(VU), oq = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.type = "dataZoom.select", n }(GU), aq = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.optionUpdated = function () { t.prototype.optionUpdated.apply(this, arguments); var e = this.ecModel; y(this.option.feature, function (t, n) { var i = lC(n); i && (i.getDefaultOption && (i.defaultOption = i.getDefaultOption(e)), l(t, i.defaultOption)) }) }, n.type = "toolbox", n.layoutMode = {type: "box", ignoreSize: !0}, n.defaultOption = { show: !0, z: 6, zlevel: 0, orient: "horizontal", left: "right", top: "top", backgroundColor: "transparent", borderColor: "#ccc", borderRadius: 0, borderWidth: 0, padding: 5, itemSize: 15, itemGap: 8, showTitle: !0, iconStyle: {borderColor: "#666", color: "none"}, emphasis: {iconStyle: {borderColor: "#3E98C5"}}, tooltip: {show: !1, position: "bottom"} }, n }(gR), sq = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.render = function (t, e, n, i) { function r(r, a) { var s, c = h[r], p = h[a], d = l[c], f = new VO(d, t, t.ecModel); if (i && null != i.newTitle && i.featureName === c && (d.title = i.newTitle), c && !p) { if (TC(c)) s = {onclick: f.option.onclick, featureName: c}; else { var g = lC(c); if (!g) return; s = new g } u[c] = s } else if (s = u[p], !s) return; s.uid = Gs("toolbox-feature"), s.model = f, s.ecModel = e, s.api = n; var y = s instanceof Tj; return !c && p ? void (y && s.dispose && s.dispose(e, n)) : !f.get("show") || y && s.unusable ? void (y && s.remove && s.remove(e, n)) : (o(f, s, c), f.setIconStatus = function (t, e) { var n = this.option, i = this.iconPaths; n.iconStatus = n.iconStatus || {}, n.iconStatus[t] = e, i[t] && ("emphasis" === e ? aa : sa)(i[t]) }, void (s instanceof Tj && s.render && s.render(f, e, n, i))) } function o(i, r, o) { var l, u, h = i.getModel("iconStyle"), c = i.getModel(["emphasis", "iconStyle"]), p = r instanceof Tj && r.getIcons ? r.getIcons() : i.get("icon"), d = i.get("title") || {}; "string" == typeof p ? (l = {}, l[o] = p) : l = p, "string" == typeof d ? (u = {}, u[o] = d) : u = d; var f = i.iconPaths = {}; y(l, function (o, l) { var p = Ss(o, {}, {x: -s / 2, y: -s / 2, width: s, height: s}); p.setStyle(h.getItemStyle()); var d = p.ensureState("emphasis"); d.style = c.getItemStyle(); var g = new $k({ style: { text: u[l], align: c.get("textAlign"), borderRadius: c.get("textBorderRadius"), padding: c.get("textPadding"), fill: null }, ignore: !0 }); p.setTextContent(g), As({ el: p, componentModel: t, itemName: l, formatterParamsExtra: {title: u[l]} }), p.__title = u[l], p.on("mouseover", function () { var e = c.getItemStyle(), n = "vertical" === t.get("orient") ? null == t.get("right") ? "right" : "left" : null == t.get("bottom") ? "bottom" : "top"; g.setStyle({ fill: c.get("textFill") || e.fill || e.stroke || "#000", backgroundColor: c.get("textBackgroundColor") }), p.setTextConfig({position: c.get("textPosition") || n}), g.ignore = !t.get("showTitle"), aa(this) }).on("mouseout", function () { "emphasis" !== i.get(["iconStatus", l]) && sa(this), g.hide() }), ("emphasis" === i.get(["iconStatus", l]) ? aa : sa)(p), a.add(p), p.on("click", xA(r.onclick, r, e, n, l)), f[l] = p }) } var a = this.group; if (a.removeAll(), t.get("show")) { var s = +t.get("itemSize"), l = t.get("feature") || {}, u = this._features || (this._features = {}), h = []; y(l, function (t, e) { h.push(e) }), new tV(this._featureNames || [], h).add(r).update(r).remove(S(r, null)).execute(), this._featureNames = h, qM(a, t, n), a.add(KM(a.getBoundingRect(), t)), a.eachChild(function (t) { var e = t.__title, i = t.ensureState("emphasis"), r = i.textConfig || (i.textConfig = {}), o = t.getTextContent(), l = o && o.states.emphasis; if (l && !I(l) && e) { var u = l.style || (l.style = {}), h = ti(e, $k.makeFont(u)), c = t.x + a.x, p = t.y + a.y + s, d = !1; p + h.height > n.getHeight() && (r.position = "top", d = !0); var f = d ? -5 - h.height : s + 8; c + h.width / 2 > n.getWidth() ? (r.position = ["100%", f], u.align = "right") : c - h.width / 2 < 0 && (r.position = [0, f], u.align = "left") } }) } }, n.prototype.updateView = function (t, e, n, i) { y(this._features, function (t) { t instanceof Tj && t.updateView && t.updateView(t.model, e, n, i) }) }, n.prototype.remove = function (t, e) { y(this._features, function (n) { n instanceof Tj && n.remove && n.remove(t, e) }), this.group.removeAll() }, n.prototype.dispose = function (t, e) { y(this._features, function (n) { n instanceof Tj && n.dispose && n.dispose(t, e) }) }, n.type = "toolbox", n }(Tz), lq = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.onclick = function (t, e) { var n = this.model, i = n.get("name") || t.get("title.0.text") || "echartsAll", r = "svg" === e.getZr().painter.getType(), o = r ? "svg" : n.get("type", !0) || "png", a = e.getConnectedDataURL({ type: o, backgroundColor: n.get("backgroundColor", !0) || t.get("backgroundColor") || "#fff", connectedBackgroundColor: n.get("connectedBackgroundColor"), excludeComponents: n.get("excludeComponents"), pixelRatio: n.get("pixelRatio") }); if ("function" != typeof MouseEvent || !oA.browser.newEdge && (oA.browser.ie || oA.browser.edge)) if (window.navigator.msSaveOrOpenBlob || r) { var s = a.split(","), l = s[0].indexOf("base64") > -1, u = r ? decodeURIComponent(s[1]) : s[1]; l && (u = window.atob(u)); var h = i + "." + o; if (window.navigator.msSaveOrOpenBlob) { for (var c = u.length, p = new Uint8Array(c); c--;) p[c] = u.charCodeAt(c); var d = new Blob([p]); window.navigator.msSaveOrOpenBlob(d, h) } else { var f = document.createElement("iframe"); document.body.appendChild(f); var g = f.contentWindow, y = g.document; y.open("image/svg+xml", "replace"), y.write(u), y.close(), g.focus(), y.execCommand("SaveAs", !0, h), document.body.removeChild(f) } } else { var v = n.get("lang"), m = '', x = window.open(); x.document.write(m), x.document.title = i } else { var _ = document.createElement("a"); _.download = i + "." + o, _.target = "_blank", _.href = a; var b = new MouseEvent("click", {view: document.defaultView, bubbles: !0, cancelable: !1}); _.dispatchEvent(b) } }, n.getDefaultOption = function (t) { var e = { show: !0, icon: "M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0", title: t.getLocale(["toolbox", "saveAsImage", "title"]), type: "png", connectedBackgroundColor: "#fff", name: "", excludeComponents: ["toolbox"], lang: t.getLocale(["toolbox", "saveAsImage", "lang"]) }; return e }, n }(Tj); lq.prototype.unusable = !oA.canvasSupported; var uq = "__ec_magicType_stack__", hq = [["line", "bar"], ["stack"]], cq = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.getIcons = function () { var t = this.model, e = t.get("icon"), n = {}; return y(t.get("type"), function (t) { e[t] && (n[t] = e[t]) }), n }, n.getDefaultOption = function (t) { var e = { show: !0, type: [], icon: { line: "M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4", bar: "M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7", stack: "M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z" }, title: t.getLocale(["toolbox", "magicType", "title"]), option: {}, seriesIndex: {} }; return e }, n.prototype.onclick = function (t, e, n) { var i = this.model, r = i.get(["seriesIndex", n]); if (pq[n]) { var o = {series: []}, a = function (t) { var e = t.subType, r = t.id, a = pq[n](e, r, t, i); a && (c(a, t.option), o.series.push(a)); var s = t.coordinateSystem; if (s && "cartesian2d" === s.type && ("line" === n || "bar" === n)) { var l = s.getAxesByScale("ordinal")[0]; if (l) { var u = l.dim, h = u + "Axis", p = t.getReferringComponents(h, wL).models[0], d = p.componentIndex; o[h] = o[h] || []; for (var f = 0; d >= f; f++) o[h][d] = o[h][d] || {}; o[h][d].boundaryGap = "bar" === n } } }; y(hq, function (t) { p(t, n) >= 0 && y(t, function (t) { i.setIconStatus(t, "normal") }) }), i.setIconStatus(n, "emphasis"), t.eachComponent({ mainType: "series", query: null == r ? null : {seriesIndex: r} }, a); var s, u = n; "stack" === n && (s = l({ stack: i.option.title.tiled, tiled: i.option.title.stack }, i.option.title), "emphasis" !== i.get(["iconStatus", n]) && (u = "tiled")), e.dispatchAction({ type: "changeMagicType", currentType: u, newOption: o, newTitle: s, featureName: "magicType" }) } }, n }(Tj), pq = { line: function (t, e, n, i) { return "bar" === t ? l({ id: e, type: "line", data: n.get("data"), stack: n.get("stack"), markPoint: n.get("markPoint"), markLine: n.get("markLine") }, i.get(["option", "line"]) || {}, !0) : void 0 }, bar: function (t, e, n, i) { return "line" === t ? l({ id: e, type: "bar", data: n.get("data"), stack: n.get("stack"), markPoint: n.get("markPoint"), markLine: n.get("markLine") }, i.get(["option", "bar"]) || {}, !0) : void 0 }, stack: function (t, e, n, i) { var r = n.get("stack") === uq; return "line" === t || "bar" === t ? (i.setIconStatus("stack", r ? "normal" : "emphasis"), l({ id: e, stack: r ? "" : uq }, i.get(["option", "stack"]) || {}, !0)) : void 0 } }; Xp({type: "changeMagicType", event: "magicTypeChanged", update: "prepareAndUpdate"}, function (t, e) { e.mergeOption(t.newOption) }); var dq = new Array(60).join("-"), fq = " ", gq = new RegExp("[" + fq + "]+", "g"), yq = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.onclick = function (t, e) { function n() { i.removeChild(o), x._dom = null } var i = e.getDom(), r = this.model; this._dom && i.removeChild(this._dom); var o = document.createElement("div"); o.style.cssText = "position:absolute;left:5px;top:5px;bottom:5px;right:5px;", o.style.backgroundColor = r.get("backgroundColor") || "#fff"; var a = document.createElement("h4"), s = r.get("lang") || []; a.innerHTML = s[0] || r.get("title"), a.style.cssText = "margin: 10px 20px;", a.style.color = r.get("textColor"); var l = document.createElement("div"), u = document.createElement("textarea"); l.style.cssText = "display:block;width:100%;overflow:auto;"; var h = r.get("optionToContent"), c = r.get("contentToOption"), p = LC(t); if ("function" == typeof h) { var d = h(e.getOption()); "string" == typeof d ? l.innerHTML = d : P(d) && l.appendChild(d) } else l.appendChild(u), u.readOnly = r.get("readOnly"), u.style.cssText = "width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;", u.style.color = r.get("textColor"), u.style.borderColor = r.get("textareaBorderColor"), u.style.backgroundColor = r.get("textareaColor"), u.value = p.value; var f = p.meta, g = document.createElement("div"); g.style.cssText = "position:absolute;bottom:0;left:0;right:0;"; var y = "float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px", v = document.createElement("div"), m = document.createElement("div"); y += ";background-color:" + r.get("buttonColor"), y += ";color:" + r.get("buttonTextColor"); var x = this; Le(v, "click", n), Le(m, "click", function () { if (null == c && null != h || null != c && null == h) return void n(); var t; try { t = "function" == typeof c ? c(l, e.getOption()) : zC(u.value, f) } catch (i) { throw n(), new Error("Data view format error " + i) } t && e.dispatchAction({type: "changeDataView", newOption: t}), n() }), v.innerHTML = s[1], m.innerHTML = s[2], m.style.cssText = y, v.style.cssText = y, !r.get("readOnly") && g.appendChild(m), g.appendChild(v), o.appendChild(a), o.appendChild(l), o.appendChild(g), l.style.height = i.clientHeight - 80 + "px", i.appendChild(o), this._dom = o }, n.prototype.remove = function (t, e) { this._dom && e.getDom().removeChild(this._dom) }, n.prototype.dispose = function (t, e) { this.remove(t, e) }, n.getDefaultOption = function (t) { var e = { show: !0, readOnly: !1, optionToContent: null, contentToOption: null, icon: "M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28", title: t.getLocale(["toolbox", "dataView", "title"]), lang: t.getLocale(["toolbox", "dataView", "lang"]), backgroundColor: "#fff", textColor: "#000", textareaColor: "#fff", textareaBorderColor: "#333", buttonColor: "#c23531", buttonTextColor: "#fff" }; return e }, n }(Tj); Xp({type: "changeDataView", event: "dataViewChanged", update: "prepareAndUpdate"}, function (t, e) { var n = []; y(t.newOption.series, function (t) { var i = e.getSeriesByName(t.name)[0]; if (i) { var r = i.get("data"); n.push({name: t.name, data: EC(t.data, r)}) } else n.push(h({type: "scatter"}, t)) }), e.mergeOption(c({series: n}, t.newOption)) }); var vq = y, mq = ur(), xq = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.onclick = function (t, e) { VC(t), e.dispatchAction({type: "restore", from: this.uid}) }, n.getDefaultOption = function (t) { var e = { show: !0, icon: "M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5", title: t.getLocale(["toolbox", "restore", "title"]) }; return e }, n }(Tj); Xp({type: "restore", event: "restore", update: "prepareAndUpdate"}, function (t, e) { e.resetOption("recreate") }); var _q = y, bq = rr("toolbox-dataZoom_"), wq = function (t) { function n() { return null !== t && t.apply(this, arguments) || this } return e(n, t), n.prototype.render = function (t, e, n, i) { this._brushController || (this._brushController = new PX(n.getZr()), this._brushController.on("brush", xA(this._onBrush, this)).mount()), XC(t, e, this, i, n), WC(t, e) }, n.prototype.onclick = function (t, e, n) { Sq[n].call(this) }, n.prototype.remove = function () { this._brushController && this._brushController.unmount() }, n.prototype.dispose = function () { this._brushController && this._brushController.dispose() }, n.prototype._onBrush = function (t) { function e(t, e, i) { var a = e.getAxis(t), s = a.model, l = n(t, s, o), u = l.findRepresentativeAxisProxy(s).getMinMaxSpan(); (null != u.minValueSpan || null != u.maxValueSpan) && (i = qx(0, i.slice(), a.scale.getExtent(), 0, u.minValueSpan, u.maxValueSpan)), l && (r[l.id] = { dataZoomId: l.id, startValue: i[0], endValue: i[1] }) } function n(t, e, n) { var i; return n.eachComponent({mainType: "dataZoom", subType: "select"}, function (n) { var r = n.getAxisModel(t, e.componentIndex); r && (i = n) }), i } var i = t.areas; if (t.isEnd && i.length) { var r = {}, o = this.ecModel; this._brushController.updateCovers([]); var a = new dj(HC(this.model), o, {include: ["grid"]}); a.matchOutputRanges(i, o, function (t, n, i) { if ("cartesian2d" === i.type) { var r = t.brushType; "rect" === r ? (e("x", i, n[0]), e("y", i, n[1])) : e({lineX: "x", lineY: "y"}[r], i, n) } }), NC(o, r), this._dispatchZoomAction(r) } }, n.prototype._dispatchZoomAction = function (t) { var e = []; _q(t, function (t) { e.push(s(t)) }), e.length && this.api.dispatchAction({type: "dataZoom", from: this.uid, batch: e}) }, n.getDefaultOption = function (t) { var e = { show: !0, filterMode: "filter", icon: { zoom: "M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1", back: "M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26" }, title: t.getLocale(["toolbox", "dataZoom", "title"]), brushStyle: {borderWidth: 0, color: "rgba(210,219,238,0.2)"} }; return e }, n }(Tj), Sq = { zoom: function () { var t = !this._isZoomActive; this.api.dispatchAction({type: "takeGlobalCursor", key: "dataZoomSelect", dataZoomSelectActive: t}) }, back: function () { this._dispatchZoomAction(BC(this.ecModel)) } }; Zl("dataZoom", function (t) { function e(t, e, n) { var i = t.componentIndex, a = {type: "select", $fromToolbox: !0, filterMode: r.get("filterMode", !0) || "filter", id: bq + e + i}; a[n] = i, o.push(a) } var n = t.getComponent("toolbox", 0), i = ["feature", "dataZoom"]; if (n && null != n.get(i)) { var r = n.getModel(i), o = [], a = HC(r), s = hr(t, a); return _q(s.xAxisModels, function (t) { return e(t, "xAxis", "xAxisIndex") }), _q(s.yAxisModels, function (t) { return e(t, "yAxis", "yAxisIndex") }), o } }), df(YC); var Mq = ur(), Iq = {path: null, compoundPath: null, group: sL, image: Wk, text: $k}, Tq = function (t) { var e = t.graphic; M(e) ? t.graphic = e[0] && e[0].elements ? [t.graphic[0]] : [{elements: e}] : e && !e.elements && (t.graphic = [{elements: [e]}]) }, Cq = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e.preventAutoZ = !0, e } return e(n, t), n.prototype.mergeOption = function (e, n) { var i = this.option.elements; this.option.elements = null, t.prototype.mergeOption.call(this, e, n), this.option.elements = i }, n.prototype.optionUpdated = function (t, e) { var n = this.option, i = (e ? n : t).elements, r = n.elements = e ? [] : n.elements, o = []; this._flatten(i, o, null); var a = Zi(r, o, "normalMerge"), s = this._elOptionsToUpdate = []; y(a, function (t, e) { var n = t.newOption; n && (s.push(n), KC(t, n), $C(r, e, n), JC(r[e], n)) }, this); for (var l = r.length - 1; l >= 0; l--) null == r[l] ? r.splice(l, 1) : delete r[l].$action }, n.prototype._flatten = function (t, e, n) { y(t, function (t) { if (t) { n && (t.parentOption = n), e.push(t); var i = t.children; "group" === t.type && i && this._flatten(i, e, t), delete t.children } }, this) }, n.prototype.useElOptionsToUpdate = function () { var t = this._elOptionsToUpdate; return this._elOptionsToUpdate = null, t }, n.type = "graphic", n.defaultOption = {elements: []}, n }(gR), Aq = function (t) { function n() { var e = null !== t && t.apply(this, arguments) || this; return e.type = n.type, e } return e(n, t), n.prototype.init = function () { this._elMap = Z() }, n.prototype.render = function (t, e, n) { t !== this._lastGraphicModel && this._clear(), this._lastGraphicModel = t, this._updateElements(t), this._relocate(t, n) }, n.prototype._updateElements = function (t) { var e = t.useElOptionsToUpdate(); if (e) { var n = this._elMap, i = this.group; y(e, function (e) { var r = er(e.id, null), o = null != r ? n.get(r) : null, a = er(e.parentId, null), s = null != a ? n.get(a) : i, l = e.type, u = e.style; "text" === l && u && e.hv && e.hv[1] && (u.textVerticalAlign = u.textBaseline = u.verticalAlign = u.align = null); var h = e.textContent, c = e.textConfig; if (u && uw(u, l, !!c, !!h)) { var p = hw(u, l, !0); !c && p.textConfig && (c = e.textConfig = p.textConfig), !h && p.textContent && (h = p.textContent) } var d = jC(e), f = e.$action || "merge"; "merge" === f ? o ? o.attr(d) : ZC(r, s, d, n) : "replace" === f ? (UC(o, n), ZC(r, s, d, n)) : "remove" === f && UC(o, n); var g = n.get(r); if (g && h) if ("merge" === f) { var y = g.getTextContent(); y ? y.attr(h) : g.setTextContent(new $k(h)) } else "replace" === f && g.setTextContent(new $k(h)); if (g) { var v = Mq(g); v.__ecGraphicWidthOption = e.width, v.__ecGraphicHeightOption = e.height, QC(g, t, e), As({ el: g, componentModel: t, itemName: g.name, itemTooltipOption: e.tooltip }) } }) } }, n.prototype._relocate = function (t, e) { for (var n = t.option.elements, i = this.group, r = this._elMap, o = e.getWidth(), a = e.getHeight(), s = 0; s < n.length; s++) { var l = n[s], u = er(l.id, null), h = null != u ? r.get(u) : null; if (h && h.isGroup) { var c = h.parent, p = c === i, d = Mq(h), f = Mq(c); d.__ecGraphicWidth = _i(d.__ecGraphicWidthOption, p ? o : f.__ecGraphicWidth) || 0, d.__ecGraphicHeight = _i(d.__ecGraphicHeightOption, p ? a : f.__ecGraphicHeight) || 0 } } for (var s = n.length - 1; s >= 0; s--) { var l = n[s], u = er(l.id, null), h = null != u ? r.get(u) : null; if (h) { var c = h.parent, f = Mq(c), g = c === i ? {width: o, height: a} : {width: f.__ecGraphicWidth, height: f.__ecGraphicHeight}; Pl(h, l, g, null, {hv: l.hv, boundingMode: l.bounding}) } } }, n.prototype._clear = function () { var t = this._elMap; t.each(function (e) { UC(e, t) }), this._elMap = Z() }, n.prototype.dispose = function () { this._clear() }, n.type = "graphic", n }(Tz); df(tA), t.version = SN, t.dependencies = MN, t.PRIORITY = GN, t.init = Op, t.connect = Rp, t.disConnect = zp, t.disconnect = EB, t.dispose = Ep, t.getInstanceByDom = Np, t.getInstanceById = Bp, t.registerTheme = Vp, t.registerPreprocessor = Fp, t.registerProcessor = Gp, t.registerPostInit = Hp, t.registerPostUpdate = Wp, t.registerAction = Xp, t.registerCoordinateSystem = Yp, t.getCoordinateSystemDimensions = Zp, t.registerLayout = Up, t.registerVisual = jp, t.registerLoading = Kp, t.setCanvasCreator = $p, t.registerMap = Jp, t.getMap = Qp, t.registerTransform = BB, t.dataTool = QB, t.registerLocale = Ys, t.zrender = dL, t.matrix = RD, t.vector = CA, t.zrUtil = wA, t.color = hD, t.helper = XV, t.number = UV, t.time = jV, t.graphic = qV, t.format = KV, t.util = $V, t.ComponentModel = gR, t.ComponentView = Tz, t.SeriesModel = Iz, t.ChartView = Dz, t.extendComponentModel = Lf, t.extendComponentView = kf, t.extendSeriesModel = Pf, t.extendChartView = Of, t.throttle = Ph, t.use = df, t.parseGeoJSON = Sp, t.parseGeoJson = Sp, t.env = oA, t.List = fV, t.Model = VO, t.Axis = tF, t.innerDrawElementOnCanvas = Zc });