!(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, e) {
'createCanvas' === t && (nw = null), (ew[t] = e);
}
function i(t) {
if (null == t || 'object' != typeof t) return t;
var e = t,
n = Y_.call(t);
if ('[object Array]' === n) {
if (!O(t)) {
e = [];
for (var o = 0, a = t.length; o < a; o++) e[o] = i(t[o]);
}
} else if (j_[n]) {
if (!O(t)) {
var r = t.constructor;
if (t.constructor.from) e = r.from(t);
else {
e = new r(t.length);
for (var o = 0, a = t.length; o < a; o++) e[o] = i(t[o]);
}
}
} else if (!X_[n] && !O(t) && !M(t)) {
e = {};
for (var s in t) t.hasOwnProperty(s) && (e[s] = i(t[s]));
}
return e;
}
function n(t, e, o) {
if (!w(e) || !w(t)) return o ? i(e) : t;
for (var a in e)
if (e.hasOwnProperty(a)) {
var r = t[a],
s = e[a];
!w(s) ||
!w(r) ||
y(s) ||
y(r) ||
M(s) ||
M(r) ||
b(s) ||
b(r) ||
O(s) ||
O(r)
? (!o && a in t) || (t[a] = i(e[a], !0))
: n(r, s, o);
}
return t;
}
function o(t, e) {
for (var i = t[0], o = 1, a = t.length; o < a; o++) i = n(i, t[o], e);
return i;
}
function a(t, e) {
for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]);
return t;
}
function r(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 s() {
return nw || (nw = iw().getContext('2d')), nw;
}
function l(t, e) {
if (t) {
if (t.indexOf) return t.indexOf(e);
for (var i = 0, n = t.length; i < n; 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 o in n) t.prototype[o] = n[o];
(t.prototype.constructor = t), (t.superClass = e);
}
function h(t, e, i) {
r(
(t = 'prototype' in t ? t.prototype : t),
(e = 'prototype' in e ? e.prototype : e),
i,
);
}
function c(t) {
if (t) return 'string' != typeof t && 'number' == typeof t.length;
}
function d(t, e, i) {
if (t && e)
if (t.forEach && t.forEach === K_) t.forEach(e, i);
else if (t.length === +t.length)
for (var n = 0, o = t.length; n < o; 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 f(t, e, i) {
if (t && e) {
if (t.map && t.map === Q_) return t.map(e, i);
for (var n = [], o = 0, a = t.length; o < a; o++)
n.push(e.call(i, t[o], o, t));
return n;
}
}
function p(t, e, i, n) {
if (t && e) {
if (t.reduce && t.reduce === tw) return t.reduce(e, i, n);
for (var o = 0, a = t.length; o < a; o++) i = e.call(n, i, t[o], o, t);
return i;
}
}
function g(t, e, i) {
if (t && e) {
if (t.filter && t.filter === $_) return t.filter(e, i);
for (var n = [], o = 0, a = t.length; o < a; o++)
e.call(i, t[o], o, t) && n.push(t[o]);
return n;
}
}
function m(t, e) {
var i = J_.call(arguments, 2);
return function () {
return t.apply(e, i.concat(J_.call(arguments)));
};
}
function v(t) {
var e = J_.call(arguments, 1);
return function () {
return t.apply(this, e.concat(J_.call(arguments)));
};
}
function y(t) {
return '[object Array]' === Y_.call(t);
}
function x(t) {
return 'function' == typeof t;
}
function _(t) {
return '[object String]' === Y_.call(t);
}
function w(t) {
var e = typeof t;
return 'function' === e || (!!t && 'object' === e);
}
function b(t) {
return !!X_[Y_.call(t)];
}
function S(t) {
return !!j_[Y_.call(t)];
}
function M(t) {
return (
'object' == typeof t &&
'number' == typeof t.nodeType &&
'object' == typeof t.ownerDocument
);
}
function I(t) {
return t !== t;
}
function T(t) {
for (var e = 0, i = arguments.length; e < i; e++)
if (null != arguments[e]) return arguments[e];
}
function A(t, e) {
return null != t ? t : e;
}
function D(t, e, i) {
return null != t ? t : null != e ? e : i;
}
function C() {
return Function.call.apply(J_, 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 k(t, e) {
if (!t) throw new Error(e);
}
function P(t) {
return null == t
? null
: 'function' == typeof t.trim
? t.trim()
: t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
}
function N(t) {
t[ow] = !0;
}
function O(t) {
return t[ow];
}
function E(t) {
function e(t, e) {
i ? n.set(t, e) : n.set(e, t);
}
var i = y(t);
this.data = {};
var n = this;
t instanceof E ? t.each(e) : t && d(t, e);
}
function R(t) {
return new E(t);
}
function z(t, e) {
for (
var i = new t.constructor(t.length + e.length), n = 0;
n < t.length;
n++
)
i[n] = t[n];
var o = t.length;
for (n = 0; n < e.length; n++) i[n + o] = e[n];
return i;
}
function B() {}
function V(t, e) {
var i = new rw(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 F(t) {
var e = new rw(2);
return (e[0] = t[0]), (e[1] = t[1]), e;
}
function W(t, e, i) {
return (t[0] = e), (t[1] = i), t;
}
function H(t, e, i) {
return (t[0] = e[0] + i[0]), (t[1] = e[1] + i[1]), t;
}
function Z(t, e, i, n) {
return (t[0] = e[0] + i[0] * n), (t[1] = e[1] + i[1] * n), t;
}
function U(t, e, i) {
return (t[0] = e[0] - i[0]), (t[1] = e[1] - i[1]), t;
}
function X(t) {
return Math.sqrt(j(t));
}
function j(t) {
return t[0] * t[0] + t[1] * t[1];
}
function Y(t, e, i) {
return (t[0] = e[0] * i), (t[1] = e[1] * i), t;
}
function q(t, e) {
var i = X(e);
return (
0 === i
? ((t[0] = 0), (t[1] = 0))
: ((t[0] = e[0] / i), (t[1] = e[1] / i)),
t
);
}
function K(t, e) {
return Math.sqrt(
(t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]),
);
}
function $(t, e) {
return (t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]);
}
function J(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 Q(t, e, i) {
var n = e[0],
o = e[1];
return (
(t[0] = i[0] * n + i[2] * o + i[4]),
(t[1] = i[1] * n + i[3] * o + i[5]),
t
);
}
function tt(t, e, i) {
return (t[0] = Math.min(e[0], i[0])), (t[1] = Math.min(e[1], i[1])), t;
}
function et(t, e, i) {
return (t[0] = Math.max(e[0], i[0])), (t[1] = Math.max(e[1], i[1])), t;
}
function it() {
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 nt(t, e) {
return { target: t, topTarget: e && e.topTarget };
}
function ot(t, e) {
var i = t._$eventProcessor;
return null != e && i && i.normalizeQuery && (e = i.normalizeQuery(e)), e;
}
function at(t, e, i, n, o, a) {
var r = t._$handlers;
if (('function' == typeof i && ((o = n), (n = i), (i = null)), !n || !e))
return t;
(i = ot(t, i)), r[e] || (r[e] = []);
for (var s = 0; s < r[e].length; s++) if (r[e][s].h === n) return t;
var l = {
h: n,
one: a,
query: i,
ctx: o || t,
callAtLast: n.zrEventfulCallAtLast,
},
u = r[e].length - 1,
h = r[e][u];
return h && h.callAtLast ? r[e].splice(u, 0, l) : r[e].push(l), t;
}
function rt(t) {
return t.getBoundingClientRect
? t.getBoundingClientRect()
: { left: 0, top: 0 };
}
function st(t, e, i, n) {
return (
(i = i || {}),
n || !U_.canvasSupported
? lt(t, e, i)
: U_.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))
: lt(t, e, i),
i
);
}
function lt(t, e, i) {
var n = rt(t);
(i.zrX = e.clientX - n.left), (i.zrY = e.clientY - n.top);
}
function ut(t, e, i) {
if (null != (e = e || window.event).zrX) return e;
var n = e.type;
if (n && n.indexOf('touch') >= 0) {
var o = 'touchend' !== n ? e.targetTouches[0] : e.changedTouches[0];
o && st(t, o, e, i);
} else st(t, e, e, i), (e.zrDelta = e.wheelDelta ? e.wheelDelta / 120 : -(e.detail || 0) / 3);
var a = e.button;
return (
null == e.which &&
void 0 !== a &&
gw.test(e.type) &&
(e.which = 1 & a ? 1 : 2 & a ? 3 : 4 & a ? 2 : 0),
e
);
}
function ht(t, e, i) {
pw ? t.addEventListener(e, i) : t.attachEvent('on' + e, i);
}
function ct(t, e, i) {
pw ? t.removeEventListener(e, i) : t.detachEvent('on' + e, i);
}
function dt(t) {
return 2 === t.which || 3 === t.which;
}
function ft(t) {
var e = t[1][0] - t[0][0],
i = t[1][1] - t[0][1];
return Math.sqrt(e * e + i * i);
}
function pt(t) {
return [(t[0][0] + t[1][0]) / 2, (t[0][1] + t[1][1]) / 2];
}
function gt(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: mt,
};
}
function mt(t) {
mw(this.event);
}
function vt() {}
function yt(t, e, i) {
if (t[t.rectHover ? 'rectContain' : 'contain'](e, i)) {
for (var n, o = t; o; ) {
if (o.clipPath && !o.clipPath.contain(e, i)) return !1;
o.silent && (n = !0), (o = o.parent);
}
return !n || xw;
}
return !1;
}
function xt() {
var t = new bw(6);
return _t(t), t;
}
function _t(t) {
return (
(t[0] = 1), (t[1] = 0), (t[2] = 0), (t[3] = 1), (t[4] = 0), (t[5] = 0), t
);
}
function wt(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 bt(t, e, i) {
var n = e[0] * i[0] + e[2] * i[1],
o = e[1] * i[0] + e[3] * i[1],
a = e[0] * i[2] + e[2] * i[3],
r = 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] = o), (t[2] = a), (t[3] = r), (t[4] = s), (t[5] = l), t
);
}
function St(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 Mt(t, e, i) {
var n = e[0],
o = e[2],
a = e[4],
r = e[1],
s = e[3],
l = e[5],
u = Math.sin(i),
h = Math.cos(i);
return (
(t[0] = n * h + r * u),
(t[1] = -n * u + r * h),
(t[2] = o * h + s * u),
(t[3] = -o * u + h * s),
(t[4] = h * a + u * l),
(t[5] = h * l - u * a),
t
);
}
function It(t, e, i) {
var n = i[0],
o = i[1];
return (
(t[0] = e[0] * n),
(t[1] = e[1] * o),
(t[2] = e[2] * n),
(t[3] = e[3] * o),
(t[4] = e[4] * n),
(t[5] = e[5] * o),
t
);
}
function Tt(t, e) {
var i = e[0],
n = e[2],
o = e[4],
a = e[1],
r = e[3],
s = e[5],
l = i * r - a * n;
return l
? ((l = 1 / l),
(t[0] = r * l),
(t[1] = -a * l),
(t[2] = -n * l),
(t[3] = i * l),
(t[4] = (n * s - r * o) * l),
(t[5] = (a * o - i * s) * l),
t)
: null;
}
function At(t) {
var e = xt();
return wt(e, t), e;
}
function Dt(t) {
return t > Iw || t < -Iw;
}
function Ct(t) {
(this._target = t.target),
(this._life = t.life || 1e3),
(this._delay = t.delay || 0),
(this._initialized = !1),
(this.loop = null != t.loop && 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 Lt(t) {
return (t = Math.round(t)) < 0 ? 0 : t > 255 ? 255 : t;
}
function kt(t) {
return (t = Math.round(t)) < 0 ? 0 : t > 360 ? 360 : t;
}
function Pt(t) {
return t < 0 ? 0 : t > 1 ? 1 : t;
}
function Nt(t) {
return Lt(
t.length && '%' === t.charAt(t.length - 1)
? (parseFloat(t) / 100) * 255
: parseInt(t, 10),
);
}
function Ot(t) {
return Pt(
t.length && '%' === t.charAt(t.length - 1)
? parseFloat(t) / 100
: parseFloat(t),
);
}
function Et(t, e, i) {
return (
i < 0 ? (i += 1) : i > 1 && (i -= 1),
6 * i < 1
? t + (e - t) * i * 6
: 2 * i < 1
? e
: 3 * i < 2
? t + (e - t) * (2 / 3 - i) * 6
: t
);
}
function Rt(t, e, i) {
return t + (e - t) * i;
}
function zt(t, e, i, n, o) {
return (t[0] = e), (t[1] = i), (t[2] = n), (t[3] = o), t;
}
function Bt(t, e) {
return (t[0] = e[0]), (t[1] = e[1]), (t[2] = e[2]), (t[3] = e[3]), t;
}
function Vt(t, e) {
Vw && Bt(Vw, e), (Vw = Bw.put(t, Vw || e.slice()));
}
function Gt(t, e) {
if (t) {
e = e || [];
var i = Bw.get(t);
if (i) return Bt(e, i);
var n = (t += '').replace(/ /g, '').toLowerCase();
if (n in zw) return Bt(e, zw[n]), Vt(t, e), e;
if ('#' !== n.charAt(0)) {
var o = n.indexOf('('),
a = n.indexOf(')');
if (-1 !== o && a + 1 === n.length) {
var r = n.substr(0, o),
s = n.substr(o + 1, a - (o + 1)).split(','),
l = 1;
switch (r) {
case 'rgba':
if (4 !== s.length) return void zt(e, 0, 0, 0, 1);
l = Ot(s.pop());
case 'rgb':
return 3 !== s.length
? void zt(e, 0, 0, 0, 1)
: (zt(e, Nt(s[0]), Nt(s[1]), Nt(s[2]), l), Vt(t, e), e);
case 'hsla':
return 4 !== s.length
? void zt(e, 0, 0, 0, 1)
: ((s[3] = Ot(s[3])), Ft(s, e), Vt(t, e), e);
case 'hsl':
return 3 !== s.length
? void zt(e, 0, 0, 0, 1)
: (Ft(s, e), Vt(t, e), e);
default:
return;
}
}
zt(e, 0, 0, 0, 1);
} else {
if (4 === n.length)
return (u = parseInt(n.substr(1), 16)) >= 0 && u <= 4095
? (zt(
e,
((3840 & u) >> 4) | ((3840 & u) >> 8),
(240 & u) | ((240 & u) >> 4),
(15 & u) | ((15 & u) << 4),
1,
),
Vt(t, e),
e)
: void zt(e, 0, 0, 0, 1);
if (7 === n.length) {
var u = parseInt(n.substr(1), 16);
return u >= 0 && u <= 16777215
? (zt(e, (16711680 & u) >> 16, (65280 & u) >> 8, 255 & u, 1),
Vt(t, e),
e)
: void zt(e, 0, 0, 0, 1);
}
}
}
}
function Ft(t, e) {
var i = (((parseFloat(t[0]) % 360) + 360) % 360) / 360,
n = Ot(t[1]),
o = Ot(t[2]),
a = o <= 0.5 ? o * (n + 1) : o + n - o * n,
r = 2 * o - a;
return (
(e = e || []),
zt(
e,
Lt(255 * Et(r, a, i + 1 / 3)),
Lt(255 * Et(r, a, i)),
Lt(255 * Et(r, a, i - 1 / 3)),
1,
),
4 === t.length && (e[3] = t[3]),
e
);
}
function Wt(t) {
if (t) {
var e,
i,
n = t[0] / 255,
o = t[1] / 255,
a = t[2] / 255,
r = Math.min(n, o, a),
s = Math.max(n, o, a),
l = s - r,
u = (s + r) / 2;
if (0 === l) (e = 0), (i = 0);
else {
i = u < 0.5 ? l / (s + r) : l / (2 - s - r);
var h = ((s - n) / 6 + l / 2) / l,
c = ((s - o) / 6 + l / 2) / l,
d = ((s - a) / 6 + l / 2) / l;
n === s
? (e = d - c)
: o === s
? (e = 1 / 3 + h - d)
: a === s && (e = 2 / 3 + c - h),
e < 0 && (e += 1),
e > 1 && (e -= 1);
}
var f = [360 * e, i, u];
return null != t[3] && f.push(t[3]), f;
}
}
function Ht(t, e) {
var i = Gt(t);
if (i) {
for (var n = 0; n < 3; n++)
(i[n] = e < 0 ? (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 qt(i, 4 === i.length ? 'rgba' : 'rgb');
}
}
function Zt(t) {
var e = Gt(t);
if (e)
return ((1 << 24) + (e[0] << 16) + (e[1] << 8) + +e[2])
.toString(16)
.slice(1);
}
function Ut(t, e, i) {
if (e && e.length && t >= 0 && t <= 1) {
i = i || [];
var n = t * (e.length - 1),
o = Math.floor(n),
a = Math.ceil(n),
r = e[o],
s = e[a],
l = n - o;
return (
(i[0] = Lt(Rt(r[0], s[0], l))),
(i[1] = Lt(Rt(r[1], s[1], l))),
(i[2] = Lt(Rt(r[2], s[2], l))),
(i[3] = Pt(Rt(r[3], s[3], l))),
i
);
}
}
function Xt(t, e, i) {
if (e && e.length && t >= 0 && t <= 1) {
var n = t * (e.length - 1),
o = Math.floor(n),
a = Math.ceil(n),
r = Gt(e[o]),
s = Gt(e[a]),
l = n - o,
u = qt(
[
Lt(Rt(r[0], s[0], l)),
Lt(Rt(r[1], s[1], l)),
Lt(Rt(r[2], s[2], l)),
Pt(Rt(r[3], s[3], l)),
],
'rgba',
);
return i ? { color: u, leftIndex: o, rightIndex: a, value: n } : u;
}
}
function jt(t, e, i, n) {
if ((t = Gt(t)))
return (
(t = Wt(t)),
null != e && (t[0] = kt(e)),
null != i && (t[1] = Ot(i)),
null != n && (t[2] = Ot(n)),
qt(Ft(t), 'rgba')
);
}
function Yt(t, e) {
if ((t = Gt(t)) && null != e) return (t[3] = Pt(e)), qt(t, 'rgba');
}
function qt(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 Kt(t, e) {
return t[e];
}
function $t(t, e, i) {
t[e] = i;
}
function Jt(t, e, i) {
return (e - t) * i + t;
}
function Qt(t, e, i) {
return i > 0.5 ? e : t;
}
function te(t, e, i, n, o) {
var a = t.length;
if (1 === o) for (s = 0; s < a; s++) n[s] = Jt(t[s], e[s], i);
else
for (var r = a && t[0].length, s = 0; s < a; s++)
for (var l = 0; l < r; l++) n[s][l] = Jt(t[s][l], e[s][l], i);
}
function ee(t, e, i) {
var n = t.length,
o = e.length;
if (n !== o)
if (n > o) t.length = o;
else for (r = n; r < o; r++) t.push(1 === i ? e[r] : Hw.call(e[r]));
for (var a = t[0] && t[0].length, r = 0; r < t.length; r++)
if (1 === i) isNaN(t[r]) && (t[r] = e[r]);
else for (var s = 0; s < a; s++) isNaN(t[r][s]) && (t[r][s] = e[r][s]);
}
function ie(t, e, i) {
if (t === e) return !0;
var n = t.length;
if (n !== e.length) return !1;
if (1 === i) {
for (a = 0; a < n; a++) if (t[a] !== e[a]) return !1;
} else for (var o = t[0].length, a = 0; a < n; a++) for (var r = 0; r < o; r++) if (t[a][r] !== e[a][r]) return !1;
return !0;
}
function ne(t, e, i, n, o, a, r, s, l) {
var u = t.length;
if (1 === l)
for (c = 0; c < u; c++) s[c] = oe(t[c], e[c], i[c], n[c], o, a, r);
else
for (var h = t[0].length, c = 0; c < u; c++)
for (var d = 0; d < h; d++)
s[c][d] = oe(t[c][d], e[c][d], i[c][d], n[c][d], o, a, r);
}
function oe(t, e, i, n, o, a, r) {
var s = 0.5 * (i - t),
l = 0.5 * (n - e);
return (
(2 * (e - i) + s + l) * r + (-3 * (e - i) - 2 * s - l) * a + s * o + e
);
}
function ae(t) {
if (c(t)) {
var e = t.length;
if (c(t[0])) {
for (var i = [], n = 0; n < e; n++) i.push(Hw.call(t[n]));
return i;
}
return Hw.call(t);
}
return t;
}
function re(t) {
return (
(t[0] = Math.floor(t[0])),
(t[1] = Math.floor(t[1])),
(t[2] = Math.floor(t[2])),
'rgba(' + t.join(',') + ')'
);
}
function se(t) {
var e = t[t.length - 1].value;
return c(e && e[0]) ? 2 : 1;
}
function le(t, e, i, n, o, a) {
var r = t._getter,
s = t._setter,
l = 'spline' === e,
u = n.length;
if (u) {
var h,
d = c(n[0].value),
f = !1,
p = !1,
g = d ? se(n) : 0;
n.sort(function (t, e) {
return t.time - e.time;
}),
(h = n[u - 1].time);
for (var m = [], v = [], y = n[0].value, x = !0, _ = 0; _ < u; _++) {
m.push(n[_].time / h);
var w = n[_].value;
if (
((d && ie(w, y, g)) || (!d && w === y) || (x = !1),
(y = w),
'string' == typeof w)
) {
var b = Gt(w);
b ? ((w = b), (f = !0)) : (p = !0);
}
v.push(w);
}
if (a || !x) {
for (var S = v[u - 1], _ = 0; _ < u - 1; _++)
d ? ee(v[_], S, g) : !isNaN(v[_]) || isNaN(S) || p || f || (v[_] = S);
d && ee(r(t._target, o), S, g);
var M,
I,
T,
A,
D,
C,
L = 0,
k = 0;
if (f) var P = [0, 0, 0, 0];
var N = new Ct({
target: t._target,
life: h,
loop: t._loop,
delay: t._delay,
onframe: function (t, e) {
var i;
if (e < 0) i = 0;
else if (e < k) {
for (i = M = Math.min(L + 1, u - 1); i >= 0 && !(m[i] <= e); i--);
i = Math.min(i, u - 2);
} else {
for (i = L; i < u && !(m[i] > e); i++);
i = Math.min(i - 1, u - 2);
}
(L = i), (k = e);
var n = m[i + 1] - m[i];
if (0 !== n)
if (((I = (e - m[i]) / n), l))
if (
((A = v[i]),
(T = v[0 === i ? i : i - 1]),
(D = v[i > u - 2 ? u - 1 : i + 1]),
(C = v[i > u - 3 ? u - 1 : i + 2]),
d)
)
ne(T, A, D, C, I, I * I, I * I * I, r(t, o), g);
else {
if (f)
(a = ne(T, A, D, C, I, I * I, I * I * I, P, 1)),
(a = re(P));
else {
if (p) return Qt(A, D, I);
a = oe(T, A, D, C, I, I * I, I * I * I);
}
s(t, o, a);
}
else if (d) te(v[i], v[i + 1], I, r(t, o), g);
else {
var a;
if (f) te(v[i], v[i + 1], I, P, 1), (a = re(P));
else {
if (p) return Qt(v[i], v[i + 1], I);
a = Jt(v[i], v[i + 1], I);
}
s(t, o, a);
}
},
ondestroy: i,
});
return e && 'spline' !== e && (N.easing = e), N;
}
}
}
function ue(t, e, i, n, o, a, r, s) {
_(n)
? ((a = o), (o = n), (n = 0))
: x(o)
? ((a = o), (o = 'linear'), (n = 0))
: x(n)
? ((a = n), (n = 0))
: x(i)
? ((a = i), (i = 500))
: i || (i = 500),
t.stopAnimation(),
he(t, '', t, e, i, n, s);
var l = t.animators.slice(),
u = l.length;
u || (a && a());
for (var h = 0; h < l.length; h++)
l[h]
.done(function () {
--u || (a && a());
})
.start(o, r);
}
function he(t, e, i, n, o, a, r) {
var s = {},
l = 0;
for (var u in n)
n.hasOwnProperty(u) &&
(null != i[u]
? w(n[u]) && !c(n[u])
? he(t, e ? e + '.' + u : u, i[u], n[u], o, a, r)
: (r ? ((s[u] = i[u]), ce(t, e, u, n[u])) : (s[u] = n[u]), l++)
: null == n[u] || r || ce(t, e, u, n[u]));
l > 0 &&
t
.animate(e, !1)
.when(null == o ? 500 : o, s)
.delay(a || 0);
}
function ce(t, e, i, n) {
if (e) {
var o = {};
(o[e] = {}), (o[e][i] = n), t.attr(o);
} else t.attr(i, n);
}
function de(t, e, i, n) {
i < 0 && ((t += i), (i = -i)),
n < 0 && ((e += n), (n = -n)),
(this.x = t),
(this.y = e),
(this.width = i),
(this.height = n);
}
function fe(t) {
for (var e = 0; t >= eb; ) (e |= 1 & t), (t >>= 1);
return t + e;
}
function pe(t, e, i, n) {
var o = e + 1;
if (o === i) return 1;
if (n(t[o++], t[e]) < 0) {
for (; o < i && n(t[o], t[o - 1]) < 0; ) o++;
ge(t, e, o);
} else for (; o < i && n(t[o], t[o - 1]) >= 0; ) o++;
return o - e;
}
function ge(t, e, i) {
for (i--; e < i; ) {
var n = t[e];
(t[e++] = t[i]), (t[i--] = n);
}
}
function me(t, e, i, n, o) {
for (n === e && n++; n < i; n++) {
for (var a, r = t[n], s = e, l = n; s < l; )
o(r, t[(a = (s + l) >>> 1)]) < 0 ? (l = a) : (s = a + 1);
var u = n - s;
switch (u) {
case 3:
t[s + 3] = t[s + 2];
case 2:
t[s + 2] = t[s + 1];
case 1:
t[s + 1] = t[s];
break;
default:
for (; u > 0; ) (t[s + u] = t[s + u - 1]), u--;
}
t[s] = r;
}
}
function ve(t, e, i, n, o, a) {
var r = 0,
s = 0,
l = 1;
if (a(t, e[i + o]) > 0) {
for (s = n - o; l < s && a(t, e[i + o + l]) > 0; )
(r = l), (l = 1 + (l << 1)) <= 0 && (l = s);
l > s && (l = s), (r += o), (l += o);
} else {
for (s = o + 1; l < s && a(t, e[i + o - l]) <= 0; )
(r = l), (l = 1 + (l << 1)) <= 0 && (l = s);
l > s && (l = s);
var u = r;
(r = o - l), (l = o - u);
}
for (r++; r < l; ) {
var h = r + ((l - r) >>> 1);
a(t, e[i + h]) > 0 ? (r = h + 1) : (l = h);
}
return l;
}
function ye(t, e, i, n, o, a) {
var r = 0,
s = 0,
l = 1;
if (a(t, e[i + o]) < 0) {
for (s = o + 1; l < s && a(t, e[i + o - l]) < 0; )
(r = l), (l = 1 + (l << 1)) <= 0 && (l = s);
l > s && (l = s);
var u = r;
(r = o - l), (l = o - u);
} else {
for (s = n - o; l < s && a(t, e[i + o + l]) >= 0; )
(r = l), (l = 1 + (l << 1)) <= 0 && (l = s);
l > s && (l = s), (r += o), (l += o);
}
for (r++; r < l; ) {
var h = r + ((l - r) >>> 1);
a(t, e[i + h]) < 0 ? (l = h) : (r = h + 1);
}
return l;
}
function xe(t, e) {
function i(i) {
var s = a[i],
u = r[i],
h = a[i + 1],
c = r[i + 1];
(r[i] = u + c),
i === l - 3 && ((a[i + 1] = a[i + 2]), (r[i + 1] = r[i + 2])),
l--;
var d = ye(t[h], t, s, u, 0, e);
(s += d),
0 !== (u -= d) &&
0 !== (c = ve(t[s + u - 1], t, h, c, c - 1, e)) &&
(u <= c ? n(s, u, h, c) : o(s, u, h, c));
}
function n(i, n, o, a) {
var r = 0;
for (r = 0; r < n; r++) u[r] = t[i + r];
var l = 0,
h = o,
c = i;
if (((t[c++] = t[h++]), 0 != --a))
if (1 !== n) {
for (var d, f, p, g = s; ; ) {
(d = 0), (f = 0), (p = !1);
do {
if (e(t[h], u[l]) < 0) {
if (((t[c++] = t[h++]), f++, (d = 0), 0 == --a)) {
p = !0;
break;
}
} else if (((t[c++] = u[l++]), d++, (f = 0), 1 == --n)) {
p = !0;
break;
}
} while ((d | f) < g);
if (p) break;
do {
if (0 !== (d = ye(t[h], u, l, n, 0, e))) {
for (r = 0; r < d; r++) t[c + r] = u[l + r];
if (((c += d), (l += d), (n -= d) <= 1)) {
p = !0;
break;
}
}
if (((t[c++] = t[h++]), 0 == --a)) {
p = !0;
break;
}
if (0 !== (f = ve(u[l], t, h, a, 0, e))) {
for (r = 0; r < f; r++) t[c + r] = t[h + r];
if (((c += f), (h += f), 0 === (a -= f))) {
p = !0;
break;
}
}
if (((t[c++] = u[l++]), 1 == --n)) {
p = !0;
break;
}
g--;
} while (d >= ib || f >= ib);
if (p) break;
g < 0 && (g = 0), (g += 2);
}
if (((s = g) < 1 && (s = 1), 1 === n)) {
for (r = 0; r < a; r++) t[c + r] = t[h + r];
t[c + a] = u[l];
} else {
if (0 === n) throw new Error();
for (r = 0; r < n; r++) t[c + r] = u[l + r];
}
} else {
for (r = 0; r < a; r++) t[c + r] = t[h + r];
t[c + a] = u[l];
}
else for (r = 0; r < n; r++) t[c + r] = u[l + r];
}
function o(i, n, o, a) {
var r = 0;
for (r = 0; r < a; r++) u[r] = t[o + r];
var l = i + n - 1,
h = a - 1,
c = o + a - 1,
d = 0,
f = 0;
if (((t[c--] = t[l--]), 0 != --n))
if (1 !== a) {
for (var p = s; ; ) {
var g = 0,
m = 0,
v = !1;
do {
if (e(u[h], t[l]) < 0) {
if (((t[c--] = t[l--]), g++, (m = 0), 0 == --n)) {
v = !0;
break;
}
} else if (((t[c--] = u[h--]), m++, (g = 0), 1 == --a)) {
v = !0;
break;
}
} while ((g | m) < p);
if (v) break;
do {
if (0 != (g = n - ye(u[h], t, i, n, n - 1, e))) {
for (
n -= g, f = (c -= g) + 1, d = (l -= g) + 1, r = g - 1;
r >= 0;
r--
)
t[f + r] = t[d + r];
if (0 === n) {
v = !0;
break;
}
}
if (((t[c--] = u[h--]), 1 == --a)) {
v = !0;
break;
}
if (0 != (m = a - ve(t[l], u, 0, a, a - 1, e))) {
for (
a -= m, f = (c -= m) + 1, d = (h -= m) + 1, r = 0;
r < m;
r++
)
t[f + r] = u[d + r];
if (a <= 1) {
v = !0;
break;
}
}
if (((t[c--] = t[l--]), 0 == --n)) {
v = !0;
break;
}
p--;
} while (g >= ib || m >= ib);
if (v) break;
p < 0 && (p = 0), (p += 2);
}
if (((s = p) < 1 && (s = 1), 1 === a)) {
for (f = (c -= n) + 1, d = (l -= n) + 1, r = n - 1; r >= 0; r--)
t[f + r] = t[d + r];
t[c] = u[h];
} else {
if (0 === a) throw new Error();
for (d = c - (a - 1), r = 0; r < a; r++) t[d + r] = u[r];
}
} else {
for (f = (c -= n) + 1, d = (l -= n) + 1, r = n - 1; r >= 0; r--)
t[f + r] = t[d + r];
t[c] = u[h];
}
else for (d = c - (a - 1), r = 0; r < a; r++) t[d + r] = u[r];
}
var a,
r,
s = ib,
l = 0,
u = [];
(a = []),
(r = []),
(this.mergeRuns = function () {
for (; l > 1; ) {
var t = l - 2;
if (
(t >= 1 && r[t - 1] <= r[t] + r[t + 1]) ||
(t >= 2 && r[t - 2] <= r[t] + r[t - 1])
)
r[t - 1] < r[t + 1] && t--;
else if (r[t] > r[t + 1]) break;
i(t);
}
}),
(this.forceMergeRuns = function () {
for (; l > 1; ) {
var t = l - 2;
t > 0 && r[t - 1] < r[t + 1] && t--, i(t);
}
}),
(this.pushRun = function (t, e) {
(a[l] = t), (r[l] = e), (l += 1);
});
}
function _e(t, e, i, n) {
i || (i = 0), n || (n = t.length);
var o = n - i;
if (!(o < 2)) {
var a = 0;
if (o < eb) return (a = pe(t, i, n, e)), void me(t, i, n, i + a, e);
var r = new xe(t, e),
s = fe(o);
do {
if ((a = pe(t, i, n, e)) < s) {
var l = o;
l > s && (l = s), me(t, i, i + l, i + a, e), (a = l);
}
r.pushRun(i, a), r.mergeRuns(), (o -= a), (i += a);
} while (0 !== o);
r.forceMergeRuns();
}
}
function we(t, e) {
return t.zlevel === e.zlevel
? t.z === e.z
? t.z2 - e.z2
: t.z - e.z
: t.zlevel - e.zlevel;
}
function be(t, e, i) {
var n = null == e.x ? 0 : e.x,
o = null == e.x2 ? 1 : e.x2,
a = null == e.y ? 0 : e.y,
r = null == e.y2 ? 0 : e.y2;
return (
e.global ||
((n = n * i.width + i.x),
(o = o * i.width + i.x),
(a = a * i.height + i.y),
(r = r * i.height + i.y)),
(n = isNaN(n) ? 0 : n),
(o = isNaN(o) ? 1 : o),
(a = isNaN(a) ? 0 : a),
(r = isNaN(r) ? 0 : r),
t.createLinearGradient(n, a, o, r)
);
}
function Se(t, e, i) {
var n = i.width,
o = i.height,
a = Math.min(n, o),
r = null == e.x ? 0.5 : e.x,
s = null == e.y ? 0.5 : e.y,
l = null == e.r ? 0.5 : e.r;
return (
e.global || ((r = r * n + i.x), (s = s * o + i.y), (l *= a)),
t.createRadialGradient(r, s, 0, r, s, l)
);
}
function Me() {
return !1;
}
function Ie(t, e, i) {
var n = iw(),
o = e.getWidth(),
a = e.getHeight(),
r = n.style;
return (
r &&
((r.position = 'absolute'),
(r.left = 0),
(r.top = 0),
(r.width = o + 'px'),
(r.height = a + 'px'),
n.setAttribute('data-zr-dom-id', t)),
(n.width = o * i),
(n.height = a * i),
n
);
}
function Te(t) {
if ('string' == typeof t) {
var e = mb.get(t);
return e && e.image;
}
return t;
}
function Ae(t, e, i, n, o) {
if (t) {
if ('string' == typeof t) {
if ((e && e.__zrImageSrc === t) || !i) return e;
var a = mb.get(t),
r = { hostEl: i, cb: n, cbPayload: o };
return (
a
? !Ce((e = a.image)) && a.pending.push(r)
: (((e = new Image()).onload = e.onerror = De),
mb.put(t, (e.__cachedImgObj = { image: e, pending: [r] })),
(e.src = e.__zrImageSrc = t)),
e
);
}
return t;
}
return e;
}
function De() {
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 Ce(t) {
return t && t.width && t.height;
}
function Le(t, e) {
var i = t + ':' + (e = e || wb);
if (vb[i]) return vb[i];
for (var n = (t + '').split('\n'), o = 0, a = 0, r = n.length; a < r; a++)
o = Math.max(We(n[a], e).width, o);
return yb > xb && ((yb = 0), (vb = {})), yb++, (vb[i] = o), o;
}
function ke(t, e, i, n, o, a, r, s) {
return r ? Ne(t, e, i, n, o, a, r, s) : Pe(t, e, i, n, o, a, s);
}
function Pe(t, e, i, n, o, a, r) {
var s = He(t, e, o, a, r),
l = Le(t, e);
o && (l += o[1] + o[3]);
var u = s.outerHeight,
h = new de(Oe(0, l, i), Ee(0, u, n), l, u);
return (h.lineHeight = s.lineHeight), h;
}
function Ne(t, e, i, n, o, a, r, s) {
var l = Ze(t, {
rich: r,
truncate: s,
font: e,
textAlign: i,
textPadding: o,
textLineHeight: a,
}),
u = l.outerWidth,
h = l.outerHeight;
return new de(Oe(0, u, i), Ee(0, h, n), u, h);
}
function Oe(t, e, i) {
return 'right' === i ? (t -= e) : 'center' === i && (t -= e / 2), t;
}
function Ee(t, e, i) {
return 'middle' === i ? (t -= e / 2) : 'bottom' === i && (t -= e), t;
}
function Re(t, e, i) {
var n = e.x,
o = e.y,
a = e.height,
r = e.width,
s = a / 2,
l = 'left',
u = 'top';
switch (t) {
case 'left':
(n -= i), (o += s), (l = 'right'), (u = 'middle');
break;
case 'right':
(n += i + r), (o += s), (u = 'middle');
break;
case 'top':
(n += r / 2), (o -= i), (l = 'center'), (u = 'bottom');
break;
case 'bottom':
(n += r / 2), (o += a + i), (l = 'center');
break;
case 'inside':
(n += r / 2), (o += s), (l = 'center'), (u = 'middle');
break;
case 'insideLeft':
(n += i), (o += s), (u = 'middle');
break;
case 'insideRight':
(n += r - i), (o += s), (l = 'right'), (u = 'middle');
break;
case 'insideTop':
(n += r / 2), (o += i), (l = 'center');
break;
case 'insideBottom':
(n += r / 2), (o += a - i), (l = 'center'), (u = 'bottom');
break;
case 'insideTopLeft':
(n += i), (o += i);
break;
case 'insideTopRight':
(n += r - i), (o += i), (l = 'right');
break;
case 'insideBottomLeft':
(n += i), (o += a - i), (u = 'bottom');
break;
case 'insideBottomRight':
(n += r - i), (o += a - i), (l = 'right'), (u = 'bottom');
}
return { x: n, y: o, textAlign: l, textVerticalAlign: u };
}
function ze(t, e, i, n, o) {
if (!e) return '';
var a = (t + '').split('\n');
o = Be(e, i, n, o);
for (var r = 0, s = a.length; r < s; r++) a[r] = Ve(a[r], o);
return a.join('\n');
}
function Be(t, e, i, n) {
(n = a({}, n)).font = e;
var i = A(i, '...');
n.maxIterations = A(n.maxIterations, 2);
var o = (n.minChar = A(n.minChar, 0));
n.cnCharWidth = Le('国', e);
var r = (n.ascCharWidth = Le('a', e));
n.placeholder = A(n.placeholder, '');
for (var s = (t = Math.max(0, t - 1)), l = 0; l < o && s >= r; l++) s -= r;
var u = Le(i, e);
return (
u > s && ((i = ''), (u = 0)),
(s = t - u),
(n.ellipsis = i),
(n.ellipsisWidth = u),
(n.contentWidth = s),
(n.containerWidth = t),
n
);
}
function Ve(t, e) {
var i = e.containerWidth,
n = e.font,
o = e.contentWidth;
if (!i) return '';
var a = Le(t, n);
if (a <= i) return t;
for (var r = 0; ; r++) {
if (a <= o || r >= e.maxIterations) {
t += e.ellipsis;
break;
}
var s =
0 === r
? Ge(t, o, e.ascCharWidth, e.cnCharWidth)
: a > 0
? Math.floor((t.length * o) / a)
: 0;
a = Le((t = t.substr(0, s)), n);
}
return '' === t && (t = e.placeholder), t;
}
function Ge(t, e, i, n) {
for (var o = 0, a = 0, r = t.length; a < r && o < e; a++) {
var s = t.charCodeAt(a);
o += 0 <= s && s <= 127 ? i : n;
}
return a;
}
function Fe(t) {
return Le('国', t);
}
function We(t, e) {
return bb.measureText(t, e);
}
function He(t, e, i, n, o) {
null != t && (t += '');
var a = A(n, Fe(e)),
r = t ? t.split('\n') : [],
s = r.length * a,
l = s;
if ((i && (l += i[0] + i[2]), t && o)) {
var u = o.outerHeight,
h = o.outerWidth;
if (null != u && l > u) (t = ''), (r = []);
else if (null != h)
for (
var c = Be(h - (i ? i[1] + i[3] : 0), e, o.ellipsis, {
minChar: o.minChar,
placeholder: o.placeholder,
}),
d = 0,
f = r.length;
d < f;
d++
)
r[d] = Ve(r[d], c);
}
return { lines: r, height: s, outerHeight: l, lineHeight: a };
}
function Ze(t, e) {
var i = { lines: [], width: 0, height: 0 };
if ((null != t && (t += ''), !t)) return i;
for (var n, o = (_b.lastIndex = 0); null != (n = _b.exec(t)); ) {
var a = n.index;
a > o && Ue(i, t.substring(o, a)), Ue(i, n[2], n[1]), (o = _b.lastIndex);
}
o < t.length && Ue(i, t.substring(o, t.length));
var r = i.lines,
s = 0,
l = 0,
u = [],
h = e.textPadding,
c = e.truncate,
d = c && c.outerWidth,
f = c && c.outerHeight;
h && (null != d && (d -= h[1] + h[3]), null != f && (f -= h[0] + h[2]));
for (L = 0; L < r.length; L++) {
for (var p = r[L], g = 0, m = 0, v = 0; v < p.tokens.length; v++) {
var y = ((k = p.tokens[v]).styleName && e.rich[k.styleName]) || {},
x = (k.textPadding = y.textPadding),
_ = (k.font = y.font || e.font),
w = (k.textHeight = A(y.textHeight, Fe(_)));
if (
(x && (w += x[0] + x[2]),
(k.height = w),
(k.lineHeight = D(y.textLineHeight, e.textLineHeight, w)),
(k.textAlign = (y && y.textAlign) || e.textAlign),
(k.textVerticalAlign = (y && y.textVerticalAlign) || 'middle'),
null != f && s + k.lineHeight > f)
)
return { lines: [], width: 0, height: 0 };
k.textWidth = Le(k.text, _);
var b = y.textWidth,
S = null == b || 'auto' === b;
if ('string' == typeof b && '%' === b.charAt(b.length - 1))
(k.percentWidth = b), u.push(k), (b = 0);
else {
if (S) {
b = k.textWidth;
var M = y.textBackgroundColor,
I = M && M.image;
I && Ce((I = Te(I))) && (b = Math.max(b, (I.width * w) / I.height));
}
var T = x ? x[1] + x[3] : 0;
b += T;
var C = null != d ? d - m : null;
null != C &&
C < b &&
(!S || C < T
? ((k.text = ''), (k.textWidth = b = 0))
: ((k.text = ze(k.text, C - T, _, c.ellipsis, {
minChar: c.minChar,
})),
(k.textWidth = Le(k.text, _)),
(b = k.textWidth + T)));
}
(m += k.width = b), y && (g = Math.max(g, k.lineHeight));
}
(p.width = m), (p.lineHeight = g), (s += g), (l = Math.max(l, m));
}
(i.outerWidth = i.width = A(e.textWidth, l)),
(i.outerHeight = i.height = A(e.textHeight, s)),
h && ((i.outerWidth += h[1] + h[3]), (i.outerHeight += h[0] + h[2]));
for (var L = 0; L < u.length; L++) {
var k = u[L],
P = k.percentWidth;
k.width = (parseInt(P, 10) / 100) * l;
}
return i;
}
function Ue(t, e, i) {
for (
var n = '' === e, o = e.split('\n'), a = t.lines, r = 0;
r < o.length;
r++
) {
var s = o[r],
l = { styleName: i, text: s, isLineHolder: !s && !n };
if (r) a.push({ tokens: [l] });
else {
var u = (a[a.length - 1] || (a[0] = { tokens: [] })).tokens,
h = u.length;
1 === h && u[0].isLineHolder ? (u[0] = l) : (s || !h || n) && u.push(l);
}
}
}
function Xe(t) {
var e =
(t.fontSize || t.fontFamily) &&
[
t.fontStyle,
t.fontWeight,
(t.fontSize || 12) + 'px',
t.fontFamily || 'sans-serif',
].join(' ');
return (e && P(e)) || t.textFont || t.font;
}
function je(t, e) {
var i,
n,
o,
a,
r = e.x,
s = e.y,
l = e.width,
u = e.height,
h = e.r;
l < 0 && ((r += l), (l = -l)),
u < 0 && ((s += u), (u = -u)),
'number' == typeof h
? (i = n = o = a = h)
: h instanceof Array
? 1 === h.length
? (i = n = o = a = h[0])
: 2 === h.length
? ((i = o = h[0]), (n = a = h[1]))
: 3 === h.length
? ((i = h[0]), (n = a = h[1]), (o = h[2]))
: ((i = h[0]), (n = h[1]), (o = h[2]), (a = h[3]))
: (i = n = o = a = 0);
var c;
i + n > l && ((i *= l / (c = i + n)), (n *= l / c)),
o + a > l && ((o *= l / (c = o + a)), (a *= l / c)),
n + o > u && ((n *= u / (c = n + o)), (o *= u / c)),
i + a > u && ((i *= u / (c = i + a)), (a *= u / c)),
t.moveTo(r + i, s),
t.lineTo(r + l - n, s),
0 !== n && t.arc(r + l - n, s + n, n, -Math.PI / 2, 0),
t.lineTo(r + l, s + u - o),
0 !== o && t.arc(r + l - o, s + u - o, o, 0, Math.PI / 2),
t.lineTo(r + a, s + u),
0 !== a && t.arc(r + a, s + u - a, a, Math.PI / 2, Math.PI),
t.lineTo(r, s + i),
0 !== i && t.arc(r + i, s + i, i, Math.PI, 1.5 * Math.PI);
}
function Ye(t) {
return qe(t), d(t.rich, qe), t;
}
function qe(t) {
if (t) {
t.font = Xe(t);
var e = t.textAlign;
'middle' === e && (e = 'center'),
(t.textAlign = null == e || Mb[e] ? e : 'left');
var i = t.textVerticalAlign || t.textBaseline;
'center' === i && (i = 'middle'),
(t.textVerticalAlign = null == i || Ib[i] ? i : 'top'),
t.textPadding && (t.textPadding = L(t.textPadding));
}
}
function Ke(t, e, i, n, o, a) {
n.rich ? Je(t, e, i, n, o, a) : $e(t, e, i, n, o, a);
}
function $e(t, e, i, n, o, a) {
var r,
s = ii(n),
l = !1,
u = e.__attrCachedBy === rb.PLAIN_TEXT;
a !== sb
? (a && ((r = a.style), (l = !s && u && r)),
(e.__attrCachedBy = s ? rb.NONE : rb.PLAIN_TEXT))
: u && (e.__attrCachedBy = rb.NONE);
var h = n.font || Sb;
(l && h === (r.font || Sb)) || (e.font = h);
var c = t.__computedFont;
t.__styleFont !== h &&
((t.__styleFont = h), (c = t.__computedFont = e.font));
var d = n.textPadding,
f = n.textLineHeight,
p = t.__textCotentBlock;
(p && !t.__dirtyText) ||
(p = t.__textCotentBlock = He(i, c, d, f, n.truncate));
var g = p.outerHeight,
m = p.lines,
v = p.lineHeight,
y = ai(g, n, o),
x = y.baseX,
_ = y.baseY,
w = y.textAlign || 'left',
b = y.textVerticalAlign;
ti(e, n, o, x, _);
var S = Ee(_, g, b),
M = x,
I = S;
if (s || d) {
var T = Le(i, c);
d && (T += d[1] + d[3]);
var A = Oe(x, T, w);
s && ni(t, e, n, A, S, T, g), d && ((M = hi(x, w, d)), (I += d[0]));
}
(e.textAlign = w),
(e.textBaseline = 'middle'),
(e.globalAlpha = n.opacity || 1);
for (B = 0; B < Tb.length; B++) {
var D = Tb[B],
C = D[0],
L = D[1],
k = n[C];
(l && k === r[C]) || (e[L] = ab(e, L, k || D[2]));
}
I += v / 2;
var P = n.textStrokeWidth,
N = l ? r.textStrokeWidth : null,
O = !l || P !== N,
E = !l || O || n.textStroke !== r.textStroke,
R = si(n.textStroke, P),
z = li(n.textFill);
if (
(R && (O && (e.lineWidth = P), E && (e.strokeStyle = R)),
z && ((l && n.textFill === r.textFill) || (e.fillStyle = z)),
1 === m.length)
)
R && e.strokeText(m[0], M, I), z && e.fillText(m[0], M, I);
else
for (var B = 0; B < m.length; B++)
R && e.strokeText(m[B], M, I), z && e.fillText(m[B], M, I), (I += v);
}
function Je(t, e, i, n, o, a) {
a !== sb && (e.__attrCachedBy = rb.NONE);
var r = t.__textCotentBlock;
(r && !t.__dirtyText) || (r = t.__textCotentBlock = Ze(i, n)),
Qe(t, e, r, n, o);
}
function Qe(t, e, i, n, o) {
var a = i.width,
r = i.outerWidth,
s = i.outerHeight,
l = n.textPadding,
u = ai(s, n, o),
h = u.baseX,
c = u.baseY,
d = u.textAlign,
f = u.textVerticalAlign;
ti(e, n, o, h, c);
var p = Oe(h, r, d),
g = Ee(c, s, f),
m = p,
v = g;
l && ((m += l[3]), (v += l[0]));
var y = m + a;
ii(n) && ni(t, e, n, p, g, r, 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,
A = m,
D = y,
C = S - 1;
T < S && (!(_ = b[T]).textAlign || 'left' === _.textAlign);
)
ei(t, e, _, n, M, v, A, 'left'), (I -= _.width), (A += _.width), T++;
for (; C >= 0 && 'right' === (_ = b[C]).textAlign; )
ei(t, e, _, n, M, v, D, 'right'), (I -= _.width), (D -= _.width), C--;
for (A += (a - (A - m) - (y - D) - I) / 2; T <= C; )
ei(t, e, (_ = b[T]), n, M, v, A + _.width / 2, 'center'),
(A += _.width),
T++;
v += M;
}
}
function ti(t, e, i, n, o) {
if (i && e.textRotation) {
var a = e.textOrigin;
'center' === a
? ((n = i.width / 2 + i.x), (o = i.height / 2 + i.y))
: a && ((n = a[0] + i.x), (o = a[1] + i.y)),
t.translate(n, o),
t.rotate(-e.textRotation),
t.translate(-n, -o);
}
}
function ei(t, e, i, n, o, a, r, s) {
var l = n.rich[i.styleName] || {};
l.text = i.text;
var u = i.textVerticalAlign,
h = a + o / 2;
'top' === u
? (h = a + i.height / 2)
: 'bottom' === u && (h = a + o - i.height / 2),
!i.isLineHolder &&
ii(l) &&
ni(
t,
e,
l,
'right' === s ? r - i.width : 'center' === s ? r - i.width / 2 : r,
h - i.height / 2,
i.width,
i.height,
);
var c = i.textPadding;
c && ((r = hi(r, s, c)), (h -= i.height / 2 - c[2] - i.textHeight / 2)),
ri(e, 'shadowBlur', D(l.textShadowBlur, n.textShadowBlur, 0)),
ri(
e,
'shadowColor',
l.textShadowColor || n.textShadowColor || 'transparent',
),
ri(e, 'shadowOffsetX', D(l.textShadowOffsetX, n.textShadowOffsetX, 0)),
ri(e, 'shadowOffsetY', D(l.textShadowOffsetY, n.textShadowOffsetY, 0)),
ri(e, 'textAlign', s),
ri(e, 'textBaseline', 'middle'),
ri(e, 'font', i.font || Sb);
var d = si(l.textStroke || n.textStroke, p),
f = li(l.textFill || n.textFill),
p = A(l.textStrokeWidth, n.textStrokeWidth);
d &&
(ri(e, 'lineWidth', p),
ri(e, 'strokeStyle', d),
e.strokeText(i.text, r, h)),
f && (ri(e, 'fillStyle', f), e.fillText(i.text, r, h));
}
function ii(t) {
return !!(
t.textBackgroundColor ||
(t.textBorderWidth && t.textBorderColor)
);
}
function ni(t, e, i, n, o, a, r) {
var s = i.textBackgroundColor,
l = i.textBorderWidth,
u = i.textBorderColor,
h = _(s);
if (
(ri(e, 'shadowBlur', i.textBoxShadowBlur || 0),
ri(e, 'shadowColor', i.textBoxShadowColor || 'transparent'),
ri(e, 'shadowOffsetX', i.textBoxShadowOffsetX || 0),
ri(e, 'shadowOffsetY', i.textBoxShadowOffsetY || 0),
h || (l && u))
) {
e.beginPath();
var c = i.textBorderRadius;
c ? je(e, { x: n, y: o, width: a, height: r, r: c }) : e.rect(n, o, a, r),
e.closePath();
}
if (h)
if ((ri(e, 'fillStyle', s), null != i.fillOpacity)) {
f = e.globalAlpha;
(e.globalAlpha = i.fillOpacity * i.opacity),
e.fill(),
(e.globalAlpha = f);
} else e.fill();
else if (w(s)) {
var d = s.image;
(d = Ae(d, null, t, oi, s)) && Ce(d) && e.drawImage(d, n, o, a, r);
}
if (l && u)
if (
(ri(e, 'lineWidth', l),
ri(e, 'strokeStyle', u),
null != i.strokeOpacity)
) {
var f = e.globalAlpha;
(e.globalAlpha = i.strokeOpacity * i.opacity),
e.stroke(),
(e.globalAlpha = f);
} else e.stroke();
}
function oi(t, e) {
e.image = t;
}
function ai(t, e, i) {
var n = e.x || 0,
o = e.y || 0,
a = e.textAlign,
r = e.textVerticalAlign;
if (i) {
var s = e.textPosition;
if (s instanceof Array)
(n = i.x + ui(s[0], i.width)), (o = i.y + ui(s[1], i.height));
else {
var l = Re(s, i, e.textDistance);
(n = l.x),
(o = l.y),
(a = a || l.textAlign),
(r = r || l.textVerticalAlign);
}
var u = e.textOffset;
u && ((n += u[0]), (o += u[1]));
}
return { baseX: n, baseY: o, textAlign: a, textVerticalAlign: r };
}
function ri(t, e, i) {
return (t[e] = ab(t, e, i)), t[e];
}
function si(t, e) {
return null == t || e <= 0 || 'transparent' === t || 'none' === t
? null
: t.image || t.colorStops
? '#000'
: t;
}
function li(t) {
return null == t || 'none' === t
? null
: t.image || t.colorStops
? '#000'
: t;
}
function ui(t, e) {
return 'string' == typeof t
? t.lastIndexOf('%') >= 0
? (parseFloat(t) / 100) * e
: parseFloat(t)
: t;
}
function hi(t, e, i) {
return 'right' === e
? t - i[1]
: 'center' === e
? t + i[3] / 2 - i[1] / 2
: t + i[3];
}
function ci(t, e) {
return (
null != t &&
(t ||
e.textBackgroundColor ||
(e.textBorderWidth && e.textBorderColor) ||
e.textPadding)
);
}
function di(t) {
(t = t || {}), Kw.call(this, t);
for (var e in t) t.hasOwnProperty(e) && 'style' !== e && (this[e] = t[e]);
(this.style = new ub(t.style, this)),
(this._rect = null),
(this.__clipPaths = []);
}
function fi(t) {
di.call(this, t);
}
function pi(t) {
return parseInt(t, 10);
}
function gi(t) {
return (
!!t &&
(!!t.__builtin__ ||
('function' == typeof t.resize && 'function' == typeof t.refresh))
);
}
function mi(t, e, i) {
return (
Cb.copy(t.getBoundingRect()),
t.transform && Cb.applyTransform(t.transform),
(Lb.width = e),
(Lb.height = i),
!Cb.intersect(Lb)
);
}
function vi(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 yi(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 xi(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 _i(t) {
return 'mousewheel' === t && U_.browser.firefox ? 'DOMMouseScroll' : t;
}
function wi(t) {
(t._touching = !0),
clearTimeout(t._touchTimer),
(t._touchTimer = setTimeout(function () {
t._touching = !1;
}, 700));
}
function bi(t) {
var e = t.pointerType;
return 'pen' === e || 'touch' === e;
}
function Si(t) {
function e(t, e) {
return function () {
if (!e._touching) return t.apply(e, arguments);
};
}
d(Ob, function (e) {
t._handlers[e] = m(zb[e], t);
}),
d(Rb, function (e) {
t._handlers[e] = m(zb[e], t);
}),
d(Nb, function (i) {
t._handlers[i] = e(zb[i], t);
});
}
function Mi(t) {
function e(e, i) {
d(
e,
function (e) {
ht(t, _i(e), i._handlers[e]);
},
i,
);
}
fw.call(this),
(this.dom = t),
(this._touching = !1),
this._touchTimer,
(this._handlers = {}),
Si(this),
U_.pointerEventsSupported
? e(Rb, this)
: (U_.touchEventsSupported && e(Ob, this), e(Nb, this));
}
function Ii(t, e) {
var i = new Wb(H_(), t, e);
return (Fb[i.id] = i), i;
}
function Ti(t, e) {
Gb[t] = e;
}
function Ai(t) {
delete Fb[t];
}
function Di(t) {
return t instanceof Array ? t : null == t ? [] : [t];
}
function Ci(t, e, i) {
if (t) {
(t[e] = t[e] || {}),
(t.emphasis = t.emphasis || {}),
(t.emphasis[e] = t.emphasis[e] || {});
for (var n = 0, o = i.length; n < o; n++) {
var a = i[n];
!t.emphasis[e].hasOwnProperty(a) &&
t[e].hasOwnProperty(a) &&
(t.emphasis[e][a] = t[e][a]);
}
}
}
function Li(t) {
return !Ub(t) || Xb(t) || t instanceof Date ? t : t.value;
}
function ki(t) {
return Ub(t) && !(t instanceof Array);
}
function Pi(t, e) {
e = (e || []).slice();
var i = f(t || [], function (t, e) {
return { exist: t };
});
return (
Zb(e, function (t, n) {
if (Ub(t)) {
for (o = 0; o < i.length; o++)
if (!i[o].option && null != t.id && i[o].exist.id === t.id + '')
return (i[o].option = t), void (e[n] = null);
for (var o = 0; o < i.length; o++) {
var a = i[o].exist;
if (
!(
i[o].option ||
(null != a.id && null != t.id) ||
null == t.name ||
Ei(t) ||
Ei(a) ||
a.name !== t.name + ''
)
)
return (i[o].option = t), void (e[n] = null);
}
}
}),
Zb(e, function (t, e) {
if (Ub(t)) {
for (var n = 0; n < i.length; n++) {
var o = i[n].exist;
if (!i[n].option && !Ei(o) && null == t.id) {
i[n].option = t;
break;
}
}
n >= i.length && i.push({ option: t });
}
}),
i
);
}
function Ni(t) {
var e = R();
Zb(t, function (t, i) {
var n = t.exist;
n && e.set(n.id, t);
}),
Zb(t, function (t, i) {
var n = t.option;
k(
!n || null == n.id || !e.get(n.id) || e.get(n.id) === t,
'id duplicates: ' + (n && n.id),
),
n && null != n.id && e.set(n.id, t),
!t.keyInfo && (t.keyInfo = {});
}),
Zb(t, function (t, i) {
var n = t.exist,
o = t.option,
a = t.keyInfo;
if (Ub(o)) {
if (
((a.name = null != o.name ? o.name + '' : n ? n.name : jb + i), n)
)
a.id = n.id;
else if (null != o.id) a.id = o.id + '';
else {
var r = 0;
do {
a.id = '\0' + a.name + '\0' + r++;
} while (e.get(a.id));
}
e.set(a.id, t);
}
});
}
function Oi(t) {
var e = t.name;
return !(!e || !e.indexOf(jb));
}
function Ei(t) {
return Ub(t) && t.id && 0 === (t.id + '').indexOf('\0_ec_\0');
}
function Ri(t, e) {
function i(t, e, i) {
for (var n = 0, o = t.length; n < o; n++)
for (
var a = t[n].seriesId,
r = Di(t[n].dataIndex),
s = i && i[a],
l = 0,
u = r.length;
l < u;
l++
) {
var h = r[l];
s && s[h] ? (s[h] = null) : ((e[a] || (e[a] = {}))[h] = 1);
}
}
function n(t, e) {
var i = [];
for (var o in t)
if (t.hasOwnProperty(o) && null != t[o])
if (e) i.push(+o);
else {
var a = n(t[o], !0);
a.length && i.push({ seriesId: o, dataIndex: a });
}
return i;
}
var o = {},
a = {};
return i(t || [], o), i(e || [], a, o), [n(o), n(a)];
}
function zi(t, e) {
return null != e.dataIndexInside
? e.dataIndexInside
: null != e.dataIndex
? y(e.dataIndex)
? f(e.dataIndex, function (e) {
return t.indexOfRawIndex(e);
})
: t.indexOfRawIndex(e.dataIndex)
: null != e.name
? y(e.name)
? f(e.name, function (e) {
return t.indexOfName(e);
})
: t.indexOfName(e.name)
: void 0;
}
function Bi() {
var t = '__\0ec_inner_' + qb++ + '_' + Math.random().toFixed(5);
return function (e) {
return e[t] || (e[t] = {});
};
}
function Vi(t, e, i) {
if (_(e)) {
var n = {};
(n[e + 'Index'] = 0), (e = n);
}
var o = i && i.defaultMainType;
!o ||
Gi(e, o + 'Index') ||
Gi(e, o + 'Id') ||
Gi(e, o + 'Name') ||
(e[o + 'Index'] = 0);
var a = {};
return (
Zb(e, function (n, o) {
var n = e[o];
if ('dataIndex' !== o && 'dataIndexInside' !== o) {
var r = o.match(/^(\w+)(Index|Id|Name)$/) || [],
s = r[1],
u = (r[2] || '').toLowerCase();
if (
!(
!s ||
!u ||
null == n ||
('index' === u && 'none' === n) ||
(i && i.includeMainTypes && l(i.includeMainTypes, s) < 0)
)
) {
var h = { mainType: s };
('index' === u && 'all' === n) || (h[u] = n);
var c = t.queryComponents(h);
(a[s + 'Models'] = c), (a[s + 'Model'] = c[0]);
}
} else a[o] = n;
}),
a
);
}
function Gi(t, e) {
return t && t.hasOwnProperty(e);
}
function Fi(t, e, i) {
t.setAttribute ? t.setAttribute(e, i) : (t[e] = i);
}
function Wi(t, e) {
return t.getAttribute ? t.getAttribute(e) : t[e];
}
function Hi(t) {
return 'auto' === t ? (U_.domSupported ? 'html' : 'richText') : t || 'html';
}
function Zi(t, e) {
var i = R(),
n = [];
return (
d(t, function (t) {
var o = e(t);
(i.get(o) || (n.push(o), i.set(o, []))).push(t);
}),
{ keys: n, buckets: i }
);
}
function Ui(t) {
var e = { main: '', sub: '' };
return (
t && ((t = t.split(Kb)), (e.main = t[0] || ''), (e.sub = t[1] || '')), e
);
}
function Xi(t) {
k(
/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),
'componentType "' + t + '" illegal',
);
}
function ji(t, e) {
(t.$constructor = t),
(t.extend = function (t) {
var e = this,
i = function () {
t.$constructor
? t.$constructor.apply(this, arguments)
: e.apply(this, arguments);
};
return (
a(i.prototype, t),
(i.extend = this.extend),
(i.superCall = qi),
(i.superApply = Ki),
u(i, this),
(i.superClass = e),
i
);
});
}
function Yi(t) {
var e = ['__\0is_clz', Jb++, Math.random().toFixed(3)].join('_');
(t.prototype[e] = !0),
(t.isInstance = function (t) {
return !(!t || !t[e]);
});
}
function qi(t, e) {
var i = C(arguments, 2);
return this.superClass.prototype[e].apply(t, i);
}
function Ki(t, e, i) {
return this.superClass.prototype[e].apply(t, i);
}
function $i(t, e) {
function i(t) {
var e = n[t.main];
return (e && e[$b]) || ((e = n[t.main] = {})[$b] = !0), e;
}
e = e || {};
var n = {};
if (
((t.registerClass = function (t, e) {
return (
e &&
(Xi(e),
(e = Ui(e)).sub
? e.sub !== $b && (i(e)[e.sub] = t)
: (n[e.main] = t)),
t
);
}),
(t.getClass = function (t, e, i) {
var o = n[t];
if ((o && o[$b] && (o = e ? o[e] : null), i && !o))
throw new Error(
e
? 'Component ' +
t +
'.' +
(e || '') +
' not exists. Load it first.'
: t + '.type should be specified.',
);
return o;
}),
(t.getClassesByMainType = function (t) {
t = Ui(t);
var e = [],
i = n[t.main];
return (
i && i[$b]
? d(i, function (t, i) {
i !== $b && e.push(t);
})
: e.push(i),
e
);
}),
(t.hasClass = function (t) {
return (t = Ui(t)), !!n[t.main];
}),
(t.getAllClassMainTypes = function () {
var t = [];
return (
d(n, function (e, i) {
t.push(i);
}),
t
);
}),
(t.hasSubTypes = function (t) {
t = Ui(t);
var e = n[t.main];
return e && e[$b];
}),
(t.parseClassType = Ui),
e.registerWhenExtend)
) {
var o = t.extend;
o &&
(t.extend = function (e) {
var i = o.call(this, e);
return t.registerClass(i, e.type);
});
}
return t;
}
function Ji(t) {
return t > -rS && t < rS;
}
function Qi(t) {
return t > rS || t < -rS;
}
function tn(t, e, i, n, o) {
var a = 1 - o;
return a * a * (a * t + 3 * o * e) + o * o * (o * n + 3 * a * i);
}
function en(t, e, i, n, o) {
var a = 1 - o;
return 3 * (((e - t) * a + 2 * (i - e) * o) * a + (n - i) * o * o);
}
function nn(t, e, i, n, o, a) {
var r = n + 3 * (e - i) - t,
s = 3 * (i - 2 * e + t),
l = 3 * (e - t),
u = t - o,
h = s * s - 3 * r * l,
c = s * l - 9 * r * u,
d = l * l - 3 * s * u,
f = 0;
if (Ji(h) && Ji(c))
Ji(s) ? (a[0] = 0) : (M = -l / s) >= 0 && M <= 1 && (a[f++] = M);
else {
var p = c * c - 4 * h * d;
if (Ji(p)) {
var g = c / h,
m = -g / 2;
(M = -s / r + g) >= 0 && M <= 1 && (a[f++] = M),
m >= 0 && m <= 1 && (a[f++] = m);
} else if (p > 0) {
var v = aS(p),
y = h * s + 1.5 * r * (-c + v),
x = h * s + 1.5 * r * (-c - v);
(M =
(-s -
((y = y < 0 ? -oS(-y, uS) : oS(y, uS)) +
(x = x < 0 ? -oS(-x, uS) : oS(x, uS)))) /
(3 * r)) >= 0 &&
M <= 1 &&
(a[f++] = M);
} else {
var _ = (2 * h * s - 3 * r * c) / (2 * aS(h * h * h)),
w = Math.acos(_) / 3,
b = aS(h),
S = Math.cos(w),
M = (-s - 2 * b * S) / (3 * r),
m = (-s + b * (S + lS * Math.sin(w))) / (3 * r),
I = (-s + b * (S - lS * Math.sin(w))) / (3 * r);
M >= 0 && M <= 1 && (a[f++] = M),
m >= 0 && m <= 1 && (a[f++] = m),
I >= 0 && I <= 1 && (a[f++] = I);
}
}
return f;
}
function on(t, e, i, n, o) {
var a = 6 * i - 12 * e + 6 * t,
r = 9 * e + 3 * n - 3 * t - 9 * i,
s = 3 * e - 3 * t,
l = 0;
if (Ji(r)) Qi(a) && (c = -s / a) >= 0 && c <= 1 && (o[l++] = c);
else {
var u = a * a - 4 * r * s;
if (Ji(u)) o[0] = -a / (2 * r);
else if (u > 0) {
var h = aS(u),
c = (-a + h) / (2 * r),
d = (-a - h) / (2 * r);
c >= 0 && c <= 1 && (o[l++] = c), d >= 0 && d <= 1 && (o[l++] = d);
}
}
return l;
}
function an(t, e, i, n, o, a) {
var r = (e - t) * o + t,
s = (i - e) * o + e,
l = (n - i) * o + i,
u = (s - r) * o + r,
h = (l - s) * o + s,
c = (h - u) * o + u;
(a[0] = t),
(a[1] = r),
(a[2] = u),
(a[3] = c),
(a[4] = c),
(a[5] = h),
(a[6] = l),
(a[7] = n);
}
function rn(t, e, i, n, o, a, r, s, l, u, h) {
var c,
d,
f,
p,
g,
m = 0.005,
v = 1 / 0;
(hS[0] = l), (hS[1] = u);
for (var y = 0; y < 1; y += 0.05)
(cS[0] = tn(t, i, o, r, y)),
(cS[1] = tn(e, n, a, s, y)),
(p = hw(hS, cS)) < v && ((c = y), (v = p));
v = 1 / 0;
for (var x = 0; x < 32 && !(m < sS); x++)
(d = c - m),
(f = c + m),
(cS[0] = tn(t, i, o, r, d)),
(cS[1] = tn(e, n, a, s, d)),
(p = hw(cS, hS)),
d >= 0 && p < v
? ((c = d), (v = p))
: ((dS[0] = tn(t, i, o, r, f)),
(dS[1] = tn(e, n, a, s, f)),
(g = hw(dS, hS)),
f <= 1 && g < v ? ((c = f), (v = g)) : (m *= 0.5));
return h && ((h[0] = tn(t, i, o, r, c)), (h[1] = tn(e, n, a, s, c))), aS(v);
}
function sn(t, e, i, n) {
var o = 1 - n;
return o * (o * t + 2 * n * e) + n * n * i;
}
function ln(t, e, i, n) {
return 2 * ((1 - n) * (e - t) + n * (i - e));
}
function un(t, e, i, n, o) {
var a = t - 2 * e + i,
r = 2 * (e - t),
s = t - n,
l = 0;
if (Ji(a)) Qi(r) && (c = -s / r) >= 0 && c <= 1 && (o[l++] = c);
else {
var u = r * r - 4 * a * s;
if (Ji(u)) (c = -r / (2 * a)) >= 0 && c <= 1 && (o[l++] = c);
else if (u > 0) {
var h = aS(u),
c = (-r + h) / (2 * a),
d = (-r - h) / (2 * a);
c >= 0 && c <= 1 && (o[l++] = c), d >= 0 && d <= 1 && (o[l++] = d);
}
}
return l;
}
function hn(t, e, i) {
var n = t + i - 2 * e;
return 0 === n ? 0.5 : (t - e) / n;
}
function cn(t, e, i, n, o) {
var a = (e - t) * n + t,
r = (i - e) * n + e,
s = (r - a) * n + a;
(o[0] = t), (o[1] = a), (o[2] = s), (o[3] = s), (o[4] = r), (o[5] = i);
}
function dn(t, e, i, n, o, a, r, s, l) {
var u,
h = 0.005,
c = 1 / 0;
(hS[0] = r), (hS[1] = s);
for (var d = 0; d < 1; d += 0.05)
(cS[0] = sn(t, i, o, d)),
(cS[1] = sn(e, n, a, d)),
(m = hw(hS, cS)) < c && ((u = d), (c = m));
c = 1 / 0;
for (var f = 0; f < 32 && !(h < sS); f++) {
var p = u - h,
g = u + h;
(cS[0] = sn(t, i, o, p)), (cS[1] = sn(e, n, a, p));
var m = hw(cS, hS);
if (p >= 0 && m < c) (u = p), (c = m);
else {
(dS[0] = sn(t, i, o, g)), (dS[1] = sn(e, n, a, g));
var v = hw(dS, hS);
g <= 1 && v < c ? ((u = g), (c = v)) : (h *= 0.5);
}
}
return l && ((l[0] = sn(t, i, o, u)), (l[1] = sn(e, n, a, u))), aS(c);
}
function fn(t, e, i) {
if (0 !== t.length) {
var n,
o = t[0],
a = o[0],
r = o[0],
s = o[1],
l = o[1];
for (n = 1; n < t.length; n++)
(o = t[n]),
(a = fS(a, o[0])),
(r = pS(r, o[0])),
(s = fS(s, o[1])),
(l = pS(l, o[1]));
(e[0] = a), (e[1] = s), (i[0] = r), (i[1] = l);
}
}
function pn(t, e, i, n, o, a) {
(o[0] = fS(t, i)), (o[1] = fS(e, n)), (a[0] = pS(t, i)), (a[1] = pS(e, n));
}
function gn(t, e, i, n, o, a, r, s, l, u) {
var h,
c = on,
d = tn,
f = c(t, i, o, r, wS);
for (
l[0] = 1 / 0, l[1] = 1 / 0, u[0] = -1 / 0, u[1] = -1 / 0, h = 0;
h < f;
h++
) {
var p = d(t, i, o, r, wS[h]);
(l[0] = fS(p, l[0])), (u[0] = pS(p, u[0]));
}
for (f = c(e, n, a, s, bS), h = 0; h < f; h++) {
var g = d(e, n, a, s, bS[h]);
(l[1] = fS(g, l[1])), (u[1] = pS(g, u[1]));
}
(l[0] = fS(t, l[0])),
(u[0] = pS(t, u[0])),
(l[0] = fS(r, l[0])),
(u[0] = pS(r, u[0])),
(l[1] = fS(e, l[1])),
(u[1] = pS(e, u[1])),
(l[1] = fS(s, l[1])),
(u[1] = pS(s, u[1]));
}
function mn(t, e, i, n, o, a, r, s) {
var l = hn,
u = sn,
h = pS(fS(l(t, i, o), 1), 0),
c = pS(fS(l(e, n, a), 1), 0),
d = u(t, i, o, h),
f = u(e, n, a, c);
(r[0] = fS(t, o, d)),
(r[1] = fS(e, a, f)),
(s[0] = pS(t, o, d)),
(s[1] = pS(e, a, f));
}
function vn(t, e, i, n, o, a, r, s, l) {
var u = tt,
h = et,
c = Math.abs(o - a);
if (c % vS < 1e-4 && c > 1e-4)
return (
(s[0] = t - i), (s[1] = e - n), (l[0] = t + i), void (l[1] = e + n)
);
if (
((yS[0] = mS(o) * i + t),
(yS[1] = gS(o) * n + e),
(xS[0] = mS(a) * i + t),
(xS[1] = gS(a) * n + e),
u(s, yS, xS),
h(l, yS, xS),
(o %= vS) < 0 && (o += vS),
(a %= vS) < 0 && (a += vS),
o > a && !r ? (a += vS) : o < a && r && (o += vS),
r)
) {
var d = a;
(a = o), (o = d);
}
for (var f = 0; f < a; f += Math.PI / 2)
f > o &&
((_S[0] = mS(f) * i + t),
(_S[1] = gS(f) * n + e),
u(s, _S, s),
h(l, _S, l));
}
function yn(t, e, i, n, o, a, r) {
if (0 === o) return !1;
var s = o,
l = 0,
u = t;
if (
(r > e + s && r > n + s) ||
(r < e - s && r < n - s) ||
(a > t + s && a > i + s) ||
(a < t - s && a < i - s)
)
return !1;
if (t === i) return Math.abs(a - t) <= s / 2;
var h = (l = (e - n) / (t - i)) * a - r + (u = (t * n - i * e) / (t - i));
return (h * h) / (l * l + 1) <= ((s / 2) * s) / 2;
}
function xn(t, e, i, n, o, a, r, s, l, u, h) {
if (0 === l) return !1;
var c = l;
return (
!(
(h > e + c && h > n + c && h > a + c && h > s + c) ||
(h < e - c && h < n - c && h < a - c && h < s - c) ||
(u > t + c && u > i + c && u > o + c && u > r + c) ||
(u < t - c && u < i - c && u < o - c && u < r - c)
) && rn(t, e, i, n, o, a, r, s, u, h, null) <= c / 2
);
}
function _n(t, e, i, n, o, a, r, s, l) {
if (0 === r) return !1;
var u = r;
return (
!(
(l > e + u && l > n + u && l > a + u) ||
(l < e - u && l < n - u && l < a - u) ||
(s > t + u && s > i + u && s > o + u) ||
(s < t - u && s < i - u && s < o - u)
) && dn(t, e, i, n, o, a, s, l, null) <= u / 2
);
}
function wn(t) {
return (t %= RS) < 0 && (t += RS), t;
}
function bn(t, e, i, n, o, a, r, s, l) {
if (0 === r) return !1;
var u = r;
(s -= t), (l -= e);
var h = Math.sqrt(s * s + l * l);
if (h - u > i || h + u < i) return !1;
if (Math.abs(n - o) % zS < 1e-4) return !0;
if (a) {
var c = n;
(n = wn(o)), (o = wn(c));
} else (n = wn(n)), (o = wn(o));
n > o && (o += zS);
var d = Math.atan2(l, s);
return (
d < 0 && (d += zS), (d >= n && d <= o) || (d + zS >= n && d + zS <= o)
);
}
function Sn(t, e, i, n, o, a) {
if ((a > e && a > n) || (a < e && a < n)) return 0;
if (n === e) return 0;
var r = n < e ? 1 : -1,
s = (a - e) / (n - e);
(1 !== s && 0 !== s) || (r = n < e ? 0.5 : -0.5);
var l = s * (i - t) + t;
return l === o ? 1 / 0 : l > o ? r : 0;
}
function Mn(t, e) {
return Math.abs(t - e) < GS;
}
function In() {
var t = WS[0];
(WS[0] = WS[1]), (WS[1] = t);
}
function Tn(t, e, i, n, o, a, r, s, l, u) {
if (
(u > e && u > n && u > a && u > s) ||
(u < e && u < n && u < a && u < s)
)
return 0;
var h = nn(e, n, a, s, u, FS);
if (0 === h) return 0;
for (var c, d, f = 0, p = -1, g = 0; g < h; g++) {
var m = FS[g],
v = 0 === m || 1 === m ? 0.5 : 1;
tn(t, i, o, r, m) < l ||
(p < 0 &&
((p = on(e, n, a, s, WS)),
WS[1] < WS[0] && p > 1 && In(),
(c = tn(e, n, a, s, WS[0])),
p > 1 && (d = tn(e, n, a, s, WS[1]))),
2 === p
? m < WS[0]
? (f += c < e ? v : -v)
: m < WS[1]
? (f += d < c ? v : -v)
: (f += s < d ? v : -v)
: m < WS[0]
? (f += c < e ? v : -v)
: (f += s < c ? v : -v));
}
return f;
}
function An(t, e, i, n, o, a, r, s) {
if ((s > e && s > n && s > a) || (s < e && s < n && s < a)) return 0;
var l = un(e, n, a, s, FS);
if (0 === l) return 0;
var u = hn(e, n, a);
if (u >= 0 && u <= 1) {
for (var h = 0, c = sn(e, n, a, u), d = 0; d < l; d++) {
f = 0 === FS[d] || 1 === FS[d] ? 0.5 : 1;
(p = sn(t, i, o, FS[d])) < r ||
(FS[d] < u ? (h += c < e ? f : -f) : (h += a < c ? f : -f));
}
return h;
}
var f = 0 === FS[0] || 1 === FS[0] ? 0.5 : 1,
p = sn(t, i, o, FS[0]);
return p < r ? 0 : a < e ? f : -f;
}
function Dn(t, e, i, n, o, a, r, s) {
if ((s -= e) > i || s < -i) return 0;
u = Math.sqrt(i * i - s * s);
(FS[0] = -u), (FS[1] = u);
var l = Math.abs(n - o);
if (l < 1e-4) return 0;
if (l % VS < 1e-4) {
(n = 0), (o = VS);
p = a ? 1 : -1;
return r >= FS[0] + t && r <= FS[1] + t ? p : 0;
}
if (a) {
var u = n;
(n = wn(o)), (o = wn(u));
} else (n = wn(n)), (o = wn(o));
n > o && (o += VS);
for (var h = 0, c = 0; c < 2; c++) {
var d = FS[c];
if (d + t > r) {
var f = Math.atan2(s, d),
p = a ? 1 : -1;
f < 0 && (f = VS + f),
((f >= n && f <= o) || (f + VS >= n && f + VS <= o)) &&
(f > Math.PI / 2 && f < 1.5 * Math.PI && (p = -p), (h += p));
}
}
return h;
}
function Cn(t, e, i, n, o) {
for (var a = 0, r = 0, s = 0, l = 0, u = 0, h = 0; h < t.length; ) {
var c = t[h++];
switch (
(c === BS.M && h > 1 && (i || (a += Sn(r, s, l, u, n, o))),
1 === h && ((l = r = t[h]), (u = s = t[h + 1])),
c)
) {
case BS.M:
(r = l = t[h++]), (s = u = t[h++]);
break;
case BS.L:
if (i) {
if (yn(r, s, t[h], t[h + 1], e, n, o)) return !0;
} else a += Sn(r, s, t[h], t[h + 1], n, o) || 0;
(r = t[h++]), (s = t[h++]);
break;
case BS.C:
if (i) {
if (
xn(r, s, t[h++], t[h++], t[h++], t[h++], t[h], t[h + 1], e, n, o)
)
return !0;
} else
a +=
Tn(r, s, t[h++], t[h++], t[h++], t[h++], t[h], t[h + 1], n, o) ||
0;
(r = t[h++]), (s = t[h++]);
break;
case BS.Q:
if (i) {
if (_n(r, s, t[h++], t[h++], t[h], t[h + 1], e, n, o)) return !0;
} else a += An(r, s, t[h++], t[h++], t[h], t[h + 1], n, o) || 0;
(r = t[h++]), (s = t[h++]);
break;
case BS.A:
var d = t[h++],
f = t[h++],
p = t[h++],
g = t[h++],
m = t[h++],
v = t[h++];
h += 1;
var y = 1 - t[h++],
x = Math.cos(m) * p + d,
_ = Math.sin(m) * g + f;
h > 1 ? (a += Sn(r, s, x, _, n, o)) : ((l = x), (u = _));
var w = ((n - d) * g) / p + d;
if (i) {
if (bn(d, f, g, m, m + v, y, e, w, o)) return !0;
} else a += Dn(d, f, g, m, m + v, y, w, o);
(r = Math.cos(m + v) * p + d), (s = Math.sin(m + v) * g + f);
break;
case BS.R:
(l = r = t[h++]), (u = s = t[h++]);
var x = l + t[h++],
_ = u + t[h++];
if (i) {
if (
yn(l, u, x, u, e, n, o) ||
yn(x, u, x, _, e, n, o) ||
yn(x, _, l, _, e, n, o) ||
yn(l, _, l, u, e, n, o)
)
return !0;
} else (a += Sn(x, u, x, _, n, o)), (a += Sn(l, _, l, u, n, o));
break;
case BS.Z:
if (i) {
if (yn(r, s, l, u, e, n, o)) return !0;
} else a += Sn(r, s, l, u, n, o);
(r = l), (s = u);
}
}
return i || Mn(s, u) || (a += Sn(r, s, l, u, n, o) || 0), 0 !== a;
}
function Ln(t, e, i) {
return Cn(t, 0, !1, e, i);
}
function kn(t, e, i, n) {
return Cn(t, e, !0, i, n);
}
function Pn(t) {
di.call(this, t), (this.path = null);
}
function Nn(t, e, i, n, o, a, r, s, l, u, h) {
var c = l * (tM / 180),
d = (QS(c) * (t - i)) / 2 + (JS(c) * (e - n)) / 2,
f = (-1 * JS(c) * (t - i)) / 2 + (QS(c) * (e - n)) / 2,
p = (d * d) / (r * r) + (f * f) / (s * s);
p > 1 && ((r *= $S(p)), (s *= $S(p)));
var g =
(o === a ? -1 : 1) *
$S(
(r * r * (s * s) - r * r * (f * f) - s * s * (d * d)) /
(r * r * (f * f) + s * s * (d * d)),
) || 0,
m = (g * r * f) / s,
v = (g * -s * d) / r,
y = (t + i) / 2 + QS(c) * m - JS(c) * v,
x = (e + n) / 2 + JS(c) * m + QS(c) * v,
_ = nM([1, 0], [(d - m) / r, (f - v) / s]),
w = [(d - m) / r, (f - v) / s],
b = [(-1 * d - m) / r, (-1 * f - v) / s],
S = nM(w, b);
iM(w, b) <= -1 && (S = tM),
iM(w, b) >= 1 && (S = 0),
0 === a && S > 0 && (S -= 2 * tM),
1 === a && S < 0 && (S += 2 * tM),
h.addData(u, y, x, r, s, _, S, c, a);
}
function On(t) {
if (!t) return new ES();
for (
var e,
i = 0,
n = 0,
o = i,
a = n,
r = new ES(),
s = ES.CMD,
l = t.match(oM),
u = 0;
u < l.length;
u++
) {
for (
var h,
c = l[u],
d = c.charAt(0),
f = c.match(aM) || [],
p = f.length,
g = 0;
g < p;
g++
)
f[g] = parseFloat(f[g]);
for (var m = 0; m < p; ) {
var v,
y,
x,
_,
w,
b,
S,
M = i,
I = n;
switch (d) {
case 'l':
(i += f[m++]), (n += f[m++]), (h = s.L), r.addData(h, i, n);
break;
case 'L':
(i = f[m++]), (n = f[m++]), (h = s.L), r.addData(h, i, n);
break;
case 'm':
(i += f[m++]),
(n += f[m++]),
(h = s.M),
r.addData(h, i, n),
(o = i),
(a = n),
(d = 'l');
break;
case 'M':
(i = f[m++]),
(n = f[m++]),
(h = s.M),
r.addData(h, i, n),
(o = i),
(a = n),
(d = 'L');
break;
case 'h':
(i += f[m++]), (h = s.L), r.addData(h, i, n);
break;
case 'H':
(i = f[m++]), (h = s.L), r.addData(h, i, n);
break;
case 'v':
(n += f[m++]), (h = s.L), r.addData(h, i, n);
break;
case 'V':
(n = f[m++]), (h = s.L), r.addData(h, i, n);
break;
case 'C':
(h = s.C),
r.addData(h, f[m++], f[m++], f[m++], f[m++], f[m++], f[m++]),
(i = f[m - 2]),
(n = f[m - 1]);
break;
case 'c':
(h = s.C),
r.addData(
h,
f[m++] + i,
f[m++] + n,
f[m++] + i,
f[m++] + n,
f[m++] + i,
f[m++] + n,
),
(i += f[m - 2]),
(n += f[m - 1]);
break;
case 'S':
(v = i), (y = n);
var T = r.len(),
A = r.data;
e === s.C && ((v += i - A[T - 4]), (y += n - A[T - 3])),
(h = s.C),
(M = f[m++]),
(I = f[m++]),
(i = f[m++]),
(n = f[m++]),
r.addData(h, v, y, M, I, i, n);
break;
case 's':
(v = i), (y = n);
var T = r.len(),
A = r.data;
e === s.C && ((v += i - A[T - 4]), (y += n - A[T - 3])),
(h = s.C),
(M = i + f[m++]),
(I = n + f[m++]),
(i += f[m++]),
(n += f[m++]),
r.addData(h, v, y, M, I, i, n);
break;
case 'Q':
(M = f[m++]),
(I = f[m++]),
(i = f[m++]),
(n = f[m++]),
(h = s.Q),
r.addData(h, M, I, i, n);
break;
case 'q':
(M = f[m++] + i),
(I = f[m++] + n),
(i += f[m++]),
(n += f[m++]),
(h = s.Q),
r.addData(h, M, I, i, n);
break;
case 'T':
(v = i), (y = n);
var T = r.len(),
A = r.data;
e === s.Q && ((v += i - A[T - 4]), (y += n - A[T - 3])),
(i = f[m++]),
(n = f[m++]),
(h = s.Q),
r.addData(h, v, y, i, n);
break;
case 't':
(v = i), (y = n);
var T = r.len(),
A = r.data;
e === s.Q && ((v += i - A[T - 4]), (y += n - A[T - 3])),
(i += f[m++]),
(n += f[m++]),
(h = s.Q),
r.addData(h, v, y, i, n);
break;
case 'A':
(x = f[m++]),
(_ = f[m++]),
(w = f[m++]),
(b = f[m++]),
(S = f[m++]),
Nn(
(M = i),
(I = n),
(i = f[m++]),
(n = f[m++]),
b,
S,
x,
_,
w,
(h = s.A),
r,
);
break;
case 'a':
(x = f[m++]),
(_ = f[m++]),
(w = f[m++]),
(b = f[m++]),
(S = f[m++]),
Nn(
(M = i),
(I = n),
(i += f[m++]),
(n += f[m++]),
b,
S,
x,
_,
w,
(h = s.A),
r,
);
}
}
('z' !== d && 'Z' !== d) || ((h = s.Z), r.addData(h), (i = o), (n = a)),
(e = h);
}
return r.toStatic(), r;
}
function En(t, e) {
var i = On(t);
return (
(e = e || {}),
(e.buildPath = function (t) {
if (t.setData)
t.setData(i.data), (e = t.getContext()) && t.rebuildPath(e);
else {
var e = t;
i.rebuildPath(e);
}
}),
(e.applyTransform = function (t) {
KS(i, t), this.dirty(!0);
}),
e
);
}
function Rn(t, e) {
return new Pn(En(t, e));
}
function zn(t, e) {
return Pn.extend(En(t, e));
}
function Bn(t, e, i, n, o, a, r) {
var s = 0.5 * (i - t),
l = 0.5 * (n - e);
return (
(2 * (e - i) + s + l) * r + (-3 * (e - i) - 2 * s - l) * a + s * o + e
);
}
function Vn(t, e, i) {
var n = e.points,
o = e.smooth;
if (n && n.length >= 2) {
if (o && 'spline' !== o) {
var a = fM(n, o, i, e.smoothConstraint);
t.moveTo(n[0][0], n[0][1]);
for (var r = n.length, s = 0; s < (i ? r : r - 1); s++) {
var l = a[2 * s],
u = a[2 * s + 1],
h = n[(s + 1) % r];
t.bezierCurveTo(l[0], l[1], u[0], u[1], h[0], h[1]);
}
} else {
'spline' === o && (n = dM(n, i)), t.moveTo(n[0][0], n[0][1]);
for (var s = 1, c = n.length; s < c; s++) t.lineTo(n[s][0], n[s][1]);
}
i && t.closePath();
}
}
function Gn(t, e, i) {
var n = i && i.lineWidth;
if (e && n) {
var o = e.x1,
a = e.x2,
r = e.y1,
s = e.y2;
mM(2 * o) === mM(2 * a)
? (t.x1 = t.x2 = Wn(o, n, !0))
: ((t.x1 = o), (t.x2 = a)),
mM(2 * r) === mM(2 * s)
? (t.y1 = t.y2 = Wn(r, n, !0))
: ((t.y1 = r), (t.y2 = s));
}
}
function Fn(t, e, i) {
var n = i && i.lineWidth;
if (e && n) {
var o = e.x,
a = e.y,
r = e.width,
s = e.height;
(t.x = Wn(o, n, !0)),
(t.y = Wn(a, n, !0)),
(t.width = Math.max(Wn(o + r, n, !1) - t.x, 0 === r ? 0 : 1)),
(t.height = Math.max(Wn(a + s, n, !1) - t.y, 0 === s ? 0 : 1));
}
}
function Wn(t, e, i) {
var n = mM(2 * t);
return (n + mM(e)) % 2 == 0 ? n / 2 : (n + (i ? 1 : -1)) / 2;
}
function Hn(t, e, i) {
var n = t.cpx2,
o = t.cpy2;
return null === n || null === o
? [
(i ? en : tn)(t.x1, t.cpx1, t.cpx2, t.x2, e),
(i ? en : tn)(t.y1, t.cpy1, t.cpy2, t.y2, e),
]
: [
(i ? ln : sn)(t.x1, t.cpx1, t.x2, e),
(i ? ln : sn)(t.y1, t.cpy1, t.y2, e),
];
}
function Zn(t) {
di.call(this, t),
(this._displayables = []),
(this._temporaryDisplayables = []),
(this._cursor = 0),
(this.notClear = !0);
}
function Un(t) {
return Pn.extend(t);
}
function Xn(t, e, i, n) {
var o = Rn(t, e);
return (
i && ('center' === n && (i = Yn(i, o.getBoundingRect())), qn(o, i)), o
);
}
function jn(t, e, i) {
var n = new fi({
style: { image: t, x: e.x, y: e.y, width: e.width, height: e.height },
onload: function (t) {
if ('center' === i) {
var o = { width: t.width, height: t.height };
n.setStyle(Yn(e, o));
}
},
});
return n;
}
function Yn(t, e) {
var i,
n = e.width / e.height,
o = t.height * n;
return (
(i = o <= t.width ? t.height : (o = t.width) / n),
{
x: t.x + t.width / 2 - o / 2,
y: t.y + t.height / 2 - i / 2,
width: o,
height: i,
}
);
}
function qn(t, e) {
if (t.applyTransform) {
var i = t.getBoundingRect().calculateTransform(e);
t.applyTransform(i);
}
}
function Kn(t) {
var e = t.shape,
i = t.style.lineWidth;
return (
CM(2 * e.x1) === CM(2 * e.x2) && (e.x1 = e.x2 = Jn(e.x1, i, !0)),
CM(2 * e.y1) === CM(2 * e.y2) && (e.y1 = e.y2 = Jn(e.y1, i, !0)),
t
);
}
function $n(t) {
var e = t.shape,
i = t.style.lineWidth,
n = e.x,
o = e.y,
a = e.width,
r = e.height;
return (
(e.x = Jn(e.x, i, !0)),
(e.y = Jn(e.y, i, !0)),
(e.width = Math.max(Jn(n + a, i, !1) - e.x, 0 === a ? 0 : 1)),
(e.height = Math.max(Jn(o + r, i, !1) - e.y, 0 === r ? 0 : 1)),
t
);
}
function Jn(t, e, i) {
var n = CM(2 * t);
return (n + CM(e)) % 2 == 0 ? n / 2 : (n + (i ? 1 : -1)) / 2;
}
function Qn(t) {
return null != t && 'none' !== t;
}
function to(t) {
if ('string' != typeof t) return t;
var e = EM.get(t);
return e || ((e = Ht(t, -0.1)), RM < 1e4 && (EM.set(t, e), RM++)), e;
}
function eo(t) {
if (t.__hoverStlDirty) {
t.__hoverStlDirty = !1;
var e = t.__hoverStl;
if (e) {
var i = (t.__cachedNormalStl = {});
t.__cachedNormalZ2 = t.z2;
var n = t.style;
for (var o in e) null != e[o] && (i[o] = n[o]);
(i.fill = n.fill), (i.stroke = n.stroke);
} else t.__cachedNormalStl = t.__cachedNormalZ2 = null;
}
}
function io(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 o = t,
a = t.style;
i && (a = (o = n.addHover(t)).style),
bo(a),
i || eo(o),
a.extendFrom(e),
no(a, e, 'fill'),
no(a, e, 'stroke'),
wo(a),
i || (t.dirty(!1), (t.z2 += NM));
}
}
}
function no(t, e, i) {
!Qn(e[i]) && Qn(t[i]) && (t[i] = to(t[i]));
}
function oo(t) {
var e = t.__highlighted;
if (e)
if (((t.__highlighted = !1), 'layer' === e))
t.__zr && t.__zr.removeHover(t);
else if (e) {
var i = t.style,
n = t.__cachedNormalStl;
n && (bo(i), t.setStyle(n), wo(i));
var o = t.__cachedNormalZ2;
null != o && t.z2 - o === NM && (t.z2 = o);
}
}
function ao(t, e) {
t.isGroup
? t.traverse(function (t) {
!t.isGroup && e(t);
})
: e(t);
}
function ro(t, e) {
(e = t.__hoverStl = !1 !== e && (e || {})),
(t.__hoverStlDirty = !0),
t.__highlighted && ((t.__cachedNormalStl = null), oo(t), io(t));
}
function so(t) {
return t && t.__isEmphasisEntered;
}
function lo(t) {
(this.__hoverSilentOnTouch && t.zrByTouch) ||
(!this.__isEmphasisEntered && ao(this, io));
}
function uo(t) {
(this.__hoverSilentOnTouch && t.zrByTouch) ||
(!this.__isEmphasisEntered && ao(this, oo));
}
function ho() {
(this.__isEmphasisEntered = !0), ao(this, io);
}
function co() {
(this.__isEmphasisEntered = !1), ao(this, oo);
}
function fo(t, e, i) {
t.isGroup
? t.traverse(function (t) {
!t.isGroup && ro(t, t.hoverStyle || e);
})
: ro(t, t.hoverStyle || e),
po(t, i);
}
function po(t, e) {
var i = !1 === e;
if (
((t.__hoverSilentOnTouch = null != e && e.hoverSilentOnTouch),
!i || t.__hoverStyleTrigger)
) {
var n = i ? 'off' : 'on';
t[n]('mouseover', lo)[n]('mouseout', uo),
t[n]('emphasis', ho)[n]('normal', co),
(t.__hoverStyleTrigger = !i);
}
}
function go(t, e, i, n, o, a, r) {
var s,
l = (o = o || PM).labelFetcher,
u = o.labelDataIndex,
h = o.labelDimIndex,
c = i.getShallow('show'),
d = n.getShallow('show');
(c || d) &&
(l && (s = l.getFormattedLabel(u, 'normal', null, h)),
null == s &&
(s = x(o.defaultText) ? o.defaultText(u, o) : o.defaultText));
var f = c ? s : null,
p = d
? A(l ? l.getFormattedLabel(u, 'emphasis', null, h) : null, s)
: null;
(null == f && null == p) || (mo(t, i, a, o), mo(e, n, r, o, !0)),
(t.text = f),
(e.text = p);
}
function mo(t, e, i, n, o) {
return vo(t, e, n, o), i && a(t, i), t;
}
function vo(t, e, i, n) {
if ((i = i || PM).isRectText) {
var o = e.getShallow('position') || (n ? null : 'inside');
'outside' === o && (o = 'top'),
(t.textPosition = o),
(t.textOffset = e.getShallow('offset'));
var a = e.getShallow('rotate');
null != a && (a *= Math.PI / 180),
(t.textRotation = a),
(t.textDistance = A(e.getShallow('distance'), n ? null : 5));
}
var r,
s = e.ecModel,
l = s && s.option.textStyle,
u = yo(e);
if (u) {
r = {};
for (var h in u)
if (u.hasOwnProperty(h)) {
var c = e.getModel(['rich', h]);
xo((r[h] = {}), c, l, i, n);
}
}
return (
(t.rich = r),
xo(t, e, l, i, n, !0),
i.forceRich && !i.textStyle && (i.textStyle = {}),
t
);
}
function yo(t) {
for (var e; t && t !== t.ecModel; ) {
var i = (t.option || PM).rich;
if (i) {
e = e || {};
for (var n in i) i.hasOwnProperty(n) && (e[n] = 1);
}
t = t.parentModel;
}
return e;
}
function xo(t, e, i, n, o, a) {
(i = (!o && i) || PM),
(t.textFill = _o(e.getShallow('color'), n) || i.color),
(t.textStroke =
_o(e.getShallow('textBorderColor'), n) || i.textBorderColor),
(t.textStrokeWidth = A(
e.getShallow('textBorderWidth'),
i.textBorderWidth,
)),
(t.insideRawTextPosition = t.textPosition),
o ||
(a && ((t.insideRollbackOpt = n), wo(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 = _o(e.getShallow('backgroundColor'), n)),
(t.textPadding = e.getShallow('padding')),
(t.textBorderColor = _o(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 _o(t, e) {
return 'auto' !== t ? t : e && e.autoColor ? e.autoColor : null;
}
function wo(t) {
var e = t.insideRollbackOpt;
if (e && null == t.textFill) {
var i,
n = e.useInsideStyle,
o = t.insideRawTextPosition,
a = e.autoColor;
!1 !== n &&
(!0 === n ||
(e.isRectText && o && 'string' == typeof o && o.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 bo(t) {
var e = t.insideRollback;
e &&
((t.textFill = e.textFill),
(t.textStroke = e.textStroke),
(t.textStrokeWidth = e.textStrokeWidth),
(t.insideRollback = null));
}
function So(t, e) {
var i = e || e.getModel('textStyle');
return P(
[
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 Mo(t, e, i, n, o, a) {
if (
('function' == typeof o && ((a = o), (o = null)),
n && n.isAnimationEnabled())
) {
var r = t ? 'Update' : '',
s = n.getShallow('animationDuration' + r),
l = n.getShallow('animationEasing' + r),
u = n.getShallow('animationDelay' + r);
'function' == typeof u &&
(u = u(
o,
n.getAnimationDelayParams ? n.getAnimationDelayParams(e, o) : null,
)),
'function' == typeof s && (s = s(o)),
s > 0
? e.animateTo(i, s, u || 0, l, a, !!a)
: (e.stopAnimation(), e.attr(i), a && a());
} else e.stopAnimation(), e.attr(i), a && a();
}
function Io(t, e, i, n, o) {
Mo(!0, t, e, i, n, o);
}
function To(t, e, i, n, o) {
Mo(!1, t, e, i, n, o);
}
function Ao(t, e) {
for (var i = _t([]); t && t !== e; )
bt(i, t.getLocalTransform(), i), (t = t.parent);
return i;
}
function Do(t, e, i) {
return (
e && !c(e) && (e = Tw.getLocalTransform(e)),
i && (e = Tt([], e)),
Q([], t, e)
);
}
function Co(t, e, i) {
var n =
0 === e[4] || 0 === e[5] || 0 === e[0]
? 1
: Math.abs((2 * e[4]) / e[0]),
o =
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 ? -o : 'bottom' === t ? o : 0,
];
return (
(a = Do(a, e, i)),
Math.abs(a[0]) > Math.abs(a[1])
? a[0] > 0
? 'right'
: 'left'
: a[1] > 0
? 'bottom'
: 'top'
);
}
function Lo(t, e, i, n) {
function o(t) {
var e = { position: F(t.position), rotation: t.rotation };
return t.shape && (e.shape = a({}, t.shape)), e;
}
if (t && e) {
var r = (function (t) {
var e = {};
return (
t.traverse(function (t) {
!t.isGroup && t.anid && (e[t.anid] = t);
}),
e
);
})(t);
e.traverse(function (t) {
if (!t.isGroup && t.anid) {
var e = r[t.anid];
if (e) {
var n = o(t);
t.attr(o(e)), Io(t, n, i, t.dataIndex);
}
}
});
}
}
function ko(t, e) {
return f(t, function (t) {
var i = t[0];
(i = LM(i, e.x)), (i = kM(i, e.x + e.width));
var n = t[1];
return (n = LM(n, e.y)), (n = kM(n, e.y + e.height)), [i, n];
});
}
function Po(t, e, i) {
var n = ((e = a({ rectHover: !0 }, e)).style = { strokeNoScale: !0 });
if (((i = i || { x: -1, y: -1, width: 2, height: 2 }), t))
return 0 === t.indexOf('image://')
? ((n.image = t.slice(8)), r(n, i), new fi(e))
: Xn(t.replace('path://', ''), e, i, 'center');
}
function No(t, e, i) {
(this.parentModel = e), (this.ecModel = i), (this.option = t);
}
function Oo(t, e, i) {
for (
var n = 0;
n < e.length &&
(!e[n] || null != (t = t && 'object' == typeof t ? t[e[n]] : null));
n++
);
return null == t && i && (t = i.get(e)), t;
}
function Eo(t, e) {
var i = HM(t).getParent;
return i ? i.call(t, e) : t.parentModel;
}
function Ro(t) {
return [t || '', ZM++, Math.random().toFixed(5)].join('_');
}
function zo(t) {
return t.replace(/^\s+/, '').replace(/\s+$/, '');
}
function Bo(t, e, i, n) {
var o = e[1] - e[0],
a = i[1] - i[0];
if (0 === o) return 0 === a ? i[0] : (i[0] + i[1]) / 2;
if (n)
if (o > 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]) / o) * a + i[0];
}
function Vo(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
? zo(t).match(/%$/)
? (parseFloat(t) / 100) * e
: parseFloat(t)
: null == t
? NaN
: +t;
}
function Go(t, e, i) {
return (
null == e && (e = 10),
(e = Math.min(Math.max(0, e), 20)),
(t = (+t).toFixed(e)),
i ? t : +t
);
}
function Fo(t) {
return (
t.sort(function (t, e) {
return t - e;
}),
t
);
}
function Wo(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 Ho(t) {
var e = t.toString(),
i = e.indexOf('e');
if (i > 0) {
var n = +e.slice(i + 1);
return n < 0 ? -n : 0;
}
var o = e.indexOf('.');
return o < 0 ? 0 : e.length - 1 - o;
}
function Zo(t, e) {
var i = Math.log,
n = Math.LN10,
o = Math.floor(i(t[1] - t[0]) / n),
a = Math.round(i(Math.abs(e[1] - e[0])) / n),
r = Math.min(Math.max(-o + a, 0), 20);
return isFinite(r) ? r : 20;
}
function Uo(t, e, i) {
if (!t[e]) return 0;
var n = p(
t,
function (t, e) {
return t + (isNaN(e) ? 0 : e);
},
0,
);
if (0 === n) return 0;
for (
var o = Math.pow(10, i),
a = f(t, function (t) {
return ((isNaN(t) ? 0 : t) / n) * o * 100;
}),
r = 100 * o,
s = f(a, function (t) {
return Math.floor(t);
}),
l = p(
s,
function (t, e) {
return t + e;
},
0,
),
u = f(a, function (t, e) {
return t - s[e];
});
l < r;
) {
for (
var h = Number.NEGATIVE_INFINITY, c = null, d = 0, g = u.length;
d < g;
++d
)
u[d] > h && ((h = u[d]), (c = d));
++s[c], (u[c] = 0), ++l;
}
return s[e] / o;
}
function Xo(t) {
var e = 2 * Math.PI;
return ((t % e) + e) % e;
}
function jo(t) {
return t > -UM && t < UM;
}
function Yo(t) {
if (t instanceof Date) return t;
if ('string' == typeof t) {
var e = jM.exec(t);
if (!e) return new Date(NaN);
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 null == t ? new Date(NaN) : new Date(Math.round(t));
}
function qo(t) {
return Math.pow(10, Ko(t));
}
function Ko(t) {
return Math.floor(Math.log(t) / Math.LN10);
}
function $o(t, e) {
var i,
n = Ko(t),
o = Math.pow(10, n),
a = t / o;
return (
(i = e
? a < 1.5
? 1
: a < 2.5
? 2
: a < 4
? 3
: a < 7
? 5
: 10
: a < 1
? 1
: a < 2
? 2
: a < 3
? 3
: a < 5
? 5
: 10),
(t = i * o),
n >= -20 ? +t.toFixed(n < 0 ? -n : 0) : t
);
}
function Jo(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, o = 0; o < t.length; ) {
for (var a = t[o].interval, r = t[o].close, s = 0; s < 2; s++)
a[s] <= i && ((a[s] = i), (r[s] = s ? 1 : 1 - n)),
(i = a[s]),
(n = r[s]);
a[0] === a[1] && r[0] * r[1] != 1 ? t.splice(o, 1) : o++;
}
return t;
}
function Qo(t) {
return t - parseFloat(t) >= 0;
}
function ta(t) {
return isNaN(t)
? '-'
: (t = (t + '').split('.'))[0].replace(
/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,
'$1,',
) + (t.length > 1 ? '.' + t[1] : '');
}
function ea(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 ia(t) {
return null == t
? ''
: (t + '').replace(KM, function (t, e) {
return $M[e];
});
}
function na(t, e, i) {
y(e) || (e = [e]);
var n = e.length;
if (!n) return '';
for (var o = e[0].$vars || [], a = 0; a < o.length; a++) {
var r = JM[a];
t = t.replace(QM(r), QM(r, 0));
}
for (var s = 0; s < n; s++)
for (var l = 0; l < o.length; l++) {
var u = e[s][o[l]];
t = t.replace(QM(JM[l], s), i ? ia(u) : u);
}
return t;
}
function oa(t, e, i) {
return (
d(e, function (e, n) {
t = t.replace('{' + n + '}', i ? ia(e) : e);
}),
t
);
}
function aa(t, e) {
var i = (t = _(t) ? { color: t, extraCssText: e } : t || {}).color,
n = t.type,
e = t.extraCssText,
o = t.renderMode || 'html',
a = t.markerId || 'X';
return i
? 'html' === o
? 'subItem' === n
? ''
: ''
: {
renderMode: o,
content: '{marker' + a + '|} ',
style: { color: i },
}
: '';
}
function ra(t, e) {
return (t += ''), '0000'.substr(0, e - t.length) + t;
}
function sa(t, e, i) {
('week' !== t &&
'month' !== t &&
'quarter' !== t &&
'half-year' !== t &&
'year' !== t) ||
(t = 'MM-dd\nyyyy');
var n = Yo(e),
o = i ? 'UTC' : '',
a = n['get' + o + 'FullYear'](),
r = n['get' + o + 'Month']() + 1,
s = n['get' + o + 'Date'](),
l = n['get' + o + 'Hours'](),
u = n['get' + o + 'Minutes'](),
h = n['get' + o + 'Seconds'](),
c = n['get' + o + 'Milliseconds']();
return (t = t
.replace('MM', ra(r, 2))
.replace('M', r)
.replace('yyyy', a)
.replace('yy', a % 100)
.replace('dd', ra(s, 2))
.replace('d', s)
.replace('hh', ra(l, 2))
.replace('h', l)
.replace('mm', ra(u, 2))
.replace('m', u)
.replace('ss', ra(h, 2))
.replace('s', h)
.replace('SSS', ra(c, 3)));
}
function la(t) {
return t ? t.charAt(0).toUpperCase() + t.substr(1) : t;
}
function ua(t, e, i, n, o) {
var a = 0,
r = 0;
null == n && (n = 1 / 0), null == o && (o = 1 / 0);
var s = 0;
e.eachChild(function (l, u) {
var h,
c,
d = l.position,
f = l.getBoundingRect(),
p = e.childAt(u + 1),
g = p && p.getBoundingRect();
if ('horizontal' === t) {
var m = f.width + (g ? -g.x + f.x : 0);
(h = a + m) > n || l.newline
? ((a = 0), (h = m), (r += s + i), (s = f.height))
: (s = Math.max(s, f.height));
} else {
var v = f.height + (g ? -g.y + f.y : 0);
(c = r + v) > o || l.newline
? ((a += s + i), (r = 0), (c = v), (s = f.width))
: (s = Math.max(s, f.width));
}
l.newline ||
((d[0] = a),
(d[1] = r),
'horizontal' === t ? (a = h + i) : (r = c + i));
});
}
function ha(t, e, i) {
var n = e.width,
o = e.height,
a = Vo(t.x, n),
r = Vo(t.y, o),
s = Vo(t.x2, n),
l = Vo(t.y2, o);
return (
(isNaN(a) || isNaN(parseFloat(t.x))) && (a = 0),
(isNaN(s) || isNaN(parseFloat(t.x2))) && (s = n),
(isNaN(r) || isNaN(parseFloat(t.y))) && (r = 0),
(isNaN(l) || isNaN(parseFloat(t.y2))) && (l = o),
(i = qM(i || 0)),
{
width: Math.max(s - a - i[1] - i[3], 0),
height: Math.max(l - r - i[0] - i[2], 0),
}
);
}
function ca(t, e, i) {
i = qM(i || 0);
var n = e.width,
o = e.height,
a = Vo(t.left, n),
r = Vo(t.top, o),
s = Vo(t.right, n),
l = Vo(t.bottom, o),
u = Vo(t.width, n),
h = Vo(t.height, o),
c = i[2] + i[0],
d = i[1] + i[3],
f = t.aspect;
switch (
(isNaN(u) && (u = n - s - d - a),
isNaN(h) && (h = o - l - c - r),
null != f &&
(isNaN(u) && isNaN(h) && (f > n / o ? (u = 0.8 * n) : (h = 0.8 * o)),
isNaN(u) && (u = f * h),
isNaN(h) && (h = u / f)),
isNaN(a) && (a = n - s - u - d),
isNaN(r) && (r = o - l - h - c),
t.left || t.right)
) {
case 'center':
a = n / 2 - u / 2 - i[3];
break;
case 'right':
a = n - u - d;
}
switch (t.top || t.bottom) {
case 'middle':
case 'center':
r = o / 2 - h / 2 - i[0];
break;
case 'bottom':
r = o - h - c;
}
(a = a || 0),
(r = r || 0),
isNaN(u) && (u = n - d - a - (s || 0)),
isNaN(h) && (h = o - c - r - (l || 0));
var p = new de(a + i[3], r + i[0], u, h);
return (p.margin = i), p;
}
function da(t, e, i, n, o) {
var a = !o || !o.hv || o.hv[0],
s = !o || !o.hv || o.hv[1],
l = (o && o.boundingMode) || 'all';
if (a || s) {
var u;
if ('raw' === l)
u =
'group' === t.type
? new de(0, 0, +e.width || 0, +e.height || 0)
: t.getBoundingRect();
else if (((u = t.getBoundingRect()), t.needLocalTransform())) {
var h = t.getLocalTransform();
(u = u.clone()).applyTransform(h);
}
e = ca(r({ width: u.width, height: u.height }, e), i, n);
var c = t.position,
d = a ? e.x - u.x : 0,
f = s ? e.y - u.y : 0;
t.attr('position', 'raw' === l ? [d, f] : [c[0] + d, c[1] + f]);
}
}
function fa(t, e) {
return null != t[oI[e][0]] || (null != t[oI[e][1]] && null != t[oI[e][2]]);
}
function pa(t, e, i) {
function n(i, n) {
var r = {},
l = 0,
u = {},
h = 0;
if (
(iI(i, function (e) {
u[e] = t[e];
}),
iI(i, function (t) {
o(e, t) && (r[t] = u[t] = e[t]), a(r, t) && l++, a(u, t) && h++;
}),
s[n])
)
return (
a(e, i[1]) ? (u[i[2]] = null) : a(e, i[2]) && (u[i[1]] = null), u
);
if (2 !== h && l) {
if (l >= 2) return r;
for (var c = 0; c < i.length; c++) {
var d = i[c];
if (!o(r, d) && o(t, d)) {
r[d] = t[d];
break;
}
}
return r;
}
return u;
}
function o(t, e) {
return t.hasOwnProperty(e);
}
function a(t, e) {
return null != t[e] && 'auto' !== t[e];
}
function r(t, e, i) {
iI(t, function (t) {
e[t] = i[t];
});
}
!w(i) && (i = {});
var s = i.ignoreSize;
!y(s) && (s = [s, s]);
var l = n(oI[0], 0),
u = n(oI[1], 1);
r(oI[0], t, l), r(oI[1], t, u);
}
function ga(t) {
return ma({}, t);
}
function ma(t, e) {
return (
e &&
t &&
iI(nI, function (i) {
e.hasOwnProperty(i) && (t[i] = e[i]);
}),
t
);
}
function va(t, e) {
for (var i = t.length, n = 0; n < i; n++) if (t[n].length > e) return t[n];
return t[i - 1];
}
function ya(t) {
var e = t.get('coordinateSystem'),
i = {
coordSysName: e,
coordSysDims: [],
axisMap: R(),
categoryAxisMap: R(),
},
n = fI[e];
if (n) return n(t, i, i.axisMap, i.categoryAxisMap), i;
}
function xa(t) {
return 'category' === t.get('type');
}
function _a(t) {
(this.fromDataset = t.fromDataset),
(this.data = t.data || (t.sourceFormat === vI ? {} : [])),
(this.sourceFormat = t.sourceFormat || yI),
(this.seriesLayoutBy = t.seriesLayoutBy || _I),
(this.dimensionsDefine = t.dimensionsDefine),
(this.encodeDefine = t.encodeDefine && R(t.encodeDefine)),
(this.startIndex = t.startIndex || 0),
(this.dimensionsDetectCount = t.dimensionsDetectCount);
}
function wa(t) {
var e = t.option.source,
i = yI;
if (S(e)) i = xI;
else if (y(e)) {
0 === e.length && (i = gI);
for (var n = 0, o = e.length; n < o; n++) {
var a = e[n];
if (null != a) {
if (y(a)) {
i = gI;
break;
}
if (w(a)) {
i = mI;
break;
}
}
}
} else if (w(e)) {
for (var r in e)
if (e.hasOwnProperty(r) && c(e[r])) {
i = vI;
break;
}
} else if (null != e) throw new Error('Invalid data');
bI(t).sourceFormat = i;
}
function ba(t) {
return bI(t).source;
}
function Sa(t) {
bI(t).datasetMap = R();
}
function Ma(t) {
var e = t.option,
i = e.data,
n = S(i) ? xI : pI,
o = !1,
a = e.seriesLayoutBy,
r = e.sourceHeader,
s = e.dimensions,
l = La(t);
if (l) {
var u = l.option;
(i = u.source),
(n = bI(l).sourceFormat),
(o = !0),
(a = a || u.seriesLayoutBy),
null == r && (r = u.sourceHeader),
(s = s || u.dimensions);
}
var h = Ia(i, n, a, r, s),
c = e.encode;
!c && l && (c = Ca(t, l, i, n, a, h)),
(bI(t).source = new _a({
data: i,
fromDataset: o,
seriesLayoutBy: a,
sourceFormat: n,
dimensionsDefine: h.dimensionsDefine,
startIndex: h.startIndex,
dimensionsDetectCount: h.dimensionsDetectCount,
encodeDefine: c,
}));
}
function Ia(t, e, i, n, o) {
if (!t) return { dimensionsDefine: Ta(o) };
var a, r, s;
if (e === gI)
'auto' === n || null == n
? Aa(
function (t) {
null != t && '-' !== t && (_(t) ? null == r && (r = 1) : (r = 0));
},
i,
t,
10,
)
: (r = n ? 1 : 0),
o ||
1 !== r ||
((o = []),
Aa(
function (t, e) {
o[e] = null != t ? t : '';
},
i,
t,
)),
(a = o ? o.length : i === wI ? t.length : t[0] ? t[0].length : null);
else if (e === mI) o || ((o = Da(t)), (s = !0));
else if (e === vI)
o ||
((o = []),
(s = !0),
d(t, function (t, e) {
o.push(e);
}));
else if (e === pI) {
var l = Li(t[0]);
a = (y(l) && l.length) || 1;
}
var u;
return (
s &&
d(o, function (t, e) {
'name' === (w(t) ? t.name : t) && (u = e);
}),
{
startIndex: r,
dimensionsDefine: Ta(o),
dimensionsDetectCount: a,
potentialNameDimIndex: u,
}
);
}
function Ta(t) {
if (t) {
var e = R();
return f(t, function (t, i) {
if (null == (t = a({}, w(t) ? t : { name: t })).name) return t;
(t.name += ''), null == t.displayName && (t.displayName = t.name);
var n = e.get(t.name);
return n ? (t.name += '-' + n.count++) : e.set(t.name, { count: 1 }), t;
});
}
}
function Aa(t, e, i, n) {
if ((null == n && (n = 1 / 0), e === wI))
for (a = 0; a < i.length && a < n; a++) t(i[a] ? i[a][0] : null, a);
else for (var o = i[0] || [], a = 0; a < o.length && a < n; a++) t(o[a], a);
}
function Da(t) {
for (var e, i = 0; i < t.length && !(e = t[i++]); );
if (e) {
var n = [];
return (
d(e, function (t, e) {
n.push(e);
}),
n
);
}
}
function Ca(t, e, i, n, o, a) {
var r = ya(t),
s = {},
l = [],
u = [],
h = t.subType,
c = R(['pie', 'map', 'funnel']),
f = R([
'line',
'bar',
'pictorialBar',
'scatter',
'effectScatter',
'candlestick',
'boxplot',
]);
if (r && null != f.get(h)) {
var p = t.ecModel,
g = bI(p).datasetMap,
m = e.uid + '_' + o,
v = g.get(m) || g.set(m, { categoryWayDim: 1, valueWayDim: 0 });
d(r.coordSysDims, function (t) {
if (null == r.firstCategoryDimIndex) {
e = v.valueWayDim++;
(s[t] = e), u.push(e);
} else if (r.categoryAxisMap.get(t)) (s[t] = 0), l.push(0);
else {
var e = v.categoryWayDim++;
(s[t] = e), u.push(e);
}
});
} else if (null != c.get(h)) {
for (var y, x = 0; x < 5 && null == y; x++)
Pa(i, n, o, a.dimensionsDefine, a.startIndex, x) || (y = x);
if (null != y) {
s.value = y;
var _ = a.potentialNameDimIndex || Math.max(y - 1, 0);
u.push(_), l.push(_);
}
}
return l.length && (s.itemName = l), u.length && (s.seriesName = u), s;
}
function La(t) {
var e = t.option;
if (!e.data) return t.ecModel.getComponent('dataset', e.datasetIndex || 0);
}
function ka(t, e) {
return Pa(
t.data,
t.sourceFormat,
t.seriesLayoutBy,
t.dimensionsDefine,
t.startIndex,
e,
);
}
function Pa(t, e, i, n, o, a) {
function r(t) {
return (
(null == t || !isFinite(t) || '' === t) &&
(!(!_(t) || '-' === t) || void 0)
);
}
var s;
if (S(t)) return !1;
var l;
if ((n && (l = w((l = n[a])) ? l.name : l), e === gI))
if (i === wI) {
for (var u = t[a], h = 0; h < (u || []).length && h < 5; h++)
if (null != (s = r(u[o + h]))) return s;
} else
for (h = 0; h < t.length && h < 5; h++) {
var c = t[o + h];
if (c && null != (s = r(c[a]))) return s;
}
else if (e === mI) {
if (!l) return;
for (h = 0; h < t.length && h < 5; h++)
if ((d = t[h]) && null != (s = r(d[l]))) return s;
} else if (e === vI) {
if (!l) return;
if (!(u = t[l]) || S(u)) return !1;
for (h = 0; h < u.length && h < 5; h++)
if (null != (s = r(u[h]))) return s;
} else if (e === pI)
for (h = 0; h < t.length && h < 5; h++) {
var d = t[h],
f = Li(d);
if (!y(f)) return !1;
if (null != (s = r(f[a]))) return s;
}
return !1;
}
function Na(t, e) {
if (e) {
var i = e.seiresIndex,
n = e.seriesId,
o = e.seriesName;
return (
(null != i && t.componentIndex !== i) ||
(null != n && t.id !== n) ||
(null != o && t.name !== o)
);
}
}
function Oa(t, e) {
var o = t.color && !t.colorLayer;
d(e, function (e, a) {
('colorLayer' === a && o) ||
lI.hasClass(a) ||
('object' == typeof e
? (t[a] = t[a] ? n(t[a], e, !1) : i(e))
: null == t[a] && (t[a] = e));
});
}
function Ea(t) {
(t = t),
(this.option = {}),
(this.option[SI] = 1),
(this._componentsMap = R({ series: [] })),
this._seriesIndices,
this._seriesIndicesMap,
Oa(t, this._theme.option),
n(t, hI, !1),
this.mergeOption(t);
}
function Ra(t, e) {
y(e) || (e = e ? [e] : []);
var i = {};
return (
d(e, function (e) {
i[e] = (t.get(e) || []).slice();
}),
i
);
}
function za(t, e, i) {
return e.type ? e.type : i ? i.subType : lI.determineSubType(t, e);
}
function Ba(t, e) {
t._seriesIndicesMap = R(
(t._seriesIndices =
f(e, function (t) {
return t.componentIndex;
}) || []),
);
}
function Va(t, e) {
return e.hasOwnProperty('subType')
? g(t, function (t) {
return t.subType === e.subType;
})
: t;
}
function Ga(t) {
d(
II,
function (e) {
this[e] = m(t[e], t);
},
this,
);
}
function Fa() {
this._coordinateSystems = [];
}
function Wa(t) {
(this._api = t),
(this._timelineOptions = []),
(this._mediaList = []),
this._mediaDefault,
(this._currentMediaIndices = []),
this._optionBackup,
this._newBaseOption;
}
function Ha(t, e, i) {
var n,
o,
a = [],
r = [],
s = t.timeline;
if (
(t.baseOption && (o = t.baseOption),
(s || t.options) && ((o = o || {}), (a = (t.options || []).slice())),
t.media)
) {
o = o || {};
var l = t.media;
AI(l, function (t) {
t && t.option && (t.query ? r.push(t) : n || (n = t));
});
}
return (
o || (o = t),
o.timeline || (o.timeline = s),
AI(
[o].concat(a).concat(
f(r, function (t) {
return t.option;
}),
),
function (t) {
AI(e, function (e) {
e(t, i);
});
},
),
{ baseOption: o, timelineOptions: a, mediaDefault: n, mediaList: r }
);
}
function Za(t, e, i) {
var n = { width: e, height: i, aspectratio: e / i },
o = !0;
return (
d(t, function (t, e) {
var i = e.match(kI);
if (i && i[1] && i[2]) {
var a = i[1],
r = i[2].toLowerCase();
Ua(n[r], t, a) || (o = !1);
}
}),
o
);
}
function Ua(t, e, i) {
return 'min' === i ? t >= e : 'max' === i ? t <= e : t === e;
}
function Xa(t, e) {
return t.join(',') === e.join(',');
}
function ja(t, e) {
AI((e = e || {}), function (e, i) {
if (null != e) {
var n = t[i];
if (lI.hasClass(i)) {
e = Di(e);
var o = Pi((n = Di(n)), e);
t[i] = CI(o, function (t) {
return t.option && t.exist
? LI(t.exist, t.option, !0)
: t.exist || t.option;
});
} else t[i] = LI(n, e, !0);
}
});
}
function Ya(t) {
var e = t && t.itemStyle;
if (e)
for (var i = 0, o = OI.length; i < o; i++) {
var a = OI[i],
r = e.normal,
s = e.emphasis;
r &&
r[a] &&
((t[a] = t[a] || {}),
t[a].normal ? n(t[a].normal, r[a]) : (t[a].normal = r[a]),
(r[a] = null)),
s &&
s[a] &&
((t[a] = t[a] || {}),
t[a].emphasis ? n(t[a].emphasis, s[a]) : (t[a].emphasis = s[a]),
(s[a] = null));
}
}
function qa(t, e, i) {
if (t && t[e] && (t[e].normal || t[e].emphasis)) {
var n = t[e].normal,
o = t[e].emphasis;
n &&
(i ? ((t[e].normal = t[e].emphasis = null), r(t[e], n)) : (t[e] = n)),
o && ((t.emphasis = t.emphasis || {}), (t.emphasis[e] = o));
}
}
function Ka(t) {
qa(t, 'itemStyle'),
qa(t, 'lineStyle'),
qa(t, 'areaStyle'),
qa(t, 'label'),
qa(t, 'labelLine'),
qa(t, 'upperLabel'),
qa(t, 'edgeLabel');
}
function $a(t, e) {
var i = NI(t) && t[e],
n = NI(i) && i.textStyle;
if (n)
for (var o = 0, a = Yb.length; o < a; o++) {
var e = Yb[o];
n.hasOwnProperty(e) && (i[e] = n[e]);
}
}
function Ja(t) {
t && (Ka(t), $a(t, 'label'), t.emphasis && $a(t.emphasis, 'label'));
}
function Qa(t) {
if (NI(t)) {
Ya(t),
Ka(t),
$a(t, 'label'),
$a(t, 'upperLabel'),
$a(t, 'edgeLabel'),
t.emphasis &&
($a(t.emphasis, 'label'),
$a(t.emphasis, 'upperLabel'),
$a(t.emphasis, 'edgeLabel'));
var e = t.markPoint;
e && (Ya(e), Ja(e));
var i = t.markLine;
i && (Ya(i), Ja(i));
var n = t.markArea;
n && Ja(n);
var o = t.data;
if ('graph' === t.type) {
o = o || t.nodes;
var a = t.links || t.edges;
if (a && !S(a)) for (s = 0; s < a.length; s++) Ja(a[s]);
d(t.categories, function (t) {
Ka(t);
});
}
if (o && !S(o)) for (s = 0; s < o.length; s++) Ja(o[s]);
if ((e = t.markPoint) && e.data)
for (var r = e.data, s = 0; s < r.length; s++) Ja(r[s]);
if ((i = t.markLine) && i.data)
for (var l = i.data, s = 0; s < l.length; s++)
y(l[s]) ? (Ja(l[s][0]), Ja(l[s][1])) : Ja(l[s]);
'gauge' === t.type
? ($a(t, 'axisLabel'), $a(t, 'title'), $a(t, 'detail'))
: 'treemap' === t.type
? (qa(t.breadcrumb, 'itemStyle'),
d(t.levels, function (t) {
Ka(t);
}))
: 'tree' === t.type && Ka(t.leaves);
}
}
function tr(t) {
return y(t) ? t : t ? [t] : [];
}
function er(t) {
return (y(t) ? t[0] : t) || {};
}
function ir(t, e) {
e = e.split(',');
for (var i = t, n = 0; n < e.length && null != (i = i && i[e[n]]); n++);
return i;
}
function nr(t, e, i, n) {
e = e.split(',');
for (var o, a = t, r = 0; r < e.length - 1; r++)
null == a[(o = e[r])] && (a[o] = {}), (a = a[o]);
(n || null == a[e[r]]) && (a[e[r]] = i);
}
function or(t) {
d(RI, function (e) {
e[0] in t && !(e[1] in t) && (t[e[1]] = t[e[0]]);
});
}
function ar(t) {
d(t, function (e, i) {
var n = [],
o = [NaN, NaN],
a = [e.stackResultDimension, e.stackedOverDimension],
r = e.data,
s = e.isStackedByIndex,
l = r.map(a, function (a, l, u) {
var h = r.get(e.stackedDimension, u);
if (isNaN(h)) return o;
var c, d;
s ? (d = r.getRawIndex(u)) : (c = r.get(e.stackedByDimension, u));
for (var f = NaN, p = i - 1; p >= 0; p--) {
var g = t[p];
if (
(s || (d = g.data.rawIndexOf(g.stackedByDimension, c)), d >= 0)
) {
var m = g.data.getByRawIndex(g.stackResultDimension, d);
if ((h >= 0 && m > 0) || (h <= 0 && m < 0)) {
(h += m), (f = m);
break;
}
}
}
return (n[0] = h), (n[1] = f), n;
});
r.hostModel.setData(l), (e.data = l);
});
}
function rr(t, e) {
_a.isInstance(t) || (t = _a.seriesDataToSource(t)), (this._source = t);
var i = (this._data = t.data),
n = t.sourceFormat;
n === xI && ((this._offset = 0), (this._dimSize = e), (this._data = i)),
a(this, GI[n === gI ? n + '_' + t.seriesLayoutBy : n]);
}
function sr() {
return this._data.length;
}
function lr(t) {
return this._data[t];
}
function ur(t) {
for (var e = 0; e < t.length; e++) this._data.push(t[e]);
}
function hr(t, e, i, n) {
return null != i ? t[i] : t;
}
function cr(t, e, i, n) {
return dr(t[n], this._dimensionInfos[e]);
}
function dr(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 = +Yo(t)),
null == t || '' === t ? NaN : +t
);
}
function fr(t, e, i) {
if (t) {
var n = t.getRawDataItem(e);
if (null != n) {
var o,
a,
r = t.getProvider().getSource().sourceFormat,
s = t.getDimensionInfo(i);
return s && ((o = s.name), (a = s.index)), FI[r](n, e, a, o);
}
}
}
function pr(t, e, i) {
if (t) {
var n = t.getProvider().getSource().sourceFormat;
if (n === pI || n === mI) {
var o = t.getRawDataItem(e);
return n !== pI || w(o) || (o = null), o ? o[i] : void 0;
}
}
}
function gr(t) {
return new mr(t);
}
function mr(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 vr(t, e, i, n, o, a) {
XI.reset(i, n, o, a),
(t._callingProgress = e),
t._callingProgress(
{ start: i, end: n, count: n - i, next: XI.next },
t.context,
);
}
function yr(t, e) {
(t._dueIndex = t._outputDueEnd = t._dueEnd = 0),
(t._settedOutputEnd = null);
var i, n;
!e &&
t._reset &&
((i = t._reset(t.context)) &&
i.progress &&
((n = i.forceFirstProgress), (i = i.progress)),
y(i) && !i.length && (i = null)),
(t._progress = i),
(t._modBy = t._modDataCount = null);
var o = t._downstream;
return o && o.dirty(), n;
}
function xr(t) {
var e = t.name;
Oi(t) || (t.name = _r(t) || e);
}
function _r(t) {
var e = t.getRawData(),
i = [];
return (
d(e.mapDimension('seriesName', !0), function (t) {
var n = e.getDimensionInfo(t);
n.displayName && i.push(n.displayName);
}),
i.join(' ')
);
}
function wr(t) {
return t.model.getRawData().count();
}
function br(t) {
var e = t.model;
return e.setData(e.getRawData().cloneShallow()), Sr;
}
function Sr(t, e) {
t.end > e.outputData.count() &&
e.model.getRawData().cloneShallow(e.outputData);
}
function Mr(t, e) {
d(t.CHANGABLE_METHODS, function (i) {
t.wrapMethod(i, v(Ir, e));
});
}
function Ir(t) {
var e = Tr(t);
e && e.setOutputEnd(this.count());
}
function Tr(t) {
var e = (t.ecModel || {}).scheduler,
i = e && e.getPipeline(t.uid);
if (i) {
var n = i.currentTask;
if (n) {
var o = n.agentStubMap;
o && (n = o.get(t.uid));
}
return n;
}
}
function Ar() {
(this.group = new tb()),
(this.uid = Ro('viewChart')),
(this.renderTask = gr({ plan: Lr, reset: kr })),
(this.renderTask.context = { view: this });
}
function Dr(t, e) {
if (t && (t.trigger(e), 'group' === t.type))
for (var i = 0; i < t.childCount(); i++) Dr(t.childAt(i), e);
}
function Cr(t, e, i) {
var n = zi(t, e);
null != n
? d(Di(n), function (e) {
Dr(t.getItemGraphicEl(e), i);
})
: t.eachItemGraphicEl(function (t) {
Dr(t, i);
});
}
function Lr(t) {
return QI(t.model);
}
function kr(t) {
var e = t.model,
i = t.ecModel,
n = t.api,
o = t.payload,
a = e.pipelineContext.progressiveRender,
r = t.view,
s = o && JI(o).updateMethod,
l = a ? 'incrementalPrepareRender' : s && r[s] ? s : 'render';
return 'render' !== l && r[l](e, i, n, o), eT[l];
}
function Pr(t, e, i) {
function n() {
(h = new Date().getTime()), (c = null), t.apply(r, s || []);
}
var o,
a,
r,
s,
l,
u = 0,
h = 0,
c = null;
e = e || 0;
var d = function () {
(o = new Date().getTime()), (r = this), (s = arguments);
var t = l || e,
d = l || i;
(l = null),
(a = o - (d ? u : h) - t),
clearTimeout(c),
d ? (c = setTimeout(n, t)) : a >= 0 ? n() : (c = setTimeout(n, -a)),
(u = o);
};
return (
(d.clear = function () {
c && (clearTimeout(c), (c = null));
}),
(d.debounceNextCall = function (t) {
l = t;
}),
d
);
}
function Nr(t, e, i, n) {
var o = t[e];
if (o) {
var a = o[iT] || o,
r = o[oT];
if (o[nT] !== i || r !== n) {
if (null == i || !n) return (t[e] = a);
((o = t[e] = Pr(a, i, 'debounce' === n))[iT] = a),
(o[oT] = n),
(o[nT] = i);
}
return o;
}
}
function Or(t, e) {
var i = t[e];
i && i[iT] && (t[e] = i[iT]);
}
function Er(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 = R());
}
function Rr(t, e, i, n, o) {
function a(t, e) {
return t.setDirty && (!t.dirtyMap || t.dirtyMap.get(e.__pipeline.id));
}
o = o || {};
var r;
d(e, function (e, s) {
if (!o.visualType || o.visualType === e.visualType) {
var l = t._stageTaskMap.get(e.uid),
u = l.seriesTaskMap,
h = l.overallTask;
if (h) {
var c,
d = h.agentStubMap;
d.each(function (t) {
a(o, t) && (t.dirty(), (c = !0));
}),
c && h.dirty(),
hT(h, n);
var f = t.getPerformArgs(h, o.block);
d.each(function (t) {
t.perform(f);
}),
(r |= h.perform(f));
} else
u &&
u.each(function (s, l) {
a(o, s) && s.dirty();
var u = t.getPerformArgs(s, o.block);
(u.skip =
!e.performRawSeries && i.isSeriesFiltered(s.context.model)),
hT(s, n),
(r |= s.perform(u));
});
}
}),
(t.unfinished |= r);
}
function zr(t, e, i, n, o) {
function a(i) {
var a = i.uid,
s = r.get(a) || r.set(a, gr({ plan: Hr, reset: Zr, count: Xr }));
(s.context = {
model: i,
ecModel: n,
api: o,
useClearVisual: e.isVisual && !e.isLayout,
plan: e.plan,
reset: e.reset,
scheduler: t,
}),
jr(t, i, s);
}
var r = i.seriesTaskMap || (i.seriesTaskMap = R()),
s = e.seriesType,
l = e.getTargetSeries;
e.createOnAllSeries
? n.eachRawSeries(a)
: s
? n.eachRawSeriesByType(s, a)
: l && l(n, o).each(a);
var u = t._pipelineMap;
r.each(function (t, e) {
u.get(e) || (t.dispose(), r.removeKey(e));
});
}
function Br(t, e, i, n, o) {
function a(e) {
var i = e.uid,
n = s.get(i);
n || ((n = s.set(i, gr({ reset: Gr, onDirty: Wr }))), r.dirty()),
(n.context = { model: e, overallProgress: h, modifyOutputEnd: c }),
(n.agent = r),
(n.__block = h),
jr(t, e, n);
}
var r = (i.overallTask = i.overallTask || gr({ reset: Vr }));
r.context = {
ecModel: n,
api: o,
overallReset: e.overallReset,
scheduler: t,
};
var s = (r.agentStubMap = r.agentStubMap || R()),
l = e.seriesType,
u = e.getTargetSeries,
h = !0,
c = e.modifyOutputEnd;
l
? n.eachRawSeriesByType(l, a)
: u
? u(n, o).each(a)
: ((h = !1), d(n.getSeries(), a));
var f = t._pipelineMap;
s.each(function (t, e) {
f.get(e) || (t.dispose(), r.dirty(), s.removeKey(e));
});
}
function Vr(t) {
t.overallReset(t.ecModel, t.api, t.payload);
}
function Gr(t, e) {
return t.overallProgress && Fr;
}
function Fr() {
this.agent.dirty(), this.getDownstream().dirty();
}
function Wr() {
this.agent && this.agent.dirty();
}
function Hr(t) {
return t.plan && t.plan(t.model, t.ecModel, t.api, t.payload);
}
function Zr(t) {
t.useClearVisual && t.data.clearAllVisual();
var e = (t.resetDefines = Di(
t.reset(t.model, t.ecModel, t.api, t.payload),
));
return e.length > 1
? f(e, function (t, e) {
return Ur(e);
})
: cT;
}
function Ur(t) {
return function (e, i) {
var n = i.data,
o = i.resetDefines[t];
if (o && o.dataEach)
for (var a = e.start; a < e.end; a++) o.dataEach(n, a);
else o && o.progress && o.progress(e, n);
};
}
function Xr(t) {
return t.data.count();
}
function jr(t, e, i) {
var n = e.uid,
o = t._pipelineMap.get(n);
!o.head && (o.head = i),
o.tail && o.tail.pipe(i),
(o.tail = i),
(i.__idxInPipeline = o.count++),
(i.__pipeline = o);
}
function Yr(t) {
dT = null;
try {
t(fT, pT);
} catch (t) {}
return dT;
}
function qr(t, e) {
for (var i in e.prototype) t[i] = B;
}
function Kr(t) {
for (
_(t) && (t = new DOMParser().parseFromString(t, 'text/xml')),
9 === t.nodeType && (t = t.firstChild);
'svg' !== t.nodeName.toLowerCase() || 1 !== t.nodeType;
)
t = t.nextSibling;
return t;
}
function $r() {
(this._defs = {}),
(this._root = null),
(this._isDefine = !1),
(this._isText = !1);
}
function Jr(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 o = i.getAttribute('stop-color') || '#000000';
e.addColorStop(n, o);
}
i = i.nextSibling;
}
}
function Qr(t, e) {
t &&
t.__inheritedStyle &&
(e.__inheritedStyle || (e.__inheritedStyle = {}),
r(e.__inheritedStyle, t.__inheritedStyle));
}
function ts(t) {
for (var e = P(t).split(_T), i = [], n = 0; n < e.length; n += 2) {
var o = parseFloat(e[n]),
a = parseFloat(e[n + 1]);
i.push([o, a]);
}
return i;
}
function es(t, e, i, n) {
var o = e.__inheritedStyle || {},
r = 'text' === e.type;
if (1 === t.nodeType && (ns(t, e), a(o, os(t)), !n))
for (var s in ST)
if (ST.hasOwnProperty(s)) {
var l = t.getAttribute(s);
null != l && (o[ST[s]] = l);
}
var u = r ? 'textFill' : 'fill',
h = r ? 'textStroke' : 'stroke';
e.style = e.style || new ub();
var c = e.style;
null != o.fill && c.set(u, is(o.fill, i)),
null != o.stroke && c.set(h, is(o.stroke, i)),
d(
[
'lineWidth',
'opacity',
'fillOpacity',
'strokeOpacity',
'miterLimit',
'fontSize',
],
function (t) {
var e = 'lineWidth' === t && r ? 'textStrokeWidth' : t;
null != o[t] && c.set(e, parseFloat(o[t]));
},
),
(o.textBaseline && 'auto' !== o.textBaseline) ||
(o.textBaseline = 'alphabetic'),
'alphabetic' === o.textBaseline && (o.textBaseline = 'bottom'),
'start' === o.textAlign && (o.textAlign = 'left'),
'end' === o.textAlign && (o.textAlign = 'right'),
d(
[
'lineDashOffset',
'lineCap',
'lineJoin',
'fontWeight',
'fontFamily',
'fontStyle',
'textAlign',
'textBaseline',
],
function (t) {
null != o[t] && c.set(t, o[t]);
},
),
o.lineDash && (e.style.lineDash = P(o.lineDash).split(_T)),
c[h] && 'none' !== c[h] && (e[h] = !0),
(e.__inheritedStyle = o);
}
function is(t, e) {
var i = e && t && t.match(MT);
return i ? e[P(i[1])] : t;
}
function ns(t, e) {
var i = t.getAttribute('transform');
if (i) {
var n = null,
o = [];
(i = i.replace(/,/g, ' ')).replace(IT, function (t, e, i) {
o.push(e, i);
});
for (var a = o.length - 1; a > 0; a -= 2) {
var r = o[a],
s = o[a - 1];
switch (((n = n || xt()), s)) {
case 'translate':
(r = P(r).split(_T)),
St(n, n, [parseFloat(r[0]), parseFloat(r[1] || 0)]);
break;
case 'scale':
(r = P(r).split(_T)),
It(n, n, [parseFloat(r[0]), parseFloat(r[1] || r[0])]);
break;
case 'rotate':
(r = P(r).split(_T)), Mt(n, n, parseFloat(r[0]));
break;
case 'skew':
(r = P(r).split(_T)),
console.warn('Skew transform is not supported yet');
break;
case 'matrix':
r = P(r).split(_T);
(n[0] = parseFloat(r[0])),
(n[1] = parseFloat(r[1])),
(n[2] = parseFloat(r[2])),
(n[3] = parseFloat(r[3])),
(n[4] = parseFloat(r[4])),
(n[5] = parseFloat(r[5]));
}
}
e.setLocalTransform(n);
}
}
function os(t) {
var e = t.getAttribute('style'),
i = {};
if (!e) return i;
var n = {};
TT.lastIndex = 0;
for (var o; null != (o = TT.exec(e)); ) n[o[1]] = o[2];
for (var a in ST) ST.hasOwnProperty(a) && null != n[a] && (i[ST[a]] = n[a]);
return i;
}
function as(t, e, i) {
var n = e / t.width,
o = i / t.height,
a = Math.min(n, o);
return {
scale: [a, a],
position: [
-(t.x + t.width / 2) * a + e / 2,
-(t.y + t.height / 2) * a + i / 2,
],
};
}
function rs(t, e) {
return new $r().parse(t, e);
}
function ss(t) {
return function (e, i, n) {
(e = e && e.toLowerCase()), fw.prototype[t].call(this, e, i, n);
};
}
function ls() {
fw.call(this);
}
function us(t, e, n) {
function o(t, e) {
return t.__prio - e.__prio;
}
(n = n || {}),
'string' == typeof e && (e = JT[e]),
this.id,
this.group,
(this._dom = t);
var a = (this._zr = Ii(t, {
renderer: n.renderer || 'canvas',
devicePixelRatio: n.devicePixelRatio,
width: n.width,
height: n.height,
}));
(this._throttledZrFlush = Pr(m(a.flush, a), 17)),
(e = i(e)) && BI(e, !0),
(this._theme = e),
(this._chartsViews = []),
(this._chartsMap = {}),
(this._componentsViews = []),
(this._componentsMap = {}),
(this._coordSysMgr = new Fa());
var r = (this._api = As(this));
_e($T, o),
_e(YT, o),
(this._scheduler = new Er(this, r, YT, $T)),
fw.call(this, (this._ecEventProcessor = new Ds())),
(this._messageCenter = new ls()),
this._initEvents(),
(this.resize = m(this.resize, this)),
(this._pendingActions = []),
a.animation.on('frame', this._onframe, this),
vs(a, this),
N(this);
}
function hs(t, e, i) {
var n,
o = this._model,
a = this._coordSysMgr.getCoordinateSystems();
e = Vi(o, e);
for (var r = 0; r < a.length; r++) {
var s = a[r];
if (s[t] && null != (n = s[t](o, e, i))) return n;
}
}
function cs(t) {
var e = t._model,
i = t._scheduler;
i.restorePipelines(e),
i.prepareStageTasks(),
ys(t, 'component', e, i),
ys(t, 'chart', e, i),
i.plan();
}
function ds(t, e, i, n, o) {
function a(n) {
n && n.__alive && n[e] && n[e](n.__model, r, t._api, i);
}
var r = t._model;
if (n) {
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 };
o && (l.subType = o);
var u = i.excludeSeriesId;
null != u && (u = R(Di(u))),
r &&
r.eachComponent(
l,
function (e) {
(u && null != u.get(e.id)) ||
a(
t['series' === n ? '_chartsMap' : '_componentsMap'][
e.__viewId
],
);
},
t,
);
} else kT(t._componentsViews.concat(t._chartsViews), a);
}
function fs(t, e) {
var i = t._chartsMap,
n = t._scheduler;
e.eachSeries(function (t) {
n.updateStreamModes(t, i[t.__viewId]);
});
}
function ps(t, e) {
var i = t.type,
n = t.escapeConnect,
o = XT[i],
s = o.actionInfo,
l = (s.update || 'update').split(':'),
u = l.pop();
(l = null != l[0] && OT(l[0])), (this[GT] = !0);
var h = [t],
c = !1;
t.batch &&
((c = !0),
(h = f(t.batch, function (e) {
return (e = r(a({}, e), t)), (e.batch = null), e;
})));
var d,
p = [],
g = 'highlight' === i || 'downplay' === i;
kT(
h,
function (t) {
(d = o.action(t, this._model, this._api)),
((d = d || a({}, t)).type = s.event || d.type),
p.push(d),
g ? ds(this, u, t, 'series') : l && ds(this, u, t, l.main, l.sub);
},
this,
),
'none' === u ||
g ||
l ||
(this[FT]
? (cs(this), ZT.update.call(this, t), (this[FT] = !1))
: ZT[u].call(this, t)),
(d = c ? { type: s.event || i, escapeConnect: n, batch: p } : p[0]),
(this[GT] = !1),
!e && this._messageCenter.trigger(d.type, d);
}
function gs(t) {
for (var e = this._pendingActions; e.length; ) {
var i = e.shift();
ps.call(this, i, t);
}
}
function ms(t) {
!t && this.trigger('updated');
}
function vs(t, e) {
t.on('rendered', function () {
e.trigger('rendered'),
!t.animation.isFinished() ||
e[FT] ||
e._scheduler.unfinished ||
e._pendingActions.length ||
e.trigger('finished');
});
}
function ys(t, e, i, n) {
function o(t) {
var e = '_ec_' + t.id + '_' + t.type,
o = s[e];
if (!o) {
var h = OT(t.type);
(o = new (a ? qI.getClass(h.main, h.sub) : Ar.getClass(h.sub))()).init(
i,
u,
),
(s[e] = o),
r.push(o),
l.add(o.group);
}
(t.__viewId = o.__id = e),
(o.__alive = !0),
(o.__model = t),
(o.group.__ecComponentInfo = {
mainType: t.mainType,
index: t.componentIndex,
}),
!a && n.prepareView(o, t, i, u);
}
for (
var a = 'component' === e,
r = a ? t._componentsViews : t._chartsViews,
s = a ? t._componentsMap : t._chartsMap,
l = t._zr,
u = t._api,
h = 0;
h < r.length;
h++
)
r[h].__alive = !1;
a
? i.eachComponent(function (t, e) {
'series' !== t && o(e);
})
: i.eachSeries(o);
for (h = 0; h < r.length; ) {
var c = r[h];
c.__alive
? h++
: (!a && c.renderTask.dispose(),
l.remove(c.group),
c.dispose(i, u),
r.splice(h, 1),
delete s[c.__id],
(c.__id = c.group.__ecComponentInfo = null));
}
}
function xs(t) {
t.clearColorPalette(),
t.eachSeries(function (t) {
t.clearColorPalette();
});
}
function _s(t, e, i, n) {
ws(t, e, i, n),
kT(t._chartsViews, function (t) {
t.__alive = !1;
}),
bs(t, e, i, n),
kT(t._chartsViews, function (t) {
t.__alive || t.remove(e, i);
});
}
function ws(t, e, i, n, o) {
kT(o || t._componentsViews, function (t) {
var o = t.__model;
t.render(o, e, i, n), Ts(o, t);
});
}
function bs(t, e, i, n, o) {
var a,
r = t._scheduler;
e.eachSeries(function (e) {
var i = t._chartsMap[e.__viewId];
i.__alive = !0;
var s = i.renderTask;
r.updatePayload(s, n),
o && o.get(e.uid) && s.dirty(),
(a |= s.perform(r.getPerformArgs(s))),
(i.group.silent = !!e.get('silent')),
Ts(e, i),
Is(e, i);
}),
(r.unfinished |= a),
Ms(t._zr, e),
sT(t._zr.dom, e);
}
function Ss(t, e) {
kT(KT, function (i) {
i(t, e);
});
}
function Ms(t, e) {
var i = t.storage,
n = 0;
i.traverse(function (t) {
t.isGroup || n++;
}),
n > e.get('hoverLayerThreshold') &&
!U_.node &&
i.traverse(function (t) {
t.isGroup || (t.useHoverLayer = !0);
});
}
function Is(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 Ts(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 As(t) {
var e = t._coordSysMgr;
return a(new Ga(t), {
getCoordinateSystems: m(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 Ds() {
this.eventInfo;
}
function Cs(t) {
function e(t, e) {
for (var n = 0; n < t.length; n++) t[n][i] = e;
}
var i = '__connectUpdateStatus';
kT(jT, function (n, o) {
t._messageCenter.on(o, function (n) {
if (eA[t.group] && 0 !== t[i]) {
if (n && n.escapeConnect) return;
var o = t.makeActionFromEvent(n),
a = [];
kT(tA, function (e) {
e !== t && e.group === t.group && a.push(e);
}),
e(a, 0),
kT(a, function (t) {
1 !== t[i] && t.dispatchAction(o);
}),
e(a, 2);
}
});
});
}
function Ls(t) {
eA[t] = !1;
}
function ks(t) {
return tA[Wi(t, oA)];
}
function Ps(t, e) {
JT[t] = e;
}
function Ns(t) {
qT.push(t);
}
function Os(t, e) {
Vs(YT, t, e, RT);
}
function Es(t, e, i) {
'function' == typeof e && ((i = e), (e = ''));
var n = NT(t) ? t.type : [t, (t = { event: e })][0];
(t.event = (t.event || n).toLowerCase()),
(e = t.event),
LT(WT.test(n) && WT.test(e)),
XT[n] || (XT[n] = { action: i, actionInfo: t }),
(jT[e] = n);
}
function Rs(t, e) {
Fa.register(t, e);
}
function zs(t, e) {
Vs($T, t, e, zT, 'layout');
}
function Bs(t, e) {
Vs($T, t, e, BT, 'visual');
}
function Vs(t, e, i, n, o) {
(PT(e) || NT(e)) && ((i = e), (e = n));
var a = Er.wrapStageHandler(i, o);
return (a.__prio = e), (a.__raw = i), t.push(a), a;
}
function Gs(t, e) {
QT[t] = e;
}
function Fs(t) {
return lI.extend(t);
}
function Ws(t) {
return qI.extend(t);
}
function Hs(t) {
return YI.extend(t);
}
function Zs(t) {
return Ar.extend(t);
}
function Us(t) {
return t;
}
function Xs(t, e, i, n, o) {
(this._old = t),
(this._new = e),
(this._oldKeyGetter = i || Us),
(this._newKeyGetter = n || Us),
(this.context = o);
}
function js(t, e, i, n, o) {
for (var a = 0; a < t.length; a++) {
var r = '_ec_' + o[n](t[a], a),
s = e[r];
null == s
? (i.push(r), (e[r] = a))
: (s.length || (e[r] = s = [s]), s.push(a));
}
}
function Ys(t) {
var e = {},
i = (e.encode = {}),
n = R(),
o = [],
a = [];
d(t.dimensions, function (e) {
var r = t.getDimensionInfo(e),
s = r.coordDim;
if (s) {
var l = i[s];
i.hasOwnProperty(s) || (l = i[s] = []),
(l[r.coordDimIndex] = e),
r.isExtraCoord || (n.set(s, 1), Ks(r.type) && (o[0] = e)),
r.defaultTooltip && a.push(e);
}
sA.each(function (t, e) {
var n = i[e];
i.hasOwnProperty(e) || (n = i[e] = []);
var o = r.otherDims[e];
null != o && !1 !== o && (n[o] = r.name);
});
});
var r = [],
s = {};
n.each(function (t, e) {
var n = i[e];
(s[e] = n[0]), (r = r.concat(n));
}),
(e.dataDimsOnCoord = r),
(e.encodeFirstDimNotExtra = s);
var l = i.label;
l && l.length && (o = l.slice());
var u = i.tooltip;
return (
u && u.length ? (a = u.slice()) : a.length || (a = o.slice()),
(i.defaultedLabel = o),
(i.defaultedTooltip = a),
e
);
}
function qs(t) {
return 'category' === t ? 'ordinal' : 'time' === t ? 'time' : 'float';
}
function Ks(t) {
return !('ordinal' === t || 'time' === t);
}
function $s(t) {
return t._rawCount > 65535 ? dA : pA;
}
function Js(t) {
var e = t.constructor;
return e === Array ? t.slice() : new e(t);
}
function Qs(t, e) {
d(gA.concat(e.__wrappedMethods || []), function (i) {
e.hasOwnProperty(i) && (t[i] = e[i]);
}),
(t.__wrappedMethods = e.__wrappedMethods),
d(mA, function (n) {
t[n] = i(e[n]);
}),
(t._calculationInfo = a(e._calculationInfo));
}
function tl(t, e, i, n, o) {
var a = cA[e.type],
r = n - 1,
s = e.name,
l = t[s][r];
if (l && l.length < i) {
for (var u = new a(Math.min(o - r * i, i)), h = 0; h < l.length; h++)
u[h] = l[h];
t[s][r] = u;
}
for (var c = n * i; c < o; c += i) t[s].push(new a(Math.min(o - c, i)));
}
function el(t) {
var e = t._invertedIndicesMap;
d(e, function (i, n) {
var o = t._dimensionInfos[n].ordinalMeta;
if (o) {
i = e[n] = new fA(o.categories.length);
for (a = 0; a < i.length; a++) i[a] = uA;
for (var a = 0; a < t._count; a++) i[t.get(n, a)] = a;
}
});
}
function il(t, e, i) {
var n;
if (null != e) {
var o = t._chunkSize,
a = Math.floor(i / o),
r = i % o,
s = t.dimensions[e],
l = t._storage[s][a];
if (l) {
n = l[r];
var u = t._dimensionInfos[s].ordinalMeta;
u && u.categories.length && (n = u.categories[n]);
}
}
return n;
}
function nl(t) {
return t;
}
function ol(t) {
return t < this._count && t >= 0 ? this._indices[t] : -1;
}
function al(t, e) {
var i = t._idList[e];
return (
null == i && (i = il(t, t._idDimIdx, e)), null == i && (i = hA + e), i
);
}
function rl(t) {
return y(t) || (t = [t]), t;
}
function sl(t, e) {
var i = t.dimensions,
n = new vA(f(i, t.getDimensionInfo, t), t.hostModel);
Qs(n, t);
for (var o = (n._storage = {}), a = t._storage, r = 0; r < i.length; r++) {
var s = i[r];
a[s] &&
(l(e, s) >= 0
? ((o[s] = ll(a[s])), (n._rawExtent[s] = ul()), (n._extent[s] = null))
: (o[s] = a[s]));
}
return n;
}
function ll(t) {
for (var e = new Array(t.length), i = 0; i < t.length; i++) e[i] = Js(t[i]);
return e;
}
function ul() {
return [1 / 0, -1 / 0];
}
function hl(t, e, n) {
function o(t, e, i) {
null != sA.get(e)
? (t.otherDims[e] = i)
: ((t.coordDim = e), (t.coordDimIndex = i), h.set(e, !0));
}
_a.isInstance(e) || (e = _a.seriesDataToSource(e)),
(n = n || {}),
(t = (t || []).slice());
for (
var s = (n.dimsDef || []).slice(),
l = R(n.encodeDef),
u = R(),
h = R(),
c = [],
f = cl(e, t, s, n.dimCount),
p = 0;
p < f;
p++
) {
var g = (s[p] = a({}, w(s[p]) ? s[p] : { name: s[p] })),
m = g.name,
v = (c[p] = { otherDims: {} });
null != m &&
null == u.get(m) &&
((v.name = v.displayName = m), u.set(m, p)),
null != g.type && (v.type = g.type),
null != g.displayName && (v.displayName = g.displayName);
}
l.each(function (t, e) {
if (1 === (t = Di(t).slice()).length && t[0] < 0) l.set(e, !1);
else {
var i = l.set(e, []);
d(t, function (t, n) {
_(t) && (t = u.get(t)),
null != t && t < f && ((i[n] = t), o(c[t], e, n));
});
}
});
var y = 0;
d(t, function (t, e) {
var n, t, a, s;
if (_(t)) (n = t), (t = {});
else {
n = t.name;
var u = t.ordinalMeta;
(t.ordinalMeta = null),
((t = i(t)).ordinalMeta = u),
(a = t.dimsDef),
(s = t.otherDims),
(t.name = t.coordDim = t.coordDimIndex = t.dimsDef = t.otherDims = null);
}
var h = l.get(n);
if (!1 !== h) {
if (!(h = Di(h)).length)
for (var f = 0; f < ((a && a.length) || 1); f++) {
for (; y < c.length && null != c[y].coordDim; ) y++;
y < c.length && h.push(y++);
}
d(h, function (e, i) {
var l = c[e];
if ((o(r(l, t), n, i), null == l.name && a)) {
var u = a[i];
!w(u) && (u = { name: u }),
(l.name = l.displayName = u.name),
(l.defaultTooltip = u.defaultTooltip);
}
s && r(l.otherDims, s);
});
}
});
var x = n.generateCoord,
b = n.generateCoordCount,
S = null != b;
b = x ? b || 1 : 0;
for (var M = x || 'value', I = 0; I < f; I++)
null == (v = c[I] = c[I] || {}).coordDim &&
((v.coordDim = dl(M, h, S)),
(v.coordDimIndex = 0),
(!x || b <= 0) && (v.isExtraCoord = !0),
b--),
null == v.name && (v.name = dl(v.coordDim, u)),
null == v.type && ka(e, I, v.name) && (v.type = 'ordinal');
return c;
}
function cl(t, e, i, n) {
var o = Math.max(t.dimensionsDetectCount || 1, e.length, i.length, n || 0);
return (
d(e, function (t) {
var e = t.dimsDef;
e && (o = Math.max(o, e.length));
}),
o
);
}
function dl(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 fl(t, e, i) {
var n,
o,
a,
r,
s = (i = i || {}).byIndex,
l = i.stackedCoordDimension,
u = !(!t || !t.get('stack'));
if (
(d(e, function (t, i) {
_(t) && (e[i] = t = { name: t }),
u &&
!t.isExtraCoord &&
(s || n || !t.ordinalMeta || (n = t),
o ||
'ordinal' === t.type ||
'time' === t.type ||
(l && l !== t.coordDim) ||
(o = t));
}),
!o || s || n || (s = !0),
o)
) {
(a = '__\0ecstackresult'),
(r = '__\0ecstackedover'),
n && (n.createInvertedIndices = !0);
var h = o.coordDim,
c = o.type,
f = 0;
d(e, function (t) {
t.coordDim === h && f++;
}),
e.push({
name: a,
coordDim: h,
coordDimIndex: f,
type: c,
isExtraCoord: !0,
isCalculationCoord: !0,
}),
f++,
e.push({
name: r,
coordDim: r,
coordDimIndex: f,
type: c,
isExtraCoord: !0,
isCalculationCoord: !0,
});
}
return {
stackedDimension: o && o.name,
stackedByDimension: n && n.name,
isStackedByIndex: s,
stackedOverDimension: r,
stackResultDimension: a,
};
}
function pl(t, e) {
return !!e && e === t.getCalculationInfo('stackedDimension');
}
function gl(t, e) {
return pl(t, e) ? t.getCalculationInfo('stackResultDimension') : e;
}
function ml(t, e, i) {
(i = i || {}), _a.isInstance(t) || (t = _a.seriesDataToSource(t));
var n,
o = e.get('coordinateSystem'),
a = Fa.get(o),
r = ya(e);
r &&
(n = f(r.coordSysDims, function (t) {
var e = { name: t },
i = r.axisMap.get(t);
if (i) {
var n = i.get('type');
e.type = qs(n);
}
return e;
})),
n ||
(n = (a &&
(a.getDimensionsInfo
? a.getDimensionsInfo()
: a.dimensions.slice())) || ['x', 'y']);
var s,
l,
u = _A(t, { coordDimensions: n, generateCoord: i.generateCoord });
r &&
d(u, function (t, e) {
var i = t.coordDim,
n = r.categoryAxisMap.get(i);
n && (null == s && (s = e), (t.ordinalMeta = n.getOrdinalMeta())),
null != t.otherDims.itemName && (l = !0);
}),
l || null == s || (u[s].otherDims.itemName = 0);
var h = fl(e, u),
c = new vA(u, e);
c.setCalculationInfo(h);
var p =
null != s && vl(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, p), c;
}
function vl(t) {
if (t.sourceFormat === pI) {
var e = yl(t.data || []);
return null != e && !y(Li(e));
}
}
function yl(t) {
for (var e = 0; e < t.length && null == t[e]; ) e++;
return t[e];
}
function xl(t) {
(this._setting = t || {}),
(this._extent = [1 / 0, -1 / 0]),
(this._interval = 0),
this.init && this.init.apply(this, arguments);
}
function _l(t) {
(this.categories = t.categories || []),
(this._needCollect = t.needCollect),
(this._deduplication = t.deduplication),
this._map;
}
function wl(t) {
return t._map || (t._map = R(t.categories));
}
function bl(t) {
return w(t) && null != t.value ? t.value : t + '';
}
function Sl(t, e, i, n) {
var o = {},
a = t[1] - t[0],
r = (o.interval = $o(a / e, !0));
null != i && r < i && (r = o.interval = i),
null != n && r > n && (r = o.interval = n);
var s = (o.intervalPrecision = Ml(r));
return (
Tl(
(o.niceTickExtent = [
MA(Math.ceil(t[0] / r) * r, s),
MA(Math.floor(t[1] / r) * r, s),
]),
t,
),
o
);
}
function Ml(t) {
return Ho(t) + 2;
}
function Il(t, e, i) {
t[e] = Math.max(Math.min(t[e], i[1]), i[0]);
}
function Tl(t, e) {
!isFinite(t[0]) && (t[0] = e[0]),
!isFinite(t[1]) && (t[1] = e[1]),
Il(t, 0, e),
Il(t, 1, e),
t[0] > t[1] && (t[0] = t[1]);
}
function Al(t, e, i, n) {
var o = [];
if (!t) return o;
e[0] < i[0] && o.push(e[0]);
for (
var a = i[0];
a <= i[1] && (o.push(a), (a = MA(a + t, n)) !== o[o.length - 1]);
)
if (o.length > 1e4) return [];
return e[1] > (o.length ? o[o.length - 1] : i[1]) && o.push(e[1]), o;
}
function Dl(t) {
return t.get('stack') || AA + t.seriesIndex;
}
function Cl(t) {
return t.dim + t.index;
}
function Ll(t) {
var e = [],
i = t.axis;
if ('category' === i.type) {
for (var n = i.getBandWidth(), o = 0; o < t.count; o++)
e.push(r({ bandWidth: n, axisKey: 'axis0', stackId: AA + o }, t));
for (var a = Nl(e), s = [], o = 0; o < t.count; o++) {
var l = a.axis0[AA + o];
(l.offsetCenter = l.offset + l.width / 2), s.push(l);
}
return s;
}
}
function kl(t, e) {
var i = [];
return (
e.eachSeriesByType(t, function (t) {
Rl(t) && !zl(t) && i.push(t);
}),
i
);
}
function Pl(t) {
var e = [];
return (
d(t, function (t) {
var i = t.getData(),
n = t.coordinateSystem.getBaseAxis(),
o = n.getExtent(),
a =
'category' === n.type
? n.getBandWidth()
: Math.abs(o[1] - o[0]) / i.count(),
r = Vo(t.get('barWidth'), a),
s = Vo(t.get('barMaxWidth'), a),
l = t.get('barGap'),
u = t.get('barCategoryGap');
e.push({
bandWidth: a,
barWidth: r,
barMaxWidth: s,
barGap: l,
barCategoryGap: u,
axisKey: Cl(n),
stackId: Dl(t),
});
}),
Nl(e)
);
}
function Nl(t) {
var e = {};
d(t, function (t, i) {
var n = t.axisKey,
o = t.bandWidth,
a = e[n] || {
bandWidth: o,
remainedWidth: o,
autoWidthCount: 0,
categoryGap: '20%',
gap: '30%',
stacks: {},
},
r = a.stacks;
e[n] = a;
var s = t.stackId;
r[s] || a.autoWidthCount++, (r[s] = r[s] || { width: 0, maxWidth: 0 });
var l = t.barWidth;
l &&
!r[s].width &&
((r[s].width = l),
(l = Math.min(a.remainedWidth, l)),
(a.remainedWidth -= l));
var u = t.barMaxWidth;
u && (r[s].maxWidth = u);
var h = t.barGap;
null != h && (a.gap = h);
var c = t.barCategoryGap;
null != c && (a.categoryGap = c);
});
var i = {};
return (
d(e, function (t, e) {
i[e] = {};
var n = t.stacks,
o = t.bandWidth,
a = Vo(t.categoryGap, o),
r = Vo(t.gap, 1),
s = t.remainedWidth,
l = t.autoWidthCount,
u = (s - a) / (l + (l - 1) * r);
(u = Math.max(u, 0)),
d(n, function (t, e) {
var i = t.maxWidth;
i &&
i < u &&
((i = Math.min(i, s)),
t.width && (i = Math.min(i, t.width)),
(s -= i),
(t.width = i),
l--);
}),
(u = (s - a) / (l + (l - 1) * r)),
(u = Math.max(u, 0));
var h,
c = 0;
d(n, function (t, e) {
t.width || (t.width = u), (h = t), (c += t.width * (1 + r));
}),
h && (c -= h.width * r);
var f = -c / 2;
d(n, function (t, n) {
(i[e][n] = i[e][n] || { offset: f, width: t.width }),
(f += t.width * (1 + r));
});
}),
i
);
}
function Ol(t, e, i) {
if (t && e) {
var n = t[Cl(e)];
return null != n && null != i && (n = n[Dl(i)]), n;
}
}
function El(t, e) {
var i = kl(t, e),
n = Pl(i),
o = {};
d(
i,
function (t) {
var e = t.getData(),
i = t.coordinateSystem,
a = i.getBaseAxis(),
r = Dl(t),
s = n[Cl(a)][r],
l = s.offset,
u = s.width,
h = i.getOtherAxis(a),
c = t.get('barMinHeight') || 0;
(o[r] = o[r] || []), e.setLayout({ offset: l, size: u });
for (
var d = e.mapDimension(h.dim),
f = e.mapDimension(a.dim),
p = pl(e, d),
g = h.isHorizontal(),
m = Bl(a, h, p),
v = 0,
y = e.count();
v < y;
v++
) {
var x = e.get(d, v),
_ = e.get(f, v);
if (!isNaN(x)) {
var w = x >= 0 ? 'p' : 'n',
b = m;
p && (o[r][_] || (o[r][_] = { p: m, n: m }), (b = o[r][_][w]));
var S, M, I, T;
if (g)
(S = b),
(M = (A = i.dataToPoint([x, _]))[1] + l),
(I = A[0] - m),
(T = u),
Math.abs(I) < c && (I = (I < 0 ? -1 : 1) * c),
p && (o[r][_][w] += I);
else {
var A = i.dataToPoint([_, x]);
(S = A[0] + l),
(M = b),
(I = u),
(T = A[1] - m),
Math.abs(T) < c && (T = (T <= 0 ? -1 : 1) * c),
p && (o[r][_][w] += T);
}
e.setItemLayout(v, { x: S, y: M, width: I, height: T });
}
}
},
this,
);
}
function Rl(t) {
return t.coordinateSystem && 'cartesian2d' === t.coordinateSystem.type;
}
function zl(t) {
return t.pipelineContext && t.pipelineContext.large;
}
function Bl(t, e, i) {
var n,
o,
a = e.getGlobalExtent();
a[0] > a[1] ? ((n = a[1]), (o = a[0])) : ((n = a[0]), (o = a[1]));
var r = e.toGlobalCoord(e.dataToCoord(0));
return r < n && (r = n), r > o && (r = o), r;
}
function Vl(t, e) {
return VA(t, BA(e));
}
function Gl(t, e) {
var i,
n,
o,
a = t.type,
r = e.getMin(),
s = e.getMax(),
l = null != r,
u = null != s,
h = t.getExtent();
'ordinal' === a
? (i = e.getCategories().length)
: (y((n = e.get('boundaryGap'))) || (n = [n || 0, n || 0]),
'boolean' == typeof n[0] && (n = [0, 0]),
(n[0] = Vo(n[0], 1)),
(n[1] = Vo(n[1], 1)),
(o = h[1] - h[0] || Math.abs(h[0]))),
null == r && (r = 'ordinal' === a ? (i ? 0 : NaN) : h[0] - n[0] * o),
null == s && (s = 'ordinal' === a ? (i ? i - 1 : NaN) : h[1] + n[1] * o),
'dataMin' === r
? (r = h[0])
: 'function' == typeof r && (r = r({ min: h[0], max: h[1] })),
'dataMax' === s
? (s = h[1])
: 'function' == typeof s && (s = s({ min: h[0], max: h[1] })),
(null == r || !isFinite(r)) && (r = NaN),
(null == s || !isFinite(s)) && (s = NaN),
t.setBlank(
I(r) ||
I(s) ||
('ordinal' === a && !t.getOrdinalMeta().categories.length),
),
e.getNeedCrossZero() &&
(r > 0 && s > 0 && !l && (r = 0), r < 0 && s < 0 && !u && (s = 0));
var c = e.ecModel;
if (c && 'time' === a) {
var f,
p = kl('bar', c);
if (
(d(p, function (t) {
f |= t.getBaseAxis() === e.axis;
}),
f)
) {
var g = Pl(p),
m = Fl(r, s, e, g);
(r = m.min), (s = m.max);
}
}
return [r, s];
}
function Fl(t, e, i, n) {
var o = i.axis.getExtent(),
a = o[1] - o[0],
r = Ol(n, i.axis);
if (void 0 === r) return { min: t, max: e };
var s = 1 / 0;
d(r, function (t) {
s = Math.min(t.offset, s);
});
var l = -1 / 0;
d(r, function (t) {
l = Math.max(t.offset + t.width, l);
}),
(s = Math.abs(s)),
(l = Math.abs(l));
var u = s + l,
h = e - t,
c = h / (1 - (s + l) / a) - h;
return (e += c * (l / u)), (t -= c * (s / u)), { min: t, max: e };
}
function Wl(t, e) {
var i = Gl(t, e),
n = null != e.getMin(),
o = null != e.getMax(),
a = e.get('splitNumber');
'log' === t.type && (t.base = e.get('logBase'));
var r = t.type;
t.setExtent(i[0], i[1]),
t.niceExtent({
splitNumber: a,
fixMin: n,
fixMax: o,
minInterval:
'interval' === r || 'time' === r ? e.get('minInterval') : null,
maxInterval:
'interval' === r || 'time' === r ? e.get('maxInterval') : null,
});
var s = e.get('interval');
null != s && t.setInterval && t.setInterval(s);
}
function Hl(t, e) {
if ((e = e || t.get('type')))
switch (e) {
case 'category':
return new SA(
t.getOrdinalMeta ? t.getOrdinalMeta() : t.getCategories(),
[1 / 0, -1 / 0],
);
case 'value':
return new TA();
default:
return (xl.getClass(e) || TA).create(t);
}
}
function Zl(t) {
var e = t.scale.getExtent(),
i = e[0],
n = e[1];
return !((i > 0 && n > 0) || (i < 0 && n < 0));
}
function Ul(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, o) {
return null != i && (o = n - i), e(Xl(t, n), o);
}
: function (e) {
return t.scale.getLabel(e);
};
}
function Xl(t, e) {
return 'category' === t.type ? t.scale.getLabel(e) : e;
}
function jl(t) {
var e = t.model,
i = t.scale;
if (e.get('axisLabel.show') && !i.isBlank()) {
var n,
o,
a = 'category' === t.type,
r = i.getExtent();
o = a ? i.count() : (n = i.getTicks()).length;
var s,
l = t.getLabelModel(),
u = Ul(t),
h = 1;
o > 40 && (h = Math.ceil(o / 40));
for (var c = 0; c < o; c += h) {
var d = u(n ? n[c] : r[0] + c),
f = Yl(l.getTextRect(d), l.get('rotate') || 0);
s ? s.union(f) : (s = f);
}
return s;
}
}
function Yl(t, e) {
var i = (e * Math.PI) / 180,
n = t.plain(),
o = n.width,
a = n.height,
r = o * Math.cos(i) + a * Math.sin(i),
s = o * Math.sin(i) + a * Math.cos(i);
return new de(n.x, n.y, r, s);
}
function ql(t) {
var e = t.get('interval');
return null == e ? 'auto' : e;
}
function Kl(t) {
return 'category' === t.type && 0 === ql(t.getLabelModel());
}
function $l(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 Jl(t, e, i, n, o, a, r) {
var s = 0 === t.indexOf('empty');
s && (t = t.substr(5, 1).toLowerCase() + t.substr(6));
var l;
return (
(l =
0 === t.indexOf('image://')
? jn(t.slice(8), new de(e, i, n, o), r ? 'center' : 'cover')
: 0 === t.indexOf('path://')
? Xn(t.slice(7), {}, new de(e, i, n, o), r ? 'center' : 'cover')
: new JA({
shape: { symbolType: t, x: e, y: i, width: n, height: o },
})),
(l.__isEmptyBrush = s),
(l.setColor = $l),
l.setColor(a),
l
);
}
function Ql(t, e) {
return Math.abs(t - e) < eD;
}
function tu(t, e, i) {
var n = 0,
o = t[0];
if (!o) return !1;
for (var a = 1; a < t.length; a++) {
var r = t[a];
(n += Sn(o[0], o[1], r[0], r[1], e, i)), (o = r);
}
var s = t[0];
return (
(Ql(o[0], s[0]) && Ql(o[1], s[1])) ||
(n += Sn(o[0], o[1], s[0], s[1], e, i)),
0 !== n
);
}
function eu(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 iu(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 o = i[n].geometry, a = o.coordinates, r = o.encodeOffsets, s = 0;
s < a.length;
s++
) {
var l = a[s];
if ('Polygon' === o.type) a[s] = nu(l, r[s], e);
else if ('MultiPolygon' === o.type)
for (var u = 0; u < l.length; u++) {
var h = l[u];
l[u] = nu(h, r[s][u], e);
}
}
return (t.UTF8Encoding = !1), t;
}
function nu(t, e, i) {
for (var n = [], o = e[0], a = e[1], r = 0; r < t.length; r += 2) {
var s = t.charCodeAt(r) - 64,
l = t.charCodeAt(r + 1) - 64;
(s = (s >> 1) ^ -(1 & s)),
(l = (l >> 1) ^ -(1 & l)),
(o = s += o),
(a = l += a),
n.push([s / i, l / i]);
}
return n;
}
function ou(t) {
return 'category' === t.type ? ru(t) : uu(t);
}
function au(t, e) {
return 'category' === t.type ? lu(t, e) : { ticks: t.scale.getTicks() };
}
function ru(t) {
var e = t.getLabelModel(),
i = su(t, e);
return !e.get('show') || t.scale.isBlank()
? { labels: [], labelCategoryInterval: i.labelCategoryInterval }
: i;
}
function su(t, e) {
var i = hu(t, 'labels'),
n = ql(e),
o = cu(i, n);
if (o) return o;
var a, r;
return (
(a = x(n) ? vu(t, n) : mu(t, (r = 'auto' === n ? fu(t) : n))),
du(i, n, { labels: a, labelCategoryInterval: r })
);
}
function lu(t, e) {
var i = hu(t, 'ticks'),
n = ql(e),
o = cu(i, n);
if (o) return o;
var a, r;
if (((e.get('show') && !t.scale.isBlank()) || (a = []), x(n)))
a = vu(t, n, !0);
else if ('auto' === n) {
var s = su(t, t.getLabelModel());
(r = s.labelCategoryInterval),
(a = f(s.labels, function (t) {
return t.tickValue;
}));
} else a = mu(t, (r = n), !0);
return du(i, n, { ticks: a, tickCategoryInterval: r });
}
function uu(t) {
var e = t.scale.getTicks(),
i = Ul(t);
return {
labels: f(e, function (e, n) {
return {
formattedLabel: i(e, n),
rawLabel: t.scale.getLabel(e),
tickValue: e,
};
}),
};
}
function hu(t, e) {
return nD(t)[e] || (nD(t)[e] = []);
}
function cu(t, e) {
for (var i = 0; i < t.length; i++) if (t[i].key === e) return t[i].value;
}
function du(t, e, i) {
return t.push({ key: e, value: i }), i;
}
function fu(t) {
var e = nD(t).autoInterval;
return null != e ? e : (nD(t).autoInterval = t.calculateCategoryInterval());
}
function pu(t) {
var e = gu(t),
i = Ul(t),
n = ((e.axisRotate - e.labelRotate) / 180) * Math.PI,
o = t.scale,
a = o.getExtent(),
r = o.count();
if (a[1] - a[0] < 1) return 0;
var s = 1;
r > 40 && (s = Math.max(1, Math.floor(r / 40)));
for (
var l = a[0],
u = t.dataToCoord(l + 1) - t.dataToCoord(l),
h = Math.abs(u * Math.cos(n)),
c = Math.abs(u * Math.sin(n)),
d = 0,
f = 0;
l <= a[1];
l += s
) {
var p = 0,
g = 0,
m = ke(i(l), e.font, 'center', 'top');
(p = 1.3 * m.width),
(g = 1.3 * m.height),
(d = Math.max(d, p, 7)),
(f = Math.max(f, g, 7));
}
var v = d / h,
y = f / c;
isNaN(v) && (v = 1 / 0), isNaN(y) && (y = 1 / 0);
var x = Math.max(0, Math.floor(Math.min(v, y))),
_ = nD(t.model),
w = _.lastAutoInterval,
b = _.lastTickCount;
return (
null != w &&
null != b &&
Math.abs(w - x) <= 1 &&
Math.abs(b - r) <= 1 &&
w > x
? (x = w)
: ((_.lastTickCount = r), (_.lastAutoInterval = x)),
x
);
}
function gu(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 mu(t, e, i) {
function n(t) {
l.push(
i ? t : { formattedLabel: o(t), rawLabel: a.getLabel(t), tickValue: t },
);
}
var o = Ul(t),
a = t.scale,
r = a.getExtent(),
s = t.getLabelModel(),
l = [],
u = Math.max((e || 0) + 1, 1),
h = r[0],
c = a.count();
0 !== h && u > 1 && c / u > 2 && (h = Math.round(Math.ceil(h / u) * u));
var d = Kl(t),
f = s.get('showMinLabel') || d,
p = s.get('showMaxLabel') || d;
f && h !== r[0] && n(r[0]);
for (var g = h; g <= r[1]; g += u) n(g);
return p && g !== r[1] && n(r[1]), l;
}
function vu(t, e, i) {
var n = t.scale,
o = Ul(t),
a = [];
return (
d(n.getTicks(), function (t) {
var r = n.getLabel(t);
e(t, r) &&
a.push(i ? t : { formattedLabel: o(t), rawLabel: r, tickValue: t });
}),
a
);
}
function yu(t, e) {
var i = (t[1] - t[0]) / e / 2;
(t[0] += i), (t[1] -= i);
}
function xu(t, e, i, n, o) {
function a(t, e) {
return h ? t > e : t < e;
}
var r = e.length;
if (t.onBand && !n && r) {
var s,
l = t.getExtent();
if (1 === r) (e[0].coord = l[0]), (s = e[1] = { coord: l[0] });
else {
var u = e[1].coord - e[0].coord;
d(e, function (t) {
t.coord -= u / 2;
var e = e || 0;
e % 2 > 0 && (t.coord -= u / (2 * (e + 1)));
}),
(s = { coord: e[r - 1].coord + u }),
e.push(s);
}
var h = l[0] > l[1];
a(e[0].coord, l[0]) && (o ? (e[0].coord = l[0]) : e.shift()),
o && a(l[0], e[0].coord) && e.unshift({ coord: l[0] }),
a(l[1], s.coord) && (o ? (s.coord = l[1]) : e.pop()),
o && a(s.coord, l[1]) && e.push({ coord: l[1] });
}
}
function _u(t, e) {
var i = t.mapDimension('defaultedLabel', !0),
n = i.length;
if (1 === n) return fr(t, e, i[0]);
if (n) {
for (var o = [], a = 0; a < i.length; a++) {
var r = fr(t, e, i[a]);
o.push(r);
}
return o.join(' ');
}
}
function wu(t, e, i) {
tb.call(this), this.updateData(t, e, i);
}
function bu(t) {
return [t[0] / 2, t[1] / 2];
}
function Su(t, e) {
this.parent.drift(t, e);
}
function Mu() {
!so(this) && Tu.call(this);
}
function Iu() {
!so(this) && Au.call(this);
}
function Tu() {
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 Au() {
this.incremental ||
this.useHoverLayer ||
this.animateTo({ scale: this.__symbolOriginalScale }, 400, 'elasticOut');
}
function Du(t) {
(this.group = new tb()), (this._symbolCtor = t || wu);
}
function Cu(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 Lu(t) {
return null == t || w(t) || (t = { isIgnore: t }), t || {};
}
function ku(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 Pu(t, e, i) {
var n,
o = t.getBaseAxis(),
a = t.getOtherAxis(o),
r = Nu(a, i),
s = o.dim,
l = a.dim,
u = e.mapDimension(l),
h = e.mapDimension(s),
c = 'x' === l || 'radius' === l ? 1 : 0,
d = f(t.dimensions, function (t) {
return e.mapDimension(t);
}),
p = e.getCalculationInfo('stackResultDimension');
return (
(n |= pl(e, d[0])) && (d[0] = p),
(n |= pl(e, d[1])) && (d[1] = p),
{
dataDimsForPoint: d,
valueStart: r,
valueAxisDim: l,
baseAxisDim: s,
stacked: !!n,
valueDim: u,
baseDim: h,
baseDataOffset: c,
stackedOverDimension: e.getCalculationInfo('stackedOverDimension'),
}
);
}
function Nu(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 Ou(t, e, i, n) {
var o = NaN;
t.stacked && (o = i.get(i.getCalculationInfo('stackedOverDimension'), n)),
isNaN(o) && (o = t.valueStart);
var a = t.baseDataOffset,
r = [];
return (r[a] = i.get(t.baseDim, n)), (r[1 - a] = o), e.dataToPoint(r);
}
function Eu(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 Ru(t) {
return isNaN(t[0]) || isNaN(t[1]);
}
function zu(t, e, i, n, o, a, r, s, l, u, h) {
return 'none' !== u && u
? Bu.apply(this, arguments)
: Vu.apply(this, arguments);
}
function Bu(t, e, i, n, o, a, r, s, l, u, h) {
for (var c = 0, d = i, f = 0; f < n; f++) {
var p = e[d];
if (d >= o || d < 0) break;
if (Ru(p)) {
if (h) {
d += a;
continue;
}
break;
}
if (d === i) t[a > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);
else if (l > 0) {
var g = e[c],
m = 'y' === u ? 1 : 0,
v = (p[m] - g[m]) * l;
_D(bD, g),
(bD[m] = g[m] + v),
_D(SD, p),
(SD[m] = p[m] - v),
t.bezierCurveTo(bD[0], bD[1], SD[0], SD[1], p[0], p[1]);
} else t.lineTo(p[0], p[1]);
(c = d), (d += a);
}
return f;
}
function Vu(t, e, i, n, o, a, r, s, l, u, h) {
for (var c = 0, d = i, f = 0; f < n; f++) {
var p = e[d];
if (d >= o || d < 0) break;
if (Ru(p)) {
if (h) {
d += a;
continue;
}
break;
}
if (d === i) t[a > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]), _D(bD, p);
else if (l > 0) {
var g = d + a,
m = e[g];
if (h) for (; m && Ru(e[g]); ) m = e[(g += a)];
var v = 0.5,
y = e[c];
if (!(m = e[g]) || Ru(m)) _D(SD, p);
else {
Ru(m) && !h && (m = p), U(wD, m, y);
var x, _;
if ('x' === u || 'y' === u) {
var w = 'x' === u ? 0 : 1;
(x = Math.abs(p[w] - y[w])), (_ = Math.abs(p[w] - m[w]));
} else (x = uw(p, y)), (_ = uw(p, m));
xD(SD, p, wD, -l * (1 - (v = _ / (_ + x))));
}
vD(bD, bD, s),
yD(bD, bD, r),
vD(SD, SD, s),
yD(SD, SD, r),
t.bezierCurveTo(bD[0], bD[1], SD[0], SD[1], p[0], p[1]),
xD(bD, p, wD, l * v);
} else t.lineTo(p[0], p[1]);
(c = d), (d += a);
}
return f;
}
function Gu(t, e) {
var i = [1 / 0, 1 / 0],
n = [-1 / 0, -1 / 0];
if (e)
for (var o = 0; o < t.length; o++) {
var a = t[o];
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 Fu(t, e) {
if (t.length === e.length) {
for (var i = 0; i < t.length; i++) {
var n = t[i],
o = e[i];
if (n[0] !== o[0] || n[1] !== o[1]) return;
}
return !0;
}
}
function Wu(t) {
return 'number' == typeof t ? t : t ? 0.5 : 0;
}
function Hu(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 Zu(t, e, i) {
if (!i.valueDim) return [];
for (var n = [], o = 0, a = e.count(); o < a; o++) n.push(Ou(i, t, e, o));
return n;
}
function Uu(t, e, i, n) {
var o = Hu(t.getAxis('x')),
a = Hu(t.getAxis('y')),
r = t.getBaseAxis().isHorizontal(),
s = Math.min(o[0], o[1]),
l = Math.min(a[0], a[1]),
u = Math.max(o[0], o[1]) - s,
h = Math.max(a[0], a[1]) - l;
if (i) (s -= 0.5), (u += 0.5), (l -= 0.5), (h += 0.5);
else {
var c = n.get('lineStyle.width') || 2,
d = n.get('clipOverflow') ? c / 2 : Math.max(u, h);
r ? ((l -= d), (h += 2 * d)) : ((s -= d), (u += 2 * d));
}
var f = new yM({ shape: { x: s, y: l, width: u, height: h } });
return (
e &&
((f.shape[r ? 'width' : 'height'] = 0),
To(f, { shape: { width: u, height: h } }, n)),
f
);
}
function Xu(t, e, i, n) {
var o = t.getAngleAxis(),
a = t.getRadiusAxis().getExtent().slice();
a[0] > a[1] && a.reverse();
var r = o.getExtent(),
s = Math.PI / 180;
i && ((a[0] -= 0.5), (a[1] += 0.5));
var l = new hM({
shape: {
cx: Go(t.cx, 1),
cy: Go(t.cy, 1),
r0: Go(a[0], 1),
r: Go(a[1], 1),
startAngle: -r[0] * s,
endAngle: -r[1] * s,
clockwise: o.inverse,
},
});
return (
e &&
((l.shape.endAngle = -r[0] * s),
To(l, { shape: { endAngle: -r[1] * s } }, n)),
l
);
}
function ju(t, e, i, n) {
return 'polar' === t.type ? Xu(t, e, i, n) : Uu(t, e, i, n);
}
function Yu(t, e, i) {
for (
var n = e.getBaseAxis(),
o = 'x' === n.dim || 'radius' === n.dim ? 0 : 1,
a = [],
r = 0;
r < t.length - 1;
r++
) {
var s = t[r + 1],
l = t[r];
a.push(l);
var u = [];
switch (i) {
case 'end':
(u[o] = s[o]), (u[1 - o] = l[1 - o]), a.push(u);
break;
case 'middle':
var h = (l[o] + s[o]) / 2,
c = [];
(u[o] = c[o] = h),
(u[1 - o] = l[1 - o]),
(c[1 - o] = s[1 - o]),
a.push(u),
a.push(c);
break;
default:
(u[o] = l[o]), (u[1 - o] = s[1 - o]), a.push(u);
}
}
return t[r] && a.push(t[r]), a;
}
function qu(t, e) {
var i = t.getVisual('visualMeta');
if (i && i.length && t.count() && 'cartesian2d' === e.type) {
for (var n, o, a = i.length - 1; a >= 0; a--) {
var r = i[a].dimension,
s = t.dimensions[r],
l = t.getDimensionInfo(s);
if ('x' === (n = l && l.coordDim) || 'y' === n) {
o = i[a];
break;
}
}
if (o) {
var u = e.getAxis(n),
h = f(o.stops, function (t) {
return {
coord: u.toGlobalCoord(u.dataToCoord(t.value)),
color: t.color,
};
}),
c = h.length,
p = o.outerColors.slice();
c && h[0].coord > h[c - 1].coord && (h.reverse(), p.reverse());
var g = h[0].coord - 10,
m = h[c - 1].coord + 10,
v = m - g;
if (v < 0.001) return 'transparent';
d(h, function (t) {
t.offset = (t.coord - g) / v;
}),
h.push({
offset: c ? h[c - 1].offset : 0.5,
color: p[1] || 'transparent',
}),
h.unshift({
offset: c ? h[0].offset : 0.5,
color: p[0] || 'transparent',
});
var y = new TM(0, 0, 0, 0, h, !0);
return (y[n] = g), (y[n + '2'] = m), y;
}
}
}
function Ku(t, e, i) {
var n = t.get('showAllSymbol'),
o = 'auto' === n;
if (!n || o) {
var a = i.getAxesByScale('ordinal')[0];
if (a && (!o || !$u(a, e))) {
var r = e.mapDimension(a.dim),
s = {};
return (
d(a.getViewLabels(), function (t) {
s[t.tickValue] = 1;
}),
function (t) {
return !s.hasOwnProperty(e.get(r, t));
}
);
}
}
}
function $u(t, e) {
var i = t.getExtent(),
n = Math.abs(i[1] - i[0]) / t.scale.count();
isNaN(n) && (n = 0);
for (
var o = e.count(), a = Math.max(1, Math.round(o / 5)), r = 0;
r < o;
r += a
)
if (1.5 * wu.getSymbolSize(e, r)[t.isHorizontal() ? 1 : 0] > n) return !1;
return !0;
}
function Ju(t) {
return this._axes[t];
}
function Qu(t) {
LD.call(this, t);
}
function th(t, e) {
return e.type || (e.data ? 'category' : 'value');
}
function eh(t, e, i) {
return t.getCoordSysModel() === e;
}
function ih(t, e, i) {
(this._coordsMap = {}),
(this._coordsList = []),
(this._axesMap = {}),
(this._axesList = []),
this._initCartesian(t, e, i),
(this.model = t);
}
function nh(t, e, i, n) {
function o(t) {
return t.dim + '_' + t.index;
}
i.getAxesOnZeroOf = function () {
return a ? [a] : [];
};
var a,
r = t[e],
s = i.model,
l = s.get('axisLine.onZero'),
u = s.get('axisLine.onZeroAxisIndex');
if (l) {
if (null != u) oh(r[u]) && (a = r[u]);
else
for (var h in r)
if (r.hasOwnProperty(h) && oh(r[h]) && !n[o(r[h])]) {
a = r[h];
break;
}
a && (n[o(a)] = !0);
}
}
function oh(t) {
return t && 'category' !== t.type && 'time' !== t.type && Zl(t);
}
function ah(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 rh(t, e) {
return f(VD, function (e) {
return t.getReferringComponents(e)[0];
});
}
function sh(t) {
return 'cartesian2d' === t.get('coordinateSystem');
}
function lh(t) {
var e = { componentType: t.mainType, componentIndex: t.componentIndex };
return (e[t.mainType + 'Index'] = t.componentIndex), e;
}
function uh(t, e, i, n) {
var o,
a,
r = Xo(i - t.rotation),
s = n[0] > n[1],
l = ('start' === e && !s) || ('start' !== e && s);
return (
jo(r - GD / 2)
? ((a = l ? 'bottom' : 'top'), (o = 'center'))
: jo(r - 1.5 * GD)
? ((a = l ? 'top' : 'bottom'), (o = 'center'))
: ((a = 'middle'),
(o =
r < 1.5 * GD && r > GD / 2
? l
? 'left'
: 'right'
: l
? 'right'
: 'left')),
{ rotation: r, textAlign: o, textVerticalAlign: a }
);
}
function hh(t) {
var e = t.get('tooltip');
return t.get('silent') || !(t.get('triggerEvent') || (e && e.show));
}
function ch(t, e, i) {
if (!Kl(t.axis)) {
var n = t.get('axisLabel.showMinLabel'),
o = t.get('axisLabel.showMaxLabel');
(e = e || []), (i = i || []);
var a = e[0],
r = e[1],
s = e[e.length - 1],
l = e[e.length - 2],
u = i[0],
h = i[1],
c = i[i.length - 1],
d = i[i.length - 2];
!1 === n
? (dh(a), dh(u))
: fh(a, r) && (n ? (dh(r), dh(h)) : (dh(a), dh(u))),
!1 === o
? (dh(s), dh(c))
: fh(l, s) && (o ? (dh(l), dh(d)) : (dh(s), dh(c)));
}
}
function dh(t) {
t && (t.ignore = !0);
}
function fh(t, e, i) {
var n = t && t.getBoundingRect().clone(),
o = e && e.getBoundingRect().clone();
if (n && o) {
var a = _t([]);
return (
Mt(a, a, -t.rotation),
n.applyTransform(bt([], a, t.getLocalTransform())),
o.applyTransform(bt([], a, e.getLocalTransform())),
n.intersect(o)
);
}
}
function ph(t) {
return 'middle' === t || 'center' === t;
}
function gh(t, e, i) {
var n = e.axis;
if (e.get('axisTick.show') && !n.scale.isBlank()) {
for (
var o = e.getModel('axisTick'),
a = o.getModel('lineStyle'),
s = o.get('length'),
l = n.getTicksCoords(),
u = [],
h = [],
c = t._transform,
d = [],
f = 0;
f < l.length;
f++
) {
var p = l[f].coord;
(u[0] = p),
(u[1] = 0),
(h[0] = p),
(h[1] = i.tickDirection * s),
c && (Q(u, u, c), Q(h, h, c));
var g = new _M(
Kn({
anid: 'tick_' + l[f].tickValue,
shape: { x1: u[0], y1: u[1], x2: h[0], y2: h[1] },
style: r(a.getLineStyle(), {
stroke: e.get('axisLine.lineStyle.color'),
}),
z2: 2,
silent: !0,
}),
);
t.group.add(g), d.push(g);
}
return d;
}
}
function mh(t, e, i) {
var n = e.axis;
if (T(i.axisLabelShow, e.get('axisLabel.show')) && !n.scale.isBlank()) {
var o = e.getModel('axisLabel'),
a = o.get('margin'),
r = n.getViewLabels(),
s = ((T(i.labelRotate, o.get('rotate')) || 0) * GD) / 180,
l = HD(i.rotation, s, i.labelDirection),
u = e.getCategories(!0),
h = [],
c = hh(e),
f = e.get('triggerEvent');
return (
d(r, function (r, s) {
var d = r.tickValue,
p = r.formattedLabel,
g = r.rawLabel,
m = o;
u &&
u[d] &&
u[d].textStyle &&
(m = new No(u[d].textStyle, o, e.ecModel));
var v = m.getTextColor() || e.get('axisLine.lineStyle.color'),
y = [n.dataToCoord(d), i.labelOffset + i.labelDirection * a],
x = new rM({
anid: 'label_' + d,
position: y,
rotation: l.rotation,
silent: c,
z2: 10,
});
mo(x.style, m, {
text: p,
textAlign: m.getShallow('align', !0) || l.textAlign,
textVerticalAlign:
m.getShallow('verticalAlign', !0) ||
m.getShallow('baseline', !0) ||
l.textVerticalAlign,
textFill:
'function' == typeof v
? v(
'category' === n.type ? g : 'value' === n.type ? d + '' : d,
s,
)
: v,
}),
f &&
((x.eventData = lh(e)),
(x.eventData.targetType = 'axisLabel'),
(x.eventData.value = g)),
t._dumbGroup.add(x),
x.updateTransform(),
h.push(x),
t.group.add(x),
x.decomposeTransform();
}),
h
);
}
}
function vh(t, e) {
var i = {
axesInfo: {},
seriesInvolved: !1,
coordSysAxesInfo: {},
coordSysMap: {},
};
return yh(i, t, e), i.seriesInvolved && _h(i, t), i;
}
function yh(t, e, i) {
var n = e.getComponent('tooltip'),
o = e.getComponent('axisPointer'),
a = o.get('link', !0) || [],
r = [];
ZD(i.getCoordinateSystems(), function (i) {
function s(n, s, l) {
var c = l.model.getModel('axisPointer', o),
d = c.get('show');
if (d && ('auto' !== d || n || Th(c))) {
null == s && (s = c.get('triggerTooltip'));
var f = (c = n ? xh(l, h, o, e, n, s) : c).get('snap'),
p = Ah(l.model),
g = s || f || 'category' === l.type,
m = (t.axesInfo[p] = {
key: p,
axis: l,
coordSys: i,
axisPointerModel: c,
triggerTooltip: s,
involveSeries: g,
snap: f,
useHandle: Th(c),
seriesModels: [],
});
(u[p] = m), (t.seriesInvolved |= g);
var v = wh(a, l);
if (null != v) {
var y = r[v] || (r[v] = { axesInfo: {} });
(y.axesInfo[p] = m), (y.mapper = a[v].mapper), (m.linkGroup = y);
}
}
}
if (i.axisPointerEnabled) {
var l = Ah(i.model),
u = (t.coordSysAxesInfo[l] = {});
t.coordSysMap[l] = i;
var h = i.model.getModel('tooltip', n);
if (
(ZD(i.getAxes(), UD(s, !1, null)),
i.getTooltipAxes && n && h.get('show'))
) {
var c = 'axis' === h.get('trigger'),
d = 'cross' === h.get('axisPointer.type'),
f = i.getTooltipAxes(h.get('axisPointer.axis'));
(c || d) && ZD(f.baseAxes, UD(s, !d || 'cross', c)),
d && ZD(f.otherAxes, UD(s, 'cross', !1));
}
}
});
}
function xh(t, e, n, o, a, s) {
var l = e.getModel('axisPointer'),
u = {};
ZD(
[
'type',
'snap',
'lineStyle',
'shadowStyle',
'label',
'animation',
'animationDurationUpdate',
'animationEasingUpdate',
'z',
],
function (t) {
u[t] = i(l.get(t));
},
),
(u.snap = 'category' !== t.type && !!s),
'cross' === l.get('type') && (u.type = 'line');
var h = u.label || (u.label = {});
if ((null == h.show && (h.show = !1), 'cross' === a)) {
var c = l.get('label.show');
if (((h.show = null == c || c), !s)) {
var d = (u.lineStyle = l.get('crossStyle'));
d && r(h, d.textStyle);
}
}
return t.model.getModel('axisPointer', new No(u, n, o));
}
function _h(t, e) {
e.eachSeries(function (e) {
var i = e.coordinateSystem,
n = e.get('tooltip.trigger', !0),
o = e.get('tooltip.show', !0);
i &&
'none' !== n &&
!1 !== n &&
'item' !== n &&
!1 !== o &&
!1 !== e.get('axisPointer.show', !0) &&
ZD(t.coordSysAxesInfo[Ah(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 wh(t, e) {
for (var i = e.model, n = e.dim, o = 0; o < t.length; o++) {
var a = t[o] || {};
if (
bh(a[n + 'AxisId'], i.id) ||
bh(a[n + 'AxisIndex'], i.componentIndex) ||
bh(a[n + 'AxisName'], i.name)
)
return o;
}
}
function bh(t, e) {
return 'all' === t || (y(t) && l(t, e) >= 0) || t === e;
}
function Sh(t) {
var e = Mh(t);
if (e) {
var i = e.axisPointerModel,
n = e.axis.scale,
o = i.option,
a = i.get('status'),
r = i.get('value');
null != r && (r = n.parse(r));
var s = Th(i);
null == a && (o.status = s ? 'show' : 'hide');
var l = n.getExtent().slice();
l[0] > l[1] && l.reverse(),
(null == r || r > l[1]) && (r = l[1]),
r < l[0] && (r = l[0]),
(o.value = r),
s && (o.status = e.axis.scale.isBlank() ? 'hide' : 'show');
}
}
function Mh(t) {
var e = (t.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;
return e && e.axesInfo[Ah(t)];
}
function Ih(t) {
var e = Mh(t);
return e && e.axisPointerModel;
}
function Th(t) {
return !!t.get('handle.show');
}
function Ah(t) {
return t.type + '||' + t.id;
}
function Dh(t, e, i, n, o, a) {
var r = XD.getAxisPointerClass(t.axisPointerClass);
if (r) {
var s = Ih(e);
s
? (t._axisPointer || (t._axisPointer = new r())).render(e, s, n, a)
: Ch(t, n);
}
}
function Ch(t, e, i) {
var n = t._axisPointer;
n && n.dispose(e, i), (t._axisPointer = null);
}
function Lh(t, e, i) {
i = i || {};
var n = t.coordinateSystem,
o = e.axis,
a = {},
r = o.getAxesOnZeroOf()[0],
s = o.position,
l = r ? 'onZero' : s,
u = o.dim,
h = n.getRect(),
c = [h.x, h.x + h.width, h.y, h.y + h.height],
d = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 },
f = e.get('offset') || 0,
p = 'x' === u ? [c[2] - f, c[3] + f] : [c[0] - f, c[1] + f];
if (r) {
var g = r.toGlobalCoord(r.dataToCoord(0));
p[d.onZero] = Math.max(Math.min(g, p[1]), p[0]);
}
(a.position = ['y' === u ? p[d[l]] : c[0], 'x' === u ? p[d[l]] : c[3]]),
(a.rotation = (Math.PI / 2) * ('x' === u ? 0 : 1));
var m = { top: -1, bottom: 1, left: -1, right: 1 };
(a.labelDirection = a.tickDirection = a.nameDirection = m[s]),
(a.labelOffset = r ? p[d[s]] - p[d.onZero] : 0),
e.get('axisTick.inside') && (a.tickDirection = -a.tickDirection),
T(i.labelInside, e.get('axisLabel.inside')) &&
(a.labelDirection = -a.labelDirection);
var v = e.get('axisLabel.rotate');
return (a.labelRotate = 'top' === l ? -v : v), (a.z2 = 1), a;
}
function kh(t, e, i, n, o, a, r) {
go(t, e, i.getModel('label'), i.getModel('emphasis.label'), {
labelFetcher: o,
labelDataIndex: a,
defaultText: _u(o.getData(), a),
isRectText: !0,
autoColor: n,
}),
Ph(t),
Ph(e);
}
function Ph(t, e) {
'outside' === t.textPosition && (t.textPosition = e);
}
function Nh(t, e, i) {
(i.style.text = null),
Io(i, { shape: { width: 0 } }, e, t, function () {
i.parent && i.parent.remove(i);
});
}
function Oh(t, e, i) {
(i.style.text = null),
Io(i, { shape: { r: i.shape.r0 } }, e, t, function () {
i.parent && i.parent.remove(i);
});
}
function Eh(t, e, i, n, o, a, s, l) {
var u = e.getItemVisual(i, 'color'),
h = e.getItemVisual(i, 'opacity'),
c = n.getModel('itemStyle'),
d = n.getModel('emphasis.itemStyle').getBarItemStyle();
l || t.setShape('r', c.get('barBorderRadius') || 0),
t.useStyle(r({ fill: u, opacity: h }, c.getBarItemStyle()));
var f = n.getShallow('cursor');
f && t.attr('cursor', f);
var p = s
? o.height > 0
? 'bottom'
: 'top'
: o.width > 0
? 'left'
: 'right';
l || kh(t.style, d, n, u, a, i, p), fo(t, d);
}
function Rh(t, e) {
var i = t.get(tC) || 0;
return Math.min(i, Math.abs(e.width), Math.abs(e.height));
}
function zh(t, e, i) {
var n = t.getData(),
o = [],
a = n.getLayout('valueAxisHorizontal') ? 1 : 0;
o[1 - a] = n.getLayout('valueAxisStart');
var r = new nC({
shape: { points: n.getLayout('largePoints') },
incremental: !!i,
__startPoint: o,
__valueIdx: a,
});
e.add(r), Bh(r, t, n);
}
function Bh(t, e, i) {
var n = i.getVisual('borderColor') || i.getVisual('color'),
o = e.getModel('itemStyle').getItemStyle(['color', 'borderColor']);
t.useStyle(o),
(t.style.fill = null),
(t.style.stroke = n),
(t.style.lineWidth = i.getLayout('barWidth'));
}
function Vh(t, e, i, n) {
var o = e.getData(),
a = this.dataIndex,
r = o.getName(a),
s = e.get('selectedOffset');
n.dispatchAction({
type: 'pieToggleSelect',
from: t,
name: r,
seriesId: e.id,
}),
o.each(function (t) {
Gh(
o.getItemGraphicEl(t),
o.getItemLayout(t),
e.isSelected(o.getName(t)),
s,
i,
);
});
}
function Gh(t, e, i, n, o) {
var a = (e.startAngle + e.endAngle) / 2,
r = Math.cos(a),
s = Math.sin(a),
l = i ? n : 0,
u = [r * l, s * l];
o
? t.animate().when(200, { position: u }).start('bounceOut')
: t.attr('position', u);
}
function Fh(t, e) {
function i() {
(a.ignore = a.hoverIgnore), (r.ignore = r.hoverIgnore);
}
function n() {
(a.ignore = a.normalIgnore), (r.ignore = r.normalIgnore);
}
tb.call(this);
var o = new hM({ z2: 2 }),
a = new gM(),
r = new rM();
this.add(o),
this.add(a),
this.add(r),
this.updateData(t, e, !0),
this.on('emphasis', i)
.on('normal', n)
.on('mouseover', i)
.on('mouseout', n);
}
function Wh(t, e, i, n, o, a, r) {
function s(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 l(t, e, i, n, o, a) {
for (var r = e ? Number.MAX_VALUE : 0, s = 0, l = t.length; s < l; s++) {
var u = Math.abs(t[s].y - n),
h = t[s].len,
c = t[s].len2,
d =
u < o + h
? Math.sqrt((o + h + c) * (o + h + c) - u * u)
: Math.abs(t[s].x - i);
e && d >= r && (d = r - 10),
!e && d <= r && (d = r + 10),
(t[s].x = i + d * a),
(r = d);
}
}
t.sort(function (t, e) {
return t.y - e.y;
});
for (var u, h = 0, c = t.length, d = [], f = [], p = 0; p < c; p++)
(u = t[p].y - h) < 0 &&
(function (e, i, n, o) {
for (var a = e; a < i; a++)
if (
((t[a].y += n),
a > e && a + 1 < i && t[a + 1].y > t[a].y + t[a].height)
)
return void s(a, n / 2);
s(i - 1, n / 2);
})(p, c, -u),
(h = t[p].y + t[p].height);
r - h < 0 && s(c - 1, h - r);
for (p = 0; p < c; p++) t[p].y >= i ? f.push(t[p]) : d.push(t[p]);
l(d, !1, e, i, n, o), l(f, !0, e, i, n, o);
}
function Hh(t, e, i, n, o, a) {
for (var r = [], s = [], l = 0; l < t.length; l++)
Zh(t[l]) || (t[l].x < e ? r.push(t[l]) : s.push(t[l]));
Wh(s, e, i, n, 1, o, a), Wh(r, e, i, n, -1, o, a);
for (l = 0; l < t.length; l++)
if (!Zh(t[l])) {
var u = t[l].linePoints;
if (u) {
var h = u[1][0] - u[2][0];
t[l].x < e ? (u[2][0] = t[l].x + 3) : (u[2][0] = t[l].x - 3),
(u[1][1] = u[2][1] = t[l].y),
(u[1][0] = u[2][0] + h);
}
}
}
function Zh(t) {
return 'center' === t.position;
}
function Uh() {
this.group = new tb();
}
function Xh(t, e, i) {
aD.call(this, t, e, i),
(this.type = 'value'),
(this.angle = 0),
(this.name = ''),
this.model;
}
function jh(t, e, i) {
(this._model = t),
(this.dimensions = []),
(this._indicatorAxes = f(
t.getIndicatorModels(),
function (t, e) {
var i = 'indicator_' + e,
n = new Xh(i, new TA());
return (
(n.name = t.get('name')),
(n.model = t),
(t.axis = n),
this.dimensions.push(i),
n
);
},
this,
)),
this.resize(t, i),
this.cx,
this.cy,
this.r,
this.r0,
this.startAngle;
}
function Yh(t, e) {
return r({ show: e }, t);
}
function qh(t) {
return y(t) || (t = [+t, +t]), t;
}
function Kh(t) {
for (var e, i = 0; i < t.length; i++) {
var n = t[i].getBoundingRect();
(e = e || n.clone()).union(n);
}
return e;
}
function $h(t, e) {
var i,
n,
o = t.svgXML;
try {
k(
null !=
(n = (i =
(o && rs(o, { ignoreViewBox: !0, ignoreRootClip: !0 })) || {})
.root),
);
} catch (t) {
throw new Error('Invalid svg format\n' + t.message);
}
var a = i.width,
r = i.height,
s = i.viewBoxRect;
if (
(e ||
((e =
null == a || null == r ? n.getBoundingRect() : new de(0, 0, 0, 0)),
null != a && (e.width = a),
null != r && (e.height = r)),
s)
) {
var l = as(s, e.width, e.height),
u = n;
(n = new tb()).add(u), (u.scale = l.scale), (u.position = l.position);
}
return (
n.setClipPath(new yM({ shape: e.plain() })), { root: n, boundingRect: e }
);
}
function Jh(t) {
return function (e, i) {
var n = [];
return (
d(Qh(e), function (o) {
var a = NC[o.type][t];
a && n.push(a(e, o, i));
}),
n
);
};
}
function Qh(t) {
return DT.retrieveMap(t) || [];
}
function tc(t, e, i) {
nc(t)[e] = i;
}
function ec(t, e, i) {
var n = nc(t);
n[e] === i && (n[e] = null);
}
function ic(t, e) {
return !!nc(t)[e];
}
function nc(t) {
return t[EC] || (t[EC] = {});
}
function oc(t) {
this.pointerChecker, (this._zr = t), (this._opt = {});
var e = m,
n = e(ac, this),
o = e(rc, this),
a = e(sc, this),
s = e(lc, this),
l = e(uc, this);
fw.call(this),
(this.setPointerChecker = function (t) {
this.pointerChecker = t;
}),
(this.enable = function (e, u) {
this.disable(),
(this._opt = r(i(u) || {}, {
zoomOnMouseWheel: !0,
moveOnMouseMove: !0,
moveOnMouseWheel: !1,
preventDefaultMouseMove: !0,
})),
null == e && (e = !0),
(!0 !== e && 'move' !== e && 'pan' !== e) ||
(t.on('mousedown', n), t.on('mousemove', o), t.on('mouseup', a)),
(!0 !== e && 'scale' !== e && 'zoom' !== e) ||
(t.on('mousewheel', s), t.on('pinch', l));
}),
(this.disable = function () {
t.off('mousedown', n),
t.off('mousemove', o),
t.off('mouseup', a),
t.off('mousewheel', s),
t.off('pinch', l);
}),
(this.dispose = this.disable),
(this.isDragging = function () {
return this._dragging;
}),
(this.isPinching = function () {
return this._pinching;
});
}
function ac(t) {
if (!(dt(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 rc(t) {
if (
this._dragging &&
dc('moveOnMouseMove', t, this._opt) &&
'pinch' !== t.gestureEvent &&
!ic(this._zr, 'globalPan')
) {
var e = t.offsetX,
i = t.offsetY,
n = this._x,
o = this._y,
a = e - n,
r = i - o;
(this._x = e),
(this._y = i),
this._opt.preventDefaultMouseMove && mw(t.event),
cc(this, 'pan', 'moveOnMouseMove', t, {
dx: a,
dy: r,
oldX: n,
oldY: o,
newX: e,
newY: i,
});
}
}
function sc(t) {
dt(t) || (this._dragging = !1);
}
function lc(t) {
var e = dc('zoomOnMouseWheel', t, this._opt),
i = dc('moveOnMouseWheel', t, this._opt),
n = t.wheelDelta,
o = Math.abs(n),
a = t.offsetX,
r = t.offsetY;
if (0 !== n && (e || i)) {
if (e) {
var s = o > 3 ? 1.4 : o > 1 ? 1.2 : 1.1;
hc(this, 'zoom', 'zoomOnMouseWheel', t, {
scale: n > 0 ? s : 1 / s,
originX: a,
originY: r,
});
}
if (i) {
var l = Math.abs(n);
hc(this, 'scrollMove', 'moveOnMouseWheel', t, {
scrollDelta: (n > 0 ? 1 : -1) * (l > 3 ? 0.4 : l > 1 ? 0.15 : 0.05),
originX: a,
originY: r,
});
}
}
}
function uc(t) {
ic(this._zr, 'globalPan') ||
hc(this, 'zoom', null, t, {
scale: t.pinchScale > 1 ? 1.1 : 1 / 1.1,
originX: t.pinchX,
originY: t.pinchY,
});
}
function hc(t, e, i, n, o) {
t.pointerChecker &&
t.pointerChecker(n, o.originX, o.originY) &&
(mw(n.event), cc(t, e, i, n, o));
}
function cc(t, e, i, n, o) {
(o.isAvailableBehavior = m(dc, null, i, n)), t.trigger(e, o);
}
function dc(t, e, i) {
var n = i[t];
return !t || (n && (!_(n) || e.event[n + 'Key']));
}
function fc(t, e, i) {
var n = t.target,
o = n.position;
(o[0] += e), (o[1] += i), n.dirty();
}
function pc(t, e, i, n) {
var o = t.target,
a = t.zoomLimit,
r = o.position,
s = o.scale,
l = (t.zoom = t.zoom || 1);
if (((l *= e), a)) {
var u = a.min || 0,
h = a.max || 1 / 0;
l = Math.max(Math.min(h, l), u);
}
var c = l / t.zoom;
(t.zoom = l),
(r[0] -= (i - r[0]) * (c - 1)),
(r[1] -= (n - r[1]) * (c - 1)),
(s[0] *= c),
(s[1] *= c),
o.dirty();
}
function gc(t, e, i) {
var n = e.getComponentByElement(t.topTarget),
o = n && n.coordinateSystem;
return n && n !== i && !RC[n.mainType] && o && o.model !== i;
}
function mc(t, e) {
var i = t.getItemStyle(),
n = t.get('areaColor');
return null != n && (i.fill = n), i;
}
function vc(t, e, i, n, o) {
i.off('click'),
i.off('mousedown'),
e.get('selectedMode') &&
(i.on('mousedown', function () {
t._mouseDownFlag = !0;
}),
i.on('click', function (a) {
if (t._mouseDownFlag) {
t._mouseDownFlag = !1;
for (var r = a.target; !r.__regions; ) r = r.parent;
if (r) {
var s = {
type: ('geo' === e.mainType ? 'geo' : 'map') + 'ToggleSelect',
batch: f(r.__regions, function (t) {
return { name: t.name, from: o.uid };
}),
};
(s[e.mainType + 'Id'] = e.id), n.dispatchAction(s), yc(e, i);
}
}
}));
}
function yc(t, e) {
e.eachChild(function (e) {
d(e.__regions, function (i) {
e.trigger(t.isSelected(i.name) ? 'emphasis' : 'normal');
});
});
}
function xc(t, e) {
var i = new tb();
(this.uid = Ro('ec_map_draw')),
(this._controller = new oc(t.getZr())),
(this._controllerHost = { target: e ? i : null }),
(this.group = i),
(this._updateGroup = e),
this._mouseDownFlag,
this._mapName,
this._initialized,
i.add((this._regionsGroup = new tb())),
i.add((this._backgroundGroup = new tb()));
}
function _c(t) {
var e = this[zC];
e && e.recordVersion === this[BC] && wc(e, t);
}
function wc(t, e) {
var i = t.circle,
n = t.labelModel,
o = t.hoverLabelModel,
a = t.emphasisText,
r = t.normalText;
e
? (i.style.extendFrom(
mo(
{},
o,
{ text: o.get('show') ? a : null },
{ isRectText: !0, useInsideStyle: !1 },
!0,
),
),
(i.__mapOriginalZ2 = i.z2),
(i.z2 += NM))
: (mo(
i.style,
n,
{
text: n.get('show') ? r : null,
textPosition: n.getShallow('position') || 'bottom',
},
{ isRectText: !0, useInsideStyle: !1 },
),
i.dirty(!1),
null != i.__mapOriginalZ2 &&
((i.z2 = i.__mapOriginalZ2), (i.__mapOriginalZ2 = null)));
}
function bc(t, e, i) {
var n = t.getZoom(),
o = t.getCenter(),
a = e.zoom,
r = t.dataToPoint(o);
if (null != e.dx && null != e.dy) {
(r[0] -= e.dx), (r[1] -= e.dy);
o = t.pointToData(r);
t.setCenter(o);
}
if (null != a) {
if (i) {
var s = i.min || 0,
l = i.max || 1 / 0;
a = Math.max(Math.min(n * a, l), s) / n;
}
(t.scale[0] *= a), (t.scale[1] *= a);
var u = t.position,
h = (e.originX - u[0]) * (a - 1),
c = (e.originY - u[1]) * (a - 1);
(u[0] -= h), (u[1] -= c), t.updateTransform();
o = t.pointToData(r);
t.setCenter(o), t.setZoom(a * n);
}
return { center: t.getCenter(), zoom: t.getZoom() };
}
function Sc() {
Tw.call(this);
}
function Mc(t) {
(this.name = t),
this.zoomLimit,
Tw.call(this),
(this._roamTransformable = new Sc()),
(this._rawTransformable = new Sc()),
this._center,
this._zoom;
}
function Ic(t, e, i, n) {
var o = i.seriesModel,
a = o ? o.coordinateSystem : null;
return a === this ? a[t](n) : null;
}
function Tc(t, e, i, n) {
Mc.call(this, t), (this.map = e);
var o = OC.load(e, i);
(this._nameCoordMap = o.nameCoordMap),
(this._regionsMap = o.regionsMap),
(this._invertLongitute = null == n || n),
(this.regions = o.regions),
(this._rect = o.boundingRect);
}
function Ac(t, e, i, n) {
var o = i.geoModel,
a = i.seriesModel,
r = o
? o.coordinateSystem
: a
? a.coordinateSystem ||
(a.getReferringComponents('geo')[0] || {}).coordinateSystem
: null;
return r === this ? r[t](n) : null;
}
function Dc(t, e) {
var i = t.get('boundingCoords');
if (null != i) {
var n = i[0],
o = i[1];
isNaN(n[0]) ||
isNaN(n[1]) ||
isNaN(o[0]) ||
isNaN(o[1]) ||
this.setBoundingRect(n[0], n[1], o[0] - n[0], o[1] - n[1]);
}
var a,
r = this.getBoundingRect(),
s = t.get('layoutCenter'),
l = t.get('layoutSize'),
u = e.getWidth(),
h = e.getHeight(),
c = (r.width / r.height) * this.aspectScale,
d = !1;
s &&
l &&
((s = [Vo(s[0], u), Vo(s[1], h)]),
(l = Vo(l, Math.min(u, h))),
isNaN(s[0]) || isNaN(s[1]) || isNaN(l) || (d = !0));
if (d) {
var f = {};
c > 1
? ((f.width = l), (f.height = l / c))
: ((f.height = l), (f.width = l * c)),
(f.y = s[1] - f.height / 2),
(f.x = s[0] - f.width / 2);
} else ((a = t.getBoxLayoutParams()).aspect = c), (f = ca(a, { width: u, height: h }));
this.setViewRect(f.x, f.y, f.width, f.height),
this.setCenter(t.get('center')),
this.setZoom(t.get('zoom'));
}
function Cc(t, e) {
d(e.get('geoCoord'), function (e, i) {
t.addGeoCoord(i, e);
});
}
function Lc(t, e) {
var i = {};
return (
d(t, function (t) {
t.each(t.mapDimension('value'), function (e, n) {
var o = 'ec-' + t.getName(n);
(i[o] = i[o] || []), isNaN(e) || i[o].push(e);
});
}),
t[0].map(t[0].mapDimension('value'), function (n, o) {
for (
var a = 'ec-' + t[0].getName(o),
r = 0,
s = 1 / 0,
l = -1 / 0,
u = i[a].length,
h = 0;
h < u;
h++
)
(s = Math.min(s, i[a][h])),
(l = Math.max(l, i[a][h])),
(r += i[a][h]);
var c;
return (
(c = 'min' === e ? s : 'max' === e ? l : 'average' === e ? r / u : r),
0 === u ? NaN : c
);
})
);
}
function kc(t) {
var e = t.mainData,
i = t.datas;
i || ((i = { main: e }), (t.datasAttr = { main: 'data' })),
(t.datas = t.mainData = null),
zc(e, i, t),
FC(i, function (i) {
FC(e.TRANSFERABLE_METHODS, function (e) {
i.wrapMethod(e, v(Pc, t));
});
}),
e.wrapMethod('cloneShallow', v(Oc, t)),
FC(e.CHANGABLE_METHODS, function (i) {
e.wrapMethod(i, v(Nc, t));
}),
k(i[e.dataType] === e);
}
function Pc(t, e) {
if (Rc(this)) {
var i = a({}, this[WC]);
(i[this.dataType] = e), zc(e, i, t);
} else Bc(e, this.dataType, this[HC], t);
return e;
}
function Nc(t, e) {
return t.struct && t.struct.update(this), e;
}
function Oc(t, e) {
return (
FC(e[WC], function (i, n) {
i !== e && Bc(i.cloneShallow(), n, e, t);
}),
e
);
}
function Ec(t) {
var e = this[HC];
return null == t || null == e ? e : e[WC][t];
}
function Rc(t) {
return t[HC] === t;
}
function zc(t, e, i) {
(t[WC] = {}),
FC(e, function (e, n) {
Bc(e, n, t, i);
});
}
function Bc(t, e, i, n) {
(i[WC][e] = t),
(t[HC] = i),
(t.dataType = e),
n.struct &&
((t[n.structAttr] = n.struct), (n.struct[n.datasAttr[e]] = t)),
(t.getLinkedData = Ec);
}
function Vc(t, e, i) {
this.root,
this.data,
(this._nodes = []),
(this.hostModel = t),
(this.levelModels = f(e || [], function (e) {
return new No(e, t, t.ecModel);
})),
(this.leavesModel = new No(i || {}, t, t.ecModel));
}
function Gc(t, e) {
var i = e.children;
t.parentNode !== e && (i.push(t), (t.parentNode = e));
}
function Fc(t) {
t.hierNode = {
defaultAncestor: null,
ancestor: t,
prelim: 0,
modifier: 0,
change: 0,
shift: 0,
i: 0,
thread: null,
};
for (var e, i, n = [t]; (e = n.pop()); )
if (((i = e.children), e.isExpand && i.length))
for (var o = i.length - 1; o >= 0; o--) {
var a = i[o];
(a.hierNode = {
defaultAncestor: null,
ancestor: a,
prelim: 0,
modifier: 0,
change: 0,
shift: 0,
i: o,
thread: null,
}),
n.push(a);
}
}
function Wc(t, e) {
var i = t.isExpand ? t.children : [],
n = t.parentNode.children,
o = t.hierNode.i ? n[t.hierNode.i - 1] : null;
if (i.length) {
jc(t);
var a = (i[0].hierNode.prelim + i[i.length - 1].hierNode.prelim) / 2;
o
? ((t.hierNode.prelim = o.hierNode.prelim + e(t, o)),
(t.hierNode.modifier = t.hierNode.prelim - a))
: (t.hierNode.prelim = a);
} else o && (t.hierNode.prelim = o.hierNode.prelim + e(t, o));
t.parentNode.hierNode.defaultAncestor = Yc(
t,
o,
t.parentNode.hierNode.defaultAncestor || n[0],
e,
);
}
function Hc(t) {
var e = t.hierNode.prelim + t.parentNode.hierNode.modifier;
t.setLayout({ x: e }, !0),
(t.hierNode.modifier += t.parentNode.hierNode.modifier);
}
function Zc(t) {
return arguments.length ? t : Qc;
}
function Uc(t, e) {
var i = {};
return (
(t -= Math.PI / 2), (i.x = e * Math.cos(t)), (i.y = e * Math.sin(t)), i
);
}
function Xc(t, e) {
return ca(t.getBoxLayoutParams(), {
width: e.getWidth(),
height: e.getHeight(),
});
}
function jc(t) {
for (var e = t.children, i = e.length, n = 0, o = 0; --i >= 0; ) {
var a = e[i];
(a.hierNode.prelim += n),
(a.hierNode.modifier += n),
(o += a.hierNode.change),
(n += a.hierNode.shift + o);
}
}
function Yc(t, e, i, n) {
if (e) {
for (
var o = t,
a = t,
r = a.parentNode.children[0],
s = e,
l = o.hierNode.modifier,
u = a.hierNode.modifier,
h = r.hierNode.modifier,
c = s.hierNode.modifier;
(s = qc(s)), (a = Kc(a)), s && a;
) {
(o = qc(o)), (r = Kc(r)), (o.hierNode.ancestor = t);
var d = s.hierNode.prelim + c - a.hierNode.prelim - u + n(s, a);
d > 0 && (Jc($c(s, t, i), t, d), (u += d), (l += d)),
(c += s.hierNode.modifier),
(u += a.hierNode.modifier),
(l += o.hierNode.modifier),
(h += r.hierNode.modifier);
}
s && !qc(o) && ((o.hierNode.thread = s), (o.hierNode.modifier += c - l)),
a &&
!Kc(r) &&
((r.hierNode.thread = a), (r.hierNode.modifier += u - h), (i = t));
}
return i;
}
function qc(t) {
var e = t.children;
return e.length && t.isExpand ? e[e.length - 1] : t.hierNode.thread;
}
function Kc(t) {
var e = t.children;
return e.length && t.isExpand ? e[0] : t.hierNode.thread;
}
function $c(t, e, i) {
return t.hierNode.ancestor.parentNode === e.parentNode
? t.hierNode.ancestor
: i;
}
function Jc(t, e, i) {
var n = i / (e.hierNode.i - t.hierNode.i);
(e.hierNode.change -= n),
(e.hierNode.shift += i),
(e.hierNode.modifier += i),
(e.hierNode.prelim += i),
(t.hierNode.change += n);
}
function Qc(t, e) {
return t.parentNode === e.parentNode ? 1 : 2;
}
function td(t, e) {
var i = t.getItemLayout(e);
return (
i && !isNaN(i.x) && !isNaN(i.y) && 'none' !== t.getItemVisual(e, 'symbol')
);
}
function ed(t, e, i) {
return (
(i.itemModel = e),
(i.itemStyle = e.getModel('itemStyle').getItemStyle()),
(i.hoverItemStyle = e.getModel('emphasis.itemStyle').getItemStyle()),
(i.lineStyle = e.getModel('lineStyle').getLineStyle()),
(i.labelModel = e.getModel('label')),
(i.hoverLabelModel = e.getModel('emphasis.label')),
!1 === t.isExpand && 0 !== t.children.length
? (i.symbolInnerColor = i.itemStyle.fill)
: (i.symbolInnerColor = '#fff'),
i
);
}
function id(t, e, i, n, o, a) {
var s = !i,
l = t.tree.getNodeByDataIndex(e),
a = ed(l, l.getModel(), a),
u = t.tree.root,
h = l.parentNode === u ? l : l.parentNode || l,
c = t.getItemGraphicEl(h.dataIndex),
d = h.getLayout(),
f = c
? {
x: c.position[0],
y: c.position[1],
rawX: c.__radialOldRawX,
rawY: c.__radialOldRawY,
}
: d,
p = l.getLayout();
s
? (i = new wu(t, e, a)).attr('position', [f.x, f.y])
: i.updateData(t, e, a),
(i.__radialOldRawX = i.__radialRawX),
(i.__radialOldRawY = i.__radialRawY),
(i.__radialRawX = p.rawX),
(i.__radialRawY = p.rawY),
n.add(i),
t.setItemGraphicEl(e, i),
Io(i, { position: [p.x, p.y] }, o);
var g = i.getSymbolPath();
if ('radial' === a.layout) {
var m,
v,
y = u.children[0],
x = y.getLayout(),
_ = y.children.length;
if (p.x === x.x && !0 === l.isExpand) {
var w = {};
(w.x =
(y.children[0].getLayout().x + y.children[_ - 1].getLayout().x) / 2),
(w.y =
(y.children[0].getLayout().y + y.children[_ - 1].getLayout().y) /
2),
(m = Math.atan2(w.y - x.y, w.x - x.x)) < 0 && (m = 2 * Math.PI + m),
(v = w.x < x.x) && (m -= Math.PI);
} else
(m = Math.atan2(p.y - x.y, p.x - x.x)) < 0 && (m = 2 * Math.PI + m),
0 === l.children.length ||
(0 !== l.children.length && !1 === l.isExpand)
? (v = p.x < x.x) && (m -= Math.PI)
: (v = p.x > x.x) || (m -= Math.PI);
var b = v ? 'left' : 'right';
g.setStyle({
textPosition: b,
textRotation: -m,
textOrigin: 'center',
verticalAlign: 'middle',
});
}
if (l.parentNode && l.parentNode !== u) {
var S = i.__edge;
S ||
(S = i.__edge = new bM({
shape: od(a, f, f),
style: r({ opacity: 0, strokeNoScale: !0 }, a.lineStyle),
})),
Io(S, { shape: od(a, d, p), style: { opacity: 1 } }, o),
n.add(S);
}
}
function nd(t, e, i, n, o, a) {
for (
var r,
s = t.tree.getNodeByDataIndex(e),
l = t.tree.root,
a = ed(s, s.getModel(), a),
u = s.parentNode === l ? s : s.parentNode || s;
null == (r = u.getLayout());
)
u = u.parentNode === l ? u : u.parentNode || u;
Io(i, { position: [r.x + 1, r.y + 1] }, o, function () {
n.remove(i), t.setItemGraphicEl(e, null);
}),
i.fadeOut(null, { keepLabel: !0 });
var h = i.__edge;
h &&
Io(h, { shape: od(a, r, r), style: { opacity: 0 } }, o, function () {
n.remove(h);
});
}
function od(t, e, i) {
var n,
o,
a,
r,
s,
l,
u,
h,
c = t.orient;
if ('radial' === t.layout) {
(s = e.rawX), (u = e.rawY), (l = i.rawX), (h = i.rawY);
var d = Uc(s, u),
f = Uc(s, u + (h - u) * t.curvature),
p = Uc(l, h + (u - h) * t.curvature),
g = Uc(l, h);
return {
x1: d.x,
y1: d.y,
x2: g.x,
y2: g.y,
cpx1: f.x,
cpy1: f.y,
cpx2: p.x,
cpy2: p.y,
};
}
return (
(s = e.x),
(u = e.y),
(l = i.x),
(h = i.y),
('LR' !== c && 'RL' !== c) ||
((n = s + (l - s) * t.curvature),
(o = u),
(a = l + (s - l) * t.curvature),
(r = h)),
('TB' !== c && 'BT' !== c) ||
((n = s),
(o = u + (h - u) * t.curvature),
(a = l),
(r = h + (u - h) * t.curvature)),
{ x1: s, y1: u, x2: l, y2: h, cpx1: n, cpy1: o, cpx2: a, cpy2: r }
);
}
function ad(t, e, i) {
for (var n, o = [t], a = []; (n = o.pop()); )
if ((a.push(n), n.isExpand)) {
var r = n.children;
if (r.length) for (var s = 0; s < r.length; s++) o.push(r[s]);
}
for (; (n = a.pop()); ) e(n, i);
}
function rd(t, e) {
for (var i, n = [t]; (i = n.pop()); )
if ((e(i), i.isExpand)) {
var o = i.children;
if (o.length) for (var a = o.length - 1; a >= 0; a--) n.push(o[a]);
}
}
function sd(t, e) {
var i = Xc(t, e);
t.layoutInfo = i;
var n = t.get('layout'),
o = 0,
a = 0,
r = null;
'radial' === n
? ((o = 2 * Math.PI),
(a = Math.min(i.height, i.width) / 2),
(r = Zc(function (t, e) {
return (t.parentNode === e.parentNode ? 1 : 2) / t.depth;
})))
: ((o = i.width), (a = i.height), (r = Zc()));
var s = t.getData().tree.root,
l = s.children[0];
if (l) {
Fc(s),
ad(l, Wc, r),
(s.hierNode.modifier = -l.hierNode.prelim),
rd(l, Hc);
var u = l,
h = l,
c = l;
rd(l, function (t) {
var e = t.getLayout().x;
e < u.getLayout().x && (u = t),
e > h.getLayout().x && (h = t),
t.depth > c.depth && (c = t);
});
var d = u === h ? 1 : r(u, h) / 2,
f = d - u.getLayout().x,
p = 0,
g = 0,
m = 0,
v = 0;
if ('radial' === n)
(p = o / (h.getLayout().x + d + f)),
(g = a / (c.depth - 1 || 1)),
rd(l, function (t) {
(m = (t.getLayout().x + f) * p), (v = (t.depth - 1) * g);
var e = Uc(m, v);
t.setLayout({ x: e.x, y: e.y, rawX: m, rawY: v }, !0);
});
else {
var y = t.getOrient();
'RL' === y || 'LR' === y
? ((g = a / (h.getLayout().x + d + f)),
(p = o / (c.depth - 1 || 1)),
rd(l, function (t) {
(v = (t.getLayout().x + f) * g),
(m = 'LR' === y ? (t.depth - 1) * p : o - (t.depth - 1) * p),
t.setLayout({ x: m, y: v }, !0);
}))
: ('TB' !== y && 'BT' !== y) ||
((p = o / (h.getLayout().x + d + f)),
(g = a / (c.depth - 1 || 1)),
rd(l, function (t) {
(m = (t.getLayout().x + f) * p),
(v = 'TB' === y ? (t.depth - 1) * g : a - (t.depth - 1) * g),
t.setLayout({ x: m, y: v }, !0);
}));
}
}
}
function ld(t, e, i) {
if (t && l(e, t.type) >= 0) {
var n = i.getData().tree.root,
o = t.targetNode;
if (('string' == typeof o && (o = n.getNodeById(o)), o && n.contains(o)))
return { node: o };
var a = t.targetNodeId;
if (null != a && (o = n.getNodeById(a))) return { node: o };
}
}
function ud(t) {
for (var e = []; t; ) (t = t.parentNode) && e.push(t);
return e.reverse();
}
function hd(t, e) {
return l(ud(t), e) >= 0;
}
function cd(t, e) {
for (var i = []; t; ) {
var n = t.dataIndex;
i.push({ name: t.name, dataIndex: n, value: e.getRawValue(n) }),
(t = t.parentNode);
}
return i.reverse(), i;
}
function dd(t) {
var e = 0;
d(t.children, function (t) {
dd(t);
var i = t.value;
y(i) && (i = i[0]), (e += i);
});
var i = t.value;
y(i) && (i = i[0]),
(null == i || isNaN(i)) && (i = e),
i < 0 && (i = 0),
y(t.value) ? (t.value[0] = i) : (t.value = i);
}
function fd(t, e) {
var i = e.get('color');
if (i) {
var n;
return (
d((t = t || []), function (t) {
var e = new No(t),
i = e.get('color');
(e.get('itemStyle.color') || (i && 'none' !== i)) && (n = !0);
}),
n || ((t[0] || (t[0] = {})).color = i.slice()),
t
);
}
}
function pd(t) {
(this.group = new tb()), t.add(this.group);
}
function gd(t, e, i, n, o, a) {
var r = [
[o ? t : t - UC, e],
[t + i, e],
[t + i, e + n],
[o ? t : t - UC, e + n],
];
return (
!a && r.splice(2, 0, [t + i + UC, e + n / 2]),
!o && r.push([t, e + n / 2]),
r
);
}
function md(t, e, i) {
t.eventData = {
componentType: 'series',
componentSubType: 'treemap',
componentIndex: e.componentIndex,
seriesIndex: e.componentIndex,
seriesName: e.name,
seriesType: 'treemap',
selfType: 'breadcrumb',
nodeData: { dataIndex: i && i.dataIndex, name: i && i.name },
treePathInfo: i && cd(i, e),
};
}
function vd() {
var t,
e = [],
i = {};
return {
add: function (t, n, o, a, r) {
return (
_(a) && ((r = a), (a = 0)),
!i[t.id] &&
((i[t.id] = 1),
e.push({ el: t, target: n, time: o, delay: a, easing: r }),
!0)
);
},
done: function (e) {
return (t = e), this;
},
start: function () {
for (var n = e.length, o = 0, a = e.length; o < a; o++) {
var r = e[o];
r.el.animateTo(r.target, r.time, r.delay, r.easing, function () {
--n || ((e.length = 0), (i = {}), t && t());
});
}
return this;
},
};
}
function yd(t, e, n, o, r, s, l, u, h, c) {
function d(t, e) {
w
? !t.invisible && s.push(t)
: (e(), t.__tmWillVisible || (t.invisible = !1));
}
function f(e, n, o, a, r, s) {
var u = l.getModel(),
h = T(
t.getFormattedLabel(
l.dataIndex,
'normal',
null,
null,
s ? 'upperLabel' : 'label',
),
u.get('name'),
);
if (!s && v.isLeafRoot) {
var c = t.get('drillDownIcon', !0);
h = c ? c + ' ' + h : h;
}
var d = u.getModel(s ? JC : KC),
f = u.getModel(s ? QC : $C),
p = d.getShallow('show');
go(e, n, d, f, {
defaultText: p ? h : null,
autoColor: o,
isRectText: !0,
}),
s && (e.textRect = i(s)),
(e.truncate =
p && d.get('ellipsis')
? { outerWidth: a, outerHeight: r, minChar: 2 }
: null);
}
function p(t, i, o, a) {
var s = null != S && n[t][S],
l = r[t];
return (
s
? ((n[t][S] = null), g(l, s, t))
: w ||
(((s = new i({ z: xd(o, a) })).__tmDepth = o),
(s.__tmStorageName = t),
m(l, s, t)),
(e[t][b] = s)
);
}
function g(t, e, i) {
(t[b] = {}).old = 'nodeGroup' === i ? e.position.slice() : a({}, e.shape);
}
function m(t, e, i) {
var n = (t[b] = {}),
a = l.parentNode;
if (a && (!o || 'drillDown' === o.direction)) {
var s = 0,
u = 0,
h = r.background[a.getRawIndex()];
!o && h && h.old && ((s = h.old.width), (u = h.old.height)),
(n.old =
'nodeGroup' === i ? [0, u] : { x: s, y: u, width: 0, height: 0 });
}
n.fadein = 'nodeGroup' !== i;
}
if (l) {
var v = l.getLayout();
if (v && v.isInView) {
var y = v.width,
x = v.height,
_ = v.borderWidth,
w = v.invisible,
b = l.getRawIndex(),
S = u && u.getRawIndex(),
M = l.viewChildren,
I = v.upperHeight,
A = M && M.length,
D = l.getModel('itemStyle'),
C = l.getModel('emphasis.itemStyle'),
L = p('nodeGroup', jC);
if (L) {
if (
(h.add(L),
L.attr('position', [v.x || 0, v.y || 0]),
(L.__tmNodeWidth = y),
(L.__tmNodeHeight = x),
v.isAboveViewRoot)
)
return L;
var k = p('background', YC, c, eL);
if (
(k &&
(function (e, i, n) {
(i.dataIndex = l.dataIndex),
(i.seriesIndex = t.seriesIndex),
i.setShape({ x: 0, y: 0, width: y, height: x });
var o = l.getVisual('borderColor', !0),
a = C.get('borderColor');
d(i, function () {
var t = oL(D);
t.fill = o;
var e = nL(C);
if (((e.fill = a), n)) {
var r = y - 2 * _;
f(t, e, o, r, I, { x: _, y: 0, width: r, height: I });
} else t.text = e.text = null;
i.setStyle(t), fo(i, e);
}),
e.add(i);
})(L, k, A && v.upperHeight),
!A)
) {
var P = p('content', YC, c, iL);
P &&
(function (e, i) {
(i.dataIndex = l.dataIndex), (i.seriesIndex = t.seriesIndex);
var n = Math.max(y - 2 * _, 0),
o = Math.max(x - 2 * _, 0);
(i.culling = !0),
i.setShape({ x: _, y: _, width: n, height: o });
var a = l.getVisual('color', !0);
d(i, function () {
var t = oL(D);
t.fill = a;
var e = nL(C);
f(t, e, a, n, o), i.setStyle(t), fo(i, e);
}),
e.add(i);
})(L, P);
}
return L;
}
}
}
}
function xd(t, e) {
var i = t * tL + e;
return (i - 1) / i;
}
function _d(t) {
var e = t.pieceList;
(t.hasSpecialVisual = !1),
d(e, function (e, i) {
(e.originIndex = i), null != e.visual && (t.hasSpecialVisual = !0);
});
}
function wd(t) {
var e = t.categories,
i = t.visual,
n = (t.categoryMap = {});
if (
(sL(e, function (t, e) {
n[t] = e;
}),
!y(i))
) {
var o = [];
w(i)
? sL(i, function (t, e) {
var i = n[e];
o[null != i ? i : uL] = t;
})
: (o[uL] = i),
(i = Ld(t, o));
}
for (var a = e.length - 1; a >= 0; a--)
null == i[a] && (delete n[e[a]], e.pop());
}
function bd(t, e) {
var i = t.visual,
n = [];
w(i)
? sL(i, function (t) {
n.push(t);
})
: null != i && n.push(i);
var o = { color: 1, symbol: 1 };
e || 1 !== n.length || o.hasOwnProperty(t.type) || (n[1] = n[0]), Ld(t, n);
}
function Sd(t) {
return {
applyVisual: function (e, i, n) {
(e = this.mapValueToVisual(e)), n('color', t(i('color'), e));
},
_doMap: Dd([0, 1]),
};
}
function Md(t) {
var e = this.option.visual;
return e[Math.round(Bo(t, [0, 1], [0, e.length - 1], !0))] || {};
}
function Id(t) {
return function (e, i, n) {
n(t, this.mapValueToVisual(e));
};
}
function Td(t) {
var e = this.option.visual;
return e[this.option.loop && t !== uL ? t % e.length : t];
}
function Ad() {
return this.option.visual[0];
}
function Dd(t) {
return {
linear: function (e) {
return Bo(e, t, this.option.visual, !0);
},
category: Td,
piecewise: function (e, i) {
var n = Cd.call(this, i);
return null == n && (n = Bo(e, t, this.option.visual, !0)), n;
},
fixed: Ad,
};
}
function Cd(t) {
var e = this.option,
i = e.pieceList;
if (e.hasSpecialVisual) {
var n = i[hL.findPieceIndex(t, i)];
if (n && n.visual) return n.visual[this.type];
}
}
function Ld(t, e) {
return (
(t.visual = e),
'color' === t.type &&
(t.parsedVisual = f(e, function (t) {
return Gt(t);
})),
e
);
}
function kd(t, e, i) {
return t ? e <= i : e < i;
}
function Pd(t, e, i, n, o, a) {
var r = t.getModel(),
s = t.getLayout();
if (s && !s.invisible && s.isInView) {
var l,
u = t.getModel(pL),
h = Nd(u, e, i[t.depth], n),
c = u.get('borderColor'),
f = u.get('borderColorSaturation');
null != f && (c = Ed(f, (l = Od(h)))), t.setVisual('borderColor', c);
var p = t.viewChildren;
if (p && p.length) {
var g = zd(t, r, s, u, h, p);
d(p, function (t, e) {
(t.depth >= o.length || t === o[t.depth]) &&
Pd(t, Vd(r, h, t, e, g, a), i, n, o, a);
});
} else (l = Od(h)), t.setVisual('color', l);
}
}
function Nd(t, e, i, n) {
var o = a({}, e);
return (
d(['color', 'colorAlpha', 'colorSaturation'], function (a) {
var r = t.get(a, !0);
null == r && i && (r = i[a]),
null == r && (r = e[a]),
null == r && (r = n.get(a)),
null != r && (o[a] = r);
}),
o
);
}
function Od(t) {
var e = Rd(t, 'color');
if (e) {
var i = Rd(t, 'colorAlpha'),
n = Rd(t, 'colorSaturation');
return n && (e = jt(e, null, null, n)), i && (e = Yt(e, i)), e;
}
}
function Ed(t, e) {
return null != e ? jt(e, null, null, t) : null;
}
function Rd(t, e) {
var i = t[e];
if (null != i && 'none' !== i) return i;
}
function zd(t, e, i, n, o, a) {
if (a && a.length) {
var r =
Bd(e, 'color') ||
(null != o.color &&
'none' !== o.color &&
(Bd(e, 'colorAlpha') || Bd(e, 'colorSaturation')));
if (r) {
var s = e.get('visualMin'),
l = e.get('visualMax'),
u = i.dataExtent.slice();
null != s && s < u[0] && (u[0] = s),
null != l && l > u[1] && (u[1] = l);
var h = e.get('colorMappingBy'),
c = { type: r.name, dataExtent: u, visual: r.range };
'color' !== c.type || ('index' !== h && 'id' !== h)
? (c.mappingMethod = 'linear')
: ((c.mappingMethod = 'category'), (c.loop = !0));
var d = new hL(c);
return (d.__drColorMappingBy = h), d;
}
}
}
function Bd(t, e) {
var i = t.get(e);
return fL(i) && i.length ? { name: e, range: i } : null;
}
function Vd(t, e, i, n, o, r) {
var s = a({}, e);
if (o) {
var l = o.type,
u = 'color' === l && o.__drColorMappingBy,
h =
'index' === u
? n
: 'id' === u
? r.mapIdToIndex(i.getId())
: i.getValue(t.get('visualDimension'));
s[l] = o.mapValueToVisual(h);
}
return s;
}
function Gd(t, e, i, n) {
var o, a;
if (!t.isRemoved()) {
var r = t.getLayout();
(o = r.width), (a = r.height);
var s = (f = t.getModel()).get(_L),
l = f.get(wL) / 2,
u = Kd(f),
h = Math.max(s, u),
c = s - l,
d = h - l,
f = t.getModel();
t.setLayout({ borderWidth: s, upperHeight: h, upperLabelHeight: u }, !0);
var p = (o = mL(o - 2 * c, 0)) * (a = mL(a - c - d, 0)),
g = Fd(t, f, p, e, i, n);
if (g.length) {
var m = { x: c, y: d, width: o, height: a },
v = vL(o, a),
y = 1 / 0,
x = [];
x.area = 0;
for (var _ = 0, w = g.length; _ < w; ) {
var b = g[_];
x.push(b), (x.area += b.getLayout().area);
var S = Ud(x, v, e.squareRatio);
S <= y
? (_++, (y = S))
: ((x.area -= x.pop().getLayout().area),
Xd(x, v, m, l, !1),
(v = vL(m.width, m.height)),
(x.length = x.area = 0),
(y = 1 / 0));
}
if ((x.length && Xd(x, v, m, l, !0), !i)) {
var M = f.get('childrenVisibleMin');
null != M && p < M && (i = !0);
}
for (var _ = 0, w = g.length; _ < w; _++) Gd(g[_], e, i, n + 1);
}
}
}
function Fd(t, e, i, n, o, a) {
var r = t.children || [],
s = n.sort;
'asc' !== s && 'desc' !== s && (s = null);
var l = null != n.leafDepth && n.leafDepth <= a;
if (o && !l) return (t.viewChildren = []);
Hd(
(r = g(r, function (t) {
return !t.isRemoved();
})),
s,
);
var u = Zd(e, r, s);
if (0 === u.sum) return (t.viewChildren = []);
if (((u.sum = Wd(e, i, u.sum, s, r)), 0 === u.sum))
return (t.viewChildren = []);
for (var h = 0, c = r.length; h < c; h++) {
var d = (r[h].getValue() / u.sum) * i;
r[h].setLayout({ area: d });
}
return (
l && (r.length && t.setLayout({ isLeafRoot: !0 }, !0), (r.length = 0)),
(t.viewChildren = r),
t.setLayout({ dataExtent: u.dataExtent }, !0),
r
);
}
function Wd(t, e, i, n, o) {
if (!n) return i;
for (
var a = t.get('visibleMin'), r = o.length, s = r, l = r - 1;
l >= 0;
l--
) {
var u = o['asc' === n ? r - l - 1 : l].getValue();
(u / i) * e < a && ((s = l), (i -= u));
}
return 'asc' === n ? o.splice(0, r - s) : o.splice(s, r - s), i;
}
function Hd(t, e) {
return (
e &&
t.sort(function (t, i) {
var n =
'asc' === e
? t.getValue() - i.getValue()
: i.getValue() - t.getValue();
return 0 === n
? 'asc' === e
? t.dataIndex - i.dataIndex
: i.dataIndex - t.dataIndex
: n;
}),
t
);
}
function Zd(t, e, i) {
for (var n = 0, o = 0, a = e.length; o < a; o++) n += e[o].getValue();
var r = t.get('visualDimension');
if (e && e.length)
if ('value' === r && i)
(s = [e[e.length - 1].getValue(), e[0].getValue()]),
'asc' === i && s.reverse();
else {
var s = [1 / 0, -1 / 0];
xL(e, function (t) {
var e = t.getValue(r);
e < s[0] && (s[0] = e), e > s[1] && (s[1] = e);
});
}
else s = [NaN, NaN];
return { sum: n, dataExtent: s };
}
function Ud(t, e, i) {
for (var n, o = 0, a = 1 / 0, r = 0, s = t.length; r < s; r++)
(n = t[r].getLayout().area) && (n < a && (a = n), n > o && (o = n));
var l = t.area * t.area,
u = e * e * i;
return l ? mL((u * o) / l, l / (u * a)) : 1 / 0;
}
function Xd(t, e, i, n, o) {
var a = e === i.width ? 0 : 1,
r = 1 - a,
s = ['x', 'y'],
l = ['width', 'height'],
u = i[s[a]],
h = e ? t.area / e : 0;
(o || h > i[l[r]]) && (h = i[l[r]]);
for (var c = 0, d = t.length; c < d; c++) {
var f = t[c],
p = {},
g = h ? f.getLayout().area / h : 0,
m = (p[l[r]] = mL(h - 2 * n, 0)),
v = i[s[a]] + i[l[a]] - u,
y = c === d - 1 || v < g ? v : g,
x = (p[l[a]] = mL(y - 2 * n, 0));
(p[s[r]] = i[s[r]] + vL(n, m / 2)),
(p[s[a]] = u + vL(n, x / 2)),
(u += y),
f.setLayout(p, !0);
}
(i[s[r]] += h), (i[l[r]] -= h);
}
function jd(t, e, i, n, o) {
var a = (e || {}).node,
r = [n, o];
if (!a || a === i) return r;
for (
var s, l = n * o, u = l * t.option.zoomToNodeRatio;
(s = a.parentNode);
) {
for (var h = 0, c = s.children, d = 0, f = c.length; d < f; d++)
h += c[d].getValue();
var p = a.getValue();
if (0 === p) return r;
u *= h / p;
var g = s.getModel(),
m = g.get(_L);
(u += 4 * m * m + (3 * m + Math.max(m, Kd(g))) * Math.pow(u, 0.5)) > XM &&
(u = XM),
(a = s);
}
u < l && (u = l);
var v = Math.pow(u / l, 0.5);
return [n * v, o * v];
}
function Yd(t, e, i) {
if (e) return { x: e.x, y: e.y };
var n = { x: 0, y: 0 };
if (!i) return n;
var o = i.node,
a = o.getLayout();
if (!a) return n;
for (var r = [a.width / 2, a.height / 2], s = o; s; ) {
var l = s.getLayout();
(r[0] += l.x), (r[1] += l.y), (s = s.parentNode);
}
return { x: t.width / 2 - r[0], y: t.height / 2 - r[1] };
}
function qd(t, e, i, n, o) {
var a = t.getLayout(),
r = i[o],
s = r && r === t;
if (!((r && !s) || (o === i.length && t !== n))) {
t.setLayout(
{ isInView: !0, invisible: !s && !e.intersect(a), isAboveViewRoot: s },
!0,
);
var l = new de(e.x - a.x, e.y - a.y, e.width, e.height);
xL(t.viewChildren || [], function (t) {
qd(t, l, i, n, o + 1);
});
}
}
function Kd(t) {
return t.get(bL) ? t.get(SL) : 0;
}
function $d(t) {
return '_EC_' + t;
}
function Jd(t, e) {
(this.id = null == t ? '' : t),
(this.inEdges = []),
(this.outEdges = []),
(this.edges = []),
this.hostGraph,
(this.dataIndex = null == e ? -1 : e);
}
function Qd(t, e, i) {
(this.node1 = t), (this.node2 = e), (this.dataIndex = null == i ? -1 : i);
}
function tf(t) {
return isNaN(+t.cpx1) || isNaN(+t.cpy1);
}
function ef(t) {
return '_' + t + 'Type';
}
function nf(t, e, i) {
var n = e.getItemVisual(i, 'color'),
o = e.getItemVisual(i, t),
a = e.getItemVisual(i, t + 'Size');
if (o && 'none' !== o) {
y(a) || (a = [a, a]);
var r = Jl(o, -a[0] / 2, -a[1] / 2, a[0], a[1], n);
return (r.name = t), r;
}
}
function of(t) {
var e = new PL({ name: 'line' });
return af(e.shape, t), e;
}
function af(t, e) {
var i = e[0],
n = e[1],
o = e[2];
(t.x1 = i[0]),
(t.y1 = i[1]),
(t.x2 = n[0]),
(t.y2 = n[1]),
(t.percent = 1),
o ? ((t.cpx1 = o[0]), (t.cpy1 = o[1])) : ((t.cpx1 = NaN), (t.cpy1 = NaN));
}
function rf(t, e, i) {
tb.call(this), this._createLine(t, e, i);
}
function sf(t) {
(this._ctor = t || rf), (this.group = new tb());
}
function lf(t, e, i, n) {
if (df(e.getItemLayout(i))) {
var o = new t._ctor(e, i, n);
e.setItemGraphicEl(i, o), t.group.add(o);
}
}
function uf(t, e, i, n, o, a) {
var r = e.getItemGraphicEl(n);
df(i.getItemLayout(o))
? (r ? r.updateData(i, o, a) : (r = new t._ctor(i, o, a)),
i.setItemGraphicEl(o, r),
t.group.add(r))
: t.group.remove(r);
}
function hf(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 cf(t) {
return isNaN(t[0]) || isNaN(t[1]);
}
function df(t) {
return !cf(t[0]) && !cf(t[1]);
}
function ff(t, e, i) {
for (
var n,
o = t[0],
a = t[1],
r = t[2],
s = 1 / 0,
l = i * i,
u = 0.1,
h = 0.1;
h <= 0.9;
h += 0.1
)
(RL[0] = VL(o[0], a[0], r[0], h)),
(RL[1] = VL(o[1], a[1], r[1], h)),
(f = FL(GL(RL, e) - l)) < s && ((s = f), (n = h));
for (var c = 0; c < 32; c++) {
var d = n + u;
(zL[0] = VL(o[0], a[0], r[0], n)),
(zL[1] = VL(o[1], a[1], r[1], n)),
(BL[0] = VL(o[0], a[0], r[0], d)),
(BL[1] = VL(o[1], a[1], r[1], d));
var f = GL(zL, e) - l;
if (FL(f) < 0.01) break;
var p = GL(BL, e) - l;
(u /= 2),
f < 0 ? (p >= 0 ? (n += u) : (n -= u)) : p >= 0 ? (n -= u) : (n += u);
}
return n;
}
function pf(t, e) {
return t.getVisual('opacity') || t.getModel().get(e);
}
function gf(t, e, i) {
var n = t.getGraphicEl(),
o = pf(t, e);
null != i && (null == o && (o = 1), (o *= i)),
n.downplay && n.downplay(),
n.traverse(function (t) {
if ('group' !== t.type) {
var e = t.lineLabelOriginalOpacity;
(null != e && null == i) || (e = o), t.setStyle('opacity', e);
}
});
}
function mf(t, e) {
var i = pf(t, e),
n = t.getGraphicEl();
n.highlight && n.highlight(),
n.traverse(function (t) {
'group' !== t.type && t.setStyle('opacity', i);
});
}
function vf(t) {
return t instanceof Array || (t = [t, t]), t;
}
function yf(t) {
var e = t.coordinateSystem;
if (!e || 'view' === e.type) {
var i = t.getGraph();
i.eachNode(function (t) {
var e = t.getModel();
t.setLayout([+e.get('x'), +e.get('y')]);
}),
xf(i);
}
}
function xf(t) {
t.eachEdge(function (t) {
var e = t.getModel().get('lineStyle.curveness') || 0,
i = F(t.node1.getLayout()),
n = F(t.node2.getLayout()),
o = [i, n];
+e &&
o.push([
(i[0] + n[0]) / 2 - (i[1] - n[1]) * e,
(i[1] + n[1]) / 2 - (n[0] - i[0]) * e,
]),
t.setLayout(o);
});
}
function _f(t) {
var e = t.coordinateSystem;
if (!e || 'view' === e.type) {
var i = e.getBoundingRect(),
n = t.getData(),
o = n.graph,
a = 0,
r = n.getSum('value'),
s = (2 * Math.PI) / (r || n.count()),
l = i.width / 2 + i.x,
u = i.height / 2 + i.y,
h = Math.min(i.width, i.height) / 2;
o.eachNode(function (t) {
var e = t.getValue('value');
(a += (s * (r ? e : 1)) / 2),
t.setLayout([h * Math.cos(a) + l, h * Math.sin(a) + u]),
(a += (s * (r ? e : 1)) / 2);
}),
n.setLayout({ cx: l, cy: u }),
o.eachEdge(function (t) {
var e,
i = t.getModel().get('lineStyle.curveness') || 0,
n = F(t.node1.getLayout()),
o = F(t.node2.getLayout()),
a = (n[0] + o[0]) / 2,
r = (n[1] + o[1]) / 2;
+i && (e = [l * (i *= 3) + a * (1 - i), u * i + r * (1 - i)]),
t.setLayout([n, o, e]);
});
}
}
function wf(t, e, i) {
for (
var n = i.rect,
o = n.width,
a = n.height,
r = [n.x + o / 2, n.y + a / 2],
s = null == i.gravity ? 0.1 : i.gravity,
l = 0;
l < t.length;
l++
) {
var u = t[l];
u.p ||
(u.p = V(
o * (Math.random() - 0.5) + r[0],
a * (Math.random() - 0.5) + r[1],
)),
(u.pp = F(u.p)),
(u.edges = null);
}
var h = 0.6;
return {
warmUp: function () {
h = 0.5;
},
setFixed: function (e) {
t[e].fixed = !0;
},
setUnfixed: function (e) {
t[e].fixed = !1;
},
step: function (i) {
for (var n = [], o = t.length, a = 0; a < e.length; a++) {
var l = e[a],
u = l.n1;
U(n, (p = l.n2).p, u.p);
var c = X(n) - l.d,
d = p.w / (u.w + p.w);
isNaN(d) && (d = 0),
q(n, n),
!u.fixed && XL(u.p, u.p, n, d * c * h),
!p.fixed && XL(p.p, p.p, n, -(1 - d) * c * h);
}
for (a = 0; a < o; a++)
(v = t[a]).fixed || (U(n, r, v.p), XL(v.p, v.p, n, s * h));
for (a = 0; a < o; a++)
for (var u = t[a], f = a + 1; f < o; f++) {
var p = t[f];
U(n, p.p, u.p),
0 === (c = X(n)) &&
(W(n, Math.random() - 0.5, Math.random() - 0.5), (c = 1));
var g = (u.rep + p.rep) / c / c;
!u.fixed && XL(u.pp, u.pp, n, g), !p.fixed && XL(p.pp, p.pp, n, -g);
}
for (var m = [], a = 0; a < o; a++) {
var v = t[a];
v.fixed || (U(m, v.p, v.pp), XL(v.p, v.p, m, h), G(v.pp, v.p));
}
(h *= 0.992), i && i(t, e, h < 0.01);
},
};
}
function bf(t, e, i) {
var n = t.getBoxLayoutParams();
return (
(n.aspect = i), ca(n, { width: e.getWidth(), height: e.getHeight() })
);
}
function Sf(t, e) {
var i = t.get('center'),
n = e.getWidth(),
o = e.getHeight(),
a = Math.min(n, o);
return {
cx: Vo(i[0], e.getWidth()),
cy: Vo(i[1], e.getHeight()),
r: Vo(t.get('radius'), a / 2),
};
}
function Mf(t, e) {
return (
e &&
('string' == typeof e
? (t = e.replace('{value}', null != t ? t : ''))
: 'function' == typeof e && (t = e(t))),
t
);
}
function If(t, e) {
function i() {
(a.ignore = a.hoverIgnore), (r.ignore = r.hoverIgnore);
}
function n() {
(a.ignore = a.normalIgnore), (r.ignore = r.normalIgnore);
}
tb.call(this);
var o = new pM(),
a = new gM(),
r = new rM();
this.add(o),
this.add(a),
this.add(r),
this.updateData(t, e, !0),
this.on('emphasis', i)
.on('normal', n)
.on('mouseover', i)
.on('mouseout', n);
}
function Tf(t, e) {
return ca(t.getBoxLayoutParams(), {
width: e.getWidth(),
height: e.getHeight(),
});
}
function Af(t, e) {
for (
var i = t.mapDimension('value'),
n = t.mapArray(i, function (t) {
return t;
}),
o = [],
a = 'ascending' === e,
r = 0,
s = t.count();
r < s;
r++
)
o[r] = r;
return (
'function' == typeof e
? o.sort(e)
: 'none' !== e &&
o.sort(function (t, e) {
return a ? n[t] - n[e] : n[e] - n[t];
}),
o
);
}
function Df(t) {
t.each(function (e) {
var i,
n,
o,
a,
r = t.getItemModel(e),
s = r.getModel('label').get('position'),
l = r.getModel('labelLine'),
u = t.getItemLayout(e),
h = u.points,
c = 'inner' === s || 'inside' === s || 'center' === s;
if (c)
(i = 'center'),
(a = [
[
(n = (h[0][0] + h[1][0] + h[2][0] + h[3][0]) / 4),
(o = (h[0][1] + h[1][1] + h[2][1] + h[3][1]) / 4),
],
[n, o],
]);
else {
var d,
f,
p,
g = l.get('length');
'left' === s
? ((d = (h[3][0] + h[0][0]) / 2),
(f = (h[3][1] + h[0][1]) / 2),
(n = (p = d - g) - 5),
(i = 'right'))
: ((d = (h[1][0] + h[2][0]) / 2),
(f = (h[1][1] + h[2][1]) / 2),
(n = (p = d + g) + 5),
(i = 'left'));
var m = f;
(a = [
[d, f],
[p, m],
]),
(o = m);
}
u.label = {
linePoints: a,
x: n,
y: o,
verticalAlign: 'middle',
textAlign: i,
inside: c,
};
});
}
function Cf(t) {
if (!t.parallel) {
var e = !1;
d(t.series, function (t) {
t && 'parallel' === t.type && (e = !0);
}),
e && (t.parallel = [{}]);
}
}
function Lf(t) {
d(Di(t.parallelAxis), function (e) {
if (w(e)) {
var i = e.parallelIndex || 0,
o = Di(t.parallel)[i];
o && o.parallelAxisDefault && n(e, o.parallelAxisDefault, !1);
}
});
}
function kf(t, e) {
var i = t[e] - t[1 - e];
return { span: Math.abs(i), sign: i > 0 ? -1 : i < 0 ? 1 : e ? -1 : 1 };
}
function Pf(t, e) {
return Math.min(e[1], Math.max(e[0], t));
}
function Nf(t, e, i) {
(this._axesMap = R()),
(this._axesLayout = {}),
(this.dimensions = t.dimensions),
this._rect,
(this._model = t),
this._init(t, e, i);
}
function Of(t, e) {
return ek(ik(t, e[0]), e[1]);
}
function Ef(t, e) {
var i = e.layoutLength / (e.axisCount - 1);
return { position: i * t, axisNameAvailableWidth: i, axisLabelShow: !0 };
}
function Rf(t, e) {
var i,
n,
o = e.layoutLength,
a = e.axisExpandWidth,
r = e.axisCount,
s = e.axisCollapseWidth,
l = e.winInnerIndices,
u = s,
h = !1;
return (
t < l[0]
? ((i = t * s), (n = s))
: t <= l[1]
? ((i = e.axisExpandWindow0Pos + t * a - e.axisExpandWindow[0]),
(u = a),
(h = !0))
: ((i = o - (r - 1 - t) * s), (n = s)),
{
position: i,
axisNameAvailableWidth: u,
axisLabelShow: h,
nameTruncateMaxWidth: n,
}
);
}
function zf(t) {
fw.call(this),
(this._zr = t),
(this.group = new tb()),
this._brushType,
this._brushOption,
this._panels,
(this._track = []),
this._dragging,
(this._covers = []),
this._creatingCover,
this._creatingPanel,
this._enableGlobalPan,
(this._uid = 'brushController_' + bk++),
(this._handlers = {}),
hk(
Sk,
function (t, e) {
this._handlers[e] = m(t, this);
},
this,
);
}
function Bf(t, e) {
var o = t._zr;
t._enableGlobalPan || tc(o, yk, t._uid),
hk(t._handlers, function (t, e) {
o.on(e, t);
}),
(t._brushType = e.brushType),
(t._brushOption = n(i(wk), e, !0));
}
function Vf(t) {
var e = t._zr;
ec(e, yk, t._uid),
hk(t._handlers, function (t, i) {
e.off(i, t);
}),
(t._brushType = t._brushOption = null);
}
function Gf(t, e) {
var i = Mk[e.brushType].createCover(t, e);
return (i.__brushOption = e), Hf(i, e), t.group.add(i), i;
}
function Ff(t, e) {
var i = Uf(e);
return i.endCreating && (i.endCreating(t, e), Hf(e, e.__brushOption)), e;
}
function Wf(t, e) {
var i = e.__brushOption;
Uf(e).updateCoverShape(t, e, i.range, i);
}
function Hf(t, e) {
var i = e.z;
null == i && (i = gk),
t.traverse(function (t) {
(t.z = i), (t.z2 = i);
});
}
function Zf(t, e) {
Uf(e).updateCommon(t, e), Wf(t, e);
}
function Uf(t) {
return Mk[t.__brushOption.brushType];
}
function Xf(t, e, i) {
var n = t._panels;
if (!n) return !0;
var o,
a = t._transform;
return (
hk(n, function (t) {
t.isTargetByCursor(e, i, a) && (o = t);
}),
o
);
}
function jf(t, e) {
var i = t._panels;
if (!i) return !0;
var n = e.__brushOption.panelId;
return null == n || i[n];
}
function Yf(t) {
var e = t._covers,
i = e.length;
return (
hk(
e,
function (e) {
t.group.remove(e);
},
t,
),
(e.length = 0),
!!i
);
}
function qf(t, e) {
var n = ck(t._covers, function (t) {
var e = t.__brushOption,
n = i(e.range);
return { brushType: e.brushType, panelId: e.panelId, range: n };
});
t.trigger('brush', n, {
isEnd: !!e.isEnd,
removeOnClick: !!e.removeOnClick,
});
}
function Kf(t) {
var e = t._track;
if (!e.length) return !1;
var i = e[e.length - 1],
n = e[0],
o = i[0] - n[0],
a = i[1] - n[1];
return pk(o * o + a * a, 0.5) > mk;
}
function $f(t) {
var e = t.length - 1;
return e < 0 && (e = 0), [t[0], t[e]];
}
function Jf(t, e, i, n) {
var o = new tb();
return (
o.add(
new yM({
name: 'main',
style: ip(i),
silent: !0,
draggable: !0,
cursor: 'move',
drift: uk(t, e, o, 'nswe'),
ondragend: uk(qf, e, { isEnd: !0 }),
}),
),
hk(n, function (i) {
o.add(
new yM({
name: i,
style: { opacity: 0 },
draggable: !0,
silent: !0,
invisible: !0,
drift: uk(t, e, o, i),
ondragend: uk(qf, e, { isEnd: !0 }),
}),
);
}),
o
);
}
function Qf(t, e, i, n) {
var o = n.brushStyle.lineWidth || 0,
a = fk(o, vk),
r = i[0][0],
s = i[1][0],
l = r - o / 2,
u = s - o / 2,
h = i[0][1],
c = i[1][1],
d = h - a + o / 2,
f = c - a + o / 2,
p = h - r,
g = c - s,
m = p + o,
v = g + o;
ep(t, e, 'main', r, s, p, g),
n.transformable &&
(ep(t, e, 'w', l, u, a, v),
ep(t, e, 'e', d, u, a, v),
ep(t, e, 'n', l, u, m, a),
ep(t, e, 's', l, f, m, a),
ep(t, e, 'nw', l, u, a, a),
ep(t, e, 'ne', d, u, a, a),
ep(t, e, 'sw', l, f, a, a),
ep(t, e, 'se', d, f, a, a));
}
function tp(t, e) {
var i = e.__brushOption,
n = i.transformable,
o = e.childAt(0);
o.useStyle(ip(i)),
o.attr({ silent: !n, cursor: n ? 'move' : 'default' }),
hk(['w', 'e', 'n', 's', 'se', 'sw', 'ne', 'nw'], function (i) {
var o = e.childOfName(i),
a = ap(t, i);
o &&
o.attr({
silent: !n,
invisible: !n,
cursor: n ? _k[a] + '-resize' : null,
});
});
}
function ep(t, e, i, n, o, a, r) {
var s = e.childOfName(i);
s &&
s.setShape(
hp(
up(t, e, [
[n, o],
[n + a, o + r],
]),
),
);
}
function ip(t) {
return r({ strokeNoScale: !0 }, t.brushStyle);
}
function np(t, e, i, n) {
var o = [dk(t, i), dk(e, n)],
a = [fk(t, i), fk(e, n)];
return [
[o[0], a[0]],
[o[1], a[1]],
];
}
function op(t) {
return Ao(t.group);
}
function ap(t, e) {
if (e.length > 1)
return (
('e' === (n = [ap(t, (e = e.split(''))[0]), ap(t, e[1])])[0] ||
'w' === n[0]) &&
n.reverse(),
n.join('')
);
var i = { left: 'w', right: 'e', top: 'n', bottom: 's' },
n = Co({ w: 'left', e: 'right', n: 'top', s: 'bottom' }[e], op(t));
return i[n];
}
function rp(t, e, i, n, o, a, r, s) {
var l = n.__brushOption,
u = t(l.range),
h = lp(i, a, r);
hk(o.split(''), function (t) {
var e = xk[t];
u[e[0]][e[1]] += h[e[0]];
}),
(l.range = e(np(u[0][0], u[1][0], u[0][1], u[1][1]))),
Zf(i, n),
qf(i, { isEnd: !1 });
}
function sp(t, e, i, n, o) {
var a = e.__brushOption.range,
r = lp(t, i, n);
hk(a, function (t) {
(t[0] += r[0]), (t[1] += r[1]);
}),
Zf(t, e),
qf(t, { isEnd: !1 });
}
function lp(t, e, i) {
var n = t.group,
o = n.transformCoordToLocal(e, i),
a = n.transformCoordToLocal(0, 0);
return [o[0] - a[0], o[1] - a[1]];
}
function up(t, e, n) {
var o = jf(t, e);
return o && !0 !== o ? o.clipPath(n, t._transform) : i(n);
}
function hp(t) {
var e = dk(t[0][0], t[1][0]),
i = dk(t[0][1], t[1][1]);
return {
x: e,
y: i,
width: fk(t[0][0], t[1][0]) - e,
height: fk(t[0][1], t[1][1]) - i,
};
}
function cp(t, e, i) {
if (t._brushType) {
var n = t._zr,
o = t._covers,
a = Xf(t, e, i);
if (!t._dragging)
for (var r = 0; r < o.length; r++) {
var s = o[r].__brushOption;
if (
a &&
(!0 === a || s.panelId === a.panelId) &&
Mk[s.brushType].contain(o[r], i[0], i[1])
)
return;
}
a && n.setCursorStyle('crosshair');
}
}
function dp(t) {
var e = t.event;
e.preventDefault && e.preventDefault();
}
function fp(t, e, i) {
return t.childOfName('main').contain(e, i);
}
function pp(t, e, n, o) {
var a,
r = t._creatingCover,
s = t._creatingPanel,
l = t._brushOption;
if ((t._track.push(n.slice()), Kf(t) || r)) {
if (s && !r) {
'single' === l.brushMode && Yf(t);
var u = i(l);
(u.brushType = gp(u.brushType, s)),
(u.panelId = !0 === s ? null : s.panelId),
(r = t._creatingCover = Gf(t, u)),
t._covers.push(r);
}
if (r) {
var h = Mk[gp(t._brushType, s)];
(r.__brushOption.range = h.getCreatingRange(up(t, r, t._track))),
o && (Ff(t, r), h.updateCommon(t, r)),
Wf(t, r),
(a = { isEnd: o });
}
} else o && 'single' === l.brushMode && l.removeOnClick && Xf(t, e, n) && Yf(t) && (a = { isEnd: o, removeOnClick: !0 });
return a;
}
function gp(t, e) {
return 'auto' === t ? e.defaultBrushType : t;
}
function mp(t) {
if (this._dragging) {
dp(t);
var e = pp(
this,
t,
this.group.transformCoordToLocal(t.offsetX, t.offsetY),
!0,
);
(this._dragging = !1),
(this._track = []),
(this._creatingCover = null),
e && qf(this, e);
}
}
function vp(t) {
return {
createCover: function (e, i) {
return Jf(
uk(
rp,
function (e) {
var i = [e, [0, 100]];
return t && i.reverse(), i;
},
function (e) {
return e[t];
},
),
e,
i,
[
['w', 'e'],
['n', 's'],
][t],
);
},
getCreatingRange: function (e) {
var i = $f(e);
return [dk(i[0][t], i[1][t]), fk(i[0][t], i[1][t])];
},
updateCoverShape: function (e, i, n, o) {
var a,
r = jf(e, i);
if (!0 !== r && r.getLinearBrushOtherExtent)
a = r.getLinearBrushOtherExtent(t, e._transform);
else {
var s = e._zr;
a = [0, [s.getWidth(), s.getHeight()][1 - t]];
}
var l = [n, a];
t && l.reverse(), Qf(e, i, l, o);
},
updateCommon: tp,
contain: fp,
};
}
function yp(t) {
return (
(t = wp(t)),
function (e, i) {
return ko(e, t);
}
);
}
function xp(t, e) {
return (
(t = wp(t)),
function (i) {
var n = null != e ? e : i,
o = n ? t.width : t.height,
a = n ? t.x : t.y;
return [a, a + (o || 0)];
}
);
}
function _p(t, e, i) {
return (
(t = wp(t)),
function (n, o, a) {
return t.contain(o[0], o[1]) && !gc(n, e, i);
}
);
}
function wp(t) {
return de.create(t);
}
function bp(t, e, i) {
return (
i &&
'axisAreaSelect' === i.type &&
e.findComponents({ mainType: 'parallelAxis', query: i })[0] === t
);
}
function Sp(t) {
var e = t.axis;
return f(t.activeIntervals, function (t) {
return {
brushType: 'lineX',
panelId: 'pl',
range: [e.dataToCoord(t[0], !0), e.dataToCoord(t[1], !0)],
};
});
}
function Mp(t, e) {
return e.getComponent('parallel', t.get('parallelIndex'));
}
function Ip(t, e) {
var i = t._model;
return i.get('axisExpandable') && i.get('axisExpandTriggerOn') === e;
}
function Tp(t, e) {
if (!t.encodeDefine) {
var i = e.ecModel.getComponent('parallel', e.get('parallelIndex'));
if (i) {
var n = (t.encodeDefine = R());
d(i.dimensions, function (t) {
var e = Ap(t);
n.set(t, e);
});
}
}
}
function Ap(t) {
return +t.replace('dim', '');
}
function Dp(t, e, i) {
var n = t.model,
o = t.getRect(),
a = new yM({
shape: { x: o.x, y: o.y, width: o.width, height: o.height },
}),
r = 'horizontal' === n.get('layout') ? 'width' : 'height';
return (
a.setShape(r, 0),
To(a, { shape: { width: o.width, height: o.height } }, e, i),
a
);
}
function Cp(t, e, i, n) {
for (var o = [], a = 0; a < i.length; a++) {
var r = i[a],
s = t.get(t.mapDimension(r), e);
Np(s, n.getAxis(r).type) || o.push(n.dataToPoint(s, r));
}
return o;
}
function Lp(t, e, i, n, o) {
var a = Cp(t, i, n, o),
r = new gM({ shape: { points: a }, silent: !0, z2: 10 });
return e.add(r), t.setItemGraphicEl(i, r), r;
}
function kp(t) {
var e = t.get('smooth', !0);
return (
!0 === e && (e = Dk),
{
lineStyle: t.getModel('lineStyle').getLineStyle(),
smooth: null != e ? e : Dk,
}
);
}
function Pp(t, e, i, n) {
var o = n.lineStyle;
e.hasItemOption &&
(o = e.getItemModel(i).getModel('lineStyle').getLineStyle()),
t.useStyle(o);
var a = t.style;
(a.fill = null),
(a.stroke = e.getItemVisual(i, 'color')),
(a.opacity = e.getItemVisual(i, 'opacity')),
n.smooth && (t.shape.smooth = n.smooth);
}
function Np(t, e) {
return 'category' === e ? null == t : null == t || isNaN(t);
}
function Op(t, e) {
return t.getVisual('opacity') || t.getModel().get(e);
}
function Ep(t, e, i) {
var n = t.getGraphicEl(),
o = Op(t, e);
null != i && (null == o && (o = 1), (o *= i)),
n.downplay && n.downplay(),
n.traverse(function (t) {
'group' !== t.type && t.setStyle('opacity', o);
});
}
function Rp(t, e) {
var i = Op(t, e),
n = t.getGraphicEl();
n.highlight && n.highlight(),
n.traverse(function (t) {
'group' !== t.type && t.setStyle('opacity', i);
});
}
function zp(t, e, i) {
var n = new yM({
shape: { x: t.x - 10, y: t.y - 10, width: 0, height: t.height + 20 },
});
return (
To(n, { shape: { width: t.width + 20, height: t.height + 20 } }, e, i), n
);
}
function Bp(t, e) {
return ca(t.getBoxLayoutParams(), {
width: e.getWidth(),
height: e.getHeight(),
});
}
function Vp(t, e, i, n, o, a, r, s) {
Fp(t, e, i, o, a, s), Zp(t, e, a, o, n, r, s), eg(t, s);
}
function Gp(t) {
d(t, function (t) {
var e = Qp(t.outEdges, Jp),
i = Qp(t.inEdges, Jp),
n = Math.max(e, i);
t.setLayout({ value: n }, !0);
});
}
function Fp(t, e, i, n, o, a) {
for (var r = [], s = [], l = [], u = [], h = 0, c = 0; c < e.length; c++)
r[c] = 1;
for (c = 0; c < t.length; c++)
(s[c] = t[c].inEdges.length), 0 === s[c] && l.push(t[c]);
for (; l.length; ) {
for (var d = 0; d < l.length; d++) {
var f = l[d];
'vertical' === a
? (f.setLayout({ y: h }, !0), f.setLayout({ dy: i }, !0))
: (f.setLayout({ x: h }, !0), f.setLayout({ dx: i }, !0));
for (var p = 0; p < f.outEdges.length; p++) {
var g = f.outEdges[p];
r[e.indexOf(g)] = 0;
var m = g.node2;
0 == --s[t.indexOf(m)] && u.push(m);
}
}
++h, (l = u), (u = []);
}
for (c = 0; c < r.length; c++);
Wp(t, h, a),
Hp(t, 'vertical' === a ? (o - i) / (h - 1) : (n - i) / (h - 1), a);
}
function Wp(t, e, i) {
d(t, function (t) {
t.outEdges.length ||
('vertical' === i
? t.setLayout({ y: e - 1 }, !0)
: t.setLayout({ x: e - 1 }, !0));
});
}
function Hp(t, e, i) {
d(t, function (t) {
if ('vertical' === i) {
var n = t.getLayout().y * e;
t.setLayout({ y: n }, !0);
} else {
var o = t.getLayout().x * e;
t.setLayout({ x: o }, !0);
}
});
}
function Zp(t, e, i, n, o, a, r) {
var s = Up(t, r);
Xp(t, s, e, i, n, o, r), jp(s, o, i, n, r);
for (var l = 1; a > 0; a--)
Yp(s, (l *= 0.99), r), jp(s, o, i, n, r), tg(s, l, r), jp(s, o, i, n, r);
}
function Up(t, e) {
var i = [],
n = 'vertical' === e ? 'y' : 'x',
o = Zi(t, function (t) {
return t.getLayout()[n];
});
return (
o.keys.sort(function (t, e) {
return t - e;
}),
d(o.keys, function (t) {
i.push(o.buckets.get(t));
}),
i
);
}
function Xp(t, e, i, n, o, a, r) {
var s = [];
d(e, function (t) {
var e = t.length,
i = 0,
l = 0;
d(t, function (t) {
i += t.getLayout().value;
}),
(l = 'vertical' === r ? (o - (e - 1) * a) / i : (n - (e - 1) * a) / i),
s.push(l);
}),
s.sort(function (t, e) {
return t - e;
});
var l = s[0];
d(e, function (t) {
d(t, function (t, e) {
var i = t.getLayout().value * l;
'vertical' === r
? (t.setLayout({ x: e }, !0), t.setLayout({ dx: i }, !0))
: (t.setLayout({ y: e }, !0), t.setLayout({ dy: i }, !0));
});
}),
d(i, function (t) {
var e = +t.getValue() * l;
t.setLayout({ dy: e }, !0);
});
}
function jp(t, e, i, n, o) {
d(t, function (t) {
var a,
r,
s,
l = 0,
u = t.length;
if ('vertical' === o) {
var h;
for (
t.sort(function (t, e) {
return t.getLayout().x - e.getLayout().x;
}),
s = 0;
s < u;
s++
)
(r = l - (a = t[s]).getLayout().x) > 0 &&
((h = a.getLayout().x + r), a.setLayout({ x: h }, !0)),
(l = a.getLayout().x + a.getLayout().dx + e);
if ((r = l - e - n) > 0)
for (
h = a.getLayout().x - r,
a.setLayout({ x: h }, !0),
l = h,
s = u - 2;
s >= 0;
--s
)
(r = (a = t[s]).getLayout().x + a.getLayout().dx + e - l) > 0 &&
((h = a.getLayout().x - r), a.setLayout({ x: h }, !0)),
(l = a.getLayout().x);
} else {
var c;
for (
t.sort(function (t, e) {
return t.getLayout().y - e.getLayout().y;
}),
s = 0;
s < u;
s++
)
(r = l - (a = t[s]).getLayout().y) > 0 &&
((c = a.getLayout().y + r), a.setLayout({ y: c }, !0)),
(l = a.getLayout().y + a.getLayout().dy + e);
if ((r = l - e - i) > 0)
for (
c = a.getLayout().y - r,
a.setLayout({ y: c }, !0),
l = c,
s = u - 2;
s >= 0;
--s
)
(r = (a = t[s]).getLayout().y + a.getLayout().dy + e - l) > 0 &&
((c = a.getLayout().y - r), a.setLayout({ y: c }, !0)),
(l = a.getLayout().y);
}
});
}
function Yp(t, e, i) {
d(t.slice().reverse(), function (t) {
d(t, function (t) {
if (t.outEdges.length) {
var n = Qp(t.outEdges, qp, i) / Qp(t.outEdges, Jp, i);
if ('vertical' === i) {
var o = t.getLayout().x + (n - $p(t, i)) * e;
t.setLayout({ x: o }, !0);
} else {
var a = t.getLayout().y + (n - $p(t, i)) * e;
t.setLayout({ y: a }, !0);
}
}
});
});
}
function qp(t, e) {
return $p(t.node2, e) * t.getValue();
}
function Kp(t, e) {
return $p(t.node1, e) * t.getValue();
}
function $p(t, e) {
return 'vertical' === e
? t.getLayout().x + t.getLayout().dx / 2
: t.getLayout().y + t.getLayout().dy / 2;
}
function Jp(t) {
return t.getValue();
}
function Qp(t, e, i) {
for (var n = 0, o = t.length, a = -1; ++a < o; ) {
var r = +e.call(t, t[a], i);
isNaN(r) || (n += r);
}
return n;
}
function tg(t, e, i) {
d(t, function (t) {
d(t, function (t) {
if (t.inEdges.length) {
var n = Qp(t.inEdges, Kp, i) / Qp(t.inEdges, Jp, i);
if ('vertical' === i) {
var o = t.getLayout().x + (n - $p(t, i)) * e;
t.setLayout({ x: o }, !0);
} else {
var a = t.getLayout().y + (n - $p(t, i)) * e;
t.setLayout({ y: a }, !0);
}
}
});
});
}
function eg(t, e) {
d(t, function (t) {
'vertical' === e
? (t.outEdges.sort(function (t, e) {
return t.node2.getLayout().x - e.node2.getLayout().x;
}),
t.inEdges.sort(function (t, e) {
return t.node1.getLayout().x - e.node1.getLayout().x;
}))
: (t.outEdges.sort(function (t, e) {
return t.node2.getLayout().y - e.node2.getLayout().y;
}),
t.inEdges.sort(function (t, e) {
return t.node1.getLayout().y - e.node1.getLayout().y;
}));
}),
d(t, function (t) {
var e = 0,
i = 0;
d(t.outEdges, function (t) {
t.setLayout({ sy: e }, !0), (e += t.getLayout().dy);
}),
d(t.inEdges, function (t) {
t.setLayout({ ty: i }, !0), (i += t.getLayout().dy);
});
});
}
function ig(t, e, i, n, o) {
var a = t.ends,
r = new zk({ shape: { points: o ? og(a, n, t) : a } });
return ng(t, r, e, i, o), r;
}
function ng(t, e, i, n, o) {
var a = i.hostModel;
(0,
zM[
o ? 'initProps' : 'updateProps'
])(e, { shape: { points: t.ends } }, a, n);
var r = i.getItemModel(n),
s = r.getModel(Ek),
l = i.getItemVisual(n, 'color'),
u = s.getItemStyle(['borderColor']);
(u.stroke = l),
(u.strokeNoScale = !0),
e.useStyle(u),
(e.z2 = 100),
fo(e, r.getModel(Rk).getItemStyle());
}
function og(t, e, i) {
return f(t, function (t) {
return (t = t.slice()), (t[e] = i.initBaseline), t;
});
}
function ag(t) {
var e = [],
i = [];
return (
t.eachSeriesByType('boxplot', function (t) {
var n = t.getBaseAxis(),
o = l(i, n);
o < 0 &&
((o = i.length), (i[o] = n), (e[o] = { axis: n, seriesModels: [] })),
e[o].seriesModels.push(t);
}),
e
);
}
function rg(t) {
var e,
i,
n = t.axis,
o = t.seriesModels,
a = o.length,
r = (t.boxWidthList = []),
s = (t.boxOffsetList = []),
l = [];
if ('category' === n.type) i = n.getBandWidth();
else {
var u = 0;
Vk(o, function (t) {
u = Math.max(u, t.getData().count());
}),
(e = n.getExtent()),
Math.abs(e[1] - e[0]);
}
Vk(o, function (t) {
var e = t.get('boxWidth');
y(e) || (e = [e, e]), l.push([Vo(e[0], i) || 0, Vo(e[1], i) || 0]);
});
var h = 0.8 * i - 2,
c = (h / a) * 0.3,
d = (h - c * (a - 1)) / a,
f = d / 2 - h / 2;
Vk(o, function (t, e) {
s.push(f), (f += c + d), r.push(Math.min(Math.max(d, l[e][0]), l[e][1]));
});
}
function sg(t, e, i) {
function n(t, i, n) {
var o = s.get(i, n),
a = [];
(a[u] = t), (a[h] = o);
var l;
return (
isNaN(t) || isNaN(o)
? (l = [NaN, NaN])
: ((l = r.dataToPoint(a))[u] += e),
l
);
}
function o(t, e, i) {
var n = e.slice(),
o = e.slice();
(n[u] += l), (o[u] -= l), i ? t.push(n, o) : t.push(o, n);
}
function a(t, e) {
var i = e.slice(),
n = e.slice();
(i[u] -= l), (n[u] += l), t.push(i, n);
}
var r = t.coordinateSystem,
s = t.getData(),
l = i / 2,
u = 'horizontal' === t.get('layout') ? 0 : 1,
h = 1 - u,
c = ['x', 'y'],
d = s.mapDimension(c[u]),
f = s.mapDimension(c[h], !0);
if (!(null == d || f.length < 5))
for (var p = 0; p < s.count(); p++) {
var g = s.get(d, p),
m = n(g, f[2], p),
v = n(g, f[0], p),
y = n(g, f[1], p),
x = n(g, f[3], p),
_ = n(g, f[4], p),
w = [];
o(w, y, 0),
o(w, x, 1),
w.push(v, y, _, x),
a(w, v),
a(w, _),
a(w, m),
s.setItemLayout(p, { initBaseline: m[h], ends: w });
}
}
function lg(t, e, i) {
var n = t.ends;
return new Hk({ shape: { points: i ? hg(n, t) : n }, z2: 100 });
}
function ug(t, e, i, n) {
var o = e.getItemModel(i),
a = o.getModel(Gk),
r = e.getItemVisual(i, 'color'),
s = e.getItemVisual(i, 'borderColor') || r,
l = a.getItemStyle(Wk);
t.useStyle(l),
(t.style.strokeNoScale = !0),
(t.style.fill = r),
(t.style.stroke = s),
(t.__simpleBox = n),
fo(t, o.getModel(Fk).getItemStyle());
}
function hg(t, e) {
return f(t, function (t) {
return (t = t.slice()), (t[1] = e.initBaseline), t;
});
}
function cg(t, e, i) {
var n = t.getData(),
o = n.getLayout('largePoints'),
a = new Zk({ shape: { points: o }, __sign: 1 });
e.add(a);
var r = new Zk({ shape: { points: o }, __sign: -1 });
e.add(r),
dg(1, a, t, n),
dg(-1, r, t, n),
i && ((a.incremental = !0), (r.incremental = !0));
}
function dg(t, e, i, n) {
var o = t > 0 ? 'P' : 'N',
a = n.getVisual('borderColor' + o) || n.getVisual('color' + o),
r = i.getModel(Gk).getItemStyle(Wk);
e.useStyle(r), (e.style.fill = null), (e.style.stroke = a);
}
function fg(t, e, i, n, o) {
return i > n ? -1 : i < n ? 1 : e > 0 ? (t.get(o, e - 1) <= n ? 1 : -1) : 1;
}
function pg(t, e) {
var i,
n = t.getBaseAxis(),
o =
'category' === n.type
? n.getBandWidth()
: ((i = n.getExtent()), Math.abs(i[1] - i[0]) / e.count()),
a = Vo(A(t.get('barMaxWidth'), o), o),
r = Vo(A(t.get('barMinWidth'), 1), o),
s = t.get('barWidth');
return null != s ? Vo(s, o) : Math.max(Math.min(o / 2, a), r);
}
function gg(t) {
return y(t) || (t = [+t, +t]), t;
}
function mg(t, e) {
t.eachChild(function (t) {
t.attr({
z: e.z,
zlevel: e.zlevel,
style: {
stroke: 'stroke' === e.brushType ? e.color : null,
fill: 'fill' === e.brushType ? e.color : null,
},
});
});
}
function vg(t, e) {
tb.call(this);
var i = new wu(t, e),
n = new tb();
this.add(i),
this.add(n),
(n.beforeUpdate = function () {
this.attr(i.getScale());
}),
this.updateData(t, e);
}
function yg(t) {
var e = t.data;
e &&
e[0] &&
e[0][0] &&
e[0][0].coord &&
(t.data = f(e, function (t) {
var e = { coords: [t[0].coord, t[1].coord] };
return (
t[0].name && (e.fromName = t[0].name),
t[1].name && (e.toName = t[1].name),
o([e, t[0], t[1]])
);
}));
}
function xg(t, e, i) {
tb.call(this),
this.add(this.createLine(t, e, i)),
this._updateEffectSymbol(t, e);
}
function _g(t, e, i) {
tb.call(this), this._createPolyline(t, e, i);
}
function wg(t, e, i) {
xg.call(this, t, e, i), (this._lastFrame = 0), (this._lastFramePercent = 0);
}
function bg() {
this.group = new tb();
}
function Sg(t) {
return t instanceof Array || (t = [t, t]), t;
}
function Mg() {
var t = iw();
(this.canvas = t),
(this.blurSize = 30),
(this.pointSize = 20),
(this.maxOpacity = 1),
(this.minOpacity = 0),
(this._gradientPixels = {});
}
function Ig(t, e, i) {
var n = t[1] - t[0],
o = (e = f(e, function (e) {
return {
interval: [(e.interval[0] - t[0]) / n, (e.interval[1] - t[0]) / n],
};
})).length,
a = 0;
return function (t) {
for (n = a; n < o; n++)
if ((r = e[n].interval)[0] <= t && t <= r[1]) {
a = n;
break;
}
if (n === o)
for (var n = a - 1; n >= 0; n--) {
var r = e[n].interval;
if (r[0] <= t && t <= r[1]) {
a = n;
break;
}
}
return n >= 0 && n < o && i[n];
};
}
function Tg(t, e) {
var i = t[1] - t[0];
return (
(e = [(e[0] - t[0]) / i, (e[1] - t[0]) / i]),
function (t) {
return t >= e[0] && t <= e[1];
}
);
}
function Ag(t) {
var e = t.dimensions;
return 'lng' === e[0] && 'lat' === e[1];
}
function Dg(t, e, i, n) {
var o = t.getItemLayout(e),
a = i.get('symbolRepeat'),
r = i.get('symbolClip'),
s = i.get('symbolPosition') || 'start',
l = ((i.get('symbolRotate') || 0) * Math.PI) / 180 || 0,
u = i.get('symbolPatternSize') || 2,
h = i.isAnimationEnabled(),
c = {
dataIndex: e,
layout: o,
itemModel: i,
symbolType: t.getItemVisual(e, 'symbol') || 'circle',
color: t.getItemVisual(e, 'color'),
symbolClip: r,
symbolRepeat: a,
symbolRepeatDirection: i.get('symbolRepeatDirection'),
symbolPatternSize: u,
rotation: l,
animationModel: h ? i : null,
hoverAnimation: h && i.get('hoverAnimation'),
z2: i.getShallow('z', !0) || 0,
};
Cg(i, a, o, n, c),
kg(t, e, o, a, r, c.boundingLength, c.pxSign, u, n, c),
Pg(i, c.symbolScale, l, n, c);
var d = c.symbolSize,
f = i.get('symbolOffset');
return (
y(f) && (f = [Vo(f[0], d[0]), Vo(f[1], d[1])]),
Ng(
i,
d,
o,
a,
r,
f,
s,
c.valueLineWidth,
c.boundingLength,
c.repeatCutLength,
n,
c,
),
c
);
}
function Cg(t, e, i, n, o) {
var a,
r = n.valueDim,
s = t.get('symbolBoundingData'),
l = n.coordSys.getOtherAxis(n.coordSys.getBaseAxis()),
u = l.toGlobalCoord(l.dataToCoord(0)),
h = 1 - +(i[r.wh] <= 0);
if (y(s)) {
var c = [Lg(l, s[0]) - u, Lg(l, s[1]) - u];
c[1] < c[0] && c.reverse(), (a = c[h]);
} else a = null != s ? Lg(l, s) - u : e ? n.coordSysExtent[r.index][h] - u : i[r.wh];
(o.boundingLength = a),
e && (o.repeatCutLength = i[r.wh]),
(o.pxSign = a > 0 ? 1 : a < 0 ? -1 : 0);
}
function Lg(t, e) {
return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)));
}
function kg(t, e, i, n, o, a, r, s, l, u) {
var h = l.valueDim,
c = l.categoryDim,
d = Math.abs(i[c.wh]),
f = t.getItemVisual(e, 'symbolSize');
y(f) ? (f = f.slice()) : (null == f && (f = '100%'), (f = [f, f])),
(f[c.index] = Vo(f[c.index], d)),
(f[h.index] = Vo(f[h.index], n ? d : Math.abs(a))),
(u.symbolSize = f),
((u.symbolScale = [f[0] / s, f[1] / s])[h.index] *=
(l.isHorizontal ? -1 : 1) * r);
}
function Pg(t, e, i, n, o) {
var a = t.get(cP) || 0;
a &&
(fP.attr({ scale: e.slice(), rotation: i }),
fP.updateTransform(),
(a /= fP.getLineScale()),
(a *= e[n.valueDim.index])),
(o.valueLineWidth = a);
}
function Ng(t, e, i, n, o, r, s, l, u, h, c, d) {
var f = c.categoryDim,
p = c.valueDim,
g = d.pxSign,
m = Math.max(e[p.index] + l, 0),
v = m;
if (n) {
var y = Math.abs(u),
x = T(t.get('symbolMargin'), '15%') + '',
_ = !1;
x.lastIndexOf('!') === x.length - 1 &&
((_ = !0), (x = x.slice(0, x.length - 1))),
(x = Vo(x, e[p.index]));
var w = Math.max(m + 2 * x, 0),
b = _ ? 0 : 2 * x,
S = Qo(n),
M = S ? n : Kg((y + b) / w);
(w = m + 2 * (x = (y - M * m) / 2 / (_ ? M : M - 1))),
(b = _ ? 0 : 2 * x),
S || 'fixed' === n || (M = h ? Kg((Math.abs(h) + b) / w) : 0),
(v = M * w - b),
(d.repeatTimes = M),
(d.symbolMargin = x);
}
var I = g * (v / 2),
A = (d.pathPosition = []);
(A[f.index] = i[f.wh] / 2),
(A[p.index] = 'start' === s ? I : 'end' === s ? u - I : u / 2),
r && ((A[0] += r[0]), (A[1] += r[1]));
var D = (d.bundlePosition = []);
(D[f.index] = i[f.xy]), (D[p.index] = i[p.xy]);
var C = (d.barRectShape = a({}, i));
(C[p.wh] = g * Math.max(Math.abs(i[p.wh]), Math.abs(A[p.index] + I))),
(C[f.wh] = i[f.wh]);
var L = (d.clipShape = {});
(L[f.xy] = -i[f.xy]),
(L[f.wh] = c.ecSize[f.wh]),
(L[p.xy] = 0),
(L[p.wh] = i[p.wh]);
}
function Og(t) {
var e = t.symbolPatternSize,
i = Jl(t.symbolType, -e / 2, -e / 2, e, e, t.color);
return (
i.attr({ culling: !0 }),
'image' !== i.type && i.setStyle({ strokeNoScale: !0 }),
i
);
}
function Eg(t, e, i, n) {
function o(t) {
var e = l.slice(),
n = i.pxSign,
o = t;
return (
('start' === i.symbolRepeatDirection ? n > 0 : n < 0) &&
(o = h - 1 - t),
(e[u.index] = d * (o - h / 2 + 0.5) + l[u.index]),
{ position: e, scale: i.symbolScale.slice(), rotation: i.rotation }
);
}
var a = t.__pictorialBundle,
r = i.symbolSize,
s = i.valueLineWidth,
l = i.pathPosition,
u = e.valueDim,
h = i.repeatTimes || 0,
c = 0,
d = r[e.valueDim.index] + s + 2 * i.symbolMargin;
for (
jg(t, function (t) {
(t.__pictorialAnimationIndex = c),
(t.__pictorialRepeatTimes = h),
c < h
? Yg(t, null, o(c), i, n)
: Yg(t, null, { scale: [0, 0] }, i, n, function () {
a.remove(t);
}),
Wg(t, i),
c++;
});
c < h;
c++
) {
var f = Og(i);
(f.__pictorialAnimationIndex = c),
(f.__pictorialRepeatTimes = h),
a.add(f);
var p = o(c);
Yg(
f,
{ position: p.position, scale: [0, 0] },
{ scale: p.scale, rotation: p.rotation },
i,
n,
),
f
.on('mouseover', function () {
jg(t, function (t) {
t.trigger('emphasis');
});
})
.on('mouseout', function () {
jg(t, function (t) {
t.trigger('normal');
});
}),
Wg(f, i);
}
}
function Rg(t, e, i, n) {
var o = t.__pictorialBundle,
a = t.__pictorialMainPath;
a
? Yg(
a,
null,
{
position: i.pathPosition.slice(),
scale: i.symbolScale.slice(),
rotation: i.rotation,
},
i,
n,
)
: ((a = t.__pictorialMainPath = Og(i)),
o.add(a),
Yg(
a,
{
position: i.pathPosition.slice(),
scale: [0, 0],
rotation: i.rotation,
},
{ scale: i.symbolScale.slice() },
i,
n,
),
a
.on('mouseover', function () {
this.trigger('emphasis');
})
.on('mouseout', function () {
this.trigger('normal');
})),
Wg(a, i);
}
function zg(t, e, i) {
var n = a({}, e.barRectShape),
o = t.__pictorialBarRect;
o
? Yg(o, null, { shape: n }, e, i)
: ((o = t.__pictorialBarRect = new yM({
z2: 2,
shape: n,
silent: !0,
style: { stroke: 'transparent', fill: 'transparent', lineWidth: 0 },
})),
t.add(o));
}
function Bg(t, e, i, n) {
if (i.symbolClip) {
var o = t.__pictorialClipPath,
r = a({}, i.clipShape),
s = e.valueDim,
l = i.animationModel,
u = i.dataIndex;
if (o) Io(o, { shape: r }, l, u);
else {
(r[s.wh] = 0),
(o = new yM({ shape: r })),
t.__pictorialBundle.setClipPath(o),
(t.__pictorialClipPath = o);
var h = {};
(h[s.wh] = i.clipShape[s.wh]),
zM[n ? 'updateProps' : 'initProps'](o, { shape: h }, l, u);
}
}
}
function Vg(t, e) {
var i = t.getItemModel(e);
return (i.getAnimationDelayParams = Gg), (i.isAnimationEnabled = Fg), i;
}
function Gg(t) {
return {
index: t.__pictorialAnimationIndex,
count: t.__pictorialRepeatTimes,
};
}
function Fg() {
return (
this.parentModel.isAnimationEnabled() && !!this.getShallow('animation')
);
}
function Wg(t, e) {
t.off('emphasis').off('normal');
var i = e.symbolScale.slice();
e.hoverAnimation &&
t
.on('emphasis', function () {
this.animateTo(
{ scale: [1.1 * i[0], 1.1 * i[1]] },
400,
'elasticOut',
);
})
.on('normal', function () {
this.animateTo({ scale: i.slice() }, 400, 'elasticOut');
});
}
function Hg(t, e, i, n) {
var o = new tb(),
a = new tb();
return (
o.add(a),
(o.__pictorialBundle = a),
a.attr('position', i.bundlePosition.slice()),
i.symbolRepeat ? Eg(o, e, i) : Rg(o, e, i),
zg(o, i, n),
Bg(o, e, i, n),
(o.__pictorialShapeStr = Xg(t, i)),
(o.__pictorialSymbolMeta = i),
o
);
}
function Zg(t, e, i) {
var n = i.animationModel,
o = i.dataIndex;
Io(t.__pictorialBundle, { position: i.bundlePosition.slice() }, n, o),
i.symbolRepeat ? Eg(t, e, i, !0) : Rg(t, e, i, !0),
zg(t, i, !0),
Bg(t, e, i, !0);
}
function Ug(t, e, i, n) {
var o = n.__pictorialBarRect;
o && (o.style.text = null);
var a = [];
jg(n, function (t) {
a.push(t);
}),
n.__pictorialMainPath && a.push(n.__pictorialMainPath),
n.__pictorialClipPath && (i = null),
d(a, function (t) {
Io(t, { scale: [0, 0] }, i, e, function () {
n.parent && n.parent.remove(n);
});
}),
t.setItemGraphicEl(e, null);
}
function Xg(t, e) {
return [
t.getItemVisual(e.dataIndex, 'symbol') || 'none',
!!e.symbolRepeat,
!!e.symbolClip,
].join(':');
}
function jg(t, e, i) {
d(t.__pictorialBundle.children(), function (n) {
n !== t.__pictorialBarRect && e.call(i, n);
});
}
function Yg(t, e, i, n, o, a) {
e && t.attr(e),
n.symbolClip && !o
? i && t.attr(i)
: i &&
zM[o ? 'updateProps' : 'initProps'](
t,
i,
n.animationModel,
n.dataIndex,
a,
);
}
function qg(t, e, i) {
var n = i.color,
o = i.dataIndex,
a = i.itemModel,
s = a.getModel('itemStyle').getItemStyle(['color']),
l = a.getModel('emphasis.itemStyle').getItemStyle(),
u = a.getShallow('cursor');
jg(t, function (t) {
t.setColor(n),
t.setStyle(r({ fill: n, opacity: i.opacity }, s)),
fo(t, l),
u && (t.cursor = u),
(t.z2 = i.z2);
});
var h = {},
c = e.valueDim.posDesc[+(i.boundingLength > 0)],
d = t.__pictorialBarRect;
kh(d.style, h, a, n, e.seriesModel, o, c), fo(d, h);
}
function Kg(t) {
var e = Math.round(t);
return Math.abs(t - e) < 1e-4 ? e : Math.ceil(t);
}
function $g(t, e, i) {
(this.dimension = 'single'),
(this.dimensions = ['single']),
(this._axis = null),
this._rect,
this._init(t, e, i),
(this.model = t);
}
function Jg(t, e) {
e = e || {};
var i = t.coordinateSystem,
n = t.axis,
o = {},
a = n.position,
r = n.orient,
s = i.getRect(),
l = [s.x, s.x + s.width, s.y, s.y + s.height],
u = {
horizontal: { top: l[2], bottom: l[3] },
vertical: { left: l[0], right: l[1] },
};
o.position = [
'vertical' === r ? u.vertical[a] : l[0],
'horizontal' === r ? u.horizontal[a] : l[3],
];
var h = { horizontal: 0, vertical: 1 };
o.rotation = (Math.PI / 2) * h[r];
var c = { top: -1, bottom: 1, right: 1, left: -1 };
(o.labelDirection = o.tickDirection = o.nameDirection = c[a]),
t.get('axisTick.inside') && (o.tickDirection = -o.tickDirection),
T(e.labelInside, t.get('axisLabel.inside')) &&
(o.labelDirection = -o.labelDirection);
var d = e.rotate;
return (
null == d && (d = t.get('axisLabel.rotate')),
(o.labelRotation = 'top' === a ? -d : d),
(o.z2 = 1),
o
);
}
function Qg(t, e, i, n, o) {
var r = t.axis;
if (!r.scale.isBlank() && r.containData(e))
if (t.involveSeries) {
var s = tm(e, t),
l = s.payloadBatch,
u = s.snapToValue;
l[0] && null == o.seriesIndex && a(o, l[0]),
!n && t.snap && r.containData(u) && null != u && (e = u),
i.showPointer(t, e, l, o),
i.showTooltip(t, s, u);
} else i.showPointer(t, e);
}
function tm(t, e) {
var i = e.axis,
n = i.dim,
o = t,
a = [],
r = Number.MAX_VALUE,
s = -1;
return (
_P(e.seriesModels, function (e, l) {
var u,
h,
c = e.getData().mapDimension(n, !0);
if (e.getAxisTooltipData) {
var d = e.getAxisTooltipData(c, t, i);
(h = d.dataIndices), (u = d.nestestValue);
} else {
if (
!(h = e
.getData()
.indicesOfNearest(c[0], t, 'category' === i.type ? 0.5 : null))
.length
)
return;
u = e.getData().get(c[0], h[0]);
}
if (null != u && isFinite(u)) {
var f = t - u,
p = Math.abs(f);
p <= r &&
((p < r || (f >= 0 && s < 0)) &&
((r = p), (s = f), (o = u), (a.length = 0)),
_P(h, function (t) {
a.push({
seriesIndex: e.seriesIndex,
dataIndexInside: t,
dataIndex: e.getData().getRawIndex(t),
});
}));
}
}),
{ payloadBatch: a, snapToValue: o }
);
}
function em(t, e, i, n) {
t[e.key] = { value: i, payloadBatch: n };
}
function im(t, e, i, n) {
var o = i.payloadBatch,
a = e.axis,
r = a.model,
s = e.axisPointerModel;
if (e.triggerTooltip && o.length) {
var l = e.coordSys.model,
u = Ah(l),
h = t.map[u];
h ||
((h = t.map[u] = {
coordSysId: l.id,
coordSysIndex: l.componentIndex,
coordSysType: l.type,
coordSysMainType: l.mainType,
dataByAxis: [],
}),
t.list.push(h)),
h.dataByAxis.push({
axisDim: a.dim,
axisIndex: r.componentIndex,
axisType: r.type,
axisId: r.id,
value: n,
valueLabelOpt: {
precision: s.get('label.precision'),
formatter: s.get('label.formatter'),
},
seriesDataIndices: o.slice(),
});
}
}
function nm(t, e, i) {
var n = (i.axesInfo = []);
_P(e, function (e, i) {
var o = e.axisPointerModel.option,
a = t[i];
a
? (!e.useHandle && (o.status = 'show'),
(o.value = a.value),
(o.seriesDataIndices = (a.payloadBatch || []).slice()))
: !e.useHandle && (o.status = 'hide'),
'show' === o.status &&
n.push({
axisDim: e.axis.dim,
axisIndex: e.axis.model.componentIndex,
value: o.value,
});
});
}
function om(t, e, i, n) {
if (!lm(e) && t.list.length) {
var o =
((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: o.dataIndexInside,
dataIndex: o.dataIndex,
seriesIndex: o.seriesIndex,
dataByCoordSys: t.list,
});
} else n({ type: 'hideTip' });
}
function am(t, e, i) {
var n = i.getZr(),
o = bP(n).axisPointerLastHighlights || {},
a = (bP(n).axisPointerLastHighlights = {});
_P(t, function (t, e) {
var i = t.axisPointerModel.option;
'show' === i.status &&
_P(i.seriesDataIndices, function (t) {
var e = t.seriesIndex + ' | ' + t.dataIndex;
a[e] = t;
});
});
var r = [],
s = [];
d(o, function (t, e) {
!a[e] && s.push(t);
}),
d(a, function (t, e) {
!o[e] && r.push(t);
}),
s.length &&
i.dispatchAction({ type: 'downplay', escapeConnect: !0, batch: s }),
r.length &&
i.dispatchAction({ type: 'highlight', escapeConnect: !0, batch: r });
}
function rm(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 sm(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 lm(t) {
return !t || null == t[0] || isNaN(t[0]) || null == t[1] || isNaN(t[1]);
}
function um(t, e, i) {
if (!U_.node) {
var n = e.getZr();
SP(n).records || (SP(n).records = {}),
hm(n, e),
((SP(n).records[t] || (SP(n).records[t] = {})).handler = i);
}
}
function hm(t, e) {
function i(i, n) {
t.on(i, function (i) {
var o = pm(e);
MP(SP(t).records, function (t) {
t && n(t, i, o.dispatchAction);
}),
cm(o.pendings, e);
});
}
SP(t).initialized ||
((SP(t).initialized = !0),
i('click', v(fm, 'click')),
i('mousemove', v(fm, 'mousemove')),
i('globalout', dm));
}
function cm(t, e) {
var i,
n = t.showTip.length,
o = t.hideTip.length;
n ? (i = t.showTip[n - 1]) : o && (i = t.hideTip[o - 1]),
i && ((i.dispatchAction = null), e.dispatchAction(i));
}
function dm(t, e, i) {
t.handler('leave', null, i);
}
function fm(t, e, i, n) {
e.handler(t, i, n);
}
function pm(t) {
var e = { showTip: [], hideTip: [] },
i = function (n) {
var o = e[n.type];
o ? o.push(n) : ((n.dispatchAction = i), t.dispatchAction(n));
};
return { dispatchAction: i, pendings: e };
}
function gm(t, e) {
if (!U_.node) {
var i = e.getZr();
(SP(i).records || {})[t] && (SP(i).records[t] = null);
}
}
function mm() {}
function vm(t, e, i, n) {
ym(TP(i).lastProp, n) ||
((TP(i).lastProp = n), e ? Io(i, n, t) : (i.stopAnimation(), i.attr(n)));
}
function ym(t, e) {
if (w(t) && w(e)) {
var i = !0;
return (
d(e, function (e, n) {
i = i && ym(t[n], e);
}),
!!i
);
}
return t === e;
}
function xm(t, e) {
t[e.get('label.show') ? 'show' : 'hide']();
}
function _m(t) {
return { position: t.position.slice(), rotation: t.rotation || 0 };
}
function wm(t, e, i) {
var n = e.get('z'),
o = e.get('zlevel');
t &&
t.traverse(function (t) {
'group' !== t.type &&
(null != n && (t.z = n), null != o && (t.zlevel = o), (t.silent = i));
});
}
function bm(t) {
var e,
i = t.get('type'),
n = t.getModel(i + 'Style');
return (
'line' === i
? ((e = n.getLineStyle()).fill = null)
: 'shadow' === i && ((e = n.getAreaStyle()).stroke = null),
e
);
}
function Sm(t, e, i, n, o) {
var a = Im(i.get('value'), e.axis, e.ecModel, i.get('seriesDataIndices'), {
precision: i.get('label.precision'),
formatter: i.get('label.formatter'),
}),
r = i.getModel('label'),
s = qM(r.get('padding') || 0),
l = r.getFont(),
u = ke(a, l),
h = o.position,
c = u.width + s[1] + s[3],
d = u.height + s[0] + s[2],
f = o.align;
'right' === f && (h[0] -= c), 'center' === f && (h[0] -= c / 2);
var p = o.verticalAlign;
'bottom' === p && (h[1] -= d),
'middle' === p && (h[1] -= d / 2),
Mm(h, c, d, n);
var g = r.get('backgroundColor');
(g && 'auto' !== g) || (g = e.get('axisLine.lineStyle.color')),
(t.label = {
shape: { x: 0, y: 0, width: c, height: d, r: r.get('borderRadius') },
position: h.slice(),
style: {
text: a,
textFont: l,
textFill: r.getTextColor(),
textPosition: 'inside',
fill: g,
stroke: r.get('borderColor') || 'transparent',
lineWidth: r.get('borderWidth') || 0,
shadowBlur: r.get('shadowBlur'),
shadowColor: r.get('shadowColor'),
shadowOffsetX: r.get('shadowOffsetX'),
shadowOffsetY: r.get('shadowOffsetY'),
},
z2: 10,
});
}
function Mm(t, e, i, n) {
var o = n.getWidth(),
a = n.getHeight();
(t[0] = Math.min(t[0] + e, o) - 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 Im(t, e, i, n, o) {
t = e.scale.parse(t);
var a = e.scale.getLabel(t, { precision: o.precision }),
r = o.formatter;
if (r) {
var s = { value: Xl(e, t), seriesData: [] };
d(n, function (t) {
var e = i.getSeriesByIndex(t.seriesIndex),
n = t.dataIndexInside,
o = e && e.getDataParams(n);
o && s.seriesData.push(o);
}),
_(r) ? (a = r.replace('{value}', a)) : x(r) && (a = r(s));
}
return a;
}
function Tm(t, e, i) {
var n = xt();
return (
Mt(n, n, i.rotation),
St(n, n, i.position),
Do(
[
t.dataToCoord(e),
(i.labelOffset || 0) + (i.labelDirection || 1) * (i.labelMargin || 0),
],
n,
)
);
}
function Am(t, e, i, n, o, a) {
var r = FD.innerTextLayout(i.rotation, 0, i.labelDirection);
(i.labelMargin = o.get('label.margin')),
Sm(e, n, o, a, {
position: Tm(n.axis, t, i),
align: r.textAlign,
verticalAlign: r.textVerticalAlign,
});
}
function Dm(t, e, i) {
return (i = i || 0), { x1: t[i], y1: t[1 - i], x2: e[i], y2: e[1 - i] };
}
function Cm(t, e, i) {
return (
(i = i || 0), { x: t[i], y: t[1 - i], width: e[i], height: e[1 - i] }
);
}
function Lm(t, e, i, n, o, a) {
return {
cx: t,
cy: e,
r0: i,
r: n,
startAngle: o,
endAngle: a,
clockwise: !0,
};
}
function km(t, e) {
var i = {};
return (i[e.dim + 'AxisIndex'] = e.index), t.getCartesian(i);
}
function Pm(t) {
return 'x' === t.dim ? 0 : 1;
}
function Nm(t) {
return t.isHorizontal() ? 0 : 1;
}
function Om(t, e) {
var i = t.getRect();
return [i[kP[e]], i[kP[e]] + i[PP[e]]];
}
function Em(t, e, i) {
var n = new yM({
shape: { x: t.x - 10, y: t.y - 10, width: 0, height: t.height + 20 },
});
return (
To(n, { shape: { width: t.width + 20, height: t.height + 20 } }, e, i), n
);
}
function Rm(t, e, i) {
if (t.count())
for (
var n,
o = e.coordinateSystem,
a = e.getLayerSeries(),
r = t.mapDimension('single'),
s = t.mapDimension('value'),
l = f(a, function (e) {
return f(e.indices, function (e) {
var i = o.dataToPoint(t.get(r, e));
return (i[1] = t.get(s, e)), i;
});
}),
u = zm(l),
h = u.y0,
c = i / u.max,
d = a.length,
p = a[0].indices.length,
g = 0;
g < p;
++g
) {
(n = h[g] * c),
t.setItemLayout(a[0].indices[g], {
layerIndex: 0,
x: l[0][g][0],
y0: n,
y: l[0][g][1] * c,
});
for (var m = 1; m < d; ++m)
(n += l[m - 1][g][1] * c),
t.setItemLayout(a[m].indices[g], {
layerIndex: m,
x: l[m][g][0],
y0: n,
y: l[m][g][1] * c,
});
}
}
function zm(t) {
for (
var e = t.length, i = t[0].length, n = [], o = [], a = 0, r = {}, s = 0;
s < i;
++s
) {
for (var l = 0, u = 0; l < e; ++l) u += t[l][s][1];
u > a && (a = u), n.push(u);
}
for (var h = 0; h < i; ++h) o[h] = (a - n[h]) / 2;
a = 0;
for (var c = 0; c < i; ++c) {
var d = n[c] + o[c];
d > a && (a = d);
}
return (r.y0 = o), (r.max = a), r;
}
function Bm(t) {
var e = 0;
d(t.children, function (t) {
Bm(t);
var i = t.value;
y(i) && (i = i[0]), (e += i);
});
var i = t.value;
y(i) && (i = i[0]),
(null == i || isNaN(i)) && (i = e),
i < 0 && (i = 0),
y(t.value) ? (t.value[0] = i) : (t.value = i);
}
function Vm(t, e, i) {
function n() {
r.ignore = r.hoverIgnore;
}
function o() {
r.ignore = r.normalIgnore;
}
tb.call(this);
var a = new hM({ z2: zP });
a.seriesIndex = e.seriesIndex;
var r = new rM({ z2: BP, silent: t.getModel('label').get('silent') });
this.add(a),
this.add(r),
this.updateData(!0, t, 'normal', e, i),
this.on('emphasis', n)
.on('normal', o)
.on('mouseover', n)
.on('mouseout', o);
}
function Gm(t, e, i) {
var n = t.getVisual('color'),
o = t.getVisual('visualMeta');
(o && 0 !== o.length) || (n = null);
var a = t.getModel('itemStyle').get('color');
if (a) return a;
if (n) return n;
if (0 === t.depth) return i.option.color[0];
var r = i.option.color.length;
return (a = i.option.color[Fm(t) % r]);
}
function Fm(t) {
for (var e = t; e.depth > 1; ) e = e.parentNode;
return l(t.getAncestors()[0].children, e);
}
function Wm(t, e, i) {
return (
i !== RP.NONE &&
(i === RP.SELF
? t === e
: i === RP.ANCESTOR
? t === e || t.isAncestorOf(e)
: t === e || t.isDescendantOf(e))
);
}
function Hm(t, e, i) {
e.getData().setItemVisual(t.dataIndex, 'color', i);
}
function Zm(t, e) {
var i = t.children || [];
(t.children = Um(i, e)),
i.length &&
d(t.children, function (t) {
Zm(t, e);
});
}
function Um(t, e) {
if ('function' == typeof e) return t.sort(e);
var i = 'asc' === e;
return t.sort(function (t, e) {
var n = (t.getValue() - e.getValue()) * (i ? 1 : -1);
return 0 === n ? (t.dataIndex - e.dataIndex) * (i ? -1 : 1) : n;
});
}
function Xm(t, e) {
return (
(e = e || [0, 0]),
f(
['x', 'y'],
function (i, n) {
var o = this.getAxis(i),
a = e[n],
r = t[n] / 2;
return 'category' === o.type
? o.getBandWidth()
: Math.abs(o.dataToCoord(a - r) - o.dataToCoord(a + r));
},
this,
)
);
}
function jm(t, e) {
return (
(e = e || [0, 0]),
f(
[0, 1],
function (i) {
var n = e[i],
o = t[i] / 2,
a = [],
r = [];
return (
(a[i] = n - o),
(r[i] = n + o),
(a[1 - i] = r[1 - i] = e[1 - i]),
Math.abs(this.dataToPoint(a)[i] - this.dataToPoint(r)[i])
);
},
this,
)
);
}
function Ym(t, e) {
var i = this.getAxis(),
n = e instanceof Array ? e[0] : e,
o = (t instanceof Array ? t[0] : t) / 2;
return 'category' === i.type
? i.getBandWidth()
: Math.abs(i.dataToCoord(n - o) - i.dataToCoord(n + o));
}
function qm(t, e) {
return f(
['Radius', 'Angle'],
function (i, n) {
var o = this['get' + i + 'Axis'](),
a = e[n],
r = t[n] / 2,
s = 'dataTo' + i,
l =
'category' === o.type
? o.getBandWidth()
: Math.abs(o[s](a - r) - o[s](a + r));
return 'Angle' === i && (l = (l * Math.PI) / 180), l;
},
this,
);
}
function Km(t) {
var e,
i = t.type;
if ('path' === i) {
var n = t.shape,
o =
null != n.width && null != n.height
? { x: n.x || 0, y: n.y || 0, width: n.width, height: n.height }
: null,
a = lv(n);
(e = Xn(a, null, o, n.layout || 'center')).__customPathData = a;
} else 'image' === i ? ((e = new fi({})).__customImagePath = t.style.image) : 'text' === i ? ((e = new rM({})).__customText = t.style.text) : (e = new (0, zM[i.charAt(0).toUpperCase() + i.slice(1)])());
return (e.__customGraphicType = i), (e.name = t.name), e;
}
function $m(t, e, n, o, a, r, s) {
var l = {},
u = n.style || {};
if (
(n.shape && (l.shape = i(n.shape)),
n.position && (l.position = n.position.slice()),
n.scale && (l.scale = n.scale.slice()),
n.origin && (l.origin = n.origin.slice()),
n.rotation && (l.rotation = n.rotation),
'image' === t.type && n.style)
) {
h = l.style = {};
d(['x', 'y', 'width', 'height'], function (e) {
Jm(e, h, u, t.style, r);
});
}
if ('text' === t.type && n.style) {
var h = (l.style = {});
d(['x', 'y'], function (e) {
Jm(e, h, u, t.style, r);
}),
!u.hasOwnProperty('textFill') && u.fill && (u.textFill = u.fill),
!u.hasOwnProperty('textStroke') &&
u.stroke &&
(u.textStroke = u.stroke);
}
if ('group' !== t.type && (t.useStyle(u), r)) {
t.style.opacity = 0;
var c = u.opacity;
null == c && (c = 1), To(t, { style: { opacity: c } }, o, e);
}
r ? t.attr(l) : Io(t, l, o, e),
n.hasOwnProperty('z2') && t.attr('z2', n.z2 || 0),
n.hasOwnProperty('silent') && t.attr('silent', n.silent),
n.hasOwnProperty('invisible') && t.attr('invisible', n.invisible),
n.hasOwnProperty('ignore') && t.attr('ignore', n.ignore),
n.hasOwnProperty('info') && t.attr('info', n.info);
var f = n.styleEmphasis,
p = !1 === f;
(t.__cusHasEmphStl && null == f) ||
(!t.__cusHasEmphStl && p) ||
(ro(t, f), (t.__cusHasEmphStl = !p)),
s && po(t, !p);
}
function Jm(t, e, i, n, o) {
null == i[t] || o || ((e[t] = i[t]), (i[t] = n[t]));
}
function Qm(t, e, i, n) {
function o(t) {
null == t && (t = h),
v &&
((c = e.getItemModel(t)),
(d = c.getModel(UP)),
(f = c.getModel(XP)),
(p = e.getItemVisual(t, 'color')),
(v = !1));
}
var s = t.get('renderItem'),
l = t.coordinateSystem,
u = {};
l && (u = l.prepareCustoms ? l.prepareCustoms() : YP[l.type](l));
var h,
c,
d,
f,
p,
g = r(
{
getWidth: n.getWidth,
getHeight: n.getHeight,
getZr: n.getZr,
getDevicePixelRatio: n.getDevicePixelRatio,
value: function (t, i) {
return null == i && (i = h), e.get(e.getDimension(t || 0), i);
},
style: function (i, n) {
null == n && (n = h), o(n);
var r = c.getModel(HP).getItemStyle();
null != p && (r.fill = p);
var s = e.getItemVisual(n, 'opacity');
return (
null != s && (r.opacity = s),
mo(r, d, null, { autoColor: p, isRectText: !0 }),
(r.text = d.getShallow('show')
? A(t.getFormattedLabel(n, 'normal'), _u(e, n))
: null),
i && a(r, i),
r
);
},
styleEmphasis: function (i, n) {
null == n && (n = h), o(n);
var r = c.getModel(ZP).getItemStyle();
return (
mo(r, f, null, { isRectText: !0 }, !0),
(r.text = f.getShallow('show')
? D(
t.getFormattedLabel(n, 'emphasis'),
t.getFormattedLabel(n, 'normal'),
_u(e, n),
)
: null),
i && a(r, i),
r
);
},
visual: function (t, i) {
return null == i && (i = h), e.getItemVisual(i, t);
},
barLayout: function (t) {
if (l.getBaseAxis) return Ll(r({ axis: l.getBaseAxis() }, t), n);
},
currentSeriesIndices: function () {
return i.getCurrentSeriesIndices();
},
font: function (t) {
return So(t, i);
},
},
u.api || {},
),
m = {
context: {},
seriesId: t.id,
seriesName: t.name,
seriesIndex: t.seriesIndex,
coordSys: u.coordSys,
dataInsideLength: e.count(),
encode: tv(t.getData()),
},
v = !0;
return function (t, i) {
return (
(h = t),
(v = !0),
s &&
s(
r(
{
dataIndexInside: t,
dataIndex: e.getRawIndex(t),
actionType: i ? i.type : null,
},
m,
),
g,
)
);
};
}
function tv(t) {
var e = {};
return (
d(t.dimensions, function (i, n) {
var o = t.getDimensionInfo(i);
if (!o.isExtraCoord) {
var a = o.coordDim;
(e[a] = e[a] || [])[o.coordDimIndex] = n;
}
}),
e
);
}
function ev(t, e, i, n, o, a) {
return (t = iv(t, e, i, n, o, a, !0)) && a.setItemGraphicEl(e, t), t;
}
function iv(t, e, i, n, o, a, r) {
var s = !i,
l = (i = i || {}).type,
u = i.shape,
h = i.style;
if (
(t &&
(s ||
(null != l && l !== t.__customGraphicType) ||
('path' === l && uv(u) && lv(u) !== t.__customPathData) ||
('image' === l &&
hv(h, 'image') &&
h.image !== t.__customImagePath) ||
('text' === l && hv(u, 'text') && h.text !== t.__customText)) &&
(o.remove(t), (t = null)),
!s)
) {
var c = !t;
return (
!t && (t = Km(i)),
$m(t, e, i, n, a, c, r),
'group' === l && nv(t, e, i, n, a),
o.add(t),
t
);
}
}
function nv(t, e, i, n, o) {
var a = i.children,
r = a ? a.length : 0,
s = i.$mergeChildren,
l = 'byName' === s || i.diffChildrenByName,
u = !1 === s;
if (r || l || u)
if (l)
ov({
oldChildren: t.children() || [],
newChildren: a || [],
dataIndex: e,
animatableModel: n,
group: t,
data: o,
});
else {
u && t.removeAll();
for (var h = 0; h < r; h++) a[h] && iv(t.childAt(h), e, a[h], n, t, o);
}
}
function ov(t) {
new Xs(t.oldChildren, t.newChildren, av, av, t)
.add(rv)
.update(rv)
.remove(sv)
.execute();
}
function av(t, e) {
var i = t && t.name;
return null != i ? i : jP + e;
}
function rv(t, e) {
var i = this.context,
n = null != t ? i.newChildren[t] : null;
iv(
null != e ? i.oldChildren[e] : null,
i.dataIndex,
n,
i.animatableModel,
i.group,
i.data,
);
}
function sv(t) {
var e = this.context,
i = e.oldChildren[t];
i && e.group.remove(i);
}
function lv(t) {
return t && (t.pathData || t.d);
}
function uv(t) {
return t && (t.hasOwnProperty('pathData') || t.hasOwnProperty('d'));
}
function hv(t, e) {
return t && t.hasOwnProperty(e);
}
function cv(t, e, i, n) {
var o = i.type,
a = new (0, zM[o.charAt(0).toUpperCase() + o.slice(1)])(i);
e.add(a), n.set(t, a), (a.__ecGraphicId = t);
}
function dv(t, e) {
var i = t && t.parent;
i &&
('group' === t.type &&
t.traverse(function (t) {
dv(t, e);
}),
e.removeKey(t.__ecGraphicId),
i.remove(t));
}
function fv(t) {
return (
(t = a({}, t)),
d(['id', 'parentId', '$action', 'hv', 'bounding'].concat(nI), function (
e,
) {
delete t[e];
}),
t
);
}
function pv(t, e) {
var i;
return (
d(e, function (e) {
null != t[e] && 'auto' !== t[e] && (i = !0);
}),
i
);
}
function gv(t, e) {
var i = t.exist;
if (
((e.id = t.keyInfo.id),
!e.type && i && (e.type = i.type),
null == e.parentId)
) {
var n = e.parentOption;
n ? (e.parentId = n.id) : i && (e.parentId = i.parentId);
}
e.parentOption = null;
}
function mv(t, e, i) {
var o = a({}, i),
r = t[e],
s = i.$action || 'merge';
'merge' === s
? r
? (n(r, o, !0), pa(r, o, { ignoreSize: !0 }), ma(i, r))
: (t[e] = o)
: 'replace' === s
? (t[e] = o)
: 'remove' === s && r && (t[e] = null);
}
function vv(t, e) {
t &&
((t.hv = e.hv = [pv(e, ['left', 'right']), pv(e, ['top', 'bottom'])]),
'group' === t.type &&
(null == t.width && (t.width = e.width = 0),
null == t.height && (t.height = e.height = 0)));
}
function yv(t, e, i) {
var n = t.eventData;
t.silent ||
t.ignore ||
n ||
(n = t.eventData = {
componentType: 'graphic',
componentIndex: e.componentIndex,
name: t.name,
}),
n && (n.info = t.info);
}
function xv(t, e, i) {
var n,
o = {},
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))),
d(i.getData(), function (t) {
var e = t.get('name');
if ('\n' !== e && '' !== e) {
var n = i.isSelected(e);
o.hasOwnProperty(e) ? (o[e] = o[e] && n) : (o[e] = n);
}
});
}),
{ name: e.name, selected: o }
);
}
function _v(t, e, i) {
var n = e.getBoxLayoutParams(),
o = e.get('padding'),
a = { width: i.getWidth(), height: i.getHeight() },
r = ca(n, a, o);
aI(e.get('orient'), t, e.get('itemGap'), r.width, r.height), da(t, n, a, o);
}
function wv(t, e) {
var i = qM(e.get('padding')),
n = e.getItemStyle(['color', 'opacity']);
return (
(n.fill = e.get('backgroundColor')),
(t = new yM({
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,
}))
);
}
function bv(t, e) {
e.dispatchAction({ type: 'legendToggleSelect', name: t });
}
function Sv(t, e, i, n) {
var o = i.getZr().storage.getDisplayList()[0];
(o && o.useHoverLayer) ||
i.dispatchAction({
type: 'highlight',
seriesName: t,
name: e,
excludeSeriesId: n,
});
}
function Mv(t, e, i, n) {
var o = i.getZr().storage.getDisplayList()[0];
(o && o.useHoverLayer) ||
i.dispatchAction({
type: 'downplay',
seriesName: t,
name: e,
excludeSeriesId: n,
});
}
function Iv(t, e, i) {
var n = [1, 1];
(n[t.getOrient().index] = 0), pa(e, i, { type: 'box', ignoreSize: n });
}
function Tv(t) {
var e =
'left ' +
t +
's cubic-bezier(0.23, 1, 0.32, 1),top ' +
t +
's cubic-bezier(0.23, 1, 0.32, 1)';
return f(lN, function (t) {
return t + 'transition:' + e;
}).join(';');
}
function Av(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'),
rN(['decoration', 'align'], function (i) {
var n = t.get(i);
n && e.push('text-' + i + ':' + n);
}),
e.join(';')
);
}
function Dv(t) {
var e = [],
i = t.get('transitionDuration'),
n = t.get('backgroundColor'),
o = t.getModel('textStyle'),
a = t.get('padding');
return (
i && e.push(Tv(i)),
n &&
(U_.canvasSupported
? e.push('background-Color:' + n)
: (e.push('background-Color:#' + Zt(n)),
e.push('filter:alpha(opacity=70)'))),
rN(['width', 'color', 'radius'], function (i) {
var n = 'border-' + i,
o = sN(n),
a = t.get(o);
null != a && e.push(n + ':' + a + ('color' === i ? '' : 'px'));
}),
e.push(Av(o)),
null != a && e.push('padding:' + qM(a).join('px ') + 'px'),
e.join(';') + ';'
);
}
function Cv(t, e) {
if (U_.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 o = this;
(i.onmouseenter = function () {
o._enterable && (clearTimeout(o._hideTimeout), (o._show = !0)),
(o._inContent = !0);
}),
(i.onmousemove = function (e) {
if (((e = e || window.event), !o._enterable)) {
var i = n.handler;
ut(t, e, !0), i.dispatch('mousemove', e);
}
}),
(i.onmouseleave = function () {
o._enterable && o._show && o.hideLater(o._hideDelay),
(o._inContent = !1);
});
}
function Lv(t) {
(this._zr = t.getZr()), (this._show = !1), this._hideTimeout;
}
function kv(t) {
for (var e = t.pop(); t.length; ) {
var i = t.pop();
i &&
(No.isInstance(i) && (i = i.get('tooltip', !0)),
'string' == typeof i && (i = { formatter: i }),
(e = new No(i, e, e.ecModel)));
}
return e;
}
function Pv(t, e) {
return t.dispatchAction || m(e.dispatchAction, e);
}
function Nv(t, e, i, n, o, a, r) {
var s = i.getOuterSize(),
l = s.width,
u = s.height;
return (
null != a && (t + l + a > n ? (t -= l + a) : (t += a)),
null != r && (e + u + r > o ? (e -= u + r) : (e += r)),
[t, e]
);
}
function Ov(t, e, i, n, o) {
var a = i.getOuterSize(),
r = a.width,
s = a.height;
return (
(t = Math.min(t + r, n) - r),
(e = Math.min(e + s, o) - s),
(t = Math.max(t, 0)),
(e = Math.max(e, 0)),
[t, e]
);
}
function Ev(t, e, i) {
var n = i[0],
o = i[1],
a = 0,
r = 0,
s = e.width,
l = e.height;
switch (t) {
case 'inside':
(a = e.x + s / 2 - n / 2), (r = e.y + l / 2 - o / 2);
break;
case 'top':
(a = e.x + s / 2 - n / 2), (r = e.y - o - 5);
break;
case 'bottom':
(a = e.x + s / 2 - n / 2), (r = e.y + l + 5);
break;
case 'left':
(a = e.x - n - 5), (r = e.y + l / 2 - o / 2);
break;
case 'right':
(a = e.x + s + 5), (r = e.y + l / 2 - o / 2);
}
return [a, r];
}
function Rv(t) {
return 'center' === t || 'middle' === t;
}
function zv(t) {
return t.get('stack') || '__ec_stack_' + t.seriesIndex;
}
function Bv(t) {
return t.dim;
}
function Vv(t, e) {
var i = {};
d(t, function (t, e) {
var n = t.getData(),
o = t.coordinateSystem.getBaseAxis(),
a = o.getExtent(),
r =
'category' === o.type
? o.getBandWidth()
: Math.abs(a[1] - a[0]) / n.count(),
s = i[Bv(o)] || {
bandWidth: r,
remainedWidth: r,
autoWidthCount: 0,
categoryGap: '20%',
gap: '30%',
stacks: {},
},
l = s.stacks;
i[Bv(o)] = s;
var u = zv(t);
l[u] || s.autoWidthCount++, (l[u] = l[u] || { width: 0, maxWidth: 0 });
var h = Vo(t.get('barWidth'), r),
c = Vo(t.get('barMaxWidth'), r),
d = t.get('barGap'),
f = t.get('barCategoryGap');
h &&
!l[u].width &&
((h = Math.min(s.remainedWidth, h)),
(l[u].width = h),
(s.remainedWidth -= h)),
c && (l[u].maxWidth = c),
null != d && (s.gap = d),
null != f && (s.categoryGap = f);
});
var n = {};
return (
d(i, function (t, e) {
n[e] = {};
var i = t.stacks,
o = t.bandWidth,
a = Vo(t.categoryGap, o),
r = Vo(t.gap, 1),
s = t.remainedWidth,
l = t.autoWidthCount,
u = (s - a) / (l + (l - 1) * r);
(u = Math.max(u, 0)),
d(i, function (t, e) {
var i = t.maxWidth;
i &&
i < u &&
((i = Math.min(i, s)),
t.width && (i = Math.min(i, t.width)),
(s -= i),
(t.width = i),
l--);
}),
(u = (s - a) / (l + (l - 1) * r)),
(u = Math.max(u, 0));
var h,
c = 0;
d(i, function (t, e) {
t.width || (t.width = u), (h = t), (c += t.width * (1 + r));
}),
h && (c -= h.width * r);
var f = -c / 2;
d(i, function (t, i) {
(n[e][i] = n[e][i] || { offset: f, width: t.width }),
(f += t.width * (1 + r));
});
}),
n
);
}
function Gv(t, e) {
aD.call(this, 'radius', t, e), (this.type = 'category');
}
function Fv(t, e) {
(e = e || [0, 360]), aD.call(this, 'angle', t, e), (this.type = 'category');
}
function Wv(t, e) {
return e.type || (e.data ? 'category' : 'value');
}
function Hv(t, e, i) {
var n = e.get('center'),
o = i.getWidth(),
a = i.getHeight();
(t.cx = Vo(n[0], o)), (t.cy = Vo(n[1], a));
var r = t.getRadiusAxis(),
s = Math.min(o, a) / 2,
l = Vo(e.get('radius'), s);
r.inverse ? r.setExtent(l, 0) : r.setExtent(0, l);
}
function Zv(t, e) {
var i = this,
n = i.getAngleAxis(),
o = i.getRadiusAxis();
if (
(n.scale.setExtent(1 / 0, -1 / 0),
o.scale.setExtent(1 / 0, -1 / 0),
t.eachSeries(function (t) {
if (t.coordinateSystem === i) {
var e = t.getData();
d(e.mapDimension('radius', !0), function (t) {
o.scale.unionExtentFromData(e, gl(e, t));
}),
d(e.mapDimension('angle', !0), function (t) {
n.scale.unionExtentFromData(e, gl(e, t));
});
}
}),
Wl(n.scale, n.model),
Wl(o.scale, o.model),
'category' === n.type && !n.onBand)
) {
var a = n.getExtent(),
r = 360 / n.scale.count();
n.inverse ? (a[1] += r) : (a[1] -= r), n.setExtent(a[0], a[1]);
}
}
function Uv(t, e) {
if (
((t.type = e.get('type')),
(t.scale = Hl(e)),
(t.onBand = e.get('boundaryGap') && 'category' === t.type),
(t.inverse = e.get('inverse')),
'angleAxis' === e.mainType)
) {
t.inverse ^= e.get('clockwise');
var i = e.get('startAngle');
t.setExtent(i, i + (t.inverse ? -360 : 360));
}
(e.axis = t), (t.model = e);
}
function Xv(t, e, i) {
e[1] > e[0] && (e = e.slice().reverse());
var n = t.coordToPoint([e[0], i]),
o = t.coordToPoint([e[1], i]);
return { x1: n[0], y1: n[1], x2: o[0], y2: o[1] };
}
function jv(t) {
return t.getRadiusAxis().inverse ? 0 : 1;
}
function Yv(t) {
var e = t[0],
i = t[t.length - 1];
e && i && Math.abs(Math.abs(e.coord - i.coord) - 360) < 1e-4 && t.pop();
}
function qv(t, e, i) {
return {
position: [t.cx, t.cy],
rotation: (i / 180) * Math.PI,
labelDirection: -1,
tickDirection: -1,
nameDirection: 1,
labelRotate: e.getModel('axisLabel').get('rotate'),
z2: 1,
};
}
function Kv(t, e, i, n, o) {
var a = e.axis,
r = a.dataToCoord(t),
s = n.getAngleAxis().getExtent()[0];
s = (s / 180) * Math.PI;
var l,
u,
h,
c = n.getRadiusAxis().getExtent();
if ('radius' === a.dim) {
var d = xt();
Mt(d, d, s), St(d, d, [n.cx, n.cy]), (l = Do([r, -o], d));
var f = e.getModel('axisLabel').get('rotate') || 0,
p = FD.innerTextLayout(s, (f * Math.PI) / 180, -1);
(u = p.textAlign), (h = p.textVerticalAlign);
} else {
var g = c[1];
l = n.coordToPoint([g + o, r]);
var m = n.cx,
v = n.cy;
(u =
Math.abs(l[0] - m) / g < 0.3 ? 'center' : l[0] > m ? 'left' : 'right'),
(h =
Math.abs(l[1] - v) / g < 0.3
? 'middle'
: l[1] > v
? 'top'
: 'bottom');
}
return { position: l, align: u, verticalAlign: h };
}
function $v(t, e) {
(e.update = 'updateView'),
Es(e, function (e, i) {
var n = {};
return (
i.eachComponent({ mainType: 'geo', query: e }, function (i) {
i[t](e.name),
d(i.coordinateSystem.regions, function (t) {
n[t.name] = i.isSelected(t.name) || !1;
});
}),
{ selected: n, name: e.name }
);
});
}
function Jv(t) {
var e = {};
d(t, function (t) {
e[t] = 1;
}),
(t.length = 0),
d(e, function (e, i) {
t.push(i);
});
}
function Qv(t) {
if (t) for (var e in t) if (t.hasOwnProperty(e)) return !0;
}
function ty(t, e, n) {
function o() {
var t = function () {};
return (t.prototype.__hidden = t.prototype), new t();
}
var a = {};
return (
MN(e, function (e) {
var r = (a[e] = o());
MN(t[e], function (t, o) {
if (hL.isValidType(o)) {
var a = { type: o, visual: t };
n && n(a, e),
(r[o] = new hL(a)),
'opacity' === o &&
(((a = i(a)).type = 'colorAlpha'),
(r.__hidden.__alphaForOpacity = new hL(a)));
}
});
}),
a
);
}
function ey(t, e, n) {
var o;
d(n, function (t) {
e.hasOwnProperty(t) && Qv(e[t]) && (o = !0);
}),
o &&
d(n, function (n) {
e.hasOwnProperty(n) && Qv(e[n]) ? (t[n] = i(e[n])) : delete t[n];
});
}
function iy(t, e, i, n, o, a) {
function r(t) {
return i.getItemVisual(h, t);
}
function s(t, e) {
i.setItemVisual(h, t, e);
}
function l(t, l) {
h = null == a ? t : l;
var c = i.getRawDataItem(h);
if (!c || !1 !== c.visualMap)
for (
var d = n.call(o, t), f = e[d], p = u[d], g = 0, m = p.length;
g < m;
g++
) {
var v = p[g];
f[v] && f[v].applyVisual(t, r, s);
}
}
var u = {};
d(t, function (t) {
var i = hL.prepareVisualTypes(e[t]);
u[t] = i;
});
var h;
null == a ? i.each(l) : i.each([a], l);
}
function ny(t, e, i, n) {
var o = {};
return (
d(t, function (t) {
var i = hL.prepareVisualTypes(e[t]);
o[t] = i;
}),
{
progress: function (t, a) {
null != n && (n = a.getDimension(n));
for (var r; null != (r = t.next()); ) {
var s = a.getRawDataItem(r);
if (!s || !1 !== s.visualMap)
for (
var l = null != n ? a.get(n, r, !0) : r,
u = i(l),
h = e[u],
c = o[u],
d = 0,
f = c.length;
d < f;
d++
) {
var p = c[d];
h[p] &&
h[p].applyVisual(
l,
function (t) {
return a.getItemVisual(r, t);
},
function (t, e) {
a.setItemVisual(r, t, e);
},
);
}
}
},
}
);
}
function oy(t) {
var e = ['x', 'y'],
i = ['width', 'height'];
return {
point: function (e, i, n) {
if (e) {
var o = n.range;
return ay(e[t], o);
}
},
rect: function (n, o, a) {
if (n) {
var r = a.range,
s = [n[e[t]], n[e[t]] + n[i[t]]];
return (
s[1] < s[0] && s.reverse(),
ay(s[0], r) || ay(s[1], r) || ay(r[0], s) || ay(r[1], s)
);
}
},
};
}
function ay(t, e) {
return e[0] <= t && t <= e[1];
}
function ry(t, e, i, n, o) {
for (var a = 0, r = o[o.length - 1]; a < o.length; a++) {
var s = o[a];
if (sy(t, e, i, n, s[0], s[1], r[0], r[1])) return !0;
r = s;
}
}
function sy(t, e, i, n, o, a, r, s) {
var l = uy(i - t, o - r, n - e, a - s);
if (ly(l)) return !1;
var u = uy(o - t, o - r, a - e, a - s) / l;
if (u < 0 || u > 1) return !1;
var h = uy(i - t, o - t, n - e, a - e) / l;
return !(h < 0 || h > 1);
}
function ly(t) {
return t <= 1e-6 && t >= -1e-6;
}
function uy(t, e, i, n) {
return t * n - e * i;
}
function hy(t, e, i) {
var n = (this._targetInfoList = []),
o = {},
a = dy(e, t);
TN(PN, function (t, e) {
(!i || !i.include || AN(i.include, e) >= 0) && t(a, n, o);
});
}
function cy(t) {
return t[0] > t[1] && t.reverse(), t;
}
function dy(t, e) {
return Vi(t, e, { includeMainTypes: LN });
}
function fy(t, e, i, n) {
var o = i.getAxis(['x', 'y'][t]),
a = cy(
f([0, 1], function (t) {
return e
? o.coordToData(o.toLocalCoord(n[t]))
: o.toGlobalCoord(o.dataToCoord(n[t]));
}),
),
r = [];
return (r[t] = a), (r[1 - t] = [NaN, NaN]), { values: a, xyMinMax: r };
}
function py(t, e, i, n) {
return [e[0] - n[t] * i[0], e[1] - n[t] * i[1]];
}
function gy(t, e) {
var i = my(t),
n = my(e),
o = [i[0] / n[0], i[1] / n[1]];
return isNaN(o[0]) && (o[0] = 1), isNaN(o[1]) && (o[1] = 1), o;
}
function my(t) {
return t ? [t[0][1] - t[0][0], t[1][1] - t[1][0]] : [NaN, NaN];
}
function vy(t, e, i, n, o) {
if (o) {
var a = t.getZr();
a[VN] || (a[BN] || (a[BN] = yy), Nr(a, BN, i, e)(t, n));
}
}
function yy(t, e) {
if (!t.isDisposed()) {
var i = t.getZr();
(i[VN] = !0),
t.dispatchAction({ type: 'brushSelect', batch: e }),
(i[VN] = !1);
}
}
function xy(t, e, i, n) {
for (var o = 0, a = e.length; o < a; o++) {
var r = e[o];
if (t[r.brushType](n, i, r.selectors, r)) return !0;
}
}
function _y(t) {
var e = t.brushSelector;
if (_(e)) {
var i = [];
return (
d(IN, function (t, n) {
i[n] = function (i, n, o, a) {
var r = n.getItemLayout(i);
return t[e](r, o, a);
};
}),
i
);
}
if (x(e)) {
var n = {};
return (
d(IN, function (t, i) {
n[i] = e;
}),
n
);
}
return e;
}
function wy(t, e) {
var i = t.option.seriesIndex;
return null != i && 'all' !== i && (y(i) ? l(i, e) < 0 : e !== i);
}
function by(t) {
var e = (t.selectors = {});
return (
d(IN[t.brushType], function (i, n) {
e[n] = function (n) {
return i(n, e, t);
};
}),
t
);
}
function Sy(t) {
return new de(t[0][0], t[1][0], t[0][1] - t[0][0], t[1][1] - t[1][0]);
}
function My(t, e) {
return n(
{
brushType: t.brushType,
brushMode: t.brushMode,
transformable: t.transformable,
brushStyle: new No(t.brushStyle).getItemStyle(),
removeOnClick: t.removeOnClick,
z: t.z,
},
e,
!0,
);
}
function Iy(t, e, i, n) {
(!n || n.$from !== t.id) &&
this._brushController
.setPanels(t.brushTargetManager.makePanelOpts(i))
.enableBrush(t.brushOption)
.updateCovers(t.areas.slice());
}
function Ty(t, e) {
HN[t] = e;
}
function Ay(t) {
return HN[t];
}
function Dy(t, e, i) {
(this.model = t),
(this.ecModel = e),
(this.api = i),
this._brushType,
this._brushMode;
}
function Cy(t, e, i) {
this._model = t;
}
function Ly(t, e, i, n) {
var o = i.calendarModel,
a = i.seriesModel,
r = o ? o.coordinateSystem : a ? a.coordinateSystem : null;
return r === this ? r[t](n) : null;
}
function ky(t, e) {
var i = t.cellSize;
y(i) ? 1 === i.length && (i[1] = i[0]) : (i = t.cellSize = [i, i]);
var n = f([0, 1], function (t) {
return fa(e, t) && (i[t] = 'auto'), null != i[t] && 'auto' !== i[t];
});
pa(t, e, { type: 'box', ignoreSize: n });
}
function Py(t) {
return l(qN, t) >= 0;
}
function Ny(t, e, i) {
function n(t, e) {
return l(e.nodes, t) >= 0;
}
function o(t, n) {
var o = !1;
return (
e(function (e) {
d(i(t, e) || [], function (t) {
n.records[e.name][t] && (o = !0);
});
}),
o
);
}
function a(t, n) {
n.nodes.push(t),
e(function (e) {
d(i(t, e) || [], function (t) {
n.records[e.name][t] = !0;
});
});
}
return function (i) {
var r = { nodes: [], records: {} };
if (
(e(function (t) {
r.records[t.name] = {};
}),
!i)
)
return r;
a(i, r);
var s;
do {
(s = !1),
t(function (t) {
!n(t, r) && o(t, r) && (a(t, r), (s = !0));
});
} while (s);
return r;
};
}
function Oy(t, e, i) {
var n = [1 / 0, -1 / 0];
return (
$N(i, function (t) {
var i = t.getData();
i &&
$N(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 = [NaN, NaN]),
Ey(t, n),
n
);
}
function Ey(t, e) {
var i = t.getAxisModel(),
n = i.getMin(!0),
o = 'category' === i.get('type'),
a = o && i.getCategories().length;
null != n && 'dataMin' !== n && 'function' != typeof n
? (e[0] = n)
: o && (e[0] = a > 0 ? 0 : NaN);
var r = i.getMax(!0);
return (
null != r && 'dataMax' !== r && 'function' != typeof r
? (e[1] = r)
: o && (e[1] = a > 0 ? a - 1 : NaN),
i.get('scale', !0) || (e[0] > 0 && (e[0] = 0), e[1] < 0 && (e[1] = 0)),
e
);
}
function Ry(t, e) {
var i = t.getAxisModel(),
n = t._percentWindow,
o = t._valueWindow;
if (n) {
var a = Zo(o, [0, 500]);
a = Math.min(a, 20);
var r = e || (0 === n[0] && 100 === n[1]);
i.setRange(r ? null : +o[0].toFixed(a), r ? null : +o[1].toFixed(a));
}
}
function zy(t) {
var e = (t._minMaxSpan = {}),
i = t._dataZoomModel;
$N(['min', 'max'], function (n) {
e[n + 'Span'] = i.get(n + 'Span');
var o = i.get(n + 'ValueSpan');
if (
null != o &&
((e[n + 'ValueSpan'] = o),
null != (o = t.getAxisModel().axis.scale.parse(o)))
) {
var a = t._dataExtent;
e[n + 'Span'] = Bo(a[0] + o, a, [0, 100], !0);
}
});
}
function By(t) {
var e = {};
return (
tO(['start', 'end', 'startValue', 'endValue', 'throttle'], function (i) {
t.hasOwnProperty(i) && (e[i] = t[i]);
}),
e
);
}
function Vy(t, e) {
var i = t._rangePropMode,
n = t.get('rangeMode');
tO(
[
['start', 'startValue'],
['end', 'endValue'],
],
function (t, o) {
var a = null != e[t[0]],
r = null != e[t[1]];
a && !r
? (i[o] = 'percent')
: !a && r
? (i[o] = 'value')
: n
? (i[o] = n[o])
: a && (i[o] = 'percent');
},
);
}
function Gy(t) {
return { x: 'y', y: 'x', radius: 'angle', angle: 'radius' }[t];
}
function Fy(t) {
return 'vertical' === t ? 'ns-resize' : 'ew-resize';
}
function Wy(t, e) {
var i = Uy(t),
n = e.dataZoomId,
o = e.coordId;
d(i, function (t, i) {
var a = t.dataZoomInfos;
a[n] && l(e.allCoordIds, o) < 0 && (delete a[n], t.count--);
}),
jy(i);
var a = i[o];
a ||
(((a = i[o] = {
coordId: o,
dataZoomInfos: {},
count: 0,
}).controller = Xy(t, a)),
(a.dispatchAction = v(Yy, t))),
!a.dataZoomInfos[n] && a.count++,
(a.dataZoomInfos[n] = e);
var r = qy(a.dataZoomInfos);
a.controller.enable(r.controlType, r.opt),
a.controller.setPointerChecker(e.containsPoint),
Nr(a, 'dispatchAction', e.dataZoomModel.get('throttle', !0), 'fixRate');
}
function Hy(t, e) {
var i = Uy(t);
d(i, function (t) {
t.controller.dispose();
var i = t.dataZoomInfos;
i[e] && (delete i[e], t.count--);
}),
jy(i);
}
function Zy(t) {
return t.type + '\0_' + t.id;
}
function Uy(t) {
var e = t.getZr();
return e[fO] || (e[fO] = {});
}
function Xy(t, e) {
var i = new oc(t.getZr());
return (
d(['pan', 'zoom', 'scrollMove'], function (t) {
i.on(t, function (i) {
var n = [];
d(e.dataZoomInfos, function (o) {
if (i.isAvailableBehavior(o.dataZoomModel.option)) {
var a = (o.getRange || {})[t],
r = a && a(e.controller, i);
!o.dataZoomModel.get('disabled', !0) &&
r &&
n.push({ dataZoomId: o.dataZoomId, start: r[0], end: r[1] });
}
}),
n.length && e.dispatchAction(n);
});
}),
i
);
}
function jy(t) {
d(t, function (e, i) {
e.count || (e.controller.dispose(), delete t[i]);
});
}
function Yy(t, e) {
t.dispatchAction({ type: 'dataZoom', batch: e });
}
function qy(t) {
var e,
i = { type_true: 2, type_move: 1, type_false: 0, type_undefined: -1 },
n = !0;
return (
d(t, function (t) {
var o = t.dataZoomModel,
a = !o.get('disabled', !0) && (!o.get('zoomLock', !0) || 'move');
i['type_' + a] > i['type_' + e] && (e = a),
(n &= o.get('preventDefaultMouseMove', !0));
}),
{
controlType: e,
opt: {
zoomOnMouseWheel: !0,
moveOnMouseMove: !0,
moveOnMouseWheel: !0,
preventDefaultMouseMove: !!n,
},
}
);
}
function Ky(t) {
return function (e, i, n, o) {
var a = this._range,
r = a.slice(),
s = e.axisModels[0];
if (s) {
var l = t(r, s, e, i, n, o);
return (
QL(l, r, [0, 100], 'all'),
(this._range = r),
a[0] !== r[0] || a[1] !== r[1] ? r : void 0
);
}
};
}
function $y(t, e) {
return t && t.hasOwnProperty && t.hasOwnProperty(e);
}
function Jy(t, e, i, n) {
for (
var o = e.targetVisuals[n],
a = hL.prepareVisualTypes(o),
r = { color: t.getData().getVisual('color') },
s = 0,
l = a.length;
s < l;
s++
) {
var u = a[s],
h = o['opacity' === u ? '__alphaForOpacity' : u];
h &&
h.applyVisual(
i,
function (t) {
return r[t];
},
function (t, e) {
r[t] = e;
},
);
}
return r.color;
}
function Qy(t, e, i) {
if (i[0] === i[1]) return i.slice();
for (
var n = (i[1] - i[0]) / 200, o = i[0], a = [], r = 0;
r <= 200 && o < i[1];
r++
)
a.push(o), (o += n);
return a.push(i[1]), a;
}
function tx(t, e, i) {
var n = t.option,
o = n.align;
if (null != o && 'auto' !== o) return o;
for (
var a = { width: e.getWidth(), height: e.getHeight() },
r = 'horizontal' === n.orient ? 1 : 0,
s = [
['left', 'right', 'width'],
['top', 'bottom', 'height'],
],
l = s[r],
u = [0, null, 10],
h = {},
c = 0;
c < 3;
c++
)
(h[s[1 - r][c]] = u[c]), (h[l[c]] = 2 === c ? i[0] : n[l[c]]);
var d = [
['x', 'width', 3],
['y', 'height', 0],
][r],
f = ca(h, a, n.padding);
return l[
(f.margin[d[2]] || 0) + f[d[0]] + 0.5 * f[d[1]] < 0.5 * a[d[1]] ? 0 : 1
];
}
function ex(t) {
return (
d(t || [], function (e) {
null != t.dataIndex &&
((t.dataIndexInside = t.dataIndex), (t.dataIndex = null));
}),
t
);
}
function ix(t, e, i, n) {
return new pM({
shape: { points: t },
draggable: !!i,
cursor: e,
drift: i,
onmousemove: function (t) {
mw(t.event);
},
ondragend: n,
});
}
function nx(t, e) {
return 0 === t
? [
[0, 0],
[e, 0],
[e, -e],
]
: [
[0, 0],
[e, 0],
[e, e],
];
}
function ox(t, e, i, n) {
return t
? [
[0, -RO(e, zO(i, 0))],
[VO, 0],
[0, RO(e, zO(n - i, 0))],
]
: [
[0, 0],
[5, -5],
[5, 5],
];
}
function ax(t, e, i) {
var n = BO / 2,
o = t.get('hoverLinkDataSize');
return o && (n = OO(o, e, i, !0) / 2), n;
}
function rx(t) {
var e = t.get('hoverLinkOnHandle');
return !!(null == e ? t.get('realtime') : e);
}
function sx(t) {
return 'vertical' === t ? 'ns-resize' : 'ew-resize';
}
function lx(t, e) {
var i = t.inverse;
('vertical' === t.orient ? !i : i) && e.reverse();
}
function ux(t) {
Ci(t, 'label', ['show']);
}
function hx(t) {
return !(isNaN(parseFloat(t.x)) && isNaN(parseFloat(t.y)));
}
function cx(t) {
return !isNaN(parseFloat(t.x)) && !isNaN(parseFloat(t.y));
}
function dx(t, e, i, n, o, a) {
var r = [],
s = pl(e, n) ? e.getCalculationInfo('stackResultDimension') : n,
l = yx(e, s, t),
u = e.indicesOfNearest(s, l)[0];
(r[o] = e.get(i, u)), (r[a] = e.get(n, u));
var h = Wo(e.get(n, u));
return (h = Math.min(h, 20)) >= 0 && (r[a] = +r[a].toFixed(h)), r;
}
function fx(t, e) {
var n = t.getData(),
o = t.coordinateSystem;
if (e && !cx(e) && !y(e.coord) && o) {
var a = o.dimensions,
r = px(e, n, o, t);
if ((e = i(e)).type && YO[e.type] && r.baseAxis && r.valueAxis) {
var s = XO(a, r.baseAxis.dim),
l = XO(a, r.valueAxis.dim);
(e.coord = YO[e.type](n, r.baseDataDim, r.valueDataDim, s, l)),
(e.value = e.coord[l]);
} else {
for (
var u = [
null != e.xAxis ? e.xAxis : e.radiusAxis,
null != e.yAxis ? e.yAxis : e.angleAxis,
],
h = 0;
h < 2;
h++
)
YO[u[h]] && (u[h] = yx(n, n.mapDimension(a[h]), u[h]));
e.coord = u;
}
}
return e;
}
function px(t, e, i, n) {
var o = {};
return (
null != t.valueIndex || null != t.valueDim
? ((o.valueDataDim =
null != t.valueIndex ? e.getDimension(t.valueIndex) : t.valueDim),
(o.valueAxis = i.getAxis(gx(n, o.valueDataDim))),
(o.baseAxis = i.getOtherAxis(o.valueAxis)),
(o.baseDataDim = e.mapDimension(o.baseAxis.dim)))
: ((o.baseAxis = n.getBaseAxis()),
(o.valueAxis = i.getOtherAxis(o.baseAxis)),
(o.baseDataDim = e.mapDimension(o.baseAxis.dim)),
(o.valueDataDim = e.mapDimension(o.valueAxis.dim))),
o
);
}
function gx(t, e) {
var i = t.getData(),
n = i.dimensions;
e = i.getDimension(e);
for (var o = 0; o < n.length; o++) {
var a = i.getDimensionInfo(n[o]);
if (a.name === e) return a.coordDim;
}
}
function mx(t, e) {
return !(t && t.containData && e.coord && !hx(e)) || t.containData(e.coord);
}
function vx(t, e, i, n) {
return n < 2 ? t.coord && t.coord[n] : t.value;
}
function yx(t, e, i) {
if ('average' === i) {
var n = 0,
o = 0;
return (
t.each(e, function (t, e) {
isNaN(t) || ((n += t), o++);
}),
n / o
);
}
return 'median' === i
? t.getMedian(e)
: t.getDataExtent(e, !0)['max' === i ? 1 : 0];
}
function xx(t, e, i) {
var n = e.coordinateSystem;
t.each(function (o) {
var a,
r = t.getItemModel(o),
s = Vo(r.get('x'), i.getWidth()),
l = Vo(r.get('y'), i.getHeight());
if (isNaN(s) || isNaN(l)) {
if (e.getMarkerPosition)
a = e.getMarkerPosition(t.getValues(t.dimensions, o));
else if (n) {
var u = t.get(n.dimensions[0], o),
h = t.get(n.dimensions[1], o);
a = n.dataToPoint([u, h]);
}
} else a = [s, l];
isNaN(s) || (a[0] = s), isNaN(l) || (a[1] = l), t.setItemLayout(o, a);
});
}
function _x(t, e, i) {
var n;
n = t
? f(t && t.dimensions, function (t) {
return r(
{ name: t },
e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {},
);
})
: [{ name: 'value', type: 'float' }];
var o = new vA(n, i),
a = f(i.get('data'), v(fx, e));
return (
t && (a = g(a, v(mx, t))),
o.initData(
a,
null,
t
? vx
: function (t) {
return t.value;
},
),
o
);
}
function bx(t) {
return !isNaN(t) && !isFinite(t);
}
function Sx(t, e, i, n) {
var o = 1 - t,
a = n.dimensions[t];
return (
bx(e[o]) && bx(i[o]) && e[t] === i[t] && n.getAxis(a).containData(e[t])
);
}
function Mx(t, e) {
if ('cartesian2d' === t.type) {
var i = e[0].coord,
n = e[1].coord;
if (i && n && (Sx(1, i, n, t) || Sx(0, i, n, t))) return !0;
}
return mx(t, e[0]) && mx(t, e[1]);
}
function Ix(t, e, i, n, o) {
var a,
r = n.coordinateSystem,
s = t.getItemModel(e),
l = Vo(s.get('x'), o.getWidth()),
u = Vo(s.get('y'), o.getHeight());
if (isNaN(l) || isNaN(u)) {
if (n.getMarkerPosition)
a = n.getMarkerPosition(t.getValues(t.dimensions, e));
else {
var h = r.dimensions,
c = t.get(h[0], e),
d = t.get(h[1], e);
a = r.dataToPoint([c, d]);
}
if ('cartesian2d' === r.type) {
var f = r.getAxis('x'),
p = r.getAxis('y'),
h = r.dimensions;
bx(t.get(h[0], e))
? (a[0] = f.toGlobalCoord(f.getExtent()[i ? 0 : 1]))
: bx(t.get(h[1], e)) &&
(a[1] = p.toGlobalCoord(p.getExtent()[i ? 0 : 1]));
}
isNaN(l) || (a[0] = l), isNaN(u) || (a[1] = u);
} else a = [l, u];
t.setItemLayout(e, a);
}
function Tx(t, e, i) {
var n;
n = t
? f(t && t.dimensions, function (t) {
return r(
{ name: t },
e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {},
);
})
: [{ name: 'value', type: 'float' }];
var o = new vA(n, i),
a = new vA(n, i),
s = new vA([], i),
l = f(i.get('data'), v(KO, e, t, i));
t && (l = g(l, v(Mx, t)));
var u = t
? vx
: function (t) {
return t.value;
};
return (
o.initData(
f(l, function (t) {
return t[0];
}),
null,
u,
),
a.initData(
f(l, function (t) {
return t[1];
}),
null,
u,
),
s.initData(
f(l, function (t) {
return t[2];
}),
),
(s.hasItemOption = !0),
{ from: o, to: a, line: s }
);
}
function Ax(t) {
return !isNaN(t) && !isFinite(t);
}
function Dx(t, e, i, n) {
var o = 1 - t;
return Ax(e[o]) && Ax(i[o]);
}
function Cx(t, e) {
var i = e.coord[0],
n = e.coord[1];
return (
!(
'cartesian2d' !== t.type ||
!i ||
!n ||
(!Dx(1, i, n, t) && !Dx(0, i, n, t))
) ||
mx(t, { coord: i, x: e.x0, y: e.y0 }) ||
mx(t, { coord: n, x: e.x1, y: e.y1 })
);
}
function Lx(t, e, i, n, o) {
var a,
r = n.coordinateSystem,
s = t.getItemModel(e),
l = Vo(s.get(i[0]), o.getWidth()),
u = Vo(s.get(i[1]), o.getHeight());
if (isNaN(l) || isNaN(u)) {
if (n.getMarkerPosition) a = n.getMarkerPosition(t.getValues(i, e));
else {
var h = [(f = t.get(i[0], e)), (p = t.get(i[1], e))];
r.clampData && r.clampData(h, h), (a = r.dataToPoint(h, !0));
}
if ('cartesian2d' === r.type) {
var c = r.getAxis('x'),
d = r.getAxis('y'),
f = t.get(i[0], e),
p = t.get(i[1], e);
Ax(f)
? (a[0] = c.toGlobalCoord(c.getExtent()['x0' === i[0] ? 0 : 1]))
: Ax(p) &&
(a[1] = d.toGlobalCoord(d.getExtent()['y0' === i[1] ? 0 : 1]));
}
isNaN(l) || (a[0] = l), isNaN(u) || (a[1] = u);
} else a = [l, u];
return a;
}
function kx(t, e, i) {
var n,
o,
a = ['x0', 'y0', 'x1', 'y1'];
t
? ((n = f(t && t.dimensions, function (t) {
var i = e.getData();
return r({ name: t }, i.getDimensionInfo(i.mapDimension(t)) || {});
})),
(o = new vA(
f(a, function (t, e) {
return { name: t, type: n[e % 2].type };
}),
i,
)))
: (o = new vA((n = [{ name: 'value', type: 'float' }]), i));
var s = f(i.get('data'), v($O, e, t, i));
t && (s = g(s, v(Cx, t)));
var l = t
? function (t, e, i, n) {
return t.coord[Math.floor(n / 2)][n % 2];
}
: function (t) {
return t.value;
};
return o.initData(s, null, l), (o.hasItemOption = !0), o;
}
function Px(t) {
var e = t.type,
i = { number: 'value', time: 'time' };
if (
(i[e] && ((t.axisType = i[e]), delete t.type),
Nx(t),
Ox(t, 'controlPosition'))
) {
var n = t.controlStyle || (t.controlStyle = {});
Ox(n, 'position') || (n.position = t.controlPosition),
'none' !== n.position ||
Ox(n, 'show') ||
((n.show = !1), delete n.position),
delete t.controlPosition;
}
d(t.data || [], function (t) {
w(t) &&
!y(t) &&
(!Ox(t, 'value') && Ox(t, 'name') && (t.value = t.name), Nx(t));
});
}
function Nx(t) {
var e = t.itemStyle || (t.itemStyle = {}),
i = e.emphasis || (e.emphasis = {}),
n = t.label || t.label || {},
o = n.normal || (n.normal = {}),
a = { normal: 1, emphasis: 1 };
d(n, function (t, e) {
a[e] || Ox(o, e) || (o[e] = t);
}),
i.label && !Ox(n, 'emphasis') && ((n.emphasis = i.label), delete i.label);
}
function Ox(t, e) {
return t.hasOwnProperty(e);
}
function Ex(t, e) {
return ca(
t.getBoxLayoutParams(),
{ width: e.getWidth(), height: e.getHeight() },
t.get('padding'),
);
}
function Rx(t, e, n, o) {
return Xn(
t.get(e).replace(/^path:\/\//, ''),
i(o || {}),
new de(n[0], n[1], n[2], n[3]),
'center',
);
}
function zx(t, e, i, o, a, r) {
var s = e.get('color');
a
? (a.setColor(s), i.add(a), r && r.onUpdate(a))
: ((a = Jl(t.get('symbol'), -1, -1, 2, 2, s)).setStyle(
'strokeNoScale',
!0,
),
i.add(a),
r && r.onCreate(a));
var l = e.getItemStyle(['color', 'symbol', 'symbolSize']);
a.setStyle(l), (o = n({ rectHover: !0, z2: 100 }, o, !0));
var u = t.get('symbolSize');
((u = u instanceof Array ? u.slice() : [+u, +u])[0] /= 2),
(u[1] /= 2),
(o.scale = u);
var h = t.get('symbolOffset');
if (h) {
var c = (o.position = o.position || [0, 0]);
(c[0] += Vo(h[0], u[0])), (c[1] += Vo(h[1], u[1]));
}
var d = t.get('symbolRotate');
return (
(o.rotation = ((d || 0) * Math.PI) / 180 || 0),
a.attr(o),
a.updateTransform(),
a
);
}
function Bx(t, e, i, n, o) {
if (!t.dragging) {
var a = n.getModel('checkpointStyle'),
r = i.dataToCoord(n.getData().get(['value'], e));
o || !a.get('animation', !0)
? t.attr({ position: [r, 0] })
: (t.stopAnimation(!0),
t.animateTo(
{ position: [r, 0] },
a.get('animationDuration', !0),
a.get('animationEasing', !0),
));
}
}
function Vx(t) {
return 0 === t.indexOf('my');
}
function Gx(t) {
this.model = t;
}
function Fx(t) {
this.model = t;
}
function Wx(t) {
var e = {},
i = [],
n = [];
return (
t.eachRawSeries(function (t) {
var o = t.coordinateSystem;
if (!o || ('cartesian2d' !== o.type && 'polar' !== o.type)) i.push(t);
else {
var a = o.getBaseAxis();
if ('category' === a.type) {
var r = a.dim + '_' + a.index;
e[r] ||
((e[r] = {
categoryAxis: a,
valueAxis: o.getOtherAxis(a),
series: [],
}),
n.push({ axisDim: a.dim, axisIndex: a.index })),
e[r].series.push(t);
} else i.push(t);
}
}),
{ seriesGroupByCategoryAxis: e, other: i, meta: n }
);
}
function Hx(t) {
var e = [];
return (
d(t, function (t, i) {
var n = t.categoryAxis,
o = t.valueAxis.dim,
a = [' '].concat(
f(t.series, function (t) {
return t.name;
}),
),
r = [n.model.getCategories()];
d(t.series, function (t) {
r.push(
t.getRawData().mapArray(o, function (t) {
return t;
}),
);
});
for (var s = [a.join(fE)], l = 0; l < r[0].length; l++) {
for (var u = [], h = 0; h < r.length; h++) u.push(r[h][l]);
s.push(u.join(fE));
}
e.push(s.join('\n'));
}),
e.join('\n\n' + dE + '\n\n')
);
}
function Zx(t) {
return f(t, function (t) {
var e = t.getRawData(),
i = [t.name],
n = [];
return (
e.each(e.dimensions, function () {
for (
var t = arguments.length,
o = arguments[t - 1],
a = e.getName(o),
r = 0;
r < t - 1;
r++
)
n[r] = arguments[r];
i.push((a ? a + fE : '') + n.join(fE));
}),
i.join('\n')
);
}).join('\n\n' + dE + '\n\n');
}
function Ux(t) {
var e = Wx(t);
return {
value: g([Hx(e.seriesGroupByCategoryAxis), Zx(e.other)], function (t) {
return t.replace(/[\n\t\s]/g, '');
}).join('\n\n' + dE + '\n\n'),
meta: e.meta,
};
}
function Xx(t) {
return t.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}
function jx(t) {
if (t.slice(0, t.indexOf('\n')).indexOf(fE) >= 0) return !0;
}
function Yx(t) {
for (
var e = t.split(/\n+/g),
i = [],
n = f(Xx(e.shift()).split(pE), function (t) {
return { name: t, data: [] };
}),
o = 0;
o < e.length;
o++
) {
var a = Xx(e[o]).split(pE);
i.push(a.shift());
for (var r = 0; r < a.length; r++) n[r] && (n[r].data[o] = a[r]);
}
return { series: n, categories: i };
}
function qx(t) {
for (
var e = t.split(/\n+/g), i = Xx(e.shift()), n = [], o = 0;
o < e.length;
o++
) {
var a,
r = Xx(e[o]).split(pE),
s = '',
l = !1;
isNaN(r[0])
? ((l = !0),
(s = r[0]),
(r = r.slice(1)),
(n[o] = { name: s, value: [] }),
(a = n[o].value))
: (a = n[o] = []);
for (var u = 0; u < r.length; u++) a.push(+r[u]);
1 === a.length && (l ? (n[o].value = a[0]) : (n[o] = a[0]));
}
return { name: i, data: n };
}
function Kx(t, e) {
var i = { series: [] };
return (
d(t.split(new RegExp('\n*' + dE + '\n*', 'g')), function (t, n) {
if (jx(t)) {
var o = Yx(t),
a = e[n],
r = a.axisDim + 'Axis';
a &&
((i[r] = i[r] || []),
(i[r][a.axisIndex] = { data: o.categories }),
(i.series = i.series.concat(o.series)));
} else {
o = qx(t);
i.series.push(o);
}
}),
i
);
}
function $x(t) {
(this._dom = null), (this.model = t);
}
function Jx(t, e) {
return f(t, function (t, i) {
var n = e && e[i];
return w(n) && !y(n)
? (w(t) && !y(t) && (t = t.value), r({ value: t }, n))
: t;
});
}
function Qx(t, e) {
var i = n_(t);
gE(e, function (e, n) {
for (var o = i.length - 1; o >= 0 && !i[o][n]; o--);
if (o < 0) {
var a = t.queryComponents({
mainType: 'dataZoom',
subType: 'select',
id: n,
})[0];
if (a) {
var r = a.getPercentRange();
i[0][n] = { dataZoomId: n, start: r[0], end: r[1] };
}
}
}),
i.push(e);
}
function t_(t) {
var e = n_(t),
i = e[e.length - 1];
e.length > 1 && e.pop();
var n = {};
return (
gE(i, function (t, i) {
for (var o = e.length - 1; o >= 0; o--)
if ((t = e[o][i])) {
n[i] = t;
break;
}
}),
n
);
}
function e_(t) {
t[mE] = null;
}
function i_(t) {
return n_(t).length;
}
function n_(t) {
var e = t[mE];
return e || (e = t[mE] = [{}]), e;
}
function o_(t, e, i) {
(this._brushController = new zf(i.getZr()))
.on('brush', m(this._onBrush, this))
.mount(),
this._isZoomActive;
}
function a_(t) {
var e = {};
return (
d(['xAxisIndex', 'yAxisIndex'], function (i) {
(e[i] = t[i]),
null == e[i] && (e[i] = 'all'),
(!1 === e[i] || 'none' === e[i]) && (e[i] = []);
}),
e
);
}
function r_(t, e) {
t.setIconStatus('back', i_(e) > 1 ? 'emphasis' : 'normal');
}
function s_(t, e, i, n, o) {
var a = i._isZoomActive;
n &&
'takeGlobalCursor' === n.type &&
(a = 'dataZoomSelect' === n.key && n.dataZoomSelectActive),
(i._isZoomActive = a),
t.setIconStatus('zoom', a ? 'emphasis' : 'normal');
var r = new hy(a_(t.option), e, { include: ['grid'] });
i._brushController
.setPanels(
r.makePanelOpts(o, function (t) {
return t.xAxisDeclared && !t.yAxisDeclared
? 'lineX'
: !t.xAxisDeclared && t.yAxisDeclared
? 'lineY'
: 'rect';
}),
)
.enableBrush(
!!a && {
brushType: 'auto',
brushStyle: { lineWidth: 0, fill: 'rgba(0,0,0,0.2)' },
},
);
}
function l_(t) {
this.model = t;
}
function u_(t) {
return SE(t);
}
function h_() {
if (!TE && AE) {
TE = !0;
var t = AE.styleSheets;
t.length < 31
? AE.createStyleSheet().addRule('.zrvml', 'behavior:url(#default#VML)')
: t[0].addRule('.zrvml', 'behavior:url(#default#VML)');
}
}
function c_(t) {
return parseInt(t, 10);
}
function d_(t, e) {
h_(), (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 o = e.delFromStorage,
a = e.addToStorage;
(e.delFromStorage = function (t) {
o.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 f_(t) {
return function () {
Yw('In IE8.0 VML mode painter not support method "' + t + '"');
};
}
function p_(t) {
return document.createElementNS(sR, t);
}
function g_(t) {
return cR(1e4 * t) / 1e4;
}
function m_(t) {
return t < vR && t > -vR;
}
function v_(t, e) {
var i = e ? t.textFill : t.fill;
return null != i && i !== hR;
}
function y_(t, e) {
var i = e ? t.textStroke : t.stroke;
return null != i && i !== hR;
}
function x_(t, e) {
e && __(t, 'transform', 'matrix(' + uR.call(e, ',') + ')');
}
function __(t, e, i) {
(!i || ('linear' !== i.type && 'radial' !== i.type)) &&
t.setAttribute(e, i);
}
function w_(t, e, i) {
t.setAttributeNS('http://www.w3.org/1999/xlink', e, i);
}
function b_(t, e, i, n) {
if (v_(e, i)) {
var o = i ? e.textFill : e.fill;
(o = 'transparent' === o ? hR : o),
'none' !== t.getAttribute('clip-path') &&
o === hR &&
(o = 'rgba(0, 0, 0, 0.002)'),
__(t, 'fill', o),
__(
t,
'fill-opacity',
null != e.fillOpacity ? e.fillOpacity * e.opacity : e.opacity,
);
} else __(t, 'fill', hR);
if (y_(e, i)) {
var a = i ? e.textStroke : e.stroke;
__(t, 'stroke', (a = 'transparent' === a ? hR : a)),
__(
t,
'stroke-width',
(i ? e.textStrokeWidth : e.lineWidth) /
(!i && e.strokeNoScale ? n.getLineScale() : 1),
),
__(t, 'paint-order', i ? 'stroke' : 'fill'),
__(
t,
'stroke-opacity',
null != e.strokeOpacity ? e.strokeOpacity : e.opacity,
),
e.lineDash
? (__(t, 'stroke-dasharray', e.lineDash.join(',')),
__(t, 'stroke-dashoffset', cR(e.lineDashOffset || 0)))
: __(t, 'stroke-dasharray', ''),
e.lineCap && __(t, 'stroke-linecap', e.lineCap),
e.lineJoin && __(t, 'stroke-linejoin', e.lineJoin),
e.miterLimit && __(t, 'stroke-miterlimit', e.miterLimit);
} else __(t, 'stroke', hR);
}
function S_(t) {
for (var e = [], i = t.data, n = t.len(), o = 0; o < n; ) {
var a = '',
r = 0;
switch (i[o++]) {
case lR.M:
(a = 'M'), (r = 2);
break;
case lR.L:
(a = 'L'), (r = 2);
break;
case lR.Q:
(a = 'Q'), (r = 4);
break;
case lR.C:
(a = 'C'), (r = 6);
break;
case lR.A:
var s = i[o++],
l = i[o++],
u = i[o++],
h = i[o++],
c = i[o++],
d = i[o++],
f = i[o++],
p = i[o++],
g = Math.abs(d),
m = m_(g - gR) && !m_(g),
v = !1;
v = g >= gR || (!m_(g) && ((d > -pR && d < 0) || d > pR) == !!p);
var y = g_(s + u * fR(c)),
x = g_(l + h * dR(c));
m &&
((d = p ? gR - 1e-4 : 1e-4 - gR),
(v = !0),
9 === o && e.push('M', y, x));
var _ = g_(s + u * fR(c + d)),
w = g_(l + h * dR(c + d));
e.push('A', g_(u), g_(h), cR(f * mR), +v, +p, _, w);
break;
case lR.Z:
a = 'Z';
break;
case lR.R:
var _ = g_(i[o++]),
w = g_(i[o++]),
b = g_(i[o++]),
S = g_(i[o++]);
e.push(
'M',
_,
w,
'L',
_ + b,
w,
'L',
_ + b,
w + S,
'L',
_,
w + S,
'L',
_,
w,
);
}
a && e.push(a);
for (var M = 0; M < r; M++) e.push(g_(i[o++]));
}
return e.join(' ');
}
function M_(t) {
return 'middle' === t
? 'middle'
: 'bottom' === t
? 'after-edge'
: 'hanging';
}
function I_() {}
function T_(t, e, i, n) {
for (var o = 0, a = e.length, r = 0, s = 0; o < a; o++) {
var l = e[o];
if (l.removed) {
for (var u = [], h = s; h < s + l.count; h++) u.push(h);
(l.indices = u), (s += l.count);
} else {
for (var u = [], h = r; h < r + l.count; h++) u.push(h);
(l.indices = u), (r += l.count), l.added || (s += l.count);
}
}
return e;
}
function A_(t) {
return { newPos: t.newPos, components: t.components.slice(0) };
}
function D_(t, e, i, n, o) {
(this._zrId = t),
(this._svgRoot = e),
(this._tagNames = 'string' == typeof i ? [i] : i),
(this._markLabel = n),
(this._domName = o || '_dom'),
(this.nextId = 0);
}
function C_(t, e) {
D_.call(
this,
t,
e,
['linearGradient', 'radialGradient'],
'__gradient_in_use__',
);
}
function L_(t, e) {
D_.call(this, t, e, 'clipPath', '__clippath_in_use__');
}
function k_(t, e) {
D_.call(this, t, e, ['filter'], '__filter_in_use__', '_shadowDom');
}
function P_(t) {
return (
t &&
(t.shadowBlur ||
t.shadowOffsetX ||
t.shadowOffsetY ||
t.textShadowBlur ||
t.textShadowOffsetX ||
t.textShadowOffsetY)
);
}
function N_(t) {
return parseInt(t, 10);
}
function O_(t) {
return t instanceof Pn
? yR
: t instanceof fi
? xR
: t instanceof rM
? _R
: yR;
}
function E_(t, e) {
return e && t && e.parentNode !== t;
}
function R_(t, e, i) {
if (E_(t, e) && i) {
var n = i.nextSibling;
n ? t.insertBefore(e, n) : t.appendChild(e);
}
}
function z_(t, e) {
if (E_(t, e)) {
var i = t.firstChild;
i ? t.insertBefore(e, i) : t.appendChild(e);
}
}
function B_(t, e) {
e && t && e.parentNode === t && t.removeChild(e);
}
function V_(t) {
return t.__textSvgEl;
}
function G_(t) {
return t.__svgEl;
}
function F_(t) {
return function () {
Yw('In SVG mode painter not support method "' + t + '"');
};
}
var W_ = 2311,
H_ = function () {
return W_++;
},
Z_ = {},
U_ = (Z_ =
'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,
}
: (function (t) {
var e = {},
i = {},
n = t.match(/Firefox\/([\d.]+)/),
o =
t.match(/MSIE\s([\d.]+)/) ||
t.match(/Trident\/.+?rv:(([\d.]+))/),
a = t.match(/Edge\/([\d.]+)/),
r = /micromessenger/i.test(t);
return (
n && ((i.firefox = !0), (i.version = n[1])),
o && ((i.ie = !0), (i.version = o[1])),
a && ((i.edge = !0), (i.version = a[1])),
r && (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,
}
);
})(navigator.userAgent)),
X_ = {
'[object Function]': 1,
'[object RegExp]': 1,
'[object Date]': 1,
'[object Error]': 1,
'[object CanvasGradient]': 1,
'[object CanvasPattern]': 1,
'[object Image]': 1,
'[object Canvas]': 1,
},
j_ = {
'[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,
},
Y_ = Object.prototype.toString,
q_ = Array.prototype,
K_ = q_.forEach,
$_ = q_.filter,
J_ = q_.slice,
Q_ = q_.map,
tw = q_.reduce,
ew = {},
iw = function () {
return ew.createCanvas();
};
ew.createCanvas = function () {
return document.createElement('canvas');
};
var nw,
ow = '__ec_primitive__';
E.prototype = {
constructor: E,
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 = m(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 aw = (Object.freeze || Object)({
$override: e,
clone: i,
merge: n,
mergeAll: o,
extend: a,
defaults: r,
createCanvas: iw,
getContext: s,
indexOf: l,
inherits: u,
mixin: h,
isArrayLike: c,
each: d,
map: f,
reduce: p,
filter: g,
find: function (t, e, i) {
if (t && e)
for (var n = 0, o = t.length; n < o; n++)
if (e.call(i, t[n], n, t)) return t[n];
},
bind: m,
curry: v,
isArray: y,
isFunction: x,
isString: _,
isObject: w,
isBuiltInObject: b,
isTypedArray: S,
isDom: M,
eqNaN: I,
retrieve: T,
retrieve2: A,
retrieve3: D,
slice: C,
normalizeCssArray: L,
assert: k,
trim: P,
setAsPrimitive: N,
isPrimitive: O,
createHashMap: R,
concatArray: z,
noop: B,
}),
rw = 'undefined' == typeof Float32Array ? Array : Float32Array,
sw = X,
lw = j,
uw = K,
hw = $,
cw = (Object.freeze || Object)({
create: V,
copy: G,
clone: F,
set: W,
add: H,
scaleAndAdd: Z,
sub: U,
len: X,
length: sw,
lenSquare: j,
lengthSquare: lw,
mul: function (t, e, i) {
return (t[0] = e[0] * i[0]), (t[1] = e[1] * i[1]), t;
},
div: function (t, e, i) {
return (t[0] = e[0] / i[0]), (t[1] = e[1] / i[1]), t;
},
dot: function (t, e) {
return t[0] * e[0] + t[1] * e[1];
},
scale: Y,
normalize: q,
distance: K,
dist: uw,
distanceSquare: $,
distSquare: hw,
negate: function (t, e) {
return (t[0] = -e[0]), (t[1] = -e[1]), t;
},
lerp: J,
applyTransform: Q,
min: tt,
max: et,
});
it.prototype = {
constructor: it,
_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(nt(e, t), 'dragstart', t.event));
},
_drag: function (t) {
var e = this._draggingTarget;
if (e) {
var i = t.offsetX,
n = t.offsetY,
o = i - this._x,
a = n - this._y;
(this._x = i),
(this._y = n),
e.drift(o, a, t),
this.dispatchToElement(nt(e, t), 'drag', t.event);
var r = this.findHover(i, n, e).target,
s = this._dropTarget;
(this._dropTarget = r),
e !== r &&
(s &&
r !== s &&
this.dispatchToElement(nt(s, t), 'dragleave', t.event),
r &&
r !== s &&
this.dispatchToElement(nt(r, t), 'dragenter', t.event));
}
},
_dragEnd: function (t) {
var e = this._draggingTarget;
e && (e.dragging = !1),
this.dispatchToElement(nt(e, t), 'dragend', t.event),
this._dropTarget &&
this.dispatchToElement(nt(this._dropTarget, t), 'drop', t.event),
(this._draggingTarget = null),
(this._dropTarget = null);
},
};
var dw = Array.prototype.slice,
fw = function (t) {
(this._$handlers = {}), (this._$eventProcessor = t);
};
fw.prototype = {
constructor: fw,
one: function (t, e, i, n) {
return at(this, t, e, i, n, !0);
},
on: function (t, e, i, n) {
return at(this, t, e, i, n, !1);
},
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 = [], o = 0, a = i[t].length; o < a; o++)
i[t][o].h !== e && n.push(i[t][o]);
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,
o = n.length;
o > 3 && (n = dw.call(n, 1));
for (var a = e.length, r = 0; r < a; ) {
var s = e[r];
if (i && i.filter && null != s.query && !i.filter(t, s.query)) r++;
else {
switch (o) {
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(r, 1), a--) : r++;
}
}
}
return i && i.afterTrigger && i.afterTrigger(t), this;
},
triggerWithContext: function (t) {
var e = this._$handlers[t],
i = this._$eventProcessor;
if (e) {
var n = arguments,
o = n.length;
o > 4 && (n = dw.call(n, 1, n.length - 1));
for (var a = n[n.length - 1], r = e.length, s = 0; s < r; ) {
var l = e[s];
if (i && i.filter && null != l.query && !i.filter(t, l.query)) s++;
else {
switch (o) {
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), r--) : s++;
}
}
}
return i && i.afterTrigger && i.afterTrigger(t), this;
},
};
var pw = 'undefined' != typeof window && !!window.addEventListener,
gw = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
mw = pw
? function (t) {
t.preventDefault(), t.stopPropagation(), (t.cancelBubble = !0);
}
: function (t) {
(t.returnValue = !1), (t.cancelBubble = !0);
},
vw = function () {
this._track = [];
};
vw.prototype = {
constructor: vw,
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 o = { points: [], touches: [], target: e, event: t },
a = 0,
r = n.length;
a < r;
a++
) {
var s = n[a],
l = st(i, s, {});
o.points.push([l.zrX, l.zrY]), o.touches.push(s);
}
this._track.push(o);
}
},
_recognize: function (t) {
for (var e in yw)
if (yw.hasOwnProperty(e)) {
var i = yw[e](this._track, t);
if (i) return i;
}
},
};
var yw = {
pinch: function (t, e) {
var i = t.length;
if (i) {
var n = (t[i - 1] || {}).points,
o = (t[i - 2] || {}).points || n;
if (o && o.length > 1 && n && n.length > 1) {
var a = ft(n) / ft(o);
!isFinite(a) && (a = 1), (e.pinchScale = a);
var r = pt(n);
return (
(e.pinchX = r[0]),
(e.pinchY = r[1]),
{ type: 'pinch', target: t[0].target, event: e }
);
}
}
},
},
xw = 'silent';
vt.prototype.dispose = function () {};
var _w = [
'click',
'dblclick',
'mousewheel',
'mouseout',
'mouseup',
'mousedown',
'mousemove',
'contextmenu',
],
ww = function (t, e, i, n) {
fw.call(this),
(this.storage = t),
(this.painter = e),
(this.painterRoot = n),
(i = i || new vt()),
(this.proxy = null),
(this._hovered = {}),
this._lastTouchMoment,
this._lastX,
this._lastY,
this._gestureMgr,
it.call(this),
this.setHandlerProxy(i);
};
(ww.prototype = {
constructor: ww,
setHandlerProxy: function (t) {
this.proxy && this.proxy.dispose(),
t &&
(d(
_w,
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,
o = n.target;
o && !o.__zr && (o = (n = this.findHover(n.x, n.y)).target);
var a = (this._hovered = this.findHover(e, i)),
r = a.target,
s = this.proxy;
s.setCursor && s.setCursor(r ? r.cursor : 'default'),
o && r !== o && this.dispatchToElement(n, 'mouseout', t),
this.dispatchToElement(a, 'mousemove', t),
r && r !== o && 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 (t) {
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) {
var n = (t = t || {}).target;
if (!n || !n.silent) {
for (
var o = 'on' + e, a = gt(e, t, i);
n &&
(n[o] && (a.cancelBubble = n[o].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[o] && t[o].call(t, a),
t.trigger && t.trigger(e, a);
}));
}
},
findHover: function (t, e, i) {
for (
var n = this.storage.getDisplayList(),
o = { x: t, y: e },
a = n.length - 1;
a >= 0;
a--
) {
var r;
if (
n[a] !== i &&
!n[a].ignore &&
(r = yt(n[a], t, e)) &&
(!o.topTarget && (o.topTarget = n[a]), r !== xw)
) {
o.target = n[a];
break;
}
}
return o;
},
processGesture: function (t, e) {
this._gestureMgr || (this._gestureMgr = new vw());
var i = this._gestureMgr;
'start' === e && i.clear();
var n = i.recognize(
t,
this.findHover(t.zrX, t.zrY, null).target,
this.proxy.dom,
);
if (('end' === e && i.clear(), n)) {
var o = n.type;
(t.gestureEvent = o),
this.dispatchToElement({ target: n.target }, o, n.event);
}
},
}),
d(
[
'click',
'mousedown',
'mouseup',
'mousewheel',
'dblclick',
'contextmenu',
],
function (t) {
ww.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 ||
uw(this._downPoint, [e.zrX, e.zrY]) > 4
)
return;
this._downPoint = null;
}
this.dispatchToElement(i, t, e);
};
},
),
h(ww, fw),
h(ww, it);
var bw = 'undefined' == typeof Float32Array ? Array : Float32Array,
Sw = (Object.freeze || Object)({
create: xt,
identity: _t,
copy: wt,
mul: bt,
translate: St,
rotate: Mt,
scale: It,
invert: Tt,
clone: At,
}),
Mw = _t,
Iw = 5e-5,
Tw = function (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);
},
Aw = Tw.prototype;
(Aw.transform = null),
(Aw.needLocalTransform = function () {
return (
Dt(this.rotation) ||
Dt(this.position[0]) ||
Dt(this.position[1]) ||
Dt(this.scale[0] - 1) ||
Dt(this.scale[1] - 1)
);
});
var Dw = [];
(Aw.updateTransform = function () {
var t = this.parent,
e = t && t.transform,
i = this.needLocalTransform(),
n = this.transform;
if (i || e) {
(n = n || xt()),
i ? this.getLocalTransform(n) : Mw(n),
e && (i ? bt(n, t.transform, n) : wt(n, t.transform)),
(this.transform = n);
var o = this.globalScaleRatio;
if (null != o && 1 !== o) {
this.getGlobalScale(Dw);
var a = Dw[0] < 0 ? -1 : 1,
r = Dw[1] < 0 ? -1 : 1,
s = ((Dw[0] - a) * o + a) / Dw[0] || 0,
l = ((Dw[1] - r) * o + r) / Dw[1] || 0;
(n[0] *= s), (n[1] *= s), (n[2] *= l), (n[3] *= l);
}
(this.invTransform = this.invTransform || xt()), Tt(this.invTransform, n);
} else n && Mw(n);
}),
(Aw.getLocalTransform = function (t) {
return Tw.getLocalTransform(this, t);
}),
(Aw.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);
}),
(Aw.restoreTransform = function (t) {
var e = t.dpr || 1;
t.setTransform(e, 0, 0, e, 0, 0);
});
var Cw = [],
Lw = xt();
(Aw.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,
o = this.scale;
Dt(e - 1) && (e = Math.sqrt(e)),
Dt(i - 1) && (i = Math.sqrt(i)),
t[0] < 0 && (e = -e),
t[3] < 0 && (i = -i),
(n[0] = t[4]),
(n[1] = t[5]),
(o[0] = e),
(o[1] = i),
(this.rotation = Math.atan2(-t[1] / i, t[0] / e));
}
}),
(Aw.decomposeTransform = function () {
if (this.transform) {
var t = this.parent,
e = this.transform;
t && t.transform && (bt(Cw, t.invTransform, e), (e = Cw));
var i = this.origin;
i &&
(i[0] || i[1]) &&
((Lw[4] = i[0]),
(Lw[5] = i[1]),
bt(Cw, e, Lw),
(Cw[4] -= i[0]),
(Cw[5] -= i[1]),
(e = Cw)),
this.setLocalTransform(e);
}
}),
(Aw.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)
);
}),
(Aw.transformCoordToLocal = function (t, e) {
var i = [t, e],
n = this.invTransform;
return n && Q(i, i, n), i;
}),
(Aw.transformCoordToGlobal = function (t, e) {
var i = [t, e],
n = this.transform;
return n && Q(i, i, n), i;
}),
(Tw.getLocalTransform = function (t, e) {
Mw((e = e || []));
var i = t.origin,
n = t.scale || [1, 1],
o = t.rotation || 0,
a = t.position || [0, 0];
return (
i && ((e[4] -= i[0]), (e[5] -= i[1])),
It(e, e, n),
o && Mt(e, e, o),
i && ((e[4] += i[0]), (e[5] += i[1])),
(e[4] += a[0]),
(e[5] += a[1]),
e
);
});
var kw = {
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 ? 0.5 * t * t : -0.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 ? 0.5 * t * t * t : 0.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
? 0.5 * t * t * t * t
: -0.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
? 0.5 * t * t * t * t * t
: 0.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 0.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
? 0.5 * Math.pow(1024, t - 1)
: 0.5 * (2 - Math.pow(2, -10 * (t - 1)));
},
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
? -0.5 * (Math.sqrt(1 - t * t) - 1)
: 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);
},
elasticIn: function (t) {
var e,
i = 0.1;
return 0 === t
? 0
: 1 === t
? 1
: (!i || i < 1
? ((i = 1), (e = 0.1))
: (e = (0.4 * Math.asin(1 / i)) / (2 * Math.PI)),
-i *
Math.pow(2, 10 * (t -= 1)) *
Math.sin(((t - e) * (2 * Math.PI)) / 0.4));
},
elasticOut: function (t) {
var e,
i = 0.1;
return 0 === t
? 0
: 1 === t
? 1
: (!i || i < 1
? ((i = 1), (e = 0.1))
: (e = (0.4 * Math.asin(1 / i)) / (2 * Math.PI)),
i * Math.pow(2, -10 * t) * Math.sin(((t - e) * (2 * Math.PI)) / 0.4) +
1);
},
elasticInOut: function (t) {
var e,
i = 0.1;
return 0 === t
? 0
: 1 === t
? 1
: (!i || i < 1
? ((i = 1), (e = 0.1))
: (e = (0.4 * Math.asin(1 / i)) / (2 * Math.PI)),
(t *= 2) < 1
? i *
Math.pow(2, 10 * (t -= 1)) *
Math.sin(((t - e) * (2 * Math.PI)) / 0.4) *
-0.5
: i *
Math.pow(2, -10 * (t -= 1)) *
Math.sin(((t - e) * (2 * Math.PI)) / 0.4) *
0.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
? t * t * ((e + 1) * t - e) * 0.5
: 0.5 * ((t -= 2) * t * ((e + 1) * t + e) + 2);
},
bounceIn: function (t) {
return 1 - kw.bounceOut(1 - t);
},
bounceOut: function (t) {
return t < 1 / 2.75
? 7.5625 * t * t
: t < 2 / 2.75
? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75
: t < 2.5 / 2.75
? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375
: 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375;
},
bounceInOut: function (t) {
return t < 0.5
? 0.5 * kw.bounceIn(2 * t)
: 0.5 * kw.bounceOut(2 * t - 1) + 0.5;
},
};
Ct.prototype = {
constructor: Ct,
step: function (t, e) {
if (
(this._initialized ||
((this._startTime = t + this._delay), (this._initialized = !0)),
this._paused)
)
this._pausedTime += e;
else {
var i = (t - this._startTime - this._pausedTime) / this._life;
if (!(i < 0)) {
i = Math.min(i, 1);
var n = this.easing,
o = 'string' == typeof n ? kw[n] : n,
a = 'function' == typeof o ? o(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) {
this[(t = 'on' + t)] && this[t](this._target, e);
},
pause: function () {
this._paused = !0;
},
resume: function () {
this._paused = !1;
},
};
var Pw = function () {
(this.head = null), (this.tail = null), (this._len = 0);
},
Nw = Pw.prototype;
(Nw.insert = function (t) {
var e = new Ow(t);
return this.insertEntry(e), e;
}),
(Nw.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++;
}),
(Nw.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--;
}),
(Nw.len = function () {
return this._len;
}),
(Nw.clear = function () {
(this.head = this.tail = null), (this._len = 0);
});
var Ow = function (t) {
(this.value = t), this.next, this.prev;
},
Ew = function (t) {
(this._list = new Pw()),
(this._map = {}),
(this._maxSize = t || 10),
(this._lastRemovedEntry = null);
},
Rw = Ew.prototype;
(Rw.put = function (t, e) {
var i = this._list,
n = this._map,
o = null;
if (null == n[t]) {
var a = i.len(),
r = this._lastRemovedEntry;
if (a >= this._maxSize && a > 0) {
var s = i.head;
i.remove(s),
delete n[s.key],
(o = s.value),
(this._lastRemovedEntry = s);
}
r ? (r.value = e) : (r = new Ow(e)),
(r.key = t),
i.insertEntry(r),
(n[t] = r);
}
return o;
}),
(Rw.get = function (t) {
var e = this._map[t],
i = this._list;
if (null != e)
return e !== i.tail && (i.remove(e), i.insertEntry(e)), e.value;
}),
(Rw.clear = function () {
this._list.clear(), (this._map = {});
});
var zw = {
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],
},
Bw = new Ew(20),
Vw = null,
Gw = Ut,
Fw = Xt,
Ww = (Object.freeze || Object)({
parse: Gt,
lift: Ht,
toHex: Zt,
fastLerp: Ut,
fastMapToColor: Gw,
lerp: Xt,
mapToColor: Fw,
modifyHSL: jt,
modifyAlpha: Yt,
stringify: qt,
}),
Hw = Array.prototype.slice,
Zw = function (t, e, i, n) {
(this._tracks = {}),
(this._target = t),
(this._loop = e || !1),
(this._getter = i || Kt),
(this._setter = n || $t),
(this._clipCount = 0),
(this._delay = 0),
(this._doneList = []),
(this._onframeList = []),
(this._clipList = []);
};
Zw.prototype = {
when: function (t, e) {
var i = this._tracks;
for (var n in e)
if (e.hasOwnProperty(n)) {
if (!i[n]) {
i[n] = [];
var o = this._getter(this._target, n);
if (null == o) continue;
0 !== t && i[n].push({ time: 0, value: ae(o) });
}
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; i < e; i++)
t[i].call(this);
},
start: function (t, e) {
var i,
n = this,
o = 0;
for (var a in this._tracks)
if (this._tracks.hasOwnProperty(a)) {
var r = le(
this,
t,
function () {
--o || n._doneCallback();
},
this._tracks[a],
a,
e,
);
r &&
(this._clipList.push(r),
o++,
this.animation && this.animation.addClip(r),
(i = r));
}
if (i) {
var s = i.onframe;
i.onframe = function (t, e) {
s(t, e);
for (var i = 0; i < n._onframeList.length; i++)
n._onframeList[i](t, e);
};
}
return o || this._doneCallback(), this;
},
stop: function (t) {
for (
var e = this._clipList, i = this.animation, n = 0;
n < e.length;
n++
) {
var o = e[n];
t && o.onframe(this._target, 1), i && i.removeClip(o);
}
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 Uw = 1;
'undefined' != typeof window &&
(Uw = Math.max(window.devicePixelRatio || 1, 1));
var Xw = Uw,
jw = function () {},
Yw = jw,
qw = function () {
this.animators = [];
};
qw.prototype = {
constructor: qw,
animate: function (t, e) {
var i,
n = !1,
o = this,
a = this.__zr;
if (t) {
var r = t.split('.'),
s = o;
n = 'shape' === r[0];
for (var u = 0, h = r.length; u < h; u++) s && (s = s[r[u]]);
s && (i = s);
} else i = o;
if (i) {
var c = o.animators,
d = new Zw(i, e);
return (
d
.during(function (t) {
o.dirty(n);
})
.done(function () {
c.splice(l(c, d), 1);
}),
c.push(d),
a && a.animation.addAnimator(d),
d
);
}
Yw('Property "' + t + '" is not existed in element ' + o.id);
},
stopAnimation: function (t) {
for (var e = this.animators, i = e.length, n = 0; n < i; n++)
e[n].stop(t);
return (e.length = 0), this;
},
animateTo: function (t, e, i, n, o, a) {
ue(this, t, e, i, n, o, a);
},
animateFrom: function (t, e, i, n, o, a) {
ue(this, t, e, i, n, o, a, !0);
},
};
var Kw = function (t) {
Tw.call(this, t),
fw.call(this, t),
qw.call(this, t),
(this.id = t.id || H_());
};
(Kw.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 (t, e) {},
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 (w(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);
},
}),
h(Kw, qw),
h(Kw, Tw),
h(Kw, fw);
var $w = Q,
Jw = Math.min,
Qw = Math.max;
(de.prototype = {
constructor: de,
union: function (t) {
var e = Jw(t.x, this.x),
i = Jw(t.y, this.y);
(this.width = Qw(t.x + t.width, this.x + this.width) - e),
(this.height = Qw(t.y + t.height, this.y + this.height) - i),
(this.x = e),
(this.y = i);
},
applyTransform: (function () {
var t = [],
e = [],
i = [],
n = [];
return function (o) {
if (o) {
(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),
$w(t, t, o),
$w(e, e, o),
$w(i, i, o),
$w(n, n, o),
(this.x = Jw(t[0], e[0], i[0], n[0])),
(this.y = Jw(t[1], e[1], i[1], n[1]));
var a = Qw(t[0], e[0], i[0], n[0]),
r = Qw(t[1], e[1], i[1], n[1]);
(this.width = a - this.x), (this.height = r - this.y);
}
};
})(),
calculateTransform: function (t) {
var e = this,
i = t.width / e.width,
n = t.height / e.height,
o = xt();
return St(o, o, [-e.x, -e.y]), It(o, o, [i, n]), St(o, o, [t.x, t.y]), o;
},
intersect: function (t) {
if (!t) return !1;
t instanceof de || (t = de.create(t));
var e = this,
i = e.x,
n = e.x + e.width,
o = e.y,
a = e.y + e.height,
r = t.x,
s = t.x + t.width,
l = t.y,
u = t.y + t.height;
return !(n < r || s < i || a < l || u < o);
},
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 de(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 };
},
}),
(de.create = function (t) {
return new de(t.x, t.y, t.width, t.height);
});
var tb = function (t) {
(t = t || {}), Kw.call(this, t);
for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]);
(this._children = []), (this.__storage = null), (this.__dirty = !0);
};
(tb.prototype = {
constructor: tb,
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 tb && t.addChildrenToStorage(e)),
i && i.refresh();
},
remove: function (t) {
var e = this.__zr,
i = this.__storage,
n = this._children,
o = l(n, t);
return o < 0
? this
: (n.splice(o, 1),
(t.parent = null),
i &&
(i.delFromStorage(t),
t instanceof tb && 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 tb && 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 o = i[n];
t.call(e, o, 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 tb && 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 tb && i.delChildrenFromStorage(t);
}
},
dirty: function () {
return (this.__dirty = !0), this.__zr && this.__zr.refresh(), this;
},
getBoundingRect: function (t) {
for (
var e = null,
i = new de(0, 0, 0, 0),
n = t || this._children,
o = [],
a = 0;
a < n.length;
a++
) {
var r = n[a];
if (!r.ignore && !r.invisible) {
var s = r.getBoundingRect(),
l = r.getLocalTransform(o);
l
? (i.copy(s), i.applyTransform(l), (e = e || i.clone()).union(i))
: (e = e || s.clone()).union(s);
}
}
return e || i;
},
}),
u(tb, Kw);
var eb = 32,
ib = 7,
nb = function () {
(this._roots = []), (this._displayList = []), (this._displayListLen = 0);
};
nb.prototype = {
constructor: nb,
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, o = e.length;
n < o;
n++
)
this._updateAndAddDisplayable(e[n], null, t);
(i.length = this._displayListLen), U_.canvasSupported && _e(i, we);
},
_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 o = n, a = t; o; )
(o.parent = a),
o.updateTransform(),
e.push(o),
(a = o),
(o = o.clipPath);
}
if (t.isGroup) {
for (var r = t._children, s = 0; s < r.length; s++) {
var l = r[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 tb && t.addChildrenToStorage(this),
this.addToStorage(t),
this._roots.push(t));
},
delRoot: function (t) {
if (null == t) {
for (i = 0; i < this._roots.length; i++) {
var e = this._roots[i];
e instanceof tb && e.delChildrenFromStorage(this);
}
return (
(this._roots = []),
(this._displayList = []),
void (this._displayListLen = 0)
);
}
if (t instanceof Array)
for (var i = 0, n = t.length; i < n; i++) this.delRoot(t[i]);
else {
var o = l(this._roots, t);
o >= 0 &&
(this.delFromStorage(t),
this._roots.splice(o, 1),
t instanceof tb && 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: we,
};
var ob = {
shadowBlur: 1,
shadowOffsetX: 1,
shadowOffsetY: 1,
textShadowBlur: 1,
textShadowOffsetX: 1,
textShadowOffsetY: 1,
textBoxShadowBlur: 1,
textBoxShadowOffsetX: 1,
textBoxShadowOffsetY: 1,
},
ab = function (t, e, i) {
return ob.hasOwnProperty(e) ? (i *= t.dpr) : i;
},
rb = { NONE: 0, STYLE_BIND: 1, PLAIN_TEXT: 2 },
sb = 9,
lb = [
['shadowBlur', 0],
['shadowOffsetX', 0],
['shadowOffsetY', 0],
['shadowColor', '#000'],
['lineCap', 'butt'],
['lineJoin', 'miter'],
['miterLimit', 10],
],
ub = function (t) {
this.extendFrom(t, !1);
};
ub.prototype = {
constructor: ub,
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) {
var n = this,
o = i && i.style,
a = !o || t.__attrCachedBy !== rb.STYLE_BIND;
t.__attrCachedBy = rb.STYLE_BIND;
for (var r = 0; r < lb.length; r++) {
var s = lb[r],
l = s[0];
(a || n[l] !== o[l]) && (t[l] = ab(t, l, n[l] || s[1]));
}
if (
((a || n.fill !== o.fill) && (t.fillStyle = n.fill),
(a || n.stroke !== o.stroke) && (t.strokeStyle = n.stroke),
(a || n.opacity !== o.opacity) &&
(t.globalAlpha = null == n.opacity ? 1 : n.opacity),
(a || n.blend !== o.blend) &&
(t.globalCompositeOperation = n.blend || 'source-over'),
this.hasStroke())
) {
var u = n.lineWidth;
t.lineWidth =
u /
(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) ||
(!0 !== e && (!1 === e ? 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 ? Se : be)(t, e, i),
o = e.colorStops,
a = 0;
a < o.length;
a++
)
n.addColorStop(o[a].offset, o[a].color);
return n;
},
};
for (var hb = ub.prototype, cb = 0; cb < lb.length; cb++) {
var db = lb[cb];
db[0] in hb || (hb[db[0]] = db[1]);
}
ub.getGradient = hb.getGradient;
var fb = function (t, e) {
(this.image = t), (this.repeat = e), (this.type = 'pattern');
};
fb.prototype.getCanvasPattern = function (t) {
return t.createPattern(this.image, this.repeat || 'repeat');
};
var pb = function (t, e, i) {
var n;
(i = i || Xw),
'string' == typeof t ? (n = Ie(t, e, i)) : w(t) && (t = (n = t).id),
(this.id = t),
(this.dom = n);
var o = n.style;
o &&
((n.onselectstart = Me),
(o['-webkit-user-select'] = 'none'),
(o['user-select'] = 'none'),
(o['-webkit-touch-callout'] = 'none'),
(o['-webkit-tap-highlight-color'] = 'rgba(0,0,0,0)'),
(o.padding = 0),
(o.margin = 0),
(o['border-width'] = 0)),
(this.domBack = null),
(this.ctxBack = null),
(this.painter = e),
(this.config = null),
(this.clearColor = 0),
(this.motionBlur = !1),
(this.lastFrameAlpha = 0.7),
(this.dpr = i);
};
pb.prototype = {
constructor: pb,
__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 = Ie('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,
o = n.style,
a = this.domBack;
o && ((o.width = t + 'px'), (o.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,
o = i.width,
a = i.height,
e = e || this.clearColor,
r = this.motionBlur && !t,
s = this.lastFrameAlpha,
l = this.dpr;
if (
(r &&
(this.domBack || this.createBackBuffer(),
(this.ctxBack.globalCompositeOperation = 'copy'),
this.ctxBack.drawImage(i, 0, 0, o / l, a / l)),
n.clearRect(0, 0, o, a),
e && 'transparent' !== e)
) {
var u;
e.colorStops
? ((u =
e.__canvasGradient ||
ub.getGradient(n, e, { x: 0, y: 0, width: o, height: a })),
(e.__canvasGradient = u))
: e.image && (u = fb.prototype.getCanvasPattern.call(e, n)),
n.save(),
(n.fillStyle = u || e),
n.fillRect(0, 0, o, a),
n.restore();
}
if (r) {
var h = this.domBack;
n.save(), (n.globalAlpha = s), n.drawImage(h, 0, 0, o, a), n.restore();
}
},
};
var gb =
('undefined' != typeof window &&
((window.requestAnimationFrame &&
window.requestAnimationFrame.bind(window)) ||
(window.msRequestAnimationFrame &&
window.msRequestAnimationFrame.bind(window)) ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame)) ||
function (t) {
setTimeout(t, 16);
},
mb = new Ew(50),
vb = {},
yb = 0,
xb = 5e3,
_b = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g,
wb = '12px sans-serif',
bb = {};
bb.measureText = function (t, e) {
var i = s();
return (i.font = e || wb), i.measureText(t);
};
var Sb = wb,
Mb = { left: 1, right: 1, center: 1 },
Ib = { top: 1, bottom: 1, middle: 1 },
Tb = [
['textShadowBlur', 'shadowBlur', 0],
['textShadowOffsetX', 'shadowOffsetX', 0],
['textShadowOffsetY', 'shadowOffsetY', 0],
['textShadowColor', 'shadowColor', 'transparent'],
],
Ab = new de(),
Db = function () {};
(Db.prototype = {
constructor: Db,
drawRectText: function (t, e) {
var i = this.style;
(e = i.textRect || e), this.__dirty && Ye(i);
var n = i.text;
if ((null != n && (n += ''), ci(n, i))) {
t.save();
var o = this.transform;
i.transformText
? this.setTransform(t)
: o && (Ab.copy(e), Ab.applyTransform(o), (e = Ab)),
Ke(this, t, n, i, e, sb),
t.restore();
}
},
}),
(di.prototype = {
constructor: di,
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 (t) {},
afterBrush: function (t) {},
brush: function (t, e) {},
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);
return this.getBoundingRect().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
? Kw.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 ub(t, this)), this.dirty(!1), this;
},
}),
u(di, Kw),
h(di, Db),
(fi.prototype = {
constructor: fi,
type: 'image',
brush: function (t, e) {
var i = this.style,
n = i.image;
i.bind(t, this, e);
var o = (this._image = Ae(n, this._image, this, this.onload));
if (o && Ce(o)) {
var a = i.x || 0,
r = i.y || 0,
s = i.width,
l = i.height,
u = o.width / o.height;
if (
(null == s && null != l
? (s = l * u)
: null == l && null != s
? (l = s / u)
: null == s && null == l && ((s = o.width), (l = o.height)),
this.setTransform(t),
i.sWidth && i.sHeight)
) {
var h = i.sx || 0,
c = i.sy || 0;
t.drawImage(o, h, c, i.sWidth, i.sHeight, a, r, s, l);
} else if (i.sx && i.sy) {
var d = s - (h = i.sx),
f = l - (c = i.sy);
t.drawImage(o, h, c, d, f, a, r, s, l);
} else t.drawImage(o, a, r, 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 de(
t.x || 0,
t.y || 0,
t.width || 0,
t.height || 0,
)),
this._rect
);
},
}),
u(fi, di);
var Cb = new de(0, 0, 0, 0),
Lb = new de(0, 0, 0, 0),
kb = function (t, e, i) {
this.type = 'canvas';
var n = !t.nodeName || 'CANVAS' === t.nodeName.toUpperCase();
(this._opts = i = a({}, i || {})),
(this.dpr = i.devicePixelRatio || Xw),
(this._singleCanvas = n),
(this.root = t);
var o = t.style;
o &&
((o['-webkit-tap-highlight-color'] = 'transparent'),
(o['-webkit-user-select'] = o['user-select'] = o[
'-webkit-touch-callout'
] = 'none'),
(t.innerHTML = '')),
(this.storage = e);
var r = (this._zlevelList = []),
s = (this._layers = {});
if (
((this._layerConfig = {}), (this._needsManuallyCompositing = !1), n)
) {
var l = t.width,
u = t.height;
null != i.width && (l = i.width),
null != i.height && (u = i.height),
(this.dpr = i.devicePixelRatio || 1),
(t.width = l * this.dpr),
(t.height = u * this.dpr),
(this._width = l),
(this._height = u);
var h = new pb(t, this, this.dpr);
(h.__builtin__ = !0),
h.initContext(),
(s[314159] = h),
(h.zlevel = 314159),
r.push(314159),
(this._domRoot = t);
} else {
(this._width = this._getSize(0)), (this._height = this._getSize(1));
var c = (this._domRoot = xi(this._width, this._height));
t.appendChild(c);
}
(this._hoverlayer = null), (this._hoverElements = []);
};
kb.prototype = {
constructor: kb,
getType: function () {
return 'canvas';
},
isSingleCanvas: function () {
return this._singleCanvas;
},
getViewportRoot: function () {
return this._domRoot;
},
getViewportRootOffset: function () {
var t = this.getViewportRoot();
if (t)
return { offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 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 o = i[n],
a = this._layers[o];
if (!a.__builtin__ && a.refresh) {
var r = 0 === n ? this._backgroundColor : null;
a.refresh(r);
}
}
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 = l(i, e);
n >= 0 && i.splice(n, 1), (t.__hoverMir = null);
},
clearHover: function (t) {
for (var e = this._hoverElements, i = 0; i < e.length; i++) {
var n = e[i].__from;
n && (n.__hoverMir = null);
}
e.length = 0;
},
refreshHover: function () {
var t = this._hoverElements,
e = t.length,
i = this._hoverlayer;
if ((i && i.clear(), e)) {
_e(t, this.storage.displayableSortFunc),
i || (i = this._hoverlayer = this.getLayer(1e5));
var n = {};
i.ctx.save();
for (var o = 0; o < e; ) {
var a = t[o],
r = a.__from;
r && r.__zr
? (o++,
r.invisible ||
((a.transform = r.transform),
(a.invTransform = r.invTransform),
(a.__clipPaths = r.__clipPaths),
this._doPaintEl(a, i, !0, n)))
: (t.splice(o, 1), (r.__hoverMir = null), e--);
}
i.ctx.restore();
}
},
getHoverLayer: function () {
return this.getLayer(1e5);
},
_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 o = this;
gb(function () {
o._paintList(t, e, i);
});
}
}
},
_compositeManually: function () {
var t = this.getLayer(314159).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 o = this._zlevelList[n];
(s = this._layers[o]).__builtin__ &&
s !== this._hoverlayer &&
(s.__dirty || e) &&
i.push(s);
}
for (var a = !0, r = 0; r < i.length; r++) {
var s = i[r],
l = s.ctx,
u = {};
l.save();
var h = e ? s.__startIndex : s.__drawIndex,
c = !e && s.incremental && Date.now,
f = c && Date.now(),
p = s.zlevel === this._zlevelList[0] ? this._backgroundColor : null;
if (s.__startIndex === s.__endIndex) s.clear(!1, p);
else if (h === s.__startIndex) {
var g = t[h];
(g.incremental && g.notClear && !e) || s.clear(!1, p);
}
-1 === h &&
(console.error('For some unknown reason. drawIndex is -1'),
(h = s.__startIndex));
for (var m = h; m < s.__endIndex; m++) {
var v = t[m];
if (
(this._doPaintEl(v, s, e, u),
(v.__dirty = v.__dirtyText = !1),
c && Date.now() - f > 15)
)
break;
}
(s.__drawIndex = m),
s.__drawIndex < s.__endIndex && (a = !1),
u.prevElClipPaths && l.restore(),
l.restore();
}
return (
U_.wxa &&
d(this._layers, function (t) {
t && t.ctx && t.ctx.draw && t.ctx.draw();
}),
a
);
},
_doPaintEl: function (t, e, i, n) {
var o = e.ctx,
a = t.transform;
if (
(e.__dirty || i) &&
!t.invisible &&
0 !== t.style.opacity &&
(!a || a[0] || a[3]) &&
(!t.culling || !mi(t, this._width, this._height))
) {
var r = t.__clipPaths;
(n.prevElClipPaths && !vi(r, n.prevElClipPaths)) ||
(n.prevElClipPaths &&
(e.ctx.restore(), (n.prevElClipPaths = null), (n.prevEl = null)),
r && (o.save(), yi(r, o), (n.prevElClipPaths = r))),
t.beforeBrush && t.beforeBrush(o),
t.brush(o, n.prevEl || null),
(n.prevEl = t),
t.afterBrush && t.afterBrush(o);
}
},
getLayer: function (t, e) {
this._singleCanvas && !this._needsManuallyCompositing && (t = 314159);
var i = this._layers[t];
return (
i ||
(((i = new pb('zr_' + t, this, this.dpr)).zlevel = t),
(i.__builtin__ = !0),
this._layerConfig[t] && n(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,
o = n.length,
a = null,
r = -1,
s = this._domRoot;
if (i[t]) Yw('ZLevel ' + t + ' has been used already');
else if (gi(e)) {
if (o > 0 && t > n[0]) {
for (r = 0; r < o - 1 && !(n[r] < t && n[r + 1] > t); r++);
a = i[n[r]];
}
if ((n.splice(r + 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);
} else Yw('Layer of zlevel ' + t + ' is not valid');
},
eachLayer: function (t, e) {
var i,
n,
o = this._zlevelList;
for (n = 0; n < o.length; n++) (i = o[n]), t.call(e, this._layers[i], i);
},
eachBuiltinLayer: function (t, e) {
var i,
n,
o,
a = this._zlevelList;
for (o = 0; o < a.length; o++)
(n = a[o]), (i = this._layers[n]).__builtin__ && t.call(e, i, n);
},
eachOtherLayer: function (t, e) {
var i,
n,
o,
a = this._zlevelList;
for (o = 0; o < a.length; o++)
(n = a[o]), (i = this._layers[n]).__builtin__ || t.call(e, i, n);
},
getLayers: function () {
return this._layers;
},
_updateLayerStatus: function (t) {
function e(t) {
i && (i.__endIndex !== t && (i.__dirty = !0), (i.__endIndex = t));
}
if (
(this.eachBuiltinLayer(function (t, e) {
t.__dirty = t.__used = !1;
}),
this._singleCanvas)
)
for (o = 1; o < t.length; o++)
if ((r = t[o]).zlevel !== t[o - 1].zlevel || r.incremental) {
this._needsManuallyCompositing = !0;
break;
}
for (var i = null, n = 0, o = 0; o < t.length; o++) {
var a,
r = t[o],
s = r.zlevel;
r.incremental
? (((a = this.getLayer(
s + 0.001,
this._needsManuallyCompositing,
)).incremental = !0),
(n = 1))
: (a = this.getLayer(
s + (n > 0 ? 0.01 : 0),
this._needsManuallyCompositing,
)),
a.__builtin__ ||
Yw('ZLevel ' + s + ' has been used by unkown layer ' + a.id),
a !== i &&
((a.__used = !0),
a.__startIndex !== o && (a.__dirty = !0),
(a.__startIndex = o),
a.incremental ? (a.__drawIndex = -1) : (a.__drawIndex = o),
e(o),
(i = a)),
r.__dirty &&
((a.__dirty = !0),
a.incremental && a.__drawIndex < 0 && (a.__drawIndex = o));
}
e(o),
this.eachBuiltinLayer(function (t, e) {
!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] ? n(i[t], e, !0) : (i[t] = e);
for (var o = 0; o < this._zlevelList.length; o++) {
var a = this._zlevelList[o];
(a !== t && a !== t + 0.01) || n(this._layers[a], 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(l(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 o in this._layers)
this._layers.hasOwnProperty(o) && this._layers[o].resize(t, e);
d(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(314159).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[314159].dom;
var e = new pb('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,
o = e.ctx;
this.eachLayer(function (t) {
t.__builtin__
? o.drawImage(t.dom, 0, 0, i, n)
: t.renderToCanvas &&
(e.ctx.save(), t.renderToCanvas(e.ctx), e.ctx.restore());
});
} else
for (
var a = {}, r = this.storage.getDisplayList(!0), s = 0;
s < r.length;
s++
) {
var l = r[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],
o = ['paddingLeft', 'paddingTop'][t],
a = ['paddingRight', 'paddingBottom'][t];
if (null != e[i] && 'auto' !== e[i]) return parseFloat(e[i]);
var r = this.root,
s = document.defaultView.getComputedStyle(r);
return (
((r[n] || pi(s[i]) || pi(r.style[i])) -
(pi(s[o]) || 0) -
(pi(s[a]) || 0)) |
0
);
},
pathToImage: function (t, e) {
e = e || this.dpr;
var i = document.createElement('canvas'),
n = i.getContext('2d'),
o = t.getBoundingRect(),
a = t.style,
r = a.shadowBlur * e,
s = a.shadowOffsetX * e,
l = a.shadowOffsetY * e,
u = a.hasStroke() ? a.lineWidth : 0,
h = Math.max(u / 2, -s + r),
c = Math.max(u / 2, s + r),
d = Math.max(u / 2, -l + r),
f = Math.max(u / 2, l + r),
p = o.width + h + c,
g = o.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 m = { position: t.position, rotation: t.rotation, scale: t.scale };
(t.position = [h - o.x, d - o.y]),
(t.rotation = 0),
(t.scale = [1, 1]),
t.updateTransform(),
t && t.brush(n);
var v = new fi({ style: { x: 0, y: 0, image: i } });
return (
null != m.position && (v.position = t.position = m.position),
null != m.rotation && (v.rotation = t.rotation = m.rotation),
null != m.scale && (v.scale = t.scale = m.scale),
v
);
},
};
var Pb = 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),
fw.call(this);
};
(Pb.prototype = {
constructor: Pb,
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 = l(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,
o = [],
a = [],
r = 0;
r < n;
r++
) {
var s = i[r],
l = s.step(t, e);
l && (o.push(l), a.push(s));
}
for (r = 0; r < n; )
i[r]._needsRemove ? ((i[r] = i[n - 1]), i.pop(), n--) : r++;
n = o.length;
for (r = 0; r < n; r++) a[r].fire(o[r]);
(this._time = t),
this.onframe(e),
this.trigger('frame', e),
this.stage.update && this.stage.update();
},
_startLoop: function () {
function t() {
e._running && (gb(t), !e._paused && e._update());
}
var e = this;
(this._running = !0), gb(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) {
var i = new Zw(t, (e = e || {}).loop, e.getter, e.setter);
return this.addAnimator(i), i;
},
}),
h(Pb, fw);
var Nb = [
'click',
'dblclick',
'mousewheel',
'mouseout',
'mouseup',
'mousedown',
'mousemove',
'contextmenu',
],
Ob = ['touchstart', 'touchend', 'touchmove'],
Eb = { pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1 },
Rb = f(Nb, function (t) {
var e = t.replace('mouse', 'pointer');
return Eb[e] ? e : t;
}),
zb = {
mousemove: function (t) {
(t = ut(this.dom, t)), this.trigger('mousemove', t);
},
mouseout: function (t) {
var e = (t = ut(this.dom, 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 = ut(this.dom, t)).zrByTouch = !0),
(this._lastTouchMoment = new Date()),
this.handler.processGesture(this, t, 'start'),
zb.mousemove.call(this, t),
zb.mousedown.call(this, t),
wi(this);
},
touchmove: function (t) {
((t = ut(this.dom, t)).zrByTouch = !0),
this.handler.processGesture(this, t, 'change'),
zb.mousemove.call(this, t),
wi(this);
},
touchend: function (t) {
((t = ut(this.dom, t)).zrByTouch = !0),
this.handler.processGesture(this, t, 'end'),
zb.mouseup.call(this, t),
+new Date() - this._lastTouchMoment < 300 && zb.click.call(this, t),
wi(this);
},
pointerdown: function (t) {
zb.mousedown.call(this, t);
},
pointermove: function (t) {
bi(t) || zb.mousemove.call(this, t);
},
pointerup: function (t) {
zb.mouseup.call(this, t);
},
pointerout: function (t) {
bi(t) || zb.mouseout.call(this, t);
},
};
d(
['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'],
function (t) {
zb[t] = function (e) {
(e = ut(this.dom, e)), this.trigger(t, e);
};
},
);
var Bb = Mi.prototype;
(Bb.dispose = function () {
for (var t = Nb.concat(Ob), e = 0; e < t.length; e++) {
var i = t[e];
ct(this.dom, _i(i), this._handlers[i]);
}
}),
(Bb.setCursor = function (t) {
this.dom.style && (this.dom.style.cursor = t || 'default');
}),
h(Mi, fw);
var Vb = !U_.canvasSupported,
Gb = { canvas: kb },
Fb = {},
Wb = function (t, e, i) {
(i = i || {}), (this.dom = e), (this.id = t);
var n = this,
o = new nb(),
a = i.renderer;
if (Vb) {
if (!Gb.vml)
throw new Error(
"You need to require 'zrender/vml/vml' to support IE8",
);
a = 'vml';
} else (a && Gb[a]) || (a = 'canvas');
var r = new Gb[a](e, o, i, t);
(this.storage = o), (this.painter = r);
var s = U_.node || U_.worker ? null : new Mi(r.getViewportRoot());
(this.handler = new ww(o, r, s, r.root)),
(this.animation = new Pb({ stage: { update: m(this.flush, this) } })),
this.animation.start(),
this._needsRefresh;
var l = o.delFromStorage,
u = o.addToStorage;
(o.delFromStorage = function (t) {
l.call(o, t), t && t.removeSelfFromZr(n);
}),
(o.addToStorage = function (t) {
u.call(o, t), t.addSelfToZr(n);
});
};
Wb.prototype = {
constructor: Wb,
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),
Ai(this.id);
},
};
var Hb = (Object.freeze || Object)({
version: '4.0.7',
init: Ii,
dispose: function (t) {
if (t) t.dispose();
else {
for (var e in Fb) Fb.hasOwnProperty(e) && Fb[e].dispose();
Fb = {};
}
return this;
},
getInstance: function (t) {
return Fb[t];
},
registerPainter: Ti,
}),
Zb = d,
Ub = w,
Xb = y,
jb = 'series\0',
Yb = [
'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',
],
qb = 0,
Kb = '.',
$b = '___EC__COMPONENT__CONTAINER___',
Jb = 0,
Qb = 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 o = {}, a = 0; a < t.length; a++) {
var r = t[a][1];
if (!((i && l(i, r) >= 0) || (n && l(n, r) < 0))) {
var s = e.getShallow(r);
null != s && (o[t[a][0]] = s);
}
}
return o;
};
},
tS = Qb([
['lineWidth', 'width'],
['stroke', 'color'],
['opacity'],
['shadowBlur'],
['shadowOffsetX'],
['shadowOffsetY'],
['shadowColor'],
]),
eS = {
getLineStyle: function (t) {
var e = tS(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];
},
},
iS = Qb([
['fill', 'color'],
['shadowBlur'],
['shadowOffsetX'],
['shadowOffsetY'],
['opacity'],
['shadowColor'],
]),
nS = {
getAreaStyle: function (t, e) {
return iS(this, t, e);
},
},
oS = Math.pow,
aS = Math.sqrt,
rS = 1e-8,
sS = 1e-4,
lS = aS(3),
uS = 1 / 3,
hS = V(),
cS = V(),
dS = V(),
fS = Math.min,
pS = Math.max,
gS = Math.sin,
mS = Math.cos,
vS = 2 * Math.PI,
yS = V(),
xS = V(),
_S = V(),
wS = [],
bS = [],
SS = { M: 1, L: 2, C: 3, Q: 4, A: 5, Z: 6, R: 7 },
MS = [],
IS = [],
TS = [],
AS = [],
DS = Math.min,
CS = Math.max,
LS = Math.cos,
kS = Math.sin,
PS = Math.sqrt,
NS = Math.abs,
OS = 'undefined' != typeof Float32Array,
ES = function (t) {
(this._saveData = !t),
this._saveData && (this.data = []),
(this._ctx = null);
};
(ES.prototype = {
constructor: ES,
_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 = NS(1 / Xw / t) || 0), (this._uy = NS(1 / Xw / 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(SS.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 =
NS(t - this._xi) > this._ux ||
NS(e - this._yi) > this._uy ||
this._len < 5;
return (
this.addData(SS.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, o, a) {
return (
this.addData(SS.C, t, e, i, n, o, a),
this._ctx &&
(this._needsDash()
? this._dashedBezierTo(t, e, i, n, o, a)
: this._ctx.bezierCurveTo(t, e, i, n, o, a)),
(this._xi = o),
(this._yi = a),
this
);
},
quadraticCurveTo: function (t, e, i, n) {
return (
this.addData(SS.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, o, a) {
return (
this.addData(SS.A, t, e, i, i, n, o - n, 0, a ? 0 : 1),
this._ctx && this._ctx.arc(t, e, i, n, o, a),
(this._xi = LS(o) * i + t),
(this._yi = kS(o) * i + e),
this
);
},
arcTo: function (t, e, i, n, o) {
return this._ctx && this._ctx.arcTo(t, e, i, n, o), this;
},
rect: function (t, e, i, n) {
return (
this._ctx && this._ctx.rect(t, e, i, n),
this.addData(SS.R, t, e, i, n),
this
);
},
closePath: function () {
this.addData(SS.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) ||
!OS ||
(this.data = new Float32Array(e));
for (var i = 0; i < e; 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, o = 0; o < e; o++)
i += t[o].len();
OS &&
this.data instanceof Float32Array &&
(this.data = new Float32Array(n + i));
for (o = 0; o < e; o++)
for (var a = t[o].data, r = 0; r < a.length; r++) this.data[n++] = a[r];
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,
o = this._dashSum,
a = this._dashOffset,
r = this._lineDash,
s = this._ctx,
l = this._xi,
u = this._yi,
h = t - l,
c = e - u,
d = PS(h * h + c * c),
f = l,
p = u,
g = r.length;
for (
h /= d, c /= d, a < 0 && (a = o + a), f -= (a %= o) * h, p -= a * c;
(h > 0 && f <= t) ||
(h < 0 && f >= t) ||
(0 === h && ((c > 0 && p <= e) || (c < 0 && p >= e)));
)
(f += h * (i = r[(n = this._dashIdx)])),
(p += c * i),
(this._dashIdx = (n + 1) % g),
(h > 0 && f < l) ||
(h < 0 && f > l) ||
(c > 0 && p < u) ||
(c < 0 && p > u) ||
s[n % 2 ? 'moveTo' : 'lineTo'](
h >= 0 ? DS(f, t) : CS(f, t),
c >= 0 ? DS(p, e) : CS(p, e),
);
(h = f - t), (c = p - e), (this._dashOffset = -PS(h * h + c * c));
},
_dashedBezierTo: function (t, e, i, n, o, a) {
var r,
s,
l,
u,
h,
c = this._dashSum,
d = this._dashOffset,
f = this._lineDash,
p = this._ctx,
g = this._xi,
m = this._yi,
v = tn,
y = 0,
x = this._dashIdx,
_ = f.length,
w = 0;
for (d < 0 && (d = c + d), d %= c, r = 0; r < 1; r += 0.1)
(s = v(g, t, i, o, r + 0.1) - v(g, t, i, o, r)),
(l = v(m, e, n, a, r + 0.1) - v(m, e, n, a, r)),
(y += PS(s * s + l * l));
for (; x < _ && !((w += f[x]) > d); x++);
for (r = (w - d) / y; r <= 1; )
(u = v(g, t, i, o, r)),
(h = v(m, e, n, a, r)),
x % 2 ? p.moveTo(u, h) : p.lineTo(u, h),
(r += f[x] / y),
(x = (x + 1) % _);
x % 2 != 0 && p.lineTo(o, a),
(s = o - u),
(l = a - h),
(this._dashOffset = -PS(s * s + l * l));
},
_dashedQuadraticTo: function (t, e, i, n) {
var o = 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, o, a);
},
toStatic: function () {
var t = this.data;
t instanceof Array &&
((t.length = this._len), OS && (this.data = new Float32Array(t)));
},
getBoundingRect: function () {
(MS[0] = MS[1] = TS[0] = TS[1] = Number.MAX_VALUE),
(IS[0] = IS[1] = AS[0] = AS[1] = -Number.MAX_VALUE);
for (
var t = this.data, e = 0, i = 0, n = 0, o = 0, a = 0;
a < t.length;
) {
var r = t[a++];
switch ((1 === a && ((n = e = t[a]), (o = i = t[a + 1])), r)) {
case SS.M:
(e = n = t[a++]),
(i = o = t[a++]),
(TS[0] = n),
(TS[1] = o),
(AS[0] = n),
(AS[1] = o);
break;
case SS.L:
pn(e, i, t[a], t[a + 1], TS, AS), (e = t[a++]), (i = t[a++]);
break;
case SS.C:
gn(e, i, t[a++], t[a++], t[a++], t[a++], t[a], t[a + 1], TS, AS),
(e = t[a++]),
(i = t[a++]);
break;
case SS.Q:
mn(e, i, t[a++], t[a++], t[a], t[a + 1], TS, AS),
(e = t[a++]),
(i = t[a++]);
break;
case SS.A:
var s = t[a++],
l = t[a++],
u = t[a++],
h = t[a++],
c = t[a++],
d = t[a++] + c;
a += 1;
var f = 1 - t[a++];
1 === a && ((n = LS(c) * u + s), (o = kS(c) * h + l)),
vn(s, l, u, h, c, d, f, TS, AS),
(e = LS(d) * u + s),
(i = kS(d) * h + l);
break;
case SS.R:
pn(
(n = e = t[a++]),
(o = i = t[a++]),
n + t[a++],
o + t[a++],
TS,
AS,
);
break;
case SS.Z:
(e = n), (i = o);
}
tt(MS, MS, TS), et(IS, IS, AS);
}
return (
0 === a && (MS[0] = MS[1] = IS[0] = IS[1] = 0),
new de(MS[0], MS[1], IS[0] - MS[0], IS[1] - MS[1])
);
},
rebuildPath: function (t) {
for (
var e,
i,
n,
o,
a,
r,
s = this.data,
l = this._ux,
u = this._uy,
h = this._len,
c = 0;
c < h;
) {
var d = s[c++];
switch ((1 === c && ((e = n = s[c]), (i = o = s[c + 1])), d)) {
case SS.M:
(e = n = s[c++]), (i = o = s[c++]), t.moveTo(n, o);
break;
case SS.L:
(a = s[c++]),
(r = s[c++]),
(NS(a - n) > l || NS(r - o) > u || c === h - 1) &&
(t.lineTo(a, r), (n = a), (o = r));
break;
case SS.C:
t.bezierCurveTo(s[c++], s[c++], s[c++], s[c++], s[c++], s[c++]),
(n = s[c - 2]),
(o = s[c - 1]);
break;
case SS.Q:
t.quadraticCurveTo(s[c++], s[c++], s[c++], s[c++]),
(n = s[c - 2]),
(o = s[c - 1]);
break;
case SS.A:
var f = s[c++],
p = s[c++],
g = s[c++],
m = s[c++],
v = s[c++],
y = s[c++],
x = s[c++],
_ = s[c++],
w = g > m ? g : m,
b = g > m ? 1 : g / m,
S = g > m ? m / g : 1,
M = v + y;
Math.abs(g - m) > 0.001
? (t.translate(f, p),
t.rotate(x),
t.scale(b, S),
t.arc(0, 0, w, v, M, 1 - _),
t.scale(1 / b, 1 / S),
t.rotate(-x),
t.translate(-f, -p))
: t.arc(f, p, w, v, M, 1 - _),
1 === c && ((e = LS(v) * g + f), (i = kS(v) * m + p)),
(n = LS(M) * g + f),
(o = kS(M) * m + p);
break;
case SS.R:
(e = n = s[c]),
(i = o = s[c + 1]),
t.rect(s[c++], s[c++], s[c++], s[c++]);
break;
case SS.Z:
t.closePath(), (n = e), (o = i);
}
}
},
}),
(ES.CMD = SS);
var RS = 2 * Math.PI,
zS = 2 * Math.PI,
BS = ES.CMD,
VS = 2 * Math.PI,
GS = 1e-4,
FS = [-1, -1, -1],
WS = [-1, -1],
HS = fb.prototype.getCanvasPattern,
ZS = Math.abs,
US = new ES(!0);
(Pn.prototype = {
constructor: Pn,
type: 'path',
__dirtyPath: !0,
strokeContainThreshold: 5,
subPixelOptimize: !1,
brush: function (t, e) {
var i = this.style,
n = this.path || US,
o = i.hasStroke(),
a = i.hasFill(),
r = i.fill,
s = i.stroke,
l = a && !!r.colorStops,
u = o && !!s.colorStops,
h = a && !!r.image,
c = o && !!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, r, d))),
u &&
((d = d || this.getBoundingRect()),
(this._strokeGradient = i.getGradient(t, s, d)));
}
l
? (t.fillStyle = this._fillGradient)
: h && (t.fillStyle = HS.call(r, t)),
u
? (t.strokeStyle = this._strokeGradient)
: c && (t.strokeStyle = HS.call(s, t));
var f = i.lineDash,
p = i.lineDashOffset,
g = !!t.setLineDash,
m = this.getGlobalScale();
if (
(n.setScale(m[0], m[1]),
this.__dirtyPath || (f && !g && o)
? (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) {
v = t.globalAlpha;
(t.globalAlpha = i.fillOpacity * i.opacity),
n.fill(t),
(t.globalAlpha = v);
} else n.fill(t);
if ((f && g && (t.setLineDash(f), (t.lineDashOffset = p)), o))
if (null != i.strokeOpacity) {
var v = t.globalAlpha;
(t.globalAlpha = i.strokeOpacity * i.opacity),
n.stroke(t),
(t.globalAlpha = v);
} else n.stroke(t);
f && g && t.setLineDash([]),
null != i.text &&
(this.restoreTransform(t),
this.drawRectText(t, this.getBoundingRect()));
},
buildPath: function (t, e, i) {},
createPathProxy: function () {
this.path = new ES();
},
getBoundingRect: function () {
var t = this._rect,
e = this.style,
i = !t;
if (i) {
var n = this.path;
n || (n = this.path = new ES()),
this.__dirtyPath &&
(n.beginPath(), this.buildPath(n, this.shape, !1)),
(t = n.getBoundingRect());
}
if (((this._rect = t), e.hasStroke())) {
var o = this._rectWithStroke || (this._rectWithStroke = t.clone());
if (this.__dirty || i) {
o.copy(t);
var a = e.lineWidth,
r = e.strokeNoScale ? this.getLineScale() : 1;
e.hasFill() || (a = Math.max(a, this.strokeContainThreshold || 4)),
r > 1e-10 &&
((o.width += a / r),
(o.height += a / r),
(o.x -= a / r / 2),
(o.y -= a / r / 2));
}
return o;
}
return t;
},
contain: function (t, e) {
var i = this.transformCoordToLocal(t, e),
n = this.getBoundingRect(),
o = this.style;
if (((t = i[0]), (e = i[1]), n.contain(t, e))) {
var a = this.path.data;
if (o.hasStroke()) {
var r = o.lineWidth,
s = o.strokeNoScale ? this.getLineScale() : 1;
if (
s > 1e-10 &&
(o.hasFill() || (r = Math.max(r, this.strokeContainThreshold)),
kn(a, r / s, t, e))
)
return !0;
}
if (o.hasFill()) return Ln(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))
: di.prototype.attrKV.call(this, t, e);
},
setShape: function (t, e) {
var i = this.shape;
if (i) {
if (w(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 && ZS(t[0] - 1) > 1e-10 && ZS(t[3] - 1) > 1e-10
? Math.sqrt(ZS(t[0] * t[3] - t[2] * t[1]))
: 1;
},
}),
(Pn.extend = function (t) {
var e = function (e) {
Pn.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 o in i)
!n.hasOwnProperty(o) && i.hasOwnProperty(o) && (n[o] = i[o]);
}
t.init && t.init.call(this, e);
};
u(e, Pn);
for (var i in t)
'style' !== i && 'shape' !== i && (e.prototype[i] = t[i]);
return e;
}),
u(Pn, di);
var XS = ES.CMD,
jS = [[], [], []],
YS = Math.sqrt,
qS = Math.atan2,
KS = function (t, e) {
var i,
n,
o,
a,
r,
s,
l = t.data,
u = XS.M,
h = XS.C,
c = XS.L,
d = XS.R,
f = XS.A,
p = XS.Q;
for (o = 0, a = 0; o < l.length; ) {
switch (((i = l[o++]), (a = o), (n = 0), i)) {
case u:
case c:
n = 1;
break;
case h:
n = 3;
break;
case p:
n = 2;
break;
case f:
var g = e[4],
m = e[5],
v = YS(e[0] * e[0] + e[1] * e[1]),
y = YS(e[2] * e[2] + e[3] * e[3]),
x = qS(-e[1] / y, e[0] / v);
(l[o] *= v),
(l[o++] += g),
(l[o] *= y),
(l[o++] += m),
(l[o++] *= v),
(l[o++] *= y),
(l[o++] += x),
(l[o++] += x),
(a = o += 2);
break;
case d:
(s[0] = l[o++]),
(s[1] = l[o++]),
Q(s, s, e),
(l[a++] = s[0]),
(l[a++] = s[1]),
(s[0] += l[o++]),
(s[1] += l[o++]),
Q(s, s, e),
(l[a++] = s[0]),
(l[a++] = s[1]);
}
for (r = 0; r < n; r++)
((s = jS[r])[0] = l[o++]),
(s[1] = l[o++]),
Q(s, s, e),
(l[a++] = s[0]),
(l[a++] = s[1]);
}
},
$S = Math.sqrt,
JS = Math.sin,
QS = Math.cos,
tM = Math.PI,
eM = function (t) {
return Math.sqrt(t[0] * t[0] + t[1] * t[1]);
},
iM = function (t, e) {
return (t[0] * e[0] + t[1] * e[1]) / (eM(t) * eM(e));
},
nM = function (t, e) {
return (t[0] * e[1] < t[1] * e[0] ? -1 : 1) * Math.acos(iM(t, e));
},
oM = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,
aM = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g,
rM = function (t) {
di.call(this, t);
};
(rM.prototype = {
constructor: rM,
type: 'text',
brush: function (t, e) {
var i = this.style;
this.__dirty && Ye(i),
(i.fill = i.stroke = i.shadowBlur = i.shadowColor = i.shadowOffsetX = i.shadowOffsetY = null);
var n = i.text;
null != n && (n += ''),
ci(n, i)
? (this.setTransform(t),
Ke(this, t, n, i, null, e),
this.restoreTransform(t))
: (t.__attrCachedBy = rb.NONE);
},
getBoundingRect: function () {
var t = this.style;
if ((this.__dirty && Ye(t), !this._rect)) {
var e = t.text;
null != e ? (e += '') : (e = '');
var i = ke(
t.text + '',
t.font,
t.textAlign,
t.textVerticalAlign,
t.textPadding,
t.textLineHeight,
t.rich,
);
if (
((i.x += t.x || 0),
(i.y += t.y || 0),
si(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(rM, di);
var sM = Pn.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);
},
}),
lM = [
['shadowBlur', 0],
['shadowColor', '#000'],
['shadowOffsetX', 0],
['shadowOffsetY', 0],
],
uM = function (t) {
return U_.browser.ie && U_.browser.version >= 11
? function () {
var e,
i = this.__clipPaths,
n = this.style;
if (i)
for (var o = 0; o < i.length; o++) {
var a = i[o],
r = a && a.shape,
s = a && a.type;
if (
r &&
(('sector' === s && r.startAngle === r.endAngle) ||
('rect' === s && (!r.width || !r.height)))
) {
for (l = 0; l < lM.length; l++)
(lM[l][2] = n[lM[l][0]]), (n[lM[l][0]] = lM[l][1]);
e = !0;
break;
}
}
if ((t.apply(this, arguments), e))
for (var l = 0; l < lM.length; l++) n[lM[l][0]] = lM[l][2];
}
: t;
},
hM = Pn.extend({
type: 'sector',
shape: {
cx: 0,
cy: 0,
r0: 0,
r: 0,
startAngle: 0,
endAngle: 2 * Math.PI,
clockwise: !0,
},
brush: uM(Pn.prototype.brush),
buildPath: function (t, e) {
var i = e.cx,
n = e.cy,
o = Math.max(e.r0 || 0, 0),
a = Math.max(e.r, 0),
r = e.startAngle,
s = e.endAngle,
l = e.clockwise,
u = Math.cos(r),
h = Math.sin(r);
t.moveTo(u * o + i, h * o + n),
t.lineTo(u * a + i, h * a + n),
t.arc(i, n, a, r, s, !l),
t.lineTo(Math.cos(s) * o + i, Math.sin(s) * o + n),
0 !== o && t.arc(i, n, o, s, r, l),
t.closePath();
},
}),
cM = Pn.extend({
type: 'ring',
shape: { cx: 0, cy: 0, r: 0, r0: 0 },
buildPath: function (t, e) {
var i = e.cx,
n = e.cy,
o = 2 * Math.PI;
t.moveTo(i + e.r, n),
t.arc(i, n, e.r, 0, o, !1),
t.moveTo(i + e.r0, n),
t.arc(i, n, e.r0, 0, o, !0);
},
}),
dM = function (t, e) {
for (var i = t.length, n = [], o = 0, a = 1; a < i; a++)
o += K(t[a - 1], t[a]);
var r = o / 2;
r = r < i ? i : r;
for (a = 0; a < r; a++) {
var s,
l,
u,
h = (a / (r - 1)) * (e ? i : i - 1),
c = Math.floor(h),
d = h - c,
f = t[c % i];
e
? ((s = t[(c - 1 + i) % i]),
(l = t[(c + 1) % i]),
(u = t[(c + 2) % i]))
: ((s = t[0 === c ? c : c - 1]),
(l = t[c > i - 2 ? i - 1 : c + 1]),
(u = t[c > i - 3 ? i - 1 : c + 2]));
var p = d * d,
g = d * p;
n.push([
Bn(s[0], f[0], l[0], u[0], d, p, g),
Bn(s[1], f[1], l[1], u[1], d, p, g),
]);
}
return n;
},
fM = function (t, e, i, n) {
var o,
a,
r,
s,
l = [],
u = [],
h = [],
c = [];
if (n) {
(r = [1 / 0, 1 / 0]), (s = [-1 / 0, -1 / 0]);
for (var d = 0, f = t.length; d < f; d++)
tt(r, r, t[d]), et(s, s, t[d]);
tt(r, r, n[0]), et(s, s, n[1]);
}
for (var d = 0, f = t.length; d < f; d++) {
var p = t[d];
if (i) (o = t[d ? d - 1 : f - 1]), (a = t[(d + 1) % f]);
else {
if (0 === d || d === f - 1) {
l.push(F(t[d]));
continue;
}
(o = t[d - 1]), (a = t[d + 1]);
}
U(u, a, o), Y(u, u, e);
var g = K(p, o),
m = K(p, a),
v = g + m;
0 !== v && ((g /= v), (m /= v)), Y(h, u, -g), Y(c, u, m);
var y = H([], p, h),
x = H([], p, c);
n && (et(y, y, r), tt(y, y, s), et(x, x, r), tt(x, x, s)),
l.push(y),
l.push(x);
}
return i && l.push(l.shift()), l;
},
pM = Pn.extend({
type: 'polygon',
shape: { points: null, smooth: !1, smoothConstraint: null },
buildPath: function (t, e) {
Vn(t, e, !0);
},
}),
gM = Pn.extend({
type: 'polyline',
shape: { points: null, smooth: !1, smoothConstraint: null },
style: { stroke: '#000', fill: null },
buildPath: function (t, e) {
Vn(t, e, !1);
},
}),
mM = Math.round,
vM = {},
yM = Pn.extend({
type: 'rect',
shape: { r: 0, x: 0, y: 0, width: 0, height: 0 },
buildPath: function (t, e) {
var i, n, o, a;
this.subPixelOptimize
? (Fn(vM, e, this.style),
(i = vM.x),
(n = vM.y),
(o = vM.width),
(a = vM.height),
(vM.r = e.r),
(e = vM))
: ((i = e.x), (n = e.y), (o = e.width), (a = e.height)),
e.r ? je(t, e) : t.rect(i, n, o, a),
t.closePath();
},
}),
xM = {},
_M = Pn.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, n, o, a;
this.subPixelOptimize
? (Gn(xM, e, this.style),
(i = xM.x1),
(n = xM.y1),
(o = xM.x2),
(a = xM.y2))
: ((i = e.x1), (n = e.y1), (o = e.x2), (a = e.y2));
var r = e.percent;
0 !== r &&
(t.moveTo(i, n),
r < 1 && ((o = i * (1 - r) + o * r), (a = n * (1 - r) + a * r)),
t.lineTo(o, a));
},
pointAt: function (t) {
var e = this.shape;
return [e.x1 * (1 - t) + e.x2 * t, e.y1 * (1 - t) + e.y2 * t];
},
}),
wM = [],
bM = Pn.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,
o = e.x2,
a = e.y2,
r = e.cpx1,
s = e.cpy1,
l = e.cpx2,
u = e.cpy2,
h = e.percent;
0 !== h &&
(t.moveTo(i, n),
null == l || null == u
? (h < 1 &&
(cn(i, r, o, h, wM),
(r = wM[1]),
(o = wM[2]),
cn(n, s, a, h, wM),
(s = wM[1]),
(a = wM[2])),
t.quadraticCurveTo(r, s, o, a))
: (h < 1 &&
(an(i, r, l, o, h, wM),
(r = wM[1]),
(l = wM[2]),
(o = wM[3]),
an(n, s, u, a, h, wM),
(s = wM[1]),
(u = wM[2]),
(a = wM[3])),
t.bezierCurveTo(r, s, l, u, o, a)));
},
pointAt: function (t) {
return Hn(this.shape, t, !1);
},
tangentAt: function (t) {
var e = Hn(this.shape, t, !0);
return q(e, e);
},
}),
SM = Pn.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,
o = Math.max(e.r, 0),
a = e.startAngle,
r = e.endAngle,
s = e.clockwise,
l = Math.cos(a),
u = Math.sin(a);
t.moveTo(l * o + i, u * o + n), t.arc(i, n, o, a, r, !s);
},
}),
MM = Pn.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(), Pn.prototype.getBoundingRect.call(this);
},
}),
IM = function (t) {
this.colorStops = t || [];
};
IM.prototype = {
constructor: IM,
addColorStop: function (t, e) {
this.colorStops.push({ offset: t, color: e });
},
};
var TM = function (t, e, i, n, o, 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),
IM.call(this, o);
};
(TM.prototype = { constructor: TM }), u(TM, IM);
var AM = function (t, e, i, n, o) {
(this.x = null == t ? 0.5 : t),
(this.y = null == e ? 0.5 : e),
(this.r = null == i ? 0.5 : i),
(this.type = 'radial'),
(this.global = o || !1),
IM.call(this, n);
};
(AM.prototype = { constructor: AM }),
u(AM, IM),
(Zn.prototype.incremental = !0),
(Zn.prototype.clearDisplaybles = function () {
(this._displayables = []),
(this._temporaryDisplayables = []),
(this._cursor = 0),
this.dirty(),
(this.notClear = !1);
}),
(Zn.prototype.addDisplayable = function (t, e) {
e ? this._temporaryDisplayables.push(t) : this._displayables.push(t),
this.dirty();
}),
(Zn.prototype.addDisplayables = function (t, e) {
e = e || !1;
for (var i = 0; i < t.length; i++) this.addDisplayable(t[i], e);
}),
(Zn.prototype.eachPendingDisplayable = function (t) {
for (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]);
}),
(Zn.prototype.update = function () {
this.updateTransform();
for (t = this._cursor; t < this._displayables.length; t++)
((e = this._displayables[t]).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);
}
}),
(Zn.prototype.brush = function (t, e) {
for (i = this._cursor; i < this._displayables.length; i++)
(n = this._displayables[i]).beforeBrush && n.beforeBrush(t),
n.brush(t, i === this._cursor ? null : this._displayables[i - 1]),
n.afterBrush && n.afterBrush(t);
this._cursor = i;
for (var i = 0; i < this._temporaryDisplayables.length; i++) {
var n = this._temporaryDisplayables[i];
n.beforeBrush && n.beforeBrush(t),
n.brush(t, 0 === i ? null : this._temporaryDisplayables[i - 1]),
n.afterBrush && n.afterBrush(t);
}
(this._temporaryDisplayables = []), (this.notClear = !0);
});
var DM = [];
(Zn.prototype.getBoundingRect = function () {
if (!this._rect) {
for (
var t = new de(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(DM)),
t.union(n);
}
this._rect = t;
}
return this._rect;
}),
(Zn.prototype.contain = function (t, e) {
var i = this.transformCoordToLocal(t, e);
if (this.getBoundingRect().contain(i[0], i[1]))
for (var n = 0; n < this._displayables.length; n++)
if (this._displayables[n].contain(t, e)) return !0;
return !1;
}),
u(Zn, di);
var CM = Math.round,
LM = Math.max,
kM = Math.min,
PM = {},
NM = 1,
OM = function (t, e) {
for (var i = [], n = t.length, o = 0; o < n; o++) {
var a = t[o];
a.path || a.createPathProxy(),
a.__dirtyPath && a.buildPath(a.path, a.shape, !0),
i.push(a.path);
}
var r = new Pn(e);
return (
r.createPathProxy(),
(r.buildPath = function (t) {
t.appendPath(i);
var e = t.getContext();
e && t.rebuildPath(e);
}),
r
);
},
EM = R(),
RM = 0,
zM = (Object.freeze || Object)({
Z2_EMPHASIS_LIFT: NM,
extendShape: Un,
extendPath: function (t, e) {
return zn(t, e);
},
makePath: Xn,
makeImage: jn,
mergePath: OM,
resizePath: qn,
subPixelOptimizeLine: Kn,
subPixelOptimizeRect: $n,
subPixelOptimize: Jn,
setElementHoverStyle: ro,
isInEmphasis: so,
setHoverStyle: fo,
setAsHoverStyleTrigger: po,
setLabelStyle: go,
setTextStyle: mo,
setText: function (t, e, i) {
var n,
o = { isRectText: !0 };
!1 === i ? (n = !0) : (o.autoColor = i), vo(t, e, o, n);
},
getFont: So,
updateProps: Io,
initProps: To,
getTransform: Ao,
applyTransform: Do,
transformDirection: Co,
groupTransition: Lo,
clipPointsByRect: ko,
clipRectByRect: function (t, e) {
var i = LM(t.x, e.x),
n = kM(t.x + t.width, e.x + e.width),
o = LM(t.y, e.y),
a = kM(t.y + t.height, e.y + e.height);
if (n >= i && a >= o)
return { x: i, y: o, width: n - i, height: a - o };
},
createIcon: Po,
Group: tb,
Image: fi,
Text: rM,
Circle: sM,
Sector: hM,
Ring: cM,
Polygon: pM,
Polyline: gM,
Rect: yM,
Line: _M,
BezierCurve: bM,
Arc: SM,
IncrementalDisplayable: Zn,
CompoundPath: MM,
LinearGradient: TM,
RadialGradient: AM,
BoundingRect: de,
}),
BM = ['textStyle', 'color'],
VM = {
getTextColor: function (t) {
var e = this.ecModel;
return this.getShallow('color') || (!t && e ? e.get(BM) : null);
},
getFont: function () {
return So(
{
fontStyle: this.getShallow('fontStyle'),
fontWeight: this.getShallow('fontWeight'),
fontSize: this.getShallow('fontSize'),
fontFamily: this.getShallow('fontFamily'),
},
this.ecModel,
);
},
getTextRect: function (t) {
return ke(
t,
this.getFont(),
this.getShallow('align'),
this.getShallow('verticalAlign') || this.getShallow('baseline'),
this.getShallow('padding'),
this.getShallow('lineHeight'),
this.getShallow('rich'),
this.getShallow('truncateText'),
);
},
},
GM = Qb([
['fill', 'color'],
['stroke', 'borderColor'],
['lineWidth', 'borderWidth'],
['opacity'],
['shadowBlur'],
['shadowOffsetX'],
['shadowOffsetY'],
['shadowColor'],
['textPosition'],
['textAlign'],
]),
FM = {
getItemStyle: function (t, e) {
var i = GM(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];
},
},
WM = h,
HM = Bi();
(No.prototype = {
constructor: No,
init: null,
mergeOption: function (t) {
n(this.option, t, !0);
},
get: function (t, e) {
return null == t
? this.option
: Oo(this.option, this.parsePath(t), !e && Eo(this, t));
},
getShallow: function (t, e) {
var i = this.option,
n = null == i ? i : i[t],
o = !e && Eo(this, t);
return null == n && o && (n = o.getShallow(t)), n;
},
getModel: function (t, e) {
var i,
n = null == t ? this.option : Oo(this.option, (t = this.parsePath(t)));
return (
(e = e || ((i = Eo(this, t)) && i.getModel(t))),
new No(n, e, this.ecModel)
);
},
isEmpty: function () {
return null == this.option;
},
restoreData: function () {},
clone: function () {
return new (0, this.constructor)(i(this.option));
},
setReadOnly: function (t) {},
parsePath: function (t) {
return 'string' == typeof t && (t = t.split('.')), t;
},
customizeGetParent: function (t) {
HM(this).getParent = t;
},
isAnimationEnabled: function () {
if (!U_.node) {
if (null != this.option.animation) return !!this.option.animation;
if (this.parentModel) return this.parentModel.isAnimationEnabled();
}
},
}),
ji(No),
Yi(No),
WM(No, eS),
WM(No, nS),
WM(No, VM),
WM(No, FM);
var ZM = 0,
UM = 1e-4,
XM = 9007199254740991,
jM = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/,
YM = (Object.freeze || Object)({
linearMap: Bo,
parsePercent: Vo,
round: Go,
asc: Fo,
getPrecision: Wo,
getPrecisionSafe: Ho,
getPixelPrecision: Zo,
getPercentWithPrecision: Uo,
MAX_SAFE_INTEGER: XM,
remRadian: Xo,
isRadianAroundZero: jo,
parseDate: Yo,
quantity: qo,
nice: $o,
quantile: function (t, e) {
var i = (t.length - 1) * e + 1,
n = Math.floor(i),
o = +t[n - 1],
a = i - n;
return a ? o + a * (t[n] - o) : o;
},
reformIntervals: Jo,
isNumeric: Qo,
}),
qM = L,
KM = /([&<>"'])/g,
$M = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": ''',
},
JM = ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
QM = function (t, e) {
return '{' + t + (null == e ? '' : e) + '}';
},
tI = ze,
eI = (Object.freeze || Object)({
addCommas: ta,
toCamelCase: ea,
normalizeCssArray: qM,
encodeHTML: ia,
formatTpl: na,
formatTplSimple: oa,
getTooltipMarker: aa,
formatTime: sa,
capitalFirst: la,
truncateText: tI,
getTextBoundingRect: function (t) {
return ke(
t.text,
t.font,
t.textAlign,
t.textVerticalAlign,
t.textPadding,
t.textLineHeight,
t.rich,
t.truncate,
);
},
getTextRect: function (t, e, i, n, o, a, r, s) {
return ke(t, e, i, n, o, s, a, r);
},
}),
iI = d,
nI = ['left', 'right', 'top', 'bottom', 'width', 'height'],
oI = [
['width', 'left', 'right'],
['height', 'top', 'bottom'],
],
aI = ua,
rI =
(v(ua, 'vertical'),
v(ua, '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'),
};
},
}),
sI = Bi(),
lI = No.extend({
type: 'component',
id: '',
name: '',
mainType: '',
subType: '',
componentIndex: 0,
defaultOption: null,
ecModel: null,
dependentModels: [],
uid: null,
layoutMode: null,
$constructor: function (t, e, i, n) {
No.call(this, t, e, i, n), (this.uid = Ro('ec_cpt_model'));
},
init: function (t, e, i, n) {
this.mergeDefaultAndTheme(t, i);
},
mergeDefaultAndTheme: function (t, e) {
var i = this.layoutMode,
o = i ? ga(t) : {};
n(t, e.getTheme().get(this.mainType)),
n(t, this.getDefaultOption()),
i && pa(t, o, i);
},
mergeOption: function (t, e) {
n(this.option, t, !0);
var i = this.layoutMode;
i && pa(this.option, t, i);
},
optionUpdated: function (t, e) {},
getDefaultOption: function () {
var t = sI(this);
if (!t.defaultOption) {
for (var e = [], i = this.constructor; i; ) {
var o = i.prototype.defaultOption;
o && e.push(o), (i = i.superClass);
}
for (var a = {}, r = e.length - 1; r >= 0; r--) a = n(a, e[r], !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),
});
},
});
$i(lI, { registerWhenExtend: !0 }),
(function (t) {
var e = {};
(t.registerSubTypeDefaulter = function (t, i) {
(t = Ui(t)), (e[t.main] = i);
}),
(t.determineSubType = function (i, n) {
var o = n.type;
if (!o) {
var a = Ui(i).main;
t.hasSubTypes(i) && e[a] && (o = e[a](n));
}
return o;
});
})(lI),
(function (t, e) {
function i(t) {
var i = {},
a = [];
return (
d(t, function (r) {
var s = n(i, r),
u = o((s.originalDeps = e(r)), t);
(s.entryCount = u.length),
0 === s.entryCount && a.push(r),
d(u, function (t) {
l(s.predecessor, t) < 0 && s.predecessor.push(t);
var e = n(i, t);
l(e.successor, t) < 0 && e.successor.push(r);
});
}),
{ graph: i, noEntryList: a }
);
}
function n(t, e) {
return t[e] || (t[e] = { predecessor: [], successor: [] }), t[e];
}
function o(t, e) {
var i = [];
return (
d(t, function (t) {
l(e, t) >= 0 && i.push(t);
}),
i
);
}
t.topologicalTravel = function (t, e, n, o) {
function a(t) {
s[t].entryCount--, 0 === s[t].entryCount && l.push(t);
}
if (t.length) {
var r = i(e),
s = r.graph,
l = r.noEntryList,
u = {};
for (
d(t, function (t) {
u[t] = !0;
});
l.length;
) {
var h = l.pop(),
c = s[h],
f = !!u[h];
f && (n.call(o, h, c.originalDeps.slice()), delete u[h]),
d(
c.successor,
f
? function (t) {
(u[t] = !0), a(t);
}
: a,
);
}
d(u, function () {
throw new Error('Circle dependency may exists');
});
}
};
})(lI, function (t) {
var e = [];
return (
d(lI.getClassesByMainType(t), function (t) {
e = e.concat(t.prototype.dependencies || []);
}),
(e = f(e, function (t) {
return Ui(t).main;
})),
'dataset' !== t && l(e, 'dataset') <= 0 && e.unshift('dataset'),
e
);
}),
h(lI, rI);
var uI = '';
'undefined' != typeof navigator && (uI = navigator.platform || '');
var hI = {
color: [
'#c23531',
'#2f4554',
'#61a0a8',
'#d48265',
'#91c7ae',
'#749f83',
'#ca8622',
'#bda29a',
'#6e7074',
'#546570',
'#c4ccd3',
],
gradientColor: ['#f6efa6', '#d88273', '#bf444c'],
textStyle: {
fontFamily: uI.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,
},
cI = Bi(),
dI = {
clearColorPalette: function () {
(cI(this).colorIdx = 0), (cI(this).colorNameMap = {});
},
getColorFromPalette: function (t, e, i) {
var n = cI((e = e || this)),
o = n.colorIdx || 0,
a = (n.colorNameMap = n.colorNameMap || {});
if (a.hasOwnProperty(t)) return a[t];
var r = Di(this.get('color', !0)),
s = this.get('colorLayer', !0),
l = null != i && s ? va(s, i) : r;
if ((l = l || r) && l.length) {
var u = l[o];
return t && (a[t] = u), (n.colorIdx = (o + 1) % l.length), u;
}
},
},
fI = {
cartesian2d: function (t, e, i, n) {
var o = t.getReferringComponents('xAxis')[0],
a = t.getReferringComponents('yAxis')[0];
(e.coordSysDims = ['x', 'y']),
i.set('x', o),
i.set('y', a),
xa(o) && (n.set('x', o), (e.firstCategoryDimIndex = 0)),
xa(a) && (n.set('y', a), (e.firstCategoryDimIndex = 1));
},
singleAxis: function (t, e, i, n) {
var o = t.getReferringComponents('singleAxis')[0];
(e.coordSysDims = ['single']),
i.set('single', o),
xa(o) && (n.set('single', o), (e.firstCategoryDimIndex = 0));
},
polar: function (t, e, i, n) {
var o = t.getReferringComponents('polar')[0],
a = o.findAxisModel('radiusAxis'),
r = o.findAxisModel('angleAxis');
(e.coordSysDims = ['radius', 'angle']),
i.set('radius', a),
i.set('angle', r),
xa(a) && (n.set('radius', a), (e.firstCategoryDimIndex = 0)),
xa(r) && (n.set('angle', r), (e.firstCategoryDimIndex = 1));
},
geo: function (t, e, i, n) {
e.coordSysDims = ['lng', 'lat'];
},
parallel: function (t, e, i, n) {
var o = t.ecModel,
a = o.getComponent('parallel', t.get('parallelIndex')),
r = (e.coordSysDims = a.dimensions.slice());
d(a.parallelAxisIndex, function (t, a) {
var s = o.getComponent('parallelAxis', t),
l = r[a];
i.set(l, s),
xa(s) &&
null == e.firstCategoryDimIndex &&
(n.set(l, s), (e.firstCategoryDimIndex = a));
});
},
},
pI = 'original',
gI = 'arrayRows',
mI = 'objectRows',
vI = 'keyedColumns',
yI = 'unknown',
xI = 'typedArray',
_I = 'column',
wI = 'row';
(_a.seriesDataToSource = function (t) {
return new _a({ data: t, sourceFormat: S(t) ? xI : pI, fromDataset: !1 });
}),
Yi(_a);
var bI = Bi(),
SI = '\0_ec_inner',
MI = No.extend({
init: function (t, e, i, n) {
(i = i || {}),
(this.option = null),
(this._theme = new No(i)),
(this._optionManager = n);
},
setOption: function (t, e) {
k(!(SI 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))
: Ea.call(this, n),
(e = !0);
}
if (
(('timeline' !== t && 'media' !== t) || this.restoreData(),
!t || 'recreate' === t || 'timeline' === t)
) {
var o = i.getTimelineOption(this);
o && (this.mergeOption(o), (e = !0));
}
if (!t || 'recreate' === t || 'media' === t) {
var a = i.getMediaOption(this, this._api);
a.length &&
d(
a,
function (t) {
this.mergeOption(t, (e = !0));
},
this,
);
}
return e;
},
mergeOption: function (t) {
var e = this.option,
o = this._componentsMap,
r = [];
Sa(this),
d(t, function (t, o) {
null != t &&
(lI.hasClass(o)
? o && r.push(o)
: (e[o] = null == e[o] ? i(t) : n(e[o], t, !0)));
}),
lI.topologicalTravel(
r,
lI.getAllClassMainTypes(),
function (i, n) {
var r = Di(t[i]),
s = Pi(o.get(i), r);
Ni(s),
d(s, function (t, e) {
var n = t.option;
w(n) &&
((t.keyInfo.mainType = i),
(t.keyInfo.subType = za(i, n, t.exist)));
});
var l = Ra(o, n);
(e[i] = []),
o.set(i, []),
d(
s,
function (t, n) {
var r = t.exist,
s = t.option;
if ((k(w(s) || r, 'Empty [id] definition'), s)) {
var u = lI.getClass(i, t.keyInfo.subType, !0);
if (r && r instanceof u)
(r.name = t.keyInfo.name),
r.mergeOption(s, this),
r.optionUpdated(s, !1);
else {
var h = a(
{ dependentModels: l, componentIndex: n },
t.keyInfo,
);
a((r = new u(s, this, this, h)), h),
r.init(s, this, this, h),
r.optionUpdated(null, !0);
}
} else r.mergeOption({}, this), r.optionUpdated({}, !1);
(o.get(i)[n] = r), (e[i][n] = r.option);
},
this,
),
'series' === i && Ba(this, o.get('series'));
},
this,
),
(this._seriesIndicesMap = R(
(this._seriesIndices = this._seriesIndices || []),
));
},
getOption: function () {
var t = i(this.option);
return (
d(t, function (e, i) {
if (lI.hasClass(i)) {
for (var n = (e = Di(e)).length - 1; n >= 0; n--)
Ei(e[n]) && e.splice(n, 1);
t[i] = e;
}
}),
delete t[SI],
t
);
},
getTheme: function () {
return this._theme;
},
getComponent: function (t, e) {
var i = this._componentsMap.get(t);
if (i) return i[e || 0];
},
queryComponents: function (t) {
var e = t.mainType;
if (!e) return [];
var i = t.index,
n = t.id,
o = t.name,
a = this._componentsMap.get(e);
if (!a || !a.length) return [];
var r;
if (null != i)
y(i) || (i = [i]),
(r = g(
f(i, function (t) {
return a[t];
}),
function (t) {
return !!t;
},
));
else if (null != n) {
var s = y(n);
r = g(a, function (t) {
return (s && l(n, t.id) >= 0) || (!s && t.id === n);
});
} else if (null != o) {
var u = y(o);
r = g(a, function (t) {
return (u && l(o, t.name) >= 0) || (!u && t.name === o);
});
} else r = a.slice();
return Va(r, t);
},
findComponents: function (t) {
var e = t.query,
i = t.mainType,
n = (function (t) {
var e = i + 'Index',
n = i + 'Id',
o = i + 'Name';
return !t || (null == t[e] && null == t[n] && null == t[o])
? null
: { mainType: i, index: t[e], id: t[n], name: t[o] };
})(e);
return (function (e) {
return t.filter ? g(e, t.filter) : e;
})(Va(n ? this.queryComponents(n) : this._componentsMap.get(i), t));
},
eachComponent: function (t, e, i) {
var n = this._componentsMap;
'function' == typeof t
? ((i = e),
(e = t),
n.each(function (t, n) {
d(t, function (t, o) {
e.call(i, n, t, o);
});
}))
: _(t)
? d(n.get(t), e, i)
: w(t) && d(this.findComponents(t), e, i);
},
getSeriesByName: function (t) {
return g(this._componentsMap.get('series'), function (e) {
return e.name === t;
});
},
getSeriesByIndex: function (t) {
return this._componentsMap.get('series')[t];
},
getSeriesByType: function (t) {
return g(this._componentsMap.get('series'), 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) {
d(
this._seriesIndices,
function (i) {
var n = this._componentsMap.get('series')[i];
t.call(e, n, i);
},
this,
);
},
eachRawSeries: function (t, e) {
d(this._componentsMap.get('series'), t, e);
},
eachSeriesByType: function (t, e, i) {
d(
this._seriesIndices,
function (n) {
var o = this._componentsMap.get('series')[n];
o.subType === t && e.call(i, o, n);
},
this,
);
},
eachRawSeriesByType: function (t, e, i) {
return d(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) {
Ba(this, g(this._componentsMap.get('series'), t, e));
},
restoreData: function (t) {
var e = this._componentsMap;
Ba(this, e.get('series'));
var i = [];
e.each(function (t, e) {
i.push(e);
}),
lI.topologicalTravel(i, lI.getAllClassMainTypes(), function (i, n) {
d(e.get(i), function (e) {
('series' !== i || !Na(e, t)) && e.restoreData();
});
});
},
});
h(MI, dI);
var II = [
'getDom',
'getZr',
'getWidth',
'getHeight',
'getDevicePixelRatio',
'dispatchAction',
'isDisposed',
'on',
'off',
'getDataURL',
'getConnectedDataURL',
'getModel',
'getOption',
'getViewOfComponentModel',
'getViewOfSeriesModel',
],
TI = {};
(Fa.prototype = {
constructor: Fa,
create: function (t, e) {
var i = [];
d(TI, function (n, o) {
var a = n.create(t, e);
i = i.concat(a || []);
}),
(this._coordinateSystems = i);
},
update: function (t, e) {
d(this._coordinateSystems, function (i) {
i.update && i.update(t, e);
});
},
getCoordinateSystems: function () {
return this._coordinateSystems.slice();
},
}),
(Fa.register = function (t, e) {
TI[t] = e;
}),
(Fa.get = function (t) {
return TI[t];
});
var AI = d,
DI = i,
CI = f,
LI = n,
kI = /^(min|max)?(.+)$/;
Wa.prototype = {
constructor: Wa,
setOption: function (t, e) {
t &&
d(Di(t.series), function (t) {
t && t.data && S(t.data) && N(t.data);
}),
(t = DI(t, !0));
var i = this._optionBackup,
n = Ha.call(this, t, e, !i);
(this._newBaseOption = n.baseOption),
i
? (ja(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 = CI(e.timelineOptions, DI)),
(this._mediaList = CI(e.mediaList, DI)),
(this._mediaDefault = DI(e.mediaDefault)),
(this._currentMediaIndices = []),
DI(t ? e.baseOption : this._newBaseOption)
);
},
getTimelineOption: function (t) {
var e,
i = this._timelineOptions;
if (i.length) {
var n = t.getComponent('timeline');
n && (e = DI(i[n.getCurrentIndex()], !0));
}
return e;
},
getMediaOption: function (t) {
var e = this._api.getWidth(),
i = this._api.getHeight(),
n = this._mediaList,
o = this._mediaDefault,
a = [],
r = [];
if (!n.length && !o) return r;
for (var s = 0, l = n.length; s < l; s++)
Za(n[s].query, e, i) && a.push(s);
return (
!a.length && o && (a = [-1]),
a.length &&
!Xa(a, this._currentMediaIndices) &&
(r = CI(a, function (t) {
return DI(-1 === t ? o.option : n[t].option);
})),
(this._currentMediaIndices = a),
r
);
},
};
var PI = d,
NI = w,
OI = [
'areaStyle',
'lineStyle',
'nodeStyle',
'linkStyle',
'chordStyle',
'label',
'labelLine',
],
EI = function (t, e) {
PI(tr(t.series), function (t) {
NI(t) && Qa(t);
});
var i = [
'xAxis',
'yAxis',
'radiusAxis',
'angleAxis',
'singleAxis',
'parallelAxis',
'radar',
];
e && i.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis'),
PI(i, function (e) {
PI(tr(t[e]), function (t) {
t && ($a(t, 'axisLabel'), $a(t.axisPointer, 'label'));
});
}),
PI(tr(t.parallel), function (t) {
var e = t && t.parallelAxisDefault;
$a(e, 'axisLabel'), $a(e && e.axisPointer, 'label');
}),
PI(tr(t.calendar), function (t) {
qa(t, 'itemStyle'),
$a(t, 'dayLabel'),
$a(t, 'monthLabel'),
$a(t, 'yearLabel');
}),
PI(tr(t.radar), function (t) {
$a(t, 'name');
}),
PI(tr(t.geo), function (t) {
NI(t) &&
(Ja(t),
PI(tr(t.regions), function (t) {
Ja(t);
}));
}),
PI(tr(t.timeline), function (t) {
Ja(t), qa(t, 'label'), qa(t, 'itemStyle'), qa(t, 'controlStyle', !0);
var e = t.data;
y(e) &&
d(e, function (t) {
w(t) && (qa(t, 'label'), qa(t, 'itemStyle'));
});
}),
PI(tr(t.toolbox), function (t) {
qa(t, 'iconStyle'),
PI(t.feature, function (t) {
qa(t, 'iconStyle');
});
}),
$a(er(t.axisPointer), 'label'),
$a(er(t.tooltip).axisPointer, 'label');
},
RI = [
['x', 'left'],
['y', 'top'],
['x2', 'right'],
['y2', 'bottom'],
],
zI = [
'grid',
'geo',
'parallel',
'legend',
'toolbox',
'title',
'visualMap',
'dataZoom',
'timeline',
],
BI = function (t, e) {
EI(t, e),
(t.series = Di(t.series)),
d(t.series, function (t) {
if (w(t)) {
var e = t.type;
if (
(('pie' !== e && 'gauge' !== e) ||
(null != t.clockWise && (t.clockwise = t.clockWise)),
'gauge' === e)
) {
var i = ir(t, 'pointer.color');
null != i && nr(t, 'itemStyle.normal.color', i);
}
or(t);
}
}),
t.dataRange && (t.visualMap = t.dataRange),
d(zI, function (e) {
var i = t[e];
i &&
(y(i) || (i = [i]),
d(i, function (t) {
or(t);
}));
});
},
VI = rr.prototype;
(VI.pure = !1),
(VI.persistent = !0),
(VI.getSource = function () {
return this._source;
});
var GI = {
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: ur,
},
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 o = i[n];
e.push(o ? o[t] : null);
}
return e;
},
appendData: function () {
throw new Error(
'Do not support appendData when set seriesLayoutBy: "row".',
);
},
},
objectRows: { pure: !0, count: sr, getItem: lr, appendData: ur },
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 o = this._data[i[n].name];
e.push(o ? o[t] : null);
}
return e;
},
appendData: function (t) {
var e = this._data;
d(t, function (t, i) {
for (var n = e[i] || (e[i] = []), o = 0; o < (t || []).length; o++)
n.push(t[o]);
});
},
},
original: { count: sr, getItem: lr, appendData: ur },
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);
},
},
},
FI = {
arrayRows: hr,
objectRows: function (t, e, i, n) {
return null != i ? t[n] : t;
},
keyedColumns: hr,
original: function (t, e, i, n) {
var o = Li(t);
return null != i && o instanceof Array ? o[i] : o;
},
typedArray: hr,
},
WI = {
arrayRows: cr,
objectRows: function (t, e, i, n) {
return dr(t[e], this._dimensionInfos[e]);
},
keyedColumns: cr,
original: function (t, e, i, n) {
var o = t && (null == t.value ? t : t.value);
return (
!this._rawData.pure && ki(t) && (this.hasItemOption = !0),
dr(o instanceof Array ? o[n] : o, this._dimensionInfos[e])
);
},
typedArray: function (t, e, i, n) {
return t[n];
},
},
HI = /\{@(.+?)\}/g,
ZI = {
getDataParams: function (t, e) {
var i = this.getData(e),
n = this.getRawValue(t, e),
o = i.getRawIndex(t),
a = i.getName(t),
r = i.getRawDataItem(t),
s = i.getItemVisual(t, 'color'),
l = this.ecModel.getComponent('tooltip'),
u = Hi(l && l.get('renderMode')),
h = this.mainType,
c = 'series' === h;
return {
componentType: h,
componentSubType: this.subType,
componentIndex: this.componentIndex,
seriesType: c ? this.subType : null,
seriesIndex: this.seriesIndex,
seriesId: c ? this.id : null,
seriesName: c ? this.name : null,
name: a,
dataIndex: o,
data: r,
dataType: e,
value: n,
color: s,
marker: aa({ color: s, renderMode: u }),
$vars: ['seriesName', 'name', 'value'],
};
},
getFormattedLabel: function (t, e, i, n, o) {
e = e || 'normal';
var a = this.getData(i),
r = a.getItemModel(t),
s = this.getDataParams(t, i);
null != n && s.value instanceof Array && (s.value = s.value[n]);
var l = r.get(
'normal' === e
? [o || 'label', 'formatter']
: [e, o || 'label', 'formatter'],
);
return 'function' == typeof l
? ((s.status = e), l(s))
: 'string' == typeof l
? na(l, s).replace(HI, function (e, i) {
var n = i.length;
return (
'[' === i.charAt(0) &&
']' === i.charAt(n - 1) &&
(i = +i.slice(1, n - 1)),
fr(a, t, i)
);
})
: void 0;
},
getRawValue: function (t, e) {
return fr(this.getData(e), t);
},
formatTooltip: function () {},
},
UI = mr.prototype;
UI.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 o = this.context;
o.data = o.outputData = i.context.outputData;
}
this.__pipeline && (this.__pipeline.currentTask = this);
var a;
this._plan && !n && (a = this._plan(this.context));
var r = e(this._modBy),
s = this._modDataCount || 0,
l = e(t && t.modBy),
u = (t && t.modDataCount) || 0;
(r === l && s === u) || (a = 'reset');
var h;
(this._dirty || 'reset' === a) && ((this._dirty = !1), (h = yr(this, n))),
(this._modBy = l),
(this._modDataCount = u);
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 && (h || d < f)) {
var p = this._progress;
if (y(p)) for (var g = 0; g < p.length; g++) vr(this, p[g], d, f, l, u);
else vr(this, p, d, f, l, u);
}
this._dueIndex = f;
var m = null != this._settedOutputEnd ? this._settedOutputEnd : f;
this._outputDueEnd = m;
} else
this._dueIndex = this._outputDueEnd =
null != this._settedOutputEnd ? this._settedOutputEnd : this._dueEnd;
return this.unfinished();
};
var XI = (function () {
function t() {
return n < i ? n++ : null;
}
function e() {
var t = (n % r) * o + Math.ceil(n / r),
e = n >= i ? null : t < a ? t : n;
return n++, e;
}
var i,
n,
o,
a,
r,
s = {
reset: function (l, u, h, c) {
(n = l),
(i = u),
(o = h),
(a = c),
(r = Math.ceil(a / o)),
(s.next = o > 1 && a > 0 ? e : t);
},
};
return s;
})();
(UI.dirty = function () {
(this._dirty = !0), this._onDirty && this._onDirty(this.context);
}),
(UI.unfinished = function () {
return this._progress && this._dueIndex < this._dueEnd;
}),
(UI.pipe = function (t) {
(this._downstream !== t || this._dirty) &&
((this._downstream = t), (t._upstream = this), t.dirty());
}),
(UI.dispose = function () {
this._disposed ||
(this._upstream && (this._upstream._downstream = null),
this._downstream && (this._downstream._upstream = null),
(this._dirty = !1),
(this._disposed = !0));
}),
(UI.getUpstream = function () {
return this._upstream;
}),
(UI.getDownstream = function () {
return this._downstream;
}),
(UI.setOutputEnd = function (t) {
this._outputDueEnd = this._settedOutputEnd = t;
});
var jI = Bi(),
YI = lI.extend({
type: 'series.__base__',
seriesIndex: 0,
coordinateSystem: null,
defaultOption: null,
legendDataProvider: null,
visualColorAccessPath: 'itemStyle.color',
layoutMode: null,
init: function (t, e, i, n) {
(this.seriesIndex = this.componentIndex),
(this.dataTask = gr({ count: wr, reset: br })),
(this.dataTask.context = { model: this }),
this.mergeDefaultAndTheme(t, i),
Ma(this);
var o = this.getInitialData(t, i);
Mr(o, this),
(this.dataTask.context.data = o),
(jI(this).dataBeforeProcessed = o),
xr(this);
},
mergeDefaultAndTheme: function (t, e) {
var i = this.layoutMode,
o = i ? ga(t) : {},
a = this.subType;
lI.hasClass(a) && (a += 'Series'),
n(t, e.getTheme().get(this.subType)),
n(t, this.getDefaultOption()),
Ci(t, 'label', ['show']),
this.fillDataTextStyle(t.data),
i && pa(t, o, i);
},
mergeOption: function (t, e) {
(t = n(this.option, t, !0)), this.fillDataTextStyle(t.data);
var i = this.layoutMode;
i && pa(this.option, t, i), Ma(this);
var o = this.getInitialData(t, e);
Mr(o, this),
this.dataTask.dirty(),
(this.dataTask.context.data = o),
(jI(this).dataBeforeProcessed = o),
xr(this);
},
fillDataTextStyle: function (t) {
if (t && !S(t))
for (var e = ['show'], i = 0; i < t.length; i++)
t[i] && t[i].label && Ci(t[i], 'label', e);
},
getInitialData: function () {},
appendData: function (t) {
this.getRawData().appendData(t.data);
},
getData: function (t) {
var e = Tr(this);
if (e) {
var i = e.context.data;
return null == t ? i : i.getLinkedData(t);
}
return jI(this).data;
},
setData: function (t) {
var e = Tr(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);
}
jI(this).data = t;
},
getSource: function () {
return ba(this);
},
getRawData: function () {
return jI(this).dataBeforeProcessed;
},
getBaseAxis: function () {
var t = this.coordinateSystem;
return t && t.getBaseAxis && t.getBaseAxis();
},
formatTooltip: function (t, e, i, n) {
function o(t) {
return { renderMode: n, content: ia(ta(t)), style: l };
}
var a = this,
r = 'html' === (n = n || 'html') ? '
' : '\n',
s = 'richText' === n,
l = {},
u = 0,
h = this.getData(),
c = h.mapDimension('defaultedTooltip', !0),
f = c.length,
g = this.getRawValue(t),
m = y(g),
v = h.getItemVisual(t, 'color');
w(v) && v.colorStops && (v = (v.colorStops[0] || {}).color),
(v = v || 'transparent');
var x = (f > 1 || (m && !f)
? (function (i) {
function o(t, i) {
var o = h.getDimensionInfo(i);
if (o && !1 !== o.otherDims.tooltip) {
var c = o.type,
d = 'sub' + a.seriesIndex + 'at' + u,
p = aa({
color: v,
type: 'subItem',
renderMode: n,
markerId: d,
}),
g = 'string' == typeof p ? p : p.content,
m =
(r ? g + ia(o.displayName || '-') + ': ' : '') +
ia(
'ordinal' === c
? t + ''
: 'time' === c
? e
? ''
: sa('yyyy/MM/dd hh:mm:ss', t)
: ta(t),
);
m && f.push(m), s && ((l[d] = v), ++u);
}
}
var r = p(
i,
function (t, e, i) {
var n = h.getDimensionInfo(i);
return (t |=
n && !1 !== n.tooltip && null != n.displayName);
},
0,
),
f = [];
c.length
? d(c, function (e) {
o(fr(h, t, e), e);
})
: d(i, o);
var g = r ? (s ? '\n' : '
') : '',
m = g + f.join(g || ', ');
return { renderMode: n, content: m, style: l };
})(g)
: o(f ? fr(h, t, c[0]) : m ? g[0] : g)
).content,
_ = a.seriesIndex + 'at' + u,
b = aa({ color: v, type: 'item', renderMode: n, markerId: _ });
(l[_] = v), ++u;
var S = h.getName(t),
M = this.name;
Oi(this) || (M = ''), (M = M ? ia(M) + (e ? ': ' : r) : '');
var I = 'string' == typeof b ? b : b.content;
return {
html: e ? I + M + x : M + I + (S ? ia(S) + ': ' + x : x),
markers: l,
};
},
isAnimationEnabled: function () {
if (U_.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,
o = dI.getColorFromPalette.call(this, t, e, i);
return o || (o = n.getColorFromPalette(t, e, i)), o;
},
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,
});
h(YI, ZI), h(YI, dI);
var qI = function () {
(this.group = new tb()), (this.uid = Ro('viewComponent'));
};
qI.prototype = {
constructor: qI,
init: function (t, e) {},
render: function (t, e, i, n) {},
dispose: function () {},
filterForExposedEvent: null,
};
var KI = qI.prototype;
(KI.updateView = KI.updateLayout = KI.updateVisual = function (
t,
e,
i,
n,
) {}),
ji(qI),
$i(qI, { registerWhenExtend: !0 });
var $I = function () {
var t = Bi();
return function (e) {
var i = t(e),
n = e.pipelineContext,
o = i.large,
a = i.progressiveRender,
r = (i.large = n.large),
s = (i.progressiveRender = n.progressiveRender);
return !!(o ^ r || a ^ s) && 'reset';
};
},
JI = Bi(),
QI = $I();
Ar.prototype = {
type: 'chart',
init: function (t, e) {},
render: function (t, e, i, n) {},
highlight: function (t, e, i, n) {
Cr(t.getData(), n, 'emphasis');
},
downplay: function (t, e, i, n) {
Cr(t.getData(), n, 'normal');
},
remove: function (t, e) {
this.group.removeAll();
},
dispose: function () {},
incrementalPrepareRender: null,
incrementalRender: null,
updateTransform: null,
filterForExposedEvent: null,
};
var tT = Ar.prototype;
(tT.updateView = tT.updateLayout = tT.updateVisual = function (t, e, i, n) {
this.render(t, e, i, n);
}),
ji(Ar),
$i(Ar, { registerWhenExtend: !0 }),
(Ar.markUpdateMethod = function (t, e) {
JI(t).updateMethod = e;
});
var eT = {
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);
},
},
},
iT = '\0__throttleOriginMethod',
nT = '\0__throttleRate',
oT = '\0__throttleType',
aT = {
createOnAllSeries: !0,
performRawSeries: !0,
reset: function (t, e) {
var i = t.getData(),
n = (t.visualColorAccessPath || 'itemStyle.color').split('.'),
o =
t.get(n) || t.getColorFromPalette(t.name, null, e.getSeriesCount());
if ((i.setVisual('color', o), !e.isSeriesFiltered(t))) {
'function' != typeof o ||
o instanceof IM ||
i.each(function (e) {
i.setItemVisual(e, 'color', o(t.getDataParams(e)));
});
return {
dataEach: i.hasItemOption
? function (t, e) {
var i = t.getItemModel(e).get(n, !0);
null != i && t.setItemVisual(e, 'color', i);
}
: null,
};
}
},
},
rT = {
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: '' },
},
},
},
sT = function (t, e) {
function i(t, e) {
if ('string' != typeof t) return t;
var i = t;
return (
d(e, function (t, e) {
i = i.replace(new RegExp('\\{\\s*' + e + '\\s*\\}', 'g'), t);
}),
i
);
}
function n(t) {
var e = a.get(t);
if (null == e) {
for (var i = t.split('.'), n = rT.aria, o = 0; o < i.length; ++o)
n = n[i[o]];
return n;
}
return e;
}
function o(t) {
return rT.series.typeNames[t] || '自定义图';
}
var a = e.getModel('aria');
if (a.get('show'))
if (a.get('description'))
t.setAttribute('aria-label', a.get('description'));
else {
var r = 0;
e.eachSeries(function (t, e) {
++r;
}, this);
var s,
l = a.get('data.maxCount') || 10,
u = a.get('series.maxCount') || 10,
h = Math.min(r, u);
if (!(r < 1)) {
var c = (function () {
var t = e.getModel('title').option;
return t && t.length && (t = t[0]), t && t.text;
})();
s = c
? i(n('general.withTitle'), { title: c })
: n('general.withoutTitle');
var f = [];
(s += i(
n(r > 1 ? 'series.multiple.prefix' : 'series.single.prefix'),
{ seriesCount: r },
)),
e.eachSeries(function (t, e) {
if (e < h) {
var a,
s = t.get('name'),
u = 'series.' + (r > 1 ? 'multiple' : 'single') + '.';
a = i((a = n(s ? u + 'withName' : u + 'withoutName')), {
seriesId: t.seriesIndex,
seriesName: t.get('name'),
seriesType: o(t.subType),
});
var c = t.getData();
(window.data = c),
c.count() > l
? (a += i(n('data.partialData'), { displayCnt: l }))
: (a += n('data.allData'));
for (var d = [], p = 0; p < c.count(); p++)
if (p < l) {
var g = c.getName(p),
m = fr(c, p);
d.push(
i(n(g ? 'data.withName' : 'data.withoutName'), {
name: g,
value: m,
}),
);
}
(a +=
d.join(n('data.separator.middle')) +
n('data.separator.end')),
f.push(a);
}
}),
(s +=
f.join(n('series.multiple.separator.middle')) +
n('series.multiple.separator.end')),
t.setAttribute('aria-label', s);
}
}
},
lT = Math.PI,
uT = Er.prototype;
(uT.restoreData = function (t, e) {
t.restoreData(e),
this._stageTaskMap.each(function (t) {
var e = t.overallTask;
e && e.dirty();
});
}),
(uT.getPerformArgs = function (t, e) {
if (t.__pipeline) {
var i = this._pipelineMap.get(t.__pipeline.id),
n = i.context,
o =
!e &&
i.progressiveEnabled &&
(!n || n.progressiveRender) &&
t.__idxInPipeline > i.blockIndex
? i.step
: null,
a = n && n.modDataCount;
return {
step: o,
modBy: null != a ? Math.ceil(a / o) : null,
modDataCount: a,
};
}
}),
(uT.getPipeline = function (t) {
return this._pipelineMap.get(t);
}),
(uT.updateStreamModes = function (t, e) {
var i = this._pipelineMap.get(t.uid),
n = t.getData().count(),
o =
i.progressiveEnabled &&
e.incrementalPrepareRender &&
n >= i.threshold,
a = t.get('large') && n >= t.get('largeThreshold'),
r = 'mod' === t.get('progressiveChunkMode') ? n : null;
t.pipelineContext = i.context = {
progressiveRender: o,
modDataCount: r,
large: a,
};
}),
(uT.restorePipelines = function (t) {
var e = this,
i = (e._pipelineMap = R());
t.eachSeries(function (t) {
var n = t.getProgressive(),
o = t.uid;
i.set(o, {
id: o,
head: null,
tail: null,
threshold: t.getProgressiveThreshold(),
progressiveEnabled:
n && !(t.preventIncremental && t.preventIncremental()),
blockIndex: -1,
step: Math.round(n || 700),
count: 0,
}),
jr(e, t, t.dataTask);
});
}),
(uT.prepareStageTasks = function () {
var t = this._stageTaskMap,
e = this.ecInstance.getModel(),
i = this.api;
d(
this._allHandlers,
function (n) {
var o = t.get(n.uid) || t.set(n.uid, []);
n.reset && zr(this, n, o, e, i),
n.overallReset && Br(this, n, o, e, i);
},
this,
);
}),
(uT.prepareView = function (t, e, i, n) {
var o = t.renderTask,
a = o.context;
(a.model = e),
(a.ecModel = i),
(a.api = n),
(o.__block = !t.incrementalPrepareRender),
jr(this, e, o);
}),
(uT.performDataProcessorTasks = function (t, e) {
Rr(this, this._dataProcessorHandlers, t, e, { block: !0 });
}),
(uT.performVisualTasks = function (t, e, i) {
Rr(this, this._visualHandlers, t, e, i);
}),
(uT.performSeriesTasks = function (t) {
var e;
t.eachSeries(function (t) {
e |= t.dataTask.perform();
}),
(this.unfinished |= e);
}),
(uT.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 hT = (uT.updatePayload = function (t, e) {
'remain' !== e && (t.context.payload = e);
}),
cT = Ur(0);
Er.wrapStageHandler = function (t, e) {
return (
x(t) && (t = { overallReset: t, seriesType: Yr(t) }),
(t.uid = Ro('stageHandler')),
e && (t.visualType = e),
t
);
};
var dT,
fT = {},
pT = {};
qr(fT, MI),
qr(pT, Ga),
(fT.eachSeriesByType = fT.eachRawSeriesByType = function (t) {
dT = t;
}),
(fT.eachComponent = function (t) {
'series' === t.mainType && t.subType && (dT = t.subType);
});
var gT = [
'#37A2DA',
'#32C5E9',
'#67E0E3',
'#9FE6B8',
'#FFDB5C',
'#ff9f7f',
'#fb7293',
'#E062AE',
'#E690D1',
'#e7bcf3',
'#9d96f5',
'#8378EA',
'#96BFFF',
],
mT = {
color: gT,
colorLayer: [
['#37A2DA', '#ffd85c', '#fd7b5f'],
['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],
[
'#37A2DA',
'#32C5E9',
'#9FE6B8',
'#FFDB5C',
'#ff9f7f',
'#fb7293',
'#e7bcf3',
'#8378EA',
'#96BFFF',
],
gT,
],
},
vT = [
'#dd6b66',
'#759aa0',
'#e69d87',
'#8dc1a9',
'#ea7e53',
'#eedd78',
'#73a373',
'#73b9bc',
'#7289ab',
'#91ca8c',
'#f49f42',
],
yT = {
color: vT,
backgroundColor: '#333',
tooltip: {
axisPointer: {
lineStyle: { color: '#eee' },
crossStyle: { color: '#eee' },
},
},
legend: { textStyle: { color: '#eee' } },
textStyle: { color: '#eee' },
title: { textStyle: { color: '#eee' } },
toolbox: { iconStyle: { normal: { borderColor: '#eee' } } },
dataZoom: { textStyle: { color: '#eee' } },
visualMap: { textStyle: { color: '#eee' } },
timeline: {
lineStyle: { color: '#eee' },
itemStyle: { normal: { color: vT[1] } },
label: { normal: { textStyle: { color: '#eee' } } },
controlStyle: { normal: { color: '#eee', borderColor: '#eee' } },
},
timeAxis: {
axisLine: { lineStyle: { color: '#eee' } },
axisTick: { lineStyle: { color: '#eee' } },
axisLabel: { textStyle: { color: '#eee' } },
splitLine: { lineStyle: { type: 'dashed', color: '#aaa' } },
splitArea: { areaStyle: { color: '#eee' } },
},
logAxis: {
axisLine: { lineStyle: { color: '#eee' } },
axisTick: { lineStyle: { color: '#eee' } },
axisLabel: { textStyle: { color: '#eee' } },
splitLine: { lineStyle: { type: 'dashed', color: '#aaa' } },
splitArea: { areaStyle: { color: '#eee' } },
},
valueAxis: {
axisLine: { lineStyle: { color: '#eee' } },
axisTick: { lineStyle: { color: '#eee' } },
axisLabel: { textStyle: { color: '#eee' } },
splitLine: { lineStyle: { type: 'dashed', color: '#aaa' } },
splitArea: { areaStyle: { color: '#eee' } },
},
categoryAxis: {
axisLine: { lineStyle: { color: '#eee' } },
axisTick: { lineStyle: { color: '#eee' } },
axisLabel: { textStyle: { color: '#eee' } },
splitLine: { lineStyle: { type: 'dashed', color: '#aaa' } },
splitArea: { areaStyle: { color: '#eee' } },
},
line: { symbol: 'circle' },
graph: { color: vT },
gauge: { title: { textStyle: { color: '#eee' } } },
candlestick: {
itemStyle: {
normal: {
color: '#FD1050',
color0: '#0CF49B',
borderColor: '#FD1050',
borderColor0: '#0CF49B',
},
},
},
};
(yT.categoryAxis.splitLine.show = !1),
lI.extend({
type: 'dataset',
defaultOption: {
seriesLayoutBy: _I,
sourceHeader: null,
dimensions: null,
source: null,
},
optionUpdated: function () {
wa(this);
},
}),
qI.extend({ type: 'dataset' });
var xT = Pn.extend({
type: 'ellipse',
shape: { cx: 0, cy: 0, rx: 0, ry: 0 },
buildPath: function (t, e) {
var i = 0.5522848,
n = e.cx,
o = e.cy,
a = e.rx,
r = e.ry,
s = a * i,
l = r * i;
t.moveTo(n - a, o),
t.bezierCurveTo(n - a, o - l, n - s, o - r, n, o - r),
t.bezierCurveTo(n + s, o - r, n + a, o - l, n + a, o),
t.bezierCurveTo(n + a, o + l, n + s, o + r, n, o + r),
t.bezierCurveTo(n - s, o + r, n - a, o + l, n - a, o),
t.closePath();
},
}),
_T = /[\s,]+/;
($r.prototype.parse = function (t, e) {
e = e || {};
var i = Kr(t);
if (!i) throw new Error('Illegal svg');
var n = new tb();
this._root = n;
var o = i.getAttribute('viewBox') || '',
a = parseFloat(i.getAttribute('width') || e.width),
r = parseFloat(i.getAttribute('height') || e.height);
isNaN(a) && (a = null), isNaN(r) && (r = null), es(i, n, null, !0);
for (var s = i.firstChild; s; ) this._parseNode(s, n), (s = s.nextSibling);
var l, u;
if (o) {
var h = P(o).split(_T);
h.length >= 4 &&
(l = {
x: parseFloat(h[0] || 0),
y: parseFloat(h[1] || 0),
width: parseFloat(h[2]),
height: parseFloat(h[3]),
});
}
if (l && null != a && null != r && ((u = as(l, a, r)), !e.ignoreViewBox)) {
var c = n;
(n = new tb()).add(c),
(c.scale = u.scale.slice()),
(c.position = u.position.slice());
}
return (
e.ignoreRootClip ||
null == a ||
null == r ||
n.setClipPath(new yM({ shape: { x: 0, y: 0, width: a, height: r } })),
{ root: n, width: a, height: r, viewBoxRect: l, viewBoxTransform: u }
);
}),
($r.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) {
if ((r = bT[i])) {
var o = r.call(this, t),
a = t.getAttribute('id');
a && (this._defs[a] = o);
}
} else {
var r = wT[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);
}),
($r.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 o = new rM({
style: { text: t.textContent, transformText: !0 },
position: [this._textX || 0, this._textY || 0],
});
Qr(e, o), es(t, o, this._defs);
var a = o.style.fontSize;
a &&
a < 9 &&
((o.style.fontSize = 9),
(o.scale = o.scale || [1, 1]),
(o.scale[0] *= a / 9),
(o.scale[1] *= a / 9));
var r = o.getBoundingRect();
return (this._textX += r.width), e.add(o), o;
});
var wT = {
g: function (t, e) {
var i = new tb();
return Qr(e, i), es(t, i, this._defs), i;
},
rect: function (t, e) {
var i = new yM();
return (
Qr(e, i),
es(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 sM();
return (
Qr(e, i),
es(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 _M();
return (
Qr(e, i),
es(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 xT();
return (
Qr(e, i),
es(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 = ts(i));
var n = new pM({ shape: { points: i || [] } });
return Qr(e, n), es(t, n, this._defs), n;
},
polyline: function (t, e) {
var i = new Pn();
Qr(e, i), es(t, i, this._defs);
var n = t.getAttribute('points');
return n && (n = ts(n)), new gM({ shape: { points: n || [] } });
},
image: function (t, e) {
var i = new fi();
return (
Qr(e, i),
es(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,
o = t.getAttribute('dx') || 0,
a = t.getAttribute('dy') || 0;
(this._textX = parseFloat(i) + parseFloat(o)),
(this._textY = parseFloat(n) + parseFloat(a));
var r = new tb();
return Qr(e, r), es(t, r, this._defs), r;
},
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 o = t.getAttribute('dx') || 0,
a = t.getAttribute('dy') || 0,
r = new tb();
return (
Qr(e, r),
es(t, r, this._defs),
(this._textX += o),
(this._textY += a),
r
);
},
path: function (t, e) {
var i = Rn(t.getAttribute('d') || '');
return Qr(e, i), es(t, i, this._defs), i;
},
},
bT = {
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),
o = parseInt(t.getAttribute('y2') || 0, 10),
a = new TM(e, i, n, o);
return Jr(t, a), a;
},
radialgradient: function (t) {},
},
ST = {
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',
},
MT = /url\(\s*#(.*?)\)/,
IT = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g,
TT = /([^\s:;]+)\s*:\s*([^:;]+)/g,
AT = R(),
DT = {
registerMap: function (t, e, i) {
var n;
return (
y(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 }])),
d(n, function (t) {
var e = t.type;
'geoJson' === e && (e = t.type = 'geoJSON'), (0, CT[e])(t);
}),
AT.set(t, n)
);
},
retrieveMap: function (t) {
return AT.get(t);
},
},
CT = {
geoJSON: function (t) {
var e = t.source;
t.geoJSON = _(e)
? 'undefined' != typeof JSON && JSON.parse
? JSON.parse(e)
: new Function('return (' + e + ');')()
: e;
},
svg: function (t) {
t.svgXML = Kr(t.source);
},
},
LT = k,
kT = d,
PT = x,
NT = w,
OT = lI.parseClassType,
ET = { zrender: '4.0.6' },
RT = 1e3,
zT = 1e3,
BT = 3e3,
VT = {
PROCESSOR: { FILTER: RT, STATISTIC: 5e3 },
VISUAL: {
LAYOUT: zT,
GLOBAL: 2e3,
CHART: BT,
COMPONENT: 4e3,
BRUSH: 5e3,
},
},
GT = '__flagInMainProcess',
FT = '__optionUpdated',
WT = /^[a-zA-Z0-9_]+$/;
(ls.prototype.on = ss('on')),
(ls.prototype.off = ss('off')),
(ls.prototype.one = ss('one')),
h(ls, fw);
var HT = us.prototype;
(HT._onframe = function () {
if (!this._disposed) {
var t = this._scheduler;
if (this[FT]) {
var e = this[FT].silent;
(this[GT] = !0),
cs(this),
ZT.update.call(this),
(this[GT] = !1),
(this[FT] = !1),
gs.call(this, e),
ms.call(this, e);
} else if (t.unfinished) {
var i = 1,
n = this._model;
this._api;
t.unfinished = !1;
do {
var o = +new Date();
t.performSeriesTasks(n),
t.performDataProcessorTasks(n),
fs(this, n),
t.performVisualTasks(n),
bs(this, this._model, 0, 'remain'),
(i -= +new Date() - o);
} while (i > 0 && t.unfinished);
t.unfinished || this._zr.flush();
}
}
}),
(HT.getDom = function () {
return this._dom;
}),
(HT.getZr = function () {
return this._zr;
}),
(HT.setOption = function (t, e, i) {
var n;
if (
(NT(e) && ((i = e.lazyUpdate), (n = e.silent), (e = e.notMerge)),
(this[GT] = !0),
!this._model || e)
) {
var o = new Wa(this._api),
a = this._theme,
r = (this._model = new MI(null, null, a, o));
(r.scheduler = this._scheduler), r.init(null, null, a, o);
}
this._model.setOption(t, qT),
i
? ((this[FT] = { silent: n }), (this[GT] = !1))
: (cs(this),
ZT.update.call(this),
this._zr.flush(),
(this[FT] = !1),
(this[GT] = !1),
gs.call(this, n),
ms.call(this, n));
}),
(HT.setTheme = function () {
console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');
}),
(HT.getModel = function () {
return this._model;
}),
(HT.getOption = function () {
return this._model && this._model.getOption();
}),
(HT.getWidth = function () {
return this._zr.getWidth();
}),
(HT.getHeight = function () {
return this._zr.getHeight();
}),
(HT.getDevicePixelRatio = function () {
return this._zr.painter.dpr || window.devicePixelRatio || 1;
}),
(HT.getRenderedCanvas = function (t) {
if (U_.canvasSupported)
return (
((t = t || {}).pixelRatio = t.pixelRatio || 1),
(t.backgroundColor =
t.backgroundColor || this._model.get('backgroundColor')),
this._zr.painter.getRenderedCanvas(t)
);
}),
(HT.getSvgDataUrl = function () {
if (U_.svgSupported) {
var t = this._zr;
return (
d(t.storage.getDisplayList(), function (t) {
t.stopAnimation(!0);
}),
t.painter.pathToDataUrl()
);
}
}),
(HT.getDataURL = function (t) {
var e = (t = t || {}).excludeComponents,
i = this._model,
n = [],
o = this;
kT(e, function (t) {
i.eachComponent({ mainType: t }, function (t) {
var e = o._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 (
kT(n, function (t) {
t.group.ignore = !1;
}),
a
);
}),
(HT.getConnectedDataURL = function (t) {
if (U_.canvasSupported) {
var e = this.group,
n = Math.min,
o = Math.max;
if (eA[e]) {
var a = 1 / 0,
r = 1 / 0,
s = -1 / 0,
l = -1 / 0,
u = [],
h = (t && t.pixelRatio) || 1;
d(tA, function (h, c) {
if (h.group === e) {
var d = h.getRenderedCanvas(i(t)),
f = h.getDom().getBoundingClientRect();
(a = n(f.left, a)),
(r = n(f.top, r)),
(s = o(f.right, s)),
(l = o(f.bottom, l)),
u.push({ dom: d, left: f.left, top: f.top });
}
});
var c = (s *= h) - (a *= h),
f = (l *= h) - (r *= h),
p = iw();
(p.width = c), (p.height = f);
var g = Ii(p);
return (
kT(u, function (t) {
var e = new fi({
style: { x: t.left * h - a, y: t.top * h - r, image: t.dom },
});
g.add(e);
}),
g.refreshImmediately(),
p.toDataURL('image/' + ((t && t.type) || 'png'))
);
}
return this.getDataURL(t);
}
}),
(HT.convertToPixel = v(hs, 'convertToPixel')),
(HT.convertFromPixel = v(hs, 'convertFromPixel')),
(HT.containPixel = function (t, e) {
var i;
return (
(t = Vi(this._model, t)),
d(
t,
function (t, n) {
n.indexOf('Models') >= 0 &&
d(
t,
function (t) {
var o = t.coordinateSystem;
if (o && o.containPoint) i |= !!o.containPoint(e);
else if ('seriesModels' === n) {
var a = this._chartsMap[t.__viewId];
a && a.containPoint && (i |= a.containPoint(e, t));
}
},
this,
);
},
this,
),
!!i
);
}),
(HT.getVisual = function (t, e) {
var i = (t = Vi(this._model, t, {
defaultMainType: 'series',
})).seriesModel.getData(),
n = t.hasOwnProperty('dataIndexInside')
? t.dataIndexInside
: t.hasOwnProperty('dataIndex')
? i.indexOfRawIndex(t.dataIndex)
: null;
return null != n ? i.getItemVisual(n, e) : i.getVisual(e);
}),
(HT.getViewOfComponentModel = function (t) {
return this._componentsMap[t.__viewId];
}),
(HT.getViewOfSeriesModel = function (t) {
return this._chartsMap[t.__viewId];
});
var ZT = {
prepareAndUpdate: function (t) {
cs(this), ZT.update.call(this, t);
},
update: function (t) {
var e = this._model,
i = this._api,
n = this._zr,
o = this._coordSysMgr,
a = this._scheduler;
if (e) {
a.restoreData(e, t),
a.performSeriesTasks(e),
o.create(e, i),
a.performDataProcessorTasks(e, t),
fs(this, e),
o.update(e, i),
xs(e),
a.performVisualTasks(e, t),
_s(this, e, i, t);
var r = e.get('backgroundColor') || 'transparent';
if (U_.canvasSupported) n.setBackgroundColor(r);
else {
var s = Gt(r);
(r = qt(s, 'rgb')), 0 === s[3] && (r = 'transparent');
}
Ss(e, i);
}
},
updateTransform: function (t) {
var e = this._model,
i = this,
n = this._api;
if (e) {
var o = [];
e.eachComponent(function (a, r) {
var s = i.getViewOfComponentModel(r);
if (s && s.__alive)
if (s.updateTransform) {
var l = s.updateTransform(r, e, n, t);
l && l.update && o.push(s);
} else o.push(s);
});
var a = R();
e.eachSeries(function (o) {
var r = i._chartsMap[o.__viewId];
if (r.updateTransform) {
var s = r.updateTransform(o, e, n, t);
s && s.update && a.set(o.uid, 1);
} else a.set(o.uid, 1);
}),
xs(e),
this._scheduler.performVisualTasks(e, t, {
setDirty: !0,
dirtyMap: a,
}),
bs(i, e, 0, t, a),
Ss(e, this._api);
}
},
updateView: function (t) {
var e = this._model;
e &&
(Ar.markUpdateMethod(t, 'updateView'),
xs(e),
this._scheduler.performVisualTasks(e, t, { setDirty: !0 }),
_s(this, this._model, this._api, t),
Ss(e, this._api));
},
updateVisual: function (t) {
ZT.update.call(this, t);
},
updateLayout: function (t) {
ZT.update.call(this, t);
},
};
(HT.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[GT] = !0),
i && cs(this),
ZT.update.call(this),
(this[GT] = !1),
gs.call(this, n),
ms.call(this, n);
}
}),
(HT.showLoading = function (t, e) {
if (
(NT(t) && ((e = t), (t = '')),
(t = t || 'default'),
this.hideLoading(),
QT[t])
) {
var i = QT[t](this._api, e),
n = this._zr;
(this._loadingFX = i), n.add(i);
}
}),
(HT.hideLoading = function () {
this._loadingFX && this._zr.remove(this._loadingFX),
(this._loadingFX = null);
}),
(HT.makeActionFromEvent = function (t) {
var e = a({}, t);
return (e.type = jT[t.type]), e;
}),
(HT.dispatchAction = function (t, e) {
NT(e) || (e = { silent: !!e }),
XT[t.type] &&
this._model &&
(this[GT]
? this._pendingActions.push(t)
: (ps.call(this, t, e.silent),
e.flush
? this._zr.flush(!0)
: !1 !== e.flush &&
U_.browser.weChat &&
this._throttledZrFlush(),
gs.call(this, e.silent),
ms.call(this, e.silent)));
}),
(HT.appendData = function (t) {
var e = t.seriesIndex;
this.getModel().getSeriesByIndex(e).appendData(t),
(this._scheduler.unfinished = !0);
}),
(HT.on = ss('on')),
(HT.off = ss('off')),
(HT.one = ss('one'));
var UT = [
'click',
'dblclick',
'mouseover',
'mouseout',
'mousemove',
'mousedown',
'mouseup',
'globalout',
'contextmenu',
];
(HT._initEvents = function () {
kT(
UT,
function (t) {
var e = function (e) {
var i,
n = this.getModel(),
o = e.target;
if ('globalout' === t) i = {};
else if (o && null != o.dataIndex) {
var r = o.dataModel || n.getSeriesByIndex(o.seriesIndex);
i = (r && r.getDataParams(o.dataIndex, o.dataType, o)) || {};
} else o && o.eventData && (i = a({}, o.eventData));
if (i) {
var s = i.componentType,
l = i.componentIndex;
('markLine' !== s && 'markPoint' !== s && 'markArea' !== s) ||
((s = 'series'), (l = i.seriesIndex));
var u = s && null != l && n.getComponent(s, l),
h =
u &&
this['series' === u.mainType ? '_chartsMap' : '_componentsMap'][
u.__viewId
];
(i.event = e),
(i.type = t),
(this._ecEventProcessor.eventInfo = {
targetEl: o,
packedEvent: i,
model: u,
view: h,
}),
this.trigger(t, i);
}
};
(e.zrEventfulCallAtLast = !0), this._zr.on(t, e, this);
},
this,
),
kT(
jT,
function (t, e) {
this._messageCenter.on(
e,
function (t) {
this.trigger(e, t);
},
this,
);
},
this,
);
}),
(HT.isDisposed = function () {
return this._disposed;
}),
(HT.clear = function () {
this.setOption({ series: [] }, !0);
}),
(HT.dispose = function () {
if (!this._disposed) {
(this._disposed = !0), Fi(this.getDom(), oA, '');
var t = this._api,
e = this._model;
kT(this._componentsViews, function (i) {
i.dispose(e, t);
}),
kT(this._chartsViews, function (i) {
i.dispose(e, t);
}),
this._zr.dispose(),
delete tA[this.id];
}
}),
h(us, fw),
(Ds.prototype = {
constructor: Ds,
normalizeQuery: function (t) {
var e = {},
i = {},
n = {};
if (_(t)) {
var o = OT(t);
(e.mainType = o.main || null), (e.subType = o.sub || null);
} else {
var a = ['Index', 'Name', 'Id'],
r = { name: 1, dataIndex: 1, dataType: 1 };
d(t, function (t, o) {
for (var s = !1, l = 0; l < a.length; l++) {
var u = a[l],
h = o.lastIndexOf(u);
if (h > 0 && h === o.length - u.length) {
var c = o.slice(0, h);
'data' !== c &&
((e.mainType = c), (e[u.toLowerCase()] = t), (s = !0));
}
}
r.hasOwnProperty(o) && ((i[o] = t), (s = !0)), s || (n[o] = t);
});
}
return { cptQuery: e, dataQuery: i, otherQuery: n };
},
filter: function (t, e, i) {
function n(t, e, i, n) {
return null == t[i] || e[n || i] === t[i];
}
var o = this.eventInfo;
if (!o) return !0;
var a = o.targetEl,
r = o.packedEvent,
s = o.model,
l = o.view;
if (!s || !l) return !0;
var u = e.cptQuery,
h = e.dataQuery;
return (
n(u, s, 'mainType') &&
n(u, s, 'subType') &&
n(u, s, 'index', 'componentIndex') &&
n(u, s, 'name') &&
n(u, s, 'id') &&
n(h, r, 'name') &&
n(h, r, 'dataIndex') &&
n(h, r, 'dataType') &&
(!l.filterForExposedEvent ||
l.filterForExposedEvent(t, e.otherQuery, a, r))
);
},
afterTrigger: function () {
this.eventInfo = null;
},
});
var XT = {},
jT = {},
YT = [],
qT = [],
KT = [],
$T = [],
JT = {},
QT = {},
tA = {},
eA = {},
iA = new Date() - 0,
nA = new Date() - 0,
oA = '_echarts_instance_',
aA = Ls;
Bs(2e3, aT),
Ns(BI),
Os(5e3, function (t) {
var e = R();
t.eachSeries(function (t) {
var i = t.get('stack');
if (i) {
var n = e.get(i) || e.set(i, []),
o = t.getData(),
a = {
stackResultDimension: o.getCalculationInfo(
'stackResultDimension',
),
stackedOverDimension: o.getCalculationInfo(
'stackedOverDimension',
),
stackedDimension: o.getCalculationInfo('stackedDimension'),
stackedByDimension: o.getCalculationInfo('stackedByDimension'),
isStackedByIndex: o.getCalculationInfo('isStackedByIndex'),
data: o,
seriesModel: t,
};
if (
!a.stackedDimension ||
(!a.isStackedByIndex && !a.stackedByDimension)
)
return;
n.length &&
o.setCalculationInfo(
'stackedOnSeries',
n[n.length - 1].seriesModel,
),
n.push(a);
}
}),
e.each(ar);
}),
Gs('default', function (t, e) {
r((e = e || {}), {
text: 'loading',
color: '#c23531',
textColor: '#000',
maskColor: 'rgba(255, 255, 255, 0.8)',
zlevel: 0,
});
var i = new yM({
style: { fill: e.maskColor },
zlevel: e.zlevel,
z: 1e4,
}),
n = new SM({
shape: { startAngle: -lT / 2, endAngle: -lT / 2 + 0.1, r: 10 },
style: { stroke: e.color, lineCap: 'round', lineWidth: 5 },
zlevel: e.zlevel,
z: 10001,
}),
o = new yM({
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 * lT) / 2 })
.start('circularInOut'),
n
.animateShape(!0)
.when(1e3, { startAngle: (3 * lT) / 2 })
.delay(300)
.start('circularInOut');
var a = new tb();
return (
a.add(n),
a.add(o),
a.add(i),
(a.resize = function () {
var e = t.getWidth() / 2,
a = t.getHeight() / 2;
n.setShape({ cx: e, cy: a });
var r = n.shape.r;
o.setShape({ x: e - r, y: a - r, width: 2 * r, height: 2 * r }),
i.setShape({
x: 0,
y: 0,
width: t.getWidth(),
height: t.getHeight(),
});
}),
a.resize(),
a
);
}),
Es({ type: 'highlight', event: 'highlight', update: 'highlight' }, B),
Es({ type: 'downplay', event: 'downplay', update: 'downplay' }, B),
Ps('light', mT),
Ps('dark', yT);
var rA = {};
Xs.prototype = {
constructor: Xs,
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 = this._old,
e = this._new,
i = {},
n = [],
o = [];
for (
js(t, {}, n, '_oldKeyGetter', this),
js(e, i, o, '_newKeyGetter', this),
a = 0;
a < t.length;
a++
)
null != (s = i[(r = n[a])])
? ((u = s.length)
? (1 === u && (i[r] = null), (s = s.unshift()))
: (i[r] = null),
this._update && this._update(s, a))
: this._remove && this._remove(a);
for (var a = 0; a < o.length; a++) {
var r = o[a];
if (i.hasOwnProperty(r)) {
var s = i[r];
if (null == s) continue;
if (s.length)
for (var l = 0, u = s.length; l < u; l++)
this._add && this._add(s[l]);
else this._add && this._add(s);
}
}
},
};
var sA = R(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']),
lA = w,
uA = -1,
hA = 'e\0\0',
cA = {
float: 'undefined' == typeof Float64Array ? Array : Float64Array,
int: 'undefined' == typeof Int32Array ? Array : Int32Array,
ordinal: Array,
number: Array,
time: Array,
},
dA = 'undefined' == typeof Uint32Array ? Array : Uint32Array,
fA = 'undefined' == typeof Int32Array ? Array : Int32Array,
pA = 'undefined' == typeof Uint16Array ? Array : Uint16Array,
gA = [
'hasItemOption',
'_nameList',
'_idList',
'_invertedIndicesMap',
'_rawData',
'_chunkSize',
'_chunkCount',
'_dimValueGetter',
'_count',
'_rawCount',
'_nameDimIdx',
'_idDimIdx',
],
mA = ['_extent', '_approximateExtent', '_rawExtent'],
vA = function (t, e) {
t = t || ['x', 'y'];
for (var i = {}, n = [], o = {}, a = 0; a < t.length; a++) {
var r = t[a];
_(r) && (r = { name: r });
var s = r.name;
(r.type = r.type || 'float'),
r.coordDim || ((r.coordDim = s), (r.coordDimIndex = 0)),
(r.otherDims = r.otherDims || {}),
n.push(s),
(i[s] = r),
(r.index = a),
r.createInvertedIndices && (o[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 = Ys(this)),
(this._invertedIndicesMap = o),
(this._calculationInfo = {});
},
yA = vA.prototype;
(yA.type = 'list'),
(yA.hasItemOption = !0),
(yA.getDimension = function (t) {
return isNaN(t) || (t = this.dimensions[t] || t), t;
}),
(yA.getDimensionInfo = function (t) {
return this._dimensionInfos[this.getDimension(t)];
}),
(yA.getDimensionsOnCoord = function () {
return this._dimensionsSummary.dataDimsOnCoord.slice();
}),
(yA.mapDimension = function (t, e) {
var i = this._dimensionsSummary;
if (null == e) return i.encodeFirstDimNotExtra[t];
var n = i.encode[t];
return !0 === e ? (n || []).slice() : n && n[e];
}),
(yA.initData = function (t, e, i) {
(_a.isInstance(t) || c(t)) && (t = new rr(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 =
WI[this._rawData.getSource().sourceFormat]),
(this._dimValueGetter = i = i || this.defaultDimValueGetter),
(this._dimValueGetterArrayRows = WI.arrayRows),
(this._rawExtent = {}),
this._initDataFromProvider(0, t.count()),
t.pure && (this.hasItemOption = !1);
}),
(yA.getProvider = function () {
return this._rawData;
}),
(yA.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);
}),
(yA.appendValues = function (t, e) {
for (
var i = this._chunkSize,
n = this._storage,
o = this.dimensions,
a = o.length,
r = this._rawExtent,
s = this.count(),
l = s + Math.max(t.length, e ? e.length : 0),
u = this._chunkCount,
h = 0;
h < a;
h++
)
r[(v = o[h])] || (r[v] = [1 / 0, -1 / 0]),
n[v] || (n[v] = []),
tl(n, this._dimensionInfos[v], i, u, l),
(this._chunkCount = n[v].length);
for (var c = new Array(a), d = s; d < l; d++) {
for (
var f = d - s, p = Math.floor(d / i), g = d % i, m = 0;
m < a;
m++
) {
var v = o[m],
y = this._dimValueGetterArrayRows(t[f] || c, v, f, m);
n[v][p][g] = y;
var x = r[v];
y < x[0] && (x[0] = y), y > x[1] && (x[1] = y);
}
e && (this._nameList[d] = e[f]);
}
(this._rawCount = this._count = l), (this._extent = {}), el(this);
}),
(yA._initDataFromProvider = function (t, e) {
if (!(t >= e)) {
for (
var i,
n = this._chunkSize,
o = this._rawData,
a = this._storage,
r = this.dimensions,
s = r.length,
l = this._dimensionInfos,
u = this._nameList,
h = this._idList,
c = this._rawExtent,
d = (this._nameRepeatCount = {}),
f = this._chunkCount,
p = 0;
p < s;
p++
) {
c[(w = r[p])] || (c[w] = [1 / 0, -1 / 0]);
var g = l[w];
0 === g.otherDims.itemName && (i = this._nameDimIdx = p),
0 === g.otherDims.itemId && (this._idDimIdx = p),
a[w] || (a[w] = []),
tl(a, g, n, f, e),
(this._chunkCount = a[w].length);
}
for (var m = new Array(s), v = t; v < e; v++) {
m = o.getItem(v, m);
for (var y = Math.floor(v / n), x = v % n, _ = 0; _ < s; _++) {
var w = r[_],
b = a[w][y],
S = this._dimValueGetter(m, w, v, _);
b[x] = S;
var M = c[w];
S < M[0] && (M[0] = S), S > M[1] && (M[1] = S);
}
if (!o.pure) {
var I = u[v];
if (m && null == I)
if (null != m.name) u[v] = I = m.name;
else if (null != i) {
var T = r[i],
A = a[T][y];
if (A) {
I = A[x];
var D = l[T].ordinalMeta;
D && D.categories.length && (I = D.categories[I]);
}
}
var C = null == m ? null : m.id;
null == C &&
null != I &&
((d[I] = d[I] || 0),
(C = I),
d[I] > 0 && (C += '__ec__' + d[I]),
d[I]++),
null != C && (h[v] = C);
}
}
!o.persistent && o.clean && o.clean(),
(this._rawCount = this._count = e),
(this._extent = {}),
el(this);
}
}),
(yA.count = function () {
return this._count;
}),
(yA.getIndices = function () {
var t = this._indices;
if (t) {
var e = t.constructor,
i = this._count;
if (e === Array) {
n = new e(i);
for (o = 0; o < i; o++) n[o] = t[o];
} else n = new e(t.buffer, 0, i);
} else
for (var n = new (e = $s(this))(this.count()), o = 0; o < n.length; o++)
n[o] = o;
return n;
}),
(yA.get = function (t, e) {
if (!(e >= 0 && e < this._count)) return NaN;
var i = this._storage;
if (!i[t]) return NaN;
e = this.getRawIndex(e);
var n = Math.floor(e / this._chunkSize),
o = e % this._chunkSize;
return i[t][n][o];
}),
(yA.getByRawIndex = function (t, e) {
if (!(e >= 0 && e < this._rawCount)) return NaN;
var i = this._storage[t];
if (!i) return NaN;
var n = Math.floor(e / this._chunkSize),
o = e % this._chunkSize;
return i[n][o];
}),
(yA._getFast = function (t, e) {
var i = Math.floor(e / this._chunkSize),
n = e % this._chunkSize;
return this._storage[t][i][n];
}),
(yA.getValues = function (t, e) {
var i = [];
y(t) || ((e = t), (t = this.dimensions));
for (var n = 0, o = t.length; n < o; n++) i.push(this.get(t[n], e));
return i;
}),
(yA.hasValue = function (t) {
for (
var e = this._dimensionsSummary.dataDimsOnCoord,
i = this._dimensionInfos,
n = 0,
o = e.length;
n < o;
n++
)
if ('ordinal' !== i[e[n]].type && isNaN(this.get(e[n], t))) return !1;
return !0;
}),
(yA.getDataExtent = function (t) {
t = this.getDimension(t);
var e = [1 / 0, -1 / 0];
if (!this._storage[t]) return e;
var i,
n = this.count();
if (!this._indices) return this._rawExtent[t].slice();
if ((i = this._extent[t])) return i.slice();
for (var o = (i = e)[0], a = i[1], r = 0; r < n; r++) {
var s = this._getFast(t, this.getRawIndex(r));
s < o && (o = s), s > a && (a = s);
}
return (i = [o, a]), (this._extent[t] = i), i;
}),
(yA.getApproximateExtent = function (t) {
return (
(t = this.getDimension(t)),
this._approximateExtent[t] || this.getDataExtent(t)
);
}),
(yA.setApproximateExtent = function (t, e) {
(e = this.getDimension(e)), (this._approximateExtent[e] = t.slice());
}),
(yA.getCalculationInfo = function (t) {
return this._calculationInfo[t];
}),
(yA.setCalculationInfo = function (t, e) {
lA(t) ? a(this._calculationInfo, t) : (this._calculationInfo[t] = e);
}),
(yA.getSum = function (t) {
var e = 0;
if (this._storage[t])
for (var i = 0, n = this.count(); i < n; i++) {
var o = this.get(t, i);
isNaN(o) || (e += o);
}
return e;
}),
(yA.getMedian = function (t) {
var e = [];
this.each(t, function (t, i) {
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;
}),
(yA.rawIndexOf = function (t, e) {
var i = (t && this._invertedIndicesMap[t])[e];
return null == i || isNaN(i) ? uA : i;
}),
(yA.indexOfName = function (t) {
for (var e = 0, i = this.count(); e < i; e++)
if (this.getName(e) === t) return e;
return -1;
}),
(yA.indexOfRawIndex = function (t) {
if (!this._indices) return t;
if (t >= this._rawCount || t < 0) return -1;
var e = this._indices,
i = e[t];
if (null != i && i < this._count && i === t) return t;
for (var n = 0, o = this._count - 1; n <= o; ) {
var a = ((n + o) / 2) | 0;
if (e[a] < t) n = a + 1;
else {
if (!(e[a] > t)) return a;
o = a - 1;
}
}
return -1;
}),
(yA.indicesOfNearest = function (t, e, i) {
var n = [];
if (!this._storage[t]) return n;
null == i && (i = 1 / 0);
for (
var o = Number.MAX_VALUE, a = -1, r = 0, s = this.count();
r < s;
r++
) {
var l = e - this.get(t, r),
u = Math.abs(l);
l <= i &&
u <= o &&
((u < o || (l >= 0 && a < 0)) && ((o = u), (a = l), (n.length = 0)),
n.push(r));
}
return n;
}),
(yA.getRawIndex = nl),
(yA.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;
}),
(yA.getName = function (t) {
var e = this.getRawIndex(t);
return this._nameList[e] || il(this, this._nameDimIdx, e) || '';
}),
(yA.getId = function (t) {
return al(this, this.getRawIndex(t));
}),
(yA.each = function (t, e, i, n) {
if (this._count) {
'function' == typeof t && ((n = i), (i = e), (e = t), (t = [])),
(i = i || n || this);
for (
var o = (t = f(rl(t), this.getDimension, this)).length, a = 0;
a < this.count();
a++
)
switch (o) {
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 r = 0, s = []; r < o; r++) s[r] = this.get(t[r], a);
(s[r] = a), e.apply(i, s);
}
}
}),
(yA.filterSelf = function (t, e, i, n) {
if (this._count) {
'function' == typeof t && ((n = i), (i = e), (e = t), (t = [])),
(i = i || n || this),
(t = f(rl(t), this.getDimension, this));
for (
var o = this.count(),
a = new ($s(this))(o),
r = [],
s = t.length,
l = 0,
u = t[0],
h = 0;
h < o;
h++
) {
var c,
d = this.getRawIndex(h);
if (0 === s) c = e.call(i, h);
else if (1 === s) {
var p = this._getFast(u, d);
c = e.call(i, p, h);
} else {
for (var g = 0; g < s; g++) r[g] = this._getFast(u, d);
(r[g] = h), (c = e.apply(i, r));
}
c && (a[l++] = d);
}
return (
l < o && (this._indices = a),
(this._count = l),
(this._extent = {}),
(this.getRawIndex = this._indices ? ol : nl),
this
);
}
}),
(yA.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 o = this.count(),
a = new ($s(this))(o),
r = 0,
s = e[0],
l = t[s][0],
u = t[s][1],
h = !1;
if (!this._indices) {
var c = 0;
if (1 === n) {
for (
var d = this._storage[e[0]], f = 0;
f < this._chunkCount;
f++
)
for (
var p = d[f],
g = Math.min(
this._count - f * this._chunkSize,
this._chunkSize,
),
m = 0;
m < g;
m++
)
(((w = p[m]) >= l && w <= u) || isNaN(w)) && (a[r++] = c),
c++;
h = !0;
} else if (2 === n) {
for (
var d = this._storage[s],
v = this._storage[e[1]],
y = t[e[1]][0],
x = t[e[1]][1],
f = 0;
f < this._chunkCount;
f++
)
for (
var p = d[f],
_ = v[f],
g = Math.min(
this._count - f * this._chunkSize,
this._chunkSize,
),
m = 0;
m < g;
m++
) {
var w = p[m],
b = _[m];
((w >= l && w <= u) || isNaN(w)) &&
((b >= y && b <= x) || isNaN(b)) &&
(a[r++] = c),
c++;
}
h = !0;
}
}
if (!h)
if (1 === n)
for (m = 0; m < o; m++) {
M = this.getRawIndex(m);
(((w = this._getFast(s, M)) >= l && w <= u) || isNaN(w)) &&
(a[r++] = M);
}
else
for (m = 0; m < o; m++) {
for (var S = !0, M = this.getRawIndex(m), f = 0; f < n; f++) {
var I = e[f];
((w = this._getFast(i, M)) < t[I][0] || w > t[I][1]) &&
(S = !1);
}
S && (a[r++] = this.getRawIndex(m));
}
return (
r < o && (this._indices = a),
(this._count = r),
(this._extent = {}),
(this.getRawIndex = this._indices ? ol : nl),
this
);
}
}
}),
(yA.mapArray = function (t, e, i, n) {
'function' == typeof t && ((n = i), (i = e), (e = t), (t = [])),
(i = i || n || this);
var o = [];
return (
this.each(
t,
function () {
o.push(e && e.apply(this, arguments));
},
i,
),
o
);
}),
(yA.map = function (t, e, i, n) {
i = i || n || this;
var o = sl(this, (t = f(rl(t), this.getDimension, this)));
(o._indices = this._indices), (o.getRawIndex = o._indices ? ol : nl);
for (
var a = o._storage,
r = [],
s = this._chunkSize,
l = t.length,
u = this.count(),
h = [],
c = o._rawExtent,
d = 0;
d < u;
d++
) {
for (var p = 0; p < l; p++) h[p] = this.get(t[p], d);
h[l] = d;
var g = e && e.apply(i, h);
if (null != g) {
'object' != typeof g && ((r[0] = g), (g = r));
for (
var m = this.getRawIndex(d),
v = Math.floor(m / s),
y = m % s,
x = 0;
x < g.length;
x++
) {
var _ = t[x],
w = g[x],
b = c[_],
S = a[_];
S && (S[v][y] = w), w < b[0] && (b[0] = w), w > b[1] && (b[1] = w);
}
}
}
return o;
}),
(yA.downSample = function (t, e, i, n) {
for (
var o = sl(this, [t]),
a = o._storage,
r = [],
s = Math.floor(1 / e),
l = a[t],
u = this.count(),
h = this._chunkSize,
c = o._rawExtent[t],
d = new ($s(this))(u),
f = 0,
p = 0;
p < u;
p += s
) {
s > u - p && ((s = u - p), (r.length = s));
for (var g = 0; g < s; g++) {
var m = this.getRawIndex(p + g),
v = Math.floor(m / h),
y = m % h;
r[g] = l[v][y];
}
var x = i(r),
_ = this.getRawIndex(Math.min(p + n(r, x) || 0, u - 1)),
w = _ % h;
(l[Math.floor(_ / h)][w] = x),
x < c[0] && (c[0] = x),
x > c[1] && (c[1] = x),
(d[f++] = _);
}
return (o._count = f), (o._indices = d), (o.getRawIndex = ol), o;
}),
(yA.getItemModel = function (t) {
var e = this.hostModel;
return new No(this.getRawDataItem(t), e, e && e.ecModel);
}),
(yA.diff = function (t) {
var e = this;
return new Xs(
t ? t.getIndices() : [],
this.getIndices(),
function (e) {
return al(t, e);
},
function (t) {
return al(e, t);
},
);
}),
(yA.getVisual = function (t) {
var e = this._visual;
return e && e[t];
}),
(yA.setVisual = function (t, e) {
if (lA(t))
for (var i in t) t.hasOwnProperty(i) && this.setVisual(i, t[i]);
else (this._visual = this._visual || {}), (this._visual[t] = e);
}),
(yA.setLayout = function (t, e) {
if (lA(t))
for (var i in t) t.hasOwnProperty(i) && this.setLayout(i, t[i]);
else this._layout[t] = e;
}),
(yA.getLayout = function (t) {
return this._layout[t];
}),
(yA.getItemLayout = function (t) {
return this._itemLayouts[t];
}),
(yA.setItemLayout = function (t, e, i) {
this._itemLayouts[t] = i ? a(this._itemLayouts[t] || {}, e) : e;
}),
(yA.clearItemLayouts = function () {
this._itemLayouts.length = 0;
}),
(yA.getItemVisual = function (t, e, i) {
var n = this._itemVisuals[t],
o = n && n[e];
return null != o || i ? o : this.getVisual(e);
}),
(yA.setItemVisual = function (t, e, i) {
var n = this._itemVisuals[t] || {},
o = this.hasItemVisual;
if (((this._itemVisuals[t] = n), lA(e)))
for (var a in e) e.hasOwnProperty(a) && ((n[a] = e[a]), (o[a] = !0));
else (n[e] = i), (o[e] = !0);
}),
(yA.clearAllVisual = function () {
(this._visual = {}), (this._itemVisuals = []), (this.hasItemVisual = {});
});
var xA = function (t) {
(t.seriesIndex = this.seriesIndex),
(t.dataIndex = this.dataIndex),
(t.dataType = this.dataType);
};
(yA.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(xA, e)),
(this._graphicEls[t] = e);
}),
(yA.getItemGraphicEl = function (t) {
return this._graphicEls[t];
}),
(yA.eachItemGraphicEl = function (t, e) {
d(this._graphicEls, function (i, n) {
i && t && t.call(e, i, n);
});
}),
(yA.cloneShallow = function (t) {
if (!t) {
var e = f(this.dimensions, this.getDimensionInfo, this);
t = new vA(e, this.hostModel);
}
if (((t._storage = this._storage), Qs(t, this), this._indices)) {
var i = this._indices.constructor;
t._indices = new i(this._indices);
} else t._indices = null;
return (t.getRawIndex = t._indices ? ol : nl), t;
}),
(yA.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(C(arguments)));
}));
}),
(yA.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'map']),
(yA.CHANGABLE_METHODS = ['filterSelf', 'selectRange']);
var _A = function (t, e) {
return (
(e = e || {}),
hl(e.coordDimensions || [], t, {
dimsDef: e.dimensionsDefine || t.dimensionsDefine,
encodeDef: e.encodeDefine || t.encodeDefine,
dimCount: e.dimensionsCount,
generateCoord: e.generateCoord,
generateCoordCount: e.generateCoordCount,
})
);
};
(xl.prototype.parse = function (t) {
return t;
}),
(xl.prototype.getSetting = function (t) {
return this._setting[t];
}),
(xl.prototype.contain = function (t) {
var e = this._extent;
return t >= e[0] && t <= e[1];
}),
(xl.prototype.normalize = function (t) {
var e = this._extent;
return e[1] === e[0] ? 0.5 : (t - e[0]) / (e[1] - e[0]);
}),
(xl.prototype.scale = function (t) {
var e = this._extent;
return t * (e[1] - e[0]) + e[0];
}),
(xl.prototype.unionExtent = function (t) {
var e = this._extent;
t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]);
}),
(xl.prototype.unionExtentFromData = function (t, e) {
this.unionExtent(t.getApproximateExtent(e));
}),
(xl.prototype.getExtent = function () {
return this._extent.slice();
}),
(xl.prototype.setExtent = function (t, e) {
var i = this._extent;
isNaN(t) || (i[0] = t), isNaN(e) || (i[1] = e);
}),
(xl.prototype.isBlank = function () {
return this._isBlank;
}),
(xl.prototype.setBlank = function (t) {
this._isBlank = t;
}),
(xl.prototype.getLabel = null),
ji(xl),
$i(xl, { registerWhenExtend: !0 }),
(_l.createByAxisModel = function (t) {
var e = t.option,
i = e.data,
n = i && f(i, bl);
return new _l({
categories: n,
needCollect: !n,
deduplication: !1 !== e.dedplication,
});
});
var wA = _l.prototype;
(wA.getOrdinal = function (t) {
return wl(this).get(t);
}),
(wA.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 = wl(this);
return (
null == (e = n.get(t)) &&
(i
? ((e = this.categories.length),
(this.categories[e] = t),
n.set(t, e))
: (e = NaN)),
e
);
});
var bA = xl.prototype,
SA = xl.extend({
type: 'ordinal',
init: function (t, e) {
(t && !y(t)) || (t = new _l({ 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)),
bA.contain.call(this, t) && null != this._ordinalMeta.categories[t]
);
},
normalize: function (t) {
return bA.normalize.call(this, this.parse(t));
},
scale: function (t) {
return Math.round(bA.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) {
if (!this.isBlank()) return 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: B,
niceExtent: B,
});
SA.create = function () {
return new SA();
};
var MA = Go,
IA = Go,
TA = xl.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]),
TA.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 = Ml(t));
},
getTicks: function () {
return Al(
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 = Ho(t) || 0)
: 'auto' === i && (i = this._intervalPrecision),
(t = IA(t, i, !0)),
ta(t)
);
},
niceTicks: function (t, e, i) {
t = t || 5;
var n = this._extent,
o = n[1] - n[0];
if (isFinite(o)) {
o < 0 && ((o = -o), n.reverse());
var a = Sl(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 o = this._interval;
t.fixMin || (e[0] = IA(Math.floor(e[0] / o) * o)),
t.fixMax || (e[1] = IA(Math.ceil(e[1] / o) * o));
},
});
TA.create = function () {
return new TA();
};
var AA = '__ec_stack_',
DA = 'undefined' != typeof Float32Array ? Float32Array : Array,
CA = {
seriesType: 'bar',
plan: $I(),
reset: function (t) {
if (Rl(t) && zl(t)) {
var e = t.getData(),
i = t.coordinateSystem,
n = i.getBaseAxis(),
o = i.getOtherAxis(n),
a = e.mapDimension(o.dim),
r = e.mapDimension(n.dim),
s = o.isHorizontal(),
l = s ? 0 : 1,
u = Ol(Pl([t]), n, t).width;
return (
u > 0.5 || (u = 0.5),
{
progress: function (t, e) {
for (
var n, h = new DA(2 * t.count), c = [], d = [], f = 0;
null != (n = t.next());
)
(d[l] = e.get(a, n)),
(d[1 - l] = e.get(r, n)),
(c = i.dataToPoint(d, null, c)),
(h[f++] = c[0]),
(h[f++] = c[1]);
e.setLayout({
largePoints: h,
barWidth: u,
valueAxisStart: Bl(0, o),
valueAxisHorizontal: s,
});
},
}
);
}
},
},
LA = TA.prototype,
kA = Math.ceil,
PA = Math.floor,
NA = function (t, e, i, n) {
for (; i < n; ) {
var o = (i + n) >>> 1;
t[o][1] < e ? (i = o + 1) : (n = o);
}
return i;
},
OA = TA.extend({
type: 'time',
getLabel: function (t) {
var e = this._stepLvl,
i = new Date(t);
return sa(e[0], i, this.getSetting('useUTC'));
},
niceExtent: function (t) {
var e = this._extent;
if (
(e[0] === e[1] && ((e[0] -= 864e5), (e[1] += 864e5)),
e[1] === -1 / 0 && e[0] === 1 / 0)
) {
var i = new Date();
(e[1] = +new Date(i.getFullYear(), i.getMonth(), i.getDate())),
(e[0] = e[1] - 864e5);
}
this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval);
var n = this._interval;
t.fixMin || (e[0] = Go(PA(e[0] / n) * n)),
t.fixMax || (e[1] = Go(kA(e[1] / n) * n));
},
niceTicks: function (t, e, i) {
t = t || 10;
var n = this._extent,
o = n[1] - n[0],
a = o / t;
null != e && a < e && (a = e), null != i && a > i && (a = i);
var r = EA.length,
s = NA(EA, a, 0, r),
l = EA[Math.min(s, r - 1)],
u = l[1];
'year' === l[0] && (u *= $o(o / u / t, !0));
var h = this.getSetting('useUTC')
? 0
: 60 * new Date(+n[0] || +n[1]).getTimezoneOffset() * 1e3,
c = [
Math.round(kA((n[0] - h) / u) * u + h),
Math.round(PA((n[1] - h) / u) * u + h),
];
Tl(c, n),
(this._stepLvl = l),
(this._interval = u),
(this._niceExtent = c);
},
parse: function (t) {
return +Yo(t);
},
});
d(['contain', 'normalize'], function (t) {
OA.prototype[t] = function (e) {
return LA[t].call(this, this.parse(e));
};
});
var EA = [
['hh:mm:ss', 1e3],
['hh:mm:ss', 5e3],
['hh:mm:ss', 1e4],
['hh:mm:ss', 15e3],
['hh:mm:ss', 3e4],
['hh:mm\nMM-dd', 6e4],
['hh:mm\nMM-dd', 3e5],
['hh:mm\nMM-dd', 6e5],
['hh:mm\nMM-dd', 9e5],
['hh:mm\nMM-dd', 18e5],
['hh:mm\nMM-dd', 36e5],
['hh:mm\nMM-dd', 72e5],
['hh:mm\nMM-dd', 216e5],
['hh:mm\nMM-dd', 432e5],
['MM-dd\nyyyy', 864e5],
['MM-dd\nyyyy', 1728e5],
['MM-dd\nyyyy', 2592e5],
['MM-dd\nyyyy', 3456e5],
['MM-dd\nyyyy', 432e6],
['MM-dd\nyyyy', 5184e5],
['week', 6048e5],
['MM-dd\nyyyy', 864e6],
['week', 12096e5],
['week', 18144e5],
['month', 26784e5],
['week', 36288e5],
['month', 53568e5],
['week', 6048e6],
['quarter', 8208e6],
['month', 107136e5],
['month', 13392e6],
['half-year', 16416e6],
['month', 214272e5],
['month', 26784e6],
['year', 32832e6],
];
OA.create = function (t) {
return new OA({ useUTC: t.ecModel.get('useUTC') });
};
var RA = xl.prototype,
zA = TA.prototype,
BA = Ho,
VA = Go,
GA = Math.floor,
FA = Math.ceil,
WA = Math.pow,
HA = Math.log,
ZA = xl.extend({
type: 'log',
base: 10,
$constructor: function () {
xl.apply(this, arguments), (this._originalScale = new TA());
},
getTicks: function () {
var t = this._originalScale,
e = this._extent,
i = t.getExtent();
return f(
zA.getTicks.call(this),
function (n) {
var o = Go(WA(this.base, n));
return (
(o = n === e[0] && t.__fixMin ? Vl(o, i[0]) : o),
(o = n === e[1] && t.__fixMax ? Vl(o, i[1]) : o)
);
},
this,
);
},
getLabel: zA.getLabel,
scale: function (t) {
return (t = RA.scale.call(this, t)), WA(this.base, t);
},
setExtent: function (t, e) {
var i = this.base;
(t = HA(t) / HA(i)), (e = HA(e) / HA(i)), zA.setExtent.call(this, t, e);
},
getExtent: function () {
var t = this.base,
e = RA.getExtent.call(this);
(e[0] = WA(t, e[0])), (e[1] = WA(t, e[1]));
var i = this._originalScale,
n = i.getExtent();
return (
i.__fixMin && (e[0] = Vl(e[0], n[0])),
i.__fixMax && (e[1] = Vl(e[1], n[1])),
e
);
},
unionExtent: function (t) {
this._originalScale.unionExtent(t);
var e = this.base;
(t[0] = HA(t[0]) / HA(e)),
(t[1] = HA(t[1]) / HA(e)),
RA.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 (!(i === 1 / 0 || i <= 0)) {
var n = qo(i);
for (
(t / i) * n <= 0.5 && (n *= 10);
!isNaN(n) && Math.abs(n) < 1 && Math.abs(n) > 0;
)
n *= 10;
var o = [Go(FA(e[0] / n) * n), Go(GA(e[1] / n) * n)];
(this._interval = n), (this._niceExtent = o);
}
},
niceExtent: function (t) {
zA.niceExtent.call(this, t);
var e = this._originalScale;
(e.__fixMin = t.fixMin), (e.__fixMax = t.fixMax);
},
});
d(['contain', 'normalize'], function (t) {
ZA.prototype[t] = function (e) {
return (e = HA(e) / HA(this.base)), RA[t].call(this, e);
};
}),
(ZA.create = function () {
return new ZA();
});
var UA = {
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 &&
!I(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 &&
!I(i) &&
(i = this.axis.scale.parse(i)),
i
);
},
getNeedCrossZero: function () {
var t = this.option;
return null == t.rangeStart && null == t.rangeEnd && !t.scale;
},
getCoordSysModel: B,
setRange: function (t, e) {
(this.option.rangeStart = t), (this.option.rangeEnd = e);
},
resetRange: function () {
this.option.rangeStart = this.option.rangeEnd = null;
},
},
XA = Un({
type: 'triangle',
shape: { cx: 0, cy: 0, width: 0, height: 0 },
buildPath: function (t, e) {
var i = e.cx,
n = e.cy,
o = e.width / 2,
a = e.height / 2;
t.moveTo(i, n - a),
t.lineTo(i + o, n + a),
t.lineTo(i - o, n + a),
t.closePath();
},
}),
jA = Un({
type: 'diamond',
shape: { cx: 0, cy: 0, width: 0, height: 0 },
buildPath: function (t, e) {
var i = e.cx,
n = e.cy,
o = e.width / 2,
a = e.height / 2;
t.moveTo(i, n - a),
t.lineTo(i + o, n),
t.lineTo(i, n + a),
t.lineTo(i - o, n),
t.closePath();
},
}),
YA = Un({
type: 'pin',
shape: { x: 0, y: 0, width: 0, height: 0 },
buildPath: function (t, e) {
var i = e.x,
n = e.y,
o = (e.width / 5) * 3,
a = Math.max(o, e.height),
r = o / 2,
s = (r * r) / (a - r),
l = n - a + r + s,
u = Math.asin(s / r),
h = Math.cos(u) * r,
c = Math.sin(u),
d = Math.cos(u),
f = 0.6 * r,
p = 0.7 * r;
t.moveTo(i - h, l + s),
t.arc(i, l, r, Math.PI - u, 2 * Math.PI + u),
t.bezierCurveTo(i + h - c * f, l + s + d * f, i, n - p, i, n),
t.bezierCurveTo(i, n - p, i - h + c * f, l + s + d * f, i - h, l + s),
t.closePath();
},
}),
qA = Un({
type: 'arrow',
shape: { x: 0, y: 0, width: 0, height: 0 },
buildPath: function (t, e) {
var i = e.height,
n = e.width,
o = e.x,
a = e.y,
r = (n / 3) * 2;
t.moveTo(o, a),
t.lineTo(o + r, a + i),
t.lineTo(o, a + (i / 4) * 3),
t.lineTo(o - r, a + i),
t.lineTo(o, a),
t.closePath();
},
}),
KA = {
line: function (t, e, i, n, o) {
(o.x1 = t), (o.y1 = e + n / 2), (o.x2 = t + i), (o.y2 = e + n / 2);
},
rect: function (t, e, i, n, o) {
(o.x = t), (o.y = e), (o.width = i), (o.height = n);
},
roundRect: function (t, e, i, n, o) {
(o.x = t),
(o.y = e),
(o.width = i),
(o.height = n),
(o.r = Math.min(i, n) / 4);
},
square: function (t, e, i, n, o) {
var a = Math.min(i, n);
(o.x = t), (o.y = e), (o.width = a), (o.height = a);
},
circle: function (t, e, i, n, o) {
(o.cx = t + i / 2), (o.cy = e + n / 2), (o.r = Math.min(i, n) / 2);
},
diamond: function (t, e, i, n, o) {
(o.cx = t + i / 2), (o.cy = e + n / 2), (o.width = i), (o.height = n);
},
pin: function (t, e, i, n, o) {
(o.x = t + i / 2), (o.y = e + n / 2), (o.width = i), (o.height = n);
},
arrow: function (t, e, i, n, o) {
(o.x = t + i / 2), (o.y = e + n / 2), (o.width = i), (o.height = n);
},
triangle: function (t, e, i, n, o) {
(o.cx = t + i / 2), (o.cy = e + n / 2), (o.width = i), (o.height = n);
},
},
$A = {};
d(
{
line: _M,
rect: yM,
roundRect: yM,
square: yM,
circle: sM,
diamond: jA,
pin: YA,
arrow: qA,
triangle: XA,
},
function (t, e) {
$A[e] = new t();
},
);
var JA = Un({
type: 'symbol',
shape: { symbolType: '', x: 0, y: 0, width: 0, height: 0 },
beforeBrush: function () {
var t = this.style;
'pin' === this.shape.symbolType &&
'inside' === t.textPosition &&
((t.textPosition = ['50%', '40%']),
(t.textAlign = 'center'),
(t.textVerticalAlign = 'middle'));
},
buildPath: function (t, e, i) {
var n = e.symbolType,
o = $A[n];
'none' !== e.symbolType &&
(o || (o = $A[(n = 'rect')]),
KA[n](e.x, e.y, e.width, e.height, o.shape),
o.buildPath(t, o.shape, i));
},
}),
QA = {
isDimensionStacked: pl,
enableDataStack: fl,
getStackedDimension: gl,
},
tD = (Object.freeze || Object)({
createList: function (t) {
return ml(t.getSource(), t);
},
getLayoutRect: ca,
dataStack: QA,
createScale: function (t, e) {
var i = e;
No.isInstance(e) || h((i = new No(e)), UA);
var n = Hl(i);
return n.setExtent(t[0], t[1]), Wl(n, i), n;
},
mixinAxisModelCommonMethods: function (t) {
h(t, UA);
},
completeDimensions: hl,
createDimensions: _A,
createSymbol: Jl,
}),
eD = 1e-8;
eu.prototype = {
constructor: eu,
properties: null,
getBoundingRect: function () {
var t = this._rect;
if (t) return t;
for (
var e = Number.MAX_VALUE,
i = [e, e],
n = [-e, -e],
o = [],
a = [],
r = this.geometries,
s = 0;
s < r.length;
s++
)
'polygon' === r[s].type &&
(fn(r[s].exterior, o, a), tt(i, i, o), et(n, n, a));
return (
0 === s && (i[0] = i[1] = n[0] = n[1] = 0),
(this._rect = new de(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, o = i.length; n < o; n++)
if ('polygon' === i[n].type) {
var a = i[n].exterior,
r = i[n].interiors;
if (tu(a, t[0], t[1])) {
for (var s = 0; s < (r ? r.length : 0); s++)
if (tu(r[s])) continue t;
return !0;
}
}
return !1;
},
transformTo: function (t, e, i, n) {
var o = this.getBoundingRect(),
a = o.width / o.height;
i ? n || (n = i / a) : (i = a * n);
for (
var r = new de(t, e, i, n),
s = o.calculateTransform(r),
l = this.geometries,
u = 0;
u < l.length;
u++
)
if ('polygon' === l[u].type) {
for (
var h = l[u].exterior, c = l[u].interiors, d = 0;
d < h.length;
d++
)
Q(h[d], h[d], s);
for (var f = 0; f < (c ? c.length : 0); f++)
for (d = 0; d < c[f].length; d++) Q(c[f][d], c[f][d], s);
}
(o = this._rect).copy(r),
(this.center = [o.x + o.width / 2, o.y + o.height / 2]);
},
cloneShallow: function (t) {
null == t && (t = this.name);
var e = new eu(t, this.geometries, this.center);
return (e._rect = this._rect), (e.transformTo = null), e;
},
};
var iD = function (t) {
return (
iu(t),
f(
g(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,
o = [];
'Polygon' === i.type &&
o.push({
type: 'polygon',
exterior: n[0],
interiors: n.slice(1),
}),
'MultiPolygon' === i.type &&
d(n, function (t) {
t[0] &&
o.push({
type: 'polygon',
exterior: t[0],
interiors: t.slice(1),
});
});
var a = new eu(e.name, o, e.cp);
return (a.properties = e), a;
},
)
);
},
nD = Bi(),
oD = [0, 1],
aD = function (t, e, i) {
(this.dim = t),
(this.scale = e),
(this._extent = i || [0, 0]),
(this.inverse = !1),
(this.onBand = !1);
};
aD.prototype = {
constructor: aD,
contain: function (t) {
var e = this._extent,
i = Math.min(e[0], e[1]),
n = Math.max(e[0], e[1]);
return t >= i && t <= n;
},
containData: function (t) {
return this.contain(this.dataToCoord(t));
},
getExtent: function () {
return this._extent.slice();
},
getPixelPrecision: function (t) {
return Zo(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 && yu((i = i.slice()), n.count()),
Bo(t, oD, i, e)
);
},
coordToData: function (t, e) {
var i = this._extent,
n = this.scale;
this.onBand && 'ordinal' === n.type && yu((i = i.slice()), n.count());
var o = Bo(t, i, oD, e);
return this.scale.scale(o);
},
pointToData: function (t, e) {},
getTicksCoords: function (t) {
var e = (t = t || {}).tickModel || this.getTickModel(),
i = au(this, e),
n = f(
i.ticks,
function (t) {
return { coord: this.dataToCoord(t), tickValue: t };
},
this,
),
o = e.get('alignWithLabel');
return xu(this, n, i.tickCategoryInterval, o, t.clamp), n;
},
getViewLabels: function () {
return ou(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 pu(this);
},
};
var rD = iD,
sD = {};
d(
[
'map',
'each',
'filter',
'indexOf',
'inherits',
'reduce',
'filter',
'bind',
'curry',
'isArray',
'isString',
'isObject',
'isFunction',
'extend',
'defaults',
'clone',
'merge',
],
function (t) {
sD[t] = aw[t];
},
);
var lD = {};
d(
[
'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) {
lD[t] = zM[t];
},
),
YI.extend({
type: 'series.line',
dependencies: ['grid', 'polar'],
getInitialData: function (t, e) {
return ml(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 uD = wu.prototype,
hD = (wu.getSymbolSize = function (t, e) {
var i = t.getItemVisual(e, 'symbolSize');
return i instanceof Array ? i.slice() : [+i, +i];
});
(uD._createSymbol = function (t, e, i, n, o) {
this.removeAll();
var a = Jl(t, -1, -1, 2, 2, e.getItemVisual(i, 'color'), o);
a.attr({ z2: 100, culling: !0, scale: bu(n) }),
(a.drift = Su),
(this._symbolType = t),
this.add(a);
}),
(uD.stopSymbolAnimation = function (t) {
this.childAt(0).stopAnimation(t);
}),
(uD.getSymbolPath = function () {
return this.childAt(0);
}),
(uD.getScale = function () {
return this.childAt(0).scale;
}),
(uD.highlight = function () {
this.childAt(0).trigger('emphasis');
}),
(uD.downplay = function () {
this.childAt(0).trigger('normal');
}),
(uD.setZ = function (t, e) {
var i = this.childAt(0);
(i.zlevel = t), (i.z = e);
}),
(uD.setDraggable = function (t) {
var e = this.childAt(0);
(e.draggable = t), (e.cursor = t ? 'move' : 'pointer');
}),
(uD.updateData = function (t, e, i) {
this.silent = !1;
var n = t.getItemVisual(e, 'symbol') || 'circle',
o = t.hostModel,
a = hD(t, e),
r = n !== this._symbolType;
if (r) {
var s = t.getItemVisual(e, 'symbolKeepAspect');
this._createSymbol(n, t, e, a, s);
} else ((l = this.childAt(0)).silent = !1), Io(l, { scale: bu(a) }, o, e);
if ((this._updateCommon(t, e, a, i), r)) {
var l = this.childAt(0),
u = i && i.fadeIn,
h = { scale: l.scale.slice() };
u && (h.style = { opacity: l.style.opacity }),
(l.scale = [0, 0]),
u && (l.style.opacity = 0),
To(l, h, o, e);
}
this._seriesModel = o;
});
var cD = ['itemStyle'],
dD = ['emphasis', 'itemStyle'],
fD = ['label'],
pD = ['emphasis', 'label'];
(uD._updateCommon = function (t, e, i, n) {
var o = this.childAt(0),
r = t.hostModel,
s = t.getItemVisual(e, 'color');
'image' !== o.type && o.useStyle({ strokeNoScale: !0 });
var l = n && n.itemStyle,
u = n && n.hoverItemStyle,
h = n && n.symbolRotate,
c = n && n.symbolOffset,
d = n && n.labelModel,
f = n && n.hoverLabelModel,
p = n && n.hoverAnimation,
g = n && n.cursorStyle;
if (!n || t.hasItemOption) {
var m = n && n.itemModel ? n.itemModel : t.getItemModel(e);
(l = m.getModel(cD).getItemStyle(['color'])),
(u = m.getModel(dD).getItemStyle()),
(h = m.getShallow('symbolRotate')),
(c = m.getShallow('symbolOffset')),
(d = m.getModel(fD)),
(f = m.getModel(pD)),
(p = m.getShallow('hoverAnimation')),
(g = m.getShallow('cursor'));
} else u = a({}, u);
var v = o.style;
o.attr('rotation', ((h || 0) * Math.PI) / 180 || 0),
c && o.attr('position', [Vo(c[0], i[0]), Vo(c[1], i[1])]),
g && o.attr('cursor', g),
o.setColor(s, n && n.symbolInnerColor),
o.setStyle(l);
var y = t.getItemVisual(e, 'opacity');
null != y && (v.opacity = y);
var x = t.getItemVisual(e, 'liftZ'),
_ = o.__z2Origin;
null != x
? null == _ && ((o.__z2Origin = o.z2), (o.z2 += x))
: null != _ && ((o.z2 = _), (o.__z2Origin = null));
var w = n && n.useNameLabel;
go(v, u, d, f, {
labelFetcher: r,
labelDataIndex: e,
defaultText: function (e, i) {
return w ? t.getName(e) : _u(t, e);
},
isRectText: !0,
autoColor: s,
}),
o.off('mouseover').off('mouseout').off('emphasis').off('normal'),
(o.hoverStyle = u),
fo(o),
(o.__symbolOriginalScale = bu(i)),
p &&
r.isAnimationEnabled() &&
o
.on('mouseover', Mu)
.on('mouseout', Iu)
.on('emphasis', Tu)
.on('normal', Au);
}),
(uD.fadeOut = function (t, e) {
var i = this.childAt(0);
(this.silent = i.silent = !0),
!(e && e.keepLabel) && (i.style.text = null),
Io(
i,
{ style: { opacity: 0 }, scale: [0, 0] },
this._seriesModel,
this.dataIndex,
t,
);
}),
u(wu, tb);
var gD = Du.prototype;
(gD.updateData = function (t, e) {
e = Lu(e);
var i = this.group,
n = t.hostModel,
o = this._data,
a = this._symbolCtor,
r = ku(t);
o || i.removeAll(),
t
.diff(o)
.add(function (n) {
var o = t.getItemLayout(n);
if (Cu(t, o, n, e)) {
var s = new a(t, n, r);
s.attr('position', o), t.setItemGraphicEl(n, s), i.add(s);
}
})
.update(function (s, l) {
var u = o.getItemGraphicEl(l),
h = t.getItemLayout(s);
Cu(t, h, s, e)
? (u
? (u.updateData(t, s, r), Io(u, { position: h }, n))
: (u = new a(t, s)).attr('position', h),
i.add(u),
t.setItemGraphicEl(s, u))
: i.remove(u);
})
.remove(function (t) {
var e = o.getItemGraphicEl(t);
e &&
e.fadeOut(function () {
i.remove(e);
});
})
.execute(),
(this._data = t);
}),
(gD.isPersistent = function () {
return !0;
}),
(gD.updateLayout = function () {
var t = this._data;
t &&
t.eachItemGraphicEl(function (e, i) {
var n = t.getItemLayout(i);
e.attr('position', n);
});
}),
(gD.incrementalPrepareUpdate = function (t) {
(this._seriesScope = ku(t)), (this._data = null), this.group.removeAll();
}),
(gD.incrementalUpdate = function (t, e, i) {
i = Lu(i);
for (var n = t.start; n < t.end; n++) {
var o = e.getItemLayout(n);
if (Cu(e, o, n, i)) {
var a = new this._symbolCtor(e, n, this._seriesScope);
a.traverse(function (t) {
t.isGroup || (t.incremental = t.useHoverLayer = !0);
}),
a.attr('position', o),
this.group.add(a),
e.setItemGraphicEl(n, a);
}
}
}),
(gD.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 mD = function (t, e, i, n, o, a, r, s) {
for (
var l = Eu(t, e),
u = [],
h = [],
c = [],
d = [],
f = [],
p = [],
g = [],
m = Pu(o, e, r),
v = Pu(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()),
u.push(w),
h.push(b),
c.push(i[x.idx]),
d.push(n[x.idx1]),
g.push(e.getRawIndex(x.idx1));
break;
case '+':
S = x.idx;
u.push(
o.dataToPoint([
e.get(m.dataDimsForPoint[0], S),
e.get(m.dataDimsForPoint[1], S),
]),
),
h.push(e.getItemLayout(S).slice()),
c.push(Ou(m, o, e, S)),
d.push(n[S]),
g.push(e.getRawIndex(S));
break;
case '-':
var S = x.idx,
M = t.getRawIndex(S);
M !== S
? (u.push(t.getItemLayout(S)),
h.push(
a.dataToPoint([
t.get(v.dataDimsForPoint[0], S),
t.get(v.dataDimsForPoint[1], S),
]),
),
c.push(i[S]),
d.push(Ou(v, 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 = [], A = [], D = [], C = [], y = 0;
y < p.length;
y++
) {
S = p[y];
(I[y] = u[S]),
(T[y] = h[S]),
(A[y] = c[S]),
(D[y] = d[S]),
(C[y] = f[S]);
}
return {
current: I,
next: T,
stackedOnCurrent: A,
stackedOnNext: D,
status: C,
};
},
vD = tt,
yD = et,
xD = Z,
_D = G,
wD = [],
bD = [],
SD = [],
MD = Pn.extend({
type: 'ec-polyline',
shape: {
points: [],
smooth: 0,
smoothConstraint: !0,
smoothMonotone: null,
connectNulls: !1,
},
style: { fill: null, stroke: '#000' },
brush: uM(Pn.prototype.brush),
buildPath: function (t, e) {
var i = e.points,
n = 0,
o = i.length,
a = Gu(i, e.smoothConstraint);
if (e.connectNulls) {
for (; o > 0 && Ru(i[o - 1]); o--);
for (; n < o && Ru(i[n]); n++);
}
for (; n < o; )
n +=
zu(
t,
i,
n,
o,
o,
1,
a.min,
a.max,
e.smooth,
e.smoothMonotone,
e.connectNulls,
) + 1;
},
}),
ID = Pn.extend({
type: 'ec-polygon',
shape: {
points: [],
stackedOnPoints: [],
smooth: 0,
stackedOnSmooth: 0,
smoothConstraint: !0,
smoothMonotone: null,
connectNulls: !1,
},
brush: uM(Pn.prototype.brush),
buildPath: function (t, e) {
var i = e.points,
n = e.stackedOnPoints,
o = 0,
a = i.length,
r = e.smoothMonotone,
s = Gu(i, e.smoothConstraint),
l = Gu(n, e.smoothConstraint);
if (e.connectNulls) {
for (; a > 0 && Ru(i[a - 1]); a--);
for (; o < a && Ru(i[o]); o++);
}
for (; o < a; ) {
var u = zu(
t,
i,
o,
a,
a,
1,
s.min,
s.max,
e.smooth,
r,
e.connectNulls,
);
zu(
t,
n,
o + u - 1,
u,
a,
-1,
l.min,
l.max,
e.stackedOnSmooth,
r,
e.connectNulls,
),
(o += u + 1),
t.closePath();
}
},
});
Ar.extend({
type: 'line',
init: function () {
var t = new tb(),
e = new Du();
this.group.add(e.group), (this._symbolDraw = e), (this._lineGroup = t);
},
render: function (t, e, i) {
var n = t.coordinateSystem,
o = this.group,
a = t.getData(),
s = t.getModel('lineStyle'),
l = t.getModel('areaStyle'),
u = a.mapArray(a.getItemLayout),
h = 'polar' === n.type,
c = this._coordSys,
d = this._symbolDraw,
f = this._polyline,
p = this._polygon,
g = this._lineGroup,
m = t.get('animation'),
v = !l.isEmpty(),
y = l.get('origin'),
x = Zu(n, a, Pu(n, a, y)),
_ = t.get('showSymbol'),
w = _ && !h && Ku(t, a, n),
b = this._data;
b &&
b.eachItemGraphicEl(function (t, e) {
t.__temp && (o.remove(t), b.setItemGraphicEl(e, null));
}),
_ || d.remove(),
o.add(g);
var S = !h && t.get('step');
f && c.type === n.type && S === this._step
? (v && !p
? (p = this._newPolygon(u, x, n, m))
: p && !v && (g.remove(p), (p = this._polygon = null)),
g.setClipPath(ju(n, !1, !1, t)),
_ && d.updateData(a, { isIgnore: w, clipShape: ju(n, !1, !0, t) }),
a.eachItemGraphicEl(function (t) {
t.stopAnimation(!0);
}),
(Fu(this._stackedOnPoints, x) && Fu(this._points, u)) ||
(m
? this._updateAnimation(a, x, n, i, S, y)
: (S && ((u = Yu(u, n, S)), (x = Yu(x, n, S))),
f.setShape({ points: u }),
p && p.setShape({ points: u, stackedOnPoints: x }))))
: (_ && d.updateData(a, { isIgnore: w, clipShape: ju(n, !1, !0, t) }),
S && ((u = Yu(u, n, S)), (x = Yu(x, n, S))),
(f = this._newPolyline(u, n, m)),
v && (p = this._newPolygon(u, x, n, m)),
g.setClipPath(ju(n, !0, !1, t)));
var M = qu(a, n) || a.getVisual('color');
f.useStyle(
r(s.getLineStyle(), { fill: 'none', stroke: M, lineJoin: 'bevel' }),
);
var I = t.get('smooth');
if (
((I = Wu(t.get('smooth'))),
f.setShape({
smooth: I,
smoothMonotone: t.get('smoothMonotone'),
connectNulls: t.get('connectNulls'),
}),
p)
) {
var T = a.getCalculationInfo('stackedOnSeries'),
A = 0;
p.useStyle(
r(l.getAreaStyle(), { fill: M, opacity: 0.7, lineJoin: 'bevel' }),
),
T && (A = Wu(T.get('smooth'))),
p.setShape({
smooth: I,
stackedOnSmooth: A,
smoothMonotone: t.get('smoothMonotone'),
connectNulls: t.get('connectNulls'),
});
}
(this._data = a),
(this._coordSys = n),
(this._stackedOnPoints = x),
(this._points = u),
(this._step = S),
(this._valueOrigin = y);
},
dispose: function () {},
highlight: function (t, e, i, n) {
var o = t.getData(),
a = zi(o, n);
if (!(a instanceof Array) && null != a && a >= 0) {
var r = o.getItemGraphicEl(a);
if (!r) {
var s = o.getItemLayout(a);
if (!s) return;
((r = new wu(o, a)).position = s),
r.setZ(t.get('zlevel'), t.get('z')),
(r.ignore = isNaN(s[0]) || isNaN(s[1])),
(r.__temp = !0),
o.setItemGraphicEl(a, r),
r.stopSymbolAnimation(!0),
this.group.add(r);
}
r.highlight();
} else Ar.prototype.highlight.call(this, t, e, i, n);
},
downplay: function (t, e, i, n) {
var o = t.getData(),
a = zi(o, n);
if (null != a && a >= 0) {
var r = o.getItemGraphicEl(a);
r &&
(r.__temp
? (o.setItemGraphicEl(a, null), this.group.remove(r))
: r.downplay());
} else Ar.prototype.downplay.call(this, t, e, i, n);
},
_newPolyline: function (t) {
var e = this._polyline;
return (
e && this._lineGroup.remove(e),
(e = new MD({ 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 ID({ shape: { points: t, stackedOnPoints: e }, silent: !0 })),
this._lineGroup.add(i),
(this._polygon = i),
i
);
},
_updateAnimation: function (t, e, i, n, o, a) {
var r = this._polyline,
s = this._polygon,
l = t.hostModel,
u = mD(
this._data,
t,
this._stackedOnPoints,
e,
this._coordSys,
i,
this._valueOrigin,
a,
),
h = u.current,
c = u.stackedOnCurrent,
d = u.next,
f = u.stackedOnNext;
o &&
((h = Yu(u.current, i, o)),
(c = Yu(u.stackedOnCurrent, i, o)),
(d = Yu(u.next, i, o)),
(f = Yu(u.stackedOnNext, i, o))),
(r.shape.__points = u.current),
(r.shape.points = h),
Io(r, { shape: { points: d } }, l),
s &&
(s.setShape({ points: h, stackedOnPoints: c }),
Io(s, { shape: { points: d, stackedOnPoints: f } }, l));
for (var p = [], g = u.status, m = 0; m < g.length; m++)
if ('=' === g[m].cmd) {
var v = t.getItemGraphicEl(g[m].idx1);
v && p.push({ el: v, ptIdx: m });
}
r.animators &&
r.animators.length &&
r.animators[0].during(function () {
for (var t = 0; t < p.length; t++)
p[t].el.attr('position', r.shape.__points[p[t].ptIdx]);
});
},
remove: function (t) {
var e = this.group,
i = this._data;
this._lineGroup.removeAll(),
this._symbolDraw.remove(!0),
i &&
i.eachItemGraphicEl(function (t, n) {
t.__temp && (e.remove(t), i.setItemGraphicEl(n, null));
}),
(this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._data = null);
},
});
var TD = function (t, e, i) {
return {
seriesType: t,
performRawSeries: !0,
reset: function (t, n, o) {
var a = t.getData(),
r = t.get('symbol') || e,
s = t.get('symbolSize'),
l = t.get('symbolKeepAspect');
if (
(a.setVisual({
legendSymbol: i || r,
symbol: r,
symbolSize: s,
symbolKeepAspect: l,
}),
!n.isSeriesFiltered(t))
) {
var u = 'function' == typeof s;
return {
dataEach:
a.hasItemOption || u
? function (e, i) {
if ('function' == typeof s) {
var n = t.getRawValue(i),
o = t.getDataParams(i);
e.setItemVisual(i, 'symbolSize', s(n, o));
}
if (e.hasItemOption) {
var a = e.getItemModel(i),
r = a.getShallow('symbol', !0),
l = a.getShallow('symbolSize', !0),
u = a.getShallow('symbolKeepAspect', !0);
null != r && e.setItemVisual(i, 'symbol', r),
null != l && e.setItemVisual(i, 'symbolSize', l),
null != u &&
e.setItemVisual(i, 'symbolKeepAspect', u);
}
}
: null,
};
}
},
};
},
AD = function (t) {
return {
seriesType: t,
plan: $I(),
reset: function (t) {
var e = t.getData(),
i = t.coordinateSystem,
n = t.pipelineContext.large;
if (i) {
var o = f(i.dimensions, function (t) {
return e.mapDimension(t);
}).slice(0, 2),
a = o.length,
r = e.getCalculationInfo('stackResultDimension');
return (
pl(e, o[0]) && (o[0] = r),
pl(e, o[1]) && (o[1] = r),
a && {
progress: function (t, e) {
for (
var r = t.end - t.start,
s = n && new Float32Array(r * a),
l = t.start,
u = 0,
h = [],
c = [];
l < t.end;
l++
) {
var d;
if (1 === a)
(f = e.get(o[0], l)),
(d = !isNaN(f) && i.dataToPoint(f, null, c));
else {
var f = (h[0] = e.get(o[0], l)),
p = (h[1] = e.get(o[1], l));
d = !isNaN(f) && !isNaN(p) && i.dataToPoint(h, null, c);
}
n
? ((s[u++] = d ? d[0] : NaN), (s[u++] = d ? d[1] : NaN))
: e.setItemLayout(l, (d && d.slice()) || [NaN, NaN]);
}
n && e.setLayout('symbolPoints', s);
},
}
);
}
},
};
},
DD = {
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 ? NaN : 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 : NaN;
},
min: function (t) {
for (var e = 1 / 0, i = 0; i < t.length; i++) t[i] < e && (e = t[i]);
return isFinite(e) ? e : NaN;
},
nearest: function (t) {
return t[0];
},
},
CD = function (t, e) {
return Math.round(t.length / 2);
},
LD = function (t) {
(this._axes = {}), (this._dimList = []), (this.name = t || '');
};
(LD.prototype = {
constructor: LD,
type: 'cartesian',
getAxis: function (t) {
return this._axes[t];
},
getAxes: function () {
return f(this._dimList, Ju, this);
},
getAxesByScale: function (t) {
return (
(t = t.toLowerCase()),
g(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 ? [] : {}, o = 0;
o < i.length;
o++
) {
var a = i[o],
r = this._axes[a];
n[a] = r[e](t[a]);
}
return n;
},
}),
(Qu.prototype = {
constructor: Qu,
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'),
o = this.getAxis('y');
return (
(i = i || []),
(i[0] = n.toGlobalCoord(n.dataToCoord(t[0]))),
(i[1] = o.toGlobalCoord(o.dataToCoord(t[1]))),
i
);
},
clampData: function (t, e) {
var i = this.getAxis('x').scale,
n = this.getAxis('y').scale,
o = i.getExtent(),
a = n.getExtent(),
r = i.parse(t[0]),
s = n.parse(t[1]);
return (
(e = e || []),
(e[0] = Math.min(
Math.max(Math.min(o[0], o[1]), r),
Math.max(o[0], o[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(Qu, LD);
var kD = function (t, e, i, n, o) {
aD.call(this, t, e, i),
(this.type = n || 'value'),
(this.position = o || 'bottom');
};
(kD.prototype = {
constructor: kD,
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(kD, aD);
var PD = {
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)'],
},
},
},
ND = {};
(ND.categoryAxis = n(
{
boundaryGap: !0,
deduplication: null,
splitLine: { show: !1 },
axisTick: { alignWithLabel: !1, interval: 'auto' },
axisLabel: { interval: 'auto' },
},
PD,
)),
(ND.valueAxis = n({ boundaryGap: [0, 0], splitNumber: 5 }, PD)),
(ND.timeAxis = r(
{ scale: !0, min: 'dataMin', max: 'dataMax' },
ND.valueAxis,
)),
(ND.logAxis = r({ scale: !0, logBase: 10 }, ND.valueAxis));
var OD = ['value', 'category', 'time', 'log'],
ED = function (t, e, i, a) {
d(OD, function (r) {
e.extend({
type: t + 'Axis.' + r,
mergeDefaultAndTheme: function (e, o) {
var a = this.layoutMode,
s = a ? ga(e) : {};
n(e, o.getTheme().get(r + 'Axis')),
n(e, this.getDefaultOption()),
(e.type = i(t, e)),
a && pa(e, s, a);
},
optionUpdated: function () {
'category' === this.option.type &&
(this.__ordinalMeta = _l.createByAxisModel(this));
},
getCategories: function (t) {
var e = this.option;
if ('category' === e.type)
return t ? e.data : this.__ordinalMeta.categories;
},
getOrdinalMeta: function () {
return this.__ordinalMeta;
},
defaultOption: o([{}, ND[r + 'Axis'], a], !0),
});
}),
lI.registerSubTypeDefaulter(t + 'Axis', v(i, t));
},
RD = lI.extend({
type: 'cartesian2dAxis',
axis: null,
init: function () {
RD.superApply(this, 'init', arguments), this.resetRange();
},
mergeOption: function () {
RD.superApply(this, 'mergeOption', arguments), this.resetRange();
},
restoreData: function () {
RD.superApply(this, 'restoreData', arguments), this.resetRange();
},
getCoordSysModel: function () {
return this.ecModel.queryComponents({
mainType: 'grid',
index: this.option.gridIndex,
id: this.option.gridId,
})[0];
},
});
n(RD.prototype, UA);
var zD = { offset: 0 };
ED('x', RD, th, zD),
ED('y', RD, th, zD),
lI.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 BD = ih.prototype;
(BD.type = 'grid'),
(BD.axisPointerEnabled = !0),
(BD.getRect = function () {
return this._rect;
}),
(BD.update = function (t, e) {
var i = this._axesMap;
this._updateScale(t, this.model),
d(i.x, function (t) {
Wl(t.scale, t.model);
}),
d(i.y, function (t) {
Wl(t.scale, t.model);
});
var n = {};
d(i.x, function (t) {
nh(i, 'y', t, n);
}),
d(i.y, function (t) {
nh(i, 'x', t, n);
}),
this.resize(this.model, e);
}),
(BD.resize = function (t, e, i) {
function n() {
d(a, function (t) {
var e = t.isHorizontal(),
i = e ? [0, o.width] : [0, o.height],
n = t.inverse ? 1 : 0;
t.setExtent(i[n], i[1 - n]), ah(t, e ? o.x : o.y);
});
}
var o = ca(t.getBoxLayoutParams(), {
width: e.getWidth(),
height: e.getHeight(),
});
this._rect = o;
var a = this._axesList;
n(),
!i &&
t.get('containLabel') &&
(d(a, function (t) {
if (!t.model.get('axisLabel.inside')) {
var e = jl(t);
if (e) {
var i = t.isHorizontal() ? 'height' : 'width',
n = t.model.get('axisLabel.margin');
(o[i] -= e[i] + n),
'top' === t.position
? (o.y += e.height + n)
: 'left' === t.position && (o.x += e.width + n);
}
}
}),
n());
}),
(BD.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];
}
}),
(BD.getAxes = function () {
return this._axesList.slice();
}),
(BD.getCartesian = function (t, e) {
if (null != t && null != e) {
var i = 'x' + t + 'y' + e;
return this._coordsMap[i];
}
w(t) && ((e = t.yAxisIndex), (t = t.xAxisIndex));
for (var n = 0, o = this._coordsList; n < o.length; n++)
if (o[n].getAxis('x').index === t || o[n].getAxis('y').index === e)
return o[n];
}),
(BD.getCartesians = function () {
return this._coordsList.slice();
}),
(BD.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;
}),
(BD.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;
}),
(BD._findConvertTarget = function (t, e) {
var i,
n,
o = e.seriesModel,
a = e.xAxisModel || (o && o.getReferringComponents('xAxis')[0]),
r = e.yAxisModel || (o && o.getReferringComponents('yAxis')[0]),
s = e.gridModel,
u = this._coordsList;
return (
o
? l(u, (i = o.coordinateSystem)) < 0 && (i = null)
: a && r
? (i = this.getCartesian(a.componentIndex, r.componentIndex))
: a
? (n = this.getAxis('x', a.componentIndex))
: r
? (n = this.getAxis('y', r.componentIndex))
: s && s.coordinateSystem === this && (i = this._coordsList[0]),
{ cartesian: i, axis: n }
);
}),
(BD.containPoint = function (t) {
var e = this._coordsList[0];
if (e) return e.containPoint(t);
}),
(BD._initCartesian = function (t, e, i) {
function n(i) {
return function (n, s) {
if (eh(n, t, e)) {
var l = n.get('position');
'x' === i
? 'top' !== l &&
'bottom' !== l &&
o[(l = 'bottom')] &&
(l = 'top' === l ? 'bottom' : 'top')
: 'left' !== l &&
'right' !== l &&
o[(l = 'left')] &&
(l = 'left' === l ? 'right' : 'left'),
(o[l] = !0);
var u = new kD(i, Hl(n), [0, 0], n.get('type'), l),
h = 'category' === u.type;
(u.onBand = h && n.get('boundaryGap')),
(u.inverse = n.get('inverse')),
(n.axis = u),
(u.model = n),
(u.grid = this),
(u.index = s),
this._axesList.push(u),
(a[i][s] = u),
r[i]++;
}
};
}
var o = { left: !1, right: !1, top: !1, bottom: !1 },
a = { x: {}, y: {} },
r = { x: 0, y: 0 };
if (
(e.eachComponent('xAxis', n('x'), this),
e.eachComponent('yAxis', n('y'), this),
!r.x || !r.y)
)
return (this._axesMap = {}), void (this._axesList = []);
(this._axesMap = a),
d(
a.x,
function (e, i) {
d(
a.y,
function (n, o) {
var a = 'x' + i + 'y' + o,
r = new Qu(a);
(r.grid = this),
(r.model = t),
(this._coordsMap[a] = r),
this._coordsList.push(r),
r.addAxis(e),
r.addAxis(n);
},
this,
);
},
this,
);
}),
(BD._updateScale = function (t, e) {
function i(t, e, i) {
d(t.mapDimension(e.dim, !0), function (i) {
e.scale.unionExtentFromData(t, gl(t, i));
});
}
d(this._axesList, function (t) {
t.scale.setExtent(1 / 0, -1 / 0);
}),
t.eachSeries(function (n) {
if (sh(n)) {
var o = rh(n),
a = o[0],
r = o[1];
if (!eh(a, e, t) || !eh(r, e, t)) return;
var s = this.getCartesian(a.componentIndex, r.componentIndex),
l = n.getData(),
u = s.getAxis('x'),
h = s.getAxis('y');
'list' === l.type && (i(l, u), i(l, h));
}
}, this);
}),
(BD.getTooltipAxes = function (t) {
var e = [],
i = [];
return (
d(this.getCartesians(), function (n) {
var o = null != t && 'auto' !== t ? n.getAxis(t) : n.getBaseAxis(),
a = n.getOtherAxis(o);
l(e, o) < 0 && e.push(o), l(i, a) < 0 && i.push(a);
}),
{ baseAxes: e, otherAxes: i }
);
});
var VD = ['xAxis', 'yAxis'];
(ih.create = function (t, e) {
var i = [];
return (
t.eachComponent('grid', function (n, o) {
var a = new ih(n, t, e);
(a.name = 'grid_' + o),
a.resize(n, e, !0),
(n.coordinateSystem = a),
i.push(a);
}),
t.eachSeries(function (t) {
if (sh(t)) {
var e = rh(t),
i = e[0],
n = e[1],
o = i.getCoordSysModel().coordinateSystem;
t.coordinateSystem = o.getCartesian(
i.componentIndex,
n.componentIndex,
);
}
}),
i
);
}),
(ih.dimensions = ih.prototype.dimensions = Qu.prototype.dimensions),
Fa.register('cartesian2d', ih);
var GD = Math.PI,
FD = function (t, e) {
(this.opt = e),
(this.axisModel = t),
r(e, {
labelOffset: 0,
nameDirection: 1,
tickDirection: 1,
labelDirection: 1,
silent: !0,
}),
(this.group = new tb());
var i = new tb({ position: e.position.slice(), rotation: e.rotation });
i.updateTransform(),
(this._transform = i.transform),
(this._dumbGroup = i);
};
FD.prototype = {
constructor: FD,
hasBuilder: function (t) {
return !!WD[t];
},
add: function (t) {
WD[t].call(this);
},
getGroup: function () {
return this.group;
},
};
var WD = {
axisLine: function () {
var t = this.opt,
e = this.axisModel;
if (e.get('axisLine.show')) {
var i = this.axisModel.axis.getExtent(),
n = this._transform,
o = [i[0], 0],
r = [i[1], 0];
n && (Q(o, o, n), Q(r, r, n));
var s = a(
{ lineCap: 'round' },
e.getModel('axisLine.lineStyle').getLineStyle(),
);
this.group.add(
new _M(
Kn({
anid: 'line',
shape: { x1: o[0], y1: o[1], x2: r[0], y2: r[1] },
style: s,
strokeContainThreshold: t.strokeContainThreshold || 5,
silent: !0,
z2: 1,
}),
),
);
var l = e.get('axisLine.symbol'),
u = e.get('axisLine.symbolSize'),
h = e.get('axisLine.symbolOffset') || 0;
if (('number' == typeof h && (h = [h, h]), null != l)) {
'string' == typeof l && (l = [l, l]),
('string' != typeof u && 'number' != typeof u) || (u = [u, u]);
var c = u[0],
f = u[1];
d(
[
{ rotate: t.rotation + Math.PI / 2, offset: h[0], r: 0 },
{
rotate: t.rotation - Math.PI / 2,
offset: h[1],
r: Math.sqrt(
(o[0] - r[0]) * (o[0] - r[0]) +
(o[1] - r[1]) * (o[1] - r[1]),
),
},
],
function (e, i) {
if ('none' !== l[i] && null != l[i]) {
var n = Jl(l[i], -c / 2, -f / 2, c, f, s.stroke, !0),
a = e.r + e.offset,
r = [
o[0] + a * Math.cos(t.rotation),
o[1] - a * Math.sin(t.rotation),
];
n.attr({
rotation: e.rotate,
position: r,
silent: !0,
z2: 11,
}),
this.group.add(n);
}
},
this,
);
}
}
},
axisTickLabel: function () {
var t = this.axisModel,
e = this.opt,
i = gh(this, t, e);
ch(t, mh(this, t, e), i);
},
axisName: function () {
var t = this.opt,
e = this.axisModel,
i = T(t.axisName, e.get('name'));
if (i) {
var n,
o = e.get('nameLocation'),
r = t.nameDirection,
s = e.getModel('nameTextStyle'),
l = e.get('nameGap') || 0,
u = this.axisModel.axis.getExtent(),
h = u[0] > u[1] ? -1 : 1,
c = [
'start' === o
? u[0] - h * l
: 'end' === o
? u[1] + h * l
: (u[0] + u[1]) / 2,
ph(o) ? t.labelOffset + r * l : 0,
],
d = e.get('nameRotate');
null != d && (d = (d * GD) / 180);
var f;
ph(o)
? (n = HD(t.rotation, null != d ? d : t.rotation, r))
: ((n = uh(t, o, d || 0, u)),
null != (f = t.axisNameAvailableWidth) &&
((f = Math.abs(f / Math.sin(n.rotation))),
!isFinite(f) && (f = null)));
var p = s.getFont(),
g = e.get('nameTruncate', !0) || {},
m = g.ellipsis,
v = T(t.nameTruncateMaxWidth, g.maxWidth, f),
y =
null != m && null != v
? tI(i, v, p, m, { 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 rM({
anid: 'name',
__fullText: i,
__truncatedText: y,
position: c,
rotation: n.rotation,
silent: hh(e),
z2: 1,
tooltip:
x && x.show
? a(
{
content: i,
formatter: function () {
return i;
},
formatterParams: w,
},
x,
)
: null,
});
mo(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 = lh(e)),
(b.eventData.targetType = 'axisName'),
(b.eventData.name = i)),
this._dumbGroup.add(b),
b.updateTransform(),
this.group.add(b),
b.decomposeTransform();
}
},
},
HD = (FD.innerTextLayout = function (t, e, i) {
var n,
o,
a = Xo(e - t);
return (
jo(a)
? ((o = i > 0 ? 'top' : 'bottom'), (n = 'center'))
: jo(a - GD)
? ((o = i > 0 ? 'bottom' : 'top'), (n = 'center'))
: ((o = 'middle'),
(n =
a > 0 && a < GD
? i > 0
? 'right'
: 'left'
: i > 0
? 'left'
: 'right')),
{ rotation: a, textAlign: n, textVerticalAlign: o }
);
}),
ZD = d,
UD = v,
XD = Ws({
type: 'axis',
_axisPointer: null,
axisPointerClass: null,
render: function (t, e, i, n) {
this.axisPointerClass && Sh(t),
XD.superApply(this, 'render', arguments),
Dh(this, t, 0, i, 0, !0);
},
updateAxisPointer: function (t, e, i, n, o) {
Dh(this, t, 0, i, 0, !1);
},
remove: function (t, e) {
var i = this._axisPointer;
i && i.remove(e), XD.superApply(this, 'remove', arguments);
},
dispose: function (t, e) {
Ch(this, e), XD.superApply(this, 'dispose', arguments);
},
}),
jD = [];
(XD.registerAxisPointerClass = function (t, e) {
jD[t] = e;
}),
(XD.getAxisPointerClass = function (t) {
return t && jD[t];
});
var YD = ['axisLine', 'axisTickLabel', 'axisName'],
qD = ['splitArea', 'splitLine'],
KD = XD.extend({
type: 'cartesianAxis',
axisPointerClass: 'CartesianAxisPointer',
render: function (t, e, i, n) {
this.group.removeAll();
var o = this._axisGroup;
if (
((this._axisGroup = new tb()),
this.group.add(this._axisGroup),
t.get('show'))
) {
var a = t.getCoordSysModel(),
r = Lh(a, t),
s = new FD(t, r);
d(YD, s.add, s),
this._axisGroup.add(s.getGroup()),
d(
qD,
function (e) {
t.get(e + '.show') && this['_' + e](t, a);
},
this,
),
Lo(o, this._axisGroup, t),
KD.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'),
o = n.getModel('lineStyle'),
a = o.get('color');
a = y(a) ? a : [a];
for (
var s = e.coordinateSystem.getRect(),
l = i.isHorizontal(),
u = 0,
h = i.getTicksCoords({ tickModel: n }),
c = [],
d = [],
f = o.getLineStyle(),
p = 0;
p < h.length;
p++
) {
var g = i.toGlobalCoord(h[p].coord);
l
? ((c[0] = g), (c[1] = s.y), (d[0] = g), (d[1] = s.y + s.height))
: ((c[0] = s.x), (c[1] = g), (d[0] = s.x + s.width), (d[1] = g));
var m = u++ % a.length,
v = h[p].tickValue;
this._axisGroup.add(
new _M(
Kn({
anid: null != v ? 'line_' + h[p].tickValue : null,
shape: { x1: c[0], y1: c[1], x2: d[0], y2: d[1] },
style: r({ stroke: a[m] }, f),
silent: !0,
}),
),
);
}
}
},
_splitArea: function (t, e) {
var i = t.axis;
if (!i.scale.isBlank()) {
var n = t.getModel('splitArea'),
o = n.getModel('areaStyle'),
a = o.get('color'),
s = e.coordinateSystem.getRect(),
l = i.getTicksCoords({ tickModel: n, clamp: !0 });
if (l.length) {
var u = a.length,
h = this._splitAreaColors,
c = R(),
d = 0;
if (h)
for (m = 0; m < l.length; m++) {
var f = h.get(l[m].tickValue);
if (null != f) {
d = (f + (u - 1) * m) % u;
break;
}
}
var p = i.toGlobalCoord(l[0].coord),
g = o.getAreaStyle();
a = y(a) ? a : [a];
for (var m = 1; m < l.length; m++) {
var v,
x,
_,
w,
b = i.toGlobalCoord(l[m].coord);
i.isHorizontal()
? ((v = p), (x = s.y), (_ = b - v), (w = s.height), (p = v + _))
: ((v = s.x), (x = p), (_ = s.width), (p = x + (w = b - x)));
var S = l[m - 1].tickValue;
null != S && c.set(S, d),
this._axisGroup.add(
new yM({
anid: null != S ? 'area_' + S : null,
shape: { x: v, y: x, width: _, height: w },
style: r({ fill: a[d] }, g),
silent: !0,
}),
),
(d = (d + 1) % u);
}
this._splitAreaColors = c;
}
}
},
});
KD.extend({ type: 'xAxis' }),
KD.extend({ type: 'yAxis' }),
Ws({
type: 'grid',
render: function (t, e) {
this.group.removeAll(),
t.get('show') &&
this.group.add(
new yM({
shape: t.coordinateSystem.getRect(),
style: r({ fill: t.get('backgroundColor') }, t.getItemStyle()),
silent: !0,
z2: -1,
}),
);
},
}),
Ns(function (t) {
t.xAxis && t.yAxis && !t.grid && (t.grid = {});
}),
Bs(TD('line', 'circle', 'line')),
zs(AD('line')),
Os(
VT.PROCESSOR.STATISTIC,
(function (t) {
return {
seriesType: t,
modifyOutputEnd: !0,
reset: function (t, e, i) {
var n = t.getData(),
o = t.get('sampling'),
a = t.coordinateSystem;
if ('cartesian2d' === a.type && o) {
var r = a.getBaseAxis(),
s = a.getOtherAxis(r),
l = r.getExtent(),
u = l[1] - l[0],
h = Math.round(n.count() / u);
if (h > 1) {
var c;
'string' == typeof o
? (c = DD[o])
: 'function' == typeof o && (c = o),
c &&
t.setData(
n.downSample(n.mapDimension(s.dim), 1 / h, c, CD),
);
}
}
},
};
})('line'),
);
var $D = YI.extend({
type: 'series.__base_bar__',
getInitialData: function (t, e) {
return ml(this.getSource(), this);
},
getMarkerPosition: function (t) {
var e = this.coordinateSystem;
if (e) {
var i = e.dataToPoint(e.clampData(t)),
n = this.getData(),
o = n.getLayout('offset'),
a = n.getLayout('size');
return (i[e.getBaseAxis().isHorizontal() ? 0 : 1] += o + a / 2), i;
}
return [NaN, NaN];
},
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: 'cartesian2d',
legendHoverLink: !0,
barMinHeight: 0,
barMinAngle: 0,
large: !1,
largeThreshold: 400,
progressive: 3e3,
progressiveChunkMode: 'mod',
itemStyle: {},
emphasis: {},
},
});
$D.extend({
type: 'series.bar',
dependencies: ['grid', 'polar'],
brushSelector: 'rect',
getProgressive: function () {
return !!this.get('large') && this.get('progressive');
},
getProgressiveThreshold: function () {
var t = this.get('progressiveThreshold'),
e = this.get('largeThreshold');
return e > t && (t = e), t;
},
});
var JD = Qb([
['fill', 'color'],
['stroke', 'borderColor'],
['lineWidth', 'borderWidth'],
['stroke', 'barBorderColor'],
['lineWidth', 'barBorderWidth'],
['opacity'],
['shadowBlur'],
['shadowOffsetX'],
['shadowOffsetY'],
['shadowColor'],
]),
QD = {
getBarItemStyle: function (t) {
var e = JD(this, t);
if (this.getBorderLineDash) {
var i = this.getBorderLineDash();
i && (e.lineDash = i);
}
return e;
},
},
tC = ['itemStyle', 'barBorderWidth'];
a(No.prototype, QD),
Zs({
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, e, i) {
this._clear(), this._updateDrawMode(t);
},
incrementalRender: function (t, e, i, n) {
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, e, i) {
var n,
o = this.group,
a = t.getData(),
r = this._data,
s = t.coordinateSystem,
l = s.getBaseAxis();
'cartesian2d' === s.type
? (n = l.isHorizontal())
: 'polar' === s.type && (n = 'angle' === l.dim);
var u = t.isAnimationEnabled() ? t : null;
a
.diff(r)
.add(function (e) {
if (a.hasValue(e)) {
var i = a.getItemModel(e),
r = iC[s.type](a, e, i),
l = eC[s.type](a, e, i, r, n, u);
a.setItemGraphicEl(e, l),
o.add(l),
Eh(l, a, e, i, r, t, n, 'polar' === s.type);
}
})
.update(function (e, i) {
var l = r.getItemGraphicEl(i);
if (a.hasValue(e)) {
var h = a.getItemModel(e),
c = iC[s.type](a, e, h);
l
? Io(l, { shape: c }, u, e)
: (l = eC[s.type](a, e, h, c, n, u, !0)),
a.setItemGraphicEl(e, l),
o.add(l),
Eh(l, a, e, h, c, t, n, 'polar' === s.type);
} else o.remove(l);
})
.remove(function (t) {
var e = r.getItemGraphicEl(t);
'cartesian2d' === s.type ? e && Nh(t, u, e) : e && Oh(t, u, e);
})
.execute(),
(this._data = a);
},
_renderLarge: function (t, e, i) {
this._clear(), zh(t, this.group);
},
_incrementalRenderLarge: function (t, e) {
zh(e, this.group, !0);
},
dispose: B,
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
? Oh(e.dataIndex, t, e)
: Nh(e.dataIndex, t, e);
})
: e.removeAll(),
(this._data = null);
},
});
var eC = {
cartesian2d: function (t, e, i, n, o, r, s) {
var l = new yM({ shape: a({}, n) });
if (r) {
var u = l.shape,
h = o ? 'height' : 'width',
c = {};
(u[h] = 0),
(c[h] = n[h]),
zM[s ? 'updateProps' : 'initProps'](l, { shape: c }, r, e);
}
return l;
},
polar: function (t, e, i, n, o, a, s) {
var l = n.startAngle < n.endAngle,
u = new hM({ shape: r({ clockwise: l }, n) });
if (a) {
var h = u.shape,
c = o ? 'r' : 'endAngle',
d = {};
(h[c] = o ? 0 : n.startAngle),
(d[c] = n[c]),
zM[s ? 'updateProps' : 'initProps'](u, { shape: d }, a, e);
}
return u;
},
},
iC = {
cartesian2d: function (t, e, i) {
var n = t.getItemLayout(e),
o = Rh(i, n),
a = n.width > 0 ? 1 : -1,
r = n.height > 0 ? 1 : -1;
return {
x: n.x + (a * o) / 2,
y: n.y + (r * o) / 2,
width: n.width - a * o,
height: n.height - r * o,
};
},
polar: function (t, e, i) {
var n = t.getItemLayout(e);
return {
cx: n.cx,
cy: n.cy,
r0: n.r0,
r: n.r,
startAngle: n.startAngle,
endAngle: n.endAngle,
};
},
},
nC = Pn.extend({
type: 'largeBar',
shape: { points: [] },
buildPath: function (t, e) {
for (
var i = e.points, n = this.__startPoint, o = this.__valueIdx, a = 0;
a < i.length;
a += 2
)
(n[this.__valueIdx] = i[a + o]),
t.moveTo(n[0], n[1]),
t.lineTo(i[a], i[a + 1]);
},
});
zs(v(El, 'bar')),
zs(CA),
Bs({
seriesType: 'bar',
reset: function (t) {
t.getData().setVisual('legendSymbol', 'roundRect');
},
});
var oC = function (t, e, i) {
e = (y(e) && { coordDimensions: e }) || a({}, e);
var n = t.getSource(),
o = _A(n, e),
r = new vA(o, t);
return r.initData(n, i), r;
},
aC = {
updateSelectedMap: function (t) {
(this._targetList = y(t) ? t.slice() : []),
(this._selectTargetMap = p(
t || [],
function (t, e) {
return t.set(e.name, e), t;
},
R(),
));
},
select: function (t, e) {
var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t);
'single' === this.get('selectedMode') &&
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);
if (null != i)
return this[i.selected ? 'unSelect' : 'select'](t, e), i.selected;
},
isSelected: function (t, e) {
var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t);
return i && i.selected;
},
},
rC = Hs({
type: 'series.pie',
init: function (t) {
rC.superApply(this, 'init', arguments),
(this.legendDataProvider = function () {
return this.getRawData();
}),
this.updateSelectedMap(this._createSelectableList()),
this._defaultLabelLine(t);
},
mergeOption: function (t) {
rC.superCall(this, 'mergeOption', t),
this.updateSelectedMap(this._createSelectableList());
},
getInitialData: function (t, e) {
return oC(this, ['value']);
},
_createSelectableList: function () {
for (
var t = this.getRawData(),
e = t.mapDimension('value'),
i = [],
n = 0,
o = t.count();
n < o;
n++
)
i.push({
name: t.getName(n),
value: t.get(e, n),
selected: pr(t, n, 'selected'),
});
return i;
},
getDataParams: function (t) {
var e = this.getData(),
i = rC.superCall(this, 'getDataParams', t),
n = [];
return (
e.each(e.mapDimension('value'), function (t) {
n.push(t);
}),
(i.percent = Uo(n, t, e.hostModel.get('percentPrecision'))),
i.$vars.push('percent'),
i
);
},
_defaultLabelLine: function (t) {
Ci(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',
},
});
h(rC, aC);
var sC = Fh.prototype;
(sC.updateData = function (t, e, i) {
function n() {
s.stopAnimation(!0),
s.animateTo(
{ shape: { r: h.r + l.get('hoverOffset') } },
300,
'elasticOut',
);
}
function o() {
s.stopAnimation(!0),
s.animateTo({ shape: { r: h.r } }, 300, 'elasticOut');
}
var s = this.childAt(0),
l = t.hostModel,
u = t.getItemModel(e),
h = t.getItemLayout(e),
c = a({}, h);
(c.label = null),
i
? (s.setShape(c),
'scale' === l.getShallow('animationType')
? ((s.shape.r = h.r0), To(s, { shape: { r: h.r } }, l, e))
: ((s.shape.endAngle = h.startAngle),
Io(s, { shape: { endAngle: h.endAngle } }, l, e)))
: Io(s, { shape: c }, l, e);
var d = t.getItemVisual(e, 'color');
s.useStyle(
r({ lineJoin: 'bevel', fill: d }, u.getModel('itemStyle').getItemStyle()),
),
(s.hoverStyle = u.getModel('emphasis.itemStyle').getItemStyle());
var f = u.getShallow('cursor');
f && s.attr('cursor', f),
Gh(
this,
t.getItemLayout(e),
l.isSelected(null, e),
l.get('selectedOffset'),
l.get('animation'),
),
s.off('mouseover').off('mouseout').off('emphasis').off('normal'),
u.get('hoverAnimation') &&
l.isAnimationEnabled() &&
s
.on('mouseover', n)
.on('mouseout', o)
.on('emphasis', n)
.on('normal', o),
this._updateLabel(t, e),
fo(this);
}),
(sC._updateLabel = function (t, e) {
var i = this.childAt(1),
n = this.childAt(2),
o = t.hostModel,
a = t.getItemModel(e),
r = t.getItemLayout(e).label,
s = t.getItemVisual(e, 'color');
Io(
i,
{
shape: {
points: r.linePoints || [
[r.x, r.y],
[r.x, r.y],
[r.x, r.y],
],
},
},
o,
e,
),
Io(n, { style: { x: r.x, y: r.y } }, o, e),
n.attr({ rotation: r.rotation, origin: [r.x, r.y], z2: 10 });
var l = a.getModel('label'),
u = a.getModel('emphasis.label'),
h = a.getModel('labelLine'),
c = a.getModel('emphasis.labelLine'),
s = t.getItemVisual(e, 'color');
go(
n.style,
(n.hoverStyle = {}),
l,
u,
{
labelFetcher: t.hostModel,
labelDataIndex: e,
defaultText: t.getName(e),
autoColor: s,
useInsideStyle: !!r.inside,
},
{
textAlign: r.textAlign,
textVerticalAlign: r.verticalAlign,
opacity: t.getItemVisual(e, 'opacity'),
},
),
(n.ignore = n.normalIgnore = !l.get('show')),
(n.hoverIgnore = !u.get('show')),
(i.ignore = i.normalIgnore = !h.get('show')),
(i.hoverIgnore = !c.get('show')),
i.setStyle({ stroke: s, opacity: t.getItemVisual(e, 'opacity') }),
i.setStyle(h.getModel('lineStyle').getLineStyle()),
(i.hoverStyle = c.getModel('lineStyle').getLineStyle());
var d = h.get('smooth');
d && !0 === d && (d = 0.4), i.setShape({ smooth: d });
}),
u(Fh, tb);
Ar.extend({
type: 'pie',
init: function () {
var t = new tb();
this._sectorGroup = t;
},
render: function (t, e, i, n) {
if (!n || n.from !== this.uid) {
var o = t.getData(),
a = this._data,
r = this.group,
s = e.get('animation'),
l = !a,
u = t.get('animationType'),
h = v(Vh, this.uid, t, s, i),
c = t.get('selectedMode');
if (
(o
.diff(a)
.add(function (t) {
var e = new Fh(o, t);
l &&
'scale' !== u &&
e.eachChild(function (t) {
t.stopAnimation(!0);
}),
c && e.on('click', h),
o.setItemGraphicEl(t, e),
r.add(e);
})
.update(function (t, e) {
var i = a.getItemGraphicEl(e);
i.updateData(o, t),
i.off('click'),
c && i.on('click', h),
r.add(i),
o.setItemGraphicEl(t, i);
})
.remove(function (t) {
var e = a.getItemGraphicEl(t);
r.remove(e);
})
.execute(),
s && l && o.count() > 0 && 'scale' !== u)
) {
var d = o.getItemLayout(0),
f = Math.max(i.getWidth(), i.getHeight()) / 2,
p = m(r.removeClipPath, r);
r.setClipPath(
this._createClipPath(
d.cx,
d.cy,
f,
d.startAngle,
d.clockwise,
p,
t,
),
);
} else r.removeClipPath();
this._data = o;
}
},
dispose: function () {},
_createClipPath: function (t, e, i, n, o, a, r) {
var s = new hM({
shape: {
cx: t,
cy: e,
r0: 0,
r: i,
startAngle: n,
endAngle: n,
clockwise: o,
},
});
return (
To(s, { shape: { endAngle: n + (o ? 1 : -1) * Math.PI * 2 } }, r, a), s
);
},
containPoint: function (t, e) {
var i = e.getData().getItemLayout(0);
if (i) {
var n = t[0] - i.cx,
o = t[1] - i.cy,
a = Math.sqrt(n * n + o * o);
return a <= i.r && a >= i.r0;
}
},
});
var lC = function (t, e) {
d(e, function (e) {
(e.update = 'updateView'),
Es(e, function (i, n) {
var o = {};
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);
o[i] = t.isSelected(i) || !1;
});
},
),
{ name: i.name, selected: o }
);
});
});
},
uC = function (t) {
return {
getTargetSeries: function (e) {
var i = {},
n = R();
return (
e.eachSeriesByType(t, function (t) {
(t.__paletteScope = i), n.set(t.uid, t);
}),
n
);
},
reset: function (t, e) {
var i = t.getRawData(),
n = {},
o = t.getData();
o.each(function (t) {
var e = o.getRawIndex(t);
n[e] = t;
}),
i.each(function (e) {
var a = n[e],
r = null != a && o.getItemVisual(a, 'color', !0);
if (r) i.setItemVisual(e, 'color', r);
else {
var s =
i.getItemModel(e).get('itemStyle.color') ||
t.getColorFromPalette(
i.getName(e) || e + '',
t.__paletteScope,
i.count(),
);
i.setItemVisual(e, 'color', s),
null != a && o.setItemVisual(a, 'color', s);
}
});
},
};
},
hC = function (t, e, i, n) {
var o,
a,
r = t.getData(),
s = [],
l = !1;
r.each(function (i) {
var n,
u,
h,
c,
d = r.getItemLayout(i),
f = r.getItemModel(i),
p = f.getModel('label'),
g = p.get('position') || f.get('emphasis.label.position'),
m = f.getModel('labelLine'),
v = m.get('length'),
y = m.get('length2'),
x = (d.startAngle + d.endAngle) / 2,
_ = Math.cos(x),
w = Math.sin(x);
(o = d.cx), (a = d.cy);
var b = 'inside' === g || 'inner' === g;
if ('center' === g) (n = d.cx), (u = d.cy), (c = 'center');
else {
var S = (b ? ((d.r + d.r0) / 2) * _ : d.r * _) + o,
M = (b ? ((d.r + d.r0) / 2) * w : d.r * w) + a;
if (((n = S + 3 * _), (u = M + 3 * w), !b)) {
var I = S + _ * (v + e - d.r),
T = M + w * (v + e - d.r),
A = I + (_ < 0 ? -1 : 1) * y,
D = T;
(n = A + (_ < 0 ? -5 : 5)),
(u = D),
(h = [
[S, M],
[I, T],
[A, D],
]);
}
c = b ? 'center' : _ > 0 ? 'left' : 'right';
}
var C = p.getFont(),
L = p.get('rotate') ? (_ < 0 ? -x + Math.PI : -x) : 0,
k = ke(t.getFormattedLabel(i, 'normal') || r.getName(i), C, c, 'top');
(l = !!L),
(d.label = {
x: n,
y: u,
position: g,
height: k.height,
len: v,
len2: y,
linePoints: h,
textAlign: c,
verticalAlign: 'middle',
rotation: L,
inside: b,
}),
b || s.push(d.label);
}),
!l && t.get('avoidLabelOverlap') && Hh(s, o, a, e, i, n);
},
cC = 2 * Math.PI,
dC = Math.PI / 180,
fC = 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), o = 0; o < i.length; o++)
if (!i[o].isSelected(e)) return !1;
return !0;
});
}
},
};
};
lC('pie', [
{
type: 'pieToggleSelect',
event: 'pieselectchanged',
method: 'toggleSelected',
},
{ type: 'pieSelect', event: 'pieselected', method: 'select' },
{ type: 'pieUnSelect', event: 'pieunselected', method: 'unSelect' },
]),
Bs(uC('pie')),
zs(
v(function (t, e, i, n) {
e.eachSeriesByType(t, function (t) {
var e = t.getData(),
n = e.mapDimension('value'),
o = t.get('center'),
a = t.get('radius');
y(a) || (a = [0, a]), y(o) || (o = [o, o]);
var r = i.getWidth(),
s = i.getHeight(),
l = Math.min(r, s),
u = Vo(o[0], r),
h = Vo(o[1], s),
c = Vo(a[0], l / 2),
d = Vo(a[1], l / 2),
f = -t.get('startAngle') * dC,
p = t.get('minAngle') * dC,
g = 0;
e.each(n, function (t) {
!isNaN(t) && g++;
});
var m = e.getSum(n),
v = (Math.PI / (m || g)) * 2,
x = t.get('clockwise'),
_ = t.get('roseType'),
w = t.get('stillShowZeroSum'),
b = e.getDataExtent(n);
b[0] = 0;
var S = cC,
M = 0,
I = f,
T = x ? 1 : -1;
if (
(e.each(n, function (t, i) {
var n;
if (isNaN(t))
e.setItemLayout(i, {
angle: NaN,
startAngle: NaN,
endAngle: NaN,
clockwise: x,
cx: u,
cy: h,
r0: c,
r: _ ? NaN : d,
});
else {
(n = 'area' !== _ ? (0 === m && w ? v : t * v) : cC / g) < p
? ((n = p), (S -= p))
: (M += t);
var o = I + T * n;
e.setItemLayout(i, {
angle: n,
startAngle: I,
endAngle: o,
clockwise: x,
cx: u,
cy: h,
r0: c,
r: _ ? Bo(t, b, [c, d]) : d,
}),
(I = o);
}
}),
S < cC && g)
)
if (S <= 0.001) {
var A = cC / g;
e.each(n, function (t, i) {
if (!isNaN(t)) {
var n = e.getItemLayout(i);
(n.angle = A),
(n.startAngle = f + T * i * A),
(n.endAngle = f + T * (i + 1) * A);
}
});
} else
(v = S / M),
(I = f),
e.each(n, function (t, i) {
if (!isNaN(t)) {
var n = e.getItemLayout(i),
o = n.angle === p ? p : t * v;
(n.startAngle = I), (n.endAngle = I + T * o), (I += T * o);
}
});
hC(t, d, r, s);
});
}, 'pie'),
),
Os(fC('pie')),
YI.extend({
type: 'series.scatter',
dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'],
getInitialData: function (t, e) {
return ml(this.getSource(), this);
},
brushSelector: 'point',
getProgressive: function () {
var t = this.option.progressive;
return null == t
? this.option.large
? 5e3
: this.get('progressive')
: t;
},
getProgressiveThreshold: function () {
var t = this.option.progressiveThreshold;
return null == t
? this.option.large
? 1e4
: this.get('progressiveThreshold')
: t;
},
defaultOption: {
coordinateSystem: 'cartesian2d',
zlevel: 0,
z: 2,
legendHoverLink: !0,
hoverAnimation: !0,
symbolSize: 10,
large: !1,
largeThreshold: 2e3,
itemStyle: { opacity: 0.8 },
},
});
var pC = Un({
shape: { points: null },
symbolProxy: null,
buildPath: function (t, e) {
var i = e.points,
n = e.size,
o = this.symbolProxy,
a = o.shape;
if (!((t.getContext ? t.getContext() : t) && n[0] < 4))
for (var r = 0; r < i.length; ) {
var s = i[r++],
l = i[r++];
isNaN(s) ||
isNaN(l) ||
((a.x = s - n[0] / 2),
(a.y = l - n[1] / 2),
(a.width = n[0]),
(a.height = n[1]),
o.buildPath(t, a, !0));
}
},
afterBrush: function (t) {
var e = this.shape,
i = e.points,
n = e.size;
if (n[0] < 4) {
this.setTransform(t);
for (var o = 0; o < i.length; ) {
var a = i[o++],
r = i[o++];
isNaN(a) ||
isNaN(r) ||
t.fillRect(a - n[0] / 2, r - n[1] / 2, n[0], n[1]);
}
this.restoreTransform(t);
}
},
findDataIndex: function (t, e) {
for (
var i = this.shape,
n = i.points,
o = i.size,
a = Math.max(o[0], 4),
r = Math.max(o[1], 4),
s = n.length / 2 - 1;
s >= 0;
s--
) {
var l = 2 * s,
u = n[l] - a / 2,
h = n[l + 1] - r / 2;
if (t >= u && e >= h && t <= u + a && e <= h + r) return s;
}
return -1;
},
}),
gC = Uh.prototype;
(gC.isPersistent = function () {
return !this._incremental;
}),
(gC.updateData = function (t) {
this.group.removeAll();
var e = new pC({ rectHover: !0, cursor: 'default' });
e.setShape({ points: t.getLayout('symbolPoints') }),
this._setCommon(e, t),
this.group.add(e),
(this._incremental = null);
}),
(gC.updateLayout = function (t) {
if (!this._incremental) {
var e = t.getLayout('symbolPoints');
this.group.eachChild(function (t) {
if (null != t.startIndex) {
var i = 2 * (t.endIndex - t.startIndex),
n = 4 * t.startIndex * 2;
e = new Float32Array(e.buffer, n, i);
}
t.setShape('points', e);
});
}
}),
(gC.incrementalPrepareUpdate = function (t) {
this.group.removeAll(),
this._clearIncremental(),
t.count() > 2e6
? (this._incremental || (this._incremental = new Zn({ silent: !0 })),
this.group.add(this._incremental))
: (this._incremental = null);
}),
(gC.incrementalUpdate = function (t, e) {
var i;
this._incremental
? ((i = new pC()), this._incremental.addDisplayable(i, !0))
: (((i = new pC({
rectHover: !0,
cursor: 'default',
startIndex: t.start,
endIndex: t.end,
})).incremental = !0),
this.group.add(i)),
i.setShape({ points: e.getLayout('symbolPoints') }),
this._setCommon(i, e, !!this._incremental);
}),
(gC._setCommon = function (t, e, i) {
var n = e.hostModel,
o = e.getVisual('symbolSize');
t.setShape('size', o instanceof Array ? o : [o, o]),
(t.symbolProxy = Jl(e.getVisual('symbol'), 0, 0, 0, 0)),
(t.setColor = t.symbolProxy.setColor);
var a = t.shape.size[0] < 4;
t.useStyle(
n
.getModel('itemStyle')
.getItemStyle(a ? ['color', 'shadowBlur', 'shadowColor'] : ['color']),
);
var r = e.getVisual('color');
r && t.setColor(r),
i ||
((t.seriesIndex = n.seriesIndex),
t.on('mousemove', function (e) {
t.dataIndex = null;
var i = t.findDataIndex(e.offsetX, e.offsetY);
i >= 0 && (t.dataIndex = i + (t.startIndex || 0));
}));
}),
(gC.remove = function () {
this._clearIncremental(),
(this._incremental = null),
this.group.removeAll();
}),
(gC._clearIncremental = function () {
var t = this._incremental;
t && t.clearDisplaybles();
}),
Zs({
type: 'scatter',
render: function (t, e, i) {
var n = t.getData();
this._updateSymbolDraw(n, t).updateData(n), (this._finished = !0);
},
incrementalPrepareRender: function (t, e, i) {
var n = t.getData();
this._updateSymbolDraw(n, t).incrementalPrepareUpdate(n),
(this._finished = !1);
},
incrementalRender: function (t, e, i) {
this._symbolDraw.incrementalUpdate(t, e.getData()),
(this._finished = t.end === e.getData().count());
},
updateTransform: function (t, e, i) {
var n = t.getData();
if (
(this.group.dirty(),
!this._finished ||
n.count() > 1e4 ||
!this._symbolDraw.isPersistent())
)
return { update: !0 };
var o = AD().reset(t);
o.progress && o.progress({ start: 0, end: n.count() }, n),
this._symbolDraw.updateLayout(n);
},
_updateSymbolDraw: function (t, e) {
var i = this._symbolDraw,
n = e.pipelineContext.large;
return (
(i && n === this._isLargeDraw) ||
(i && i.remove(),
(i = this._symbolDraw = n ? new Uh() : new Du()),
(this._isLargeDraw = n),
this.group.removeAll()),
this.group.add(i.group),
i
);
},
remove: function (t, e) {
this._symbolDraw && this._symbolDraw.remove(!0),
(this._symbolDraw = null);
},
dispose: function () {},
}),
Bs(TD('scatter', 'circle')),
zs(AD('scatter')),
u(Xh, aD),
(jh.prototype.getIndicatorAxes = function () {
return this._indicatorAxes;
}),
(jh.prototype.dataToPoint = function (t, e) {
var i = this._indicatorAxes[e];
return this.coordToPoint(i.dataToCoord(t), e);
}),
(jh.prototype.coordToPoint = function (t, e) {
var i = this._indicatorAxes[e].angle;
return [this.cx + t * Math.cos(i), this.cy - t * Math.sin(i)];
}),
(jh.prototype.pointToData = function (t) {
var e = t[0] - this.cx,
i = t[1] - this.cy,
n = Math.sqrt(e * e + i * i);
(e /= n), (i /= n);
for (
var o, a = Math.atan2(-i, e), r = 1 / 0, s = -1, l = 0;
l < this._indicatorAxes.length;
l++
) {
var u = this._indicatorAxes[l],
h = Math.abs(a - u.angle);
h < r && ((o = u), (s = l), (r = h));
}
return [s, +(o && o.coodToData(n))];
}),
(jh.prototype.resize = function (t, e) {
var i = t.get('center'),
n = e.getWidth(),
o = e.getHeight(),
a = Math.min(n, o) / 2;
(this.cx = Vo(i[0], n)),
(this.cy = Vo(i[1], o)),
(this.startAngle = (t.get('startAngle') * Math.PI) / 180);
var r = t.get('radius');
('string' != typeof r && 'number' != typeof r) || (r = [0, r]),
(this.r0 = Vo(r[0], a)),
(this.r = Vo(r[1], a)),
d(
this._indicatorAxes,
function (t, e) {
t.setExtent(this.r0, this.r);
var i =
this.startAngle + (e * Math.PI * 2) / this._indicatorAxes.length;
(i = Math.atan2(Math.sin(i), Math.cos(i))), (t.angle = i);
},
this,
);
}),
(jh.prototype.update = function (t, e) {
function i(t) {
var e = Math.pow(10, Math.floor(Math.log(t) / Math.LN10)),
i = t / e;
return 2 === i ? (i = 5) : (i *= 2), i * e;
}
var n = this._indicatorAxes,
o = this._model;
d(n, function (t) {
t.scale.setExtent(1 / 0, -1 / 0);
}),
t.eachSeriesByType(
'radar',
function (e, i) {
if (
'radar' === e.get('coordinateSystem') &&
t.getComponent('radar', e.get('radarIndex')) === o
) {
var a = e.getData();
d(n, function (t) {
t.scale.unionExtentFromData(a, a.mapDimension(t.dim));
});
}
},
this,
);
var a = o.get('splitNumber');
d(n, function (t, e) {
var n = Gl(t.scale, t.model);
Wl(t.scale, t.model);
var o = t.model,
r = t.scale,
s = o.getMin(),
l = o.getMax(),
u = r.getInterval();
if (null != s && null != l)
r.setExtent(+s, +l), r.setInterval((l - s) / a);
else if (null != s) {
var h;
do {
(h = s + u * a), r.setExtent(+s, h), r.setInterval(u), (u = i(u));
} while (h < n[1] && isFinite(h) && isFinite(n[1]));
} else if (null != l) {
var c;
do {
(c = l - u * a), r.setExtent(c, +l), r.setInterval(u), (u = i(u));
} while (c > n[0] && isFinite(c) && isFinite(n[0]));
} else {
r.getTicks().length - 1 > a && (u = i(u));
var d = Math.round((n[0] + n[1]) / 2 / u) * u,
f = Math.round(a / 2);
r.setExtent(Go(d - f * u), Go(d + (a - f) * u)), r.setInterval(u);
}
});
}),
(jh.dimensions = []),
(jh.create = function (t, e) {
var i = [];
return (
t.eachComponent('radar', function (n) {
var o = new jh(n, t, e);
i.push(o), (n.coordinateSystem = o);
}),
t.eachSeriesByType('radar', function (t) {
'radar' === t.get('coordinateSystem') &&
(t.coordinateSystem = i[t.get('radarIndex') || 0]);
}),
i
);
}),
Fa.register('radar', jh);
var mC = ND.valueAxis,
vC =
(Fs({
type: 'radar',
optionUpdated: function () {
var t = this.get('boundaryGap'),
e = this.get('splitNumber'),
o = this.get('scale'),
s = this.get('axisLine'),
l = this.get('axisTick'),
u = this.get('axisLabel'),
h = this.get('name'),
c = this.get('name.show'),
d = this.get('name.formatter'),
p = this.get('nameGap'),
g = this.get('triggerEvent'),
m = f(
this.get('indicator') || [],
function (f) {
null != f.max && f.max > 0 && !f.min
? (f.min = 0)
: null != f.min && f.min < 0 && !f.max && (f.max = 0);
var m = h;
if (
(null != f.color && (m = r({ color: f.color }, h)),
(f = n(
i(f),
{
boundaryGap: t,
splitNumber: e,
scale: o,
axisLine: s,
axisTick: l,
axisLabel: u,
name: f.text,
nameLocation: 'end',
nameGap: p,
nameTextStyle: m,
triggerEvent: g,
},
!1,
)),
c || (f.name = ''),
'string' == typeof d)
) {
var v = f.name;
f.name = d.replace('{value}', null != v ? v : '');
} else 'function' == typeof d && (f.name = d(f.name, f));
var y = a(new No(f, null, this.ecModel), UA);
return (
(y.mainType = 'radar'),
(y.componentIndex = this.componentIndex),
y
);
},
this,
);
this.getIndicatorModels = function () {
return m;
};
},
defaultOption: {
zlevel: 0,
z: 0,
center: ['50%', '50%'],
radius: '75%',
startAngle: 90,
name: { show: !0 },
boundaryGap: [0, 0],
splitNumber: 5,
nameGap: 15,
scale: !1,
shape: 'polygon',
axisLine: n({ lineStyle: { color: '#bbb' } }, mC.axisLine),
axisLabel: Yh(mC.axisLabel, !1),
axisTick: Yh(mC.axisTick, !1),
splitLine: Yh(mC.splitLine, !0),
splitArea: Yh(mC.splitArea, !0),
indicator: [],
},
}),
['axisLine', 'axisTickLabel', 'axisName']);
Ws({
type: 'radar',
render: function (t, e, i) {
this.group.removeAll(),
this._buildAxes(t),
this._buildSplitLineAndArea(t);
},
_buildAxes: function (t) {
var e = t.coordinateSystem;
d(
f(e.getIndicatorAxes(), function (t) {
return new FD(t.model, {
position: [e.cx, e.cy],
rotation: t.angle,
labelDirection: -1,
tickDirection: -1,
nameDirection: 1,
});
}),
function (t) {
d(vC, t.add, t), this.group.add(t.getGroup());
},
this,
);
},
_buildSplitLineAndArea: function (t) {
function e(t, e, i) {
var n = i % e.length;
return (t[n] = t[n] || []), n;
}
var i = t.coordinateSystem,
n = i.getIndicatorAxes();
if (n.length) {
var o = t.get('shape'),
a = t.getModel('splitLine'),
s = t.getModel('splitArea'),
l = a.getModel('lineStyle'),
u = s.getModel('areaStyle'),
h = a.get('show'),
c = s.get('show'),
p = l.get('color'),
g = u.get('color');
(p = y(p) ? p : [p]), (g = y(g) ? g : [g]);
var m = [],
v = [];
if ('circle' === o)
for (
var x = n[0].getTicksCoords(), _ = i.cx, w = i.cy, b = 0;
b < x.length;
b++
)
h &&
m[(D = e(m, p, b))].push(
new sM({ shape: { cx: _, cy: w, r: x[b].coord } }),
),
c &&
b < x.length - 1 &&
v[(D = e(v, g, b))].push(
new cM({
shape: { cx: _, cy: w, r0: x[b].coord, r: x[b + 1].coord },
}),
);
else
for (
var S,
M = f(n, function (t, e) {
var n = t.getTicksCoords();
return (
(S = null == S ? n.length - 1 : Math.min(n.length - 1, S)),
f(n, function (t) {
return i.coordToPoint(t.coord, e);
})
);
}),
I = [],
b = 0;
b <= S;
b++
) {
for (var T = [], A = 0; A < n.length; A++) T.push(M[A][b]);
if (
(T[0] && T.push(T[0].slice()),
h && m[(D = e(m, p, b))].push(new gM({ shape: { points: T } })),
c && I)
) {
var D = e(v, g, b - 1);
v[D].push(new pM({ shape: { points: T.concat(I) } }));
}
I = T.slice().reverse();
}
var C = l.getLineStyle(),
L = u.getAreaStyle();
d(
v,
function (t, e) {
this.group.add(
OM(t, {
style: r({ stroke: 'none', fill: g[e % g.length] }, L),
silent: !0,
}),
);
},
this,
),
d(
m,
function (t, e) {
this.group.add(
OM(t, {
style: r({ fill: 'none', stroke: p[e % p.length] }, C),
silent: !0,
}),
);
},
this,
);
}
},
});
var yC = YI.extend({
type: 'series.radar',
dependencies: ['radar'],
init: function (t) {
yC.superApply(this, 'init', arguments),
(this.legendDataProvider = function () {
return this.getRawData();
});
},
getInitialData: function (t, e) {
return oC(this, {
generateCoord: 'indicator_',
generateCoordCount: 1 / 0,
});
},
formatTooltip: function (t) {
var e = this.getData(),
i = this.coordinateSystem.getIndicatorAxes(),
n = this.getData().getName(t);
return (
ia('' === n ? this.name : n) +
'
' +
f(i, function (i, n) {
var o = e.get(e.mapDimension(i.dim), t);
return ia(i.name + ' : ' + o);
}).join('
')
);
},
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: 'radar',
legendHoverLink: !0,
radarIndex: 0,
lineStyle: { width: 2, type: 'solid' },
label: { position: 'top' },
symbol: 'emptyCircle',
symbolSize: 4,
},
});
Zs({
type: 'radar',
render: function (t, e, n) {
function o(t, e) {
var i = t.getItemVisual(e, 'symbol') || 'circle',
n = t.getItemVisual(e, 'color');
if ('none' !== i) {
var o = qh(t.getItemVisual(e, 'symbolSize')),
a = Jl(i, -1, -1, 2, 2, n);
return (
a.attr({
style: { strokeNoScale: !0 },
z2: 100,
scale: [o[0] / 2, o[1] / 2],
}),
a
);
}
}
function a(e, i, n, a, r, s) {
n.removeAll();
for (var l = 0; l < i.length - 1; l++) {
var u = o(a, r);
u &&
((u.__dimIdx = l),
e[l]
? (u.attr('position', e[l]),
zM[s ? 'initProps' : 'updateProps'](
u,
{ position: i[l] },
t,
r,
))
: u.attr('position', i[l]),
n.add(u));
}
}
function s(t) {
return f(t, function (t) {
return [l.cx, l.cy];
});
}
var l = t.coordinateSystem,
u = this.group,
h = t.getData(),
c = this._data;
h
.diff(c)
.add(function (e) {
var i = h.getItemLayout(e);
if (i) {
var n = new pM(),
o = new gM(),
r = { shape: { points: i } };
(n.shape.points = s(i)),
(o.shape.points = s(i)),
To(n, r, t, e),
To(o, r, t, e);
var l = new tb(),
u = new tb();
l.add(o),
l.add(n),
l.add(u),
a(o.shape.points, i, u, h, e, !0),
h.setItemGraphicEl(e, l);
}
})
.update(function (e, i) {
var n = c.getItemGraphicEl(i),
o = n.childAt(0),
r = n.childAt(1),
s = n.childAt(2),
l = { shape: { points: h.getItemLayout(e) } };
l.shape.points &&
(a(o.shape.points, l.shape.points, s, h, e, !1),
Io(o, l, t),
Io(r, l, t),
h.setItemGraphicEl(e, n));
})
.remove(function (t) {
u.remove(c.getItemGraphicEl(t));
})
.execute(),
h.eachItemGraphicEl(function (t, e) {
function n() {
l.attr('ignore', m);
}
function o() {
l.attr('ignore', g);
}
var a = h.getItemModel(e),
s = t.childAt(0),
l = t.childAt(1),
c = t.childAt(2),
d = h.getItemVisual(e, 'color');
u.add(t),
s.useStyle(
r(a.getModel('lineStyle').getLineStyle(), {
fill: 'none',
stroke: d,
}),
),
(s.hoverStyle = a.getModel('emphasis.lineStyle').getLineStyle());
var f = a.getModel('areaStyle'),
p = a.getModel('emphasis.areaStyle'),
g = f.isEmpty() && f.parentModel.isEmpty(),
m = p.isEmpty() && p.parentModel.isEmpty();
(m = m && g),
(l.ignore = g),
l.useStyle(r(f.getAreaStyle(), { fill: d, opacity: 0.7 })),
(l.hoverStyle = p.getAreaStyle());
var v = a.getModel('itemStyle').getItemStyle(['color']),
y = a.getModel('emphasis.itemStyle').getItemStyle(),
x = a.getModel('label'),
_ = a.getModel('emphasis.label');
c.eachChild(function (t) {
t.setStyle(v),
(t.hoverStyle = i(y)),
go(t.style, t.hoverStyle, x, _, {
labelFetcher: h.hostModel,
labelDataIndex: e,
labelDimIndex: t.__dimIdx,
defaultText: h.get(h.dimensions[t.__dimIdx], e),
autoColor: d,
isRectText: !0,
});
}),
t.off('mouseover').off('mouseout').off('normal').off('emphasis'),
t
.on('emphasis', n)
.on('mouseover', n)
.on('normal', o)
.on('mouseout', o),
fo(t);
}),
(this._data = h);
},
remove: function () {
this.group.removeAll(), (this._data = null);
},
dispose: function () {},
});
Bs(uC('radar')),
Bs(TD('radar', 'circle')),
zs(function (t) {
t.eachSeriesByType('radar', function (t) {
var e = t.getData(),
i = [],
n = t.coordinateSystem;
if (n) {
for (var o = n.getIndicatorAxes(), a = 0; a < o.length; a++)
e.each(e.mapDimension(o[a].dim), function (t, e) {
(i[e] = i[e] || []), (i[e][a] = n.dataToPoint(t, a));
});
e.each(function (t) {
i[t][0] && i[t].push(i[t][0].slice()), e.setItemLayout(t, i[t]);
});
}
});
}),
Os(fC('radar')),
Ns(function (t) {
var e = t.polar;
if (e) {
y(e) || (e = [e]);
var i = [];
d(e, function (e, n) {
e.indicator
? (e.type && !e.shape && (e.shape = e.type),
(t.radar = t.radar || []),
y(t.radar) || (t.radar = [t.radar]),
t.radar.push(e))
: i.push(e);
}),
(t.polar = i);
}
d(t.series, function (t) {
t &&
'radar' === t.type &&
t.polarIndex &&
(t.radarIndex = t.polarIndex);
});
});
for (
var xC = [126, 25],
_C = [
[
[0, 3.5],
[7, 11.2],
[15, 11.9],
[30, 7],
[42, 0.7],
[52, 0.7],
[56, 7.7],
[59, 0.7],
[64, 0.7],
[64, 0],
[5, 0],
[0, 3.5],
],
[
[13, 16.1],
[19, 14.7],
[16, 21.7],
[11, 23.1],
[13, 16.1],
],
[
[12, 32.2],
[14, 38.5],
[15, 38.5],
[13, 32.2],
[12, 32.2],
],
[
[16, 47.6],
[12, 53.2],
[13, 53.2],
[18, 47.6],
[16, 47.6],
],
[
[6, 64.4],
[8, 70],
[9, 70],
[8, 64.4],
[6, 64.4],
],
[
[23, 82.6],
[29, 79.8],
[30, 79.8],
[25, 82.6],
[23, 82.6],
],
[
[37, 70.7],
[43, 62.3],
[44, 62.3],
[39, 70.7],
[37, 70.7],
],
[
[48, 51.1],
[51, 45.5],
[53, 45.5],
[50, 51.1],
[48, 51.1],
],
[
[51, 35],
[51, 28.7],
[53, 28.7],
[53, 35],
[51, 35],
],
[
[52, 22.4],
[55, 17.5],
[56, 17.5],
[53, 22.4],
[52, 22.4],
],
[
[58, 12.6],
[62, 7],
[63, 7],
[60, 12.6],
[58, 12.6],
],
[
[0, 3.5],
[0, 93.1],
[64, 93.1],
[64, 0],
[63, 0],
[63, 92.4],
[1, 92.4],
[1, 3.5],
[0, 3.5],
],
],
wC = 0;
wC < _C.length;
wC++
)
for (var bC = 0; bC < _C[wC].length; bC++)
(_C[wC][bC][0] /= 10.5),
(_C[wC][bC][1] /= -14),
(_C[wC][bC][0] += xC[0]),
(_C[wC][bC][1] += xC[1]);
var SC = function (t, e) {
'china' === t &&
e.push(
new eu(
'南海诸岛',
f(_C, function (t) {
return { type: 'polygon', exterior: t };
}),
xC,
),
);
},
MC = {
南海诸岛: [32, 80],
广东: [0, -10],
香港: [10, 5],
澳门: [-10, 10],
天津: [5, 5],
},
IC = function (t, e) {
if ('china' === t) {
var i = MC[e.name];
if (i) {
var n = e.center;
(n[0] += i[0] / 10.5), (n[1] += -i[1] / 14);
}
}
},
TC = {
Russia: [100, 60],
'United States': [-99, 38],
'United States of America': [-99, 38],
},
AC = function (t, e) {
if ('world' === t) {
var i = TC[e.name];
if (i) {
var n = e.center;
(n[0] = i[0]), (n[1] = i[1]);
}
}
},
DC = [
[
[123.45165252685547, 25.73527164402261],
[123.49731445312499, 25.73527164402261],
[123.49731445312499, 25.750734064600884],
[123.45165252685547, 25.750734064600884],
[123.45165252685547, 25.73527164402261],
],
],
CC = function (t, e) {
'china' === t &&
'台湾' === e.name &&
e.geometries.push({ type: 'polygon', exterior: DC[0] });
},
LC = Bi(),
kC = {
load: function (t, e) {
var i = LC(e).parsed;
if (i) return i;
var n,
o = e.specialAreas || {},
a = e.geoJSON;
try {
n = a ? iD(a) : [];
} catch (t) {
throw new Error('Invalid geoJson format\n' + t.message);
}
return (
d(n, function (e) {
var i = e.name;
IC(t, e), AC(t, e), CC(t, e);
var n = o[i];
n && e.transformTo(n.left, n.top, n.width, n.height);
}),
SC(t, n),
(LC(e).parsed = { regions: n, boundingRect: Kh(n) })
);
},
},
PC = Bi(),
NC = {
geoJSON: kC,
svg: {
load: function (t, e) {
var i = PC(e).originRoot;
if (i) return { root: i, boundingRect: PC(e).boundingRect };
var n = $h(e);
return (
(PC(e).originRoot = n.root),
(PC(e).boundingRect = n.boundingRect),
n
);
},
makeGraphic: function (t, e, i) {
var n = PC(e),
o = n.rootMap || (n.rootMap = R()),
a = o.get(i);
if (a) return a;
var r = n.originRoot,
s = n.boundingRect;
return (
n.originRootHostKey
? (a = $h(e, s).root)
: ((n.originRootHostKey = i), (a = r)),
o.set(i, a)
);
},
removeGraphic: function (t, e, i) {
var n = PC(e),
o = n.rootMap;
o && o.removeKey(i),
i === n.originRootHostKey && (n.originRootHostKey = null);
},
},
},
OC = {
load: function (t, e) {
var i,
n = [],
o = R(),
a = R();
return (
d(Qh(t), function (r) {
var s = NC[r.type].load(t, r);
d(s.regions, function (t) {
var i = t.name;
e && e.hasOwnProperty(i) && (t = t.cloneShallow((i = e[i]))),
n.push(t),
o.set(i, t),
a.set(i, t.center);
});
var l = s.boundingRect;
l && (i ? i.union(l) : (i = l.clone()));
}),
{
regions: n,
regionsMap: o,
nameCoordMap: a,
boundingRect: i || new de(0, 0, 0, 0),
}
);
},
makeGraphic: Jh('makeGraphic'),
removeGraphic: Jh('removeGraphic'),
};
h(
YI.extend({
type: 'series.map',
dependencies: ['geo'],
layoutMode: 'box',
needsDrawMap: !1,
seriesGroup: [],
getInitialData: function (t) {
for (
var e = oC(this, ['value']),
i = e.mapDimension('value'),
n = R(),
o = [],
a = [],
r = 0,
s = e.count();
r < s;
r++
) {
var l = e.getName(r);
n.set(l, !0),
o.push({
name: l,
value: e.get(i, r),
selected: pr(e, r, 'selected'),
});
}
return (
d(OC.load(this.getMapType(), this.option.nameMap).regions, function (
t,
) {
var e = t.name;
n.get(e) || (o.push({ name: e }), a.push(e));
}),
this.updateSelectedMap(o),
e.appendValues([], a),
e
);
},
getHostGeoModel: function () {
var t = this.option.geoIndex;
return null != t ? this.dependentModels.geo[t] : null;
},
getMapType: function () {
return (this.getHostGeoModel() || this).option.map;
},
getRawValue: function (t) {
var e = this.getData();
return e.get(e.mapDimension('value'), t);
},
getRegionModel: function (t) {
var e = this.getData();
return e.getItemModel(e.indexOfName(t));
},
formatTooltip: function (t) {
for (
var e = this.getData(),
i = ta(this.getRawValue(t)),
n = e.getName(t),
o = this.seriesGroup,
a = [],
r = 0;
r < o.length;
r++
) {
var s = o[r].originalData.indexOfName(n),
l = e.mapDimension('value');
isNaN(o[r].originalData.get(l, s)) || a.push(ia(o[r].name));
}
return a.join(', ') + '
' + ia(n + ' : ' + i);
},
getTooltipPosition: function (t) {
if (null != t) {
var e = this.getData().getName(t),
i = this.coordinateSystem,
n = i.getRegion(e);
return n && i.dataToPoint(n.center);
}
},
setZoom: function (t) {
this.option.zoom = t;
},
setCenter: function (t) {
this.option.center = t;
},
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: 'geo',
map: '',
left: 'center',
top: 'center',
aspectScale: 0.75,
showLegendSymbol: !0,
dataRangeHoverLink: !0,
boundingCoords: null,
center: null,
zoom: 1,
scaleLimit: null,
label: { show: !1, color: '#000' },
itemStyle: { borderWidth: 0.5, borderColor: '#444', areaColor: '#eee' },
emphasis: {
label: { show: !0, color: 'rgb(100,0,0)' },
itemStyle: { areaColor: 'rgba(255,215,0,0.8)' },
},
},
}),
aC,
);
var EC = '\0_ec_interaction_mutex';
Es(
{ type: 'takeGlobalCursor', event: 'globalCursorTaken', update: 'update' },
function () {},
),
h(oc, fw);
var RC = { axisPointer: 1, tooltip: 1, brush: 1 };
xc.prototype = {
constructor: xc,
draw: function (t, e, i, n, o) {
var a = 'geo' === t.mainType,
r = t.getData && t.getData();
a &&
e.eachComponent({ mainType: 'series', subType: 'map' }, function (e) {
r || e.getHostGeoModel() !== t || (r = e.getData());
});
var s = t.coordinateSystem;
this._updateBackground(s);
var l = this._regionsGroup,
u = this.group,
h = s.scale,
c = { position: s.position, scale: h };
!l.childAt(0) || o ? u.attr(c) : Io(u, c, t), l.removeAll();
var f = ['itemStyle'],
p = ['emphasis', 'itemStyle'],
g = ['label'],
m = ['emphasis', 'label'],
v = R();
d(s.regions, function (e) {
var i = v.get(e.name) || v.set(e.name, new tb()),
n = new MM({ shape: { paths: [] } });
i.add(n);
var o,
s = (C = t.getRegionModel(e.name) || t).getModel(f),
u = C.getModel(p),
c = mc(s),
y = mc(u),
x = C.getModel(g),
_ = C.getModel(m);
if (r) {
o = r.indexOfName(e.name);
var w = r.getItemVisual(o, 'color', !0);
w && (c.fill = w);
}
d(e.geometries, function (t) {
if ('polygon' === t.type) {
n.shape.paths.push(new pM({ shape: { points: t.exterior } }));
for (var e = 0; e < (t.interiors ? t.interiors.length : 0); e++)
n.shape.paths.push(new pM({ shape: { points: t.interiors[e] } }));
}
}),
n.setStyle(c),
(n.style.strokeNoScale = !0),
(n.culling = !0);
var b = x.get('show'),
S = _.get('show'),
M = r && isNaN(r.get(r.mapDimension('value'), o)),
I = r && r.getItemLayout(o);
if (a || (M && (b || S)) || (I && I.showLabel)) {
var T,
A = a ? e.name : o;
(!r || o >= 0) && (T = t);
var D = new rM({
position: e.center.slice(),
scale: [1 / h[0], 1 / h[1]],
z2: 10,
silent: !0,
});
go(
D.style,
(D.hoverStyle = {}),
x,
_,
{
labelFetcher: T,
labelDataIndex: A,
defaultText: e.name,
useInsideStyle: !1,
},
{ textAlign: 'center', textVerticalAlign: 'middle' },
),
i.add(D);
}
if (r) r.setItemGraphicEl(o, i);
else {
var C = t.getRegionModel(e.name);
n.eventData = {
componentType: 'geo',
componentIndex: t.componentIndex,
geoIndex: t.componentIndex,
name: e.name,
region: (C && C.option) || {},
};
}
(i.__regions || (i.__regions = [])).push(e),
fo(i, y, { hoverSilentOnTouch: !!t.get('selectedMode') }),
l.add(i);
}),
this._updateController(t, e, i),
vc(this, t, l, i, n),
yc(t, l);
},
remove: function () {
this._regionsGroup.removeAll(),
this._backgroundGroup.removeAll(),
this._controller.dispose(),
this._mapName && OC.removeGraphic(this._mapName, this.uid),
(this._mapName = null),
(this._controllerHost = {});
},
_updateBackground: function (t) {
var e = t.map;
this._mapName !== e &&
d(
OC.makeGraphic(e, this.uid),
function (t) {
this._backgroundGroup.add(t);
},
this,
),
(this._mapName = e);
},
_updateController: function (t, e, i) {
function n() {
var e = { type: 'geoRoam', componentType: l };
return (e[l + 'Id'] = t.id), e;
}
var o = t.coordinateSystem,
r = this._controller,
s = this._controllerHost;
(s.zoomLimit = t.get('scaleLimit')),
(s.zoom = o.getZoom()),
r.enable(t.get('roam') || !1);
var l = t.mainType;
r.off('pan').on(
'pan',
function (t) {
(this._mouseDownFlag = !1),
fc(s, t.dx, t.dy),
i.dispatchAction(a(n(), { dx: t.dx, dy: t.dy }));
},
this,
),
r.off('zoom').on(
'zoom',
function (t) {
if (
((this._mouseDownFlag = !1),
pc(s, t.scale, t.originX, t.originY),
i.dispatchAction(
a(n(), {
zoom: t.scale,
originX: t.originX,
originY: t.originY,
}),
),
this._updateGroup)
) {
var e = this.group.scale;
this._regionsGroup.traverse(function (t) {
'text' === t.type && t.attr('scale', [1 / e[0], 1 / e[1]]);
});
}
},
this,
),
r.setPointerChecker(function (e, n, a) {
return o.getViewRectAfterRoam().contain(n, a) && !gc(e, i, t);
});
},
};
var zC = '__seriesMapHighDown',
BC = '__seriesMapCallKey';
Zs({
type: 'map',
render: function (t, e, i, n) {
if (!n || 'mapToggleSelect' !== n.type || n.from !== this.uid) {
var o = this.group;
if ((o.removeAll(), !t.getHostGeoModel())) {
if (
n &&
'geoRoam' === n.type &&
'series' === n.componentType &&
n.seriesId === t.id
)
(a = this._mapDraw) && o.add(a.group);
else if (t.needsDrawMap) {
var a = this._mapDraw || new xc(i, !0);
o.add(a.group), a.draw(t, e, i, this, n), (this._mapDraw = a);
} else
this._mapDraw && this._mapDraw.remove(), (this._mapDraw = null);
t.get('showLegendSymbol') &&
e.getComponent('legend') &&
this._renderSymbols(t, e, i);
}
}
},
remove: function () {
this._mapDraw && this._mapDraw.remove(),
(this._mapDraw = null),
this.group.removeAll();
},
dispose: function () {
this._mapDraw && this._mapDraw.remove(), (this._mapDraw = null);
},
_renderSymbols: function (t, e, i) {
var n = t.originalData,
o = this.group;
n.each(n.mapDimension('value'), function (e, i) {
if (!isNaN(e)) {
var r = n.getItemLayout(i);
if (r && r.point) {
var s = r.point,
l = r.offset,
u = new sM({
style: { fill: t.getData().getVisual('color') },
shape: { cx: s[0] + 9 * l, cy: s[1], r: 3 },
silent: !0,
z2: 8 + (l ? 0 : NM + 1),
});
if (!l) {
var h = t.mainSeries.getData(),
c = n.getName(i),
d = h.indexOfName(c),
f = n.getItemModel(i),
p = f.getModel('label'),
g = f.getModel('emphasis.label'),
m = h.getItemGraphicEl(d),
y = A(t.getFormattedLabel(d, 'normal'), c),
x = A(t.getFormattedLabel(d, 'emphasis'), y),
_ = m[zC],
w = Math.random();
if (!_) {
_ = m[zC] = {};
var b = v(_c, !0),
S = v(_c, !1);
m.on('mouseover', b)
.on('mouseout', S)
.on('emphasis', b)
.on('normal', S);
}
(m[BC] = w),
a(_, {
recordVersion: w,
circle: u,
labelModel: p,
hoverLabelModel: g,
emphasisText: x,
normalText: y,
}),
wc(_, !1);
}
o.add(u);
}
}
});
},
}),
Es(
{ type: 'geoRoam', event: 'geoRoam', update: 'updateTransform' },
function (t, e) {
var i = t.componentType || 'series';
e.eachComponent({ mainType: i, query: t }, function (e) {
var n = e.coordinateSystem;
if ('geo' === n.type) {
var o = bc(n, t, e.get('scaleLimit'));
e.setCenter && e.setCenter(o.center),
e.setZoom && e.setZoom(o.zoom),
'series' === i &&
d(e.seriesGroup, function (t) {
t.setCenter(o.center), t.setZoom(o.zoom);
});
}
});
},
);
var VC = Q;
h(Sc, Tw),
(Mc.prototype = {
constructor: Mc,
type: 'view',
dimensions: ['x', 'y'],
setBoundingRect: function (t, e, i, n) {
return (this._rect = new de(t, e, i, n)), this._rect;
},
getBoundingRect: function () {
return this._rect;
},
setViewRect: function (t, e, i, n) {
this.transformTo(t, e, i, n), (this._viewRect = new de(t, e, i, n));
},
transformTo: function (t, e, i, n) {
var o = this.getBoundingRect(),
a = this._rawTransformable;
(a.transform = o.calculateTransform(new de(t, e, i, n))),
a.decomposeTransform(),
this._updateTransform();
},
setCenter: function (t) {
t && ((this._center = t), this._updateCenterAndZoom());
},
setZoom: function (t) {
t = t || 1;
var e = this.zoomLimit;
e &&
(null != e.max && (t = Math.min(e.max, t)),
null != e.min && (t = Math.max(e.min, t))),
(this._zoom = t),
this._updateCenterAndZoom();
},
getDefaultCenter: function () {
var t = this.getBoundingRect();
return [t.x + t.width / 2, t.y + t.height / 2];
},
getCenter: function () {
return this._center || this.getDefaultCenter();
},
getZoom: function () {
return this._zoom || 1;
},
getRoamTransform: function () {
return this._roamTransformable.getLocalTransform();
},
_updateCenterAndZoom: function () {
var t = this._rawTransformable.getLocalTransform(),
e = this._roamTransformable,
i = this.getDefaultCenter(),
n = this.getCenter(),
o = this.getZoom();
(n = Q([], n, t)),
(i = Q([], i, t)),
(e.origin = n),
(e.position = [i[0] - n[0], i[1] - n[1]]),
(e.scale = [o, o]),
this._updateTransform();
},
_updateTransform: function () {
var t = this._roamTransformable,
e = this._rawTransformable;
(e.parent = t),
t.updateTransform(),
e.updateTransform(),
wt(this.transform || (this.transform = []), e.transform || xt()),
(this._rawTransform = e.getLocalTransform()),
(this.invTransform = this.invTransform || []),
Tt(this.invTransform, this.transform),
this.decomposeTransform();
},
getViewRect: function () {
return this._viewRect;
},
getViewRectAfterRoam: function () {
var t = this.getBoundingRect().clone();
return t.applyTransform(this.transform), t;
},
dataToPoint: function (t, e, i) {
var n = e ? this._rawTransform : this.transform;
return (i = i || []), n ? VC(i, t, n) : G(i, t);
},
pointToData: function (t) {
var e = this.invTransform;
return e ? VC([], t, e) : [t[0], t[1]];
},
convertToPixel: v(Ic, 'dataToPoint'),
convertFromPixel: v(Ic, 'pointToData'),
containPoint: function (t) {
return this.getViewRectAfterRoam().contain(t[0], t[1]);
},
}),
h(Mc, Tw),
(Tc.prototype = {
constructor: Tc,
type: 'geo',
dimensions: ['lng', 'lat'],
containCoord: function (t) {
for (var e = this.regions, i = 0; i < e.length; i++)
if (e[i].contain(t)) return !0;
return !1;
},
transformTo: function (t, e, i, n) {
var o = this.getBoundingRect(),
a = this._invertLongitute;
(o = o.clone()), a && (o.y = -o.y - o.height);
var r = this._rawTransformable;
if (
((r.transform = o.calculateTransform(new de(t, e, i, n))),
r.decomposeTransform(),
a)
) {
var s = r.scale;
s[1] = -s[1];
}
r.updateTransform(), this._updateTransform();
},
getRegion: function (t) {
return this._regionsMap.get(t);
},
getRegionByCoord: function (t) {
for (var e = this.regions, i = 0; i < e.length; i++)
if (e[i].contain(t)) return e[i];
},
addGeoCoord: function (t, e) {
this._nameCoordMap.set(t, e);
},
getGeoCoord: function (t) {
return this._nameCoordMap.get(t);
},
getBoundingRect: function () {
return this._rect;
},
dataToPoint: function (t, e, i) {
if (('string' == typeof t && (t = this.getGeoCoord(t)), t))
return Mc.prototype.dataToPoint.call(this, t, e, i);
},
convertToPixel: v(Ac, 'dataToPoint'),
convertFromPixel: v(Ac, 'pointToData'),
}),
h(Tc, Mc);
var GC = {
dimensions: Tc.prototype.dimensions,
create: function (t, e) {
var i = [];
t.eachComponent('geo', function (t, n) {
var o = t.get('map'),
a = t.get('aspectScale'),
r = !0,
s = DT.retrieveMap(o);
s && s[0] && 'svg' === s[0].type
? (null == a && (a = 1), (r = !1))
: null == a && (a = 0.75);
var l = new Tc(o + n, o, t.get('nameMap'), r);
(l.aspectScale = a),
(l.zoomLimit = t.get('scaleLimit')),
i.push(l),
Cc(l, t),
(t.coordinateSystem = l),
(l.model = t),
(l.resize = Dc),
l.resize(t, e);
}),
t.eachSeries(function (t) {
if ('geo' === t.get('coordinateSystem')) {
var e = t.get('geoIndex') || 0;
t.coordinateSystem = i[e];
}
});
var n = {};
return (
t.eachSeriesByType('map', function (t) {
if (!t.getHostGeoModel()) {
var e = t.getMapType();
(n[e] = n[e] || []), n[e].push(t);
}
}),
d(n, function (t, n) {
var a = new Tc(
n,
n,
o(
f(t, function (t) {
return t.get('nameMap');
}),
),
);
(a.zoomLimit = T.apply(
null,
f(t, function (t) {
return t.get('scaleLimit');
}),
)),
i.push(a),
(a.resize = Dc),
(a.aspectScale = t[0].get('aspectScale')),
a.resize(t[0], e),
d(t, function (t) {
(t.coordinateSystem = a), Cc(a, t);
});
}),
i
);
},
getFilledRegions: function (t, e, i) {
for (var n = (t || []).slice(), o = R(), a = 0; a < n.length; a++)
o.set(n[a].name, n[a]);
return (
d(OC.load(e, i).regions, function (t) {
var e = t.name;
!o.get(e) && n.push({ name: e });
}),
n
);
},
};
Rs('geo', GC);
zs(function (t) {
var e = {};
t.eachSeriesByType('map', function (i) {
var n = i.getMapType();
if (!i.getHostGeoModel() && !e[n]) {
var o = {};
d(i.seriesGroup, function (e) {
var i = e.coordinateSystem,
n = e.originalData;
e.get('showLegendSymbol') &&
t.getComponent('legend') &&
n.each(n.mapDimension('value'), function (t, e) {
var a = n.getName(e),
r = i.getRegion(a);
if (r && !isNaN(t)) {
var s = o[a] || 0,
l = i.dataToPoint(r.center);
(o[a] = s + 1), n.setItemLayout(e, { point: l, offset: s });
}
});
});
var a = i.getData();
a.each(function (t) {
var e = a.getName(t),
i = a.getItemLayout(t) || {};
(i.showLabel = !o[e]), a.setItemLayout(t, i);
}),
(e[n] = !0);
}
});
}),
Bs(function (t) {
t.eachSeriesByType('map', function (t) {
var e = t.get('color'),
i = t.getModel('itemStyle'),
n = i.get('areaColor'),
o = i.get('color') || e[t.seriesIndex % e.length];
t.getData().setVisual({ areaColor: n, color: o });
});
}),
Os(VT.PROCESSOR.STATISTIC, function (t) {
var e = {};
t.eachSeriesByType('map', function (t) {
var i = t.getHostGeoModel(),
n = i ? 'o' + i.id : 'i' + t.getMapType();
(e[n] = e[n] || []).push(t);
}),
d(e, function (t, e) {
for (
var i = Lc(
f(t, function (t) {
return t.getData();
}),
t[0].get('mapValueCalculation'),
),
n = 0;
n < t.length;
n++
)
t[n].originalData = t[n].getData();
for (n = 0; n < t.length; n++)
(t[n].seriesGroup = t),
(t[n].needsDrawMap = 0 === n && !t[n].getHostGeoModel()),
t[n].setData(i.cloneShallow()),
(t[n].mainSeries = t[0]);
});
}),
Ns(function (t) {
var e = [];
d(t.series, function (t) {
t &&
'map' === t.type &&
(e.push(t), (t.map = t.map || t.mapType), r(t, t.mapLocation));
});
}),
lC('map', [
{
type: 'mapToggleSelect',
event: 'mapselectchanged',
method: 'toggleSelected',
},
{ type: 'mapSelect', event: 'mapselected', method: 'select' },
{ type: 'mapUnSelect', event: 'mapunselected', method: 'unSelect' },
]);
var FC = d,
WC = '\0__link_datas',
HC = '\0__link_mainData',
ZC = function (t, e) {
(this.name = t || ''),
(this.depth = 0),
(this.height = 0),
(this.parentNode = null),
(this.dataIndex = -1),
(this.children = []),
(this.viewChildren = []),
(this.hostTree = e);
};
(ZC.prototype = {
constructor: ZC,
isRemoved: function () {
return this.dataIndex < 0;
},
eachNode: function (t, e, i) {
'function' == typeof t && ((i = e), (e = t), (t = null)),
_((t = t || {})) && (t = { order: t });
var n,
o = t.order || 'preorder',
a = this[t.attr || 'children'];
'preorder' === o && (n = e.call(i, this));
for (var r = 0; !n && r < a.length; r++) a[r].eachNode(t, e, i);
'postorder' === o && e.call(i, this);
},
updateDepthAndHeight: function (t) {
var e = 0;
this.depth = t;
for (var i = 0; i < this.children.length; i++) {
var n = this.children[i];
n.updateDepthAndHeight(t + 1), n.height > e && (e = n.height);
}
this.height = e + 1;
},
getNodeById: function (t) {
if (this.getId() === t) return this;
for (var e = 0, i = this.children, n = i.length; e < n; e++) {
var o = i[e].getNodeById(t);
if (o) return o;
}
},
contains: function (t) {
if (t === this) return !0;
for (var e = 0, i = this.children, n = i.length; e < n; e++) {
var o = i[e].contains(t);
if (o) return o;
}
},
getAncestors: function (t) {
for (var e = [], i = t ? this : this.parentNode; i; )
e.push(i), (i = i.parentNode);
return e.reverse(), e;
},
getValue: function (t) {
var e = this.hostTree.data;
return e.get(e.getDimension(t || 'value'), this.dataIndex);
},
setLayout: function (t, e) {
this.dataIndex >= 0 &&
this.hostTree.data.setItemLayout(this.dataIndex, t, e);
},
getLayout: function () {
return this.hostTree.data.getItemLayout(this.dataIndex);
},
getModel: function (t) {
if (!(this.dataIndex < 0)) {
var e,
i = this.hostTree,
n = i.data.getItemModel(this.dataIndex),
o = this.getLevelModel();
return (
o ||
(0 !== this.children.length &&
(0 === this.children.length || !1 !== this.isExpand)) ||
(e = this.getLeavesModel()),
n.getModel(t, (o || e || i.hostModel).getModel(t))
);
}
},
getLevelModel: function () {
return (this.hostTree.levelModels || [])[this.depth];
},
getLeavesModel: function () {
return this.hostTree.leavesModel;
},
setVisual: function (t, e) {
this.dataIndex >= 0 &&
this.hostTree.data.setItemVisual(this.dataIndex, t, e);
},
getVisual: function (t, e) {
return this.hostTree.data.getItemVisual(this.dataIndex, t, e);
},
getRawIndex: function () {
return this.hostTree.data.getRawIndex(this.dataIndex);
},
getId: function () {
return this.hostTree.data.getId(this.dataIndex);
},
isAncestorOf: function (t) {
for (var e = t.parentNode; e; ) {
if (e === this) return !0;
e = e.parentNode;
}
return !1;
},
isDescendantOf: function (t) {
return t !== this && t.isAncestorOf(this);
},
}),
(Vc.prototype = {
constructor: Vc,
type: 'tree',
eachNode: function (t, e, i) {
this.root.eachNode(t, e, i);
},
getNodeByDataIndex: function (t) {
var e = this.data.getRawIndex(t);
return this._nodes[e];
},
getNodeByName: function (t) {
return this.root.getNodeByName(t);
},
update: function () {
for (
var t = this.data, e = this._nodes, i = 0, n = e.length;
i < n;
i++
)
e[i].dataIndex = -1;
for (var i = 0, n = t.count(); i < n; i++)
e[t.getRawIndex(i)].dataIndex = i;
},
clearLayouts: function () {
this.data.clearItemLayouts();
},
}),
(Vc.createTree = function (t, e, i) {
function n(t, e) {
var i = t.value;
(r = Math.max(r, y(i) ? i.length : 1)), a.push(t);
var s = new ZC(t.name, o);
e ? Gc(s, e) : (o.root = s), o._nodes.push(s);
var l = t.children;
if (l) for (var u = 0; u < l.length; u++) n(l[u], s);
}
var o = new Vc(e, i.levels, i.leaves),
a = [],
r = 1;
n(t), o.root.updateDepthAndHeight(0);
var s = _A(a, { coordDimensions: ['value'], dimensionsCount: r }),
l = new vA(s, e);
return (
l.initData(a),
kc({ mainData: l, struct: o, structAttr: 'tree' }),
o.update(),
o
);
}),
YI.extend({
type: 'series.tree',
layoutInfo: null,
layoutMode: 'box',
getInitialData: function (t) {
var e = { name: t.name, children: t.data },
i = t.leaves || {},
n = {};
n.leaves = i;
var o = Vc.createTree(e, this, n),
a = 0;
o.eachNode('preorder', function (t) {
t.depth > a && (a = t.depth);
});
var r =
t.expandAndCollapse && t.initialTreeDepth >= 0
? t.initialTreeDepth
: a;
return (
o.root.eachNode('preorder', function (t) {
var e = t.hostTree.data.getRawDataItem(t.dataIndex);
t.isExpand = e && null != e.collapsed ? !e.collapsed : t.depth <= r;
}),
o.data
);
},
getOrient: function () {
var t = this.get('orient');
return (
'horizontal' === t ? (t = 'LR') : 'vertical' === t && (t = 'TB'), t
);
},
setZoom: function (t) {
this.option.zoom = t;
},
setCenter: function (t) {
this.option.center = t;
},
formatTooltip: function (t) {
for (
var e = this.getData().tree,
i = e.root.children[0],
n = e.getNodeByDataIndex(t),
o = n.getValue(),
a = n.name;
n && n !== i;
)
(a = n.parentNode.name + '.' + a), (n = n.parentNode);
return ia(a + (isNaN(o) || null == o ? '' : ' : ' + o));
},
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: 'view',
left: '12%',
top: '12%',
right: '12%',
bottom: '12%',
layout: 'orthogonal',
roam: !1,
nodeScaleRatio: 0.4,
center: null,
zoom: 1,
orient: 'LR',
symbol: 'emptyCircle',
symbolSize: 7,
expandAndCollapse: !0,
initialTreeDepth: 2,
lineStyle: { color: '#ccc', width: 1.5, curveness: 0.5 },
itemStyle: {
color: 'lightsteelblue',
borderColor: '#c23531',
borderWidth: 1.5,
},
label: { show: !0, color: '#555' },
leaves: { label: { show: !0 } },
animationEasing: 'linear',
animationDuration: 700,
animationDurationUpdate: 1e3,
},
}),
Zs({
type: 'tree',
init: function (t, e) {
this._oldTree,
(this._mainGroup = new tb()),
(this._controller = new oc(e.getZr())),
(this._controllerHost = { target: this.group }),
this.group.add(this._mainGroup);
},
render: function (t, e, i, n) {
var o = t.getData(),
a = t.layoutInfo,
r = this._mainGroup,
s = t.get('layout');
'radial' === s
? r.attr('position', [a.x + a.width / 2, a.y + a.height / 2])
: r.attr('position', [a.x, a.y]),
this._updateViewCoordSys(t),
this._updateController(t, e, i);
var l = this._data,
u = {
expandAndCollapse: t.get('expandAndCollapse'),
layout: s,
orient: t.getOrient(),
curvature: t.get('lineStyle.curveness'),
symbolRotate: t.get('symbolRotate'),
symbolOffset: t.get('symbolOffset'),
hoverAnimation: t.get('hoverAnimation'),
useNameLabel: !0,
fadeIn: !0,
};
o
.diff(l)
.add(function (e) {
td(o, e) && id(o, e, null, r, t, u);
})
.update(function (e, i) {
var n = l.getItemGraphicEl(i);
td(o, e) ? id(o, e, n, r, t, u) : n && nd(l, i, n, r, t, u);
})
.remove(function (e) {
var i = l.getItemGraphicEl(e);
i && nd(l, e, i, r, t, u);
})
.execute(),
(this._nodeScaleRatio = t.get('nodeScaleRatio')),
this._updateNodeAndLinkScale(t),
!0 === u.expandAndCollapse &&
o.eachItemGraphicEl(function (e, n) {
e.off('click').on('click', function () {
i.dispatchAction({
type: 'treeExpandAndCollapse',
seriesId: t.id,
dataIndex: n,
});
});
}),
(this._data = o);
},
_updateViewCoordSys: function (t) {
var e = t.getData(),
i = [];
e.each(function (t) {
var n = e.getItemLayout(t);
!n || isNaN(n.x) || isNaN(n.y) || i.push([+n.x, +n.y]);
});
var n = [],
o = [];
fn(i, n, o),
o[0] - n[0] == 0 && ((o[0] += 1), (n[0] -= 1)),
o[1] - n[1] == 0 && ((o[1] += 1), (n[1] -= 1));
var a = (t.coordinateSystem = new Mc());
(a.zoomLimit = t.get('scaleLimit')),
a.setBoundingRect(n[0], n[1], o[0] - n[0], o[1] - n[1]),
a.setCenter(t.get('center')),
a.setZoom(t.get('zoom')),
this.group.attr({ position: a.position, scale: a.scale }),
(this._viewCoordSys = a);
},
_updateController: function (t, e, i) {
var n = this._controller,
o = this._controllerHost,
a = this.group;
n.setPointerChecker(function (e, n, o) {
var r = a.getBoundingRect();
return r.applyTransform(a.transform), r.contain(n, o) && !gc(e, i, t);
}),
n.enable(t.get('roam')),
(o.zoomLimit = t.get('scaleLimit')),
(o.zoom = t.coordinateSystem.getZoom()),
n
.off('pan')
.off('zoom')
.on(
'pan',
function (e) {
fc(o, e.dx, e.dy),
i.dispatchAction({
seriesId: t.id,
type: 'treeRoam',
dx: e.dx,
dy: e.dy,
});
},
this,
)
.on(
'zoom',
function (e) {
pc(o, e.scale, e.originX, e.originY),
i.dispatchAction({
seriesId: t.id,
type: 'treeRoam',
zoom: e.scale,
originX: e.originX,
originY: e.originY,
}),
this._updateNodeAndLinkScale(t);
},
this,
);
},
_updateNodeAndLinkScale: function (t) {
var e = t.getData(),
i = this._getNodeGlobalScale(t),
n = [i, i];
e.eachItemGraphicEl(function (t, e) {
t.attr('scale', n);
});
},
_getNodeGlobalScale: function (t) {
var e = t.coordinateSystem;
if ('view' !== e.type) return 1;
var i = this._nodeScaleRatio,
n = e.scale,
o = (n && n[0]) || 1;
return ((e.getZoom() - 1) * i + 1) / o;
},
dispose: function () {
this._controller && this._controller.dispose(),
(this._controllerHost = {});
},
remove: function () {
this._mainGroup.removeAll(), (this._data = null);
},
}),
Es(
{
type: 'treeExpandAndCollapse',
event: 'treeExpandAndCollapse',
update: 'update',
},
function (t, e) {
e.eachComponent(
{ mainType: 'series', subType: 'tree', query: t },
function (e) {
var i = t.dataIndex,
n = e.getData().tree.getNodeByDataIndex(i);
n.isExpand = !n.isExpand;
},
);
},
),
Es({ type: 'treeRoam', event: 'treeRoam', update: 'none' }, function (
t,
e,
) {
e.eachComponent(
{ mainType: 'series', subType: 'tree', query: t },
function (e) {
var i = bc(e.coordinateSystem, t);
e.setCenter && e.setCenter(i.center), e.setZoom && e.setZoom(i.zoom);
},
);
});
Bs(TD('tree', 'circle')),
zs(function (t, e) {
t.eachSeriesByType('tree', function (t) {
sd(t, e);
});
}),
YI.extend({
type: 'series.treemap',
layoutMode: 'box',
dependencies: ['grid', 'polar'],
_viewRoot: null,
defaultOption: {
progressive: 0,
hoverLayerThreshold: 1 / 0,
left: 'center',
top: 'middle',
right: null,
bottom: null,
width: '80%',
height: '80%',
sort: !0,
clipWindow: 'origin',
squareRatio: 0.5 * (1 + Math.sqrt(5)),
leafDepth: null,
drillDownIcon: '▶',
zoomToNodeRatio: 0.1024,
roam: !0,
nodeClick: 'zoomToNode',
animation: !0,
animationDurationUpdate: 900,
animationEasing: 'quinticInOut',
breadcrumb: {
show: !0,
height: 22,
left: 'center',
top: 'bottom',
emptyItemWidth: 25,
itemStyle: {
color: 'rgba(0,0,0,0.7)',
borderColor: 'rgba(255,255,255,0.7)',
borderWidth: 1,
shadowColor: 'rgba(150,150,150,1)',
shadowBlur: 3,
shadowOffsetX: 0,
shadowOffsetY: 0,
textStyle: { color: '#fff' },
},
emphasis: { textStyle: {} },
},
label: {
show: !0,
distance: 0,
padding: 5,
position: 'inside',
color: '#fff',
ellipsis: !0,
},
upperLabel: {
show: !1,
position: [0, '50%'],
height: 20,
color: '#fff',
ellipsis: !0,
verticalAlign: 'middle',
},
itemStyle: {
color: null,
colorAlpha: null,
colorSaturation: null,
borderWidth: 0,
gapWidth: 0,
borderColor: '#fff',
borderColorSaturation: null,
},
emphasis: {
upperLabel: {
show: !0,
position: [0, '50%'],
color: '#fff',
ellipsis: !0,
verticalAlign: 'middle',
},
},
visualDimension: 0,
visualMin: null,
visualMax: null,
color: [],
colorAlpha: null,
colorSaturation: null,
colorMappingBy: 'index',
visibleMin: 10,
childrenVisibleMin: null,
levels: [],
},
getInitialData: function (t, e) {
var i = { name: t.name, children: t.data };
dd(i);
var n = t.levels || [];
n = t.levels = fd(n, e);
var o = {};
return (o.levels = n), Vc.createTree(i, this, o).data;
},
optionUpdated: function () {
this.resetViewRoot();
},
formatTooltip: function (t) {
var e = this.getData(),
i = this.getRawValue(t),
n = ta(y(i) ? i[0] : i);
return ia(e.getName(t) + ': ' + n);
},
getDataParams: function (t) {
var e = YI.prototype.getDataParams.apply(this, arguments),
i = this.getData().tree.getNodeByDataIndex(t);
return (e.treePathInfo = cd(i, this)), e;
},
setLayoutInfo: function (t) {
(this.layoutInfo = this.layoutInfo || {}), a(this.layoutInfo, t);
},
mapIdToIndex: function (t) {
var e = this._idIndexMap;
e || ((e = this._idIndexMap = R()), (this._idIndexMapCount = 0));
var i = e.get(t);
return null == i && e.set(t, (i = this._idIndexMapCount++)), i;
},
getViewRoot: function () {
return this._viewRoot;
},
resetViewRoot: function (t) {
t ? (this._viewRoot = t) : (t = this._viewRoot);
var e = this.getRawData().tree.root;
(t && (t === e || e.contains(t))) || (this._viewRoot = e);
},
});
var UC = 5;
pd.prototype = {
constructor: pd,
render: function (t, e, i, n) {
var o = t.getModel('breadcrumb'),
a = this.group;
if ((a.removeAll(), o.get('show') && i)) {
var r = o.getModel('itemStyle'),
s = r.getModel('textStyle'),
l = {
pos: {
left: o.get('left'),
right: o.get('right'),
top: o.get('top'),
bottom: o.get('bottom'),
},
box: { width: e.getWidth(), height: e.getHeight() },
emptyItemWidth: o.get('emptyItemWidth'),
totalWidth: 0,
renderList: [],
};
this._prepare(i, l, s),
this._renderContent(t, l, r, s, n),
da(a, l.pos, l.box);
}
},
_prepare: function (t, e, i) {
for (var n = t; n; n = n.parentNode) {
var o = n.getModel().get('name'),
a = i.getTextRect(o),
r = Math.max(a.width + 16, e.emptyItemWidth);
(e.totalWidth += r + 8),
e.renderList.push({ node: n, text: o, width: r });
}
},
_renderContent: function (t, e, i, n, o) {
for (
var a = 0,
s = e.emptyItemWidth,
l = t.get('breadcrumb.height'),
u = ha(e.pos, e.box),
h = e.totalWidth,
c = e.renderList,
d = c.length - 1;
d >= 0;
d--
) {
var f = c[d],
p = f.node,
g = f.width,
m = f.text;
h > u.width && ((h -= g - s), (g = s), (m = null));
var y = new pM({
shape: { points: gd(a, 0, g, l, d === c.length - 1, 0 === d) },
style: r(i.getItemStyle(), {
lineJoin: 'bevel',
text: m,
textFill: n.getTextColor(),
textFont: n.getFont(),
}),
z: 10,
onclick: v(o, p),
});
this.group.add(y), md(y, t, p), (a += g + 8);
}
},
remove: function () {
this.group.removeAll();
},
};
var XC = m,
jC = tb,
YC = yM,
qC = d,
KC = ['label'],
$C = ['emphasis', 'label'],
JC = ['upperLabel'],
QC = ['emphasis', 'upperLabel'],
tL = 10,
eL = 1,
iL = 2,
nL = Qb([
['fill', 'color'],
['stroke', 'strokeColor'],
['lineWidth', 'strokeWidth'],
['shadowBlur'],
['shadowOffsetX'],
['shadowOffsetY'],
['shadowColor'],
]),
oL = function (t) {
var e = nL(t);
return (e.stroke = e.fill = e.lineWidth = null), e;
};
Zs({
type: 'treemap',
init: function (t, e) {
this._containerGroup,
(this._storage = { nodeGroup: [], background: [], content: [] }),
this._oldTree,
this._breadcrumb,
this._controller,
(this._state = 'ready');
},
render: function (t, e, i, n) {
if (
!(
l(
e.findComponents({
mainType: 'series',
subType: 'treemap',
query: n,
}),
t,
) < 0
)
) {
(this.seriesModel = t), (this.api = i), (this.ecModel = e);
var o = ld(n, ['treemapZoomToNode', 'treemapRootToNode'], t),
a = n && n.type,
r = t.layoutInfo,
s = !this._oldTree,
u = this._storage,
h =
'treemapRootToNode' === a && o && u
? {
rootNodeGroup: u.nodeGroup[o.node.getRawIndex()],
direction: n.direction,
}
: null,
c = this._giveContainerGroup(r),
d = this._doRender(c, t, h);
s || (a && 'treemapZoomToNode' !== a && 'treemapRootToNode' !== a)
? d.renderFinally()
: this._doAnimation(c, d, t, h),
this._resetController(i),
this._renderBreadcrumb(t, i, o);
}
},
_giveContainerGroup: function (t) {
var e = this._containerGroup;
return (
e ||
((e = this._containerGroup = new jC()),
this._initEvents(e),
this.group.add(e)),
e.attr('position', [t.x, t.y]),
e
);
},
_doRender: function (t, e, i) {
function n(t, e, i, o, a) {
function r(t) {
return t.getId();
}
function s(r, s) {
var l = null != r ? t[r] : null,
u = null != s ? e[s] : null,
c = h(l, u, i, a);
c &&
n(
(l && l.viewChildren) || [],
(u && u.viewChildren) || [],
c,
o,
a + 1,
);
}
o
? ((e = t),
qC(t, function (t, e) {
!t.isRemoved() && s(e, e);
}))
: new Xs(e, t, r, r).add(s).update(s).remove(v(s, null)).execute();
}
var o = e.getData().tree,
a = this._oldTree,
r = { nodeGroup: [], background: [], content: [] },
s = { nodeGroup: [], background: [], content: [] },
l = this._storage,
u = [],
h = v(yd, e, s, l, i, r, u);
n(
o.root ? [o.root] : [],
a && a.root ? [a.root] : [],
t,
o === a || !a,
0,
);
var c = (function (t) {
var e = { nodeGroup: [], background: [], content: [] };
return (
t &&
qC(t, function (t, i) {
var n = e[i];
qC(t, function (t) {
t && (n.push(t), (t.__tmWillDelete = 1));
});
}),
e
);
})(l);
return (
(this._oldTree = o),
(this._storage = s),
{
lastsForAnimation: r,
willDeleteEls: c,
renderFinally: function () {
qC(c, function (t) {
qC(t, function (t) {
t.parent && t.parent.remove(t);
});
}),
qC(u, function (t) {
(t.invisible = !0), t.dirty();
});
},
}
);
},
_doAnimation: function (t, e, i, n) {
if (i.get('animation')) {
var o = i.get('animationDurationUpdate'),
r = i.get('animationEasing'),
s = vd();
qC(e.willDeleteEls, function (t, e) {
qC(t, function (t, i) {
if (!t.invisible) {
var a,
l = t.parent;
if (n && 'drillDown' === n.direction)
a =
l === n.rootNodeGroup
? {
shape: {
x: 0,
y: 0,
width: l.__tmNodeWidth,
height: l.__tmNodeHeight,
},
style: { opacity: 0 },
}
: { style: { opacity: 0 } };
else {
var u = 0,
h = 0;
l.__tmWillDelete ||
((u = l.__tmNodeWidth / 2), (h = l.__tmNodeHeight / 2)),
(a =
'nodeGroup' === e
? { position: [u, h], style: { opacity: 0 } }
: {
shape: { x: u, y: h, width: 0, height: 0 },
style: { opacity: 0 },
});
}
a && s.add(t, a, o, r);
}
});
}),
qC(
this._storage,
function (t, i) {
qC(t, function (t, n) {
var l = e.lastsForAnimation[i][n],
u = {};
l &&
('nodeGroup' === i
? l.old &&
((u.position = t.position.slice()),
t.attr('position', l.old))
: (l.old && ((u.shape = a({}, t.shape)), t.setShape(l.old)),
l.fadein
? (t.setStyle('opacity', 0), (u.style = { opacity: 1 }))
: 1 !== t.style.opacity && (u.style = { opacity: 1 })),
s.add(t, u, o, r));
});
},
this,
),
(this._state = 'animating'),
s
.done(
XC(function () {
(this._state = 'ready'), e.renderFinally();
}, this),
)
.start();
}
},
_resetController: function (t) {
var e = this._controller;
e ||
((e = this._controller = new oc(t.getZr())).enable(
this.seriesModel.get('roam'),
),
e.on('pan', XC(this._onPan, this)),
e.on('zoom', XC(this._onZoom, this)));
var i = new de(0, 0, t.getWidth(), t.getHeight());
e.setPointerChecker(function (t, e, n) {
return i.contain(e, n);
});
},
_clearController: function () {
var t = this._controller;
t && (t.dispose(), (t = null));
},
_onPan: function (t) {
if (
'animating' !== this._state &&
(Math.abs(t.dx) > 3 || Math.abs(t.dy) > 3)
) {
var e = this.seriesModel.getData().tree.root;
if (!e) return;
var i = e.getLayout();
if (!i) return;
this.api.dispatchAction({
type: 'treemapMove',
from: this.uid,
seriesId: this.seriesModel.id,
rootRect: {
x: i.x + t.dx,
y: i.y + t.dy,
width: i.width,
height: i.height,
},
});
}
},
_onZoom: function (t) {
var e = t.originX,
i = t.originY;
if ('animating' !== this._state) {
var n = this.seriesModel.getData().tree.root;
if (!n) return;
var o = n.getLayout();
if (!o) return;
var a = new de(o.x, o.y, o.width, o.height),
r = this.seriesModel.layoutInfo;
(e -= r.x), (i -= r.y);
var s = xt();
St(s, s, [-e, -i]),
It(s, s, [t.scale, t.scale]),
St(s, s, [e, i]),
a.applyTransform(s),
this.api.dispatchAction({
type: 'treemapRender',
from: this.uid,
seriesId: this.seriesModel.id,
rootRect: { x: a.x, y: a.y, width: a.width, height: a.height },
});
}
},
_initEvents: function (t) {
t.on(
'click',
function (t) {
if ('ready' === this._state) {
var e = this.seriesModel.get('nodeClick', !0);
if (e) {
var i = this.findTarget(t.offsetX, t.offsetY);
if (i) {
var n = i.node;
if (n.getLayout().isLeafRoot) this._rootToNode(i);
else if ('zoomToNode' === e) this._zoomToNode(i);
else if ('link' === e) {
var o = n.hostTree.data.getItemModel(n.dataIndex),
a = o.get('link', !0),
r = o.get('target', !0) || 'blank';
a && window.open(a, r);
}
}
}
}
},
this,
);
},
_renderBreadcrumb: function (t, e, i) {
i ||
(i =
null != t.get('leafDepth', !0)
? { node: t.getViewRoot() }
: this.findTarget(e.getWidth() / 2, e.getHeight() / 2)) ||
(i = { node: t.getData().tree.root }),
(this._breadcrumb || (this._breadcrumb = new pd(this.group))).render(
t,
e,
i.node,
XC(function (e) {
'animating' !== this._state &&
(hd(t.getViewRoot(), e)
? this._rootToNode({ node: e })
: this._zoomToNode({ node: e }));
}, this),
);
},
remove: function () {
this._clearController(),
this._containerGroup && this._containerGroup.removeAll(),
(this._storage = { nodeGroup: [], background: [], content: [] }),
(this._state = 'ready'),
this._breadcrumb && this._breadcrumb.remove();
},
dispose: function () {
this._clearController();
},
_zoomToNode: function (t) {
this.api.dispatchAction({
type: 'treemapZoomToNode',
from: this.uid,
seriesId: this.seriesModel.id,
targetNode: t.node,
});
},
_rootToNode: function (t) {
this.api.dispatchAction({
type: 'treemapRootToNode',
from: this.uid,
seriesId: this.seriesModel.id,
targetNode: t.node,
});
},
findTarget: function (t, e) {
var i;
return (
this.seriesModel.getViewRoot().eachNode(
{ attr: 'viewChildren', order: 'preorder' },
function (n) {
var o = this._storage.background[n.getRawIndex()];
if (o) {
var a = o.transformCoordToLocal(t, e),
r = o.shape;
if (
!(
r.x <= a[0] &&
a[0] <= r.x + r.width &&
r.y <= a[1] &&
a[1] <= r.y + r.height
)
)
return !1;
i = { node: n, offsetX: a[0], offsetY: a[1] };
}
},
this,
),
i
);
},
});
for (
var aL = ['treemapZoomToNode', 'treemapRender', 'treemapMove'], rL = 0;
rL < aL.length;
rL++
)
Es({ type: aL[rL], update: 'updateView' }, function () {});
Es({ type: 'treemapRootToNode', update: 'updateView' }, function (t, e) {
e.eachComponent(
{ mainType: 'series', subType: 'treemap', query: t },
function (e, i) {
var n = ld(t, ['treemapZoomToNode', 'treemapRootToNode'], e);
if (n) {
var o = e.getViewRoot();
o && (t.direction = hd(o, n.node) ? 'rollUp' : 'drillDown'),
e.resetViewRoot(n.node);
}
},
);
});
var sL = d,
lL = w,
uL = -1,
hL = function (t) {
var e = t.mappingMethod,
n = t.type,
o = (this.option = i(t));
(this.type = n), (this.mappingMethod = e), (this._normalizeData = dL[e]);
var a = cL[n];
(this.applyVisual = a.applyVisual),
(this.getColorMapper = a.getColorMapper),
(this._doMap = a._doMap[e]),
'piecewise' === e
? (bd(o), _d(o))
: 'category' === e
? o.categories
? wd(o)
: bd(o, !0)
: (k('linear' !== e || o.dataExtent), bd(o));
};
hL.prototype = {
constructor: hL,
mapValueToVisual: function (t) {
var e = this._normalizeData(t);
return this._doMap(e, t);
},
getNormalizer: function () {
return m(this._normalizeData, this);
},
};
var cL = (hL.visualHandlers = {
color: {
applyVisual: Id('color'),
getColorMapper: function () {
var t = this.option;
return m(
'category' === t.mappingMethod
? function (t, e) {
return !e && (t = this._normalizeData(t)), Td.call(this, t);
}
: function (e, i, n) {
var o = !!n;
return (
!i && (e = this._normalizeData(e)),
(n = Ut(e, t.parsedVisual, n)),
o ? n : qt(n, 'rgba')
);
},
this,
);
},
_doMap: {
linear: function (t) {
return qt(Ut(t, this.option.parsedVisual), 'rgba');
},
category: Td,
piecewise: function (t, e) {
var i = Cd.call(this, e);
return (
null == i && (i = qt(Ut(t, this.option.parsedVisual), 'rgba')), i
);
},
fixed: Ad,
},
},
colorHue: Sd(function (t, e) {
return jt(t, e);
}),
colorSaturation: Sd(function (t, e) {
return jt(t, null, e);
}),
colorLightness: Sd(function (t, e) {
return jt(t, null, null, e);
}),
colorAlpha: Sd(function (t, e) {
return Yt(t, e);
}),
opacity: { applyVisual: Id('opacity'), _doMap: Dd([0, 1]) },
liftZ: {
applyVisual: Id('liftZ'),
_doMap: { linear: Ad, category: Ad, piecewise: Ad, fixed: Ad },
},
symbol: {
applyVisual: function (t, e, i) {
var n = this.mapValueToVisual(t);
if (_(n)) i('symbol', n);
else if (lL(n)) for (var o in n) n.hasOwnProperty(o) && i(o, n[o]);
},
_doMap: {
linear: Md,
category: Td,
piecewise: function (t, e) {
var i = Cd.call(this, e);
return null == i && (i = Md.call(this, t)), i;
},
fixed: Ad,
},
},
symbolSize: { applyVisual: Id('symbolSize'), _doMap: Dd([0, 1]) },
}),
dL = {
linear: function (t) {
return Bo(t, this.option.dataExtent, [0, 1], !0);
},
piecewise: function (t) {
var e = this.option.pieceList,
i = hL.findPieceIndex(t, e, !0);
if (null != i) return Bo(i, [0, e.length - 1], [0, 1], !0);
},
category: function (t) {
var e = this.option.categories ? this.option.categoryMap[t] : t;
return null == e ? uL : e;
},
fixed: B,
};
(hL.listVisualTypes = function () {
var t = [];
return (
d(cL, function (e, i) {
t.push(i);
}),
t
);
}),
(hL.addVisualHandler = function (t, e) {
cL[t] = e;
}),
(hL.isValidType = function (t) {
return cL.hasOwnProperty(t);
}),
(hL.eachVisual = function (t, e, i) {
w(t) ? d(t, e, i) : e.call(i, t);
}),
(hL.mapVisual = function (t, e, i) {
var n,
o = y(t) ? [] : w(t) ? {} : ((n = !0), null);
return (
hL.eachVisual(t, function (t, a) {
var r = e.call(i, t, a);
n ? (o = r) : (o[a] = r);
}),
o
);
}),
(hL.retrieveVisuals = function (t) {
var e,
i = {};
return (
t &&
sL(cL, function (n, o) {
t.hasOwnProperty(o) && ((i[o] = t[o]), (e = !0));
}),
e ? i : null
);
}),
(hL.prepareVisualTypes = function (t) {
if (lL(t)) {
var e = [];
sL(t, function (t, i) {
e.push(i);
}),
(t = e);
} else {
if (!y(t)) return [];
t = t.slice();
}
return (
t.sort(function (t, e) {
return 'color' === e && 'color' !== t && 0 === t.indexOf('color')
? 1
: -1;
}),
t
);
}),
(hL.dependsOn = function (t, e) {
return 'color' === e ? !(!t || 0 !== t.indexOf(e)) : t === e;
}),
(hL.findPieceIndex = function (t, e, i) {
function n(e, i) {
var n = Math.abs(e - t);
n < a && ((a = n), (o = i));
}
for (var o, a = 1 / 0, r = 0, s = e.length; r < s; r++) {
var l = e[r].value;
if (null != l) {
if (l === t || ('string' == typeof l && l === t + '')) return r;
i && n(l, r);
}
}
for (var r = 0, s = e.length; r < s; r++) {
var u = e[r],
h = u.interval,
c = u.close;
if (h) {
if (h[0] === -1 / 0) {
if (kd(c[1], t, h[1])) return r;
} else if (h[1] === 1 / 0) {
if (kd(c[0], h[0], t)) return r;
} else if (kd(c[0], h[0], t) && kd(c[1], t, h[1])) return r;
i && n(h[0], r), i && n(h[1], r);
}
}
if (i) return t === 1 / 0 ? e.length - 1 : t === -1 / 0 ? 0 : o;
});
var fL = y,
pL = 'itemStyle',
gL = {
seriesType: 'treemap',
reset: function (t, e, i, n) {
var o = t.getData().tree,
a = o.root,
r = t.getModel(pL);
a.isRemoved() ||
Pd(
a,
{},
f(o.levelModels, function (t) {
return t ? t.get(pL) : null;
}),
r,
t.getViewRoot().getAncestors(),
t,
);
},
},
mL = Math.max,
vL = Math.min,
yL = T,
xL = d,
_L = ['itemStyle', 'borderWidth'],
wL = ['itemStyle', 'gapWidth'],
bL = ['upperLabel', 'show'],
SL = ['upperLabel', 'height'],
ML = {
seriesType: 'treemap',
reset: function (t, e, i, n) {
var o = i.getWidth(),
r = i.getHeight(),
s = t.option,
l = ca(t.getBoxLayoutParams(), {
width: i.getWidth(),
height: i.getHeight(),
}),
u = s.size || [],
h = Vo(yL(l.width, u[0]), o),
c = Vo(yL(l.height, u[1]), r),
d = n && n.type,
f = ld(n, ['treemapZoomToNode', 'treemapRootToNode'], t),
p = 'treemapRender' === d || 'treemapMove' === d ? n.rootRect : null,
g = t.getViewRoot(),
m = ud(g);
if ('treemapMove' !== d) {
var v =
'treemapZoomToNode' === d
? jd(t, f, g, h, c)
: p
? [p.width, p.height]
: [h, c],
y = s.sort;
y && 'asc' !== y && 'desc' !== y && (y = 'desc');
var x = {
squareRatio: s.squareRatio,
sort: y,
leafDepth: s.leafDepth,
};
g.hostTree.clearLayouts();
_ = { x: 0, y: 0, width: v[0], height: v[1], area: v[0] * v[1] };
g.setLayout(_), Gd(g, x, !1, 0);
var _ = g.getLayout();
xL(m, function (t, e) {
var i = (m[e + 1] || g).getValue();
t.setLayout(
a({ dataExtent: [i, i], borderWidth: 0, upperHeight: 0 }, _),
);
});
}
var w = t.getData().tree.root;
w.setLayout(Yd(l, p, f), !0),
t.setLayoutInfo(l),
qd(w, new de(-l.x, -l.y, o, r), m, g, 0);
},
};
Bs(gL), zs(ML);
var IL = function (t) {
(this._directed = t || !1),
(this.nodes = []),
(this.edges = []),
(this._nodesMap = {}),
(this._edgesMap = {}),
this.data,
this.edgeData;
},
TL = IL.prototype;
(TL.type = 'graph'),
(TL.isDirected = function () {
return this._directed;
}),
(TL.addNode = function (t, e) {
t = t || '' + e;
var i = this._nodesMap;
if (!i[$d(t)]) {
var n = new Jd(t, e);
return (n.hostGraph = this), this.nodes.push(n), (i[$d(t)] = n), n;
}
}),
(TL.getNodeByIndex = function (t) {
var e = this.data.getRawIndex(t);
return this.nodes[e];
}),
(TL.getNodeById = function (t) {
return this._nodesMap[$d(t)];
}),
(TL.addEdge = function (t, e, i) {
var n = this._nodesMap,
o = this._edgesMap;
if (
('number' == typeof t && (t = this.nodes[t]),
'number' == typeof e && (e = this.nodes[e]),
Jd.isInstance(t) || (t = n[$d(t)]),
Jd.isInstance(e) || (e = n[$d(e)]),
t && e)
) {
var a = t.id + '-' + e.id;
if (!o[a]) {
var r = new Qd(t, e, i);
return (
(r.hostGraph = this),
this._directed && (t.outEdges.push(r), e.inEdges.push(r)),
t.edges.push(r),
t !== e && e.edges.push(r),
this.edges.push(r),
(o[a] = r),
r
);
}
}
}),
(TL.getEdgeByIndex = function (t) {
var e = this.edgeData.getRawIndex(t);
return this.edges[e];
}),
(TL.getEdge = function (t, e) {
Jd.isInstance(t) && (t = t.id), Jd.isInstance(e) && (e = e.id);
var i = this._edgesMap;
return this._directed ? i[t + '-' + e] : i[t + '-' + e] || i[e + '-' + t];
}),
(TL.eachNode = function (t, e) {
for (var i = this.nodes, n = i.length, o = 0; o < n; o++)
i[o].dataIndex >= 0 && t.call(e, i[o], o);
}),
(TL.eachEdge = function (t, e) {
for (var i = this.edges, n = i.length, o = 0; o < n; o++)
i[o].dataIndex >= 0 &&
i[o].node1.dataIndex >= 0 &&
i[o].node2.dataIndex >= 0 &&
t.call(e, i[o], o);
}),
(TL.breadthFirstTraverse = function (t, e, i, n) {
if ((Jd.isInstance(e) || (e = this._nodesMap[$d(e)]), e)) {
for (
var o = 'out' === i ? 'outEdges' : 'in' === i ? 'inEdges' : 'edges',
a = 0;
a < this.nodes.length;
a++
)
this.nodes[a].__visited = !1;
if (!t.call(n, e, null))
for (var r = [e]; r.length; )
for (var s = r.shift(), l = s[o], a = 0; a < l.length; a++) {
var u = l[a],
h = u.node1 === s ? u.node2 : u.node1;
if (!h.__visited) {
if (t.call(n, h, s)) return;
r.push(h), (h.__visited = !0);
}
}
}
}),
(TL.update = function () {
for (
var t = this.data,
e = this.edgeData,
i = this.nodes,
n = this.edges,
o = 0,
a = i.length;
o < a;
o++
)
i[o].dataIndex = -1;
for (var o = 0, a = t.count(); o < a; o++)
i[t.getRawIndex(o)].dataIndex = o;
e.filterSelf(function (t) {
var i = n[e.getRawIndex(t)];
return i.node1.dataIndex >= 0 && i.node2.dataIndex >= 0;
});
for (var o = 0, a = n.length; o < a; o++) n[o].dataIndex = -1;
for (var o = 0, a = e.count(); o < a; o++)
n[e.getRawIndex(o)].dataIndex = o;
}),
(TL.clone = function () {
for (
var t = new IL(this._directed), e = this.nodes, i = this.edges, n = 0;
n < e.length;
n++
)
t.addNode(e[n].id, e[n].dataIndex);
for (n = 0; n < i.length; n++) {
var o = i[n];
t.addEdge(o.node1.id, o.node2.id, o.dataIndex);
}
return t;
}),
(Jd.prototype = {
constructor: Jd,
degree: function () {
return this.edges.length;
},
inDegree: function () {
return this.inEdges.length;
},
outDegree: function () {
return this.outEdges.length;
},
getModel: function (t) {
if (!(this.dataIndex < 0))
return this.hostGraph.data.getItemModel(this.dataIndex).getModel(t);
},
}),
(Qd.prototype.getModel = function (t) {
if (!(this.dataIndex < 0))
return this.hostGraph.edgeData.getItemModel(this.dataIndex).getModel(t);
});
var AL = function (t, e) {
return {
getValue: function (i) {
var n = this[t][e];
return n.get(n.getDimension(i || 'value'), this.dataIndex);
},
setVisual: function (i, n) {
this.dataIndex >= 0 && this[t][e].setItemVisual(this.dataIndex, i, n);
},
getVisual: function (i, n) {
return this[t][e].getItemVisual(this.dataIndex, i, n);
},
setLayout: function (i, n) {
this.dataIndex >= 0 && this[t][e].setItemLayout(this.dataIndex, i, n);
},
getLayout: function () {
return this[t][e].getItemLayout(this.dataIndex);
},
getGraphicEl: function () {
return this[t][e].getItemGraphicEl(this.dataIndex);
},
getRawIndex: function () {
return this[t][e].getRawIndex(this.dataIndex);
},
};
};
h(Jd, AL('hostGraph', 'data')),
h(Qd, AL('hostGraph', 'edgeData')),
(IL.Node = Jd),
(IL.Edge = Qd),
Yi(Jd),
Yi(Qd);
var DL = function (t, e, i, n, o) {
for (var a = new IL(n), r = 0; r < t.length; r++)
a.addNode(T(t[r].id, t[r].name, r), r);
for (var s = [], u = [], h = 0, r = 0; r < e.length; r++) {
var c = e[r],
d = c.source,
f = c.target;
a.addEdge(d, f, h) && (u.push(c), s.push(T(c.id, d + ' > ' + f)), h++);
}
var p,
g = i.get('coordinateSystem');
if ('cartesian2d' === g || 'polar' === g) p = ml(t, i);
else {
var m = Fa.get(g),
v = m && 'view' !== m.type ? m.dimensions || [] : [];
l(v, 'value') < 0 && v.concat(['value']);
var y = _A(t, { coordDimensions: v });
(p = new vA(y, i)).initData(t);
}
var x = new vA(['value'], i);
return (
x.initData(u, s),
o && o(p, x),
kc({
mainData: p,
struct: a,
structAttr: 'graph',
datas: { node: p, edge: x },
datasAttr: { node: 'data', edge: 'edgeData' },
}),
a.update(),
a
);
},
CL = Hs({
type: 'series.graph',
init: function (t) {
CL.superApply(this, 'init', arguments),
(this.legendDataProvider = function () {
return this._categoriesData;
}),
this.fillDataTextStyle(t.edges || t.links),
this._updateCategoriesData();
},
mergeOption: function (t) {
CL.superApply(this, 'mergeOption', arguments),
this.fillDataTextStyle(t.edges || t.links),
this._updateCategoriesData();
},
mergeDefaultAndTheme: function (t) {
CL.superApply(this, 'mergeDefaultAndTheme', arguments),
Ci(t, ['edgeLabel'], ['show']);
},
getInitialData: function (t, e) {
var i = t.edges || t.links || [],
n = t.data || t.nodes || [],
o = this;
if (n && i)
return DL(n, i, this, !0, function (t, i) {
function n(t) {
return (t = this.parsePath(t)) && 'label' === t[0]
? r
: t && 'emphasis' === t[0] && 'label' === t[1]
? l
: this.parentModel;
}
t.wrapMethod('getItemModel', function (t) {
var e = o._categoriesModels[t.getShallow('category')];
return (
e && ((e.parentModel = t.parentModel), (t.parentModel = e)), t
);
});
var a = o.getModel('edgeLabel'),
r = new No({ label: a.option }, a.parentModel, e),
s = o.getModel('emphasis.edgeLabel'),
l = new No({ emphasis: { label: s.option } }, s.parentModel, e);
i.wrapMethod('getItemModel', function (t) {
return t.customizeGetParent(n), t;
});
}).data;
},
getGraph: function () {
return this.getData().graph;
},
getEdgeData: function () {
return this.getGraph().edgeData;
},
getCategoriesData: function () {
return this._categoriesData;
},
formatTooltip: function (t, e, i) {
if ('edge' === i) {
var n = this.getData(),
o = this.getDataParams(t, i),
a = n.graph.getEdgeByIndex(t),
r = n.getName(a.node1.dataIndex),
s = n.getName(a.node2.dataIndex),
l = [];
return (
null != r && l.push(r),
null != s && l.push(s),
(l = ia(l.join(' > '))),
o.value && (l += ' : ' + ia(o.value)),
l
);
}
return CL.superApply(this, 'formatTooltip', arguments);
},
_updateCategoriesData: function () {
var t = f(this.option.categories || [], function (t) {
return null != t.value ? t : a({ value: 0 }, t);
}),
e = new vA(['value'], this);
e.initData(t),
(this._categoriesData = e),
(this._categoriesModels = e.mapArray(function (t) {
return e.getItemModel(t, !0);
}));
},
setZoom: function (t) {
this.option.zoom = t;
},
setCenter: function (t) {
this.option.center = t;
},
isAnimationEnabled: function () {
return (
CL.superCall(this, 'isAnimationEnabled') &&
!('force' === this.get('layout') && this.get('force.layoutAnimation'))
);
},
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: 'view',
legendHoverLink: !0,
hoverAnimation: !0,
layout: null,
focusNodeAdjacency: !1,
circular: { rotateLabel: !1 },
force: {
initLayout: null,
repulsion: [0, 50],
gravity: 0.1,
edgeLength: 30,
layoutAnimation: !0,
},
left: 'center',
top: 'center',
symbol: 'circle',
symbolSize: 10,
edgeSymbol: ['none', 'none'],
edgeSymbolSize: 10,
edgeLabel: { position: 'middle' },
draggable: !1,
roam: !1,
center: null,
zoom: 1,
nodeScaleRatio: 0.6,
label: { show: !1, formatter: '{b}' },
itemStyle: {},
lineStyle: { color: '#aaa', width: 1, curveness: 0, opacity: 0.5 },
emphasis: { label: { show: !0 } },
},
}),
LL = _M.prototype,
kL = bM.prototype,
PL = Un({
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) {
(tf(e) ? LL : kL).buildPath(t, e);
},
pointAt: function (t) {
return tf(this.shape)
? LL.pointAt.call(this, t)
: kL.pointAt.call(this, t);
},
tangentAt: function (t) {
var e = this.shape,
i = tf(e) ? [e.x2 - e.x1, e.y2 - e.y1] : kL.tangentAt.call(this, t);
return q(i, i);
},
}),
NL = ['fromSymbol', 'toSymbol'],
OL = rf.prototype;
(OL.beforeUpdate = function () {
var t = this,
e = t.childOfName('fromSymbol'),
i = t.childOfName('toSymbol'),
n = t.childOfName('label');
if (e || i || !n.ignore) {
for (var o = 1, a = this.parent; a; )
a.scale && (o /= a.scale[0]), (a = a.parent);
var r = t.childOfName('line');
if (this.__dirty || r.__dirty) {
var s = r.shape.percent,
l = r.pointAt(0),
u = r.pointAt(s),
h = U([], u, l);
if (
(q(h, h),
e &&
(e.attr('position', l),
(c = r.tangentAt(0)),
e.attr('rotation', Math.PI / 2 - Math.atan2(c[1], c[0])),
e.attr('scale', [o * s, o * s])),
i)
) {
i.attr('position', u);
var c = r.tangentAt(1);
i.attr('rotation', -Math.PI / 2 - Math.atan2(c[1], c[0])),
i.attr('scale', [o * s, o * s]);
}
if (!n.ignore) {
n.attr('position', u);
var d,
f,
p,
g = 5 * o;
if ('end' === n.__position)
(d = [h[0] * g + u[0], h[1] * g + u[1]]),
(f = h[0] > 0.8 ? 'left' : h[0] < -0.8 ? 'right' : 'center'),
(p = h[1] > 0.8 ? 'top' : h[1] < -0.8 ? 'bottom' : 'middle');
else if ('middle' === n.__position) {
var m = s / 2,
v = [(c = r.tangentAt(m))[1], -c[0]],
y = r.pointAt(m);
v[1] > 0 && ((v[0] = -v[0]), (v[1] = -v[1])),
(d = [y[0] + v[0] * g, y[1] + v[1] * g]),
(f = 'center'),
(p = 'bottom');
var x = -Math.atan2(c[1], c[0]);
u[0] < l[0] && (x = Math.PI + x), n.attr('rotation', x);
} else
(d = [-h[0] * g + l[0], -h[1] * g + l[1]]),
(f = h[0] > 0.8 ? 'right' : h[0] < -0.8 ? 'left' : 'center'),
(p = h[1] > 0.8 ? 'bottom' : h[1] < -0.8 ? 'top' : 'middle');
n.attr({
style: {
textVerticalAlign: n.__verticalAlign || p,
textAlign: n.__textAlign || f,
},
position: d,
scale: [o, o],
});
}
}
}
}),
(OL._createLine = function (t, e, i) {
var n = t.hostModel,
o = of(t.getItemLayout(e));
(o.shape.percent = 0),
To(o, { shape: { percent: 1 } }, n, e),
this.add(o);
var a = new rM({ name: 'label', lineLabelOriginalOpacity: 1 });
this.add(a),
d(
NL,
function (i) {
var n = nf(i, t, e);
this.add(n), (this[ef(i)] = t.getItemVisual(e, i));
},
this,
),
this._updateCommonStl(t, e, i);
}),
(OL.updateData = function (t, e, i) {
var n = t.hostModel,
o = this.childOfName('line'),
a = t.getItemLayout(e),
r = { shape: {} };
af(r.shape, a),
Io(o, r, n, e),
d(
NL,
function (i) {
var n = t.getItemVisual(e, i),
o = ef(i);
if (this[o] !== n) {
this.remove(this.childOfName(i));
var a = nf(i, t, e);
this.add(a);
}
this[o] = n;
},
this,
),
this._updateCommonStl(t, e, i);
}),
(OL._updateCommonStl = function (t, e, i) {
var n = t.hostModel,
o = this.childOfName('line'),
a = i && i.lineStyle,
s = i && i.hoverLineStyle,
l = i && i.labelModel,
u = i && i.hoverLabelModel;
if (!i || t.hasItemOption) {
var h = t.getItemModel(e);
(a = h.getModel('lineStyle').getLineStyle()),
(s = h.getModel('emphasis.lineStyle').getLineStyle()),
(l = h.getModel('label')),
(u = h.getModel('emphasis.label'));
}
var c = t.getItemVisual(e, 'color'),
f = D(t.getItemVisual(e, 'opacity'), a.opacity, 1);
o.useStyle(
r({ strokeNoScale: !0, fill: 'none', stroke: c, opacity: f }, a),
),
(o.hoverStyle = s),
d(
NL,
function (t) {
var e = this.childOfName(t);
e && (e.setColor(c), e.setStyle({ opacity: f }));
},
this,
);
var p,
g,
m = l.getShallow('show'),
v = u.getShallow('show'),
y = this.childOfName('label');
if (
(m || v) &&
((p = c || '#000'),
null == (g = n.getFormattedLabel(e, 'normal', t.dataType)))
) {
var x = n.getRawValue(e);
g = null == x ? t.getName(e) : isFinite(x) ? Go(x) : x;
}
var _ = m ? g : null,
w = v ? A(n.getFormattedLabel(e, 'emphasis', t.dataType), g) : null,
b = y.style;
(null == _ && null == w) ||
(mo(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: u.getTextColor(!0),
fontStyle: u.getShallow('fontStyle'),
fontWeight: u.getShallow('fontWeight'),
fontSize: u.getShallow('fontSize'),
fontFamily: u.getShallow('fontFamily'),
}
: { text: null }),
(y.ignore = !m && !v),
fo(this);
}),
(OL.highlight = function () {
this.trigger('emphasis');
}),
(OL.downplay = function () {
this.trigger('normal');
}),
(OL.updateLayout = function (t, e) {
this.setLinePoints(t.getItemLayout(e));
}),
(OL.setLinePoints = function (t) {
var e = this.childOfName('line');
af(e.shape, t), e.dirty();
}),
u(rf, tb);
var EL = sf.prototype;
(EL.isPersistent = function () {
return !0;
}),
(EL.updateData = function (t) {
var e = this,
i = e.group,
n = e._lineData;
(e._lineData = t), n || i.removeAll();
var o = hf(t);
t.diff(n)
.add(function (i) {
lf(e, t, i, o);
})
.update(function (i, a) {
uf(e, n, t, a, i, o);
})
.remove(function (t) {
i.remove(n.getItemGraphicEl(t));
})
.execute();
}),
(EL.updateLayout = function () {
var t = this._lineData;
t &&
t.eachItemGraphicEl(function (e, i) {
e.updateLayout(t, i);
}, this);
}),
(EL.incrementalPrepareUpdate = function (t) {
(this._seriesScope = hf(t)),
(this._lineData = null),
this.group.removeAll();
}),
(EL.incrementalUpdate = function (t, e) {
for (var i = t.start; i < t.end; i++)
if (df(e.getItemLayout(i))) {
var n = new this._ctor(e, i, this._seriesScope);
n.traverse(function (t) {
t.isGroup || (t.incremental = t.useHoverLayer = !0);
}),
this.group.add(n),
e.setItemGraphicEl(i, n);
}
}),
(EL.remove = function () {
this._clearIncremental(),
(this._incremental = null),
this.group.removeAll();
}),
(EL._clearIncremental = function () {
var t = this._incremental;
t && t.clearDisplaybles();
});
var RL = [],
zL = [],
BL = [],
VL = sn,
GL = hw,
FL = Math.abs,
WL = function (t, e) {
function i(t) {
var e = t.getVisual('symbolSize');
return e instanceof Array && (e = (e[0] + e[1]) / 2), e;
}
var n = [],
o = cn,
a = [[], [], []],
r = [[], []],
s = [];
(e /= 2),
t.eachEdge(function (t, l) {
var u = t.getLayout(),
h = t.getVisual('fromSymbol'),
c = t.getVisual('toSymbol');
u.__original ||
((u.__original = [F(u[0]), F(u[1])]),
u[2] && u.__original.push(F(u[2])));
var d = u.__original;
if (null != u[2]) {
if (
(G(a[0], d[0]), G(a[1], d[2]), G(a[2], d[1]), h && 'none' !== h)
) {
var f = i(t.node1),
p = ff(a, d[0], f * e);
o(a[0][0], a[1][0], a[2][0], p, n),
(a[0][0] = n[3]),
(a[1][0] = n[4]),
o(a[0][1], a[1][1], a[2][1], p, n),
(a[0][1] = n[3]),
(a[1][1] = n[4]);
}
if (c && 'none' !== c) {
var f = i(t.node2),
p = ff(a, d[1], f * e);
o(a[0][0], a[1][0], a[2][0], p, n),
(a[1][0] = n[1]),
(a[2][0] = n[2]),
o(a[0][1], a[1][1], a[2][1], p, n),
(a[1][1] = n[1]),
(a[2][1] = n[2]);
}
G(u[0], a[0]), G(u[1], a[2]), G(u[2], a[1]);
} else {
if (
(G(r[0], d[0]),
G(r[1], d[1]),
U(s, r[1], r[0]),
q(s, s),
h && 'none' !== h)
) {
f = i(t.node1);
Z(r[0], r[0], s, f * e);
}
if (c && 'none' !== c) {
f = i(t.node2);
Z(r[1], r[1], s, -f * e);
}
G(u[0], r[0]), G(u[1], r[1]);
}
});
},
HL = '__focusNodeAdjacency',
ZL = ['itemStyle', 'opacity'],
UL = ['lineStyle', 'opacity'];
Zs({
type: 'graph',
init: function (t, e) {
var i = new Du(),
n = new sf(),
o = this.group;
(this._controller = new oc(e.getZr())),
(this._controllerHost = { target: o }),
o.add(i.group),
o.add(n.group),
(this._symbolDraw = i),
(this._lineDraw = n),
(this._firstRender = !0);
},
render: function (t, e, i) {
var n = t.coordinateSystem;
(this._model = t), (this._nodeScaleRatio = t.get('nodeScaleRatio'));
var o = this._symbolDraw,
a = this._lineDraw,
r = this.group;
if ('view' === n.type) {
var s = { position: n.position, scale: n.scale };
this._firstRender ? r.attr(s) : Io(r, s, t);
}
WL(t.getGraph(), this._getNodeGlobalScale(t));
var l = t.getData();
o.updateData(l);
var u = t.getEdgeData();
a.updateData(u),
this._updateNodeAndLinkScale(),
this._updateController(t, e, i),
clearTimeout(this._layoutTimeout);
var h = t.forceLayout,
c = t.get('force.layoutAnimation');
h && this._startForceLayoutIteration(h, c),
l.eachItemGraphicEl(function (e, n) {
var o = l.getItemModel(n);
e.off('drag').off('dragend');
var a = o.get('draggable');
a &&
e
.on(
'drag',
function () {
h &&
(h.warmUp(),
!this._layouting && this._startForceLayoutIteration(h, c),
h.setFixed(n),
l.setItemLayout(n, e.position));
},
this,
)
.on(
'dragend',
function () {
h && h.setUnfixed(n);
},
this,
),
e.setDraggable(a && h),
e[HL] && e.off('mouseover', e[HL]),
e.__unfocusNodeAdjacency &&
e.off('mouseout', e.__unfocusNodeAdjacency),
o.get('focusNodeAdjacency') &&
(e.on(
'mouseover',
(e[HL] = function () {
i.dispatchAction({
type: 'focusNodeAdjacency',
seriesId: t.id,
dataIndex: e.dataIndex,
});
}),
),
e.on(
'mouseout',
(e.__unfocusNodeAdjacency = function () {
i.dispatchAction({
type: 'unfocusNodeAdjacency',
seriesId: t.id,
});
}),
));
}, this),
l.graph.eachEdge(function (e) {
var n = e.getGraphicEl();
n[HL] && n.off('mouseover', n[HL]),
n.__unfocusNodeAdjacency &&
n.off('mouseout', n.__unfocusNodeAdjacency),
e.getModel().get('focusNodeAdjacency') &&
(n.on(
'mouseover',
(n[HL] = function () {
i.dispatchAction({
type: 'focusNodeAdjacency',
seriesId: t.id,
edgeDataIndex: e.dataIndex,
});
}),
),
n.on(
'mouseout',
(n.__unfocusNodeAdjacency = function () {
i.dispatchAction({
type: 'unfocusNodeAdjacency',
seriesId: t.id,
});
}),
));
});
var d = 'circular' === t.get('layout') && t.get('circular.rotateLabel'),
f = l.getLayout('cx'),
p = l.getLayout('cy');
l.eachItemGraphicEl(function (t, e) {
var i = t.getSymbolPath();
if (d) {
var n = l.getItemLayout(e),
o = Math.atan2(n[1] - p, n[0] - f);
o < 0 && (o = 2 * Math.PI + o);
var a = n[0] < f;
a && (o -= Math.PI);
var r = a ? 'left' : 'right';
i.setStyle({
textRotation: -o,
textPosition: r,
textOrigin: 'center',
}),
i.hoverStyle && (i.hoverStyle.textPosition = r);
} else i.setStyle({ textRotation: 0 });
}),
(this._firstRender = !1);
},
dispose: function () {
this._controller && this._controller.dispose(),
(this._controllerHost = {});
},
focusNodeAdjacency: function (t, e, i, n) {
var o = this._model.getData().graph,
a = n.dataIndex,
r = n.edgeDataIndex,
s = o.getNodeByIndex(a),
l = o.getEdgeByIndex(r);
(s || l) &&
(o.eachNode(function (t) {
gf(t, ZL, 0.1);
}),
o.eachEdge(function (t) {
gf(t, UL, 0.1);
}),
s &&
(mf(s, ZL),
d(s.edges, function (t) {
t.dataIndex < 0 || (mf(t, UL), mf(t.node1, ZL), mf(t.node2, ZL));
})),
l && (mf(l, UL), mf(l.node1, ZL), mf(l.node2, ZL)));
},
unfocusNodeAdjacency: function (t, e, i, n) {
var o = this._model.getData().graph;
o.eachNode(function (t) {
gf(t, ZL);
}),
o.eachEdge(function (t) {
gf(t, UL);
});
},
_startForceLayoutIteration: function (t, e) {
var i = this;
!(function n() {
t.step(function (t) {
i.updateLayout(i._model),
(i._layouting = !t) &&
(e ? (i._layoutTimeout = setTimeout(n, 16)) : n());
});
})();
},
_updateController: function (t, e, i) {
var n = this._controller,
o = this._controllerHost,
a = this.group;
n.setPointerChecker(function (e, n, o) {
var r = a.getBoundingRect();
return r.applyTransform(a.transform), r.contain(n, o) && !gc(e, i, t);
}),
'view' === t.coordinateSystem.type
? (n.enable(t.get('roam')),
(o.zoomLimit = t.get('scaleLimit')),
(o.zoom = t.coordinateSystem.getZoom()),
n
.off('pan')
.off('zoom')
.on('pan', function (e) {
fc(o, e.dx, e.dy),
i.dispatchAction({
seriesId: t.id,
type: 'graphRoam',
dx: e.dx,
dy: e.dy,
});
})
.on(
'zoom',
function (e) {
pc(o, e.scale, e.originX, e.originY),
i.dispatchAction({
seriesId: t.id,
type: 'graphRoam',
zoom: e.scale,
originX: e.originX,
originY: e.originY,
}),
this._updateNodeAndLinkScale(),
WL(t.getGraph(), this._getNodeGlobalScale(t)),
this._lineDraw.updateLayout();
},
this,
))
: n.disable();
},
_updateNodeAndLinkScale: function () {
var t = this._model,
e = t.getData(),
i = this._getNodeGlobalScale(t),
n = [i, i];
e.eachItemGraphicEl(function (t, e) {
t.attr('scale', n);
});
},
_getNodeGlobalScale: function (t) {
var e = t.coordinateSystem;
if ('view' !== e.type) return 1;
var i = this._nodeScaleRatio,
n = e.scale,
o = (n && n[0]) || 1;
return ((e.getZoom() - 1) * i + 1) / o;
},
updateLayout: function (t) {
WL(t.getGraph(), this._getNodeGlobalScale(t)),
this._symbolDraw.updateLayout(),
this._lineDraw.updateLayout();
},
remove: function (t, e) {
this._symbolDraw && this._symbolDraw.remove(),
this._lineDraw && this._lineDraw.remove();
},
}),
Es(
{
type: 'focusNodeAdjacency',
event: 'focusNodeAdjacency',
update: 'series:focusNodeAdjacency',
},
function () {},
),
Es(
{
type: 'unfocusNodeAdjacency',
event: 'unfocusNodeAdjacency',
update: 'series:unfocusNodeAdjacency',
},
function () {},
),
Es({ type: 'graphRoam', event: 'graphRoam', update: 'none' }, function (
t,
e,
) {
e.eachComponent({ mainType: 'series', query: t }, function (e) {
var i = bc(e.coordinateSystem, t);
e.setCenter && e.setCenter(i.center), e.setZoom && e.setZoom(i.zoom);
});
});
var XL = Z;
Os(function (t) {
var e = t.findComponents({ mainType: 'legend' });
e &&
e.length &&
t.eachSeriesByType(
'graph',
function (t) {
var i = t.getCategoriesData(),
n = t.getGraph().data,
o = i.mapArray(i.getName);
n.filterSelf(function (t) {
var i = n.getItemModel(t).getShallow('category');
if (null != i) {
'number' == typeof i && (i = o[i]);
for (var a = 0; a < e.length; a++)
if (!e[a].isSelected(i)) return !1;
}
return !0;
});
},
this,
);
}),
Bs(TD('graph', 'circle', null)),
Bs(function (t) {
var e = {};
t.eachSeriesByType('graph', function (t) {
var i = t.getCategoriesData(),
n = t.getData(),
o = {};
i.each(function (n) {
var a = i.getName(n);
o['ec-' + a] = n;
var r =
i.getItemModel(n).get('itemStyle.color') ||
t.getColorFromPalette(a, e);
i.setItemVisual(n, 'color', r);
}),
i.count() &&
n.each(function (t) {
var e = n.getItemModel(t).getShallow('category');
null != e &&
('string' == typeof e && (e = o['ec-' + e]),
n.getItemVisual(t, 'color', !0) ||
n.setItemVisual(t, 'color', i.getItemVisual(e, 'color')));
});
});
}),
Bs(function (t) {
t.eachSeriesByType('graph', function (t) {
var e = t.getGraph(),
i = t.getEdgeData(),
n = vf(t.get('edgeSymbol')),
o = vf(t.get('edgeSymbolSize')),
a = 'lineStyle.color'.split('.'),
r = 'lineStyle.opacity'.split('.');
i.setVisual('fromSymbol', n && n[0]),
i.setVisual('toSymbol', n && n[1]),
i.setVisual('fromSymbolSize', o && o[0]),
i.setVisual('toSymbolSize', o && o[1]),
i.setVisual('color', t.get(a)),
i.setVisual('opacity', t.get(r)),
i.each(function (t) {
var n = i.getItemModel(t),
o = e.getEdgeByIndex(t),
s = vf(n.getShallow('symbol', !0)),
l = vf(n.getShallow('symbolSize', !0)),
u = n.get(a),
h = n.get(r);
switch (u) {
case 'source':
u = o.node1.getVisual('color');
break;
case 'target':
u = o.node2.getVisual('color');
}
s[0] && o.setVisual('fromSymbol', s[0]),
s[1] && o.setVisual('toSymbol', s[1]),
l[0] && o.setVisual('fromSymbolSize', l[0]),
l[1] && o.setVisual('toSymbolSize', l[1]),
o.setVisual('color', u),
o.setVisual('opacity', h);
});
});
}),
zs(function (t, e) {
t.eachSeriesByType('graph', function (t) {
var e = t.get('layout'),
i = t.coordinateSystem;
if (i && 'view' !== i.type) {
var n = t.getData(),
o = [];
d(i.dimensions, function (t) {
o = o.concat(n.mapDimension(t, !0));
});
for (var a = 0; a < n.count(); a++) {
for (var r = [], s = !1, l = 0; l < o.length; l++) {
var u = n.get(o[l], a);
isNaN(u) || (s = !0), r.push(u);
}
s
? n.setItemLayout(a, i.dataToPoint(r))
: n.setItemLayout(a, [NaN, NaN]);
}
xf(n.graph);
} else (e && 'none' !== e) || yf(t);
});
}),
zs(function (t) {
t.eachSeriesByType('graph', function (t) {
'circular' === t.get('layout') && _f(t);
});
}),
zs(function (t) {
t.eachSeriesByType('graph', function (t) {
var e = t.coordinateSystem;
if (!e || 'view' === e.type)
if ('force' === t.get('layout')) {
var i = t.preservedPoints || {},
n = t.getGraph(),
o = n.data,
a = n.edgeData,
r = t.getModel('force'),
s = r.get('initLayout');
t.preservedPoints
? o.each(function (t) {
var e = o.getId(t);
o.setItemLayout(t, i[e] || [NaN, NaN]);
})
: s && 'none' !== s
? 'circular' === s && _f(t)
: yf(t);
var l = o.getDataExtent('value'),
u = a.getDataExtent('value'),
h = r.get('repulsion'),
c = r.get('edgeLength');
y(h) || (h = [h, h]), y(c) || (c = [c, c]), (c = [c[1], c[0]]);
var d = o.mapArray('value', function (t, e) {
var i = o.getItemLayout(e),
n = Bo(t, l, h);
return (
isNaN(n) && (n = (h[0] + h[1]) / 2),
{
w: n,
rep: n,
fixed: o.getItemModel(e).get('fixed'),
p: !i || isNaN(i[0]) || isNaN(i[1]) ? null : i,
}
);
}),
f = a.mapArray('value', function (t, e) {
var i = n.getEdgeByIndex(e),
o = Bo(t, u, c);
return (
isNaN(o) && (o = (c[0] + c[1]) / 2),
{
n1: d[i.node1.dataIndex],
n2: d[i.node2.dataIndex],
d: o,
curveness: i.getModel().get('lineStyle.curveness') || 0,
}
);
}),
p = (e = t.coordinateSystem).getBoundingRect(),
g = wf(d, f, { rect: p, gravity: r.get('gravity') }),
m = g.step;
(g.step = function (t) {
for (var e = 0, a = d.length; e < a; e++)
d[e].fixed && G(d[e].p, n.getNodeByIndex(e).getLayout());
m(function (e, a, r) {
for (var s = 0, l = e.length; s < l; s++)
e[s].fixed || n.getNodeByIndex(s).setLayout(e[s].p),
(i[o.getId(s)] = e[s].p);
for (var s = 0, l = a.length; s < l; s++) {
var u = a[s],
h = n.getEdgeByIndex(s),
c = u.n1.p,
d = u.n2.p,
f = h.getLayout();
((f = f ? f.slice() : [])[0] = f[0] || []),
(f[1] = f[1] || []),
G(f[0], c),
G(f[1], d),
+u.curveness &&
(f[2] = [
(c[0] + d[0]) / 2 - (c[1] - d[1]) * u.curveness,
(c[1] + d[1]) / 2 - (d[0] - c[0]) * u.curveness,
]),
h.setLayout(f);
}
t && t(r);
});
}),
(t.forceLayout = g),
(t.preservedPoints = i),
g.step();
} else t.forceLayout = null;
});
}),
Rs('graphView', {
create: function (t, e) {
var i = [];
return (
t.eachSeriesByType('graph', function (t) {
var n = t.get('coordinateSystem');
if (!n || 'view' === n) {
var o = t.getData(),
a = [],
r = [];
fn(
o.mapArray(function (t) {
var e = o.getItemModel(t);
return [+e.get('x'), +e.get('y')];
}),
a,
r,
),
r[0] - a[0] == 0 && ((r[0] += 1), (a[0] -= 1)),
r[1] - a[1] == 0 && ((r[1] += 1), (a[1] -= 1));
var s = (r[0] - a[0]) / (r[1] - a[1]),
l = bf(t, e, s);
isNaN(s) &&
((a = [l.x, l.y]), (r = [l.x + l.width, l.y + l.height]));
var u = r[0] - a[0],
h = r[1] - a[1],
c = l.width,
d = l.height,
f = (t.coordinateSystem = new Mc());
(f.zoomLimit = t.get('scaleLimit')),
f.setBoundingRect(a[0], a[1], u, h),
f.setViewRect(l.x, l.y, c, d),
f.setCenter(t.get('center')),
f.setZoom(t.get('zoom')),
i.push(f);
}
}),
i
);
},
});
YI.extend({
type: 'series.gauge',
getInitialData: function (t, e) {
var i = t.data || [];
return y(i) || (i = [i]), (t.data = i), oC(this, ['value']);
},
defaultOption: {
zlevel: 0,
z: 2,
center: ['50%', '50%'],
legendHoverLink: !0,
radius: '75%',
startAngle: 225,
endAngle: -45,
clockwise: !0,
min: 0,
max: 100,
splitNumber: 10,
axisLine: {
show: !0,
lineStyle: {
color: [
[0.2, '#91c7ae'],
[0.8, '#63869e'],
[1, '#c23531'],
],
width: 30,
},
},
splitLine: {
show: !0,
length: 30,
lineStyle: { color: '#eee', width: 2, type: 'solid' },
},
axisTick: {
show: !0,
splitNumber: 5,
length: 8,
lineStyle: { color: '#eee', width: 1, type: 'solid' },
},
axisLabel: { show: !0, distance: 5, color: 'auto' },
pointer: { show: !0, length: '80%', width: 8 },
itemStyle: { color: 'auto' },
title: {
show: !0,
offsetCenter: [0, '-40%'],
color: '#333',
fontSize: 15,
},
detail: {
show: !0,
backgroundColor: 'rgba(0,0,0,0)',
borderWidth: 0,
borderColor: '#ccc',
width: 100,
height: null,
padding: [5, 10],
offsetCenter: [0, '40%'],
color: 'auto',
fontSize: 30,
},
},
});
var jL = Pn.extend({
type: 'echartsGaugePointer',
shape: { angle: 0, width: 10, r: 10, x: 0, y: 0 },
buildPath: function (t, e) {
var i = Math.cos,
n = Math.sin,
o = e.r,
a = e.width,
r = e.angle,
s = e.x - i(r) * a * (a >= o / 3 ? 1 : 2),
l = e.y - n(r) * a * (a >= o / 3 ? 1 : 2);
(r = e.angle - Math.PI / 2),
t.moveTo(s, l),
t.lineTo(e.x + i(r) * a, e.y + n(r) * a),
t.lineTo(e.x + i(e.angle) * o, e.y + n(e.angle) * o),
t.lineTo(e.x - i(r) * a, e.y - n(r) * a),
t.lineTo(s, l);
},
}),
YL = 2 * Math.PI,
qL =
(Ar.extend({
type: 'gauge',
render: function (t, e, i) {
this.group.removeAll();
var n = t.get('axisLine.lineStyle.color'),
o = Sf(t, i);
this._renderMain(t, e, i, n, o);
},
dispose: function () {},
_renderMain: function (t, e, i, n, o) {
for (
var a = this.group,
r = t.getModel('axisLine').getModel('lineStyle'),
s = t.get('clockwise'),
l = (-t.get('startAngle') / 180) * Math.PI,
u = (-t.get('endAngle') / 180) * Math.PI,
h = (u - l) % YL,
c = l,
d = r.get('width'),
f = 0;
f < n.length;
f++
) {
var p = Math.min(Math.max(n[f][0], 0), 1),
g = new hM({
shape: {
startAngle: c,
endAngle: (u = l + h * p),
cx: o.cx,
cy: o.cy,
clockwise: s,
r0: o.r - d,
r: o.r,
},
silent: !0,
});
g.setStyle({ fill: n[f][1] }),
g.setStyle(
r.getLineStyle(['color', 'borderWidth', 'borderColor']),
),
a.add(g),
(c = u);
}
var m = function (t) {
if (t <= 0) return n[0][1];
for (var e = 0; e < n.length; e++)
if (n[e][0] >= t && (0 === e ? 0 : n[e - 1][0]) < t)
return n[e][1];
return n[e - 1][1];
};
if (!s) {
var v = l;
(l = u), (u = v);
}
this._renderTicks(t, e, i, m, o, l, u, s),
this._renderPointer(t, e, i, m, o, l, u, s),
this._renderTitle(t, e, i, m, o),
this._renderDetail(t, e, i, m, o);
},
_renderTicks: function (t, e, i, n, o, a, r, s) {
for (
var l = this.group,
u = o.cx,
h = o.cy,
c = o.r,
d = +t.get('min'),
f = +t.get('max'),
p = t.getModel('splitLine'),
g = t.getModel('axisTick'),
m = t.getModel('axisLabel'),
v = t.get('splitNumber'),
y = g.get('splitNumber'),
x = Vo(p.get('length'), c),
_ = Vo(g.get('length'), c),
w = a,
b = (r - a) / v,
S = b / y,
M = p.getModel('lineStyle').getLineStyle(),
I = g.getModel('lineStyle').getLineStyle(),
T = 0;
T <= v;
T++
) {
var A = Math.cos(w),
D = Math.sin(w);
if (p.get('show')) {
var C = new _M({
shape: {
x1: A * c + u,
y1: D * c + h,
x2: A * (c - x) + u,
y2: D * (c - x) + h,
},
style: M,
silent: !0,
});
'auto' === M.stroke && C.setStyle({ stroke: n(T / v) }), l.add(C);
}
if (m.get('show')) {
var L = Mf(Go((T / v) * (f - d) + d), m.get('formatter')),
k = m.get('distance'),
P = n(T / v);
l.add(
new rM({
style: mo(
{},
m,
{
text: L,
x: A * (c - x - k) + u,
y: D * (c - x - k) + h,
textVerticalAlign:
D < -0.4 ? 'top' : D > 0.4 ? 'bottom' : 'middle',
textAlign:
A < -0.4 ? 'left' : A > 0.4 ? 'right' : 'center',
},
{ autoColor: P },
),
silent: !0,
}),
);
}
if (g.get('show') && T !== v) {
for (var N = 0; N <= y; N++) {
var A = Math.cos(w),
D = Math.sin(w),
O = new _M({
shape: {
x1: A * c + u,
y1: D * c + h,
x2: A * (c - _) + u,
y2: D * (c - _) + h,
},
silent: !0,
style: I,
});
'auto' === I.stroke &&
O.setStyle({ stroke: n((T + N / y) / v) }),
l.add(O),
(w += S);
}
w -= S;
} else w += b;
}
},
_renderPointer: function (t, e, i, n, o, a, r, s) {
var l = this.group,
u = this._data;
if (t.get('pointer.show')) {
var h = [+t.get('min'), +t.get('max')],
c = [a, r],
d = t.getData(),
f = d.mapDimension('value');
d
.diff(u)
.add(function (e) {
var i = new jL({ shape: { angle: a } });
To(i, { shape: { angle: Bo(d.get(f, e), h, c, !0) } }, t),
l.add(i),
d.setItemGraphicEl(e, i);
})
.update(function (e, i) {
var n = u.getItemGraphicEl(i);
Io(n, { shape: { angle: Bo(d.get(f, e), h, c, !0) } }, t),
l.add(n),
d.setItemGraphicEl(e, n);
})
.remove(function (t) {
var e = u.getItemGraphicEl(t);
l.remove(e);
})
.execute(),
d.eachItemGraphicEl(function (t, e) {
var i = d.getItemModel(e),
a = i.getModel('pointer');
t.setShape({
x: o.cx,
y: o.cy,
width: Vo(a.get('width'), o.r),
r: Vo(a.get('length'), o.r),
}),
t.useStyle(i.getModel('itemStyle').getItemStyle()),
'auto' === t.style.fill &&
t.setStyle('fill', n(Bo(d.get(f, e), h, [0, 1], !0))),
fo(t, i.getModel('emphasis.itemStyle').getItemStyle());
}),
(this._data = d);
} else
u &&
u.eachItemGraphicEl(function (t) {
l.remove(t);
});
},
_renderTitle: function (t, e, i, n, o) {
var a = t.getData(),
r = a.mapDimension('value'),
s = t.getModel('title');
if (s.get('show')) {
var l = s.get('offsetCenter'),
u = o.cx + Vo(l[0], o.r),
h = o.cy + Vo(l[1], o.r),
c = +t.get('min'),
d = +t.get('max'),
f = n(Bo(t.getData().get(r, 0), [c, d], [0, 1], !0));
this.group.add(
new rM({
silent: !0,
style: mo(
{},
s,
{
x: u,
y: h,
text: a.getName(0),
textAlign: 'center',
textVerticalAlign: 'middle',
},
{ autoColor: f, forceRich: !0 },
),
}),
);
}
},
_renderDetail: function (t, e, i, n, o) {
var a = t.getModel('detail'),
r = +t.get('min'),
s = +t.get('max');
if (a.get('show')) {
var l = a.get('offsetCenter'),
u = o.cx + Vo(l[0], o.r),
h = o.cy + Vo(l[1], o.r),
c = Vo(a.get('width'), o.r),
d = Vo(a.get('height'), o.r),
f = t.getData(),
p = f.get(f.mapDimension('value'), 0),
g = n(Bo(p, [r, s], [0, 1], !0));
this.group.add(
new rM({
silent: !0,
style: mo(
{},
a,
{
x: u,
y: h,
text: Mf(p, a.get('formatter')),
textWidth: isNaN(c) ? null : c,
textHeight: isNaN(d) ? null : d,
textAlign: 'center',
textVerticalAlign: 'middle',
},
{ autoColor: g, forceRich: !0 },
),
}),
);
}
},
}),
Hs({
type: 'series.funnel',
init: function (t) {
qL.superApply(this, 'init', arguments),
(this.legendDataProvider = function () {
return this.getRawData();
}),
this._defaultLabelLine(t);
},
getInitialData: function (t, e) {
return oC(this, ['value']);
},
_defaultLabelLine: function (t) {
Ci(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);
},
getDataParams: function (t) {
var e = this.getData(),
i = qL.superCall(this, 'getDataParams', t),
n = e.mapDimension('value'),
o = e.getSum(n);
return (
(i.percent = o ? +((e.get(n, t) / o) * 100).toFixed(2) : 0),
i.$vars.push('percent'),
i
);
},
defaultOption: {
zlevel: 0,
z: 2,
legendHoverLink: !0,
left: 80,
top: 60,
right: 80,
bottom: 60,
minSize: '0%',
maxSize: '100%',
sort: 'descending',
gap: 0,
funnelAlign: 'center',
label: { show: !0, position: 'outer' },
labelLine: {
show: !0,
length: 20,
lineStyle: { width: 1, type: 'solid' },
},
itemStyle: { borderColor: '#fff', borderWidth: 1 },
emphasis: { label: { show: !0 } },
},
})),
KL = If.prototype,
$L = ['itemStyle', 'opacity'];
(KL.updateData = function (t, e, i) {
var n = this.childAt(0),
o = t.hostModel,
a = t.getItemModel(e),
s = t.getItemLayout(e),
l = t.getItemModel(e).get($L);
(l = null == l ? 1 : l),
n.useStyle({}),
i
? (n.setShape({ points: s.points }),
n.setStyle({ opacity: 0 }),
To(n, { style: { opacity: l } }, o, e))
: Io(n, { style: { opacity: l }, shape: { points: s.points } }, o, e);
var u = a.getModel('itemStyle'),
h = t.getItemVisual(e, 'color');
n.setStyle(r({ lineJoin: 'round', fill: h }, u.getItemStyle(['opacity']))),
(n.hoverStyle = u.getModel('emphasis').getItemStyle()),
this._updateLabel(t, e),
fo(this);
}),
(KL._updateLabel = function (t, e) {
var i = this.childAt(1),
n = this.childAt(2),
o = t.hostModel,
a = t.getItemModel(e),
r = t.getItemLayout(e).label,
s = t.getItemVisual(e, 'color');
Io(i, { shape: { points: r.linePoints || r.linePoints } }, o, e),
Io(n, { style: { x: r.x, y: r.y } }, o, e),
n.attr({ rotation: r.rotation, origin: [r.x, r.y], z2: 10 });
var l = a.getModel('label'),
u = a.getModel('emphasis.label'),
h = a.getModel('labelLine'),
c = a.getModel('emphasis.labelLine'),
s = t.getItemVisual(e, 'color');
go(
n.style,
(n.hoverStyle = {}),
l,
u,
{
labelFetcher: t.hostModel,
labelDataIndex: e,
defaultText: t.getName(e),
autoColor: s,
useInsideStyle: !!r.inside,
},
{ textAlign: r.textAlign, textVerticalAlign: r.verticalAlign },
),
(n.ignore = n.normalIgnore = !l.get('show')),
(n.hoverIgnore = !u.get('show')),
(i.ignore = i.normalIgnore = !h.get('show')),
(i.hoverIgnore = !c.get('show')),
i.setStyle({ stroke: s }),
i.setStyle(h.getModel('lineStyle').getLineStyle()),
(i.hoverStyle = c.getModel('lineStyle').getLineStyle());
}),
u(If, tb);
Ar.extend({
type: 'funnel',
render: function (t, e, i) {
var n = t.getData(),
o = this._data,
a = this.group;
n
.diff(o)
.add(function (t) {
var e = new If(n, t);
n.setItemGraphicEl(t, e), a.add(e);
})
.update(function (t, e) {
var i = o.getItemGraphicEl(e);
i.updateData(n, t), a.add(i), n.setItemGraphicEl(t, i);
})
.remove(function (t) {
var e = o.getItemGraphicEl(t);
a.remove(e);
})
.execute(),
(this._data = n);
},
remove: function () {
this.group.removeAll(), (this._data = null);
},
dispose: function () {},
});
Bs(uC('funnel')),
zs(function (t, e, i) {
t.eachSeriesByType('funnel', function (t) {
var i = t.getData(),
n = i.mapDimension('value'),
o = t.get('sort'),
a = Tf(t, e),
r = Af(i, o),
s = [Vo(t.get('minSize'), a.width), Vo(t.get('maxSize'), a.width)],
l = i.getDataExtent(n),
u = t.get('min'),
h = t.get('max');
null == u && (u = Math.min(l[0], 0)), null == h && (h = l[1]);
var c = t.get('funnelAlign'),
d = t.get('gap'),
f = (a.height - d * (i.count() - 1)) / i.count(),
p = a.y,
g = function (t, e) {
var o,
r = Bo(i.get(n, t) || 0, [u, h], s, !0);
switch (c) {
case 'left':
o = a.x;
break;
case 'center':
o = a.x + (a.width - r) / 2;
break;
case 'right':
o = a.x + a.width - r;
}
return [
[o, e],
[o + r, e],
];
};
'ascending' === o &&
((f = -f), (d = -d), (p += a.height), (r = r.reverse()));
for (var m = 0; m < r.length; m++) {
var v = r[m],
y = r[m + 1],
x = i.getItemModel(v).get('itemStyle.height');
null == x
? (x = f)
: ((x = Vo(x, a.height)), 'ascending' === o && (x = -x));
var _ = g(v, p),
w = g(y, p + x);
(p += x + d),
i.setItemLayout(v, { points: _.concat(w.slice().reverse()) });
}
Df(i);
});
}),
Os(fC('funnel'));
var JL = function (t, e, i, n, o) {
aD.call(this, t, e, i), (this.type = n || 'value'), (this.axisIndex = o);
};
(JL.prototype = {
constructor: JL,
model: null,
isHorizontal: function () {
return 'horizontal' !== this.coordinateSystem.getModel().get('layout');
},
}),
u(JL, aD);
var QL = function (t, e, i, n, o, a) {
(e[0] = Pf(e[0], i)), (e[1] = Pf(e[1], i)), (t = t || 0);
var r = i[1] - i[0];
null != o && (o = Pf(o, [0, r])),
null != a && (a = Math.max(a, null != o ? o : 0)),
'all' === n && ((o = a = Math.abs(e[1] - e[0])), (n = 0));
var s = kf(e, n);
e[n] += t;
var l = o || 0,
u = i.slice();
s.sign < 0 ? (u[0] += l) : (u[1] -= l), (e[n] = Pf(e[n], u));
h = kf(e, n);
null != o &&
(h.sign !== s.sign || h.span < o) &&
(e[1 - n] = e[n] + s.sign * o);
var h = kf(e, n);
return null != a && h.span > a && (e[1 - n] = e[n] + h.sign * a), e;
},
tk = d,
ek = Math.min,
ik = Math.max,
nk = Math.floor,
ok = Math.ceil,
ak = Go,
rk = Math.PI;
(Nf.prototype = {
type: 'parallel',
constructor: Nf,
_init: function (t, e, i) {
var n = t.dimensions,
o = t.parallelAxisIndex;
tk(
n,
function (t, i) {
var n = o[i],
a = e.getComponent('parallelAxis', n),
r = this._axesMap.set(
t,
new JL(t, Hl(a), [0, 0], a.get('type'), n),
),
s = 'category' === r.type;
(r.onBand = s && a.get('boundaryGap')),
(r.inverse = a.get('inverse')),
(a.axis = r),
(r.model = a),
(r.coordinateSystem = a.coordinateSystem = this);
},
this,
);
},
update: function (t, e) {
this._updateAxesFromSeries(this._model, t);
},
containPoint: function (t) {
var e = this._makeLayoutInfo(),
i = e.axisBase,
n = e.layoutBase,
o = e.pixelDimIndex,
a = t[1 - o],
r = t[o];
return (
a >= i && a <= i + e.axisLength && r >= n && r <= n + e.layoutLength
);
},
getModel: function () {
return this._model;
},
_updateAxesFromSeries: function (t, e) {
e.eachSeries(function (i) {
if (t.contains(i, e)) {
var n = i.getData();
tk(
this.dimensions,
function (t) {
var e = this._axesMap.get(t);
e.scale.unionExtentFromData(n, n.mapDimension(t)),
Wl(e.scale, e.model);
},
this,
);
}
}, this);
},
resize: function (t, e) {
(this._rect = ca(t.getBoxLayoutParams(), {
width: e.getWidth(),
height: e.getHeight(),
})),
this._layoutAxes();
},
getRect: function () {
return this._rect;
},
_makeLayoutInfo: function () {
var t,
e = this._model,
i = this._rect,
n = ['x', 'y'],
o = ['width', 'height'],
a = e.get('layout'),
r = 'horizontal' === a ? 0 : 1,
s = i[o[r]],
l = [0, s],
u = this.dimensions.length,
h = Of(e.get('axisExpandWidth'), l),
c = Of(e.get('axisExpandCount') || 0, [0, u]),
d =
e.get('axisExpandable') && u > 3 && u > c && c > 1 && h > 0 && s > 0,
f = e.get('axisExpandWindow');
f
? ((t = Of(f[1] - f[0], l)), (f[1] = f[0] + t))
: ((t = Of(h * (c - 1), l)),
((f = [h * (e.get('axisExpandCenter') || nk(u / 2)) - t / 2])[1] =
f[0] + t));
var p = (s - t) / (u - c);
p < 3 && (p = 0);
var g = [nk(ak(f[0] / h, 1)) + 1, ok(ak(f[1] / h, 1)) - 1],
m = (p / h) * f[0];
return {
layout: a,
pixelDimIndex: r,
layoutBase: i[n[r]],
layoutLength: s,
axisBase: i[n[1 - r]],
axisLength: i[o[1 - r]],
axisExpandable: d,
axisExpandWidth: h,
axisCollapseWidth: p,
axisExpandWindow: f,
axisCount: u,
winInnerIndices: g,
axisExpandWindow0Pos: m,
};
},
_layoutAxes: function () {
var t = this._rect,
e = this._axesMap,
i = this.dimensions,
n = this._makeLayoutInfo(),
o = n.layout;
e.each(function (t) {
var e = [0, n.axisLength],
i = t.inverse ? 1 : 0;
t.setExtent(e[i], e[1 - i]);
}),
tk(
i,
function (e, i) {
var a = (n.axisExpandable ? Rf : Ef)(i, n),
r = {
horizontal: { x: a.position, y: n.axisLength },
vertical: { x: 0, y: a.position },
},
s = { horizontal: rk / 2, vertical: 0 },
l = [r[o].x + t.x, r[o].y + t.y],
u = s[o],
h = xt();
Mt(h, h, u),
St(h, h, l),
(this._axesLayout[e] = {
position: l,
rotation: u,
transform: h,
axisNameAvailableWidth: a.axisNameAvailableWidth,
axisLabelShow: a.axisLabelShow,
nameTruncateMaxWidth: a.nameTruncateMaxWidth,
tickDirection: 1,
labelDirection: 1,
});
},
this,
);
},
getAxis: function (t) {
return this._axesMap.get(t);
},
dataToPoint: function (t, e) {
return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t), e);
},
eachActiveState: function (t, e, i, n) {
null == i && (i = 0), null == n && (n = t.count());
var o = this._axesMap,
a = this.dimensions,
r = [],
s = [];
d(a, function (e) {
r.push(t.mapDimension(e)), s.push(o.get(e).model);
});
for (var l = this.hasAxisBrushed(), u = i; u < n; u++) {
var h;
if (l) {
h = 'active';
for (var c = t.getValues(r, u), f = 0, p = a.length; f < p; f++)
if ('inactive' === s[f].getActiveState(c[f])) {
h = 'inactive';
break;
}
} else h = 'normal';
e(h, u);
}
},
hasAxisBrushed: function () {
for (
var t = this.dimensions, e = this._axesMap, i = !1, n = 0, o = t.length;
n < o;
n++
)
'normal' !== e.get(t[n]).model.getActiveState() && (i = !0);
return i;
},
axisCoordToPoint: function (t, e) {
return Do([t, 0], this._axesLayout[e].transform);
},
getAxisLayout: function (t) {
return i(this._axesLayout[t]);
},
getSlidedAxisExpandWindow: function (t) {
var e = this._makeLayoutInfo(),
i = e.pixelDimIndex,
n = e.axisExpandWindow.slice(),
o = n[1] - n[0],
a = [0, e.axisExpandWidth * (e.axisCount - 1)];
if (!this.containPoint(t))
return { behavior: 'none', axisExpandWindow: n };
var r,
s = t[i] - e.layoutBase - e.axisExpandWindow0Pos,
l = 'slide',
u = e.axisCollapseWidth,
h = this._model.get('axisExpandSlideTriggerArea'),
c = null != h[0];
if (u)
c && u && s < o * h[0]
? ((l = 'jump'), (r = s - o * h[2]))
: c && u && s > o * (1 - h[0])
? ((l = 'jump'), (r = s - o * (1 - h[2])))
: (r = s - o * h[1]) >= 0 && (r = s - o * (1 - h[1])) <= 0 && (r = 0),
(r *= e.axisExpandWidth / u) ? QL(r, n, a, 'all') : (l = 'none');
else {
o = n[1] - n[0];
((n = [ik(0, (a[1] * s) / o - o / 2)])[1] = ek(a[1], n[0] + o)),
(n[0] = n[1] - o);
}
return { axisExpandWindow: n, behavior: l };
},
}),
Fa.register('parallel', {
create: function (t, e) {
var i = [];
return (
t.eachComponent('parallel', function (n, o) {
var a = new Nf(n, t, e);
(a.name = 'parallel_' + o),
a.resize(n, e),
(n.coordinateSystem = a),
(a.model = n),
i.push(a);
}),
t.eachSeries(function (e) {
if ('parallel' === e.get('coordinateSystem')) {
var i = t.queryComponents({
mainType: 'parallel',
index: e.get('parallelIndex'),
id: e.get('parallelId'),
})[0];
e.coordinateSystem = i.coordinateSystem;
}
}),
i
);
},
});
var sk = lI.extend({
type: 'baseParallelAxis',
axis: null,
activeIntervals: [],
getAreaSelectStyle: function () {
return Qb([
['fill', 'color'],
['lineWidth', 'borderWidth'],
['stroke', 'borderColor'],
['width', 'width'],
['opacity', 'opacity'],
])(this.getModel('areaSelectStyle'));
},
setActiveIntervals: function (t) {
var e = (this.activeIntervals = i(t));
if (e) for (var n = e.length - 1; n >= 0; n--) Fo(e[n]);
},
getActiveState: function (t) {
var e = this.activeIntervals;
if (!e.length) return 'normal';
if (null == t || isNaN(t)) return 'inactive';
if (1 === e.length) {
var i = e[0];
if (i[0] <= t && t <= i[1]) return 'active';
} else
for (var n = 0, o = e.length; n < o; n++)
if (e[n][0] <= t && t <= e[n][1]) return 'active';
return 'inactive';
},
}),
lk = {
type: 'value',
dim: null,
areaSelectStyle: {
width: 20,
borderWidth: 1,
borderColor: 'rgba(160,197,232)',
color: 'rgba(160,197,232)',
opacity: 0.3,
},
realtime: !0,
z: 10,
};
n(sk.prototype, UA),
ED(
'parallel',
sk,
function (t, e) {
return e.type || (e.data ? 'category' : 'value');
},
lk,
),
lI.extend({
type: 'parallel',
dependencies: ['parallelAxis'],
coordinateSystem: null,
dimensions: null,
parallelAxisIndex: null,
layoutMode: 'box',
defaultOption: {
zlevel: 0,
z: 0,
left: 80,
top: 60,
right: 80,
bottom: 60,
layout: 'horizontal',
axisExpandable: !1,
axisExpandCenter: null,
axisExpandCount: 0,
axisExpandWidth: 50,
axisExpandRate: 17,
axisExpandDebounce: 50,
axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],
axisExpandTriggerOn: 'click',
parallelAxisDefault: null,
},
init: function () {
lI.prototype.init.apply(this, arguments), this.mergeOption({});
},
mergeOption: function (t) {
var e = this.option;
t && n(e, t, !0), this._initDimensions();
},
contains: function (t, e) {
var i = t.get('parallelIndex');
return null != i && e.getComponent('parallel', i) === this;
},
setAxisExpand: function (t) {
d(
[
'axisExpandable',
'axisExpandCenter',
'axisExpandCount',
'axisExpandWidth',
'axisExpandWindow',
],
function (e) {
t.hasOwnProperty(e) && (this.option[e] = t[e]);
},
this,
);
},
_initDimensions: function () {
var t = (this.dimensions = []),
e = (this.parallelAxisIndex = []);
d(
g(
this.dependentModels.parallelAxis,
function (t) {
return (t.get('parallelIndex') || 0) === this.componentIndex;
},
this,
),
function (i) {
t.push('dim' + i.get('dim')), e.push(i.componentIndex);
},
);
},
}),
Es({ type: 'axisAreaSelect', event: 'axisAreaSelected' }, function (t, e) {
e.eachComponent({ mainType: 'parallelAxis', query: t }, function (e) {
e.axis.model.setActiveIntervals(t.intervals);
});
}),
Es('parallelAxisExpand', function (t, e) {
e.eachComponent({ mainType: 'parallel', query: t }, function (e) {
e.setAxisExpand(t);
});
});
var uk = v,
hk = d,
ck = f,
dk = Math.min,
fk = Math.max,
pk = Math.pow,
gk = 1e4,
mk = 6,
vk = 6,
yk = 'globalPan',
xk = { w: [0, 0], e: [0, 1], n: [1, 0], s: [1, 1] },
_k = {
w: 'ew',
e: 'ew',
n: 'ns',
s: 'ns',
ne: 'nesw',
sw: 'nesw',
nw: 'nwse',
se: 'nwse',
},
wk = {
brushStyle: {
lineWidth: 2,
stroke: 'rgba(0,0,0,0.3)',
fill: 'rgba(0,0,0,0.1)',
},
transformable: !0,
brushMode: 'single',
removeOnClick: !1,
},
bk = 0;
(zf.prototype = {
constructor: zf,
enableBrush: function (t) {
return this._brushType && Vf(this), t.brushType && Bf(this, t), this;
},
setPanels: function (t) {
if (t && t.length) {
var e = (this._panels = {});
d(t, function (t) {
e[t.panelId] = i(t);
});
} else this._panels = null;
return this;
},
mount: function (t) {
(t = t || {}), (this._enableGlobalPan = t.enableGlobalPan);
var e = this.group;
return (
this._zr.add(e),
e.attr({
position: t.position || [0, 0],
rotation: t.rotation || 0,
scale: t.scale || [1, 1],
}),
(this._transform = e.getLocalTransform()),
this
);
},
eachCover: function (t, e) {
hk(this._covers, t, e);
},
updateCovers: function (t) {
function e(t, e) {
return (null != t.id ? t.id : a + e) + '-' + t.brushType;
}
function o(e, i) {
var n = t[e];
if (null != i && r[i] === u) s[e] = r[i];
else {
var o = (s[e] =
null != i ? ((r[i].__brushOption = n), r[i]) : Ff(l, Gf(l, n)));
Zf(l, o);
}
}
t = f(t, function (t) {
return n(i(wk), t, !0);
});
var a = '\0-brush-index-',
r = this._covers,
s = (this._covers = []),
l = this,
u = this._creatingCover;
return (
new Xs(
r,
t,
function (t, i) {
return e(t.__brushOption, i);
},
e,
)
.add(o)
.update(o)
.remove(function (t) {
r[t] !== u && l.group.remove(r[t]);
})
.execute(),
this
);
},
unmount: function () {
return this.enableBrush(!1), Yf(this), this._zr.remove(this.group), this;
},
dispose: function () {
this.unmount(), this.off();
},
}),
h(zf, fw);
var Sk = {
mousedown: function (t) {
if (this._dragging) mp.call(this, t);
else if (!t.target || !t.target.draggable) {
dp(t);
var e = this.group.transformCoordToLocal(t.offsetX, t.offsetY);
(this._creatingCover = null),
(this._creatingPanel = Xf(this, t, e)) &&
((this._dragging = !0), (this._track = [e.slice()]));
}
},
mousemove: function (t) {
var e = this.group.transformCoordToLocal(t.offsetX, t.offsetY);
if ((cp(this, t, e), this._dragging)) {
dp(t);
var i = pp(this, t, e, !1);
i && qf(this, i);
}
},
mouseup: mp,
},
Mk = {
lineX: vp(0),
lineY: vp(1),
rect: {
createCover: function (t, e) {
return Jf(
uk(
rp,
function (t) {
return t;
},
function (t) {
return t;
},
),
t,
e,
['w', 'e', 'n', 's', 'se', 'sw', 'ne', 'nw'],
);
},
getCreatingRange: function (t) {
var e = $f(t);
return np(e[1][0], e[1][1], e[0][0], e[0][1]);
},
updateCoverShape: function (t, e, i, n) {
Qf(t, e, i, n);
},
updateCommon: tp,
contain: fp,
},
polygon: {
createCover: function (t, e) {
var i = new tb();
return i.add(new gM({ name: 'main', style: ip(e), silent: !0 })), i;
},
getCreatingRange: function (t) {
return t;
},
endCreating: function (t, e) {
e.remove(e.childAt(0)),
e.add(
new pM({
name: 'main',
draggable: !0,
drift: uk(sp, t, e),
ondragend: uk(qf, t, { isEnd: !0 }),
}),
);
},
updateCoverShape: function (t, e, i, n) {
e.childAt(0).setShape({ points: up(t, e, i) });
},
updateCommon: tp,
contain: fp,
},
},
Ik = ['axisLine', 'axisTickLabel', 'axisName'],
Tk = Ws({
type: 'parallelAxis',
init: function (t, e) {
Tk.superApply(this, 'init', arguments),
(this._brushController = new zf(e.getZr())).on(
'brush',
m(this._onBrush, this),
);
},
render: function (t, e, i, n) {
if (!bp(t, e, n)) {
(this.axisModel = t), (this.api = i), this.group.removeAll();
var o = this._axisGroup;
if (
((this._axisGroup = new tb()),
this.group.add(this._axisGroup),
t.get('show'))
) {
var r = Mp(t, e),
s = r.coordinateSystem,
l = t.getAreaSelectStyle(),
u = l.width,
h = t.axis.dim,
c = a({ strokeContainThreshold: u }, s.getAxisLayout(h)),
f = new FD(t, c);
d(Ik, f.add, f),
this._axisGroup.add(f.getGroup()),
this._refreshBrushController(c, l, t, r, u, i);
var p = n && !1 === n.animation ? null : t;
Lo(o, this._axisGroup, p);
}
}
},
_refreshBrushController: function (t, e, i, n, o, a) {
var r = i.axis.getExtent(),
s = r[1] - r[0],
l = Math.min(30, 0.1 * Math.abs(s)),
u = de.create({ x: r[0], y: -o / 2, width: s, height: o });
(u.x -= l),
(u.width += 2 * l),
this._brushController
.mount({
enableGlobalPan: !0,
rotation: t.rotation,
position: t.position,
})
.setPanels([
{
panelId: 'pl',
clipPath: yp(u),
isTargetByCursor: _p(u, a, n),
getLinearBrushOtherExtent: xp(u, 0),
},
])
.enableBrush({
brushType: 'lineX',
brushStyle: e,
removeOnClick: !0,
})
.updateCovers(Sp(i));
},
_onBrush: function (t, e) {
var i = this.axisModel,
n = i.axis,
o = f(t, function (t) {
return [
n.coordToData(t.range[0], !0),
n.coordToData(t.range[1], !0),
];
});
(!i.option.realtime === e.isEnd || e.removeOnClick) &&
this.api.dispatchAction({
type: 'axisAreaSelect',
parallelAxisId: i.id,
intervals: o,
});
},
dispose: function () {
this._brushController.dispose();
},
});
Ws({
type: 'parallel',
render: function (t, e, i) {
(this._model = t),
(this._api = i),
this._handlers ||
((this._handlers = {}),
d(
Ak,
function (t, e) {
i.getZr().on(e, (this._handlers[e] = m(t, this)));
},
this,
)),
Nr(
this,
'_throttledDispatchExpand',
t.get('axisExpandRate'),
'fixRate',
);
},
dispose: function (t, e) {
d(this._handlers, function (t, i) {
e.getZr().off(i, t);
}),
(this._handlers = null);
},
_throttledDispatchExpand: function (t) {
this._dispatchExpand(t);
},
_dispatchExpand: function (t) {
t && this._api.dispatchAction(a({ type: 'parallelAxisExpand' }, t));
},
});
var Ak = {
mousedown: function (t) {
Ip(this, 'click') && (this._mouseDownPoint = [t.offsetX, t.offsetY]);
},
mouseup: function (t) {
var e = this._mouseDownPoint;
if (Ip(this, 'click') && e) {
var i = [t.offsetX, t.offsetY];
if (Math.pow(e[0] - i[0], 2) + Math.pow(e[1] - i[1], 2) > 5) return;
var n = this._model.coordinateSystem.getSlidedAxisExpandWindow([
t.offsetX,
t.offsetY,
]);
'none' !== n.behavior &&
this._dispatchExpand({ axisExpandWindow: n.axisExpandWindow });
}
this._mouseDownPoint = null;
},
mousemove: function (t) {
if (!this._mouseDownPoint && Ip(this, 'mousemove')) {
var e = this._model,
i = e.coordinateSystem.getSlidedAxisExpandWindow([
t.offsetX,
t.offsetY,
]),
n = i.behavior;
'jump' === n &&
this._throttledDispatchExpand.debounceNextCall(
e.get('axisExpandDebounce'),
),
this._throttledDispatchExpand(
'none' === n
? null
: {
axisExpandWindow: i.axisExpandWindow,
animation: 'jump' === n && null,
},
);
}
},
};
Ns(function (t) {
Cf(t), Lf(t);
}),
YI.extend({
type: 'series.parallel',
dependencies: ['parallel'],
visualColorAccessPath: 'lineStyle.color',
getInitialData: function (t, e) {
var i = this.getSource();
return Tp(i, this), ml(i, this);
},
getRawIndicesByActiveState: function (t) {
var e = this.coordinateSystem,
i = this.getData(),
n = [];
return (
e.eachActiveState(i, function (e, o) {
t === e && n.push(i.getRawIndex(o));
}),
n
);
},
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: 'parallel',
parallelIndex: 0,
label: { show: !1 },
inactiveOpacity: 0.05,
activeOpacity: 1,
lineStyle: { width: 1, opacity: 0.45, type: 'solid' },
emphasis: { label: { show: !1 } },
progressive: 500,
smooth: !1,
animationEasing: 'linear',
},
});
var Dk = 0.3,
Ck =
(Ar.extend({
type: 'parallel',
init: function () {
(this._dataGroup = new tb()),
this.group.add(this._dataGroup),
this._data,
this._initialized;
},
render: function (t, e, i, n) {
var o = this._dataGroup,
a = t.getData(),
r = this._data,
s = t.coordinateSystem,
l = s.dimensions,
u = kp(t);
if (
(a
.diff(r)
.add(function (t) {
Pp(Lp(a, o, t, l, s), a, t, u);
})
.update(function (e, i) {
var o = r.getItemGraphicEl(i),
h = Cp(a, e, l, s);
a.setItemGraphicEl(e, o),
Io(
o,
{ shape: { points: h } },
n && !1 === n.animation ? null : t,
e,
),
Pp(o, a, e, u);
})
.remove(function (t) {
var e = r.getItemGraphicEl(t);
o.remove(e);
})
.execute(),
!this._initialized)
) {
this._initialized = !0;
var h = Dp(s, t, function () {
setTimeout(function () {
o.removeClipPath();
});
});
o.setClipPath(h);
}
this._data = a;
},
incrementalPrepareRender: function (t, e, i) {
(this._initialized = !0),
(this._data = null),
this._dataGroup.removeAll();
},
incrementalRender: function (t, e, i) {
for (
var n = e.getData(),
o = e.coordinateSystem,
a = o.dimensions,
r = kp(e),
s = t.start;
s < t.end;
s++
) {
var l = Lp(n, this._dataGroup, s, a, o);
(l.incremental = !0), Pp(l, n, s, r);
}
},
dispose: function () {},
remove: function () {
this._dataGroup && this._dataGroup.removeAll(), (this._data = null);
},
}),
['lineStyle', 'normal', 'opacity']);
Bs({
seriesType: 'parallel',
reset: function (t, e, i) {
var n = t.getModel('itemStyle'),
o = t.getModel('lineStyle'),
a = e.get('color'),
r = o.get('color') || n.get('color') || a[t.seriesIndex % a.length],
s = t.get('inactiveOpacity'),
l = t.get('activeOpacity'),
u = t.getModel('lineStyle').getLineStyle(),
h = t.coordinateSystem,
c = t.getData(),
d = { normal: u.opacity, active: l, inactive: s };
return (
c.setVisual('color', r),
{
progress: function (t, e) {
h.eachActiveState(
e,
function (t, i) {
var n = d[t];
if ('normal' === t && e.hasItemOption) {
var o = e.getItemModel(i).get(Ck, !0);
null != o && (n = o);
}
e.setItemVisual(i, 'opacity', n);
},
t.start,
t.end,
);
},
}
);
},
});
var Lk = YI.extend({
type: 'series.sankey',
layoutInfo: null,
getInitialData: function (t) {
var e = t.edges || t.links,
i = t.data || t.nodes;
if (i && e) return DL(i, e, this, !0).data;
},
setNodePosition: function (t, e) {
var i = this.option.data[t];
(i.localX = e[0]), (i.localY = e[1]);
},
getGraph: function () {
return this.getData().graph;
},
getEdgeData: function () {
return this.getGraph().edgeData;
},
formatTooltip: function (t, e, i) {
if ('edge' === i) {
var n = this.getDataParams(t, i),
o = n.data,
a = o.source + ' -- ' + o.target;
return n.value && (a += ' : ' + n.value), ia(a);
}
return Lk.superCall(this, 'formatTooltip', t, e);
},
optionUpdated: function () {
var t = this.option;
!0 === t.focusNodeAdjacency && (t.focusNodeAdjacency = 'allEdges');
},
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: 'view',
layout: null,
left: '5%',
top: '5%',
right: '20%',
bottom: '5%',
orient: 'horizontal',
nodeWidth: 20,
nodeGap: 8,
draggable: !0,
focusNodeAdjacency: !1,
layoutIterations: 32,
label: { show: !0, position: 'right', color: '#000', fontSize: 12 },
itemStyle: { borderWidth: 1, borderColor: '#333' },
lineStyle: { color: '#314656', opacity: 0.2, curveness: 0.5 },
emphasis: { label: { show: !0 }, lineStyle: { opacity: 0.6 } },
animationEasing: 'linear',
animationDuration: 1e3,
},
}),
kk = ['itemStyle', 'opacity'],
Pk = ['lineStyle', 'opacity'],
Nk = Un({
shape: {
x1: 0,
y1: 0,
x2: 0,
y2: 0,
cpx1: 0,
cpy1: 0,
cpx2: 0,
cpy2: 0,
extent: 0,
orient: '',
},
buildPath: function (t, e) {
var i = e.extent;
'vertical' === e.orient
? (t.moveTo(e.x1, e.y1),
t.bezierCurveTo(e.cpx1, e.cpy1, e.cpx2, e.cpy2, e.x2, e.y2),
t.lineTo(e.x2 + i, e.y2),
t.bezierCurveTo(
e.cpx2 + i,
e.cpy2,
e.cpx1 + i,
e.cpy1,
e.x1 + i,
e.y1,
))
: (t.moveTo(e.x1, e.y1),
t.bezierCurveTo(e.cpx1, e.cpy1, e.cpx2, e.cpy2, e.x2, e.y2),
t.lineTo(e.x2, e.y2 + i),
t.bezierCurveTo(
e.cpx2,
e.cpy2 + i,
e.cpx1,
e.cpy1 + i,
e.x1,
e.y1 + i,
)),
t.closePath();
},
});
Zs({
type: 'sankey',
_model: null,
_focusAdjacencyDisabled: !1,
render: function (t, e, i) {
var n = this,
o = t.getGraph(),
a = this.group,
r = t.layoutInfo,
s = r.width,
l = r.height,
u = t.getData(),
h = t.getData('edge'),
c = t.get('orient');
(this._model = t),
a.removeAll(),
a.attr('position', [r.x, r.y]),
o.eachEdge(function (e) {
var i = new Nk();
(i.dataIndex = e.dataIndex),
(i.seriesIndex = t.seriesIndex),
(i.dataType = 'edge');
var n,
o,
r,
u,
d,
f,
p,
g,
m = e.getModel('lineStyle'),
v = m.get('curveness'),
y = e.node1.getLayout(),
x = e.node1.getModel(),
_ = x.get('localX'),
w = x.get('localY'),
b = e.node2.getLayout(),
S = e.node2.getModel(),
M = S.get('localX'),
I = S.get('localY'),
T = e.getLayout();
switch (
((i.shape.extent = Math.max(1, T.dy)),
(i.shape.orient = c),
'vertical' === c
? ((n = (null != _ ? _ * s : y.x) + T.sy),
(o = (null != w ? w * l : y.y) + y.dy),
(r = (null != M ? M * s : b.x) + T.ty),
(d = n),
(f = o * (1 - v) + (u = null != I ? I * l : b.y) * v),
(p = r),
(g = o * v + u * (1 - v)))
: ((n = (null != _ ? _ * s : y.x) + y.dx),
(o = (null != w ? w * l : y.y) + T.sy),
(d = n * (1 - v) + (r = null != M ? M * s : b.x) * v),
(f = o),
(p = n * v + r * (1 - v)),
(g = u = (null != I ? I * l : b.y) + T.ty)),
i.setShape({
x1: n,
y1: o,
x2: r,
y2: u,
cpx1: d,
cpy1: f,
cpx2: p,
cpy2: g,
}),
i.setStyle(m.getItemStyle()),
i.style.fill)
) {
case 'source':
i.style.fill = e.node1.getVisual('color');
break;
case 'target':
i.style.fill = e.node2.getVisual('color');
}
fo(i, e.getModel('emphasis.lineStyle').getItemStyle()),
a.add(i),
h.setItemGraphicEl(e.dataIndex, i);
}),
o.eachNode(function (e) {
var i = e.getLayout(),
n = e.getModel(),
o = n.get('localX'),
r = n.get('localY'),
h = n.getModel('label'),
c = n.getModel('emphasis.label'),
d = new yM({
shape: {
x: null != o ? o * s : i.x,
y: null != r ? r * l : i.y,
width: i.dx,
height: i.dy,
},
style: n.getModel('itemStyle').getItemStyle(),
}),
f = e.getModel('emphasis.itemStyle').getItemStyle();
go(d.style, f, h, c, {
labelFetcher: t,
labelDataIndex: e.dataIndex,
defaultText: e.id,
isRectText: !0,
}),
d.setStyle('fill', e.getVisual('color')),
fo(d, f),
a.add(d),
u.setItemGraphicEl(e.dataIndex, d),
(d.dataType = 'node');
}),
u.eachItemGraphicEl(function (e, o) {
var a = u.getItemModel(o);
a.get('draggable') &&
((e.drift = function (e, a) {
(n._focusAdjacencyDisabled = !0),
(this.shape.x += e),
(this.shape.y += a),
this.dirty(),
i.dispatchAction({
type: 'dragNode',
seriesId: t.id,
dataIndex: u.getRawIndex(o),
localX: this.shape.x / s,
localY: this.shape.y / l,
});
}),
(e.ondragend = function () {
n._focusAdjacencyDisabled = !1;
}),
(e.draggable = !0),
(e.cursor = 'move')),
a.get('focusNodeAdjacency') &&
(e.off('mouseover').on('mouseover', function () {
n._focusAdjacencyDisabled ||
i.dispatchAction({
type: 'focusNodeAdjacency',
seriesId: t.id,
dataIndex: e.dataIndex,
});
}),
e.off('mouseout').on('mouseout', function () {
n._focusAdjacencyDisabled ||
i.dispatchAction({
type: 'unfocusNodeAdjacency',
seriesId: t.id,
});
}));
}),
h.eachItemGraphicEl(function (e, o) {
h.getItemModel(o).get('focusNodeAdjacency') &&
(e.off('mouseover').on('mouseover', function () {
n._focusAdjacencyDisabled ||
i.dispatchAction({
type: 'focusNodeAdjacency',
seriesId: t.id,
edgeDataIndex: e.dataIndex,
});
}),
e.off('mouseout').on('mouseout', function () {
n._focusAdjacencyDisabled ||
i.dispatchAction({
type: 'unfocusNodeAdjacency',
seriesId: t.id,
});
}));
}),
!this._data &&
t.get('animation') &&
a.setClipPath(
zp(a.getBoundingRect(), t, function () {
a.removeClipPath();
}),
),
(this._data = t.getData());
},
dispose: function () {},
focusNodeAdjacency: function (t, e, i, n) {
var o = this._model.getData(),
a = o.graph,
r = n.dataIndex,
s = o.getItemModel(r),
l = n.edgeDataIndex;
if (null != r || null != l) {
var u = a.getNodeByIndex(r),
h = a.getEdgeByIndex(l);
if (
(a.eachNode(function (t) {
Ep(t, kk, 0.1);
}),
a.eachEdge(function (t) {
Ep(t, Pk, 0.1);
}),
u)
) {
Rp(u, kk);
var c = s.get('focusNodeAdjacency');
'outEdges' === c
? d(u.outEdges, function (t) {
t.dataIndex < 0 || (Rp(t, Pk), Rp(t.node2, kk));
})
: 'inEdges' === c
? d(u.inEdges, function (t) {
t.dataIndex < 0 || (Rp(t, Pk), Rp(t.node1, kk));
})
: 'allEdges' === c &&
d(u.edges, function (t) {
t.dataIndex < 0 ||
(Rp(t, Pk), Rp(t.node1, kk), Rp(t.node2, kk));
});
}
h && (Rp(h, Pk), Rp(h.node1, kk), Rp(h.node2, kk));
}
},
unfocusNodeAdjacency: function (t, e, i, n) {
var o = this._model.getGraph();
o.eachNode(function (t) {
Ep(t, kk);
}),
o.eachEdge(function (t) {
Ep(t, Pk);
});
},
}),
Es({ type: 'dragNode', event: 'dragNode', update: 'update' }, function (
t,
e,
) {
e.eachComponent(
{ mainType: 'series', subType: 'sankey', query: t },
function (e) {
e.setNodePosition(t.dataIndex, [t.localX, t.localY]);
},
);
});
zs(function (t, e, i) {
t.eachSeriesByType('sankey', function (t) {
var i = t.get('nodeWidth'),
n = t.get('nodeGap'),
o = Bp(t, e);
t.layoutInfo = o;
var a = o.width,
r = o.height,
s = t.getGraph(),
l = s.nodes,
u = s.edges;
Gp(l),
Vp(
l,
u,
i,
n,
a,
r,
0 !==
g(l, function (t) {
return 0 === t.getLayout().value;
}).length
? 0
: t.get('layoutIterations'),
t.get('orient'),
);
});
}),
Bs(function (t, e) {
t.eachSeriesByType('sankey', function (t) {
var e = t.getGraph().nodes;
if (e.length) {
var i = 1 / 0,
n = -1 / 0;
d(e, function (t) {
var e = t.getLayout().value;
e < i && (i = e), e > n && (n = e);
}),
d(e, function (e) {
var o = new hL({
type: 'color',
mappingMethod: 'linear',
dataExtent: [i, n],
visual: t.get('color'),
}).mapValueToVisual(e.getLayout().value);
e.setVisual('color', o);
var a = e.getModel().get('itemStyle.color');
null != a && e.setVisual('color', a);
});
}
});
});
var Ok = {
_baseAxisDim: null,
getInitialData: function (t, e) {
var i,
n,
o = e.getComponent('xAxis', this.get('xAxisIndex')),
a = e.getComponent('yAxis', this.get('yAxisIndex')),
r = o.get('type'),
s = a.get('type');
'category' === r
? ((t.layout = 'horizontal'), (i = o.getOrdinalMeta()), (n = !0))
: 'category' === s
? ((t.layout = 'vertical'), (i = a.getOrdinalMeta()), (n = !0))
: (t.layout = t.layout || 'horizontal');
var l = ['x', 'y'],
u = 'horizontal' === t.layout ? 0 : 1,
h = (this._baseAxisDim = l[u]),
c = l[1 - u],
f = [o, a],
p = f[u].get('type'),
g = f[1 - u].get('type'),
m = t.data;
if (m && n) {
var v = [];
d(m, function (t, e) {
var i;
t.value && y(t.value)
? ((i = t.value.slice()), t.value.unshift(e))
: y(t)
? ((i = t.slice()), t.unshift(e))
: (i = t),
v.push(i);
}),
(t.data = v);
}
var x = this.defaultValueDimensions;
return oC(this, {
coordDimensions: [
{
name: h,
type: qs(p),
ordinalMeta: i,
otherDims: { tooltip: !1, itemName: 0 },
dimsDef: ['base'],
},
{ name: c, type: qs(g), dimsDef: x.slice() },
],
dimensionsCount: x.length + 1,
});
},
getBaseAxis: function () {
var t = this._baseAxisDim;
return this.ecModel.getComponent(t + 'Axis', this.get(t + 'AxisIndex'))
.axis;
},
};
h(
YI.extend({
type: 'series.boxplot',
dependencies: ['xAxis', 'yAxis', 'grid'],
defaultValueDimensions: [
{ name: 'min', defaultTooltip: !0 },
{ name: 'Q1', defaultTooltip: !0 },
{ name: 'median', defaultTooltip: !0 },
{ name: 'Q3', defaultTooltip: !0 },
{ name: 'max', defaultTooltip: !0 },
],
dimensions: null,
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: 'cartesian2d',
legendHoverLink: !0,
hoverAnimation: !0,
layout: null,
boxWidth: [7, 50],
itemStyle: { color: '#fff', borderWidth: 1 },
emphasis: {
itemStyle: {
borderWidth: 2,
shadowBlur: 5,
shadowOffsetX: 2,
shadowOffsetY: 2,
shadowColor: 'rgba(0,0,0,0.4)',
},
},
animationEasing: 'elasticOut',
animationDuration: 800,
},
}),
Ok,
!0,
);
var Ek = ['itemStyle'],
Rk = ['emphasis', 'itemStyle'],
zk =
(Ar.extend({
type: 'boxplot',
render: function (t, e, i) {
var n = t.getData(),
o = this.group,
a = this._data;
this._data || o.removeAll();
var r = 'horizontal' === t.get('layout') ? 1 : 0;
n
.diff(a)
.add(function (t) {
if (n.hasValue(t)) {
var e = ig(n.getItemLayout(t), n, t, r, !0);
n.setItemGraphicEl(t, e), o.add(e);
}
})
.update(function (t, e) {
var i = a.getItemGraphicEl(e);
if (n.hasValue(t)) {
var s = n.getItemLayout(t);
i ? ng(s, i, n, t) : (i = ig(s, n, t, r)),
o.add(i),
n.setItemGraphicEl(t, i);
} else o.remove(i);
})
.remove(function (t) {
var e = a.getItemGraphicEl(t);
e && o.remove(e);
})
.execute(),
(this._data = n);
},
remove: function (t) {
var e = this.group,
i = this._data;
(this._data = null),
i &&
i.eachItemGraphicEl(function (t) {
t && e.remove(t);
});
},
dispose: B,
}),
Pn.extend({
type: 'boxplotBoxPath',
shape: {},
buildPath: function (t, e) {
var i = e.points,
n = 0;
for (t.moveTo(i[n][0], i[n][1]), n++; n < 4; n++)
t.lineTo(i[n][0], i[n][1]);
for (t.closePath(); n < i.length; n++)
t.moveTo(i[n][0], i[n][1]), n++, t.lineTo(i[n][0], i[n][1]);
},
})),
Bk = ['itemStyle', 'borderColor'],
Vk = d;
Bs(function (t, e) {
var i = t.get('color');
t.eachRawSeriesByType('boxplot', function (e) {
var n = i[e.seriesIndex % i.length],
o = e.getData();
o.setVisual({ legendSymbol: 'roundRect', color: e.get(Bk) || n }),
t.isSeriesFiltered(e) ||
o.each(function (t) {
var e = o.getItemModel(t);
o.setItemVisual(t, { color: e.get(Bk, !0) });
});
});
}),
zs(function (t) {
var e = ag(t);
Vk(e, function (t) {
var e = t.seriesModels;
e.length &&
(rg(t),
Vk(e, function (e, i) {
sg(e, t.boxOffsetList[i], t.boxWidthList[i]);
}));
});
}),
h(
YI.extend({
type: 'series.candlestick',
dependencies: ['xAxis', 'yAxis', 'grid'],
defaultValueDimensions: [
{ name: 'open', defaultTooltip: !0 },
{ name: 'close', defaultTooltip: !0 },
{ name: 'lowest', defaultTooltip: !0 },
{ name: 'highest', defaultTooltip: !0 },
],
dimensions: null,
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: 'cartesian2d',
legendHoverLink: !0,
hoverAnimation: !0,
layout: null,
itemStyle: {
color: '#c23531',
color0: '#314656',
borderWidth: 1,
borderColor: '#c23531',
borderColor0: '#314656',
},
emphasis: { itemStyle: { borderWidth: 2 } },
barMaxWidth: null,
barMinWidth: null,
barWidth: null,
large: !0,
largeThreshold: 600,
progressive: 3e3,
progressiveThreshold: 1e4,
progressiveChunkMode: 'mod',
animationUpdate: !1,
animationEasing: 'linear',
animationDuration: 300,
},
getShadowDim: function () {
return 'open';
},
brushSelector: function (t, e, i) {
var n = e.getItemLayout(t);
return n && i.rect(n.brushRect);
},
}),
Ok,
!0,
);
var Gk = ['itemStyle'],
Fk = ['emphasis', 'itemStyle'],
Wk = ['color', 'color0', 'borderColor', 'borderColor0'],
Hk =
(Ar.extend({
type: 'candlestick',
render: function (t, e, i) {
this._updateDrawMode(t),
this._isLargeDraw ? this._renderLarge(t) : this._renderNormal(t);
},
incrementalPrepareRender: function (t, e, i) {
this._clear(), this._updateDrawMode(t);
},
incrementalRender: function (t, e, i, n) {
this._isLargeDraw
? this._incrementalRenderLarge(t, e)
: this._incrementalRenderNormal(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 = t.getData(),
i = this._data,
n = this.group,
o = e.getLayout('isSimpleBox');
this._data || n.removeAll(),
e
.diff(i)
.add(function (i) {
if (e.hasValue(i)) {
var a,
r = e.getItemLayout(i);
To((a = lg(r, 0, !0)), { shape: { points: r.ends } }, t, i),
ug(a, e, i, o),
n.add(a),
e.setItemGraphicEl(i, a);
}
})
.update(function (a, r) {
var s = i.getItemGraphicEl(r);
if (e.hasValue(a)) {
var l = e.getItemLayout(a);
s ? Io(s, { shape: { points: l.ends } }, t, a) : (s = lg(l)),
ug(s, e, a, o),
n.add(s),
e.setItemGraphicEl(a, s);
} else n.remove(s);
})
.remove(function (t) {
var e = i.getItemGraphicEl(t);
e && n.remove(e);
})
.execute(),
(this._data = e);
},
_renderLarge: function (t) {
this._clear(), cg(t, this.group);
},
_incrementalRenderNormal: function (t, e) {
for (
var i, n = e.getData(), o = n.getLayout('isSimpleBox');
null != (i = t.next());
) {
var a;
ug((a = lg(n.getItemLayout(i))), n, i, o),
(a.incremental = !0),
this.group.add(a);
}
},
_incrementalRenderLarge: function (t, e) {
cg(e, this.group, !0);
},
remove: function (t) {
this._clear();
},
_clear: function () {
this.group.removeAll(), (this._data = null);
},
dispose: B,
}),
Pn.extend({
type: 'normalCandlestickBox',
shape: {},
buildPath: function (t, e) {
var i = e.points;
this.__simpleBox
? (t.moveTo(i[4][0], i[4][1]), t.lineTo(i[6][0], i[6][1]))
: (t.moveTo(i[0][0], i[0][1]),
t.lineTo(i[1][0], i[1][1]),
t.lineTo(i[2][0], i[2][1]),
t.lineTo(i[3][0], i[3][1]),
t.closePath(),
t.moveTo(i[4][0], i[4][1]),
t.lineTo(i[5][0], i[5][1]),
t.moveTo(i[6][0], i[6][1]),
t.lineTo(i[7][0], i[7][1]));
},
})),
Zk = Pn.extend({
type: 'largeCandlestickBox',
shape: {},
buildPath: function (t, e) {
for (var i = e.points, n = 0; n < i.length; )
if (this.__sign === i[n++]) {
var o = i[n++];
t.moveTo(o, i[n++]), t.lineTo(o, i[n++]);
} else n += 3;
},
}),
Uk = ['itemStyle', 'borderColor'],
Xk = ['itemStyle', 'borderColor0'],
jk = ['itemStyle', 'color'],
Yk = ['itemStyle', 'color0'],
qk = {
seriesType: 'candlestick',
plan: $I(),
performRawSeries: !0,
reset: function (t, e) {
function i(t, e) {
return e.get(t > 0 ? jk : Yk);
}
function n(t, e) {
return e.get(t > 0 ? Uk : Xk);
}
var o = t.getData(),
a = t.pipelineContext.large;
if (
(o.setVisual({
legendSymbol: 'roundRect',
colorP: i(1, t),
colorN: i(-1, t),
borderColorP: n(1, t),
borderColorN: n(-1, t),
}),
!e.isSeriesFiltered(t))
)
return (
!a && {
progress: function (t, e) {
for (var o; null != (o = t.next()); ) {
var a = e.getItemModel(o),
r = e.getItemLayout(o).sign;
e.setItemVisual(o, { color: i(r, a), borderColor: n(r, a) });
}
},
}
);
},
},
Kk = 'undefined' != typeof Float32Array ? Float32Array : Array,
$k = {
seriesType: 'candlestick',
plan: $I(),
reset: function (t) {
var e = t.coordinateSystem,
i = t.getData(),
n = pg(t, i),
o = 0,
a = 1,
r = ['x', 'y'],
s = i.mapDimension(r[o]),
l = i.mapDimension(r[a], !0),
u = l[0],
h = l[1],
c = l[2],
d = l[3];
if (
(i.setLayout({ candleWidth: n, isSimpleBox: n <= 1.3 }),
!(null == s || l.length < 4))
)
return {
progress: t.pipelineContext.large
? function (t, i) {
for (
var n, r, l = new Kk(5 * t.count), f = 0, p = [], g = [];
null != (r = t.next());
) {
var m = i.get(s, r),
v = i.get(u, r),
y = i.get(h, r),
x = i.get(c, r),
_ = i.get(d, r);
isNaN(m) || isNaN(x) || isNaN(_)
? ((l[f++] = NaN), (f += 4))
: ((l[f++] = fg(i, r, v, y, h)),
(p[o] = m),
(p[a] = x),
(n = e.dataToPoint(p, null, g)),
(l[f++] = n ? n[0] : NaN),
(l[f++] = n ? n[1] : NaN),
(p[a] = _),
(n = e.dataToPoint(p, null, g)),
(l[f++] = n ? n[1] : NaN));
}
i.setLayout('largePoints', l);
}
: function (t, i) {
function r(t, i) {
var n = [];
return (
(n[o] = i),
(n[a] = t),
isNaN(i) || isNaN(t) ? [NaN, NaN] : e.dataToPoint(n)
);
}
function l(t, e, i) {
var a = e.slice(),
r = e.slice();
(a[o] = Jn(a[o] + n / 2, 1, !1)),
(r[o] = Jn(r[o] - n / 2, 1, !0)),
i ? t.push(a, r) : t.push(r, a);
}
function f(t) {
return (t[o] = Jn(t[o], 1)), t;
}
for (var p; null != (p = t.next()); ) {
var g = i.get(s, p),
m = i.get(u, p),
v = i.get(h, p),
y = i.get(c, p),
x = i.get(d, p),
_ = Math.min(m, v),
w = Math.max(m, v),
b = r(_, g),
S = r(w, g),
M = r(y, g),
I = r(x, g),
T = [];
l(T, S, 0),
l(T, b, 1),
T.push(f(I), f(S), f(M), f(b)),
i.setItemLayout(p, {
sign: fg(i, p, m, v, h),
initBaseline: m > v ? S[a] : b[a],
ends: T,
brushRect: (function (t, e, i) {
var s = r(t, i),
l = r(e, i);
return (
(s[o] -= n / 2),
(l[o] -= n / 2),
{
x: s[0],
y: s[1],
width: a ? n : l[0] - s[0],
height: a ? l[1] - s[1] : n,
}
);
})(y, x, g),
});
}
},
};
},
};
Ns(function (t) {
t &&
y(t.series) &&
d(t.series, function (t) {
w(t) && 'k' === t.type && (t.type = 'candlestick');
});
}),
Bs(qk),
zs($k),
YI.extend({
type: 'series.effectScatter',
dependencies: ['grid', 'polar'],
getInitialData: function (t, e) {
return ml(this.getSource(), this);
},
brushSelector: 'point',
defaultOption: {
coordinateSystem: 'cartesian2d',
zlevel: 0,
z: 2,
legendHoverLink: !0,
effectType: 'ripple',
progressive: 0,
showEffectOn: 'render',
rippleEffect: { period: 4, scale: 2.5, brushType: 'fill' },
symbolSize: 10,
},
});
var Jk = vg.prototype;
(Jk.stopEffectAnimation = function () {
this.childAt(1).removeAll();
}),
(Jk.startEffectAnimation = function (t) {
for (
var e = t.symbolType, i = t.color, n = this.childAt(1), o = 0;
o < 3;
o++
) {
var a = Jl(e, -1, -1, 2, 2, i);
a.attr({
style: { strokeNoScale: !0 },
z2: 99,
silent: !0,
scale: [0.5, 0.5],
});
var r = (-o / 3) * t.period + t.effectOffset;
a
.animate('', !0)
.when(t.period, { scale: [t.rippleScale / 2, t.rippleScale / 2] })
.delay(r)
.start(),
a.animateStyle(!0).when(t.period, { opacity: 0 }).delay(r).start(),
n.add(a);
}
mg(n, t);
}),
(Jk.updateEffectAnimation = function (t) {
for (
var e = this._effectCfg,
i = this.childAt(1),
n = ['symbolType', 'period', 'rippleScale'],
o = 0;
o < n.length;
o++
) {
var a = n[o];
if (e[a] !== t[a])
return this.stopEffectAnimation(), void this.startEffectAnimation(t);
}
mg(i, t);
}),
(Jk.highlight = function () {
this.trigger('emphasis');
}),
(Jk.downplay = function () {
this.trigger('normal');
}),
(Jk.updateData = function (t, e) {
var i = t.hostModel;
this.childAt(0).updateData(t, e);
var n = this.childAt(1),
o = t.getItemModel(e),
a = t.getItemVisual(e, 'symbol'),
r = gg(t.getItemVisual(e, 'symbolSize')),
s = t.getItemVisual(e, 'color');
n.attr('scale', r),
n.traverse(function (t) {
t.attr({ fill: s });
});
var l = o.getShallow('symbolOffset');
if (l) {
var u = n.position;
(u[0] = Vo(l[0], r[0])), (u[1] = Vo(l[1], r[1]));
}
n.rotation = ((o.getShallow('symbolRotate') || 0) * Math.PI) / 180 || 0;
var h = {};
if (
((h.showEffectOn = i.get('showEffectOn')),
(h.rippleScale = o.get('rippleEffect.scale')),
(h.brushType = o.get('rippleEffect.brushType')),
(h.period = 1e3 * o.get('rippleEffect.period')),
(h.effectOffset = e / t.count()),
(h.z = o.getShallow('z') || 0),
(h.zlevel = o.getShallow('zlevel') || 0),
(h.symbolType = a),
(h.color = s),
this.off('mouseover').off('mouseout').off('emphasis').off('normal'),
'render' === h.showEffectOn)
)
this._effectCfg
? this.updateEffectAnimation(h)
: this.startEffectAnimation(h),
(this._effectCfg = h);
else {
(this._effectCfg = null), this.stopEffectAnimation();
var c = this.childAt(0),
d = function () {
c.highlight(),
'render' !== h.showEffectOn && this.startEffectAnimation(h);
},
f = function () {
c.downplay(),
'render' !== h.showEffectOn && this.stopEffectAnimation();
};
this.on('mouseover', d, this)
.on('mouseout', f, this)
.on('emphasis', d, this)
.on('normal', f, this);
}
this._effectCfg = h;
}),
(Jk.fadeOut = function (t) {
this.off('mouseover').off('mouseout').off('emphasis').off('normal'),
t && t();
}),
u(vg, tb),
Zs({
type: 'effectScatter',
init: function () {
this._symbolDraw = new Du(vg);
},
render: function (t, e, i) {
var n = t.getData(),
o = this._symbolDraw;
o.updateData(n), this.group.add(o.group);
},
updateTransform: function (t, e, i) {
var n = t.getData();
this.group.dirty();
var o = AD().reset(t);
o.progress && o.progress({ start: 0, end: n.count() }, n),
this._symbolDraw.updateLayout(n);
},
_updateGroupTransform: function (t) {
var e = t.coordinateSystem;
e &&
e.getRoamTransform &&
((this.group.transform = At(e.getRoamTransform())),
this.group.decomposeTransform());
},
remove: function (t, e) {
this._symbolDraw && this._symbolDraw.remove(e);
},
dispose: function () {},
}),
Bs(TD('effectScatter', 'circle')),
zs(AD('effectScatter'));
var Qk = 'undefined' == typeof Uint32Array ? Array : Uint32Array,
tP = 'undefined' == typeof Float64Array ? Array : Float64Array,
eP = YI.extend({
type: 'series.lines',
dependencies: ['grid', 'polar'],
visualColorAccessPath: 'lineStyle.color',
init: function (t) {
(t.data = t.data || []), yg(t);
var e = this._processFlatCoordsArray(t.data);
(this._flatCoords = e.flatCoords),
(this._flatCoordsOffset = e.flatCoordsOffset),
e.flatCoords && (t.data = new Float32Array(e.count)),
eP.superApply(this, 'init', arguments);
},
mergeOption: function (t) {
if (((t.data = t.data || []), yg(t), t.data)) {
var e = this._processFlatCoordsArray(t.data);
(this._flatCoords = e.flatCoords),
(this._flatCoordsOffset = e.flatCoordsOffset),
e.flatCoords && (t.data = new Float32Array(e.count));
}
eP.superApply(this, 'mergeOption', arguments);
},
appendData: function (t) {
var e = this._processFlatCoordsArray(t.data);
e.flatCoords &&
(this._flatCoords
? ((this._flatCoords = z(this._flatCoords, e.flatCoords)),
(this._flatCoordsOffset = z(
this._flatCoordsOffset,
e.flatCoordsOffset,
)))
: ((this._flatCoords = e.flatCoords),
(this._flatCoordsOffset = e.flatCoordsOffset)),
(t.data = new Float32Array(e.count))),
this.getRawData().appendData(t.data);
},
_getCoordsFromItemModel: function (t) {
var e = this.getData().getItemModel(t);
return e.option instanceof Array ? e.option : e.getShallow('coords');
},
getLineCoordsCount: function (t) {
return this._flatCoordsOffset
? this._flatCoordsOffset[2 * t + 1]
: this._getCoordsFromItemModel(t).length;
},
getLineCoords: function (t, e) {
if (this._flatCoordsOffset) {
for (
var i = this._flatCoordsOffset[2 * t],
n = this._flatCoordsOffset[2 * t + 1],
o = 0;
o < n;
o++
)
(e[o] = e[o] || []),
(e[o][0] = this._flatCoords[i + 2 * o]),
(e[o][1] = this._flatCoords[i + 2 * o + 1]);
return n;
}
for (var a = this._getCoordsFromItemModel(t), o = 0; o < a.length; o++)
(e[o] = e[o] || []), (e[o][0] = a[o][0]), (e[o][1] = a[o][1]);
return a.length;
},
_processFlatCoordsArray: function (t) {
var e = 0;
if (
(this._flatCoords && (e = this._flatCoords.length),
'number' == typeof t[0])
) {
for (
var i = t.length,
n = new Qk(i),
o = new tP(i),
a = 0,
r = 0,
s = 0,
l = 0;
l < i;
) {
s++;
var u = t[l++];
(n[r++] = a + e), (n[r++] = u);
for (var h = 0; h < u; h++) {
var c = t[l++],
d = t[l++];
(o[a++] = c), (o[a++] = d);
}
}
return {
flatCoordsOffset: new Uint32Array(n.buffer, 0, r),
flatCoords: o,
count: s,
};
}
return { flatCoordsOffset: null, flatCoords: null, count: t.length };
},
getInitialData: function (t, e) {
var i = new vA(['value'], this);
return (
(i.hasItemOption = !1),
i.initData(t.data, [], function (t, e, n, o) {
if (t instanceof Array) return NaN;
i.hasItemOption = !0;
var a = t.value;
return null != a ? (a instanceof Array ? a[o] : a) : void 0;
}),
i
);
},
formatTooltip: function (t) {
var e = this.getData().getItemModel(t),
i = e.get('name');
if (i) return i;
var n = e.get('fromName'),
o = e.get('toName'),
a = [];
return (
null != n && a.push(n), null != o && a.push(o), ia(a.join(' > '))
);
},
preventIncremental: function () {
return !!this.get('effect.show');
},
getProgressive: function () {
var t = this.option.progressive;
return null == t
? this.option.large
? 1e4
: this.get('progressive')
: t;
},
getProgressiveThreshold: function () {
var t = this.option.progressiveThreshold;
return null == t
? this.option.large
? 2e4
: this.get('progressiveThreshold')
: t;
},
defaultOption: {
coordinateSystem: 'geo',
zlevel: 0,
z: 2,
legendHoverLink: !0,
hoverAnimation: !0,
xAxisIndex: 0,
yAxisIndex: 0,
symbol: ['none', 'none'],
symbolSize: [10, 10],
geoIndex: 0,
effect: {
show: !1,
period: 4,
constantSpeed: 0,
symbol: 'circle',
symbolSize: 3,
loop: !0,
trailLength: 0.2,
},
large: !1,
largeThreshold: 2e3,
polyline: !1,
label: { show: !1, position: 'end' },
lineStyle: { opacity: 0.5 },
},
}),
iP = xg.prototype;
(iP.createLine = function (t, e, i) {
return new rf(t, e, i);
}),
(iP._updateEffectSymbol = function (t, e) {
var i = t.getItemModel(e).getModel('effect'),
n = i.get('symbolSize'),
o = i.get('symbol');
y(n) || (n = [n, n]);
var a = i.get('color') || t.getItemVisual(e, 'color'),
r = this.childAt(1);
this._symbolType !== o &&
(this.remove(r),
((r = Jl(o, -0.5, -0.5, 1, 1, a)).z2 = 100),
(r.culling = !0),
this.add(r)),
r &&
(r.setStyle('shadowColor', a),
r.setStyle(i.getItemStyle(['color'])),
r.attr('scale', n),
r.setColor(a),
r.attr('scale', n),
(this._symbolType = o),
this._updateEffectAnimation(t, i, e));
}),
(iP._updateEffectAnimation = function (t, e, i) {
var n = this.childAt(1);
if (n) {
var o = this,
a = t.getItemLayout(i),
r = 1e3 * e.get('period'),
s = e.get('loop'),
l = e.get('constantSpeed'),
u = T(e.get('delay'), function (e) {
return ((e / t.count()) * r) / 3;
}),
h = 'function' == typeof u;
if (
((n.ignore = !0),
this.updateAnimationPoints(n, a),
l > 0 && (r = (this.getLineLength(n) / l) * 1e3),
r !== this._period || s !== this._loop)
) {
n.stopAnimation();
var c = u;
h && (c = u(i)), n.__t > 0 && (c = -r * n.__t), (n.__t = 0);
var d = n
.animate('', s)
.when(r, { __t: 1 })
.delay(c)
.during(function () {
o.updateSymbolPosition(n);
});
s ||
d.done(function () {
o.remove(n);
}),
d.start();
}
(this._period = r), (this._loop = s);
}
}),
(iP.getLineLength = function (t) {
return uw(t.__p1, t.__cp1) + uw(t.__cp1, t.__p2);
}),
(iP.updateAnimationPoints = function (t, e) {
(t.__p1 = e[0]),
(t.__p2 = e[1]),
(t.__cp1 = e[2] || [(e[0][0] + e[1][0]) / 2, (e[0][1] + e[1][1]) / 2]);
}),
(iP.updateData = function (t, e, i) {
this.childAt(0).updateData(t, e, i), this._updateEffectSymbol(t, e);
}),
(iP.updateSymbolPosition = function (t) {
var e = t.__p1,
i = t.__p2,
n = t.__cp1,
o = t.__t,
a = t.position,
r = sn,
s = ln;
(a[0] = r(e[0], n[0], i[0], o)), (a[1] = r(e[1], n[1], i[1], o));
var l = s(e[0], n[0], i[0], o),
u = s(e[1], n[1], i[1], o);
(t.rotation = -Math.atan2(u, l) - Math.PI / 2), (t.ignore = !1);
}),
(iP.updateLayout = function (t, e) {
this.childAt(0).updateLayout(t, e);
var i = t.getItemModel(e).getModel('effect');
this._updateEffectAnimation(t, i, e);
}),
u(xg, tb);
var nP = _g.prototype;
(nP._createPolyline = function (t, e, i) {
var n = t.getItemLayout(e),
o = new gM({ shape: { points: n } });
this.add(o), this._updateCommonStl(t, e, i);
}),
(nP.updateData = function (t, e, i) {
var n = t.hostModel;
Io(this.childAt(0), { shape: { points: t.getItemLayout(e) } }, n, e),
this._updateCommonStl(t, e, i);
}),
(nP._updateCommonStl = function (t, e, i) {
var n = this.childAt(0),
o = t.getItemModel(e),
a = t.getItemVisual(e, 'color'),
s = i && i.lineStyle,
l = i && i.hoverLineStyle;
(i && !t.hasItemOption) ||
((s = o.getModel('lineStyle').getLineStyle()),
(l = o.getModel('emphasis.lineStyle').getLineStyle())),
n.useStyle(r({ strokeNoScale: !0, fill: 'none', stroke: a }, s)),
(n.hoverStyle = l),
fo(this);
}),
(nP.updateLayout = function (t, e) {
this.childAt(0).setShape('points', t.getItemLayout(e));
}),
u(_g, tb);
var oP = wg.prototype;
(oP.createLine = function (t, e, i) {
return new _g(t, e, i);
}),
(oP.updateAnimationPoints = function (t, e) {
this._points = e;
for (var i = [0], n = 0, o = 1; o < e.length; o++) {
var a = e[o - 1],
r = e[o];
(n += uw(a, r)), i.push(n);
}
if (0 !== n) {
for (o = 0; o < i.length; o++) i[o] /= n;
(this._offsets = i), (this._length = n);
}
}),
(oP.getLineLength = function (t) {
return this._length;
}),
(oP.updateSymbolPosition = function (t) {
var e = t.__t,
i = this._points,
n = this._offsets,
o = i.length;
if (n) {
var a = this._lastFrame;
if (e < this._lastFramePercent) {
for (r = Math.min(a + 1, o - 1); r >= 0 && !(n[r] <= e); r--);
r = Math.min(r, o - 2);
} else {
for (var r = a; r < o && !(n[r] > e); r++);
r = Math.min(r - 1, o - 2);
}
J(t.position, i[r], i[r + 1], (e - n[r]) / (n[r + 1] - n[r]));
var s = i[r + 1][0] - i[r][0],
l = i[r + 1][1] - i[r][1];
(t.rotation = -Math.atan2(l, s) - Math.PI / 2),
(this._lastFrame = r),
(this._lastFramePercent = e),
(t.ignore = !1);
}
}),
u(wg, xg);
var aP = Un({
shape: { polyline: !1, curveness: 0, segs: [] },
buildPath: function (t, e) {
var i = e.segs,
n = e.curveness;
if (e.polyline)
for (r = 0; r < i.length; ) {
var o = i[r++];
if (o > 0) {
t.moveTo(i[r++], i[r++]);
for (var a = 1; a < o; a++) t.lineTo(i[r++], i[r++]);
}
}
else
for (var r = 0; r < i.length; ) {
var s = i[r++],
l = i[r++],
u = i[r++],
h = i[r++];
if ((t.moveTo(s, l), n > 0)) {
var c = (s + u) / 2 - (l - h) * n,
d = (l + h) / 2 - (u - s) * n;
t.quadraticCurveTo(c, d, u, h);
} else t.lineTo(u, h);
}
},
findDataIndex: function (t, e) {
var i = this.shape,
n = i.segs,
o = i.curveness;
if (i.polyline)
for (var a = 0, r = 0; r < n.length; ) {
var s = n[r++];
if (s > 0)
for (var l = n[r++], u = n[r++], h = 1; h < s; h++)
if (yn(l, u, (c = n[r++]), (d = n[r++]))) return a;
a++;
}
else
for (var a = 0, r = 0; r < n.length; ) {
var l = n[r++],
u = n[r++],
c = n[r++],
d = n[r++];
if (o > 0) {
if (
_n(
l,
u,
(l + c) / 2 - (u - d) * o,
(u + d) / 2 - (c - l) * o,
c,
d,
)
)
return a;
} else if (yn(l, u, c, d)) return a;
a++;
}
return -1;
},
}),
rP = bg.prototype;
(rP.isPersistent = function () {
return !this._incremental;
}),
(rP.updateData = function (t) {
this.group.removeAll();
var e = new aP({ rectHover: !0, cursor: 'default' });
e.setShape({ segs: t.getLayout('linesPoints') }),
this._setCommon(e, t),
this.group.add(e),
(this._incremental = null);
}),
(rP.incrementalPrepareUpdate = function (t) {
this.group.removeAll(),
this._clearIncremental(),
t.count() > 5e5
? (this._incremental || (this._incremental = new Zn({ silent: !0 })),
this.group.add(this._incremental))
: (this._incremental = null);
}),
(rP.incrementalUpdate = function (t, e) {
var i = new aP();
i.setShape({ segs: e.getLayout('linesPoints') }),
this._setCommon(i, e, !!this._incremental),
this._incremental
? this._incremental.addDisplayable(i, !0)
: ((i.rectHover = !0),
(i.cursor = 'default'),
(i.__startIndex = t.start),
this.group.add(i));
}),
(rP.remove = function () {
this._clearIncremental(),
(this._incremental = null),
this.group.removeAll();
}),
(rP._setCommon = function (t, e, i) {
var n = e.hostModel;
t.setShape({
polyline: n.get('polyline'),
curveness: n.get('lineStyle.curveness'),
}),
t.useStyle(n.getModel('lineStyle').getLineStyle()),
(t.style.strokeNoScale = !0);
var o = e.getVisual('color');
o && t.setStyle('stroke', o),
t.setStyle('fill'),
i ||
((t.seriesIndex = n.seriesIndex),
t.on('mousemove', function (e) {
t.dataIndex = null;
var i = t.findDataIndex(e.offsetX, e.offsetY);
i > 0 && (t.dataIndex = i + t.__startIndex);
}));
}),
(rP._clearIncremental = function () {
var t = this._incremental;
t && t.clearDisplaybles();
});
var sP = {
seriesType: 'lines',
plan: $I(),
reset: function (t) {
var e = t.coordinateSystem,
i = t.get('polyline'),
n = t.pipelineContext.large;
return {
progress: function (o, a) {
var r = [];
if (n) {
var s,
l = o.end - o.start;
if (i) {
for (var u = 0, h = o.start; h < o.end; h++)
u += t.getLineCoordsCount(h);
s = new Float32Array(l + 2 * u);
} else s = new Float32Array(4 * l);
for (var c = 0, d = [], h = o.start; h < o.end; h++) {
(g = t.getLineCoords(h, r)), i && (s[c++] = g);
for (var f = 0; f < g; f++)
(d = e.dataToPoint(r[f], !1, d)),
(s[c++] = d[0]),
(s[c++] = d[1]);
}
a.setLayout('linesPoints', s);
} else
for (h = o.start; h < o.end; h++) {
var p = a.getItemModel(h),
g = t.getLineCoords(h, r),
m = [];
if (i) for (var v = 0; v < g; v++) m.push(e.dataToPoint(r[v]));
else {
(m[0] = e.dataToPoint(r[0])), (m[1] = e.dataToPoint(r[1]));
var y = p.get('lineStyle.curveness');
+y &&
(m[2] = [
(m[0][0] + m[1][0]) / 2 - (m[0][1] - m[1][1]) * y,
(m[0][1] + m[1][1]) / 2 - (m[1][0] - m[0][0]) * y,
]);
}
a.setItemLayout(h, m);
}
},
};
},
};
Zs({
type: 'lines',
init: function () {},
render: function (t, e, i) {
var n = t.getData(),
o = this._updateLineDraw(n, t),
a = t.get('zlevel'),
r = t.get('effect.trailLength'),
s = i.getZr(),
l = 'svg' === s.painter.getType();
l || s.painter.getLayer(a).clear(!0),
null == this._lastZlevel ||
l ||
s.configLayer(this._lastZlevel, { motionBlur: !1 }),
this._showEffect(t) &&
r &&
(l ||
s.configLayer(a, {
motionBlur: !0,
lastFrameAlpha: Math.max(Math.min(r / 10 + 0.9, 1), 0),
})),
o.updateData(n),
(this._lastZlevel = a),
(this._finished = !0);
},
incrementalPrepareRender: function (t, e, i) {
var n = t.getData();
this._updateLineDraw(n, t).incrementalPrepareUpdate(n),
this._clearLayer(i),
(this._finished = !1);
},
incrementalRender: function (t, e, i) {
this._lineDraw.incrementalUpdate(t, e.getData()),
(this._finished = t.end === e.getData().count());
},
updateTransform: function (t, e, i) {
var n = t.getData(),
o = t.pipelineContext;
if (!this._finished || o.large || o.progressiveRender)
return { update: !0 };
var a = sP.reset(t);
a.progress && a.progress({ start: 0, end: n.count() }, n),
this._lineDraw.updateLayout(),
this._clearLayer(i);
},
_updateLineDraw: function (t, e) {
var i = this._lineDraw,
n = this._showEffect(e),
o = !!e.get('polyline'),
a = e.pipelineContext.large;
return (
(i &&
n === this._hasEffet &&
o === this._isPolyline &&
a === this._isLargeDraw) ||
(i && i.remove(),
(i = this._lineDraw = a
? new bg()
: new sf(o ? (n ? wg : _g) : n ? xg : rf)),
(this._hasEffet = n),
(this._isPolyline = o),
(this._isLargeDraw = a),
this.group.removeAll()),
this.group.add(i.group),
i
);
},
_showEffect: function (t) {
return !!t.get('effect.show');
},
_clearLayer: function (t) {
var e = t.getZr();
'svg' === e.painter.getType() ||
null == this._lastZlevel ||
e.painter.getLayer(this._lastZlevel).clear(!0);
},
remove: function (t, e) {
this._lineDraw && this._lineDraw.remove(),
(this._lineDraw = null),
this._clearLayer(e);
},
dispose: function () {},
});
var lP = 'lineStyle.opacity'.split('.'),
uP = {
seriesType: 'lines',
reset: function (t, e, i) {
var n = Sg(t.get('symbol')),
o = Sg(t.get('symbolSize')),
a = t.getData();
return (
a.setVisual('fromSymbol', n && n[0]),
a.setVisual('toSymbol', n && n[1]),
a.setVisual('fromSymbolSize', o && o[0]),
a.setVisual('toSymbolSize', o && o[1]),
a.setVisual('opacity', t.get(lP)),
{
dataEach: a.hasItemOption
? function (t, e) {
var i = t.getItemModel(e),
n = Sg(i.getShallow('symbol', !0)),
o = Sg(i.getShallow('symbolSize', !0)),
a = i.get(lP);
n[0] && t.setItemVisual(e, 'fromSymbol', n[0]),
n[1] && t.setItemVisual(e, 'toSymbol', n[1]),
o[0] && t.setItemVisual(e, 'fromSymbolSize', o[0]),
o[1] && t.setItemVisual(e, 'toSymbolSize', o[1]),
t.setItemVisual(e, 'opacity', a);
}
: null,
}
);
},
};
zs(sP),
Bs(uP),
YI.extend({
type: 'series.heatmap',
getInitialData: function (t, e) {
return ml(this.getSource(), this, { generateCoord: 'value' });
},
preventIncremental: function () {
var t = Fa.get(this.get('coordinateSystem'));
if (t && t.dimensions)
return 'lng' === t.dimensions[0] && 'lat' === t.dimensions[1];
},
defaultOption: {
coordinateSystem: 'cartesian2d',
zlevel: 0,
z: 2,
geoIndex: 0,
blurSize: 30,
pointSize: 20,
maxOpacity: 1,
minOpacity: 0,
},
});
(Mg.prototype = {
update: function (t, e, i, n, o, a) {
var r = this._getBrush(),
s = this._getGradient(t, o, 'inRange'),
l = this._getGradient(t, o, 'outOfRange'),
u = this.pointSize + this.blurSize,
h = this.canvas,
c = h.getContext('2d'),
d = t.length;
(h.width = e), (h.height = i);
for (var f = 0; f < d; ++f) {
var p = t[f],
g = p[0],
m = p[1],
v = n(p[2]);
(c.globalAlpha = v), c.drawImage(r, g - u, m - u);
}
if (!h.width || !h.height) return h;
for (
var y = c.getImageData(0, 0, h.width, h.height),
x = y.data,
_ = 0,
w = x.length,
b = this.minOpacity,
S = this.maxOpacity - b;
_ < w;
) {
var v = x[_ + 3] / 256,
M = 4 * Math.floor(255 * v);
if (v > 0) {
var I = a(v) ? s : l;
v > 0 && (v = v * S + b),
(x[_++] = I[M]),
(x[_++] = I[M + 1]),
(x[_++] = I[M + 2]),
(x[_++] = I[M + 3] * v * 256);
} else _ += 4;
}
return c.putImageData(y, 0, 0), h;
},
_getBrush: function () {
var t = this._brushCanvas || (this._brushCanvas = iw()),
e = this.pointSize + this.blurSize,
i = 2 * e;
(t.width = i), (t.height = i);
var n = t.getContext('2d');
return (
n.clearRect(0, 0, i, i),
(n.shadowOffsetX = i),
(n.shadowBlur = this.blurSize),
(n.shadowColor = '#000'),
n.beginPath(),
n.arc(-e, e, this.pointSize, 0, 2 * Math.PI, !0),
n.closePath(),
n.fill(),
t
);
},
_getGradient: function (t, e, i) {
for (
var n = this._gradientPixels,
o = n[i] || (n[i] = new Uint8ClampedArray(1024)),
a = [0, 0, 0, 0],
r = 0,
s = 0;
s < 256;
s++
)
e[i](s / 255, !0, a),
(o[r++] = a[0]),
(o[r++] = a[1]),
(o[r++] = a[2]),
(o[r++] = a[3]);
return o;
},
}),
Zs({
type: 'heatmap',
render: function (t, e, i) {
var n;
e.eachComponent('visualMap', function (e) {
e.eachTargetSeries(function (i) {
i === t && (n = e);
});
}),
this.group.removeAll(),
(this._incrementalDisplayable = null);
var o = t.coordinateSystem;
'cartesian2d' === o.type || 'calendar' === o.type
? this._renderOnCartesianAndCalendar(t, i, 0, t.getData().count())
: Ag(o) && this._renderOnGeo(o, t, n, i);
},
incrementalPrepareRender: function (t, e, i) {
this.group.removeAll();
},
incrementalRender: function (t, e, i, n) {
e.coordinateSystem &&
this._renderOnCartesianAndCalendar(e, n, t.start, t.end, !0);
},
_renderOnCartesianAndCalendar: function (t, e, i, n, o) {
var r,
s,
l = t.coordinateSystem;
if ('cartesian2d' === l.type) {
var u = l.getAxis('x'),
h = l.getAxis('y');
(r = u.getBandWidth()), (s = h.getBandWidth());
}
for (
var c = this.group,
d = t.getData(),
f = t.getModel('itemStyle').getItemStyle(['color']),
p = t.getModel('emphasis.itemStyle').getItemStyle(),
g = t.getModel('label'),
m = t.getModel('emphasis.label'),
v = l.type,
y =
'cartesian2d' === v
? [
d.mapDimension('x'),
d.mapDimension('y'),
d.mapDimension('value'),
]
: [d.mapDimension('time'), d.mapDimension('value')],
x = i;
x < n;
x++
) {
var _;
if ('cartesian2d' === v) {
if (isNaN(d.get(y[2], x))) continue;
var w = l.dataToPoint([d.get(y[0], x), d.get(y[1], x)]);
_ = new yM({
shape: { x: w[0] - r / 2, y: w[1] - s / 2, width: r, height: s },
style: {
fill: d.getItemVisual(x, 'color'),
opacity: d.getItemVisual(x, 'opacity'),
},
});
} else {
if (isNaN(d.get(y[1], x))) continue;
_ = new yM({
z2: 1,
shape: l.dataToRect([d.get(y[0], x)]).contentShape,
style: {
fill: d.getItemVisual(x, 'color'),
opacity: d.getItemVisual(x, 'opacity'),
},
});
}
var b = d.getItemModel(x);
d.hasItemOption &&
((f = b.getModel('itemStyle').getItemStyle(['color'])),
(p = b.getModel('emphasis.itemStyle').getItemStyle()),
(g = b.getModel('label')),
(m = b.getModel('emphasis.label')));
var S = t.getRawValue(x),
M = '-';
S && null != S[2] && (M = S[2]),
go(f, p, g, m, {
labelFetcher: t,
labelDataIndex: x,
defaultText: M,
isRectText: !0,
}),
_.setStyle(f),
fo(_, d.hasItemOption ? p : a({}, p)),
(_.incremental = o),
o && (_.useHoverLayer = !0),
c.add(_),
d.setItemGraphicEl(x, _);
}
},
_renderOnGeo: function (t, e, i, n) {
var o = i.targetVisuals.inRange,
a = i.targetVisuals.outOfRange,
r = e.getData(),
s = this._hmLayer || this._hmLayer || new Mg();
(s.blurSize = e.get('blurSize')),
(s.pointSize = e.get('pointSize')),
(s.minOpacity = e.get('minOpacity')),
(s.maxOpacity = e.get('maxOpacity'));
var l = t.getViewRect().clone(),
u = t.getRoamTransform();
l.applyTransform(u);
var h = Math.max(l.x, 0),
c = Math.max(l.y, 0),
d = Math.min(l.width + l.x, n.getWidth()),
f = Math.min(l.height + l.y, n.getHeight()),
p = d - h,
g = f - c,
m = [
r.mapDimension('lng'),
r.mapDimension('lat'),
r.mapDimension('value'),
],
v = r.mapArray(m, function (e, i, n) {
var o = t.dataToPoint([e, i]);
return (o[0] -= h), (o[1] -= c), o.push(n), o;
}),
y = i.getExtent(),
x =
'visualMap.continuous' === i.type
? Tg(y, i.option.range)
: Ig(y, i.getPieceList(), i.option.selected);
s.update(
v,
p,
g,
o.color.getNormalizer(),
{
inRange: o.color.getColorMapper(),
outOfRange: a.color.getColorMapper(),
},
x,
);
var _ = new fi({
style: { width: p, height: g, x: h, y: c, image: s.canvas },
silent: !0,
});
this.group.add(_);
},
dispose: function () {},
});
var hP = $D.extend({
type: 'series.pictorialBar',
dependencies: ['grid'],
defaultOption: {
symbol: 'circle',
symbolSize: null,
symbolRotate: null,
symbolPosition: null,
symbolOffset: null,
symbolMargin: null,
symbolRepeat: !1,
symbolRepeatDirection: 'end',
symbolClip: !1,
symbolBoundingData: null,
symbolPatternSize: 400,
barGap: '-100%',
progressive: 0,
hoverAnimation: !1,
},
getInitialData: function (t) {
return (
(t.stack = null), hP.superApply(this, 'getInitialData', arguments)
);
},
}),
cP = ['itemStyle', 'borderWidth'],
dP = [
{ xy: 'x', wh: 'width', index: 0, posDesc: ['left', 'right'] },
{ xy: 'y', wh: 'height', index: 1, posDesc: ['top', 'bottom'] },
],
fP = new sM();
Zs({
type: 'pictorialBar',
render: function (t, e, i) {
var n = this.group,
o = t.getData(),
a = this._data,
r = t.coordinateSystem,
s = !!r.getBaseAxis().isHorizontal(),
l = r.grid.getRect(),
u = {
ecSize: { width: i.getWidth(), height: i.getHeight() },
seriesModel: t,
coordSys: r,
coordSysExtent: [
[l.x, l.x + l.width],
[l.y, l.y + l.height],
],
isHorizontal: s,
valueDim: dP[+s],
categoryDim: dP[1 - s],
};
return (
o
.diff(a)
.add(function (t) {
if (o.hasValue(t)) {
var e = Vg(o, t),
i = Dg(o, t, e, u),
a = Hg(o, u, i);
o.setItemGraphicEl(t, a), n.add(a), qg(a, u, i);
}
})
.update(function (t, e) {
var i = a.getItemGraphicEl(e);
if (o.hasValue(t)) {
var r = Vg(o, t),
s = Dg(o, t, r, u),
l = Xg(o, s);
i &&
l !== i.__pictorialShapeStr &&
(n.remove(i), o.setItemGraphicEl(t, null), (i = null)),
i ? Zg(i, u, s) : (i = Hg(o, u, s, !0)),
o.setItemGraphicEl(t, i),
(i.__pictorialSymbolMeta = s),
n.add(i),
qg(i, u, s);
} else n.remove(i);
})
.remove(function (t) {
var e = a.getItemGraphicEl(t);
e && Ug(a, t, e.__pictorialSymbolMeta.animationModel, e);
})
.execute(),
(this._data = o),
this.group
);
},
dispose: B,
remove: function (t, e) {
var i = this.group,
n = this._data;
t.get('animation')
? n &&
n.eachItemGraphicEl(function (e) {
Ug(n, e.dataIndex, t, e);
})
: i.removeAll();
},
});
zs(v(El, 'pictorialBar')), Bs(TD('pictorialBar', 'roundRect'));
var pP = function (t, e, i, n, o) {
aD.call(this, t, e, i),
(this.type = n || 'value'),
(this.position = o || 'bottom'),
(this.orient = null);
};
(pP.prototype = {
constructor: pP,
model: null,
isHorizontal: function () {
var t = this.position;
return 'top' === t || 'bottom' === t;
},
pointToData: function (t, e) {
return this.coordinateSystem.pointToData(t, e)[0];
},
toGlobalCoord: null,
toLocalCoord: null,
}),
u(pP, aD),
($g.prototype = {
type: 'singleAxis',
axisPointerEnabled: !0,
constructor: $g,
_init: function (t, e, i) {
var n = this.dimension,
o = new pP(n, Hl(t), [0, 0], t.get('type'), t.get('position')),
a = 'category' === o.type;
(o.onBand = a && t.get('boundaryGap')),
(o.inverse = t.get('inverse')),
(o.orient = t.get('orient')),
(t.axis = o),
(o.model = t),
(o.coordinateSystem = this),
(this._axis = o);
},
update: function (t, e) {
t.eachSeries(function (t) {
if (t.coordinateSystem === this) {
var e = t.getData();
d(
e.mapDimension(this.dimension, !0),
function (t) {
this._axis.scale.unionExtentFromData(e, t);
},
this,
),
Wl(this._axis.scale, this._axis.model);
}
}, this);
},
resize: function (t, e) {
(this._rect = ca(
{
left: t.get('left'),
top: t.get('top'),
right: t.get('right'),
bottom: t.get('bottom'),
width: t.get('width'),
height: t.get('height'),
},
{ width: e.getWidth(), height: e.getHeight() },
)),
this._adjustAxis();
},
getRect: function () {
return this._rect;
},
_adjustAxis: function () {
var t = this._rect,
e = this._axis,
i = e.isHorizontal(),
n = i ? [0, t.width] : [0, t.height],
o = e.reverse ? 1 : 0;
e.setExtent(n[o], n[1 - o]),
this._updateAxisTransform(e, i ? t.x : t.y);
},
_updateAxisTransform: function (t, e) {
var i = t.getExtent(),
n = i[0] + i[1],
o = t.isHorizontal();
(t.toGlobalCoord = o
? function (t) {
return t + e;
}
: function (t) {
return n - t + e;
}),
(t.toLocalCoord = o
? function (t) {
return t - e;
}
: function (t) {
return n - t + e;
});
},
getAxis: function () {
return this._axis;
},
getBaseAxis: function () {
return this._axis;
},
getAxes: function () {
return [this._axis];
},
getTooltipAxes: function () {
return { baseAxes: [this.getAxis()] };
},
containPoint: function (t) {
var e = this.getRect(),
i = this.getAxis();
return 'horizontal' === i.orient
? i.contain(i.toLocalCoord(t[0])) &&
t[1] >= e.y &&
t[1] <= e.y + e.height
: i.contain(i.toLocalCoord(t[1])) &&
t[0] >= e.y &&
t[0] <= e.y + e.height;
},
pointToData: function (t) {
var e = this.getAxis();
return [
e.coordToData(e.toLocalCoord(t['horizontal' === e.orient ? 0 : 1])),
];
},
dataToPoint: function (t) {
var e = this.getAxis(),
i = this.getRect(),
n = [],
o = 'horizontal' === e.orient ? 0 : 1;
return (
t instanceof Array && (t = t[0]),
(n[o] = e.toGlobalCoord(e.dataToCoord(+t))),
(n[1 - o] = 0 === o ? i.y + i.height / 2 : i.x + i.width / 2),
n
);
},
}),
Fa.register('single', {
create: function (t, e) {
var i = [];
return (
t.eachComponent('singleAxis', function (n, o) {
var a = new $g(n, t, e);
(a.name = 'single_' + o),
a.resize(n, e),
(n.coordinateSystem = a),
i.push(a);
}),
t.eachSeries(function (e) {
if ('singleAxis' === e.get('coordinateSystem')) {
var i = t.queryComponents({
mainType: 'singleAxis',
index: e.get('singleAxisIndex'),
id: e.get('singleAxisId'),
})[0];
e.coordinateSystem = i && i.coordinateSystem;
}
}),
i
);
},
dimensions: $g.prototype.dimensions,
});
var gP = ['axisLine', 'axisTickLabel', 'axisName'],
mP = XD.extend({
type: 'singleAxis',
axisPointerClass: 'SingleAxisPointer',
render: function (t, e, i, n) {
var o = this.group;
o.removeAll();
var a = Jg(t),
r = new FD(t, a);
d(gP, r.add, r),
o.add(r.getGroup()),
t.get('splitLine.show') && this._splitLine(t),
mP.superCall(this, 'render', t, e, i, n);
},
_splitLine: function (t) {
var e = t.axis;
if (!e.scale.isBlank()) {
var i = t.getModel('splitLine'),
n = i.getModel('lineStyle'),
o = n.get('width'),
a = n.get('color');
a = a instanceof Array ? a : [a];
for (
var r = t.coordinateSystem.getRect(),
s = e.isHorizontal(),
l = [],
u = 0,
h = e.getTicksCoords({ tickModel: i }),
c = [],
d = [],
f = 0;
f < h.length;
++f
) {
var p = e.toGlobalCoord(h[f].coord);
s
? ((c[0] = p), (c[1] = r.y), (d[0] = p), (d[1] = r.y + r.height))
: ((c[0] = r.x), (c[1] = p), (d[0] = r.x + r.width), (d[1] = p));
var g = u++ % a.length;
(l[g] = l[g] || []),
l[g].push(
new _M(
Kn({
shape: { x1: c[0], y1: c[1], x2: d[0], y2: d[1] },
style: { lineWidth: o },
silent: !0,
}),
),
);
}
for (f = 0; f < l.length; ++f)
this.group.add(
OM(l[f], {
style: {
stroke: a[f % a.length],
lineDash: n.getLineDash(o),
lineWidth: o,
},
silent: !0,
}),
);
}
},
}),
vP = lI.extend({
type: 'singleAxis',
layoutMode: 'box',
axis: null,
coordinateSystem: null,
getCoordSysModel: function () {
return this;
},
}),
yP = {
left: '5%',
top: '5%',
right: '5%',
bottom: '5%',
type: 'value',
position: 'bottom',
orient: 'horizontal',
axisLine: { show: !0, lineStyle: { width: 2, type: 'solid' } },
tooltip: { show: !0 },
axisTick: { show: !0, length: 6, lineStyle: { width: 2 } },
axisLabel: { show: !0, interval: 'auto' },
splitLine: { show: !0, lineStyle: { type: 'dashed', opacity: 0.2 } },
};
n(vP.prototype, UA),
ED(
'single',
vP,
function (t, e) {
return e.type || (e.data ? 'category' : 'value');
},
yP,
);
var xP = function (t, e) {
var i,
n = [],
o = t.seriesIndex;
if (null == o || !(i = e.getSeriesByIndex(o))) return { point: [] };
var a = i.getData(),
r = zi(a, t);
if (null == r || r < 0 || y(r)) return { point: [] };
var s = a.getItemGraphicEl(r),
l = i.coordinateSystem;
if (i.getTooltipPosition) n = i.getTooltipPosition(r) || [];
else if (l && l.dataToPoint)
n =
l.dataToPoint(
a.getValues(
f(l.dimensions, function (t) {
return a.mapDimension(t);
}),
r,
!0,
),
) || [];
else if (s) {
var u = s.getBoundingRect().clone();
u.applyTransform(s.transform),
(n = [u.x + u.width / 2, u.y + u.height / 2]);
}
return { point: n, el: s };
},
_P = d,
wP = v,
bP = Bi(),
SP =
(Fs({
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,
},
},
}),
Bi()),
MP = d,
IP = Ws({
type: 'axisPointer',
render: function (t, e, i) {
var n = e.getComponent('tooltip'),
o =
t.get('triggerOn') ||
(n && n.get('triggerOn')) ||
'mousemove|click';
um('axisPointer', i, function (t, e, i) {
'none' !== o &&
('leave' === t || o.indexOf(t) >= 0) &&
i({
type: 'updateAxisPointer',
currTrigger: t,
x: e && e.offsetX,
y: e && e.offsetY,
});
});
},
remove: function (t, e) {
gm(e.getZr(), 'axisPointer'),
IP.superApply(this._model, 'remove', arguments);
},
dispose: function (t, e) {
gm('axisPointer', e), IP.superApply(this._model, 'dispose', arguments);
},
}),
TP = Bi(),
AP = i,
DP = m;
((mm.prototype = {
_group: null,
_lastGraphicKey: null,
_handle: null,
_dragging: !1,
_lastValue: null,
_lastStatus: null,
_payloadInfo: null,
animationThreshold: 15,
render: function (t, e, i, n) {
var o = e.get('value'),
a = e.get('status');
if (
((this._axisModel = t),
(this._axisPointerModel = e),
(this._api = i),
n || this._lastValue !== o || this._lastStatus !== a)
) {
(this._lastValue = o), (this._lastStatus = a);
var r = this._group,
s = this._handle;
if (!a || 'hide' === a) return r && r.hide(), void (s && s.hide());
r && r.show(), s && s.show();
var l = {};
this.makeElOption(l, o, t, e, i);
var u = l.graphicKey;
u !== this._lastGraphicKey && this.clear(i), (this._lastGraphicKey = u);
var h = (this._moveAnimation = this.determineAnimation(t, e));
if (r) {
var c = v(vm, e, h);
this.updatePointerEl(r, l, c, e), this.updateLabelEl(r, l, c, e);
} else
(r = this._group = new tb()),
this.createPointerEl(r, l, t, e),
this.createLabelEl(r, l, t, e),
i.getZr().add(r);
wm(r, e, !0), this._renderHandle(o);
}
},
remove: function (t) {
this.clear(t);
},
dispose: function (t) {
this.clear(t);
},
determineAnimation: function (t, e) {
var i = e.get('animation'),
n = t.axis,
o = 'category' === n.type,
a = e.get('snap');
if (!a && !o) return !1;
if ('auto' === i || null == i) {
var r = this.animationThreshold;
if (o && n.getBandWidth() > r) return !0;
if (a) {
var s = Mh(t).seriesDataCount,
l = n.getExtent();
return Math.abs(l[0] - l[1]) / s > r;
}
return !1;
}
return !0 === i;
},
makeElOption: function (t, e, i, n, o) {},
createPointerEl: function (t, e, i, n) {
var o = e.pointer;
if (o) {
var a = (TP(t).pointerEl = new zM[o.type](AP(e.pointer)));
t.add(a);
}
},
createLabelEl: function (t, e, i, n) {
if (e.label) {
var o = (TP(t).labelEl = new yM(AP(e.label)));
t.add(o), xm(o, n);
}
},
updatePointerEl: function (t, e, i) {
var n = TP(t).pointerEl;
n && (n.setStyle(e.pointer.style), i(n, { shape: e.pointer.shape }));
},
updateLabelEl: function (t, e, i, n) {
var o = TP(t).labelEl;
o &&
(o.setStyle(e.label.style),
i(o, { shape: e.label.shape, position: e.label.position }),
xm(o, n));
},
_renderHandle: function (t) {
if (!this._dragging && this.updateHandleTransform) {
var e = this._axisPointerModel,
i = this._api.getZr(),
n = this._handle,
o = e.getModel('handle'),
a = e.get('status');
if (!o.get('show') || !a || 'hide' === a)
return n && i.remove(n), void (this._handle = null);
var r;
this._handle ||
((r = !0),
(n = this._handle = Po(o.get('icon'), {
cursor: 'move',
draggable: !0,
onmousemove: function (t) {
mw(t.event);
},
onmousedown: DP(this._onHandleDragMove, this, 0, 0),
drift: DP(this._onHandleDragMove, this),
ondragend: DP(this._onHandleDragEnd, this),
})),
i.add(n)),
wm(n, e, !1);
var s = [
'color',
'borderColor',
'borderWidth',
'opacity',
'shadowColor',
'shadowBlur',
'shadowOffsetX',
'shadowOffsetY',
];
n.setStyle(o.getItemStyle(null, s));
var l = o.get('size');
y(l) || (l = [l, l]),
n.attr('scale', [l[0] / 2, l[1] / 2]),
Nr(this, '_doDispatchAxisPointer', o.get('throttle') || 0, 'fixRate'),
this._moveHandleToValue(t, r);
}
},
_moveHandleToValue: function (t, e) {
vm(
this._axisPointerModel,
!e && this._moveAnimation,
this._handle,
_m(this.getHandleTransform(t, this._axisModel, this._axisPointerModel)),
);
},
_onHandleDragMove: function (t, e) {
var i = this._handle;
if (i) {
this._dragging = !0;
var n = this.updateHandleTransform(
_m(i),
[t, e],
this._axisModel,
this._axisPointerModel,
);
(this._payloadInfo = n),
i.stopAnimation(),
i.attr(_m(n)),
(TP(i).lastProp = null),
this._doDispatchAxisPointer();
}
},
_doDispatchAxisPointer: function () {
if (this._handle) {
var t = this._payloadInfo,
e = this._axisModel;
this._api.dispatchAction({
type: 'updateAxisPointer',
x: t.cursorPoint[0],
y: t.cursorPoint[1],
tooltipOption: t.tooltipOption,
axesInfo: [{ axisDim: e.axis.dim, axisIndex: e.componentIndex }],
});
}
},
_onHandleDragEnd: function (t) {
if (((this._dragging = !1), this._handle)) {
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] }
);
},
}).constructor = mm),
ji(mm);
var CP = mm.extend({
makeElOption: function (t, e, i, n, o) {
var a = i.axis,
r = a.grid,
s = n.get('type'),
l = km(r, a).getOtherAxis(a).getGlobalExtent(),
u = a.toGlobalCoord(a.dataToCoord(e, !0));
if (s && 'none' !== s) {
var h = bm(n),
c = LP[s](a, u, l, h);
(c.style = h), (t.graphicKey = c.type), (t.pointer = c);
}
Am(e, t, Lh(r.model, i), i, n, o);
},
getHandleTransform: function (t, e, i) {
var n = Lh(e.axis.grid.model, e, { labelInside: !1 });
return (
(n.labelMargin = i.get('handle.margin')),
{
position: Tm(e.axis, t, n),
rotation: n.rotation + (n.labelDirection < 0 ? Math.PI : 0),
}
);
},
updateHandleTransform: function (t, e, i, n) {
var o = i.axis,
a = o.grid,
r = o.getGlobalExtent(!0),
s = km(a, o).getOtherAxis(o).getGlobalExtent(),
l = 'x' === o.dim ? 0 : 1,
u = t.position;
(u[l] += e[l]),
(u[l] = Math.min(r[1], u[l])),
(u[l] = Math.max(r[0], u[l]));
var h = (s[1] + s[0]) / 2,
c = [h, h];
c[l] = u[l];
var d = [{ verticalAlign: 'middle' }, { align: 'center' }];
return {
position: u,
rotation: t.rotation,
cursorPoint: c,
tooltipOption: d[l],
};
},
}),
LP = {
line: function (t, e, i, n) {
var o = Dm([e, i[0]], [e, i[1]], Pm(t));
return Kn({ shape: o, style: n }), { type: 'Line', shape: o };
},
shadow: function (t, e, i, n) {
var o = Math.max(1, t.getBandWidth()),
a = i[1] - i[0];
return { type: 'Rect', shape: Cm([e - o / 2, i[0]], [o, a], Pm(t)) };
},
};
XD.registerAxisPointerClass('CartesianAxisPointer', CP),
Ns(function (t) {
if (t) {
(!t.axisPointer || 0 === t.axisPointer.length) && (t.axisPointer = {});
var e = t.axisPointer.link;
e && !y(e) && (t.axisPointer.link = [e]);
}
}),
Os(VT.PROCESSOR.STATISTIC, function (t, e) {
t.getComponent('axisPointer').coordSysAxesInfo = vh(t, e);
}),
Es(
{
type: 'updateAxisPointer',
event: 'updateAxisPointer',
update: ':updateAxisPointer',
},
function (t, e, i) {
var n = t.currTrigger,
o = [t.x, t.y],
a = t,
r = t.dispatchAction || m(i.dispatchAction, i),
s = e.getComponent('axisPointer').coordSysAxesInfo;
if (s) {
lm(o) &&
(o = xP({ seriesIndex: a.seriesIndex, dataIndex: a.dataIndex }, e)
.point);
var l = lm(o),
u = a.axesInfo,
h = s.axesInfo,
c = 'leave' === n || lm(o),
d = {},
f = {},
p = { list: [], map: {} },
g = { showPointer: wP(em, f), showTooltip: wP(im, p) };
_P(s.coordSysMap, function (t, e) {
var i = l || t.containPoint(o);
_P(s.coordSysAxesInfo[e], function (t, e) {
var n = t.axis,
a = rm(u, t);
if (!c && i && (!u || a)) {
var r = a && a.value;
null != r || l || (r = n.pointToData(o)),
null != r && Qg(t, r, g, !1, d);
}
});
});
var v = {};
return (
_P(h, function (t, e) {
var i = t.linkGroup;
i &&
!f[e] &&
_P(i.axesInfo, function (e, n) {
var o = f[n];
if (e !== t && o) {
var a = o.value;
i.mapper &&
(a = t.axis.scale.parse(i.mapper(a, sm(e), sm(t)))),
(v[t.key] = a);
}
});
}),
_P(v, function (t, e) {
Qg(h[e], t, g, !0, d);
}),
nm(f, h, d),
om(p, o, t, r),
am(h, 0, i),
d
);
}
},
);
var kP = ['x', 'y'],
PP = ['width', 'height'],
NP = mm.extend({
makeElOption: function (t, e, i, n, o) {
var a = i.axis,
r = a.coordinateSystem,
s = Om(r, 1 - Nm(a)),
l = r.dataToPoint(e)[0],
u = n.get('type');
if (u && 'none' !== u) {
var h = bm(n),
c = OP[u](a, l, s, h);
(c.style = h), (t.graphicKey = c.type), (t.pointer = c);
}
Am(e, t, Jg(i), i, n, o);
},
getHandleTransform: function (t, e, i) {
var n = Jg(e, { labelInside: !1 });
return (
(n.labelMargin = i.get('handle.margin')),
{
position: Tm(e.axis, t, n),
rotation: n.rotation + (n.labelDirection < 0 ? Math.PI : 0),
}
);
},
updateHandleTransform: function (t, e, i, n) {
var o = i.axis,
a = o.coordinateSystem,
r = Nm(o),
s = Om(a, r),
l = t.position;
(l[r] += e[r]),
(l[r] = Math.min(s[1], l[r])),
(l[r] = Math.max(s[0], l[r]));
var u = Om(a, 1 - r),
h = (u[1] + u[0]) / 2,
c = [h, h];
return (
(c[r] = l[r]),
{
position: l,
rotation: t.rotation,
cursorPoint: c,
tooltipOption: { verticalAlign: 'middle' },
}
);
},
}),
OP = {
line: function (t, e, i, n) {
var o = Dm([e, i[0]], [e, i[1]], Nm(t));
return Kn({ shape: o, style: n }), { type: 'Line', shape: o };
},
shadow: function (t, e, i, n) {
var o = t.getBandWidth(),
a = i[1] - i[0];
return { type: 'Rect', shape: Cm([e - o / 2, i[0]], [o, a], Nm(t)) };
},
};
XD.registerAxisPointerClass('SingleAxisPointer', NP), Ws({ type: 'single' });
var EP = YI.extend({
type: 'series.themeRiver',
dependencies: ['singleAxis'],
nameMap: null,
init: function (t) {
EP.superApply(this, 'init', arguments),
(this.legendDataProvider = function () {
return this.getRawData();
});
},
fixData: function (t) {
var e = t.length,
i = [];
Zi(t, function (t) {
return t[2];
}).buckets.each(function (t, e) {
i.push({ name: e, dataList: t });
});
for (var n = i.length, o = -1, a = -1, r = 0; r < n; ++r) {
var s = i[r].dataList.length;
s > o && ((o = s), (a = r));
}
for (var l = 0; l < n; ++l)
if (l !== a)
for (var u = i[l].name, h = 0; h < o; ++h) {
for (
var c = i[a].dataList[h][0],
d = i[l].dataList.length,
f = -1,
p = 0;
p < d;
++p
)
if (i[l].dataList[p][0] === c) {
f = p;
break;
}
-1 === f &&
((t[e] = []), (t[e][0] = c), (t[e][1] = 0), (t[e][2] = u), e++);
}
return t;
},
getInitialData: function (t, e) {
for (
var i = e
.queryComponents({
mainType: 'singleAxis',
index: this.get('singleAxisIndex'),
id: this.get('singleAxisId'),
})[0]
.get('type'),
n = g(t.data, function (t) {
return void 0 !== t[2];
}),
o = this.fixData(n || []),
a = [],
r = (this.nameMap = R()),
s = 0,
l = 0;
l < o.length;
++l
)
a.push(o[l][2]), r.get(o[l][2]) || (r.set(o[l][2], s), s++);
var u = _A(o, {
coordDimensions: ['single'],
dimensionsDefine: [
{ name: 'time', type: qs(i) },
{ name: 'value', type: 'float' },
{ name: 'name', type: 'ordinal' },
],
encodeDefine: { single: 0, value: 1, itemName: 2 },
}),
h = new vA(u, this);
return h.initData(o), h;
},
getLayerSeries: function () {
for (var t = this.getData(), e = t.count(), i = [], n = 0; n < e; ++n)
i[n] = n;
var o = t.mapDimension('single'),
a = [];
return (
Zi(i, function (e) {
return t.get('name', e);
}).buckets.each(function (e, i) {
e.sort(function (e, i) {
return t.get(o, e) - t.get(o, i);
}),
a.push({ name: i, indices: e });
}),
a
);
},
getAxisTooltipData: function (t, e, i) {
y(t) || (t = t ? [t] : []);
for (
var n,
o = this.getData(),
a = this.getLayerSeries(),
r = [],
s = a.length,
l = 0;
l < s;
++l
) {
for (
var u = Number.MAX_VALUE, h = -1, c = a[l].indices.length, d = 0;
d < c;
++d
) {
var f = o.get(t[0], a[l].indices[d]),
p = Math.abs(f - e);
p <= u && ((n = f), (u = p), (h = a[l].indices[d]));
}
r.push(h);
}
return { dataIndices: r, nestestValue: n };
},
formatTooltip: function (t) {
var e = this.getData(),
i = e.getName(t),
n = e.get(e.mapDimension('value'), t);
return (isNaN(n) || null == n) && (n = '-'), ia(i + ' : ' + n);
},
defaultOption: {
zlevel: 0,
z: 2,
coordinateSystem: 'singleAxis',
boundaryGap: ['10%', '10%'],
singleAxisIndex: 0,
animationEasing: 'linear',
label: {
margin: 4,
show: !0,
position: 'left',
color: '#000',
fontSize: 11,
},
emphasis: { label: { show: !0 } },
},
});
Zs({
type: 'themeRiver',
init: function () {
this._layers = [];
},
render: function (t, e, i) {
function n(t) {
return t.name;
}
function o(e, i, n) {
var o = this._layers;
if ('remove' !== e) {
for (
var u, h = [], c = [], f = l[i].indices, p = 0;
p < f.length;
p++
) {
var g = r.getItemLayout(f[p]),
m = g.x,
v = g.y0,
y = g.y;
h.push([m, v]),
c.push([m, v + y]),
(u = r.getItemVisual(f[p], 'color'));
}
var x,
_,
w = r.getItemLayout(f[0]),
b = r.getItemModel(f[p - 1]),
S = b.getModel('label'),
M = S.get('margin');
if ('add' === e) {
I = d[i] = new tb();
(x = new ID({
shape: {
points: h,
stackedOnPoints: c,
smooth: 0.4,
stackedOnSmooth: 0.4,
smoothConstraint: !1,
},
z2: 0,
})),
(_ = new rM({ style: { x: w.x - M, y: w.y0 + w.y / 2 } })),
I.add(x),
I.add(_),
s.add(I),
x.setClipPath(
Em(x.getBoundingRect(), t, function () {
x.removeClipPath();
}),
);
} else {
var I = o[n];
(x = I.childAt(0)),
(_ = I.childAt(1)),
s.add(I),
(d[i] = I),
Io(x, { shape: { points: h, stackedOnPoints: c } }, t),
Io(_, { style: { x: w.x - M, y: w.y0 + w.y / 2 } }, t);
}
var T = b.getModel('emphasis.itemStyle'),
A = b.getModel('itemStyle');
mo(_.style, S, {
text: S.get('show')
? t.getFormattedLabel(f[p - 1], 'normal') || r.getName(f[p - 1])
: null,
textVerticalAlign: 'middle',
}),
x.setStyle(a({ fill: u }, A.getItemStyle(['color']))),
fo(x, T.getItemStyle());
} else s.remove(o[i]);
}
var r = t.getData(),
s = this.group,
l = t.getLayerSeries(),
u = r.getLayout('layoutInfo'),
h = u.rect,
c = u.boundaryGap;
s.attr('position', [0, h.y + c[0]]);
var d = {};
new Xs(this._layersSeries || [], l, n, n)
.add(m(o, this, 'add'))
.update(m(o, this, 'update'))
.remove(m(o, this, 'remove'))
.execute(),
(this._layersSeries = l),
(this._layers = d);
},
dispose: function () {},
});
zs(function (t, e) {
t.eachSeriesByType('themeRiver', function (t) {
var e = t.getData(),
i = t.coordinateSystem,
n = {},
o = i.getRect();
n.rect = o;
var a = t.get('boundaryGap'),
r = i.getAxis();
(n.boundaryGap = a),
'horizontal' === r.orient
? ((a[0] = Vo(a[0], o.height)),
(a[1] = Vo(a[1], o.height)),
Rm(e, t, o.height - a[0] - a[1]))
: ((a[0] = Vo(a[0], o.width)),
(a[1] = Vo(a[1], o.width)),
Rm(e, t, o.width - a[0] - a[1])),
e.setLayout('layoutInfo', n);
});
}),
Bs(function (t) {
t.eachSeriesByType('themeRiver', function (t) {
var e = t.getData(),
i = t.getRawData(),
n = t.get('color'),
o = R();
e.each(function (t) {
o.set(e.getRawIndex(t), t);
}),
i.each(function (a) {
var r = i.getName(a),
s = n[(t.nameMap.get(r) - 1) % n.length];
i.setItemVisual(a, 'color', s);
var l = o.get(a);
null != l && e.setItemVisual(l, 'color', s);
});
});
}),
Os(fC('themeRiver')),
YI.extend({
type: 'series.sunburst',
_viewRoot: null,
getInitialData: function (t, e) {
var i = { name: t.name, children: t.data };
Bm(i);
var n = t.levels || [],
o = {};
return (o.levels = n), Vc.createTree(i, this, o).data;
},
optionUpdated: function () {
this.resetViewRoot();
},
getDataParams: function (t) {
var e = YI.prototype.getDataParams.apply(this, arguments),
i = this.getData().tree.getNodeByDataIndex(t);
return (e.treePathInfo = cd(i, this)), e;
},
defaultOption: {
zlevel: 0,
z: 2,
center: ['50%', '50%'],
radius: [0, '75%'],
clockwise: !0,
startAngle: 90,
minAngle: 0,
percentPrecision: 2,
stillShowZeroSum: !0,
highlightPolicy: 'descendant',
nodeClick: 'rootToNode',
renderLabelForZeroData: !1,
label: {
rotate: 'radial',
show: !0,
opacity: 1,
align: 'center',
position: 'inside',
distance: 5,
silent: !0,
emphasis: {},
},
itemStyle: {
borderWidth: 1,
borderColor: 'white',
borderType: 'solid',
shadowBlur: 0,
shadowColor: 'rgba(0, 0, 0, 0.2)',
shadowOffsetX: 0,
shadowOffsetY: 0,
opacity: 1,
emphasis: {},
highlight: { opacity: 1 },
downplay: { opacity: 0.9 },
},
animationType: 'expansion',
animationDuration: 1e3,
animationDurationUpdate: 500,
animationEasing: 'cubicOut',
data: [],
levels: [],
sort: 'desc',
},
getViewRoot: function () {
return this._viewRoot;
},
resetViewRoot: function (t) {
t ? (this._viewRoot = t) : (t = this._viewRoot);
var e = this.getRawData().tree.root;
(t && (t === e || e.contains(t))) || (this._viewRoot = e);
},
});
var RP = {
NONE: 'none',
DESCENDANT: 'descendant',
ANCESTOR: 'ancestor',
SELF: 'self',
},
zP = 2,
BP = 4,
VP = Vm.prototype;
(VP.updateData = function (t, e, i, o, s) {
(this.node = e),
(e.piece = this),
(o = o || this._seriesModel),
(s = s || this._ecModel);
var l = this.childAt(0);
l.dataIndex = e.dataIndex;
var u = e.getModel(),
h = e.getLayout(),
c = a({}, h);
c.label = null;
var d = Gm(e, 0, s);
Hm(e, o, d);
var f,
p = u.getModel('itemStyle').getItemStyle();
(f = r(
{
lineJoin: 'bevel',
fill:
(f =
'normal' === i
? p
: n(u.getModel(i + '.itemStyle').getItemStyle(), p)).fill || d,
},
f,
)),
t
? (l.setShape(c),
(l.shape.r = h.r0),
Io(l, { shape: { r: h.r } }, o, e.dataIndex),
l.useStyle(f))
: ('object' == typeof f.fill && f.fill.type) ||
('object' == typeof l.style.fill && l.style.fill.type)
? (Io(l, { shape: c }, o), l.useStyle(f))
: Io(l, { shape: c, style: f }, o),
this._updateLabel(o, d, i);
var g = u.getShallow('cursor');
if ((g && l.attr('cursor', g), t)) {
var m = o.getShallow('highlightPolicy');
this._initEvents(l, e, o, m);
}
(this._seriesModel = o || this._seriesModel),
(this._ecModel = s || this._ecModel);
}),
(VP.onEmphasis = function (t) {
var e = this;
this.node.hostTree.root.eachNode(function (i) {
i.piece &&
(e.node === i
? i.piece.updateData(!1, i, 'emphasis')
: Wm(i, e.node, t)
? i.piece.childAt(0).trigger('highlight')
: t !== RP.NONE && i.piece.childAt(0).trigger('downplay'));
});
}),
(VP.onNormal = function () {
this.node.hostTree.root.eachNode(function (t) {
t.piece && t.piece.updateData(!1, t, 'normal');
});
}),
(VP.onHighlight = function () {
this.updateData(!1, this.node, 'highlight');
}),
(VP.onDownplay = function () {
this.updateData(!1, this.node, 'downplay');
}),
(VP._updateLabel = function (t, e, i) {
function n(t) {
var e = r.get(t);
return null == e ? a.get(t) : e;
}
var o = this.node.getModel(),
a = o.getModel('label'),
r = 'normal' === i || 'emphasis' === i ? a : o.getModel(i + '.label'),
s = o.getModel('emphasis.label'),
l = T(
t.getFormattedLabel(
this.node.dataIndex,
'normal',
null,
null,
'label',
),
this.node.name,
);
!1 === n('show') && (l = '');
var u = this.node.getLayout(),
h = r.get('minAngle');
null == h && (h = a.get('minAngle')), (h = (h / 180) * Math.PI);
var c = u.endAngle - u.startAngle;
null != h && Math.abs(c) < h && (l = '');
var d = this.childAt(1);
go(d.style, d.hoverStyle || {}, a, s, {
defaultText: r.getShallow('show') ? l : null,
autoColor: e,
useInsideStyle: !0,
});
var f,
p = (u.startAngle + u.endAngle) / 2,
g = Math.cos(p),
m = Math.sin(p),
v = n('position'),
y = n('distance') || 0,
x = n('align');
'outside' === v
? ((f = u.r + y), (x = p > Math.PI / 2 ? 'right' : 'left'))
: x && 'center' !== x
? 'left' === x
? ((f = u.r0 + y), p > Math.PI / 2 && (x = 'right'))
: 'right' === x && ((f = u.r - y), p > Math.PI / 2 && (x = 'left'))
: ((f = (u.r + u.r0) / 2), (x = 'center')),
d.attr('style', {
text: l,
textAlign: x,
textVerticalAlign: n('verticalAlign') || 'middle',
opacity: n('opacity'),
});
var _ = f * g + u.cx,
w = f * m + u.cy;
d.attr('position', [_, w]);
var b = n('rotate'),
S = 0;
'radial' === b
? (S = -p) < -Math.PI / 2 && (S += Math.PI)
: 'tangential' === b
? (S = Math.PI / 2 - p) > Math.PI / 2
? (S -= Math.PI)
: S < -Math.PI / 2 && (S += Math.PI)
: 'number' == typeof b && (S = (b * Math.PI) / 180),
d.attr('rotation', S);
}),
(VP._initEvents = function (t, e, i, n) {
t.off('mouseover').off('mouseout').off('emphasis').off('normal');
var o = this,
a = function () {
o.onEmphasis(n);
},
r = function () {
o.onNormal();
};
i.isAnimationEnabled() &&
t
.on('mouseover', a)
.on('mouseout', r)
.on('emphasis', a)
.on('normal', r)
.on('downplay', function () {
o.onDownplay();
})
.on('highlight', function () {
o.onHighlight();
});
}),
u(Vm, tb);
Ar.extend({
type: 'sunburst',
init: function () {},
render: function (t, e, i, n) {
function o(i, n) {
if ((c || !i || i.getValue() || (i = null), i !== l && n !== l))
if (n && n.piece)
i
? (n.piece.updateData(!1, i, 'normal', t, e),
s.setItemGraphicEl(i.dataIndex, n.piece))
: a(n);
else if (i) {
var o = new Vm(i, t, e);
h.add(o), s.setItemGraphicEl(i.dataIndex, o);
}
}
function a(t) {
t && t.piece && (h.remove(t.piece), (t.piece = null));
}
var r = this;
(this.seriesModel = t), (this.api = i), (this.ecModel = e);
var s = t.getData(),
l = s.tree.root,
u = t.getViewRoot(),
h = this.group,
c = t.get('renderLabelForZeroData'),
d = [];
u.eachNode(function (t) {
d.push(t);
});
var f = this._oldChildren || [];
if (
((function (t, e) {
function i(t) {
return t.getId();
}
function n(i, n) {
o(null == i ? null : t[i], null == n ? null : e[n]);
}
(0 === t.length && 0 === e.length) ||
new Xs(e, t, i, i).add(n).update(n).remove(v(n, null)).execute();
})(d, f),
(function (i, n) {
if (n.depth > 0) {
r.virtualPiece
? r.virtualPiece.updateData(!1, i, 'normal', t, e)
: ((r.virtualPiece = new Vm(i, t, e)), h.add(r.virtualPiece)),
n.piece._onclickEvent &&
n.piece.off('click', n.piece._onclickEvent);
var o = function (t) {
r._rootToNode(n.parentNode);
};
(n.piece._onclickEvent = o), r.virtualPiece.on('click', o);
} else
r.virtualPiece &&
(h.remove(r.virtualPiece), (r.virtualPiece = null));
})(l, u),
n && n.highlight && n.highlight.piece)
) {
var p = t.getShallow('highlightPolicy');
n.highlight.piece.onEmphasis(p);
} else if (n && n.unhighlight) {
var g = this.virtualPiece;
!g && l.children.length && (g = l.children[0].piece), g && g.onNormal();
}
this._initEvents(), (this._oldChildren = d);
},
dispose: function () {},
_initEvents: function () {
var t = this,
e = function (e) {
var i = !1;
t.seriesModel.getViewRoot().eachNode(function (n) {
if (!i && n.piece && n.piece.childAt(0) === e.target) {
var o = n.getModel().get('nodeClick');
if ('rootToNode' === o) t._rootToNode(n);
else if ('link' === o) {
var a = n.getModel(),
r = a.get('link');
if (r) {
var s = a.get('target', !0) || '_blank';
window.open(r, s);
}
}
i = !0;
}
});
};
this.group._onclickEvent &&
this.group.off('click', this.group._onclickEvent),
this.group.on('click', e),
(this.group._onclickEvent = e);
},
_rootToNode: function (t) {
t !== this.seriesModel.getViewRoot() &&
this.api.dispatchAction({
type: 'sunburstRootToNode',
from: this.uid,
seriesId: this.seriesModel.id,
targetNode: t,
});
},
containPoint: function (t, e) {
var i = e.getData().getItemLayout(0);
if (i) {
var n = t[0] - i.cx,
o = t[1] - i.cy,
a = Math.sqrt(n * n + o * o);
return a <= i.r && a >= i.r0;
}
},
});
var GP = 'sunburstRootToNode';
Es({ type: GP, update: 'updateView' }, function (t, e) {
e.eachComponent(
{ mainType: 'series', subType: 'sunburst', query: t },
function (e, i) {
var n = ld(t, [GP], e);
if (n) {
var o = e.getViewRoot();
o && (t.direction = hd(o, n.node) ? 'rollUp' : 'drillDown'),
e.resetViewRoot(n.node);
}
},
);
});
var FP = 'sunburstHighlight';
Es({ type: FP, update: 'updateView' }, function (t, e) {
e.eachComponent(
{ mainType: 'series', subType: 'sunburst', query: t },
function (e, i) {
var n = ld(t, [FP], e);
n && (t.highlight = n.node);
},
);
});
Es({ type: 'sunburstUnhighlight', update: 'updateView' }, function (t, e) {
e.eachComponent(
{ mainType: 'series', subType: 'sunburst', query: t },
function (e, i) {
t.unhighlight = !0;
},
);
});
var WP = Math.PI / 180;
Bs(v(uC, 'sunburst')),
zs(
v(function (t, e, i, n) {
e.eachSeriesByType(t, function (t) {
var e = t.get('center'),
n = t.get('radius');
y(n) || (n = [0, n]), y(e) || (e = [e, e]);
var o = i.getWidth(),
a = i.getHeight(),
r = Math.min(o, a),
s = Vo(e[0], o),
l = Vo(e[1], a),
u = Vo(n[0], r / 2),
h = Vo(n[1], r / 2),
c = -t.get('startAngle') * WP,
f = t.get('minAngle') * WP,
p = t.getData().tree.root,
g = t.getViewRoot(),
m = g.depth,
v = t.get('sort');
null != v && Zm(g, v);
var x = 0;
d(g.children, function (t) {
!isNaN(t.getValue()) && x++;
});
var _ = g.getValue(),
w = (Math.PI / (_ || x)) * 2,
b = g.depth > 0,
S = g.height - (b ? -1 : 1),
M = (h - u) / (S || 1),
I = t.get('clockwise'),
T = t.get('stillShowZeroSum'),
A = I ? 1 : -1,
D = function (t, e) {
if (t) {
var i = e;
if (t !== p) {
var n = t.getValue(),
o = 0 === _ && T ? w : n * w;
o < f && (o = f), (i = e + A * o);
var a = t.depth - m - (b ? -1 : 1),
h = u + M * a,
c = u + M * (a + 1),
g = t.getModel();
null != g.get('r0') && (h = Vo(g.get('r0'), r / 2)),
null != g.get('r') && (c = Vo(g.get('r'), r / 2)),
t.setLayout({
angle: o,
startAngle: e,
endAngle: i,
clockwise: I,
cx: s,
cy: l,
r0: h,
r: c,
});
}
if (t.children && t.children.length) {
var v = 0;
d(t.children, function (t) {
v += D(t, e + v);
});
}
return i - e;
}
};
if (b) {
var C = u,
L = u + M,
k = 2 * Math.PI;
p.setLayout({
angle: k,
startAngle: c,
endAngle: c + k,
clockwise: I,
cx: s,
cy: l,
r0: C,
r: L,
});
}
D(g, c);
});
}, 'sunburst'),
),
Os(v(fC, 'sunburst'));
var HP = ['itemStyle'],
ZP = ['emphasis', 'itemStyle'],
UP = ['label'],
XP = ['emphasis', 'label'],
jP = 'e\0\0',
YP = {
cartesian2d: 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: m(Xm, t),
},
};
},
geo: 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: m(jm, t),
},
};
},
singleAxis: 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: m(Ym, t),
},
};
},
polar: 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: m(function (n) {
var o = e.dataToRadius(n[0]),
a = i.dataToAngle(n[1]),
r = t.coordToPoint([o, a]);
return r.push(o, (a * Math.PI) / 180), r;
}),
size: m(qm, t),
},
}
);
},
calendar: 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);
},
},
};
},
};
YI.extend({
type: 'series.custom',
dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'],
defaultOption: {
coordinateSystem: 'cartesian2d',
zlevel: 0,
z: 2,
legendHoverLink: !0,
useTransform: !0,
},
getInitialData: function (t, e) {
return ml(this.getSource(), this);
},
getDataParams: function (t, e, i) {
var n = YI.prototype.getDataParams.apply(this, arguments);
return i && (n.info = i.info), n;
},
}),
Ar.extend({
type: 'custom',
_data: null,
render: function (t, e, i, n) {
var o = this._data,
a = t.getData(),
r = this.group,
s = Qm(t, a, e, i);
a
.diff(o)
.add(function (e) {
ev(null, e, s(e, n), t, r, a);
})
.update(function (e, i) {
ev(o.getItemGraphicEl(i), e, s(e, n), t, r, a);
})
.remove(function (t) {
var e = o.getItemGraphicEl(t);
e && r.remove(e);
})
.execute(),
(this._data = a);
},
incrementalPrepareRender: function (t, e, i) {
this.group.removeAll(), (this._data = null);
},
incrementalRender: function (t, e, i, n, o) {
for (
var a = e.getData(), r = Qm(e, a, i, n), s = t.start;
s < t.end;
s++
)
ev(null, s, r(s, o), e, this.group, a).traverse(function (t) {
t.isGroup || ((t.incremental = !0), (t.useHoverLayer = !0));
});
},
dispose: B,
filterForExposedEvent: function (t, e, i, n) {
var o = e.element;
if (null == o || i.name === o) return !0;
for (; (i = i.parent) && i !== this.group; )
if (i.name === o) return !0;
return !1;
},
}),
Ns(function (t) {
var e = t.graphic;
y(e)
? e[0] && e[0].elements
? (t.graphic = [t.graphic[0]])
: (t.graphic = [{ elements: e }])
: e && !e.elements && (t.graphic = [{ elements: [e] }]);
});
var qP = Fs({
type: 'graphic',
defaultOption: { elements: [], parentId: null },
_elOptionsToUpdate: null,
mergeOption: function (t) {
var e = this.option.elements;
(this.option.elements = null),
qP.superApply(this, 'mergeOption', arguments),
(this.option.elements = e);
},
optionUpdated: function (t, e) {
var i = this.option,
n = (e ? i : t).elements,
o = (i.elements = e ? [] : i.elements),
a = [];
this._flatten(n, a);
var r = Pi(o, a);
Ni(r);
var s = (this._elOptionsToUpdate = []);
d(
r,
function (t, e) {
var i = t.option;
i && (s.push(i), gv(t, i), mv(o, e, i), vv(o[e], i));
},
this,
);
for (var l = o.length - 1; l >= 0; l--)
null == o[l] ? o.splice(l, 1) : delete o[l].$action;
},
_flatten: function (t, e, i) {
d(
t,
function (t) {
if (t) {
i && (t.parentOption = i), e.push(t);
var n = t.children;
'group' === t.type && n && this._flatten(n, e, t),
delete t.children;
}
},
this,
);
},
useElOptionsToUpdate: function () {
var t = this._elOptionsToUpdate;
return (this._elOptionsToUpdate = null), t;
},
});
Ws({
type: 'graphic',
init: function (t, e) {
(this._elMap = R()), this._lastGraphicModel;
},
render: function (t, e, i) {
t !== this._lastGraphicModel && this._clear(),
(this._lastGraphicModel = t),
this._updateElements(t),
this._relocate(t, i);
},
_updateElements: function (t) {
var e = t.useElOptionsToUpdate();
if (e) {
var i = this._elMap,
n = this.group;
d(e, function (e) {
var o = e.$action,
a = e.id,
r = i.get(a),
s = e.parentId,
l = null != s ? i.get(s) : n,
u = e.style;
'text' === e.type &&
u &&
(e.hv && e.hv[1] && (u.textVerticalAlign = u.textBaseline = null),
!u.hasOwnProperty('textFill') && u.fill && (u.textFill = u.fill),
!u.hasOwnProperty('textStroke') &&
u.stroke &&
(u.textStroke = u.stroke));
var h = fv(e);
o && 'merge' !== o
? 'replace' === o
? (dv(r, i), cv(a, l, h, i))
: 'remove' === o && dv(r, i)
: r
? r.attr(h)
: cv(a, l, h, i);
var c = i.get(a);
c &&
((c.__ecGraphicWidth = e.width),
(c.__ecGraphicHeight = e.height),
yv(c, t));
});
}
},
_relocate: function (t, e) {
for (
var i = t.option.elements,
n = this.group,
o = this._elMap,
a = i.length - 1;
a >= 0;
a--
) {
var r = i[a],
s = o.get(r.id);
if (s) {
var l = s.parent;
da(
s,
r,
l === n
? { width: e.getWidth(), height: e.getHeight() }
: {
width: l.__ecGraphicWidth || 0,
height: l.__ecGraphicHeight || 0,
},
null,
{ hv: r.hv, boundingMode: r.bounding },
);
}
}
},
_clear: function () {
var t = this._elMap;
t.each(function (e) {
dv(e, t);
}),
(this._elMap = R());
},
dispose: function () {
this._clear();
},
});
var KP = Fs({
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) {
KP.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 o = n.name;
i.push(o);
var a;
if (n.legendDataProvider) {
var r = n.legendDataProvider(),
s = r.mapArray(r.getName);
t.isSeriesFiltered(n) || (i = i.concat(s)),
s.length ? (e = e.concat(s)) : (a = !0);
} else a = !0;
a && Oi(n) && e.push(n.name);
}),
(this._availableNames = i);
var n = f(
this.get('data') || e,
function (t) {
return (
('string' != typeof t && 'number' != typeof t) || (t = { name: t }),
new No(t, this, this.ecModel)
);
},
this,
);
this._data = n;
},
getData: function () {
return this._data;
},
select: function (t) {
var e = this.option.selected;
'single' === this.get('selectedMode') &&
d(this._data, 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]) && l(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 },
},
});
Es('legendToggleSelect', 'legendselectchanged', v(xv, 'toggleSelected')),
Es('legendSelect', 'legendselected', v(xv, 'select')),
Es('legendUnSelect', 'legendunselected', v(xv, 'unSelect'));
var $P = v,
JP = d,
QP = tb,
tN = Ws({
type: 'legend.plain',
newlineDisabled: !1,
init: function () {
this.group.add((this._contentGroup = new QP())),
this._backgroundEl,
(this._isFirstRender = !0);
},
getContentGroup: function () {
return this._contentGroup;
},
render: function (t, e, i) {
var n = this._isFirstRender;
if (
((this._isFirstRender = !1), this.resetInner(), t.get('show', !0))
) {
var o = t.get('align');
(o && 'auto' !== o) ||
(o =
'right' === t.get('left') && 'vertical' === t.get('orient')
? 'right'
: 'left'),
this.renderInner(o, t, e, i);
var a = t.getBoxLayoutParams(),
s = { width: i.getWidth(), height: i.getHeight() },
l = t.get('padding'),
u = ca(a, s, l),
h = this.layoutInner(t, o, u, n),
c = ca(r({ width: h.width, height: h.height }, a), s, l);
this.group.attr('position', [c.x - h.x, c.y - h.y]),
this.group.add((this._backgroundEl = wv(h, t)));
}
},
resetInner: function () {
this.getContentGroup().removeAll(),
this._backgroundEl && this.group.remove(this._backgroundEl);
},
renderInner: function (t, e, i, n) {
var o = this.getContentGroup(),
a = R(),
r = e.get('selectedMode'),
s = [];
i.eachRawSeries(function (t) {
!t.get('legendHoverLink') && s.push(t.id);
}),
JP(
e.getData(),
function (l, u) {
var h = l.get('name');
if (this.newlineDisabled || ('' !== h && '\n' !== h)) {
var c = i.getSeriesByName(h)[0];
if (!a.get(h))
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');
this._createItem(h, u, l, e, p, g, t, f, r)
.on('click', $P(bv, h, n))
.on('mouseover', $P(Sv, c.name, null, n, s))
.on('mouseout', $P(Mv, c.name, null, n, s)),
a.set(h, !0);
} else
i.eachRawSeries(function (i) {
if (!a.get(h) && i.legendDataProvider) {
var o = i.legendDataProvider(),
c = o.indexOfName(h);
if (c < 0) return;
var d = o.getItemVisual(c, 'color');
this._createItem(h, u, l, e, 'roundRect', null, t, d, r)
.on('click', $P(bv, h, n))
.on('mouseover', $P(Sv, null, h, n, s))
.on('mouseout', $P(Mv, null, h, n, s)),
a.set(h, !0);
}
}, this);
} else o.add(new QP({ newline: !0 }));
},
this,
);
},
_createItem: function (t, e, i, n, o, r, s, l, u) {
var h = n.get('itemWidth'),
c = n.get('itemHeight'),
d = n.get('inactiveColor'),
f = n.get('symbolKeepAspect'),
p = n.isSelected(t),
g = new QP(),
m = i.getModel('textStyle'),
v = i.get('icon'),
y = i.getModel('tooltip'),
x = y.parentModel;
if (
((o = v || o),
g.add(Jl(o, 0, 0, h, c, p ? l : d, null == f || f)),
!v && r && (r !== o || 'none' === r))
) {
var _ = 0.8 * c;
'none' === r && (r = 'circle'),
g.add(
Jl(r, (h - _) / 2, (c - _) / 2, _, _, p ? l : d, null == f || f),
);
}
var w = 'left' === s ? h + 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 rM({
style: mo({}, m, {
text: M,
x: w,
y: c / 2,
textFill: p ? m.getTextColor() : d,
textAlign: b,
textVerticalAlign: 'middle',
}),
}),
);
var I = new yM({
shape: g.getBoundingRect(),
invisible: !0,
tooltip: y.get('show')
? a(
{
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 = !u),
this.getContentGroup().add(g),
fo(g),
(g.__legendDataIndex = e),
g
);
},
layoutInner: function (t, e, i) {
var n = this.getContentGroup();
aI(t.get('orient'), n, t.get('itemGap'), i.width, i.height);
var o = n.getBoundingRect();
return n.attr('position', [-o.x, -o.y]), this.group.getBoundingRect();
},
remove: function () {
this.getContentGroup().removeAll(), (this._isFirstRender = !0);
},
});
Os(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;
});
}),
lI.registerSubTypeDefaulter('legend', function () {
return 'plain';
});
var eN = KP.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 o = ga(t);
eN.superCall(this, 'init', t, e, i, n), Iv(this, t, o);
},
mergeOption: function (t, e) {
eN.superCall(this, 'mergeOption', t, e), Iv(this, this.option, t);
},
getOrient: function () {
return 'vertical' === this.get('orient')
? { index: 1, name: 'vertical' }
: { index: 0, name: 'horizontal' };
},
}),
iN = tb,
nN = ['width', 'height'],
oN = ['x', 'y'],
aN = tN.extend({
type: 'legend.scroll',
newlineDisabled: !0,
init: function () {
aN.superCall(this, 'init'),
(this._currentIndex = 0),
this.group.add((this._containerGroup = new iN())),
this._containerGroup.add(this.getContentGroup()),
this.group.add((this._controllerGroup = new iN())),
this._showController;
},
resetInner: function () {
aN.superCall(this, 'resetInner'),
this._controllerGroup.removeAll(),
this._containerGroup.removeClipPath(),
(this._containerGroup.__rectSize = null);
},
renderInner: function (t, e, i, n) {
function o(t, i) {
var o = t + 'DataIndex',
l = Po(
e.get('pageIcons', !0)[e.getOrient().name][i],
{ onclick: m(a._pageGo, a, o, e, n) },
{ x: -s[0] / 2, y: -s[1] / 2, width: s[0], height: s[1] },
);
(l.name = t), r.add(l);
}
var a = this;
aN.superCall(this, 'renderInner', t, e, i, n);
var r = this._controllerGroup,
s = e.get('pageIconSize', !0);
y(s) || (s = [s, s]), o('pagePrev', 0);
var l = e.getModel('pageTextStyle');
r.add(
new rM({
name: 'pageText',
style: {
textFill: l.getTextColor(),
font: l.getFont(),
textVerticalAlign: 'middle',
textAlign: 'center',
},
silent: !0,
}),
),
o('pageNext', 1);
},
layoutInner: function (t, e, i, n) {
var o = this.getContentGroup(),
a = this._containerGroup,
r = this._controllerGroup,
s = t.getOrient().index,
l = nN[s],
u = nN[1 - s],
h = oN[1 - s];
aI(
t.get('orient'),
o,
t.get('itemGap'),
s ? i.width : null,
s ? null : i.height,
),
aI('horizontal', r, t.get('pageButtonItemGap', !0));
var c = o.getBoundingRect(),
d = r.getBoundingRect(),
f = (this._showController = c[l] > i[l]),
p = [-c.x, -c.y];
n || (p[s] = o.position[s]);
var g = [0, 0],
m = [-d.x, -d.y],
v = A(t.get('pageButtonGap', !0), t.get('itemGap', !0));
f &&
('end' === t.get('pageButtonPosition', !0)
? (m[s] += i[l] - d[l])
: (g[s] += d[l] + v)),
(m[1 - s] += c[u] / 2 - d[u] / 2),
o.attr('position', p),
a.attr('position', g),
r.attr('position', m);
var y = this.group.getBoundingRect();
if (
(((y = { x: 0, y: 0 })[l] = f ? i[l] : c[l]),
(y[u] = Math.max(c[u], d[u])),
(y[h] = Math.min(0, d[h] + m[1 - s])),
(a.__rectSize = i[l]),
f)
) {
var x = { x: 0, y: 0 };
(x[l] = Math.max(i[l] - d[l] - v, 0)),
(x[u] = y[u]),
a.setClipPath(new yM({ shape: x })),
(a.__rectSize = x[l]);
} else
r.eachChild(function (t) {
t.attr({ invisible: !0, silent: !0 });
});
var _ = this._getPageInfo(t);
return (
null != _.pageIndex &&
Io(o, { position: _.contentPosition }, !!f && t),
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;
d(['pagePrev', 'pageNext'], function (n) {
var o = null != e[n + 'DataIndex'],
a = i.childOfName(n);
a &&
(a.setStyle(
'fill',
o
? t.get('pageIconColor', !0)
: t.get('pageIconInactiveColor', !0),
),
(a.cursor = o ? 'pointer' : 'default'));
});
var n = i.childOfName('pageText'),
o = t.get('pageFormatter'),
a = e.pageIndex,
r = null != a ? a + 1 : 0,
s = e.pageCount;
n &&
o &&
n.setStyle(
'text',
_(o)
? o.replace('{current}', r).replace('{total}', s)
: o({ current: r, total: s }),
);
},
_getPageInfo: function (t) {
function e(t) {
if (t) {
var e = t.getBoundingRect(),
i = e[l] + t.position[r];
return { s: i, e: i + e[s], i: t.__legendDataIndex };
}
}
function i(t, e) {
return t.e >= e && t.s <= e + a;
}
var n = t.get('scrollDataIndex', !0),
o = this.getContentGroup(),
a = this._containerGroup.__rectSize,
r = t.getOrient().index,
s = nN[r],
l = oN[r],
u = this._findTargetItemIndex(n),
h = o.children(),
c = h[u],
d = h.length,
f = d ? 1 : 0,
p = {
contentPosition: o.position.slice(),
pageCount: f,
pageIndex: f - 1,
pagePrevDataIndex: null,
pageNextDataIndex: null,
};
if (!c) return p;
var g = e(c);
p.contentPosition[r] = -g.s;
for (var m = u + 1, v = g, y = g, x = null; m <= d; ++m)
((!(x = e(h[m])) && y.e > v.s + a) || (x && !i(x, v.s))) &&
(v = y.i > v.i ? y : x) &&
(null == p.pageNextDataIndex && (p.pageNextDataIndex = v.i),
++p.pageCount),
(y = x);
for (var m = u - 1, v = g, y = g, x = null; m >= -1; --m)
((x = e(h[m])) && i(y, x.s)) ||
!(v.i < y.i) ||
((y = v),
null == p.pagePrevDataIndex && (p.pagePrevDataIndex = v.i),
++p.pageCount,
++p.pageIndex),
(v = x);
return p;
},
_findTargetItemIndex: function (t) {
var e,
i = this.getContentGroup();
return (
this._showController
? i.eachChild(function (i, n) {
i.__legendDataIndex === t && (e = n);
})
: (e = 0),
e
);
},
});
Es('legendScroll', 'legendscroll', function (t, e) {
var i = t.scrollDataIndex;
null != i &&
e.eachComponent(
{ mainType: 'legend', subType: 'scroll', query: t },
function (t) {
t.setScrollDataIndex(i);
},
);
}),
Fs({
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: 0.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 rN = d,
sN = ea,
lN = ['', '-webkit-', '-moz-', '-o-'];
(Cv.prototype = {
constructor: Cv,
_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 =
'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;' +
Dv(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 o = this.el.style;
(o.left = t + 'px'), (o.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(m(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 };
},
}),
(Lv.prototype = {
constructor: Lv,
_enterable: !0,
update: function () {},
show: function (t) {
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 = {}, o = t, a = o.indexOf('{marker'); a >= 0; ) {
var r = o.indexOf('|}'),
s = o.substr(a + '{marker'.length, r - a - '{marker'.length);
s.indexOf('sub') > -1
? (n['marker' + s] = {
textWidth: 4,
textHeight: 4,
textBorderRadius: 2,
textBackgroundColor: e[s],
textOffset: [3, 0],
})
: (n['marker' + s] = {
textWidth: 10,
textHeight: 10,
textBorderRadius: 5,
textBackgroundColor: e[s],
}),
(a = (o = o.substr(r + 1)).indexOf('{marker'));
}
(this.el = new rM({
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 l = this;
this.el.on('mouseover', function () {
l._enterable && (clearTimeout(l._hideTimeout), (l._show = !0)),
(l._inContent = !0);
}),
this.el.on('mouseout', function () {
l._enterable && l._show && l.hideLater(l._hideDelay),
(l._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(m(this.hide, this), t)))
: this.hide());
},
isShow: function () {
return this._show;
},
getOuterSize: function () {
return this.getSize();
},
});
var uN = m,
hN = d,
cN = Vo,
dN = new yM({ shape: { x: -1, y: -1, width: 2, height: 2 } });
Ws({
type: 'tooltip',
init: function (t, e) {
if (!U_.node) {
var i = t.getComponent('tooltip').get('renderMode');
this._renderMode = Hi(i);
var n;
'html' === this._renderMode
? ((n = new Cv(e.getDom(), e)), (this._newLine = '
'))
: ((n = new Lv(e)), (this._newLine = '\n')),
(this._tooltipContent = n);
}
},
render: function (t, e, i) {
if (!U_.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.get('triggerOn');
um(
'itemTooltip',
this._api,
uN(function (e, i, n) {
'none' !== t &&
(t.indexOf(e) >= 0
? this._tryShow(i, n)
: 'leave' === e && 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 && !U_.node) {
var o = Pv(n, i);
this._ticket = '';
var a = n.dataByCoordSys;
if (n.tooltip && null != n.x && null != n.y) {
var r = dN;
(r.position = [n.x, n.y]),
r.update(),
(r.tooltip = n.tooltip),
this._tryShow({ offsetX: n.x, offsetY: n.y, target: r }, o);
} else if (a)
this._tryShow(
{
offsetX: n.x,
offsetY: n.y,
position: n.position,
event: {},
dataByCoordSys: n.dataByCoordSys,
tooltipOption: n.tooltipOption,
},
o,
);
else if (null != n.seriesIndex) {
if (this._manuallyAxisShowTip(t, e, i, n)) return;
var s = xP(n, e),
l = s.point[0],
u = s.point[1];
null != l &&
null != u &&
this._tryShow(
{
offsetX: l,
offsetY: u,
position: n.position,
target: s.el,
event: {},
},
o,
);
} 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: {},
},
o,
));
}
},
manuallyHideTip: function (t, e, i, n) {
var o = this._tooltipContent;
!this._alwaysShowContent &&
this._tooltipModel &&
o.hideLater(this._tooltipModel.get('hideDelay')),
(this._lastX = this._lastY = null),
n.from !== this.uid && this._hide(Pv(n, i));
},
_manuallyAxisShowTip: function (t, e, i, n) {
var o = n.seriesIndex,
a = n.dataIndex,
r = e.getComponent('axisPointer').coordSysAxesInfo;
if (null != o && null != a && null != r) {
var s = e.getSeriesByIndex(o);
if (
s &&
'axis' ===
(t = kv([
s.getData().getItemModel(a),
s,
(s.coordinateSystem || {}).model,
t,
])).get('trigger')
)
return (
i.dispatchAction({
type: 'updateAxisPointer',
seriesIndex: o,
dataIndex: a,
position: n.position,
}),
!0
);
}
},
_tryShow: function (t, e) {
var i = t.target;
if (this._tooltipModel) {
(this._lastX = t.offsetX), (this._lastY = t.offsetY);
var n = t.dataByCoordSys;
n && n.length
? this._showAxisTooltip(n, 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 = m(e, this)),
clearTimeout(this._showTimout),
i > 0 ? (this._showTimout = setTimeout(e, i)) : e();
},
_showAxisTooltip: function (t, e) {
var i = this._ecModel,
o = this._tooltipModel,
a = [e.offsetX, e.offsetY],
r = [],
s = [],
l = kv([e.tooltipOption, o]),
u = this._renderMode,
h = this._newLine,
c = {};
hN(
t,
function (t) {
hN(t.dataByAxis, function (t) {
var e = i.getComponent(t.axisDim + 'Axis', t.axisIndex),
o = t.value,
a = [];
if (e && null != o) {
var l = Im(o, e.axis, i, t.seriesDataIndices, t.valueLabelOpt);
d(t.seriesDataIndices, function (r) {
var h = i.getSeriesByIndex(r.seriesIndex),
d = r.dataIndexInside,
f = h && h.getDataParams(d);
if (
((f.axisDim = t.axisDim),
(f.axisIndex = t.axisIndex),
(f.axisType = t.axisType),
(f.axisId = t.axisId),
(f.axisValue = Xl(e.axis, o)),
(f.axisValueLabel = l),
f)
) {
s.push(f);
var p,
g = h.formatTooltip(d, !0, null, u);
if (w(g)) {
p = g.html;
var m = g.markers;
n(c, m);
} else p = g;
a.push(p);
}
});
var f = l;
'html' !== u
? r.push(a.join(h))
: r.push((f ? ia(f) + h : '') + a.join(h));
}
});
},
this,
),
r.reverse(),
(r = r.join(this._newLine + this._newLine));
var f = e.position;
this._showOrMove(l, function () {
this._updateContentNotChangedOnAxis(t)
? this._updatePosition(l, f, a[0], a[1], this._tooltipContent, s)
: this._showTooltipContent(
l,
r,
s,
Math.random(),
a[0],
a[1],
f,
void 0,
c,
);
});
},
_showSeriesItemTooltip: function (t, e, i) {
var n = this._ecModel,
o = e.seriesIndex,
a = n.getSeriesByIndex(o),
r = e.dataModel || a,
s = e.dataIndex,
l = e.dataType,
u = r.getData(),
h = kv([
u.getItemModel(s),
r,
a && (a.coordinateSystem || {}).model,
this._tooltipModel,
]),
c = h.get('trigger');
if (null == c || 'item' === c) {
var d,
f,
p = r.getDataParams(s, l),
g = r.formatTooltip(s, !1, l, this._renderMode);
w(g) ? ((d = g.html), (f = g.markers)) : ((d = g), (f = null));
var m = 'item_' + r.name + '_' + s;
this._showOrMove(h, function () {
this._showTooltipContent(
h,
d,
p,
m,
t.offsetX,
t.offsetY,
t.position,
t.target,
f,
);
}),
i({
type: 'showTip',
dataIndexInside: s,
dataIndex: u.getRawIndex(s),
seriesIndex: o,
from: this.uid,
});
}
},
_showComponentItemTooltip: function (t, e, i) {
var n = e.tooltip;
if ('string' == typeof n) {
var o = n;
n = { content: o, formatter: o };
}
var a = new No(n, this._tooltipModel, this._ecModel),
r = a.get('content'),
s = Math.random();
this._showOrMove(a, function () {
this._showTooltipContent(
a,
r,
a.get('formatterParams') || {},
s,
t.offsetX,
t.offsetY,
t.position,
e,
);
}),
i({ type: 'showTip', from: this.uid });
},
_showTooltipContent: function (t, e, i, n, o, a, r, s, l) {
if (((this._ticket = ''), t.get('showContent') && t.get('show'))) {
var u = this._tooltipContent,
h = t.get('formatter');
r = r || t.get('position');
var c = e;
if (h && 'string' == typeof h) c = na(h, i, !0);
else if ('function' == typeof h) {
var d = uN(function (e, n) {
e === this._ticket &&
(u.setContent(n, l, t),
this._updatePosition(t, r, o, a, u, i, s));
}, this);
(this._ticket = n), (c = h(i, n, d));
}
u.setContent(c, l, t),
u.show(t),
this._updatePosition(t, r, o, a, u, i, s);
}
},
_updatePosition: function (t, e, i, n, o, a, r) {
var s = this._api.getWidth(),
l = this._api.getHeight();
e = e || t.get('position');
var u = o.getSize(),
h = t.get('align'),
c = t.get('verticalAlign'),
d = r && r.getBoundingRect().clone();
if (
(r && d.applyTransform(r.transform),
'function' == typeof e &&
(e = e([i, n], a, o.el, d, {
viewSize: [s, l],
contentSize: u.slice(),
})),
y(e))
)
(i = cN(e[0], s)), (n = cN(e[1], l));
else if (w(e)) {
(e.width = u[0]), (e.height = u[1]);
var f = ca(e, { width: s, height: l });
(i = f.x), (n = f.y), (h = null), (c = null);
} else
'string' == typeof e && r
? ((i = (p = Ev(e, d, u))[0]), (n = p[1]))
: ((i = (p = Nv(i, n, o, s, l, h ? null : 20, c ? null : 20))[0]),
(n = p[1]));
if (
(h && (i -= Rv(h) ? u[0] / 2 : 'right' === h ? u[0] : 0),
c && (n -= Rv(c) ? u[1] / 2 : 'bottom' === c ? u[1] : 0),
t.get('confine'))
) {
var p = Ov(i, n, o, s, l);
(i = p[0]), (n = p[1]);
}
o.moveTo(i, n);
},
_updateContentNotChangedOnAxis: function (t) {
var e = this._lastDataByCoordSys,
i = !!e && e.length === t.length;
return (
i &&
hN(e, function (e, n) {
var o = e.dataByAxis || {},
a = (t[n] || {}).dataByAxis || [];
(i &= o.length === a.length) &&
hN(o, function (t, e) {
var n = a[e] || {},
o = t.seriesDataIndices || [],
r = n.seriesDataIndices || [];
(i &=
t.value === n.value &&
t.axisType === n.axisType &&
t.axisId === n.axisId &&
o.length === r.length) &&
hN(o, function (t, e) {
var n = r[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) {
U_.node || (this._tooltipContent.hide(), gm('itemTooltip', e));
},
}),
Es(
{ type: 'showTip', event: 'showTip', update: 'tooltip:manuallyShowTip' },
function () {},
),
Es(
{ type: 'hideTip', event: 'hideTip', update: 'tooltip:manuallyHideTip' },
function () {},
),
(Gv.prototype = {
constructor: Gv,
pointToData: function (t, e) {
return this.polar.pointToData(t, e)['radius' === this.dim ? 0 : 1];
},
dataToRadius: aD.prototype.dataToCoord,
radiusToData: aD.prototype.coordToData,
}),
u(Gv, aD);
var fN = Bi();
(Fv.prototype = {
constructor: Fv,
pointToData: function (t, e) {
return this.polar.pointToData(t, e)['radius' === this.dim ? 0 : 1];
},
dataToAngle: aD.prototype.dataToCoord,
angleToData: aD.prototype.coordToData,
calculateCategoryInterval: function () {
var t = this,
e = t.getLabelModel(),
i = t.scale,
n = i.getExtent(),
o = i.count();
if (n[1] - n[0] < 1) return 0;
var a = n[0],
r = t.dataToCoord(a + 1) - t.dataToCoord(a),
s = Math.abs(r),
l = ke(a, e.getFont(), 'center', 'top'),
u = Math.max(l.height, 7) / s;
isNaN(u) && (u = 1 / 0);
var h = Math.max(0, Math.floor(u)),
c = fN(t.model),
d = c.lastAutoInterval,
f = c.lastTickCount;
return (
null != d &&
null != f &&
Math.abs(d - h) <= 1 &&
Math.abs(f - o) <= 1 &&
d > h
? (h = d)
: ((c.lastTickCount = o), (c.lastAutoInterval = h)),
h
);
},
}),
u(Fv, aD);
var pN = function (t) {
(this.name = t || ''),
(this.cx = 0),
(this.cy = 0),
(this._radiusAxis = new Gv()),
(this._angleAxis = new Fv()),
(this._radiusAxis.polar = this._angleAxis.polar = this);
};
pN.prototype = {
type: 'polar',
axisPointerEnabled: !0,
constructor: pN,
dimensions: ['radius', 'angle'],
model: null,
containPoint: function (t) {
var e = this.pointToCoord(t);
return this._radiusAxis.contain(e[0]) && this._angleAxis.contain(e[1]);
},
containData: function (t) {
return (
this._radiusAxis.containData(t[0]) && this._angleAxis.containData(t[1])
);
},
getAxis: function (t) {
return this['_' + t + 'Axis'];
},
getAxes: function () {
return [this._radiusAxis, this._angleAxis];
},
getAxesByScale: function (t) {
var e = [],
i = this._angleAxis,
n = this._radiusAxis;
return (
i.scale.type === t && e.push(i), n.scale.type === t && e.push(n), e
);
},
getAngleAxis: function () {
return this._angleAxis;
},
getRadiusAxis: function () {
return this._radiusAxis;
},
getOtherAxis: function (t) {
var e = this._angleAxis;
return t === e ? this._radiusAxis : e;
},
getBaseAxis: function () {
return (
this.getAxesByScale('ordinal')[0] ||
this.getAxesByScale('time')[0] ||
this.getAngleAxis()
);
},
getTooltipAxes: function (t) {
var e = null != t && 'auto' !== t ? this.getAxis(t) : this.getBaseAxis();
return { baseAxes: [e], otherAxes: [this.getOtherAxis(e)] };
},
dataToPoint: function (t, e) {
return this.coordToPoint([
this._radiusAxis.dataToRadius(t[0], e),
this._angleAxis.dataToAngle(t[1], e),
]);
},
pointToData: function (t, e) {
var i = this.pointToCoord(t);
return [
this._radiusAxis.radiusToData(i[0], e),
this._angleAxis.angleToData(i[1], e),
];
},
pointToCoord: function (t) {
var e = t[0] - this.cx,
i = t[1] - this.cy,
n = this.getAngleAxis(),
o = n.getExtent(),
a = Math.min(o[0], o[1]),
r = Math.max(o[0], o[1]);
n.inverse ? (a = r - 360) : (r = a + 360);
var s = Math.sqrt(e * e + i * i);
(e /= s), (i /= s);
for (
var l = (Math.atan2(-i, e) / Math.PI) * 180, u = l < a ? 1 : -1;
l < a || l > r;
)
l += 360 * u;
return [s, l];
},
coordToPoint: function (t) {
var e = t[0],
i = (t[1] / 180) * Math.PI;
return [Math.cos(i) * e + this.cx, -Math.sin(i) * e + this.cy];
},
};
var gN = lI.extend({
type: 'polarAxis',
axis: null,
getCoordSysModel: function () {
return this.ecModel.queryComponents({
mainType: 'polar',
index: this.option.polarIndex,
id: this.option.polarId,
})[0];
},
});
n(gN.prototype, UA);
var mN = {
angle: {
startAngle: 90,
clockwise: !0,
splitNumber: 12,
axisLabel: { rotate: !1 },
},
radius: { splitNumber: 5 },
};
ED('angle', gN, Wv, mN.angle),
ED('radius', gN, Wv, mN.radius),
Fs({
type: 'polar',
dependencies: ['polarAxis', 'angleAxis'],
coordinateSystem: null,
findAxisModel: function (t) {
var e;
return (
this.ecModel.eachComponent(
t,
function (t) {
t.getCoordSysModel() === this && (e = t);
},
this,
),
e
);
},
defaultOption: { zlevel: 0, z: 0, center: ['50%', '50%'], radius: '80%' },
});
var vN = {
dimensions: pN.prototype.dimensions,
create: function (t, e) {
var i = [];
return (
t.eachComponent('polar', function (t, n) {
var o = new pN(n);
o.update = Zv;
var a = o.getRadiusAxis(),
r = o.getAngleAxis(),
s = t.findAxisModel('radiusAxis'),
l = t.findAxisModel('angleAxis');
Uv(a, s),
Uv(r, l),
Hv(o, t, e),
i.push(o),
(t.coordinateSystem = o),
(o.model = t);
}),
t.eachSeries(function (e) {
if ('polar' === e.get('coordinateSystem')) {
var i = t.queryComponents({
mainType: 'polar',
index: e.get('polarIndex'),
id: e.get('polarId'),
})[0];
e.coordinateSystem = i.coordinateSystem;
}
}),
i
);
},
};
Fa.register('polar', vN);
var yN = ['axisLine', 'axisLabel', 'axisTick', 'splitLine', 'splitArea'];
XD.extend({
type: 'angleAxis',
axisPointerClass: 'PolarAxisPointer',
render: function (t, e) {
if ((this.group.removeAll(), t.get('show'))) {
var n = t.axis,
o = n.polar,
a = o.getRadiusAxis().getExtent(),
r = n.getTicksCoords(),
s = f(n.getViewLabels(), function (t) {
return ((t = i(t)).coord = n.dataToCoord(t.tickValue)), t;
});
Yv(s),
Yv(r),
d(
yN,
function (e) {
!t.get(e + '.show') ||
(n.scale.isBlank() && 'axisLine' !== e) ||
this['_' + e](t, o, r, a, s);
},
this,
);
}
},
_axisLine: function (t, e, i, n) {
var o = t.getModel('axisLine.lineStyle'),
a = new sM({
shape: { cx: e.cx, cy: e.cy, r: n[jv(e)] },
style: o.getLineStyle(),
z2: 1,
silent: !0,
});
(a.style.fill = null), this.group.add(a);
},
_axisTick: function (t, e, i, n) {
var o = t.getModel('axisTick'),
a = (o.get('inside') ? -1 : 1) * o.get('length'),
s = n[jv(e)],
l = f(i, function (t) {
return new _M({ shape: Xv(e, [s, s + a], t.coord) });
});
this.group.add(
OM(l, {
style: r(o.getModel('lineStyle').getLineStyle(), {
stroke: t.get('axisLine.lineStyle.color'),
}),
}),
);
},
_axisLabel: function (t, e, i, n, o) {
var a = t.getCategories(!0),
r = t.getModel('axisLabel'),
s = r.get('margin');
d(
o,
function (i, o) {
var l = r,
u = i.tickValue,
h = n[jv(e)],
c = e.coordToPoint([h + s, i.coord]),
d = e.cx,
f = e.cy,
p =
Math.abs(c[0] - d) / h < 0.3
? 'center'
: c[0] > d
? 'left'
: 'right',
g =
Math.abs(c[1] - f) / h < 0.3
? 'middle'
: c[1] > f
? 'top'
: 'bottom';
a &&
a[u] &&
a[u].textStyle &&
(l = new No(a[u].textStyle, r, r.ecModel));
var m = new rM({ silent: !0 });
this.group.add(m),
mo(m.style, l, {
x: c[0],
y: c[1],
textFill: l.getTextColor() || t.get('axisLine.lineStyle.color'),
text: i.formattedLabel,
textAlign: p,
textVerticalAlign: g,
});
},
this,
);
},
_splitLine: function (t, e, i, n) {
var o = t.getModel('splitLine').getModel('lineStyle'),
a = o.get('color'),
s = 0;
a = a instanceof Array ? a : [a];
for (var l = [], u = 0; u < i.length; u++) {
var h = s++ % a.length;
(l[h] = l[h] || []), l[h].push(new _M({ shape: Xv(e, n, i[u].coord) }));
}
for (u = 0; u < l.length; u++)
this.group.add(
OM(l[u], {
style: r({ stroke: a[u % a.length] }, o.getLineStyle()),
silent: !0,
z: t.get('z'),
}),
);
},
_splitArea: function (t, e, i, n) {
if (i.length) {
var o = t.getModel('splitArea').getModel('areaStyle'),
a = o.get('color'),
s = 0;
a = a instanceof Array ? a : [a];
for (
var l = [],
u = Math.PI / 180,
h = -i[0].coord * u,
c = Math.min(n[0], n[1]),
d = Math.max(n[0], n[1]),
f = t.get('clockwise'),
p = 1;
p < i.length;
p++
) {
var g = s++ % a.length;
(l[g] = l[g] || []),
l[g].push(
new hM({
shape: {
cx: e.cx,
cy: e.cy,
r0: c,
r: d,
startAngle: h,
endAngle: -i[p].coord * u,
clockwise: f,
},
silent: !0,
}),
),
(h = -i[p].coord * u);
}
for (p = 0; p < l.length; p++)
this.group.add(
OM(l[p], {
style: r({ fill: a[p % a.length] }, o.getAreaStyle()),
silent: !0,
}),
);
}
},
});
var xN = ['axisLine', 'axisTickLabel', 'axisName'],
_N = ['splitLine', 'splitArea'];
XD.extend({
type: 'radiusAxis',
axisPointerClass: 'PolarAxisPointer',
render: function (t, e) {
if ((this.group.removeAll(), t.get('show'))) {
var i = t.axis,
n = i.polar,
o = n.getAngleAxis(),
a = i.getTicksCoords(),
r = o.getExtent()[0],
s = i.getExtent(),
l = qv(n, t, r),
u = new FD(t, l);
d(xN, u.add, u),
this.group.add(u.getGroup()),
d(
_N,
function (e) {
t.get(e + '.show') &&
!i.scale.isBlank() &&
this['_' + e](t, n, r, s, a);
},
this,
);
}
},
_splitLine: function (t, e, i, n, o) {
var a = t.getModel('splitLine').getModel('lineStyle'),
s = a.get('color'),
l = 0;
s = s instanceof Array ? s : [s];
for (var u = [], h = 0; h < o.length; h++) {
var c = l++ % s.length;
(u[c] = u[c] || []),
u[c].push(
new sM({
shape: { cx: e.cx, cy: e.cy, r: o[h].coord },
silent: !0,
}),
);
}
for (h = 0; h < u.length; h++)
this.group.add(
OM(u[h], {
style: r({ stroke: s[h % s.length], fill: null }, a.getLineStyle()),
silent: !0,
}),
);
},
_splitArea: function (t, e, i, n, o) {
if (o.length) {
var a = t.getModel('splitArea').getModel('areaStyle'),
s = a.get('color'),
l = 0;
s = s instanceof Array ? s : [s];
for (var u = [], h = o[0].coord, c = 1; c < o.length; c++) {
var d = l++ % s.length;
(u[d] = u[d] || []),
u[d].push(
new hM({
shape: {
cx: e.cx,
cy: e.cy,
r0: h,
r: o[c].coord,
startAngle: 0,
endAngle: 2 * Math.PI,
},
silent: !0,
}),
),
(h = o[c].coord);
}
for (c = 0; c < u.length; c++)
this.group.add(
OM(u[c], {
style: r({ fill: s[c % s.length] }, a.getAreaStyle()),
silent: !0,
}),
);
}
},
});
var wN = mm.extend({
makeElOption: function (t, e, i, n, o) {
var a = i.axis;
'angle' === a.dim && (this.animationThreshold = Math.PI / 18);
var r,
s = a.polar,
l = s.getOtherAxis(a).getExtent();
r = a['dataTo' + la(a.dim)](e);
var u = n.get('type');
if (u && 'none' !== u) {
var h = bm(n),
c = bN[u](a, s, r, l, h);
(c.style = h), (t.graphicKey = c.type), (t.pointer = c);
}
Sm(t, i, n, o, Kv(e, i, 0, s, n.get('label.margin')));
},
}),
bN = {
line: function (t, e, i, n, o) {
return 'angle' === t.dim
? {
type: 'Line',
shape: Dm(e.coordToPoint([n[0], i]), e.coordToPoint([n[1], i])),
}
: { type: 'Circle', shape: { cx: e.cx, cy: e.cy, r: i } };
},
shadow: function (t, e, i, n, o) {
var a = Math.max(1, t.getBandWidth()),
r = Math.PI / 180;
return 'angle' === t.dim
? {
type: 'Sector',
shape: Lm(
e.cx,
e.cy,
n[0],
n[1],
(-i - a / 2) * r,
(a / 2 - i) * r,
),
}
: {
type: 'Sector',
shape: Lm(e.cx, e.cy, i - a / 2, i + a / 2, 0, 2 * Math.PI),
};
},
};
XD.registerAxisPointerClass('PolarAxisPointer', wN),
zs(
v(function (t, e, i) {
i.getWidth(), i.getHeight();
var n = {},
o = Vv(
g(e.getSeriesByType(t), function (t) {
return (
!e.isSeriesFiltered(t) &&
t.coordinateSystem &&
'polar' === t.coordinateSystem.type
);
}),
);
e.eachSeriesByType(
t,
function (t) {
if ('polar' === t.coordinateSystem.type) {
var e = t.getData(),
i = t.coordinateSystem,
a = i.getBaseAxis(),
r = zv(t),
s = o[Bv(a)][r],
l = s.offset,
u = s.width,
h = i.getOtherAxis(a),
c = t.coordinateSystem.cx,
d = t.coordinateSystem.cy,
f = t.get('barMinHeight') || 0,
p = t.get('barMinAngle') || 0;
n[r] = n[r] || [];
for (
var g = e.mapDimension(h.dim),
m = e.mapDimension(a.dim),
v = pl(e, g),
y = h.getExtent()[0],
x = 0,
_ = e.count();
x < _;
x++
) {
var w = e.get(g, x),
b = e.get(m, x);
if (!isNaN(w)) {
var S = w >= 0 ? 'p' : 'n',
M = y;
v &&
(n[r][b] || (n[r][b] = { p: y, n: y }), (M = n[r][b][S]));
var I, T, A, D;
if ('radius' === h.dim) {
var C = h.dataToRadius(w) - y,
L = a.dataToAngle(b);
Math.abs(C) < f && (C = (C < 0 ? -1 : 1) * f),
(I = M),
(T = M + C),
(D = (A = L - l) - u),
v && (n[r][b][S] = T);
} else {
var k = h.dataToAngle(w, !0) - y,
P = a.dataToRadius(b);
Math.abs(k) < p && (k = (k < 0 ? -1 : 1) * p),
(T = (I = P + l) + u),
(A = M),
(D = M + k),
v && (n[r][b][S] = D);
}
e.setItemLayout(x, {
cx: c,
cy: d,
r0: I,
r: T,
startAngle: (-A * Math.PI) / 180,
endAngle: (-D * Math.PI) / 180,
});
}
}
}
},
this,
);
}, 'bar'),
),
Ws({ type: 'polar' }),
h(
lI.extend({
type: 'geo',
coordinateSystem: null,
layoutMode: 'box',
init: function (t) {
lI.prototype.init.apply(this, arguments), Ci(t, 'label', ['show']);
},
optionUpdated: function () {
var t = this.option,
e = this;
(t.regions = GC.getFilledRegions(t.regions, t.map, t.nameMap)),
(this._optionModelMap = p(
t.regions || [],
function (t, i) {
return i.name && t.set(i.name, new No(i, e)), t;
},
R(),
)),
this.updateSelectedMap(t.regions);
},
defaultOption: {
zlevel: 0,
z: 0,
show: !0,
left: 'center',
top: 'center',
aspectScale: null,
silent: !1,
map: '',
boundingCoords: null,
center: null,
zoom: 1,
scaleLimit: null,
label: { show: !1, color: '#000' },
itemStyle: { borderWidth: 0.5, borderColor: '#444', color: '#eee' },
emphasis: {
label: { show: !0, color: 'rgb(100,0,0)' },
itemStyle: { color: 'rgba(255,215,0,0.8)' },
},
regions: [],
},
getRegionModel: function (t) {
return (
this._optionModelMap.get(t) || new No(null, this, this.ecModel)
);
},
getFormattedLabel: function (t, e) {
var i = this.getRegionModel(t).get('label.' + e + '.formatter'),
n = { name: t };
return 'function' == typeof i
? ((n.status = e), i(n))
: 'string' == typeof i
? i.replace('{a}', null != t ? t : '')
: void 0;
},
setZoom: function (t) {
this.option.zoom = t;
},
setCenter: function (t) {
this.option.center = t;
},
}),
aC,
),
Ws({
type: 'geo',
init: function (t, e) {
var i = new xc(e, !0);
(this._mapDraw = i), this.group.add(i.group);
},
render: function (t, e, i, n) {
if (!n || 'geoToggleSelect' !== n.type || n.from !== this.uid) {
var o = this._mapDraw;
t.get('show')
? o.draw(t, e, i, this, n)
: this._mapDraw.group.removeAll(),
(this.group.silent = t.get('silent'));
}
},
dispose: function () {
this._mapDraw && this._mapDraw.remove();
},
}),
$v('toggleSelected', {
type: 'geoToggleSelect',
event: 'geoselectchanged',
}),
$v('select', { type: 'geoSelect', event: 'geoselected' }),
$v('unSelect', { type: 'geoUnSelect', event: 'geounselected' });
var SN = ['rect', 'polygon', 'keep', 'clear'],
MN = d,
IN = {
lineX: oy(0),
lineY: oy(1),
rect: {
point: function (t, e, i) {
return t && i.boundingRect.contain(t[0], t[1]);
},
rect: function (t, e, i) {
return t && i.boundingRect.intersect(t);
},
},
polygon: {
point: function (t, e, i) {
return (
t && i.boundingRect.contain(t[0], t[1]) && tu(i.range, t[0], t[1])
);
},
rect: function (t, e, i) {
var n = i.range;
if (!t || n.length <= 1) return !1;
var o = t.x,
a = t.y,
r = t.width,
s = t.height,
l = n[0];
return (
!!(
tu(n, o, a) ||
tu(n, o + r, a) ||
tu(n, o, a + s) ||
tu(n, o + r, a + s) ||
de.create(t).contain(l[0], l[1]) ||
ry(o, a, o + r, a, n) ||
ry(o, a, o, a + s, n) ||
ry(o + r, a, o + r, a + s, n) ||
ry(o, a + s, o + r, a + s, n)
) || void 0
);
},
},
},
TN = d,
AN = l,
DN = v,
CN = ['dataToPoint', 'pointToData'],
LN = [
'grid',
'xAxis',
'yAxis',
'geo',
'graph',
'polar',
'radiusAxis',
'angleAxis',
'bmap',
],
kN = hy.prototype;
(kN.setOutputRanges = function (t, e) {
this.matchOutputRanges(t, e, function (t, e, i) {
if (((t.coordRanges || (t.coordRanges = [])).push(e), !t.coordRange)) {
t.coordRange = e;
var n = EN[t.brushType](0, i, e);
t.__rangeOffset = {
offset: RN[t.brushType](n.values, t.range, [1, 1]),
xyMinMax: n.xyMinMax,
};
}
});
}),
(kN.matchOutputRanges = function (t, e, i) {
TN(
t,
function (t) {
var n = this.findTargetInfo(t, e);
n &&
!0 !== n &&
d(n.coordSyses, function (n) {
var o = EN[t.brushType](1, n, t.range);
i(t, o.values, n, e);
});
},
this,
);
}),
(kN.setInputRanges = function (t, e) {
TN(
t,
function (t) {
var i = this.findTargetInfo(t, e);
if (((t.range = t.range || []), i && !0 !== i)) {
t.panelId = i.panelId;
var n = EN[t.brushType](0, i.coordSys, t.coordRange),
o = t.__rangeOffset;
t.range = o
? RN[t.brushType](n.values, o.offset, gy(n.xyMinMax, o.xyMinMax))
: n.values;
}
},
this,
);
}),
(kN.makePanelOpts = function (t, e) {
return f(this._targetInfoList, function (i) {
var n = i.getPanelRect();
return {
panelId: i.panelId,
defaultBrushType: e && e(i),
clipPath: yp(n),
isTargetByCursor: _p(n, t, i.coordSysModel),
getLinearBrushOtherExtent: xp(n),
};
});
}),
(kN.controlSeries = function (t, e, i) {
var n = this.findTargetInfo(t, i);
return !0 === n || (n && AN(n.coordSyses, e.coordinateSystem) >= 0);
}),
(kN.findTargetInfo = function (t, e) {
for (
var i = this._targetInfoList, n = dy(e, t), o = 0;
o < i.length;
o++
) {
var a = i[o],
r = t.panelId;
if (r) {
if (a.panelId === r) return a;
} else for (o = 0; o < NN.length; o++) if (NN[o](n, a)) return a;
}
return !0;
});
var PN = {
grid: function (t, e) {
var i = t.xAxisModels,
n = t.yAxisModels,
o = t.gridModels,
a = R(),
r = {},
s = {};
(i || n || o) &&
(TN(i, function (t) {
var e = t.axis.grid.model;
a.set(e.id, e), (r[e.id] = !0);
}),
TN(n, function (t) {
var e = t.axis.grid.model;
a.set(e.id, e), (s[e.id] = !0);
}),
TN(o, function (t) {
a.set(t.id, t), (r[t.id] = !0), (s[t.id] = !0);
}),
a.each(function (t) {
var o = t.coordinateSystem,
a = [];
TN(o.getCartesians(), function (t, e) {
(AN(i, t.getAxis('x').model) >= 0 ||
AN(n, t.getAxis('y').model) >= 0) &&
a.push(t);
}),
e.push({
panelId: 'grid--' + t.id,
gridModel: t,
coordSysModel: t,
coordSys: a[0],
coordSyses: a,
getPanelRect: ON.grid,
xAxisDeclared: r[t.id],
yAxisDeclared: s[t.id],
});
}));
},
geo: function (t, e) {
TN(t.geoModels, function (t) {
var i = t.coordinateSystem;
e.push({
panelId: 'geo--' + t.id,
geoModel: t,
coordSysModel: t,
coordSys: i,
coordSyses: [i],
getPanelRect: ON.geo,
});
});
},
},
NN = [
function (t, e) {
var i = t.xAxisModel,
n = t.yAxisModel,
o = t.gridModel;
return (
!o && i && (o = i.axis.grid.model),
!o && n && (o = n.axis.grid.model),
o && o === e.gridModel
);
},
function (t, e) {
var i = t.geoModel;
return i && i === e.geoModel;
},
],
ON = {
grid: function () {
return this.coordSys.grid.getRect().clone();
},
geo: function () {
var t = this.coordSys,
e = t.getBoundingRect().clone();
return e.applyTransform(Ao(t)), e;
},
},
EN = {
lineX: DN(fy, 0),
lineY: DN(fy, 1),
rect: function (t, e, i) {
var n = e[CN[t]]([i[0][0], i[1][0]]),
o = e[CN[t]]([i[0][1], i[1][1]]),
a = [cy([n[0], o[0]]), cy([n[1], o[1]])];
return { values: a, xyMinMax: a };
},
polygon: function (t, e, i) {
var n = [
[1 / 0, -1 / 0],
[1 / 0, -1 / 0],
];
return {
values: f(i, function (i) {
var o = e[CN[t]](i);
return (
(n[0][0] = Math.min(n[0][0], o[0])),
(n[1][0] = Math.min(n[1][0], o[1])),
(n[0][1] = Math.max(n[0][1], o[0])),
(n[1][1] = Math.max(n[1][1], o[1])),
o
);
}),
xyMinMax: n,
};
},
},
RN = {
lineX: DN(py, 0),
lineY: DN(py, 1),
rect: function (t, e, i) {
return [
[t[0][0] - i[0] * e[0][0], t[0][1] - i[0] * e[0][1]],
[t[1][0] - i[1] * e[1][0], t[1][1] - i[1] * e[1][1]],
];
},
polygon: function (t, e, i) {
return f(t, function (t, n) {
return [t[0] - i[0] * e[n][0], t[1] - i[1] * e[n][1]];
});
},
},
zN = ['inBrush', 'outOfBrush'],
BN = '__ecBrushSelect',
VN = '__ecInBrushSelectEvent',
GN = VT.VISUAL.BRUSH;
zs(GN, function (t, e, i) {
t.eachComponent({ mainType: 'brush' }, function (e) {
i &&
'takeGlobalCursor' === i.type &&
e.setBrushOption('brush' === i.key ? i.brushOption : { brushType: !1 }),
(e.brushTargetManager = new hy(e.option, t)).setInputRanges(e.areas, t);
});
}),
Bs(GN, function (t, e, n) {
var o,
a,
s = [];
t.eachComponent({ mainType: 'brush' }, function (e, n) {
function l(t) {
return 'all' === m || v[t];
}
function u(t) {
return !!t.length;
}
function h(t, e) {
var i = t.coordinateSystem;
(w |= i.hasAxisBrushed()),
l(e) &&
i.eachActiveState(t.getData(), function (t, e) {
'active' === t && (x[e] = 1);
});
}
function c(i, n, o) {
var a = _y(i);
if (
a &&
!wy(e, n) &&
(d(b, function (n) {
a[n.brushType] &&
e.brushTargetManager.controlSeries(n, i, t) &&
o.push(n),
(w |= u(o));
}),
l(n) && u(o))
) {
var r = i.getData();
r.each(function (t) {
xy(a, o, r, t) && (x[t] = 1);
});
}
}
var p = {
brushId: e.id,
brushIndex: n,
brushName: e.name,
areas: i(e.areas),
selected: [],
};
s.push(p);
var g = e.option,
m = g.brushLink,
v = [],
x = [],
_ = [],
w = 0;
n || ((o = g.throttleType), (a = g.throttleDelay));
var b = f(e.areas, function (t) {
return by(r({ boundingRect: FN[t.brushType](t) }, t));
}),
S = ty(e.option, zN, function (t) {
t.mappingMethod = 'fixed';
});
y(m) &&
d(m, function (t) {
v[t] = 1;
}),
t.eachSeries(function (t, e) {
var i = (_[e] = []);
'parallel' === t.subType ? h(t, e) : c(t, e, i);
}),
t.eachSeries(function (t, e) {
var i = {
seriesId: t.id,
seriesIndex: e,
seriesName: t.name,
dataIndex: [],
};
p.selected.push(i);
var n = _y(t),
o = _[e],
a = t.getData(),
r = l(e)
? function (t) {
return x[t]
? (i.dataIndex.push(a.getRawIndex(t)), 'inBrush')
: 'outOfBrush';
}
: function (t) {
return xy(n, o, a, t)
? (i.dataIndex.push(a.getRawIndex(t)), 'inBrush')
: 'outOfBrush';
};
(l(e) ? w : u(o)) && iy(zN, S, a, r);
});
}),
vy(e, o, a, s, n);
});
var FN = {
lineX: B,
lineY: B,
rect: function (t) {
return Sy(t.range);
},
polygon: function (t) {
for (var e, i = t.range, n = 0, o = i.length; n < o; n++) {
e = e || [
[1 / 0, -1 / 0],
[1 / 0, -1 / 0],
];
var a = i[n];
a[0] < e[0][0] && (e[0][0] = a[0]),
a[0] > e[0][1] && (e[0][1] = a[0]),
a[1] < e[1][0] && (e[1][0] = a[1]),
a[1] > e[1][1] && (e[1][1] = a[1]);
}
return e && Sy(e);
},
},
WN = ['#ddd'];
Fs({
type: 'brush',
dependencies: ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'],
defaultOption: {
toolbox: null,
brushLink: null,
seriesIndex: 'all',
geoIndex: null,
xAxisIndex: null,
yAxisIndex: null,
brushType: 'rect',
brushMode: 'single',
transformable: !0,
brushStyle: {
borderWidth: 1,
color: 'rgba(120,140,180,0.3)',
borderColor: 'rgba(120,140,180,0.8)',
},
throttleType: 'fixRate',
throttleDelay: 0,
removeOnClick: !0,
z: 1e4,
},
areas: [],
brushType: null,
brushOption: {},
coordInfoList: [],
optionUpdated: function (t, e) {
var i = this.option;
!e && ey(i, t, ['inBrush', 'outOfBrush']);
var n = (i.inBrush = i.inBrush || {});
(i.outOfBrush = i.outOfBrush || { color: WN }),
n.hasOwnProperty('liftZ') || (n.liftZ = 5);
},
setAreas: function (t) {
t &&
(this.areas = f(
t,
function (t) {
return My(this.option, t);
},
this,
));
},
setBrushOption: function (t) {
(this.brushOption = My(this.option, t)),
(this.brushType = this.brushOption.brushType);
},
});
Ws({
type: 'brush',
init: function (t, e) {
(this.ecModel = t),
(this.api = e),
this.model,
(this._brushController = new zf(e.getZr()))
.on('brush', m(this._onBrush, this))
.mount();
},
render: function (t) {
return (this.model = t), Iy.apply(this, arguments);
},
updateTransform: Iy,
updateView: Iy,
dispose: function () {
this._brushController.dispose();
},
_onBrush: function (t, e) {
var n = this.model.id;
this.model.brushTargetManager.setOutputRanges(t, this.ecModel),
(!e.isEnd || e.removeOnClick) &&
this.api.dispatchAction({
type: 'brush',
brushId: n,
areas: i(t),
$from: n,
});
},
}),
Es({ type: 'brush', event: 'brush' }, function (t, e) {
e.eachComponent({ mainType: 'brush', query: t }, function (e) {
e.setAreas(t.areas);
});
}),
Es(
{ type: 'brushSelect', event: 'brushSelected', update: 'none' },
function () {},
);
var HN = {},
ZN = rT.toolbox.brush;
Dy.defaultOption = {
show: !0,
type: ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'],
icon: {
rect:
'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',
polygon:
'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',
lineX:
'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',
lineY:
'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',
keep:
'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',
clear:
'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2',
},
title: i(ZN.title),
};
var UN = Dy.prototype;
(UN.render = UN.updateView = function (t, e, i) {
var n, o, a;
e.eachComponent({ mainType: 'brush' }, function (t) {
(n = t.brushType),
(o = t.brushOption.brushMode || 'single'),
(a |= t.areas.length);
}),
(this._brushType = n),
(this._brushMode = o),
d(t.get('type', !0), function (e) {
t.setIconStatus(
e,
('keep' === e ? 'multiple' === o : 'clear' === e ? a : e === n)
? 'emphasis'
: 'normal',
);
});
}),
(UN.getIcons = function () {
var t = this.model,
e = t.get('icon', !0),
i = {};
return (
d(t.get('type', !0), function (t) {
e[t] && (i[t] = e[t]);
}),
i
);
}),
(UN.onclick = function (t, e, i) {
var n = this._brushType,
o = this._brushMode;
'clear' === i
? (e.dispatchAction({ type: 'axisAreaSelect', intervals: [] }),
e.dispatchAction({ type: 'brush', command: 'clear', areas: [] }))
: e.dispatchAction({
type: 'takeGlobalCursor',
key: 'brush',
brushOption: {
brushType: 'keep' === i ? n : n !== i && i,
brushMode:
'keep' === i ? ('multiple' === o ? 'single' : 'multiple') : o,
},
});
}),
Ty('brush', Dy),
Ns(function (t, e) {
var i = t && t.brush;
if ((y(i) || (i = i ? [i] : []), i.length)) {
var n = [];
d(i, function (t) {
var e = t.hasOwnProperty('toolbox') ? t.toolbox : [];
e instanceof Array && (n = n.concat(e));
});
var o = t && t.toolbox;
y(o) && (o = o[0]), o || ((o = { feature: {} }), (t.toolbox = [o]));
var a = o.feature || (o.feature = {}),
r = a.brush || (a.brush = {}),
s = r.type || (r.type = []);
s.push.apply(s, n), Jv(s), e && !s.length && s.push.apply(s, SN);
}
});
(Cy.prototype = {
constructor: Cy,
type: 'calendar',
dimensions: ['time', 'value'],
getDimensionsInfo: function () {
return [{ name: 'time', type: 'time' }, 'value'];
},
getRangeInfo: function () {
return this._rangeInfo;
},
getModel: function () {
return this._model;
},
getRect: function () {
return this._rect;
},
getCellWidth: function () {
return this._sw;
},
getCellHeight: function () {
return this._sh;
},
getOrient: function () {
return this._orient;
},
getFirstDayOfWeek: function () {
return this._firstDayOfWeek;
},
getDateInfo: function (t) {
var e = (t = Yo(t)).getFullYear(),
i = t.getMonth() + 1;
i = i < 10 ? '0' + i : i;
var n = t.getDate();
n = n < 10 ? '0' + n : n;
var o = t.getDay();
return (
(o = Math.abs((o + 7 - this.getFirstDayOfWeek()) % 7)),
{
y: e,
m: i,
d: n,
day: o,
time: t.getTime(),
formatedDate: e + '-' + i + '-' + n,
date: t,
}
);
},
getNextNDay: function (t, e) {
return 0 === (e = e || 0)
? this.getDateInfo(t)
: ((t = new Date(this.getDateInfo(t).time)).setDate(t.getDate() + e),
this.getDateInfo(t));
},
update: function (t, e) {
function i(t, e) {
return null != t[e] && 'auto' !== t[e];
}
(this._firstDayOfWeek = +this._model
.getModel('dayLabel')
.get('firstDay')),
(this._orient = this._model.get('orient')),
(this._lineWidth =
this._model.getModel('itemStyle').getItemStyle().lineWidth || 0),
(this._rangeInfo = this._getRangeInfo(this._initRangeOption()));
var n = this._rangeInfo.weeks || 1,
o = ['width', 'height'],
a = this._model.get('cellSize').slice(),
r = this._model.getBoxLayoutParams(),
s = 'horizontal' === this._orient ? [n, 7] : [7, n];
d([0, 1], function (t) {
i(a, t) && (r[o[t]] = a[t] * s[t]);
});
var l = { width: e.getWidth(), height: e.getHeight() },
u = (this._rect = ca(r, l));
d([0, 1], function (t) {
i(a, t) || (a[t] = u[o[t]] / s[t]);
}),
(this._sw = a[0]),
(this._sh = a[1]);
},
dataToPoint: function (t, e) {
y(t) && (t = t[0]), null == e && (e = !0);
var i = this.getDateInfo(t),
n = this._rangeInfo,
o = i.formatedDate;
if (e && !(i.time >= n.start.time && i.time < n.end.time + 864e5))
return [NaN, NaN];
var a = i.day,
r = this._getRangeInfo([n.start.time, o]).nthWeek;
return 'vertical' === this._orient
? [
this._rect.x + a * this._sw + this._sw / 2,
this._rect.y + r * this._sh + this._sh / 2,
]
: [
this._rect.x + r * this._sw + this._sw / 2,
this._rect.y + a * this._sh + this._sh / 2,
];
},
pointToData: function (t) {
var e = this.pointToDate(t);
return e && e.time;
},
dataToRect: function (t, e) {
var i = this.dataToPoint(t, e);
return {
contentShape: {
x: i[0] - (this._sw - this._lineWidth) / 2,
y: i[1] - (this._sh - this._lineWidth) / 2,
width: this._sw - this._lineWidth,
height: this._sh - this._lineWidth,
},
center: i,
tl: [i[0] - this._sw / 2, i[1] - this._sh / 2],
tr: [i[0] + this._sw / 2, i[1] - this._sh / 2],
br: [i[0] + this._sw / 2, i[1] + this._sh / 2],
bl: [i[0] - this._sw / 2, i[1] + this._sh / 2],
};
},
pointToDate: function (t) {
var e = Math.floor((t[0] - this._rect.x) / this._sw) + 1,
i = Math.floor((t[1] - this._rect.y) / this._sh) + 1,
n = this._rangeInfo.range;
return 'vertical' === this._orient
? this._getDateByWeeksAndDay(i, e - 1, n)
: this._getDateByWeeksAndDay(e, i - 1, n);
},
convertToPixel: v(Ly, 'dataToPoint'),
convertFromPixel: v(Ly, 'pointToData'),
_initRangeOption: function () {
var t = this._model.get('range'),
e = t;
if (
(y(e) && 1 === e.length && (e = e[0]),
/^\d{4}$/.test(e) && (t = [e + '-01-01', e + '-12-31']),
/^\d{4}[\/|-]\d{1,2}$/.test(e))
) {
var i = this.getDateInfo(e),
n = i.date;
n.setMonth(n.getMonth() + 1);
var o = this.getNextNDay(n, -1);
t = [i.formatedDate, o.formatedDate];
}
/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(e) && (t = [e, e]);
var a = this._getRangeInfo(t);
return a.start.time > a.end.time && t.reverse(), t;
},
_getRangeInfo: function (t) {
var e;
(t = [this.getDateInfo(t[0]), this.getDateInfo(t[1])])[0].time >
t[1].time && ((e = !0), t.reverse());
var i = Math.floor(t[1].time / 864e5) - Math.floor(t[0].time / 864e5) + 1,
n = new Date(t[0].time),
o = n.getDate(),
a = t[1].date.getDate();
if ((n.setDate(o + i - 1), n.getDate() !== a))
for (
var r = n.getTime() - t[1].time > 0 ? 1 : -1;
n.getDate() !== a && (n.getTime() - t[1].time) * r > 0;
)
(i -= r), n.setDate(o + i - 1);
var s = Math.floor((i + t[0].day + 6) / 7),
l = e ? 1 - s : s - 1;
return (
e && t.reverse(),
{
range: [t[0].formatedDate, t[1].formatedDate],
start: t[0],
end: t[1],
allDay: i,
weeks: s,
nthWeek: l,
fweek: t[0].day,
lweek: t[1].day,
}
);
},
_getDateByWeeksAndDay: function (t, e, i) {
var n = this._getRangeInfo(i);
if (
t > n.weeks ||
(0 === t && e < n.fweek) ||
(t === n.weeks && e > n.lweek)
)
return !1;
var o = 7 * (t - 1) - n.fweek + e,
a = new Date(n.start.time);
return a.setDate(n.start.d + o), this.getDateInfo(a);
},
}),
(Cy.dimensions = Cy.prototype.dimensions),
(Cy.getDimensionsInfo = Cy.prototype.getDimensionsInfo),
(Cy.create = function (t, e) {
var i = [];
return (
t.eachComponent('calendar', function (n) {
var o = new Cy(n, t, e);
i.push(o), (n.coordinateSystem = o);
}),
t.eachSeries(function (t) {
'calendar' === t.get('coordinateSystem') &&
(t.coordinateSystem = i[t.get('calendarIndex') || 0]);
}),
i
);
}),
Fa.register('calendar', Cy);
var XN = lI.extend({
type: 'calendar',
coordinateSystem: null,
defaultOption: {
zlevel: 0,
z: 2,
left: 80,
top: 60,
cellSize: 20,
orient: 'horizontal',
splitLine: {
show: !0,
lineStyle: { color: '#000', width: 1, type: 'solid' },
},
itemStyle: { color: '#fff', borderWidth: 1, borderColor: '#ccc' },
dayLabel: {
show: !0,
firstDay: 0,
position: 'start',
margin: '50%',
nameMap: 'en',
color: '#000',
},
monthLabel: {
show: !0,
position: 'start',
margin: 5,
align: 'center',
nameMap: 'en',
formatter: null,
color: '#000',
},
yearLabel: {
show: !0,
position: null,
margin: 30,
formatter: null,
color: '#ccc',
fontFamily: 'sans-serif',
fontWeight: 'bolder',
fontSize: 20,
},
},
init: function (t, e, i, n) {
var o = ga(t);
XN.superApply(this, 'init', arguments), ky(t, o);
},
mergeOption: function (t, e) {
XN.superApply(this, 'mergeOption', arguments), ky(this.option, t);
},
}),
jN = {
EN: [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec',
],
CN: [
'一月',
'二月',
'三月',
'四月',
'五月',
'六月',
'七月',
'八月',
'九月',
'十月',
'十一月',
'十二月',
],
},
YN = {
EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
CN: ['日', '一', '二', '三', '四', '五', '六'],
};
Ws({
type: 'calendar',
_tlpoints: null,
_blpoints: null,
_firstDayOfMonth: null,
_firstDayPoints: null,
render: function (t, e, i) {
var n = this.group;
n.removeAll();
var o = t.coordinateSystem,
a = o.getRangeInfo(),
r = o.getOrient();
this._renderDayRect(t, a, n),
this._renderLines(t, a, r, n),
this._renderYearText(t, a, r, n),
this._renderMonthText(t, r, n),
this._renderWeekText(t, a, r, n);
},
_renderDayRect: function (t, e, i) {
for (
var n = t.coordinateSystem,
o = t.getModel('itemStyle').getItemStyle(),
a = n.getCellWidth(),
r = n.getCellHeight(),
s = e.start.time;
s <= e.end.time;
s = n.getNextNDay(s, 1).time
) {
var l = n.dataToRect([s], !1).tl,
u = new yM({
shape: { x: l[0], y: l[1], width: a, height: r },
cursor: 'default',
style: o,
});
i.add(u);
}
},
_renderLines: function (t, e, i, n) {
function o(e) {
a._firstDayOfMonth.push(r.getDateInfo(e)),
a._firstDayPoints.push(r.dataToRect([e], !1).tl);
var o = a._getLinePointsOfOneWeek(t, e, i);
a._tlpoints.push(o[0]),
a._blpoints.push(o[o.length - 1]),
l && a._drawSplitline(o, s, n);
}
var a = this,
r = t.coordinateSystem,
s = t.getModel('splitLine.lineStyle').getLineStyle(),
l = t.get('splitLine.show'),
u = s.lineWidth;
(this._tlpoints = []),
(this._blpoints = []),
(this._firstDayOfMonth = []),
(this._firstDayPoints = []);
for (var h = e.start, c = 0; h.time <= e.end.time; c++) {
o(h.formatedDate),
0 === c && (h = r.getDateInfo(e.start.y + '-' + e.start.m));
var d = h.date;
d.setMonth(d.getMonth() + 1), (h = r.getDateInfo(d));
}
o(r.getNextNDay(e.end.time, 1).formatedDate),
l && this._drawSplitline(a._getEdgesPoints(a._tlpoints, u, i), s, n),
l && this._drawSplitline(a._getEdgesPoints(a._blpoints, u, i), s, n);
},
_getEdgesPoints: function (t, e, i) {
var n = [t[0].slice(), t[t.length - 1].slice()],
o = 'horizontal' === i ? 0 : 1;
return (n[0][o] = n[0][o] - e / 2), (n[1][o] = n[1][o] + e / 2), n;
},
_drawSplitline: function (t, e, i) {
var n = new gM({ z2: 20, shape: { points: t }, style: e });
i.add(n);
},
_getLinePointsOfOneWeek: function (t, e, i) {
var n = t.coordinateSystem;
e = n.getDateInfo(e);
for (var o = [], a = 0; a < 7; a++) {
var r = n.getNextNDay(e.time, a),
s = n.dataToRect([r.time], !1);
(o[2 * r.day] = s.tl),
(o[2 * r.day + 1] = s['horizontal' === i ? 'bl' : 'tr']);
}
return o;
},
_formatterLabel: function (t, e) {
return 'string' == typeof t && t
? oa(t, e)
: 'function' == typeof t
? t(e)
: e.nameMap;
},
_yearTextPositionControl: function (t, e, i, n, o) {
e = e.slice();
var a = ['center', 'bottom'];
'bottom' === n
? ((e[1] += o), (a = ['center', 'top']))
: 'left' === n
? (e[0] -= o)
: 'right' === n
? ((e[0] += o), (a = ['center', 'top']))
: (e[1] -= o);
var r = 0;
return (
('left' !== n && 'right' !== n) || (r = Math.PI / 2),
{
rotation: r,
position: e,
style: { textAlign: a[0], textVerticalAlign: a[1] },
}
);
},
_renderYearText: function (t, e, i, n) {
var o = t.getModel('yearLabel');
if (o.get('show')) {
var a = o.get('margin'),
r = o.get('position');
r || (r = 'horizontal' !== i ? 'top' : 'left');
var s = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]],
l = (s[0][0] + s[1][0]) / 2,
u = (s[0][1] + s[1][1]) / 2,
h = 'horizontal' === i ? 0 : 1,
c = {
top: [l, s[h][1]],
bottom: [l, s[1 - h][1]],
left: [s[1 - h][0], u],
right: [s[h][0], u],
},
d = e.start.y;
+e.end.y > +e.start.y && (d = d + '-' + e.end.y);
var f = o.get('formatter'),
p = { start: e.start.y, end: e.end.y, nameMap: d },
g = this._formatterLabel(f, p),
m = new rM({ z2: 30 });
mo(m.style, o, { text: g }),
m.attr(this._yearTextPositionControl(m, c[r], i, r, a)),
n.add(m);
}
},
_monthTextPositionControl: function (t, e, i, n, o) {
var a = 'left',
r = 'top',
s = t[0],
l = t[1];
return (
'horizontal' === i
? ((l += o), e && (a = 'center'), 'start' === n && (r = 'bottom'))
: ((s += o), e && (r = 'middle'), 'start' === n && (a = 'right')),
{ x: s, y: l, textAlign: a, textVerticalAlign: r }
);
},
_renderMonthText: function (t, e, i) {
var n = t.getModel('monthLabel');
if (n.get('show')) {
var o = n.get('nameMap'),
r = n.get('margin'),
s = n.get('position'),
l = n.get('align'),
u = [this._tlpoints, this._blpoints];
_(o) && (o = jN[o.toUpperCase()] || []);
var h = 'start' === s ? 0 : 1,
c = 'horizontal' === e ? 0 : 1;
r = 'start' === s ? -r : r;
for (var d = 'center' === l, f = 0; f < u[h].length - 1; f++) {
var p = u[h][f].slice(),
g = this._firstDayOfMonth[f];
if (d) {
var m = this._firstDayPoints[f];
p[c] = (m[c] + u[0][f + 1][c]) / 2;
}
var v = n.get('formatter'),
y = o[+g.m - 1],
x = {
yyyy: g.y,
yy: (g.y + '').slice(2),
MM: g.m,
M: +g.m,
nameMap: y,
},
w = this._formatterLabel(v, x),
b = new rM({ z2: 30 });
a(
mo(b.style, n, { text: w }),
this._monthTextPositionControl(p, d, e, s, r),
),
i.add(b);
}
}
},
_weekTextPositionControl: function (t, e, i, n, o) {
var a = 'center',
r = 'middle',
s = t[0],
l = t[1],
u = 'start' === i;
return (
'horizontal' === e
? ((s = s + n + ((u ? 1 : -1) * o[0]) / 2),
(a = u ? 'right' : 'left'))
: ((l = l + n + ((u ? 1 : -1) * o[1]) / 2),
(r = u ? 'bottom' : 'top')),
{ x: s, y: l, textAlign: a, textVerticalAlign: r }
);
},
_renderWeekText: function (t, e, i, n) {
var o = t.getModel('dayLabel');
if (o.get('show')) {
var r = t.coordinateSystem,
s = o.get('position'),
l = o.get('nameMap'),
u = o.get('margin'),
h = r.getFirstDayOfWeek();
_(l) && (l = YN[l.toUpperCase()] || []);
var c = r.getNextNDay(e.end.time, 7 - e.lweek).time,
d = [r.getCellWidth(), r.getCellHeight()];
(u = Vo(u, d['horizontal' === i ? 0 : 1])),
'start' === s &&
((c = r.getNextNDay(e.start.time, -(7 + e.fweek)).time), (u = -u));
for (var f = 0; f < 7; f++) {
var p = r.getNextNDay(c, f),
g = r.dataToRect([p.time], !1).center,
m = f;
m = Math.abs((f + h) % 7);
var v = new rM({ z2: 30 });
a(
mo(v.style, o, { text: l[m] }),
this._weekTextPositionControl(g, i, s, u, d),
),
n.add(v);
}
}
},
}),
Fs({
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' },
},
}),
Ws({
type: 'title',
render: function (t, e, i) {
if ((this.group.removeAll(), t.get('show'))) {
var n = this.group,
o = t.getModel('textStyle'),
a = t.getModel('subtextStyle'),
r = t.get('textAlign'),
s = t.get('textBaseline'),
l = new rM({
style: mo(
{},
o,
{ text: t.get('text'), textFill: o.getTextColor() },
{ disableBox: !0 },
),
z2: 10,
}),
u = l.getBoundingRect(),
h = t.get('subtext'),
c = new rM({
style: mo(
{},
a,
{
text: h,
textFill: a.getTextColor(),
y: u.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),
h && n.add(c);
var g = n.getBoundingRect(),
m = t.getBoxLayoutParams();
(m.width = g.width), (m.height = g.height);
var v = ca(
m,
{ width: i.getWidth(), height: i.getHeight() },
t.get('padding'),
);
r ||
('middle' === (r = t.get('left') || t.get('right')) &&
(r = 'center'),
'right' === r
? (v.x += v.width)
: 'center' === r && (v.x += v.width / 2)),
s ||
('center' === (s = t.get('top') || t.get('bottom')) &&
(s = 'middle'),
'bottom' === s
? (v.y += v.height)
: 'middle' === s && (v.y += v.height / 2),
(s = s || 'top')),
n.attr('position', [v.x, v.y]);
var y = { textAlign: r, textVerticalAlign: s };
l.setStyle(y), c.setStyle(y), (g = n.getBoundingRect());
var x = v.margin,
_ = t.getItemStyle(['color', 'opacity']);
_.fill = t.get('backgroundColor');
var w = new yM({
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,
});
$n(w), n.add(w);
}
},
}),
lI.registerSubTypeDefaulter('dataZoom', function () {
return 'slider';
});
var qN = ['cartesian2d', 'polar', 'singleAxis'],
KN = (function (t, e) {
var i = f((t = t.slice()), la),
n = f((e = (e || []).slice()), la);
return function (o, a) {
d(t, function (t, r) {
for (var s = { name: t, capital: i[r] }, l = 0; l < e.length; l++)
s[e[l]] = t + n[l];
o.call(a, s);
});
};
})(
['x', 'y', 'z', 'radius', 'angle', 'single'],
['axisIndex', 'axis', 'index', 'id'],
),
$N = d,
JN = Fo,
QN = 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);
};
QN.prototype = {
constructor: QN,
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 (Py(i.get('coordinateSystem'))) {
var n = this._dimName,
o = e.queryComponents({
mainType: n + 'Axis',
index: i.get(n + 'AxisIndex'),
id: i.get(n + 'AxisId'),
})[0];
this._axisIndex === (o && o.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,
o = this.getAxisModel();
'x' === i || 'y' === i
? ((e = 'gridIndex'), (t = 'x' === i ? 'y' : 'x'))
: ((e = 'polarIndex'), (t = 'angle' === i ? 'radius' : 'angle'));
var a;
return (
n.eachComponent(t + 'Axis', function (t) {
(t.get(e) || 0) === (o.get(e) || 0) && (a = t);
}),
a
);
},
getMinMaxSpan: function () {
return i(this._minMaxSpan);
},
calculateDataWindow: function (t) {
var e = this._dataExtent,
i = this.getAxisModel().axis.scale,
n = this._dataZoomModel.getRangePropMode(),
o = [0, 100],
a = [t.start, t.end],
r = [];
return (
$N(['startValue', 'endValue'], function (e) {
r.push(null != t[e] ? i.parse(t[e]) : null);
}),
$N([0, 1], function (t) {
var s = r[t],
l = a[t];
'percent' === n[t]
? (null == l && (l = o[t]), (s = i.parse(Bo(l, o, e, !0))))
: (l = Bo(s, e, o, !0)),
(r[t] = s),
(a[t] = l);
}),
{ valueWindow: JN(r), percentWindow: JN(a) }
);
},
reset: function (t) {
if (t === this._dataZoomModel) {
var e = this.getTargetSeriesModels();
this._dataExtent = Oy(this, this._dimName, e);
var i = this.calculateDataWindow(t.option);
(this._valueWindow = i.valueWindow),
(this._percentWindow = i.percentWindow),
zy(this),
Ry(this);
}
},
restore: function (t) {
t === this._dataZoomModel &&
((this._valueWindow = this._percentWindow = null), Ry(this, !0));
},
filterData: function (t, e) {
function i(t) {
return t >= r[0] && t <= r[1];
}
if (t === this._dataZoomModel) {
var n = this._dimName,
o = this.getTargetSeriesModels(),
a = t.get('filterMode'),
r = this._valueWindow;
'none' !== a &&
$N(o, function (t) {
var e = t.getData(),
o = e.mapDimension(n, !0);
o.length &&
('weakFilter' === a
? e.filterSelf(function (t) {
for (var i, n, a, s = 0; s < o.length; s++) {
var l = e.get(o[s], t),
u = !isNaN(l),
h = l < r[0],
c = l > r[1];
if (u && !h && !c) return !0;
u && (a = !0), h && (i = !0), c && (n = !0);
}
return a && i && n;
})
: $N(o, function (n) {
if ('empty' === a)
t.setData(
e.map(n, function (t) {
return i(t) ? t : NaN;
}),
);
else {
var o = {};
(o[n] = r), e.selectRange(o);
}
}),
$N(o, function (t) {
e.setApproximateExtent(r, t);
}));
});
}
},
};
var tO = d,
eO = KN,
iO = Fs({
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 = By(t);
this.mergeDefaultAndTheme(t, i), this.doInit(n);
},
mergeOption: function (t) {
var e = By(t);
n(this.option, t, !0), this.doInit(e);
},
doInit: function (t) {
var e = this.option;
U_.canvasSupported || (e.realtime = !1),
this._setDefaultThrottle(t),
Vy(this, t),
tO(
[
['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, o) {
var a = this.dependentModels[e.axis][i],
r =
a.__dzAxisProxy || (a.__dzAxisProxy = new QN(e.name, i, this, o));
t[e.name + '_' + i] = r;
}, this);
},
_resetTarget: function () {
var t = this.option,
e = this._judgeAutoMode();
eO(function (e) {
var i = e.axisIndex;
t[i] = Di(t[i]);
}, this),
'axisIndex' === e
? this._autoSetAxisIndex()
: 'orient' === e && this._autoSetOrient();
},
_judgeAutoMode: function () {
var t = this.option,
e = !1;
eO(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 o = 'vertical' === e ? 'y' : 'x';
n[o + 'Axis'].length
? ((i[o + 'AxisIndex'] = [0]), (t = !1))
: tO(n.singleAxis, function (n) {
t &&
n.get('orient', !0) === e &&
((i.singleAxisIndex = [n.componentIndex]), (t = !1));
});
}
t &&
eO(function (e) {
if (t) {
var n = [],
o = this.dependentModels[e.axis];
if (o.length && !n.length)
for (var a = 0, r = o.length; a < r; a++)
'category' === o[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') &&
eO(function (e) {
var n = i[e.axisIndex],
o = t.get(e.axisIndex),
a = t.get(e.axisId);
l(
n,
(o = t.ecModel.queryComponents({
mainType: e.axis,
index: o,
id: a,
})[0].componentIndex),
) < 0 && n.push(o);
});
}, 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 (
eO(function (n) {
var o = t.get(n.axisIndex),
a = this.dependentModels[n.axis][o];
(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 (
eO(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;
eO(function (n) {
tO(
this.get(n.axisIndex),
function (o) {
t.call(e, n, o, 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;
tO(
[
['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 && Vy(this, t);
},
getPercentRange: function () {
var t = this.findRepresentativeAxisProxy();
if (t) return t.getDataPercentWindow();
},
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();
},
}),
nO = qI.extend({
type: 'dataZoom',
render: function (t, e, i, n) {
(this.dataZoomModel = t), (this.ecModel = e), (this.api = i);
},
getTargetCoordInfo: function () {
function t(t, e, i, n) {
for (var o, a = 0; a < i.length; a++)
if (i[a].model === t) {
o = i[a];
break;
}
o || i.push((o = { model: t, axisModels: [], coordIndex: n })),
o.axisModels.push(e);
}
var e = this.dataZoomModel,
i = this.ecModel,
n = {};
return (
e.eachTargetAxis(function (e, o) {
var a = i.getComponent(e.axis, o);
if (a) {
var r = a.getCoordSysModel();
r &&
t(
r,
a,
n[r.mainType] || (n[r.mainType] = []),
r.componentIndex,
);
}
}, this),
n
);
},
}),
oO =
(iO.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: 0.5, opacity: 0.3 },
areaStyle: { color: 'rgba(47,69,84,0.3)', opacity: 0.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' },
},
}),
yM),
aO = Bo,
rO = Fo,
sO = m,
lO = d,
uO = 'horizontal',
hO = 5,
cO = ['line', 'bar', 'candlestick', 'scatter'],
dO = nO.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) {
dO.superApply(this, 'render', arguments),
Nr(
this,
'_dispatchZoomAction',
this.dataZoomModel.get('throttle'),
'fixRate',
),
(this._orient = t.get('orient')),
!1 !== this.dataZoomModel.get('show')
? ((n && 'dataZoom' === n.type && n.from === this.uid) ||
this._buildView(),
this._updateView())
: this.group.removeAll();
},
remove: function () {
dO.superApply(this, 'remove', arguments),
Or(this, '_dispatchZoomAction');
},
dispose: function () {
dO.superApply(this, 'dispose', arguments),
Or(this, '_dispatchZoomAction');
},
_buildView: function () {
var t = this.group;
t.removeAll(), this._resetLocation(), this._resetInterval();
var e = (this._displayables.barGroup = new tb());
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() },
o =
this._orient === uO
? {
right: n.width - i.x - i.width,
top: n.height - 30 - 7,
width: i.width,
height: 30,
}
: { right: 7, top: i.y, width: 30, height: i.height },
a = ga(t.option);
d(['right', 'top', 'width', 'height'], function (t) {
'ph' === a[t] && (a[t] = o[t]);
});
var r = ca(a, n, t.padding);
(this._location = { x: r.x, y: r.y }),
(this._size = [r.width, r.height]),
'vertical' === this._orient && this._size.reverse();
},
_positionGroup: function () {
var t = this.group,
e = this._location,
i = this._orient,
n = this.dataZoomModel.getFirstTargetAxisModel(),
o = n && n.get('inverse'),
a = this._displayables.barGroup,
r = (this._dataShadowInfo || {}).otherAxisInverse;
a.attr(
i !== uO || o
? i === uO && o
? { scale: r ? [-1, 1] : [-1, -1] }
: 'vertical' !== i || o
? { scale: r ? [-1, -1] : [-1, 1], rotation: Math.PI / 2 }
: { scale: r ? [1, -1] : [1, 1], rotation: Math.PI / 2 }
: { scale: r ? [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 oO({
silent: !0,
shape: { x: 0, y: 0, width: e[0], height: e[1] },
style: { fill: t.get('backgroundColor') },
z2: -40,
}),
),
i.add(
new oO({
shape: { x: 0, y: 0, width: e[0], height: e[1] },
style: { fill: 'transparent' },
z2: 0,
onclick: m(this._onClickPanelClick, this),
}),
);
},
_renderDataShadow: function () {
var t = (this._dataShadowInfo = this._prepareDataShadowInfo());
if (t) {
var e = this._size,
i = t.series,
n = i.getRawData(),
o = i.getShadowDim ? i.getShadowDim() : t.otherDim;
if (null != o) {
var a = n.getDataExtent(o),
s = 0.3 * (a[1] - a[0]);
a = [a[0] - s, a[1] + s];
var l,
u = [0, e[1]],
h = [0, e[0]],
c = [
[e[0], 0],
[0, 0],
],
d = [],
f = h[1] / (n.count() - 1),
p = 0,
g = Math.round(n.count() / e[0]);
n.each([o], function (t, e) {
if (g > 0 && e % g) p += f;
else {
var i = null == t || isNaN(t) || '' === t,
n = i ? 0 : aO(t, a, u, !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 m = this.dataZoomModel;
this._displayables.barGroup.add(
new pM({
shape: { points: c },
style: r(
{ fill: m.get('dataBackgroundColor') },
m.getModel('dataBackground.areaStyle').getAreaStyle(),
),
silent: !0,
z2: -20,
}),
),
this._displayables.barGroup.add(
new gM({
shape: { points: d },
style: m.getModel('dataBackground.lineStyle').getLineStyle(),
silent: !0,
z2: -19,
}),
);
}
}
},
_prepareDataShadowInfo: function () {
var t = this.dataZoomModel,
e = t.get('showDataShadow');
if (!1 !== e) {
var i,
n = this.ecModel;
return (
t.eachTargetAxis(function (o, a) {
d(
t.getAxisProxy(o.name, a).getTargetSeriesModels(),
function (t) {
if (!(i || (!0 !== e && l(cO, t.get('type')) < 0))) {
var r,
s = n.getComponent(o.axis, a).axis,
u = Gy(o.name),
h = t.coordinateSystem;
null != u &&
h.getOtherAxis &&
(r = h.getOtherAxis(s).inverse),
(u = t.getData().mapDimension(u)),
(i = {
thisAxis: s,
series: t,
thisDim: o.name,
otherDim: u,
otherAxisInverse: r,
});
}
},
this,
);
}, this),
i
);
}
},
_renderHandle: function () {
var t = this._displayables,
e = (t.handles = []),
i = (t.handleLabels = []),
n = this._displayables.barGroup,
o = this._size,
a = this.dataZoomModel;
n.add(
(t.filler = new oO({
draggable: !0,
cursor: Fy(this._orient),
drift: sO(this._onDragMove, this, 'all'),
onmousemove: function (t) {
mw(t.event);
},
ondragstart: sO(this._showDataInfo, this, !0),
ondragend: sO(this._onDragEnd, this),
onmouseover: sO(this._showDataInfo, this, !0),
onmouseout: sO(this._showDataInfo, this, !1),
style: { fill: a.get('fillerColor'), textPosition: 'inside' },
})),
),
n.add(
new oO(
$n({
silent: !0,
shape: { x: 0, y: 0, width: o[0], height: o[1] },
style: {
stroke: a.get('dataBackgroundColor') || a.get('borderColor'),
lineWidth: 1,
fill: 'rgba(0,0,0,0)',
},
}),
),
),
lO(
[0, 1],
function (t) {
var o = Po(
a.get('handleIcon'),
{
cursor: Fy(this._orient),
draggable: !0,
drift: sO(this._onDragMove, this, t),
onmousemove: function (t) {
mw(t.event);
},
ondragend: sO(this._onDragEnd, this),
onmouseover: sO(this._showDataInfo, this, !0),
onmouseout: sO(this._showDataInfo, this, !1),
},
{ x: -1, y: 0, width: 2, height: 2 },
),
r = o.getBoundingRect();
(this._handleHeight = Vo(a.get('handleSize'), this._size[1])),
(this._handleWidth = (r.width / r.height) * this._handleHeight),
o.setStyle(a.getModel('handleStyle').getItemStyle());
var s = a.get('handleColor');
null != s && (o.style.fill = s), n.add((e[t] = o));
var l = a.textStyleModel;
this.group.add(
(i[t] = new rM({
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 = [
aO(t[0], [0, 100], e, !0),
aO(t[1], [0, 100], e, !0),
];
},
_updateInterval: function (t, e) {
var i = this.dataZoomModel,
n = this._handleEnds,
o = this._getViewExtent(),
a = i.findRepresentativeAxisProxy().getMinMaxSpan(),
r = [0, 100];
QL(
e,
n,
o,
i.get('zoomLock') ? 'all' : t,
null != a.minSpan ? aO(a.minSpan, r, o, !0) : null,
null != a.maxSpan ? aO(a.maxSpan, r, o, !0) : null,
);
var s = this._range,
l = (this._range = rO([aO(n[0], o, r, !0), aO(n[1], o, r, !0)]));
return !s || s[0] !== l[0] || s[1] !== l[1];
},
_updateView: function (t) {
var e = this._displayables,
i = this._handleEnds,
n = rO(i.slice()),
o = this._size;
lO(
[0, 1],
function (t) {
var n = e.handles[t],
a = this._handleHeight;
n.attr({
scale: [a / 2, a / 2],
position: [i[t], o[1] / 2 - a / 2],
});
},
this,
),
e.filler.setShape({
x: n[0],
y: 0,
width: n[1] - n[0],
height: o[1],
}),
this._updateDataInfo(t);
},
_updateDataInfo: function (t) {
function e(t) {
var e = Ao(n.handles[t].parent, this.group),
i = Co(0 === t ? 'right' : 'left', e),
s = this._handleWidth / 2 + hO,
l = Do([c[t] + (0 === t ? -s : s), this._size[1] / 2], e);
o[t].setStyle({
x: l[0],
y: l[1],
textVerticalAlign: a === uO ? 'middle' : i,
textAlign: a === uO ? i : 'center',
text: r[t],
});
}
var i = this.dataZoomModel,
n = this._displayables,
o = n.handleLabels,
a = this._orient,
r = ['', ''];
if (i.get('showDetail')) {
var s = i.findRepresentativeAxisProxy();
if (s) {
var l = s.getAxisModel().axis,
u = this._range,
h = t
? s.calculateDataWindow({ start: u[0], end: u[1] }).valueWindow
: s.getDataValueWindow();
r = [this._formatLabel(h[0], l), this._formatLabel(h[1], l)];
}
}
var c = rO(this._handleEnds.slice());
e.call(this, 0), e.call(this, 1);
},
_formatLabel: function (t, e) {
var i = this.dataZoomModel,
n = i.get('labelFormatter'),
o = i.get('labelPrecision');
(null != o && 'auto' !== o) || (o = e.getPixelPrecision());
var a =
null == t || isNaN(t)
? ''
: 'category' === e.type || 'time' === e.type
? e.scale.getLabel(Math.round(t))
: t.toFixed(Math.min(o, 20));
return x(n) ? n(t, a) : _(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 = Do([e, i], this._displayables.barGroup.getLocalTransform(), !0),
o = this._updateInterval(t, n[0]),
a = this.dataZoomModel.get('realtime');
this._updateView(!a), o && a && this._dispatchZoomAction();
},
_onDragEnd: function () {
(this._dragging = !1),
this._showDataInfo(!1),
!this.dataZoomModel.get('realtime') && 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,
o = (n[0] + n[1]) / 2,
a = this._updateInterval('all', i[0] - o);
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 (
(lO(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: 0.2 * e, y: 0.2 * i, width: 0.6 * e, height: 0.6 * i };
}
return t;
},
});
iO.extend({
type: 'dataZoom.inside',
defaultOption: {
disabled: !1,
zoomLock: !1,
zoomOnMouseWheel: !0,
moveOnMouseMove: !0,
moveOnMouseWheel: !1,
preventDefaultMouseMove: !0,
},
});
var fO = '\0_ec_dataZoom_roams',
pO = m,
gO = nO.extend({
type: 'dataZoom.inside',
init: function (t, e) {
this._range;
},
render: function (t, e, i, n) {
gO.superApply(this, 'render', arguments),
(this._range = t.getPercentRange()),
d(
this.getTargetCoordInfo(),
function (e, n) {
var o = f(e, function (t) {
return Zy(t.model);
});
d(
e,
function (e) {
var a = e.model,
r = {};
d(
['pan', 'zoom', 'scrollMove'],
function (t) {
r[t] = pO(mO[t], this, e, n);
},
this,
),
Wy(i, {
coordId: Zy(a),
allCoordIds: o,
containsPoint: function (t, e, i) {
return a.coordinateSystem.containPoint([e, i]);
},
dataZoomId: t.id,
dataZoomModel: t,
getRange: r,
});
},
this,
);
},
this,
);
},
dispose: function () {
Hy(this.api, this.dataZoomModel.id),
gO.superApply(this, 'dispose', arguments),
(this._range = null);
},
}),
mO = {
zoom: function (t, e, i, n) {
var o = this._range,
a = o.slice(),
r = t.axisModels[0];
if (r) {
var s = vO[e](null, [n.originX, n.originY], r, i, t),
l =
((s.signal > 0
? s.pixelStart + s.pixelLength - s.pixel
: s.pixel - s.pixelStart) /
s.pixelLength) *
(a[1] - a[0]) +
a[0],
u = Math.max(1 / n.scale, 0);
(a[0] = (a[0] - l) * u + l), (a[1] = (a[1] - l) * u + l);
var h = this.dataZoomModel
.findRepresentativeAxisProxy()
.getMinMaxSpan();
return (
QL(0, a, [0, 100], 0, h.minSpan, h.maxSpan),
(this._range = a),
o[0] !== a[0] || o[1] !== a[1] ? a : void 0
);
}
},
pan: Ky(function (t, e, i, n, o, a) {
var r = vO[n]([a.oldX, a.oldY], [a.newX, a.newY], e, o, i);
return (r.signal * (t[1] - t[0]) * r.pixel) / r.pixelLength;
}),
scrollMove: Ky(function (t, e, i, n, o, a) {
return (
vO[n]([0, 0], [a.scrollDelta, a.scrollDelta], e, o, i).signal *
(t[1] - t[0]) *
a.scrollDelta
);
}),
},
vO = {
grid: function (t, e, i, n, o) {
var a = i.axis,
r = {},
s = o.model.coordinateSystem.getRect();
return (
(t = t || [0, 0]),
'x' === a.dim
? ((r.pixel = e[0] - t[0]),
(r.pixelLength = s.width),
(r.pixelStart = s.x),
(r.signal = a.inverse ? 1 : -1))
: ((r.pixel = e[1] - t[1]),
(r.pixelLength = s.height),
(r.pixelStart = s.y),
(r.signal = a.inverse ? -1 : 1)),
r
);
},
polar: function (t, e, i, n, o) {
var a = i.axis,
r = {},
s = o.model.coordinateSystem,
l = s.getRadiusAxis().getExtent(),
u = s.getAngleAxis().getExtent();
return (
(t = t ? s.pointToCoord(t) : [0, 0]),
(e = s.pointToCoord(e)),
'radiusAxis' === i.mainType
? ((r.pixel = e[0] - t[0]),
(r.pixelLength = l[1] - l[0]),
(r.pixelStart = l[0]),
(r.signal = a.inverse ? 1 : -1))
: ((r.pixel = e[1] - t[1]),
(r.pixelLength = u[1] - u[0]),
(r.pixelStart = u[0]),
(r.signal = a.inverse ? -1 : 1)),
r
);
},
singleAxis: function (t, e, i, n, o) {
var a = i.axis,
r = o.model.coordinateSystem.getRect(),
s = {};
return (
(t = t || [0, 0]),
'horizontal' === a.orient
? ((s.pixel = e[0] - t[0]),
(s.pixelLength = r.width),
(s.pixelStart = r.x),
(s.signal = a.inverse ? 1 : -1))
: ((s.pixel = e[1] - t[1]),
(s.pixelLength = r.height),
(s.pixelStart = r.y),
(s.signal = a.inverse ? -1 : 1)),
s
);
},
};
Os({
getTargetSeries: function (t) {
var e = R();
return (
t.eachComponent('dataZoom', function (t) {
t.eachTargetAxis(function (t, i, n) {
d(n.getAxisProxy(t.name, i).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,
);
});
},
}),
Es('dataZoom', function (t, e) {
var i = Ny(m(e.eachComponent, e, 'dataZoom'), KN, function (t, e) {
return t.get(e.axisIndex);
}),
n = [];
e.eachComponent({ mainType: 'dataZoom', query: t }, function (t, e) {
n.push.apply(n, i(t).nodes);
}),
d(n, function (e, i) {
e.setRawRange({
start: t.start,
end: t.end,
startValue: t.startValue,
endValue: t.endValue,
});
});
});
var yO = d,
xO = function (t) {
var e = t && t.visualMap;
y(e) || (e = e ? [e] : []),
yO(e, function (t) {
if (t) {
$y(t, 'splitList') &&
!$y(t, 'pieces') &&
((t.pieces = t.splitList), delete t.splitList);
var e = t.pieces;
e &&
y(e) &&
yO(e, function (t) {
w(t) &&
($y(t, 'start') && !$y(t, 'min') && (t.min = t.start),
$y(t, 'end') && !$y(t, 'max') && (t.max = t.end));
});
}
});
};
lI.registerSubTypeDefaulter('visualMap', function (t) {
return t.categories ||
((t.pieces ? t.pieces.length > 0 : t.splitNumber > 0) && !t.calculable)
? 'piecewise'
: 'continuous';
});
var _O = VT.VISUAL.COMPONENT;
Bs(_O, {
createOnAllSeries: !0,
reset: function (t, e) {
var i = [];
return (
e.eachComponent('visualMap', function (e) {
var n = t.pipelineContext;
!e.isTargetSeries(t) ||
(n && n.large) ||
i.push(
ny(
e.stateList,
e.targetVisuals,
m(e.getValueState, e),
e.getDataDimension(t.getData()),
),
);
}),
i
);
},
}),
Bs(_O, {
createOnAllSeries: !0,
reset: function (t, e) {
var i = t.getData(),
n = [];
e.eachComponent('visualMap', function (e) {
if (e.isTargetSeries(t)) {
var o = e.getVisualMeta(m(Jy, null, t, e)) || {
stops: [],
outerColors: [],
},
a = e.getDataDimension(i),
r = i.getDimensionInfo(a);
null != r && ((o.dimension = r.index), n.push(o));
}
}),
t.getData().setVisual('visualMeta', n);
},
});
var wO = {
get: function (t, e, n) {
var o = i((bO[t] || {})[e]);
return n && y(o) ? o[o.length - 1] : o;
},
},
bO = {
color: { active: ['#006edd', '#e0ffff'], inactive: ['rgba(0,0,0,0)'] },
colorHue: { active: [0, 360], inactive: [0, 0] },
colorSaturation: { active: [0.3, 1], inactive: [0, 0] },
colorLightness: { active: [0.9, 0.5], inactive: [0, 0] },
colorAlpha: { active: [0.3, 1], inactive: [0, 0] },
opacity: { active: [0.3, 1], inactive: [0, 0] },
symbol: {
active: ['circle', 'roundRect', 'diamond'],
inactive: ['none'],
},
symbolSize: { active: [10, 50], inactive: [0, 0] },
},
SO = hL.mapVisual,
MO = hL.eachVisual,
IO = y,
TO = d,
AO = Fo,
DO = Bo,
CO = B,
LO = Fs({
type: 'visualMap',
dependencies: ['series'],
stateList: ['inRange', 'outOfRange'],
replacableOptionKeys: [
'inRange',
'outOfRange',
'target',
'controller',
'color',
],
dataBound: [-1 / 0, 1 / 0],
layoutMode: { type: 'box', ignoreSize: !0 },
defaultOption: {
show: !0,
zlevel: 0,
z: 4,
seriesIndex: 'all',
min: 0,
max: 200,
dimension: null,
inRange: null,
outOfRange: null,
left: 0,
right: null,
top: null,
bottom: 0,
itemWidth: null,
itemHeight: null,
inverse: !1,
orient: 'vertical',
backgroundColor: 'rgba(0,0,0,0)',
borderColor: '#ccc',
contentColor: '#5793f3',
inactiveColor: '#aaa',
borderWidth: 0,
padding: 5,
textGap: 10,
precision: 0,
color: null,
formatter: null,
text: null,
textStyle: { color: '#333' },
},
init: function (t, e, i) {
this._dataExtent,
(this.targetVisuals = {}),
(this.controllerVisuals = {}),
this.textStyleModel,
this.itemSize,
this.mergeDefaultAndTheme(t, i);
},
optionUpdated: function (t, e) {
var i = this.option;
U_.canvasSupported || (i.realtime = !1),
!e && ey(i, t, this.replacableOptionKeys),
(this.textStyleModel = this.getModel('textStyle')),
this.resetItemSize(),
this.completeVisualOption();
},
resetVisual: function (t) {
var e = this.stateList;
(t = m(t, this)),
(this.controllerVisuals = ty(this.option.controller, e, t)),
(this.targetVisuals = ty(this.option.target, e, t));
},
getTargetSeriesIndices: function () {
var t = this.option.seriesIndex,
e = [];
return (
null == t || 'all' === t
? this.ecModel.eachSeries(function (t, i) {
e.push(i);
})
: (e = Di(t)),
e
);
},
eachTargetSeries: function (t, e) {
d(
this.getTargetSeriesIndices(),
function (i) {
t.call(e, this.ecModel.getSeriesByIndex(i));
},
this,
);
},
isTargetSeries: function (t) {
var e = !1;
return (
this.eachTargetSeries(function (i) {
i === t && (e = !0);
}),
e
);
},
formatValueText: function (t, e, i) {
function n(t) {
return t === l[0]
? 'min'
: t === l[1]
? 'max'
: (+t).toFixed(Math.min(s, 20));
}
var o,
a,
r = this.option,
s = r.precision,
l = this.dataBound,
u = r.formatter;
return (
(i = i || ['<', '>']),
y(t) && ((t = t.slice()), (o = !0)),
(a = e ? t : o ? [n(t[0]), n(t[1])] : n(t)),
_(u)
? u
.replace('{value}', o ? a[0] : a)
.replace('{value2}', o ? a[1] : a)
: x(u)
? o
? u(t[0], t[1])
: u(t)
: o
? t[0] === l[0]
? i[0] + ' ' + a[1]
: t[1] === l[1]
? i[1] + ' ' + a[0]
: a[0] + ' - ' + a[1]
: a
);
},
resetExtent: function () {
var t = this.option,
e = AO([t.min, t.max]);
this._dataExtent = e;
},
getDataDimension: function (t) {
var e = this.option.dimension,
i = t.dimensions;
if (null != e || i.length) {
if (null != e) return t.getDimension(e);
for (var n = t.dimensions, o = n.length - 1; o >= 0; o--) {
var a = n[o];
if (!t.getDimensionInfo(a).isCalculationCoord) return a;
}
}
},
getExtent: function () {
return this._dataExtent.slice();
},
completeVisualOption: function () {
function t(t) {
IO(o.color) &&
!t.inRange &&
(t.inRange = { color: o.color.slice().reverse() }),
(t.inRange = t.inRange || { color: e.get('gradientColor') }),
TO(
this.stateList,
function (e) {
var i = t[e];
if (_(i)) {
var n = wO.get(i, 'active', l);
n ? ((t[e] = {}), (t[e][i] = n)) : delete t[e];
}
},
this,
);
}
var e = this.ecModel,
o = this.option,
a = { inRange: o.inRange, outOfRange: o.outOfRange },
r = o.target || (o.target = {}),
s = o.controller || (o.controller = {});
n(r, a), n(s, a);
var l = this.isCategory();
t.call(this, r),
t.call(this, s),
function (t, e, i) {
var n = t[e],
o = t[i];
n &&
!o &&
((o = t[i] = {}),
TO(n, function (t, e) {
if (hL.isValidType(e)) {
var i = wO.get(e, 'inactive', l);
null != i &&
((o[e] = i),
'color' !== e ||
o.hasOwnProperty('opacity') ||
o.hasOwnProperty('colorAlpha') ||
(o.opacity = [0, 0]));
}
}));
}.call(this, r, 'inRange', 'outOfRange'),
function (t) {
var e = (t.inRange || {}).symbol || (t.outOfRange || {}).symbol,
n =
(t.inRange || {}).symbolSize || (t.outOfRange || {}).symbolSize,
o = this.get('inactiveColor');
TO(
this.stateList,
function (a) {
var r = this.itemSize,
s = t[a];
s || (s = t[a] = { color: l ? o : [o] }),
null == s.symbol &&
(s.symbol =
(e && i(e)) || (l ? 'roundRect' : ['roundRect'])),
null == s.symbolSize &&
(s.symbolSize = (n && i(n)) || (l ? r[0] : [r[0], r[0]])),
(s.symbol = SO(s.symbol, function (t) {
return 'none' === t || 'square' === t ? 'roundRect' : t;
}));
var u = s.symbolSize;
if (null != u) {
var h = -1 / 0;
MO(u, function (t) {
t > h && (h = t);
}),
(s.symbolSize = SO(u, function (t) {
return DO(t, [0, h], [0, r[0]], !0);
}));
}
},
this,
);
}.call(this, s);
},
resetItemSize: function () {
this.itemSize = [
parseFloat(this.get('itemWidth')),
parseFloat(this.get('itemHeight')),
];
},
isCategory: function () {
return !!this.option.categories;
},
setSelected: CO,
getValueState: CO,
getVisualMeta: CO,
}),
kO = [20, 140],
PO = LO.extend({
type: 'visualMap.continuous',
defaultOption: {
align: 'auto',
calculable: !1,
range: null,
realtime: !0,
itemHeight: null,
itemWidth: null,
hoverLink: !0,
hoverLinkDataSize: null,
hoverLinkOnHandle: null,
},
optionUpdated: function (t, e) {
PO.superApply(this, 'optionUpdated', arguments),
this.resetExtent(),
this.resetVisual(function (t) {
(t.mappingMethod = 'linear'), (t.dataExtent = this.getExtent());
}),
this._resetRange();
},
resetItemSize: function () {
PO.superApply(this, 'resetItemSize', arguments);
var t = this.itemSize;
'horizontal' === this._orient && t.reverse(),
(null == t[0] || isNaN(t[0])) && (t[0] = kO[0]),
(null == t[1] || isNaN(t[1])) && (t[1] = kO[1]);
},
_resetRange: function () {
var t = this.getExtent(),
e = this.option.range;
!e || e.auto
? ((t.auto = 1), (this.option.range = t))
: y(e) &&
(e[0] > e[1] && e.reverse(),
(e[0] = Math.max(e[0], t[0])),
(e[1] = Math.min(e[1], t[1])));
},
completeVisualOption: function () {
LO.prototype.completeVisualOption.apply(this, arguments),
d(
this.stateList,
function (t) {
var e = this.option.controller[t].symbolSize;
e && e[0] !== e[1] && (e[0] = 0);
},
this,
);
},
setSelected: function (t) {
(this.option.range = t.slice()), this._resetRange();
},
getSelected: function () {
var t = this.getExtent(),
e = Fo((this.get('range') || []).slice());
return (
e[0] > t[1] && (e[0] = t[1]),
e[1] > t[1] && (e[1] = t[1]),
e[0] < t[0] && (e[0] = t[0]),
e[1] < t[0] && (e[1] = t[0]),
e
);
},
getValueState: function (t) {
var e = this.option.range,
i = this.getExtent();
return (e[0] <= i[0] || e[0] <= t) && (e[1] >= i[1] || t <= e[1])
? 'inRange'
: 'outOfRange';
},
findTargetDataIndices: function (t) {
var e = [];
return (
this.eachTargetSeries(function (i) {
var n = [],
o = i.getData();
o.each(
this.getDataDimension(o),
function (e, i) {
t[0] <= e && e <= t[1] && n.push(i);
},
this,
),
e.push({ seriesId: i.id, dataIndex: n });
}, this),
e
);
},
getVisualMeta: function (t) {
function e(e, i) {
o.push({ value: e, color: t(e, i) });
}
for (
var i = Qy(0, 0, this.getExtent()),
n = Qy(0, 0, this.option.range.slice()),
o = [],
a = 0,
r = 0,
s = n.length,
l = i.length;
r < l && (!n.length || i[r] <= n[0]);
r++
)
i[r] < n[a] && e(i[r], 'outOfRange');
for (u = 1; a < s; a++, u = 0)
u && o.length && e(n[a], 'outOfRange'), e(n[a], 'inRange');
for (var u = 1; r < l; r++)
(!n.length || n[n.length - 1] < i[r]) &&
(u && (o.length && e(o[o.length - 1].value, 'outOfRange'), (u = 0)),
e(i[r], 'outOfRange'));
var h = o.length;
return {
stops: o,
outerColors: [
h ? o[0].color : 'transparent',
h ? o[h - 1].color : 'transparent',
],
};
},
}),
NO = Ws({
type: 'visualMap',
autoPositionValues: { left: 1, right: 1, top: 1, bottom: 1 },
init: function (t, e) {
(this.ecModel = t), (this.api = e), this.visualMapModel;
},
render: function (t, e, i, n) {
(this.visualMapModel = t),
!1 !== t.get('show')
? this.doRender.apply(this, arguments)
: this.group.removeAll();
},
renderBackground: function (t) {
var e = this.visualMapModel,
i = qM(e.get('padding') || 0),
n = t.getBoundingRect();
t.add(
new yM({
z2: -1,
silent: !0,
shape: {
x: n.x - i[3],
y: n.y - i[0],
width: n.width + i[3] + i[1],
height: n.height + i[0] + i[2],
},
style: {
fill: e.get('backgroundColor'),
stroke: e.get('borderColor'),
lineWidth: e.get('borderWidth'),
},
}),
);
},
getControllerVisual: function (t, e, i) {
function n(t) {
return s[t];
}
function o(t, e) {
s[t] = e;
}
var a = (i = i || {}).forceState,
r = this.visualMapModel,
s = {};
if (
('symbol' === e && (s.symbol = r.get('itemSymbol')), 'color' === e)
) {
var l = r.get('contentColor');
s.color = l;
}
var u = r.controllerVisuals[a || r.getValueState(t)];
return (
d(hL.prepareVisualTypes(u), function (a) {
var r = u[a];
i.convertOpacityToAlpha &&
'opacity' === a &&
((a = 'colorAlpha'), (r = u.__alphaForOpacity)),
hL.dependsOn(a, e) && r && r.applyVisual(t, n, o);
}),
s[e]
);
},
positionGroup: function (t) {
var e = this.visualMapModel,
i = this.api;
da(t, e.getBoxLayoutParams(), {
width: i.getWidth(),
height: i.getHeight(),
});
},
doRender: B,
}),
OO = Bo,
EO = d,
RO = Math.min,
zO = Math.max,
BO = 12,
VO = 6,
GO = NO.extend({
type: 'visualMap.continuous',
init: function () {
GO.superApply(this, 'init', arguments),
(this._shapes = {}),
(this._dataInterval = []),
(this._handleEnds = []),
this._orient,
this._useHandle,
(this._hoverLinkDataIndices = []),
this._dragging,
this._hovering;
},
doRender: function (t, e, i, n) {
(n && 'selectDataRange' === n.type && n.from === this.uid) ||
this._buildView();
},
_buildView: function () {
this.group.removeAll();
var t = this.visualMapModel,
e = this.group;
(this._orient = t.get('orient')),
(this._useHandle = t.get('calculable')),
this._resetInterval(),
this._renderBar(e);
var i = t.get('text');
this._renderEndsText(e, i, 0),
this._renderEndsText(e, i, 1),
this._updateView(!0),
this.renderBackground(e),
this._updateView(),
this._enableHoverLinkToSeries(),
this._enableHoverLinkFromSeries(),
this.positionGroup(e);
},
_renderEndsText: function (t, e, i) {
if (e) {
var n = e[1 - i];
n = null != n ? n + '' : '';
var o = this.visualMapModel,
a = o.get('textGap'),
r = o.itemSize,
s = this._shapes.barGroup,
l = this._applyTransform([r[0] / 2, 0 === i ? -a : r[1] + a], s),
u = this._applyTransform(0 === i ? 'bottom' : 'top', s),
h = this._orient,
c = this.visualMapModel.textStyleModel;
this.group.add(
new rM({
style: {
x: l[0],
y: l[1],
textVerticalAlign: 'horizontal' === h ? 'middle' : u,
textAlign: 'horizontal' === h ? u : 'center',
text: n,
textFont: c.getFont(),
textFill: c.getTextColor(),
},
}),
);
}
},
_renderBar: function (t) {
var e = this.visualMapModel,
i = this._shapes,
n = e.itemSize,
o = this._orient,
a = this._useHandle,
r = tx(e, this.api, n),
s = (i.barGroup = this._createBarGroup(r));
s.add((i.outOfRange = ix())),
s.add(
(i.inRange = ix(
null,
a ? sx(this._orient) : null,
m(this._dragHandle, this, 'all', !1),
m(this._dragHandle, this, 'all', !0),
)),
);
var l = e.textStyleModel.getTextRect('国'),
u = zO(l.width, l.height);
a &&
((i.handleThumbs = []),
(i.handleLabels = []),
(i.handleLabelPoints = []),
this._createHandle(s, 0, n, u, o, r),
this._createHandle(s, 1, n, u, o, r)),
this._createIndicator(s, n, u, o),
t.add(s);
},
_createHandle: function (t, e, i, n, o) {
var a = m(this._dragHandle, this, e, !1),
r = m(this._dragHandle, this, e, !0),
s = ix(nx(e, n), sx(this._orient), a, r);
(s.position[0] = i[0]), t.add(s);
var l = this.visualMapModel.textStyleModel,
u = new rM({
draggable: !0,
drift: a,
onmousemove: function (t) {
mw(t.event);
},
ondragend: r,
style: {
x: 0,
y: 0,
text: '',
textFont: l.getFont(),
textFill: l.getTextColor(),
},
});
this.group.add(u);
var h = [
'horizontal' === o ? n / 2 : 1.5 * n,
'horizontal' === o
? 0 === e
? -1.5 * n
: 1.5 * n
: 0 === e
? -n / 2
: n / 2,
],
c = this._shapes;
(c.handleThumbs[e] = s),
(c.handleLabelPoints[e] = h),
(c.handleLabels[e] = u);
},
_createIndicator: function (t, e, i, n) {
var o = ix([[0, 0]], 'move');
(o.position[0] = e[0]), o.attr({ invisible: !0, silent: !0 }), t.add(o);
var a = this.visualMapModel.textStyleModel,
r = new rM({
silent: !0,
invisible: !0,
style: {
x: 0,
y: 0,
text: '',
textFont: a.getFont(),
textFill: a.getTextColor(),
},
});
this.group.add(r);
var s = ['horizontal' === n ? i / 2 : VO + 3, 0],
l = this._shapes;
(l.indicator = o), (l.indicatorLabel = r), (l.indicatorLabelPoint = s);
},
_dragHandle: function (t, e, i, n) {
if (this._useHandle) {
if (((this._dragging = !e), !e)) {
var o = this._applyTransform([i, n], this._shapes.barGroup, !0);
this._updateInterval(t, o[1]), this._updateView();
}
e === !this.visualMapModel.get('realtime') &&
this.api.dispatchAction({
type: 'selectDataRange',
from: this.uid,
visualMapId: this.visualMapModel.id,
selected: this._dataInterval.slice(),
}),
e
? !this._hovering && this._clearHoverLinkToSeries()
: rx(this.visualMapModel) &&
this._doHoverLinkToSeries(this._handleEnds[t], !1);
}
},
_resetInterval: function () {
var t = this.visualMapModel,
e = (this._dataInterval = t.getSelected()),
i = t.getExtent(),
n = [0, t.itemSize[1]];
this._handleEnds = [OO(e[0], i, n, !0), OO(e[1], i, n, !0)];
},
_updateInterval: function (t, e) {
e = e || 0;
var i = this.visualMapModel,
n = this._handleEnds,
o = [0, i.itemSize[1]];
QL(e, n, o, t, 0);
var a = i.getExtent();
this._dataInterval = [OO(n[0], o, a, !0), OO(n[1], o, a, !0)];
},
_updateView: function (t) {
var e = this.visualMapModel,
i = e.getExtent(),
n = this._shapes,
o = [0, e.itemSize[1]],
a = t ? o : this._handleEnds,
r = this._createBarVisual(this._dataInterval, i, a, 'inRange'),
s = this._createBarVisual(i, i, o, 'outOfRange');
n.inRange
.setStyle({ fill: r.barColor, opacity: r.opacity })
.setShape('points', r.barPoints),
n.outOfRange
.setStyle({ fill: s.barColor, opacity: s.opacity })
.setShape('points', s.barPoints),
this._updateHandle(a, r);
},
_createBarVisual: function (t, e, i, n) {
var o = { forceState: n, convertOpacityToAlpha: !0 },
a = this._makeColorGradient(t, o),
r = [
this.getControllerVisual(t[0], 'symbolSize', o),
this.getControllerVisual(t[1], 'symbolSize', o),
],
s = this._createBarPoints(i, r);
return {
barColor: new TM(0, 0, 0, 1, a),
barPoints: s,
handlesColor: [a[0].color, a[a.length - 1].color],
};
},
_makeColorGradient: function (t, e) {
var i = [],
n = (t[1] - t[0]) / 100;
i.push({
color: this.getControllerVisual(t[0], 'color', e),
offset: 0,
});
for (var o = 1; o < 100; o++) {
var a = t[0] + n * o;
if (a > t[1]) break;
i.push({
color: this.getControllerVisual(a, 'color', e),
offset: o / 100,
});
}
return (
i.push({
color: this.getControllerVisual(t[1], 'color', e),
offset: 1,
}),
i
);
},
_createBarPoints: function (t, e) {
var i = this.visualMapModel.itemSize;
return [
[i[0] - e[0], t[0]],
[i[0], t[0]],
[i[0], t[1]],
[i[0] - e[1], t[1]],
];
},
_createBarGroup: function (t) {
var e = this._orient,
i = this.visualMapModel.get('inverse');
return new tb(
'horizontal' !== e || i
? 'horizontal' === e && i
? {
scale: 'bottom' === t ? [-1, 1] : [1, 1],
rotation: -Math.PI / 2,
}
: 'vertical' !== e || i
? { scale: 'left' === t ? [1, 1] : [-1, 1] }
: { scale: 'left' === t ? [1, -1] : [-1, -1] }
: {
scale: 'bottom' === t ? [1, 1] : [-1, 1],
rotation: Math.PI / 2,
},
);
},
_updateHandle: function (t, e) {
if (this._useHandle) {
var i = this._shapes,
n = this.visualMapModel,
o = i.handleThumbs,
a = i.handleLabels;
EO(
[0, 1],
function (r) {
var s = o[r];
s.setStyle('fill', e.handlesColor[r]), (s.position[1] = t[r]);
var l = Do(i.handleLabelPoints[r], Ao(s, this.group));
a[r].setStyle({
x: l[0],
y: l[1],
text: n.formatValueText(this._dataInterval[r]),
textVerticalAlign: 'middle',
textAlign: this._applyTransform(
'horizontal' === this._orient
? 0 === r
? 'bottom'
: 'top'
: 'left',
i.barGroup,
),
});
},
this,
);
}
},
_showIndicator: function (t, e, i, n) {
var o = this.visualMapModel,
a = o.getExtent(),
r = o.itemSize,
s = [0, r[1]],
l = OO(t, a, s, !0),
u = this._shapes,
h = u.indicator;
if (h) {
(h.position[1] = l),
h.attr('invisible', !1),
h.setShape('points', ox(!!i, n, l, r[1]));
var c = { convertOpacityToAlpha: !0 },
d = this.getControllerVisual(t, 'color', c);
h.setStyle('fill', d);
var f = Do(u.indicatorLabelPoint, Ao(h, this.group)),
p = u.indicatorLabel;
p.attr('invisible', !1);
var g = this._applyTransform('left', u.barGroup),
m = this._orient;
p.setStyle({
text: (i || '') + o.formatValueText(e),
textVerticalAlign: 'horizontal' === m ? g : 'middle',
textAlign: 'horizontal' === m ? 'center' : g,
x: f[0],
y: f[1],
});
}
},
_enableHoverLinkToSeries: function () {
var t = this;
this._shapes.barGroup
.on('mousemove', function (e) {
if (((t._hovering = !0), !t._dragging)) {
var i = t.visualMapModel.itemSize,
n = t._applyTransform(
[e.offsetX, e.offsetY],
t._shapes.barGroup,
!0,
!0,
);
(n[1] = RO(zO(0, n[1]), i[1])),
t._doHoverLinkToSeries(n[1], 0 <= n[0] && n[0] <= i[0]);
}
})
.on('mouseout', function () {
(t._hovering = !1), !t._dragging && t._clearHoverLinkToSeries();
});
},
_enableHoverLinkFromSeries: function () {
var t = this.api.getZr();
this.visualMapModel.option.hoverLink
? (t.on('mouseover', this._hoverLinkFromSeriesMouseOver, this),
t.on('mouseout', this._hideIndicator, this))
: this._clearHoverLinkFromSeries();
},
_doHoverLinkToSeries: function (t, e) {
var i = this.visualMapModel,
n = i.itemSize;
if (i.option.hoverLink) {
var o = [0, n[1]],
a = i.getExtent();
t = RO(zO(o[0], t), o[1]);
var r = ax(i, a, o),
s = [t - r, t + r],
l = OO(t, o, a, !0),
u = [OO(s[0], o, a, !0), OO(s[1], o, a, !0)];
s[0] < o[0] && (u[0] = -1 / 0),
s[1] > o[1] && (u[1] = 1 / 0),
e &&
(u[0] === -1 / 0
? this._showIndicator(l, u[1], '< ', r)
: u[1] === 1 / 0
? this._showIndicator(l, u[0], '> ', r)
: this._showIndicator(l, l, '≈ ', r));
var h = this._hoverLinkDataIndices,
c = [];
(e || rx(i)) &&
(c = this._hoverLinkDataIndices = i.findTargetDataIndices(u));
var d = Ri(h, c);
this._dispatchHighDown('downplay', ex(d[0])),
this._dispatchHighDown('highlight', ex(d[1]));
}
},
_hoverLinkFromSeriesMouseOver: function (t) {
var e = t.target,
i = this.visualMapModel;
if (e && null != e.dataIndex) {
var n = this.ecModel.getSeriesByIndex(e.seriesIndex);
if (i.isTargetSeries(n)) {
var o = n.getData(e.dataType),
a = o.get(i.getDataDimension(o), e.dataIndex, !0);
isNaN(a) || this._showIndicator(a, a);
}
}
},
_hideIndicator: function () {
var t = this._shapes;
t.indicator && t.indicator.attr('invisible', !0),
t.indicatorLabel && t.indicatorLabel.attr('invisible', !0);
},
_clearHoverLinkToSeries: function () {
this._hideIndicator();
var t = this._hoverLinkDataIndices;
this._dispatchHighDown('downplay', ex(t)), (t.length = 0);
},
_clearHoverLinkFromSeries: function () {
this._hideIndicator();
var t = this.api.getZr();
t.off('mouseover', this._hoverLinkFromSeriesMouseOver),
t.off('mouseout', this._hideIndicator);
},
_applyTransform: function (t, e, i, n) {
var o = Ao(e, n ? null : this.group);
return zM[y(t) ? 'applyTransform' : 'transformDirection'](t, o, i);
},
_dispatchHighDown: function (t, e) {
e && e.length && this.api.dispatchAction({ type: t, batch: e });
},
dispose: function () {
this._clearHoverLinkFromSeries(), this._clearHoverLinkToSeries();
},
remove: function () {
this._clearHoverLinkFromSeries(), this._clearHoverLinkToSeries();
},
});
Es(
{ type: 'selectDataRange', event: 'dataRangeSelected', update: 'update' },
function (t, e) {
e.eachComponent({ mainType: 'visualMap', query: t }, function (e) {
e.setSelected(t.selected);
});
},
),
Ns(xO);
var FO = LO.extend({
type: 'visualMap.piecewise',
defaultOption: {
selected: null,
minOpen: !1,
maxOpen: !1,
align: 'auto',
itemWidth: 20,
itemHeight: 14,
itemSymbol: 'roundRect',
pieceList: null,
categories: null,
splitNumber: 5,
selectedMode: 'multiple',
itemGap: 10,
hoverLink: !0,
showLabel: null,
},
optionUpdated: function (t, e) {
FO.superApply(this, 'optionUpdated', arguments),
(this._pieceList = []),
this.resetExtent();
var n = (this._mode = this._determineMode());
WO[this._mode].call(this), this._resetSelected(t, e);
var o = this.option.categories;
this.resetVisual(function (t, e) {
'categories' === n
? ((t.mappingMethod = 'category'), (t.categories = i(o)))
: ((t.dataExtent = this.getExtent()),
(t.mappingMethod = 'piecewise'),
(t.pieceList = f(this._pieceList, function (t) {
var t = i(t);
return 'inRange' !== e && (t.visual = null), t;
})));
});
},
completeVisualOption: function () {
function t(t, e, i) {
return t && t[e] && (w(t[e]) ? t[e].hasOwnProperty(i) : t[e] === i);
}
var e = this.option,
i = {},
n = hL.listVisualTypes(),
o = this.isCategory();
d(e.pieces, function (t) {
d(n, function (e) {
t.hasOwnProperty(e) && (i[e] = 1);
});
}),
d(
i,
function (i, n) {
var a = 0;
d(
this.stateList,
function (i) {
a |= t(e, i, n) || t(e.target, i, n);
},
this,
),
!a &&
d(this.stateList, function (t) {
(e[t] || (e[t] = {}))[n] = wO.get(
n,
'inRange' === t ? 'active' : 'inactive',
o,
);
});
},
this,
),
LO.prototype.completeVisualOption.apply(this, arguments);
},
_resetSelected: function (t, e) {
var i = this.option,
n = this._pieceList,
o = (e ? i : t).selected || {};
if (
((i.selected = o),
d(
n,
function (t, e) {
var i = this.getSelectedMapKey(t);
o.hasOwnProperty(i) || (o[i] = !0);
},
this,
),
'single' === i.selectedMode)
) {
var a = !1;
d(
n,
function (t, e) {
var i = this.getSelectedMapKey(t);
o[i] && (a ? (o[i] = !1) : (a = !0));
},
this,
);
}
},
getSelectedMapKey: function (t) {
return 'categories' === this._mode ? t.value + '' : t.index + '';
},
getPieceList: function () {
return this._pieceList;
},
_determineMode: function () {
var t = this.option;
return t.pieces && t.pieces.length > 0
? 'pieces'
: this.option.categories
? 'categories'
: 'splitNumber';
},
setSelected: function (t) {
this.option.selected = i(t);
},
getValueState: function (t) {
var e = hL.findPieceIndex(t, this._pieceList);
return null != e &&
this.option.selected[this.getSelectedMapKey(this._pieceList[e])]
? 'inRange'
: 'outOfRange';
},
findTargetDataIndices: function (t) {
var e = [];
return (
this.eachTargetSeries(function (i) {
var n = [],
o = i.getData();
o.each(
this.getDataDimension(o),
function (e, i) {
hL.findPieceIndex(e, this._pieceList) === t && n.push(i);
},
this,
),
e.push({ seriesId: i.id, dataIndex: n });
}, this),
e
);
},
getRepresentValue: function (t) {
var e;
if (this.isCategory()) e = t.value;
else if (null != t.value) e = t.value;
else {
var i = t.interval || [];
e = i[0] === -1 / 0 && i[1] === 1 / 0 ? 0 : (i[0] + i[1]) / 2;
}
return e;
},
getVisualMeta: function (t) {
function e(e, a) {
var r = o.getRepresentValue({ interval: e });
a || (a = o.getValueState(r));
var s = t(r, a);
e[0] === -1 / 0
? (n[0] = s)
: e[1] === 1 / 0
? (n[1] = s)
: i.push({ value: e[0], color: s }, { value: e[1], color: s });
}
if (!this.isCategory()) {
var i = [],
n = [],
o = this,
a = this._pieceList.slice();
if (a.length) {
var r = a[0].interval[0];
r !== -1 / 0 && a.unshift({ interval: [-1 / 0, r] }),
(r = a[a.length - 1].interval[1]) !== 1 / 0 &&
a.push({ interval: [r, 1 / 0] });
} else a.push({ interval: [-1 / 0, 1 / 0] });
var s = -1 / 0;
return (
d(
a,
function (t) {
var i = t.interval;
i &&
(i[0] > s && e([s, i[0]], 'outOfRange'),
e(i.slice()),
(s = i[1]));
},
this,
),
{ stops: i, outerColors: n }
);
}
},
}),
WO = {
splitNumber: function () {
var t = this.option,
e = this._pieceList,
i = Math.min(t.precision, 20),
n = this.getExtent(),
o = t.splitNumber;
(o = Math.max(parseInt(o, 10), 1)), (t.splitNumber = o);
for (var a = (n[1] - n[0]) / o; +a.toFixed(i) !== a && i < 5; ) i++;
(t.precision = i), (a = +a.toFixed(i));
var r = 0;
t.minOpen &&
e.push({ index: r++, interval: [-1 / 0, n[0]], close: [0, 0] });
for (var s = n[0], l = r + o; r < l; s += a) {
var u = r === o - 1 ? n[1] : s + a;
e.push({ index: r++, interval: [s, u], close: [1, 1] });
}
t.maxOpen &&
e.push({ index: r++, interval: [n[1], 1 / 0], close: [0, 0] }),
Jo(e),
d(
e,
function (t) {
t.text = this.formatValueText(t.interval);
},
this,
);
},
categories: function () {
var t = this.option;
d(
t.categories,
function (t) {
this._pieceList.push({
text: this.formatValueText(t, !0),
value: t,
});
},
this,
),
lx(t, this._pieceList);
},
pieces: function () {
var t = this.option,
e = this._pieceList;
d(
t.pieces,
function (t, i) {
w(t) || (t = { value: t });
var n = { text: '', index: i };
if (
(null != t.label && (n.text = t.label), t.hasOwnProperty('value'))
) {
var o = (n.value = t.value);
(n.interval = [o, o]), (n.close = [1, 1]);
} else {
for (
var a = (n.interval = []),
r = (n.close = [0, 0]),
s = [1, 0, 1],
l = [-1 / 0, 1 / 0],
u = [],
h = 0;
h < 2;
h++
) {
for (
var c = [
['gte', 'gt', 'min'],
['lte', 'lt', 'max'],
][h],
d = 0;
d < 3 && null == a[h];
d++
)
(a[h] = t[c[d]]), (r[h] = s[d]), (u[h] = 2 === d);
null == a[h] && (a[h] = l[h]);
}
u[0] && a[1] === 1 / 0 && (r[0] = 0),
u[1] && a[0] === -1 / 0 && (r[1] = 0),
a[0] === a[1] && r[0] && r[1] && (n.value = a[0]);
}
(n.visual = hL.retrieveVisuals(t)), e.push(n);
},
this,
),
lx(t, e),
Jo(e),
d(
e,
function (t) {
var e = t.close,
i = [['<', '≤'][e[1]], ['>', '≥'][e[0]]];
t.text =
t.text ||
this.formatValueText(
null != t.value ? t.value : t.interval,
!1,
i,
);
},
this,
);
},
};
NO.extend({
type: 'visualMap.piecewise',
doRender: function () {
var t = this.group;
t.removeAll();
var e = this.visualMapModel,
i = e.get('textGap'),
n = e.textStyleModel,
o = n.getFont(),
a = n.getTextColor(),
r = this._getItemAlign(),
s = e.itemSize,
l = this._getViewData(),
u = l.endsText,
h = T(e.get('showLabel', !0), !u);
u && this._renderEndsText(t, u[0], s, h, r),
d(
l.viewPieceList,
function (n) {
var l = n.piece,
u = new tb();
(u.onclick = m(this._onItemClick, this, l)),
this._enableHoverLink(u, n.indexInModelPieceList);
var c = e.getRepresentValue(l);
if ((this._createItemSymbol(u, c, [0, 0, s[0], s[1]]), h)) {
var d = this.visualMapModel.getValueState(c);
u.add(
new rM({
style: {
x: 'right' === r ? -i : s[0] + i,
y: s[1] / 2,
text: l.text,
textVerticalAlign: 'middle',
textAlign: r,
textFont: o,
textFill: a,
opacity: 'outOfRange' === d ? 0.5 : 1,
},
}),
);
}
t.add(u);
},
this,
),
u && this._renderEndsText(t, u[1], s, h, r),
aI(e.get('orient'), t, e.get('itemGap')),
this.renderBackground(t),
this.positionGroup(t);
},
_enableHoverLink: function (t, e) {
function i(t) {
var i = this.visualMapModel;
i.option.hoverLink &&
this.api.dispatchAction({
type: t,
batch: ex(i.findTargetDataIndices(e)),
});
}
t.on('mouseover', m(i, this, 'highlight')).on(
'mouseout',
m(i, this, 'downplay'),
);
},
_getItemAlign: function () {
var t = this.visualMapModel,
e = t.option;
if ('vertical' === e.orient) return tx(t, this.api, t.itemSize);
var i = e.align;
return (i && 'auto' !== i) || (i = 'left'), i;
},
_renderEndsText: function (t, e, i, n, o) {
if (e) {
var a = new tb(),
r = this.visualMapModel.textStyleModel;
a.add(
new rM({
style: {
x: n ? ('right' === o ? i[0] : 0) : i[0] / 2,
y: i[1] / 2,
textVerticalAlign: 'middle',
textAlign: n ? o : 'center',
text: e,
textFont: r.getFont(),
textFill: r.getTextColor(),
},
}),
),
t.add(a);
}
},
_getViewData: function () {
var t = this.visualMapModel,
e = f(t.getPieceList(), function (t, e) {
return { piece: t, indexInModelPieceList: e };
}),
i = t.get('text'),
n = t.get('orient'),
o = t.get('inverse');
return (
('horizontal' === n ? o : !o)
? e.reverse()
: i && (i = i.slice().reverse()),
{ viewPieceList: e, endsText: i }
);
},
_createItemSymbol: function (t, e, i) {
t.add(
Jl(
this.getControllerVisual(e, 'symbol'),
i[0],
i[1],
i[2],
i[3],
this.getControllerVisual(e, 'color'),
),
);
},
_onItemClick: function (t) {
var e = this.visualMapModel,
n = e.option,
o = i(n.selected),
a = e.getSelectedMapKey(t);
'single' === n.selectedMode
? ((o[a] = !0),
d(o, function (t, e) {
o[e] = e === a;
}))
: (o[a] = !o[a]),
this.api.dispatchAction({
type: 'selectDataRange',
from: this.uid,
visualMapId: this.visualMapModel.id,
selected: o,
});
},
});
Ns(xO);
var HO = ta,
ZO = ia,
UO = Fs({
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 (U_.node) return !1;
var t = this.__hostSeries;
return this.getShallow('animation') && t && t.isAnimationEnabled();
},
mergeOption: function (t, e, i, n) {
var o = this.constructor,
r = this.mainType + 'Model';
i ||
e.eachSeries(function (t) {
var i = t.get(this.mainType, !0),
s = t[r];
i && i.data
? (s
? s.mergeOption(i, e, !0)
: (n && ux(i),
d(i.data, function (t) {
t instanceof Array ? (ux(t[0]), ux(t[1])) : ux(t);
}),
a((s = new o(i, this, e)), {
mainType: this.mainType,
seriesIndex: t.seriesIndex,
name: t.name,
createdBySelf: !0,
}),
(s.__hostSeries = t)),
(t[r] = s))
: (t[r] = null);
}, this);
},
formatTooltip: function (t) {
var e = this.getData(),
i = this.getRawValue(t),
n = y(i) ? f(i, HO).join(', ') : HO(i),
o = e.getName(t),
a = ZO(this.name);
return (
(null != i || o) && (a += '
'),
o && ((a += ZO(o)), null != i && (a += ' : ')),
null != i && (a += ZO(n)),
a
);
},
getData: function () {
return this._data;
},
setData: function (t) {
this._data = t;
},
});
h(UO, ZI),
UO.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 XO = l,
jO = v,
YO = { min: jO(dx, 'min'), max: jO(dx, 'max'), average: jO(dx, 'average') },
qO = Ws({
type: 'marker',
init: function () {
this.markerGroupMap = R();
},
render: function (t, e, i) {
var n = this.markerGroupMap;
n.each(function (t) {
t.__keep = !1;
});
var o = this.type + 'Model';
e.eachSeries(function (t) {
var n = t[o];
n && this.renderSeries(t, n, e, i);
}, this),
n.each(function (t) {
!t.__keep && this.group.remove(t.group);
}, this);
},
renderSeries: function () {},
});
qO.extend({
type: 'markPoint',
updateTransform: function (t, e, i) {
e.eachSeries(function (t) {
var e = t.markPointModel;
e &&
(xx(e.getData(), t, i),
this.markerGroupMap.get(t.id).updateLayout(e));
}, this);
},
renderSeries: function (t, e, i, n) {
var o = t.coordinateSystem,
a = t.id,
r = t.getData(),
s = this.markerGroupMap,
l = s.get(a) || s.set(a, new Du()),
u = _x(o, t, e);
e.setData(u),
xx(e.getData(), t, n),
u.each(function (t) {
var i = u.getItemModel(t),
n = i.getShallow('symbolSize');
'function' == typeof n &&
(n = n(e.getRawValue(t), e.getDataParams(t))),
u.setItemVisual(t, {
symbolSize: n,
color: i.get('itemStyle.color') || r.getVisual('color'),
symbol: i.getShallow('symbol'),
});
}),
l.updateData(u),
this.group.add(l.group),
u.eachItemGraphicEl(function (t) {
t.traverse(function (t) {
t.dataModel = e;
});
}),
(l.__keep = !0),
(l.group.silent = e.get('silent') || t.get('silent'));
},
}),
Ns(function (t) {
t.markPoint = t.markPoint || {};
}),
UO.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 KO = function (t, e, o, r) {
var s = t.getData(),
l = r.type;
if (
!y(r) &&
('min' === l ||
'max' === l ||
'average' === l ||
'median' === l ||
null != r.xAxis ||
null != r.yAxis)
) {
var u, h;
if (null != r.yAxis || null != r.xAxis)
(u = null != r.yAxis ? 'y' : 'x'),
e.getAxis(u),
(h = T(r.yAxis, r.xAxis));
else {
var c = px(r, s, e, t);
(u = c.valueDataDim), c.valueAxis, (h = yx(s, u, l));
}
var d = 'x' === u ? 0 : 1,
f = 1 - d,
p = i(r),
g = {};
(p.type = null),
(p.coord = []),
(g.coord = []),
(p.coord[f] = -1 / 0),
(g.coord[f] = 1 / 0);
var m = o.get('precision');
m >= 0 && 'number' == typeof h && (h = +h.toFixed(Math.min(m, 20))),
(p.coord[d] = g.coord[d] = h),
(r = [p, g, { type: l, valueIndex: r.valueIndex, value: h }]);
}
return (
(r = [fx(t, r[0]), fx(t, r[1]), a({}, r[2])]),
(r[2].type = r[2].type || ''),
n(r[2], r[0]),
n(r[2], r[1]),
r
);
};
qO.extend({
type: 'markLine',
updateTransform: function (t, e, i) {
e.eachSeries(function (t) {
var e = t.markLineModel;
if (e) {
var n = e.getData(),
o = e.__from,
a = e.__to;
o.each(function (e) {
Ix(o, e, !0, t, i), Ix(a, e, !1, t, i);
}),
n.each(function (t) {
n.setItemLayout(t, [o.getItemLayout(t), a.getItemLayout(t)]);
}),
this.markerGroupMap.get(t.id).updateLayout();
}
}, this);
},
renderSeries: function (t, e, i, n) {
function o(e, i, o) {
var a = e.getItemModel(i);
Ix(e, i, o, t, n),
e.setItemVisual(i, {
symbolSize: a.get('symbolSize') || g[o ? 0 : 1],
symbol: a.get('symbol', !0) || p[o ? 0 : 1],
color: a.get('itemStyle.color') || s.getVisual('color'),
});
}
var a = t.coordinateSystem,
r = t.id,
s = t.getData(),
l = this.markerGroupMap,
u = l.get(r) || l.set(r, new sf());
this.group.add(u.group);
var h = Tx(a, t, e),
c = h.from,
d = h.to,
f = h.line;
(e.__from = c), (e.__to = d), e.setData(f);
var p = e.get('symbol'),
g = e.get('symbolSize');
y(p) || (p = [p, p]),
'number' == typeof g && (g = [g, g]),
h.from.each(function (t) {
o(c, t, !0), o(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'),
});
}),
u.updateData(f),
h.line.eachItemGraphicEl(function (t, i) {
t.traverse(function (t) {
t.dataModel = e;
});
}),
(u.__keep = !0),
(u.group.silent = e.get('silent') || t.get('silent'));
},
}),
Ns(function (t) {
t.markLine = t.markLine || {};
}),
UO.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 $O = function (t, e, i, n) {
var a = fx(t, n[0]),
r = fx(t, n[1]),
s = T,
l = a.coord,
u = r.coord;
(l[0] = s(l[0], -1 / 0)),
(l[1] = s(l[1], -1 / 0)),
(u[0] = s(u[0], 1 / 0)),
(u[1] = s(u[1], 1 / 0));
var h = o([{}, a, r]);
return (
(h.coord = [a.coord, r.coord]),
(h.x0 = a.x),
(h.y0 = a.y),
(h.x1 = r.x),
(h.y1 = r.y),
h
);
},
JO = [
['x0', 'y0'],
['x1', 'y0'],
['x1', 'y1'],
['x0', 'y1'],
];
qO.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 o = f(JO, function (o) {
return Lx(n, e, o, t, i);
});
n.setItemLayout(e, o), n.getItemGraphicEl(e).setShape('points', o);
});
}
}, this);
},
renderSeries: function (t, e, i, n) {
var o = t.coordinateSystem,
a = t.id,
s = t.getData(),
l = this.markerGroupMap,
u = l.get(a) || l.set(a, { group: new tb() });
this.group.add(u.group), (u.__keep = !0);
var h = kx(o, t, e);
e.setData(h),
h.each(function (e) {
h.setItemLayout(
e,
f(JO, function (i) {
return Lx(h, e, i, t, n);
}),
),
h.setItemVisual(e, { color: s.getVisual('color') });
}),
h
.diff(u.__data)
.add(function (t) {
var e = new pM({ shape: { points: h.getItemLayout(t) } });
h.setItemGraphicEl(t, e), u.group.add(e);
})
.update(function (t, i) {
var n = u.__data.getItemGraphicEl(i);
Io(n, { shape: { points: h.getItemLayout(t) } }, e, t),
u.group.add(n),
h.setItemGraphicEl(t, n);
})
.remove(function (t) {
var e = u.__data.getItemGraphicEl(t);
u.group.remove(e);
})
.execute(),
h.eachItemGraphicEl(function (t, i) {
var n = h.getItemModel(i),
o = n.getModel('label'),
a = n.getModel('emphasis.label'),
s = h.getItemVisual(i, 'color');
t.useStyle(
r(n.getModel('itemStyle').getItemStyle(), {
fill: Yt(s, 0.4),
stroke: s,
}),
),
(t.hoverStyle = n.getModel('emphasis.itemStyle').getItemStyle()),
go(t.style, t.hoverStyle, o, a, {
labelFetcher: e,
labelDataIndex: i,
defaultText: h.getName(i) || '',
isRectText: !0,
autoColor: s,
}),
fo(t, {}),
(t.dataModel = e);
}),
(u.__data = h),
(u.group.silent = e.get('silent') || t.get('silent'));
},
}),
Ns(function (t) {
t.markArea = t.markArea || {};
});
lI.registerSubTypeDefaulter('timeline', function () {
return 'slider';
}),
Es(
{
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'),
r({ currentIndex: i.option.currentIndex }, t)
);
},
),
Es(
{
type: 'timelinePlayChange',
event: 'timelinePlayChanged',
update: 'update',
},
function (t, e) {
var i = e.getComponent('timeline');
i && null != t.playState && i.setPlayState(t.playState);
},
);
var QO = lI.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 (t) {
QO.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), t < 0 && (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 || [],
n = t.axisType,
o = (this._names = []);
if ('category' === n) {
var a = [];
d(e, function (t, e) {
var n,
r = Li(t);
w(t) ? ((n = i(t)).value = e) : (n = e),
a.push(n),
_(r) || (null != r && !isNaN(r)) || (r = ''),
o.push(r + '');
}),
(e = a);
}
var r = { category: 'ordinal', time: 'time' }[n] || 'number';
(this._data = new vA([{ name: 'value', type: r }], this)).initData(e, o);
},
getData: function () {
return this._data;
},
getCategories: function () {
if ('category' === this.get('axisType')) return this._names.slice();
},
});
h(
QO.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: [],
},
}),
ZI,
);
var tE = qI.extend({ type: 'timeline' }),
eE = function (t, e, i, n) {
aD.call(this, t, e, i), (this.type = n || 'value'), (this.model = null);
};
(eE.prototype = {
constructor: eE,
getLabelModel: function () {
return this.model.getModel('label');
},
isHorizontal: function () {
return 'horizontal' === this.model.get('orient');
},
}),
u(eE, aD);
var iE = m,
nE = d,
oE = Math.PI;
tE.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, n) {
if (
((this.model = t),
(this.api = i),
(this.ecModel = e),
this.group.removeAll(),
t.get('show', !0))
) {
var o = this._layout(t, i),
a = this._createGroup('mainGroup'),
r = this._createGroup('labelGroup'),
s = (this._axis = this._createAxis(o, t));
(t.formatTooltip = function (t) {
return ia(s.scale.getLabel(t));
}),
nE(
['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'],
function (e) {
this['_render' + e](o, a, s, t);
},
this,
),
this._renderAxisLabel(o, r, s, t),
this._position(o, 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'),
o = Ex(t, e);
null == i || 'auto' === i
? (i =
'horizontal' === n
? o.y + o.height / 2 < e.getHeight() / 2
? '-'
: '+'
: o.x + o.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',
},
r = {
horizontal: i >= 0 || '+' === i ? 'top' : 'bottom',
vertical: 'middle',
},
s = { horizontal: 0, vertical: oE / 2 },
l = 'vertical' === n ? o.height : o.width,
u = t.getModel('controlStyle'),
h = u.get('show', !0),
c = h ? u.get('itemSize') : 0,
d = h ? u.get('itemGap') : 0,
f = c + d,
p = t.get('label.rotate') || 0;
p = (p * oE) / 180;
var g,
m,
v,
y,
x = u.get('position', !0),
_ = h && u.get('showPlayBtn', !0),
w = h && u.get('showPrevBtn', !0),
b = h && u.get('showNextBtn', !0),
S = 0,
M = l;
return (
'left' === x || 'bottom' === x
? (_ && ((g = [0, 0]), (S += f)),
w && ((m = [S, 0]), (S += f)),
b && ((v = [M - c, 0]), (M -= f)))
: (_ && ((g = [M - c, 0]), (M -= f)),
w && ((m = [0, 0]), (S += f)),
b && ((v = [M - c, 0]), (M -= f))),
(y = [S, M]),
t.get('inverse') && y.reverse(),
{
viewRect: o,
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') || r[n],
playPosition: g,
prevBtnPosition: m,
nextBtnPosition: v,
axisExtent: y,
controlSize: c,
controlGap: d,
}
);
},
_position: function (t, e) {
function i(t) {
var e = t.position;
t.origin = [c[0][0] - e[0], c[1][0] - e[1]];
}
function n(t) {
return [
[t.x, t.x + t.width],
[t.y, t.y + t.height],
];
}
function o(t, e, i, n, o) {
t[n] += i[n][o] - e[n][o];
}
var a = this._mainGroup,
r = this._labelGroup,
s = t.viewRect;
if ('vertical' === t.orient) {
var l = xt(),
u = s.x,
h = s.y + s.height;
St(l, l, [-u, -h]),
Mt(l, l, -oE / 2),
St(l, l, [u, h]),
(s = s.clone()).applyTransform(l);
}
var c = n(s),
d = n(a.getBoundingRect()),
f = n(r.getBoundingRect()),
p = a.position,
g = r.position;
g[0] = p[0] = c[0][0];
var m = t.labelPosOpt;
if (isNaN(m))
o(p, d, c, 1, (v = '+' === m ? 0 : 1)), o(g, f, c, 1, 1 - v);
else {
var v = m >= 0 ? 0 : 1;
o(p, d, c, 1, v), (g[1] = p[1] + m);
}
a.attr('position', p),
r.attr('position', g),
(a.rotation = r.rotation = t.rotation),
i(a),
i(r);
},
_createAxis: function (t, e) {
var i = e.getData(),
n = e.get('axisType'),
o = Hl(e, n);
o.getTicks = function () {
return i.mapArray(['value'], function (t) {
return t;
});
};
var a = i.getDataExtent('value');
o.setExtent(a[0], a[1]), o.niceTicks();
var r = new eE('value', o, t.axisExtent, n);
return (r.model = e), r;
},
_createGroup: function (t) {
var e = (this['_' + t] = new tb());
return this.group.add(e), e;
},
_renderAxisLine: function (t, e, i, n) {
var o = i.getExtent();
n.get('lineStyle.show') &&
e.add(
new _M({
shape: { x1: o[0], y1: 0, x2: o[1], y2: 0 },
style: a(
{ lineCap: 'round' },
n.getModel('lineStyle').getLineStyle(),
),
silent: !0,
z2: 1,
}),
);
},
_renderAxisTick: function (t, e, i, n) {
var o = n.getData(),
a = i.scale.getTicks();
nE(
a,
function (t) {
var a = i.dataToCoord(t),
r = o.getItemModel(t),
s = r.getModel('itemStyle'),
l = r.getModel('emphasis.itemStyle'),
u = {
position: [a, 0],
onclick: iE(this._changeTimeline, this, t),
},
h = zx(r, s, e, u);
fo(h, l.getItemStyle()),
r.get('tooltip')
? ((h.dataIndex = t), (h.dataModel = n))
: (h.dataIndex = h.dataModel = null);
},
this,
);
},
_renderAxisLabel: function (t, e, i, n) {
if (i.getLabelModel().get('show')) {
var o = n.getData(),
a = i.getViewLabels();
nE(
a,
function (n) {
var a = n.tickValue,
r = o.getItemModel(a),
s = r.getModel('label'),
l = r.getModel('emphasis.label'),
u = i.dataToCoord(n.tickValue),
h = new rM({
position: [u, 0],
rotation: t.labelRotation - t.rotation,
onclick: iE(this._changeTimeline, this, a),
silent: !1,
});
mo(h.style, s, {
text: n.formattedLabel,
textAlign: t.labelAlign,
textVerticalAlign: t.labelBaseline,
}),
e.add(h),
fo(h, mo({}, l));
},
this,
);
}
},
_renderControl: function (t, e, i, n) {
function o(t, i, o, h) {
if (t) {
var c = Rx(n, i, u, {
position: t,
origin: [a / 2, 0],
rotation: h ? -r : 0,
rectHover: !0,
style: s,
onclick: o,
});
e.add(c), fo(c, l);
}
}
var a = t.controlSize,
r = t.rotation,
s = n.getModel('controlStyle').getItemStyle(),
l = n.getModel('emphasis.controlStyle').getItemStyle(),
u = [0, -a / 2, a, a],
h = n.getPlayState(),
c = n.get('inverse', !0);
o(
t.nextBtnPosition,
'controlStyle.nextIcon',
iE(this._changeTimeline, this, c ? '-' : '+'),
),
o(
t.prevBtnPosition,
'controlStyle.prevIcon',
iE(this._changeTimeline, this, c ? '+' : '-'),
),
o(
t.playPosition,
'controlStyle.' + (h ? 'stopIcon' : 'playIcon'),
iE(this._handlePlayClick, this, !h),
!0,
);
},
_renderCurrentPointer: function (t, e, i, n) {
var o = n.getData(),
a = n.getCurrentIndex(),
r = o.getItemModel(a).getModel('checkpointStyle'),
s = this,
l = {
onCreate: function (t) {
(t.draggable = !0),
(t.drift = iE(s._handlePointerDrag, s)),
(t.ondragend = iE(s._handlePointerDragend, s)),
Bx(t, a, i, n, !0);
},
onUpdate: function (t) {
Bx(t, a, i, n);
},
};
this._currentPointer = zx(
r,
r,
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 = Fo(this._axis.getExtent().slice());
i > n[1] && (i = n[1]),
i < n[0] && (i = n[0]),
(this._currentPointer.position[0] = i),
this._currentPointer.dirty();
var o = this._findNearestTick(i),
a = this.model;
(e || (o !== a.getCurrentIndex() && a.get('realtime'))) &&
this._changeTimeline(o);
},
_doPlayStop: function () {
this._clearTimer(),
this.model.getPlayState() &&
(this._timer = setTimeout(
iE(function () {
var t = this.model;
this._changeTimeline(
t.getCurrentIndex() + (t.get('rewind', !0) ? -1 : 1),
);
}, this),
this.model.get('playInterval'),
));
},
_toAxisCoord: function (t) {
return Do(t, this._mainGroup.getLocalTransform(), !0);
},
_findNearestTick: function (t) {
var e,
i = this.model.getData(),
n = 1 / 0,
o = this._axis;
return (
i.each(['value'], function (i, a) {
var r = o.dataToCoord(i),
s = Math.abs(r - t);
s < n && ((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,
});
},
}),
Ns(function (t) {
var e = t && t.timeline;
y(e) || (e = e ? [e] : []),
d(e, function (t) {
t && Px(t);
});
});
var aE = Fs({
type: 'toolbox',
layoutMode: { type: 'box', ignoreSize: !0 },
optionUpdated: function () {
aE.superApply(this, 'optionUpdated', arguments),
d(this.option.feature, function (t, e) {
var i = Ay(e);
i && n(t, i.defaultOption);
});
},
defaultOption: {
show: !0,
z: 6,
zlevel: 0,
orient: 'horizontal',
left: 'right',
top: 'top',
backgroundColor: 'transparent',
borderColor: '#ccc',
borderRadius: 0,
borderWidth: 0,
padding: 5,
itemSize: 15,
itemGap: 8,
showTitle: !0,
iconStyle: { borderColor: '#666', color: 'none' },
emphasis: { iconStyle: { borderColor: '#3E98C5' } },
},
});
Ws({
type: 'toolbox',
render: function (t, e, i, n) {
function o(o, r) {
var s,
c = h[o],
d = h[r],
f = new No(l[c], t, t.ecModel);
if (c && !d) {
if (Vx(c))
s = { model: f, onclick: f.option.onclick, featureName: c };
else {
var p = Ay(c);
if (!p) return;
s = new p(f, e, i);
}
u[c] = s;
} else {
if (!(s = u[d])) return;
(s.model = f), (s.ecModel = e), (s.api = i);
}
c || !d
? f.get('show') && !s.unusable
? (a(f, s, c),
(f.setIconStatus = function (t, e) {
var i = this.option,
n = this.iconPaths;
(i.iconStatus = i.iconStatus || {}),
(i.iconStatus[t] = e),
n[t] && n[t].trigger(e);
}),
s.render && s.render(f, e, i, n))
: s.remove && s.remove(e, i)
: s.dispose && s.dispose(e, i);
}
function a(n, o, a) {
var l = n.getModel('iconStyle'),
u = n.getModel('emphasis.iconStyle'),
h = o.getIcons ? o.getIcons() : n.get('icon'),
c = n.get('title') || {};
if ('string' == typeof h) {
var f = h,
p = c;
(c = {}), ((h = {})[a] = f), (c[a] = p);
}
var g = (n.iconPaths = {});
d(h, function (a, h) {
var d = Po(a, {}, { x: -s / 2, y: -s / 2, width: s, height: s });
d.setStyle(l.getItemStyle()),
(d.hoverStyle = u.getItemStyle()),
fo(d),
t.get('showTitle') &&
((d.__title = c[h]),
d
.on('mouseover', function () {
var t = u.getItemStyle();
d.setStyle({
text: c[h],
textPosition: t.textPosition || 'bottom',
textFill: t.fill || t.stroke || '#000',
textAlign: t.textAlign || 'center',
});
})
.on('mouseout', function () {
d.setStyle({ textFill: null });
})),
d.trigger(n.get('iconStatus.' + h) || 'normal'),
r.add(d),
d.on('click', m(o.onclick, o, e, i, h)),
(g[h] = d);
});
}
var r = this.group;
if ((r.removeAll(), t.get('show'))) {
var s = +t.get('itemSize'),
l = t.get('feature') || {},
u = this._features || (this._features = {}),
h = [];
d(l, function (t, e) {
h.push(e);
}),
new Xs(this._featureNames || [], h)
.add(o)
.update(o)
.remove(v(o, null))
.execute(),
(this._featureNames = h),
_v(r, t, i),
r.add(wv(r.getBoundingRect(), t)),
r.eachChild(function (t) {
var e = t.__title,
n = t.hoverStyle;
if (n && e) {
var o = ke(e, Xe(n)),
a = t.position[0] + r.position[0],
l = !1;
t.position[1] + r.position[1] + s + o.height > i.getHeight() &&
((n.textPosition = 'top'), (l = !0));
var u = l ? -5 - o.height : s + 8;
a + o.width / 2 > i.getWidth()
? ((n.textPosition = ['100%', u]), (n.textAlign = 'right'))
: a - o.width / 2 < 0 &&
((n.textPosition = [0, u]), (n.textAlign = 'left'));
}
});
}
},
updateView: function (t, e, i, n) {
d(this._features, function (t) {
t.updateView && t.updateView(t.model, e, i, n);
});
},
remove: function (t, e) {
d(this._features, function (i) {
i.remove && i.remove(t, e);
}),
this.group.removeAll();
},
dispose: function (t, e) {
d(this._features, function (i) {
i.dispose && i.dispose(t, e);
});
},
});
var rE = rT.toolbox.saveAsImage;
(Gx.defaultOption = {
show: !0,
icon:
'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',
title: rE.title,
type: 'png',
name: '',
excludeComponents: ['toolbox'],
pixelRatio: 1,
lang: rE.lang.slice(),
}),
(Gx.prototype.unusable = !U_.canvasSupported),
(Gx.prototype.onclick = function (t, e) {
var i = this.model,
n = i.get('name') || t.get('title.0.text') || 'echarts',
o = document.createElement('a'),
a = i.get('type', !0) || 'png';
(o.download = n + '.' + a), (o.target = '_blank');
var r = e.getConnectedDataURL({
type: a,
backgroundColor:
i.get('backgroundColor', !0) || t.get('backgroundColor') || '#fff',
excludeComponents: i.get('excludeComponents'),
pixelRatio: i.get('pixelRatio'),
});
if (
((o.href = r),
'function' != typeof MouseEvent || U_.browser.ie || U_.browser.edge)
)
if (window.navigator.msSaveOrOpenBlob) {
for (
var s = atob(r.split(',')[1]), l = s.length, u = new Uint8Array(l);
l--;
)
u[l] = s.charCodeAt(l);
var h = new Blob([u]);
window.navigator.msSaveOrOpenBlob(h, n + '.' + a);
} else {
var c = i.get('lang'),
d =
'