!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
});