! function(t, e) {
"object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ?
define(["exports"], e) : e(t.echarts = {})
}(this, function(t) {
"use strict";
function e(t) {
var e = {},
i = {},
n = t.match(/Firefox\/([\d.]+)/),
r = t.match(/MSIE\s([\d.]+)/) || t.match(/Trident\/.+?rv:(([\d.]+))/),
a = t.match(/Edge\/([\d.]+)/),
o = /micromessenger/i.test(t);
return n && (i.firefox = !0, i.version = n[1]), r && (i.ie = !0, i.version = r[1]), a && (i.edge = !0, i.version = a[
1]), o && (i.weChat = !0), {
browser: i,
os: e,
node: !1,
canvasSupported: !!document.createElement("canvas").getContext,
svgSupported: "undefined" != typeof SVGRect,
touchEventsSupported: "ontouchstart" in window && !i.ie && !i.edge,
pointerEventsSupported: "onpointerdown" in window && (i.edge || i.ie && i.version >= 11),
domSupported: "undefined" != typeof document
}
}
function i(t, e) {
"createCanvas" === t && (dg = null), ug[t] = e
}
function n(t) {
if (null == t || "object" != typeof t) return t;
var e = t,
i = ng.call(t);
if ("[object Array]" === i) {
if (!R(t)) {
e = [];
for (var r = 0, a = t.length; a > r; r++) e[r] = n(t[r])
}
} else if (ig[i]) {
if (!R(t)) {
var o = t.constructor;
if (t.constructor.from) e = o.from(t);
else {
e = new o(t.length);
for (var r = 0, a = t.length; a > r; r++) e[r] = n(t[r])
}
}
} else if (!eg[i] && !R(t) && !T(t)) {
e = {};
for (var s in t) t.hasOwnProperty(s) && (e[s] = n(t[s]))
}
return e
}
function r(t, e, i) {
if (!S(e) || !S(t)) return i ? n(e) : t;
for (var a in e)
if (e.hasOwnProperty(a)) {
var o = t[a],
s = e[a];
!S(s) || !S(o) || _(s) || _(o) || T(s) || T(o) || M(s) || M(o) || R(s) || R(o) ? !i && a in t || (t[a] = n(e[a], !
0)) : r(o, s, i)
} return t
}
function a(t, e) {
for (var i = t[0], n = 1, a = t.length; a > n; n++) i = r(i, t[n], e);
return i
}
function o(t, e) {
for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]);
return t
}
function s(t, e, i) {
for (var n in e) e.hasOwnProperty(n) && (i ? null != e[n] : null == t[n]) && (t[n] = e[n]);
return t
}
function l() {
return dg || (dg = cg().getContext("2d")), dg
}
function h(t, e) {
if (t) {
if (t.indexOf) return t.indexOf(e);
for (var i = 0, n = t.length; n > i; i++)
if (t[i] === e) return i
}
return -1
}
function u(t, e) {
function i() {}
var n = t.prototype;
i.prototype = e.prototype, t.prototype = new i;
for (var r in n) t.prototype[r] = n[r];
t.prototype.constructor = t, t.superClass = e
}
function c(t, e, i) {
t = "prototype" in t ? t.prototype : t, e = "prototype" in e ? e.prototype : e, s(t, e, i)
}
function d(t) {
return t ? "string" == typeof t ? !1 : "number" == typeof t.length : void 0
}
function f(t, e, i) {
if (t && e)
if (t.forEach && t.forEach === ag) t.forEach(e, i);
else if (t.length === +t.length)
for (var n = 0, r = t.length; r > n; n++) e.call(i, t[n], n, t);
else
for (var a in t) t.hasOwnProperty(a) && e.call(i, t[a], a, t)
}
function p(t, e, i) {
if (t && e) {
if (t.map && t.map === lg) return t.map(e, i);
for (var n = [], r = 0, a = t.length; a > r; r++) n.push(e.call(i, t[r], r, t));
return n
}
}
function g(t, e, i, n) {
if (t && e) {
if (t.reduce && t.reduce === hg) return t.reduce(e, i, n);
for (var r = 0, a = t.length; a > r; r++) i = e.call(n, i, t[r], r, t);
return i
}
}
function v(t, e, i) {
if (t && e) {
if (t.filter && t.filter === og) return t.filter(e, i);
for (var n = [], r = 0, a = t.length; a > r; r++) e.call(i, t[r], r, t) && n.push(t[r]);
return n
}
}
function m(t, e, i) {
if (t && e)
for (var n = 0, r = t.length; r > n; n++)
if (e.call(i, t[n], n, t)) return t[n]
}
function y(t, e) {
var i = sg.call(arguments, 2);
return function() {
return t.apply(e, i.concat(sg.call(arguments)))
}
}
function x(t) {
var e = sg.call(arguments, 1);
return function() {
return t.apply(this, e.concat(sg.call(arguments)))
}
}
function _(t) {
return "[object Array]" === ng.call(t)
}
function w(t) {
return "function" == typeof t
}
function b(t) {
return "[object String]" === ng.call(t)
}
function S(t) {
var e = typeof t;
return "function" === e || !!t && "object" == e
}
function M(t) {
return !!eg[ng.call(t)]
}
function I(t) {
return !!ig[ng.call(t)]
}
function T(t) {
return "object" == typeof t && "number" == typeof t.nodeType && "object" == typeof t.ownerDocument
}
function C(t) {
return t !== t
}
function A() {
for (var t = 0, e = arguments.length; e > t; t++)
if (null != arguments[t]) return arguments[t]
}
function D(t, e) {
return null != t ? t : e
}
function k(t, e, i) {
return null != t ? t : null != e ? e : i
}
function P() {
return Function.call.apply(sg, arguments)
}
function L(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 O(t, e) {
if (!t) throw new Error(e)
}
function z(t) {
return null == t ? null : "function" == typeof t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
"")
}
function E(t) {
t[fg] = !0
}
function R(t) {
return t[fg]
}
function B(t) {
function e(t, e) {
i ? n.set(t, e) : n.set(e, t)
}
var i = _(t);
this.data = {};
var n = this;
t instanceof B ? t.each(e) : t && f(t, e)
}
function N(t) {
return new B(t)
}
function F(t, e) {
for (var i = new t.constructor(t.length + e.length), n = 0; n < t.length; n++) i[n] = t[n];
var r = t.length;
for (n = 0; n < e.length; n++) i[n + r] = e[n];
return i
}
function V() {}
function W(t, e) {
var i = new gg(2);
return null == t && (t = 0), null == e && (e = 0), i[0] = t, i[1] = e, i
}
function G(t, e) {
return t[0] = e[0], t[1] = e[1], t
}
function H(t) {
var e = new gg(2);
return e[0] = t[0], e[1] = t[1], e
}
function Z(t, e, i) {
return t[0] = e, t[1] = i, t
}
function X(t, e, i) {
return t[0] = e[0] + i[0], t[1] = e[1] + i[1], t
}
function Y(t, e, i, n) {
return t[0] = e[0] + i[0] * n, t[1] = e[1] + i[1] * n, t
}
function j(t, e, i) {
return t[0] = e[0] - i[0], t[1] = e[1] - i[1], t
}
function q(t) {
return Math.sqrt(U(t))
}
function U(t) {
return t[0] * t[0] + t[1] * t[1]
}
function $(t, e, i) {
return t[0] = e[0] * i[0], t[1] = e[1] * i[1], t
}
function K(t, e, i) {
return t[0] = e[0] / i[0], t[1] = e[1] / i[1], t
}
function Q(t, e) {
return t[0] * e[0] + t[1] * e[1]
}
function J(t, e, i) {
return t[0] = e[0] * i, t[1] = e[1] * i, t
}
function te(t, e) {
var i = q(e);
return 0 === i ? (t[0] = 0, t[1] = 0) : (t[0] = e[0] / i, t[1] = e[1] / i), t
}
function ee(t, e) {
return Math.sqrt((t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]))
}
function ie(t, e) {
return (t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1])
}
function ne(t, e) {
return t[0] = -e[0], t[1] = -e[1], t
}
function re(t, e, i, n) {
return t[0] = e[0] + n * (i[0] - e[0]), t[1] = e[1] + n * (i[1] - e[1]), t
}
function ae(t, e, i) {
var n = e[0],
r = e[1];
return t[0] = i[0] * n + i[2] * r + i[4], t[1] = i[1] * n + i[3] * r + i[5], t
}
function oe(t, e, i) {
return t[0] = Math.min(e[0], i[0]), t[1] = Math.min(e[1], i[1]), t
}
function se(t, e, i) {
return t[0] = Math.max(e[0], i[0]), t[1] = Math.max(e[1], i[1]), t
}
function le() {
this.on("mousedown", this._dragStart, this), this.on("mousemove", this._drag, this), this.on("mouseup", this._dragEnd,
this), this.on("globalout", this._dragEnd, this)
}
function he(t, e) {
return {
target: t,
topTarget: e && e.topTarget
}
}
function ue(t, e) {
var i = t._$eventProcessor;
return null != e && i && i.normalizeQuery && (e = i.normalizeQuery(e)), e
}
function ce(t) {
return t.getBoundingClientRect ? t.getBoundingClientRect() : {
left: 0,
top: 0
}
}
function de(t, e, i, n) {
return i = i || {}, n || !tg.canvasSupported ? fe(t, e, i) : tg.browser.firefox && null != e.layerX && e.layerX !==
e.offsetX ? (i.zrX = e.layerX, i.zrY = e.layerY) : null != e.offsetX ? (i.zrX = e.offsetX, i.zrY = e.offsetY) : fe(
t, e, i), i
}
function fe(t, e, i) {
var n = ce(t);
i.zrX = e.clientX - n.left, i.zrY = e.clientY - n.top
}
function pe(t, e, i) {
if (e = e || window.event, null != e.zrX) return e;
var n = e.type,
r = n && n.indexOf("touch") >= 0;
if (r) {
var a = "touchend" != n ? e.targetTouches[0] : e.changedTouches[0];
a && de(t, a, e, i)
} else de(t, e, e, i), e.zrDelta = e.wheelDelta ? e.wheelDelta / 120 : -(e.detail || 0) / 3;
var o = e.button;
return null == e.which && void 0 !== o && Mg.test(e.type) && (e.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), e
}
function ge(t, e, i) {
Sg ? t.addEventListener(e, i) : t.attachEvent("on" + e, i)
}
function ve(t, e, i) {
Sg ? t.removeEventListener(e, i) : t.detachEvent("on" + e, i)
}
function me(t) {
return t.which > 1
}
function ye(t, e, i) {
return {
type: t,
event: i,
target: e.target,
topTarget: e.topTarget,
cancelBubble: !1,
offsetX: i.zrX,
offsetY: i.zrY,
gestureEvent: i.gestureEvent,
pinchX: i.pinchX,
pinchY: i.pinchY,
pinchScale: i.pinchScale,
wheelDelta: i.zrDelta,
zrByTouch: i.zrByTouch,
which: i.which,
stop: xe
}
}
function xe() {
Ig(this.event)
}
function _e() {}
function we(t, e, i) {
if (t[t.rectHover ? "rectContain" : "contain"](e, i)) {
for (var n, r = t; r;) {
if (r.clipPath && !r.clipPath.contain(e, i)) return !1;
r.silent && (n = !0), r = r.parent
}
return n ? Tg : !0
}
return !1
}
function be() {
var t = new Dg(6);
return Se(t), t
}
function Se(t) {
return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, t
}
function Me(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 Ie(t, e, i) {
var n = e[0] * i[0] + e[2] * i[1],
r = e[1] * i[0] + e[3] * i[1],
a = e[0] * i[2] + e[2] * i[3],
o = e[1] * i[2] + e[3] * i[3],
s = e[0] * i[4] + e[2] * i[5] + e[4],
l = e[1] * i[4] + e[3] * i[5] + e[5];
return t[0] = n, t[1] = r, t[2] = a, t[3] = o, t[4] = s, t[5] = l, t
}
function Te(t, e, i) {
return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4] + i[0], t[5] = e[5] + i[1], t
}
function Ce(t, e, i) {
var n = e[0],
r = e[2],
a = e[4],
o = e[1],
s = e[3],
l = e[5],
h = Math.sin(i),
u = Math.cos(i);
return t[0] = n * u + o * h, t[1] = -n * h + o * u, t[2] = r * u + s * h, t[3] = -r * h + u * s, t[4] = u * a + h *
l, t[5] = u * l - h * a, t
}
function Ae(t, e, i) {
var n = i[0],
r = i[1];
return t[0] = e[0] * n, t[1] = e[1] * r, t[2] = e[2] * n, t[3] = e[3] * r, t[4] = e[4] * n, t[5] = e[5] * r, t
}
function De(t, e) {
var i = e[0],
n = e[2],
r = e[4],
a = e[1],
o = e[3],
s = e[5],
l = i * o - a * n;
return l ? (l = 1 / l, t[0] = o * l, t[1] = -a * l, t[2] = -n * l, t[3] = i * l, t[4] = (n * s - o * r) * l, t[5] =
(a * r - i * s) * l, t) : null
}
function ke(t) {
var e = be();
return Me(e, t), e
}
function Pe(t) {
return t > Lg || -Lg > t
}
function Le(t) {
this._target = t.target, this._life = t.life || 1e3, this._delay = t.delay || 0, this._initialized = !1, 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, this._pausedTime = 0, this._paused = !1
}
function Oe(t) {
return t = Math.round(t), 0 > t ? 0 : t > 255 ? 255 : t
}
function ze(t) {
return t = Math.round(t), 0 > t ? 0 : t > 360 ? 360 : t
}
function Ee(t) {
return 0 > t ? 0 : t > 1 ? 1 : t
}
function Re(t) {
return Oe(t.length && "%" === t.charAt(t.length - 1) ? parseFloat(t) / 100 * 255 : parseInt(t, 10))
}
function Be(t) {
return Ee(t.length && "%" === t.charAt(t.length - 1) ? parseFloat(t) / 100 : parseFloat(t))
}
function Ne(t, e, i) {
return 0 > i ? i += 1 : i > 1 && (i -= 1), 1 > 6 * i ? t + (e - t) * i * 6 : 1 > 2 * i ? e : 2 > 3 * i ? t + (e - t) *
(2 / 3 - i) * 6 : t
}
function Fe(t, e, i) {
return t + (e - t) * i
}
function Ve(t, e, i, n, r) {
return t[0] = e, t[1] = i, t[2] = n, t[3] = r, t
}
function We(t, e) {
return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t
}
function Ge(t, e) {
Yg && We(Yg, e), Yg = Xg.put(t, Yg || e.slice())
}
function He(t, e) {
if (t) {
e = e || [];
var i = Xg.get(t);
if (i) return We(e, i);
t += "";
var n = t.replace(/ /g, "").toLowerCase();
if (n in Zg) return We(e, Zg[n]), Ge(t, e), e;
if ("#" !== n.charAt(0)) {
var r = n.indexOf("("),
a = n.indexOf(")");
if (-1 !== r && a + 1 === n.length) {
var o = n.substr(0, r),
s = n.substr(r + 1, a - (r + 1)).split(","),
l = 1;
switch (o) {
case "rgba":
if (4 !== s.length) return void Ve(e, 0, 0, 0, 1);
l = Be(s.pop());
case "rgb":
return 3 !== s.length ? void Ve(e, 0, 0, 0, 1) : (Ve(e, Re(s[0]), Re(s[1]), Re(s[2]), l), Ge(t, e), e);
case "hsla":
return 4 !== s.length ? void Ve(e, 0, 0, 0, 1) : (s[3] = Be(s[3]), Ze(s, e), Ge(t, e), e);
case "hsl":
return 3 !== s.length ? void Ve(e, 0, 0, 0, 1) : (Ze(s, e), Ge(t, e), e);
default:
return
}
}
Ve(e, 0, 0, 0, 1)
} else {
if (4 === n.length) {
var h = parseInt(n.substr(1), 16);
return h >= 0 && 4095 >= h ? (Ve(e, (3840 & h) >> 4 | (3840 & h) >> 8, 240 & h | (240 & h) >> 4, 15 & h | (15 & h) <<
4, 1), Ge(t, e), e) : void Ve(e, 0, 0, 0, 1)
}
if (7 === n.length) {
var h = parseInt(n.substr(1), 16);
return h >= 0 && 16777215 >= h ? (Ve(e, (16711680 & h) >> 16, (65280 & h) >> 8, 255 & h, 1), Ge(t, e), e) : void Ve(
e, 0, 0, 0, 1)
}
}
}
}
function Ze(t, e) {
var i = (parseFloat(t[0]) % 360 + 360) % 360 / 360,
n = Be(t[1]),
r = Be(t[2]),
a = .5 >= r ? r * (n + 1) : r + n - r * n,
o = 2 * r - a;
return e = e || [], Ve(e, Oe(255 * Ne(o, a, i + 1 / 3)), Oe(255 * Ne(o, a, i)), Oe(255 * Ne(o, a, i - 1 / 3)), 1), 4 ===
t.length && (e[3] = t[3]), e
}
function Xe(t) {
if (t) {
var e, i, n = t[0] / 255,
r = t[1] / 255,
a = t[2] / 255,
o = Math.min(n, r, a),
s = Math.max(n, r, a),
l = s - o,
h = (s + o) / 2;
if (0 === l) e = 0, i = 0;
else {
i = .5 > h ? l / (s + o) : l / (2 - s - o);
var u = ((s - n) / 6 + l / 2) / l,
c = ((s - r) / 6 + l / 2) / l,
d = ((s - a) / 6 + l / 2) / l;
n === s ? e = d - c : r === s ? e = 1 / 3 + u - d : a === s && (e = 2 / 3 + c - u), 0 > e && (e += 1), e > 1 && (e -=
1)
}
var f = [360 * e, i, h];
return null != t[3] && f.push(t[3]), f
}
}
function Ye(t, e) {
var i = He(t);
if (i) {
for (var n = 0; 3 > n; n++) i[n] = 0 > e ? i[n] * (1 - e) | 0 : (255 - i[n]) * e + i[n] | 0, i[n] > 255 ? i[n] =
255 : t[n] < 0 && (i[n] = 0);
return Qe(i, 4 === i.length ? "rgba" : "rgb")
}
}
function je(t) {
var e = He(t);
return e ? ((1 << 24) + (e[0] << 16) + (e[1] << 8) + +e[2]).toString(16).slice(1) : void 0
}
function qe(t, e, i) {
if (e && e.length && t >= 0 && 1 >= t) {
i = i || [];
var n = t * (e.length - 1),
r = Math.floor(n),
a = Math.ceil(n),
o = e[r],
s = e[a],
l = n - r;
return i[0] = Oe(Fe(o[0], s[0], l)), i[1] = Oe(Fe(o[1], s[1], l)), i[2] = Oe(Fe(o[2], s[2], l)), i[3] = Ee(Fe(o[3],
s[3], l)), i
}
}
function Ue(t, e, i) {
if (e && e.length && t >= 0 && 1 >= t) {
var n = t * (e.length - 1),
r = Math.floor(n),
a = Math.ceil(n),
o = He(e[r]),
s = He(e[a]),
l = n - r,
h = Qe([Oe(Fe(o[0], s[0], l)), Oe(Fe(o[1], s[1], l)), Oe(Fe(o[2], s[2], l)), Ee(Fe(o[3], s[3], l))], "rgba");
return i ? {
color: h,
leftIndex: r,
rightIndex: a,
value: n
} : h
}
}
function $e(t, e, i, n) {
return t = He(t), t ? (t = Xe(t), null != e && (t[0] = ze(e)), null != i && (t[1] = Be(i)), null != n && (t[2] = Be(
n)), Qe(Ze(t), "rgba")) : void 0
}
function Ke(t, e) {
return t = He(t), t && null != e ? (t[3] = Ee(e), Qe(t, "rgba")) : void 0
}
function Qe(t, e) {
if (t && t.length) {
var i = t[0] + "," + t[1] + "," + t[2];
return ("rgba" === e || "hsva" === e || "hsla" === e) && (i += "," + t[3]), e + "(" + i + ")"
}
}
function Je(t, e) {
return t[e]
}
function ti(t, e, i) {
t[e] = i
}
function ei(t, e, i) {
return (e - t) * i + t
}
function ii(t, e, i) {
return i > .5 ? e : t
}
function ni(t, e, i, n, r) {
var a = t.length;
if (1 == r)
for (var o = 0; a > o; o++) n[o] = ei(t[o], e[o], i);
else
for (var s = a && t[0].length, o = 0; a > o; o++)
for (var l = 0; s > l; l++) n[o][l] = ei(t[o][l], e[o][l], i)
}
function ri(t, e, i) {
var n = t.length,
r = e.length;
if (n !== r) {
var a = n > r;
if (a) t.length = r;
else
for (var o = n; r > o; o++) t.push(1 === i ? e[o] : $g.call(e[o]))
}
for (var s = t[0] && t[0].length, o = 0; o < t.length; o++)
if (1 === i) isNaN(t[o]) && (t[o] = e[o]);
else
for (var l = 0; s > l; l++) isNaN(t[o][l]) && (t[o][l] = e[o][l])
}
function ai(t, e, i) {
if (t === e) return !0;
var n = t.length;
if (n !== e.length) return !1;
if (1 === i) {
for (var r = 0; n > r; r++)
if (t[r] !== e[r]) return !1
} else
for (var a = t[0].length, r = 0; n > r; r++)
for (var o = 0; a > o; o++)
if (t[r][o] !== e[r][o]) return !1;
return !0
}
function oi(t, e, i, n, r, a, o, s, l) {
var h = t.length;
if (1 == l)
for (var u = 0; h > u; u++) s[u] = si(t[u], e[u], i[u], n[u], r, a, o);
else
for (var c = t[0].length, u = 0; h > u; u++)
for (var d = 0; c > d; d++) s[u][d] = si(t[u][d], e[u][d], i[u][d], n[u][d], r, a, o)
}
function si(t, e, i, n, r, a, o) {
var s = .5 * (i - t),
l = .5 * (n - e);
return (2 * (e - i) + s + l) * o + (-3 * (e - i) - 2 * s - l) * a + s * r + e
}
function li(t) {
if (d(t)) {
var e = t.length;
if (d(t[0])) {
for (var i = [], n = 0; e > n; n++) i.push($g.call(t[n]));
return i
}
return $g.call(t)
}
return t
}
function hi(t) {
return t[0] = Math.floor(t[0]), t[1] = Math.floor(t[1]), t[2] = Math.floor(t[2]), "rgba(" + t.join(",") + ")"
}
function ui(t) {
var e = t[t.length - 1].value;
return d(e && e[0]) ? 2 : 1
}
function ci(t, e, i, n, r, a) {
var o = t._getter,
s = t._setter,
l = "spline" === e,
h = n.length;
if (h) {
var u, c = n[0].value,
f = d(c),
p = !1,
g = !1,
v = f ? ui(n) : 0;
n.sort(function(t, e) {
return t.time - e.time
}), u = n[h - 1].time;
for (var m = [], y = [], x = n[0].value, _ = !0, w = 0; h > w; w++) {
m.push(n[w].time / u);
var b = n[w].value;
if (f && ai(b, x, v) || !f && b === x || (_ = !1), x = b, "string" == typeof b) {
var S = He(b);
S ? (b = S, p = !0) : g = !0
}
y.push(b)
}
if (a || !_) {
for (var M = y[h - 1], w = 0; h - 1 > w; w++) f ? ri(y[w], M, v) : !isNaN(y[w]) || isNaN(M) || g || p || (y[w] = M);
f && ri(o(t._target, r), M, v);
var I, T, C, A, D, k, P = 0,
L = 0;
if (p) var O = [0, 0, 0, 0];
var z = function(t, e) {
var i;
if (0 > e) i = 0;
else if (L > e) {
for (I = Math.min(P + 1, h - 1), i = I; i >= 0 && !(m[i] <= e); i--);
i = Math.min(i, h - 2)
} else {
for (i = P; h > i && !(m[i] > e); i++);
i = Math.min(i - 1, h - 2)
}
P = i, L = e;
var n = m[i + 1] - m[i];
if (0 !== n)
if (T = (e - m[i]) / n, l)
if (A = y[i], C = y[0 === i ? i : i - 1], D = y[i > h - 2 ? h - 1 : i + 1], k = y[i > h - 3 ? h - 1 : i + 2],
f) oi(C, A, D, k, T, T * T, T * T * T, o(t, r), v);
else {
var a;
if (p) a = oi(C, A, D, k, T, T * T, T * T * T, O, 1), a = hi(O);
else {
if (g) return ii(A, D, T);
a = si(C, A, D, k, T, T * T, T * T * T)
}
s(t, r, a)
}
else if (f) ni(y[i], y[i + 1], T, o(t, r), v);
else {
var a;
if (p) ni(y[i], y[i + 1], T, O, 1), a = hi(O);
else {
if (g) return ii(y[i], y[i + 1], T);
a = ei(y[i], y[i + 1], T)
}
s(t, r, a)
}
},
E = new Le({
target: t._target,
life: u,
loop: t._loop,
delay: t._delay,
onframe: z,
ondestroy: i
});
return e && "spline" !== e && (E.easing = e), E
}
}
}
function di(t, e, i, n, r, a, o, s) {
function l() {
u--, u || a && a()
}
b(n) ? (a = r, r = n, n = 0) : w(r) ? (a = r, r = "linear", n = 0) : w(n) ? (a = n, n = 0) : w(i) ? (a = i, i = 500) :
i || (i = 500), t.stopAnimation(), fi(t, "", t, e, i, n, s);
var h = t.animators.slice(),
u = h.length;
u || a && a();
for (var c = 0; c < h.length; c++) h[c].done(l).start(r, o)
}
function fi(t, e, i, n, r, a, o) {
var s = {},
l = 0;
for (var h in n) n.hasOwnProperty(h) && (null != i[h] ? S(n[h]) && !d(n[h]) ? fi(t, e ? e + "." + h : h, i[h], n[h],
r, a, o) : (o ? (s[h] = i[h], pi(t, e, h, n[h])) : s[h] = n[h], l++) : null == n[h] || o || pi(t, e, h, n[h]));
l > 0 && t.animate(e, !1).when(null == r ? 500 : r, s).delay(a || 0)
}
function pi(t, e, i, n) {
if (e) {
var r = {};
r[e] = {}, r[e][i] = n, t.attr(r)
} else t.attr(i, n)
}
function gi(t, e, i, n) {
0 > i && (t += i, i = -i), 0 > n && (e += n, n = -n), this.x = t, this.y = e, this.width = i, this.height = n
}
function vi(t) {
for (var e = 0; t >= hv;) e |= 1 & t, t >>= 1;
return t + e
}
function mi(t, e, i, n) {
var r = e + 1;
if (r === i) return 1;
if (n(t[r++], t[e]) < 0) {
for (; i > r && n(t[r], t[r - 1]) < 0;) r++;
yi(t, e, r)
} else
for (; i > r && n(t[r], t[r - 1]) >= 0;) r++;
return r - e
}
function yi(t, e, i) {
for (i--; i > e;) {
var n = t[e];
t[e++] = t[i], t[i--] = n
}
}
function xi(t, e, i, n, r) {
for (n === e && n++; i > n; n++) {
for (var a, o = t[n], s = e, l = n; l > s;) a = s + l >>> 1, r(o, t[a]) < 0 ? l = a : s = a + 1;
var h = n - s;
switch (h) {
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 (; h > 0;) t[s + h] = t[s + h - 1], h--
}
t[s] = o
}
}
function _i(t, e, i, n, r, a) {
var o = 0,
s = 0,
l = 1;
if (a(t, e[i + r]) > 0) {
for (s = n - r; s > l && a(t, e[i + r + l]) > 0;) o = l, l = (l << 1) + 1, 0 >= l && (l = s);
l > s && (l = s), o += r, l += r
} else {
for (s = r + 1; s > l && a(t, e[i + r - l]) <= 0;) o = l, l = (l << 1) + 1, 0 >= l && (l = s);
l > s && (l = s);
var h = o;
o = r - l, l = r - h
}
for (o++; l > o;) {
var u = o + (l - o >>> 1);
a(t, e[i + u]) > 0 ? o = u + 1 : l = u
}
return l
}
function wi(t, e, i, n, r, a) {
var o = 0,
s = 0,
l = 1;
if (a(t, e[i + r]) < 0) {
for (s = r + 1; s > l && a(t, e[i + r - l]) < 0;) o = l, l = (l << 1) + 1, 0 >= l && (l = s);
l > s && (l = s);
var h = o;
o = r - l, l = r - h
} else {
for (s = n - r; s > l && a(t, e[i + r + l]) >= 0;) o = l, l = (l << 1) + 1, 0 >= l && (l = s);
l > s && (l = s), o += r, l += r
}
for (o++; l > o;) {
var u = o + (l - o >>> 1);
a(t, e[i + u]) < 0 ? l = u : o = u + 1
}
return l
}
function bi(t, e) {
function i(t, e) {
l[c] = t, h[c] = e, c += 1
}
function n() {
for (; c > 1;) {
var t = c - 2;
if (t >= 1 && h[t - 1] <= h[t] + h[t + 1] || t >= 2 && h[t - 2] <= h[t] + h[t - 1]) h[t - 1] < h[t + 1] && t--;
else if (h[t] > h[t + 1]) break;
a(t)
}
}
function r() {
for (; c > 1;) {
var t = c - 2;
t > 0 && h[t - 1] < h[t + 1] && t--, a(t)
}
}
function a(i) {
var n = l[i],
r = h[i],
a = l[i + 1],
u = h[i + 1];
h[i] = r + u, i === c - 3 && (l[i + 1] = l[i + 2], h[i + 1] = h[i + 2]), c--;
var d = wi(t[a], t, n, r, 0, e);
n += d, r -= d, 0 !== r && (u = _i(t[n + r - 1], t, a, u, u - 1, e), 0 !== u && (u >= r ? o(n, r, a, u) : s(n, r, a,
u)))
}
function o(i, n, r, a) {
var o = 0;
for (o = 0; n > o; o++) d[o] = t[i + o];
var s = 0,
l = r,
h = i;
if (t[h++] = t[l++], 0 !== --a) {
if (1 === n) {
for (o = 0; a > o; o++) t[h + o] = t[l + o];
return void(t[h + a] = d[s])
}
for (var c, f, p, g = u;;) {
c = 0, f = 0, p = !1;
do
if (e(t[l], d[s]) < 0) {
if (t[h++] = t[l++], f++, c = 0, 0 === --a) {
p = !0;
break
}
} else if (t[h++] = d[s++], c++, f = 0, 1 === --n) {
p = !0;
break
} while (g > (c | f));
if (p) break;
do {
if (c = wi(t[l], d, s, n, 0, e), 0 !== c) {
for (o = 0; c > o; o++) t[h + o] = d[s + o];
if (h += c, s += c, n -= c, 1 >= n) {
p = !0;
break
}
}
if (t[h++] = t[l++], 0 === --a) {
p = !0;
break
}
if (f = _i(d[s], t, l, a, 0, e), 0 !== f) {
for (o = 0; f > o; o++) t[h + o] = t[l + o];
if (h += f, l += f, a -= f, 0 === a) {
p = !0;
break
}
}
if (t[h++] = d[s++], 1 === --n) {
p = !0;
break
}
g--
} while (c >= uv || f >= uv);
if (p) break;
0 > g && (g = 0), g += 2
}
if (u = g, 1 > u && (u = 1), 1 === n) {
for (o = 0; a > o; o++) t[h + o] = t[l + o];
t[h + a] = d[s]
} else {
if (0 === n) throw new Error;
for (o = 0; n > o; o++) t[h + o] = d[s + o]
}
} else
for (o = 0; n > o; o++) t[h + o] = d[s + o]
}
function s(i, n, r, a) {
var o = 0;
for (o = 0; a > o; o++) d[o] = t[r + o];
var s = i + n - 1,
l = a - 1,
h = r + a - 1,
c = 0,
f = 0;
if (t[h--] = t[s--], 0 !== --n) {
if (1 === a) {
for (h -= n, s -= n, f = h + 1, c = s + 1, o = n - 1; o >= 0; o--) t[f + o] = t[c + o];
return void(t[h] = d[l])
}
for (var p = u;;) {
var g = 0,
v = 0,
m = !1;
do
if (e(d[l], t[s]) < 0) {
if (t[h--] = t[s--], g++, v = 0, 0 === --n) {
m = !0;
break
}
} else if (t[h--] = d[l--], v++, g = 0, 1 === --a) {
m = !0;
break
} while (p > (g | v));
if (m) break;
do {
if (g = n - wi(d[l], t, i, n, n - 1, e), 0 !== g) {
for (h -= g, s -= g, n -= g, f = h + 1, c = s + 1, o = g - 1; o >= 0; o--) t[f + o] = t[c + o];
if (0 === n) {
m = !0;
break
}
}
if (t[h--] = d[l--], 1 === --a) {
m = !0;
break
}
if (v = a - _i(t[s], d, 0, a, a - 1, e), 0 !== v) {
for (h -= v, l -= v, a -= v, f = h + 1, c = l + 1, o = 0; v > o; o++) t[f + o] = d[c + o];
if (1 >= a) {
m = !0;
break
}
}
if (t[h--] = t[s--], 0 === --n) {
m = !0;
break
}
p--
} while (g >= uv || v >= uv);
if (m) break;
0 > p && (p = 0), p += 2
}
if (u = p, 1 > u && (u = 1), 1 === a) {
for (h -= n, s -= n, f = h + 1, c = s + 1, o = n - 1; o >= 0; o--) t[f + o] = t[c + o];
t[h] = d[l]
} else {
if (0 === a) throw new Error;
for (c = h - (a - 1), o = 0; a > o; o++) t[c + o] = d[o]
}
} else
for (c = h - (a - 1), o = 0; a > o; o++) t[c + o] = d[o]
}
var l, h, u = uv,
c = 0,
d = [];
l = [], h = [], this.mergeRuns = n, this.forceMergeRuns = r, this.pushRun = i
}
function Si(t, e, i, n) {
i || (i = 0), n || (n = t.length);
var r = n - i;
if (!(2 > r)) {
var a = 0;
if (hv > r) return a = mi(t, i, n, e), void xi(t, i, n, i + a, e);
var o = new bi(t, e),
s = vi(r);
do {
if (a = mi(t, i, n, e), s > a) {
var l = r;
l > s && (l = s), xi(t, i, i + l, i + a, e), a = l
}
o.pushRun(i, a), o.mergeRuns(), r -= a, i += a
} while (0 !== r);
o.forceMergeRuns()
}
}
function Mi(t, e) {
return t.zlevel === e.zlevel ? t.z === e.z ? t.z2 - e.z2 : t.z - e.z : t.zlevel - e.zlevel
}
function Ii(t, e, i) {
var n = null == e.x ? 0 : e.x,
r = null == e.x2 ? 1 : e.x2,
a = null == e.y ? 0 : e.y,
o = null == e.y2 ? 0 : e.y2;
e.global || (n = n * i.width + i.x, r = r * i.width + i.x, a = a * i.height + i.y, o = o * i.height + i.y), n =
isNaN(n) ? 0 : n, r = isNaN(r) ? 1 : r, a = isNaN(a) ? 0 : a, o = isNaN(o) ? 0 : o;
var s = t.createLinearGradient(n, a, r, o);
return s
}
function Ti(t, e, i) {
var n = i.width,
r = i.height,
a = Math.min(n, r),
o = null == e.x ? .5 : e.x,
s = null == e.y ? .5 : e.y,
l = null == e.r ? .5 : e.r;
e.global || (o = o * n + i.x, s = s * r + i.y, l *= a);
var h = t.createRadialGradient(o, s, 0, o, s, l);
return h
}
function Ci() {
return !1
}
function Ai(t, e, i) {
var n = cg(),
r = e.getWidth(),
a = e.getHeight(),
o = n.style;
return o && (o.position = "absolute", o.left = 0, o.top = 0, o.width = r + "px", o.height = a + "px", n.setAttribute(
"data-zr-dom-id", t)), n.width = r * i, n.height = a * i, n
}
function Di(t) {
if ("string" == typeof t) {
var e = bv.get(t);
return e && e.image
}
return t
}
function ki(t, e, i, n, r) {
if (t) {
if ("string" == typeof t) {
if (e && e.__zrImageSrc === t || !i) return e;
var a = bv.get(t),
o = {
hostEl: i,
cb: n,
cbPayload: r
};
return a ? (e = a.image, !Li(e) && a.pending.push(o)) : (!e && (e = new Image), e.onload = e.onerror = Pi, bv.put(
t, e.__cachedImgObj = {
image: e,
pending: [o]
}), e.src = e.__zrImageSrc = t), e
}
return t
}
return e
}
function Pi() {
var t = this.__cachedImgObj;
this.onload = this.onerror = this.__cachedImgObj = null;
for (var e = 0; e < t.pending.length; e++) {
var i = t.pending[e],
n = i.cb;
n && n(this, i.cbPayload), i.hostEl.dirty()
}
t.pending.length = 0
}
function Li(t) {
return t && t.width && t.height
}
function Oi(t, e) {
Av[t] = e
}
function zi(t, e) {
e = e || Cv;
var i = t + ":" + e;
if (Sv[i]) return Sv[i];
for (var n = (t + "").split("\n"), r = 0, a = 0, o = n.length; o > a; a++) r = Math.max(Yi(n[a], e).width, r);
return Mv > Iv && (Mv = 0, Sv = {}), Mv++, Sv[i] = r, r
}
function Ei(t, e, i, n, r, a, o) {
return a ? Bi(t, e, i, n, r, a, o) : Ri(t, e, i, n, r, o)
}
function Ri(t, e, i, n, r, a) {
var o = ji(t, e, r, a),
s = zi(t, e);
r && (s += r[1] + r[3]);
var l = o.outerHeight,
h = Ni(0, s, i),
u = Fi(0, l, n),
c = new gi(h, u, s, l);
return c.lineHeight = o.lineHeight, c
}
function Bi(t, e, i, n, r, a, o) {
var s = qi(t, {
rich: a,
truncate: o,
font: e,
textAlign: i,
textPadding: r
}),
l = s.outerWidth,
h = s.outerHeight,
u = Ni(0, l, i),
c = Fi(0, h, n);
return new gi(u, c, l, h)
}
function Ni(t, e, i) {
return "right" === i ? t -= e : "center" === i && (t -= e / 2), t
}
function Fi(t, e, i) {
return "middle" === i ? t -= e / 2 : "bottom" === i && (t -= e), t
}
function Vi(t, e, i) {
var n = e.x,
r = e.y,
a = e.height,
o = e.width,
s = a / 2,
l = "left",
h = "top";
switch (t) {
case "left":
n -= i, r += s, l = "right", h = "middle";
break;
case "right":
n += i + o, r += s, h = "middle";
break;
case "top":
n += o / 2, r -= i, l = "center", h = "bottom";
break;
case "bottom":
n += o / 2, r += a + i, l = "center";
break;
case "inside":
n += o / 2, r += s, l = "center", h = "middle";
break;
case "insideLeft":
n += i, r += s, h = "middle";
break;
case "insideRight":
n += o - i, r += s, l = "right", h = "middle";
break;
case "insideTop":
n += o / 2, r += i, l = "center";
break;
case "insideBottom":
n += o / 2, r += a - i, l = "center", h = "bottom";
break;
case "insideTopLeft":
n += i, r += i;
break;
case "insideTopRight":
n += o - i, r += i, l = "right";
break;
case "insideBottomLeft":
n += i, r += a - i, h = "bottom";
break;
case "insideBottomRight":
n += o - i, r += a - i, l = "right", h = "bottom"
}
return {
x: n,
y: r,
textAlign: l,
textVerticalAlign: h
}
}
function Wi(t, e, i, n, r) {
if (!e) return "";
var a = (t + "").split("\n");
r = Gi(e, i, n, r);
for (var o = 0, s = a.length; s > o; o++) a[o] = Hi(a[o], r);
return a.join("\n")
}
function Gi(t, e, i, n) {
n = o({}, n), n.font = e;
var i = D(i, "...");
n.maxIterations = D(n.maxIterations, 2);
var r = n.minChar = D(n.minChar, 0);
n.cnCharWidth = zi("国", e);
var a = n.ascCharWidth = zi("a", e);
n.placeholder = D(n.placeholder, "");
for (var s = t = Math.max(0, t - 1), l = 0; r > l && s >= a; l++) s -= a;
var h = zi(i);
return h > s && (i = "", h = 0), s = t - h, n.ellipsis = i, n.ellipsisWidth = h, n.contentWidth = s, n.containerWidth =
t, n
}
function Hi(t, e) {
var i = e.containerWidth,
n = e.font,
r = e.contentWidth;
if (!i) return "";
var a = zi(t, n);
if (i >= a) return t;
for (var o = 0;; o++) {
if (r >= a || o >= e.maxIterations) {
t += e.ellipsis;
break
}
var s = 0 === o ? Zi(t, r, e.ascCharWidth, e.cnCharWidth) : a > 0 ? Math.floor(t.length * r / a) : 0;
t = t.substr(0, s), a = zi(t, n)
}
return "" === t && (t = e.placeholder), t
}
function Zi(t, e, i, n) {
for (var r = 0, a = 0, o = t.length; o > a && e > r; a++) {
var s = t.charCodeAt(a);
r += s >= 0 && 127 >= s ? i : n
}
return a
}
function Xi(t) {
return zi("国", t)
}
function Yi(t, e) {
return Av.measureText(t, e)
}
function ji(t, e, i, n) {
null != t && (t += "");
var r = Xi(e),
a = t ? t.split("\n") : [],
o = a.length * r,
s = o;
if (i && (s += i[0] + i[2]), t && n) {
var l = n.outerHeight,
h = n.outerWidth;
if (null != l && s > l) t = "", a = [];
else if (null != h)
for (var u = Gi(h - (i ? i[1] + i[3] : 0), e, n.ellipsis, {
minChar: n.minChar,
placeholder: n.placeholder
}), c = 0, d = a.length; d > c; c++) a[c] = Hi(a[c], u)
}
return {
lines: a,
height: o,
outerHeight: s,
lineHeight: r
}
}
function qi(t, e) {
var i = {
lines: [],
width: 0,
height: 0
};
if (null != t && (t += ""), !t) return i;
for (var n, r = Tv.lastIndex = 0; null != (n = Tv.exec(t));) {
var a = n.index;
a > r && Ui(i, t.substring(r, a)), Ui(i, n[2], n[1]), r = Tv.lastIndex
}
r < t.length && Ui(i, t.substring(r, t.length));
var o = i.lines,
s = 0,
l = 0,
h = [],
u = e.textPadding,
c = e.truncate,
d = c && c.outerWidth,
f = c && c.outerHeight;
u && (null != d && (d -= u[1] + u[3]), null != f && (f -= u[0] + u[2]));
for (var p = 0; p < o.length; p++) {
for (var g = o[p], v = 0, m = 0, y = 0; y < g.tokens.length; y++) {
var x = g.tokens[y],
_ = x.styleName && e.rich[x.styleName] || {},
w = x.textPadding = _.textPadding,
b = x.font = _.font || e.font,
S = x.textHeight = D(_.textHeight, Xi(b));
if (w && (S += w[0] + w[2]), x.height = S, x.lineHeight = k(_.textLineHeight, e.textLineHeight, S), x.textAlign =
_ && _.textAlign || e.textAlign, x.textVerticalAlign = _ && _.textVerticalAlign || "middle", null != f && s + x.lineHeight >
f) return {
lines: [],
width: 0,
height: 0
};
x.textWidth = zi(x.text, b);
var M = _.textWidth,
I = null == M || "auto" === M;
if ("string" == typeof M && "%" === M.charAt(M.length - 1)) x.percentWidth = M, h.push(x), M = 0;
else {
if (I) {
M = x.textWidth;
var T = _.textBackgroundColor,
C = T && T.image;
C && (C = Di(C), Li(C) && (M = Math.max(M, C.width * S / C.height)))
}
var A = w ? w[1] + w[3] : 0;
M += A;
var P = null != d ? d - m : null;
null != P && M > P && (!I || A > P ? (x.text = "", x.textWidth = M = 0) : (x.text = Wi(x.text, P - A, b, c.ellipsis, {
minChar: c.minChar
}), x.textWidth = zi(x.text, b), M = x.textWidth + A))
}
m += x.width = M, _ && (v = Math.max(v, x.lineHeight))
}
g.width = m, g.lineHeight = v, s += v, l = Math.max(l, m)
}
i.outerWidth = i.width = D(e.textWidth, l), i.outerHeight = i.height = D(e.textHeight, s), u && (i.outerWidth += u[1] +
u[3], i.outerHeight += u[0] + u[2]);
for (var p = 0; p < h.length; p++) {
var x = h[p],
L = x.percentWidth;
x.width = parseInt(L, 10) / 100 * l
}
return i
}
function Ui(t, e, i) {
for (var n = "" === e, r = e.split("\n"), a = t.lines, o = 0; o < r.length; o++) {
var s = r[o],
l = {
styleName: i,
text: s,
isLineHolder: !s && !n
};
if (o) a.push({
tokens: [l]
});
else {
var h = (a[a.length - 1] || (a[0] = {
tokens: []
})).tokens,
u = h.length;
1 === u && h[0].isLineHolder ? h[0] = l : (s || !u || n) && h.push(l)
}
}
}
function $i(t) {
var e = (t.fontSize || t.fontFamily) && [t.fontStyle, t.fontWeight, (t.fontSize || 12) + "px", t.fontFamily ||
"sans-serif"
].join(" ");
return e && z(e) || t.textFont || t.font
}
function Ki(t, e) {
var i, n, r, a, o = e.x,
s = e.y,
l = e.width,
h = e.height,
u = e.r;
0 > l && (o += l, l = -l), 0 > h && (s += h, h = -h), "number" == typeof u ? i = n = r = a = u : u instanceof Array ?
1 === u.length ? i = n = r = a = u[0] : 2 === u.length ? (i = r = u[0], n = a = u[1]) : 3 === u.length ? (i = u[0],
n = a = u[1], r = u[2]) : (i = u[0], n = u[1], r = u[2], a = u[3]) : i = n = r = a = 0;
var c;
i + n > l && (c = i + n, i *= l / c, n *= l / c), r + a > l && (c = r + a, r *= l / c, a *= l / c), n + r > h && (c =
n + r, n *= h / c, r *= h / c), i + a > h && (c = i + a, i *= h / c, a *= h / c), t.moveTo(o + i, s), t.lineTo(o +
l - n, s), 0 !== n && t.arc(o + l - n, s + n, n, -Math.PI / 2, 0), t.lineTo(o + l, s + h - r), 0 !== r && t.arc(o +
l - r, s + h - r, r, 0, Math.PI / 2), t.lineTo(o + a, s + h), 0 !== a && t.arc(o + a, s + h - a, a, Math.PI / 2,
Math.PI), t.lineTo(o, s + i), 0 !== i && t.arc(o + i, s + i, i, Math.PI, 1.5 * Math.PI)
}
function Qi(t) {
return Ji(t), f(t.rich, Ji), t
}
function Ji(t) {
if (t) {
t.font = $i(t);
var e = t.textAlign;
"middle" === e && (e = "center"), t.textAlign = null == e || Dv[e] ? e : "left";
var i = t.textVerticalAlign || t.textBaseline;
"center" === i && (i = "middle"), t.textVerticalAlign = null == i || kv[i] ? i : "top";
var n = t.textPadding;
n && (t.textPadding = L(t.textPadding))
}
}
function tn(t, e, i, n, r, a) {
n.rich ? nn(t, e, i, n, r) : en(t, e, i, n, r, a)
}
function en(t, e, i, n, r, a) {
var o = a && a.style,
s = o && "text" === a.type,
l = n.font || Cv;
s && l === (o.font || Cv) || (e.font = l);
var h = t.__computedFont;
t.__styleFont !== l && (t.__styleFont = l, h = t.__computedFont = e.font);
var u = n.textPadding,
c = t.__textCotentBlock;
(!c || t.__dirtyText) && (c = t.__textCotentBlock = ji(i, h, u, n.truncate));
var d = c.outerHeight,
f = c.lines,
p = c.lineHeight,
g = un(d, n, r),
v = g.baseX,
m = g.baseY,
y = g.textAlign || "left",
x = g.textVerticalAlign;
an(e, n, r, v, m);
var _ = Fi(m, d, x),
w = v,
b = _,
S = sn(n);
if (S || u) {
var M = zi(i, h),
I = M;
u && (I += u[1] + u[3]);
var T = Ni(v, I, y);
S && ln(t, e, n, T, _, I, d), u && (w = gn(v, y, u), b += u[0])
}
e.textAlign = y, e.textBaseline = "middle";
for (var C = 0; C < Pv.length; C++) {
var A = Pv[C],
D = A[0],
k = A[1],
P = n[D];
s && P === o[D] || (e[k] = fv(e, k, P || A[2]))
}
b += p / 2;
var L = n.textStrokeWidth,
O = s ? o.textStrokeWidth : null,
z = !s || L !== O,
E = !s || z || n.textStroke !== o.textStroke,
R = dn(n.textStroke, L),
B = fn(n.textFill);
if (R && (z && (e.lineWidth = L), E && (e.strokeStyle = R)), B && (!s || n.textFill !== o.textFill || o.textBackgroundColor) &&
(e.fillStyle = B), 1 === f.length) R && e.strokeText(f[0], w, b), B && e.fillText(f[0], w, b);
else
for (var C = 0; C < f.length; C++) R && e.strokeText(f[C], w, b), B && e.fillText(f[C], w, b), b += p
}
function nn(t, e, i, n, r) {
var a = t.__textCotentBlock;
(!a || t.__dirtyText) && (a = t.__textCotentBlock = qi(i, n)), rn(t, e, a, n, r)
}
function rn(t, e, i, n, r) {
var a = i.width,
o = i.outerWidth,
s = i.outerHeight,
l = n.textPadding,
h = un(s, n, r),
u = h.baseX,
c = h.baseY,
d = h.textAlign,
f = h.textVerticalAlign;
an(e, n, r, u, c);
var p = Ni(u, o, d),
g = Fi(c, s, f),
v = p,
m = g;
l && (v += l[3], m += l[0]);
var y = v + a;
sn(n) && ln(t, e, n, p, g, o, s);
for (var x = 0; x < i.lines.length; x++) {
for (var _, w = i.lines[x], b = w.tokens, S = b.length, M = w.lineHeight, I = w.width, T = 0, C = v, A = y, D = S -
1; S > T && (_ = b[T], !_.textAlign || "left" === _.textAlign);) on(t, e, _, n, M, m, C, "left"), I -= _.width, C +=
_.width, T++;
for (; D >= 0 && (_ = b[D], "right" === _.textAlign);) on(t, e, _, n, M, m, A, "right"), I -= _.width, A -= _.width,
D--;
for (C += (a - (C - v) - (y - A) - I) / 2; D >= T;) _ = b[T], on(t, e, _, n, M, m, C + _.width / 2, "center"), C +=
_.width, T++;
m += M
}
}
function an(t, e, i, n, r) {
if (i && e.textRotation) {
var a = e.textOrigin;
"center" === a ? (n = i.width / 2 + i.x, r = i.height / 2 + i.y) : a && (n = a[0] + i.x, r = a[1] + i.y), t.translate(
n, r), t.rotate(-e.textRotation), t.translate(-n, -r)
}
}
function on(t, e, i, n, r, a, o, s) {
var l = n.rich[i.styleName] || {};
l.text = i.text;
var h = i.textVerticalAlign,
u = a + r / 2;
"top" === h ? u = a + i.height / 2 : "bottom" === h && (u = a + r - i.height / 2), !i.isLineHolder && sn(l) && ln(t,
e, l, "right" === s ? o - i.width : "center" === s ? o - i.width / 2 : o, u - i.height / 2, i.width, i.height);
var c = i.textPadding;
c && (o = gn(o, s, c), u -= i.height / 2 - c[2] - i.textHeight / 2), cn(e, "shadowBlur", k(l.textShadowBlur, n.textShadowBlur,
0)), cn(e, "shadowColor", l.textShadowColor || n.textShadowColor || "transparent"), cn(e, "shadowOffsetX", k(l.textShadowOffsetX,
n.textShadowOffsetX, 0)), cn(e, "shadowOffsetY", k(l.textShadowOffsetY, n.textShadowOffsetY, 0)), cn(e,
"textAlign", s), cn(e, "textBaseline", "middle"), cn(e, "font", i.font || Cv);
var d = dn(l.textStroke || n.textStroke, p),
f = fn(l.textFill || n.textFill),
p = D(l.textStrokeWidth, n.textStrokeWidth);
d && (cn(e, "lineWidth", p), cn(e, "strokeStyle", d), e.strokeText(i.text, o, u)), f && (cn(e, "fillStyle", f), e.fillText(
i.text, o, u))
}
function sn(t) {
return t.textBackgroundColor || t.textBorderWidth && t.textBorderColor
}
function ln(t, e, i, n, r, a, o) {
var s = i.textBackgroundColor,
l = i.textBorderWidth,
h = i.textBorderColor,
u = b(s);
if (cn(e, "shadowBlur", i.textBoxShadowBlur || 0), cn(e, "shadowColor", i.textBoxShadowColor || "transparent"), cn(e,
"shadowOffsetX", i.textBoxShadowOffsetX || 0), cn(e, "shadowOffsetY", i.textBoxShadowOffsetY || 0), u || l && h) {
e.beginPath();
var c = i.textBorderRadius;
c ? Ki(e, {
x: n,
y: r,
width: a,
height: o,
r: c
}) : e.rect(n, r, a, o), e.closePath()
}
if (u)
if (cn(e, "fillStyle", s), null != i.fillOpacity) {
var d = e.globalAlpha;
e.globalAlpha = i.fillOpacity * i.opacity, e.fill(), e.globalAlpha = d
} else e.fill();
else if (w(s)) cn(e, "fillStyle", s(i)), e.fill();
else if (S(s)) {
var f = s.image;
f = ki(f, null, t, hn, s), f && Li(f) && e.drawImage(f, n, r, a, o)
}
if (l && h)
if (cn(e, "lineWidth", l), cn(e, "strokeStyle", h), null != i.strokeOpacity) {
var d = e.globalAlpha;
e.globalAlpha = i.strokeOpacity * i.opacity, e.stroke(), e.globalAlpha = d
} else e.stroke()
}
function hn(t, e) {
e.image = t
}
function un(t, e, i) {
var n = e.x || 0,
r = e.y || 0,
a = e.textAlign,
o = e.textVerticalAlign;
if (i) {
var s = e.textPosition;
if (s instanceof Array) n = i.x + pn(s[0], i.width), r = i.y + pn(s[1], i.height);
else {
var l = Vi(s, i, e.textDistance);
n = l.x, r = l.y, a = a || l.textAlign, o = o || l.textVerticalAlign
}
var h = e.textOffset;
h && (n += h[0], r += h[1])
}
return {
baseX: n,
baseY: r,
textAlign: a,
textVerticalAlign: o
}
}
function cn(t, e, i) {
return t[e] = fv(t, e, i), t[e]
}
function dn(t, e) {
return null == t || 0 >= e || "transparent" === t || "none" === t ? null : t.image || t.colorStops ? "#000" : t
}
function fn(t) {
return null == t || "none" === t ? null : t.image || t.colorStops ? "#000" : t
}
function pn(t, e) {
return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t
}
function gn(t, e, i) {
return "right" === e ? t - i[1] : "center" === e ? t + i[3] / 2 - i[1] / 2 : t + i[3]
}
function vn(t, e) {
return null != t && (t || e.textBackgroundColor || e.textBorderWidth && e.textBorderColor || e.textPadding)
}
function mn(t) {
t = t || {}, rv.call(this, t);
for (var e in t) t.hasOwnProperty(e) && "style" !== e && (this[e] = t[e]);
this.style = new gv(t.style, this), this._rect = null, this.__clipPaths = []
}
function yn(t) {
mn.call(this, t)
}
function xn(t) {
return parseInt(t, 10)
}
function _n(t) {
return t ? t.__builtin__ ? !0 : "function" != typeof t.resize || "function" != typeof t.refresh ? !1 : !0 : !1
}
function wn(t, e, i) {
return Nv.copy(t.getBoundingRect()), t.transform && Nv.applyTransform(t.transform), Fv.width = e, Fv.height = i, !Nv
.intersect(Fv)
}
function bn(t, e) {
if (t == e) return !1;
if (!t || !e || t.length !== e.length) return !0;
for (var i = 0; i < t.length; i++)
if (t[i] !== e[i]) return !0
}
function Sn(t, e) {
for (var i = 0; i < t.length; i++) {
var n = t[i];
n.setTransform(e), e.beginPath(), n.buildPath(e, n.shape), e.clip(), n.restoreTransform(e)
}
}
function Mn(t, e) {
var i = document.createElement("div");
return i.style.cssText = ["position:relative", "overflow:hidden", "width:" + t + "px", "height:" + e + "px",
"padding:0", "margin:0", "border-width:0"
].join(";") + ";", i
}
function In(t) {
var e = t[1][0] - t[0][0],
i = t[1][1] - t[0][1];
return Math.sqrt(e * e + i * i)
}
function Tn(t) {
return [(t[0][0] + t[1][0]) / 2, (t[0][1] + t[1][1]) / 2]
}
function Cn(t) {
return "mousewheel" === t && tg.browser.firefox ? "DOMMouseScroll" : t
}
function An(t, e, i) {
var n = t._gestureMgr;
"start" === i && n.clear();
var r = n.recognize(e, t.handler.findHover(e.zrX, e.zrY, null).target, t.dom);
if ("end" === i && n.clear(), r) {
var a = r.type;
e.gestureEvent = a, t.handler.dispatchToElement({
target: r.target
}, a, r.event)
}
}
function Dn(t) {
t._touching = !0, clearTimeout(t._touchTimer), t._touchTimer = setTimeout(function() {
t._touching = !1
}, 700)
}
function kn(t) {
var e = t.pointerType;
return "pen" === e || "touch" === e
}
function Pn(t) {
function e(t, e) {
return function() {
return e._touching ? void 0 : t.apply(e, arguments)
}
}
f(Yv, function(e) {
t._handlers[e] = y(Uv[e], t)
}), f(qv, function(e) {
t._handlers[e] = y(Uv[e], t)
}), f(Xv, function(i) {
t._handlers[i] = e(Uv[i], t)
})
}
function Ln(t) {
function e(e, i) {
f(e, function(e) {
ge(t, Cn(e), i._handlers[e])
}, i)
}
bg.call(this), this.dom = t, this._touching = !1, this._touchTimer, this._gestureMgr = new Gv, this._handlers = {},
Pn(this), tg.pointerEventsSupported ? e(qv, this) : (tg.touchEventsSupported && e(Yv, this), e(Xv, this))
}
function On(t, e) {
var i = new em(Qp(), t, e);
return Jv[i.id] = i, i
}
function zn(t) {
if (t) t.dispose();
else {
for (var e in Jv) Jv.hasOwnProperty(e) && Jv[e].dispose();
Jv = {}
}
return this
}
function En(t) {
return Jv[t]
}
function Rn(t, e) {
Qv[t] = e
}
function Bn(t) {
delete Jv[t]
}
function Nn(t) {
return t instanceof Array ? t : null == t ? [] : [t]
}
function Fn(t, e, i) {
if (t) {
t[e] = t[e] || {}, t.emphasis = t.emphasis || {}, t.emphasis[e] = t.emphasis[e] || {};
for (var n = 0, r = i.length; r > n; n++) {
var a = i[n];
!t.emphasis[e].hasOwnProperty(a) && t[e].hasOwnProperty(a) && (t.emphasis[e][a] = t[e][a])
}
}
}
function Vn(t) {
return !rm(t) || am(t) || t instanceof Date ? t : t.value
}
function Wn(t) {
return rm(t) && !(t instanceof Array)
}
function Gn(t, e) {
e = (e || []).slice();
var i = p(t || [], function(t) {
return {
exist: t
}
});
return nm(e, function(t, n) {
if (rm(t)) {
for (var r = 0; r < i.length; r++)
if (!i[r].option && null != t.id && i[r].exist.id === t.id + "") return i[r].option = t, void(e[n] = null);
for (var r = 0; r < i.length; r++) {
var a = i[r].exist;
if (!(i[r].option || null != a.id && null != t.id || null == t.name || Xn(t) || Xn(a) || a.name !== t.name + ""))
return i[r].option = t, void(e[n] = null)
}
}
}), nm(e, function(t) {
if (rm(t)) {
for (var e = 0; e < i.length; e++) {
var n = i[e].exist;
if (!i[e].option && !Xn(n) && null == t.id) {
i[e].option = t;
break
}
}
e >= i.length && i.push({
option: t
})
}
}), i
}
function Hn(t) {
var e = N();
nm(t, function(t) {
var i = t.exist;
i && e.set(i.id, t)
}), nm(t, function(t) {
var i = t.option;
O(!i || null == i.id || !e.get(i.id) || e.get(i.id) === t, "id duplicates: " + (i && i.id)), i && null != i.id &&
e.set(i.id, t), !t.keyInfo && (t.keyInfo = {})
}), nm(t, function(t, i) {
var n = t.exist,
r = t.option,
a = t.keyInfo;
if (rm(r)) {
if (a.name = null != r.name ? r.name + "" : n ? n.name : om + i, n) a.id = n.id;
else if (null != r.id) a.id = r.id + "";
else {
var o = 0;
do a.id = "\x00" + a.name + "\x00" + o++; while (e.get(a.id))
}
e.set(a.id, t)
}
})
}
function Zn(t) {
var e = t.name;
return !(!e || !e.indexOf(om))
}
function Xn(t) {
return rm(t) && t.id && 0 === (t.id + "").indexOf("\x00_ec_\x00")
}
function Yn(t, e) {
return null != e.dataIndexInside ? e.dataIndexInside : null != e.dataIndex ? _(e.dataIndex) ? p(e.dataIndex,
function(e) {
return t.indexOfRawIndex(e)
}) : t.indexOfRawIndex(e.dataIndex) : null != e.name ? _(e.name) ? p(e.name, function(e) {
return t.indexOfName(e)
}) : t.indexOfName(e.name) : void 0
}
function jn() {
var t = "__\x00ec_inner_" + lm++ + "_" + Math.random().toFixed(5);
return function(e) {
return e[t] || (e[t] = {})
}
}
function qn(t, e, i) {
if (b(e)) {
var n = {};
n[e + "Index"] = 0, e = n
}
var r = i && i.defaultMainType;
!r || Un(e, r + "Index") || Un(e, r + "Id") || Un(e, r + "Name") || (e[r + "Index"] = 0);
var a = {};
return nm(e, function(n, r) {
var n = e[r];
if ("dataIndex" === r || "dataIndexInside" === r) return void(a[r] = n);
var o = r.match(/^(\w+)(Index|Id|Name)$/) || [],
s = o[1],
l = (o[2] || "").toLowerCase();
if (!(!s || !l || null == n || "index" === l && "none" === n || i && i.includeMainTypes && h(i.includeMainTypes,
s) < 0)) {
var u = {
mainType: s
};
("index" !== l || "all" !== n) && (u[l] = n);
var c = t.queryComponents(u);
a[s + "Models"] = c, a[s + "Model"] = c[0]
}
}), a
}
function Un(t, e) {
return t && t.hasOwnProperty(e)
}
function $n(t, e, i) {
t.setAttribute ? t.setAttribute(e, i) : t[e] = i
}
function Kn(t, e) {
return t.getAttribute ? t.getAttribute(e) : t[e]
}
function Qn(t) {
return "auto" === t ? tg.domSupported ? "html" : "richText" : t || "html"
}
function Jn(t) {
var e = {
main: "",
sub: ""
};
return t && (t = t.split(hm), e.main = t[0] || "", e.sub = t[1] || ""), e
}
function tr(t) {
O(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t), 'componentType "' + t + '" illegal')
}
function er(t) {
t.$constructor = t, t.extend = function(t) {
var e = this,
i = function() {
t.$constructor ? t.$constructor.apply(this, arguments) : e.apply(this, arguments)
};
return o(i.prototype, t), i.extend = this.extend, i.superCall = nr, i.superApply = rr, u(i, this), i.superClass =
e, i
}
}
function ir(t) {
var e = ["__\x00is_clz", cm++, Math.random().toFixed(3)].join("_");
t.prototype[e] = !0, t.isInstance = function(t) {
return !(!t || !t[e])
}
}
function nr(t, e) {
var i = P(arguments, 2);
return this.superClass.prototype[e].apply(t, i)
}
function rr(t, e, i) {
return this.superClass.prototype[e].apply(t, i)
}
function ar(t, e) {
function i(t) {
var e = n[t.main];
return e && e[um] || (e = n[t.main] = {}, e[um] = !0), e
}
e = e || {};
var n = {};
if (t.registerClass = function(t, e) {
if (e)
if (tr(e), e = Jn(e), e.sub) {
if (e.sub !== um) {
var r = i(e);
r[e.sub] = t
}
} else n[e.main] = t;
return t
}, t.getClass = function(t, e, i) {
var r = n[t];
if (r && r[um] && (r = e ? r[e] : null), i && !r) throw new Error(e ? "Component " + t + "." + (e || "") +
" not exists. Load it first." : t + ".type should be specified.");
return r
}, t.getClassesByMainType = function(t) {
t = Jn(t);
var e = [],
i = n[t.main];
return i && i[um] ? f(i, function(t, i) {
i !== um && e.push(t)
}) : e.push(i), e
}, t.hasClass = function(t) {
return t = Jn(t), !!n[t.main]
}, t.getAllClassMainTypes = function() {
var t = [];
return f(n, function(e, i) {
t.push(i)
}), t
}, t.hasSubTypes = function(t) {
t = Jn(t);
var e = n[t.main];
return e && e[um]
}, t.parseClassType = Jn, e.registerWhenExtend) {
var r = t.extend;
r && (t.extend = function(e) {
var i = r.call(this, e);
return t.registerClass(i, e.type)
})
}
return t
}
function or(t) {
return t > -xm && xm > t
}
function sr(t) {
return t > xm || -xm > t
}
function lr(t, e, i, n, r) {
var a = 1 - r;
return a * a * (a * t + 3 * r * e) + r * r * (r * n + 3 * a * i)
}
function hr(t, e, i, n, r) {
var a = 1 - r;
return 3 * (((e - t) * a + 2 * (i - e) * r) * a + (n - i) * r * r)
}
function ur(t, e, i, n, r, a) {
var o = n + 3 * (e - i) - t,
s = 3 * (i - 2 * e + t),
l = 3 * (e - t),
h = t - r,
u = s * s - 3 * o * l,
c = s * l - 9 * o * h,
d = l * l - 3 * s * h,
f = 0;
if (or(u) && or(c))
if (or(s)) a[0] = 0;
else {
var p = -l / s;
p >= 0 && 1 >= p && (a[f++] = p)
}
else {
var g = c * c - 4 * u * d;
if (or(g)) {
var v = c / u,
p = -s / o + v,
m = -v / 2;
p >= 0 && 1 >= p && (a[f++] = p), m >= 0 && 1 >= m && (a[f++] = m)
} else if (g > 0) {
var y = ym(g),
x = u * s + 1.5 * o * (-c + y),
_ = u * s + 1.5 * o * (-c - y);
x = 0 > x ? -mm(-x, bm) : mm(x, bm), _ = 0 > _ ? -mm(-_, bm) : mm(_, bm);
var p = (-s - (x + _)) / (3 * o);
p >= 0 && 1 >= p && (a[f++] = p)
} else {
var w = (2 * u * s - 3 * o * c) / (2 * ym(u * u * u)),
b = Math.acos(w) / 3,
S = ym(u),
M = Math.cos(b),
p = (-s - 2 * S * M) / (3 * o),
m = (-s + S * (M + wm * Math.sin(b))) / (3 * o),
I = (-s + S * (M - wm * Math.sin(b))) / (3 * o);
p >= 0 && 1 >= p && (a[f++] = p), m >= 0 && 1 >= m && (a[f++] = m), I >= 0 && 1 >= I && (a[f++] = I)
}
}
return f
}
function cr(t, e, i, n, r) {
var a = 6 * i - 12 * e + 6 * t,
o = 9 * e + 3 * n - 3 * t - 9 * i,
s = 3 * e - 3 * t,
l = 0;
if (or(o)) {
if (sr(a)) {
var h = -s / a;
h >= 0 && 1 >= h && (r[l++] = h)
}
} else {
var u = a * a - 4 * o * s;
if (or(u)) r[0] = -a / (2 * o);
else if (u > 0) {
var c = ym(u),
h = (-a + c) / (2 * o),
d = (-a - c) / (2 * o);
h >= 0 && 1 >= h && (r[l++] = h), d >= 0 && 1 >= d && (r[l++] = d)
}
}
return l
}
function dr(t, e, i, n, r, a) {
var o = (e - t) * r + t,
s = (i - e) * r + e,
l = (n - i) * r + i,
h = (s - o) * r + o,
u = (l - s) * r + s,
c = (u - h) * r + h;
a[0] = t, a[1] = o, a[2] = h, a[3] = c, a[4] = c, a[5] = u, a[6] = l, a[7] = n
}
function fr(t, e, i, n, r, a, o, s, l, h, u) {
var c, d, f, p, g, v = .005,
m = 1 / 0;
Sm[0] = l, Sm[1] = h;
for (var y = 0; 1 > y; y += .05) Mm[0] = lr(t, i, r, o, y), Mm[1] = lr(e, n, a, s, y), p = xg(Sm, Mm), m > p && (c =
y, m = p);
m = 1 / 0;
for (var x = 0; 32 > x && !(_m > v); x++) d = c - v, f = c + v, Mm[0] = lr(t, i, r, o, d), Mm[1] = lr(e, n, a, s, d),
p = xg(Mm, Sm), d >= 0 && m > p ? (c = d, m = p) : (Im[0] = lr(t, i, r, o, f), Im[1] = lr(e, n, a, s, f), g = xg(Im,
Sm), 1 >= f && m > g ? (c = f, m = g) : v *= .5);
return u && (u[0] = lr(t, i, r, o, c), u[1] = lr(e, n, a, s, c)), ym(m)
}
function pr(t, e, i, n) {
var r = 1 - n;
return r * (r * t + 2 * n * e) + n * n * i
}
function gr(t, e, i, n) {
return 2 * ((1 - n) * (e - t) + n * (i - e))
}
function vr(t, e, i, n, r) {
var a = t - 2 * e + i,
o = 2 * (e - t),
s = t - n,
l = 0;
if (or(a)) {
if (sr(o)) {
var h = -s / o;
h >= 0 && 1 >= h && (r[l++] = h)
}
} else {
var u = o * o - 4 * a * s;
if (or(u)) {
var h = -o / (2 * a);
h >= 0 && 1 >= h && (r[l++] = h)
} else if (u > 0) {
var c = ym(u),
h = (-o + c) / (2 * a),
d = (-o - c) / (2 * a);
h >= 0 && 1 >= h && (r[l++] = h), d >= 0 && 1 >= d && (r[l++] = d)
}
}
return l
}
function mr(t, e, i) {
var n = t + i - 2 * e;
return 0 === n ? .5 : (t - e) / n
}
function yr(t, e, i, n, r) {
var a = (e - t) * n + t,
o = (i - e) * n + e,
s = (o - a) * n + a;
r[0] = t, r[1] = a, r[2] = s, r[3] = s, r[4] = o, r[5] = i
}
function xr(t, e, i, n, r, a, o, s, l) {
var h, u = .005,
c = 1 / 0;
Sm[0] = o, Sm[1] = s;
for (var d = 0; 1 > d; d += .05) {
Mm[0] = pr(t, i, r, d), Mm[1] = pr(e, n, a, d);
var f = xg(Sm, Mm);
c > f && (h = d, c = f)
}
c = 1 / 0;
for (var p = 0; 32 > p && !(_m > u); p++) {
var g = h - u,
v = h + u;
Mm[0] = pr(t, i, r, g), Mm[1] = pr(e, n, a, g);
var f = xg(Mm, Sm);
if (g >= 0 && c > f) h = g, c = f;
else {
Im[0] = pr(t, i, r, v), Im[1] = pr(e, n, a, v);
var m = xg(Im, Sm);
1 >= v && c > m ? (h = v, c = m) : u *= .5
}
}
return l && (l[0] = pr(t, i, r, h), l[1] = pr(e, n, a, h)), ym(c)
}
function _r(t, e, i) {
if (0 !== t.length) {
var n, r = t[0],
a = r[0],
o = r[0],
s = r[1],
l = r[1];
for (n = 1; n < t.length; n++) r = t[n], a = Tm(a, r[0]), o = Cm(o, r[0]), s = Tm(s, r[1]), l = Cm(l, r[1]);
e[0] = a, e[1] = s, i[0] = o, i[1] = l
}
}
function wr(t, e, i, n, r, a) {
r[0] = Tm(t, i), r[1] = Tm(e, n), a[0] = Cm(t, i), a[1] = Cm(e, n)
}
function br(t, e, i, n, r, a, o, s, l, h) {
var u, c = cr,
d = lr,
f = c(t, i, r, o, zm);
for (l[0] = 1 / 0, l[1] = 1 / 0, h[0] = -1 / 0, h[1] = -1 / 0, u = 0; f > u; u++) {
var p = d(t, i, r, o, zm[u]);
l[0] = Tm(p, l[0]), h[0] = Cm(p, h[0])
}
for (f = c(e, n, a, s, Em), u = 0; f > u; u++) {
var g = d(e, n, a, s, Em[u]);
l[1] = Tm(g, l[1]), h[1] = Cm(g, h[1])
}
l[0] = Tm(t, l[0]), h[0] = Cm(t, h[0]), l[0] = Tm(o, l[0]), h[0] = Cm(o, h[0]), l[1] = Tm(e, l[1]), h[1] = Cm(e, h[1]),
l[1] = Tm(s, l[1]), h[1] = Cm(s, h[1])
}
function Sr(t, e, i, n, r, a, o, s) {
var l = mr,
h = pr,
u = Cm(Tm(l(t, i, r), 1), 0),
c = Cm(Tm(l(e, n, a), 1), 0),
d = h(t, i, r, u),
f = h(e, n, a, c);
o[0] = Tm(t, r, d), o[1] = Tm(e, a, f), s[0] = Cm(t, r, d), s[1] = Cm(e, a, f)
}
function Mr(t, e, i, n, r, a, o, s, l) {
var h = oe,
u = se,
c = Math.abs(r - a);
if (1e-4 > c % km && c > 1e-4) return s[0] = t - i, s[1] = e - n, l[0] = t + i, void(l[1] = e + n);
if (Pm[0] = Dm(r) * i + t, Pm[1] = Am(r) * n + e, Lm[0] = Dm(a) * i + t, Lm[1] = Am(a) * n + e, h(s, Pm, Lm), u(l,
Pm, Lm), r %= km, 0 > r && (r += km), a %= km, 0 > a && (a += km), r > a && !o ? a += km : a > r && o && (r += km),
o) {
var d = a;
a = r, r = d
}
for (var f = 0; a > f; f += Math.PI / 2) f > r && (Om[0] = Dm(f) * i + t, Om[1] = Am(f) * n + e, h(s, Om, s), u(l,
Om, l))
}
function Ir(t, e, i, n, r, a, o) {
if (0 === r) return !1;
var s = r,
l = 0,
h = t;
if (o > e + s && o > n + s || e - s > o && n - s > o || a > t + s && a > i + s || t - s > a && i - s > a) return !1;
if (t === i) return Math.abs(a - t) <= s / 2;
l = (e - n) / (t - i), h = (t * n - i * e) / (t - i);
var u = l * a - o + h,
c = u * u / (l * l + 1);
return s / 2 * s / 2 >= c
}
function Tr(t, e, i, n, r, a, o, s, l, h, u) {
if (0 === l) return !1;
var c = l;
if (u > e + c && u > n + c && u > a + c && u > s + c || e - c > u && n - c > u && a - c > u && s - c > u || h > t +
c && h > i + c && h > r + c && h > o + c || t - c > h && i - c > h && r - c > h && o - c > h) return !1;
var d = fr(t, e, i, n, r, a, o, s, h, u, null);
return c / 2 >= d
}
function Cr(t, e, i, n, r, a, o, s, l) {
if (0 === o) return !1;
var h = o;
if (l > e + h && l > n + h && l > a + h || e - h > l && n - h > l && a - h > l || s > t + h && s > i + h && s > r +
h || t - h > s && i - h > s && r - h > s) return !1;
var u = xr(t, e, i, n, r, a, s, l, null);
return h / 2 >= u
}
function Ar(t) {
return t %= Um, 0 > t && (t += Um), t
}
function Dr(t, e, i, n, r, a, o, s, l) {
if (0 === o) return !1;
var h = o;
s -= t, l -= e;
var u = Math.sqrt(s * s + l * l);
if (u - h > i || i > u + h) return !1;
if (Math.abs(n - r) % $m < 1e-4) return !0;
if (a) {
var c = n;
n = Ar(r), r = Ar(c)
} else n = Ar(n), r = Ar(r);
n > r && (r += $m);
var d = Math.atan2(l, s);
return 0 > d && (d += $m), d >= n && r >= d || d + $m >= n && r >= d + $m
}
function kr(t, e, i, n, r, a) {
if (a > e && a > n || e > a && n > a) return 0;
if (n === e) return 0;
var o = e > n ? 1 : -1,
s = (a - e) / (n - e);
(1 === s || 0 === s) && (o = e > n ? .5 : -.5);
var l = s * (i - t) + t;
return l === r ? 1 / 0 : l > r ? o : 0
}
function Pr(t, e) {
return Math.abs(t - e) < Jm
}
function Lr() {
var t = ey[0];
ey[0] = ey[1], ey[1] = t
}
function Or(t, e, i, n, r, a, o, s, l, h) {
if (h > e && h > n && h > a && h > s || e > h && n > h && a > h && s > h) return 0;
var u = ur(e, n, a, s, h, ty);
if (0 === u) return 0;
for (var c, d, f = 0, p = -1, g = 0; u > g; g++) {
var v = ty[g],
m = 0 === v || 1 === v ? .5 : 1,
y = lr(t, i, r, o, v);
l > y || (0 > p && (p = cr(e, n, a, s, ey), ey[1] < ey[0] && p > 1 && Lr(), c = lr(e, n, a, s, ey[0]), p > 1 && (d =
lr(e, n, a, s, ey[1]))), f += 2 == p ? v < ey[0] ? e > c ? m : -m : v < ey[1] ? c > d ? m : -m : d > s ? m : -m :
v < ey[0] ? e > c ? m : -m : c > s ? m : -m)
}
return f
}
function zr(t, e, i, n, r, a, o, s) {
if (s > e && s > n && s > a || e > s && n > s && a > s) return 0;
var l = vr(e, n, a, s, ty);
if (0 === l) return 0;
var h = mr(e, n, a);
if (h >= 0 && 1 >= h) {
for (var u = 0, c = pr(e, n, a, h), d = 0; l > d; d++) {
var f = 0 === ty[d] || 1 === ty[d] ? .5 : 1,
p = pr(t, i, r, ty[d]);
o > p || (u += ty[d] < h ? e > c ? f : -f : c > a ? f : -f)
}
return u
}
var f = 0 === ty[0] || 1 === ty[0] ? .5 : 1,
p = pr(t, i, r, ty[0]);
return o > p ? 0 : e > a ? f : -f
}
function Er(t, e, i, n, r, a, o, s) {
if (s -= e, s > i || -i > s) return 0;
var l = Math.sqrt(i * i - s * s);
ty[0] = -l, ty[1] = l;
var h = Math.abs(n - r);
if (1e-4 > h) return 0;
if (1e-4 > h % Qm) {
n = 0, r = Qm;
var u = a ? 1 : -1;
return o >= ty[0] + t && o <= ty[1] + t ? u : 0
}
if (a) {
var l = n;
n = Ar(r), r = Ar(l)
} else n = Ar(n), r = Ar(r);
n > r && (r += Qm);
for (var c = 0, d = 0; 2 > d; d++) {
var f = ty[d];
if (f + t > o) {
var p = Math.atan2(s, f),
u = a ? 1 : -1;
0 > p && (p = Qm + p), (p >= n && r >= p || p + Qm >= n && r >= p + Qm) && (p > Math.PI / 2 && p < 1.5 * Math.PI &&
(u = -u), c += u)
}
}
return c
}
function Rr(t, e, i, n, r) {
for (var a = 0, o = 0, s = 0, l = 0, h = 0, u = 0; u < t.length;) {
var c = t[u++];
switch (c === Km.M && u > 1 && (i || (a += kr(o, s, l, h, n, r))), 1 == u && (o = t[u], s = t[u + 1], l = o, h = s),
c) {
case Km.M:
l = t[u++], h = t[u++], o = l, s = h;
break;
case Km.L:
if (i) {
if (Ir(o, s, t[u], t[u + 1], e, n, r)) return !0
} else a += kr(o, s, t[u], t[u + 1], n, r) || 0;
o = t[u++], s = t[u++];
break;
case Km.C:
if (i) {
if (Tr(o, s, t[u++], t[u++], t[u++], t[u++], t[u], t[u + 1], e, n, r)) return !0
} else a += Or(o, s, t[u++], t[u++], t[u++], t[u++], t[u], t[u + 1], n, r) || 0;
o = t[u++], s = t[u++];
break;
case Km.Q:
if (i) {
if (Cr(o, s, t[u++], t[u++], t[u], t[u + 1], e, n, r)) return !0
} else a += zr(o, s, t[u++], t[u++], t[u], t[u + 1], n, r) || 0;
o = t[u++], s = t[u++];
break;
case Km.A:
var d = t[u++],
f = t[u++],
p = t[u++],
g = t[u++],
v = t[u++],
m = t[u++],
y = (t[u++], 1 - t[u++]),
x = Math.cos(v) * p + d,
_ = Math.sin(v) * g + f;
u > 1 ? a += kr(o, s, x, _, n, r) : (l = x, h = _);
var w = (n - d) * g / p + d;
if (i) {
if (Dr(d, f, g, v, v + m, y, e, w, r)) return !0
} else a += Er(d, f, g, v, v + m, y, w, r);
o = Math.cos(v + m) * p + d, s = Math.sin(v + m) * g + f;
break;
case Km.R:
l = o = t[u++], h = s = t[u++];
var b = t[u++],
S = t[u++],
x = l + b,
_ = h + S;
if (i) {
if (Ir(l, h, x, h, e, n, r) || Ir(x, h, x, _, e, n, r) || Ir(x, _, l, _, e, n, r) || Ir(l, _, l, h, e, n, r))
return !0
} else a += kr(x, h, x, _, n, r), a += kr(l, _, l, h, n, r);
break;
case Km.Z:
if (i) {
if (Ir(o, s, l, h, e, n, r)) return !0
} else a += kr(o, s, l, h, n, r);
o = l, s = h
}
}
return i || Pr(s, h) || (a += kr(o, s, l, h, n, r) || 0), 0 !== a
}
function Br(t, e, i) {
return Rr(t, 0, !1, e, i)
}
function Nr(t, e, i, n) {
return Rr(t, e, !0, i, n)
}
function Fr(t) {
mn.call(this, t), this.path = null
}
function Vr(t, e, i, n, r, a, o, s, l, h, u) {
var c = l * (fy / 180),
d = dy(c) * (t - i) / 2 + cy(c) * (e - n) / 2,
f = -1 * cy(c) * (t - i) / 2 + dy(c) * (e - n) / 2,
p = d * d / (o * o) + f * f / (s * s);
p > 1 && (o *= uy(p), s *= uy(p));
var g = (r === a ? -1 : 1) * uy((o * o * s * s - o * o * f * f - s * s * d * d) / (o * o * f * f + s * s * d * d)) ||
0,
v = g * o * f / s,
m = g * -s * d / o,
y = (t + i) / 2 + dy(c) * v - cy(c) * m,
x = (e + n) / 2 + cy(c) * v + dy(c) * m,
_ = vy([1, 0], [(d - v) / o, (f - m) / s]),
w = [(d - v) / o, (f - m) / s],
b = [(-1 * d - v) / o, (-1 * f - m) / s],
S = vy(w, b);
gy(w, b) <= -1 && (S = fy), gy(w, b) >= 1 && (S = 0), 0 === a && S > 0 && (S -= 2 * fy), 1 === a && 0 > S && (S += 2 *
fy), u.addData(h, y, x, o, s, _, S, c, a)
}
function Wr(t) {
if (!t) return new qm;
for (var e, i = 0, n = 0, r = i, a = n, o = new qm, s = qm.CMD, l = t.match(my), h = 0; h < l.length; h++) {
for (var u, c = l[h], d = c.charAt(0), f = c.match(yy) || [], p = f.length, g = 0; p > g; g++) f[g] = parseFloat(f[
g]);
for (var v = 0; p > v;) {
var m, y, x, _, w, b, S, M = i,
I = n;
switch (d) {
case "l":
i += f[v++], n += f[v++], u = s.L, o.addData(u, i, n);
break;
case "L":
i = f[v++], n = f[v++], u = s.L, o.addData(u, i, n);
break;
case "m":
i += f[v++], n += f[v++], u = s.M, o.addData(u, i, n), r = i, a = n, d = "l";
break;
case "M":
i = f[v++], n = f[v++], u = s.M, o.addData(u, i, n), r = i, a = n, d = "L";
break;
case "h":
i += f[v++], u = s.L, o.addData(u, i, n);
break;
case "H":
i = f[v++], u = s.L, o.addData(u, i, n);
break;
case "v":
n += f[v++], u = s.L, o.addData(u, i, n);
break;
case "V":
n = f[v++], u = s.L, o.addData(u, i, n);
break;
case "C":
u = s.C, o.addData(u, f[v++], f[v++], f[v++], f[v++], f[v++], f[v++]), i = f[v - 2], n = f[v - 1];
break;
case "c":
u = s.C, o.addData(u, f[v++] + i, f[v++] + n, f[v++] + i, f[v++] + n, f[v++] + i, f[v++] + n), i += f[v - 2], n +=
f[v - 1];
break;
case "S":
m = i, y = n;
var T = o.len(),
C = o.data;
e === s.C && (m += i - C[T - 4], y += n - C[T - 3]), u = s.C, M = f[v++], I = f[v++], i = f[v++], n = f[v++], o.addData(
u, m, y, M, I, i, n);
break;
case "s":
m = i, y = n;
var T = o.len(),
C = o.data;
e === s.C && (m += i - C[T - 4], y += n - C[T - 3]), u = s.C, M = i + f[v++], I = n + f[v++], i += f[v++], n +=
f[v++], o.addData(u, m, y, M, I, i, n);
break;
case "Q":
M = f[v++], I = f[v++], i = f[v++], n = f[v++], u = s.Q, o.addData(u, M, I, i, n);
break;
case "q":
M = f[v++] + i, I = f[v++] + n, i += f[v++], n += f[v++], u = s.Q, o.addData(u, M, I, i, n);
break;
case "T":
m = i, y = n;
var T = o.len(),
C = o.data;
e === s.Q && (m += i - C[T - 4], y += n - C[T - 3]), i = f[v++], n = f[v++], u = s.Q, o.addData(u, m, y, i, n);
break;
case "t":
m = i, y = n;
var T = o.len(),
C = o.data;
e === s.Q && (m += i - C[T - 4], y += n - C[T - 3]), i += f[v++], n += f[v++], u = s.Q, o.addData(u, m, y, i, n);
break;
case "A":
x = f[v++], _ = f[v++], w = f[v++], b = f[v++], S = f[v++], M = i, I = n, i = f[v++], n = f[v++], u = s.A, Vr(M,
I, i, n, b, S, x, _, w, u, o);
break;
case "a":
x = f[v++], _ = f[v++], w = f[v++], b = f[v++], S = f[v++], M = i, I = n, i += f[v++], n += f[v++], u = s.A, Vr(
M, I, i, n, b, S, x, _, w, u, o)
}
}("z" === d || "Z" === d) && (u = s.Z, o.addData(u), i = r, n = a), e = u
}
return o.toStatic(), o
}
function Gr(t, e) {
var i = Wr(t);
return e = e || {}, e.buildPath = function(t) {
if (t.setData) {
t.setData(i.data);
var e = t.getContext();
e && t.rebuildPath(e)
} else {
var e = t;
i.rebuildPath(e)
}
}, e.applyTransform = function(t) {
hy(i, t), this.dirty(!0)
}, e
}
function Hr(t, e) {
return new Fr(Gr(t, e))
}
function Zr(t, e) {
return Fr.extend(Gr(t, e))
}
function Xr(t, e) {
for (var i = [], n = t.length, r = 0; n > r; r++) {
var a = t[r];
a.path || a.createPathProxy(), a.__dirtyPath && a.buildPath(a.path, a.shape, !0), i.push(a.path)
}
var o = new Fr(e);
return o.createPathProxy(), o.buildPath = function(t) {
t.appendPath(i);
var e = t.getContext();
e && t.rebuildPath(e)
}, o
}
function Yr(t, e, i, n, r, a, o) {
var s = .5 * (i - t),
l = .5 * (n - e);
return (2 * (e - i) + s + l) * o + (-3 * (e - i) - 2 * s - l) * a + s * r + e
}
function jr(t, e, i) {
var n = e.points,
r = e.smooth;
if (n && n.length >= 2) {
if (r && "spline" !== r) {
var a = Ty(n, r, i, e.smoothConstraint);
t.moveTo(n[0][0], n[0][1]);
for (var o = n.length, s = 0;
(i ? o : o - 1) > s; s++) {
var l = a[2 * s],
h = a[2 * s + 1],
u = n[(s + 1) % o];
t.bezierCurveTo(l[0], l[1], h[0], h[1], u[0], u[1])
}
} else {
"spline" === r && (n = Iy(n, i)), t.moveTo(n[0][0], n[0][1]);
for (var s = 1, c = n.length; c > s; s++) t.lineTo(n[s][0], n[s][1])
}
i && t.closePath()
}
}
function qr(t, e, i) {
var n = t.cpx2,
r = t.cpy2;
return null === n || null === r ? [(i ? hr : lr)(t.x1, t.cpx1, t.cpx2, t.x2, e), (i ? hr : lr)(t.y1, t.cpy1, t.cpy2,
t.y2, e)] : [(i ? gr : pr)(t.x1, t.cpx1, t.x2, e), (i ? gr : pr)(t.y1, t.cpy1, t.y2, e)]
}
function Ur(t) {
mn.call(this, t), this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.notClear = !0
}
function $r(t) {
return Fr.extend(t)
}
function Kr(t, e) {
return Zr(t, e)
}
function Qr(t, e, i, n) {
var r = Hr(t, e);
return i && ("center" === n && (i = ta(i, r.getBoundingRect())), ea(r, i)), r
}
function Jr(t, e, i) {
var n = new yn({
style: {
image: t,
x: e.x,
y: e.y,
width: e.width,
height: e.height
},
onload: function(t) {
if ("center" === i) {
var r = {
width: t.width,
height: t.height
};
n.setStyle(ta(e, r))
}
}
});
return n
}
function ta(t, e) {
var i, n = e.width / e.height,
r = t.height * n;
r <= t.width ? i = t.height : (r = t.width, i = r / n);
var a = t.x + t.width / 2,
o = t.y + t.height / 2;
return {
x: a - r / 2,
y: o - i / 2,
width: r,
height: i
}
}
function ea(t, e) {
if (t.applyTransform) {
var i = t.getBoundingRect(),
n = i.calculateTransform(e);
t.applyTransform(n)
}
}
function ia(t) {
var e = t.shape,
i = t.style.lineWidth;
return Fy(2 * e.x1) === Fy(2 * e.x2) && (e.x1 = e.x2 = ra(e.x1, i, !0)), Fy(2 * e.y1) === Fy(2 * e.y2) && (e.y1 = e.y2 =
ra(e.y1, i, !0)), t
}
function na(t) {
var e = t.shape,
i = t.style.lineWidth,
n = e.x,
r = e.y,
a = e.width,
o = e.height;
return e.x = ra(e.x, i, !0), e.y = ra(e.y, i, !0), e.width = Math.max(ra(n + a, i, !1) - e.x, 0 === a ? 0 : 1), e.height =
Math.max(ra(r + o, i, !1) - e.y, 0 === o ? 0 : 1), t
}
function ra(t, e, i) {
var n = Fy(2 * t);
return (n + Fy(e)) % 2 === 0 ? n / 2 : (n + (i ? 1 : -1)) / 2
}
function aa(t) {
return null != t && "none" !== t
}
function oa(t) {
if ("string" != typeof t) return t;
var e = Zy.get(t);
return e || (e = Ye(t, -.1), 1e4 > Xy && (Zy.set(t, e), Xy++)), e
}
function sa(t) {
if (t.__hoverStlDirty) {
t.__hoverStlDirty = !1;
var e = t.__hoverStl;
if (!e) return void(t.__normalStl = null);
var i = t.__normalStl = {},
n = t.style;
for (var r in e) null != e[r] && (i[r] = n[r]);
i.fill = n.fill, i.stroke = n.stroke
}
}
function la(t) {
var e = t.__hoverStl;
if (e && !t.__highlighted) {
var i = t.useHoverLayer;
t.__highlighted = i ? "layer" : "plain";
var n = t.__zr;
if (n || !i) {
var r = t,
a = t.style;
i && (r = n.addHover(t), a = r.style), Da(a), i || sa(r), a.extendFrom(e), ha(a, e, "fill"), ha(a, e, "stroke"),
Aa(a), i || (t.dirty(!1), t.z2 += 1)
}
}
}
function ha(t, e, i) {
!aa(e[i]) && aa(t[i]) && (t[i] = oa(t[i]))
}
function ua(t) {
t.__highlighted && (ca(t), t.__highlighted = !1)
}
function ca(t) {
var e = t.__highlighted;
if ("layer" === e) t.__zr && t.__zr.removeHover(t);
else if (e) {
var i = t.style,
n = t.__normalStl;
n && (Da(i), t.setStyle(n), Aa(i), t.z2 -= 1)
}
}
function da(t, e) {
t.isGroup ? t.traverse(function(t) {
!t.isGroup && e(t)
}) : e(t)
}
function fa(t, e) {
e = t.__hoverStl = e !== !1 && (e || {}), t.__hoverStlDirty = !0, t.__highlighted && (ua(t), la(t))
}
function pa(t) {
return t && t.__isEmphasisEntered
}
function ga(t) {
this.__hoverSilentOnTouch && t.zrByTouch || !this.__isEmphasisEntered && da(this, la)
}
function va(t) {
this.__hoverSilentOnTouch && t.zrByTouch || !this.__isEmphasisEntered && da(this, ua)
}
function ma() {
this.__isEmphasisEntered = !0, da(this, la)
}
function ya() {
this.__isEmphasisEntered = !1, da(this, ua)
}
function xa(t, e, i) {
t.isGroup ? t.traverse(function(t) {
!t.isGroup && fa(t, t.hoverStyle || e)
}) : fa(t, t.hoverStyle || e), _a(t, i)
}
function _a(t, e) {
var i = e === !1;
if (t.__hoverSilentOnTouch = null != e && e.hoverSilentOnTouch, !i || t.__hoverStyleTrigger) {
var n = i ? "off" : "on";
t[n]("mouseover", ga)[n]("mouseout", va), t[n]("emphasis", ma)[n]("normal", ya), t.__hoverStyleTrigger = !i
}
}
function wa(t, e, i, n, r, a, o) {
r = r || Gy;
var s, l = r.labelFetcher,
h = r.labelDataIndex,
u = r.labelDimIndex,
c = i.getShallow("show"),
d = n.getShallow("show");
(c || d) && (l && (s = l.getFormattedLabel(h, "normal", null, u)), null == s && (s = w(r.defaultText) ? r.defaultText(
h, r) : r.defaultText));
var f = c ? s : null,
p = d ? D(l ? l.getFormattedLabel(h, "emphasis", null, u) : null, s) : null;
(null != f || null != p) && (ba(t, i, a, r), ba(e, n, o, r, !0)), t.text = f, e.text = p
}
function ba(t, e, i, n, r) {
return Ma(t, e, n, r), i && o(t, i), t
}
function Sa(t, e, i) {
var n, r = {
isRectText: !0
};
i === !1 ? n = !0 : r.autoColor = i, Ma(t, e, r, n)
}
function Ma(t, e, i, n) {
if (i = i || Gy, i.isRectText) {
var r = e.getShallow("position") || (n ? null : "inside");
"outside" === r && (r = "top"), t.textPosition = r, t.textOffset = e.getShallow("offset");
var a = e.getShallow("rotate");
null != a && (a *= Math.PI / 180), t.textRotation = a, t.textDistance = D(e.getShallow("distance"), n ? null : 5)
}
var o, s = e.ecModel,
l = s && s.option.textStyle,
h = Ia(e);
if (h) {
o = {};
for (var u in h)
if (h.hasOwnProperty(u)) {
var c = e.getModel(["rich", u]);
Ta(o[u] = {}, c, l, i, n)
}
}
return t.rich = o, Ta(t, e, l, i, n, !0), i.forceRich && !i.textStyle && (i.textStyle = {}), t
}
function Ia(t) {
for (var e; t && t !== t.ecModel;) {
var i = (t.option || Gy).rich;
if (i) {
e = e || {};
for (var n in i) i.hasOwnProperty(n) && (e[n] = 1)
}
t = t.parentModel
}
return e
}
function Ta(t, e, i, n, r, a) {
i = !r && i || Gy, t.textFill = Ca(e.getShallow("color"), n) || i.color, t.textStroke = Ca(e.getShallow(
"textBorderColor"), n) || i.textBorderColor, t.textStrokeWidth = D(e.getShallow("textBorderWidth"), i.textBorderWidth),
t.insideRawTextPosition = t.textPosition, r || (a && (t.insideRollbackOpt = n, Aa(t)), null == t.textFill && (t.textFill =
n.autoColor)), t.fontStyle = e.getShallow("fontStyle") || i.fontStyle, t.fontWeight = e.getShallow("fontWeight") ||
i.fontWeight, t.fontSize = e.getShallow("fontSize") || i.fontSize, t.fontFamily = e.getShallow("fontFamily") || i.fontFamily,
t.textAlign = e.getShallow("align"), t.textVerticalAlign = e.getShallow("verticalAlign") || e.getShallow("baseline"),
t.textLineHeight = e.getShallow("lineHeight"), t.textWidth = e.getShallow("width"), t.textHeight = e.getShallow(
"height"), t.textTag = e.getShallow("tag"), a && n.disableBox || (t.textBackgroundColor = Ca(e.getShallow(
"backgroundColor"), n), t.textPadding = e.getShallow("padding"), t.textBorderColor = Ca(e.getShallow(
"borderColor"), n), t.textBorderWidth = e.getShallow("borderWidth"), t.textBorderRadius = e.getShallow(
"borderRadius"), t.textBoxShadowColor = e.getShallow("shadowColor"), t.textBoxShadowBlur = e.getShallow(
"shadowBlur"), t.textBoxShadowOffsetX = e.getShallow("shadowOffsetX"), t.textBoxShadowOffsetY = e.getShallow(
"shadowOffsetY")), t.textShadowColor = e.getShallow("textShadowColor") || i.textShadowColor, t.textShadowBlur = e.getShallow(
"textShadowBlur") || i.textShadowBlur, t.textShadowOffsetX = e.getShallow("textShadowOffsetX") || i.textShadowOffsetX,
t.textShadowOffsetY = e.getShallow("textShadowOffsetY") || i.textShadowOffsetY
}
function Ca(t, e) {
return "auto" !== t ? t : e && e.autoColor ? e.autoColor : null
}
function Aa(t) {
var e = t.insideRollbackOpt;
if (e && null == t.textFill) {
var i, n = e.useInsideStyle,
r = t.insideRawTextPosition,
a = e.autoColor;
n !== !1 && (n === !0 || e.isRectText && r && "string" == typeof r && r.indexOf("inside") >= 0) ? (i = {
textFill: null,
textStroke: t.textStroke,
textStrokeWidth: t.textStrokeWidth
}, t.textFill = "#fff", null == t.textStroke && (t.textStroke = a, null == t.textStrokeWidth && (t.textStrokeWidth =
2))) : null != a && (i = {
textFill: null
}, t.textFill = a), i && (t.insideRollback = i)
}
}
function Da(t) {
var e = t.insideRollback;
e && (t.textFill = e.textFill, t.textStroke = e.textStroke, t.textStrokeWidth = e.textStrokeWidth, t.insideRollback =
null)
}
function ka(t, e) {
var i = e || e.getModel("textStyle");
return z([t.fontStyle || i && i.getShallow("fontStyle") || "", t.fontWeight || i && i.getShallow("fontWeight") || "",
(t.fontSize || i && i.getShallow("fontSize") || 12) + "px", t.fontFamily || i && i.getShallow("fontFamily") ||
"sans-serif"
].join(" "))
}
function Pa(t, e, i, n, r, a) {
"function" == typeof r && (a = r, r = null);
var o = n && n.isAnimationEnabled();
if (o) {
var s = t ? "Update" : "",
l = n.getShallow("animationDuration" + s),
h = n.getShallow("animationEasing" + s),
u = n.getShallow("animationDelay" + s);
"function" == typeof u && (u = u(r, n.getAnimationDelayParams ? n.getAnimationDelayParams(e, r) : null)),
"function" == typeof l && (l = l(r)), l > 0 ? e.animateTo(i, l, u || 0, h, a, !!a) : (e.stopAnimation(), e.attr(i),
a && a())
} else e.stopAnimation(), e.attr(i), a && a()
}
function La(t, e, i, n, r) {
Pa(!0, t, e, i, n, r)
}
function Oa(t, e, i, n, r) {
Pa(!1, t, e, i, n, r)
}
function za(t, e) {
for (var i = Se([]); t && t !== e;) Ie(i, t.getLocalTransform(), i), t = t.parent;
return i
}
function Ea(t, e, i) {
return e && !d(e) && (e = Og.getLocalTransform(e)), i && (e = De([], e)), ae([], t, e)
}
function Ra(t, e, i) {
var n = 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]),
a = ["left" === t ? -n : "right" === t ? n : 0, "top" === t ? -r : "bottom" === t ? r : 0];
return a = Ea(a, e, i), Math.abs(a[0]) > Math.abs(a[1]) ? a[0] > 0 ? "right" : "left" : a[1] > 0 ? "bottom" : "top"
}
function Ba(t, e, i) {
function n(t) {
var e = {};
return t.traverse(function(t) {
!t.isGroup && t.anid && (e[t.anid] = t)
}), e
}
function r(t) {
var e = {
position: H(t.position),
rotation: t.rotation
};
return t.shape && (e.shape = o({}, t.shape)), e
}
if (t && e) {
var a = n(t);
e.traverse(function(t) {
if (!t.isGroup && t.anid) {
var e = a[t.anid];
if (e) {
var n = r(t);
t.attr(r(e)), La(t, n, i, t.dataIndex)
}
}
})
}
}
function Na(t, e) {
return p(t, function(t) {
var i = t[0];
i = Vy(i, e.x), i = Wy(i, e.x + e.width);
var n = t[1];
return n = Vy(n, e.y), n = Wy(n, e.y + e.height), [i, n]
})
}
function Fa(t, e) {
var i = Vy(t.x, e.x),
n = Wy(t.x + t.width, e.x + e.width),
r = Vy(t.y, e.y),
a = Wy(t.y + t.height, e.y + e.height);
return n >= i && a >= r ? {
x: i,
y: r,
width: n - i,
height: a - r
} : void 0
}
function Va(t, e, i) {
e = o({
rectHover: !0
}, e);
var n = e.style = {
strokeNoScale: !0
};
return i = i || {
x: -1,
y: -1,
width: 2,
height: 2
}, t ? 0 === t.indexOf("image://") ? (n.image = t.slice(8), s(n, i), new yn(e)) : Qr(t.replace("path://", ""), e, i,
"center") : void 0
}
function Wa(t, e, i) {
this.parentModel = e, this.ecModel = i, this.option = t
}
function Ga(t, e, i) {
for (var n = 0; n < e.length && (!e[n] || (t = t && "object" == typeof t ? t[e[n]] : null, null != t)); n++);
return null == t && i && (t = i.get(e)), t
}
function Ha(t, e) {
var i = Qy(t).getParent;
return i ? i.call(t, e) : t.parentModel
}
function Za(t) {
return [t || "", Jy++, Math.random().toFixed(5)].join("_")
}
function Xa(t) {
var e = {};
return t.registerSubTypeDefaulter = function(t, i) {
t = Jn(t), e[t.main] = i
}, t.determineSubType = function(i, n) {
var r = n.type;
if (!r) {
var a = Jn(i).main;
t.hasSubTypes(i) && e[a] && (r = e[a](n))
}
return r
}, t
}
function Ya(t, e) {
function i(t) {
var i = {},
a = [];
return f(t, function(o) {
var s = n(i, o),
l = s.originalDeps = e(o),
u = r(l, t);
s.entryCount = u.length, 0 === s.entryCount && a.push(o), f(u, function(t) {
h(s.predecessor, t) < 0 && s.predecessor.push(t);
var e = n(i, t);
h(e.successor, t) < 0 && e.successor.push(o)
})
}), {
graph: i,
noEntryList: a
}
}
function n(t, e) {
return t[e] || (t[e] = {
predecessor: [],
successor: []
}), t[e]
}
function r(t, e) {
var i = [];
return f(t, function(t) {
h(e, t) >= 0 && i.push(t)
}), i
}
t.topologicalTravel = function(t, e, n, r) {
function a(t) {
l[t].entryCount--, 0 === l[t].entryCount && h.push(t)
}
function o(t) {
u[t] = !0, a(t)
}
if (t.length) {
var s = i(e),
l = s.graph,
h = s.noEntryList,
u = {};
for (f(t, function(t) {
u[t] = !0
}); h.length;) {
var c = h.pop(),
d = l[c],
p = !!u[c];
p && (n.call(r, c, d.originalDeps.slice()), delete u[c]), f(d.successor, p ? o : a)
}
f(u, function() {
throw new Error("Circle dependency may exists")
})
}
}
}
function ja(t) {
return t.replace(/^\s+/, "").replace(/\s+$/, "")
}
function qa(t, e, i, n) {
var r = e[1] - e[0],
a = i[1] - i[0];
if (0 === r) return 0 === a ? i[0] : (i[0] + i[1]) / 2;
if (n)
if (r > 0) {
if (t <= e[0]) return i[0];
if (t >= e[1]) return i[1]
} else {
if (t >= e[0]) return i[0];
if (t <= e[1]) return i[1]
}
else {
if (t === e[0]) return i[0];
if (t === e[1]) return i[1]
}
return (t - e[0]) / r * a + i[0]
}
function Ua(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 ? ja(t).match(/%$/) ? parseFloat(t) / 100 * e : parseFloat(t) : null == t ? 0 / 0 : +t
}
function $a(t, e, i) {
return null == e && (e = 10), e = Math.min(Math.max(0, e), 20), t = (+t).toFixed(e), i ? t : +t
}
function Ka(t) {
return t.sort(function(t, e) {
return t - e
}), t
}
function Qa(t) {
if (t = +t, isNaN(t)) return 0;
for (var e = 1, i = 0; Math.round(t * e) / e !== t;) e *= 10, i++;
return i
}
function Ja(t) {
var e = t.toString(),
i = e.indexOf("e");
if (i > 0) {
var n = +e.slice(i + 1);
return 0 > n ? -n : 0
}
var r = e.indexOf(".");
return 0 > r ? 0 : e.length - 1 - r
}
function to(t, e) {
var i = Math.log,
n = Math.LN10,
r = Math.floor(i(t[1] - t[0]) / n),
a = Math.round(i(Math.abs(e[1] - e[0])) / n),
o = Math.min(Math.max(-r + a, 0), 20);
return isFinite(o) ? o : 20
}
function eo(t, e, i) {
if (!t[e]) return 0;
var n = g(t, function(t, e) {
return t + (isNaN(e) ? 0 : e)
}, 0);
if (0 === n) return 0;
for (var r = Math.pow(10, i), a = p(t, function(t) {
return (isNaN(t) ? 0 : t) / n * r * 100
}), o = 100 * r, s = p(a, function(t) {
return Math.floor(t)
}), l = g(s, function(t, e) {
return t + e
}, 0), h = p(a, function(t, e) {
return t - s[e]
}); o > l;) {
for (var u = Number.NEGATIVE_INFINITY, c = null, d = 0, f = h.length; f > d; ++d) h[d] > u && (u = h[d], c = d);
++s[c], h[c] = 0, ++l
}
return s[e] / r
}
function io(t) {
var e = 2 * Math.PI;
return (t % e + e) % e
}
function no(t) {
return t > -tx && tx > t
}
function ro(t) {
if (t instanceof Date) return t;
if ("string" == typeof t) {
var e = ix.exec(t);
if (!e) return new Date(0 / 0);
if (e[8]) {
var i = +e[4] || 0;
return "Z" !== e[8].toUpperCase() && (i -= e[8].slice(0, 3)), new Date(Date.UTC(+e[1], +(e[2] || 1) - 1, +e[3] ||
1, i, +(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 ao(t) {
return Math.pow(10, oo(t))
}
function oo(t) {
return Math.floor(Math.log(t) / Math.LN10)
}
function so(t, e) {
var i, n = oo(t),
r = Math.pow(10, n),
a = t / r;
return i = e ? 1.5 > a ? 1 : 2.5 > a ? 2 : 4 > a ? 3 : 7 > a ? 5 : 10 : 1 > a ? 1 : 2 > a ? 2 : 3 > a ? 3 : 5 > a ?
5 : 10, t = i * r, n >= -20 ? +t.toFixed(0 > n ? -n : 0) : t
}
function lo(t, e) {
var i = (t.length - 1) * e + 1,
n = Math.floor(i),
r = +t[n - 1],
a = i - n;
return a ? r + a * (t[n] - r) : r
}
function ho(t) {
function e(t, i, n) {
return t.interval[n] < i.interval[n] || t.interval[n] === i.interval[n] && (t.close[n] - i.close[n] === (n ? -1 : 1) ||
!n && e(t, i, 1))
}
t.sort(function(t, i) {
return e(t, i, 0) ? -1 : 1
});
for (var i = -1 / 0, n = 1, r = 0; r < t.length;) {
for (var a = t[r].interval, o = t[r].close, s = 0; 2 > s; s++) a[s] <= i && (a[s] = i, o[s] = s ? 1 : 1 - n), i = a[
s], n = o[s];
a[0] === a[1] && o[0] * o[1] !== 1 ? t.splice(r, 1) : r++
}
return t
}
function uo(t) {
return t - parseFloat(t) >= 0
}
function co(t) {
return isNaN(t) ? "-" : (t = (t + "").split("."), t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (t.length >
1 ? "." + t[1] : ""))
}
function fo(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 po(t) {
return null == t ? "" : (t + "").replace(ax, function(t, e) {
return ox[e]
})
}
function go(t, e, i) {
_(e) || (e = [e]);
var n = e.length;
if (!n) return "";
for (var r = e[0].$vars || [], a = 0; a < r.length; a++) {
var o = sx[a];
t = t.replace(lx(o), lx(o, 0))
}
for (var s = 0; n > s; s++)
for (var l = 0; l < r.length; l++) {
var h = e[s][r[l]];
t = t.replace(lx(sx[l], s), i ? po(h) : h)
}
return t
}
function vo(t, e, i) {
return f(e, function(e, n) {
t = t.replace("{" + n + "}", i ? po(e) : e)
}), t
}
function mo(t, e) {
t = b(t) ? {
color: t,
extraCssText: e
} : t || {};
var i = t.color,
n = t.type,
e = t.extraCssText,
r = t.renderMode || "html",
a = t.markerId || "X";
return i ? "html" === r ? "subItem" === n ?
'' :
'' : {
renderMode: r,
content: "{marker" + a + "|} ",
style: {
color: i
}
} : ""
}
function yo(t, e) {
return t += "", "0000".substr(0, e - t.length) + t
}
function xo(t, e, i) {
("week" === t || "month" === t || "quarter" === t || "half-year" === t || "year" === t) && (t = "MM-dd\nyyyy");
var n = ro(e),
r = i ? "UTC" : "",
a = n["get" + r + "FullYear"](),
o = n["get" + r + "Month"]() + 1,
s = n["get" + r + "Date"](),
l = n["get" + r + "Hours"](),
h = n["get" + r + "Minutes"](),
u = n["get" + r + "Seconds"](),
c = n["get" + r + "Milliseconds"]();
return t = t.replace("MM", yo(o, 2)).replace("M", o).replace("yyyy", a).replace("yy", a % 100).replace("dd", yo(s, 2))
.replace("d", s).replace("hh", yo(l, 2)).replace("h", l).replace("mm", yo(h, 2)).replace("m", h).replace("ss", yo(u,
2)).replace("s", u).replace("SSS", yo(c, 3))
}
function _o(t) {
return t ? t.charAt(0).toUpperCase() + t.substr(1) : t
}
function wo(t, e, i, n, r) {
var a = 0,
o = 0;
null == n && (n = 1 / 0), null == r && (r = 1 / 0);
var s = 0;
e.eachChild(function(l, h) {
var u, c, d = l.position,
f = l.getBoundingRect(),
p = e.childAt(h + 1),
g = p && p.getBoundingRect();
if ("horizontal" === t) {
var v = f.width + (g ? -g.x + f.x : 0);
u = a + v, u > n || l.newline ? (a = 0, u = v, o += s + i, s = f.height) : s = Math.max(s, f.height)
} else {
var m = f.height + (g ? -g.y + f.y : 0);
c = o + m, c > r || l.newline ? (a += s + i, o = 0, c = m, s = f.width) : s = Math.max(s, f.width)
}
l.newline || (d[0] = a, d[1] = o, "horizontal" === t ? a = u + i : o = c + i)
})
}
function bo(t, e, i) {
i = rx(i || 0);
var n = e.width,
r = e.height,
a = Ua(t.left, n),
o = Ua(t.top, r),
s = Ua(t.right, n),
l = Ua(t.bottom, r),
h = Ua(t.width, n),
u = Ua(t.height, r),
c = i[2] + i[0],
d = i[1] + i[3],
f = t.aspect;
switch (isNaN(h) && (h = n - s - d - a), isNaN(u) && (u = r - l - c - o), null != f && (isNaN(h) && isNaN(u) && (f >
n / r ? h = .8 * n : u = .8 * r), isNaN(h) && (h = f * u), isNaN(u) && (u = h / f)), isNaN(a) && (a = n - s - h -
d), isNaN(o) && (o = r - l - u - c), t.left || t.right) {
case "center":
a = n / 2 - h / 2 - i[3];
break;
case "right":
a = n - h - d
}
switch (t.top || t.bottom) {
case "middle":
case "center":
o = r / 2 - u / 2 - i[0];
break;
case "bottom":
o = r - u - c
}
a = a || 0, o = o || 0, isNaN(h) && (h = n - d - a - (s || 0)), isNaN(u) && (u = r - c - o - (l || 0));
var p = new gi(a + i[3], o + i[0], h, u);
return p.margin = i, p
}
function So(t, e, i) {
function n(i, n) {
var o = {},
l = 0,
h = {},
u = 0,
c = 2;
if (dx(i, function(e) {
h[e] = t[e]
}), dx(i, function(t) {
r(e, t) && (o[t] = h[t] = e[t]), a(o, t) && l++, a(h, t) && u++
}), s[n]) return a(e, i[1]) ? h[i[2]] = null : a(e, i[2]) && (h[i[1]] = null), h;
if (u !== c && l) {
if (l >= c) return o;
for (var d = 0; d < i.length; d++) {
var f = i[d];
if (!r(o, f) && r(t, f)) {
o[f] = t[f];
break
}
}
return o
}
return h
}
function r(t, e) {
return t.hasOwnProperty(e)
}
function a(t, e) {
return null != t[e] && "auto" !== t[e]
}
function o(t, e, i) {
dx(t, function(t) {
e[t] = i[t]
})
}!S(i) && (i = {});
var s = i.ignoreSize;
!_(s) && (s = [s, s]);
var l = n(px[0], 0),
h = n(px[1], 1);
o(px[0], t, l), o(px[1], t, h)
}
function Mo(t) {
return Io({}, t)
}
function Io(t, e) {
return e && t && dx(fx, function(i) {
e.hasOwnProperty(i) && (t[i] = e[i])
}), t
}
function To(t) {
var e = [];
return f(yx.getClassesByMainType(t), function(t) {
e = e.concat(t.prototype.dependencies || [])
}), e = p(e, function(t) {
return Jn(t).main
}), "dataset" !== t && h(e, "dataset") <= 0 && e.unshift("dataset"), e
}
function Co(t, e) {
for (var i = t.length, n = 0; i > n; n++)
if (t[n].length > e) return t[n];
return t[i - 1]
}
function Ao(t) {
var e = t.get("coordinateSystem"),
i = {
coordSysName: e,
coordSysDims: [],
axisMap: N(),
categoryAxisMap: N()
},
n = Mx[e];
return n ? (n(t, i, i.axisMap, i.categoryAxisMap), i) : void 0
}
function Do(t) {
return "category" === t.get("type")
}
function ko(t) {
this.fromDataset = t.fromDataset, this.data = t.data || (t.sourceFormat === Ax ? {} : []), this.sourceFormat = t.sourceFormat ||
Dx, this.seriesLayoutBy = t.seriesLayoutBy || Px, this.dimensionsDefine = t.dimensionsDefine, this.encodeDefine = t
.encodeDefine && N(t.encodeDefine), this.startIndex = t.startIndex || 0, this.dimensionsDetectCount = t.dimensionsDetectCount
}
function Po(t) {
var e = t.option.source,
i = Dx;
if (I(e)) i = kx;
else if (_(e)) {
0 === e.length && (i = Tx);
for (var n = 0, r = e.length; r > n; n++) {
var a = e[n];
if (null != a) {
if (_(a)) {
i = Tx;
break
}
if (S(a)) {
i = Cx;
break
}
}
}
} else if (S(e)) {
for (var o in e)
if (e.hasOwnProperty(o) && d(e[o])) {
i = Ax;
break
}
} else if (null != e) throw new Error("Invalid data");
Ox(t).sourceFormat = i
}
function Lo(t) {
return Ox(t).source
}
function Oo(t) {
Ox(t).datasetMap = N()
}
function zo(t) {
var e = t.option,
i = e.data,
n = I(i) ? kx : Ix,
r = !1,
a = e.seriesLayoutBy,
o = e.sourceHeader,
s = e.dimensions,
l = Vo(t);
if (l) {
var h = l.option;
i = h.source, n = Ox(l).sourceFormat, r = !0, a = a || h.seriesLayoutBy, null == o && (o = h.sourceHeader), s = s ||
h.dimensions
}
var u = Eo(i, n, a, o, s),
c = e.encode;
!c && l && (c = Fo(t, l, i, n, a, u)), Ox(t).source = new ko({
data: i,
fromDataset: r,
seriesLayoutBy: a,
sourceFormat: n,
dimensionsDefine: u.dimensionsDefine,
startIndex: u.startIndex,
dimensionsDetectCount: u.dimensionsDetectCount,
encodeDefine: c
})
}
function Eo(t, e, i, n, r) {
if (!t) return {
dimensionsDefine: Ro(r)
};
var a, o, s;
if (e === Tx) "auto" === n || null == n ? Bo(function(t) {
null != t && "-" !== t && (b(t) ? null == o && (o = 1) : o = 0)
}, i, t, 10) : o = n ? 1 : 0, r || 1 !== o || (r = [], Bo(function(t, e) {
r[e] = null != t ? t : ""
}, i, t)), a = r ? r.length : i === Lx ? t.length : t[0] ? t[0].length : null;
else if (e === Cx) r || (r = No(t), s = !0);
else if (e === Ax) r || (r = [], s = !0, f(t, function(t, e) {
r.push(e)
}));
else if (e === Ix) {
var l = Vn(t[0]);
a = _(l) && l.length || 1
}
var h;
return s && f(r, function(t, e) {
"name" === (S(t) ? t.name : t) && (h = e)
}), {
startIndex: o,
dimensionsDefine: Ro(r),
dimensionsDetectCount: a,
potentialNameDimIndex: h
}
}
function Ro(t) {
if (t) {
var e = N();
return p(t, function(t) {
if (t = o({}, S(t) ? t : {
name: t
}), null == t.name) return t;
t.name += "", null == t.displayName && (t.displayName = t.name);
var i = e.get(t.name);
return i ? t.name += "-" + i.count++ : e.set(t.name, {
count: 1
}), t
})
}
}
function Bo(t, e, i, n) {
if (null == n && (n = 1 / 0), e === Lx)
for (var r = 0; r < i.length && n > r; r++) t(i[r] ? i[r][0] : null, r);
else
for (var a = i[0] || [], r = 0; r < a.length && n > r; r++) t(a[r], r)
}
function No(t) {
for (var e, i = 0; i < t.length && !(e = t[i++]););
if (e) {
var n = [];
return f(e, function(t, e) {
n.push(e)
}), n
}
}
function Fo(t, e, i, n, r, a) {
var o = Ao(t),
s = {},
l = [],
h = [],
u = t.subType,
c = N(["pie", "map", "funnel"]),
d = N(["line", "bar", "pictorialBar", "scatter", "effectScatter", "candlestick", "boxplot"]);
if (o && null != d.get(u)) {
var p = t.ecModel,
g = Ox(p).datasetMap,
v = e.uid + "_" + r,
m = g.get(v) || g.set(v, {
categoryWayDim: 1,
valueWayDim: 0
});
f(o.coordSysDims, function(t) {
if (null == o.firstCategoryDimIndex) {
var e = m.valueWayDim++;
s[t] = e, h.push(e)
} else if (o.categoryAxisMap.get(t)) s[t] = 0, l.push(0);
else {
var e = m.categoryWayDim++;
s[t] = e, h.push(e)
}
})
} else if (null != c.get(u)) {
for (var y, x = 0; 5 > x && null == y; x++) Go(i, n, r, a.dimensionsDefine, a.startIndex, x) || (y = x);
if (null != y) {
s.value = y;
var _ = a.potentialNameDimIndex || Math.max(y - 1, 0);
h.push(_), l.push(_)
}
}
return l.length && (s.itemName = l), h.length && (s.seriesName = h), s
}
function Vo(t) {
var e = t.option,
i = e.data;
return i ? void 0 : t.ecModel.getComponent("dataset", e.datasetIndex || 0)
}
function Wo(t, e) {
return Go(t.data, t.sourceFormat, t.seriesLayoutBy, t.dimensionsDefine, t.startIndex, e)
}
function Go(t, e, i, n, r, a) {
function o(t) {
return null != t && isFinite(t) && "" !== t ? !1 : b(t) && "-" !== t ? !0 : void 0
}
var s, l = 5;
if (I(t)) return !1;
var h;
if (n && (h = n[a], h = S(h) ? h.name : h), e === Tx)
if (i === Lx) {
for (var u = t[a], c = 0; c < (u || []).length && l > c; c++)
if (null != (s = o(u[r + c]))) return s
} else
for (var c = 0; c < t.length && l > c; c++) {
var d = t[r + c];
if (d && null != (s = o(d[a]))) return s
} else if (e === Cx) {
if (!h) return;
for (var c = 0; c < t.length && l > c; c++) {
var f = t[c];
if (f && null != (s = o(f[h]))) return s
}
} else if (e === Ax) {
if (!h) return;
var u = t[h];
if (!u || I(u)) return !1;
for (var c = 0; c < u.length && l > c; c++)
if (null != (s = o(u[c]))) return s
} else if (e === Ix)
for (var c = 0; c < t.length && l > c; c++) {
var f = t[c],
p = Vn(f);
if (!_(p)) return !1;
if (null != (s = o(p[a]))) return s
}
return !1
}
function Ho(t, e) {
if (e) {
var i = e.seiresIndex,
n = e.seriesId,
r = e.seriesName;
return null != i && t.componentIndex !== i || null != n && t.id !== n || null != r && t.name !== r
}
}
function Zo(t, e) {
var i = t.color && !t.colorLayer;
f(e, function(e, a) {
"colorLayer" === a && i || yx.hasClass(a) || ("object" == typeof e ? t[a] = t[a] ? r(t[a], e, !1) : n(e) : null ==
t[a] && (t[a] = e))
})
}
function Xo(t) {
t = t, this.option = {}, this.option[zx] = 1, this._componentsMap = N({
series: []
}), this._seriesIndices, this._seriesIndicesMap, Zo(t, this._theme.option), r(t, _x, !1), this.mergeOption(t)
}
function Yo(t, e) {
_(e) || (e = e ? [e] : []);
var i = {};
return f(e, function(e) {
i[e] = (t.get(e) || []).slice()
}), i
}
function jo(t, e, i) {
var n = e.type ? e.type : i ? i.subType : yx.determineSubType(t, e);
return n
}
function qo(t, e) {
t._seriesIndicesMap = N(t._seriesIndices = p(e, function(t) {
return t.componentIndex
}) || [])
}
function Uo(t, e) {
return e.hasOwnProperty("subType") ? v(t, function(t) {
return t.subType === e.subType
}) : t
}
function $o(t) {
f(Rx, function(e) {
this[e] = y(t[e], t)
}, this)
}
function Ko() {
this._coordinateSystems = []
}
function Qo(t) {
this._api = t, this._timelineOptions = [], this._mediaList = [], this._mediaDefault, this._currentMediaIndices = [],
this._optionBackup, this._newBaseOption
}
function Jo(t, e, i) {
var n, r, a = [],
o = [],
s = t.timeline;
if (t.baseOption && (r = t.baseOption), (s || t.options) && (r = r || {}, a = (t.options || []).slice()), t.media) {
r = r || {};
var l = t.media;
Nx(l, function(t) {
t && t.option && (t.query ? o.push(t) : n || (n = t))
})
}
return r || (r = t), r.timeline || (r.timeline = s), Nx([r].concat(a).concat(p(o, function(t) {
return t.option
})), function(t) {
Nx(e, function(e) {
e(t, i)
})
}), {
baseOption: r,
timelineOptions: a,
mediaDefault: n,
mediaList: o
}
}
function ts(t, e, i) {
var n = {
width: e,
height: i,
aspectratio: e / i
},
r = !0;
return f(t, function(t, e) {
var i = e.match(Gx);
if (i && i[1] && i[2]) {
var a = i[1],
o = i[2].toLowerCase();
es(n[o], t, a) || (r = !1)
}
}), r
}
function es(t, e, i) {
return "min" === i ? t >= e : "max" === i ? e >= t : t === e
}
function is(t, e) {
return t.join(",") === e.join(",")
}
function ns(t, e) {
e = e || {}, Nx(e, function(e, i) {
if (null != e) {
var n = t[i];
if (yx.hasClass(i)) {
e = Nn(e), n = Nn(n);
var r = Gn(n, e);
t[i] = Vx(r, function(t) {
return t.option && t.exist ? Wx(t.exist, t.option, !0) : t.exist || t.option
})
} else t[i] = Wx(n, e, !0)
}
})
}
function rs(t) {
var e = t && t.itemStyle;
if (e)
for (var i = 0, n = Xx.length; n > i; i++) {
var a = Xx[i],
o = e.normal,
s = e.emphasis;
o && o[a] && (t[a] = t[a] || {}, t[a].normal ? r(t[a].normal, o[a]) : t[a].normal = o[a], o[a] = null), s && s[a] &&
(t[a] = t[a] || {}, t[a].emphasis ? r(t[a].emphasis, s[a]) : t[a].emphasis = s[a], s[a] = null)
}
}
function as(t, e, i) {
if (t && t[e] && (t[e].normal || t[e].emphasis)) {
var n = t[e].normal,
r = t[e].emphasis;
n && (i ? (t[e].normal = t[e].emphasis = null, s(t[e], n)) : t[e] = n), r && (t.emphasis = t.emphasis || {}, t.emphasis[
e] = r)
}
}
function os(t) {
as(t, "itemStyle"), as(t, "lineStyle"), as(t, "areaStyle"), as(t, "label"), as(t, "labelLine"), as(t, "upperLabel"),
as(t, "edgeLabel")
}
function ss(t, e) {
var i = Zx(t) && t[e],
n = Zx(i) && i.textStyle;
if (n)
for (var r = 0, a = sm.length; a > r; r++) {
var e = sm[r];
n.hasOwnProperty(e) && (i[e] = n[e])
}
}
function ls(t) {
t && (os(t), ss(t, "label"), t.emphasis && ss(t.emphasis, "label"))
}
function hs(t) {
if (Zx(t)) {
rs(t), os(t), ss(t, "label"), ss(t, "upperLabel"), ss(t, "edgeLabel"), t.emphasis && (ss(t.emphasis, "label"), ss(t
.emphasis, "upperLabel"), ss(t.emphasis, "edgeLabel"));
var e = t.markPoint;
e && (rs(e), ls(e));
var i = t.markLine;
i && (rs(i), ls(i));
var n = t.markArea;
n && ls(n);
var r = t.data;
if ("graph" === t.type) {
r = r || t.nodes;
var a = t.links || t.edges;
if (a && !I(a))
for (var o = 0; o < a.length; o++) ls(a[o]);
f(t.categories, function(t) {
os(t)
})
}
if (r && !I(r))
for (var o = 0; o < r.length; o++) ls(r[o]);
var e = t.markPoint;
if (e && e.data)
for (var s = e.data, o = 0; o < s.length; o++) ls(s[o]);
var i = t.markLine;
if (i && i.data)
for (var l = i.data, o = 0; o < l.length; o++) _(l[o]) ? (ls(l[o][0]), ls(l[o][1])) : ls(l[o]);
"gauge" === t.type ? (ss(t, "axisLabel"), ss(t, "title"), ss(t, "detail")) : "treemap" === t.type ? (as(t.breadcrumb,
"itemStyle"), f(t.levels, function(t) {
os(t)
})) : "tree" === t.type && os(t.leaves)
}
}
function us(t) {
return _(t) ? t : t ? [t] : []
}
function cs(t) {
return (_(t) ? t[0] : t) || {}
}
function ds(t, e) {
e = e.split(",");
for (var i = t, n = 0; n < e.length && (i = i && i[e[n]], null != i); n++);
return i
}
function fs(t, e, i, n) {
e = e.split(",");
for (var r, a = t, o = 0; o < e.length - 1; o++) r = e[o], null == a[r] && (a[r] = {}), a = a[r];
(n || null == a[e[o]]) && (a[e[o]] = i)
}
function ps(t) {
f(jx, function(e) {
e[0] in t && !(e[1] in t) && (t[e[1]] = t[e[0]])
})
}
function gs(t) {
f(t, function(e, i) {
var n = [],
r = [0 / 0, 0 / 0],
a = [e.stackResultDimension, e.stackedOverDimension],
o = e.data,
s = e.isStackedByIndex,
l = o.map(a, function(a, l, h) {
var u = o.get(e.stackedDimension, h);
if (isNaN(u)) return r;
var c, d;
s ? d = o.getRawIndex(h) : c = o.get(e.stackedByDimension, h);
for (var f = 0 / 0, p = i - 1; p >= 0; p--) {
var g = t[p];
if (s || (d = g.data.rawIndexOf(g.stackedByDimension, c)), d >= 0) {
var v = g.data.getByRawIndex(g.stackResultDimension, d);
if (u >= 0 && v > 0 || 0 >= u && 0 > v) {
u += v, f = v;
break
}
}
}
return n[0] = u, n[1] = f, n
});
o.hostModel.setData(l), e.data = l
})
}
function vs(t, e) {
ko.isInstance(t) || (t = ko.seriesDataToSource(t)), this._source = t;
var i = this._data = t.data,
n = t.sourceFormat;
n === kx && (this._offset = 0, this._dimSize = e, this._data = i);
var r = Qx[n === Tx ? n + "_" + t.seriesLayoutBy : n];
o(this, r)
}
function ms() {
return this._data.length
}
function ys(t) {
return this._data[t]
}
function xs(t) {
for (var e = 0; e < t.length; e++) this._data.push(t[e])
}
function _s(t, e, i) {
return null != i ? t[i] : t
}
function ws(t, e, i, n) {
return bs(t[n], this._dimensionInfos[e])
}
function bs(t, e) {
var i = e && e.type;
if ("ordinal" === i) {
var n = e && e.ordinalMeta;
return n ? n.parseAndCollect(t) : t
}
return "time" === i && "number" != typeof t && null != t && "-" !== t && (t = +ro(t)), null == t || "" === t ? 0 / 0 :
+t
}
function Ss(t, e, i) {
if (t) {
var n = t.getRawDataItem(e);
if (null != n) {
var r, a, o = t.getProvider().getSource().sourceFormat,
s = t.getDimensionInfo(i);
return s && (r = s.name, a = s.index), Jx[o](n, e, a, r)
}
}
}
function Ms(t, e, i) {
if (t) {
var n = t.getProvider().getSource().sourceFormat;
if (n === Ix || n === Cx) {
var r = t.getRawDataItem(e);
return n !== Ix || S(r) || (r = null), r ? r[i] : void 0
}
}
}
function Is(t) {
return new Ts(t)
}
function Ts(t) {
t = t || {}, this._reset = t.reset, this._plan = t.plan, this._count = t.count, this._onDirty = t.onDirty, this._dirty = !
0, this.context
}
function Cs(t, e, i, n, r, a) {
r_.reset(i, n, r, a), t._callingProgress = e, t._callingProgress({
start: i,
end: n,
count: n - i,
next: r_.next
}, t.context)
}
function As(t, e) {
t._dueIndex = t._outputDueEnd = t._dueEnd = 0, t._settedOutputEnd = null;
var i, n;
!e && t._reset && (i = t._reset(t.context), i && i.progress && (n = i.forceFirstProgress, i = i.progress), _(i) && !
i.length && (i = null)), t._progress = i, t._modBy = t._modDataCount = null;
var r = t._downstream;
return r && r.dirty(), n
}
function Ds(t) {
var e = t.name;
Zn(t) || (t.name = ks(t) || e)
}
function ks(t) {
var e = t.getRawData(),
i = e.mapDimension("seriesName", !0),
n = [];
return f(i, function(t) {
var i = e.getDimensionInfo(t);
i.displayName && n.push(i.displayName)
}), n.join(" ")
}
function Ps(t) {
return t.model.getRawData().count()
}
function Ls(t) {
var e = t.model;
return e.setData(e.getRawData().cloneShallow()), Os
}
function Os(t, e) {
t.end > e.outputData.count() && e.model.getRawData().cloneShallow(e.outputData)
}
function zs(t, e) {
f(t.CHANGABLE_METHODS, function(i) {
t.wrapMethod(i, x(Es, e))
})
}
function Es(t) {
var e = Rs(t);
e && e.setOutputEnd(this.count())
}
function Rs(t) {
var e = (t.ecModel || {}).scheduler,
i = e && e.getPipeline(t.uid);
if (i) {
var n = i.currentTask;
if (n) {
var r = n.agentStubMap;
r && (n = r.get(t.uid))
}
return n
}
}
function Bs() {
this.group = new lv, this.uid = Za("viewChart"), this.renderTask = Is({
plan: Vs,
reset: Ws
}), this.renderTask.context = {
view: this
}
}
function Ns(t, e) {
if (t && (t.trigger(e), "group" === t.type))
for (var i = 0; i < t.childCount(); i++) Ns(t.childAt(i), e)
}
function Fs(t, e, i) {
var n = Yn(t, e);
null != n ? f(Nn(n), function(e) {
Ns(t.getItemGraphicEl(e), i)
}) : t.eachItemGraphicEl(function(t) {
Ns(t, i)
})
}
function Vs(t) {
return c_(t.model)
}
function Ws(t) {
var e = t.model,
i = t.ecModel,
n = t.api,
r = t.payload,
a = e.pipelineContext.progressiveRender,
o = t.view,
s = r && u_(r).updateMethod,
l = a ? "incrementalPrepareRender" : s && o[s] ? s : "render";
return "render" !== l && o[l](e, i, n, r), f_[l]
}
function Gs(t, e, i) {
function n() {
u = (new Date).getTime(), c = null, t.apply(o, s || [])
}
var r, a, o, s, l, h = 0,
u = 0,
c = null;
e = e || 0;
var d = function() {
r = (new Date).getTime(), o = this, s = arguments;
var t = l || e,
d = l || i;
l = null, a = r - (d ? h : u) - t, clearTimeout(c), d ? c = setTimeout(n, t) : a >= 0 ? n() : c = setTimeout(n, -a),
h = r
};
return d.clear = function() {
c && (clearTimeout(c), c = null)
}, d.debounceNextCall = function(t) {
l = t
}, d
}
function Hs(t, e, i, n) {
var r = t[e];
if (r) {
var a = r[p_] || r,
o = r[v_],
s = r[g_];
if (s !== i || o !== n) {
if (null == i || !n) return t[e] = a;
r = t[e] = Gs(a, i, "debounce" === n), r[p_] = a, r[v_] = n, r[g_] = i
}
return r
}
}
function Zs(t, e) {
var i = t[e];
i && i[p_] && (t[e] = i[p_])
}
function Xs(t, e, i, n) {
this.ecInstance = t, this.api = e, this.unfinished;
var i = this._dataProcessorHandlers = i.slice(),
n = this._visualHandlers = n.slice();
this._allHandlers = i.concat(n), this._stageTaskMap = N()
}
function Ys(t, e, i, n, r) {
function a(t, e) {
return t.setDirty && (!t.dirtyMap || t.dirtyMap.get(e.__pipeline.id))
}
r = r || {};
var o;
f(e, function(e) {
if (!r.visualType || r.visualType === e.visualType) {
var s = t._stageTaskMap.get(e.uid),
l = s.seriesTaskMap,
h = s.overallTask;
if (h) {
var u, c = h.agentStubMap;
c.each(function(t) {
a(r, t) && (t.dirty(), u = !0)
}), u && h.dirty(), S_(h, n);
var d = t.getPerformArgs(h, r.block);
c.each(function(t) {
t.perform(d)
}), o |= h.perform(d)
} else l && l.each(function(s) {
a(r, s) && s.dirty();
var l = t.getPerformArgs(s, r.block);
l.skip = !e.performRawSeries && i.isSeriesFiltered(s.context.model), S_(s, n), o |= s.perform(l)
})
}
}), t.unfinished |= o
}
function js(t, e, i, n, r) {
function a(i) {
var a = i.uid,
s = o.get(a) || o.set(a, Is({
plan: Js,
reset: tl,
count: il
}));
s.context = {
model: i,
ecModel: n,
api: r,
useClearVisual: e.isVisual && !e.isLayout,
plan: e.plan,
reset: e.reset,
scheduler: t
}, nl(t, i, s)
}
var o = i.seriesTaskMap || (i.seriesTaskMap = N()),
s = e.seriesType,
l = e.getTargetSeries;
e.createOnAllSeries ? n.eachRawSeries(a) : s ? n.eachRawSeriesByType(s, a) : l && l(n, r).each(a);
var h = t._pipelineMap;
o.each(function(t, e) {
h.get(e) || (t.dispose(), o.removeKey(e))
})
}
function qs(t, e, i, n, r) {
function a(e) {
var i = e.uid,
n = s.get(i);
n || (n = s.set(i, Is({
reset: $s,
onDirty: Qs
})), o.dirty()), n.context = {
model: e,
overallProgress: u,
modifyOutputEnd: c
}, n.agent = o, n.__block = u, nl(t, e, n)
}
var o = i.overallTask = i.overallTask || Is({
reset: Us
});
o.context = {
ecModel: n,
api: r,
overallReset: e.overallReset,
scheduler: t
};
var s = o.agentStubMap = o.agentStubMap || N(),
l = e.seriesType,
h = e.getTargetSeries,
u = !0,
c = e.modifyOutputEnd;
l ? n.eachRawSeriesByType(l, a) : h ? h(n, r).each(a) : (u = !1, f(n.getSeries(), a));
var d = t._pipelineMap;
s.each(function(t, e) {
d.get(e) || (t.dispose(), o.dirty(), s.removeKey(e))
})
}
function Us(t) {
t.overallReset(t.ecModel, t.api, t.payload)
}
function $s(t) {
return t.overallProgress && Ks
}
function Ks() {
this.agent.dirty(), this.getDownstream().dirty()
}
function Qs() {
this.agent && this.agent.dirty()
}
function Js(t) {
return t.plan && t.plan(t.model, t.ecModel, t.api, t.payload)
}
function tl(t) {
t.useClearVisual && t.data.clearAllVisual();
var e = t.resetDefines = Nn(t.reset(t.model, t.ecModel, t.api, t.payload));
return e.length > 1 ? p(e, function(t, e) {
return el(e)
}) : M_
}
function el(t) {
return function(e, i) {
var n = i.data,
r = i.resetDefines[t];
if (r && r.dataEach)
for (var a = e.start; a < e.end; a++) r.dataEach(n, a);
else r && r.progress && r.progress(e, n)
}
}
function il(t) {
return t.data.count()
}
function nl(t, e, i) {
var n = e.uid,
r = t._pipelineMap.get(n);
!r.head && (r.head = i), r.tail && r.tail.pipe(i), r.tail = i, i.__idxInPipeline = r.count++, i.__pipeline = r
}
function rl(t) {
I_ = null;
try {
t(T_, C_)
} catch (e) {}
return I_
}
function al(t, e) {
for (var i in e.prototype) t[i] = V
}
function ol(t) {
if (b(t)) {
var e = new DOMParser;
t = e.parseFromString(t, "text/xml")
}
for (9 === t.nodeType && (t = t.firstChild);
"svg" !== t.nodeName.toLowerCase() || 1 !== t.nodeType;) t = t.nextSibling;
return t
}
function sl() {
this._defs = {}, this._root = null, this._isDefine = !1, this._isText = !1
}
function ll(t, e) {
for (var i = t.firstChild; i;) {
if (1 === i.nodeType) {
var n = i.getAttribute("offset");
n = n.indexOf("%") > 0 ? parseInt(n, 10) / 100 : n ? parseFloat(n) : 0;
var r = i.getAttribute("stop-color") || "#000000";
e.addColorStop(n, r)
}
i = i.nextSibling
}
}
function hl(t, e) {
t && t.__inheritedStyle && (e.__inheritedStyle || (e.__inheritedStyle = {}), s(e.__inheritedStyle, t.__inheritedStyle))
}
function ul(t) {
for (var e = z(t).split(E_), i = [], n = 0; n < e.length; n += 2) {
var r = parseFloat(e[n]),
a = parseFloat(e[n + 1]);
i.push([r, a])
}
return i
}
function cl(t, e, i, n) {
var r = e.__inheritedStyle || {},
a = "text" === e.type;
if (1 === t.nodeType && (fl(t, e), o(r, pl(t)), !n))
for (var s in N_)
if (N_.hasOwnProperty(s)) {
var l = t.getAttribute(s);
null != l && (r[N_[s]] = l)
} var h = a ? "textFill" : "fill",
u = a ? "textStroke" : "stroke";
e.style = e.style || new gv;
var c = e.style;
null != r.fill && c.set(h, dl(r.fill, i)), null != r.stroke && c.set(u, dl(r.stroke, i)), f(["lineWidth", "opacity",
"fillOpacity", "strokeOpacity", "miterLimit", "fontSize"
], function(t) {
var e = "lineWidth" === t && a ? "textStrokeWidth" : t;
null != r[t] && c.set(e, parseFloat(r[t]))
}), r.textBaseline && "auto" !== r.textBaseline || (r.textBaseline = "alphabetic"), "alphabetic" === r.textBaseline &&
(r.textBaseline = "bottom"), "start" === r.textAlign && (r.textAlign = "left"), "end" === r.textAlign && (r.textAlign =
"right"), f(["lineDashOffset", "lineCap", "lineJoin", "fontWeight", "fontFamily", "fontStyle", "textAlign",
"textBaseline"
], function(t) {
null != r[t] && c.set(t, r[t])
}), r.lineDash && (e.style.lineDash = z(r.lineDash).split(E_)), c[u] && "none" !== c[u] && (e[u] = !0), e.__inheritedStyle =
r
}
function dl(t, e) {
var i = e && t && t.match(F_);
if (i) {
var n = z(i[1]),
r = e[n];
return r
}
return t
}
function fl(t, e) {
var i = t.getAttribute("transform");
if (i) {
i = i.replace(/,/g, " ");
var n = null,
r = [];
i.replace(V_, function(t, e, i) {
r.push(e, i)
});
for (var a = r.length - 1; a > 0; a -= 2) {
var o = r[a],
s = r[a - 1];
switch (n = n || be(), s) {
case "translate":
o = z(o).split(E_), Te(n, n, [parseFloat(o[0]), parseFloat(o[1] || 0)]);
break;
case "scale":
o = z(o).split(E_), Ae(n, n, [parseFloat(o[0]), parseFloat(o[1] || o[0])]);
break;
case "rotate":
o = z(o).split(E_), Ce(n, n, parseFloat(o[0]));
break;
case "skew":
o = z(o).split(E_), console.warn("Skew transform is not supported yet");
break;
case "matrix":
var o = z(o).split(E_);
n[0] = parseFloat(o[0]), n[1] = parseFloat(o[1]), n[2] = parseFloat(o[2]), n[3] = parseFloat(o[3]), n[4] =
parseFloat(o[4]), n[5] = parseFloat(o[5])
}
}
}
e.setLocalTransform(n)
}
function pl(t) {
var e = t.getAttribute("style"),
i = {};
if (!e) return i;
var n = {};
W_.lastIndex = 0;
for (var r; null != (r = W_.exec(e));) n[r[1]] = r[2];
for (var a in N_) N_.hasOwnProperty(a) && null != n[a] && (i[N_[a]] = n[a]);
return i
}
function gl(t, e, i) {
var n = e / t.width,
r = i / t.height,
a = Math.min(n, r),
o = [a, a],
s = [-(t.x + t.width / 2) * a + e / 2, -(t.y + t.height / 2) * a + i / 2];
return {
scale: o,
position: s
}
}
function vl(t) {
return function(e, i, n) {
e = e && e.toLowerCase(), bg.prototype[t].call(this, e, i, n)
}
}
function ml() {
bg.call(this)
}
function yl(t, e, i) {
function r(t, e) {
return t.__prio - e.__prio
}
i = i || {}, "string" == typeof e && (e = xw[e]), this.id, this.group, this._dom = t;
var a = "canvas",
o = this._zr = On(t, {
renderer: i.renderer || a,
devicePixelRatio: i.devicePixelRatio,
width: i.width,
height: i.height
});
this._throttledZrFlush = Gs(y(o.flush, o), 17);
var e = n(e);
e && Ux(e, !0), this._theme = e, this._chartsViews = [], this._chartsMap = {}, this._componentsViews = [], this._componentsMap = {},
this._coordSysMgr = new Ko;
var s = this._api = Rl(this);
Si(yw, r), Si(gw, r), this._scheduler = new Xs(this, s, gw, yw), bg.call(this, this._ecEventProcessor = new Bl),
this._messageCenter = new ml, this._initEvents(), this.resize = y(this.resize, this), this._pendingActions = [], o.animation
.on("frame", this._onframe, this), Tl(o, this), E(this)
}
function xl(t, e, i) {
var n, r = this._model,
a = this._coordSysMgr.getCoordinateSystems();
e = qn(r, e);
for (var o = 0; o < a.length; o++) {
var s = a[o];
if (s[t] && null != (n = s[t](r, e, i))) return n
}
}
function _l(t) {
var e = t._model,
i = t._scheduler;
i.restorePipelines(e), i.prepareStageTasks(), Cl(t, "component", e, i), Cl(t, "chart", e, i), i.plan()
}
function wl(t, e, i, n, r) {
function a(n) {
n && n.__alive && n[e] && n[e](n.__model, o, t._api, i)
}
var o = t._model;
if (!n) return void Y_(t._componentsViews.concat(t._chartsViews), a);
var s = {};
s[n + "Id"] = i[n + "Id"], s[n + "Index"] = i[n + "Index"], s[n + "Name"] = i[n + "Name"];
var l = {
mainType: n,
query: s
};
r && (l.subType = r);
var h = i.excludeSeriesId;
null != h && (h = N(Nn(h))), o && o.eachComponent(l, function(e) {
h && null != h.get(e.id) || a(t["series" === n ? "_chartsMap" : "_componentsMap"][e.__viewId])
}, t)
}
function bl(t, e) {
var i = t._chartsMap,
n = t._scheduler;
e.eachSeries(function(t) {
n.updateStreamModes(t, i[t.__viewId])
})
}
function Sl(t, e) {
var i = t.type,
n = t.escapeConnect,
r = fw[i],
a = r.actionInfo,
l = (a.update || "update").split(":"),
h = l.pop();
l = null != l[0] && U_(l[0]), this[sw] = !0;
var u = [t],
c = !1;
t.batch && (c = !0, u = p(t.batch, function(e) {
return e = s(o({}, e), t), e.batch = null, e
}));
var d, f = [],
g = "highlight" === i || "downplay" === i;
Y_(u, function(t) {
d = r.action(t, this._model, this._api), d = d || o({}, t), d.type = a.event || d.type, f.push(d), g ? wl(this, h,
t, "series") : l && wl(this, h, t, l.main, l.sub)
}, this), "none" === h || g || l || (this[lw] ? (_l(this), cw.update.call(this, t), this[lw] = !1) : cw[h].call(
this, t)), d = c ? {
type: a.event || i,
escapeConnect: n,
batch: f
} : f[0], this[sw] = !1, !e && this._messageCenter.trigger(d.type, d)
}
function Ml(t) {
for (var e = this._pendingActions; e.length;) {
var i = e.shift();
Sl.call(this, i, t)
}
}
function Il(t) {
!t && this.trigger("updated")
}
function Tl(t, e) {
t.on("rendered", function() {
e.trigger("rendered"), !t.animation.isFinished() || e[lw] || e._scheduler.unfinished || e._pendingActions.length ||
e.trigger("finished")
})
}
function Cl(t, e, i, n) {
function r(t) {
var e = "_ec_" + t.id + "_" + t.type,
r = s[e];
if (!r) {
var u = U_(t.type),
c = a ? s_.getClass(u.main, u.sub) : Bs.getClass(u.sub);
r = new c, r.init(i, h), s[e] = r, o.push(r), l.add(r.group)
}
t.__viewId = r.__id = e, r.__alive = !0, r.__model = t, r.group.__ecComponentInfo = {
mainType: t.mainType,
index: t.componentIndex
}, !a && n.prepareView(r, t, i, h)
}
for (var a = "component" === e, o = a ? t._componentsViews : t._chartsViews, s = a ? t._componentsMap : t._chartsMap,
l = t._zr, h = t._api, u = 0; u < o.length; u++) o[u].__alive = !1;
a ? i.eachComponent(function(t, e) {
"series" !== t && r(e)
}) : i.eachSeries(r);
for (var u = 0; u < o.length;) {
var c = o[u];
c.__alive ? u++ : (!a && c.renderTask.dispose(), l.remove(c.group), c.dispose(i, h), o.splice(u, 1), delete s[c.__id],
c.__id = c.group.__ecComponentInfo = null)
}
}
function Al(t) {
t.clearColorPalette(), t.eachSeries(function(t) {
t.clearColorPalette()
})
}
function Dl(t, e, i, n) {
kl(t, e, i, n), Y_(t._chartsViews, function(t) {
t.__alive = !1
}), Pl(t, e, i, n), Y_(t._chartsViews, function(t) {
t.__alive || t.remove(e, i)
})
}
function kl(t, e, i, n, r) {
Y_(r || t._componentsViews, function(t) {
var r = t.__model;
t.render(r, e, i, n), El(r, t)
})
}
function Pl(t, e, i, n, r) {
var a, o = t._scheduler;
e.eachSeries(function(e) {
var i = t._chartsMap[e.__viewId];
i.__alive = !0;
var s = i.renderTask;
o.updatePayload(s, n), r && r.get(e.uid) && s.dirty(), a |= s.perform(o.getPerformArgs(s)), i.group.silent = !!e.get(
"silent"), El(e, i), zl(e, i)
}), o.unfinished |= a, Ol(t._zr, e), x_(t._zr.dom, e)
}
function Ll(t, e) {
Y_(mw, function(i) {
i(t, e)
})
}
function Ol(t, e) {
var i = t.storage,
n = 0;
i.traverse(function(t) {
t.isGroup || n++
}), n > e.get("hoverLayerThreshold") && !tg.node && i.traverse(function(t) {
t.isGroup || (t.useHoverLayer = !0)
})
}
function zl(t, e) {
var i = t.get("blendMode") || null;
e.group.traverse(function(t) {
t.isGroup || t.style.blend !== i && t.setStyle("blend", i), t.eachPendingDisplayable && t.eachPendingDisplayable(
function(t) {
t.setStyle("blend", i)
})
})
}
function El(t, e) {
var i = t.get("z"),
n = t.get("zlevel");
e.group.traverse(function(t) {
"group" !== t.type && (null != i && (t.z = i), null != n && (t.zlevel = n))
})
}
function Rl(t) {
var e = t._coordSysMgr;
return o(new $o(t), {
getCoordinateSystems: y(e.getCoordinateSystems, e),
getComponentByElement: function(e) {
for (; e;) {
var i = e.__ecComponentInfo;
if (null != i) return t._model.getComponent(i.mainType, i.index);
e = e.parent
}
}
})
}
function Bl() {
this.eventInfo
}
function Nl(t) {
function e(t, e) {
for (var i = 0; i < t.length; i++) {
var n = t[i];
n[a] = e
}
}
var i = 0,
n = 1,
r = 2,
a = "__connectUpdateStatus";
Y_(pw, function(o, s) {
t._messageCenter.on(s, function(o) {
if (bw[t.group] && t[a] !== i) {
if (o && o.escapeConnect) return;
var s = t.makeActionFromEvent(o),
l = [];
Y_(ww, function(e) {
e !== t && e.group === t.group && l.push(e)
}), e(l, i), Y_(l, function(t) {
t[a] !== n && t.dispatchAction(s)
}), e(l, r)
}
})
})
}
function Fl(t, e, i) {
var n = Hl(t);
if (n) return n;
var r = new yl(t, e, i);
return r.id = "ec_" + Sw++, ww[r.id] = r, $n(t, Iw, r.id), Nl(r), r
}
function Vl(t) {
if (_(t)) {
var e = t;
t = null, Y_(e, function(e) {
null != e.group && (t = e.group)
}), t = t || "g_" + Mw++, Y_(e, function(e) {
e.group = t
})
}
return bw[t] = !0, t
}
function Wl(t) {
bw[t] = !1
}
function Gl(t) {
"string" == typeof t ? t = ww[t] : t instanceof yl || (t = Hl(t)), t instanceof yl && !t.isDisposed() && t.dispose()
}
function Hl(t) {
return ww[Kn(t, Iw)]
}
function Zl(t) {
return ww[t]
}
function Xl(t, e) {
xw[t] = e
}
function Yl(t) {
vw.push(t)
}
function jl(t, e) {
th(gw, t, e, J_)
}
function ql(t) {
mw.push(t)
}
function Ul(t, e, i) {
"function" == typeof e && (i = e, e = "");
var n = q_(t) ? t.type : [t, t = {
event: e
}][0];
t.event = (t.event || n).toLowerCase(), e = t.event, X_(hw.test(n) && hw.test(e)), fw[n] || (fw[n] = {
action: i,
actionInfo: t
}), pw[e] = n
}
function $l(t, e) {
Ko.register(t, e)
}
function Kl(t) {
var e = Ko.get(t);
return e ? e.getDimensionsInfo ? e.getDimensionsInfo() : e.dimensions.slice() : void 0
}
function Ql(t, e) {
th(yw, t, e, ew, "layout")
}
function Jl(t, e) {
th(yw, t, e, nw, "visual")
}
function th(t, e, i, n, r) {
(j_(e) || q_(e)) && (i = e, e = n);
var a = Xs.wrapStageHandler(i, r);
return a.__prio = e, a.__raw = i, t.push(a), a
}
function eh(t, e) {
_w[t] = e
}
function ih(t) {
return yx.extend(t)
}
function nh(t) {
return s_.extend(t)
}
function rh(t) {
return o_.extend(t)
}
function ah(t) {
return Bs.extend(t)
}
function oh(t) {
i("createCanvas", t)
}
function sh(t, e, i) {
H_.registerMap(t, e, i)
}
function lh(t) {
var e = H_.retrieveMap(t);
return e && e[0] && {
geoJson: e[0].geoJSON,
specialAreas: e[0].specialAreas
}
}
function hh(t) {
return t
}
function uh(t, e, i, n, r) {
this._old = t, this._new = e, this._oldKeyGetter = i || hh, this._newKeyGetter = n || hh, this.context = r
}
function ch(t, e, i, n, r) {
for (var a = 0; a < t.length; a++) {
var o = "_ec_" + r[n](t[a], a),
s = e[o];
null == s ? (i.push(o), e[o] = a) : (s.length || (e[o] = s = [s]), s.push(a))
}
}
function dh(t) {
var e = {},
i = e.encode = {},
n = N(),
r = [],
a = [];
f(t.dimensions, function(e) {
var o = t.getDimensionInfo(e),
s = o.coordDim;
if (s) {
var l = i[s];
i.hasOwnProperty(s) || (l = i[s] = []), l[o.coordDimIndex] = e, o.isExtraCoord || (n.set(s, 1), ph(o.type) && (r[
0] = e)), o.defaultTooltip && a.push(e)
}
Aw.each(function(t, e) {
var n = i[e];
i.hasOwnProperty(e) || (n = i[e] = []);
var r = o.otherDims[e];
null != r && r !== !1 && (n[r] = o.name)
})
});
var o = [],
s = {};
n.each(function(t, e) {
var n = i[e];
s[e] = n[0], o = o.concat(n)
}), e.dataDimsOnCoord = o, e.encodeFirstDimNotExtra = s;
var l = i.label;
l && l.length && (r = l.slice());
var h = i.tooltip;
return h && h.length ? a = h.slice() : a.length || (a = r.slice()), i.defaultedLabel = r, i.defaultedTooltip = a, e
}
function fh(t) {
return "category" === t ? "ordinal" : "time" === t ? "time" : "float"
}
function ph(t) {
return !("ordinal" === t || "time" === t)
}
function gh(t) {
return t._rawCount > 65535 ? Ow : zw
}
function vh(t) {
var e = t.constructor;
return e === Array ? t.slice() : new e(t)
}
function mh(t, e) {
f(Ew.concat(e.__wrappedMethods || []), function(i) {
e.hasOwnProperty(i) && (t[i] = e[i])
}), t.__wrappedMethods = e.__wrappedMethods, f(Rw, function(i) {
t[i] = n(e[i])
}), t._calculationInfo = o(e._calculationInfo)
}
function yh(t) {
var e = t._invertedIndicesMap;
f(e, function(i, n) {
var r = t._dimensionInfos[n],
a = r.ordinalMeta;
if (a) {
i = e[n] = new Ow(a.categories.length);
for (var o = 0; o < i.length; o++) i[o] = 0 / 0;
for (var o = 0; o < t._count; o++) i[t.get(n, o)] = o
}
})
}
function xh(t, e, i) {
var n;
if (null != e) {
var r = t._chunkSize,
a = Math.floor(i / r),
o = i % r,
s = t.dimensions[e],
l = t._storage[s][a];
if (l) {
n = l[o];
var h = t._dimensionInfos[s].ordinalMeta;
h && h.categories.length && (n = h.categories[n])
}
}
return n
}
function _h(t) {
return t
}
function wh(t) {
return t < this._count && t >= 0 ? this._indices[t] : -1
}
function bh(t, e) {
var i = t._idList[e];
return null == i && (i = xh(t, t._idDimIdx, e)), null == i && (i = Pw + e), i
}
function Sh(t) {
return _(t) || (t = [t]), t
}
function Mh(t, e) {
var i = t.dimensions,
n = new Bw(p(i, t.getDimensionInfo, t), t.hostModel);
mh(n, t);
for (var r = n._storage = {}, a = t._storage, o = 0; o < i.length; o++) {
var s = i[o];
a[s] && (h(e, s) >= 0 ? (r[s] = Ih(a[s]), n._rawExtent[s] = Th(), n._extent[s] = null) : r[s] = a[s])
}
return n
}
function Ih(t) {
for (var e = new Array(t.length), i = 0; i < t.length; i++) e[i] = vh(t[i]);
return e
}
function Th() {
return [1 / 0, -1 / 0]
}
function Ch(t, e, i) {
function r(t, e, i) {
null != Aw.get(e) ? t.otherDims[e] = i : (t.coordDim = e, t.coordDimIndex = i, u.set(e, !0))
}
ko.isInstance(e) || (e = ko.seriesDataToSource(e)), i = i || {}, t = (t || []).slice();
for (var a = (i.dimsDef || []).slice(), l = N(i.encodeDef), h = N(), u = N(), c = [], d = Ah(e, t, a, i.dimCount), p =
0; d > p; p++) {
var g = a[p] = o({}, S(a[p]) ? a[p] : {
name: a[p]
}),
v = g.name,
m = c[p] = {
otherDims: {}
};
null != v && null == h.get(v) && (m.name = m.displayName = v, h.set(v, p)), null != g.type && (m.type = g.type),
null != g.displayName && (m.displayName = g.displayName)
}
l.each(function(t, e) {
if (t = Nn(t).slice(), 1 === t.length && t[0] < 0) return void l.set(e, !1);
var i = l.set(e, []);
f(t, function(t, n) {
b(t) && (t = h.get(t)), null != t && d > t && (i[n] = t, r(c[t], e, n))
})
});
var y = 0;
f(t, function(t) {
var e, t, i, a;
if (b(t)) e = t, t = {};
else {
e = t.name;
var o = t.ordinalMeta;
t.ordinalMeta = null, t = n(t), t.ordinalMeta = o, i = t.dimsDef, a = t.otherDims, t.name = t.coordDim = t.coordDimIndex =
t.dimsDef = t.otherDims = null
}
var h = l.get(e);
if (h !== !1) {
var h = Nn(h);
if (!h.length)
for (var u = 0; u < (i && i.length || 1); u++) {
for (; y < c.length && null != c[y].coordDim;) y++;
y < c.length && h.push(y++)
}
f(h, function(n, o) {
var l = c[n];
if (r(s(l, t), e, o), null == l.name && i) {
var h = i[o];
!S(h) && (h = {
name: h
}), l.name = l.displayName = h.name, l.defaultTooltip = h.defaultTooltip
}
a && s(l.otherDims, a)
})
}
});
var x = i.generateCoord,
_ = i.generateCoordCount,
w = null != _;
_ = x ? _ || 1 : 0;
for (var M = x || "value", I = 0; d > I; I++) {
var m = c[I] = c[I] || {},
T = m.coordDim;
null == T && (m.coordDim = Dh(M, u, w), m.coordDimIndex = 0, (!x || 0 >= _) && (m.isExtraCoord = !0), _--), null ==
m.name && (m.name = Dh(m.coordDim, h)), null == m.type && Wo(e, I, m.name) && (m.type = "ordinal")
}
return c
}
function Ah(t, e, i, n) {
var r = Math.max(t.dimensionsDetectCount || 1, e.length, i.length, n || 0);
return f(e, function(t) {
var e = t.dimsDef;
e && (r = Math.max(r, e.length))
}), r
}
function Dh(t, e, i) {
if (i || null != e.get(t)) {
for (var n = 0; null != e.get(t + n);) n++;
t += n
}
return e.set(t, !0), t
}
function kh(t, e, i) {
i = i || {};
var n, r, a, o, s = i.byIndex,
l = i.stackedCoordDimension,
h = !(!t || !t.get("stack"));
if (f(e, function(t, i) {
b(t) && (e[i] = t = {
name: t
}), h && !t.isExtraCoord && (s || n || !t.ordinalMeta || (n = t), r || "ordinal" === t.type || "time" === t.type ||
l && l !== t.coordDim || (r = t))
}), !r || s || n || (s = !0), r) {
a = "__\x00ecstackresult", o = "__\x00ecstackedover", n && (n.createInvertedIndices = !0);
var u = r.coordDim,
c = r.type,
d = 0;
f(e, function(t) {
t.coordDim === u && d++
}), e.push({
name: a,
coordDim: u,
coordDimIndex: d,
type: c,
isExtraCoord: !0,
isCalculationCoord: !0
}), d++, e.push({
name: o,
coordDim: o,
coordDimIndex: d,
type: c,
isExtraCoord: !0,
isCalculationCoord: !0
})
}
return {
stackedDimension: r && r.name,
stackedByDimension: n && n.name,
isStackedByIndex: s,
stackedOverDimension: o,
stackResultDimension: a
}
}
function Ph(t, e) {
return !!e && e === t.getCalculationInfo("stackedDimension")
}
function Lh(t, e) {
return Ph(t, e) ? t.getCalculationInfo("stackResultDimension") : e
}
function Oh(t, e, i) {
i = i || {}, ko.isInstance(t) || (t = ko.seriesDataToSource(t));
var n, r = e.get("coordinateSystem"),
a = Ko.get(r),
o = Ao(e);
o && (n = p(o.coordSysDims, function(t) {
var e = {
name: t
},
i = o.axisMap.get(t);
if (i) {
var n = i.get("type");
e.type = fh(n)
}
return e
})), n || (n = a && (a.getDimensionsInfo ? a.getDimensionsInfo() : a.dimensions.slice()) || ["x", "y"]);
var s, l, h = Vw(t, {
coordDimensions: n,
generateCoord: i.generateCoord
});
o && f(h, function(t, e) {
var i = t.coordDim,
n = o.categoryAxisMap.get(i);
n && (null == s && (s = e), t.ordinalMeta = n.getOrdinalMeta()), null != t.otherDims.itemName && (l = !0)
}), l || null == s || (h[s].otherDims.itemName = 0);
var u = kh(e, h),
c = new Bw(h, e);
c.setCalculationInfo(u);
var d = null != s && zh(t) ? function(t, e, i, n) {
return n === s ? i : this.defaultDimValueGetter(t, e, i, n)
} : null;
return c.hasItemOption = !1, c.initData(t, null, d), c
}
function zh(t) {
if (t.sourceFormat === Ix) {
var e = Eh(t.data || []);
return null != e && !_(Vn(e))
}
}
function Eh(t) {
for (var e = 0; e < t.length && null == t[e];) e++;
return t[e]
}
function Rh(t) {
this._setting = t || {}, this._extent = [1 / 0, -1 / 0], this._interval = 0, this.init && this.init.apply(this,
arguments)
}
function Bh(t) {
this.categories = t.categories || [], this._needCollect = t.needCollect, this._deduplication = t.deduplication, this
._map
}
function Nh(t) {
return t._map || (t._map = N(t.categories))
}
function Fh(t) {
return S(t) && null != t.value ? t.value : t + ""
}
function Vh(t, e, i, n) {
var r = {},
a = t[1] - t[0],
o = r.interval = so(a / e, !0);
null != i && i > o && (o = r.interval = i), null != n && o > n && (o = r.interval = n);
var s = r.intervalPrecision = Wh(o),
l = r.niceTickExtent = [Zw(Math.ceil(t[0] / o) * o, s), Zw(Math.floor(t[1] / o) * o, s)];
return Hh(l, t), r
}
function Wh(t) {
return Ja(t) + 2
}
function Gh(t, e, i) {
t[e] = Math.max(Math.min(t[e], i[1]), i[0])
}
function Hh(t, e) {
!isFinite(t[0]) && (t[0] = e[0]), !isFinite(t[1]) && (t[1] = e[1]), Gh(t, 0, e), Gh(t, 1, e), t[0] > t[1] && (t[0] =
t[1])
}
function Zh(t, e, i, n) {
var r = [];
if (!t) return r;
var a = 1e4;
e[0] < i[0] && r.push(e[0]);
for (var o = i[0]; o <= i[1] && (r.push(o), o = Zw(o + t, n), o !== r[r.length - 1]);)
if (r.length > a) return [];
return e[1] > (r.length ? r[r.length - 1] : i[1]) && r.push(e[1]), r
}
function Xh(t) {
return t.get("stack") || jw + t.seriesIndex
}
function Yh(t) {
return t.dim + t.index
}
function jh(t) {
var e = [],
i = t.axis,
n = "axis0";
if ("category" === i.type) {
for (var r = i.getBandWidth(), a = 0; a < t.count; a++) e.push(s({
bandWidth: r,
axisKey: n,
stackId: jw + a
}, t));
for (var o = $h(e), l = [], a = 0; a < t.count; a++) {
var h = o[n][jw + a];
h.offsetCenter = h.offset + h.width / 2, l.push(h)
}
return l
}
}
function qh(t, e) {
var i = [];
return e.eachSeriesByType(t, function(t) {
Jh(t) && !tu(t) && i.push(t)
}), i
}
function Uh(t) {
var e = [];
return f(t, function(t) {
var i = t.getData(),
n = t.coordinateSystem,
r = n.getBaseAxis(),
a = r.getExtent(),
o = "category" === r.type ? r.getBandWidth() : Math.abs(a[1] - a[0]) / i.count(),
s = Ua(t.get("barWidth"), o),
l = Ua(t.get("barMaxWidth"), o),
h = t.get("barGap"),
u = t.get("barCategoryGap");
e.push({
bandWidth: o,
barWidth: s,
barMaxWidth: l,
barGap: h,
barCategoryGap: u,
axisKey: Yh(r),
stackId: Xh(t)
})
}), $h(e)
}
function $h(t) {
var e = {};
f(t, function(t) {
var i = t.axisKey,
n = t.bandWidth,
r = e[i] || {
bandWidth: n,
remainedWidth: n,
autoWidthCount: 0,
categoryGap: "20%",
gap: "30%",
stacks: {}
},
a = r.stacks;
e[i] = r;
var o = t.stackId;
a[o] || r.autoWidthCount++, a[o] = a[o] || {
width: 0,
maxWidth: 0
};
var s = t.barWidth;
s && !a[o].width && (a[o].width = s, s = Math.min(r.remainedWidth, s), r.remainedWidth -= s);
var l = t.barMaxWidth;
l && (a[o].maxWidth = l);
var h = t.barGap;
null != h && (r.gap = h);
var u = t.barCategoryGap;
null != u && (r.categoryGap = u)
});
var i = {};
return f(e, function(t, e) {
i[e] = {};
var n = t.stacks,
r = t.bandWidth,
a = Ua(t.categoryGap, r),
o = Ua(t.gap, 1),
s = t.remainedWidth,
l = t.autoWidthCount,
h = (s - a) / (l + (l - 1) * o);
h = Math.max(h, 0), f(n, function(t) {
var e = t.maxWidth;
e && h > e && (e = Math.min(e, s), t.width && (e = Math.min(e, t.width)), s -= e, t.width = e, l--)
}), h = (s - a) / (l + (l - 1) * o), h = Math.max(h, 0);
var u, c = 0;
f(n, function(t) {
t.width || (t.width = h), u = t, c += t.width * (1 + o)
}), u && (c -= u.width * o);
var d = -c / 2;
f(n, function(t, n) {
i[e][n] = i[e][n] || {
offset: d,
width: t.width
}, d += t.width * (1 + o)
})
}), i
}
function Kh(t, e, i) {
if (t && e) {
var n = t[Yh(e)];
return null != n && null != i && (n = n[Xh(i)]), n
}
}
function Qh(t, e) {
var i = qh(t, e),
n = Uh(i),
r = {};
f(i, function(t) {
var e = t.getData(),
i = t.coordinateSystem,
a = i.getBaseAxis(),
o = Xh(t),
s = n[Yh(a)][o],
l = s.offset,
h = s.width,
u = i.getOtherAxis(a),
c = t.get("barMinHeight") || 0;
r[o] = r[o] || [], e.setLayout({
offset: l,
size: h
});
for (var d = e.mapDimension(u.dim), f = e.mapDimension(a.dim), p = Ph(e, d), g = u.isHorizontal(), v = eu(a, u, p),
m = 0, y = e.count(); y > m; m++) {
var x = e.get(d, m),
_ = e.get(f, m);
if (!isNaN(x)) {
var w = x >= 0 ? "p" : "n",
b = v;
p && (r[o][_] || (r[o][_] = {
p: v,
n: v
}), b = r[o][_][w]);
var S, M, I, T;
if (g) {
var C = i.dataToPoint([x, _]);
S = b, M = C[1] + l, I = C[0] - v, T = h, Math.abs(I) < c && (I = (0 > I ? -1 : 1) * c), p && (r[o][_][w] += I)
} else {
var C = i.dataToPoint([_, x]);
S = C[0] + l, M = b, I = h, T = C[1] - v, Math.abs(T) < c && (T = (0 >= T ? -1 : 1) * c), p && (r[o][_][w] +=
T)
}
e.setItemLayout(m, {
x: S,
y: M,
width: I,
height: T
})
}
}
}, this)
}
function Jh(t) {
return t.coordinateSystem && "cartesian2d" === t.coordinateSystem.type
}
function tu(t) {
return t.pipelineContext && t.pipelineContext.large
}
function eu(t, e) {
var i, n, r = e.getGlobalExtent();
r[0] > r[1] ? (i = r[1], n = r[0]) : (i = r[0], n = r[1]);
var a = e.toGlobalCoord(e.dataToCoord(0));
return i > a && (a = i), a > n && (a = n), a
}
function iu(t, e) {
return ub(t, hb(e))
}
function nu(t, e) {
var i, n, r, a = t.type,
o = e.getMin(),
s = e.getMax(),
l = null != o,
h = null != s,
u = t.getExtent();
"ordinal" === a ? i = e.getCategories().length : (n = e.get("boundaryGap"), _(n) || (n = [n || 0, n || 0]),
"boolean" == typeof n[0] && (n = [0, 0]), n[0] = Ua(n[0], 1), n[1] = Ua(n[1], 1), r = u[1] - u[0] || Math.abs(u[0])
), null == o && (o = "ordinal" === a ? i ? 0 : 0 / 0 : u[0] - n[0] * r), null == s && (s = "ordinal" === a ? i ? i -
1 : 0 / 0 : u[1] + n[1] * r), "dataMin" === o ? o = u[0] : "function" == typeof o && (o = o({
min: u[0],
max: u[1]
})), "dataMax" === s ? s = u[1] : "function" == typeof s && (s = s({
min: u[0],
max: u[1]
})), (null == o || !isFinite(o)) && (o = 0 / 0), (null == s || !isFinite(s)) && (s = 0 / 0), t.setBlank(C(o) || C(s) ||
"ordinal" === a && !t.getOrdinalMeta().categories.length), e.getNeedCrossZero() && (o > 0 && s > 0 && !l && (o = 0),
0 > o && 0 > s && !h && (s = 0));
var c = e.ecModel;
if (c && "time" === a) {
var d, p = qh("bar", c);
if (f(p, function(t) {
d |= t.getBaseAxis() === e.axis
}), d) {
var g = Uh(p),
v = ru(o, s, e, g);
o = v.min, s = v.max
}
}
return [o, s]
}
function ru(t, e, i, n) {
var r = i.axis.getExtent(),
a = r[1] - r[0],
o = Kh(n, i.axis);
if (void 0 === o) return {
min: t,
max: e
};
var s = 1 / 0;
f(o, function(t) {
s = Math.min(t.offset, s)
});
var l = -1 / 0;
f(o, function(t) {
l = Math.max(t.offset + t.width, l)
}), s = Math.abs(s), l = Math.abs(l);
var h = s + l,
u = e - t,
c = 1 - (s + l) / a,
d = u / c - u;
return e += d * (l / h), t -= d * (s / h), {
min: t,
max: e
}
}
function au(t, e) {
var i = nu(t, e),
n = null != e.getMin(),
r = null != e.getMax(),
a = e.get("splitNumber");
"log" === t.type && (t.base = e.get("logBase"));
var o = t.type;
t.setExtent(i[0], i[1]), t.niceExtent({
splitNumber: a,
fixMin: n,
fixMax: r,
minInterval: "interval" === o || "time" === o ? e.get("minInterval") : null,
maxInterval: "interval" === o || "time" === o ? e.get("maxInterval") : null
});
var s = e.get("interval");
null != s && t.setInterval && t.setInterval(s)
}
function ou(t, e) {
if (e = e || t.get("type")) switch (e) {
case "category":
return new Hw(t.getOrdinalMeta ? t.getOrdinalMeta() : t.getCategories(), [1 / 0, -1 / 0]);
case "value":
return new Yw;
default:
return (Rh.getClass(e) || Yw).create(t)
}
}
function su(t) {
var e = t.scale.getExtent(),
i = e[0],
n = e[1];
return !(i > 0 && n > 0 || 0 > i && 0 > n)
}
function lu(t) {
var e = t.getLabelModel().get("formatter"),
i = "category" === t.type ? t.scale.getExtent()[0] : null;
return "string" == typeof e ? e = function(e) {
return function(i) {
return i = t.scale.getLabel(i), e.replace("{value}", null != i ? i : "")
}
}(e) : "function" == typeof e ? function(n, r) {
return null != i && (r = n - i), e(hu(t, n), r)
} : function(e) {
return t.scale.getLabel(e)
}
}
function hu(t, e) {
return "category" === t.type ? t.scale.getLabel(e) : e
}
function uu(t) {
var e = t.model,
i = t.scale;
if (e.get("axisLabel.show") && !i.isBlank()) {
var n, r, a = "category" === t.type,
o = i.getExtent();
a ? r = i.count() : (n = i.getTicks(), r = n.length);
var s, l = t.getLabelModel(),
h = lu(t),
u = 1;
r > 40 && (u = Math.ceil(r / 40));
for (var c = 0; r > c; c += u) {
var d = n ? n[c] : o[0] + c,
f = h(d),
p = l.getTextRect(f),
g = cu(p, l.get("rotate") || 0);
s ? s.union(g) : s = g
}
return s
}
}
function cu(t, e) {
var i = e * Math.PI / 180,
n = t.plain(),
r = n.width,
a = n.height,
o = r * Math.cos(i) + a * Math.sin(i),
s = r * Math.sin(i) + a * Math.cos(i),
l = new gi(n.x, n.y, o, s);
return l
}
function du(t, e) {
if ("image" !== this.type) {
var i = this.style,
n = this.shape;
n && "line" === n.symbolType ? i.stroke = t : this.__isEmptyBrush ? (i.stroke = t, i.fill = e || "#fff") : (i.fill &&
(i.fill = t), i.stroke && (i.stroke = t)), this.dirty(!1)
}
}
function fu(t, e, i, n, r, a, o) {
var s = 0 === t.indexOf("empty");
s && (t = t.substr(5, 1).toLowerCase() + t.substr(6));
var l;
return l = 0 === t.indexOf("image://") ? Jr(t.slice(8), new gi(e, i, n, r), o ? "center" : "cover") : 0 === t.indexOf(
"path://") ? Qr(t.slice(7), {}, new gi(e, i, n, r), o ? "center" : "cover") : new Mb({
shape: {
symbolType: t,
x: e,
y: i,
width: n,
height: r
}
}), l.__isEmptyBrush = s, l.setColor = du, l.setColor(a), l
}
function pu(t) {
return Oh(t.getSource(), t)
}
function gu(t, e) {
var i = e;
Wa.isInstance(e) || (i = new Wa(e), c(i, vb));
var n = ou(i);
return n.setExtent(t[0], t[1]), au(n, i), n
}
function vu(t) {
c(t, vb)
}
function mu(t, e) {
return Math.abs(t - e) < Cb
}
function yu(t, e, i) {
var n = 0,
r = t[0];
if (!r) return !1;
for (var a = 1; a < t.length; a++) {
var o = t[a];
n += kr(r[0], r[1], o[0], o[1], e, i), r = o
}
var s = t[0];
return mu(r[0], s[0]) && mu(r[1], s[1]) || (n += kr(r[0], r[1], s[0], s[1], e, i)), 0 !== n
}
function xu(t, e, i) {
if (this.name = t, this.geometries = e, i) i = [i[0], i[1]];
else {
var n = this.getBoundingRect();
i = [n.x + n.width / 2, n.y + n.height / 2]
}
this.center = i
}
function _u(t) {
if (!t.UTF8Encoding) return t;
var e = t.UTF8Scale;
null == e && (e = 1024);
for (var i = t.features, n = 0; n < i.length; n++)
for (var r = i[n], a = r.geometry, o = a.coordinates, s = a.encodeOffsets, l = 0; l < o.length; l++) {
var h = o[l];
if ("Polygon" === a.type) o[l] = wu(h, s[l], e);
else if ("MultiPolygon" === a.type)
for (var u = 0; u < h.length; u++) {
var c = h[u];
h[u] = wu(c, s[l][u], e)
}
}
return t.UTF8Encoding = !1, t
}
function wu(t, e, i) {
for (var n = [], r = e[0], a = e[1], o = 0; o < t.length; o += 2) {
var s = t.charCodeAt(o) - 64,
l = t.charCodeAt(o + 1) - 64;
s = s >> 1 ^ -(1 & s), l = l >> 1 ^ -(1 & l), s += r, l += a, r = s, a = l, n.push([s / i, l / i])
}
return n
}
function bu(t) {
return "category" === t.type ? Mu(t) : Cu(t)
}
function Su(t, e) {
return "category" === t.type ? Tu(t, e) : {
ticks: t.scale.getTicks()
}
}
function Mu(t) {
var e = t.getLabelModel(),
i = Iu(t, e);
return !e.get("show") || t.scale.isBlank() ? {
labels: [],
labelCategoryInterval: i.labelCategoryInterval
} : i
}
function Iu(t, e) {
var i = Au(t, "labels"),
n = Ru(e),
r = Du(i, n);
if (r) return r;
var a, o;
return w(n) ? a = Eu(t, n) : (o = "auto" === n ? Pu(t) : n, a = zu(t, o)), ku(i, n, {
labels: a,
labelCategoryInterval: o
})
}
function Tu(t, e) {
var i = Au(t, "ticks"),
n = Ru(e),
r = Du(i, n);
if (r) return r;
var a, o;
if ((!e.get("show") || t.scale.isBlank()) && (a = []), w(n)) a = Eu(t, n, !0);
else if ("auto" === n) {
var s = Iu(t, t.getLabelModel());
o = s.labelCategoryInterval, a = p(s.labels, function(t) {
return t.tickValue
})
} else o = n, a = zu(t, o, !0);
return ku(i, n, {
ticks: a,
tickCategoryInterval: o
})
}
function Cu(t) {
var e = t.scale.getTicks(),
i = lu(t);
return {
labels: p(e, function(e, n) {
return {
formattedLabel: i(e, n),
rawLabel: t.scale.getLabel(e),
tickValue: e
}
})
}
}
function Au(t, e) {
return Db(t)[e] || (Db(t)[e] = [])
}
function Du(t, e) {
for (var i = 0; i < t.length; i++)
if (t[i].key === e) return t[i].value
}
function ku(t, e, i) {
return t.push({
key: e,
value: i
}), i
}
function Pu(t) {
var e = Db(t).autoInterval;
return null != e ? e : Db(t).autoInterval = t.calculateCategoryInterval()
}
function Lu(t) {
var e = Ou(t),
i = lu(t),
n = (e.axisRotate - e.labelRotate) / 180 * Math.PI,
r = t.scale,
a = r.getExtent(),
o = r.count();
if (a[1] - a[0] < 1) return 0;
var s = 1;
o > 40 && (s = Math.max(1, Math.floor(o / 40)));
for (var l = a[0], h = t.dataToCoord(l + 1) - t.dataToCoord(l), u = Math.abs(h * Math.cos(n)), c = Math.abs(h * Math
.sin(n)), d = 0, f = 0; l <= a[1]; l += s) {
var p = 0,
g = 0,
v = Ei(i(l), e.font, "center", "top");
p = 1.3 * v.width, g = 1.3 * v.height, d = Math.max(d, p, 7), f = Math.max(f, g, 7)
}
var m = d / u,
y = f / c;
isNaN(m) && (m = 1 / 0), isNaN(y) && (y = 1 / 0);
var x = Math.max(0, Math.floor(Math.min(m, y))),
_ = Db(t.model),
w = _.lastAutoInterval,
b = _.lastTickCount;
return null != w && null != b && Math.abs(w - x) <= 1 && Math.abs(b - o) <= 1 && w > x ? x = w : (_.lastTickCount =
o, _.lastAutoInterval = x), x
}
function Ou(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 zu(t, e, i) {
function n(t) {
l.push(i ? t : {
formattedLabel: r(t),
rawLabel: a.getLabel(t),
tickValue: t
})
}
var r = lu(t),
a = t.scale,
o = a.getExtent(),
s = t.getLabelModel(),
l = [],
h = Math.max((e || 0) + 1, 1),
u = o[0],
c = a.count();
0 !== u && h > 1 && c / h > 2 && (u = Math.round(Math.ceil(u / h) * h));
var d = {
min: s.get("showMinLabel"),
max: s.get("showMaxLabel")
};
d.min && u !== o[0] && n(o[0]);
for (var f = u; f <= o[1]; f += h) n(f);
return d.max && f !== o[1] && n(o[1]), l
}
function Eu(t, e, i) {
var n = t.scale,
r = lu(t),
a = [];
return f(n.getTicks(), function(t) {
var o = n.getLabel(t);
e(t, o) && a.push(i ? t : {
formattedLabel: r(t),
rawLabel: o,
tickValue: t
})
}), a
}
function Ru(t) {
var e = t.get("interval");
return null == e ? "auto" : e
}
function Bu(t, e) {
var i = t[1] - t[0],
n = e,
r = i / n / 2;
t[0] += r, t[1] -= r
}
function Nu(t, e, i, n, r) {
function a(t, e) {
return u ? t > e : e > t
}
var o = e.length;
if (t.onBand && !n && o) {
var s, l = t.getExtent();
if (1 === o) e[0].coord = l[0], s = e[1] = {
coord: l[0]
};
else {
var h = e[1].coord - e[0].coord;
f(e, function(t) {
t.coord -= h / 2;
var e = e || 0;
e % 2 > 0 && (t.coord -= h / (2 * (e + 1)))
}), s = {
coord: e[o - 1].coord + h
}, e.push(s)
}
var u = l[0] > l[1];
a(e[0].coord, l[0]) && (r ? e[0].coord = l[0] : e.shift()), r && a(l[0], e[0].coord) && e.unshift({
coord: l[0]
}), a(l[1], s.coord) && (r ? s.coord = l[1] : e.pop()), r && a(s.coord, l[1]) && e.push({
coord: l[1]
})
}
}
function Fu(t) {
return this._axes[t]
}
function Vu(t) {
Eb.call(this, t)
}
function Wu(t, e) {
return e.type || (e.data ? "category" : "value")
}
function Gu(t, e) {
return t.getCoordSysModel() === e
}
function Hu(t, e, i) {
this._coordsMap = {}, this._coordsList = [], this._axesMap = {}, this._axesList = [], this._initCartesian(t, e, i),
this.model = t
}
function Zu(t, e, i, n) {
function r(t) {
return t.dim + "_" + t.index
}
i.getAxesOnZeroOf = function() {
return a ? [a] : []
};
var a, o = t[e],
s = i.model,
l = s.get("axisLine.onZero"),
h = s.get("axisLine.onZeroAxisIndex");
if (l) {
if (null != h) Xu(o[h]) && (a = o[h]);
else
for (var u in o)
if (o.hasOwnProperty(u) && Xu(o[u]) && !n[r(o[u])]) {
a = o[u];
break
} a && (n[r(a)] = !0)
}
}
function Xu(t) {
return t && "category" !== t.type && "time" !== t.type && su(t)
}
function Yu(t, e) {
var i = t.getExtent(),
n = i[0] + i[1];
t.toGlobalCoord = "x" === t.dim ? function(t) {
return t + e
} : function(t) {
return n - t + e
}, t.toLocalCoord = "x" === t.dim ? function(t) {
return t - e
} : function(t) {
return n - t + e
}
}
function ju(t) {
return p(Zb, function(e) {
var i = t.getReferringComponents(e)[0];
return i
})
}
function qu(t) {
return "cartesian2d" === t.get("coordinateSystem")
}
function Uu(t, e) {
var i = t.mapDimension("defaultedLabel", !0),
n = i.length;
if (1 === n) return Ss(t, e, i[0]);
if (n) {
for (var r = [], a = 0; a < i.length; a++) {
var o = Ss(t, e, i[a]);
r.push(o)
}
return r.join(" ")
}
}
function $u(t, e, i, n, r, a) {
var o = i.getModel("label"),
s = i.getModel("emphasis.label");
wa(t, e, o, s, {
labelFetcher: r,
labelDataIndex: a,
defaultText: Uu(r.getData(), a),
isRectText: !0,
autoColor: n
}), Ku(t), Ku(e)
}
function Ku(t, e) {
"outside" === t.textPosition && (t.textPosition = e)
}
function Qu(t, e, i) {
i.style.text = null, La(i, {
shape: {
width: 0
}
}, e, t, function() {
i.parent && i.parent.remove(i)
})
}
function Ju(t, e, i) {
i.style.text = null, La(i, {
shape: {
r: i.shape.r0
}
}, e, t, function() {
i.parent && i.parent.remove(i)
})
}
function tc(t, e, i, n, r, a, o, l) {
var h = e.getItemVisual(i, "color"),
u = e.getItemVisual(i, "opacity"),
c = n.getModel("itemStyle"),
d = n.getModel("emphasis.itemStyle").getBarItemStyle();
l || t.setShape("r", c.get("barBorderRadius") || 0), t.useStyle(s({
fill: h,
opacity: u
}, c.getBarItemStyle()));
var f = n.getShallow("cursor");
f && t.attr("cursor", f);
var p = o ? r.height > 0 ? "bottom" : "top" : r.width > 0 ? "left" : "right";
l || $u(t.style, d, n, h, a, i, p), xa(t, d)
}
function ec(t, e) {
var i = t.get(qb) || 0;
return Math.min(i, Math.abs(e.width), Math.abs(e.height))
}
function ic(t, e, i) {
var n = t.getData(),
r = [],
a = n.getLayout("valueAxisHorizontal") ? 1 : 0;
r[1 - a] = n.getLayout("valueAxisStart");
var o = new Kb({
shape: {
points: n.getLayout("largePoints")
},
incremental: !!i,
__startPoint: r,
__valueIdx: a
});
e.add(o), nc(o, t, n)
}
function nc(t, e, i) {
var n = i.getVisual("borderColor") || i.getVisual("color"),
r = e.getModel("itemStyle").getItemStyle(["color", "borderColor"]);
t.useStyle(r), t.style.fill = null, t.style.stroke = n, t.style.lineWidth = i.getLayout("barWidth")
}
function rc(t) {
var e = {
componentType: t.mainType,
componentIndex: t.componentIndex
};
return e[t.mainType + "Index"] = t.componentIndex, e
}
function ac(t, e, i, n) {
var r, a, o = io(i - t.rotation),
s = n[0] > n[1],
l = "start" === e && !s || "start" !== e && s;
return no(o - Qb / 2) ? (a = l ? "bottom" : "top", r = "center") : no(o - 1.5 * Qb) ? (a = l ? "top" : "bottom", r =
"center") : (a = "middle", r = 1.5 * Qb > o && o > Qb / 2 ? l ? "left" : "right" : l ? "right" : "left"), {
rotation: o,
textAlign: r,
textVerticalAlign: a
}
}
function oc(t) {
var e = t.get("tooltip");
return t.get("silent") || !(t.get("triggerEvent") || e && e.show)
}
function sc(t, e, i) {
var n = t.get("axisLabel.showMinLabel"),
r = t.get("axisLabel.showMaxLabel");
e = e || [], i = i || [];
var a = e[0],
o = e[1],
s = e[e.length - 1],
l = e[e.length - 2],
h = i[0],
u = i[1],
c = i[i.length - 1],
d = i[i.length - 2];
n === !1 ? (lc(a), lc(h)) : hc(a, o) && (n ? (lc(o), lc(u)) : (lc(a), lc(h))), r === !1 ? (lc(s), lc(c)) : hc(l, s) &&
(r ? (lc(l), lc(d)) : (lc(s), lc(c)))
}
function lc(t) {
t && (t.ignore = !0)
}
function hc(t, e) {
var i = t && t.getBoundingRect().clone(),
n = e && e.getBoundingRect().clone();
if (i && n) {
var r = Se([]);
return Ce(r, r, -t.rotation), i.applyTransform(Ie([], r, t.getLocalTransform())), n.applyTransform(Ie([], r, e.getLocalTransform())),
i.intersect(n)
}
}
function uc(t) {
return "middle" === t || "center" === t
}
function cc(t, e, i) {
var n = e.axis;
if (e.get("axisTick.show") && !n.scale.isBlank()) {
for (var r = e.getModel("axisTick"), a = r.getModel("lineStyle"), o = r.get("length"), l = n.getTicksCoords(), h = [],
u = [], c = t._transform, d = [], f = 0; f < l.length; f++) {
var p = l[f].coord;
h[0] = p, h[1] = 0, u[0] = p, u[1] = i.tickDirection * o, c && (ae(h, h, c), ae(u, u, c));
var g = new ky(ia({
anid: "tick_" + l[f].tickValue,
shape: {
x1: h[0],
y1: h[1],
x2: u[0],
y2: u[1]
},
style: s(a.getLineStyle(), {
stroke: e.get("axisLine.lineStyle.color")
}),
z2: 2,
silent: !0
}));
t.group.add(g), d.push(g)
}
return d
}
}
function dc(t, e, i) {
var n = e.axis,
r = A(i.axisLabelShow, e.get("axisLabel.show"));
if (r && !n.scale.isBlank()) {
var a = e.getModel("axisLabel"),
o = a.get("margin"),
s = n.getViewLabels(),
l = (A(i.labelRotate, a.get("rotate")) || 0) * Qb / 180,
h = eS(i.rotation, l, i.labelDirection),
u = e.getCategories(!0),
c = [],
d = oc(e),
p = e.get("triggerEvent");
return f(s, function(r, s) {
var l = r.tickValue,
f = r.formattedLabel,
g = r.rawLabel,
v = a;
u && u[l] && u[l].textStyle && (v = new Wa(u[l].textStyle, a, e.ecModel));
var m = v.getTextColor() || e.get("axisLine.lineStyle.color"),
y = n.dataToCoord(l),
x = [y, i.labelOffset + i.labelDirection * o],
_ = new xy({
anid: "label_" + l,
position: x,
rotation: h.rotation,
silent: d,
z2: 10
});
ba(_.style, v, {
text: f,
textAlign: v.getShallow("align", !0) || h.textAlign,
textVerticalAlign: v.getShallow("verticalAlign", !0) || v.getShallow("baseline", !0) || h.textVerticalAlign,
textFill: "function" == typeof m ? m("category" === n.type ? g : "value" === n.type ? l + "" : l, s) : m
}), p && (_.eventData = rc(e), _.eventData.targetType = "axisLabel", _.eventData.value = g), t._dumbGroup.add(_),
_.updateTransform(), c.push(_), t.group.add(_), _.decomposeTransform()
}), c
}
}
function fc(t, e) {
var i = {
axesInfo: {},
seriesInvolved: !1,
coordSysAxesInfo: {},
coordSysMap: {}
};
return pc(i, t, e), i.seriesInvolved && vc(i, t), i
}
function pc(t, e, i) {
var n = e.getComponent("tooltip"),
r = e.getComponent("axisPointer"),
a = r.get("link", !0) || [],
o = [];
iS(i.getCoordinateSystems(), function(i) {
function s(n, s, l) {
var u = l.model.getModel("axisPointer", r),
d = u.get("show");
if (d && ("auto" !== d || n || bc(u))) {
null == s && (s = u.get("triggerTooltip")), u = n ? gc(l, c, r, e, n, s) : u;
var f = u.get("snap"),
p = Sc(l.model),
g = s || f || "category" === l.type,
v = t.axesInfo[p] = {
key: p,
axis: l,
coordSys: i,
axisPointerModel: u,
triggerTooltip: s,
involveSeries: g,
snap: f,
useHandle: bc(u),
seriesModels: []
};
h[p] = v, t.seriesInvolved |= g;
var m = mc(a, l);
if (null != m) {
var y = o[m] || (o[m] = {
axesInfo: {}
});
y.axesInfo[p] = v, y.mapper = a[m].mapper, v.linkGroup = y
}
}
}
if (i.axisPointerEnabled) {
var l = Sc(i.model),
h = t.coordSysAxesInfo[l] = {};
t.coordSysMap[l] = i;
var u = i.model,
c = u.getModel("tooltip", n);
if (iS(i.getAxes(), nS(s, !1, null)), i.getTooltipAxes && n && c.get("show")) {
var d = "axis" === c.get("trigger"),
f = "cross" === c.get("axisPointer.type"),
p = i.getTooltipAxes(c.get("axisPointer.axis"));
(d || f) && iS(p.baseAxes, nS(s, f ? "cross" : !0, d)), f && iS(p.otherAxes, nS(s, "cross", !1))
}
}
})
}
function gc(t, e, i, r, a, o) {
var l = e.getModel("axisPointer"),
h = {};
iS(["type", "snap", "lineStyle", "shadowStyle", "label", "animation", "animationDurationUpdate",
"animationEasingUpdate", "z"
], function(t) {
h[t] = n(l.get(t))
}), h.snap = "category" !== t.type && !!o, "cross" === l.get("type") && (h.type = "line");
var u = h.label || (h.label = {});
if (null == u.show && (u.show = !1), "cross" === a) {
var c = l.get("label.show");
if (u.show = null != c ? c : !0, !o) {
var d = h.lineStyle = l.get("crossStyle");
d && s(u, d.textStyle)
}
}
return t.model.getModel("axisPointer", new Wa(h, i, r))
}
function vc(t, e) {
e.eachSeries(function(e) {
var i = e.coordinateSystem,
n = e.get("tooltip.trigger", !0),
r = e.get("tooltip.show", !0);
i && "none" !== n && n !== !1 && "item" !== n && r !== !1 && e.get("axisPointer.show", !0) !== !1 && iS(t.coordSysAxesInfo[
Sc(i.model)], function(t) {
var n = t.axis;
i.getAxis(n.dim) === n && (t.seriesModels.push(e), null == t.seriesDataCount && (t.seriesDataCount = 0), t.seriesDataCount +=
e.getData().count())
})
}, this)
}
function mc(t, e) {
for (var i = e.model, n = e.dim, r = 0; r < t.length; r++) {
var a = t[r] || {};
if (yc(a[n + "AxisId"], i.id) || yc(a[n + "AxisIndex"], i.componentIndex) || yc(a[n + "AxisName"], i.name)) return r
}
}
function yc(t, e) {
return "all" === t || _(t) && h(t, e) >= 0 || t === e
}
function xc(t) {
var e = _c(t);
if (e) {
var i = e.axisPointerModel,
n = e.axis.scale,
r = i.option,
a = i.get("status"),
o = i.get("value");
null != o && (o = n.parse(o));
var s = bc(i);
null == a && (r.status = s ? "show" : "hide");
var l = n.getExtent().slice();
l[0] > l[1] && l.reverse(), (null == o || o > l[1]) && (o = l[1]), o < l[0] && (o = l[0]), r.value = o, s && (r.status =
e.axis.scale.isBlank() ? "hide" : "show")
}
}
function _c(t) {
var e = (t.ecModel.getComponent("axisPointer") || {}).coordSysAxesInfo;
return e && e.axesInfo[Sc(t)]
}
function wc(t) {
var e = _c(t);
return e && e.axisPointerModel
}
function bc(t) {
return !!t.get("handle.show")
}
function Sc(t) {
return t.type + "||" + t.id
}
function Mc(t, e, i, n, r, a) {
var o = rS.getAxisPointerClass(t.axisPointerClass);
if (o) {
var s = wc(e);
s ? (t._axisPointer || (t._axisPointer = new o)).render(e, s, n, a) : Ic(t, n)
}
}
function Ic(t, e, i) {
var n = t._axisPointer;
n && n.dispose(e, i), t._axisPointer = null
}
function Tc(t, e, i) {
i = i || {};
var n = t.coordinateSystem,
r = e.axis,
a = {},
o = r.getAxesOnZeroOf()[0],
s = r.position,
l = o ? "onZero" : s,
h = r.dim,
u = n.getRect(),
c = [u.x, u.x + u.width, u.y, u.y + u.height],
d = {
left: 0,
right: 1,
top: 0,
bottom: 1,
onZero: 2
},
f = e.get("offset") || 0,
p = "x" === h ? [c[2] - f, c[3] + f] : [c[0] - f, c[1] + f];
if (o) {
var g = o.toGlobalCoord(o.dataToCoord(0));
p[d.onZero] = Math.max(Math.min(g, p[1]), p[0])
}
a.position = ["y" === h ? p[d[l]] : c[0], "x" === h ? p[d[l]] : c[3]], a.rotation = Math.PI / 2 * ("x" === h ? 0 : 1);
var v = {
top: -1,
bottom: 1,
left: -1,
right: 1
};
a.labelDirection = a.tickDirection = a.nameDirection = v[s], a.labelOffset = o ? p[d[s]] - p[d.onZero] : 0, e.get(
"axisTick.inside") && (a.tickDirection = -a.tickDirection), A(i.labelInside, e.get("axisLabel.inside")) && (a.labelDirection = -
a.labelDirection);
var m = e.get("axisLabel.rotate");
return a.labelRotate = "top" === l ? -m : m, a.z2 = 1, a
}
function Cc(t, e, i) {
lv.call(this), this.updateData(t, e, i)
}
function Ac(t) {
return [t[0] / 2, t[1] / 2]
}
function Dc(t, e) {
this.parent.drift(t, e)
}
function kc() {
!pa(this) && Lc.call(this)
}
function Pc() {
!pa(this) && Oc.call(this)
}
function Lc() {
if (!this.incremental && !this.useHoverLayer) {
var t = this.__symbolOriginalScale,
e = t[1] / t[0];
this.animateTo({
scale: [Math.max(1.1 * t[0], t[0] + 3), Math.max(1.1 * t[1], t[1] + 3 * e)]
}, 400, "elasticOut")
}
}
function Oc() {
this.incremental || this.useHoverLayer || this.animateTo({
scale: this.__symbolOriginalScale
}, 400, "elasticOut")
}
function zc(t) {
this.group = new lv, this._symbolCtor = t || Cc
}
function Ec(t, e, i, n) {
return !(!e || isNaN(e[0]) || isNaN(e[1]) || n.isIgnore && n.isIgnore(i) || n.clipShape && !n.clipShape.contain(e[0],
e[1]) || "none" === t.getItemVisual(i, "symbol"))
}
function Rc(t) {
return null == t || S(t) || (t = {
isIgnore: t
}), t || {}
}
function Bc(t) {
var e = t.hostModel;
return {
itemStyle: e.getModel("itemStyle").getItemStyle(["color"]),
hoverItemStyle: e.getModel("emphasis.itemStyle").getItemStyle(),
symbolRotate: e.get("symbolRotate"),
symbolOffset: e.get("symbolOffset"),
hoverAnimation: e.get("hoverAnimation"),
labelModel: e.getModel("label"),
hoverLabelModel: e.getModel("emphasis.label"),
cursorStyle: e.get("cursor")
}
}
function Nc(t, e, i) {
var n, r = t.getBaseAxis(),
a = t.getOtherAxis(r),
o = Fc(a, i),
s = r.dim,
l = a.dim,
h = e.mapDimension(l),
u = e.mapDimension(s),
c = "x" === l || "radius" === l ? 1 : 0,
d = p(t.dimensions, function(t) {
return e.mapDimension(t)
}),
f = e.getCalculationInfo("stackResultDimension");
return (n |= Ph(e, d[0])) && (d[0] = f), (n |= Ph(e, d[1])) && (d[1] = f), {
dataDimsForPoint: d,
valueStart: o,
valueAxisDim: l,
baseAxisDim: s,
stacked: !!n,
valueDim: h,
baseDim: u,
baseDataOffset: c,
stackedOverDimension: e.getCalculationInfo("stackedOverDimension")
}
}
function Fc(t, e) {
var i = 0,
n = t.scale.getExtent();
return "start" === e ? i = n[0] : "end" === e ? i = n[1] : n[0] > 0 ? i = n[0] : n[1] < 0 && (i = n[1]), i
}
function Vc(t, e, i, n) {
var r = 0 / 0;
t.stacked && (r = i.get(i.getCalculationInfo("stackedOverDimension"), n)), isNaN(r) && (r = t.valueStart);
var a = t.baseDataOffset,
o = [];
return o[a] = i.get(t.baseDim, n), o[1 - a] = r, e.dataToPoint(o)
}
function Wc(t, e) {
var i = [];
return e.diff(t).add(function(t) {
i.push({
cmd: "+",
idx: t
})
}).update(function(t, e) {
i.push({
cmd: "=",
idx: e,
idx1: t
})
}).remove(function(t) {
i.push({
cmd: "-",
idx: t
})
}).execute(), i
}
function Gc(t) {
return isNaN(t[0]) || isNaN(t[1])
}
function Hc(t, e, i, n, r, a, o, s, l, h) {
return "none" !== h && h ? Zc.apply(this, arguments) : Xc.apply(this, arguments)
}
function Zc(t, e, i, n, r, a, o, s, l, h, u) {
for (var c = 0, d = i, f = 0; n > f; f++) {
var p = e[d];
if (d >= r || 0 > d) break;
if (Gc(p)) {
if (u) {
d += a;
continue
}
break
}
if (d === i) t[a > 0 ? "moveTo" : "lineTo"](p[0], p[1]);
else if (l > 0) {
var g = e[c],
v = "y" === h ? 1 : 0,
m = (p[v] - g[v]) * l;
_S(bS, g), bS[v] = g[v] + m, _S(SS, p), SS[v] = p[v] - m, t.bezierCurveTo(bS[0], bS[1], SS[0], SS[1], p[0], p[1])
} else t.lineTo(p[0], p[1]);
c = d, d += a
}
return f
}
function Xc(t, e, i, n, r, a, o, s, l, h, u) {
for (var c = 0, d = i, f = 0; n > f; f++) {
var p = e[d];
if (d >= r || 0 > d) break;
if (Gc(p)) {
if (u) {
d += a;
continue
}
break
}
if (d === i) t[a > 0 ? "moveTo" : "lineTo"](p[0], p[1]), _S(bS, p);
else if (l > 0) {
var g = d + a,
v = e[g];
if (u)
for (; v && Gc(e[g]);) g += a, v = e[g];
var m = .5,
y = e[c],
v = e[g];
if (!v || Gc(v)) _S(SS, p);
else {
Gc(v) && !u && (v = p), j(wS, v, y);
var x, _;
if ("x" === h || "y" === h) {
var w = "x" === h ? 0 : 1;
x = Math.abs(p[w] - y[w]), _ = Math.abs(p[w] - v[w])
} else x = yg(p, y), _ = yg(p, v);
m = _ / (_ + x), xS(SS, p, wS, -l * (1 - m))
}
mS(bS, bS, s), yS(bS, bS, o), mS(SS, SS, s), yS(SS, SS, o), t.bezierCurveTo(bS[0], bS[1], SS[0], SS[1], p[0], p[1]),
xS(bS, p, wS, l * m)
} else t.lineTo(p[0], p[1]);
c = d, d += a
}
return f
}
function Yc(t, e) {
var i = [1 / 0, 1 / 0],
n = [-1 / 0, -1 / 0];
if (e)
for (var r = 0; r < t.length; r++) {
var a = t[r];
a[0] < i[0] && (i[0] = a[0]), a[1] < i[1] && (i[1] = a[1]), a[0] > n[0] && (n[0] = a[0]), a[1] > n[1] && (n[1] = a[
1])
}
return {
min: e ? i : n,
max: e ? n : i
}
}
function jc(t, e) {
if (t.length === e.length) {
for (var i = 0; i < t.length; i++) {
var n = t[i],
r = e[i];
if (n[0] !== r[0] || n[1] !== r[1]) return
}
return !0
}
}
function qc(t) {
return "number" == typeof t ? t : t ? .5 : 0
}
function Uc(t) {
var e = t.getGlobalExtent();
if (t.onBand) {
var i = t.getBandWidth() / 2 - 1,
n = e[1] > e[0] ? 1 : -1;
e[0] += n * i, e[1] -= n * i
}
return e
}
function $c(t, e, i) {
if (!i.valueDim) return [];
for (var n = [], r = 0, a = e.count(); a > r; r++) n.push(Vc(i, t, e, r));
return n
}
function Kc(t, e, i, n) {
var r = Uc(t.getAxis("x")),
a = Uc(t.getAxis("y")),
o = t.getBaseAxis().isHorizontal(),
s = Math.min(r[0], r[1]),
l = Math.min(a[0], a[1]),
h = Math.max(r[0], r[1]) - s,
u = Math.max(a[0], a[1]) - l;
if (i) s -= .5, h += .5, l -= .5, u += .5;
else {
var c = n.get("lineStyle.width") || 2,
d = n.get("clipOverflow") ? c / 2 : Math.max(h, u);
o ? (l -= d, u += 2 * d) : (s -= d, h += 2 * d)
}
var f = new Dy({
shape: {
x: s,
y: l,
width: h,
height: u
}
});
return e && (f.shape[o ? "width" : "height"] = 0, Oa(f, {
shape: {
width: h,
height: u
}
}, n)), f
}
function Qc(t, e, i, n) {
var r = t.getAngleAxis(),
a = t.getRadiusAxis(),
o = a.getExtent().slice();
o[0] > o[1] && o.reverse();
var s = r.getExtent(),
l = Math.PI / 180;
i && (o[0] -= .5, o[1] += .5);
var h = new Sy({
shape: {
cx: $a(t.cx, 1),
cy: $a(t.cy, 1),
r0: $a(o[0], 1),
r: $a(o[1], 1),
startAngle: -s[0] * l,
endAngle: -s[1] * l,
clockwise: r.inverse
}
});
return e && (h.shape.endAngle = -s[0] * l, Oa(h, {
shape: {
endAngle: -s[1] * l
}
}, n)), h
}
function Jc(t, e, i, n) {
return "polar" === t.type ? Qc(t, e, i, n) : Kc(t, e, i, n)
}
function td(t, e, i) {
for (var n = e.getBaseAxis(), r = "x" === n.dim || "radius" === n.dim ? 0 : 1, a = [], o = 0; o < t.length - 1; o++) {
var s = t[o + 1],
l = t[o];
a.push(l);
var h = [];
switch (i) {
case "end":
h[r] = s[r], h[1 - r] = l[1 - r], a.push(h);
break;
case "middle":
var u = (l[r] + s[r]) / 2,
c = [];
h[r] = c[r] = u, h[1 - r] = l[1 - r], c[1 - r] = s[1 - r], a.push(h), a.push(c);
break;
default:
h[r] = l[r], h[1 - r] = s[1 - r], a.push(h)
}
}
return t[o] && a.push(t[o]), a
}
function ed(t, e) {
var i = t.getVisual("visualMeta");
if (i && i.length && t.count() && "cartesian2d" === e.type) {
for (var n, r, a = i.length - 1; a >= 0; a--) {
var o = i[a].dimension,
s = t.dimensions[o],
l = t.getDimensionInfo(s);
if (n = l && l.coordDim, "x" === n || "y" === n) {
r = i[a];
break
}
}
if (r) {
var h = e.getAxis(n),
u = p(r.stops, function(t) {
return {
coord: h.toGlobalCoord(h.dataToCoord(t.value)),
color: t.color
}
}),
c = u.length,
d = r.outerColors.slice();
c && u[0].coord > u[c - 1].coord && (u.reverse(), d.reverse());
var g = 10,
v = u[0].coord - g,
m = u[c - 1].coord + g,
y = m - v;
if (.001 > y) return "transparent";
f(u, function(t) {
t.offset = (t.coord - v) / y
}), u.push({
offset: c ? u[c - 1].offset : .5,
color: d[1] || "transparent"
}), u.unshift({
offset: c ? u[0].offset : .5,
color: d[0] || "transparent"
});
var x = new Ry(0, 0, 0, 0, u, !0);
return x[n] = v, x[n + "2"] = m, x
}
}
}
function id(t, e, i) {
var n = t.get("showAllSymbol"),
r = "auto" === n;
if (!n || r) {
var a = i.getAxesByScale("ordinal")[0];
if (a && (!r || !nd(a, e))) {
var o = e.mapDimension(a.dim),
s = {};
return f(a.getViewLabels(), function(t) {
s[t.tickValue] = 1
}),
function(t) {
return !s.hasOwnProperty(e.get(o, t))
}
}
}
}
function nd(t, e) {
var i = t.getExtent(),
n = Math.abs(i[1] - i[0]) / t.scale.count();
isNaN(n) && (n = 0);
for (var r = e.count(), a = Math.max(1, Math.round(r / 5)), o = 0; r > o; o += a)
if (1.5 * Cc.getSymbolSize(e, o)[t.isHorizontal() ? 1 : 0] > n) return !1;
return !0
}
function rd(t, e, i, n) {
var r = e.getData(),
a = this.dataIndex,
o = r.getName(a),
s = e.get("selectedOffset");
n.dispatchAction({
type: "pieToggleSelect",
from: t,
name: o,
seriesId: e.id
}), r.each(function(t) {
ad(r.getItemGraphicEl(t), r.getItemLayout(t), e.isSelected(r.getName(t)), s, i)
})
}
function ad(t, e, i, n, r) {
var a = (e.startAngle + e.endAngle) / 2,
o = Math.cos(a),
s = Math.sin(a),
l = i ? n : 0,
h = [o * l, s * l];
r ? t.animate().when(200, {
position: h
}).start("bounceOut") : t.attr("position", h)
}
function od(t, e) {
function i() {
a.ignore = a.hoverIgnore, o.ignore = o.hoverIgnore
}
function n() {
a.ignore = a.normalIgnore, o.ignore = o.normalIgnore
}
lv.call(this);
var r = new Sy({
z2: 2
}),
a = new Ay,
o = new xy;
this.add(r), this.add(a), this.add(o), this.updateData(t, e, !0), this.on("emphasis", i).on("normal", n).on(
"mouseover", i).on("mouseout", n)
}
function sd(t, e, i, n, r, a, o) {
function s(e, i, n) {
for (var r = e; i > r; r++)
if (t[r].y += n, r > e && i > r + 1 && t[r + 1].y > t[r].y + t[r].height) return void l(r, n / 2);
l(i - 1, n / 2)
}
function l(e, i) {
for (var n = e; n >= 0 && (t[n].y -= i, !(n > 0 && t[n].y > t[n - 1].y + t[n - 1].height)); n--);
}
function h(t, e, i, n, r, a) {
for (var o = a > 0 ? e ? Number.MAX_VALUE : 0 : e ? Number.MAX_VALUE : 0, s = 0, l = t.length; l > s; s++)
if ("center" !== t[s].position) {
var h = Math.abs(t[s].y - n),
u = t[s].len,
c = t[s].len2,
d = r + u > h ? Math.sqrt((r + u + c) * (r + u + c) - h * h) : Math.abs(t[s].x - i);
e && d >= o && (d = o - 10), !e && o >= d && (d = o + 10), t[s].x = i + d * a, o = d
}
}
t.sort(function(t, e) {
return t.y - e.y
});
for (var u, c = 0, d = t.length, f = [], p = [], g = 0; d > g; g++) u = t[g].y - c, 0 > u && s(g, d, -u, r), c = t[g]
.y + t[g].height;
0 > o - c && l(d - 1, c - o);
for (var g = 0; d > g; g++) t[g].y >= i ? p.push(t[g]) : f.push(t[g]);
h(f, !1, e, i, n, r), h(p, !0, e, i, n, r)
}
function ld(t, e, i, n, r, a) {
for (var o = [], s = [], l = 0; l < t.length; l++) t[l].x < e ? o.push(t[l]) : s.push(t[l]);
sd(s, e, i, n, 1, r, a), sd(o, e, i, n, -1, r, a);
for (var l = 0; l < t.length; l++) {
var h = t[l].linePoints;
if (h) {
var u = h[1][0] - h[2][0];
h[2][0] = t[l].x < e ? t[l].x + 3 : t[l].x - 3, h[1][1] = h[2][1] = t[l].y, h[1][0] = h[2][0] + u
}
}
}
function hd(t, e) {
return e = e || [0, 0], p(["x", "y"], function(i, n) {
var r = this.getAxis(i),
a = e[n],
o = t[n] / 2;
return "category" === r.type ? r.getBandWidth() : Math.abs(r.dataToCoord(a - o) - r.dataToCoord(a + o))
}, this)
}
function ud(t, e) {
return e = e || [0, 0], p([0, 1], function(i) {
var n = e[i],
r = t[i] / 2,
a = [],
o = [];
return a[i] = n - r, o[i] = n + r, a[1 - i] = o[1 - i] = e[1 - i], Math.abs(this.dataToPoint(a)[i] - this.dataToPoint(
o)[i])
}, this)
}
function cd(t, e) {
var i = this.getAxis(),
n = e instanceof Array ? e[0] : e,
r = (t instanceof Array ? t[0] : t) / 2;
return "category" === i.type ? i.getBandWidth() : Math.abs(i.dataToCoord(n - r) - i.dataToCoord(n + r))
}
function dd(t, e) {
return p(["Radius", "Angle"], function(i, n) {
var r = this["get" + i + "Axis"](),
a = e[n],
o = t[n] / 2,
s = "dataTo" + i,
l = "category" === r.type ? r.getBandWidth() : Math.abs(r[s](a - o) - r[s](a + o));
return "Angle" === i && (l = l * Math.PI / 180), l
}, this)
}
function fd(t) {
var e, i = t.type;
if ("path" === i) {
var n = t.shape,
r = null != n.width && null != n.height ? {
x: n.x || 0,
y: n.y || 0,
width: n.width,
height: n.height
} : null,
a = Id(n);
e = Qr(a, null, r, n.layout || "center"), e.__customPathData = a
} else if ("image" === i) e = new yn({}), e.__customImagePath = t.style.image;
else if ("text" === i) e = new xy({}), e.__customText = t.style.text;
else {
var o = Yy[i.charAt(0).toUpperCase() + i.slice(1)];
e = new o
}
return e.__customGraphicType = i, e.name = t.name, e
}
function pd(t, e, i, r, a, o, s) {
var l = {},
h = i.style || {};
if (i.shape && (l.shape = n(i.shape)), i.position && (l.position = i.position.slice()), i.scale && (l.scale = i.scale
.slice()), i.origin && (l.origin = i.origin.slice()), i.rotation && (l.rotation = i.rotation), "image" === t.type &&
i.style) {
var u = l.style = {};
f(["x", "y", "width", "height"], function(e) {
gd(e, u, h, t.style, o)
})
}
if ("text" === t.type && i.style) {
var u = l.style = {};
f(["x", "y"], function(e) {
gd(e, u, h, t.style, o)
}), !h.hasOwnProperty("textFill") && h.fill && (h.textFill = h.fill), !h.hasOwnProperty("textStroke") && h.stroke &&
(h.textStroke = h.stroke)
}
if ("group" !== t.type && (t.useStyle(h), o)) {
t.style.opacity = 0;
var c = h.opacity;
null == c && (c = 1), Oa(t, {
style: {
opacity: c
}
}, r, e)
}
o ? t.attr(l) : La(t, l, r, e), i.hasOwnProperty("z2") && t.attr("z2", i.z2 || 0), i.hasOwnProperty("silent") && t.attr(
"silent", i.silent), i.hasOwnProperty("invisible") && t.attr("invisible", i.invisible), i.hasOwnProperty("ignore") &&
t.attr("ignore", i.ignore), i.hasOwnProperty("info") && t.attr("info", i.info);
var d = i.styleEmphasis,
p = d === !1;
t.__cusHasEmphStl && null == d || !t.__cusHasEmphStl && p || (fa(t, d), t.__cusHasEmphStl = !p), s && _a(t, !p)
}
function gd(t, e, i, n, r) {
null == i[t] || r || (e[t] = i[t], i[t] = n[t])
}
function vd(t, e, i, n) {
function r(t) {
null == t && (t = m), M && (y = e.getItemModel(t), x = y.getModel(US), _ = y.getModel($S), w = e.getItemVisual(t,
"color"), M = !1)
}
function a(t, i) {
return null == i && (i = m), e.get(e.getDimension(t || 0), i)
}
function l(i, n) {
null == n && (n = m), r(n);
var a = y.getModel(jS).getItemStyle();
null != w && (a.fill = w);
var s = e.getItemVisual(n, "opacity");
return null != s && (a.opacity = s), ba(a, x, null, {
autoColor: w,
isRectText: !0
}), a.text = x.getShallow("show") ? D(t.getFormattedLabel(n, "normal"), Uu(e, n)) : null, i && o(a, i), a
}
function h(i, n) {
null == n && (n = m), r(n);
var a = y.getModel(qS).getItemStyle();
return ba(a, _, null, {
isRectText: !0
}, !0), a.text = _.getShallow("show") ? k(t.getFormattedLabel(n, "emphasis"), t.getFormattedLabel(n, "normal"), Uu(
e, n)) : null, i && o(a, i), a
}
function u(t, i) {
return null == i && (i = m), e.getItemVisual(i, t)
}
function c(t) {
if (g.getBaseAxis) {
var e = g.getBaseAxis();
return jh(s({
axis: e
}, t), n)
}
}
function d() {
return i.getCurrentSeriesIndices()
}
function f(t) {
return ka(t, i)
}
var p = t.get("renderItem"),
g = t.coordinateSystem,
v = {};
g && (v = g.prepareCustoms ? g.prepareCustoms() : QS[g.type](g));
var m, y, x, _, w, b = s({
getWidth: n.getWidth,
getHeight: n.getHeight,
getZr: n.getZr,
getDevicePixelRatio: n.getDevicePixelRatio,
value: a,
style: l,
styleEmphasis: h,
visual: u,
barLayout: c,
currentSeriesIndices: d,
font: f
}, v.api || {}),
S = {
context: {},
seriesId: t.id,
seriesName: t.name,
seriesIndex: t.seriesIndex,
coordSys: v.coordSys,
dataInsideLength: e.count(),
encode: md(t.getData())
},
M = !0;
return function(t, i) {
return m = t, M = !0, p && p(s({
dataIndexInside: t,
dataIndex: e.getRawIndex(t),
actionType: i ? i.type : null
}, S), b)
}
}
function md(t) {
var e = {};
return f(t.dimensions, function(i, n) {
var r = t.getDimensionInfo(i);
if (!r.isExtraCoord) {
var a = r.coordDim,
o = e[a] = e[a] || [];
o[r.coordDimIndex] = n
}
}), e
}
function yd(t, e, i, n, r, a) {
return t = xd(t, e, i, n, r, a, !0), t && a.setItemGraphicEl(e, t), t
}
function xd(t, e, i, n, r, a, o) {
var s = !i;
i = i || {};
var l = i.type,
h = i.shape,
u = i.style;
if (t && (s || null != l && l !== t.__customGraphicType || "path" === l && Td(h) && Id(h) !== t.__customPathData ||
"image" === l && Cd(u, "image") && u.image !== t.__customImagePath || "text" === l && Cd(h, "text") && u.text !==
t.__customText) && (r.remove(t), t = null), !s) {
var c = !t;
return !t && (t = fd(i)), pd(t, e, i, n, a, c, o), "group" === l && _d(t, e, i, n, a), r.add(t), t
}
}
function _d(t, e, i, n, r) {
var a = i.children,
o = a ? a.length : 0,
s = i.$mergeChildren,
l = "byName" === s || i.diffChildrenByName,
h = s === !1;
if (o || l || h) {
if (l) return void wd({
oldChildren: t.children() || [],
newChildren: a || [],
dataIndex: e,
animatableModel: n,
group: t,
data: r
});
h && t.removeAll();
for (var u = 0; o > u; u++) a[u] && xd(t.childAt(u), e, a[u], n, t, r)
}
}
function wd(t) {
new uh(t.oldChildren, t.newChildren, bd, bd, t).add(Sd).update(Sd).remove(Md).execute()
}
function bd(t, e) {
var i = t && t.name;
return null != i ? i : KS + e
}
function Sd(t, e) {
var i = this.context,
n = null != t ? i.newChildren[t] : null,
r = null != e ? i.oldChildren[e] : null;
xd(r, i.dataIndex, n, i.animatableModel, i.group, i.data)
}
function Md(t) {
var e = this.context,
i = e.oldChildren[t];
i && e.group.remove(i)
}
function Id(t) {
return t && (t.pathData || t.d)
}
function Td(t) {
return t && (t.hasOwnProperty("pathData") || t.hasOwnProperty("d"))
}
function Cd(t, e) {
return t && t.hasOwnProperty(e)
}
function Ad(t, e, i) {
var n, r = {},
a = "toggleSelected" === t;
return i.eachComponent("legend", function(i) {
a && null != n ? i[n ? "select" : "unSelect"](e.name) : (i[t](e.name), n = i.isSelected(e.name));
var o = i.getData();
f(o, function(t) {
var e = t.get("name");
if ("\n" !== e && "" !== e) {
var n = i.isSelected(e);
r[e] = r.hasOwnProperty(e) ? r[e] && n : n
}
})
}), {
name: e.name,
selected: r
}
}
function Dd(t, e) {
var i = rx(e.get("padding")),
n = e.getItemStyle(["color", "opacity"]);
n.fill = e.get("backgroundColor");
var t = new Dy({
shape: {
x: t.x - i[3],
y: t.y - i[0],
width: t.width + i[1] + i[3],
height: t.height + i[0] + i[2],
r: e.get("borderRadius")
},
style: n,
silent: !0,
z2: -1
});
return t
}
function kd(t, e) {
e.dispatchAction({
type: "legendToggleSelect",
name: t
})
}
function Pd(t, e, i, n) {
var r = i.getZr().storage.getDisplayList()[0];
r && r.useHoverLayer || i.dispatchAction({
type: "highlight",
seriesName: t,
name: e,
excludeSeriesId: n
})
}
function Ld(t, e, i, n) {
var r = i.getZr().storage.getDisplayList()[0];
r && r.useHoverLayer || i.dispatchAction({
type: "downplay",
seriesName: t,
name: e,
excludeSeriesId: n
})
}
function Od(t, e, i) {
var n = t.getOrient(),
r = [1, 1];
r[n.index] = 0, So(e, i, {
type: "box",
ignoreSize: r
})
}
function zd(t, e, i, n, r) {
var a = t.axis;
if (!a.scale.isBlank() && a.containData(e)) {
if (!t.involveSeries) return void i.showPointer(t, e);
var s = Ed(e, t),
l = s.payloadBatch,
h = s.snapToValue;
l[0] && null == r.seriesIndex && o(r, l[0]), !n && t.snap && a.containData(h) && null != h && (e = h), i.showPointer(
t, e, l, r), i.showTooltip(t, s, h)
}
}
function Ed(t, e) {
var i = e.axis,
n = i.dim,
r = t,
a = [],
o = Number.MAX_VALUE,
s = -1;
return cM(e.seriesModels, function(e) {
var l, h, u = e.getData().mapDimension(n, !0);
if (e.getAxisTooltipData) {
var c = e.getAxisTooltipData(u, t, i);
h = c.dataIndices, l = c.nestestValue
} else {
if (h = e.getData().indicesOfNearest(u[0], t, "category" === i.type ? .5 : null), !h.length) return;
l = e.getData().get(u[0], h[0])
}
if (null != l && isFinite(l)) {
var d = t - l,
f = Math.abs(d);
o >= f && ((o > f || d >= 0 && 0 > s) && (o = f, s = d, r = l, a.length = 0), cM(h, function(t) {
a.push({
seriesIndex: e.seriesIndex,
dataIndexInside: t,
dataIndex: e.getData().getRawIndex(t)
})
}))
}
}), {
payloadBatch: a,
snapToValue: r
}
}
function Rd(t, e, i, n) {
t[e.key] = {
value: i,
payloadBatch: n
}
}
function Bd(t, e, i, n) {
var r = i.payloadBatch,
a = e.axis,
o = a.model,
s = e.axisPointerModel;
if (e.triggerTooltip && r.length) {
var l = e.coordSys.model,
h = Sc(l),
u = t.map[h];
u || (u = t.map[h] = {
coordSysId: l.id,
coordSysIndex: l.componentIndex,
coordSysType: l.type,
coordSysMainType: l.mainType,
dataByAxis: []
}, t.list.push(u)), u.dataByAxis.push({
axisDim: a.dim,
axisIndex: o.componentIndex,
axisType: o.type,
axisId: o.id,
value: n,
valueLabelOpt: {
precision: s.get("label.precision"),
formatter: s.get("label.formatter")
},
seriesDataIndices: r.slice()
})
}
}
function Nd(t, e, i) {
var n = i.axesInfo = [];
cM(e, function(e, i) {
var r = e.axisPointerModel.option,
a = t[i];
a ? (!e.useHandle && (r.status = "show"), r.value = a.value, r.seriesDataIndices = (a.payloadBatch || []).slice()) :
!e.useHandle && (r.status = "hide"), "show" === r.status && n.push({
axisDim: e.axis.dim,
axisIndex: e.axis.model.componentIndex,
value: r.value
})
})
}
function Fd(t, e, i, n) {
if (Hd(e) || !t.list.length) return void n({
type: "hideTip"
});
var r = ((t.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};
n({
type: "showTip",
escapeConnect: !0,
x: e[0],
y: e[1],
tooltipOption: i.tooltipOption,
position: i.position,
dataIndexInside: r.dataIndexInside,
dataIndex: r.dataIndex,
seriesIndex: r.seriesIndex,
dataByCoordSys: t.list
})
}
function Vd(t, e, i) {
var n = i.getZr(),
r = "axisPointerLastHighlights",
a = fM(n)[r] || {},
o = fM(n)[r] = {};
cM(t, function(t) {
var e = t.axisPointerModel.option;
"show" === e.status && cM(e.seriesDataIndices, function(t) {
var e = t.seriesIndex + " | " + t.dataIndex;
o[e] = t
})
});
var s = [],
l = [];
f(a, function(t, e) {
!o[e] && l.push(t)
}), f(o, function(t, e) {
!a[e] && s.push(t)
}), l.length && i.dispatchAction({
type: "downplay",
escapeConnect: !0,
batch: l
}), s.length && i.dispatchAction({
type: "highlight",
escapeConnect: !0,
batch: s
})
}
function Wd(t, e) {
for (var i = 0; i < (t || []).length; i++) {
var n = t[i];
if (e.axis.dim === n.axisDim && e.axis.model.componentIndex === n.axisIndex) return n
}
}
function Gd(t) {
var e = t.axis.model,
i = {},
n = i.axisDim = t.axis.dim;
return i.axisIndex = i[n + "AxisIndex"] = e.componentIndex, i.axisName = i[n + "AxisName"] = e.name, i.axisId = i[n +
"AxisId"] = e.id, i
}
function Hd(t) {
return !t || null == t[0] || isNaN(t[0]) || null == t[1] || isNaN(t[1])
}
function Zd(t, e, i) {
if (!tg.node) {
var n = e.getZr();
gM(n).records || (gM(n).records = {}), Xd(n, e);
var r = gM(n).records[t] || (gM(n).records[t] = {});
r.handler = i
}
}
function Xd(t, e) {
function i(i, n) {
t.on(i, function(i) {
var r = Ud(e);
vM(gM(t).records, function(t) {
t && n(t, i, r.dispatchAction)
}), Yd(r.pendings, e)
})
}
gM(t).initialized || (gM(t).initialized = !0, i("click", x(qd, "click")), i("mousemove", x(qd, "mousemove")), i(
"globalout", jd))
}
function Yd(t, e) {
var i, n = t.showTip.length,
r = t.hideTip.length;
n ? i = t.showTip[n - 1] : r && (i = t.hideTip[r - 1]), i && (i.dispatchAction = null, e.dispatchAction(i))
}
function jd(t, e, i) {
t.handler("leave", null, i)
}
function qd(t, e, i, n) {
e.handler(t, i, n)
}
function Ud(t) {
var e = {
showTip: [],
hideTip: []
},
i = function(n) {
var r = e[n.type];
r ? r.push(n) : (n.dispatchAction = i, t.dispatchAction(n))
};
return {
dispatchAction: i,
pendings: e
}
}
function $d(t, e) {
if (!tg.node) {
var i = e.getZr(),
n = (gM(i).records || {})[t];
n && (gM(i).records[t] = null)
}
}
function Kd() {}
function Qd(t, e, i, n) {
Jd(yM(i).lastProp, n) || (yM(i).lastProp = n, e ? La(i, n, t) : (i.stopAnimation(), i.attr(n)))
}
function Jd(t, e) {
if (S(t) && S(e)) {
var i = !0;
return f(e, function(e, n) {
i = i && Jd(t[n], e)
}), !!i
}
return t === e
}
function tf(t, e) {
t[e.get("label.show") ? "show" : "hide"]()
}
function ef(t) {
return {
position: t.position.slice(),
rotation: t.rotation || 0
}
}
function nf(t, e, i) {
var n = e.get("z"),
r = e.get("zlevel");
t && t.traverse(function(t) {
"group" !== t.type && (null != n && (t.z = n), null != r && (t.zlevel = r), t.silent = i)
})
}
function rf(t) {
var e, i = t.get("type"),
n = t.getModel(i + "Style");
return "line" === i ? (e = n.getLineStyle(), e.fill = null) : "shadow" === i && (e = n.getAreaStyle(), e.stroke =
null), e
}
function af(t, e, i, n, r) {
var a = i.get("value"),
o = sf(a, e.axis, e.ecModel, i.get("seriesDataIndices"), {
precision: i.get("label.precision"),
formatter: i.get("label.formatter")
}),
s = i.getModel("label"),
l = rx(s.get("padding") || 0),
h = s.getFont(),
u = Ei(o, h),
c = r.position,
d = u.width + l[1] + l[3],
f = u.height + l[0] + l[2],
p = r.align;
"right" === p && (c[0] -= d), "center" === p && (c[0] -= d / 2);
var g = r.verticalAlign;
"bottom" === g && (c[1] -= f), "middle" === g && (c[1] -= f / 2), of (c, d, f, n);
var v = s.get("backgroundColor");
v && "auto" !== v || (v = e.get("axisLine.lineStyle.color")), t.label = {
shape: {
x: 0,
y: 0,
width: d,
height: f,
r: s.get("borderRadius")
},
position: c.slice(),
style: {
text: o,
textFont: h,
textFill: s.getTextColor(),
textPosition: "inside",
fill: v,
stroke: s.get("borderColor") || "transparent",
lineWidth: s.get("borderWidth") || 0,
shadowBlur: s.get("shadowBlur"),
shadowColor: s.get("shadowColor"),
shadowOffsetX: s.get("shadowOffsetX"),
shadowOffsetY: s.get("shadowOffsetY")
},
z2: 10
}
}
function of (t, e, i, n) {
var r = n.getWidth(),
a = n.getHeight();
t[0] = Math.min(t[0] + e, r) - e, t[1] = Math.min(t[1] + i, a) - i, t[0] = Math.max(t[0], 0), t[1] = Math.max(t[1],
0)
}
function sf(t, e, i, n, r) {
t = e.scale.parse(t);
var a = e.scale.getLabel(t, {
precision: r.precision
}),
o = r.formatter;
if (o) {
var s = {
value: hu(e, t),
seriesData: []
};
f(n, function(t) {
var e = i.getSeriesByIndex(t.seriesIndex),
n = t.dataIndexInside,
r = e && e.getDataParams(n);
r && s.seriesData.push(r)
}), b(o) ? a = o.replace("{value}", a) : w(o) && (a = o(s))
}
return a
}
function lf(t, e, i) {
var n = be();
return Ce(n, n, i.rotation), Te(n, n, i.position), Ea([t.dataToCoord(e), (i.labelOffset || 0) + (i.labelDirection ||
1) * (i.labelMargin || 0)], n)
}
function hf(t, e, i, n, r, a) {
var o = Jb.innerTextLayout(i.rotation, 0, i.labelDirection);
i.labelMargin = r.get("label.margin"), af(e, n, r, a, {
position: lf(n.axis, t, i),
align: o.textAlign,
verticalAlign: o.textVerticalAlign
})
}
function uf(t, e, i) {
return i = i || 0, {
x1: t[i],
y1: t[1 - i],
x2: e[i],
y2: e[1 - i]
}
}
function cf(t, e, i) {
return i = i || 0, {
x: t[i],
y: t[1 - i],
width: e[i],
height: e[1 - i]
}
}
function df(t, e) {
var i = {};
return i[e.dim + "AxisIndex"] = e.index, t.getCartesian(i)
}
function ff(t) {
return "x" === t.dim ? 0 : 1
}
function pf(t) {
var e = "cubic-bezier(0.23, 1, 0.32, 1)",
i = "left " + t + "s " + e + ",top " + t + "s " + e;
return p(IM, function(t) {
return t + "transition:" + i
}).join(";")
}
function gf(t) {
var e = [],
i = t.get("fontSize"),
n = t.getTextColor();
return n && e.push("color:" + n), e.push("font:" + t.getFont()), i && e.push("line-height:" + Math.round(3 * i / 2) +
"px"), SM(["decoration", "align"], function(i) {
var n = t.get(i);
n && e.push("text-" + i + ":" + n)
}), e.join(";")
}
function vf(t) {
var e = [],
i = t.get("transitionDuration"),
n = t.get("backgroundColor"),
r = t.getModel("textStyle"),
a = t.get("padding");
return i && e.push(pf(i)), n && (tg.canvasSupported ? e.push("background-Color:" + n) : (e.push("background-Color:#" +
je(n)), e.push("filter:alpha(opacity=70)"))), SM(["width", "color", "radius"], function(i) {
var n = "border-" + i,
r = MM(n),
a = t.get(r);
null != a && e.push(n + ":" + a + ("color" === i ? "" : "px"))
}), e.push(gf(r)), null != a && e.push("padding:" + rx(a).join("px ") + "px"), e.join(";") + ";"
}
function mf(t, e) {
if (tg.wxa) return null;
var i = document.createElement("div"),
n = this._zr = e.getZr();
this.el = i, this._x = e.getWidth() / 2, this._y = e.getHeight() / 2, t.appendChild(i), this._container = t, this._show = !
1, this._hideTimeout;
var r = this;
i.onmouseenter = function() {
r._enterable && (clearTimeout(r._hideTimeout), r._show = !0), r._inContent = !0
}, i.onmousemove = function(e) {
if (e = e || window.event, !r._enterable) {
var i = n.handler;
pe(t, e, !0), i.dispatch("mousemove", e)
}
}, i.onmouseleave = function() {
r._enterable && r._show && r.hideLater(r._hideDelay), r._inContent = !1
}
}
function yf(t) {
this._zr = t.getZr(), this._show = !1, this._hideTimeout
}
function xf(t) {
for (var e = t.pop(); t.length;) {
var i = t.pop();
i && (Wa.isInstance(i) && (i = i.get("tooltip", !0)), "string" == typeof i && (i = {
formatter: i
}), e = new Wa(i, e, e.ecModel))
}
return e
}
function _f(t, e) {
return t.dispatchAction || y(e.dispatchAction, e)
}
function wf(t, e, i, n, r, a, o) {
var s = i.getOuterSize(),
l = s.width,
h = s.height;
return null != a && (t + l + a > n ? t -= l + a : t += a), null != o && (e + h + o > r ? e -= h + o : e += o), [t, e]
}
function bf(t, e, i, n, r) {
var a = i.getOuterSize(),
o = a.width,
s = a.height;
return t = Math.min(t + o, n) - o, e = Math.min(e + s, r) - s, t = Math.max(t, 0), e = Math.max(e, 0), [t, e]
}
function Sf(t, e, i) {
var n = i[0],
r = i[1],
a = 5,
o = 0,
s = 0,
l = e.width,
h = e.height;
switch (t) {
case "inside":
o = e.x + l / 2 - n / 2, s = e.y + h / 2 - r / 2;
break;
case "top":
o = e.x + l / 2 - n / 2, s = e.y - r - a;
break;
case "bottom":
o = e.x + l / 2 - n / 2, s = e.y + h + a;
break;
case "left":
o = e.x - n - a, s = e.y + h / 2 - r / 2;
break;
case "right":
o = e.x + l + a, s = e.y + h / 2 - r / 2
}
return [o, s]
}
function Mf(t) {
return "center" === t || "middle" === t
}
function If(t) {
Fn(t, "label", ["show"])
}
function Tf(t) {
return !(isNaN(parseFloat(t.x)) && isNaN(parseFloat(t.y)))
}
function Cf(t) {
return !isNaN(parseFloat(t.x)) && !isNaN(parseFloat(t.y))
}
function Af(t, e, i, n, r, a) {
var o = [],
s = Ph(e, n),
l = s ? e.getCalculationInfo("stackResultDimension") : n,
h = zf(e, l, t),
u = e.indicesOfNearest(l, h)[0];
o[r] = e.get(i, u), o[a] = e.get(n, u);
var c = Qa(e.get(n, u));
return c = Math.min(c, 20), c >= 0 && (o[a] = +o[a].toFixed(c)), o
}
function Df(t, e) {
var i = t.getData(),
r = t.coordinateSystem;
if (e && !Cf(e) && !_(e.coord) && r) {
var a = r.dimensions,
o = kf(e, i, r, t);
if (e = n(e), e.type && RM[e.type] && o.baseAxis && o.valueAxis) {
var s = zM(a, o.baseAxis.dim),
l = zM(a, o.valueAxis.dim);
e.coord = RM[e.type](i, o.baseDataDim, o.valueDataDim, s, l), e.value = e.coord[l]
} else {
for (var h = [null != e.xAxis ? e.xAxis : e.radiusAxis, null != e.yAxis ? e.yAxis : e.angleAxis], u = 0; 2 > u; u++)
RM[h[u]] && (h[u] = zf(i, i.mapDimension(a[u]), h[u]));
e.coord = h
}
}
return e
}
function kf(t, e, i, n) {
var r = {};
return null != t.valueIndex || null != t.valueDim ? (r.valueDataDim = null != t.valueIndex ? e.getDimension(t.valueIndex) :
t.valueDim, r.valueAxis = i.getAxis(Pf(n, r.valueDataDim)), r.baseAxis = i.getOtherAxis(r.valueAxis), r.baseDataDim =
e.mapDimension(r.baseAxis.dim)) : (r.baseAxis = n.getBaseAxis(), r.valueAxis = i.getOtherAxis(r.baseAxis), r.baseDataDim =
e.mapDimension(r.baseAxis.dim), r.valueDataDim = e.mapDimension(r.valueAxis.dim)), r
}
function Pf(t, e) {
var i = t.getData(),
n = i.dimensions;
e = i.getDimension(e);
for (var r = 0; r < n.length; r++) {
var a = i.getDimensionInfo(n[r]);
if (a.name === e) return a.coordDim
}
}
function Lf(t, e) {
return t && t.containData && e.coord && !Tf(e) ? t.containData(e.coord) : !0
}
function Of(t, e, i, n) {
return 2 > n ? t.coord && t.coord[n] : t.value
}
function zf(t, e, i) {
if ("average" === i) {
var n = 0,
r = 0;
return t.each(e, function(t) {
isNaN(t) || (n += t, r++)
}), n / r
}
return "median" === i ? t.getMedian(e) : t.getDataExtent(e, !0)["max" === i ? 1 : 0]
}
function Ef(t, e, i) {
var n = e.coordinateSystem;
t.each(function(r) {
var a, o = t.getItemModel(r),
s = Ua(o.get("x"), i.getWidth()),
l = Ua(o.get("y"), i.getHeight());
if (isNaN(s) || isNaN(l)) {
if (e.getMarkerPosition) a = e.getMarkerPosition(t.getValues(t.dimensions, r));
else if (n) {
var h = t.get(n.dimensions[0], r),
u = t.get(n.dimensions[1], r);
a = n.dataToPoint([h, u])
}
} else a = [s, l];
isNaN(s) || (a[0] = s), isNaN(l) || (a[1] = l), t.setItemLayout(r, a)
})
}
function Rf(t, e, i) {
var n;
n = t ? p(t && t.dimensions, function(t) {
var i = e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {};
return s({
name: t
}, i)
}) : [{
name: "value",
type: "float"
}];
var r = new Bw(n, i),
a = p(i.get("data"), x(Df, e));
return t && (a = v(a, x(Lf, t))), r.initData(a, null, t ? Of : function(t) {
return t.value
}), r
}
function Bf(t) {
return isNaN(+t.cpx1) || isNaN(+t.cpy1)
}
function Nf(t) {
return "_" + t + "Type"
}
function Ff(t, e, i) {
var n = e.getItemVisual(i, "color"),
r = e.getItemVisual(i, t),
a = e.getItemVisual(i, t + "Size");
if (r && "none" !== r) {
_(a) || (a = [a, a]);
var o = fu(r, -a[0] / 2, -a[1] / 2, a[0], a[1], n);
return o.name = t, o
}
}
function Vf(t) {
var e = new VM({
name: "line"
});
return Wf(e.shape, t), e
}
function Wf(t, e) {
var i = e[0],
n = e[1],
r = e[2];
t.x1 = i[0], t.y1 = i[1], t.x2 = n[0], t.y2 = n[1], t.percent = 1, r ? (t.cpx1 = r[0], t.cpy1 = r[1]) : (t.cpx1 = 0 /
0, t.cpy1 = 0 / 0)
}
function Gf() {
var t = this,
e = t.childOfName("fromSymbol"),
i = t.childOfName("toSymbol"),
n = t.childOfName("label");
if (e || i || !n.ignore) {
for (var r = 1, a = this.parent; a;) a.scale && (r /= a.scale[0]), a = a.parent;
var o = t.childOfName("line");
if (this.__dirty || o.__dirty) {
var s = o.shape.percent,
l = o.pointAt(0),
h = o.pointAt(s),
u = j([], h, l);
if (te(u, u), e) {
e.attr("position", l);
var c = o.tangentAt(0);
e.attr("rotation", Math.PI / 2 - Math.atan2(c[1], c[0])), e.attr("scale", [r * s, r * s])
}
if (i) {
i.attr("position", h);
var c = o.tangentAt(1);
i.attr("rotation", -Math.PI / 2 - Math.atan2(c[1], c[0])), i.attr("scale", [r * s, r * s])
}
if (!n.ignore) {
n.attr("position", h);
var d, f, p, g = 5 * r;
if ("end" === n.__position) d = [u[0] * g + h[0], u[1] * g + h[1]], f = u[0] > .8 ? "left" : u[0] < -.8 ? "right" :
"center", p = u[1] > .8 ? "top" : u[1] < -.8 ? "bottom" : "middle";
else if ("middle" === n.__position) {
var v = s / 2,
c = o.tangentAt(v),
m = [c[1], -c[0]],
y = o.pointAt(v);
m[1] > 0 && (m[0] = -m[0], m[1] = -m[1]), d = [y[0] + m[0] * g, y[1] + m[1] * g], f = "center", p = "bottom";
var x = -Math.atan2(c[1], c[0]);
h[0] < l[0] && (x = Math.PI + x), n.attr("rotation", x)
} else d = [-u[0] * g + l[0], -u[1] * g + l[1]], f = u[0] > .8 ? "right" : u[0] < -.8 ? "left" : "center", p = u[
1] > .8 ? "bottom" : u[1] < -.8 ? "top" : "middle";
n.attr({
style: {
textVerticalAlign: n.__verticalAlign || p,
textAlign: n.__textAlign || f
},
position: d,
scale: [r, r]
})
}
}
}
}
function Hf(t, e, i) {
lv.call(this), this._createLine(t, e, i)
}
function Zf(t) {
this._ctor = t || Hf, this.group = new lv
}
function Xf(t, e, i, n) {
var r = e.getItemLayout(i);
if (Uf(r)) {
var a = new t._ctor(e, i, n);
e.setItemGraphicEl(i, a), t.group.add(a)
}
}
function Yf(t, e, i, n, r, a) {
var o = e.getItemGraphicEl(n);
return Uf(i.getItemLayout(r)) ? (o ? o.updateData(i, r, a) : o = new t._ctor(i, r, a), i.setItemGraphicEl(r, o),
void t.group.add(o)) : void t.group.remove(o)
}
function jf(t) {
var e = t.hostModel;
return {
lineStyle: e.getModel("lineStyle").getLineStyle(),
hoverLineStyle: e.getModel("emphasis.lineStyle").getLineStyle(),
labelModel: e.getModel("label"),
hoverLabelModel: e.getModel("emphasis.label")
}
}
function qf(t) {
return isNaN(t[0]) || isNaN(t[1])
}
function Uf(t) {
return !qf(t[0]) && !qf(t[1])
}
function $f(t) {
return !isNaN(t) && !isFinite(t)
}
function Kf(t, e, i, n) {
var r = 1 - t,
a = n.dimensions[t];
return $f(e[r]) && $f(i[r]) && e[t] === i[t] && n.getAxis(a).containData(e[t])
}
function Qf(t, e) {
if ("cartesian2d" === t.type) {
var i = e[0].coord,
n = e[1].coord;
if (i && n && (Kf(1, i, n, t) || Kf(0, i, n, t))) return !0
}
return Lf(t, e[0]) && Lf(t, e[1])
}
function Jf(t, e, i, n, r) {
var a, o = n.coordinateSystem,
s = t.getItemModel(e),
l = Ua(s.get("x"), r.getWidth()),
h = Ua(s.get("y"), r.getHeight());
if (isNaN(l) || isNaN(h)) {
if (n.getMarkerPosition) a = n.getMarkerPosition(t.getValues(t.dimensions, e));
else {
var u = o.dimensions,
c = t.get(u[0], e),
d = t.get(u[1], e);
a = o.dataToPoint([c, d])
}
if ("cartesian2d" === o.type) {
var f = o.getAxis("x"),
p = o.getAxis("y"),
u = o.dimensions;
$f(t.get(u[0], e)) ? a[0] = f.toGlobalCoord(f.getExtent()[i ? 0 : 1]) : $f(t.get(u[1], e)) && (a[1] = p.toGlobalCoord(
p.getExtent()[i ? 0 : 1]))
}
isNaN(l) || (a[0] = l), isNaN(h) || (a[1] = h)
} else a = [l, h];
t.setItemLayout(e, a)
}
function tp(t, e, i) {
var n;
n = t ? p(t && t.dimensions, function(t) {
var i = e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {};
return s({
name: t
}, i)
}) : [{
name: "value",
type: "float"
}];
var r = new Bw(n, i),
a = new Bw(n, i),
o = new Bw([], i),
l = p(i.get("data"), x(ZM, e, t, i));
t && (l = v(l, x(Qf, t)));
var h = t ? Of : function(t) {
return t.value
};
return r.initData(p(l, function(t) {
return t[0]
}), null, h), a.initData(p(l, function(t) {
return t[1]
}), null, h), o.initData(p(l, function(t) {
return t[2]
})), o.hasItemOption = !0, {
from: r,
to: a,
line: o
}
}
function ep(t) {
return !isNaN(t) && !isFinite(t)
}
function ip(t, e, i) {
var n = 1 - t;
return ep(e[n]) && ep(i[n])
}
function np(t, e) {
var i = e.coord[0],
n = e.coord[1];
return "cartesian2d" === t.type && i && n && (ip(1, i, n, t) || ip(0, i, n, t)) ? !0 : Lf(t, {
coord: i,
x: e.x0,
y: e.y0
}) || Lf(t, {
coord: n,
x: e.x1,
y: e.y1
})
}
function rp(t, e, i, n, r) {
var a, o = n.coordinateSystem,
s = t.getItemModel(e),
l = Ua(s.get(i[0]), r.getWidth()),
h = Ua(s.get(i[1]), r.getHeight());
if (isNaN(l) || isNaN(h)) {
if (n.getMarkerPosition) a = n.getMarkerPosition(t.getValues(i, e));
else {
var u = t.get(i[0], e),
c = t.get(i[1], e),
d = [u, c];
o.clampData && o.clampData(d, d), a = o.dataToPoint(d, !0)
}
if ("cartesian2d" === o.type) {
var f = o.getAxis("x"),
p = o.getAxis("y"),
u = t.get(i[0], e),
c = t.get(i[1], e);
ep(u) ? a[0] = f.toGlobalCoord(f.getExtent()["x0" === i[0] ? 0 : 1]) : ep(c) && (a[1] = p.toGlobalCoord(p.getExtent()[
"y0" === i[1] ? 0 : 1]))
}
isNaN(l) || (a[0] = l), isNaN(h) || (a[1] = h)
} else a = [l, h];
return a
}
function ap(t, e, i) {
var n, r, a = ["x0", "y0", "x1", "y1"];
t ? (n = p(t && t.dimensions, function(t) {
var i = e.getData(),
n = i.getDimensionInfo(i.mapDimension(t)) || {};
return s({
name: t
}, n)
}), r = new Bw(p(a, function(t, e) {
return {
name: t,
type: n[e % 2].type
}
}), i)) : (n = [{
name: "value",
type: "float"
}], r = new Bw(n, i));
var o = p(i.get("data"), x(XM, e, t, i));
t && (o = v(o, x(np, t)));
var l = t ? function(t, e, i, n) {
return t.coord[Math.floor(n / 2)][n % 2]
} : function(t) {
return t.value
};
return r.initData(o, null, l), r.hasItemOption = !0, r
}
function op(t) {
var e = t.type,
i = {
number: "value",
time: "time"
};
if (i[e] && (t.axisType = i[e], delete t.type), sp(t), lp(t, "controlPosition")) {
var n = t.controlStyle || (t.controlStyle = {});
lp(n, "position") || (n.position = t.controlPosition), "none" !== n.position || lp(n, "show") || (n.show = !1,
delete n.position), delete t.controlPosition
}
f(t.data || [], function(t) {
S(t) && !_(t) && (!lp(t, "value") && lp(t, "name") && (t.value = t.name), sp(t))
})
}
function sp(t) {
var e = t.itemStyle || (t.itemStyle = {}),
i = e.emphasis || (e.emphasis = {}),
n = t.label || t.label || {},
r = n.normal || (n.normal = {}),
a = {
normal: 1,
emphasis: 1
};
f(n, function(t, e) {
a[e] || lp(r, e) || (r[e] = t)
}), i.label && !lp(n, "emphasis") && (n.emphasis = i.label, delete i.label)
}
function lp(t, e) {
return t.hasOwnProperty(e)
}
function hp(t, e) {
return bo(t.getBoxLayoutParams(), {
width: e.getWidth(),
height: e.getHeight()
}, t.get("padding"))
}
function up(t, e, i, r) {
var a = Qr(t.get(e).replace(/^path:\/\//, ""), n(r || {}), new gi(i[0], i[1], i[2], i[3]), "center");
return a
}
function cp(t, e, i, n, a, o) {
var s = e.get("color");
if (a) a.setColor(s), i.add(a), o && o.onUpdate(a);
else {
var l = t.get("symbol");
a = fu(l, -1, -1, 2, 2, s), a.setStyle("strokeNoScale", !0), i.add(a), o && o.onCreate(a)
}
var h = e.getItemStyle(["color", "symbol", "symbolSize"]);
a.setStyle(h), n = r({
rectHover: !0,
z2: 100
}, n, !0);
var u = t.get("symbolSize");
u = u instanceof Array ? u.slice() : [+u, +u], u[0] /= 2, u[1] /= 2, n.scale = u;
var c = t.get("symbolOffset");
if (c) {
var d = n.position = n.position || [0, 0];
d[0] += Ua(c[0], u[0]), d[1] += Ua(c[1], u[1])
}
var f = t.get("symbolRotate");
return n.rotation = (f || 0) * Math.PI / 180 || 0, a.attr(n), a.updateTransform(), a
}
function dp(t, e, i, n, r) {
if (!t.dragging) {
var a = n.getModel("checkpointStyle"),
o = i.dataToCoord(n.getData().get(["value"], e));
r || !a.get("animation", !0) ? t.attr({
position: [o, 0]
}) : (t.stopAnimation(!0), t.animateTo({
position: [o, 0]
}, a.get("animationDuration", !0), a.get("animationEasing", !0)))
}
}
function fp(t) {
return h(iI, t) >= 0
}
function pp(t, e) {
t = t.slice();
var i = p(t, _o);
e = (e || []).slice();
var n = p(e, _o);
return function(r, a) {
f(t, function(t, o) {
for (var s = {
name: t,
capital: i[o]
}, l = 0; l < e.length; l++) s[e[l]] = t + n[l];
r.call(a, s)
})
}
}
function gp(t, e, i) {
function n(t, e) {
return h(e.nodes, t) >= 0
}
function r(t, n) {
var r = !1;
return e(function(e) {
f(i(t, e) || [], function(t) {
n.records[e.name][t] && (r = !0)
})
}), r
}
function a(t, n) {
n.nodes.push(t), e(function(e) {
f(i(t, e) || [], function(t) {
n.records[e.name][t] = !0
})
})
}
return function(i) {
function o(t) {
!n(t, s) && r(t, s) && (a(t, s), l = !0)
}
var s = {
nodes: [],
records: {}
};
if (e(function(t) {
s.records[t.name] = {}
}), !i) return s;
a(i, s);
var l;
do l = !1, t(o); while (l);
return s
}
}
function vp(t, e, i) {
var n = [1 / 0, -1 / 0];
return rI(i, function(t) {
var i = t.getData();
i && rI(i.mapDimension(e, !0), function(t) {
var e = i.getApproximateExtent(t);
e[0] < n[0] && (n[0] = e[0]), e[1] > n[1] && (n[1] = e[1])
})
}), n[1] < n[0] && (n = [0 / 0, 0 / 0]), mp(t, n), n
}
function mp(t, e) {
var i = t.getAxisModel(),
n = i.getMin(!0),
r = "category" === i.get("type"),
a = r && i.getCategories().length;
null != n && "dataMin" !== n && "function" != typeof n ? e[0] = n : r && (e[0] = a > 0 ? 0 : 0 / 0);
var o = i.getMax(!0);
return null != o && "dataMax" !== o && "function" != typeof o ? e[1] = o : r && (e[1] = a > 0 ? a - 1 : 0 / 0), i.get(
"scale", !0) || (e[0] > 0 && (e[0] = 0), e[1] < 0 && (e[1] = 0)), e
}
function yp(t, e) {
var i = t.getAxisModel(),
n = t._percentWindow,
r = t._valueWindow;
if (n) {
var a = to(r, [0, 500]);
a = Math.min(a, 20);
var o = e || 0 === n[0] && 100 === n[1];
i.setRange(o ? null : +r[0].toFixed(a), o ? null : +r[1].toFixed(a))
}
}
function xp(t) {
var e = t._minMaxSpan = {},
i = t._dataZoomModel;
rI(["min", "max"], function(n) {
e[n + "Span"] = i.get(n + "Span");
var r = i.get(n + "ValueSpan");
if (null != r && (e[n + "ValueSpan"] = r, r = t.getAxisModel().axis.scale.parse(r), null != r)) {
var a = t._dataExtent;
e[n + "Span"] = qa(a[0] + r, a, [0, 100], !0)
}
})
}
function _p(t) {
var e = {};
return sI(["start", "end", "startValue", "endValue", "throttle"], function(i) {
t.hasOwnProperty(i) && (e[i] = t[i])
}), e
}
function wp(t, e) {
var i = t._rangePropMode,
n = t.get("rangeMode");
sI([
["start", "startValue"],
["end", "endValue"]
], function(t, r) {
var a = null != e[t[0]],
o = null != e[t[1]];
a && !o ? i[r] = "percent" : !a && o ? i[r] = "value" : n ? i[r] = n[r] : a && (i[r] = "percent")
})
}
function bp(t, e) {
var i = t[e] - t[1 - e];
return {
span: Math.abs(i),
sign: i > 0 ? -1 : 0 > i ? 1 : e ? -1 : 1
}
}
function Sp(t, e) {
return Math.min(e[1], Math.max(e[0], t))
}
function Mp(t) {
var e = {
x: "y",
y: "x",
radius: "angle",
angle: "radius"
};
return e[t]
}
function Ip(t) {
return "vertical" === t ? "ns-resize" : "ew-resize"
}
function Tp(t, e) {
return !!Cp(t)[e]
}
function Cp(t) {
return t[II] || (t[II] = {})
}
function Ap(t) {
this.pointerChecker, this._zr = t, this._opt = {};
var e = y,
i = e(Dp, this),
r = e(kp, this),
a = e(Pp, this),
o = e(Lp, this),
l = e(Op, this);
bg.call(this), this.setPointerChecker = function(t) {
this.pointerChecker = t
}, this.enable = function(e, h) {
this.disable(), this._opt = s(n(h) || {}, {
zoomOnMouseWheel: !0,
moveOnMouseMove: !0,
moveOnMouseWheel: !1,
preventDefaultMouseMove: !0
}), null == e && (e = !0), (e === !0 || "move" === e || "pan" === e) && (t.on("mousedown", i), t.on("mousemove",
r), t.on("mouseup", a)), (e === !0 || "scale" === e || "zoom" === e) && (t.on("mousewheel", o), t.on("pinch", l))
}, this.disable = function() {
t.off("mousedown", i), t.off("mousemove", r), t.off("mouseup", a), t.off("mousewheel", o), t.off("pinch", l)
}, this.dispose = this.disable, this.isDragging = function() {
return this._dragging
}, this.isPinching = function() {
return this._pinching
}
}
function Dp(t) {
if (!(me(t) || t.target && t.target.draggable)) {
var e = t.offsetX,
i = t.offsetY;
this.pointerChecker && this.pointerChecker(t, e, i) && (this._x = e, this._y = i, this._dragging = !0)
}
}
function kp(t) {
if (!me(t) && Rp("moveOnMouseMove", t, this._opt) && this._dragging && "pinch" !== t.gestureEvent && !Tp(this._zr,
"globalPan")) {
var e = t.offsetX,
i = t.offsetY,
n = this._x,
r = this._y,
a = e - n,
o = i - r;
this._x = e, this._y = i, this._opt.preventDefaultMouseMove && Ig(t.event), Ep(this, "pan", "moveOnMouseMove", t, {
dx: a,
dy: o,
oldX: n,
oldY: r,
newX: e,
newY: i
})
}
}
function Pp(t) {
me(t) || (this._dragging = !1)
}
function Lp(t) {
var e = Rp("zoomOnMouseWheel", t, this._opt),
i = Rp("moveOnMouseWheel", t, this._opt),
n = t.wheelDelta,
r = Math.abs(n),
a = t.offsetX,
o = t.offsetY;
if (0 !== n && (e || i)) {
if (e) {
var s = r > 3 ? 1.4 : r > 1 ? 1.2 : 1.1,
l = n > 0 ? s : 1 / s;
zp(this, "zoom", "zoomOnMouseWheel", t, {
scale: l,
originX: a,
originY: o
})
}
if (i) {
var h = Math.abs(n),
u = (n > 0 ? 1 : -1) * (h > 3 ? .4 : h > 1 ? .15 : .05);
zp(this, "scrollMove", "moveOnMouseWheel", t, {
scrollDelta: u,
originX: a,
originY: o
})
}
}
}
function Op(t) {
if (!Tp(this._zr, "globalPan")) {
var e = t.pinchScale > 1 ? 1.1 : 1 / 1.1;
zp(this, "zoom", null, t, {
scale: e,
originX: t.pinchX,
originY: t.pinchY
})
}
}
function zp(t, e, i, n, r) {
t.pointerChecker && t.pointerChecker(n, r.originX, r.originY) && (Ig(n.event), Ep(t, e, i, n, r))
}
function Ep(t, e, i, n, r) {
r.isAvailableBehavior = y(Rp, null, i, n), t.trigger(e, r)
}
function Rp(t, e, i) {
var n = i[t];
return !t || n && (!b(n) || e.event[n + "Key"])
}
function Bp(t, e) {
var i = Vp(t),
n = e.dataZoomId,
r = e.coordId;
f(i, function(t) {
var i = t.dataZoomInfos;
i[n] && h(e.allCoordIds, r) < 0 && (delete i[n], t.count--)
}), Gp(i);
var a = i[r];
a || (a = i[r] = {
coordId: r,
dataZoomInfos: {},
count: 0
}, a.controller = Wp(t, a), a.dispatchAction = x(Hp, t)), !a.dataZoomInfos[n] && a.count++, a.dataZoomInfos[n] = e;
var o = Zp(a.dataZoomInfos);
a.controller.enable(o.controlType, o.opt), a.controller.setPointerChecker(e.containsPoint), Hs(a, "dispatchAction",
e.dataZoomModel.get("throttle", !0), "fixRate")
}
function Np(t, e) {
var i = Vp(t);
f(i, function(t) {
t.controller.dispose();
var i = t.dataZoomInfos;
i[e] && (delete i[e], t.count--)
}), Gp(i)
}
function Fp(t) {
return t.type + "\x00_" + t.id
}
function Vp(t) {
var e = t.getZr();
return e[TI] || (e[TI] = {})
}
function Wp(t, e) {
var i = new Ap(t.getZr());
return f(["pan", "zoom", "scrollMove"], function(t) {
i.on(t, function(i) {
var n = [];
f(e.dataZoomInfos, function(r) {
if (i.isAvailableBehavior(r.dataZoomModel.option)) {
var a = (r.getRange || {})[t],
o = a && a(e.controller, i);
!r.dataZoomModel.get("disabled", !0) && o && n.push({
dataZoomId: r.dataZoomId,
start: o[0],
end: o[1]
})
}
}), n.length && e.dispatchAction(n)
})
}), i
}
function Gp(t) {
f(t, function(e, i) {
e.count || (e.controller.dispose(), delete t[i])
})
}
function Hp(t, e) {
t.dispatchAction({
type: "dataZoom",
batch: e
})
}
function Zp(t) {
var e, i = "type_",
n = {
type_true: 2,
type_move: 1,
type_false: 0,
type_undefined: -1
},
r = !0;
return f(t, function(t) {
var a = t.dataZoomModel,
o = a.get("disabled", !0) ? !1 : a.get("zoomLock", !0) ? "move" : !0;
n[i + o] > n[i + e] && (e = o), r &= a.get("preventDefaultMouseMove", !0)
}), {
controlType: e,
opt: {
zoomOnMouseWheel: !0,
moveOnMouseMove: !0,
moveOnMouseWheel: !0,
preventDefaultMouseMove: !!r
}
}
}
function Xp(t) {
return function(e, i, n, r) {
var a = this._range,
o = a.slice(),
s = e.axisModels[0];
if (s) {
var l = t(o, s, e, i, n, r);
return cI(l, o, [0, 100], "all"), this._range = o, a[0] !== o[0] || a[1] !== o[1] ? o : void 0
}
}
}
function Yp(t) {
return PI(t)
}
function jp() {
if (!zI && EI) {
zI = !0;
var t = EI.styleSheets;
t.length < 31 ? EI.createStyleSheet().addRule(".zrvml", "behavior:url(#default#VML)") : t[0].addRule(".zrvml",
"behavior:url(#default#VML)")
}
}
function qp(t) {
return parseInt(t, 10)
}
function Up(t, e) {
jp(), this.root = t, this.storage = e;
var i = document.createElement("div"),
n = document.createElement("div");
i.style.cssText = "display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;", n.style.cssText =
"position:absolute;left:0;top:0;", t.appendChild(i), this._vmlRoot = n, this._vmlViewport = i, this.resize();
var r = e.delFromStorage,
a = e.addToStorage;
e.delFromStorage = function(t) {
r.call(e, t), t && t.onRemove && t.onRemove(n)
}, e.addToStorage = function(t) {
t.onAdd && t.onAdd(n), a.call(e, t)
}, this._firstPaint = !0
}
function $p(t) {
return function() {
iv('In IE8.0 VML mode painter not support method "' + t + '"')
}
}
var Kp = 2311,
Qp = function() {
return Kp++
},
Jp = {};
Jp = "object" == typeof wx && "function" == typeof wx.getSystemInfoSync ? {
browser: {},
os: {},
node: !1,
wxa: !0,
canvasSupported: !0,
svgSupported: !1,
touchEventsSupported: !0,
domSupported: !1
} : "undefined" == typeof document && "undefined" != typeof self ? {
browser: {},
os: {},
node: !1,
worker: !0,
canvasSupported: !0,
domSupported: !1
} : "undefined" == typeof navigator ? {
browser: {},
os: {},
node: !0,
worker: !1,
canvasSupported: !0,
svgSupported: !0,
domSupported: !1
} : e(navigator.userAgent);
var tg = Jp,
eg = {
"[object Function]": 1,
"[object RegExp]": 1,
"[object Date]": 1,
"[object Error]": 1,
"[object CanvasGradient]": 1,
"[object CanvasPattern]": 1,
"[object Image]": 1,
"[object Canvas]": 1
},
ig = {
"[object Int8Array]": 1,
"[object Uint8Array]": 1,
"[object Uint8ClampedArray]": 1,
"[object Int16Array]": 1,
"[object Uint16Array]": 1,
"[object Int32Array]": 1,
"[object Uint32Array]": 1,
"[object Float32Array]": 1,
"[object Float64Array]": 1
},
ng = Object.prototype.toString,
rg = Array.prototype,
ag = rg.forEach,
og = rg.filter,
sg = rg.slice,
lg = rg.map,
hg = rg.reduce,
ug = {},
cg = function() {
return ug.createCanvas()
};
ug.createCanvas = function() {
return document.createElement("canvas")
};
var dg, fg = "__ec_primitive__";
B.prototype = {
constructor: B,
get: function(t) {
return this.data.hasOwnProperty(t) ? this.data[t] : null
},
set: function(t, e) {
return this.data[t] = e
},
each: function(t, e) {
void 0 !== e && (t = y(t, e));
for (var i in this.data) this.data.hasOwnProperty(i) && t(this.data[i], i)
},
removeKey: function(t) {
delete this.data[t]
}
};
var pg = (Object.freeze || Object)({
$override: i,
clone: n,
merge: r,
mergeAll: a,
extend: o,
defaults: s,
createCanvas: cg,
getContext: l,
indexOf: h,
inherits: u,
mixin: c,
isArrayLike: d,
each: f,
map: p,
reduce: g,
filter: v,
find: m,
bind: y,
curry: x,
isArray: _,
isFunction: w,
isString: b,
isObject: S,
isBuiltInObject: M,
isTypedArray: I,
isDom: T,
eqNaN: C,
retrieve: A,
retrieve2: D,
retrieve3: k,
slice: P,
normalizeCssArray: L,
assert: O,
trim: z,
setAsPrimitive: E,
isPrimitive: R,
createHashMap: N,
concatArray: F,
noop: V
}),
gg = "undefined" == typeof Float32Array ? Array : Float32Array,
vg = q,
mg = U,
yg = ee,
xg = ie,
_g = (Object.freeze || Object)({
create: W,
copy: G,
clone: H,
set: Z,
add: X,
scaleAndAdd: Y,
sub: j,
len: q,
length: vg,
lenSquare: U,
lengthSquare: mg,
mul: $,
div: K,
dot: Q,
scale: J,
normalize: te,
distance: ee,
dist: yg,
distanceSquare: ie,
distSquare: xg,
negate: ne,
lerp: re,
applyTransform: ae,
min: oe,
max: se
});
le.prototype = {
constructor: le,
_dragStart: function(t) {
var e = t.target;
e && e.draggable && (this._draggingTarget = e, e.dragging = !0, this._x = t.offsetX, this._y = t.offsetY, this.dispatchToElement(
he(e, t), "dragstart", t.event))
},
_drag: function(t) {
var e = this._draggingTarget;
if (e) {
var i = t.offsetX,
n = t.offsetY,
r = i - this._x,
a = n - this._y;
this._x = i, this._y = n, e.drift(r, a, t), this.dispatchToElement(he(e, t), "drag", t.event);
var o = this.findHover(i, n, e).target,
s = this._dropTarget;
this._dropTarget = o, e !== o && (s && o !== s && this.dispatchToElement(he(s, t), "dragleave", t.event), o && o !==
s && this.dispatchToElement(he(o, t), "dragenter", t.event))
}
},
_dragEnd: function(t) {
var e = this._draggingTarget;
e && (e.dragging = !1), this.dispatchToElement(he(e, t), "dragend", t.event), this._dropTarget && this.dispatchToElement(
he(this._dropTarget, t), "drop", t.event), this._draggingTarget = null, this._dropTarget = null
}
};
var wg = Array.prototype.slice,
bg = function(t) {
this._$handlers = {}, this._$eventProcessor = t
};
bg.prototype = {
constructor: bg,
one: function(t, e, i, n) {
var r = this._$handlers;
if ("function" == typeof e && (n = i, i = e, e = null), !i || !t) return this;
e = ue(this, e), r[t] || (r[t] = []);
for (var a = 0; a < r[t].length; a++)
if (r[t][a].h === i) return this;
return r[t].push({
h: i,
one: !0,
query: e,
ctx: n || this
}), this
},
on: function(t, e, i, n) {
var r = this._$handlers;
if ("function" == typeof e && (n = i, i = e, e = null), !i || !t) return this;
e = ue(this, e), r[t] || (r[t] = []);
for (var a = 0; a < r[t].length; a++)
if (r[t][a].h === i) return this;
return r[t].push({
h: i,
one: !1,
query: e,
ctx: n || this
}), this
},
isSilent: function(t) {
var e = this._$handlers;
return e[t] && e[t].length
},
off: function(t, e) {
var i = this._$handlers;
if (!t) return this._$handlers = {}, this;
if (e) {
if (i[t]) {
for (var n = [], r = 0, a = i[t].length; a > r; r++) i[t][r].h !== e && n.push(i[t][r]);
i[t] = n
}
i[t] && 0 === i[t].length && delete i[t]
} else delete i[t];
return this
},
trigger: function(t) {
var e = this._$handlers[t],
i = this._$eventProcessor;
if (e) {
var n = arguments,
r = n.length;
r > 3 && (n = wg.call(n, 1));
for (var a = e.length, o = 0; a > o;) {
var s = e[o];
if (i && i.filter && null != s.query && !i.filter(t, s.query)) o++;
else {
switch (r) {
case 1:
s.h.call(s.ctx);
break;
case 2:
s.h.call(s.ctx, n[1]);
break;
case 3:
s.h.call(s.ctx, n[1], n[2]);
break;
default:
s.h.apply(s.ctx, n)
}
s.one ? (e.splice(o, 1), a--) : o++
}
}
}
return i && i.afterTrigger && i.afterTrigger(t), this
},
triggerWithContext: function(t) {
var e = this._$handlers[t],
i = this._$eventProcessor;
if (e) {
var n = arguments,
r = n.length;
r > 4 && (n = wg.call(n, 1, n.length - 1));
for (var a = n[n.length - 1], o = e.length, s = 0; o > s;) {
var l = e[s];
if (i && i.filter && null != l.query && !i.filter(t, l.query)) s++;
else {
switch (r) {
case 1:
l.h.call(a);
break;
case 2:
l.h.call(a, n[1]);
break;
case 3:
l.h.call(a, n[1], n[2]);
break;
default:
l.h.apply(a, n)
}
l.one ? (e.splice(s, 1), o--) : s++
}
}
}
return i && i.afterTrigger && i.afterTrigger(t), this
}
};
var Sg = "undefined" != typeof window && !!window.addEventListener,
Mg = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
Ig = Sg ? function(t) {
t.preventDefault(), t.stopPropagation(), t.cancelBubble = !0
} : function(t) {
t.returnValue = !1, t.cancelBubble = !0
},
Tg = "silent";
_e.prototype.dispose = function() {};
var Cg = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"],
Ag = function(t, e, i, n) {
bg.call(this), this.storage = t, this.painter = e, this.painterRoot = n, i = i || new _e, this.proxy = null, this._hovered = {},
this._lastTouchMoment, this._lastX, this._lastY, le.call(this), this.setHandlerProxy(i)
};
Ag.prototype = {
constructor: Ag,
setHandlerProxy: function(t) {
this.proxy && this.proxy.dispose(), t && (f(Cg, function(e) {
t.on && t.on(e, this[e], this)
}, this), t.handler = this), this.proxy = t
},
mousemove: function(t) {
var e = t.zrX,
i = t.zrY,
n = this._hovered,
r = n.target;
r && !r.__zr && (n = this.findHover(n.x, n.y), r = n.target);
var a = this._hovered = this.findHover(e, i),
o = a.target,
s = this.proxy;
s.setCursor && s.setCursor(o ? o.cursor : "default"), r && o !== r && this.dispatchToElement(n, "mouseout", t),
this.dispatchToElement(a, "mousemove", t), o && o !== r && this.dispatchToElement(a, "mouseover", t)
},
mouseout: function(t) {
this.dispatchToElement(this._hovered, "mouseout", t);
var e, i = t.toElement || t.relatedTarget;
do i = i && i.parentNode; while (i && 9 != i.nodeType && !(e = i === this.painterRoot));
!e && this.trigger("globalout", {
event: t
})
},
resize: function() {
this._hovered = {}
},
dispatch: function(t, e) {
var i = this[t];
i && i.call(this, e)
},
dispose: function() {
this.proxy.dispose(), this.storage = this.proxy = this.painter = null
},
setCursorStyle: function(t) {
var e = this.proxy;
e.setCursor && e.setCursor(t)
},
dispatchToElement: function(t, e, i) {
t = t || {};
var n = t.target;
if (!n || !n.silent) {
for (var r = "on" + e, a = ye(e, t, i); n && (n[r] && (a.cancelBubble = n[r].call(n, a)), n.trigger(e, a), n = n
.parent, !a.cancelBubble););
a.cancelBubble || (this.trigger(e, a), this.painter && this.painter.eachOtherLayer(function(t) {
"function" == typeof t[r] && t[r].call(t, a), t.trigger && t.trigger(e, a)
}))
}
},
findHover: function(t, e, i) {
for (var n = this.storage.getDisplayList(), r = {
x: t,
y: e
}, a = n.length - 1; a >= 0; a--) {
var o;
if (n[a] !== i && !n[a].ignore && (o = we(n[a], t, e)) && (!r.topTarget && (r.topTarget = n[a]), o !== Tg)) {
r.target = n[a];
break
}
}
return r
}
}, f(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function(t) {
Ag.prototype[t] = function(e) {
var i = this.findHover(e.zrX, e.zrY),
n = i.target;
if ("mousedown" === t) this._downEl = n, this._downPoint = [e.zrX, e.zrY], this._upEl = n;
else if ("mouseup" === t) this._upEl = n;
else if ("click" === t) {
if (this._downEl !== this._upEl || !this._downPoint || yg(this._downPoint, [e.zrX, e.zrY]) > 4) return;
this._downPoint = null
}
this.dispatchToElement(i, t, e)
}
}), c(Ag, bg), c(Ag, le);
var Dg = "undefined" == typeof Float32Array ? Array : Float32Array,
kg = (Object.freeze || Object)({
create: be,
identity: Se,
copy: Me,
mul: Ie,
translate: Te,
rotate: Ce,
scale: Ae,
invert: De,
clone: ke
}),
Pg = Se,
Lg = 5e-5,
Og = function(t) {
t = t || {}, t.position || (this.position = [0, 0]), null == t.rotation && (this.rotation = 0), t.scale || (this.scale = [
1, 1
]), this.origin = this.origin || null
},
zg = Og.prototype;
zg.transform = null, zg.needLocalTransform = function() {
return Pe(this.rotation) || Pe(this.position[0]) || Pe(this.position[1]) || Pe(this.scale[0] - 1) || Pe(this.scale[
1] - 1)
};
var Eg = [];
zg.updateTransform = function() {
var t = this.parent,
e = t && t.transform,
i = this.needLocalTransform(),
n = this.transform;
if (!i && !e) return void(n && Pg(n));
n = n || be(), i ? this.getLocalTransform(n) : Pg(n), e && (i ? Ie(n, t.transform, n) : Me(n, t.transform)), this.transform =
n;
var r = this.globalScaleRatio;
if (null != r && 1 !== r) {
this.getGlobalScale(Eg);
var a = Eg[0] < 0 ? -1 : 1,
o = Eg[1] < 0 ? -1 : 1,
s = ((Eg[0] - a) * r + a) / Eg[0] || 0,
l = ((Eg[1] - o) * r + o) / Eg[1] || 0;
n[0] *= s, n[1] *= s, n[2] *= l, n[3] *= l
}
this.invTransform = this.invTransform || be(), De(this.invTransform, n)
}, zg.getLocalTransform = function(t) {
return Og.getLocalTransform(this, t)
}, zg.setTransform = function(t) {
var e = this.transform,
i = t.dpr || 1;
e ? t.setTransform(i * e[0], i * e[1], i * e[2], i * e[3], i * e[4], i * e[5]) : t.setTransform(i, 0, 0, i, 0, 0)
}, zg.restoreTransform = function(t) {
var e = t.dpr || 1;
t.setTransform(e, 0, 0, e, 0, 0)
};
var Rg = [],
Bg = be();
zg.setLocalTransform = function(t) {
if (t) {
var e = t[0] * t[0] + t[1] * t[1],
i = t[2] * t[2] + t[3] * t[3],
n = this.position,
r = this.scale;
Pe(e - 1) && (e = Math.sqrt(e)), Pe(i - 1) && (i = Math.sqrt(i)), t[0] < 0 && (e = -e), t[3] < 0 && (i = -i), n[0] =
t[4], n[1] = t[5], r[0] = e, r[1] = i, this.rotation = Math.atan2(-t[1] / i, t[0] / e)
}
}, zg.decomposeTransform = function() {
if (this.transform) {
var t = this.parent,
e = this.transform;
t && t.transform && (Ie(Rg, t.invTransform, e), e = Rg);
var i = this.origin;
i && (i[0] || i[1]) && (Bg[4] = i[0], Bg[5] = i[1], Ie(Rg, e, Bg), Rg[4] -= i[0], Rg[5] -= i[1], e = Rg), this.setLocalTransform(
e)
}
}, zg.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)
}, zg.transformCoordToLocal = function(t, e) {
var i = [t, e],
n = this.invTransform;
return n && ae(i, i, n), i
}, zg.transformCoordToGlobal = function(t, e) {
var i = [t, e],
n = this.transform;
return n && ae(i, i, n), i
}, Og.getLocalTransform = function(t, e) {
e = e || [], Pg(e);
var i = t.origin,
n = t.scale || [1, 1],
r = t.rotation || 0,
a = t.position || [0, 0];
return i && (e[4] -= i[0], e[5] -= i[1]), Ae(e, e, n), r && Ce(e, e, r), i && (e[4] += i[0], e[5] += i[1]), e[4] +=
a[0], e[5] += a[1], e
};
var Ng = {
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, i = .1,
n = .4;
return 0 === t ? 0 : 1 === t ? 1 : (!i || 1 > i ? (i = 1, e = n / 4) : e = n * Math.asin(1 / i) / (2 * Math.PI),
-(i * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / n)))
},
elasticOut: function(t) {
var e, i = .1,
n = .4;
return 0 === t ? 0 : 1 === t ? 1 : (!i || 1 > i ? (i = 1, e = n / 4) : e = n * Math.asin(1 / i) / (2 * Math.PI),
i * Math.pow(2, -10 * t) * Math.sin(2 * (t - e) * Math.PI / n) + 1)
},
elasticInOut: function(t) {
var e, i = .1,
n = .4;
return 0 === t ? 0 : 1 === t ? 1 : (!i || 1 > i ? (i = 1, e = n / 4) : e = n * Math.asin(1 / i) / (2 * Math.PI),
(t *= 2) < 1 ? -.5 * i * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / n) : i * Math.pow(2, -10 *
(t -= 1)) * Math.sin(2 * (t - e) * Math.PI / n) * .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 - Ng.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 * Ng.bounceIn(2 * t) : .5 * Ng.bounceOut(2 * t - 1) + .5
}
};
Le.prototype = {
constructor: Le,
step: function(t, e) {
if (this._initialized || (this._startTime = t + this._delay, this._initialized = !0), this._paused) return void(
this._pausedTime += e);
var i = (t - this._startTime - this._pausedTime) / this._life;
if (!(0 > i)) {
i = Math.min(i, 1);
var n = this.easing,
r = "string" == typeof n ? Ng[n] : n,
a = "function" == typeof r ? r(i) : i;
return this.fire("frame", a), 1 == i ? this.loop ? (this.restart(t), "restart") : (this._needsRemove = !0,
"destroy") : null
}
},
restart: function(t) {
var e = (t - this._startTime - this._pausedTime) % this._life;
this._startTime = t - e + this.gap, this._pausedTime = 0, this._needsRemove = !1
},
fire: function(t, e) {
t = "on" + t, this[t] && this[t](this._target, e)
},
pause: function() {
this._paused = !0
},
resume: function() {
this._paused = !1
}
};
var Fg = function() {
this.head = null, this.tail = null, this._len = 0
},
Vg = Fg.prototype;
Vg.insert = function(t) {
var e = new Wg(t);
return this.insertEntry(e), e
}, Vg.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++
}, Vg.remove = function(t) {
var e = t.prev,
i = t.next;
e ? e.next = i : this.head = i, i ? i.prev = e : this.tail = e, t.next = t.prev = null, this._len--
}, Vg.len = function() {
return this._len
}, Vg.clear = function() {
this.head = this.tail = null, this._len = 0
};
var Wg = function(t) {
this.value = t, this.next, this.prev
},
Gg = function(t) {
this._list = new Fg, this._map = {}, this._maxSize = t || 10, this._lastRemovedEntry = null
},
Hg = Gg.prototype;
Hg.put = function(t, e) {
var i = this._list,
n = this._map,
r = null;
if (null == n[t]) {
var a = i.len(),
o = this._lastRemovedEntry;
if (a >= this._maxSize && a > 0) {
var s = i.head;
i.remove(s), delete n[s.key], r = s.value, this._lastRemovedEntry = s
}
o ? o.value = e : o = new Wg(e), o.key = t, i.insertEntry(o), n[t] = o
}
return r
}, Hg.get = function(t) {
var e = this._map[t],
i = this._list;
return null != e ? (e !== i.tail && (i.remove(e), i.insertEntry(e)), e.value) : void 0
}, Hg.clear = function() {
this._list.clear(), this._map = {}
};
var Zg = {
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]
},
Xg = new Gg(20),
Yg = null,
jg = qe,
qg = Ue,
Ug = (Object.freeze || Object)({
parse: He,
lift: Ye,
toHex: je,
fastLerp: qe,
fastMapToColor: jg,
lerp: Ue,
mapToColor: qg,
modifyHSL: $e,
modifyAlpha: Ke,
stringify: Qe
}),
$g = Array.prototype.slice,
Kg = function(t, e, i, n) {
this._tracks = {}, this._target = t, this._loop = e || !1, this._getter = i || Je, this._setter = n || ti, this._clipCount =
0, this._delay = 0, this._doneList = [], this._onframeList = [], this._clipList = []
};
Kg.prototype = {
when: function(t, e) {
var i = this._tracks;
for (var n in e)
if (e.hasOwnProperty(n)) {
if (!i[n]) {
i[n] = [];
var r = this._getter(this._target, n);
if (null == r) continue;
0 !== t && i[n].push({
time: 0,
value: li(r)
})
}
i[n].push({
time: t,
value: e[n]
})
} return this
},
during: function(t) {
return this._onframeList.push(t), this
},
pause: function() {
for (var t = 0; t < this._clipList.length; t++) this._clipList[t].pause();
this._paused = !0
},
resume: function() {
for (var t = 0; t < this._clipList.length; t++) this._clipList[t].resume();
this._paused = !1
},
isPaused: function() {
return !!this._paused
},
_doneCallback: function() {
this._tracks = {}, this._clipList.length = 0;
for (var t = this._doneList, e = t.length, i = 0; e > i; i++) t[i].call(this)
},
start: function(t, e) {
var i, n = this,
r = 0,
a = function() {
r--, r || n._doneCallback()
};
for (var o in this._tracks)
if (this._tracks.hasOwnProperty(o)) {
var s = ci(this, t, a, this._tracks[o], o, e);
s && (this._clipList.push(s), r++, this.animation && this.animation.addClip(s), i = s)
} if (i) {
var l = i.onframe;
i.onframe = function(t, e) {
l(t, e);
for (var i = 0; i < n._onframeList.length; i++) n._onframeList[i](t, e)
}
}
return r || this._doneCallback(), this
},
stop: function(t) {
for (var e = this._clipList, i = this.animation, n = 0; n < e.length; n++) {
var r = e[n];
t && r.onframe(this._target, 1), i && i.removeClip(r)
}
e.length = 0
},
delay: function(t) {
return this._delay = t, this
},
done: function(t) {
return t && this._doneList.push(t), this
},
getClips: function() {
return this._clipList
}
};
var Qg = 1;
"undefined" != typeof window && (Qg = Math.max(window.devicePixelRatio || 1, 1));
var Jg = 0,
tv = Qg,
ev = function() {};
1 === Jg ? ev = function() {
for (var t in arguments) throw new Error(arguments[t])
} : Jg > 1 && (ev = function() {
for (var t in arguments) console.log(arguments[t])
});
var iv = ev,
nv = function() {
this.animators = []
};
nv.prototype = {
constructor: nv,
animate: function(t, e) {
var i, n = !1,
r = this,
a = this.__zr;
if (t) {
var o = t.split("."),
s = r;
n = "shape" === o[0];
for (var l = 0, u = o.length; u > l; l++) s && (s = s[o[l]]);
s && (i = s)
} else i = r;
if (!i) return void iv('Property "' + t + '" is not existed in element ' + r.id);
var c = r.animators,
d = new Kg(i, e);
return d.during(function() {
r.dirty(n)
}).done(function() {
c.splice(h(c, d), 1)
}), c.push(d), a && a.animation.addAnimator(d), d
},
stopAnimation: function(t) {
for (var e = this.animators, i = e.length, n = 0; i > n; n++) e[n].stop(t);
return e.length = 0, this
},
animateTo: function(t, e, i, n, r, a) {
di(this, t, e, i, n, r, a)
},
animateFrom: function(t, e, i, n, r, a) {
di(this, t, e, i, n, r, a, !0)
}
};
var rv = function(t) {
Og.call(this, t), bg.call(this, t), nv.call(this, t), this.id = t.id || Qp()
};
rv.prototype = {
type: "element",
name: "",
__zr: null,
ignore: !1,
clipPath: null,
isGroup: !1,
drift: function(t, e) {
switch (this.draggable) {
case "horizontal":
e = 0;
break;
case "vertical":
t = 0
}
var i = this.transform;
i || (i = this.transform = [1, 0, 0, 1, 0, 0]), i[4] += t, i[5] += e, this.decomposeTransform(), this.dirty(!1)
},
beforeUpdate: function() {},
afterUpdate: function() {},
update: function() {
this.updateTransform()
},
traverse: function() {},
attrKV: function(t, e) {
if ("position" === t || "scale" === t || "origin" === t) {
if (e) {
var i = this[t];
i || (i = this[t] = []), i[0] = e[0], i[1] = e[1]
}
} else this[t] = e
},
hide: function() {
this.ignore = !0, this.__zr && this.__zr.refresh()
},
show: function() {
this.ignore = !1, this.__zr && this.__zr.refresh()
},
attr: function(t, e) {
if ("string" == typeof t) this.attrKV(t, e);
else if (S(t))
for (var i in t) t.hasOwnProperty(i) && this.attrKV(i, t[i]);
return this.dirty(!1), this
},
setClipPath: function(t) {
var e = this.__zr;
e && t.addSelfToZr(e), this.clipPath && this.clipPath !== t && this.removeClipPath(), this.clipPath = t, t.__zr =
e, t.__clipTarget = this, this.dirty(!1)
},
removeClipPath: function() {
var t = this.clipPath;
t && (t.__zr && t.removeSelfFromZr(t.__zr), t.__zr = null, t.__clipTarget = null, this.clipPath = null, this.dirty(
!1))
},
addSelfToZr: function(t) {
this.__zr = t;
var e = this.animators;
if (e)
for (var i = 0; i < e.length; i++) t.animation.addAnimator(e[i]);
this.clipPath && this.clipPath.addSelfToZr(t)
},
removeSelfFromZr: function(t) {
this.__zr = null;
var e = this.animators;
if (e)
for (var i = 0; i < e.length; i++) t.animation.removeAnimator(e[i]);
this.clipPath && this.clipPath.removeSelfFromZr(t)
}
}, c(rv, nv), c(rv, Og), c(rv, bg);
var av = ae,
ov = Math.min,
sv = Math.max;
gi.prototype = {
constructor: gi,
union: function(t) {
var e = ov(t.x, this.x),
i = ov(t.y, this.y);
this.width = sv(t.x + t.width, this.x + this.width) - e, this.height = sv(t.y + t.height, this.y + this.height) -
i, this.x = e, this.y = i
},
applyTransform: function() {
var t = [],
e = [],
i = [],
n = [];
return function(r) {
if (r) {
t[0] = i[0] = this.x, t[1] = n[1] = this.y, e[0] = n[0] = this.x + this.width, e[1] = i[1] = this.y + this.height,
av(t, t, r), av(e, e, r), av(i, i, r), av(n, n, r), this.x = ov(t[0], e[0], i[0], n[0]), this.y = ov(t[1], e[
1], i[1], n[1]);
var a = sv(t[0], e[0], i[0], n[0]),
o = sv(t[1], e[1], i[1], n[1]);
this.width = a - this.x, this.height = o - this.y
}
}
}(),
calculateTransform: function(t) {
var e = this,
i = t.width / e.width,
n = t.height / e.height,
r = be();
return Te(r, r, [-e.x, -e.y]), Ae(r, r, [i, n]), Te(r, r, [t.x, t.y]), r
},
intersect: function(t) {
if (!t) return !1;
t instanceof gi || (t = gi.create(t));
var e = this,
i = e.x,
n = e.x + e.width,
r = e.y,
a = e.y + e.height,
o = t.x,
s = t.x + t.width,
l = t.y,
h = t.y + t.height;
return !(o > n || i > s || l > a || r > h)
},
contain: function(t, e) {
var i = this;
return t >= i.x && t <= i.x + i.width && e >= i.y && e <= i.y + i.height
},
clone: function() {
return new gi(this.x, this.y, this.width, this.height)
},
copy: function(t) {
this.x = t.x, this.y = t.y, this.width = t.width, this.height = t.height
},
plain: function() {
return {
x: this.x,
y: this.y,
width: this.width,
height: this.height
}
}
}, gi.create = function(t) {
return new gi(t.x, t.y, t.width, t.height)
};
var lv = function(t) {
t = t || {}, rv.call(this, t);
for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]);
this._children = [], this.__storage = null, this.__dirty = !0
};
lv.prototype = {
constructor: lv,
isGroup: !0,
type: "group",
silent: !1,
children: function() {
return this._children.slice()
},
childAt: function(t) {
return this._children[t]
},
childOfName: function(t) {
for (var e = this._children, i = 0; i < e.length; i++)
if (e[i].name === t) return e[i]
},
childCount: function() {
return this._children.length
},
add: function(t) {
return t && t !== this && t.parent !== this && (this._children.push(t), this._doAdd(t)), this
},
addBefore: function(t, e) {
if (t && t !== this && t.parent !== this && e && e.parent === this) {
var i = this._children,
n = i.indexOf(e);
n >= 0 && (i.splice(n, 0, t), this._doAdd(t))
}
return this
},
_doAdd: function(t) {
t.parent && t.parent.remove(t), t.parent = this;
var e = this.__storage,
i = this.__zr;
e && e !== t.__storage && (e.addToStorage(t), t instanceof lv && t.addChildrenToStorage(e)), i && i.refresh()
},
remove: function(t) {
var e = this.__zr,
i = this.__storage,
n = this._children,
r = h(n, t);
return 0 > r ? this : (n.splice(r, 1), t.parent = null, i && (i.delFromStorage(t), t instanceof lv && t.delChildrenFromStorage(
i)), e && e.refresh(), this)
},
removeAll: function() {
var t, e, i = this._children,
n = this.__storage;
for (e = 0; e < i.length; e++) t = i[e], n && (n.delFromStorage(t), t instanceof lv && t.delChildrenFromStorage(n)),
t.parent = null;
return i.length = 0, this
},
eachChild: function(t, e) {
for (var i = this._children, n = 0; n < i.length; n++) {
var r = i[n];
t.call(e, r, n)
}
return this
},
traverse: function(t, e) {
for (var i = 0; i < this._children.length; i++) {
var n = this._children[i];
t.call(e, n), "group" === n.type && n.traverse(t, e)
}
return this
},
addChildrenToStorage: function(t) {
for (var e = 0; e < this._children.length; e++) {
var i = this._children[e];
t.addToStorage(i), i instanceof lv && i.addChildrenToStorage(t)
}
},
delChildrenFromStorage: function(t) {
for (var e = 0; e < this._children.length; e++) {
var i = this._children[e];
t.delFromStorage(i), i instanceof lv && i.delChildrenFromStorage(t)
}
},
dirty: function() {
return this.__dirty = !0, this.__zr && this.__zr.refresh(), this
},
getBoundingRect: function(t) {
for (var e = null, i = new gi(0, 0, 0, 0), n = t || this._children, r = [], a = 0; a < n.length; a++) {
var o = n[a];
if (!o.ignore && !o.invisible) {
var s = o.getBoundingRect(),
l = o.getLocalTransform(r);
l ? (i.copy(s), i.applyTransform(l), e = e || i.clone(), e.union(i)) : (e = e || s.clone(), e.union(s))
}
}
return e || i
}
}, u(lv, rv);
var hv = 32,
uv = 7,
cv = function() {
this._roots = [], this._displayList = [], this._displayListLen = 0
};
cv.prototype = {
constructor: cv,
traverse: function(t, e) {
for (var i = 0; i < this._roots.length; i++) this._roots[i].traverse(t, e)
},
getDisplayList: function(t, e) {
return e = e || !1, t && this.updateDisplayList(e), this._displayList
},
updateDisplayList: function(t) {
this._displayListLen = 0;
for (var e = this._roots, i = this._displayList, n = 0, r = e.length; r > n; n++) this._updateAndAddDisplayable(e[
n], null, t);
i.length = this._displayListLen, tg.canvasSupported && Si(i, Mi)
},
_updateAndAddDisplayable: function(t, e, i) {
if (!t.ignore || i) {
t.beforeUpdate(), t.__dirty && t.update(), t.afterUpdate();
var n = t.clipPath;
if (n) {
e = e ? e.slice() : [];
for (var r = n, a = t; r;) r.parent = a, r.updateTransform(), e.push(r), a = r, r = r.clipPath
}
if (t.isGroup) {
for (var o = t._children, s = 0; s < o.length; s++) {
var l = o[s];
t.__dirty && (l.__dirty = !0), this._updateAndAddDisplayable(l, e, i)
}
t.__dirty = !1
} else t.__clipPaths = e, this._displayList[this._displayListLen++] = t
}
},
addRoot: function(t) {
t.__storage !== this && (t instanceof lv && t.addChildrenToStorage(this), this.addToStorage(t), this._roots.push(
t))
},
delRoot: function(t) {
if (null == t) {
for (var e = 0; e < this._roots.length; e++) {
var i = this._roots[e];
i instanceof lv && i.delChildrenFromStorage(this)
}
return this._roots = [], this._displayList = [], void(this._displayListLen = 0)
}
if (t instanceof Array)
for (var e = 0, n = t.length; n > e; e++) this.delRoot(t[e]);
else {
var r = h(this._roots, t);
r >= 0 && (this.delFromStorage(t), this._roots.splice(r, 1), t instanceof lv && t.delChildrenFromStorage(this))
}
},
addToStorage: function(t) {
return t && (t.__storage = this, t.dirty(!1)), this
},
delFromStorage: function(t) {
return t && (t.__storage = null), this
},
dispose: function() {
this._renderList = this._roots = null
},
displayableSortFunc: Mi
};
var dv = {
shadowBlur: 1,
shadowOffsetX: 1,
shadowOffsetY: 1,
textShadowBlur: 1,
textShadowOffsetX: 1,
textShadowOffsetY: 1,
textBoxShadowBlur: 1,
textBoxShadowOffsetX: 1,
textBoxShadowOffsetY: 1
},
fv = function(t, e, i) {
return dv.hasOwnProperty(e) ? i *= t.dpr : i
},
pv = [
["shadowBlur", 0],
["shadowOffsetX", 0],
["shadowOffsetY", 0],
["shadowColor", "#000"],
["lineCap", "butt"],
["lineJoin", "miter"],
["miterLimit", 10]
],
gv = function(t) {
this.extendFrom(t, !1)
};
gv.prototype = {
constructor: gv,
fill: "#000",
stroke: null,
opacity: 1,
fillOpacity: null,
strokeOpacity: null,
lineDash: null,
lineDashOffset: 0,
shadowBlur: 0,
shadowOffsetX: 0,
shadowOffsetY: 0,
lineWidth: 1,
strokeNoScale: !1,
text: null,
font: null,
textFont: null,
fontStyle: null,
fontWeight: null,
fontSize: null,
fontFamily: null,
textTag: null,
textFill: "#000",
textStroke: null,
textWidth: null,
textHeight: null,
textStrokeWidth: 0,
textLineHeight: null,
textPosition: "inside",
textRect: null,
textOffset: null,
textAlign: null,
textVerticalAlign: null,
textDistance: 5,
textShadowColor: "transparent",
textShadowBlur: 0,
textShadowOffsetX: 0,
textShadowOffsetY: 0,
textBoxShadowColor: "transparent",
textBoxShadowBlur: 0,
textBoxShadowOffsetX: 0,
textBoxShadowOffsetY: 0,
transformText: !1,
textRotation: 0,
textOrigin: null,
textBackgroundColor: null,
textBorderColor: null,
textBorderWidth: 0,
textBorderRadius: 0,
textPadding: null,
rich: null,
truncate: null,
blend: null,
bind: function(t, e, i) {
for (var n = this, r = i && i.style, a = !r, o = 0; o < pv.length; o++) {
var s = pv[o],
l = s[0];
(a || n[l] !== r[l]) && (t[l] = fv(t, l, n[l] || s[1]))
}
if ((a || n.fill !== r.fill) && (t.fillStyle = n.fill), (a || n.stroke !== r.stroke) && (t.strokeStyle = n.stroke),
(a || n.opacity !== r.opacity) && (t.globalAlpha = null == n.opacity ? 1 : n.opacity), (a || n.blend !== r.blend) &&
(t.globalCompositeOperation = n.blend || "source-over"), this.hasStroke()) {
var h = n.lineWidth;
t.lineWidth = h / (this.strokeNoScale && e && e.getLineScale ? e.getLineScale() : 1)
}
},
hasFill: function() {
var t = this.fill;
return null != t && "none" !== t
},
hasStroke: function() {
var t = this.stroke;
return null != t && "none" !== t && this.lineWidth > 0
},
extendFrom: function(t, e) {
if (t)
for (var i in t) !t.hasOwnProperty(i) || e !== !0 && (e === !1 ? this.hasOwnProperty(i) : null == t[i]) || (this[
i] = t[i])
},
set: function(t, e) {
"string" == typeof t ? this[t] = e : this.extendFrom(t, !0)
},
clone: function() {
var t = new this.constructor;
return t.extendFrom(this, !0), t
},
getGradient: function(t, e, i) {
for (var n = "radial" === e.type ? Ti : Ii, r = n(t, e, i), a = e.colorStops, o = 0; o < a.length; o++) r.addColorStop(
a[o].offset, a[o].color);
return r
}
};
for (var vv = gv.prototype, mv = 0; mv < pv.length; mv++) {
var yv = pv[mv];
yv[0] in vv || (vv[yv[0]] = yv[1])
}
gv.getGradient = vv.getGradient;
var xv = function(t, e) {
this.image = t, this.repeat = e, this.type = "pattern"
};
xv.prototype.getCanvasPattern = function(t) {
return t.createPattern(this.image, this.repeat || "repeat")
};
var _v = function(t, e, i) {
var n;
i = i || tv, "string" == typeof t ? n = Ai(t, e, i) : S(t) && (n = t, t = n.id), this.id = t, this.dom = n;
var r = n.style;
r && (n.onselectstart = Ci, r["-webkit-user-select"] = "none", r["user-select"] = "none", r["-webkit-touch-callout"] =
"none", r["-webkit-tap-highlight-color"] = "rgba(0,0,0,0)", r.padding = 0, r.margin = 0, r["border-width"] = 0),
this.domBack = null, this.ctxBack = null, this.painter = e, this.config = null, this.clearColor = 0, this.motionBlur = !
1, this.lastFrameAlpha = .7, this.dpr = i
};
_v.prototype = {
constructor: _v,
__dirty: !0,
__used: !1,
__drawIndex: 0,
__startIndex: 0,
__endIndex: 0,
incremental: !1,
getElementCount: function() {
return this.__endIndex - this.__startIndex
},
initContext: function() {
this.ctx = this.dom.getContext("2d"), this.ctx.dpr = this.dpr
},
createBackBuffer: function() {
var t = this.dpr;
this.domBack = Ai("back-" + this.id, this.painter, t), this.ctxBack = this.domBack.getContext("2d"), 1 != t &&
this.ctxBack.scale(t, t)
},
resize: function(t, e) {
var i = this.dpr,
n = this.dom,
r = n.style,
a = this.domBack;
r && (r.width = t + "px", r.height = e + "px"), n.width = t * i, n.height = e * i, a && (a.width = t * i, a.height =
e * i, 1 != i && this.ctxBack.scale(i, i))
},
clear: function(t, e) {
var i = this.dom,
n = this.ctx,
r = i.width,
a = i.height,
e = e || this.clearColor,
o = this.motionBlur && !t,
s = this.lastFrameAlpha,
l = this.dpr;
if (o && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation = "copy", this.ctxBack.drawImage(
i, 0, 0, r / l, a / l)), n.clearRect(0, 0, r, a), e && "transparent" !== e) {
var h;
e.colorStops ? (h = e.__canvasGradient || gv.getGradient(n, e, {
x: 0,
y: 0,
width: r,
height: a
}), e.__canvasGradient = h) : e.image && (h = xv.prototype.getCanvasPattern.call(e, n)), n.save(), n.fillStyle =
h || e, n.fillRect(0, 0, r, a), n.restore()
}
if (o) {
var u = this.domBack;
n.save(), n.globalAlpha = s, n.drawImage(u, 0, 0, r, a), n.restore()
}
}
};
var wv = "undefined" != typeof window && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) ||
window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame) || function(t) {
setTimeout(t, 16)
},
bv = new Gg(50),
Sv = {},
Mv = 0,
Iv = 5e3,
Tv = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g,
Cv = "12px sans-serif",
Av = {};
Av.measureText = function(t, e) {
var i = l();
return i.font = e || Cv, i.measureText(t)
};
var Dv = {
left: 1,
right: 1,
center: 1
},
kv = {
top: 1,
bottom: 1,
middle: 1
},
Pv = [
["textShadowBlur", "shadowBlur", 0],
["textShadowOffsetX", "shadowOffsetX", 0],
["textShadowOffsetY", "shadowOffsetY", 0],
["textShadowColor", "shadowColor", "transparent"]
],
Lv = new gi,
Ov = function() {};
Ov.prototype = {
constructor: Ov,
drawRectText: function(t, e) {
var i = this.style;
e = i.textRect || e, this.__dirty && Qi(i, !0);
var n = i.text;
if (null != n && (n += ""), vn(n, i)) {
t.save();
var r = this.transform;
i.transformText ? this.setTransform(t) : r && (Lv.copy(e), Lv.applyTransform(r), e = Lv), tn(this, t, n, i, e),
t.restore()
}
}
}, mn.prototype = {
constructor: mn,
type: "displayable",
__dirty: !0,
invisible: !1,
z: 0,
z2: 0,
zlevel: 0,
draggable: !1,
dragging: !1,
silent: !1,
culling: !1,
cursor: "pointer",
rectHover: !1,
progressive: !1,
incremental: !1,
globalScaleRatio: 1,
beforeBrush: function() {},
afterBrush: function() {},
brush: function() {},
getBoundingRect: function() {},
contain: function(t, e) {
return this.rectContain(t, e)
},
traverse: function(t, e) {
t.call(e, this)
},
rectContain: function(t, e) {
var i = this.transformCoordToLocal(t, e),
n = this.getBoundingRect();
return n.contain(i[0], i[1])
},
dirty: function() {
this.__dirty = this.__dirtyText = !0, this._rect = null, this.__zr && this.__zr.refresh()
},
animateStyle: function(t) {
return this.animate("style", t)
},
attrKV: function(t, e) {
"style" !== t ? rv.prototype.attrKV.call(this, t, e) : this.style.set(e)
},
setStyle: function(t, e) {
return this.style.set(t, e), this.dirty(!1), this
},
useStyle: function(t) {
return this.style = new gv(t, this), this.dirty(!1), this
}
}, u(mn, rv), c(mn, Ov), yn.prototype = {
constructor: yn,
type: "image",
brush: function(t, e) {
var i = this.style,
n = i.image;
i.bind(t, this, e);
var r = this._image = ki(n, this._image, this, this.onload);
if (r && Li(r)) {
var a = i.x || 0,
o = i.y || 0,
s = i.width,
l = i.height,
h = r.width / r.height;
if (null == s && null != l ? s = l * h : null == l && null != s ? l = s / h : null == s && null == l && (s = r.width,
l = r.height), this.setTransform(t), i.sWidth && i.sHeight) {
var u = i.sx || 0,
c = i.sy || 0;
t.drawImage(r, u, c, i.sWidth, i.sHeight, a, o, s, l)
} else if (i.sx && i.sy) {
var u = i.sx,
c = i.sy,
d = s - u,
f = l - c;
t.drawImage(r, u, c, d, f, a, o, s, l)
} else t.drawImage(r, a, o, s, l);
null != i.text && (this.restoreTransform(t), this.drawRectText(t, this.getBoundingRect()))
}
},
getBoundingRect: function() {
var t = this.style;
return this._rect || (this._rect = new gi(t.x || 0, t.y || 0, t.width || 0, t.height || 0)), this._rect
}
}, u(yn, mn);
var zv = 1e5,
Ev = 314159,
Rv = .01,
Bv = .001,
Nv = new gi(0, 0, 0, 0),
Fv = new gi(0, 0, 0, 0),
Vv = function(t, e, i) {
this.type = "canvas";
var n = !t.nodeName || "CANVAS" === t.nodeName.toUpperCase();
this._opts = i = o({}, i || {}), this.dpr = i.devicePixelRatio || tv, this._singleCanvas = n, this.root = t;
var r = t.style;
r && (r["-webkit-tap-highlight-color"] = "transparent", r["-webkit-user-select"] = r["user-select"] = r[
"-webkit-touch-callout"] = "none", t.innerHTML = ""), this.storage = e;
var a = this._zlevelList = [],
s = this._layers = {};
if (this._layerConfig = {}, this._needsManuallyCompositing = !1, n) {
var l = t.width,
h = t.height;
null != i.width && (l = i.width), null != i.height && (h = i.height), this.dpr = i.devicePixelRatio || 1, t.width =
l * this.dpr, t.height = h * this.dpr, this._width = l, this._height = h;
var u = new _v(t, this, this.dpr);
u.__builtin__ = !0, u.initContext(), s[Ev] = u, u.zlevel = Ev, a.push(Ev), this._domRoot = t
} else {
this._width = this._getSize(0), this._height = this._getSize(1);
var c = this._domRoot = Mn(this._width, this._height);
t.appendChild(c)
}
this._hoverlayer = null, this._hoverElements = []
};
Vv.prototype = {
constructor: Vv,
getType: function() {
return "canvas"
},
isSingleCanvas: function() {
return this._singleCanvas
},
getViewportRoot: function() {
return this._domRoot
},
getViewportRootOffset: function() {
var t = this.getViewportRoot();
return t ? {
offsetLeft: t.offsetLeft || 0,
offsetTop: t.offsetTop || 0
} : void 0
},
refresh: function(t) {
var e = this.storage.getDisplayList(!0),
i = this._zlevelList;
this._redrawId = Math.random(), this._paintList(e, t, this._redrawId);
for (var n = 0; n < i.length; n++) {
var r = i[n],
a = this._layers[r];
if (!a.__builtin__ && a.refresh) {
var o = 0 === n ? this._backgroundColor : null;
a.refresh(o)
}
}
return this.refreshHover(), this
},
addHover: function(t, e) {
if (!t.__hoverMir) {
var i = new t.constructor({
style: t.style,
shape: t.shape,
z: t.z,
z2: t.z2,
silent: t.silent
});
return i.__from = t, t.__hoverMir = i, e && i.setStyle(e), this._hoverElements.push(i), i
}
},
removeHover: function(t) {
var e = t.__hoverMir,
i = this._hoverElements,
n = h(i, e);
n >= 0 && i.splice(n, 1), t.__hoverMir = null
},
clearHover: function() {
for (var t = this._hoverElements, e = 0; e < t.length; e++) {
var i = t[e].__from;
i && (i.__hoverMir = null)
}
t.length = 0
},
refreshHover: function() {
var t = this._hoverElements,
e = t.length,
i = this._hoverlayer;
if (i && i.clear(), e) {
Si(t, this.storage.displayableSortFunc), i || (i = this._hoverlayer = this.getLayer(zv));
var n = {};
i.ctx.save();
for (var r = 0; e > r;) {
var a = t[r],
o = a.__from;
o && o.__zr ? (r++, o.invisible || (a.transform = o.transform, a.invTransform = o.invTransform, a.__clipPaths =
o.__clipPaths, this._doPaintEl(a, i, !0, n))) : (t.splice(r, 1), o.__hoverMir = null, e--)
}
i.ctx.restore()
}
},
getHoverLayer: function() {
return this.getLayer(zv)
},
_paintList: function(t, e, i) {
if (this._redrawId === i) {
e = e || !1, this._updateLayerStatus(t);
var n = this._doPaintList(t, e);
if (this._needsManuallyCompositing && this._compositeManually(), !n) {
var r = this;
wv(function() {
r._paintList(t, e, i)
})
}
}
},
_compositeManually: function() {
var t = this.getLayer(Ev).ctx,
e = this._domRoot.width,
i = this._domRoot.height;
t.clearRect(0, 0, e, i), this.eachBuiltinLayer(function(n) {
n.virtual && t.drawImage(n.dom, 0, 0, e, i)
})
},
_doPaintList: function(t, e) {
for (var i = [], n = 0; n < this._zlevelList.length; n++) {
var r = this._zlevelList[n],
a = this._layers[r];
a.__builtin__ && a !== this._hoverlayer && (a.__dirty || e) && i.push(a)
}
for (var o = !0, s = 0; s < i.length; s++) {
var a = i[s],
l = a.ctx,
h = {};
l.save();
var u = e ? a.__startIndex : a.__drawIndex,
c = !e && a.incremental && Date.now,
d = c && Date.now(),
p = a.zlevel === this._zlevelList[0] ? this._backgroundColor : null;
if (a.__startIndex === a.__endIndex) a.clear(!1, p);
else if (u === a.__startIndex) {
var g = t[u];
g.incremental && g.notClear && !e || a.clear(!1, p)
} - 1 === u && (console.error("For some unknown reason. drawIndex is -1"), u = a.__startIndex);
for (var v = u; v < a.__endIndex; v++) {
var m = t[v];
if (this._doPaintEl(m, a, e, h), m.__dirty = m.__dirtyText = !1, c) {
var y = Date.now() - d;
if (y > 15) break
}
}
a.__drawIndex = v, a.__drawIndex < a.__endIndex && (o = !1), h.prevElClipPaths && l.restore(), l.restore()
}
return tg.wxa && f(this._layers, function(t) {
t && t.ctx && t.ctx.draw && t.ctx.draw()
}), o
},
_doPaintEl: function(t, e, i, n) {
var r = e.ctx,
a = t.transform;
if (!(!e.__dirty && !i || t.invisible || 0 === t.style.opacity || a && !a[0] && !a[3] || t.culling && wn(t, this._width,
this._height))) {
var o = t.__clipPaths;
(!n.prevElClipPaths || bn(o, n.prevElClipPaths)) && (n.prevElClipPaths && (e.ctx.restore(), n.prevElClipPaths =
null, n.prevEl = null), o && (r.save(), Sn(o, r), n.prevElClipPaths = o)), t.beforeBrush && t.beforeBrush(r), t
.brush(r, n.prevEl || null), n.prevEl = t, t.afterBrush && t.afterBrush(r)
}
},
getLayer: function(t, e) {
this._singleCanvas && !this._needsManuallyCompositing && (t = Ev);
var i = this._layers[t];
return i || (i = new _v("zr_" + t, this, this.dpr), i.zlevel = t, i.__builtin__ = !0, this._layerConfig[t] && r(i,
this._layerConfig[t], !0), e && (i.virtual = e), this.insertLayer(t, i), i.initContext()), i
},
insertLayer: function(t, e) {
var i = this._layers,
n = this._zlevelList,
r = n.length,
a = null,
o = -1,
s = this._domRoot;
if (i[t]) return void iv("ZLevel " + t + " has been used already");
if (!_n(e)) return void iv("Layer of zlevel " + t + " is not valid");
if (r > 0 && t > n[0]) {
for (o = 0; r - 1 > o && !(n[o] < t && n[o + 1] > t); o++);
a = i[n[o]]
}
if (n.splice(o + 1, 0, t), i[t] = e, !e.virtual)
if (a) {
var l = a.dom;
l.nextSibling ? s.insertBefore(e.dom, l.nextSibling) : s.appendChild(e.dom)
} else s.firstChild ? s.insertBefore(e.dom, s.firstChild) : s.appendChild(e.dom)
},
eachLayer: function(t, e) {
var i, n, r = this._zlevelList;
for (n = 0; n < r.length; n++) i = r[n], t.call(e, this._layers[i], i)
},
eachBuiltinLayer: function(t, e) {
var i, n, r, a = this._zlevelList;
for (r = 0; r < a.length; r++) n = a[r], i = this._layers[n], i.__builtin__ && t.call(e, i, n)
},
eachOtherLayer: function(t, e) {
var i, n, r, a = this._zlevelList;
for (r = 0; r < a.length; r++) n = a[r], i = this._layers[n], i.__builtin__ || t.call(e, i, n)
},
getLayers: function() {
return this._layers
},
_updateLayerStatus: function(t) {
function e(t) {
r && (r.__endIndex !== t && (r.__dirty = !0), r.__endIndex = t)
}
if (this.eachBuiltinLayer(function(t) {
t.__dirty = t.__used = !1
}), this._singleCanvas)
for (var i = 1; i < t.length; i++) {
var n = t[i];
if (n.zlevel !== t[i - 1].zlevel || n.incremental) {
this._needsManuallyCompositing = !0;
break
}
}
for (var r = null, a = 0, i = 0; i < t.length; i++) {
var o, n = t[i],
s = n.zlevel;
n.incremental ? (o = this.getLayer(s + Bv, this._needsManuallyCompositing), o.incremental = !0, a = 1) : o =
this.getLayer(s + (a > 0 ? Rv : 0), this._needsManuallyCompositing), o.__builtin__ || iv("ZLevel " + s +
" has been used by unkown layer " + o.id), o !== r && (o.__used = !0, o.__startIndex !== i && (o.__dirty = !0),
o.__startIndex = i, o.__drawIndex = o.incremental ? -1 : i, e(i), r = o), n.__dirty && (o.__dirty = !0, o.incremental &&
o.__drawIndex < 0 && (o.__drawIndex = i))
}
e(i), 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)
})
},
clear: function() {
return this.eachBuiltinLayer(this._clearLayer), this
},
_clearLayer: function(t) {
t.clear()
},
setBackgroundColor: function(t) {
this._backgroundColor = t
},
configLayer: function(t, e) {
if (e) {
var i = this._layerConfig;
i[t] ? r(i[t], e, !0) : i[t] = e;
for (var n = 0; n < this._zlevelList.length; n++) {
var a = this._zlevelList[n];
if (a === t || a === t + Rv) {
var o = this._layers[a];
r(o, i[t], !0)
}
}
}
},
delLayer: function(t) {
var e = this._layers,
i = this._zlevelList,
n = e[t];
n && (n.dom.parentNode.removeChild(n.dom), delete e[t], i.splice(h(i, t), 1))
},
resize: function(t, e) {
if (this._domRoot.style) {
var i = this._domRoot;
i.style.display = "none";
var n = this._opts;
if (null != t && (n.width = t), null != e && (n.height = e), t = this._getSize(0), e = this._getSize(1), i.style
.display = "", this._width != t || e != this._height) {
i.style.width = t + "px", i.style.height = e + "px";
for (var r in this._layers) this._layers.hasOwnProperty(r) && this._layers[r].resize(t, e);
f(this._progressiveLayers, function(i) {
i.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(Ev).resize(t, e)
}
return this
},
clearLayer: function(t) {
var e = this._layers[t];
e && e.clear()
},
dispose: function() {
this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null
},
getRenderedCanvas: function(t) {
if (t = t || {}, this._singleCanvas && !this._compositeManually) return this._layers[Ev].dom;
var e = new _v("image", this, t.pixelRatio || this.dpr);
if (e.initContext(), e.clear(!1, t.backgroundColor || this._backgroundColor), t.pixelRatio <= this.dpr) {
this.refresh();
var i = e.dom.width,
n = e.dom.height,
r = e.ctx;
this.eachLayer(function(t) {
t.__builtin__ ? r.drawImage(t.dom, 0, 0, i, n) : t.renderToCanvas && (e.ctx.save(), t.renderToCanvas(e.ctx),
e.ctx.restore())
})
} else
for (var a = {}, o = this.storage.getDisplayList(!0), s = 0; s < o.length; s++) {
var l = o[s];
this._doPaintEl(l, e, !0, a)
}
return e.dom
},
getWidth: function() {
return this._width
},
getHeight: function() {
return this._height
},
_getSize: function(t) {
var e = this._opts,
i = ["width", "height"][t],
n = ["clientWidth", "clientHeight"][t],
r = ["paddingLeft", "paddingTop"][t],
a = ["paddingRight", "paddingBottom"][t];
if (null != e[i] && "auto" !== e[i]) return parseFloat(e[i]);
var o = this.root,
s = document.defaultView.getComputedStyle(o);
return (o[n] || xn(s[i]) || xn(o.style[i])) - (xn(s[r]) || 0) - (xn(s[a]) || 0) | 0
},
pathToImage: function(t, e) {
e = e || this.dpr;
var i = document.createElement("canvas"),
n = i.getContext("2d"),
r = t.getBoundingRect(),
a = t.style,
o = a.shadowBlur * e,
s = a.shadowOffsetX * e,
l = a.shadowOffsetY * e,
h = a.hasStroke() ? a.lineWidth : 0,
u = Math.max(h / 2, -s + o),
c = Math.max(h / 2, s + o),
d = Math.max(h / 2, -l + o),
f = Math.max(h / 2, l + o),
p = r.width + u + c,
g = r.height + d + f;
i.width = p * e, i.height = g * e, n.scale(e, e), n.clearRect(0, 0, p, g), n.dpr = e;
var v = {
position: t.position,
rotation: t.rotation,
scale: t.scale
};
t.position = [u - r.x, d - r.y], t.rotation = 0, t.scale = [1, 1], t.updateTransform(), t && t.brush(n);
var m = yn,
y = new m({
style: {
x: 0,
y: 0,
image: i
}
});
return null != v.position && (y.position = t.position = v.position), null != v.rotation && (y.rotation = t.rotation =
v.rotation), null != v.scale && (y.scale = t.scale = v.scale), y
}
};
var Wv = function(t) {
t = t || {}, this.stage = t.stage || {}, this.onframe = t.onframe || function() {}, this._clips = [], this._running = !
1, this._time, this._pausedTime, this._pauseStart, this._paused = !1, bg.call(this)
};
Wv.prototype = {
constructor: Wv,
addClip: function(t) {
this._clips.push(t)
},
addAnimator: function(t) {
t.animation = this;
for (var e = t.getClips(), i = 0; i < e.length; i++) this.addClip(e[i])
},
removeClip: function(t) {
var e = h(this._clips, t);
e >= 0 && this._clips.splice(e, 1)
},
removeAnimator: function(t) {
for (var e = t.getClips(), i = 0; i < e.length; i++) this.removeClip(e[i]);
t.animation = null
},
_update: function() {
for (var t = (new Date).getTime() - this._pausedTime, e = t - this._time, i = this._clips, n = i.length, r = [],
a = [], o = 0; n > o; o++) {
var s = i[o],
l = s.step(t, e);
l && (r.push(l), a.push(s))
}
for (var o = 0; n > o;) i[o]._needsRemove ? (i[o] = i[n - 1], i.pop(), n--) : o++;
n = r.length;
for (var o = 0; n > o; o++) a[o].fire(r[o]);
this._time = t, this.onframe(e), this.trigger("frame", e), this.stage.update && this.stage.update()
},
_startLoop: function() {
function t() {
e._running && (wv(t), !e._paused && e._update())
}
var e = this;
this._running = !0, wv(t)
},
start: function() {
this._time = (new Date).getTime(), this._pausedTime = 0, this._startLoop()
},
stop: function() {
this._running = !1
},
pause: function() {
this._paused || (this._pauseStart = (new Date).getTime(), this._paused = !0)
},
resume: function() {
this._paused && (this._pausedTime += (new Date).getTime() - this._pauseStart, this._paused = !1)
},
clear: function() {
this._clips = []
},
isFinished: function() {
return !this._clips.length
},
animate: function(t, e) {
e = e || {};
var i = new Kg(t, e.loop, e.getter, e.setter);
return this.addAnimator(i), i
}
}, c(Wv, bg);
var Gv = function() {
this._track = []
};
Gv.prototype = {
constructor: Gv,
recognize: function(t, e, i) {
return this._doTrack(t, e, i), this._recognize(t)
},
clear: function() {
return this._track.length = 0, this
},
_doTrack: function(t, e, i) {
var n = t.touches;
if (n) {
for (var r = {
points: [],
touches: [],
target: e,
event: t
}, a = 0, o = n.length; o > a; a++) {
var s = n[a],
l = de(i, s, {});
r.points.push([l.zrX, l.zrY]), r.touches.push(s)
}
this._track.push(r)
}
},
_recognize: function(t) {
for (var e in Hv)
if (Hv.hasOwnProperty(e)) {
var i = Hv[e](this._track, t);
if (i) return i
}
}
};
var Hv = {
pinch: function(t, e) {
var i = t.length;
if (i) {
var n = (t[i - 1] || {}).points,
r = (t[i - 2] || {}).points || n;
if (r && r.length > 1 && n && n.length > 1) {
var a = In(n) / In(r);
!isFinite(a) && (a = 1), e.pinchScale = a;
var o = Tn(n);
return e.pinchX = o[0], e.pinchY = o[1], {
type: "pinch",
target: t[0].target,
event: e
}
}
}
}
},
Zv = 300,
Xv = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"],
Yv = ["touchstart", "touchend", "touchmove"],
jv = {
pointerdown: 1,
pointerup: 1,
pointermove: 1,
pointerout: 1
},
qv = p(Xv, function(t) {
var e = t.replace("mouse", "pointer");
return jv[e] ? e : t
}),
Uv = {
mousemove: function(t) {
t = pe(this.dom, t), this.trigger("mousemove", t)
},
mouseout: function(t) {
t = pe(this.dom, t);
var e = t.toElement || t.relatedTarget;
if (e != this.dom)
for (; e && 9 != e.nodeType;) {
if (e === this.dom) return;
e = e.parentNode
}
this.trigger("mouseout", t)
},
touchstart: function(t) {
t = pe(this.dom, t), t.zrByTouch = !0, this._lastTouchMoment = new Date, An(this, t, "start"), Uv.mousemove.call(
this, t), Uv.mousedown.call(this, t), Dn(this)
},
touchmove: function(t) {
t = pe(this.dom, t), t.zrByTouch = !0, An(this, t, "change"), Uv.mousemove.call(this, t), Dn(this)
},
touchend: function(t) {
t = pe(this.dom, t), t.zrByTouch = !0, An(this, t, "end"), Uv.mouseup.call(this, t), +new Date - this._lastTouchMoment <
Zv && Uv.click.call(this, t), Dn(this)
},
pointerdown: function(t) {
Uv.mousedown.call(this, t)
},
pointermove: function(t) {
kn(t) || Uv.mousemove.call(this, t)
},
pointerup: function(t) {
Uv.mouseup.call(this, t)
},
pointerout: function(t) {
kn(t) || Uv.mouseout.call(this, t)
}
};
f(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function(t) {
Uv[t] = function(e) {
e = pe(this.dom, e), this.trigger(t, e)
}
});
var $v = Ln.prototype;
$v.dispose = function() {
for (var t = Xv.concat(Yv), e = 0; e < t.length; e++) {
var i = t[e];
ve(this.dom, Cn(i), this._handlers[i])
}
}, $v.setCursor = function(t) {
this.dom.style && (this.dom.style.cursor = t || "default")
}, c(Ln, bg);
var Kv = !tg.canvasSupported,
Qv = {
canvas: Vv
},
Jv = {},
tm = "4.0.5",
em = function(t, e, i) {
i = i || {}, this.dom = e, this.id = t;
var n = this,
r = new cv,
a = i.renderer;
if (Kv) {
if (!Qv.vml) throw new Error("You need to require 'zrender/vml/vml' to support IE8");
a = "vml"
} else a && Qv[a] || (a = "canvas");
var o = new Qv[a](e, r, i, t);
this.storage = r, this.painter = o;
var s = tg.node || tg.worker ? null : new Ln(o.getViewportRoot());
this.handler = new Ag(r, o, s, o.root), this.animation = new Wv({
stage: {
update: y(this.flush, this)
}
}), this.animation.start(), this._needsRefresh;
var l = r.delFromStorage,
h = r.addToStorage;
r.delFromStorage = function(t) {
l.call(r, t), t && t.removeSelfFromZr(n)
}, r.addToStorage = function(t) {
h.call(r, t), t.addSelfToZr(n)
}
};
em.prototype = {
constructor: em,
getId: function() {
return this.id
},
add: function(t) {
this.storage.addRoot(t), this._needsRefresh = !0
},
remove: function(t) {
this.storage.delRoot(t), this._needsRefresh = !0
},
configLayer: function(t, e) {
this.painter.configLayer && this.painter.configLayer(t, e), this._needsRefresh = !0
},
setBackgroundColor: function(t) {
this.painter.setBackgroundColor && this.painter.setBackgroundColor(t), this._needsRefresh = !0
},
refreshImmediately: function() {
this._needsRefresh = !1, this.painter.refresh(), this._needsRefresh = !1
},
refresh: function() {
this._needsRefresh = !0
},
flush: function() {
var t;
this._needsRefresh && (t = !0, this.refreshImmediately()), this._needsRefreshHover && (t = !0, this.refreshHoverImmediately()),
t && this.trigger("rendered")
},
addHover: function(t, e) {
if (this.painter.addHover) {
var i = this.painter.addHover(t, e);
return this.refreshHover(), i
}
},
removeHover: function(t) {
this.painter.removeHover && (this.painter.removeHover(t), this.refreshHover())
},
clearHover: function() {
this.painter.clearHover && (this.painter.clearHover(), this.refreshHover())
},
refreshHover: function() {
this._needsRefreshHover = !0
},
refreshHoverImmediately: function() {
this._needsRefreshHover = !1, this.painter.refreshHover && this.painter.refreshHover()
},
resize: function(t) {
t = t || {}, this.painter.resize(t.width, t.height), this.handler.resize()
},
clearAnimation: function() {
this.animation.clear()
},
getWidth: function() {
return this.painter.getWidth()
},
getHeight: function() {
return this.painter.getHeight()
},
pathToImage: function(t, e) {
return this.painter.pathToImage(t, e)
},
setCursorStyle: function(t) {
this.handler.setCursorStyle(t)
},
findHover: function(t, e) {
return this.handler.findHover(t, e)
},
on: function(t, e, i) {
this.handler.on(t, e, i)
},
off: function(t, e) {
this.handler.off(t, e)
},
trigger: function(t, e) {
this.handler.trigger(t, e)
},
clear: function() {
this.storage.delRoot(), this.painter.clear()
},
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, Bn(this.id)
}
};
var im = (Object.freeze || Object)({
version: tm,
init: On,
dispose: zn,
getInstance: En,
registerPainter: Rn
}),
nm = f,
rm = S,
am = _,
om = "series\x00",
sm = ["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"
],
lm = 0,
hm = ".",
um = "___EC__COMPONENT__CONTAINER___",
cm = 0,
dm = function(t) {
for (var e = 0; e < t.length; e++) t[e][1] || (t[e][1] = t[e][0]);
return function(e, i, n) {
for (var r = {}, a = 0; a < t.length; a++) {
var o = t[a][1];
if (!(i && h(i, o) >= 0 || n && h(n, o) < 0)) {
var s = e.getShallow(o);
null != s && (r[t[a][0]] = s)
}
}
return r
}
},
fm = dm([
["lineWidth", "width"],
["stroke", "color"],
["opacity"],
["shadowBlur"],
["shadowOffsetX"],
["shadowOffsetY"],
["shadowColor"]
]),
pm = {
getLineStyle: function(t) {
var e = fm(this, t),
i = this.getLineDash(e.lineWidth);
return i && (e.lineDash = i), e
},
getLineDash: function(t) {
null == t && (t = 1);
var e = this.get("type"),
i = Math.max(t, 2),
n = 4 * t;
return "solid" === e || null == e ? null : "dashed" === e ? [n, n] : [i, i]
}
},
gm = dm([
["fill", "color"],
["shadowBlur"],
["shadowOffsetX"],
["shadowOffsetY"],
["opacity"],
["shadowColor"]
]),
vm = {
getAreaStyle: function(t, e) {
return gm(this, t, e)
}
},
mm = Math.pow,
ym = Math.sqrt,
xm = 1e-8,
_m = 1e-4,
wm = ym(3),
bm = 1 / 3,
Sm = W(),
Mm = W(),
Im = W(),
Tm = Math.min,
Cm = Math.max,
Am = Math.sin,
Dm = Math.cos,
km = 2 * Math.PI,
Pm = W(),
Lm = W(),
Om = W(),
zm = [],
Em = [],
Rm = {
M: 1,
L: 2,
C: 3,
Q: 4,
A: 5,
Z: 6,
R: 7
},
Bm = [],
Nm = [],
Fm = [],
Vm = [],
Wm = Math.min,
Gm = Math.max,
Hm = Math.cos,
Zm = Math.sin,
Xm = Math.sqrt,
Ym = Math.abs,
jm = "undefined" != typeof Float32Array,
qm = function(t) {
this._saveData = !t, this._saveData && (this.data = []), this._ctx = null
};
qm.prototype = {
constructor: qm,
_xi: 0,
_yi: 0,
_x0: 0,
_y0: 0,
_ux: 0,
_uy: 0,
_len: 0,
_lineDash: null,
_dashOffset: 0,
_dashIdx: 0,
_dashSum: 0,
setScale: function(t, e) {
this._ux = Ym(1 / tv / t) || 0, this._uy = Ym(1 / tv / e) || 0
},
getContext: function() {
return this._ctx
},
beginPath: function(t) {
return this._ctx = t, t && t.beginPath(), t && (this.dpr = t.dpr), this._saveData && (this._len = 0), this._lineDash &&
(this._lineDash = null, this._dashOffset = 0), this
},
moveTo: function(t, e) {
return this.addData(Rm.M, t, e), this._ctx && this._ctx.moveTo(t, e), this._x0 = t, this._y0 = e, this._xi = t,
this._yi = e, this
},
lineTo: function(t, e) {
var i = Ym(t - this._xi) > this._ux || Ym(e - this._yi) > this._uy || this._len < 5;
return this.addData(Rm.L, t, e), this._ctx && i && (this._needsDash() ? this._dashedLineTo(t, e) : this._ctx.lineTo(
t, e)), i && (this._xi = t, this._yi = e), this
},
bezierCurveTo: function(t, e, i, n, r, a) {
return this.addData(Rm.C, t, e, i, n, r, a), this._ctx && (this._needsDash() ? this._dashedBezierTo(t, e, i, n, r,
a) : this._ctx.bezierCurveTo(t, e, i, n, r, a)), this._xi = r, this._yi = a, this
},
quadraticCurveTo: function(t, e, i, n) {
return this.addData(Rm.Q, t, e, i, n), this._ctx && (this._needsDash() ? this._dashedQuadraticTo(t, e, i, n) :
this._ctx.quadraticCurveTo(t, e, i, n)), this._xi = i, this._yi = n, this
},
arc: function(t, e, i, n, r, a) {
return this.addData(Rm.A, t, e, i, i, n, r - n, 0, a ? 0 : 1), this._ctx && this._ctx.arc(t, e, i, n, r, a), this
._xi = Hm(r) * i + t, this._yi = Zm(r) * i + e, this
},
arcTo: function(t, e, i, n, r) {
return this._ctx && this._ctx.arcTo(t, e, i, n, r), this
},
rect: function(t, e, i, n) {
return this._ctx && this._ctx.rect(t, e, i, n), this.addData(Rm.R, t, e, i, n), this
},
closePath: function() {
this.addData(Rm.Z);
var t = this._ctx,
e = this._x0,
i = this._y0;
return t && (this._needsDash() && this._dashedLineTo(e, i), t.closePath()), this._xi = e, this._yi = i, this
},
fill: function(t) {
t && t.fill(), this.toStatic()
},
stroke: function(t) {
t && t.stroke(), this.toStatic()
},
setLineDash: function(t) {
if (t instanceof Array) {
this._lineDash = t, this._dashIdx = 0;
for (var e = 0, i = 0; i < t.length; i++) e += t[i];
this._dashSum = e
}
return this
},
setLineDashOffset: function(t) {
return this._dashOffset = t, this
},
len: function() {
return this._len
},
setData: function(t) {
var e = t.length;
this.data && this.data.length == e || !jm || (this.data = new Float32Array(e));
for (var i = 0; e > i; i++) this.data[i] = t[i];
this._len = e
},
appendPath: function(t) {
t instanceof Array || (t = [t]);
for (var e = t.length, i = 0, n = this._len, r = 0; e > r; r++) i += t[r].len();
jm && this.data instanceof Float32Array && (this.data = new Float32Array(n + i));
for (var r = 0; e > r; r++)
for (var a = t[r].data, o = 0; o < a.length; o++) this.data[n++] = a[o];
this._len = n
},
addData: function(t) {
if (this._saveData) {
var e = this.data;
this._len + arguments.length > e.length && (this._expandData(), e = this.data);
for (var i = 0; i < arguments.length; i++) e[this._len++] = arguments[i];
this._prevCmd = t
}
},
_expandData: function() {
if (!(this.data instanceof Array)) {
for (var t = [], e = 0; e < this._len; e++) t[e] = this.data[e];
this.data = t
}
},
_needsDash: function() {
return this._lineDash
},
_dashedLineTo: function(t, e) {
var i, n, r = this._dashSum,
a = this._dashOffset,
o = this._lineDash,
s = this._ctx,
l = this._xi,
h = this._yi,
u = t - l,
c = e - h,
d = Xm(u * u + c * c),
f = l,
p = h,
g = o.length;
for (u /= d, c /= d, 0 > a && (a = r + a), a %= r, f -= a * u, p -= a * c; u > 0 && t >= f || 0 > u && f >= t ||
0 == u && (c > 0 && e >= p || 0 > c && p >= e);) n = this._dashIdx, i = o[n], f += u * i, p += c * i, this._dashIdx =
(n + 1) % g, u > 0 && l > f || 0 > u && f > l || c > 0 && h > p || 0 > c && p > h || s[n % 2 ? "moveTo" :
"lineTo"](u >= 0 ? Wm(f, t) : Gm(f, t), c >= 0 ? Wm(p, e) : Gm(p, e));
u = f - t, c = p - e, this._dashOffset = -Xm(u * u + c * c)
},
_dashedBezierTo: function(t, e, i, n, r, a) {
var o, s, l, h, u, c = this._dashSum,
d = this._dashOffset,
f = this._lineDash,
p = this._ctx,
g = this._xi,
v = this._yi,
m = lr,
y = 0,
x = this._dashIdx,
_ = f.length,
w = 0;
for (0 > d && (d = c + d), d %= c, o = 0; 1 > o; o += .1) s = m(g, t, i, r, o + .1) - m(g, t, i, r, o), l = m(v,
e, n, a, o + .1) - m(v, e, n, a, o), y += Xm(s * s + l * l);
for (; _ > x && (w += f[x], !(w > d)); x++);
for (o = (w - d) / y; 1 >= o;) h = m(g, t, i, r, o), u = m(v, e, n, a, o), x % 2 ? p.moveTo(h, u) : p.lineTo(h, u),
o += f[x] / y, x = (x + 1) % _;
x % 2 !== 0 && p.lineTo(r, a), s = r - h, l = a - u, this._dashOffset = -Xm(s * s + l * l)
},
_dashedQuadraticTo: function(t, e, i, n) {
var r = i,
a = n;
i = (i + 2 * t) / 3, n = (n + 2 * e) / 3, t = (this._xi + 2 * t) / 3, e = (this._yi + 2 * e) / 3, this._dashedBezierTo(
t, e, i, n, r, a)
},
toStatic: function() {
var t = this.data;
t instanceof Array && (t.length = this._len, jm && (this.data = new Float32Array(t)))
},
getBoundingRect: function() {
Bm[0] = Bm[1] = Fm[0] = Fm[1] = Number.MAX_VALUE, Nm[0] = Nm[1] = Vm[0] = Vm[1] = -Number.MAX_VALUE;
for (var t = this.data, e = 0, i = 0, n = 0, r = 0, a = 0; a < t.length;) {
var o = t[a++];
switch (1 == a && (e = t[a], i = t[a + 1], n = e, r = i), o) {
case Rm.M:
n = t[a++], r = t[a++], e = n, i = r, Fm[0] = n, Fm[1] = r, Vm[0] = n, Vm[1] = r;
break;
case Rm.L:
wr(e, i, t[a], t[a + 1], Fm, Vm), e = t[a++], i = t[a++];
break;
case Rm.C:
br(e, i, t[a++], t[a++], t[a++], t[a++], t[a], t[a + 1], Fm, Vm), e = t[a++], i = t[a++];
break;
case Rm.Q:
Sr(e, i, t[a++], t[a++], t[a], t[a + 1], Fm, Vm), e = t[a++], i = t[a++];
break;
case Rm.A:
var s = t[a++],
l = t[a++],
h = t[a++],
u = t[a++],
c = t[a++],
d = t[a++] + c,
f = (t[a++], 1 - t[a++]);
1 == a && (n = Hm(c) * h + s, r = Zm(c) * u + l), Mr(s, l, h, u, c, d, f, Fm, Vm), e = Hm(d) * h + s, i = Zm(d) *
u + l;
break;
case Rm.R:
n = e = t[a++], r = i = t[a++];
var p = t[a++],
g = t[a++];
wr(n, r, n + p, r + g, Fm, Vm);
break;
case Rm.Z:
e = n, i = r
}
oe(Bm, Bm, Fm), se(Nm, Nm, Vm)
}
return 0 === a && (Bm[0] = Bm[1] = Nm[0] = Nm[1] = 0), new gi(Bm[0], Bm[1], Nm[0] - Bm[0], Nm[1] - Bm[1])
},
rebuildPath: function(t) {
for (var e, i, n, r, a, o, s = this.data, l = this._ux, h = this._uy, u = this._len, c = 0; u > c;) {
var d = s[c++];
switch (1 == c && (n = s[c], r = s[c + 1], e = n, i = r), d) {
case Rm.M:
e = n = s[c++], i = r = s[c++], t.moveTo(n, r);
break;
case Rm.L:
a = s[c++], o = s[c++], (Ym(a - n) > l || Ym(o - r) > h || c === u - 1) && (t.lineTo(a, o), n = a, r = o);
break;
case Rm.C:
t.bezierCurveTo(s[c++], s[c++], s[c++], s[c++], s[c++], s[c++]), n = s[c - 2], r = s[c - 1];
break;
case Rm.Q:
t.quadraticCurveTo(s[c++], s[c++], s[c++], s[c++]), n = s[c - 2], r = s[c - 1];
break;
case Rm.A:
var f = s[c++],
p = s[c++],
g = s[c++],
v = s[c++],
m = s[c++],
y = s[c++],
x = s[c++],
_ = s[c++],
w = g > v ? g : v,
b = g > v ? 1 : g / v,
S = g > v ? v / g : 1,
M = Math.abs(g - v) > .001,
I = m + y;
M ? (t.translate(f, p), t.rotate(x), t.scale(b, S), t.arc(0, 0, w, m, I, 1 - _), t.scale(1 / b, 1 / S), t.rotate(
-x), t.translate(-f, -p)) : t.arc(f, p, w, m, I, 1 - _), 1 == c && (e = Hm(m) * g + f, i = Zm(m) * v + p), n =
Hm(I) * g + f, r = Zm(I) * v + p;
break;
case Rm.R:
e = n = s[c], i = r = s[c + 1], t.rect(s[c++], s[c++], s[c++], s[c++]);
break;
case Rm.Z:
t.closePath(), n = e, r = i
}
}
}
}, qm.CMD = Rm;
var Um = 2 * Math.PI,
$m = 2 * Math.PI,
Km = qm.CMD,
Qm = 2 * Math.PI,
Jm = 1e-4,
ty = [-1, -1, -1],
ey = [-1, -1],
iy = xv.prototype.getCanvasPattern,
ny = Math.abs,
ry = new qm(!0);
Fr.prototype = {
constructor: Fr,
type: "path",
__dirtyPath: !0,
strokeContainThreshold: 5,
brush: function(t, e) {
var i = this.style,
n = this.path || ry,
r = i.hasStroke(),
a = i.hasFill(),
o = i.fill,
s = i.stroke,
l = a && !!o.colorStops,
h = r && !!s.colorStops,
u = a && !!o.image,
c = r && !!s.image;
if (i.bind(t, this, e), this.setTransform(t), this.__dirty) {
var d;
l && (d = d || this.getBoundingRect(), this._fillGradient = i.getGradient(t, o, d)), h && (d = d || this.getBoundingRect(),
this._strokeGradient = i.getGradient(t, s, d))
}
l ? t.fillStyle = this._fillGradient : u && (t.fillStyle = iy.call(o, t)), h ? t.strokeStyle = this._strokeGradient :
c && (t.strokeStyle = iy.call(s, t));
var f = i.lineDash,
p = i.lineDashOffset,
g = !!t.setLineDash,
v = this.getGlobalScale();
if (n.setScale(v[0], v[1]), this.__dirtyPath || f && !g && r ? (n.beginPath(t), f && !g && (n.setLineDash(f), n.setLineDashOffset(
p)), this.buildPath(n, this.shape, !1), this.path && (this.__dirtyPath = !1)) : (t.beginPath(), this.path.rebuildPath(
t)), a)
if (null != i.fillOpacity) {
var m = t.globalAlpha;
t.globalAlpha = i.fillOpacity * i.opacity, n.fill(t), t.globalAlpha = m
} else n.fill(t);
if (f && g && (t.setLineDash(f), t.lineDashOffset = p), r)
if (null != i.strokeOpacity) {
var m = t.globalAlpha;
t.globalAlpha = i.strokeOpacity * i.opacity, n.stroke(t), t.globalAlpha = m
} else n.stroke(t);
f && g && t.setLineDash([]), null != i.text && (this.restoreTransform(t), this.drawRectText(t, this.getBoundingRect()))
},
buildPath: function() {},
createPathProxy: function() {
this.path = new qm
},
getBoundingRect: function() {
var t = this._rect,
e = this.style,
i = !t;
if (i) {
var n = this.path;
n || (n = this.path = new qm), this.__dirtyPath && (n.beginPath(), this.buildPath(n, this.shape, !1)), t = n.getBoundingRect()
}
if (this._rect = t, e.hasStroke()) {
var r = this._rectWithStroke || (this._rectWithStroke = t.clone());
if (this.__dirty || i) {
r.copy(t);
var a = e.lineWidth,
o = e.strokeNoScale ? this.getLineScale() : 1;
e.hasFill() || (a = Math.max(a, this.strokeContainThreshold || 4)), o > 1e-10 && (r.width += a / o, r.height +=
a / o, r.x -= a / o / 2, r.y -= a / o / 2)
}
return r
}
return t
},
contain: function(t, e) {
var i = this.transformCoordToLocal(t, e),
n = this.getBoundingRect(),
r = this.style;
if (t = i[0], e = i[1], n.contain(t, e)) {
var a = this.path.data;
if (r.hasStroke()) {
var o = r.lineWidth,
s = r.strokeNoScale ? this.getLineScale() : 1;
if (s > 1e-10 && (r.hasFill() || (o = Math.max(o, this.strokeContainThreshold)), Nr(a, o / s, t, e))) return !0
}
if (r.hasFill()) return Br(a, t, e)
}
return !1
},
dirty: function(t) {
null == t && (t = !0), t && (this.__dirtyPath = t, this._rect = null), this.__dirty = this.__dirtyText = !0, this
.__zr && this.__zr.refresh(), this.__clipTarget && this.__clipTarget.dirty()
},
animateShape: function(t) {
return this.animate("shape", t)
},
attrKV: function(t, e) {
"shape" === t ? (this.setShape(e), this.__dirtyPath = !0, this._rect = null) : mn.prototype.attrKV.call(this, t,
e)
},
setShape: function(t, e) {
var i = this.shape;
if (i) {
if (S(t))
for (var n in t) t.hasOwnProperty(n) && (i[n] = t[n]);
else i[t] = e;
this.dirty(!0)
}
return this
},
getLineScale: function() {
var t = this.transform;
return t && ny(t[0] - 1) > 1e-10 && ny(t[3] - 1) > 1e-10 ? Math.sqrt(ny(t[0] * t[3] - t[2] * t[1])) : 1
}
}, Fr.extend = function(t) {
var e = function(e) {
Fr.call(this, e), t.style && this.style.extendFrom(t.style, !1);
var i = t.shape;
if (i) {
this.shape = this.shape || {};
var n = this.shape;
for (var r in i) !n.hasOwnProperty(r) && i.hasOwnProperty(r) && (n[r] = i[r])
}
t.init && t.init.call(this, e)
};
u(e, Fr);
for (var i in t) "style" !== i && "shape" !== i && (e.prototype[i] = t[i]);
return e
}, u(Fr, mn);
var ay = qm.CMD,
oy = [
[],
[],
[]
],
sy = Math.sqrt,
ly = Math.atan2,
hy = function(t, e) {
var i, n, r, a, o, s, l = t.data,
h = ay.M,
u = ay.C,
c = ay.L,
d = ay.R,
f = ay.A,
p = ay.Q;
for (r = 0, a = 0; r < l.length;) {
switch (i = l[r++], a = r, n = 0, i) {
case h:
n = 1;
break;
case c:
n = 1;
break;
case u:
n = 3;
break;
case p:
n = 2;
break;
case f:
var g = e[4],
v = e[5],
m = sy(e[0] * e[0] + e[1] * e[1]),
y = sy(e[2] * e[2] + e[3] * e[3]),
x = ly(-e[1] / y, e[0] / m);
l[r] *= m, l[r++] += g, l[r] *= y, l[r++] += v, l[r++] *= m, l[r++] *= y, l[r++] += x, l[r++] += x, r += 2, a =
r;
break;
case d:
s[0] = l[r++], s[1] = l[r++], ae(s, s, e), l[a++] = s[0], l[a++] = s[1], s[0] += l[r++], s[1] += l[r++], ae(s, s,
e), l[a++] = s[0], l[a++] = s[1]
}
for (o = 0; n > o; o++) {
var s = oy[o];
s[0] = l[r++], s[1] = l[r++], ae(s, s, e), l[a++] = s[0], l[a++] = s[1]
}
}
},
uy = Math.sqrt,
cy = Math.sin,
dy = Math.cos,
fy = Math.PI,
py = function(t) {
return Math.sqrt(t[0] * t[0] + t[1] * t[1])
},
gy = function(t, e) {
return (t[0] * e[0] + t[1] * e[1]) / (py(t) * py(e))
},
vy = function(t, e) {
return (t[0] * e[1] < t[1] * e[0] ? -1 : 1) * Math.acos(gy(t, e))
},
my = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,
yy = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g,
xy = function(t) {
mn.call(this, t)
};
xy.prototype = {
constructor: xy,
type: "text",
brush: function(t, e) {
var i = this.style;
this.__dirty && Qi(i, !0), i.fill = i.stroke = i.shadowBlur = i.shadowColor = i.shadowOffsetX = i.shadowOffsetY =
null;
var n = i.text;
null != n && (n += ""), vn(n, i) && (this.setTransform(t), tn(this, t, n, i, null, e), this.restoreTransform(t))
},
getBoundingRect: function() {
var t = this.style;
if (this.__dirty && Qi(t, !0), !this._rect) {
var e = t.text;
null != e ? e += "" : e = "";
var i = Ei(t.text + "", t.font, t.textAlign, t.textVerticalAlign, t.textPadding, t.rich);
if (i.x += t.x || 0, i.y += t.y || 0, dn(t.textStroke, t.textStrokeWidth)) {
var n = t.textStrokeWidth;
i.x -= n / 2, i.y -= n / 2, i.width += n, i.height += n
}
this._rect = i
}
return this._rect
}
}, u(xy, mn);
var _y = Fr.extend({
type: "circle",
shape: {
cx: 0,
cy: 0,
r: 0
},
buildPath: function(t, e, i) {
i && t.moveTo(e.cx + e.r, e.cy), t.arc(e.cx, e.cy, e.r, 0, 2 * Math.PI, !0)
}
}),
wy = [
["shadowBlur", 0],
["shadowColor", "#000"],
["shadowOffsetX", 0],
["shadowOffsetY", 0]
],
by = function(t) {
return tg.browser.ie && tg.browser.version >= 11 ? function() {
var e, i = this.__clipPaths,
n = this.style;
if (i)
for (var r = 0; r < i.length; r++) {
var a = i[r],
o = a && a.shape,
s = a && a.type;
if (o && ("sector" === s && o.startAngle === o.endAngle || "rect" === s && (!o.width || !o.height))) {
for (var l = 0; l < wy.length; l++) wy[l][2] = n[wy[l][0]], n[wy[l][0]] = wy[l][1];
e = !0;
break
}
}
if (t.apply(this, arguments), e)
for (var l = 0; l < wy.length; l++) n[wy[l][0]] = wy[l][2]
} : t
},
Sy = Fr.extend({
type: "sector",
shape: {
cx: 0,
cy: 0,
r0: 0,
r: 0,
startAngle: 0,
endAngle: 2 * Math.PI,
clockwise: !0
},
brush: by(Fr.prototype.brush),
buildPath: function(t, e) {
var i = e.cx,
n = e.cy,
r = Math.max(e.r0 || 0, 0),
a = Math.max(e.r, 0),
o = e.startAngle,
s = e.endAngle,
l = e.clockwise,
h = Math.cos(o),
u = Math.sin(o);
t.moveTo(h * r + i, u * r + n), t.lineTo(h * a + i, u * a + n), t.arc(i, n, a, o, s, !l), t.lineTo(Math.cos(s) *
r + i, Math.sin(s) * r + n), 0 !== r && t.arc(i, n, r, s, o, l), t.closePath()
}
}),
My = Fr.extend({
type: "ring",
shape: {
cx: 0,
cy: 0,
r: 0,
r0: 0
},
buildPath: function(t, e) {
var i = e.cx,
n = e.cy,
r = 2 * Math.PI;
t.moveTo(i + e.r, n), t.arc(i, n, e.r, 0, r, !1), t.moveTo(i + e.r0, n), t.arc(i, n, e.r0, 0, r, !0)
}
}),
Iy = function(t, e) {
for (var i = t.length, n = [], r = 0, a = 1; i > a; a++) r += ee(t[a - 1], t[a]);
var o = r / 2;
o = i > o ? i : o;
for (var a = 0; o > a; a++) {
var s, l, h, u = a / (o - 1) * (e ? i : i - 1),
c = Math.floor(u),
d = u - c,
f = t[c % i];
e ? (s = t[(c - 1 + i) % i], l = t[(c + 1) % i], h = t[(c + 2) % i]) : (s = t[0 === c ? c : c - 1], l = t[c > i -
2 ? i - 1 : c + 1], h = t[c > i - 3 ? i - 1 : c + 2]);
var p = d * d,
g = d * p;
n.push([Yr(s[0], f[0], l[0], h[0], d, p, g), Yr(s[1], f[1], l[1], h[1], d, p, g)])
}
return n
},
Ty = function(t, e, i, n) {
var r, a, o, s, l = [],
h = [],
u = [],
c = [];
if (n) {
o = [1 / 0, 1 / 0], s = [-1 / 0, -1 / 0];
for (var d = 0, f = t.length; f > d; d++) oe(o, o, t[d]), se(s, s, t[d]);
oe(o, o, n[0]), se(s, s, n[1])
}
for (var d = 0, f = t.length; f > d; d++) {
var p = t[d];
if (i) r = t[d ? d - 1 : f - 1], a = t[(d + 1) % f];
else {
if (0 === d || d === f - 1) {
l.push(H(t[d]));
continue
}
r = t[d - 1], a = t[d + 1]
}
j(h, a, r), J(h, h, e);
var g = ee(p, r),
v = ee(p, a),
m = g + v;
0 !== m && (g /= m, v /= m), J(u, h, -g), J(c, h, v);
var y = X([], p, u),
x = X([], p, c);
n && (se(y, y, o), oe(y, y, s), se(x, x, o), oe(x, x, s)), l.push(y), l.push(x)
}
return i && l.push(l.shift()), l
},
Cy = Fr.extend({
type: "polygon",
shape: {
points: null,
smooth: !1,
smoothConstraint: null
},
buildPath: function(t, e) {
jr(t, e, !0)
}
}),
Ay = Fr.extend({
type: "polyline",
shape: {
points: null,
smooth: !1,
smoothConstraint: null
},
style: {
stroke: "#000",
fill: null
},
buildPath: function(t, e) {
jr(t, e, !1)
}
}),
Dy = Fr.extend({
type: "rect",
shape: {
r: 0,
x: 0,
y: 0,
width: 0,
height: 0
},
buildPath: function(t, e) {
var i = e.x,
n = e.y,
r = e.width,
a = e.height;
e.r ? Ki(t, e) : t.rect(i, n, r, a), t.closePath()
}
}),
ky = Fr.extend({
type: "line",
shape: {
x1: 0,
y1: 0,
x2: 0,
y2: 0,
percent: 1
},
style: {
stroke: "#000",
fill: null
},
buildPath: function(t, e) {
var i = e.x1,
n = e.y1,
r = e.x2,
a = e.y2,
o = e.percent;
0 !== o && (t.moveTo(i, n), 1 > o && (r = i * (1 - o) + r * o, a = n * (1 - o) + a * o), t.lineTo(r, a))
},
pointAt: function(t) {
var e = this.shape;
return [e.x1 * (1 - t) + e.x2 * t, e.y1 * (1 - t) + e.y2 * t]
}
}),
Py = [],
Ly = Fr.extend({
type: "bezier-curve",
shape: {
x1: 0,
y1: 0,
x2: 0,
y2: 0,
cpx1: 0,
cpy1: 0,
percent: 1
},
style: {
stroke: "#000",
fill: null
},
buildPath: function(t, e) {
var i = e.x1,
n = e.y1,
r = e.x2,
a = e.y2,
o = e.cpx1,
s = e.cpy1,
l = e.cpx2,
h = e.cpy2,
u = e.percent;
0 !== u && (t.moveTo(i, n), null == l || null == h ? (1 > u && (yr(i, o, r, u, Py), o = Py[1], r = Py[2], yr(n,
s, a, u, Py), s = Py[1], a = Py[2]), t.quadraticCurveTo(o, s, r, a)) : (1 > u && (dr(i, o, l, r, u, Py), o =
Py[1], l = Py[2], r = Py[3], dr(n, s, h, a, u, Py), s = Py[1], h = Py[2], a = Py[3]), t.bezierCurveTo(o, s,
l, h, r, a)))
},
pointAt: function(t) {
return qr(this.shape, t, !1)
},
tangentAt: function(t) {
var e = qr(this.shape, t, !0);
return te(e, e)
}
}),
Oy = Fr.extend({
type: "arc",
shape: {
cx: 0,
cy: 0,
r: 0,
startAngle: 0,
endAngle: 2 * Math.PI,
clockwise: !0
},
style: {
stroke: "#000",
fill: null
},
buildPath: function(t, e) {
var i = e.cx,
n = e.cy,
r = Math.max(e.r, 0),
a = e.startAngle,
o = e.endAngle,
s = e.clockwise,
l = Math.cos(a),
h = Math.sin(a);
t.moveTo(l * r + i, h * r + n), t.arc(i, n, r, a, o, !s)
}
}),
zy = Fr.extend({
type: "compound",
shape: {
paths: null
},
_updatePathDirty: function() {
for (var t = this.__dirtyPath, e = this.shape.paths, i = 0; i < e.length; i++) t = t || e[i].__dirtyPath;
this.__dirtyPath = t, this.__dirty = this.__dirty || t
},
beforeBrush: function() {
this._updatePathDirty();
for (var t = this.shape.paths || [], e = this.getGlobalScale(), i = 0; i < t.length; i++) t[i].path || t[i].createPathProxy(),
t[i].path.setScale(e[0], e[1])
},
buildPath: function(t, e) {
for (var i = e.paths || [], n = 0; n < i.length; n++) i[n].buildPath(t, i[n].shape, !0)
},
afterBrush: function() {
for (var t = this.shape.paths || [], e = 0; e < t.length; e++) t[e].__dirtyPath = !1
},
getBoundingRect: function() {
return this._updatePathDirty(), Fr.prototype.getBoundingRect.call(this)
}
}),
Ey = function(t) {
this.colorStops = t || []
};
Ey.prototype = {
constructor: Ey,
addColorStop: function(t, e) {
this.colorStops.push({
offset: t,
color: e
})
}
};
var Ry = function(t, e, i, n, r, a) {
this.x = null == t ? 0 : t, this.y = null == e ? 0 : e, this.x2 = null == i ? 1 : i, this.y2 = null == n ? 0 : n,
this.type = "linear", this.global = a || !1, Ey.call(this, r)
};
Ry.prototype = {
constructor: Ry
}, u(Ry, Ey);
var By = function(t, e, i, n, r) {
this.x = null == t ? .5 : t, this.y = null == e ? .5 : e, this.r = null == i ? .5 : i, this.type = "radial", this.global =
r || !1, Ey.call(this, n)
};
By.prototype = {
constructor: By
}, u(By, Ey), Ur.prototype.incremental = !0, Ur.prototype.clearDisplaybles = function() {
this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.dirty(), this.notClear = !1
}, Ur.prototype.addDisplayable = function(t, e) {
e ? this._temporaryDisplayables.push(t) : this._displayables.push(t), this.dirty()
}, Ur.prototype.addDisplayables = function(t, e) {
e = e || !1;
for (var i = 0; i < t.length; i++) this.addDisplayable(t[i], e)
}, Ur.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])
}, Ur.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
}
}, Ur.prototype.brush = function(t) {
for (var e = this._cursor; e < this._displayables.length; e++) {
var i = this._displayables[e];
i.beforeBrush && i.beforeBrush(t), i.brush(t, e === this._cursor ? null : this._displayables[e - 1]), i.afterBrush &&
i.afterBrush(t)
}
this._cursor = e;
for (var e = 0; e < this._temporaryDisplayables.length; e++) {
var i = this._temporaryDisplayables[e];
i.beforeBrush && i.beforeBrush(t), i.brush(t, 0 === e ? null : this._temporaryDisplayables[e - 1]), i.afterBrush &&
i.afterBrush(t)
}
this._temporaryDisplayables = [], this.notClear = !0
};
var Ny = [];
Ur.prototype.getBoundingRect = function() {
if (!this._rect) {
for (var t = new gi(1 / 0, 1 / 0, -1 / 0, -1 / 0), e = 0; e < this._displayables.length; e++) {
var i = this._displayables[e],
n = i.getBoundingRect().clone();
i.needLocalTransform() && n.applyTransform(i.getLocalTransform(Ny)), t.union(n)
}
this._rect = t
}
return this._rect
}, Ur.prototype.contain = function(t, e) {
var i = this.transformCoordToLocal(t, e),
n = this.getBoundingRect();
if (n.contain(i[0], i[1]))
for (var r = 0; r < this._displayables.length; r++) {
var a = this._displayables[r];
if (a.contain(t, e)) return !0
}
return !1
}, u(Ur, mn);
var Fy = Math.round,
Vy = Math.max,
Wy = Math.min,
Gy = {},
Hy = Xr,
Zy = N(),
Xy = 0,
Yy = (Object.freeze || Object)({
extendShape: $r,
extendPath: Kr,
makePath: Qr,
makeImage: Jr,
mergePath: Hy,
resizePath: ea,
subPixelOptimizeLine: ia,
subPixelOptimizeRect: na,
subPixelOptimize: ra,
setElementHoverStyle: fa,
isInEmphasis: pa,
setHoverStyle: xa,
setAsHoverStyleTrigger: _a,
setLabelStyle: wa,
setTextStyle: ba,
setText: Sa,
getFont: ka,
updateProps: La,
initProps: Oa,
getTransform: za,
applyTransform: Ea,
transformDirection: Ra,
groupTransition: Ba,
clipPointsByRect: Na,
clipRectByRect: Fa,
createIcon: Va,
Group: lv,
Image: yn,
Text: xy,
Circle: _y,
Sector: Sy,
Ring: My,
Polygon: Cy,
Polyline: Ay,
Rect: Dy,
Line: ky,
BezierCurve: Ly,
Arc: Oy,
IncrementalDisplayable: Ur,
CompoundPath: zy,
LinearGradient: Ry,
RadialGradient: By,
BoundingRect: gi
}),
jy = ["textStyle", "color"],
qy = {
getTextColor: function(t) {
var e = this.ecModel;
return this.getShallow("color") || (!t && e ? e.get(jy) : null)
},
getFont: function() {
return ka({
fontStyle: this.getShallow("fontStyle"),
fontWeight: this.getShallow("fontWeight"),
fontSize: this.getShallow("fontSize"),
fontFamily: this.getShallow("fontFamily")
}, this.ecModel)
},
getTextRect: function(t) {
return Ei(t, this.getFont(), this.getShallow("align"), this.getShallow("verticalAlign") || this.getShallow(
"baseline"), this.getShallow("padding"), this.getShallow("rich"), this.getShallow("truncateText"))
}
},
Uy = dm([
["fill", "color"],
["stroke", "borderColor"],
["lineWidth", "borderWidth"],
["opacity"],
["shadowBlur"],
["shadowOffsetX"],
["shadowOffsetY"],
["shadowColor"],
["textPosition"],
["textAlign"]
]),
$y = {
getItemStyle: function(t, e) {
var i = Uy(this, t, e),
n = this.getBorderLineDash();
return n && (i.lineDash = n), i
},
getBorderLineDash: function() {
var t = this.get("borderType");
return "solid" === t || null == t ? null : "dashed" === t ? [5, 5] : [1, 1]
}
},
Ky = c,
Qy = jn();
Wa.prototype = {
constructor: Wa,
init: null,
mergeOption: function(t) {
r(this.option, t, !0)
},
get: function(t, e) {
return null == t ? this.option : Ga(this.option, this.parsePath(t), !e && Ha(this, t))
},
getShallow: function(t, e) {
var i = this.option,
n = null == i ? i : i[t],
r = !e && Ha(this, t);
return null == n && r && (n = r.getShallow(t)), n
},
getModel: function(t, e) {
var i, n = null == t ? this.option : Ga(this.option, t = this.parsePath(t));
return e = e || (i = Ha(this, t)) && i.getModel(t), new Wa(n, e, this.ecModel)
},
isEmpty: function() {
return null == this.option
},
restoreData: function() {},
clone: function() {
var t = this.constructor;
return new t(n(this.option))
},
setReadOnly: function() {},
parsePath: function(t) {
return "string" == typeof t && (t = t.split(".")), t
},
customizeGetParent: function(t) {
Qy(this).getParent = t
},
isAnimationEnabled: function() {
if (!tg.node) {
if (null != this.option.animation) return !!this.option.animation;
if (this.parentModel) return this.parentModel.isAnimationEnabled()
}
}
}, er(Wa), ir(Wa), Ky(Wa, pm), Ky(Wa, vm), Ky(Wa, qy), Ky(Wa, $y);
var Jy = 0,
tx = 1e-4,
ex = 9007199254740991,
ix =
/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/,
nx = (Object.freeze || Object)({
linearMap: qa,
parsePercent: Ua,
round: $a,
asc: Ka,
getPrecision: Qa,
getPrecisionSafe: Ja,
getPixelPrecision: to,
getPercentWithPrecision: eo,
MAX_SAFE_INTEGER: ex,
remRadian: io,
isRadianAroundZero: no,
parseDate: ro,
quantity: ao,
nice: so,
quantile: lo,
reformIntervals: ho,
isNumeric: uo
}),
rx = L,
ax = /([&<>"'])/g,
ox = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'"
},
sx = ["a", "b", "c", "d", "e", "f", "g"],
lx = function(t, e) {
return "{" + t + (null == e ? "" : e) + "}"
},
hx = Wi,
ux = Ei,
cx = (Object.freeze || Object)({
addCommas: co,
toCamelCase: fo,
normalizeCssArray: rx,
encodeHTML: po,
formatTpl: go,
formatTplSimple: vo,
getTooltipMarker: mo,
formatTime: xo,
capitalFirst: _o,
truncateText: hx,
getTextRect: ux
}),
dx = f,
fx = ["left", "right", "top", "bottom", "width", "height"],
px = [
["width", "left", "right"],
["height", "top", "bottom"]
],
gx = wo,
vx = (x(wo, "vertical"), x(wo, "horizontal"), {
getBoxLayoutParams: function() {
return {
left: this.get("left"),
top: this.get("top"),
right: this.get("right"),
bottom: this.get("bottom"),
width: this.get("width"),
height: this.get("height")
}
}
}),
mx = jn(),
yx = Wa.extend({
type: "component",
id: "",
name: "",
mainType: "",
subType: "",
componentIndex: 0,
defaultOption: null,
ecModel: null,
dependentModels: [],
uid: null,
layoutMode: null,
$constructor: function(t, e, i, n) {
Wa.call(this, t, e, i, n), this.uid = Za("ec_cpt_model")
},
init: function(t, e, i) {
this.mergeDefaultAndTheme(t, i)
},
mergeDefaultAndTheme: function(t, e) {
var i = this.layoutMode,
n = i ? Mo(t) : {},
a = e.getTheme();
r(t, a.get(this.mainType)), r(t, this.getDefaultOption()), i && So(t, n, i)
},
mergeOption: function(t) {
r(this.option, t, !0);
var e = this.layoutMode;
e && So(this.option, t, e)
},
optionUpdated: function() {},
getDefaultOption: function() {
var t = mx(this);
if (!t.defaultOption) {
for (var e = [], i = this.constructor; i;) {
var n = i.prototype.defaultOption;
n && e.push(n), i = i.superClass
}
for (var a = {}, o = e.length - 1; o >= 0; o--) a = r(a, e[o], !0);
t.defaultOption = a
}
return t.defaultOption
},
getReferringComponents: function(t) {
return this.ecModel.queryComponents({
mainType: t,
index: this.get(t + "Index", !0),
id: this.get(t + "Id", !0)
})
}
});
ar(yx, {
registerWhenExtend: !0
}), Xa(yx), Ya(yx, To), c(yx, vx);
var xx = "";
"undefined" != typeof navigator && (xx = navigator.platform || "");
var _x = {
color: ["#c23531", "#2f4554", "#61a0a8", "#d48265", "#91c7ae", "#749f83", "#ca8622", "#bda29a", "#6e7074",
"#546570", "#c4ccd3"
],
gradientColor: ["#f6efa6", "#d88273", "#bf444c"],
textStyle: {
fontFamily: xx.match(/^Win/) ? "Microsoft YaHei" : "sans-serif",
fontSize: 12,
fontStyle: "normal",
fontWeight: "normal"
},
blendMode: null,
animation: "auto",
animationDuration: 1e3,
animationDurationUpdate: 300,
animationEasing: "exponentialOut",
animationEasingUpdate: "cubicOut",
animationThreshold: 2e3,
progressiveThreshold: 3e3,
progressive: 400,
hoverLayerThreshold: 3e3,
useUTC: !1
},
bx = jn(),
Sx = {
clearColorPalette: function() {
bx(this).colorIdx = 0, bx(this).colorNameMap = {}
},
getColorFromPalette: function(t, e, i) {
e = e || this;
var n = bx(e),
r = n.colorIdx || 0,
a = n.colorNameMap = n.colorNameMap || {};
if (a.hasOwnProperty(t)) return a[t];
var o = Nn(this.get("color", !0)),
s = this.get("colorLayer", !0),
l = null != i && s ? Co(s, i) : o;
if (l = l || o, l && l.length) {
var h = l[r];
return t && (a[t] = h), n.colorIdx = (r + 1) % l.length, h
}
}
},
Mx = {
cartesian2d: function(t, e, i, n) {
var r = t.getReferringComponents("xAxis")[0],
a = t.getReferringComponents("yAxis")[0];
e.coordSysDims = ["x", "y"], i.set("x", r), i.set("y", a), Do(r) && (n.set("x", r), e.firstCategoryDimIndex = 0),
Do(a) && (n.set("y", a), e.firstCategoryDimIndex = 1)
},
singleAxis: function(t, e, i, n) {
var r = t.getReferringComponents("singleAxis")[0];
e.coordSysDims = ["single"], i.set("single", r), Do(r) && (n.set("single", r), e.firstCategoryDimIndex = 0)
},
polar: function(t, e, i, n) {
var r = t.getReferringComponents("polar")[0],
a = r.findAxisModel("radiusAxis"),
o = r.findAxisModel("angleAxis");
e.coordSysDims = ["radius", "angle"], i.set("radius", a), i.set("angle", o), Do(a) && (n.set("radius", a), e.firstCategoryDimIndex =
0), Do(o) && (n.set("angle", o), e.firstCategoryDimIndex = 1)
},
geo: function(t, e) {
e.coordSysDims = ["lng", "lat"]
},
parallel: function(t, e, i, n) {
var r = t.ecModel,
a = r.getComponent("parallel", t.get("parallelIndex")),
o = e.coordSysDims = a.dimensions.slice();
f(a.parallelAxisIndex, function(t, a) {
var s = r.getComponent("parallelAxis", t),
l = o[a];
i.set(l, s), Do(s) && null == e.firstCategoryDimIndex && (n.set(l, s), e.firstCategoryDimIndex = a)
})
}
},
Ix = "original",
Tx = "arrayRows",
Cx = "objectRows",
Ax = "keyedColumns",
Dx = "unknown",
kx = "typedArray",
Px = "column",
Lx = "row";
ko.seriesDataToSource = function(t) {
return new ko({
data: t,
sourceFormat: I(t) ? kx : Ix,
fromDataset: !1
})
}, ir(ko);
var Ox = jn(),
zx = "\x00_ec_inner",
Ex = Wa.extend({
init: function(t, e, i, n) {
i = i || {}, this.option = null, this._theme = new Wa(i), this._optionManager = n
},
setOption: function(t, e) {
O(!(zx in t), "please use chart.getOption()"), this._optionManager.setOption(t, e), this.resetOption(null)
},
resetOption: function(t) {
var e = !1,
i = this._optionManager;
if (!t || "recreate" === t) {
var n = i.mountOption("recreate" === t);
this.option && "recreate" !== t ? (this.restoreData(), this.mergeOption(n)) : Xo.call(this, n), e = !0
}
if (("timeline" === t || "media" === t) && this.restoreData(), !t || "recreate" === t || "timeline" === t) {
var r = i.getTimelineOption(this);
r && (this.mergeOption(r), e = !0)
}
if (!t || "recreate" === t || "media" === t) {
var a = i.getMediaOption(this, this._api);
a.length && f(a, function(t) {
this.mergeOption(t, e = !0)
}, this)
}
return e
},
mergeOption: function(t) {
function e(e, n) {
var r = Nn(t[e]),
s = Gn(a.get(e), r);
Hn(s), f(s, function(t) {
var i = t.option;
S(i) && (t.keyInfo.mainType = e, t.keyInfo.subType = jo(e, i, t.exist))
});
var l = Yo(a, n);
i[e] = [], a.set(e, []), f(s, function(t, n) {
var r = t.exist,
s = t.option;
if (O(S(s) || r, "Empty component definition"), s) {
var h = yx.getClass(e, t.keyInfo.subType, !0);
if (r && r instanceof h) r.name = t.keyInfo.name, r.mergeOption(s, this), r.optionUpdated(s, !1);
else {
var u = o({
dependentModels: l,
componentIndex: n
}, t.keyInfo);
r = new h(s, this, this, u), o(r, u), r.init(s, this, this, u), r.optionUpdated(null, !0)
}
} else r.mergeOption({}, this), r.optionUpdated({}, !1);
a.get(e)[n] = r, i[e][n] = r.option
}, this), "series" === e && qo(this, a.get("series"))
}
var i = this.option,
a = this._componentsMap,
s = [];
Oo(this), f(t, function(t, e) {
null != t && (yx.hasClass(e) ? e && s.push(e) : i[e] = null == i[e] ? n(t) : r(i[e], t, !0))
}), yx.topologicalTravel(s, yx.getAllClassMainTypes(), e, this), this._seriesIndicesMap = N(this._seriesIndices =
this._seriesIndices || [])
},
getOption: function() {
var t = n(this.option);
return f(t, function(e, i) {
if (yx.hasClass(i)) {
for (var e = Nn(e), n = e.length - 1; n >= 0; n--) Xn(e[n]) && e.splice(n, 1);
t[i] = e
}
}), delete t[zx], t
},
getTheme: function() {
return this._theme
},
getComponent: function(t, e) {
var i = this._componentsMap.get(t);
return i ? i[e || 0] : void 0
},
queryComponents: function(t) {
var e = t.mainType;
if (!e) return [];
var i = t.index,
n = t.id,
r = t.name,
a = this._componentsMap.get(e);
if (!a || !a.length) return [];
var o;
if (null != i) _(i) || (i = [i]), o = v(p(i, function(t) {
return a[t]
}), function(t) {
return !!t
});
else if (null != n) {
var s = _(n);
o = v(a, function(t) {
return s && h(n, t.id) >= 0 || !s && t.id === n
})
} else if (null != r) {
var l = _(r);
o = v(a, function(t) {
return l && h(r, t.name) >= 0 || !l && t.name === r
})
} else o = a.slice();
return Uo(o, t)
},
findComponents: function(t) {
function e(t) {
var e = r + "Index",
i = r + "Id",
n = r + "Name";
return !t || null == t[e] && null == t[i] && null == t[n] ? null : {
mainType: r,
index: t[e],
id: t[i],
name: t[n]
}
}
function i(e) {
return t.filter ? v(e, t.filter) : e
}
var n = t.query,
r = t.mainType,
a = e(n),
o = a ? this.queryComponents(a) : this._componentsMap.get(r);
return i(Uo(o, t))
},
eachComponent: function(t, e, i) {
var n = this._componentsMap;
if ("function" == typeof t) i = e, e = t, n.each(function(t, n) {
f(t, function(t, r) {
e.call(i, n, t, r)
})
});
else if (b(t)) f(n.get(t), e, i);
else if (S(t)) {
var r = this.findComponents(t);
f(r, e, i)
}
},
getSeriesByName: function(t) {
var e = this._componentsMap.get("series");
return v(e, function(e) {
return e.name === t
})
},
getSeriesByIndex: function(t) {
return this._componentsMap.get("series")[t]
},
getSeriesByType: function(t) {
var e = this._componentsMap.get("series");
return v(e, function(e) {
return e.subType === t
})
},
getSeries: function() {
return this._componentsMap.get("series").slice()
},
getSeriesCount: function() {
return this._componentsMap.get("series").length
},
eachSeries: function(t, e) {
f(this._seriesIndices, function(i) {
var n = this._componentsMap.get("series")[i];
t.call(e, n, i)
}, this)
},
eachRawSeries: function(t, e) {
f(this._componentsMap.get("series"), t, e)
},
eachSeriesByType: function(t, e, i) {
f(this._seriesIndices, function(n) {
var r = this._componentsMap.get("series")[n];
r.subType === t && e.call(i, r, n)
}, this)
},
eachRawSeriesByType: function(t, e, i) {
return f(this.getSeriesByType(t), e, i)
},
isSeriesFiltered: function(t) {
return null == this._seriesIndicesMap.get(t.componentIndex)
},
getCurrentSeriesIndices: function() {
return (this._seriesIndices || []).slice()
},
filterSeries: function(t, e) {
var i = v(this._componentsMap.get("series"), t, e);
qo(this, i)
},
restoreData: function(t) {
var e = this._componentsMap;
qo(this, e.get("series"));
var i = [];
e.each(function(t, e) {
i.push(e)
}), yx.topologicalTravel(i, yx.getAllClassMainTypes(), function(i) {
f(e.get(i), function(e) {
("series" !== i || !Ho(e, t)) && e.restoreData()
})
})
}
});
c(Ex, Sx);
var Rx = ["getDom", "getZr", "getWidth", "getHeight", "getDevicePixelRatio", "dispatchAction", "isDisposed", "on",
"off", "getDataURL", "getConnectedDataURL", "getModel", "getOption", "getViewOfComponentModel",
"getViewOfSeriesModel"
],
Bx = {};
Ko.prototype = {
constructor: Ko,
create: function(t, e) {
var i = [];
f(Bx, function(n) {
var r = n.create(t, e);
i = i.concat(r || [])
}), this._coordinateSystems = i
},
update: function(t, e) {
f(this._coordinateSystems, function(i) {
i.update && i.update(t, e)
})
},
getCoordinateSystems: function() {
return this._coordinateSystems.slice()
}
}, Ko.register = function(t, e) {
Bx[t] = e
}, Ko.get = function(t) {
return Bx[t]
};
var Nx = f,
Fx = n,
Vx = p,
Wx = r,
Gx = /^(min|max)?(.+)$/;
Qo.prototype = {
constructor: Qo,
setOption: function(t, e) {
t && f(Nn(t.series), function(t) {
t && t.data && I(t.data) && E(t.data)
}), t = Fx(t, !0);
var i = this._optionBackup,
n = Jo.call(this, t, e, !i);
this._newBaseOption = n.baseOption, i ? (ns(i.baseOption, n.baseOption), n.timelineOptions.length && (i.timelineOptions =
n.timelineOptions), n.mediaList.length && (i.mediaList = n.mediaList), n.mediaDefault && (i.mediaDefault = n.mediaDefault)) :
this._optionBackup = n
},
mountOption: function(t) {
var e = this._optionBackup;
return this._timelineOptions = Vx(e.timelineOptions, Fx), this._mediaList = Vx(e.mediaList, Fx), this._mediaDefault =
Fx(e.mediaDefault), this._currentMediaIndices = [], Fx(t ? e.baseOption : this._newBaseOption)
},
getTimelineOption: function(t) {
var e, i = this._timelineOptions;
if (i.length) {
var n = t.getComponent("timeline");
n && (e = Fx(i[n.getCurrentIndex()], !0))
}
return e
},
getMediaOption: function() {
var t = this._api.getWidth(),
e = this._api.getHeight(),
i = this._mediaList,
n = this._mediaDefault,
r = [],
a = [];
if (!i.length && !n) return a;
for (var o = 0, s = i.length; s > o; o++) ts(i[o].query, t, e) && r.push(o);
return !r.length && n && (r = [-1]), r.length && !is(r, this._currentMediaIndices) && (a = Vx(r, function(t) {
return Fx(-1 === t ? n.option : i[t].option)
})), this._currentMediaIndices = r, a
}
};
var Hx = f,
Zx = S,
Xx = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"],
Yx = function(t, e) {
Hx(us(t.series), function(t) {
Zx(t) && hs(t)
});
var i = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"];
e && i.push("valueAxis", "categoryAxis", "logAxis", "timeAxis"), Hx(i, function(e) {
Hx(us(t[e]), function(t) {
t && (ss(t, "axisLabel"), ss(t.axisPointer, "label"))
})
}), Hx(us(t.parallel), function(t) {
var e = t && t.parallelAxisDefault;
ss(e, "axisLabel"), ss(e && e.axisPointer, "label")
}), Hx(us(t.calendar), function(t) {
as(t, "itemStyle"), ss(t, "dayLabel"), ss(t, "monthLabel"), ss(t, "yearLabel")
}), Hx(us(t.radar), function(t) {
ss(t, "name")
}), Hx(us(t.geo), function(t) {
Zx(t) && (ls(t), Hx(us(t.regions), function(t) {
ls(t)
}))
}), Hx(us(t.timeline), function(t) {
ls(t), as(t, "label"), as(t, "itemStyle"), as(t, "controlStyle", !0);
var e = t.data;
_(e) && f(e, function(t) {
S(t) && (as(t, "label"), as(t, "itemStyle"))
})
}), Hx(us(t.toolbox), function(t) {
as(t, "iconStyle"), Hx(t.feature, function(t) {
as(t, "iconStyle")
})
}), ss(cs(t.axisPointer), "label"), ss(cs(t.tooltip).axisPointer, "label")
},
jx = [
["x", "left"],
["y", "top"],
["x2", "right"],
["y2", "bottom"]
],
qx = ["grid", "geo", "parallel", "legend", "toolbox", "title", "visualMap", "dataZoom", "timeline"],
Ux = function(t, e) {
Yx(t, e), t.series = Nn(t.series), f(t.series, function(t) {
if (S(t)) {
var e = t.type;
if (("pie" === e || "gauge" === e) && null != t.clockWise && (t.clockwise = t.clockWise), "gauge" === e) {
var i = ds(t, "pointer.color");
null != i && fs(t, "itemStyle.normal.color", i)
}
ps(t)
}
}), t.dataRange && (t.visualMap = t.dataRange), f(qx, function(e) {
var i = t[e];
i && (_(i) || (i = [i]), f(i, function(t) {
ps(t)
}))
})
},
$x = function(t) {
var e = N();
t.eachSeries(function(t) {
var i = t.get("stack");
if (i) {
var n = e.get(i) || e.set(i, []),
r = t.getData(),
a = {
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 (!a.stackedDimension || !a.isStackedByIndex && !a.stackedByDimension) return;
n.length && r.setCalculationInfo("stackedOnSeries", n[n.length - 1].seriesModel), n.push(a)
}
}), e.each(gs)
},
Kx = vs.prototype;
Kx.pure = !1, Kx.persistent = !0, Kx.getSource = function() {
return this._source
};
var Qx = {
arrayRows_column: {
pure: !0,
count: function() {
return Math.max(0, this._data.length - this._source.startIndex)
},
getItem: function(t) {
return this._data[t + this._source.startIndex]
},
appendData: xs
},
arrayRows_row: {
pure: !0,
count: function() {
var t = this._data[0];
return t ? Math.max(0, t.length - this._source.startIndex) : 0
},
getItem: function(t) {
t += this._source.startIndex;
for (var e = [], i = this._data, n = 0; n < i.length; n++) {
var r = i[n];
e.push(r ? r[t] : null)
}
return e
},
appendData: function() {
throw new Error('Do not support appendData when set seriesLayoutBy: "row".')
}
},
objectRows: {
pure: !0,
count: ms,
getItem: ys,
appendData: xs
},
keyedColumns: {
pure: !0,
count: function() {
var t = this._source.dimensionsDefine[0].name,
e = this._data[t];
return e ? e.length : 0
},
getItem: function(t) {
for (var e = [], i = this._source.dimensionsDefine, n = 0; n < i.length; n++) {
var r = this._data[i[n].name];
e.push(r ? r[t] : null)
}
return e
},
appendData: function(t) {
var e = this._data;
f(t, function(t, i) {
for (var n = e[i] || (e[i] = []), r = 0; r < (t || []).length; r++) n.push(t[r])
})
}
},
original: {
count: ms,
getItem: ys,
appendData: xs
},
typedArray: {
persistent: !1,
pure: !0,
count: function() {
return this._data ? this._data.length / this._dimSize : 0
},
getItem: function(t, e) {
t -= this._offset, e = e || [];
for (var i = this._dimSize * t, n = 0; n < this._dimSize; n++) e[n] = this._data[i + n];
return e
},
appendData: function(t) {
this._data = t
},
clean: function() {
this._offset += this.count(), this._data = null
}
}
},
Jx = {
arrayRows: _s,
objectRows: function(t, e, i, n) {
return null != i ? t[n] : t
},
keyedColumns: _s,
original: function(t, e, i) {
var n = Vn(t);
return null != i && n instanceof Array ? n[i] : n
},
typedArray: _s
},
t_ = {
arrayRows: ws,
objectRows: function(t, e) {
return bs(t[e], this._dimensionInfos[e])
},
keyedColumns: ws,
original: function(t, e, i, n) {
var r = t && (null == t.value ? t : t.value);
return !this._rawData.pure && Wn(t) && (this.hasItemOption = !0), bs(r instanceof Array ? r[n] : r, this._dimensionInfos[
e])
},
typedArray: function(t, e, i, n) {
return t[n]
}
},
e_ = /\{@(.+?)\}/g,
i_ = {
getDataParams: function(t, e) {
var i = this.getData(e),
n = this.getRawValue(t, e),
r = i.getRawIndex(t),
a = i.getName(t),
o = i.getRawDataItem(t),
s = i.getItemVisual(t, "color"),
l = this.ecModel.getComponent("tooltip"),
h = l && l.get("renderMode"),
u = Qn(h),
c = this.mainType,
d = "series" === c;
return {
componentType: c,
componentSubType: this.subType,
componentIndex: this.componentIndex,
seriesType: d ? this.subType : null,
seriesIndex: this.seriesIndex,
seriesId: d ? this.id : null,
seriesName: d ? this.name : null,
name: a,
dataIndex: r,
data: o,
dataType: e,
value: n,
color: s,
marker: mo({
color: s,
renderMode: u
}),
$vars: ["seriesName", "name", "value"]
}
},
getFormattedLabel: function(t, e, i, n, r) {
e = e || "normal";
var a = this.getData(i),
o = a.getItemModel(t),
s = this.getDataParams(t, i);
null != n && s.value instanceof Array && (s.value = s.value[n]);
var l = o.get("normal" === e ? [r || "label", "formatter"] : [e, r || "label", "formatter"]);
if ("function" == typeof l) return s.status = e, l(s);
if ("string" == typeof l) {
var h = go(l, s);
return h.replace(e_, function(e, i) {
var n = i.length;
return "[" === i.charAt(0) && "]" === i.charAt(n - 1) && (i = +i.slice(1, n - 1)), Ss(a, t, i)
})
}
},
getRawValue: function(t, e) {
return Ss(this.getData(e), t)
},
formatTooltip: function() {}
},
n_ = Ts.prototype;
n_.perform = function(t) {
function e(t) {
return !(t >= 1) && (t = 1), t
}
var i = this._upstream,
n = t && t.skip;
if (this._dirty && i) {
var r = this.context;
r.data = r.outputData = i.context.outputData
}
this.__pipeline && (this.__pipeline.currentTask = this);
var a;
this._plan && !n && (a = this._plan(this.context));
var o = e(this._modBy),
s = this._modDataCount || 0,
l = e(t && t.modBy),
h = t && t.modDataCount || 0;
(o !== l || s !== h) && (a = "reset");
var u;
(this._dirty || "reset" === a) && (this._dirty = !1, u = As(this, n)), this._modBy = l, this._modDataCount = h;
var c = t && t.step;
if (this._dueEnd = i ? i._outputDueEnd : this._count ? this._count(this.context) : 1 / 0, this._progress) {
var d = this._dueIndex,
f = Math.min(null != c ? this._dueIndex + c : 1 / 0, this._dueEnd);
if (!n && (u || f > d)) {
var p = this._progress;
if (_(p))
for (var g = 0; g < p.length; g++) Cs(this, p[g], d, f, l, h);
else Cs(this, p, d, f, l, h)
}
this._dueIndex = f;
var v = null != this._settedOutputEnd ? this._settedOutputEnd : f;
this._outputDueEnd = v
} else this._dueIndex = this._outputDueEnd = null != this._settedOutputEnd ? this._settedOutputEnd : this._dueEnd;
return this.unfinished()
};
var r_ = function() {
function t() {
return i > n ? n++ : null
}
function e() {
var t = n % o * r + Math.ceil(n / o),
e = n >= i ? null : a > t ? t : n;
return n++, e
}
var i, n, r, a, o, s = {
reset: function(l, h, u, c) {
n = l, i = h, r = u, a = c, o = Math.ceil(a / r), s.next = r > 1 && a > 0 ? e : t
}
};
return s
}();
n_.dirty = function() {
this._dirty = !0, this._onDirty && this._onDirty(this.context)
}, n_.unfinished = function() {
return this._progress && this._dueIndex < this._dueEnd
}, n_.pipe = function(t) {
(this._downstream !== t || this._dirty) && (this._downstream = t, t._upstream = this, t.dirty())
}, n_.dispose = function() {
this._disposed || (this._upstream && (this._upstream._downstream = null), this._downstream && (this._downstream._upstream =
null), this._dirty = !1, this._disposed = !0)
}, n_.getUpstream = function() {
return this._upstream
}, n_.getDownstream = function() {
return this._downstream
}, n_.setOutputEnd = function(t) {
this._outputDueEnd = this._settedOutputEnd = t
};
var a_ = jn(),
o_ = yx.extend({
type: "series.__base__",
seriesIndex: 0,
coordinateSystem: null,
defaultOption: null,
legendDataProvider: null,
visualColorAccessPath: "itemStyle.color",
layoutMode: null,
init: function(t, e, i) {
this.seriesIndex = this.componentIndex, this.dataTask = Is({
count: Ps,
reset: Ls
}), this.dataTask.context = {
model: this
}, this.mergeDefaultAndTheme(t, i), zo(this);
var n = this.getInitialData(t, i);
zs(n, this), this.dataTask.context.data = n, a_(this).dataBeforeProcessed = n, Ds(this)
},
mergeDefaultAndTheme: function(t, e) {
var i = this.layoutMode,
n = i ? Mo(t) : {},
a = this.subType;
yx.hasClass(a) && (a += "Series"), r(t, e.getTheme().get(this.subType)), r(t, this.getDefaultOption()), Fn(t,
"label", ["show"]), this.fillDataTextStyle(t.data), i && So(t, n, i)
},
mergeOption: function(t, e) {
t = r(this.option, t, !0), this.fillDataTextStyle(t.data);
var i = this.layoutMode;
i && So(this.option, t, i), zo(this);
var n = this.getInitialData(t, e);
zs(n, this), this.dataTask.dirty(), this.dataTask.context.data = n, a_(this).dataBeforeProcessed = n, Ds(this)
},
fillDataTextStyle: function(t) {
if (t && !I(t))
for (var e = ["show"], i = 0; i < t.length; i++) t[i] && t[i].label && Fn(t[i], "label", e)
},
getInitialData: function() {},
appendData: function(t) {
var e = this.getRawData();
e.appendData(t.data)
},
getData: function(t) {
var e = Rs(this);
if (e) {
var i = e.context.data;
return null == t ? i : i.getLinkedData(t)
}
return a_(this).data
},
setData: function(t) {
var e = Rs(this);
if (e) {
var i = e.context;
i.data !== t && e.modifyOutputEnd && e.setOutputEnd(t.count()), i.outputData = t, e !== this.dataTask && (i.data =
t)
}
a_(this).data = t
},
getSource: function() {
return Lo(this)
},
getRawData: function() {
return a_(this).dataBeforeProcessed
},
getBaseAxis: function() {
var t = this.coordinateSystem;
return t && t.getBaseAxis && t.getBaseAxis()
},
formatTooltip: function(t, e, i, n) {
function r(i) {
function r(t, i) {
var r = c.getDimensionInfo(i);
if (r && r.otherDims.tooltip !== !1) {
var d = r.type,
f = "sub" + o.seriesIndex + "at" + u,
p = mo({
color: y,
type: "subItem",
renderMode: n,
markerId: f
}),
g = "string" == typeof p ? p : p.content,
v = (a ? g + po(r.displayName || "-") + ": " : "") + po("ordinal" === d ? t + "" : "time" === d ? e ? "" :
xo("yyyy/MM/dd hh:mm:ss", t) : co(t));
v && s.push(v), l && (h[f] = y, ++u)
}
}
var a = g(i, function(t, e, i) {
var n = c.getDimensionInfo(i);
return t |= n && n.tooltip !== !1 && null != n.displayName
}, 0),
s = [];
d.length ? f(d, function(e) {
r(Ss(c, t, e), e)
}) : f(i, r);
var p = a ? l ? "\n" : "
" : "",
v = p + s.join(p || ", ");
return {
renderMode: n,
content: v,
style: h
}
}
function a(t) {
return {
renderMode: n,
content: po(co(t)),
style: h
}
}
var o = this;
n = n || "html";
var s = "html" === n ? "
" : "\n",
l = "richText" === n,
h = {},
u = 0,
c = this.getData(),
d = c.mapDimension("defaultedTooltip", !0),
p = d.length,
v = this.getRawValue(t),
m = _(v),
y = c.getItemVisual(t, "color");
S(y) && y.colorStops && (y = (y.colorStops[0] || {}).color), y = y || "transparent";
var x = p > 1 || m && !p ? r(v) : a(p ? Ss(c, t, d[0]) : m ? v[0] : v),
w = x.content,
b = o.seriesIndex + "at" + u,
M = mo({
color: y,
type: "item",
renderMode: n,
markerId: b
});
h[b] = y, ++u;
var I = c.getName(t),
T = this.name;
Zn(this) || (T = ""), T = T ? po(T) + (e ? ": " : s) : "";
var C = "string" == typeof M ? M : M.content,
A = e ? C + T + w : T + C + (I ? po(I) + ": " + w : w);
return {
html: A,
markers: h
}
},
isAnimationEnabled: function() {
if (tg.node) return !1;
var t = this.getShallow("animation");
return t && this.getData().count() > this.getShallow("animationThreshold") && (t = !1), t
},
restoreData: function() {
this.dataTask.dirty()
},
getColorFromPalette: function(t, e, i) {
var n = this.ecModel,
r = Sx.getColorFromPalette.call(this, t, e, i);
return r || (r = n.getColorFromPalette(t, e, i)), r
},
coordDimToDataDim: function(t) {
return this.getRawData().mapDimension(t, !0)
},
getProgressive: function() {
return this.get("progressive")
},
getProgressiveThreshold: function() {
return this.get("progressiveThreshold")
},
getAxisTooltipData: null,
getTooltipPosition: null,
pipeTask: null,
preventIncremental: null,
pipelineContext: null
});
c(o_, i_), c(o_, Sx);
var s_ = function() {
this.group = new lv, this.uid = Za("viewComponent")
};
s_.prototype = {
constructor: s_,
init: function() {},
render: function() {},
dispose: function() {},
filterForExposedEvent: null
};
var l_ = s_.prototype;
l_.updateView = l_.updateLayout = l_.updateVisual = function() {}, er(s_), ar(s_, {
registerWhenExtend: !0
});
var h_ = function() {
var t = jn();
return function(e) {
var i = t(e),
n = e.pipelineContext,
r = i.large,
a = i.progressiveRender,
o = i.large = n.large,
s = i.progressiveRender = n.progressiveRender;
return !!(r ^ o || a ^ s) && "reset"
}
},
u_ = jn(),
c_ = h_();
Bs.prototype = {
type: "chart",
init: function() {},
render: function() {},
highlight: function(t, e, i, n) {
Fs(t.getData(), n, "emphasis")
},
downplay: function(t, e, i, n) {
Fs(t.getData(), n, "normal")
},
remove: function() {
this.group.removeAll()
},
dispose: function() {},
incrementalPrepareRender: null,
incrementalRender: null,
updateTransform: null,
filterForExposedEvent: null
};
var d_ = Bs.prototype;
d_.updateView = d_.updateLayout = d_.updateVisual = function(t, e, i, n) {
this.render(t, e, i, n)
}, er(Bs, ["dispose"]), ar(Bs, {
registerWhenExtend: !0
}), Bs.markUpdateMethod = function(t, e) {
u_(t).updateMethod = e
};
var f_ = {
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)
}
}
},
p_ = "\x00__throttleOriginMethod",
g_ = "\x00__throttleRate",
v_ = "\x00__throttleType",
m_ = {
createOnAllSeries: !0,
performRawSeries: !0,
reset: function(t, e) {
var i = t.getData(),
n = (t.visualColorAccessPath || "itemStyle.color").split("."),
r = t.get(n) || t.getColorFromPalette(t.name, null, e.getSeriesCount());
if (i.setVisual("color", r), !e.isSeriesFiltered(t)) {
"function" != typeof r || r instanceof Ey || i.each(function(e) {
i.setItemVisual(e, "color", r(t.getDataParams(e)))
});
var a = function(t, e) {
var i = t.getItemModel(e),
r = i.get(n, !0);
null != r && t.setItemVisual(e, "color", r)
};
return {
dataEach: i.hasItemOption ? a : null
}
}
}
},
y_ = {
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: ""
}
}
}
},
x_ = function(t, e) {
function i(t, e) {
if ("string" != typeof t) return t;
var i = t;
return f(e, function(t, e) {
i = i.replace(new RegExp("\\{\\s*" + e + "\\s*\\}", "g"), t)
}), i
}
function n(t) {
var e = o.get(t);
if (null == e) {
for (var i = t.split("."), n = y_.aria, r = 0; r < i.length; ++r) n = n[i[r]];
return n
}
return e
}
function r() {
var t = e.getModel("title").option;
return t && t.length && (t = t[0]), t && t.text
}
function a(t) {
return y_.series.typeNames[t] || "自定义图"
}
var o = e.getModel("aria");
if (o.get("show")) {
if (o.get("description")) return void t.setAttribute("aria-label", o.get("description"));
var s = 0;
e.eachSeries(function() {
++s
}, this);
var l, h = o.get("data.maxCount") || 10,
u = o.get("series.maxCount") || 10,
c = Math.min(s, u);
if (!(1 > s)) {
var d = r();
l = d ? i(n("general.withTitle"), {
title: d
}) : n("general.withoutTitle");
var p = [],
g = s > 1 ? "series.multiple.prefix" : "series.single.prefix";
l += i(n(g), {
seriesCount: s
}), e.eachSeries(function(t, e) {
if (c > e) {
var r, o = t.get("name"),
l = "series." + (s > 1 ? "multiple" : "single") + ".";
r = n(o ? l + "withName" : l + "withoutName"), r = i(r, {
seriesId: t.seriesIndex,
seriesName: t.get("name"),
seriesType: a(t.subType)
});
var u = t.getData();
window.data = u, r += u.count() > h ? i(n("data.partialData"), {
displayCnt: h
}) : n("data.allData");
for (var d = [], f = 0; f < u.count(); f++)
if (h > f) {
var g = u.getName(f),
v = Ss(u, f);
d.push(i(n(g ? "data.withName" : "data.withoutName"), {
name: g,
value: v
}))
} r += d.join(n("data.separator.middle")) + n("data.separator.end"), p.push(r)
}
}), l += p.join(n("series.multiple.separator.middle")) + n("series.multiple.separator.end"), t.setAttribute(
"aria-label", l)
}
}
},
__ = Math.PI,
w_ = function(t, e) {
e = e || {}, s(e, {
text: "loading",
color: "#c23531",
textColor: "#000",
maskColor: "rgba(255, 255, 255, 0.8)",
zlevel: 0
});
var i = new Dy({
style: {
fill: e.maskColor
},
zlevel: e.zlevel,
z: 1e4
}),
n = new Oy({
shape: {
startAngle: -__ / 2,
endAngle: -__ / 2 + .1,
r: 10
},
style: {
stroke: e.color,
lineCap: "round",
lineWidth: 5
},
zlevel: e.zlevel,
z: 10001
}),
r = new Dy({
style: {
fill: "none",
text: e.text,
textPosition: "right",
textDistance: 10,
textFill: e.textColor
},
zlevel: e.zlevel,
z: 10001
});
n.animateShape(!0).when(1e3, {
endAngle: 3 * __ / 2
}).start("circularInOut"), n.animateShape(!0).when(1e3, {
startAngle: 3 * __ / 2
}).delay(300).start("circularInOut");
var a = new lv;
return a.add(n), a.add(r), a.add(i), a.resize = function() {
var e = t.getWidth() / 2,
a = t.getHeight() / 2;
n.setShape({
cx: e,
cy: a
});
var o = n.shape.r;
r.setShape({
x: e - o,
y: a - o,
width: 2 * o,
height: 2 * o
}), i.setShape({
x: 0,
y: 0,
width: t.getWidth(),
height: t.getHeight()
})
}, a.resize(), a
},
b_ = Xs.prototype;
b_.restoreData = function(t, e) {
t.restoreData(e), this._stageTaskMap.each(function(t) {
var e = t.overallTask;
e && e.dirty()
})
}, b_.getPerformArgs = function(t, e) {
if (t.__pipeline) {
var i = this._pipelineMap.get(t.__pipeline.id),
n = i.context,
r = !e && i.progressiveEnabled && (!n || n.progressiveRender) && t.__idxInPipeline > i.blockIndex,
a = r ? i.step : null,
o = n && n.modDataCount,
s = null != o ? Math.ceil(o / a) : null;
return {
step: a,
modBy: s,
modDataCount: o
}
}
}, b_.getPipeline = function(t) {
return this._pipelineMap.get(t)
}, b_.updateStreamModes = function(t, e) {
var i = this._pipelineMap.get(t.uid),
n = t.getData(),
r = n.count(),
a = i.progressiveEnabled && e.incrementalPrepareRender && r >= i.threshold,
o = t.get("large") && r >= t.get("largeThreshold"),
s = "mod" === t.get("progressiveChunkMode") ? r : null;
t.pipelineContext = i.context = {
progressiveRender: a,
modDataCount: s,
large: o
}
}, b_.restorePipelines = function(t) {
var e = this,
i = e._pipelineMap = N();
t.eachSeries(function(t) {
var n = t.getProgressive(),
r = t.uid;
i.set(r, {
id: r,
head: null,
tail: null,
threshold: t.getProgressiveThreshold(),
progressiveEnabled: n && !(t.preventIncremental && t.preventIncremental()),
blockIndex: -1,
step: Math.round(n || 700),
count: 0
}), nl(e, t, t.dataTask)
})
}, b_.prepareStageTasks = function() {
var t = this._stageTaskMap,
e = this.ecInstance.getModel(),
i = this.api;
f(this._allHandlers, function(n) {
var r = t.get(n.uid) || t.set(n.uid, []);
n.reset && js(this, n, r, e, i), n.overallReset && qs(this, n, r, e, i)
}, this)
}, b_.prepareView = function(t, e, i, n) {
var r = t.renderTask,
a = r.context;
a.model = e, a.ecModel = i, a.api = n, r.__block = !t.incrementalPrepareRender, nl(this, e, r)
}, b_.performDataProcessorTasks = function(t, e) {
Ys(this, this._dataProcessorHandlers, t, e, {
block: !0
})
}, b_.performVisualTasks = function(t, e, i) {
Ys(this, this._visualHandlers, t, e, i)
}, b_.performSeriesTasks = function(t) {
var e;
t.eachSeries(function(t) {
e |= t.dataTask.perform()
}), this.unfinished |= e
}, b_.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)
})
};
var S_ = b_.updatePayload = function(t, e) {
"remain" !== e && (t.context.payload = e)
},
M_ = el(0);
Xs.wrapStageHandler = function(t, e) {
return w(t) && (t = {
overallReset: t,
seriesType: rl(t)
}), t.uid = Za("stageHandler"), e && (t.visualType = e), t
};
var I_, T_ = {},
C_ = {};
al(T_, Ex), al(C_, $o), T_.eachSeriesByType = T_.eachRawSeriesByType = function(t) {
I_ = t
}, T_.eachComponent = function(t) {
"series" === t.mainType && t.subType && (I_ = t.subType)
};
var A_ = ["#37A2DA", "#32C5E9", "#67E0E3", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#E062AE", "#E690D1",
"#e7bcf3", "#9d96f5", "#8378EA", "#96BFFF"
],
D_ = {
color: A_,
colorLayer: [
["#37A2DA", "#ffd85c", "#fd7b5f"],
["#37A2DA", "#67E0E3", "#FFDB5C", "#ff9f7f", "#E062AE", "#9d96f5"],
["#37A2DA", "#32C5E9", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#e7bcf3", "#8378EA", "#96BFFF"], A_
]
},
k_ = "#eee",
P_ = function() {
return {
axisLine: {
lineStyle: {
color: k_
}
},
axisTick: {
lineStyle: {
color: k_
}
},
axisLabel: {
textStyle: {
color: k_
}
},
splitLine: {
lineStyle: {
type: "dashed",
color: "#aaa"
}
},
splitArea: {
areaStyle: {
color: k_
}
}
}
},
L_ = ["#dd6b66", "#759aa0", "#e69d87", "#8dc1a9", "#ea7e53", "#eedd78", "#73a373", "#73b9bc", "#7289ab", "#91ca8c",
"#f49f42"
],
O_ = {
color: L_,
backgroundColor: "#333",
tooltip: {
axisPointer: {
lineStyle: {
color: k_
},
crossStyle: {
color: k_
}
}
},
legend: {
textStyle: {
color: k_
}
},
textStyle: {
color: k_
},
title: {
textStyle: {
color: k_
}
},
toolbox: {
iconStyle: {
normal: {
borderColor: k_
}
}
},
dataZoom: {
textStyle: {
color: k_
}
},
visualMap: {
textStyle: {
color: k_
}
},
timeline: {
lineStyle: {
color: k_
},
itemStyle: {
normal: {
color: L_[1]
}
},
label: {
normal: {
textStyle: {
color: k_
}
}
},
controlStyle: {
normal: {
color: k_,
borderColor: k_
}
}
},
timeAxis: P_(),
logAxis: P_(),
valueAxis: P_(),
categoryAxis: P_(),
line: {
symbol: "circle"
},
graph: {
color: L_
},
gauge: {
title: {
textStyle: {
color: k_
}
}
},
candlestick: {
itemStyle: {
normal: {
color: "#FD1050",
color0: "#0CF49B",
borderColor: "#FD1050",
borderColor0: "#0CF49B"
}
}
}
};
O_.categoryAxis.splitLine.show = !1, yx.extend({
type: "dataset",
defaultOption: {
seriesLayoutBy: Px,
sourceHeader: null,
dimensions: null,
source: null
},
optionUpdated: function() {
Po(this)
}
}), s_.extend({
type: "dataset"
});
var z_ = Fr.extend({
type: "ellipse",
shape: {
cx: 0,
cy: 0,
rx: 0,
ry: 0
},
buildPath: function(t, e) {
var i = .5522848,
n = e.cx,
r = e.cy,
a = e.rx,
o = e.ry,
s = a * i,
l = o * i;
t.moveTo(n - a, r), t.bezierCurveTo(n - a, r - l, n - s, r - o, n, r - o), t.bezierCurveTo(n + s, r - o, n + a,
r - l, n + a, r), t.bezierCurveTo(n + a, r + l, n + s, r + o, n, r + o), t.bezierCurveTo(n - s, r + o, n - a,
r + l, n - a, r), t.closePath()
}
}),
E_ = /[\s,]+/;
sl.prototype.parse = function(t, e) {
e = e || {};
var i = ol(t);
if (!i) throw new Error("Illegal svg");
var n = new lv;
this._root = n;
var r = i.getAttribute("viewBox") || "",
a = parseFloat(i.getAttribute("width") || e.width),
o = parseFloat(i.getAttribute("height") || e.height);
isNaN(a) && (a = null), isNaN(o) && (o = null), cl(i, n, null, !0);
for (var s = i.firstChild; s;) this._parseNode(s, n), s = s.nextSibling;
var l, h;
if (r) {
var u = z(r).split(E_);
u.length >= 4 && (l = {
x: parseFloat(u[0] || 0),
y: parseFloat(u[1] || 0),
width: parseFloat(u[2]),
height: parseFloat(u[3])
})
}
if (l && null != a && null != o && (h = gl(l, a, o), !e.ignoreViewBox)) {
var c = n;
n = new lv, n.add(c), c.scale = h.scale.slice(), c.position = h.position.slice()
}
return e.ignoreRootClip || null == a || null == o || n.setClipPath(new Dy({
shape: {
x: 0,
y: 0,
width: a,
height: o
}
})), {
root: n,
width: a,
height: o,
viewBoxRect: l,
viewBoxTransform: h
}
}, sl.prototype._parseNode = function(t, e) {
var i = t.nodeName.toLowerCase();
"defs" === i ? this._isDefine = !0 : "text" === i && (this._isText = !0);
var n;
if (this._isDefine) {
var r = B_[i];
if (r) {
var a = r.call(this, t),
o = t.getAttribute("id");
o && (this._defs[o] = a)
}
} else {
var r = R_[i];
r && (n = r.call(this, t, e), e.add(n))
}
for (var s = t.firstChild; s;) 1 === s.nodeType && this._parseNode(s, n), 3 === s.nodeType && this._isText && this._parseText(
s, n), s = s.nextSibling;
"defs" === i ? this._isDefine = !1 : "text" === i && (this._isText = !1)
}, sl.prototype._parseText = function(t, e) {
if (1 === t.nodeType) {
var i = t.getAttribute("dx") || 0,
n = t.getAttribute("dy") || 0;
this._textX += parseFloat(i), this._textY += parseFloat(n)
}
var r = new xy({
style: {
text: t.textContent,
transformText: !0
},
position: [this._textX || 0, this._textY || 0]
});
hl(e, r), cl(t, r, this._defs);
var a = r.style.fontSize;
a && 9 > a && (r.style.fontSize = 9, r.scale = r.scale || [1, 1], r.scale[0] *= a / 9, r.scale[1] *= a / 9);
var o = r.getBoundingRect();
return this._textX += o.width, e.add(r), r
};
var R_ = {
g: function(t, e) {
var i = new lv;
return hl(e, i), cl(t, i, this._defs), i
},
rect: function(t, e) {
var i = new Dy;
return hl(e, i), cl(t, i, this._defs), i.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)
}), i
},
circle: function(t, e) {
var i = new _y;
return hl(e, i), cl(t, i, this._defs), i.setShape({
cx: parseFloat(t.getAttribute("cx") || 0),
cy: parseFloat(t.getAttribute("cy") || 0),
r: parseFloat(t.getAttribute("r") || 0)
}), i
},
line: function(t, e) {
var i = new ky;
return hl(e, i), cl(t, i, this._defs), i.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)
}), i
},
ellipse: function(t, e) {
var i = new z_;
return hl(e, i), cl(t, i, this._defs), i.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)
}), i
},
polygon: function(t, e) {
var i = t.getAttribute("points");
i && (i = ul(i));
var n = new Cy({
shape: {
points: i || []
}
});
return hl(e, n), cl(t, n, this._defs), n
},
polyline: function(t, e) {
var i = new Fr;
hl(e, i), cl(t, i, this._defs);
var n = t.getAttribute("points");
n && (n = ul(n));
var r = new Ay({
shape: {
points: n || []
}
});
return r
},
image: function(t, e) {
var i = new yn;
return hl(e, i), cl(t, i, this._defs), i.setStyle({
image: t.getAttribute("xlink:href"),
x: t.getAttribute("x"),
y: t.getAttribute("y"),
width: t.getAttribute("width"),
height: t.getAttribute("height")
}), i
},
text: function(t, e) {
var i = t.getAttribute("x") || 0,
n = t.getAttribute("y") || 0,
r = t.getAttribute("dx") || 0,
a = t.getAttribute("dy") || 0;
this._textX = parseFloat(i) + parseFloat(r), this._textY = parseFloat(n) + parseFloat(a);
var o = new lv;
return hl(e, o), cl(t, o, this._defs), o
},
tspan: function(t, e) {
var i = t.getAttribute("x"),
n = t.getAttribute("y");
null != i && (this._textX = parseFloat(i)), null != n && (this._textY = parseFloat(n));
var r = t.getAttribute("dx") || 0,
a = t.getAttribute("dy") || 0,
o = new lv;
return hl(e, o), cl(t, o, this._defs), this._textX += r, this._textY += a, o
},
path: function(t, e) {
var i = t.getAttribute("d") || "",
n = Hr(i);
return hl(e, n), cl(t, n, this._defs), n
}
},
B_ = {
lineargradient: function(t) {
var e = parseInt(t.getAttribute("x1") || 0, 10),
i = parseInt(t.getAttribute("y1") || 0, 10),
n = parseInt(t.getAttribute("x2") || 10, 10),
r = parseInt(t.getAttribute("y2") || 0, 10),
a = new Ry(e, i, n, r);
return ll(t, a), a
},
radialgradient: function() {}
},
N_ = {
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-align": "textAlign",
"alignment-baseline": "textBaseline"
},
F_ = /url\(\s*#(.*?)\)/,
V_ = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g,
W_ = /([^\s:;]+)\s*:\s*([^:;]+)/g,
G_ = N(),
H_ = {
registerMap: function(t, e, i) {
var n;
return _(e) ? n = e : e.svg ? n = [{
type: "svg",
source: e.svg,
specialAreas: e.specialAreas
}] : (e.geoJson && !e.features && (i = e.specialAreas, e = e.geoJson), n = [{
type: "geoJSON",
source: e,
specialAreas: i
}]), f(n, function(t) {
var e = t.type;
"geoJson" === e && (e = t.type = "geoJSON");
var i = Z_[e];
i(t)
}), G_.set(t, n)
},
retrieveMap: function(t) {
return G_.get(t)
}
},
Z_ = {
geoJSON: function(t) {
var e = t.source;
t.geoJSON = b(e) ? "undefined" != typeof JSON && JSON.parse ? JSON.parse(e) : new Function("return (" + e + ");")
() : e
},
svg: function(t) {
t.svgXML = ol(t.source)
}
},
X_ = O,
Y_ = f,
j_ = w,
q_ = S,
U_ = yx.parseClassType,
$_ = "4.2.0",
K_ = {
zrender: "4.0.5"
},
Q_ = 1,
J_ = 1e3,
tw = 5e3,
ew = 1e3,
iw = 2e3,
nw = 3e3,
rw = 4e3,
aw = 5e3,
ow = {
PROCESSOR: {
FILTER: J_,
STATISTIC: tw
},
VISUAL: {
LAYOUT: ew,
GLOBAL: iw,
CHART: nw,
COMPONENT: rw,
BRUSH: aw
}
},
sw = "__flagInMainProcess",
lw = "__optionUpdated",
hw = /^[a-zA-Z0-9_]+$/;
ml.prototype.on = vl("on"), ml.prototype.off = vl("off"), ml.prototype.one = vl("one"), c(ml, bg);
var uw = yl.prototype;
uw._onframe = function() {
if (!this._disposed) {
var t = this._scheduler;
if (this[lw]) {
var e = this[lw].silent;
this[sw] = !0, _l(this), cw.update.call(this), this[sw] = !1, this[lw] = !1, Ml.call(this, e), Il.call(this, e)
} else if (t.unfinished) {
var i = Q_,
n = this._model,
r = this._api;
t.unfinished = !1;
do {
var a = +new Date;
t.performSeriesTasks(n), t.performDataProcessorTasks(n), bl(this, n), t.performVisualTasks(n), Pl(this, this._model,
r, "remain"), i -= +new Date - a
} while (i > 0 && t.unfinished);
t.unfinished || this._zr.flush()
}
}
}, uw.getDom = function() {
return this._dom
}, uw.getZr = function() {
return this._zr
}, uw.setOption = function(t, e, i) {
var n;
if (q_(e) && (i = e.lazyUpdate, n = e.silent, e = e.notMerge), this[sw] = !0, !this._model || e) {
var r = new Qo(this._api),
a = this._theme,
o = this._model = new Ex(null, null, a, r);
o.scheduler = this._scheduler, o.init(null, null, a, r)
}
this._model.setOption(t, vw), i ? (this[lw] = {
silent: n
}, this[sw] = !1) : (_l(this), cw.update.call(this), this._zr.flush(), this[lw] = !1, this[sw] = !1, Ml.call(this,
n), Il.call(this, n))
}, uw.setTheme = function() {
console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")
}, uw.getModel = function() {
return this._model
}, uw.getOption = function() {
return this._model && this._model.getOption()
}, uw.getWidth = function() {
return this._zr.getWidth()
}, uw.getHeight = function() {
return this._zr.getHeight()
}, uw.getDevicePixelRatio = function() {
return this._zr.painter.dpr || window.devicePixelRatio || 1
}, uw.getRenderedCanvas = function(t) {
if (tg.canvasSupported) {
t = t || {}, t.pixelRatio = t.pixelRatio || 1, t.backgroundColor = t.backgroundColor || this._model.get(
"backgroundColor");
var e = this._zr;
return e.painter.getRenderedCanvas(t)
}
}, uw.getSvgDataUrl = function() {
if (tg.svgSupported) {
var t = this._zr,
e = t.storage.getDisplayList();
return f(e, function(t) {
t.stopAnimation(!0)
}), t.painter.pathToDataUrl()
}
}, uw.getDataURL = function(t) {
t = t || {};
var e = t.excludeComponents,
i = this._model,
n = [],
r = this;
Y_(e, function(t) {
i.eachComponent({
mainType: t
}, function(t) {
var e = r._componentsMap[t.__viewId];
e.group.ignore || (n.push(e), e.group.ignore = !0)
})
});
var a = "svg" === this._zr.painter.getType() ? this.getSvgDataUrl() : this.getRenderedCanvas(t).toDataURL("image/" +
(t && t.type || "png"));
return Y_(n, function(t) {
t.group.ignore = !1
}), a
}, uw.getConnectedDataURL = function(t) {
if (tg.canvasSupported) {
var e = this.group,
i = Math.min,
r = Math.max,
a = 1 / 0;
if (bw[e]) {
var o = a,
s = a,
l = -a,
h = -a,
u = [],
c = t && t.pixelRatio || 1;
f(ww, function(a) {
if (a.group === e) {
var c = a.getRenderedCanvas(n(t)),
d = a.getDom().getBoundingClientRect();
o = i(d.left, o), s = i(d.top, s), l = r(d.right, l), h = r(d.bottom, h), u.push({
dom: c,
left: d.left,
top: d.top
})
}
}), o *= c, s *= c, l *= c, h *= c;
var d = l - o,
p = h - s,
g = cg();
g.width = d, g.height = p;
var v = On(g);
return Y_(u, function(t) {
var e = new yn({
style: {
x: t.left * c - o,
y: t.top * c - s,
image: t.dom
}
});
v.add(e)
}), v.refreshImmediately(), g.toDataURL("image/" + (t && t.type || "png"))
}
return this.getDataURL(t)
}
}, uw.convertToPixel = x(xl, "convertToPixel"), uw.convertFromPixel = x(xl, "convertFromPixel"), uw.containPixel =
function(t, e) {
var i, n = this._model;
return t = qn(n, t), f(t, function(t, n) {
n.indexOf("Models") >= 0 && f(t, function(t) {
var r = t.coordinateSystem;
if (r && r.containPoint) i |= !!r.containPoint(e);
else if ("seriesModels" === n) {
var a = this._chartsMap[t.__viewId];
a && a.containPoint && (i |= a.containPoint(e, t))
}
}, this)
}, this), !!i
}, uw.getVisual = function(t, e) {
var i = this._model;
t = qn(i, t, {
defaultMainType: "series"
});
var n = t.seriesModel,
r = n.getData(),
a = t.hasOwnProperty("dataIndexInside") ? t.dataIndexInside : t.hasOwnProperty("dataIndex") ? r.indexOfRawIndex(t.dataIndex) :
null;
return null != a ? r.getItemVisual(a, e) : r.getVisual(e)
}, uw.getViewOfComponentModel = function(t) {
return this._componentsMap[t.__viewId]
}, uw.getViewOfSeriesModel = function(t) {
return this._chartsMap[t.__viewId]
};
var cw = {
prepareAndUpdate: function(t) {
_l(this), cw.update.call(this, t)
},
update: function(t) {
var e = this._model,
i = this._api,
n = this._zr,
r = this._coordSysMgr,
a = this._scheduler;
if (e) {
a.restoreData(e, t), a.performSeriesTasks(e), r.create(e, i), a.performDataProcessorTasks(e, t), bl(this, e), r.update(
e, i), Al(e), a.performVisualTasks(e, t), Dl(this, e, i, t);
var o = e.get("backgroundColor") || "transparent";
if (tg.canvasSupported) n.setBackgroundColor(o);
else {
var s = He(o);
o = Qe(s, "rgb"), 0 === s[3] && (o = "transparent")
}
Ll(e, i)
}
},
updateTransform: function(t) {
var e = this._model,
i = this,
n = this._api;
if (e) {
var r = [];
e.eachComponent(function(a, o) {
var s = i.getViewOfComponentModel(o);
if (s && s.__alive)
if (s.updateTransform) {
var l = s.updateTransform(o, e, n, t);
l && l.update && r.push(s)
} else r.push(s)
});
var a = N();
e.eachSeries(function(r) {
var o = i._chartsMap[r.__viewId];
if (o.updateTransform) {
var s = o.updateTransform(r, e, n, t);
s && s.update && a.set(r.uid, 1)
} else a.set(r.uid, 1)
}), Al(e), this._scheduler.performVisualTasks(e, t, {
setDirty: !0,
dirtyMap: a
}), Pl(i, e, n, t, a), Ll(e, this._api)
}
},
updateView: function(t) {
var e = this._model;
e && (Bs.markUpdateMethod(t, "updateView"), Al(e), this._scheduler.performVisualTasks(e, t, {
setDirty: !0
}), Dl(this, this._model, this._api, t), Ll(e, this._api))
},
updateVisual: function(t) {
cw.update.call(this, t)
},
updateLayout: function(t) {
cw.update.call(this, t)
}
};
uw.resize = function(t) {
this._zr.resize(t);
var e = this._model;
if (this._loadingFX && this._loadingFX.resize(), e) {
var i = e.resetOption("media"),
n = t && t.silent;
this[sw] = !0, i && _l(this), cw.update.call(this), this[sw] = !1, Ml.call(this, n), Il.call(this, n)
}
}, uw.showLoading = function(t, e) {
if (q_(t) && (e = t, t = ""), t = t || "default", this.hideLoading(), _w[t]) {
var i = _w[t](this._api, e),
n = this._zr;
this._loadingFX = i, n.add(i)
}
}, uw.hideLoading = function() {
this._loadingFX && this._zr.remove(this._loadingFX), this._loadingFX = null
}, uw.makeActionFromEvent = function(t) {
var e = o({}, t);
return e.type = pw[t.type], e
}, uw.dispatchAction = function(t, e) {
if (q_(e) || (e = {
silent: !!e
}), fw[t.type] && this._model) {
if (this[sw]) return void this._pendingActions.push(t);
Sl.call(this, t, e.silent), e.flush ? this._zr.flush(!0) : e.flush !== !1 && tg.browser.weChat && this._throttledZrFlush(),
Ml.call(this, e.silent), Il.call(this, e.silent)
}
}, uw.appendData = function(t) {
var e = t.seriesIndex,
i = this.getModel(),
n = i.getSeriesByIndex(e);
n.appendData(t), this._scheduler.unfinished = !0
}, uw.on = vl("on"), uw.off = vl("off"), uw.one = vl("one");
var dw = ["click", "dblclick", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup", "globalout",
"contextmenu"
];
uw._initEvents = function() {
Y_(dw, function(t) {
this._zr.on(t, function(e) {
var i, n = this.getModel(),
r = e.target,
a = "globalout" === t;
if (a) i = {};
else if (r && null != r.dataIndex) {
var s = r.dataModel || n.getSeriesByIndex(r.seriesIndex);
i = s && s.getDataParams(r.dataIndex, r.dataType, r) || {}
} else r && r.eventData && (i = o({}, r.eventData));
if (i) {
var l = i.componentType,
h = i.componentIndex;
("markLine" === l || "markPoint" === l || "markArea" === l) && (l = "series", h = i.seriesIndex);
var u = l && null != h && n.getComponent(l, h),
c = u && this["series" === u.mainType ? "_chartsMap" : "_componentsMap"][u.__viewId];
i.event = e, i.type = t, this._ecEventProcessor.eventInfo = {
targetEl: r,
packedEvent: i,
model: u,
view: c
}, this.trigger(t, i)
}
}, this)
}, this), Y_(pw, function(t, e) {
this._messageCenter.on(e, function(t) {
this.trigger(e, t)
}, this)
}, this)
}, uw.isDisposed = function() {
return this._disposed
}, uw.clear = function() {
this.setOption({
series: []
}, !0)
}, uw.dispose = function() {
if (!this._disposed) {
this._disposed = !0, $n(this.getDom(), Iw, "");
var t = this._api,
e = this._model;
Y_(this._componentsViews, function(i) {
i.dispose(e, t)
}), Y_(this._chartsViews, function(i) {
i.dispose(e, t)
}), this._zr.dispose(), delete ww[this.id]
}
}, c(yl, bg), Bl.prototype = {
constructor: Bl,
normalizeQuery: function(t) {
var e = {},
i = {},
n = {};
if (b(t)) {
var r = U_(t);
e.mainType = r.main || null, e.subType = r.sub || null
} else {
var a = ["Index", "Name", "Id"],
o = {
name: 1,
dataIndex: 1,
dataType: 1
};
f(t, function(t, r) {
for (var s = !1, l = 0; l < a.length; l++) {
var h = a[l],
u = r.lastIndexOf(h);
if (u > 0 && u === r.length - h.length) {
var c = r.slice(0, u);
"data" !== c && (e.mainType = c, e[h.toLowerCase()] = t, s = !0)
}
}
o.hasOwnProperty(r) && (i[r] = t, s = !0), s || (n[r] = t)
})
}
return {
cptQuery: e,
dataQuery: i,
otherQuery: n
}
},
filter: function(t, e) {
function i(t, e, i, n) {
return null == t[i] || e[n || i] === t[i]
}
var n = this.eventInfo;
if (!n) return !0;
var r = n.targetEl,
a = n.packedEvent,
o = n.model,
s = n.view;
if (!o || !s) return !0;
var l = e.cptQuery,
h = e.dataQuery;
return i(l, o, "mainType") && i(l, o, "subType") && i(l, o, "index", "componentIndex") && i(l, o, "name") && i(l,
o, "id") && i(h, a, "name") && i(h, a, "dataIndex") && i(h, a, "dataType") && (!s.filterForExposedEvent || s.filterForExposedEvent(
t, e.otherQuery, r, a))
},
afterTrigger: function() {
this.eventInfo = null
}
};
var fw = {},
pw = {},
gw = [],
vw = [],
mw = [],
yw = [],
xw = {},
_w = {},
ww = {},
bw = {},
Sw = new Date - 0,
Mw = new Date - 0,
Iw = "_echarts_instance_",
Tw = Wl;
Jl(iw, m_), Yl(Ux), jl(tw, $x), eh("default", w_), Ul({
type: "highlight",
event: "highlight",
update: "highlight"
}, V), Ul({
type: "downplay",
event: "downplay",
update: "downplay"
}, V), Xl("light", D_), Xl("dark", O_);
var Cw = {};
uh.prototype = {
constructor: uh,
add: function(t) {
return this._add = t, this
},
update: function(t) {
return this._update = t, this
},
remove: function(t) {
return this._remove = t, this
},
execute: function() {
var t, e = this._old,
i = this._new,
n = {},
r = {},
a = [],
o = [];
for (ch(e, n, a, "_oldKeyGetter", this), ch(i, r, o, "_newKeyGetter", this), t = 0; t < e.length; t++) {
var s = a[t],
l = r[s];
if (null != l) {
var h = l.length;
h ? (1 === h && (r[s] = null), l = l.unshift()) : r[s] = null, this._update && this._update(l, t)
} else this._remove && this._remove(t)
}
for (var t = 0; t < o.length; t++) {
var s = o[t];
if (r.hasOwnProperty(s)) {
var l = r[s];
if (null == l) continue;
if (l.length)
for (var u = 0, h = l.length; h > u; u++) this._add && this._add(l[u]);
else this._add && this._add(l)
}
}
}
};
var Aw = N(["tooltip", "label", "itemName", "itemId", "seriesName"]),
Dw = S,
kw = "undefined",
Pw = "e\x00\x00",
Lw = {
"float": typeof Float64Array === kw ? Array : Float64Array,
"int": typeof Int32Array === kw ? Array : Int32Array,
ordinal: Array,
number: Array,
time: Array
},
Ow = typeof Uint32Array === kw ? Array : Uint32Array,
zw = typeof Uint16Array === kw ? Array : Uint16Array,
Ew = ["hasItemOption", "_nameList", "_idList", "_invertedIndicesMap", "_rawData", "_chunkSize", "_chunkCount",
"_dimValueGetter", "_count", "_rawCount", "_nameDimIdx", "_idDimIdx"
],
Rw = ["_extent", "_approximateExtent", "_rawExtent"],
Bw = function(t, e) {
t = t || ["x", "y"];
for (var i = {}, n = [], r = {}, a = 0; a < t.length; a++) {
var o = t[a];
b(o) && (o = {
name: o
});
var s = o.name;
o.type = o.type || "float", o.coordDim || (o.coordDim = s, o.coordDimIndex = 0), o.otherDims = o.otherDims || {},
n.push(s), i[s] = o, o.index = a, o.createInvertedIndices && (r[s] = [])
}
this.dimensions = n, this._dimensionInfos = i, this.hostModel = e, this.dataType, this._indices = null, this._count =
0, this._rawCount = 0, this._storage = {}, this._nameList = [], this._idList = [], this._optionModels = [], this._visual = {},
this._layout = {}, this._itemVisuals = [], this.hasItemVisual = {}, this._itemLayouts = [], this._graphicEls = [],
this._chunkSize = 1e5, this._chunkCount = 0, this._rawData, this._rawExtent = {}, this._extent = {}, this._approximateExtent = {},
this._dimensionsSummary = dh(this), this._invertedIndicesMap = r, this._calculationInfo = {}
},
Nw = Bw.prototype;
Nw.type = "list", Nw.hasItemOption = !0, Nw.getDimension = function(t) {
return isNaN(t) || (t = this.dimensions[t] || t), t
}, Nw.getDimensionInfo = function(t) {
return this._dimensionInfos[this.getDimension(t)]
}, Nw.getDimensionsOnCoord = function() {
return this._dimensionsSummary.dataDimsOnCoord.slice()
}, Nw.mapDimension = function(t, e) {
var i = this._dimensionsSummary;
if (null == e) return i.encodeFirstDimNotExtra[t];
var n = i.encode[t];
return e === !0 ? (n || []).slice() : n && n[e]
}, Nw.initData = function(t, e, i) {
var n = ko.isInstance(t) || d(t);
n && (t = new vs(t, this.dimensions.length)), this._rawData = t, this._storage = {}, this._indices = null, this._nameList =
e || [], this._idList = [], this._nameRepeatCount = {}, i || (this.hasItemOption = !1), this.defaultDimValueGetter =
t_[this._rawData.getSource().sourceFormat], this._dimValueGetter = i = i || this.defaultDimValueGetter, this._rawExtent = {},
this._initDataFromProvider(0, t.count()), t.pure && (this.hasItemOption = !1)
}, Nw.getProvider = function() {
return this._rawData
}, Nw.appendData = function(t) {
var e = this._rawData,
i = this.count();
e.appendData(t);
var n = e.count();
e.persistent || (n += i), this._initDataFromProvider(i, n)
}, Nw._initDataFromProvider = function(t, e) {
if (!(t >= e)) {
for (var i, n = this._chunkSize, r = this._rawData, a = this._storage, o = this.dimensions, s = o.length, l = this
._dimensionInfos, h = this._nameList, u = this._idList, c = this._rawExtent, d = this._nameRepeatCount = {}, f =
this._chunkCount, p = f - 1, g = 0; s > g; g++) {
var v = o[g];
c[v] || (c[v] = Th());
var m = l[v];
0 === m.otherDims.itemName && (i = this._nameDimIdx = g), 0 === m.otherDims.itemId && (this._idDimIdx = g);
var y = Lw[m.type];
a[v] || (a[v] = []);
var x = a[v][p];
if (x && x.length < n) {
for (var _ = new y(Math.min(e - p * n, n)), w = 0; w < x.length; w++) _[w] = x[w];
a[v][p] = _
}
for (var b = f * n; e > b; b += n) a[v].push(new y(Math.min(e - b, n)));
this._chunkCount = a[v].length
}
for (var S = new Array(s), M = t; e > M; M++) {
S = r.getItem(M, S);
for (var I = Math.floor(M / n), T = M % n, b = 0; s > b; b++) {
var v = o[b],
C = a[v][I],
A = this._dimValueGetter(S, v, M, b);
C[T] = A;
var D = c[v];
A < D[0] && (D[0] = A), A > D[1] && (D[1] = A)
}
if (!r.pure) {
var k = h[M];
if (S && null == k)
if (null != S.name) h[M] = k = S.name;
else if (null != i) {
var P = o[i],
L = a[P][I];
if (L) {
k = L[T];
var O = l[P].ordinalMeta;
O && O.categories.length && (k = O.categories[k])
}
}
var z = null == S ? null : S.id;
null == z && null != k && (d[k] = d[k] || 0, z = k, d[k] > 0 && (z += "__ec__" + d[k]), d[k]++), null != z && (u[
M] = z)
}
}!r.persistent && r.clean && r.clean(), this._rawCount = this._count = e, this._extent = {}, yh(this)
}
}, Nw.count = function() {
return this._count
}, Nw.getIndices = function() {
var t, e = this._indices;
if (e) {
var i = e.constructor,
n = this._count;
if (i === Array) {
t = new i(n);
for (var r = 0; n > r; r++) t[r] = e[r]
} else t = new i(e.buffer, 0, n)
} else
for (var i = gh(this), t = new i(this.count()), r = 0; r < t.length; r++) t[r] = r;
return t
}, Nw.get = function(t, e) {
if (!(e >= 0 && e < this._count)) return 0 / 0;
var i = this._storage;
if (!i[t]) return 0 / 0;
e = this.getRawIndex(e);
var n = Math.floor(e / this._chunkSize),
r = e % this._chunkSize,
a = i[t][n],
o = a[r];
return o
}, Nw.getByRawIndex = function(t, e) {
if (!(e >= 0 && e < this._rawCount)) return 0 / 0;
var i = this._storage[t];
if (!i) return 0 / 0;
var n = Math.floor(e / this._chunkSize),
r = e % this._chunkSize,
a = i[n];
return a[r]
}, Nw._getFast = function(t, e) {
var i = Math.floor(e / this._chunkSize),
n = e % this._chunkSize,
r = this._storage[t][i];
return r[n]
}, Nw.getValues = function(t, e) {
var i = [];
_(t) || (e = t, t = this.dimensions);
for (var n = 0, r = t.length; r > n; n++) i.push(this.get(t[n], e));
return i
}, Nw.hasValue = function(t) {
for (var e = this._dimensionsSummary.dataDimsOnCoord, i = this._dimensionInfos, n = 0, r = e.length; r > n; n++)
if ("ordinal" !== i[e[n]].type && isNaN(this.get(e[n], t))) return !1;
return !0
}, Nw.getDataExtent = function(t) {
t = this.getDimension(t);
var e = this._storage[t],
i = Th();
if (!e) return i;
var n, r = this.count(),
a = !this._indices;
if (a) return this._rawExtent[t].slice();
if (n = this._extent[t]) return n.slice();
n = i;
for (var o = n[0], s = n[1], l = 0; r > l; l++) {
var h = this._getFast(t, this.getRawIndex(l));
o > h && (o = h), h > s && (s = h)
}
return n = [o, s], this._extent[t] = n, n
}, Nw.getApproximateExtent = function(t) {
return t = this.getDimension(t), this._approximateExtent[t] || this.getDataExtent(t)
}, Nw.setApproximateExtent = function(t, e) {
e = this.getDimension(e), this._approximateExtent[e] = t.slice()
}, Nw.getCalculationInfo = function(t) {
return this._calculationInfo[t]
}, Nw.setCalculationInfo = function(t, e) {
Dw(t) ? o(this._calculationInfo, t) : this._calculationInfo[t] = e
}, Nw.getSum = function(t) {
var e = this._storage[t],
i = 0;
if (e)
for (var n = 0, r = this.count(); r > n; n++) {
var a = this.get(t, n);
isNaN(a) || (i += a)
}
return i
}, Nw.getMedian = function(t) {
var e = [];
this.each(t, function(t) {
isNaN(t) || e.push(t)
});
var i = [].concat(e).sort(function(t, e) {
return t - e
}),
n = this.count();
return 0 === n ? 0 : n % 2 === 1 ? i[(n - 1) / 2] : (i[n / 2] + i[n / 2 - 1]) / 2
}, Nw.rawIndexOf = function(t, e) {
var i = t && this._invertedIndicesMap[t],
n = i[e];
return null == n || isNaN(n) ? -1 : n
}, Nw.indexOfName = function(t) {
for (var e = 0, i = this.count(); i > e; e++)
if (this.getName(e) === t) return e;
return -1
}, Nw.indexOfRawIndex = function(t) {
if (!this._indices) return t;
if (t >= this._rawCount || 0 > t) return -1;
var e = this._indices,
i = e[t];
if (null != i && i < this._count && i === t) return t;
for (var n = 0, r = this._count - 1; r >= n;) {
var a = (n + r) / 2 | 0;
if (e[a] < t) n = a + 1;
else {
if (!(e[a] > t)) return a;
r = a - 1
}
}
return -1
}, Nw.indicesOfNearest = function(t, e, i) {
var n = this._storage,
r = n[t],
a = [];
if (!r) return a;
null == i && (i = 1 / 0);
for (var o = Number.MAX_VALUE, s = -1, l = 0, h = this.count(); h > l; l++) {
var u = e - this.get(t, l),
c = Math.abs(u);
i >= u && o >= c && ((o > c || u >= 0 && 0 > s) && (o = c, s = u, a.length = 0), a.push(l))
}
return a
}, Nw.getRawIndex = _h, Nw.getRawDataItem = function(t) {
if (this._rawData.persistent) return this._rawData.getItem(this.getRawIndex(t));
for (var e = [], i = 0; i < this.dimensions.length; i++) {
var n = this.dimensions[i];
e.push(this.get(n, t))
}
return e
}, Nw.getName = function(t) {
var e = this.getRawIndex(t);
return this._nameList[e] || xh(this, this._nameDimIdx, e) || ""
}, Nw.getId = function(t) {
return bh(this, this.getRawIndex(t))
}, Nw.each = function(t, e, i, n) {
if (this._count) {
"function" == typeof t && (n = i, i = e, e = t, t = []), i = i || n || this, t = p(Sh(t), this.getDimension, this);
for (var r = t.length, a = 0; a < this.count(); a++) switch (r) {
case 0:
e.call(i, a);
break;
case 1:
e.call(i, this.get(t[0], a), a);
break;
case 2:
e.call(i, this.get(t[0], a), this.get(t[1], a), a);
break;
default:
for (var o = 0, s = []; r > o; o++) s[o] = this.get(t[o], a);
s[o] = a, e.apply(i, s)
}
}
}, Nw.filterSelf = function(t, e, i, n) {
if (this._count) {
"function" == typeof t && (n = i, i = e, e = t, t = []), i = i || n || this, t = p(Sh(t), this.getDimension, this);
for (var r = this.count(), a = gh(this), o = new a(r), s = [], l = t.length, h = 0, u = t[0], c = 0; r > c; c++) {
var d, f = this.getRawIndex(c);
if (0 === l) d = e.call(i, c);
else if (1 === l) {
var g = this._getFast(u, f);
d = e.call(i, g, c)
} else {
for (var v = 0; l > v; v++) s[v] = this._getFast(u, f);
s[v] = c, d = e.apply(i, s)
}
d && (o[h++] = f)
}
return r > h && (this._indices = o), this._count = h, this._extent = {}, this.getRawIndex = this._indices ? wh :
_h, this
}
}, Nw.selectRange = function(t) {
if (this._count) {
var e = [];
for (var i in t) t.hasOwnProperty(i) && e.push(i);
var n = e.length;
if (n) {
var r = this.count(),
a = gh(this),
o = new a(r),
s = 0,
l = e[0],
h = t[l][0],
u = t[l][1],
c = !1;
if (!this._indices) {
var d = 0;
if (1 === n) {
for (var f = this._storage[e[0]], p = 0; p < this._chunkCount; p++)
for (var g = f[p], v = Math.min(this._count - p * this._chunkSize, this._chunkSize), m = 0; v > m; m++) {
var y = g[m];
(y >= h && u >= y || isNaN(y)) && (o[s++] = d), d++
}
c = !0
} else if (2 === n) {
for (var f = this._storage[l], x = this._storage[e[1]], _ = t[e[1]][0], w = t[e[1]][1], p = 0; p < this._chunkCount; p++)
for (var g = f[p], b = x[p], v = Math.min(this._count - p * this._chunkSize, this._chunkSize), m = 0; v > m; m++) {
var y = g[m],
S = b[m];
(y >= h && u >= y || isNaN(y)) && (S >= _ && w >= S || isNaN(S)) && (o[s++] = d), d++
}
c = !0
}
}
if (!c)
if (1 === n)
for (var m = 0; r > m; m++) {
var M = this.getRawIndex(m),
y = this._getFast(l, M);
(y >= h && u >= y || isNaN(y)) && (o[s++] = M)
} else
for (var m = 0; r > m; m++) {
for (var I = !0, M = this.getRawIndex(m), p = 0; n > p; p++) {
var T = e[p],
y = this._getFast(i, M);
(y < t[T][0] || y > t[T][1]) && (I = !1)
}
I && (o[s++] = this.getRawIndex(m))
}
return r > s && (this._indices = o), this._count = s, this._extent = {}, this.getRawIndex = this._indices ? wh :
_h, this
}
}
}, Nw.mapArray = function(t, e, i, n) {
"function" == typeof t && (n = i, i = e, e = t, t = []), i = i || n || this;
var r = [];
return this.each(t, function() {
r.push(e && e.apply(this, arguments))
}, i), r
}, Nw.map = function(t, e, i, n) {
i = i || n || this, t = p(Sh(t), this.getDimension, this);
var r = Mh(this, t);
r._indices = this._indices, r.getRawIndex = r._indices ? wh : _h;
for (var a = r._storage, o = [], s = this._chunkSize, l = t.length, h = this.count(), u = [], c = r._rawExtent, d =
0; h > d; d++) {
for (var f = 0; l > f; f++) u[f] = this.get(t[f], d);
u[l] = d;
var g = e && e.apply(i, u);
if (null != g) {
"object" != typeof g && (o[0] = g, g = o);
for (var v = this.getRawIndex(d), m = Math.floor(v / s), y = v % s, x = 0; x < g.length; x++) {
var _ = t[x],
w = g[x],
b = c[_],
S = a[_];
S && (S[m][y] = w), w < b[0] && (b[0] = w), w > b[1] && (b[1] = w)
}
}
}
return r
}, Nw.downSample = function(t, e, i, n) {
for (var r = Mh(this, [t]), a = r._storage, o = [], s = Math.floor(1 / e), l = a[t], h = this.count(), u = this._chunkSize,
c = r._rawExtent[t], d = new(gh(this))(h), f = 0, p = 0; h > p; p += s) {
s > h - p && (s = h - p, o.length = s);
for (var g = 0; s > g; g++) {
var v = this.getRawIndex(p + g),
m = Math.floor(v / u),
y = v % u;
o[g] = l[m][y]
}
var x = i(o),
_ = this.getRawIndex(Math.min(p + n(o, x) || 0, h - 1)),
w = Math.floor(_ / u),
b = _ % u;
l[w][b] = x, x < c[0] && (c[0] = x), x > c[1] && (c[1] = x), d[f++] = _
}
return r._count = f, r._indices = d, r.getRawIndex = wh, r
}, Nw.getItemModel = function(t) {
var e = this.hostModel;
return new Wa(this.getRawDataItem(t), e, e && e.ecModel)
}, Nw.diff = function(t) {
var e = this;
return new uh(t ? t.getIndices() : [], this.getIndices(), function(e) {
return bh(t, e)
}, function(t) {
return bh(e, t)
})
}, Nw.getVisual = function(t) {
var e = this._visual;
return e && e[t]
}, Nw.setVisual = function(t, e) {
if (Dw(t))
for (var i in t) t.hasOwnProperty(i) && this.setVisual(i, t[i]);
else this._visual = this._visual || {}, this._visual[t] = e
}, Nw.setLayout = function(t, e) {
if (Dw(t))
for (var i in t) t.hasOwnProperty(i) && this.setLayout(i, t[i]);
else this._layout[t] = e
}, Nw.getLayout = function(t) {
return this._layout[t]
}, Nw.getItemLayout = function(t) {
return this._itemLayouts[t]
}, Nw.setItemLayout = function(t, e, i) {
this._itemLayouts[t] = i ? o(this._itemLayouts[t] || {}, e) : e
}, Nw.clearItemLayouts = function() {
this._itemLayouts.length = 0
}, Nw.getItemVisual = function(t, e, i) {
var n = this._itemVisuals[t],
r = n && n[e];
return null != r || i ? r : this.getVisual(e)
}, Nw.setItemVisual = function(t, e, i) {
var n = this._itemVisuals[t] || {},
r = this.hasItemVisual;
if (this._itemVisuals[t] = n, Dw(e))
for (var a in e) e.hasOwnProperty(a) && (n[a] = e[a], r[a] = !0);
else n[e] = i, r[e] = !0
}, Nw.clearAllVisual = function() {
this._visual = {}, this._itemVisuals = [], this.hasItemVisual = {}
};
var Fw = function(t) {
t.seriesIndex = this.seriesIndex, t.dataIndex = this.dataIndex, t.dataType = this.dataType
};
Nw.setItemGraphicEl = function(t, e) {
var i = this.hostModel;
e && (e.dataIndex = t, e.dataType = this.dataType, e.seriesIndex = i && i.seriesIndex, "group" === e.type && e.traverse(
Fw, e)), this._graphicEls[t] = e
}, Nw.getItemGraphicEl = function(t) {
return this._graphicEls[t]
}, Nw.eachItemGraphicEl = function(t, e) {
f(this._graphicEls, function(i, n) {
i && t && t.call(e, i, n)
})
}, Nw.cloneShallow = function(t) {
if (!t) {
var e = p(this.dimensions, this.getDimensionInfo, this);
t = new Bw(e, this.hostModel)
}
if (t._storage = this._storage, mh(t, this), this._indices) {
var i = this._indices.constructor;
t._indices = new i(this._indices)
} else t._indices = null;
return t.getRawIndex = t._indices ? wh : _h, t
}, Nw.wrapMethod = function(t, e) {
var i = this[t];
"function" == typeof i && (this.__wrappedMethods = this.__wrappedMethods || [], this.__wrappedMethods.push(t), this[
t] = function() {
var t = i.apply(this, arguments);
return e.apply(this, [t].concat(P(arguments)))
})
}, Nw.TRANSFERABLE_METHODS = ["cloneShallow", "downSample", "map"], Nw.CHANGABLE_METHODS = ["filterSelf",
"selectRange"
];
var Vw = function(t, e) {
return e = e || {}, Ch(e.coordDimensions || [], t, {
dimsDef: e.dimensionsDefine || t.dimensionsDefine,
encodeDef: e.encodeDefine || t.encodeDefine,
dimCount: e.dimensionsCount,
generateCoord: e.generateCoord,
generateCoordCount: e.generateCoordCount
})
};
Rh.prototype.parse = function(t) {
return t
}, Rh.prototype.getSetting = function(t) {
return this._setting[t]
}, Rh.prototype.contain = function(t) {
var e = this._extent;
return t >= e[0] && t <= e[1]
}, Rh.prototype.normalize = function(t) {
var e = this._extent;
return e[1] === e[0] ? .5 : (t - e[0]) / (e[1] - e[0])
}, Rh.prototype.scale = function(t) {
var e = this._extent;
return t * (e[1] - e[0]) + e[0]
}, Rh.prototype.unionExtent = function(t) {
var e = this._extent;
t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1])
}, Rh.prototype.unionExtentFromData = function(t, e) {
this.unionExtent(t.getApproximateExtent(e))
}, Rh.prototype.getExtent = function() {
return this._extent.slice()
}, Rh.prototype.setExtent = function(t, e) {
var i = this._extent;
isNaN(t) || (i[0] = t), isNaN(e) || (i[1] = e)
}, Rh.prototype.isBlank = function() {
return this._isBlank
}, Rh.prototype.setBlank = function(t) {
this._isBlank = t
}, Rh.prototype.getLabel = null, er(Rh), ar(Rh, {
registerWhenExtend: !0
}), Bh.createByAxisModel = function(t) {
var e = t.option,
i = e.data,
n = i && p(i, Fh);
return new Bh({
categories: n,
needCollect: !n,
deduplication: e.dedplication !== !1
})
};
var Ww = Bh.prototype;
Ww.getOrdinal = function(t) {
return Nh(this).get(t)
}, Ww.parseAndCollect = function(t) {
var e, i = this._needCollect;
if ("string" != typeof t && !i) return t;
if (i && !this._deduplication) return e = this.categories.length, this.categories[e] = t, e;
var n = Nh(this);
return e = n.get(t), null == e && (i ? (e = this.categories.length, this.categories[e] = t, n.set(t, e)) : e = 0 /
0), e
};
var Gw = Rh.prototype,
Hw = Rh.extend({
type: "ordinal",
init: function(t, e) {
(!t || _(t)) && (t = new Bh({
categories: t
})), this._ordinalMeta = t, this._extent = e || [0, t.categories.length - 1]
},
parse: function(t) {
return "string" == typeof t ? this._ordinalMeta.getOrdinal(t) : Math.round(t)
},
contain: function(t) {
return t = this.parse(t), Gw.contain.call(this, t) && null != this._ordinalMeta.categories[t]
},
normalize: function(t) {
return Gw.normalize.call(this, this.parse(t))
},
scale: function(t) {
return Math.round(Gw.scale.call(this, t))
},
getTicks: function() {
for (var t = [], e = this._extent, i = e[0]; i <= e[1];) t.push(i), i++;
return t
},
getLabel: function(t) {
return this.isBlank() ? void 0 : this._ordinalMeta.categories[t]
},
count: function() {
return this._extent[1] - this._extent[0] + 1
},
unionExtentFromData: function(t, e) {
this.unionExtent(t.getApproximateExtent(e))
},
getOrdinalMeta: function() {
return this._ordinalMeta
},
niceTicks: V,
niceExtent: V
});
Hw.create = function() {
return new Hw
};
var Zw = $a,
Xw = $a,
Yw = Rh.extend({
type: "interval",
_interval: 0,
_intervalPrecision: 2,
setExtent: function(t, e) {
var i = this._extent;
isNaN(t) || (i[0] = parseFloat(t)), isNaN(e) || (i[1] = parseFloat(e))
},
unionExtent: function(t) {
var e = this._extent;
t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]), Yw.prototype.setExtent.call(this, e[0], e[1])
},
getInterval: function() {
return this._interval
},
setInterval: function(t) {
this._interval = t, this._niceExtent = this._extent.slice(), this._intervalPrecision = Wh(t)
},
getTicks: function() {
return Zh(this._interval, this._extent, this._niceExtent, this._intervalPrecision)
},
getLabel: function(t, e) {
if (null == t) return "";
var i = e && e.precision;
return null == i ? i = Ja(t) || 0 : "auto" === i && (i = this._intervalPrecision), t = Xw(t, i, !0), co(t)
},
niceTicks: function(t, e, i) {
t = t || 5;
var n = this._extent,
r = n[1] - n[0];
if (isFinite(r)) {
0 > r && (r = -r, n.reverse());
var a = Vh(n, t, e, i);
this._intervalPrecision = a.intervalPrecision, this._interval = a.interval, this._niceExtent = a.niceTickExtent
}
},
niceExtent: function(t) {
var e = this._extent;
if (e[0] === e[1])
if (0 !== e[0]) {
var i = e[0];
t.fixMax ? e[0] -= i / 2 : (e[1] += i / 2, e[0] -= i / 2)
} else e[1] = 1;
var n = e[1] - e[0];
isFinite(n) || (e[0] = 0, e[1] = 1), this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval);
var r = this._interval;
t.fixMin || (e[0] = Xw(Math.floor(e[0] / r) * r)), t.fixMax || (e[1] = Xw(Math.ceil(e[1] / r) * r))
}
});
Yw.create = function() {
return new Yw
};
var jw = "__ec_stack_",
qw = .5,
Uw = "undefined" != typeof Float32Array ? Float32Array : Array,
$w = {
seriesType: "bar",
plan: h_(),
reset: function(t) {
function e(t, e) {
for (var i, c = new Uw(2 * t.count), d = [], f = [], p = 0; null != (i = t.next());) f[h] = e.get(o, i), f[1 - h] =
e.get(s, i), d = n.dataToPoint(f, null, d), c[p++] = d[0], c[p++] = d[1];
e.setLayout({
largePoints: c,
barWidth: u,
valueAxisStart: eu(r, a, !1),
valueAxisHorizontal: l
})
}
if (Jh(t) && tu(t)) {
var i = t.getData(),
n = t.coordinateSystem,
r = n.getBaseAxis(),
a = n.getOtherAxis(r),
o = i.mapDimension(a.dim),
s = i.mapDimension(r.dim),
l = a.isHorizontal(),
h = l ? 0 : 1,
u = Kh(Uh([t]), r, t).width;
return u > qw || (u = qw), {
progress: e
}
}
}
},
Kw = Yw.prototype,
Qw = Math.ceil,
Jw = Math.floor,
tb = 1e3,
eb = 60 * tb,
ib = 60 * eb,
nb = 24 * ib,
rb = function(t, e, i, n) {
for (; n > i;) {
var r = i + n >>> 1;
t[r][1] < e ? i = r + 1 : n = r
}
return i
},
ab = Yw.extend({
type: "time",
getLabel: function(t) {
var e = this._stepLvl,
i = new Date(t);
return xo(e[0], i, this.getSetting("useUTC"))
},
niceExtent: function(t) {
var e = this._extent;
if (e[0] === e[1] && (e[0] -= nb, e[1] += nb), e[1] === -1 / 0 && 1 / 0 === e[0]) {
var i = new Date;
e[1] = +new Date(i.getFullYear(), i.getMonth(), i.getDate()), e[0] = e[1] - nb
}
this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval);
var n = this._interval;
t.fixMin || (e[0] = $a(Jw(e[0] / n) * n)), t.fixMax || (e[1] = $a(Qw(e[1] / n) * n))
},
niceTicks: function(t, e, i) {
t = t || 10;
var n = this._extent,
r = n[1] - n[0],
a = r / t;
null != e && e > a && (a = e), null != i && a > i && (a = i);
var o = ob.length,
s = rb(ob, a, 0, o),
l = ob[Math.min(s, o - 1)],
h = l[1];
if ("year" === l[0]) {
var u = r / h,
c = so(u / t, !0);
h *= c
}
var d = this.getSetting("useUTC") ? 0 : 60 * new Date(+n[0] || +n[1]).getTimezoneOffset() * 1e3,
f = [Math.round(Qw((n[0] - d) / h) * h + d), Math.round(Jw((n[1] - d) / h) * h + d)];
Hh(f, n), this._stepLvl = l, this._interval = h, this._niceExtent = f
},
parse: function(t) {
return +ro(t)
}
});
f(["contain", "normalize"], function(t) {
ab.prototype[t] = function(e) {
return Kw[t].call(this, this.parse(e))
}
});
var ob = [
["hh:mm:ss", tb],
["hh:mm:ss", 5 * tb],
["hh:mm:ss", 10 * tb],
["hh:mm:ss", 15 * tb],
["hh:mm:ss", 30 * tb],
["hh:mm\nMM-dd", eb],
["hh:mm\nMM-dd", 5 * eb],
["hh:mm\nMM-dd", 10 * eb],
["hh:mm\nMM-dd", 15 * eb],
["hh:mm\nMM-dd", 30 * eb],
["hh:mm\nMM-dd", ib],
["hh:mm\nMM-dd", 2 * ib],
["hh:mm\nMM-dd", 6 * ib],
["hh:mm\nMM-dd", 12 * ib],
["MM-dd\nyyyy", nb],
["MM-dd\nyyyy", 2 * nb],
["MM-dd\nyyyy", 3 * nb],
["MM-dd\nyyyy", 4 * nb],
["MM-dd\nyyyy", 5 * nb],
["MM-dd\nyyyy", 6 * nb],
["week", 7 * nb],
["MM-dd\nyyyy", 10 * nb],
["week", 14 * nb],
["week", 21 * nb],
["month", 31 * nb],
["week", 42 * nb],
["month", 62 * nb],
["week", 70 * nb],
["quarter", 95 * nb],
["month", 31 * nb * 4],
["month", 31 * nb * 5],
["half-year", 380 * nb / 2],
["month", 31 * nb * 8],
["month", 31 * nb * 10],
["year", 380 * nb]
];
ab.create = function(t) {
return new ab({
useUTC: t.ecModel.get("useUTC")
})
};
var sb = Rh.prototype,
lb = Yw.prototype,
hb = Ja,
ub = $a,
cb = Math.floor,
db = Math.ceil,
fb = Math.pow,
pb = Math.log,
gb = Rh.extend({
type: "log",
base: 10,
$constructor: function() {
Rh.apply(this, arguments), this._originalScale = new Yw
},
getTicks: function() {
var t = this._originalScale,
e = this._extent,
i = t.getExtent();
return p(lb.getTicks.call(this), function(n) {
var r = $a(fb(this.base, n));
return r = n === e[0] && t.__fixMin ? iu(r, i[0]) : r, r = n === e[1] && t.__fixMax ? iu(r, i[1]) : r
}, this)
},
getLabel: lb.getLabel,
scale: function(t) {
return t = sb.scale.call(this, t), fb(this.base, t)
},
setExtent: function(t, e) {
var i = this.base;
t = pb(t) / pb(i), e = pb(e) / pb(i), lb.setExtent.call(this, t, e)
},
getExtent: function() {
var t = this.base,
e = sb.getExtent.call(this);
e[0] = fb(t, e[0]), e[1] = fb(t, e[1]);
var i = this._originalScale,
n = i.getExtent();
return i.__fixMin && (e[0] = iu(e[0], n[0])), i.__fixMax && (e[1] = iu(e[1], n[1])), e
},
unionExtent: function(t) {
this._originalScale.unionExtent(t);
var e = this.base;
t[0] = pb(t[0]) / pb(e), t[1] = pb(t[1]) / pb(e), sb.unionExtent.call(this, t)
},
unionExtentFromData: function(t, e) {
this.unionExtent(t.getApproximateExtent(e))
},
niceTicks: function(t) {
t = t || 10;
var e = this._extent,
i = e[1] - e[0];
if (!(1 / 0 === i || 0 >= i)) {
var n = ao(i),
r = t / i * n;
for (.5 >= r && (n *= 10); !isNaN(n) && Math.abs(n) < 1 && Math.abs(n) > 0;) n *= 10;
var a = [$a(db(e[0] / n) * n), $a(cb(e[1] / n) * n)];
this._interval = n, this._niceExtent = a
}
},
niceExtent: function(t) {
lb.niceExtent.call(this, t);
var e = this._originalScale;
e.__fixMin = t.fixMin, e.__fixMax = t.fixMax
}
});
f(["contain", "normalize"], function(t) {
gb.prototype[t] = function(e) {
return e = pb(e) / pb(this.base), sb[t].call(this, e)
}
}), gb.create = function() {
return new gb
};
var vb = {
getMin: function(t) {
var e = this.option,
i = t || null == e.rangeStart ? e.min : e.rangeStart;
return this.axis && null != i && "dataMin" !== i && "function" != typeof i && !C(i) && (i = this.axis.scale.parse(
i)), i
},
getMax: function(t) {
var e = this.option,
i = t || null == e.rangeEnd ? e.max : e.rangeEnd;
return this.axis && null != i && "dataMax" !== i && "function" != typeof i && !C(i) && (i = this.axis.scale.parse(
i)), i
},
getNeedCrossZero: function() {
var t = this.option;
return null != t.rangeStart || null != t.rangeEnd ? !1 : !t.scale
},
getCoordSysModel: V,
setRange: function(t, e) {
this.option.rangeStart = t, this.option.rangeEnd = e
},
resetRange: function() {
this.option.rangeStart = this.option.rangeEnd = null
}
},
mb = $r({
type: "triangle",
shape: {
cx: 0,
cy: 0,
width: 0,
height: 0
},
buildPath: function(t, e) {
var i = e.cx,
n = e.cy,
r = e.width / 2,
a = e.height / 2;
t.moveTo(i, n - a), t.lineTo(i + r, n + a), t.lineTo(i - r, n + a), t.closePath()
}
}),
yb = $r({
type: "diamond",
shape: {
cx: 0,
cy: 0,
width: 0,
height: 0
},
buildPath: function(t, e) {
var i = e.cx,
n = e.cy,
r = e.width / 2,
a = e.height / 2;
t.moveTo(i, n - a), t.lineTo(i + r, n), t.lineTo(i, n + a), t.lineTo(i - r, n), t.closePath()
}
}),
xb = $r({
type: "pin",
shape: {
x: 0,
y: 0,
width: 0,
height: 0
},
buildPath: function(t, e) {
var i = e.x,
n = e.y,
r = e.width / 5 * 3,
a = Math.max(r, e.height),
o = r / 2,
s = o * o / (a - o),
l = n - a + o + s,
h = Math.asin(s / o),
u = Math.cos(h) * o,
c = Math.sin(h),
d = Math.cos(h),
f = .6 * o,
p = .7 * o;
t.moveTo(i - u, l + s), t.arc(i, l, o, Math.PI - h, 2 * Math.PI + h), t.bezierCurveTo(i + u - c * f, l + s + d *
f, i, n - p, i, n), t.bezierCurveTo(i, n - p, i - u + c * f, l + s + d * f, i - u, l + s), t.closePath()
}
}),
_b = $r({
type: "arrow",
shape: {
x: 0,
y: 0,
width: 0,
height: 0
},
buildPath: function(t, e) {
var i = e.height,
n = e.width,
r = e.x,
a = e.y,
o = n / 3 * 2;
t.moveTo(r, a), t.lineTo(r + o, a + i), t.lineTo(r, a + i / 4 * 3), t.lineTo(r - o, a + i), t.lineTo(r, a), t.closePath()
}
}),
wb = {
line: ky,
rect: Dy,
roundRect: Dy,
square: Dy,
circle: _y,
diamond: yb,
pin: xb,
arrow: _b,
triangle: mb
},
bb = {
line: function(t, e, i, n, r) {
r.x1 = t, r.y1 = e + n / 2, r.x2 = t + i, r.y2 = e + n / 2
},
rect: function(t, e, i, n, r) {
r.x = t, r.y = e, r.width = i, r.height = n
},
roundRect: function(t, e, i, n, r) {
r.x = t, r.y = e, r.width = i, r.height = n, r.r = Math.min(i, n) / 4
},
square: function(t, e, i, n, r) {
var a = Math.min(i, n);
r.x = t, r.y = e, r.width = a, r.height = a
},
circle: function(t, e, i, n, r) {
r.cx = t + i / 2, r.cy = e + n / 2, r.r = Math.min(i, n) / 2
},
diamond: function(t, e, i, n, r) {
r.cx = t + i / 2, r.cy = e + n / 2, r.width = i, r.height = n
},
pin: function(t, e, i, n, r) {
r.x = t + i / 2, r.y = e + n / 2, r.width = i, r.height = n
},
arrow: function(t, e, i, n, r) {
r.x = t + i / 2, r.y = e + n / 2, r.width = i, r.height = n
},
triangle: function(t, e, i, n, r) {
r.cx = t + i / 2, r.cy = e + n / 2, r.width = i, r.height = n
}
},
Sb = {};
f(wb, function(t, e) {
Sb[e] = new t
});
var Mb = $r({
type: "symbol",
shape: {
symbolType: "",
x: 0,
y: 0,
width: 0,
height: 0
},
beforeBrush: function() {
var t = this.style,
e = this.shape;
"pin" === e.symbolType && "inside" === t.textPosition && (t.textPosition = ["50%", "40%"], t.textAlign =
"center", t.textVerticalAlign = "middle")
},
buildPath: function(t, e, i) {
var n = e.symbolType,
r = Sb[n];
"none" !== e.symbolType && (r || (n = "rect", r = Sb[n]), bb[n](e.x, e.y, e.width, e.height, r.shape), r.buildPath(
t, r.shape, i))
}
}),
Ib = {
isDimensionStacked: Ph,
enableDataStack: kh,
getStackedDimension: Lh
},
Tb = (Object.freeze || Object)({
createList: pu,
getLayoutRect: bo,
dataStack: Ib,
createScale: gu,
mixinAxisModelCommonMethods: vu,
completeDimensions: Ch,
createDimensions: Vw,
createSymbol: fu
}),
Cb = 1e-8;
xu.prototype = {
constructor: xu,
properties: null,
getBoundingRect: function() {
var t = this._rect;
if (t) return t;
for (var e = Number.MAX_VALUE, i = [e, e], n = [-e, -e], r = [], a = [], o = this.geometries, s = 0; s < o.length; s++)
if ("polygon" === o[s].type) {
var l = o[s].exterior;
_r(l, r, a), oe(i, i, r), se(n, n, a)
} return 0 === s && (i[0] = i[1] = n[0] = n[1] = 0), this._rect = new gi(i[0], i[1], n[0] - i[0], n[1] - i[1])
},
contain: function(t) {
var e = this.getBoundingRect(),
i = this.geometries;
if (!e.contain(t[0], t[1])) return !1;
t: for (var n = 0, r = i.length; r > n; n++)
if ("polygon" === i[n].type) {
var a = i[n].exterior,
o = i[n].interiors;
if (yu(a, t[0], t[1])) {
for (var s = 0; s < (o ? o.length : 0); s++)
if (yu(o[s])) continue t;
return !0
}
}
return !1
},
transformTo: function(t, e, i, n) {
var r = this.getBoundingRect(),
a = r.width / r.height;
i ? n || (n = i / a) : i = a * n;
for (var o = new gi(t, e, i, n), s = r.calculateTransform(o), l = this.geometries, h = 0; h < l.length; h++)
if ("polygon" === l[h].type) {
for (var u = l[h].exterior, c = l[h].interiors, d = 0; d < u.length; d++) ae(u[d], u[d], s);
for (var f = 0; f < (c ? c.length : 0); f++)
for (var d = 0; d < c[f].length; d++) ae(c[f][d], c[f][d], s)
} r = this._rect, r.copy(o), this.center = [r.x + r.width / 2, r.y + r.height / 2]
},
cloneShallow: function(t) {
null == t && (t = this.name);
var e = new xu(t, this.geometries, this.center);
return e._rect = this._rect, e.transformTo = null, e
}
};
var Ab = function(t) {
return _u(t), p(v(t.features, function(t) {
return t.geometry && t.properties && t.geometry.coordinates.length > 0
}), function(t) {
var e = t.properties,
i = t.geometry,
n = i.coordinates,
r = [];
"Polygon" === i.type && r.push({
type: "polygon",
exterior: n[0],
interiors: n.slice(1)
}), "MultiPolygon" === i.type && f(n, function(t) {
t[0] && r.push({
type: "polygon",
exterior: t[0],
interiors: t.slice(1)
})
});
var a = new xu(e.name, r, e.cp);
return a.properties = e, a
})
},
Db = jn(),
kb = [0, 1],
Pb = function(t, e, i) {
this.dim = t, this.scale = e, this._extent = i || [0, 0], this.inverse = !1, this.onBand = !1
};
Pb.prototype = {
constructor: Pb,
contain: function(t) {
var e = this._extent,
i = Math.min(e[0], e[1]),
n = Math.max(e[0], e[1]);
return t >= i && n >= t
},
containData: function(t) {
return this.contain(this.dataToCoord(t))
},
getExtent: function() {
return this._extent.slice()
},
getPixelPrecision: function(t) {
return to(t || this.scale.getExtent(), this._extent)
},
setExtent: function(t, e) {
var i = this._extent;
i[0] = t, i[1] = e
},
dataToCoord: function(t, e) {
var i = this._extent,
n = this.scale;
return t = n.normalize(t), this.onBand && "ordinal" === n.type && (i = i.slice(), Bu(i, n.count())), qa(t, kb, i,
e)
},
coordToData: function(t, e) {
var i = this._extent,
n = this.scale;
this.onBand && "ordinal" === n.type && (i = i.slice(), Bu(i, n.count()));
var r = qa(t, i, kb, e);
return this.scale.scale(r)
},
pointToData: function() {},
getTicksCoords: function(t) {
t = t || {};
var e = t.tickModel || this.getTickModel(),
i = Su(this, e),
n = i.ticks,
r = p(n, function(t) {
return {
coord: this.dataToCoord(t),
tickValue: t
}
}, this),
a = e.get("alignWithLabel");
return Nu(this, r, i.tickCategoryInterval, a, t.clamp), r
},
getViewLabels: function() {
return bu(this).labels
},
getLabelModel: function() {
return this.model.getModel("axisLabel")
},
getTickModel: function() {
return this.model.getModel("axisTick")
},
getBandWidth: function() {
var t = this._extent,
e = this.scale.getExtent(),
i = e[1] - e[0] + (this.onBand ? 1 : 0);
0 === i && (i = 1);
var n = Math.abs(t[1] - t[0]);
return Math.abs(n) / i
},
isHorizontal: null,
getRotate: null,
calculateCategoryInterval: function() {
return Lu(this)
}
};
var Lb = Ab,
Ob = {};
f(["map", "each", "filter", "indexOf", "inherits", "reduce", "filter", "bind", "curry", "isArray", "isString",
"isObject", "isFunction", "extend", "defaults", "clone", "merge"
], function(t) {
Ob[t] = pg[t]
});
var zb = {};
f(["extendShape", "extendPath", "makePath", "makeImage", "mergePath", "resizePath", "createIcon", "setHoverStyle",
"setLabelStyle", "setTextStyle", "setText", "getFont", "updateProps", "initProps", "getTransform",
"clipPointsByRect", "clipRectByRect", "Group", "Image", "Text", "Circle", "Sector", "Ring", "Polygon", "Polyline",
"Rect", "Line", "BezierCurve", "Arc", "IncrementalDisplayable", "CompoundPath", "LinearGradient", "RadialGradient",
"BoundingRect"
], function(t) {
zb[t] = Yy[t]
});
var Eb = function(t) {
this._axes = {}, this._dimList = [], this.name = t || ""
};
Eb.prototype = {
constructor: Eb,
type: "cartesian",
getAxis: function(t) {
return this._axes[t]
},
getAxes: function() {
return p(this._dimList, Fu, this)
},
getAxesByScale: function(t) {
return t = t.toLowerCase(), v(this.getAxes(), function(e) {
return e.scale.type === t
})
},
addAxis: function(t) {
var e = t.dim;
this._axes[e] = t, this._dimList.push(e)
},
dataToCoord: function(t) {
return this._dataCoordConvert(t, "dataToCoord")
},
coordToData: function(t) {
return this._dataCoordConvert(t, "coordToData")
},
_dataCoordConvert: function(t, e) {
for (var i = this._dimList, n = t instanceof Array ? [] : {}, r = 0; r < i.length; r++) {
var a = i[r],
o = this._axes[a];
n[a] = o[e](t[a])
}
return n
}
}, Vu.prototype = {
constructor: Vu,
type: "cartesian2d",
dimensions: ["x", "y"],
getBaseAxis: function() {
return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAxis("x")
},
containPoint: function(t) {
var e = this.getAxis("x"),
i = this.getAxis("y");
return e.contain(e.toLocalCoord(t[0])) && i.contain(i.toLocalCoord(t[1]))
},
containData: function(t) {
return this.getAxis("x").containData(t[0]) && this.getAxis("y").containData(t[1])
},
dataToPoint: function(t, e, i) {
var n = this.getAxis("x"),
r = this.getAxis("y");
return i = i || [], i[0] = n.toGlobalCoord(n.dataToCoord(t[0])), i[1] = r.toGlobalCoord(r.dataToCoord(t[1])), i
},
clampData: function(t, e) {
var i = this.getAxis("x").scale,
n = this.getAxis("y").scale,
r = i.getExtent(),
a = n.getExtent(),
o = i.parse(t[0]),
s = n.parse(t[1]);
return e = e || [], e[0] = Math.min(Math.max(Math.min(r[0], r[1]), o), Math.max(r[0], r[1])), e[1] = Math.min(
Math.max(Math.min(a[0], a[1]), s), Math.max(a[0], a[1])), e
},
pointToData: function(t, e) {
var i = this.getAxis("x"),
n = this.getAxis("y");
return e = e || [], e[0] = i.coordToData(i.toLocalCoord(t[0])), e[1] = n.coordToData(n.toLocalCoord(t[1])), e
},
getOtherAxis: function(t) {
return this.getAxis("x" === t.dim ? "y" : "x")
}
}, u(Vu, Eb);
var Rb = function(t, e, i, n, r) {
Pb.call(this, t, e, i), this.type = n || "value", this.position = r || "bottom"
};
Rb.prototype = {
constructor: Rb,
index: 0,
getAxesOnZeroOf: null,
model: null,
isHorizontal: function() {
var t = this.position;
return "top" === t || "bottom" === t
},
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
},
getOtherAxis: function() {
this.grid.getOtherAxis()
},
pointToData: function(t, e) {
return this.coordToData(this.toLocalCoord(t["x" === this.dim ? 0 : 1]), e)
},
toLocalCoord: null,
toGlobalCoord: null
}, u(Rb, Pb);
var Bb = {
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: "#333",
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: ["#ccc"],
width: 1,
type: "solid"
}
},
splitArea: {
show: !1,
areaStyle: {
color: ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"]
}
}
},
Nb = {};
Nb.categoryAxis = r({
boundaryGap: !0,
deduplication: null,
splitLine: {
show: !1
},
axisTick: {
alignWithLabel: !1,
interval: "auto"
},
axisLabel: {
interval: "auto"
}
}, Bb), Nb.valueAxis = r({
boundaryGap: [0, 0],
splitNumber: 5
}, Bb), Nb.timeAxis = s({
scale: !0,
min: "dataMin",
max: "dataMax"
}, Nb.valueAxis), Nb.logAxis = s({
scale: !0,
logBase: 10
}, Nb.valueAxis);
var Fb = ["value", "category", "time", "log"],
Vb = function(t, e, i, n) {
f(Fb, function(o) {
e.extend({
type: t + "Axis." + o,
mergeDefaultAndTheme: function(e, n) {
var a = this.layoutMode,
s = a ? Mo(e) : {},
l = n.getTheme();
r(e, l.get(o + "Axis")), r(e, this.getDefaultOption()), e.type = i(t, e), a && So(e, s, a)
},
optionUpdated: function() {
var t = this.option;
"category" === t.type && (this.__ordinalMeta = Bh.createByAxisModel(this))
},
getCategories: function(t) {
var e = this.option;
return "category" === e.type ? t ? e.data : this.__ordinalMeta.categories : void 0
},
getOrdinalMeta: function() {
return this.__ordinalMeta
},
defaultOption: a([{}, Nb[o + "Axis"], n], !0)
})
}), yx.registerSubTypeDefaulter(t + "Axis", x(i, t))
},
Wb = yx.extend({
type: "cartesian2dAxis",
axis: null,
init: function() {
Wb.superApply(this, "init", arguments), this.resetRange()
},
mergeOption: function() {
Wb.superApply(this, "mergeOption", arguments), this.resetRange()
},
restoreData: function() {
Wb.superApply(this, "restoreData", arguments), this.resetRange()
},
getCoordSysModel: function() {
return this.ecModel.queryComponents({
mainType: "grid",
index: this.option.gridIndex,
id: this.option.gridId
})[0]
}
});
r(Wb.prototype, vb);
var Gb = {
offset: 0
};
Vb("x", Wb, Wu, Gb), Vb("y", Wb, Wu, Gb), yx.extend({
type: "grid",
dependencies: ["xAxis", "yAxis"],
layoutMode: "box",
coordinateSystem: null,
defaultOption: {
show: !1,
zlevel: 0,
z: 0,
left: "10%",
top: 60,
right: "10%",
bottom: 60,
containLabel: !1,
backgroundColor: "rgba(0,0,0,0)",
borderWidth: 1,
borderColor: "#ccc"
}
});
var Hb = Hu.prototype;
Hb.type = "grid", Hb.axisPointerEnabled = !0, Hb.getRect = function() {
return this._rect
}, Hb.update = function(t, e) {
var i = this._axesMap;
this._updateScale(t, this.model), f(i.x, function(t) {
au(t.scale, t.model)
}), f(i.y, function(t) {
au(t.scale, t.model)
});
var n = {};
f(i.x, function(t) {
Zu(i, "y", t, n)
}), f(i.y, function(t) {
Zu(i, "x", t, n)
}), this.resize(this.model, e)
}, Hb.resize = function(t, e, i) {
function n() {
f(a, function(t) {
var e = t.isHorizontal(),
i = e ? [0, r.width] : [0, r.height],
n = t.inverse ? 1 : 0;
t.setExtent(i[n], i[1 - n]), Yu(t, e ? r.x : r.y)
})
}
var r = bo(t.getBoxLayoutParams(), {
width: e.getWidth(),
height: e.getHeight()
});
this._rect = r;
var a = this._axesList;
n(), !i && t.get("containLabel") && (f(a, function(t) {
if (!t.model.get("axisLabel.inside")) {
var e = uu(t);
if (e) {
var i = t.isHorizontal() ? "height" : "width",
n = t.model.get("axisLabel.margin");
r[i] -= e[i] + n, "top" === t.position ? r.y += e.height + n : "left" === t.position && (r.x += e.width + n)
}
}
}), n())
}, Hb.getAxis = function(t, e) {
var i = this._axesMap[t];
if (null != i) {
if (null == e)
for (var n in i)
if (i.hasOwnProperty(n)) return i[n];
return i[e]
}
}, Hb.getAxes = function() {
return this._axesList.slice()
}, Hb.getCartesian = function(t, e) {
if (null != t && null != e) {
var i = "x" + t + "y" + e;
return this._coordsMap[i]
}
S(t) && (e = t.yAxisIndex, t = t.xAxisIndex);
for (var n = 0, r = this._coordsList; n < r.length; n++)
if (r[n].getAxis("x").index === t || r[n].getAxis("y").index === e) return r[n]
}, Hb.getCartesians = function() {
return this._coordsList.slice()
}, Hb.convertToPixel = function(t, e, i) {
var n = this._findConvertTarget(t, e);
return n.cartesian ? n.cartesian.dataToPoint(i) : n.axis ? n.axis.toGlobalCoord(n.axis.dataToCoord(i)) : null
}, Hb.convertFromPixel = function(t, e, i) {
var n = this._findConvertTarget(t, e);
return n.cartesian ? n.cartesian.pointToData(i) : n.axis ? n.axis.coordToData(n.axis.toLocalCoord(i)) : null
}, Hb._findConvertTarget = function(t, e) {
var i, n, r = e.seriesModel,
a = e.xAxisModel || r && r.getReferringComponents("xAxis")[0],
o = e.yAxisModel || r && r.getReferringComponents("yAxis")[0],
s = e.gridModel,
l = this._coordsList;
if (r) i = r.coordinateSystem, h(l, i) < 0 && (i = null);
else if (a && o) i = this.getCartesian(a.componentIndex, o.componentIndex);
else if (a) n = this.getAxis("x", a.componentIndex);
else if (o) n = this.getAxis("y", o.componentIndex);
else if (s) {
var u = s.coordinateSystem;
u === this && (i = this._coordsList[0])
}
return {
cartesian: i,
axis: n
}
}, Hb.containPoint = function(t) {
var e = this._coordsList[0];
return e ? e.containPoint(t) : void 0
}, Hb._initCartesian = function(t, e) {
function i(i) {
return function(o, s) {
if (Gu(o, t, e)) {
var l = o.get("position");
"x" === i ? "top" !== l && "bottom" !== l && (l = "bottom", n[l] && (l = "top" === l ? "bottom" : "top")) :
"left" !== l && "right" !== l && (l = "left", n[l] && (l = "left" === l ? "right" : "left")), n[l] = !0;
var h = new Rb(i, ou(o), [0, 0], o.get("type"), l),
u = "category" === h.type;
h.onBand = u && o.get("boundaryGap"), h.inverse = o.get("inverse"), o.axis = h, h.model = o, h.grid = this, h.index =
s, this._axesList.push(h), r[i][s] = h, a[i]++
}
}
}
var n = {
left: !1,
right: !1,
top: !1,
bottom: !1
},
r = {
x: {},
y: {}
},
a = {
x: 0,
y: 0
};
return e.eachComponent("xAxis", i("x"), this), e.eachComponent("yAxis", i("y"), this), a.x && a.y ? (this._axesMap =
r, void f(r.x, function(e, i) {
f(r.y, function(n, r) {
var a = "x" + i + "y" + r,
o = new Vu(a);
o.grid = this, o.model = t, this._coordsMap[a] = o, this._coordsList.push(o), o.addAxis(e), o.addAxis(n)
}, this)
}, this)) : (this._axesMap = {}, void(this._axesList = []))
}, Hb._updateScale = function(t, e) {
function i(t, e) {
f(t.mapDimension(e.dim, !0), function(i) {
e.scale.unionExtentFromData(t, Lh(t, i))
})
}
f(this._axesList, function(t) {
t.scale.setExtent(1 / 0, -1 / 0)
}), t.eachSeries(function(n) {
if (qu(n)) {
var r = ju(n, t),
a = r[0],
o = r[1];
if (!Gu(a, e, t) || !Gu(o, e, t)) return;
var s = this.getCartesian(a.componentIndex, o.componentIndex),
l = n.getData(),
h = s.getAxis("x"),
u = s.getAxis("y");
"list" === l.type && (i(l, h, n), i(l, u, n))
}
}, this)
}, Hb.getTooltipAxes = function(t) {
var e = [],
i = [];
return f(this.getCartesians(), function(n) {
var r = null != t && "auto" !== t ? n.getAxis(t) : n.getBaseAxis(),
a = n.getOtherAxis(r);
h(e, r) < 0 && e.push(r), h(i, a) < 0 && i.push(a)
}), {
baseAxes: e,
otherAxes: i
}
};
var Zb = ["xAxis", "yAxis"];
Hu.create = function(t, e) {
var i = [];
return t.eachComponent("grid", function(n, r) {
var a = new Hu(n, t, e);
a.name = "grid_" + r, a.resize(n, e, !0), n.coordinateSystem = a, i.push(a)
}), t.eachSeries(function(e) {
if (qu(e)) {
var i = ju(e, t),
n = i[0],
r = i[1],
a = n.getCoordSysModel(),
o = a.coordinateSystem;
e.coordinateSystem = o.getCartesian(n.componentIndex, r.componentIndex)
}
}), i
}, Hu.dimensions = Hu.prototype.dimensions = Vu.prototype.dimensions, Ko.register("cartesian2d", Hu);
var Xb = o_.extend({
type: "series.__base_bar__",
getInitialData: function() {
return Oh(this.getSource(), this)
},
getMarkerPosition: function(t) {
var e = this.coordinateSystem;
if (e) {
var i = e.dataToPoint(e.clampData(t)),
n = this.getData(),
r = n.getLayout("offset"),
a = n.getLayout("size"),
o = e.getBaseAxis().isHorizontal() ? 0 : 1;
return i[o] += r + a / 2, i
}
return [0 / 0, 0 / 0]
},
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: "cartesian2d",
legendHoverLink: !0,
barMinHeight: 0,
barMinAngle: 0,
large: !1,
largeThreshold: 400,
progressive: 3e3,
progressiveChunkMode: "mod",
itemStyle: {},
emphasis: {}
}
});
Xb.extend({
type: "series.bar",
dependencies: ["grid", "polar"],
brushSelector: "rect",
getProgressive: function() {
return this.get("large") ? this.get("progressive") : !1
},
getProgressiveThreshold: function() {
var t = this.get("progressiveThreshold"),
e = this.get("largeThreshold");
return e > t && (t = e), t
}
});
var Yb = dm([
["fill", "color"],
["stroke", "borderColor"],
["lineWidth", "borderWidth"],
["stroke", "barBorderColor"],
["lineWidth", "barBorderWidth"],
["opacity"],
["shadowBlur"],
["shadowOffsetX"],
["shadowOffsetY"],
["shadowColor"]
]),
jb = {
getBarItemStyle: function(t) {
var e = Yb(this, t);
if (this.getBorderLineDash) {
var i = this.getBorderLineDash();
i && (e.lineDash = i)
}
return e
}
},
qb = ["itemStyle", "barBorderWidth"];
o(Wa.prototype, jb), ah({
type: "bar",
render: function(t, e, i) {
this._updateDrawMode(t);
var n = t.get("coordinateSystem");
return ("cartesian2d" === n || "polar" === n) && (this._isLargeDraw ? this._renderLarge(t, e, i) : this._renderNormal(
t, e, i)), this.group
},
incrementalPrepareRender: function(t) {
this._clear(), this._updateDrawMode(t)
},
incrementalRender: function(t, e) {
this._incrementalRenderLarge(t, e)
},
_updateDrawMode: function(t) {
var e = t.pipelineContext.large;
(null == this._isLargeDraw || e ^ this._isLargeDraw) && (this._isLargeDraw = e, this._clear())
},
_renderNormal: function(t) {
var e, i = this.group,
n = t.getData(),
r = this._data,
a = t.coordinateSystem,
o = a.getBaseAxis();
"cartesian2d" === a.type ? e = o.isHorizontal() : "polar" === a.type && (e = "angle" === o.dim);
var s = t.isAnimationEnabled() ? t : null;
n.diff(r).add(function(r) {
if (n.hasValue(r)) {
var o = n.getItemModel(r),
l = $b[a.type](n, r, o),
h = Ub[a.type](n, r, o, l, e, s);
n.setItemGraphicEl(r, h), i.add(h), tc(h, n, r, o, l, t, e, "polar" === a.type)
}
}).update(function(o, l) {
var h = r.getItemGraphicEl(l);
if (!n.hasValue(o)) return void i.remove(h);
var u = n.getItemModel(o),
c = $b[a.type](n, o, u);
h ? La(h, {
shape: c
}, s, o) : h = Ub[a.type](n, o, u, c, e, s, !0), n.setItemGraphicEl(o, h), i.add(h), tc(h, n, o, u, c, t, e,
"polar" === a.type)
}).remove(function(t) {
var e = r.getItemGraphicEl(t);
"cartesian2d" === a.type ? e && Qu(t, s, e) : e && Ju(t, s, e)
}).execute(), this._data = n
},
_renderLarge: function(t) {
this._clear(), ic(t, this.group)
},
_incrementalRenderLarge: function(t, e) {
ic(e, this.group, !0)
},
dispose: V,
remove: function(t) {
this._clear(t)
},
_clear: function(t) {
var e = this.group,
i = this._data;
t && t.get("animation") && i && !this._isLargeDraw ? i.eachItemGraphicEl(function(e) {
"sector" === e.type ? Ju(e.dataIndex, t, e) : Qu(e.dataIndex, t, e)
}) : e.removeAll(), this._data = null
}
});
var Ub = {
cartesian2d: function(t, e, i, n, r, a, s) {
var l = new Dy({
shape: o({}, n)
});
if (a) {
var h = l.shape,
u = r ? "height" : "width",
c = {};
h[u] = 0, c[u] = n[u], Yy[s ? "updateProps" : "initProps"](l, {
shape: c
}, a, e)
}
return l
},
polar: function(t, e, i, n, r, a, o) {
var l = n.startAngle < n.endAngle,
h = new Sy({
shape: s({
clockwise: l
}, n)
});
if (a) {
var u = h.shape,
c = r ? "r" : "endAngle",
d = {};
u[c] = r ? 0 : n.startAngle, d[c] = n[c], Yy[o ? "updateProps" : "initProps"](h, {
shape: d
}, a, e)
}
return h
}
},
$b = {
cartesian2d: function(t, e, i) {
var n = t.getItemLayout(e),
r = ec(i, n),
a = n.width > 0 ? 1 : -1,
o = n.height > 0 ? 1 : -1;
return {
x: n.x + a * r / 2,
y: n.y + o * r / 2,
width: n.width - a * r,
height: n.height - o * r
}
},
polar: function(t, e) {
var i = t.getItemLayout(e);
return {
cx: i.cx,
cy: i.cy,
r0: i.r0,
r: i.r,
startAngle: i.startAngle,
endAngle: i.endAngle
}
}
},
Kb = Fr.extend({
type: "largeBar",
shape: {
points: []
},
buildPath: function(t, e) {
for (var i = e.points, n = this.__startPoint, r = this.__valueIdx, a = 0; a < i.length; a += 2) n[this.__valueIdx] =
i[a + r], t.moveTo(n[0], n[1]), t.lineTo(i[a], i[a + 1])
}
}),
Qb = Math.PI,
Jb = function(t, e) {
this.opt = e, this.axisModel = t, s(e, {
labelOffset: 0,
nameDirection: 1,
tickDirection: 1,
labelDirection: 1,
silent: !0
}), this.group = new lv;
var i = new lv({
position: e.position.slice(),
rotation: e.rotation
});
i.updateTransform(), this._transform = i.transform, this._dumbGroup = i
};
Jb.prototype = {
constructor: Jb,
hasBuilder: function(t) {
return !!tS[t]
},
add: function(t) {
tS[t].call(this)
},
getGroup: function() {
return this.group
}
};
var tS = {
axisLine: function() {
var t = this.opt,
e = this.axisModel;
if (e.get("axisLine.show")) {
var i = this.axisModel.axis.getExtent(),
n = this._transform,
r = [i[0], 0],
a = [i[1], 0];
n && (ae(r, r, n), ae(a, a, n));
var s = o({
lineCap: "round"
}, e.getModel("axisLine.lineStyle").getLineStyle());
this.group.add(new ky(ia({
anid: "line",
shape: {
x1: r[0],
y1: r[1],
x2: a[0],
y2: a[1]
},
style: s,
strokeContainThreshold: t.strokeContainThreshold || 5,
silent: !0,
z2: 1
})));
var l = e.get("axisLine.symbol"),
h = e.get("axisLine.symbolSize"),
u = e.get("axisLine.symbolOffset") || 0;
if ("number" == typeof u && (u = [u, u]), null != l) {
"string" == typeof l && (l = [l, l]), ("string" == typeof h || "number" == typeof h) && (h = [h, h]);
var c = h[0],
d = h[1];
f([{
rotate: t.rotation + Math.PI / 2,
offset: u[0],
r: 0
}, {
rotate: t.rotation - Math.PI / 2,
offset: u[1],
r: Math.sqrt((r[0] - a[0]) * (r[0] - a[0]) + (r[1] - a[1]) * (r[1] - a[1]))
}], function(e, i) {
if ("none" !== l[i] && null != l[i]) {
var n = fu(l[i], -c / 2, -d / 2, c, d, s.stroke, !0),
a = e.r + e.offset,
o = [r[0] + a * Math.cos(t.rotation), r[1] - a * Math.sin(t.rotation)];
n.attr({
rotation: e.rotate,
position: o,
silent: !0
}), this.group.add(n)
}
}, this)
}
}
},
axisTickLabel: function() {
var t = this.axisModel,
e = this.opt,
i = cc(this, t, e),
n = dc(this, t, e);
sc(t, n, i)
},
axisName: function() {
var t = this.opt,
e = this.axisModel,
i = A(t.axisName, e.get("name"));
if (i) {
var n, r = e.get("nameLocation"),
a = t.nameDirection,
s = e.getModel("nameTextStyle"),
l = e.get("nameGap") || 0,
h = this.axisModel.axis.getExtent(),
u = h[0] > h[1] ? -1 : 1,
c = ["start" === r ? h[0] - u * l : "end" === r ? h[1] + u * l : (h[0] + h[1]) / 2, uc(r) ? t.labelOffset + a *
l : 0
],
d = e.get("nameRotate");
null != d && (d = d * Qb / 180);
var f;
uc(r) ? n = eS(t.rotation, null != d ? d : t.rotation, a) : (n = ac(t, r, d || 0, h), f = t.axisNameAvailableWidth,
null != f && (f = Math.abs(f / Math.sin(n.rotation)), !isFinite(f) && (f = null)));
var p = s.getFont(),
g = e.get("nameTruncate", !0) || {},
v = g.ellipsis,
m = A(t.nameTruncateMaxWidth, g.maxWidth, f),
y = null != v && null != m ? hx(i, m, p, v, {
minChar: 2,
placeholder: g.placeholder
}) : i,
x = e.get("tooltip", !0),
_ = e.mainType,
w = {
componentType: _,
name: i,
$vars: ["name"]
};
w[_ + "Index"] = e.componentIndex;
var b = new xy({
anid: "name",
__fullText: i,
__truncatedText: y,
position: c,
rotation: n.rotation,
silent: oc(e),
z2: 1,
tooltip: x && x.show ? o({
content: i,
formatter: function() {
return i
},
formatterParams: w
}, x) : null
});
ba(b.style, s, {
text: y,
textFont: p,
textFill: s.getTextColor() || e.get("axisLine.lineStyle.color"),
textAlign: n.textAlign,
textVerticalAlign: n.textVerticalAlign
}), e.get("triggerEvent") && (b.eventData = rc(e), b.eventData.targetType = "axisName", b.eventData.name = i),
this._dumbGroup.add(b), b.updateTransform(), this.group.add(b), b.decomposeTransform()
}
}
},
eS = Jb.innerTextLayout = function(t, e, i) {
var n, r, a = io(e - t);
return no(a) ? (r = i > 0 ? "top" : "bottom", n = "center") : no(a - Qb) ? (r = i > 0 ? "bottom" : "top", n =
"center") : (r = "middle", n = a > 0 && Qb > a ? i > 0 ? "right" : "left" : i > 0 ? "left" : "right"), {
rotation: a,
textAlign: n,
textVerticalAlign: r
}
},
iS = f,
nS = x,
rS = nh({
type: "axis",
_axisPointer: null,
axisPointerClass: null,
render: function(t, e, i, n) {
this.axisPointerClass && xc(t), rS.superApply(this, "render", arguments), Mc(this, t, e, i, n, !0)
},
updateAxisPointer: function(t, e, i, n) {
Mc(this, t, e, i, n, !1)
},
remove: function(t, e) {
var i = this._axisPointer;
i && i.remove(e), rS.superApply(this, "remove", arguments)
},
dispose: function(t, e) {
Ic(this, e), rS.superApply(this, "dispose", arguments)
}
}),
aS = [];
rS.registerAxisPointerClass = function(t, e) {
aS[t] = e
}, rS.getAxisPointerClass = function(t) {
return t && aS[t]
};
var oS = ["axisLine", "axisTickLabel", "axisName"],
sS = ["splitArea", "splitLine"],
lS = rS.extend({
type: "cartesianAxis",
axisPointerClass: "CartesianAxisPointer",
render: function(t, e, i, n) {
this.group.removeAll();
var r = this._axisGroup;
if (this._axisGroup = new lv, this.group.add(this._axisGroup), t.get("show")) {
var a = t.getCoordSysModel(),
o = Tc(a, t),
s = new Jb(t, o);
f(oS, s.add, s), this._axisGroup.add(s.getGroup()), f(sS, function(e) {
t.get(e + ".show") && this["_" + e](t, a)
}, this), Ba(r, this._axisGroup, t), lS.superCall(this, "render", t, e, i, n)
}
},
remove: function() {
this._splitAreaColors = null
},
_splitLine: function(t, e) {
var i = t.axis;
if (!i.scale.isBlank()) {
var n = t.getModel("splitLine"),
r = n.getModel("lineStyle"),
a = r.get("color");
a = _(a) ? a : [a];
for (var o = e.coordinateSystem.getRect(), l = i.isHorizontal(), h = 0, u = i.getTicksCoords({
tickModel: n
}), c = [], d = [], f = r.getLineStyle(), p = 0; p < u.length; p++) {
var g = i.toGlobalCoord(u[p].coord);
l ? (c[0] = g, c[1] = o.y, d[0] = g, d[1] = o.y + o.height) : (c[0] = o.x, c[1] = g, d[0] = o.x + o.width, d[1] =
g);
var v = h++ % a.length,
m = u[p].tickValue;
this._axisGroup.add(new ky(ia({
anid: null != m ? "line_" + u[p].tickValue : null,
shape: {
x1: c[0],
y1: c[1],
x2: d[0],
y2: d[1]
},
style: s({
stroke: a[v]
}, f),
silent: !0
})))
}
}
},
_splitArea: function(t, e) {
var i = t.axis;
if (!i.scale.isBlank()) {
var n = t.getModel("splitArea"),
r = n.getModel("areaStyle"),
a = r.get("color"),
o = e.coordinateSystem.getRect(),
l = i.getTicksCoords({
tickModel: n,
clamp: !0
});
if (l.length) {
var h = a.length,
u = this._splitAreaColors,
c = N(),
d = 0;
if (u)
for (var f = 0; f < l.length; f++) {
var p = u.get(l[f].tickValue);
if (null != p) {
d = (p + (h - 1) * f) % h;
break
}
}
var g = i.toGlobalCoord(l[0].coord),
v = r.getAreaStyle();
a = _(a) ? a : [a];
for (var f = 1; f < l.length; f++) {
var m, y, x, w, b = i.toGlobalCoord(l[f].coord);
i.isHorizontal() ? (m = g, y = o.y, x = b - m, w = o.height, g = m + x) : (m = o.x, y = g, x = o.width, w = b -
y, g = y + w);
var S = l[f - 1].tickValue;
null != S && c.set(S, d), this._axisGroup.add(new Dy({
anid: null != S ? "area_" + S : null,
shape: {
x: m,
y: y,
width: x,
height: w
},
style: s({
fill: a[d]
}, v),
silent: !0
})), d = (d + 1) % h
}
this._splitAreaColors = c
}
}
}
});
lS.extend({
type: "xAxis"
}), lS.extend({
type: "yAxis"
}), nh({
type: "grid",
render: function(t) {
this.group.removeAll(), t.get("show") && this.group.add(new Dy({
shape: t.coordinateSystem.getRect(),
style: s({
fill: t.get("backgroundColor")
}, t.getItemStyle()),
silent: !0,
z2: -1
}))
}
}), Yl(function(t) {
t.xAxis && t.yAxis && !t.grid && (t.grid = {})
}), Ql(x(Qh, "bar")), Ql($w), Jl({
seriesType: "bar",
reset: function(t) {
t.getData().setVisual("legendSymbol", "roundRect")
}
}), o_.extend({
type: "series.line",
dependencies: ["grid", "polar"],
getInitialData: function() {
return Oh(this.getSource(), this)
},
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: "cartesian2d",
legendHoverLink: !0,
hoverAnimation: !0,
clipOverflow: !0,
label: {
position: "top"
},
lineStyle: {
width: 2,
type: "solid"
},
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
}
});
var hS = Cc.prototype,
uS = Cc.getSymbolSize = function(t, e) {
var i = t.getItemVisual(e, "symbolSize");
return i instanceof Array ? i.slice() : [+i, +i]
};
hS._createSymbol = function(t, e, i, n, r) {
this.removeAll();
var a = e.getItemVisual(i, "color"),
o = fu(t, -1, -1, 2, 2, a, r);
o.attr({
z2: 100,
culling: !0,
scale: Ac(n)
}), o.drift = Dc, this._symbolType = t, this.add(o)
}, hS.stopSymbolAnimation = function(t) {
this.childAt(0).stopAnimation(t)
}, hS.getSymbolPath = function() {
return this.childAt(0)
}, hS.getScale = function() {
return this.childAt(0).scale
}, hS.highlight = function() {
this.childAt(0).trigger("emphasis")
}, hS.downplay = function() {
this.childAt(0).trigger("normal")
}, hS.setZ = function(t, e) {
var i = this.childAt(0);
i.zlevel = t, i.z = e
}, hS.setDraggable = function(t) {
var e = this.childAt(0);
e.draggable = t, e.cursor = t ? "move" : "pointer"
}, hS.updateData = function(t, e, i) {
this.silent = !1;
var n = t.getItemVisual(e, "symbol") || "circle",
r = t.hostModel,
a = uS(t, e),
o = n !== this._symbolType;
if (o) {
var s = t.getItemVisual(e, "symbolKeepAspect");
this._createSymbol(n, t, e, a, s)
} else {
var l = this.childAt(0);
l.silent = !1, La(l, {
scale: Ac(a)
}, r, e)
}
if (this._updateCommon(t, e, a, i), o) {
var l = this.childAt(0),
h = i && i.fadeIn,
u = {
scale: l.scale.slice()
};
h && (u.style = {
opacity: l.style.opacity
}), l.scale = [0, 0], h && (l.style.opacity = 0), Oa(l, u, r, e)
}
this._seriesModel = r
};
var cS = ["itemStyle"],
dS = ["emphasis", "itemStyle"],
fS = ["label"],
pS = ["emphasis", "label"];
hS._updateCommon = function(t, e, i, n) {
function r(e) {
return b ? t.getName(e) : Uu(t, e)
}
var a = this.childAt(0),
s = t.hostModel,
l = t.getItemVisual(e, "color");
"image" !== a.type && a.useStyle({
strokeNoScale: !0
});
var h = n && n.itemStyle,
u = n && n.hoverItemStyle,
c = n && n.symbolRotate,
d = n && n.symbolOffset,
f = n && n.labelModel,
p = n && n.hoverLabelModel,
g = n && n.hoverAnimation,
v = n && n.cursorStyle;
if (!n || t.hasItemOption) {
var m = n && n.itemModel ? n.itemModel : t.getItemModel(e);
h = m.getModel(cS).getItemStyle(["color"]), u = m.getModel(dS).getItemStyle(), c = m.getShallow("symbolRotate"), d =
m.getShallow("symbolOffset"), f = m.getModel(fS), p = m.getModel(pS), g = m.getShallow("hoverAnimation"), v = m.getShallow(
"cursor")
} else u = o({}, u);
var y = a.style;
a.attr("rotation", (c || 0) * Math.PI / 180 || 0), d && a.attr("position", [Ua(d[0], i[0]), Ua(d[1], i[1])]), v &&
a.attr("cursor", v), a.setColor(l, n && n.symbolInnerColor), a.setStyle(h);
var x = t.getItemVisual(e, "opacity");
null != x && (y.opacity = x);
var _ = t.getItemVisual(e, "liftZ"),
w = a.__z2Origin;
null != _ ? null == w && (a.__z2Origin = a.z2, a.z2 += _) : null != w && (a.z2 = w, a.__z2Origin = null);
var b = n && n.useNameLabel;
wa(y, u, f, p, {
labelFetcher: s,
labelDataIndex: e,
defaultText: r,
isRectText: !0,
autoColor: l
}), a.off("mouseover").off("mouseout").off("emphasis").off("normal"), a.hoverStyle = u, xa(a), a.__symbolOriginalScale =
Ac(i), g && s.isAnimationEnabled() && a.on("mouseover", kc).on("mouseout", Pc).on("emphasis", Lc).on("normal", Oc)
}, hS.fadeOut = function(t, e) {
var i = this.childAt(0);
this.silent = i.silent = !0, !(e && e.keepLabel) && (i.style.text = null), La(i, {
style: {
opacity: 0
},
scale: [0, 0]
}, this._seriesModel, this.dataIndex, t)
}, u(Cc, lv);
var gS = zc.prototype;
gS.updateData = function(t, e) {
e = Rc(e);
var i = this.group,
n = t.hostModel,
r = this._data,
a = this._symbolCtor,
o = Bc(t);
r || i.removeAll(), t.diff(r).add(function(n) {
var r = t.getItemLayout(n);
if (Ec(t, r, n, e)) {
var s = new a(t, n, o);
s.attr("position", r), t.setItemGraphicEl(n, s), i.add(s)
}
}).update(function(s, l) {
var h = r.getItemGraphicEl(l),
u = t.getItemLayout(s);
return Ec(t, u, s, e) ? (h ? (h.updateData(t, s, o), La(h, {
position: u
}, n)) : (h = new a(t, s), h.attr("position", u)), i.add(h), void t.setItemGraphicEl(s, h)) : void i.remove(h)
}).remove(function(t) {
var e = r.getItemGraphicEl(t);
e && e.fadeOut(function() {
i.remove(e)
})
}).execute(), this._data = t
}, gS.isPersistent = function() {
return !0
}, gS.updateLayout = function() {
var t = this._data;
t && t.eachItemGraphicEl(function(e, i) {
var n = t.getItemLayout(i);
e.attr("position", n)
})
}, gS.incrementalPrepareUpdate = function(t) {
this._seriesScope = Bc(t), this._data = null, this.group.removeAll()
}, gS.incrementalUpdate = function(t, e, i) {
function n(t) {
t.isGroup || (t.incremental = t.useHoverLayer = !0)
}
i = Rc(i);
for (var r = t.start; r < t.end; r++) {
var a = e.getItemLayout(r);
if (Ec(e, a, r, i)) {
var o = new this._symbolCtor(e, r, this._seriesScope);
o.traverse(n), o.attr("position", a), this.group.add(o), e.setItemGraphicEl(r, o)
}
}
}, gS.remove = function(t) {
var e = this.group,
i = this._data;
i && t ? i.eachItemGraphicEl(function(t) {
t.fadeOut(function() {
e.remove(t)
})
}) : e.removeAll()
};
var vS = function(t, e, i, n, r, a, o, s) {
for (var l = Wc(t, e), h = [], u = [], c = [], d = [], f = [], p = [], g = [], v = Nc(r, e, o), m = Nc(a, t, s), y =
0; y < l.length; y++) {
var x = l[y],
_ = !0;
switch (x.cmd) {
case "=":
var w = t.getItemLayout(x.idx),
b = e.getItemLayout(x.idx1);
(isNaN(w[0]) || isNaN(w[1])) && (w = b.slice()), h.push(w), u.push(b), c.push(i[x.idx]), d.push(n[x.idx1]), g.push(
e.getRawIndex(x.idx1));
break;
case "+":
var S = x.idx;
h.push(r.dataToPoint([e.get(v.dataDimsForPoint[0], S), e.get(v.dataDimsForPoint[1], S)])), u.push(e.getItemLayout(
S).slice()), c.push(Vc(v, r, e, S)), d.push(n[S]), g.push(e.getRawIndex(S));
break;
case "-":
var S = x.idx,
M = t.getRawIndex(S);
M !== S ? (h.push(t.getItemLayout(S)), u.push(a.dataToPoint([t.get(m.dataDimsForPoint[0], S), t.get(m.dataDimsForPoint[
1], S)])), c.push(i[S]), d.push(Vc(m, a, t, S)), g.push(M)) : _ = !1
}
_ && (f.push(x), p.push(p.length))
}
p.sort(function(t, e) {
return g[t] - g[e]
});
for (var I = [], T = [], C = [], A = [], D = [], y = 0; y < p.length; y++) {
var S = p[y];
I[y] = h[S], T[y] = u[S], C[y] = c[S], A[y] = d[S], D[y] = f[S]
}
return {
current: I,
next: T,
stackedOnCurrent: C,
stackedOnNext: A,
status: D
}
},
mS = oe,
yS = se,
xS = Y,
_S = G,
wS = [],
bS = [],
SS = [],
MS = Fr.extend({
type: "ec-polyline",
shape: {
points: [],
smooth: 0,
smoothConstraint: !0,
smoothMonotone: null,
connectNulls: !1
},
style: {
fill: null,
stroke: "#000"
},
brush: by(Fr.prototype.brush),
buildPath: function(t, e) {
var i = e.points,
n = 0,
r = i.length,
a = Yc(i, e.smoothConstraint);
if (e.connectNulls) {
for (; r > 0 && Gc(i[r - 1]); r--);
for (; r > n && Gc(i[n]); n++);
}
for (; r > n;) n += Hc(t, i, n, r, r, 1, a.min, a.max, e.smooth, e.smoothMonotone, e.connectNulls) + 1
}
}),
IS = Fr.extend({
type: "ec-polygon",
shape: {
points: [],
stackedOnPoints: [],
smooth: 0,
stackedOnSmooth: 0,
smoothConstraint: !0,
smoothMonotone: null,
connectNulls: !1
},
brush: by(Fr.prototype.brush),
buildPath: function(t, e) {
var i = e.points,
n = e.stackedOnPoints,
r = 0,
a = i.length,
o = e.smoothMonotone,
s = Yc(i, e.smoothConstraint),
l = Yc(n, e.smoothConstraint);
if (e.connectNulls) {
for (; a > 0 && Gc(i[a - 1]); a--);
for (; a > r && Gc(i[r]); r++);
}
for (; a > r;) {
var h = Hc(t, i, r, a, a, 1, s.min, s.max, e.smooth, o, e.connectNulls);
Hc(t, n, r + h - 1, h, a, -1, l.min, l.max, e.stackedOnSmooth, o, e.connectNulls), r += h + 1, t.closePath()
}
}
});
Bs.extend({
type: "line",
init: function() {
var t = new lv,
e = new zc;
this.group.add(e.group), this._symbolDraw = e, this._lineGroup = t
},
render: function(t, e, i) {
var n = t.coordinateSystem,
r = this.group,
a = t.getData(),
o = t.getModel("lineStyle"),
l = t.getModel("areaStyle"),
h = a.mapArray(a.getItemLayout),
u = "polar" === n.type,
c = this._coordSys,
d = this._symbolDraw,
f = this._polyline,
p = this._polygon,
g = this._lineGroup,
v = t.get("animation"),
m = !l.isEmpty(),
y = l.get("origin"),
x = Nc(n, a, y),
_ = $c(n, a, x),
w = t.get("showSymbol"),
b = w && !u && id(t, a, n),
S = this._data;
S && S.eachItemGraphicEl(function(t, e) {
t.__temp && (r.remove(t), S.setItemGraphicEl(e, null))
}), w || d.remove(), r.add(g);
var M = !u && t.get("step");
f && c.type === n.type && M === this._step ? (m && !p ? p = this._newPolygon(h, _, n, v) : p && !m && (g.remove(
p), p = this._polygon = null), g.setClipPath(Jc(n, !1, !1, t)), w && d.updateData(a, {
isIgnore: b,
clipShape: Jc(n, !1, !0, t)
}), a.eachItemGraphicEl(function(t) {
t.stopAnimation(!0)
}), jc(this._stackedOnPoints, _) && jc(this._points, h) || (v ? this._updateAnimation(a, _, n, i, M, y) : (M &&
(h = td(h, n, M), _ = td(_, n, M)), f.setShape({
points: h
}), p && p.setShape({
points: h,
stackedOnPoints: _
})))) : (w && d.updateData(a, {
isIgnore: b,
clipShape: Jc(n, !1, !0, t)
}), M && (h = td(h, n, M), _ = td(_, n, M)), f = this._newPolyline(h, n, v), m && (p = this._newPolygon(h, _,
n, v)), g.setClipPath(Jc(n, !0, !1, t)));
var I = ed(a, n) || a.getVisual("color");
f.useStyle(s(o.getLineStyle(), {
fill: "none",
stroke: I,
lineJoin: "bevel"
}));
var T = t.get("smooth");
if (T = qc(t.get("smooth")), f.setShape({
smooth: T,
smoothMonotone: t.get("smoothMonotone"),
connectNulls: t.get("connectNulls")
}), p) {
var C = a.getCalculationInfo("stackedOnSeries"),
A = 0;
p.useStyle(s(l.getAreaStyle(), {
fill: I,
opacity: .7,
lineJoin: "bevel"
})), C && (A = qc(C.get("smooth"))), p.setShape({
smooth: T,
stackedOnSmooth: A,
smoothMonotone: t.get("smoothMonotone"),
connectNulls: t.get("connectNulls")
})
}
this._data = a, this._coordSys = n, this._stackedOnPoints = _, this._points = h, this._step = M, this._valueOrigin =
y
},
dispose: function() {},
highlight: function(t, e, i, n) {
var r = t.getData(),
a = Yn(r, n);
if (!(a instanceof Array) && null != a && a >= 0) {
var o = r.getItemGraphicEl(a);
if (!o) {
var s = r.getItemLayout(a);
if (!s) return;
o = new Cc(r, a), o.position = s, o.setZ(t.get("zlevel"), t.get("z")), o.ignore = isNaN(s[0]) || isNaN(s[1]),
o.__temp = !0, r.setItemGraphicEl(a, o), o.stopSymbolAnimation(!0), this.group.add(o)
}
o.highlight()
} else Bs.prototype.highlight.call(this, t, e, i, n)
},
downplay: function(t, e, i, n) {
var r = t.getData(),
a = Yn(r, n);
if (null != a && a >= 0) {
var o = r.getItemGraphicEl(a);
o && (o.__temp ? (r.setItemGraphicEl(a, null), this.group.remove(o)) : o.downplay())
} else Bs.prototype.downplay.call(this, t, e, i, n)
},
_newPolyline: function(t) {
var e = this._polyline;
return e && this._lineGroup.remove(e), e = new MS({
shape: {
points: t
},
silent: !0,
z2: 10
}), this._lineGroup.add(e), this._polyline = e, e
},
_newPolygon: function(t, e) {
var i = this._polygon;
return i && this._lineGroup.remove(i), i = new IS({
shape: {
points: t,
stackedOnPoints: e
},
silent: !0
}), this._lineGroup.add(i), this._polygon = i, i
},
_updateAnimation: function(t, e, i, n, r, a) {
var o = this._polyline,
s = this._polygon,
l = t.hostModel,
h = vS(this._data, t, this._stackedOnPoints, e, this._coordSys, i, this._valueOrigin, a),
u = h.current,
c = h.stackedOnCurrent,
d = h.next,
f = h.stackedOnNext;
r && (u = td(h.current, i, r), c = td(h.stackedOnCurrent, i, r), d = td(h.next, i, r), f = td(h.stackedOnNext, i,
r)), o.shape.__points = h.current, o.shape.points = u, La(o, {
shape: {
points: d
}
}, l), s && (s.setShape({
points: u,
stackedOnPoints: c
}), La(s, {
shape: {
points: d,
stackedOnPoints: f
}
}, l));
for (var p = [], g = h.status, v = 0; v < g.length; v++) {
var m = g[v].cmd;
if ("=" === m) {
var y = t.getItemGraphicEl(g[v].idx1);
y && p.push({
el: y,
ptIdx: v
})
}
}
o.animators && o.animators.length && o.animators[0].during(function() {
for (var t = 0; t < p.length; t++) {
var e = p[t].el;
e.attr("position", o.shape.__points[p[t].ptIdx])
}
})
},
remove: function() {
var t = this.group,
e = this._data;
this._lineGroup.removeAll(), this._symbolDraw.remove(!0), e && e.eachItemGraphicEl(function(i, n) {
i.__temp && (t.remove(i), e.setItemGraphicEl(n, null))
}), this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._data = null
}
});
var TS = function(t, e, i) {
return {
seriesType: t,
performRawSeries: !0,
reset: function(t, n) {
function r(e, i) {
if ("function" == typeof s) {
var n = t.getRawValue(i),
r = t.getDataParams(i);
e.setItemVisual(i, "symbolSize", s(n, r))
}
if (e.hasItemOption) {
var a = e.getItemModel(i),
o = a.getShallow("symbol", !0),
l = a.getShallow("symbolSize", !0),
h = a.getShallow("symbolKeepAspect", !0);
null != o && e.setItemVisual(i, "symbol", o), null != l && e.setItemVisual(i, "symbolSize", l), null != h && e
.setItemVisual(i, "symbolKeepAspect", h)
}
}
var a = t.getData(),
o = t.get("symbol") || e,
s = t.get("symbolSize"),
l = t.get("symbolKeepAspect");
if (a.setVisual({
legendSymbol: i || o,
symbol: o,
symbolSize: s,
symbolKeepAspect: l
}), !n.isSeriesFiltered(t)) {
var h = "function" == typeof s;
return {
dataEach: a.hasItemOption || h ? r : null
}
}
}
}
},
CS = function(t) {
return {
seriesType: t,
plan: h_(),
reset: function(t) {
function e(t, e) {
for (var i = t.end - t.start, r = a && new Float32Array(i * s), l = t.start, h = 0, u = [], c = []; l < t.end; l++) {
var d;
if (1 === s) {
var f = e.get(o[0], l);
d = !isNaN(f) && n.dataToPoint(f, null, c)
} else {
var f = u[0] = e.get(o[0], l),
p = u[1] = e.get(o[1], l);
d = !isNaN(f) && !isNaN(p) && n.dataToPoint(u, null, c)
}
a ? (r[h++] = d ? d[0] : 0 / 0, r[h++] = d ? d[1] : 0 / 0) : e.setItemLayout(l, d && d.slice() || [0 / 0, 0 /
0
])
}
a && e.setLayout("symbolPoints", r)
}
var i = t.getData(),
n = t.coordinateSystem,
r = t.pipelineContext,
a = r.large;
if (n) {
var o = p(n.dimensions, function(t) {
return i.mapDimension(t)
}).slice(0, 2),
s = o.length,
l = i.getCalculationInfo("stackResultDimension");
return Ph(i, o[0]) && (o[0] = l), Ph(i, o[1]) && (o[1] = l), s && {
progress: e
}
}
}
}
},
AS = {
average: function(t) {
for (var e = 0, i = 0, n = 0; n < t.length; n++) isNaN(t[n]) || (e += t[n], i++);
return 0 === i ? 0 / 0 : e / i
},
sum: function(t) {
for (var e = 0, i = 0; i < t.length; i++) e += t[i] || 0;
return e
},
max: function(t) {
for (var e = -1 / 0, i = 0; i < t.length; i++) t[i] > e && (e = t[i]);
return isFinite(e) ? e : 0 / 0
},
min: function(t) {
for (var e = 1 / 0, i = 0; i < t.length; i++) t[i] < e && (e = t[i]);
return isFinite(e) ? e : 0 / 0
},
nearest: function(t) {
return t[0]
}
},
DS = function(t) {
return Math.round(t.length / 2)
},
kS = function(t) {
return {
seriesType: t,
modifyOutputEnd: !0,
reset: function(t) {
var e = t.getData(),
i = t.get("sampling"),
n = t.coordinateSystem;
if ("cartesian2d" === n.type && i) {
var r = n.getBaseAxis(),
a = n.getOtherAxis(r),
o = r.getExtent(),
s = o[1] - o[0],
l = Math.round(e.count() / s);
if (l > 1) {
var h;
"string" == typeof i ? h = AS[i] : "function" == typeof i && (h = i), h && t.setData(e.downSample(e.mapDimension(
a.dim), 1 / l, h, DS))
}
}
}
}
};
Jl(TS("line", "circle", "line")), Ql(CS("line")), jl(ow.PROCESSOR.STATISTIC, kS("line"));
var PS = function(t, e, i) {
e = _(e) && {
coordDimensions: e
} || o({}, e);
var n = t.getSource(),
r = Vw(n, e),
a = new Bw(r, t);
return a.initData(n, i), a
},
LS = {
updateSelectedMap: function(t) {
this._targetList = _(t) ? t.slice() : [], this._selectTargetMap = g(t || [], function(t, e) {
return t.set(e.name, e), t
}, N())
},
select: function(t, e) {
var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t),
n = this.get("selectedMode");
"single" === n && this._selectTargetMap.each(function(t) {
t.selected = !1
}), i && (i.selected = !0)
},
unSelect: function(t, e) {
var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t);
i && (i.selected = !1)
},
toggleSelected: function(t, e) {
var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t);
return null != i ? (this[i.selected ? "unSelect" : "select"](t, e), i.selected) : void 0
},
isSelected: function(t, e) {
var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t);
return i && i.selected
}
},
OS = rh({
type: "series.pie",
init: function(t) {
OS.superApply(this, "init", arguments), this.legendDataProvider = function() {
return this.getRawData()
}, this.updateSelectedMap(this._createSelectableList()), this._defaultLabelLine(t)
},
mergeOption: function(t) {
OS.superCall(this, "mergeOption", t), this.updateSelectedMap(this._createSelectableList())
},
getInitialData: function() {
return PS(this, ["value"])
},
_createSelectableList: function() {
for (var t = this.getRawData(), e = t.mapDimension("value"), i = [], n = 0, r = t.count(); r > n; n++) i.push({
name: t.getName(n),
value: t.get(e, n),
selected: Ms(t, n, "selected")
});
return i
},
getDataParams: function(t) {
var e = this.getData(),
i = OS.superCall(this, "getDataParams", t),
n = [];
return e.each(e.mapDimension("value"), function(t) {
n.push(t)
}), i.percent = eo(n, t, e.hostModel.get("percentPrecision")), i.$vars.push("percent"), i
},
_defaultLabelLine: function(t) {
Fn(t, "labelLine", ["show"]);
var e = t.labelLine,
i = t.emphasis.labelLine;
e.show = e.show && t.label.show, i.show = i.show && t.emphasis.label.show
},
defaultOption: {
zlevel: 0,
z: 2,
legendHoverLink: !0,
hoverAnimation: !0,
center: ["50%", "50%"],
radius: [0, "75%"],
clockwise: !0,
startAngle: 90,
minAngle: 0,
selectedOffset: 10,
hoverOffset: 10,
avoidLabelOverlap: !0,
percentPrecision: 2,
stillShowZeroSum: !0,
label: {
rotate: !1,
show: !0,
position: "outer"
},
labelLine: {
show: !0,
length: 15,
length2: 15,
smooth: !1,
lineStyle: {
width: 1,
type: "solid"
}
},
itemStyle: {
borderWidth: 1
},
animationType: "expansion",
animationEasing: "cubicOut"
}
});
c(OS, LS);
var zS = od.prototype;
zS.updateData = function(t, e, i) {
function n() {
a.stopAnimation(!0), a.animateTo({
shape: {
r: u.r + l.get("hoverOffset")
}
}, 300, "elasticOut")
}
function r() {
a.stopAnimation(!0), a.animateTo({
shape: {
r: u.r
}
}, 300, "elasticOut")
}
var a = this.childAt(0),
l = t.hostModel,
h = t.getItemModel(e),
u = t.getItemLayout(e),
c = o({}, u);
if (c.label = null, i) {
a.setShape(c);
var d = l.getShallow("animationType");
"scale" === d ? (a.shape.r = u.r0, Oa(a, {
shape: {
r: u.r
}
}, l, e)) : (a.shape.endAngle = u.startAngle, La(a, {
shape: {
endAngle: u.endAngle
}
}, l, e))
} else La(a, {
shape: c
}, l, e);
var f = t.getItemVisual(e, "color");
a.useStyle(s({
lineJoin: "bevel",
fill: f
}, h.getModel("itemStyle").getItemStyle())), a.hoverStyle = h.getModel("emphasis.itemStyle").getItemStyle();
var p = h.getShallow("cursor");
p && a.attr("cursor", p), ad(this, t.getItemLayout(e), l.isSelected(null, e), l.get("selectedOffset"), l.get(
"animation")), a.off("mouseover").off("mouseout").off("emphasis").off("normal"), h.get("hoverAnimation") && l.isAnimationEnabled() &&
a.on("mouseover", n).on("mouseout", r).on("emphasis", n).on("normal", r), this._updateLabel(t, e), xa(this)
}, zS._updateLabel = function(t, e) {
var i = this.childAt(1),
n = this.childAt(2),
r = t.hostModel,
a = t.getItemModel(e),
o = t.getItemLayout(e),
s = o.label,
l = t.getItemVisual(e, "color");
La(i, {
shape: {
points: s.linePoints || [
[s.x, s.y],
[s.x, s.y],
[s.x, s.y]
]
}
}, r, e), La(n, {
style: {
x: s.x,
y: s.y
}
}, r, e), n.attr({
rotation: s.rotation,
origin: [s.x, s.y],
z2: 10
});
var h = a.getModel("label"),
u = a.getModel("emphasis.label"),
c = a.getModel("labelLine"),
d = a.getModel("emphasis.labelLine"),
l = t.getItemVisual(e, "color");
wa(n.style, n.hoverStyle = {}, h, u, {
labelFetcher: t.hostModel,
labelDataIndex: e,
defaultText: t.getName(e),
autoColor: l,
useInsideStyle: !!s.inside
}, {
textAlign: s.textAlign,
textVerticalAlign: s.verticalAlign,
opacity: t.getItemVisual(e, "opacity")
}), n.ignore = n.normalIgnore = !h.get("show"), n.hoverIgnore = !u.get("show"), i.ignore = i.normalIgnore = !c.get(
"show"), i.hoverIgnore = !d.get("show"), i.setStyle({
stroke: l,
opacity: t.getItemVisual(e, "opacity")
}), i.setStyle(c.getModel("lineStyle").getLineStyle()), i.hoverStyle = d.getModel("lineStyle").getLineStyle();
var f = c.get("smooth");
f && f === !0 && (f = .4), i.setShape({
smooth: f
})
}, u(od, lv);
var ES = (Bs.extend({
type: "pie",
init: function() {
var t = new lv;
this._sectorGroup = t
},
render: function(t, e, i, n) {
if (!n || n.from !== this.uid) {
var r = t.getData(),
a = this._data,
o = this.group,
s = e.get("animation"),
l = !a,
h = t.get("animationType"),
u = x(rd, this.uid, t, s, i),
c = t.get("selectedMode");
if (r.diff(a).add(function(t) {
var e = new od(r, t);
l && "scale" !== h && e.eachChild(function(t) {
t.stopAnimation(!0)
}), c && e.on("click", u), r.setItemGraphicEl(t, e), o.add(e)
}).update(function(t, e) {
var i = a.getItemGraphicEl(e);
i.updateData(r, t), i.off("click"), c && i.on("click", u), o.add(i), r.setItemGraphicEl(t, i)
}).remove(function(t) {
var e = a.getItemGraphicEl(t);
o.remove(e)
}).execute(), s && l && r.count() > 0 && "scale" !== h) {
var d = r.getItemLayout(0),
f = Math.max(i.getWidth(), i.getHeight()) / 2,
p = y(o.removeClipPath, o);
o.setClipPath(this._createClipPath(d.cx, d.cy, f, d.startAngle, d.clockwise, p, t))
} else o.removeClipPath();
this._data = r
}
},
dispose: function() {},
_createClipPath: function(t, e, i, n, r, a, o) {
var s = new Sy({
shape: {
cx: t,
cy: e,
r0: 0,
r: i,
startAngle: n,
endAngle: n,
clockwise: r
}
});
return Oa(s, {
shape: {
endAngle: n + (r ? 1 : -1) * Math.PI * 2
}
}, o, a), s
},
containPoint: function(t, e) {
var i = e.getData(),
n = i.getItemLayout(0);
if (n) {
var r = t[0] - n.cx,
a = t[1] - n.cy,
o = Math.sqrt(r * r + a * a);
return o <= n.r && o >= n.r0
}
}
}), function(t, e) {
f(e, function(e) {
e.update = "updateView", Ul(e, function(i, n) {
var r = {};
return n.eachComponent({
mainType: "series",
subType: t,
query: i
}, function(t) {
t[e.method] && t[e.method](i.name, i.dataIndex);
var n = t.getData();
n.each(function(e) {
var i = n.getName(e);
r[i] = t.isSelected(i) || !1
})
}), {
name: i.name,
selected: r
}
})
})
}),
RS = function(t) {
return {
getTargetSeries: function(e) {
var i = {},
n = N();
return e.eachSeriesByType(t, function(t) {
t.__paletteScope = i, n.set(t.uid, t)
}), n
},
reset: function(t) {
var e = t.getRawData(),
i = {},
n = t.getData();
n.each(function(t) {
var e = n.getRawIndex(t);
i[e] = t
}), e.each(function(r) {
var a = i[r],
o = null != a && n.getItemVisual(a, "color", !0);
if (o) e.setItemVisual(r, "color", o);
else {
var s = e.getItemModel(r),
l = s.get("itemStyle.color") || t.getColorFromPalette(e.getName(r) || r + "", t.__paletteScope, e.count());
e.setItemVisual(r, "color", l), null != a && n.setItemVisual(a, "color", l)
}
})
}
}
},
BS = function(t, e, i, n) {
var r, a, o = t.getData(),
s = [],
l = !1;
o.each(function(i) {
var n, h, u, c, d = o.getItemLayout(i),
f = o.getItemModel(i),
p = f.getModel("label"),
g = p.get("position") || f.get("emphasis.label.position"),
v = f.getModel("labelLine"),
m = v.get("length"),
y = v.get("length2"),
x = (d.startAngle + d.endAngle) / 2,
_ = Math.cos(x),
w = Math.sin(x);
r = d.cx, a = d.cy;
var b = "inside" === g || "inner" === g;
if ("center" === g) n = d.cx, h = d.cy, c = "center";
else {
var S = (b ? (d.r + d.r0) / 2 * _ : d.r * _) + r,
M = (b ? (d.r + d.r0) / 2 * w : d.r * w) + a;
if (n = S + 3 * _, h = M + 3 * w, !b) {
var I = S + _ * (m + e - d.r),
T = M + w * (m + e - d.r),
C = I + (0 > _ ? -1 : 1) * y,
A = T;
n = C + (0 > _ ? -5 : 5), h = A, u = [
[S, M],
[I, T],
[C, A]
]
}
c = b ? "center" : _ > 0 ? "left" : "right"
}
var D = p.getFont(),
k = p.get("rotate") ? 0 > _ ? -x + Math.PI : -x : 0,
P = t.getFormattedLabel(i, "normal") || o.getName(i),
L = Ei(P, D, c, "top");
l = !!k, d.label = {
x: n,
y: h,
position: g,
height: L.height,
len: m,
len2: y,
linePoints: u,
textAlign: c,
verticalAlign: "middle",
rotation: k,
inside: b
}, b || s.push(d.label)
}), !l && t.get("avoidLabelOverlap") && ld(s, r, a, e, i, n)
},
NS = 2 * Math.PI,
FS = Math.PI / 180,
VS = function(t, e, i) {
e.eachSeriesByType(t, function(t) {
var e = t.getData(),
n = e.mapDimension("value"),
r = t.get("center"),
a = t.get("radius");
_(a) || (a = [0, a]), _(r) || (r = [r, r]);
var o = i.getWidth(),
s = i.getHeight(),
l = Math.min(o, s),
h = Ua(r[0], o),
u = Ua(r[1], s),
c = Ua(a[0], l / 2),
d = Ua(a[1], l / 2),
f = -t.get("startAngle") * FS,
p = t.get("minAngle") * FS,
g = 0;
e.each(n, function(t) {
!isNaN(t) && g++
});
var v = e.getSum(n),
m = Math.PI / (v || g) * 2,
y = t.get("clockwise"),
x = t.get("roseType"),
w = t.get("stillShowZeroSum"),
b = e.getDataExtent(n);
b[0] = 0;
var S = NS,
M = 0,
I = f,
T = y ? 1 : -1;
if (e.each(n, function(t, i) {
var n;
if (isNaN(t)) return void e.setItemLayout(i, {
angle: 0 / 0,
startAngle: 0 / 0,
endAngle: 0 / 0,
clockwise: y,
cx: h,
cy: u,
r0: c,
r: x ? 0 / 0 : d
});
n = "area" !== x ? 0 === v && w ? m : t * m : NS / g, p > n ? (n = p, S -= p) : M += t;
var r = I + T * n;
e.setItemLayout(i, {
angle: n,
startAngle: I,
endAngle: r,
clockwise: y,
cx: h,
cy: u,
r0: c,
r: x ? qa(t, b, [c, d]) : d
}), I = r
}), NS > S && g)
if (.001 >= S) {
var C = NS / g;
e.each(n, function(t, i) {
if (!isNaN(t)) {
var n = e.getItemLayout(i);
n.angle = C, n.startAngle = f + T * i * C, n.endAngle = f + T * (i + 1) * C
}
})
} else m = S / M, I = f, e.each(n, function(t, i) {
if (!isNaN(t)) {
var n = e.getItemLayout(i),
r = n.angle === p ? p : t * m;
n.startAngle = I, n.endAngle = I + T * r, I += T * r
}
});
BS(t, d, o, s)
})
},
WS = function(t) {
return {
seriesType: t,
reset: function(t, e) {
var i = e.findComponents({
mainType: "legend"
});
if (i && i.length) {
var n = t.getData();
n.filterSelf(function(t) {
for (var e = n.getName(t), r = 0; r < i.length; r++)
if (!i[r].isSelected(e)) return !1;
return !0
})
}
}
}
};
ES("pie", [{
type: "pieToggleSelect",
event: "pieselectchanged",
method: "toggleSelected"
}, {
type: "pieSelect",
event: "pieselected",
method: "select"
}, {
type: "pieUnSelect",
event: "pieunselected",
method: "unSelect"
}]), Jl(RS("pie")), Ql(x(VS, "pie")), jl(WS("pie"));
var GS = function(t) {
var e = t.grid.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: y(hd, t)
}
}
},
HS = function(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: y(ud, t)
}
}
},
ZS = function(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: y(cd, t)
}
}
},
XS = function(t) {
var e = t.getRadiusAxis(),
i = t.getAngleAxis(),
n = e.getExtent();
return n[0] > n[1] && n.reverse(), {
coordSys: {
type: "polar",
cx: t.cx,
cy: t.cy,
r: n[1],
r0: n[0]
},
api: {
coord: y(function(n) {
var r = e.dataToRadius(n[0]),
a = i.dataToAngle(n[1]),
o = t.coordToPoint([r, a]);
return o.push(r, a * Math.PI / 180), o
}),
size: y(dd, t)
}
}
},
YS = function(t) {
var e = t.getRect(),
i = 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: i.start,
end: i.end,
weeks: i.weeks,
dayCount: i.allDay
}
},
api: {
coord: function(e, i) {
return t.dataToPoint(e, i)
}
}
}
},
jS = ["itemStyle"],
qS = ["emphasis", "itemStyle"],
US = ["label"],
$S = ["emphasis", "label"],
KS = "e\x00\x00",
QS = {
cartesian2d: GS,
geo: HS,
singleAxis: ZS,
polar: XS,
calendar: YS
};
o_.extend({
type: "series.custom",
dependencies: ["grid", "polar", "geo", "singleAxis", "calendar"],
defaultOption: {
coordinateSystem: "cartesian2d",
zlevel: 0,
z: 2,
legendHoverLink: !0,
useTransform: !0
},
getInitialData: function() {
return Oh(this.getSource(), this)
},
getDataParams: function(t, e, i) {
var n = o_.prototype.getDataParams.apply(this, arguments);
return i && (n.info = i.info), n
}
}), Bs.extend({
type: "custom",
_data: null,
render: function(t, e, i, n) {
var r = this._data,
a = t.getData(),
o = this.group,
s = vd(t, a, e, i);
a.diff(r).add(function(e) {
yd(null, e, s(e, n), t, o, a)
}).update(function(e, i) {
var l = r.getItemGraphicEl(i);
yd(l, e, s(e, n), t, o, a)
}).remove(function(t) {
var e = r.getItemGraphicEl(t);
e && o.remove(e)
}).execute(), this._data = a
},
incrementalPrepareRender: function() {
this.group.removeAll(), this._data = null
},
incrementalRender: function(t, e, i, n, r) {
function a(t) {
t.isGroup || (t.incremental = !0, t.useHoverLayer = !0)
}
for (var o = e.getData(), s = vd(e, o, i, n), l = t.start; l < t.end; l++) {
var h = yd(null, l, s(l, r), e, this.group, o);
h.traverse(a)
}
},
dispose: V,
filterForExposedEvent: function(t, e, i) {
var n = e.element;
if (null == n || i.name === n) return !0;
for (;
(i = i.parent) && i !== this.group;)
if (i.name === n) return !0;
return !1
}
}), ih({
type: "title",
layoutMode: {
type: "box",
ignoreSize: !0
},
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: "bolder",
color: "#333"
},
subtextStyle: {
color: "#aaa"
}
}
}), nh({
type: "title",
render: function(t, e, i) {
if (this.group.removeAll(), t.get("show")) {
var n = this.group,
r = t.getModel("textStyle"),
a = t.getModel("subtextStyle"),
o = t.get("textAlign"),
s = t.get("textBaseline"),
l = new xy({
style: ba({}, r, {
text: t.get("text"),
textFill: r.getTextColor()
}, {
disableBox: !0
}),
z2: 10
}),
h = l.getBoundingRect(),
u = t.get("subtext"),
c = new xy({
style: ba({}, a, {
text: u,
textFill: a.getTextColor(),
y: h.height + t.get("itemGap"),
textVerticalAlign: "top"
}, {
disableBox: !0
}),
z2: 10
}),
d = t.get("link"),
f = t.get("sublink"),
p = t.get("triggerEvent", !0);
l.silent = !d && !p, c.silent = !f && !p, d && l.on("click", function() {
window.open(d, "_" + t.get("target"))
}), f && c.on("click", function() {
window.open(f, "_" + t.get("subtarget"))
}), l.eventData = c.eventData = p ? {
componentType: "title",
componentIndex: t.componentIndex
} : null, n.add(l), u && n.add(c);
var g = n.getBoundingRect(),
v = t.getBoxLayoutParams();
v.width = g.width, v.height = g.height;
var m = bo(v, {
width: i.getWidth(),
height: i.getHeight()
}, t.get("padding"));
o || (o = t.get("left") || t.get("right"), "middle" === o && (o = "center"), "right" === o ? m.x += m.width :
"center" === o && (m.x += m.width / 2)), s || (s = t.get("top") || t.get("bottom"), "center" === s && (s =
"middle"), "bottom" === s ? m.y += m.height : "middle" === s && (m.y += m.height / 2), s = s || "top"), n.attr(
"position", [m.x, m.y]);
var y = {
textAlign: o,
textVerticalAlign: s
};
l.setStyle(y), c.setStyle(y), g = n.getBoundingRect();
var x = m.margin,
_ = t.getItemStyle(["color", "opacity"]);
_.fill = t.get("backgroundColor");
var w = new Dy({
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: _,
silent: !0
});
na(w), n.add(w)
}
}
});
var JS = ih({
type: "legend.plain",
dependencies: ["series"],
layoutMode: {
type: "box",
ignoreSize: !0
},
init: function(t, e, i) {
this.mergeDefaultAndTheme(t, i), t.selected = t.selected || {}
},
mergeOption: function(t) {
JS.superCall(this, "mergeOption", t)
},
optionUpdated: function() {
this._updateData(this.ecModel);
var t = this._data;
if (t[0] && "single" === this.get("selectedMode")) {
for (var e = !1, i = 0; i < t.length; i++) {
var n = t[i].get("name");
if (this.isSelected(n)) {
this.select(n), e = !0;
break
}
}!e && this.select(t[0].get("name"))
}
},
_updateData: function(t) {
var e = [],
i = [];
t.eachRawSeries(function(n) {
var r = n.name;
i.push(r);
var a;
if (n.legendDataProvider) {
var o = n.legendDataProvider(),
s = o.mapArray(o.getName);
t.isSeriesFiltered(n) || (i = i.concat(s)), s.length ? e = e.concat(s) : a = !0
} else a = !0;
a && Zn(n) && e.push(n.name)
}), this._availableNames = i;
var n = this.get("data") || e,
r = p(n, function(t) {
return ("string" == typeof t || "number" == typeof t) && (t = {
name: t
}), new Wa(t, this, this.ecModel)
}, this);
this._data = r
},
getData: function() {
return this._data
},
select: function(t) {
var e = this.option.selected,
i = this.get("selectedMode");
if ("single" === i) {
var n = this._data;
f(n, function(t) {
e[t.get("name")] = !1
})
}
e[t] = !0
},
unSelect: function(t) {
"single" !== this.get("selectedMode") && (this.option.selected[t] = !1)
},
toggleSelected: function(t) {
var e = this.option.selected;
e.hasOwnProperty(t) || (e[t] = !0), this[e[t] ? "unSelect" : "select"](t)
},
isSelected: function(t) {
var e = this.option.selected;
return !(e.hasOwnProperty(t) && !e[t]) && h(this._availableNames, t) >= 0
},
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,
inactiveColor: "#ccc",
textStyle: {
color: "#333"
},
selectedMode: !0,
tooltip: {
show: !1
}
}
});
Ul("legendToggleSelect", "legendselectchanged", x(Ad, "toggleSelected")), Ul("legendSelect", "legendselected", x(Ad,
"select")), Ul("legendUnSelect", "legendunselected", x(Ad, "unSelect"));
var tM = x,
eM = f,
iM = lv,
nM = nh({
type: "legend.plain",
newlineDisabled: !1,
init: function() {
this.group.add(this._contentGroup = new iM), this._backgroundEl
},
getContentGroup: function() {
return this._contentGroup
},
render: function(t, e, i) {
if (this.resetInner(), t.get("show", !0)) {
var n = t.get("align");
n && "auto" !== n || (n = "right" === t.get("left") && "vertical" === t.get("orient") ? "right" : "left"), this
.renderInner(n, t, e, i);
var r = t.getBoxLayoutParams(),
a = {
width: i.getWidth(),
height: i.getHeight()
},
o = t.get("padding"),
l = bo(r, a, o),
h = this.layoutInner(t, n, l),
u = bo(s({
width: h.width,
height: h.height
}, r), a, o);
this.group.attr("position", [u.x - h.x, u.y - h.y]), this.group.add(this._backgroundEl = Dd(h, t))
}
},
resetInner: function() {
this.getContentGroup().removeAll(), this._backgroundEl && this.group.remove(this._backgroundEl)
},
renderInner: function(t, e, i, n) {
var r = this.getContentGroup(),
a = N(),
o = e.get("selectedMode"),
s = [];
i.eachRawSeries(function(t) {
!t.get("legendHoverLink") && s.push(t.id)
}), eM(e.getData(), function(l, h) {
var u = l.get("name");
if (!this.newlineDisabled && ("" === u || "\n" === u)) return void r.add(new iM({
newline: !0
}));
var c = i.getSeriesByName(u)[0];
if (!a.get(u))
if (c) {
var d = c.getData(),
f = d.getVisual("color");
"function" == typeof f && (f = f(c.getDataParams(0)));
var p = d.getVisual("legendSymbol") || "roundRect",
g = d.getVisual("symbol"),
v = this._createItem(u, h, l, e, p, g, t, f, o);
v.on("click", tM(kd, u, n)).on("mouseover", tM(Pd, c.name, null, n, s)).on("mouseout", tM(Ld, c.name, null,
n, s)), a.set(u, !0)
} else i.eachRawSeries(function(i) {
if (!a.get(u) && i.legendDataProvider) {
var r = i.legendDataProvider(),
c = r.indexOfName(u);
if (0 > c) return;
var d = r.getItemVisual(c, "color"),
f = "roundRect",
p = this._createItem(u, h, l, e, f, null, t, d, o);
p.on("click", tM(kd, u, n)).on("mouseover", tM(Pd, null, u, n, s)).on("mouseout", tM(Ld, null, u, n, s)),
a.set(u, !0)
}
}, this)
}, this)
},
_createItem: function(t, e, i, n, r, a, s, l, h) {
var u = n.get("itemWidth"),
c = n.get("itemHeight"),
d = n.get("inactiveColor"),
f = n.get("symbolKeepAspect"),
p = n.isSelected(t),
g = new iM,
v = i.getModel("textStyle"),
m = i.get("icon"),
y = i.getModel("tooltip"),
x = y.parentModel;
if (r = m || r, g.add(fu(r, 0, 0, u, c, p ? l : d, null == f ? !0 : f)), !m && a && (a !== r || "none" === a)) {
var _ = .8 * c;
"none" === a && (a = "circle"), g.add(fu(a, (u - _) / 2, (c - _) / 2, _, _, p ? l : d, null == f ? !0 : f))
}
var w = "left" === s ? u + 5 : -5,
b = s,
S = n.get("formatter"),
M = t;
"string" == typeof S && S ? M = S.replace("{name}", null != t ? t : "") : "function" == typeof S && (M = S(t)),
g.add(new xy({
style: ba({}, v, {
text: M,
x: w,
y: c / 2,
textFill: p ? v.getTextColor() : d,
textAlign: b,
textVerticalAlign: "middle"
})
}));
var I = new Dy({
shape: g.getBoundingRect(),
invisible: !0,
tooltip: y.get("show") ? o({
content: t,
formatter: x.get("formatter", !0) || function() {
return t
},
formatterParams: {
componentType: "legend",
legendIndex: n.componentIndex,
name: t,
$vars: ["name"]
}
}, y.option) : null
});
return g.add(I), g.eachChild(function(t) {
t.silent = !0
}), I.silent = !h, this.getContentGroup().add(g), xa(g), g.__legendDataIndex = e, g
},
layoutInner: function(t, e, i) {
var n = this.getContentGroup();
gx(t.get("orient"), n, t.get("itemGap"), i.width, i.height);
var r = n.getBoundingRect();
return n.attr("position", [-r.x, -r.y]), this.group.getBoundingRect()
}
}),
rM = function(t) {
var e = t.findComponents({
mainType: "legend"
});
e && e.length && t.filterSeries(function(t) {
for (var i = 0; i < e.length; i++)
if (!e[i].isSelected(t.name)) return !1;
return !0
})
};
jl(rM), yx.registerSubTypeDefaulter("legend", function() {
return "plain"
});
var aM = JS.extend({
type: "legend.scroll",
setScrollDataIndex: function(t) {
this.option.scrollDataIndex = t
},
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
},
init: function(t, e, i, n) {
var r = Mo(t);
aM.superCall(this, "init", t, e, i, n), Od(this, t, r)
},
mergeOption: function(t, e) {
aM.superCall(this, "mergeOption", t, e), Od(this, this.option, t)
},
getOrient: function() {
return "vertical" === this.get("orient") ? {
index: 1,
name: "vertical"
} : {
index: 0,
name: "horizontal"
}
}
}),
oM = lv,
sM = ["width", "height"],
lM = ["x", "y"],
hM = nM.extend({
type: "legend.scroll",
newlineDisabled: !0,
init: function() {
hM.superCall(this, "init"), this._currentIndex = 0, this.group.add(this._containerGroup = new oM), this._containerGroup
.add(this.getContentGroup()), this.group.add(this._controllerGroup = new oM), this._showController
},
resetInner: function() {
hM.superCall(this, "resetInner"), this._controllerGroup.removeAll(), this._containerGroup.removeClipPath(), this
._containerGroup.__rectSize = null
},
renderInner: function(t, e, i, n) {
function r(t, i) {
var r = t + "DataIndex",
l = Va(e.get("pageIcons", !0)[e.getOrient().name][i], {
onclick: y(a._pageGo, a, r, e, n)
}, {
x: -s[0] / 2,
y: -s[1] / 2,
width: s[0],
height: s[1]
});
l.name = t, o.add(l)
}
var a = this;
hM.superCall(this, "renderInner", t, e, i, n);
var o = this._controllerGroup,
s = e.get("pageIconSize", !0);
_(s) || (s = [s, s]), r("pagePrev", 0);
var l = e.getModel("pageTextStyle");
o.add(new xy({
name: "pageText",
style: {
textFill: l.getTextColor(),
font: l.getFont(),
textVerticalAlign: "middle",
textAlign: "center"
},
silent: !0
})), r("pageNext", 1)
},
layoutInner: function(t, e, i) {
var n = this.getContentGroup(),
r = this._containerGroup,
a = this._controllerGroup,
o = t.getOrient().index,
s = sM[o],
l = sM[1 - o],
h = lM[1 - o];
gx(t.get("orient"), n, t.get("itemGap"), o ? i.width : null, o ? null : i.height), gx("horizontal", a, t.get(
"pageButtonItemGap", !0));
var u = n.getBoundingRect(),
c = a.getBoundingRect(),
d = this._showController = u[s] > i[s],
f = [-u.x, -u.y];
f[o] = n.position[o];
var p = [0, 0],
g = [-c.x, -c.y],
v = D(t.get("pageButtonGap", !0), t.get("itemGap", !0));
if (d) {
var m = t.get("pageButtonPosition", !0);
"end" === m ? g[o] += i[s] - c[s] : p[o] += c[s] + v
}
g[1 - o] += u[l] / 2 - c[l] / 2, n.attr("position", f), r.attr("position", p), a.attr("position", g);
var y = this.group.getBoundingRect(),
y = {
x: 0,
y: 0
};
if (y[s] = d ? i[s] : u[s], y[l] = Math.max(u[l], c[l]), y[h] = Math.min(0, c[h] + g[1 - o]), r.__rectSize = i[s],
d) {
var x = {
x: 0,
y: 0
};
x[s] = Math.max(i[s] - c[s] - v, 0), x[l] = y[l], r.setClipPath(new Dy({
shape: x
})), r.__rectSize = x[s]
} else a.eachChild(function(t) {
t.attr({
invisible: !0,
silent: !0
})
});
var _ = this._getPageInfo(t);
return null != _.pageIndex && La(n, {
position: _.contentPosition
}, d ? t : !1), this._updatePageInfoView(t, _), y
},
_pageGo: function(t, e, i) {
var n = this._getPageInfo(e)[t];
null != n && i.dispatchAction({
type: "legendScroll",
scrollDataIndex: n,
legendId: e.id
})
},
_updatePageInfoView: function(t, e) {
var i = this._controllerGroup;
f(["pagePrev", "pageNext"], function(n) {
var r = null != e[n + "DataIndex"],
a = i.childOfName(n);
a && (a.setStyle("fill", r ? t.get("pageIconColor", !0) : t.get("pageIconInactiveColor", !0)), a.cursor = r ?
"pointer" : "default")
});
var n = i.childOfName("pageText"),
r = t.get("pageFormatter"),
a = e.pageIndex,
o = null != a ? a + 1 : 0,
s = e.pageCount;
n && r && n.setStyle("text", b(r) ? r.replace("{current}", o).replace("{total}", s) : r({
current: o,
total: s
}))
},
_getPageInfo: function(t) {
function e(t) {
var e = t.getBoundingRect().clone();
return e[f] += t.position[u], e
}
var i, n, r, a, o = t.get("scrollDataIndex", !0),
s = this.getContentGroup(),
l = s.getBoundingRect(),
h = this._containerGroup.__rectSize,
u = t.getOrient().index,
c = sM[u],
d = sM[1 - u],
f = lM[u],
p = s.position.slice();
this._showController ? s.eachChild(function(t) {
t.__legendDataIndex === o && (a = t)
}) : a = s.childAt(0);
var g = h ? Math.ceil(l[c] / h) : 0;
if (a) {
var v = a.getBoundingRect(),
m = a.position[u] + v[f];
p[u] = -m - l[f], i = Math.floor(g * (m + v[f] + h / 2) / l[c]), i = l[c] && g ? Math.max(0, Math.min(g - 1, i)) :
-1;
var y = {
x: 0,
y: 0
};
y[c] = h, y[d] = l[d], y[f] = -p[u] - l[f];
var x, _ = s.children();
if (s.eachChild(function(t, i) {
var n = e(t);
n.intersect(y) && (null == x && (x = i), r = t.__legendDataIndex), i === _.length - 1 && n[f] + n[c] <= y[f] +
y[c] && (r = null)
}), null != x) {
var w = _[x],
b = e(w);
if (y[f] = b[f] + b[c] - y[c], 0 >= x && b[f] >= y[f]) n = null;
else {
for (; x > 0 && e(_[x - 1]).intersect(y);) x--;
n = _[x].__legendDataIndex
}
}
}
return {
contentPosition: p,
pageIndex: i,
pageCount: g,
pagePrevDataIndex: n,
pageNextDataIndex: r
}
}
});
Ul("legendScroll", "legendscroll", function(t, e) {
var i = t.scrollDataIndex;
null != i && e.eachComponent({
mainType: "legend",
subType: "scroll",
query: t
}, function(t) {
t.setScrollDataIndex(i)
})
});
var uM = function(t, e) {
var i, n = [],
r = t.seriesIndex;
if (null == r || !(i = e.getSeriesByIndex(r))) return {
point: []
};
var a = i.getData(),
o = Yn(a, t);
if (null == o || 0 > o || _(o)) return {
point: []
};
var s = a.getItemGraphicEl(o),
l = i.coordinateSystem;
if (i.getTooltipPosition) n = i.getTooltipPosition(o) || [];
else if (l && l.dataToPoint) n = l.dataToPoint(a.getValues(p(l.dimensions, function(t) {
return a.mapDimension(t)
}), o, !0)) || [];
else if (s) {
var h = s.getBoundingRect().clone();
h.applyTransform(s.transform), n = [h.x + h.width / 2, h.y + h.height / 2]
}
return {
point: n,
el: s
}
},
cM = f,
dM = x,
fM = jn(),
pM = function(t, e, i) {
var n = t.currTrigger,
r = [t.x, t.y],
a = t,
o = t.dispatchAction || y(i.dispatchAction, i),
s = e.getComponent("axisPointer").coordSysAxesInfo;
if (s) {
Hd(r) && (r = uM({
seriesIndex: a.seriesIndex,
dataIndex: a.dataIndex
}, e).point);
var l = Hd(r),
h = a.axesInfo,
u = s.axesInfo,
c = "leave" === n || Hd(r),
d = {},
f = {},
p = {
list: [],
map: {}
},
g = {
showPointer: dM(Rd, f),
showTooltip: dM(Bd, p)
};
cM(s.coordSysMap, function(t, e) {
var i = l || t.containPoint(r);
cM(s.coordSysAxesInfo[e], function(t) {
var e = t.axis,
n = Wd(h, t);
if (!c && i && (!h || n)) {
var a = n && n.value;
null != a || l || (a = e.pointToData(r)), null != a && zd(t, a, g, !1, d)
}
})
});
var v = {};
return cM(u, function(t, e) {
var i = t.linkGroup;
i && !f[e] && cM(i.axesInfo, function(e, n) {
var r = f[n];
if (e !== t && r) {
var a = r.value;
i.mapper && (a = t.axis.scale.parse(i.mapper(a, Gd(e), Gd(t)))), v[t.key] = a
}
})
}), cM(v, function(t, e) {
zd(u[e], t, g, !0, d)
}), Nd(f, u, d), Fd(p, r, t, o), Vd(u, o, i), d
}
},
gM = (ih({
type: "axisPointer",
coordSysAxesInfo: null,
defaultOption: {
show: "auto",
triggerOn: null,
zlevel: 0,
z: 50,
type: "line",
snap: !1,
triggerTooltip: !0,
value: null,
status: null,
link: [],
animation: null,
animationDurationUpdate: 200,
lineStyle: {
color: "#aaa",
width: 1,
type: "solid"
},
shadowStyle: {
color: "rgba(150,150,150,0.3)"
},
label: {
show: !0,
formatter: null,
precision: "auto",
margin: 3,
color: "#fff",
padding: [5, 7, 5, 7],
backgroundColor: "auto",
borderColor: null,
borderWidth: 0,
shadowBlur: 3,
shadowColor: "#aaa"
},
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
}
}
}), jn()),
vM = f,
mM = nh({
type: "axisPointer",
render: function(t, e, i) {
var n = e.getComponent("tooltip"),
r = t.get("triggerOn") || n && n.get("triggerOn") || "mousemove|click";
Zd("axisPointer", i, function(t, e, i) {
"none" !== r && ("leave" === t || r.indexOf(t) >= 0) && i({
type: "updateAxisPointer",
currTrigger: t,
x: e && e.offsetX,
y: e && e.offsetY
})
})
},
remove: function(t, e) {
$d(e.getZr(), "axisPointer"), mM.superApply(this._model, "remove", arguments)
},
dispose: function(t, e) {
$d("axisPointer", e), mM.superApply(this._model, "dispose", arguments)
}
}),
yM = jn(),
xM = n,
_M = y;
Kd.prototype = {
_group: null,
_lastGraphicKey: null,
_handle: null,
_dragging: !1,
_lastValue: null,
_lastStatus: null,
_payloadInfo: null,
animationThreshold: 15,
render: function(t, e, i, n) {
var r = e.get("value"),
a = e.get("status");
if (this._axisModel = t, this._axisPointerModel = e, this._api = i, n || this._lastValue !== r || this._lastStatus !==
a) {
this._lastValue = r, this._lastStatus = a;
var o = this._group,
s = this._handle;
if (!a || "hide" === a) return o && o.hide(), void(s && s.hide());
o && o.show(), s && s.show();
var l = {};
this.makeElOption(l, r, t, e, i);
var h = l.graphicKey;
h !== this._lastGraphicKey && this.clear(i), this._lastGraphicKey = h;
var u = this._moveAnimation = this.determineAnimation(t, e);
if (o) {
var c = x(Qd, e, u);
this.updatePointerEl(o, l, c, e), this.updateLabelEl(o, l, c, e)
} else o = this._group = new lv, this.createPointerEl(o, l, t, e), this.createLabelEl(o, l, t, e), i.getZr().add(
o);
nf(o, e, !0), this._renderHandle(r)
}
},
remove: function(t) {
this.clear(t)
},
dispose: function(t) {
this.clear(t)
},
determineAnimation: function(t, e) {
var i = e.get("animation"),
n = t.axis,
r = "category" === n.type,
a = e.get("snap");
if (!a && !r) return !1;
if ("auto" === i || null == i) {
var o = this.animationThreshold;
if (r && n.getBandWidth() > o) return !0;
if (a) {
var s = _c(t).seriesDataCount,
l = n.getExtent();
return Math.abs(l[0] - l[1]) / s > o
}
return !1
}
return i === !0
},
makeElOption: function() {},
createPointerEl: function(t, e) {
var i = e.pointer;
if (i) {
var n = yM(t).pointerEl = new Yy[i.type](xM(e.pointer));
t.add(n)
}
},
createLabelEl: function(t, e, i, n) {
if (e.label) {
var r = yM(t).labelEl = new Dy(xM(e.label));
t.add(r), tf(r, n)
}
},
updatePointerEl: function(t, e, i) {
var n = yM(t).pointerEl;
n && (n.setStyle(e.pointer.style), i(n, {
shape: e.pointer.shape
}))
},
updateLabelEl: function(t, e, i, n) {
var r = yM(t).labelEl;
r && (r.setStyle(e.label.style), i(r, {
shape: e.label.shape,
position: e.label.position
}), tf(r, n))
},
_renderHandle: function(t) {
if (!this._dragging && this.updateHandleTransform) {
var e = this._axisPointerModel,
i = this._api.getZr(),
n = this._handle,
r = e.getModel("handle"),
a = e.get("status");
if (!r.get("show") || !a || "hide" === a) return n && i.remove(n), void(this._handle = null);
var o;
this._handle || (o = !0, n = this._handle = Va(r.get("icon"), {
cursor: "move",
draggable: !0,
onmousemove: function(t) {
Ig(t.event)
},
onmousedown: _M(this._onHandleDragMove, this, 0, 0),
drift: _M(this._onHandleDragMove, this),
ondragend: _M(this._onHandleDragEnd, this)
}), i.add(n)), nf(n, e, !1);
var s = ["color", "borderColor", "borderWidth", "opacity", "shadowColor", "shadowBlur", "shadowOffsetX",
"shadowOffsetY"
];
n.setStyle(r.getItemStyle(null, s));
var l = r.get("size");
_(l) || (l = [l, l]), n.attr("scale", [l[0] / 2, l[1] / 2]), Hs(this, "_doDispatchAxisPointer", r.get("throttle") ||
0, "fixRate"), this._moveHandleToValue(t, o)
}
},
_moveHandleToValue: function(t, e) {
Qd(this._axisPointerModel, !e && this._moveAnimation, this._handle, ef(this.getHandleTransform(t, this._axisModel,
this._axisPointerModel)))
},
_onHandleDragMove: function(t, e) {
var i = this._handle;
if (i) {
this._dragging = !0;
var n = this.updateHandleTransform(ef(i), [t, e], this._axisModel, this._axisPointerModel);
this._payloadInfo = n, i.stopAnimation(), i.attr(ef(n)), yM(i).lastProp = null, this._doDispatchAxisPointer()
}
},
_doDispatchAxisPointer: function() {
var t = this._handle;
if (t) {
var e = this._payloadInfo,
i = this._axisModel;
this._api.dispatchAction({
type: "updateAxisPointer",
x: e.cursorPoint[0],
y: e.cursorPoint[1],
tooltipOption: e.tooltipOption,
axesInfo: [{
axisDim: i.axis.dim,
axisIndex: i.componentIndex
}]
})
}
},
_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"
})
}
},
getHandleTransform: null,
updateHandleTransform: null,
clear: function(t) {
this._lastValue = null, this._lastStatus = null;
var e = t.getZr(),
i = this._group,
n = this._handle;
e && i && (this._lastGraphicKey = null, i && e.remove(i), n && e.remove(n), this._group = null, this._handle =
null, this._payloadInfo = null)
},
doClear: function() {},
buildLabel: function(t, e, i) {
return i = i || 0, {
x: t[i],
y: t[1 - i],
width: e[i],
height: e[1 - i]
}
}
}, Kd.prototype.constructor = Kd, er(Kd);
var wM = Kd.extend({
makeElOption: function(t, e, i, n, r) {
var a = i.axis,
o = a.grid,
s = n.get("type"),
l = df(o, a).getOtherAxis(a).getGlobalExtent(),
h = a.toGlobalCoord(a.dataToCoord(e, !0));
if (s && "none" !== s) {
var u = rf(n),
c = bM[s](a, h, l, u);
c.style = u, t.graphicKey = c.type, t.pointer = c
}
var d = Tc(o.model, i);
hf(e, t, d, i, n, r)
},
getHandleTransform: function(t, e, i) {
var n = Tc(e.axis.grid.model, e, {
labelInside: !1
});
return n.labelMargin = i.get("handle.margin"), {
position: lf(e.axis, t, n),
rotation: n.rotation + (n.labelDirection < 0 ? Math.PI : 0)
}
},
updateHandleTransform: function(t, e, i) {
var n = i.axis,
r = n.grid,
a = n.getGlobalExtent(!0),
o = df(r, n).getOtherAxis(n).getGlobalExtent(),
s = "x" === n.dim ? 0 : 1,
l = t.position;
l[s] += e[s], l[s] = Math.min(a[1], l[s]), l[s] = Math.max(a[0], l[s]);
var h = (o[1] + o[0]) / 2,
u = [h, h];
u[s] = l[s];
var c = [{
verticalAlign: "middle"
}, {
align: "center"
}];
return {
position: l,
rotation: t.rotation,
cursorPoint: u,
tooltipOption: c[s]
}
}
}),
bM = {
line: function(t, e, i, n) {
var r = uf([e, i[0]], [e, i[1]], ff(t));
return ia({
shape: r,
style: n
}), {
type: "Line",
shape: r
}
},
shadow: function(t, e, i) {
var n = Math.max(1, t.getBandWidth()),
r = i[1] - i[0];
return {
type: "Rect",
shape: cf([e - n / 2, i[0]], [n, r], ff(t))
}
}
};
rS.registerAxisPointerClass("CartesianAxisPointer", wM), Yl(function(t) {
if (t) {
(!t.axisPointer || 0 === t.axisPointer.length) && (t.axisPointer = {});
var e = t.axisPointer.link;
e && !_(e) && (t.axisPointer.link = [e])
}
}), jl(ow.PROCESSOR.STATISTIC, function(t, e) {
t.getComponent("axisPointer").coordSysAxesInfo = fc(t, e)
}), Ul({
type: "updateAxisPointer",
event: "updateAxisPointer",
update: ":updateAxisPointer"
}, pM), ih({
type: "tooltip",
dependencies: ["axisPointer"],
defaultOption: {
zlevel: 0,
z: 60,
show: !0,
showContent: !0,
trigger: "item",
triggerOn: "mousemove|click",
alwaysShowContent: !1,
displayMode: "single",
renderMode: "auto",
confine: !1,
showDelay: 0,
hideDelay: 100,
transitionDuration: .4,
enterable: !1,
backgroundColor: "rgba(50,50,50,0.7)",
borderColor: "#333",
borderRadius: 4,
borderWidth: 0,
padding: 5,
extraCssText: "",
axisPointer: {
type: "line",
axis: "auto",
animation: "auto",
animationDurationUpdate: 200,
animationEasingUpdate: "exponentialOut",
crossStyle: {
color: "#999",
width: 1,
type: "dashed",
textStyle: {}
}
},
textStyle: {
color: "#fff",
fontSize: 14
}
}
});
var SM = f,
MM = fo,
IM = ["", "-webkit-", "-moz-", "-o-"],
TM = "position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;";
mf.prototype = {
constructor: mf,
_enterable: !0,
update: function() {
var t = this._container,
e = t.currentStyle || document.defaultView.getComputedStyle(t),
i = t.style;
"absolute" !== i.position && "absolute" !== e.position && (i.position = "relative")
},
show: function(t) {
clearTimeout(this._hideTimeout);
var e = this.el;
e.style.cssText = TM + vf(t) + ";left:" + this._x + "px;top:" + this._y + "px;" + (t.get("extraCssText") || ""),
e.style.display = e.innerHTML ? "block" : "none", e.style.pointerEvents = this._enterable ? "auto" : "none",
this._show = !0
},
setContent: function(t) {
this.el.innerHTML = null == t ? "" : t
},
setEnterable: function(t) {
this._enterable = t
},
getSize: function() {
var t = this.el;
return [t.clientWidth, t.clientHeight]
},
moveTo: function(t, e) {
var i, n = this._zr;
n && n.painter && (i = n.painter.getViewportRootOffset()) && (t += i.offsetLeft, e += i.offsetTop);
var r = this.el.style;
r.left = t + "px", r.top = e + "px", this._x = t, this._y = e
},
hide: function() {
this.el.style.display = "none", this._show = !1
},
hideLater: function(t) {
!this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout =
setTimeout(y(this.hide, this), t)) : this.hide())
},
isShow: function() {
return this._show
},
getOuterSize: function() {
var t = this.el.clientWidth,
e = this.el.clientHeight;
if (document.defaultView && document.defaultView.getComputedStyle) {
var i = document.defaultView.getComputedStyle(this.el);
i && (t += parseInt(i.paddingLeft, 10) + parseInt(i.paddingRight, 10) + parseInt(i.borderLeftWidth, 10) +
parseInt(i.borderRightWidth, 10), e += parseInt(i.paddingTop, 10) + parseInt(i.paddingBottom, 10) + parseInt(i
.borderTopWidth, 10) + parseInt(i.borderBottomWidth, 10))
}
return {
width: t,
height: e
}
}
}, yf.prototype = {
constructor: yf,
_enterable: !0,
update: function() {},
show: function() {
this._hideTimeout && clearTimeout(this._hideTimeout), this.el.attr("show", !0), this._show = !0
},
setContent: function(t, e, i) {
this.el && this._zr.remove(this.el);
for (var n = {}, r = t, a = "{marker", o = "|}", s = r.indexOf(a); s >= 0;) {
var l = r.indexOf(o),
h = r.substr(s + a.length, l - s - a.length);
n["marker" + h] = h.indexOf("sub") > -1 ? {
textWidth: 4,
textHeight: 4,
textBorderRadius: 2,
textBackgroundColor: e[h],
textOffset: [3, 0]
} : {
textWidth: 10,
textHeight: 10,
textBorderRadius: 5,
textBackgroundColor: e[h]
}, r = r.substr(l + 1), s = r.indexOf("{marker")
}
this.el = new xy({
style: {
rich: n,
text: t,
textLineHeight: 20,
textBackgroundColor: i.get("backgroundColor"),
textBorderRadius: i.get("borderRadius"),
textFill: i.get("textStyle.color"),
textPadding: i.get("padding")
},
z: i.get("z")
}), this._zr.add(this.el);
var u = this;
this.el.on("mouseover", function() {
u._enterable && (clearTimeout(u._hideTimeout), u._show = !0), u._inContent = !0
}), this.el.on("mouseout", function() {
u._enterable && u._show && u.hideLater(u._hideDelay), u._inContent = !1
})
},
setEnterable: function(t) {
this._enterable = t
},
getSize: function() {
var t = this.el.getBoundingRect();
return [t.width, t.height]
},
moveTo: function(t, e) {
this.el && this.el.attr("position", [t, e])
},
hide: function() {
this.el.hide(), this._show = !1
},
hideLater: function(t) {
!this._show || this._inContent && this._enterable || (t ? (this._hideDelay = t, this._show = !1, this._hideTimeout =
setTimeout(y(this.hide, this), t)) : this.hide())
},
isShow: function() {
return this._show
},
getOuterSize: function() {
return this.getSize()
}
};
var CM = y,
AM = f,
DM = Ua,
kM = new Dy({
shape: {
x: -1,
y: -1,
width: 2,
height: 2
}
});
nh({
type: "tooltip",
init: function(t, e) {
if (!tg.node) {
var i = t.getComponent("tooltip"),
n = i.get("renderMode");
this._renderMode = Qn(n);
var r;
"html" === this._renderMode ? (r = new mf(e.getDom(), e), this._newLine = "
") : (r = new yf(e), this._newLine =
"\n"), this._tooltipContent = r
}
},
render: function(t, e, i) {
if (!tg.node) {
this.group.removeAll(), this._tooltipModel = t, this._ecModel = e, this._api = i, this._lastDataByCoordSys =
null, this._alwaysShowContent = t.get("alwaysShowContent");
var n = this._tooltipContent;
n.update(), n.setEnterable(t.get("enterable")), this._initGlobalListener(), this._keepShow()
}
},
_initGlobalListener: function() {
var t = this._tooltipModel,
e = t.get("triggerOn");
Zd("itemTooltip", this._api, CM(function(t, i, n) {
"none" !== e && (e.indexOf(t) >= 0 ? this._tryShow(i, n) : "leave" === t && this._hide(n))
}, this))
},
_keepShow: function() {
var t = this._tooltipModel,
e = this._ecModel,
i = this._api;
if (null != this._lastX && null != this._lastY && "none" !== t.get("triggerOn")) {
var n = this;
clearTimeout(this._refreshUpdateTimeout), this._refreshUpdateTimeout = setTimeout(function() {
n.manuallyShowTip(t, e, i, {
x: n._lastX,
y: n._lastY
})
})
}
},
manuallyShowTip: function(t, e, i, n) {
if (n.from !== this.uid && !tg.node) {
var r = _f(n, i);
this._ticket = "";
var a = n.dataByCoordSys;
if (n.tooltip && null != n.x && null != n.y) {
var o = kM;
o.position = [n.x, n.y], o.update(), o.tooltip = n.tooltip, this._tryShow({
offsetX: n.x,
offsetY: n.y,
target: o
}, r)
} else if (a) this._tryShow({
offsetX: n.x,
offsetY: n.y,
position: n.position,
event: {},
dataByCoordSys: n.dataByCoordSys,
tooltipOption: n.tooltipOption
}, r);
else if (null != n.seriesIndex) {
if (this._manuallyAxisShowTip(t, e, i, n)) return;
var s = uM(n, e),
l = s.point[0],
h = s.point[1];
null != l && null != h && this._tryShow({
offsetX: l,
offsetY: h,
position: n.position,
target: s.el,
event: {}
}, r)
} else null != n.x && null != n.y && (i.dispatchAction({
type: "updateAxisPointer",
x: n.x,
y: n.y
}), this._tryShow({
offsetX: n.x,
offsetY: n.y,
position: n.position,
target: i.getZr().findHover(n.x, n.y).target,
event: {}
}, r))
}
},
manuallyHideTip: function(t, e, i, n) {
var r = this._tooltipContent;
!this._alwaysShowContent && this._tooltipModel && r.hideLater(this._tooltipModel.get("hideDelay")), this._lastX =
this._lastY = null, n.from !== this.uid && this._hide(_f(n, i))
},
_manuallyAxisShowTip: function(t, e, i, n) {
var r = n.seriesIndex,
a = n.dataIndex,
o = e.getComponent("axisPointer").coordSysAxesInfo;
if (null != r && null != a && null != o) {
var s = e.getSeriesByIndex(r);
if (s) {
var l = s.getData(),
t = xf([l.getItemModel(a), s, (s.coordinateSystem || {}).model, t]);
if ("axis" === t.get("trigger")) return i.dispatchAction({
type: "updateAxisPointer",
seriesIndex: r,
dataIndex: a,
position: n.position
}), !0
}
}
},
_tryShow: function(t, e) {
var i = t.target,
n = this._tooltipModel;
if (n) {
this._lastX = t.offsetX, this._lastY = t.offsetY;
var r = t.dataByCoordSys;
r && r.length ? this._showAxisTooltip(r, t) : i && null != i.dataIndex ? (this._lastDataByCoordSys = null, this
._showSeriesItemTooltip(t, i, e)) : i && i.tooltip ? (this._lastDataByCoordSys = null, this._showComponentItemTooltip(
t, i, e)) : (this._lastDataByCoordSys = null, this._hide(e))
}
},
_showOrMove: function(t, e) {
var i = t.get("showDelay");
e = y(e, this), clearTimeout(this._showTimout), i > 0 ? this._showTimout = setTimeout(e, i) : e()
},
_showAxisTooltip: function(t, e) {
var i = this._ecModel,
n = this._tooltipModel,
a = [e.offsetX, e.offsetY],
o = [],
s = [],
l = xf([e.tooltipOption, n]),
h = this._renderMode,
u = this._newLine,
c = {};
AM(t, function(t) {
AM(t.dataByAxis, function(t) {
var e = i.getComponent(t.axisDim + "Axis", t.axisIndex),
n = t.value,
a = [];
if (e && null != n) {
var l = sf(n, e.axis, i, t.seriesDataIndices, t.valueLabelOpt);
f(t.seriesDataIndices, function(o) {
var u = i.getSeriesByIndex(o.seriesIndex),
d = o.dataIndexInside,
f = u && u.getDataParams(d);
if (f.axisDim = t.axisDim, f.axisIndex = t.axisIndex, f.axisType = t.axisType, f.axisId = t.axisId, f.axisValue =
hu(e.axis, n), f.axisValueLabel = l, f) {
s.push(f);
var p, g = u.formatTooltip(d, !0, null, h);
if (S(g)) {
p = g.html;
var v = g.markers;
r(c, v)
} else p = g;
a.push(p)
}
});
var d = l;
o.push("html" !== h ? a.join(u) : (d ? po(d) + u : "") + a.join(u))
}
})
}, this), o.reverse(), o = o.join(this._newLine + this._newLine);
var d = e.position;
this._showOrMove(l, function() {
this._updateContentNotChangedOnAxis(t) ? this._updatePosition(l, d, a[0], a[1], this._tooltipContent, s) :
this._showTooltipContent(l, o, s, Math.random(), a[0], a[1], d, void 0, c)
})
},
_showSeriesItemTooltip: function(t, e, i) {
var n = this._ecModel,
r = e.seriesIndex,
a = n.getSeriesByIndex(r),
o = e.dataModel || a,
s = e.dataIndex,
l = e.dataType,
h = o.getData(),
u = xf([h.getItemModel(s), o, a && (a.coordinateSystem || {}).model, this._tooltipModel]),
c = u.get("trigger");
if (null == c || "item" === c) {
var d, f, p = o.getDataParams(s, l),
g = o.formatTooltip(s, !1, l, this._renderMode);
S(g) ? (d = g.html, f = g.markers) : (d = g, f = null);
var v = "item_" + o.name + "_" + s;
this._showOrMove(u, function() {
this._showTooltipContent(u, d, p, v, t.offsetX, t.offsetY, t.position, t.target, f)
}), i({
type: "showTip",
dataIndexInside: s,
dataIndex: h.getRawIndex(s),
seriesIndex: r,
from: this.uid
})
}
},
_showComponentItemTooltip: function(t, e, i) {
var n = e.tooltip;
if ("string" == typeof n) {
var r = n;
n = {
content: r,
formatter: r
}
}
var a = new Wa(n, this._tooltipModel, this._ecModel),
o = a.get("content"),
s = Math.random();
this._showOrMove(a, function() {
this._showTooltipContent(a, o, a.get("formatterParams") || {}, s, t.offsetX, t.offsetY, t.position, e)
}), i({
type: "showTip",
from: this.uid
})
},
_showTooltipContent: function(t, e, i, n, r, a, o, s, l) {
if (this._ticket = "", t.get("showContent") && t.get("show")) {
var h = this._tooltipContent,
u = t.get("formatter");
o = o || t.get("position");
var c = e;
if (u && "string" == typeof u) c = go(u, i, !0);
else if ("function" == typeof u) {
var d = CM(function(e, n) {
e === this._ticket && (h.setContent(n, l, t), this._updatePosition(t, o, r, a, h, i, s))
}, this);
this._ticket = n, c = u(i, n, d)
}
h.setContent(c, l, t), h.show(t), this._updatePosition(t, o, r, a, h, i, s)
}
},
_updatePosition: function(t, e, i, n, r, a, o) {
var s = this._api.getWidth(),
l = this._api.getHeight();
e = e || t.get("position");
var h = r.getSize(),
u = t.get("align"),
c = t.get("verticalAlign"),
d = o && o.getBoundingRect().clone();
if (o && d.applyTransform(o.transform), "function" == typeof e && (e = e([i, n], a, r.el, d, {
viewSize: [s, l],
contentSize: h.slice()
})), _(e)) i = DM(e[0], s), n = DM(e[1], l);
else if (S(e)) {
e.width = h[0], e.height = h[1];
var f = bo(e, {
width: s,
height: l
});
i = f.x, n = f.y, u = null, c = null
} else if ("string" == typeof e && o) {
var p = Sf(e, d, h);
i = p[0], n = p[1]
} else {
var p = wf(i, n, r, s, l, u ? null : 20, c ? null : 20);
i = p[0], n = p[1]
}
if (u && (i -= Mf(u) ? h[0] / 2 : "right" === u ? h[0] : 0), c && (n -= Mf(c) ? h[1] / 2 : "bottom" === c ? h[1] :
0), t.get("confine")) {
var p = bf(i, n, r, s, l);
i = p[0], n = p[1]
}
r.moveTo(i, n)
},
_updateContentNotChangedOnAxis: function(t) {
var e = this._lastDataByCoordSys,
i = !!e && e.length === t.length;
return i && AM(e, function(e, n) {
var r = e.dataByAxis || {},
a = t[n] || {},
o = a.dataByAxis || [];
i &= r.length === o.length, i && AM(r, function(t, e) {
var n = o[e] || {},
r = t.seriesDataIndices || [],
a = n.seriesDataIndices || [];
i &= t.value === n.value && t.axisType === n.axisType && t.axisId === n.axisId && r.length === a.length, i &&
AM(r, function(t, e) {
var n = a[e];
i &= t.seriesIndex === n.seriesIndex && t.dataIndex === n.dataIndex
})
})
}), this._lastDataByCoordSys = t, !!i
},
_hide: function(t) {
this._lastDataByCoordSys = null, t({
type: "hideTip",
from: this.uid
})
},
dispose: function(t, e) {
tg.node || (this._tooltipContent.hide(), $d("itemTooltip", e))
}
}), Ul({
type: "showTip",
event: "showTip",
update: "tooltip:manuallyShowTip"
}, function() {}), Ul({
type: "hideTip",
event: "hideTip",
update: "tooltip:manuallyHideTip"
}, function() {});
var PM = co,
LM = po,
OM = ih({
type: "marker",
dependencies: ["series", "grid", "polar", "geo"],
init: function(t, e, i, n) {
this.mergeDefaultAndTheme(t, i), this.mergeOption(t, i, n.createdBySelf, !0)
},
isAnimationEnabled: function() {
if (tg.node) return !1;
var t = this.__hostSeries;
return this.getShallow("animation") && t && t.isAnimationEnabled()
},
mergeOption: function(t, e, i, n) {
var r = this.constructor,
a = this.mainType + "Model";
i || e.eachSeries(function(t) {
var i = t.get(this.mainType, !0),
s = t[a];
return i && i.data ? (s ? s.mergeOption(i, e, !0) : (n && If(i), f(i.data, function(t) {
t instanceof Array ? (If(t[0]), If(t[1])) : If(t)
}), s = new r(i, this, e), o(s, {
mainType: this.mainType,
seriesIndex: t.seriesIndex,
name: t.name,
createdBySelf: !0
}), s.__hostSeries = t), void(t[a] = s)) : void(t[a] = null)
}, this)
},
formatTooltip: function(t) {
var e = this.getData(),
i = this.getRawValue(t),
n = _(i) ? p(i, PM).join(", ") : PM(i),
r = e.getName(t),
a = LM(this.name);
return (null != i || r) && (a += "
"), r && (a += LM(r), null != i && (a += " : ")), null != i && (a += LM(
n)), a
},
getData: function() {
return this._data
},
setData: function(t) {
this._data = t
}
});
c(OM, i_), OM.extend({
type: "markPoint",
defaultOption: {
zlevel: 0,
z: 5,
symbol: "pin",
symbolSize: 50,
tooltip: {
trigger: "item"
},
label: {
show: !0,
position: "inside"
},
itemStyle: {
borderWidth: 2
},
emphasis: {
label: {
show: !0
}
}
}
});
var zM = h,
EM = x,
RM = {
min: EM(Af, "min"),
max: EM(Af, "max"),
average: EM(Af, "average")
},
BM = nh({
type: "marker",
init: function() {
this.markerGroupMap = N()
},
render: function(t, e, i) {
var n = this.markerGroupMap;
n.each(function(t) {
t.__keep = !1
});
var r = this.type + "Model";
e.eachSeries(function(t) {
var n = t[r];
n && this.renderSeries(t, n, e, i)
}, this), n.each(function(t) {
!t.__keep && this.group.remove(t.group)
}, this)
},
renderSeries: function() {}
});
BM.extend({
type: "markPoint",
updateTransform: function(t, e, i) {
e.eachSeries(function(t) {
var e = t.markPointModel;
e && (Ef(e.getData(), t, i), this.markerGroupMap.get(t.id).updateLayout(e))
}, this)
},
renderSeries: function(t, e, i, n) {
var r = t.coordinateSystem,
a = t.id,
o = t.getData(),
s = this.markerGroupMap,
l = s.get(a) || s.set(a, new zc),
h = Rf(r, t, e);
e.setData(h), Ef(e.getData(), t, n), h.each(function(t) {
var i = h.getItemModel(t),
n = i.getShallow("symbolSize");
"function" == typeof n && (n = n(e.getRawValue(t), e.getDataParams(t))), h.setItemVisual(t, {
symbolSize: n,
color: i.get("itemStyle.color") || o.getVisual("color"),
symbol: i.getShallow("symbol")
})
}), l.updateData(h), this.group.add(l.group), h.eachItemGraphicEl(function(t) {
t.traverse(function(t) {
t.dataModel = e
})
}), l.__keep = !0, l.group.silent = e.get("silent") || t.get("silent")
}
}), Yl(function(t) {
t.markPoint = t.markPoint || {}
}), OM.extend({
type: "markLine",
defaultOption: {
zlevel: 0,
z: 5,
symbol: ["circle", "arrow"],
symbolSize: [8, 16],
precision: 2,
tooltip: {
trigger: "item"
},
label: {
show: !0,
position: "end"
},
lineStyle: {
type: "dashed"
},
emphasis: {
label: {
show: !0
},
lineStyle: {
width: 3
}
},
animationEasing: "linear"
}
});
var NM = ky.prototype,
FM = Ly.prototype,
VM = $r({
type: "ec-line",
style: {
stroke: "#000",
fill: null
},
shape: {
x1: 0,
y1: 0,
x2: 0,
y2: 0,
percent: 1,
cpx1: null,
cpy1: null
},
buildPath: function(t, e) {
(Bf(e) ? NM : FM).buildPath(t, e)
},
pointAt: function(t) {
return Bf(this.shape) ? NM.pointAt.call(this, t) : FM.pointAt.call(this, t)
},
tangentAt: function(t) {
var e = this.shape,
i = Bf(e) ? [e.x2 - e.x1, e.y2 - e.y1] : FM.tangentAt.call(this, t);
return te(i, i)
}
}),
WM = ["fromSymbol", "toSymbol"],
GM = Hf.prototype;
GM.beforeUpdate = Gf, GM._createLine = function(t, e, i) {
var n = t.hostModel,
r = t.getItemLayout(e),
a = Vf(r);
a.shape.percent = 0, Oa(a, {
shape: {
percent: 1
}
}, n, e), this.add(a);
var o = new xy({
name: "label"
});
this.add(o), f(WM, function(i) {
var n = Ff(i, t, e);
this.add(n), this[Nf(i)] = t.getItemVisual(e, i)
}, this), this._updateCommonStl(t, e, i)
}, GM.updateData = function(t, e, i) {
var n = t.hostModel,
r = this.childOfName("line"),
a = t.getItemLayout(e),
o = {
shape: {}
};
Wf(o.shape, a), La(r, o, n, e), f(WM, function(i) {
var n = t.getItemVisual(e, i),
r = Nf(i);
if (this[r] !== n) {
this.remove(this.childOfName(i));
var a = Ff(i, t, e);
this.add(a)
}
this[r] = n
}, this), this._updateCommonStl(t, e, i)
}, GM._updateCommonStl = function(t, e, i) {
var n = t.hostModel,
r = this.childOfName("line"),
a = i && i.lineStyle,
o = i && i.hoverLineStyle,
l = i && i.labelModel,
h = i && i.hoverLabelModel;
if (!i || t.hasItemOption) {
var u = t.getItemModel(e);
a = u.getModel("lineStyle").getLineStyle(), o = u.getModel("emphasis.lineStyle").getLineStyle(), l = u.getModel(
"label"), h = u.getModel("emphasis.label")
}
var c = t.getItemVisual(e, "color"),
d = k(t.getItemVisual(e, "opacity"), a.opacity, 1);
r.useStyle(s({
strokeNoScale: !0,
fill: "none",
stroke: c,
opacity: d
}, a)), r.hoverStyle = o, f(WM, function(t) {
var e = this.childOfName(t);
e && (e.setColor(c), e.setStyle({
opacity: d
}))
}, this);
var p, g, v = l.getShallow("show"),
m = h.getShallow("show"),
y = this.childOfName("label");
if ((v || m) && (p = c || "#000", g = n.getFormattedLabel(e, "normal", t.dataType), null == g)) {
var x = n.getRawValue(e);
g = null == x ? t.getName(e) : isFinite(x) ? $a(x) : x
}
var _ = v ? g : null,
w = m ? D(n.getFormattedLabel(e, "emphasis", t.dataType), g) : null,
b = y.style;
(null != _ || null != w) && (ba(y.style, l, {
text: _
}, {
autoColor: p
}), y.__textAlign = b.textAlign, y.__verticalAlign = b.textVerticalAlign, y.__position = l.get("position") ||
"middle"), y.hoverStyle = null != w ? {
text: w,
textFill: h.getTextColor(!0),
fontStyle: h.getShallow("fontStyle"),
fontWeight: h.getShallow("fontWeight"),
fontSize: h.getShallow("fontSize"),
fontFamily: h.getShallow("fontFamily")
} : {
text: null
}, y.ignore = !v && !m, xa(this)
}, GM.highlight = function() {
this.trigger("emphasis")
}, GM.downplay = function() {
this.trigger("normal")
}, GM.updateLayout = function(t, e) {
this.setLinePoints(t.getItemLayout(e))
}, GM.setLinePoints = function(t) {
var e = this.childOfName("line");
Wf(e.shape, t), e.dirty()
}, u(Hf, lv);
var HM = Zf.prototype;
HM.isPersistent = function() {
return !0
}, HM.updateData = function(t) {
var e = this,
i = e.group,
n = e._lineData;
e._lineData = t, n || i.removeAll();
var r = jf(t);
t.diff(n).add(function(i) {
Xf(e, t, i, r)
}).update(function(i, a) {
Yf(e, n, t, a, i, r)
}).remove(function(t) {
i.remove(n.getItemGraphicEl(t))
}).execute()
}, HM.updateLayout = function() {
var t = this._lineData;
t && t.eachItemGraphicEl(function(e, i) {
e.updateLayout(t, i)
}, this)
}, HM.incrementalPrepareUpdate = function(t) {
this._seriesScope = jf(t), this._lineData = null, this.group.removeAll()
}, HM.incrementalUpdate = function(t, e) {
function i(t) {
t.isGroup || (t.incremental = t.useHoverLayer = !0)
}
for (var n = t.start; n < t.end; n++) {
var r = e.getItemLayout(n);
if (Uf(r)) {
var a = new this._ctor(e, n, this._seriesScope);
a.traverse(i), this.group.add(a), e.setItemGraphicEl(n, a)
}
}
}, HM.remove = function() {
this._clearIncremental(), this._incremental = null, this.group.removeAll()
}, HM._clearIncremental = function() {
var t = this._incremental;
t && t.clearDisplaybles()
};
var ZM = function(t, e, i, a) {
var s = t.getData(),
l = a.type;
if (!_(a) && ("min" === l || "max" === l || "average" === l || "median" === l || null != a.xAxis || null != a.yAxis)) {
var h, u, c;
if (null != a.yAxis || null != a.xAxis) u = null != a.yAxis ? "y" : "x", h = e.getAxis(u), c = A(a.yAxis, a.xAxis);
else {
var d = kf(a, s, e, t);
u = d.valueDataDim, h = d.valueAxis, c = zf(s, u, l)
}
var f = "x" === u ? 0 : 1,
p = 1 - f,
g = n(a),
v = {};
g.type = null, g.coord = [], v.coord = [], g.coord[p] = -1 / 0, v.coord[p] = 1 / 0;
var m = i.get("precision");
m >= 0 && "number" == typeof c && (c = +c.toFixed(Math.min(m, 20))), g.coord[f] = v.coord[f] = c, a = [g, v, {
type: l,
valueIndex: a.valueIndex,
value: c
}]
}
return a = [Df(t, a[0]), Df(t, a[1]), o({}, a[2])], a[2].type = a[2].type || "", r(a[2], a[0]), r(a[2], a[1]), a
};
BM.extend({
type: "markLine",
updateTransform: function(t, e, i) {
e.eachSeries(function(t) {
var e = t.markLineModel;
if (e) {
var n = e.getData(),
r = e.__from,
a = e.__to;
r.each(function(e) {
Jf(r, e, !0, t, i), Jf(a, e, !1, t, i)
}), n.each(function(t) {
n.setItemLayout(t, [r.getItemLayout(t), a.getItemLayout(t)])
}), this.markerGroupMap.get(t.id).updateLayout()
}
}, this)
},
renderSeries: function(t, e, i, n) {
function r(e, i, r) {
var a = e.getItemModel(i);
Jf(e, i, r, t, n), e.setItemVisual(i, {
symbolSize: a.get("symbolSize") || g[r ? 0 : 1],
symbol: a.get("symbol", !0) || p[r ? 0 : 1],
color: a.get("itemStyle.color") || s.getVisual("color")
})
}
var a = t.coordinateSystem,
o = t.id,
s = t.getData(),
l = this.markerGroupMap,
h = l.get(o) || l.set(o, new Zf);
this.group.add(h.group);
var u = tp(a, t, e),
c = u.from,
d = u.to,
f = u.line;
e.__from = c, e.__to = d, e.setData(f);
var p = e.get("symbol"),
g = e.get("symbolSize");
_(p) || (p = [p, p]), "number" == typeof g && (g = [g, g]), u.from.each(function(t) {
r(c, t, !0), r(d, t, !1)
}), f.each(function(t) {
var e = f.getItemModel(t).get("lineStyle.color");
f.setItemVisual(t, {
color: e || c.getItemVisual(t, "color")
}), f.setItemLayout(t, [c.getItemLayout(t), d.getItemLayout(t)]), f.setItemVisual(t, {
fromSymbolSize: c.getItemVisual(t, "symbolSize"),
fromSymbol: c.getItemVisual(t, "symbol"),
toSymbolSize: d.getItemVisual(t, "symbolSize"),
toSymbol: d.getItemVisual(t, "symbol")
})
}), h.updateData(f), u.line.eachItemGraphicEl(function(t) {
t.traverse(function(t) {
t.dataModel = e
})
}), h.__keep = !0, h.group.silent = e.get("silent") || t.get("silent")
}
}), Yl(function(t) {
t.markLine = t.markLine || {}
}), OM.extend({
type: "markArea",
defaultOption: {
zlevel: 0,
z: 1,
tooltip: {
trigger: "item"
},
animation: !1,
label: {
show: !0,
position: "top"
},
itemStyle: {
borderWidth: 0
},
emphasis: {
label: {
show: !0,
position: "top"
}
}
}
});
var XM = function(t, e, i, n) {
var r = Df(t, n[0]),
o = Df(t, n[1]),
s = A,
l = r.coord,
h = o.coord;
l[0] = s(l[0], -1 / 0), l[1] = s(l[1], -1 / 0), h[0] = s(h[0], 1 / 0), h[1] = s(h[1], 1 / 0);
var u = a([{}, r, o]);
return u.coord = [r.coord, o.coord], u.x0 = r.x, u.y0 = r.y, u.x1 = o.x, u.y1 = o.y, u
},
YM = [
["x0", "y0"],
["x1", "y0"],
["x1", "y1"],
["x0", "y1"]
];
BM.extend({
type: "markArea",
updateTransform: function(t, e, i) {
e.eachSeries(function(t) {
var e = t.markAreaModel;
if (e) {
var n = e.getData();
n.each(function(e) {
var r = p(YM, function(r) {
return rp(n, e, r, t, i)
});
n.setItemLayout(e, r);
var a = n.getItemGraphicEl(e);
a.setShape("points", r)
})
}
}, this)
},
renderSeries: function(t, e, i, n) {
var r = t.coordinateSystem,
a = t.id,
o = t.getData(),
l = this.markerGroupMap,
h = l.get(a) || l.set(a, {
group: new lv
});
this.group.add(h.group), h.__keep = !0;
var u = ap(r, t, e);
e.setData(u), u.each(function(e) {
u.setItemLayout(e, p(YM, function(i) {
return rp(u, e, i, t, n)
})), u.setItemVisual(e, {
color: o.getVisual("color")
})
}), u.diff(h.__data).add(function(t) {
var e = new Cy({
shape: {
points: u.getItemLayout(t)
}
});
u.setItemGraphicEl(t, e), h.group.add(e)
}).update(function(t, i) {
var n = h.__data.getItemGraphicEl(i);
La(n, {
shape: {
points: u.getItemLayout(t)
}
}, e, t), h.group.add(n), u.setItemGraphicEl(t, n)
}).remove(function(t) {
var e = h.__data.getItemGraphicEl(t);
h.group.remove(e)
}).execute(), u.eachItemGraphicEl(function(t, i) {
var n = u.getItemModel(i),
r = n.getModel("label"),
a = n.getModel("emphasis.label"),
o = u.getItemVisual(i, "color");
t.useStyle(s(n.getModel("itemStyle").getItemStyle(), {
fill: Ke(o, .4),
stroke: o
})), t.hoverStyle = n.getModel("emphasis.itemStyle").getItemStyle(), wa(t.style, t.hoverStyle, r, a, {
labelFetcher: e,
labelDataIndex: i,
defaultText: u.getName(i) || "",
isRectText: !0,
autoColor: o
}), xa(t, {}), t.dataModel = e
}), h.__data = u, h.group.silent = e.get("silent") || t.get("silent")
}
}), Yl(function(t) {
t.markArea = t.markArea || {}
});
var jM = function(t) {
var e = t && t.timeline;
_(e) || (e = e ? [e] : []), f(e, function(t) {
t && op(t)
})
};
yx.registerSubTypeDefaulter("timeline", function() {
return "slider"
}), Ul({
type: "timelineChange",
event: "timelineChanged",
update: "prepareAndUpdate"
}, function(t, e) {
var i = e.getComponent("timeline");
return i && null != t.currentIndex && (i.setCurrentIndex(t.currentIndex), !i.get("loop", !0) && i.isIndexMax() &&
i.setPlayState(!1)), e.resetOption("timeline"), s({
currentIndex: i.option.currentIndex
}, t)
}), Ul({
type: "timelinePlayChange",
event: "timelinePlayChanged",
update: "update"
}, function(t, e) {
var i = e.getComponent("timeline");
i && null != t.playState && i.setPlayState(t.playState)
});
var qM = yx.extend({
type: "timeline",
layoutMode: "box",
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: []
},
init: function(t, e, i) {
this._data, this._names, this.mergeDefaultAndTheme(t, i), this._initData()
},
mergeOption: function() {
qM.superApply(this, "mergeOption", arguments), this._initData()
},
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
},
getCurrentIndex: function() {
return this.option.currentIndex
},
isIndexMax: function() {
return this.getCurrentIndex() >= this._data.count() - 1
},
setPlayState: function(t) {
this.option.autoPlay = !!t
},
getPlayState: function() {
return !!this.option.autoPlay
},
_initData: function() {
var t = this.option,
e = t.data || [],
i = t.axisType,
r = this._names = [];
if ("category" === i) {
var a = [];
f(e, function(t, e) {
var i, o = Vn(t);
S(t) ? (i = n(t), i.value = e) : i = e, a.push(i), b(o) || null != o && !isNaN(o) || (o = ""), r.push(o + "")
}), e = a
}
var o = {
category: "ordinal",
time: "time"
} [i] || "number",
s = this._data = new Bw([{
name: "value",
type: o
}], this);
s.initData(e, r)
},
getData: function() {
return this._data
},
getCategories: function() {
return "category" === this.get("axisType") ? this._names.slice() : void 0
}
}),
UM = qM.extend({
type: "timeline.slider",
defaultOption: {
backgroundColor: "rgba(0,0,0,0)",
borderColor: "#ccc",
borderWidth: 0,
orient: "horizontal",
inverse: !1,
tooltip: {
trigger: "item"
},
symbol: "emptyCircle",
symbolSize: 10,
lineStyle: {
show: !0,
width: 2,
color: "#304654"
},
label: {
position: "auto",
show: !0,
interval: "auto",
rotate: 0,
color: "#304654"
},
itemStyle: {
color: "#304654",
borderWidth: 1
},
checkpointStyle: {
symbol: "circle",
symbolSize: 13,
color: "#c23531",
borderWidth: 5,
borderColor: "rgba(194,53,49, 0.5)",
animation: !0,
animationDuration: 300,
animationEasing: "quinticInOut"
},
controlStyle: {
show: !0,
showPlayBtn: !0,
showPrevBtn: !0,
showNextBtn: !0,
itemSize: 22,
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: "path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",
prevIcon: "path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",
color: "#304654",
borderColor: "#304654",
borderWidth: 1
},
emphasis: {
label: {
show: !0,
color: "#c23531"
},
itemStyle: {
color: "#c23531"
},
controlStyle: {
color: "#c23531",
borderColor: "#c23531",
borderWidth: 2
}
},
data: []
}
});
c(UM, i_);
var $M = s_.extend({
type: "timeline"
}),
KM = function(t, e, i, n) {
Pb.call(this, t, e, i), this.type = n || "value", this.model = null
};
KM.prototype = {
constructor: KM,
getLabelModel: function() {
return this.model.getModel("label")
},
isHorizontal: function() {
return "horizontal" === this.model.get("orient")
}
}, u(KM, Pb);
var QM = y,
JM = f,
tI = Math.PI;
$M.extend({
type: "timeline.slider",
init: function(t, e) {
this.api = e, this._axis, this._viewRect, this._timer, this._currentPointer, this._mainGroup, this._labelGroup
},
render: function(t, e, i) {
if (this.model = t, this.api = i, this.ecModel = e, this.group.removeAll(), t.get("show", !0)) {
var n = this._layout(t, i),
r = this._createGroup("mainGroup"),
a = this._createGroup("labelGroup"),
o = this._axis = this._createAxis(n, t);
t.formatTooltip = function(t) {
return po(o.scale.getLabel(t))
}, JM(["AxisLine", "AxisTick", "Control", "CurrentPointer"], function(e) {
this["_render" + e](n, r, o, t)
}, this), this._renderAxisLabel(n, a, o, t), this._position(n, t)
}
this._doPlayStop()
},
remove: function() {
this._clearTimer(), this.group.removeAll()
},
dispose: function() {
this._clearTimer()
},
_layout: function(t, e) {
var i = t.get("label.position"),
n = t.get("orient"),
r = hp(t, e);
null == i || "auto" === i ? i = "horizontal" === n ? r.y + r.height / 2 < e.getHeight() / 2 ? "-" : "+" : r.x +
r.width / 2 < e.getWidth() / 2 ? "+" : "-" : isNaN(i) && (i = {
horizontal: {
top: "-",
bottom: "+"
},
vertical: {
left: "-",
right: "+"
}
} [n][i]);
var a = {
horizontal: "center",
vertical: i >= 0 || "+" === i ? "left" : "right"
},
o = {
horizontal: i >= 0 || "+" === i ? "top" : "bottom",
vertical: "middle"
},
s = {
horizontal: 0,
vertical: tI / 2
},
l = "vertical" === n ? r.height : r.width,
h = t.getModel("controlStyle"),
u = h.get("show", !0),
c = u ? h.get("itemSize") : 0,
d = u ? h.get("itemGap") : 0,
f = c + d,
p = t.get("label.rotate") || 0;
p = p * tI / 180;
var g, v, m, y, x = h.get("position", !0),
_ = u && h.get("showPlayBtn", !0),
w = u && h.get("showPrevBtn", !0),
b = u && h.get("showNextBtn", !0),
S = 0,
M = l;
return "left" === x || "bottom" === x ? (_ && (g = [0, 0], S += f), w && (v = [S, 0], S += f), b && (m = [M - c,
0
], M -= f)) : (_ && (g = [M - c, 0], M -= f), w && (v = [0, 0], S += f), b && (m = [M - c, 0], M -= f)), y = [S,
M
], t.get("inverse") && y.reverse(), {
viewRect: r,
mainLength: l,
orient: n,
rotation: s[n],
labelRotation: p,
labelPosOpt: i,
labelAlign: t.get("label.align") || a[n],
labelBaseline: t.get("label.verticalAlign") || t.get("label.baseline") || o[n],
playPosition: g,
prevBtnPosition: v,
nextBtnPosition: m,
axisExtent: y,
controlSize: c,
controlGap: d
}
},
_position: function(t) {
function e(t) {
var e = t.position;
t.origin = [u[0][0] - e[0], u[1][0] - e[1]]
}
function i(t) {
return [
[t.x, t.x + t.width],
[t.y, t.y + t.height]
]
}
function n(t, e, i, n, r) {
t[n] += i[n][r] - e[n][r]
}
var r = this._mainGroup,
a = this._labelGroup,
o = t.viewRect;
if ("vertical" === t.orient) {
var s = be(),
l = o.x,
h = o.y + o.height;
Te(s, s, [-l, -h]), Ce(s, s, -tI / 2), Te(s, s, [l, h]), o = o.clone(), o.applyTransform(s)
}
var u = i(o),
c = i(r.getBoundingRect()),
d = i(a.getBoundingRect()),
f = r.position,
p = a.position;
p[0] = f[0] = u[0][0];
var g = t.labelPosOpt;
if (isNaN(g)) {
var v = "+" === g ? 0 : 1;
n(f, c, u, 1, v), n(p, d, u, 1, 1 - v)
} else {
var v = g >= 0 ? 0 : 1;
n(f, c, u, 1, v), p[1] = f[1] + g
}
r.attr("position", f), a.attr("position", p), r.rotation = a.rotation = t.rotation, e(r), e(a)
},
_createAxis: function(t, e) {
var i = e.getData(),
n = e.get("axisType"),
r = ou(e, n);
r.getTicks = function() {
return i.mapArray(["value"], function(t) {
return t
})
};
var a = i.getDataExtent("value");
r.setExtent(a[0], a[1]), r.niceTicks();
var o = new KM("value", r, t.axisExtent, n);
return o.model = e, o
},
_createGroup: function(t) {
var e = this["_" + t] = new lv;
return this.group.add(e), e
},
_renderAxisLine: function(t, e, i, n) {
var r = i.getExtent();
n.get("lineStyle.show") && e.add(new ky({
shape: {
x1: r[0],
y1: 0,
x2: r[1],
y2: 0
},
style: o({
lineCap: "round"
}, n.getModel("lineStyle").getLineStyle()),
silent: !0,
z2: 1
}))
},
_renderAxisTick: function(t, e, i, n) {
var r = n.getData(),
a = i.scale.getTicks();
JM(a, function(t) {
var a = i.dataToCoord(t),
o = r.getItemModel(t),
s = o.getModel("itemStyle"),
l = o.getModel("emphasis.itemStyle"),
h = {
position: [a, 0],
onclick: QM(this._changeTimeline, this, t)
},
u = cp(o, s, e, h);
xa(u, l.getItemStyle()), o.get("tooltip") ? (u.dataIndex = t, u.dataModel = n) : u.dataIndex = u.dataModel =
null
}, this)
},
_renderAxisLabel: function(t, e, i, n) {
var r = i.getLabelModel();
if (r.get("show")) {
var a = n.getData(),
o = i.getViewLabels();
JM(o, function(n) {
var r = n.tickValue,
o = a.getItemModel(r),
s = o.getModel("label"),
l = o.getModel("emphasis.label"),
h = i.dataToCoord(n.tickValue),
u = new xy({
position: [h, 0],
rotation: t.labelRotation - t.rotation,
onclick: QM(this._changeTimeline, this, r),
silent: !1
});
ba(u.style, s, {
text: n.formattedLabel,
textAlign: t.labelAlign,
textVerticalAlign: t.labelBaseline
}), e.add(u), xa(u, ba({}, l))
}, this)
}
},
_renderControl: function(t, e, i, n) {
function r(t, i, r, u) {
if (t) {
var c = {
position: t,
origin: [a / 2, 0],
rotation: u ? -o : 0,
rectHover: !0,
style: s,
onclick: r
},
d = up(n, i, h, c);
e.add(d), xa(d, l)
}
}
var a = t.controlSize,
o = t.rotation,
s = n.getModel("controlStyle").getItemStyle(),
l = n.getModel("emphasis.controlStyle").getItemStyle(),
h = [0, -a / 2, a, a],
u = n.getPlayState(),
c = n.get("inverse", !0);
r(t.nextBtnPosition, "controlStyle.nextIcon", QM(this._changeTimeline, this, c ? "-" : "+")), r(t.prevBtnPosition,
"controlStyle.prevIcon", QM(this._changeTimeline, this, c ? "+" : "-")), r(t.playPosition, "controlStyle." + (
u ? "stopIcon" : "playIcon"), QM(this._handlePlayClick, this, !u), !0)
},
_renderCurrentPointer: function(t, e, i, n) {
var r = n.getData(),
a = n.getCurrentIndex(),
o = r.getItemModel(a).getModel("checkpointStyle"),
s = this,
l = {
onCreate: function(t) {
t.draggable = !0, t.drift = QM(s._handlePointerDrag, s), t.ondragend = QM(s._handlePointerDragend, s), dp(t,
a, i, n, !0)
},
onUpdate: function(t) {
dp(t, a, i, n)
}
};
this._currentPointer = cp(o, o, this._mainGroup, {}, this._currentPointer, l)
},
_handlePlayClick: function(t) {
this._clearTimer(), this.api.dispatchAction({
type: "timelinePlayChange",
playState: t,
from: this.uid
})
},
_handlePointerDrag: function(t, e, i) {
this._clearTimer(), this._pointerChangeTimeline([i.offsetX, i.offsetY])
},
_handlePointerDragend: function(t) {
this._pointerChangeTimeline([t.offsetX, t.offsetY], !0)
},
_pointerChangeTimeline: function(t, e) {
var i = this._toAxisCoord(t)[0],
n = this._axis,
r = Ka(n.getExtent().slice());
i > r[1] && (i = r[1]), i < r[0] && (i = r[0]), this._currentPointer.position[0] = i, this._currentPointer.dirty();
var a = this._findNearestTick(i),
o = this.model;
(e || a !== o.getCurrentIndex() && o.get("realtime")) && this._changeTimeline(a)
},
_doPlayStop: function() {
function t() {
var t = this.model;
this._changeTimeline(t.getCurrentIndex() + (t.get("rewind", !0) ? -1 : 1))
}
this._clearTimer(), this.model.getPlayState() && (this._timer = setTimeout(QM(t, this), this.model.get(
"playInterval")))
},
_toAxisCoord: function(t) {
var e = this._mainGroup.getLocalTransform();
return Ea(t, e, !0)
},
_findNearestTick: function(t) {
var e, i = this.model.getData(),
n = 1 / 0,
r = this._axis;
return i.each(["value"], function(i, a) {
var o = r.dataToCoord(i),
s = Math.abs(o - t);
n > s && (n = s, e = a)
}), e
},
_clearTimer: function() {
this._timer && (clearTimeout(this._timer), this._timer = null)
},
_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
})
}
}), Yl(jM), yx.registerSubTypeDefaulter("dataZoom", function() {
return "slider"
});
var eI = ["x", "y", "z", "radius", "angle", "single"],
iI = ["cartesian2d", "polar", "singleAxis"],
nI = pp(eI, ["axisIndex", "axis", "index", "id"]),
rI = f,
aI = Ka,
oI = function(t, e, i, n) {
this._dimName = t, this._axisIndex = e, this._valueWindow, this._percentWindow, this._dataExtent, this._minMaxSpan,
this.ecModel = n, this._dataZoomModel = i
};
oI.prototype = {
constructor: oI,
hostedBy: function(t) {
return this._dataZoomModel === t
},
getDataValueWindow: function() {
return this._valueWindow.slice()
},
getDataPercentWindow: function() {
return this._percentWindow.slice()
},
getTargetSeriesModels: function() {
var t = [],
e = this.ecModel;
return e.eachSeries(function(i) {
if (fp(i.get("coordinateSystem"))) {
var n = this._dimName,
r = e.queryComponents({
mainType: n + "Axis",
index: i.get(n + "AxisIndex"),
id: i.get(n + "AxisId")
})[0];
this._axisIndex === (r && r.componentIndex) && t.push(i)
}
}, this), t
},
getAxisModel: function() {
return this.ecModel.getComponent(this._dimName + "Axis", this._axisIndex)
},
getOtherAxisModel: function() {
var t, e, i = this._dimName,
n = this.ecModel,
r = this.getAxisModel(),
a = "x" === i || "y" === i;
a ? (e = "gridIndex", t = "x" === i ? "y" : "x") : (e = "polarIndex", t = "angle" === i ? "radius" : "angle");
var o;
return n.eachComponent(t + "Axis", function(t) {
(t.get(e) || 0) === (r.get(e) || 0) && (o = t)
}), o
},
getMinMaxSpan: function() {
return n(this._minMaxSpan)
},
calculateDataWindow: function(t) {
var e = this._dataExtent,
i = this.getAxisModel(),
n = i.axis.scale,
r = this._dataZoomModel.getRangePropMode(),
a = [0, 100],
o = [t.start, t.end],
s = [];
return rI(["startValue", "endValue"], function(e) {
s.push(null != t[e] ? n.parse(t[e]) : null)
}), rI([0, 1], function(t) {
var i = s[t],
l = o[t];
"percent" === r[t] ? (null == l && (l = a[t]), i = n.parse(qa(l, a, e, !0))) : l = qa(i, e, a, !0), s[t] = i,
o[t] = l
}), {
valueWindow: aI(s),
percentWindow: aI(o)
}
},
reset: function(t) {
if (t === this._dataZoomModel) {
var e = this.getTargetSeriesModels();
this._dataExtent = vp(this, this._dimName, e);
var i = this.calculateDataWindow(t.option);
this._valueWindow = i.valueWindow, this._percentWindow = i.percentWindow, xp(this), yp(this)
}
},
restore: function(t) {
t === this._dataZoomModel && (this._valueWindow = this._percentWindow = null, yp(this, !0))
},
filterData: function(t) {
function e(t) {
return t >= a[0] && t <= a[1]
}
if (t === this._dataZoomModel) {
var i = this._dimName,
n = this.getTargetSeriesModels(),
r = t.get("filterMode"),
a = this._valueWindow;
"none" !== r && rI(n, function(t) {
var n = t.getData(),
o = n.mapDimension(i, !0);
o.length && ("weakFilter" === r ? n.filterSelf(function(t) {
for (var e, i, r, s = 0; s < o.length; s++) {
var l = n.get(o[s], t),
h = !isNaN(l),
u = l < a[0],
c = l > a[1];
if (h && !u && !c) return !0;
h && (r = !0), u && (e = !0), c && (i = !0)
}
return r && e && i
}) : rI(o, function(i) {
if ("empty" === r) t.setData(n.map(i, function(t) {
return e(t) ? t : 0 / 0
}));
else {
var o = {};
o[i] = a, n.selectRange(o)
}
}), rI(o, function(t) {
n.setApproximateExtent(a, t)
}))
})
}
}
};
var sI = f,
lI = nI,
hI = ih({
type: "dataZoom",
dependencies: ["xAxis", "yAxis", "zAxis", "radiusAxis", "angleAxis", "singleAxis", "series"],
defaultOption: {
zlevel: 0,
z: 4,
orient: null,
xAxisIndex: null,
yAxisIndex: null,
filterMode: "filter",
throttle: null,
start: 0,
end: 100,
startValue: null,
endValue: null,
minSpan: null,
maxSpan: null,
minValueSpan: null,
maxValueSpan: null,
rangeMode: null
},
init: function(t, e, i) {
this._dataIntervalByAxis = {}, this._dataInfo = {}, this._axisProxies = {}, this.textStyleModel, this._autoThrottle = !
0, this._rangePropMode = ["percent", "percent"];
var n = _p(t);
this.mergeDefaultAndTheme(t, i), this.doInit(n)
},
mergeOption: function(t) {
var e = _p(t);
r(this.option, t, !0), this.doInit(e)
},
doInit: function(t) {
var e = this.option;
tg.canvasSupported || (e.realtime = !1), this._setDefaultThrottle(t), wp(this, t), sI([
["start", "startValue"],
["end", "endValue"]
], function(t, i) {
"value" === this._rangePropMode[i] && (e[t[0]] = null)
}, this), this.textStyleModel = this.getModel("textStyle"), this._resetTarget(), this._giveAxisProxies()
},
_giveAxisProxies: function() {
var t = this._axisProxies;
this.eachTargetAxis(function(e, i, n, r) {
var a = this.dependentModels[e.axis][i],
o = a.__dzAxisProxy || (a.__dzAxisProxy = new oI(e.name, i, this, r));
t[e.name + "_" + i] = o
}, this)
},
_resetTarget: function() {
var t = this.option,
e = this._judgeAutoMode();
lI(function(e) {
var i = e.axisIndex;
t[i] = Nn(t[i])
}, this), "axisIndex" === e ? this._autoSetAxisIndex() : "orient" === e && this._autoSetOrient()
},
_judgeAutoMode: function() {
var t = this.option,
e = !1;
lI(function(i) {
null != t[i.axisIndex] && (e = !0)
}, this);
var i = t.orient;
return null == i && e ? "orient" : e ? void 0 : (null == i && (t.orient = "horizontal"), "axisIndex")
},
_autoSetAxisIndex: function() {
var t = !0,
e = this.get("orient", !0),
i = this.option,
n = this.dependentModels;
if (t) {
var r = "vertical" === e ? "y" : "x";
n[r + "Axis"].length ? (i[r + "AxisIndex"] = [0], t = !1) : sI(n.singleAxis, function(n) {
t && n.get("orient", !0) === e && (i.singleAxisIndex = [n.componentIndex], t = !1)
})
}
t && lI(function(e) {
if (t) {
var n = [],
r = this.dependentModels[e.axis];
if (r.length && !n.length)
for (var a = 0, o = r.length; o > a; a++) "category" === r[a].get("type") && n.push(a);
i[e.axisIndex] = n, n.length && (t = !1)
}
}, this), t && this.ecModel.eachSeries(function(t) {
this._isSeriesHasAllAxesTypeOf(t, "value") && lI(function(e) {
var n = i[e.axisIndex],
r = t.get(e.axisIndex),
a = t.get(e.axisId),
o = t.ecModel.queryComponents({
mainType: e.axis,
index: r,
id: a
})[0];
r = o.componentIndex, h(n, r) < 0 && n.push(r)
})
}, this)
},
_autoSetOrient: function() {
var t;
this.eachTargetAxis(function(e) {
!t && (t = e.name)
}, this), this.option.orient = "y" === t ? "vertical" : "horizontal"
},
_isSeriesHasAllAxesTypeOf: function(t, e) {
var i = !0;
return lI(function(n) {
var r = t.get(n.axisIndex),
a = this.dependentModels[n.axis][r];
a && a.get("type") === e || (i = !1)
}, this), i
},
_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
}
},
getFirstTargetAxisModel: function() {
var t;
return lI(function(e) {
if (null == t) {
var i = this.get(e.axisIndex);
i.length && (t = this.dependentModels[e.axis][i[0]])
}
}, this), t
},
eachTargetAxis: function(t, e) {
var i = this.ecModel;
lI(function(n) {
sI(this.get(n.axisIndex), function(r) {
t.call(e, n, r, this, i)
}, this)
}, this)
},
getAxisProxy: function(t, e) {
return this._axisProxies[t + "_" + e]
},
getAxisModel: function(t, e) {
var i = this.getAxisProxy(t, e);
return i && i.getAxisModel()
},
setRawRange: function(t, e) {
var i = this.option;
sI([
["start", "startValue"],
["end", "endValue"]
], function(e) {
(null != t[e[0]] || null != t[e[1]]) && (i[e[0]] = t[e[0]], i[e[1]] = t[e[1]])
}, this), !e && wp(this, t)
},
getPercentRange: function() {
var t = this.findRepresentativeAxisProxy();
return t ? t.getDataPercentWindow() : void 0
},
getValueRange: function(t, e) {
if (null != t || null != e) return this.getAxisProxy(t, e).getDataValueWindow();
var i = this.findRepresentativeAxisProxy();
return i ? i.getDataValueWindow() : void 0
},
findRepresentativeAxisProxy: function(t) {
if (t) return t.__dzAxisProxy;
var e = this._axisProxies;
for (var i in e)
if (e.hasOwnProperty(i) && e[i].hostedBy(this)) return e[i];
for (var i in e)
if (e.hasOwnProperty(i) && !e[i].hostedBy(this)) return e[i]
},
getRangePropMode: function() {
return this._rangePropMode.slice()
}
}),
uI = s_.extend({
type: "dataZoom",
render: function(t, e, i) {
this.dataZoomModel = t, this.ecModel = e, this.api = i
},
getTargetCoordInfo: function() {
function t(t, e, i, n) {
for (var r, a = 0; a < i.length; a++)
if (i[a].model === t) {
r = i[a];
break
} r || i.push(r = {
model: t,
axisModels: [],
coordIndex: n
}), r.axisModels.push(e)
}
var e = this.dataZoomModel,
i = this.ecModel,
n = {};
return e.eachTargetAxis(function(e, r) {
var a = i.getComponent(e.axis, r);
if (a) {
var o = a.getCoordSysModel();
o && t(o, a, n[o.mainType] || (n[o.mainType] = []), o.componentIndex)
}
}, this), n
}
}),
cI = (hI.extend({
type: "dataZoom.slider",
layoutMode: "box",
defaultOption: {
show: !0,
right: "ph",
top: "ph",
width: "ph",
height: "ph",
left: null,
bottom: null,
backgroundColor: "rgba(47,69,84,0)",
dataBackground: {
lineStyle: {
color: "#2f4554",
width: .5,
opacity: .3
},
areaStyle: {
color: "rgba(47,69,84,0.3)",
opacity: .3
}
},
borderColor: "#ddd",
fillerColor: "rgba(167,183,204,0.4)",
handleIcon: "M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z",
handleSize: "100%",
handleStyle: {
color: "#a7b7cc"
},
labelPrecision: null,
labelFormatter: null,
showDetail: !0,
showDataShadow: "auto",
realtime: !0,
zoomLock: !1,
textStyle: {
color: "#333"
}
}
}), function(t, e, i, n, r, a) {
e[0] = Sp(e[0], i), e[1] = Sp(e[1], i), t = t || 0;
var o = i[1] - i[0];
null != r && (r = Sp(r, [0, o])), null != a && (a = Math.max(a, null != r ? r : 0)), "all" === n && (r = a = Math.abs(
e[1] - e[0]), n = 0);
var s = bp(e, n);
e[n] += t;
var l = r || 0,
h = i.slice();
s.sign < 0 ? h[0] += l : h[1] -= l, e[n] = Sp(e[n], h);
var u = bp(e, n);
null != r && (u.sign !== s.sign || u.span < r) && (e[1 - n] = e[n] + s.sign * r);
var u = bp(e, n);
return null != a && u.span > a && (e[1 - n] = e[n] + u.sign * a), e
}),
dI = Dy,
fI = qa,
pI = Ka,
gI = y,
vI = f,
mI = 7,
yI = 1,
xI = 30,
_I = "horizontal",
wI = "vertical",
bI = 5,
SI = ["line", "bar", "candlestick", "scatter"],
MI = uI.extend({
type: "dataZoom.slider",
init: function(t, e) {
this._displayables = {}, this._orient, this._range, this._handleEnds, this._size, this._handleWidth, this._handleHeight,
this._location, this._dragging, this._dataShadowInfo, this.api = e
},
render: function(t, e, i, n) {
return MI.superApply(this, "render", arguments), Hs(this, "_dispatchZoomAction", this.dataZoomModel.get(
"throttle"), "fixRate"), this._orient = t.get("orient"), this.dataZoomModel.get("show") === !1 ? void this.group
.removeAll() : (n && "dataZoom" === n.type && n.from === this.uid || this._buildView(), void this._updateView())
},
remove: function() {
MI.superApply(this, "remove", arguments), Zs(this, "_dispatchZoomAction")
},
dispose: function() {
MI.superApply(this, "dispose", arguments), Zs(this, "_dispatchZoomAction")
},
_buildView: function() {
var t = this.group;
t.removeAll(), this._resetLocation(), this._resetInterval();
var e = this._displayables.barGroup = new lv;
this._renderBackground(), this._renderHandle(), this._renderDataShadow(), t.add(e), this._positionGroup()
},
_resetLocation: function() {
var t = this.dataZoomModel,
e = this.api,
i = this._findCoordRect(),
n = {
width: e.getWidth(),
height: e.getHeight()
},
r = this._orient === _I ? {
right: n.width - i.x - i.width,
top: n.height - xI - mI,
width: i.width,
height: xI
} : {
right: mI,
top: i.y,
width: xI,
height: i.height
},
a = Mo(t.option);
f(["right", "top", "width", "height"], function(t) {
"ph" === a[t] && (a[t] = r[t])
});
var o = bo(a, n, t.padding);
this._location = {
x: o.x,
y: o.y
}, this._size = [o.width, o.height], this._orient === wI && this._size.reverse()
},
_positionGroup: function() {
var t = this.group,
e = this._location,
i = this._orient,
n = this.dataZoomModel.getFirstTargetAxisModel(),
r = n && n.get("inverse"),
a = this._displayables.barGroup,
o = (this._dataShadowInfo || {}).otherAxisInverse;
a.attr(i !== _I || r ? i === _I && r ? {
scale: o ? [-1, 1] : [-1, -1]
} : i !== wI || r ? {
scale: o ? [-1, -1] : [-1, 1],
rotation: Math.PI / 2
} : {
scale: o ? [1, -1] : [1, 1],
rotation: Math.PI / 2
} : {
scale: o ? [1, 1] : [1, -1]
});
var s = t.getBoundingRect([a]);
t.attr("position", [e.x - s.x, e.y - s.y])
},
_getViewExtent: function() {
return [0, this._size[0]]
},
_renderBackground: function() {
var t = this.dataZoomModel,
e = this._size,
i = this._displayables.barGroup;
i.add(new dI({
silent: !0,
shape: {
x: 0,
y: 0,
width: e[0],
height: e[1]
},
style: {
fill: t.get("backgroundColor")
},
z2: -40
})), i.add(new dI({
shape: {
x: 0,
y: 0,
width: e[0],
height: e[1]
},
style: {
fill: "transparent"
},
z2: 0,
onclick: y(this._onClickPanelClick, this)
}))
},
_renderDataShadow: function() {
var t = this._dataShadowInfo = this._prepareDataShadowInfo();
if (t) {
var e = this._size,
i = t.series,
n = i.getRawData(),
r = i.getShadowDim ? i.getShadowDim() : t.otherDim;
if (null != r) {
var a = n.getDataExtent(r),
o = .3 * (a[1] - a[0]);
a = [a[0] - o, a[1] + o];
var l, h = [0, e[1]],
u = [0, e[0]],
c = [
[e[0], 0],
[0, 0]
],
d = [],
f = u[1] / (n.count() - 1),
p = 0,
g = Math.round(n.count() / e[0]);
n.each([r], function(t, e) {
if (g > 0 && e % g) return void(p += f);
var i = null == t || isNaN(t) || "" === t,
n = i ? 0 : fI(t, a, h, !0);
i && !l && e ? (c.push([c[c.length - 1][0], 0]), d.push([d[d.length - 1][0], 0])) : !i && l && (c.push([p,
0
]), d.push([p, 0])), c.push([p, n]), d.push([p, n]), p += f, l = i
});
var v = this.dataZoomModel;
this._displayables.barGroup.add(new Cy({
shape: {
points: c
},
style: s({
fill: v.get("dataBackgroundColor")
}, v.getModel("dataBackground.areaStyle").getAreaStyle()),
silent: !0,
z2: -20
})), this._displayables.barGroup.add(new Ay({
shape: {
points: d
},
style: v.getModel("dataBackground.lineStyle").getLineStyle(),
silent: !0,
z2: -19
}))
}
}
},
_prepareDataShadowInfo: function() {
var t = this.dataZoomModel,
e = t.get("showDataShadow");
if (e !== !1) {
var i, n = this.ecModel;
return t.eachTargetAxis(function(r, a) {
var o = t.getAxisProxy(r.name, a).getTargetSeriesModels();
f(o, function(t) {
if (!(i || e !== !0 && h(SI, t.get("type")) < 0)) {
var o, s = n.getComponent(r.axis, a).axis,
l = Mp(r.name),
u = t.coordinateSystem;
null != l && u.getOtherAxis && (o = u.getOtherAxis(s).inverse), l = t.getData().mapDimension(l), i = {
thisAxis: s,
series: t,
thisDim: r.name,
otherDim: l,
otherAxisInverse: o
}
}
}, this)
}, this), i
}
},
_renderHandle: function() {
var t = this._displayables,
e = t.handles = [],
i = t.handleLabels = [],
n = this._displayables.barGroup,
r = this._size,
a = this.dataZoomModel;
n.add(t.filler = new dI({
draggable: !0,
cursor: Ip(this._orient),
drift: gI(this._onDragMove, this, "all"),
onmousemove: function(t) {
Ig(t.event)
},
ondragstart: gI(this._showDataInfo, this, !0),
ondragend: gI(this._onDragEnd, this),
onmouseover: gI(this._showDataInfo, this, !0),
onmouseout: gI(this._showDataInfo, this, !1),
style: {
fill: a.get("fillerColor"),
textPosition: "inside"
}
})), n.add(new dI(na({
silent: !0,
shape: {
x: 0,
y: 0,
width: r[0],
height: r[1]
},
style: {
stroke: a.get("dataBackgroundColor") || a.get("borderColor"),
lineWidth: yI,
fill: "rgba(0,0,0,0)"
}
}))), vI([0, 1], function(t) {
var r = Va(a.get("handleIcon"), {
cursor: Ip(this._orient),
draggable: !0,
drift: gI(this._onDragMove, this, t),
onmousemove: function(t) {
Ig(t.event)
},
ondragend: gI(this._onDragEnd, this),
onmouseover: gI(this._showDataInfo, this, !0),
onmouseout: gI(this._showDataInfo, this, !1)
}, {
x: -1,
y: 0,
width: 2,
height: 2
}),
o = r.getBoundingRect();
this._handleHeight = Ua(a.get("handleSize"), this._size[1]), this._handleWidth = o.width / o.height * this._handleHeight,
r.setStyle(a.getModel("handleStyle").getItemStyle());
var s = a.get("handleColor");
null != s && (r.style.fill = s), n.add(e[t] = r);
var l = a.textStyleModel;
this.group.add(i[t] = new xy({
silent: !0,
invisible: !0,
style: {
x: 0,
y: 0,
text: "",
textVerticalAlign: "middle",
textAlign: "center",
textFill: l.getTextColor(),
textFont: l.getFont()
},
z2: 10
}))
}, this)
},
_resetInterval: function() {
var t = this._range = this.dataZoomModel.getPercentRange(),
e = this._getViewExtent();
this._handleEnds = [fI(t[0], [0, 100], e, !0), fI(t[1], [0, 100], e, !0)]
},
_updateInterval: function(t, e) {
var i = this.dataZoomModel,
n = this._handleEnds,
r = this._getViewExtent(),
a = i.findRepresentativeAxisProxy().getMinMaxSpan(),
o = [0, 100];
cI(e, n, r, i.get("zoomLock") ? "all" : t, null != a.minSpan ? fI(a.minSpan, o, r, !0) : null, null != a.maxSpan ?
fI(a.maxSpan, o, r, !0) : null);
var s = this._range,
l = this._range = pI([fI(n[0], r, o, !0), fI(n[1], r, o, !0)]);
return !s || s[0] !== l[0] || s[1] !== l[1]
},
_updateView: function(t) {
var e = this._displayables,
i = this._handleEnds,
n = pI(i.slice()),
r = this._size;
vI([0, 1], function(t) {
var n = e.handles[t],
a = this._handleHeight;
n.attr({
scale: [a / 2, a / 2],
position: [i[t], r[1] / 2 - a / 2]
})
}, this), e.filler.setShape({
x: n[0],
y: 0,
width: n[1] - n[0],
height: r[1]
}), this._updateDataInfo(t)
},
_updateDataInfo: function(t) {
function e(t) {
var e = za(n.handles[t].parent, this.group),
i = Ra(0 === t ? "right" : "left", e),
s = this._handleWidth / 2 + bI,
l = Ea([c[t] + (0 === t ? -s : s), this._size[1] / 2], e);
r[t].setStyle({
x: l[0],
y: l[1],
textVerticalAlign: a === _I ? "middle" : i,
textAlign: a === _I ? i : "center",
text: o[t]
})
}
var i = this.dataZoomModel,
n = this._displayables,
r = n.handleLabels,
a = this._orient,
o = ["", ""];
if (i.get("showDetail")) {
var s = i.findRepresentativeAxisProxy();
if (s) {
var l = s.getAxisModel().axis,
h = this._range,
u = t ? s.calculateDataWindow({
start: h[0],
end: h[1]
}).valueWindow : s.getDataValueWindow();
o = [this._formatLabel(u[0], l), this._formatLabel(u[1], l)]
}
}
var c = pI(this._handleEnds.slice());
e.call(this, 0), e.call(this, 1)
},
_formatLabel: function(t, e) {
var i = this.dataZoomModel,
n = i.get("labelFormatter"),
r = i.get("labelPrecision");
(null == r || "auto" === r) && (r = e.getPixelPrecision());
var a = null == t || isNaN(t) ? "" : "category" === e.type || "time" === e.type ? e.scale.getLabel(Math.round(t)) :
t.toFixed(Math.min(r, 20));
return w(n) ? n(t, a) : b(n) ? n.replace("{value}", a) : a
},
_showDataInfo: function(t) {
t = this._dragging || t;
var e = this._displayables.handleLabels;
e[0].attr("invisible", !t), e[1].attr("invisible", !t)
},
_onDragMove: function(t, e, i) {
this._dragging = !0;
var n = this._displayables.barGroup.getLocalTransform(),
r = Ea([e, i], n, !0),
a = this._updateInterval(t, r[0]),
o = this.dataZoomModel.get("realtime");
this._updateView(!o), a && o && this._dispatchZoomAction()
},
_onDragEnd: function() {
this._dragging = !1, this._showDataInfo(!1);
var t = this.dataZoomModel.get("realtime");
!t && this._dispatchZoomAction()
},
_onClickPanelClick: function(t) {
var e = this._size,
i = this._displayables.barGroup.transformCoordToLocal(t.offsetX, t.offsetY);
if (!(i[0] < 0 || i[0] > e[0] || i[1] < 0 || i[1] > e[1])) {
var n = this._handleEnds,
r = (n[0] + n[1]) / 2,
a = this._updateInterval("all", i[0] - r);
this._updateView(), a && this._dispatchZoomAction()
}
},
_dispatchZoomAction: function() {
var t = this._range;
this.api.dispatchAction({
type: "dataZoom",
from: this.uid,
dataZoomId: this.dataZoomModel.id,
start: t[0],
end: t[1]
})
},
_findCoordRect: function() {
var t;
if (vI(this.getTargetCoordInfo(), function(e) {
if (!t && e.length) {
var i = e[0].model.coordinateSystem;
t = i.getRect && i.getRect()
}
}), !t) {
var e = this.api.getWidth(),
i = this.api.getHeight();
t = {
x: .2 * e,
y: .2 * i,
width: .6 * e,
height: .6 * i
}
}
return t
}
});
hI.extend({
type: "dataZoom.inside",
defaultOption: {
disabled: !1,
zoomLock: !1,
zoomOnMouseWheel: !0,
moveOnMouseMove: !0,
moveOnMouseWheel: !1,
preventDefaultMouseMove: !0
}
});
var II = "\x00_ec_interaction_mutex";
Ul({
type: "takeGlobalCursor",
event: "globalCursorTaken",
update: "update"
}, function() {}), c(Ap, bg);
var TI = "\x00_ec_dataZoom_roams",
CI = y,
AI = uI.extend({
type: "dataZoom.inside",
init: function() {
this._range
},
render: function(t, e, i) {
AI.superApply(this, "render", arguments), this._range = t.getPercentRange(), f(this.getTargetCoordInfo(),
function(e, n) {
var r = p(e, function(t) {
return Fp(t.model)
});
f(e, function(e) {
var a = e.model,
o = {};
f(["pan", "zoom", "scrollMove"], function(t) {
o[t] = CI(DI[t], this, e, n)
}, this), Bp(i, {
coordId: Fp(a),
allCoordIds: r,
containsPoint: function(t, e, i) {
return a.coordinateSystem.containPoint([e, i])
},
dataZoomId: t.id,
dataZoomModel: t,
getRange: o
})
}, this)
}, this)
},
dispose: function() {
Np(this.api, this.dataZoomModel.id), AI.superApply(this, "dispose", arguments), this._range = null
}
}),
DI = {
zoom: function(t, e, i, n) {
var r = this._range,
a = r.slice(),
o = t.axisModels[0];
if (o) {
var s = kI[e](null, [n.originX, n.originY], o, i, t),
l = (s.signal > 0 ? s.pixelStart + s.pixelLength - s.pixel : s.pixel - s.pixelStart) / s.pixelLength * (a[1] -
a[0]) + a[0],
h = Math.max(1 / n.scale, 0);
a[0] = (a[0] - l) * h + l, a[1] = (a[1] - l) * h + l;
var u = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();
return cI(0, a, [0, 100], 0, u.minSpan, u.maxSpan), this._range = a, r[0] !== a[0] || r[1] !== a[1] ? a : void 0
}
},
pan: Xp(function(t, e, i, n, r, a) {
var o = kI[n]([a.oldX, a.oldY], [a.newX, a.newY], e, r, i);
return o.signal * (t[1] - t[0]) * o.pixel / o.pixelLength
}),
scrollMove: Xp(function(t, e, i, n, r, a) {
var o = kI[n]([0, 0], [a.scrollDelta, a.scrollDelta], e, r, i);
return o.signal * (t[1] - t[0]) * a.scrollDelta
})
},
kI = {
grid: function(t, e, i, n, r) {
var a = i.axis,
o = {},
s = r.model.coordinateSystem.getRect();
return t = t || [0, 0], "x" === a.dim ? (o.pixel = e[0] - t[0], o.pixelLength = s.width, o.pixelStart = s.x, o.signal =
a.inverse ? 1 : -1) : (o.pixel = e[1] - t[1], o.pixelLength = s.height, o.pixelStart = s.y, o.signal = a.inverse ?
-1 : 1), o
},
polar: function(t, e, i, n, r) {
var a = i.axis,
o = {},
s = r.model.coordinateSystem,
l = s.getRadiusAxis().getExtent(),
h = s.getAngleAxis().getExtent();
return t = t ? s.pointToCoord(t) : [0, 0], e = s.pointToCoord(e), "radiusAxis" === i.mainType ? (o.pixel = e[0] -
t[0], o.pixelLength = l[1] - l[0], o.pixelStart = l[0], o.signal = a.inverse ? 1 : -1) : (o.pixel = e[1] - t[1],
o.pixelLength = h[1] - h[0], o.pixelStart = h[0], o.signal = a.inverse ? -1 : 1), o
},
singleAxis: function(t, e, i, n, r) {
var a = i.axis,
o = r.model.coordinateSystem.getRect(),
s = {};
return t = t || [0, 0], "horizontal" === a.orient ? (s.pixel = e[0] - t[0], s.pixelLength = o.width, s.pixelStart =
o.x, s.signal = a.inverse ? 1 : -1) : (s.pixel = e[1] - t[1], s.pixelLength = o.height, s.pixelStart = o.y, s.signal =
a.inverse ? -1 : 1), s
}
};
jl({
getTargetSeries: function(t) {
var e = N();
return t.eachComponent("dataZoom", function(t) {
t.eachTargetAxis(function(t, i, n) {
var r = n.getAxisProxy(t.name, i);
f(r.getTargetSeriesModels(), function(t) {
e.set(t.uid, t)
})
})
}), e
},
modifyOutputEnd: !0,
overallReset: function(t, e) {
t.eachComponent("dataZoom", function(t) {
t.eachTargetAxis(function(t, i, n) {
n.getAxisProxy(t.name, i).reset(n, e)
}), t.eachTargetAxis(function(t, i, n) {
n.getAxisProxy(t.name, i).filterData(n, e)
})
}), t.eachComponent("dataZoom", function(t) {
var e = t.findRepresentativeAxisProxy(),
i = e.getDataPercentWindow(),
n = e.getDataValueWindow();
t.setRawRange({
start: i[0],
end: i[1],
startValue: n[0],
endValue: n[1]
}, !0)
})
}
}), Ul("dataZoom", function(t, e) {
var i = gp(y(e.eachComponent, e, "dataZoom"), nI, function(t, e) {
return t.get(e.axisIndex)
}),
n = [];
e.eachComponent({
mainType: "dataZoom",
query: t
}, function(t) {
n.push.apply(n, i(t).nodes)
}), f(n, function(e) {
e.setRawRange({
start: t.start,
end: t.end,
startValue: t.startValue,
endValue: t.endValue
})
})
});
var PI, LI = "urn:schemas-microsoft-com:vml",
OI = "undefined" == typeof window ? null : window,
zI = !1,
EI = OI && OI.document;
if (EI && !tg.canvasSupported) try {
!EI.namespaces.zrvml && EI.namespaces.add("zrvml", LI), PI = function(t) {
return EI.createElement("')
}
} catch (RI) {
PI = function(t) {
return EI.createElement("<" + t + ' xmlns="' + LI + '" class="zrvml">')
}
}
var BI = qm.CMD,
NI = Math.round,
FI = Math.sqrt,
VI = Math.abs,
WI = Math.cos,
GI = Math.sin,
HI = Math.max;
if (!tg.canvasSupported) {
var ZI = ",",
XI = "progid:DXImageTransform.Microsoft",
YI = 21600,
jI = YI / 2,
qI = 1e5,
UI = 1e3,
$I = function(t) {
t.style.cssText = "position:absolute;left:0;top:0;width:1px;height:1px;", t.coordsize = YI + "," + YI, t.coordorigin =
"0,0"
},
KI = function(t) {
return String(t).replace(/&/g, "&").replace(/"/g, """)
},
QI = function(t, e, i) {
return "rgb(" + [t, e, i].join(",") + ")"
},
JI = function(t, e) {
e && t && e.parentNode !== t && t.appendChild(e)
},
tT = function(t, e) {
e && t && e.parentNode === t && t.removeChild(e)
},
eT = function(t, e, i) {
return (parseFloat(t) || 0) * qI + (parseFloat(e) || 0) * UI + i
},
iT = function(t, e) {
return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t
},
nT = function(t, e, i) {
var n = He(e);
i = +i, isNaN(i) && (i = 1), n && (t.color = QI(n[0], n[1], n[2]), t.opacity = i * n[3])
},
rT = function(t) {
var e = He(t);
return [QI(e[0], e[1], e[2]), e[3]]
},
aT = function(t, e, i) {
var n = e.fill;
if (null != n)
if (n instanceof Ey) {
var r, a = 0,
o = [0, 0],
s = 0,
l = 1,
h = i.getBoundingRect(),
u = h.width,
c = h.height;
if ("linear" === n.type) {
r = "gradient";
var d = i.transform,
f = [n.x * u, n.y * c],
p = [n.x2 * u, n.y2 * c];
d && (ae(f, f, d), ae(p, p, d));
var g = p[0] - f[0],
v = p[1] - f[1];
a = 180 * Math.atan2(g, v) / Math.PI, 0 > a && (a += 360), 1e-6 > a && (a = 0)
} else {
r = "gradientradial";
var f = [n.x * u, n.y * c],
d = i.transform,
m = i.scale,
y = u,
x = c;
o = [(f[0] - h.x) / y, (f[1] - h.y) / x], d && ae(f, f, d), y /= m[0] * YI, x /= m[1] * YI;
var _ = HI(y, x);
s = 0 / _, l = 2 * n.r / _ - s
}
var w = n.colorStops.slice();
w.sort(function(t, e) {
return t.offset - e.offset
});
for (var b = w.length, S = [], M = [], I = 0; b > I; I++) {
var T = w[I],
C = rT(T.color);
M.push(T.offset * l + s + " " + C[0]), (0 === I || I === b - 1) && S.push(C)
}
if (b >= 2) {
var A = S[0][0],
D = S[1][0],
k = S[0][1] * e.opacity,
P = S[1][1] * e.opacity;
t.type = r, t.method = "none", t.focus = "100%", t.angle = a, t.color = A, t.color2 = D, t.colors = M.join(","),
t.opacity = P, t.opacity2 = k
}
"radial" === r && (t.focusposition = o.join(","))
} else nT(t, n, e.opacity)
},
oT = function(t, e) {
null != e.lineDash && (t.dashstyle = e.lineDash.join(" ")), null == e.stroke || e.stroke instanceof Ey || nT(t, e.stroke,
e.opacity)
},
sT = function(t, e, i, n) {
var r = "fill" == e,
a = t.getElementsByTagName(e)[0];
null != i[e] && "none" !== i[e] && (r || !r && i.lineWidth) ? (t[r ? "filled" : "stroked"] = "true", i[e] instanceof Ey &&
tT(t, a), a || (a = Yp(e)), r ? aT(a, i, n) : oT(a, i), JI(t, a)) : (t[r ? "filled" : "stroked"] = "false", tT(t,
a))
},
lT = [
[],
[],
[]
],
hT = function(t, e) {
var i, n, r, a, o, s, l = BI.M,
h = BI.C,
u = BI.L,
c = BI.A,
d = BI.Q,
f = [],
p = t.data,
g = t.len();
for (a = 0; g > a;) {
switch (r = p[a++], n = "", i = 0, r) {
case l:
n = " m ", i = 1, o = p[a++], s = p[a++], lT[0][0] = o, lT[0][1] = s;
break;
case u:
n = " l ", i = 1, o = p[a++], s = p[a++], lT[0][0] = o, lT[0][1] = s;
break;
case d:
case h:
n = " c ", i = 3;
var v, m, y = p[a++],
x = p[a++],
_ = p[a++],
w = p[a++];
r === d ? (v = _, m = w, _ = (_ + 2 * y) / 3, w = (w + 2 * x) / 3, y = (o + 2 * y) / 3, x = (s + 2 * x) / 3) :
(v = p[a++], m = p[a++]), lT[0][0] = y, lT[0][1] = x, lT[1][0] = _, lT[1][1] = w, lT[2][0] = v, lT[2][1] = m,
o = v, s = m;
break;
case c:
var b = 0,
S = 0,
M = 1,
I = 1,
T = 0;
e && (b = e[4], S = e[5], M = FI(e[0] * e[0] + e[1] * e[1]), I = FI(e[2] * e[2] + e[3] * e[3]), T = Math.atan2(
-e[1] / I, e[0] / M));
var C = p[a++],
A = p[a++],
D = p[a++],
k = p[a++],
P = p[a++] + T,
L = p[a++] + P + T;
a++;
var O = p[a++],
z = C + WI(P) * D,
E = A + GI(P) * k,
y = C + WI(L) * D,
x = A + GI(L) * k,
R = O ? " wa " : " at ";
Math.abs(z - y) < 1e-4 && (Math.abs(L - P) > .01 ? O && (z += 270 / YI) : Math.abs(E - A) < 1e-4 ? O && C > z ||
!O && z > C ? x -= 270 / YI : x += 270 / YI : O && A > E || !O && E > A ? y += 270 / YI : y -= 270 / YI), f.push(
R, NI(((C - D) * M + b) * YI - jI), ZI, NI(((A - k) * I + S) * YI - jI), ZI, NI(((C + D) * M + b) * YI - jI),
ZI, NI(((A + k) * I + S) * YI - jI), ZI, NI((z * M + b) * YI - jI), ZI, NI((E * I + S) * YI - jI), ZI, NI((y *
M + b) * YI - jI), ZI, NI((x * I + S) * YI - jI)), o = y, s = x;
break;
case BI.R:
var B = lT[0],
N = lT[1];
B[0] = p[a++], B[1] = p[a++], N[0] = B[0] + p[a++], N[1] = B[1] + p[a++], e && (ae(B, B, e), ae(N, N, e)), B[0] =
NI(B[0] * YI - jI), N[0] = NI(N[0] * YI - jI), B[1] = NI(B[1] * YI - jI), N[1] = NI(N[1] * YI - jI), f.push(
" m ", B[0], ZI, B[1], " l ", N[0], ZI, B[1], " l ", N[0], ZI, N[1], " l ", B[0], ZI, N[1]);
break;
case BI.Z:
f.push(" x ")
}
if (i > 0) {
f.push(n);
for (var F = 0; i > F; F++) {
var V = lT[F];
e && ae(V, V, e), f.push(NI(V[0] * YI - jI), ZI, NI(V[1] * YI - jI), i - 1 > F ? ZI : "")
}
}
}
return f.join("")
};
Fr.prototype.brushVML = function(t) {
var e = this.style,
i = this._vmlEl;
i || (i = Yp("shape"), $I(i), this._vmlEl = i), sT(i, "fill", e, this), sT(i, "stroke", e, this);
var n = this.transform,
r = null != n,
a = i.getElementsByTagName("stroke")[0];
if (a) {
var o = e.lineWidth;
if (r && !e.strokeNoScale) {
var s = n[0] * n[3] - n[1] * n[2];
o *= FI(VI(s))
}
a.weight = o + "px"
}
var l = this.path || (this.path = new qm);
this.__dirtyPath && (l.beginPath(), this.buildPath(l, this.shape), l.toStatic(), this.__dirtyPath = !1), i.path =
hT(l, this.transform), i.style.zIndex = eT(this.zlevel, this.z, this.z2), JI(t, i), null != e.text ? this.drawRectText(
t, this.getBoundingRect()) : this.removeRectText(t)
}, Fr.prototype.onRemove = function(t) {
tT(t, this._vmlEl), this.removeRectText(t)
}, Fr.prototype.onAdd = function(t) {
JI(t, this._vmlEl), this.appendRectText(t)
};
var uT = function(t) {
return "object" == typeof t && t.tagName && "IMG" === t.tagName.toUpperCase()
};
yn.prototype.brushVML = function(t) {
var e, i, n = this.style,
r = n.image;
if (uT(r)) {
var a = r.src;
if (a === this._imageSrc) e = this._imageWidth, i = this._imageHeight;
else {
var o = r.runtimeStyle,
s = o.width,
l = o.height;
o.width = "auto", o.height = "auto", e = r.width, i = r.height, o.width = s, o.height = l, this._imageSrc = a,
this._imageWidth = e, this._imageHeight = i
}
r = a
} else r === this._imageSrc && (e = this._imageWidth, i = this._imageHeight);
if (r) {
var h = n.x || 0,
u = n.y || 0,
c = n.width,
d = n.height,
f = n.sWidth,
p = n.sHeight,
g = n.sx || 0,
v = n.sy || 0,
m = f && p,
y = this._vmlEl;
y || (y = EI.createElement("div"), $I(y), this._vmlEl = y);
var x, _ = y.style,
w = !1,
b = 1,
S = 1;
if (this.transform && (x = this.transform, b = FI(x[0] * x[0] + x[1] * x[1]), S = FI(x[2] * x[2] + x[3] * x[3]),
w = x[1] || x[2]), w) {
var M = [h, u],
I = [h + c, u],
T = [h, u + d],
C = [h + c, u + d];
ae(M, M, x), ae(I, I, x), ae(T, T, x), ae(C, C, x);
var A = HI(M[0], I[0], T[0], C[0]),
D = HI(M[1], I[1], T[1], C[1]),
k = [];
k.push("M11=", x[0] / b, ZI, "M12=", x[2] / S, ZI, "M21=", x[1] / b, ZI, "M22=", x[3] / S, ZI, "Dx=", NI(h * b +
x[4]), ZI, "Dy=", NI(u * S + x[5])), _.padding = "0 " + NI(A) + "px " + NI(D) + "px 0", _.filter = XI +
".Matrix(" + k.join("") + ", SizingMethod=clip)"
} else x && (h = h * b + x[4], u = u * S + x[5]), _.filter = "", _.left = NI(h) + "px", _.top = NI(u) + "px";
var P = this._imageEl,
L = this._cropEl;
P || (P = EI.createElement("div"), this._imageEl = P);
var O = P.style;
if (m) {
if (e && i) O.width = NI(b * e * c / f) + "px", O.height = NI(S * i * d / p) + "px";
else {
var z = new Image,
E = this;
z.onload = function() {
z.onload = null, e = z.width, i = z.height, O.width = NI(b * e * c / f) + "px", O.height = NI(S * i * d / p) +
"px", E._imageWidth = e, E._imageHeight = i, E._imageSrc = r
}, z.src = r
}
L || (L = EI.createElement("div"), L.style.overflow = "hidden", this._cropEl = L);
var R = L.style;
R.width = NI((c + g * c / f) * b), R.height = NI((d + v * d / p) * S), R.filter = XI + ".Matrix(Dx=" + -g * c /
f * b + ",Dy=" + -v * d / p * S + ")", L.parentNode || y.appendChild(L), P.parentNode != L && L.appendChild(P)
} else O.width = NI(b * c) + "px", O.height = NI(S * d) + "px", y.appendChild(P), L && L.parentNode && (y.removeChild(
L), this._cropEl = null);
var B = "",
N = n.opacity;
1 > N && (B += ".Alpha(opacity=" + NI(100 * N) + ") "), B += XI + ".AlphaImageLoader(src=" + r +
", SizingMethod=scale)", O.filter = B, y.style.zIndex = eT(this.zlevel, this.z, this.z2), JI(t, y), null != n.text &&
this.drawRectText(t, this.getBoundingRect())
}
}, yn.prototype.onRemove = function(t) {
tT(t, this._vmlEl), this._vmlEl = null, this._cropEl = null, this._imageEl = null, this.removeRectText(t)
}, yn.prototype.onAdd = function(t) {
JI(t, this._vmlEl), this.appendRectText(t)
};
var cT, dT = "normal",
fT = {},
pT = 0,
gT = 100,
vT = document.createElement("div"),
mT = function(t) {
var e = fT[t];
if (!e) {
pT > gT && (pT = 0, fT = {});
var i, n = vT.style;
try {
n.font = t, i = n.fontFamily.split(",")[0]
} catch (r) {}
e = {
style: n.fontStyle || dT,
variant: n.fontVariant || dT,
weight: n.fontWeight || dT,
size: 0 | parseFloat(n.fontSize || 12),
family: i || "Microsoft YaHei"
}, fT[t] = e, pT++
}
return e
};
Oi("measureText", function(t, e) {
var i = EI;
cT || (cT = i.createElement("div"), cT.style.cssText =
"position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;", EI.body.appendChild(cT)
);
try {
cT.style.font = e
} catch (n) {}
return cT.innerHTML = "", cT.appendChild(i.createTextNode(t)), {
width: cT.offsetWidth
}
});
for (var yT = new gi, xT = function(t, e, i, n) {
var r = this.style;
this.__dirty && Qi(r, !0);
var a = r.text;
if (null != a && (a += ""), a) {
if (r.rich) {
var o = qi(a, r);
a = [];
for (var s = 0; s < o.lines.length; s++) {
for (var l = o.lines[s].tokens, h = [], u = 0; u < l.length; u++) h.push(l[u].text);
a.push(h.join(""))
}
a = a.join("\n")
}
var c, d, f = r.textAlign,
p = r.textVerticalAlign,
g = mT(r.font),
v = g.style + " " + g.variant + " " + g.weight + " " + g.size + 'px "' + g.family + '"';
i = i || Ei(a, v, f, p);
var m = this.transform;
if (m && !n && (yT.copy(e), yT.applyTransform(m), e = yT), n) c = e.x, d = e.y;
else {
var y = r.textPosition,
x = r.textDistance;
if (y instanceof Array) c = e.x + iT(y[0], e.width), d = e.y + iT(y[1], e.height), f = f || "left";
else {
var _ = Vi(y, e, x);
c = _.x, d = _.y, f = f || _.textAlign, p = p || _.textVerticalAlign
}
}
c = Ni(c, i.width, f), d = Fi(d, i.height, p), d += i.height / 2;
var w, b, S, M = Yp,
I = this._textVmlEl;
I ? (S = I.firstChild, w = S.nextSibling, b = w.nextSibling) : (I = M("line"), w = M("path"), b = M("textpath"),
S = M("skew"), b.style["v-text-align"] = "left", $I(I), w.textpathok = !0, b.on = !0, I.from = "0 0", I.to =
"1000 0.05", JI(I, S), JI(I, w), JI(I, b), this._textVmlEl = I);
var T = [c, d],
C = I.style;
m && n ? (ae(T, T, m), S.on = !0, S.matrix = m[0].toFixed(3) + ZI + m[2].toFixed(3) + ZI + m[1].toFixed(3) + ZI +
m[3].toFixed(3) + ",0,0", S.offset = (NI(T[0]) || 0) + "," + (NI(T[1]) || 0), S.origin = "0 0", C.left = "0px",
C.top = "0px") : (S.on = !1, C.left = NI(c) + "px", C.top = NI(d) + "px"), b.string = KI(a);
try {
b.style.font = v
} catch (A) {}
sT(I, "fill", {
fill: r.textFill,
opacity: r.opacity
}, this), sT(I, "stroke", {
stroke: r.textStroke,
opacity: r.opacity,
lineDash: r.lineDash
}, this), I.style.zIndex = eT(this.zlevel, this.z, this.z2), JI(t, I)
}
}, _T = function(t) {
tT(t, this._textVmlEl), this._textVmlEl = null
}, wT = function(t) {
JI(t, this._textVmlEl)
}, bT = [Ov, mn, yn, Fr, xy], ST = 0; ST < bT.length; ST++) {
var MT = bT[ST].prototype;
MT.drawRectText = xT, MT.removeRectText = _T, MT.appendRectText = wT
}
xy.prototype.brushVML = function(t) {
var e = this.style;
null != e.text ? this.drawRectText(t, {
x: e.x || 0,
y: e.y || 0,
width: 0,
height: 0
}, this.getBoundingRect(), !0) : this.removeRectText(t)
}, xy.prototype.onRemove = function(t) {
this.removeRectText(t)
}, xy.prototype.onAdd = function(t) {
this.appendRectText(t)
}
}
Up.prototype = {
constructor: Up,
getType: function() {
return "vml"
},
getViewportRoot: function() {
return this._vmlViewport
},
getViewportRootOffset: function() {
var t = this.getViewportRoot();
return t ? {
offsetLeft: t.offsetLeft || 0,
offsetTop: t.offsetTop || 0
} : void 0
},
refresh: function() {
var t = this.storage.getDisplayList(!0, !0);
this._paintList(t)
},
_paintList: function(t) {
for (var e = this._vmlRoot, i = 0; i < t.length; i++) {
var n = t[i];
n.invisible || n.ignore ? (n.__alreadyNotVisible || n.onRemove(e), n.__alreadyNotVisible = !0) : (n.__alreadyNotVisible &&
n.onAdd(e), n.__alreadyNotVisible = !1, n.__dirty && (n.beforeBrush && n.beforeBrush(), (n.brushVML || n.brush)
.call(n, e), n.afterBrush && n.afterBrush())), n.__dirty = !1
}
this._firstPaint && (this._vmlViewport.appendChild(e), this._firstPaint = !1)
},
resize: function(t, e) {
var t = null == t ? this._getWidth() : t,
e = null == e ? this._getHeight() : e;
if (this._width != t || this._height != e) {
this._width = t, this._height = e;
var i = this._vmlViewport.style;
i.width = t + "px", i.height = e + "px"
}
},
dispose: function() {
this.root.innerHTML = "", this._vmlRoot = this._vmlViewport = this.storage = null
},
getWidth: function() {
return this._width
},
getHeight: function() {
return this._height
},
clear: function() {
this._vmlViewport && this.root.removeChild(this._vmlViewport)
},
_getWidth: function() {
var t = this.root,
e = t.currentStyle;
return (t.clientWidth || qp(e.width)) - qp(e.paddingLeft) - qp(e.paddingRight) | 0
},
_getHeight: function() {
var t = this.root,
e = t.currentStyle;
return (t.clientHeight || qp(e.height)) - qp(e.paddingTop) - qp(e.paddingBottom) | 0
}
}, f(["getLayer", "insertLayer", "eachLayer", "eachBuiltinLayer", "eachOtherLayer", "getLayers", "modLayer",
"delLayer", "clearLayer", "toDataURL", "pathToImage"
], function(t) {
Up.prototype[t] = $p(t)
}), Rn("vml", Up), t.version = $_, t.dependencies = K_, t.PRIORITY = ow, t.init = Fl, t.connect = Vl, t.disConnect =
Wl, t.disconnect = Tw, t.dispose = Gl, t.getInstanceByDom = Hl, t.getInstanceById = Zl, t.registerTheme = Xl, t.registerPreprocessor =
Yl, t.registerProcessor = jl, t.registerPostUpdate = ql, t.registerAction = Ul, t.registerCoordinateSystem = $l, t.getCoordinateSystemDimensions =
Kl, t.registerLayout = Ql, t.registerVisual = Jl, t.registerLoading = eh, t.extendComponentModel = ih, t.extendComponentView =
nh, t.extendSeriesModel = rh, t.extendChartView = ah, t.setCanvasCreator = oh, t.registerMap = sh, t.getMap = lh, t.dataTool =
Cw, t.zrender = im, t.number = nx, t.format = cx, t.throttle = Gs, t.helper = Tb, t.matrix = kg, t.vector = _g, t.color =
Ug, t.parseGeoJSON = Ab, t.parseGeoJson = Lb, t.util = Ob, t.graphic = zb, t.List = Bw, t.Model = Wa, t.Axis = Pb, t
.env = tg
});
layui.define('echartsTheme', function(exports) {
echarts.registerTheme('walden', layui.echartsTheme);
exports('echarts', echarts);
});