1/* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 20 21! 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) { 22 "use strict"; 23 24 function e(t, e) { "createCanvas" === t && (v_ = null), g_[t] = e } 25 26 function i(t) { 27 if (null == t || "object" != typeof t) return t; 28 var e = t, 29 n = l_.call(t); 30 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 (s_[n]) { 31 if (!O(t)) { 32 var r = t.constructor; 33 if (t.constructor.from) e = r.from(t); 34 else { e = new r(t.length); for (var o = 0, a = t.length; o < a; o++) e[o] = i(t[o]) } 35 } 36 } else if (!r_[n] && !O(t) && !M(t)) { e = {}; for (var s in t) t.hasOwnProperty(s) && (e[s] = i(t[s])) } 37 return e 38 } 39 40 function n(t, e, o) { 41 if (!w(e) || !w(t)) return o ? i(e) : t; 42 for (var a in e) 43 if (e.hasOwnProperty(a)) { 44 var r = t[a], 45 s = e[a]; 46 !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) 47 } 48 return t 49 } 50 51 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 } 52 53 function a(t, e) { for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); return t } 54 55 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 } 56 57 function s() { return v_ || (v_ = m_().getContext("2d")), v_ } 58 59 function l(t, e) { 60 if (t) { 61 if (t.indexOf) return t.indexOf(e); 62 for (var i = 0, n = t.length; i < n; i++) 63 if (t[i] === e) return i 64 } 65 return -1 66 } 67 68 function u(t, e) { 69 function i() {} 70 var n = t.prototype; 71 i.prototype = e.prototype, t.prototype = new i; 72 for (var o in n) t.prototype[o] = n[o]; 73 t.prototype.constructor = t, t.superClass = e 74 } 75 76 function h(t, e, i) { r(t = "prototype" in t ? t.prototype : t, e = "prototype" in e ? e.prototype : e, i) } 77 78 function c(t) { if (t) return "string" != typeof t && "number" == typeof t.length } 79 80 function d(t, e, i) { 81 if (t && e) 82 if (t.forEach && t.forEach === h_) t.forEach(e, i); 83 else if (t.length === +t.length) 84 for (var n = 0, o = t.length; n < o; n++) e.call(i, t[n], n, t); 85 else 86 for (var a in t) t.hasOwnProperty(a) && e.call(i, t[a], a, t) 87 } 88 89 function f(t, e, i) { if (t && e) { if (t.map && t.map === f_) 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 } } 90 91 function p(t, e, i, n) { if (t && e) { if (t.reduce && t.reduce === p_) 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 } } 92 93 function g(t, e, i) { if (t && e) { if (t.filter && t.filter === c_) 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 } } 94 95 function m(t, e) { var i = d_.call(arguments, 2); return function() { return t.apply(e, i.concat(d_.call(arguments))) } } 96 97 function v(t) { var e = d_.call(arguments, 1); return function() { return t.apply(this, e.concat(d_.call(arguments))) } } 98 99 function y(t) { return "[object Array]" === l_.call(t) } 100 101 function x(t) { return "function" == typeof t } 102 103 function _(t) { return "[object String]" === l_.call(t) } 104 105 function w(t) { var e = typeof t; return "function" === e || !!t && "object" == e } 106 107 function b(t) { return !!r_[l_.call(t)] } 108 109 function S(t) { return !!s_[l_.call(t)] } 110 111 function M(t) { return "object" == typeof t && "number" == typeof t.nodeType && "object" == typeof t.ownerDocument } 112 113 function I(t) { return t !== t } 114 115 function T(t) { 116 for (var e = 0, i = arguments.length; e < i; e++) 117 if (null != arguments[e]) return arguments[e] 118 } 119 120 function D(t, e) { return null != t ? t : e } 121 122 function A(t, e, i) { return null != t ? t : null != e ? e : i } 123 124 function C() { return Function.call.apply(d_, arguments) } 125 126 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 } 127 128 function k(t, e) { if (!t) throw new Error(e) } 129 130 function P(t) { return null == t ? null : "function" == typeof t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") } 131 132 function N(t) { t[y_] = !0 } 133 134 function O(t) { return t[y_] } 135 136 function E(t) { 137 function e(t, e) { i ? n.set(t, e) : n.set(e, t) } 138 var i = y(t), 139 n = this; 140 t instanceof E ? t.each(e) : t && d(t, e) 141 } 142 143 function R(t) { return new E(t) } 144 145 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 } 146 147 function B() {} 148 149 function V(t, e) { var i = new __(2); return null == t && (t = 0), null == e && (e = 0), i[0] = t, i[1] = e, i } 150 151 function G(t, e) { return t[0] = e[0], t[1] = e[1], t } 152 153 function W(t) { var e = new __(2); return e[0] = t[0], e[1] = t[1], e } 154 155 function F(t, e, i) { return t[0] = e, t[1] = i, t } 156 157 function H(t, e, i) { return t[0] = e[0] + i[0], t[1] = e[1] + i[1], t } 158 159 function Z(t, e, i, n) { return t[0] = e[0] + i[0] * n, t[1] = e[1] + i[1] * n, t } 160 161 function U(t, e, i) { return t[0] = e[0] - i[0], t[1] = e[1] - i[1], t } 162 163 function X(t) { return Math.sqrt(j(t)) } 164 165 function j(t) { return t[0] * t[0] + t[1] * t[1] } 166 167 function Y(t, e, i) { return t[0] = e[0] * i, t[1] = e[1] * i, t } 168 169 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 } 170 171 function K(t, e) { return Math.sqrt((t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1])) } 172 173 function $(t, e) { return (t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]) } 174 175 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 } 176 177 function Q(t, e, i) { 178 var n = e[0], 179 o = e[1]; 180 return t[0] = i[0] * n + i[2] * o + i[4], t[1] = i[1] * n + i[3] * o + i[5], t 181 } 182 183 function tt(t, e, i) { return t[0] = Math.min(e[0], i[0]), t[1] = Math.min(e[1], i[1]), t } 184 185 function et(t, e, i) { return t[0] = Math.max(e[0], i[0]), t[1] = Math.max(e[1], i[1]), t } 186 187 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) } 188 189 function nt(t, e) { return { target: t, topTarget: e && e.topTarget } } 190 191 function ot(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 } } 192 193 function at() {} 194 195 function rt(t, e, i) { 196 if (t[t.rectHover ? "rectContain" : "contain"](e, i)) { 197 for (var n, o = t; o;) { 198 if (o.clipPath && !o.clipPath.contain(e, i)) return !1; 199 o.silent && (n = !0), o = o.parent 200 } 201 return !n || A_ 202 } 203 return !1 204 } 205 206 function st() { var t = new k_(6); return lt(t), t } 207 208 function lt(t) { return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, t } 209 210 function ut(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 } 211 212 function ht(t, e, i) { 213 var n = e[0] * i[0] + e[2] * i[1], 214 o = e[1] * i[0] + e[3] * i[1], 215 a = e[0] * i[2] + e[2] * i[3], 216 r = e[1] * i[2] + e[3] * i[3], 217 s = e[0] * i[4] + e[2] * i[5] + e[4], 218 l = e[1] * i[4] + e[3] * i[5] + e[5]; 219 return t[0] = n, t[1] = o, t[2] = a, t[3] = r, t[4] = s, t[5] = l, t 220 } 221 222 function ct(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 } 223 224 function dt(t, e, i) { 225 var n = e[0], 226 o = e[2], 227 a = e[4], 228 r = e[1], 229 s = e[3], 230 l = e[5], 231 u = Math.sin(i), 232 h = Math.cos(i); 233 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 234 } 235 236 function ft(t, e, i) { 237 var n = i[0], 238 o = i[1]; 239 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 240 } 241 242 function pt(t, e) { 243 var i = e[0], 244 n = e[2], 245 o = e[4], 246 a = e[1], 247 r = e[3], 248 s = e[5], 249 l = i * r - a * n; 250 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 251 } 252 253 function gt(t) { var e = st(); return ut(e, t), e } 254 255 function mt(t) { return t > O_ || t < -O_ } 256 257 function vt(t) { this._target = t.target, this._life = t.life || 1e3, this._delay
257= 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 } 258 259 function yt(t) { return (t = Math.round(t)) < 0 ? 0 : t > 255 ? 255 : t } 260 261 function xt(t) { return (t = Math.round(t)) < 0 ? 0 : t > 360 ? 360 : t } 262 263 function _t(t) { return t < 0 ? 0 : t > 1 ? 1 : t } 264 265 function wt(t) { return yt(t.length && "%" === t.charAt(t.length - 1) ? parseFloat(t) / 100 * 255 : parseInt(t, 10)) } 266 267 function bt(t) { return _t(t.length && "%" === t.charAt(t.length - 1) ? parseFloat(t) / 100 : parseFloat(t)) } 268 269 function St(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 } 270 271 function Mt(t, e, i) { return t + (e - t) * i } 272 273 function It(t, e, i, n, o) { return t[0] = e, t[1] = i, t[2] = n, t[3] = o, t } 274 275 function Tt(t, e) { return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t } 276 277 function Dt(t, e) { X_ && Tt(X_, e), X_ = U_.put(t, X_ || e.slice()) } 278 279 function At(t, e) { 280 if (t) { 281 e = e || []; 282 var i = U_.get(t); 283 if (i) return Tt(e, i); 284 var n = (t += "").replace(/ /g, "").toLowerCase(); 285 if (n in Z_) return Tt(e, Z_[n]), Dt(t, e), e; 286 if ("#" !== n.charAt(0)) { 287 var o = n.indexOf("("), 288 a = n.indexOf(")"); 289 if (-1 !== o && a + 1 === n.length) { 290 var r = n.substr(0, o), 291 s = n.substr(o + 1, a - (o + 1)).split(","), 292 l = 1; 293 switch (r) { 294 case "rgba": 295 if (4 !== s.length) return void It(e, 0, 0, 0, 1); 296 l = bt(s.pop()); 297 case "rgb": 298 return 3 !== s.length ? void It(e, 0, 0, 0, 1) : (It(e, wt(s[0]), wt(s[1]), wt(s[2]), l), Dt(t, e), e); 299 case "hsla": 300 return 4 !== s.length ? void It(e, 0, 0, 0, 1) : (s[3] = bt(s[3]), Ct(s, e), Dt(t, e), e); 301 case "hsl": 302 return 3 !== s.length ? void It(e, 0, 0, 0, 1) : (Ct(s, e), Dt(t, e), e); 303 default: 304 return 305 } 306 } 307 It(e, 0, 0, 0, 1) 308 } else { if (4 === n.length) return (u = parseInt(n.substr(1), 16)) >= 0 && u <= 4095 ? (It(e, (3840 & u) >> 4 | (3840 & u) >> 8, 240 & u | (240 & u) >> 4, 15 & u | (15 & u) << 4, 1), Dt(t, e), e) : void It(e, 0, 0, 0, 1); if (7 === n.length) { var u = parseInt(n.substr(1), 16); return u >= 0 && u <= 16777215 ? (It(e, (16711680 & u) >> 16, (65280 & u) >> 8, 255 & u, 1), Dt(t, e), e) : void It(e, 0, 0, 0, 1) } } 309 } 310 } 311 312 function Ct(t, e) { 313 var i = (parseFloat(t[0]) % 360 + 360) % 360 / 360, 314 n = bt(t[1]), 315 o = bt(t[2]), 316 a = o <= .5 ? o * (n + 1) : o + n - o * n, 317 r = 2 * o - a; 318 return e = e || [], It(e, yt(255 * St(r, a, i + 1 / 3)), yt(255 * St(r, a, i)), yt(255 * St(r, a, i - 1 / 3)), 1), 4 === t.length && (e[3] = t[3]), e 319 } 320 321 function Lt(t) { 322 if (t) { 323 var e, i, n = t[0] / 255, 324 o = t[1] / 255, 325 a = t[2] / 255, 326 r = Math.min(n, o, a), 327 s = Math.max(n, o, a), 328 l = s - r, 329 u = (s + r) / 2; 330 if (0 === l) e = 0, i = 0; 331 else { 332 i = u < .5 ? l / (s + r) : l / (2 - s - r); 333 var h = ((s - n) / 6 + l / 2) / l, 334 c = ((s - o) / 6 + l / 2) / l, 335 d = ((s - a) / 6 + l / 2) / l; 336 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) 337 } 338 var f = [360 * e, i, u]; 339 return null != t[3] && f.push(t[3]), f 340 } 341 } 342 343 function kt(t, e) { var i = At(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 zt(i, 4 === i.length ? "rgba" : "rgb") } } 344 345 function Pt(t) { var e = At(t); if (e) return ((1 << 24) + (e[0] << 16) + (e[1] << 8) + +e[2]).toString(16).slice(1) } 346 347 function Nt(t, e, i) { 348 if (e && e.length && t >= 0 && t <= 1) { 349 i = i || []; 350 var n = t * (e.length - 1), 351 o = Math.floor(n), 352 a = Math.ceil(n), 353 r = e[o], 354 s = e[a], 355 l = n - o; 356 return i[0] = yt(Mt(r[0], s[0], l)), i[1] = yt(Mt(r[1], s[1], l)), i[2] = yt(Mt(r[2], s[2], l)), i[3] = _t(Mt(r[3], s[3], l)), i 357 } 358 } 359 360 function Ot(t, e, i) { 361 if (e && e.length && t >= 0 && t <= 1) { 362 var n = t * (e.length - 1), 363 o = Math.floor(n), 364 a = Math.ceil(n), 365 r = At(e[o]), 366 s = At(e[a]), 367 l = n - o, 368 u = zt([yt(Mt(r[0], s[0], l)), yt(Mt(r[1], s[1], l)), yt(Mt(r[2], s[2], l)), _t(Mt(r[3], s[3], l))], "rgba"); 369 return i ? { color: u, leftIndex: o, rightIndex: a, value: n } : u 370 } 371 } 372 373 function Et(t, e, i, n) { if (t = At(t)) return t = Lt(t), null != e && (t[0] = xt(e)), null != i && (t[1] = bt(i)), null != n && (t[2] = bt(n)), zt(Ct(t), "rgba") } 374 375 function Rt(t, e) { if ((t = At(t)) && null != e) return t[3] = _t(e), zt(t, "rgba") } 376 377 function zt(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 + ")" } } 378 379 function Bt(t, e) { return t[e] } 380 381 function Vt(t, e, i) { t[e] = i } 382 383 function Gt(t, e, i) { return (e - t) * i + t } 384 385 function Wt(t, e, i) { return i > .5 ? e : t } 386 387 function Ft(t, e, i, n, o) { 388 var a = t.length; 389 if (1 == o) 390 for (s = 0; s < a; s++) n[s] = Gt(t[s], e[s], i); 391 else 392 for (var r = a && t[0].length, s = 0; s < a; s++) 393 for (var l = 0; l < r; l++) n[s][l] = Gt(t[s][l], e[s][l], i) 394 } 395 396 function Ht(t, e, i) { 397 var n = t.length, 398 o = e.length; 399 if (n !== o) 400 if (n > o) t.length = o; 401 else 402 for (r = n; r < o; r++) t.push(1 === i ? e[r] : K_.call(e[r])); 403 for (var a = t[0] && t[0].length, r = 0; r < t.length; r++) 404 if (1 === i) isNaN(t[r]) && (t[r] = e[r]); 405 else 406 for (var s = 0; s < a; s++) isNaN(t[r][s]) && (t[r][s] = e[r][s]) 407 } 408 409 function Zt(t, e, i) { 410 if (t === e) return !0; 411 var n = t.length; 412 if (n !== e.length) return !1; 413 if (1 === i) { 414 for (a = 0; a < n; a++) 415 if (t[a] !== e[a]) return !1 416 } else 417 for (var o = t[0].length, a = 0; a < n; a++) 418 for (var r = 0; r < o; r++) 419 if (t[a][r] !== e[a][r]) return !1; return !0 420 } 421 422 function Ut(t, e, i, n, o, a, r, s, l) { 423 var u = t.length; 424 if (1 == l) 425 for (c = 0; c < u; c++) s[c] = Xt(t[c], e[c], i[c], n[c], o, a, r); 426 else 427 for (var h = t[0].length, c = 0; c < u; c++) 428 for (var d = 0; d < h; d++) s[c][d] = Xt(t[c][d], e[c][d], i[c][d], n[c][d], o, a, r) 429 } 430 431 function Xt(t, e, i, n, o, a, r) { 432 var s = .5 * (i - t), 433 l = .5 * (n - e); 434 return (2 * (e - i) + s + l) * r + (-3 * (e - i) - 2 * s - l) * a + s * o + e 435 } 436 437 function jt(t) { if (c(t)) { var e = t.length; if (c(t[0])) { for (var i = [], n = 0; n < e; n++) i.push(K_.call(t[n])); return i } return K_.call(t) } return t } 438 439 function Yt(t) { return t[0] = Math.floor(t[0]), t[1] = Math.floor(t[1]), t[2] = Math.floor(t[2]), "rgba(" + t.join(",") + ")" } 440 441 function qt(t) { var e = t[t.length - 1].value; return c(e && e[0]) ? 2 : 1 } 442 443 function Kt(t, e, i, n, o, a) { 444 var r = t._getter, 445 s = t._setter, 446 l = "spline" === e, 447 u = n.length; 448 if (u) { 449 var h, d = c(n[0].value), 450 f = !1, 451 p = !1, 452 g = d ? qt(n) : 0; 453 n.sort(function(t, e) { return t.time - e.time }), h = n[u - 1].time; 454 for (var m = [], v = [], y = n[0].value, x = !0, _ = 0; _ < u; _++) { 455 m.push(n[_].time / h); 456 var w = n[_].value; 457 if (d && Zt(w, y, g) || !d && w === y || (x = !1), y = w, "string" == typeof w) { 458 var b = At(w); 459 b ? (w = b, f = !0) : p = !0 460 } 461 v.push(w) 462 } 463 if (a || !x) { 464 for (var S = v[u - 1], _ = 0; _ < u - 1; _++) d ? Ht(v[_], S, g) : !isNaN(v[_]) || isNaN(S) || p || f || (v[_] = S); 465 d && Ht(r(t._target, o), S, g); 466 var M, I, T, D, A, C, L = 0, 467 k = 0; 468 if (f) var P = [0, 0, 0, 0]; 469 var N = new vt({ 470 target: t._target, 471 life: h, 472 loop: t._loop, 473 delay: t._delay, 474 onframe: function(t, e) { 475 var i; 476 if (e < 0) i = 0; 477 else if (e < k) { 478 for (i = M = Math.min(L + 1, u - 1); i >= 0 && !(m[i] <= e); i--); 479 i = Math.min(i, u - 2) 480 } else { 481 for (i = L; i < u && !(m[i] > e); i++); 482 i = Math.min(i - 1, u - 2) 483 } 484 L = i, k = e; 485 var n = m[i + 1] - m[i]; 486 if (0 !== n) 487 if (I = (e - m[i]) / n, l) 488 if (D = v[i], T = v[0 === i ? i : i
488- 1], A = v[i > u - 2 ? u - 1 : i + 1], C = v[i > u - 3 ? u - 1 : i + 2], d) Ut(T, D, A, C, I, I * I, I * I * I, r(t, o), g); 489 else { 490 if (f) a = Ut(T, D, A, C, I, I * I, I * I * I, P, 1), a = Yt(P); 491 else { 492 if (p) return Wt(D, A, I); 493 a = Xt(T, D, A, C, I, I * I, I * I * I) 494 } 495 s(t, o, a) 496 } 497 else if (d) Ft(v[i], v[i + 1], I, r(t, o), g); 498 else { 499 var a; 500 if (f) Ft(v[i], v[i + 1], I, P, 1), a = Yt(P); 501 else { 502 if (p) return Wt(v[i], v[i + 1], I); 503 a = Gt(v[i], v[i + 1], I) 504 } 505 s(t, o, a) 506 } 507 }, 508 ondestroy: i 509 }); 510 return e && "spline" !== e && (N.easing = e), N 511 } 512 } 513 } 514 515 function $t(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 } 516 517 function Jt(t) { for (var e = 0; t >= lw;) e |= 1 & t, t >>= 1; return t + e } 518 519 function Qt(t, e, i, n) { 520 var o = e + 1; 521 if (o === i) return 1; 522 if (n(t[o++], t[e]) < 0) { 523 for (; o < i && n(t[o], t[o - 1]) < 0;) o++; 524 te(t, e, o) 525 } else 526 for (; o < i && n(t[o], t[o - 1]) >= 0;) o++; 527 return o - e 528 } 529 530 function te(t, e, i) { 531 for (i--; e < i;) { 532 var n = t[e]; 533 t[e++] = t[i], t[i--] = n 534 } 535 } 536 537 function ee(t, e, i, n, o) { 538 for (n === e && n++; n < i; n++) { 539 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; 540 var u = n - s; 541 switch (u) { 542 case 3: 543 t[s + 3] = t[s + 2]; 544 case 2: 545 t[s + 2] = t[s + 1]; 546 case 1: 547 t[s + 1] = t[s]; 548 break; 549 default: 550 for (; u > 0;) t[s + u] = t[s + u - 1], u-- 551 } 552 t[s] = r 553 } 554 } 555 556 function ie(t, e, i, n, o, a) { 557 var r = 0, 558 s = 0, 559 l = 1; 560 if (a(t, e[i + o]) > 0) { 561 for (s = n - o; l < s && a(t, e[i + o + l]) > 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s); 562 l > s && (l = s), r += o, l += o 563 } else { 564 for (s = o + 1; l < s && a(t, e[i + o - l]) <= 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s); 565 l > s && (l = s); 566 var u = r; 567 r = o - l, l = o - u 568 } 569 for (r++; r < l;) { 570 var h = r + (l - r >>> 1); 571 a(t, e[i + h]) > 0 ? r = h + 1 : l = h 572 } 573 return l 574 } 575 576 function ne(t, e, i, n, o, a) { 577 var r = 0, 578 s = 0, 579 l = 1; 580 if (a(t, e[i + o]) < 0) { 581 for (s = o + 1; l < s && a(t, e[i + o - l]) < 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s); 582 l > s && (l = s); 583 var u = r; 584 r = o - l, l = o - u 585 } else { 586 for (s = n - o; l < s && a(t, e[i + o + l]) >= 0;) r = l, (l = 1 + (l << 1)) <= 0 && (l = s); 587 l > s && (l = s), r += o, l += o 588 } 589 for (r++; r < l;) { 590 var h = r + (l - r >>> 1); 591 a(t, e[i + h]) < 0 ? l = h : r = h + 1 592 } 593 return l 594 } 595 596 function oe(t, e) { 597 function i(i) { 598 var s = a[i], 599 u = r[i], 600 h = a[i + 1], 601 c = r[i + 1]; 602 r[i] = u + c, i === l - 3 && (a[i + 1] = a[i + 2], r[i + 1] = r[i + 2]), l--; 603 var d = ne(t[h], t, s, u, 0, e); 604 s += d, 0 !== (u -= d) && 0 !== (c = ie(t[s + u - 1], t, h, c, c - 1, e)) && (u <= c ? n(s, u, h, c) : o(s, u, h, c)) 605 } 606 607 function n(i, n, o, a) { 608 var r = 0; 609 for (r = 0; r < n; r++) u[r] = t[i + r]; 610 var l = 0, 611 h = o, 612 c = i; 613 if (t[c++] = t[h++], 0 != --a) 614 if (1 !== n) { 615 for (var d, f, p, g = s;;) { 616 d = 0, f = 0, p = !1; 617 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); 618 if (p) break; 619 do { 620 if (0 !== (d = ne(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 } } 621 if (t[c++] = t[h++], 0 == --a) { p = !0; break } 622 if (0 !== (f = ie(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 } } 623 if (t[c++] = u[l++], 1 == --n) { p = !0; break } 624 g-- 625 } while (d >= uw || f >= uw); 626 if (p) break; 627 g < 0 && (g = 0), g += 2 628 } 629 if ((s = g) < 1 && (s = 1), 1 === n) { 630 for (r = 0; r < a; r++) t[c + r] = t[h + r]; 631 t[c + a] = u[l] 632 } else { if (0 === n) throw new Error; for (r = 0; r < n; r++) t[c + r] = u[l + r] } 633 } else { 634 for (r = 0; r < a; r++) t[c + r] = t[h + r]; 635 t[c + a] = u[l] 636 } 637 else 638 for (r = 0; r < n; r++) t[c + r] = u[l + r] 639 } 640 641 function o(i, n, o, a) { 642 var r = 0; 643 for (r = 0; r < a; r++) u[r] = t[o + r]; 644 var l = i + n - 1, 645 h = a - 1, 646 c = o + a - 1, 647 d = 0, 648 f = 0; 649 if (t[c--] = t[l--], 0 != --n) 650 if (1 !== a) { 651 for (var p = s;;) { 652 var g = 0, 653 m = 0, 654 v = !1; 655 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); 656 if (v) break; 657 do { 658 if (0 != (g = n - ne(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 } } 659 if (t[c--] = u[h--], 1 == --a) { v = !0; break } 660 if (0 != (m = a - ie(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 } } 661 if (t[c--] = t[l--], 0 == --n) { v = !0; break } 662 p-- 663 } while (g >= uw || m >= uw); 664 if (v) break; 665 p < 0 && (p = 0), p += 2 666 } 667 if ((s = p) < 1 && (s = 1), 1 === a) { 668 for (f = (c -= n) + 1, d = (l -= n) + 1, r = n - 1; r >= 0; r--) t[f + r] = t[d + r]; 669 t[c] = u[h] 670 } else { if (0 === a) throw new Error;
670 for (d = c - (a - 1), r = 0; r < a; r++) t[d + r] = u[r] } 671 } else { 672 for (f = (c -= n) + 1, d = (l -= n) + 1, r = n - 1; r >= 0; r--) t[f + r] = t[d + r]; 673 t[c] = u[h] 674 } 675 else 676 for (d = c - (a - 1), r = 0; r < a; r++) t[d + r] = u[r] 677 } 678 var a, r, s = uw, 679 l = 0, 680 u = []; 681 a = [], r = [], this.mergeRuns = function() { 682 for (; l > 1;) { 683 var t = l - 2; 684 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--; 685 else if (r[t] > r[t + 1]) break; 686 i(t) 687 } 688 }, this.forceMergeRuns = function() { 689 for (; l > 1;) { 690 var t = l - 2; 691 t > 0 && r[t - 1] < r[t + 1] && t--, i(t) 692 } 693 }, this.pushRun = function(t, e) { a[l] = t, r[l] = e, l += 1 } 694 } 695 696 function ae(t, e, i, n) { 697 i || (i = 0), n || (n = t.length); 698 var o = n - i; 699 if (!(o < 2)) { 700 var a = 0; 701 if (o < lw) return a = Qt(t, i, n, e), void ee(t, i, n, i + a, e); 702 var r = new oe(t, e), 703 s = Jt(o); 704 do { 705 if ((a = Qt(t, i, n, e)) < s) { 706 var l = o; 707 l > s && (l = s), ee(t, i, i + l, i + a, e), a = l 708 } 709 r.pushRun(i, a), r.mergeRuns(), o -= a, i += a 710 } while (0 !== o); 711 r.forceMergeRuns() 712 } 713 } 714 715 function re(t, e) { return t.zlevel === e.zlevel ? t.z === e.z ? t.z2 - e.z2 : t.z - e.z : t.zlevel - e.zlevel } 716 717 function se(t, e, i) { 718 var n = null == e.x ? 0 : e.x, 719 o = null == e.x2 ? 1 : e.x2, 720 a = null == e.y ? 0 : e.y, 721 r = null == e.y2 ? 0 : e.y2; 722 return e.global || (n = n * i.width + i.x, o = o * i.width + i.x, a = a * i.height + i.y, r = r *
722i.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) 723 } 724 725 function le(t, e, i) { 726 var n = i.width, 727 o = i.height, 728 a = Math.min(n, o), 729 r = null == e.x ? .5 : e.x, 730 s = null == e.y ? .5 : e.y, 731 l = null == e.r ? .5 : e.r; 732 return e.global || (r = r * n + i.x, s = s * o + i.y, l *= a), t.createRadialGradient(r, s, 0, r, s, l) 733 } 734 735 function ue() { return !1 } 736 737 function he(t, e, i) { 738 var n = m_(), 739 o = e.getWidth(), 740 a = e.getHeight(), 741 r = n.style; 742 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 743 } 744 745 function ce(t) { if ("string" == typeof t) { var e = ww.get(t); return e && e.image } return t } 746 747 function de(t, e, i, n, o) { 748 if (t) { 749 if ("string" == typeof t) { 750 if (e && e.__zrImageSrc === t || !i) return e; 751 var a = ww.get(t), 752 r = { hostEl: i, cb: n, cbPayload: o }; 753 return a ? !pe(e = a.image) && a.pending.push(r) : (!e && (e = new Image), e.onload = fe, ww.put(t, e.__cachedImgObj = { image: e, pending: [r] }), e.src = e.__zrImageSrc = t), e 754 } 755 return t 756 } 757 return e 758 } 759 760 function fe() { 761 var t = this.__cachedImgObj; 762 this.onload = this.__cachedImgObj = null; 763 for (var e = 0; e < t.pending.length; e++) { 764 var i = t.pending[e], 765 n = i.cb; 766 n && n(this, i.cbPayload), i.hostEl.dirty() 767 } 768 t.pending.length = 0 769 } 770 771 function pe(t) { return t && t.width && t.height } 772 773 function ge(t, e) { var i = t + ":" + (e = e || Tw); if (bw[i]) return bw[i]; for (var n = (t + "").split("\n"), o = 0, a = 0, r = n.length; a < r; a++) o = Math.max(De(n[a], e).width, o); return Sw > Mw && (Sw = 0, bw = {}), Sw++, bw[i] = o, o } 774 775 function me(t, e, i, n, o, a, r) { return a ? ye(t, e, i, n, o, a, r) : ve(t, e, i, n, o, r) } 776 777 function ve(t, e, i, n, o, a) { 778 var r = Ae(t, e, o, a), 779 s = ge(t, e); 780 o && (s += o[1] + o[3]); 781 var l = r.outerHeight, 782 u = new $t(xe(0, s, i), _e(0, l, n), s, l); 783 return u.lineHeight = r.lineHeight, u 784 } 785 786 function ye(t, e, i, n, o, a, r) { 787 var s = Ce(t, { rich: a, truncate: r, font: e, textAlign: i, textPadding: o }), 788 l = s.outerWidth, 789 u = s.outerHeight; 790 return new $t(xe(0, l, i), _e(0, u, n), l, u) 791 } 792 793 function xe(t, e, i) { return "right" === i ? t -= e : "center" === i && (t -= e / 2), t } 794 795 function _e(t, e, i) { return "middle" === i ? t -= e / 2 : "bottom" === i && (t -= e), t } 796 797 function we(t, e, i) { 798 var n = e.x, 799 o = e.y, 800 a = e.height, 801 r = e.width, 802 s = a / 2, 803 l = "left", 804 u = "top"; 805 switch (t) { 806 case "left": 807 n -= i, o += s, l = "right", u = "middle"; 808 break; 809 case "right": 810 n += i + r, o += s, u = "middle"; 811 break; 812 case "top": 813 n += r / 2, o -= i, l = "center", u = "bottom"; 814 break; 815 case "bottom": 816 n += r / 2, o += a + i, l = "center"; 817 break; 818 case "inside": 819 n += r / 2, o += s, l = "center", u = "middle"; 820 break; 821 case "insideLeft": 822 n += i, o += s, u = "middle"; 823 break; 824 case "insideRight": 825 n += r - i, o += s, l = "right", u = "middle"; 826 break; 827 case "insideTop": 828 n += r / 2, o += i, l = "center"; 829 break; 830 case "insideBottom": 831 n += r / 2, o += a - i, l = "center", u = "bottom"; 832 break; 833 case "insideTopLeft": 834 n += i, o += i; 835 break; 836 case "insideTopRight": 837 n += r - i, o += i, l = "right"; 838 break; 839 case "insideBottomLeft": 840 n += i, o += a - i, u = "bottom"; 841 break; 842 case "insideBottomRight": 843 n += r - i, o += a - i, l = "right", u = "bottom" 844 } 845 return { x: n, y: o, textAlign: l, textVerticalAlign: u } 846 } 847 848 function be(t, e, i, n, o) { 849 if (!e) return ""; 850 var a = (t + "").split("\n"); 851 o = Se(e, i, n, o); 852 for (var r = 0, s = a.length; r < s; r++) a[r] = Me(a[r], o); 853 return a.join("\n") 854 } 855 856 function Se(t, e, i, n) { 857 (n = a({}, n)).font = e; 858 var i = D(i, "..."); 859 n.maxIterations = D(n.maxIterations, 2); 860 var o = n.minChar = D(n.minChar, 0); 861 n.cnCharWidth = ge("å½", e); 862 var r = n.ascCharWidth = ge("a", e); 863 n.placeholder = D(n.placeholder, ""); 864 for (var s = t = Math.max(0, t - 1), l = 0; l < o && s >= r; l++) s -= r; 865 var u = ge(i); 866 return u > s && (i = "", u = 0), s = t - u, n.ellipsis = i, n.ellipsisWidth = u, n.contentWidth = s, n.containerWidth = t, n 867 } 868 869 function Me(t, e) { 870 var i = e.containerWidth, 871 n = e.font, 872 o = e.contentWidth; 873 if (!i) return ""; 874 var a = ge(t, n); 875 if (a <= i) return t; 876 for (var r = 0;; r++) { 877 if (a <= o || r >= e.maxIterations) { t += e.ellipsis; break } 878 var s = 0 === r ? Ie(t, o, e.ascCharWidth, e.cnCharWidth) : a > 0 ? Math.floor(t.length * o / a) : 0; 879 a = ge(t = t.substr(0, s), n) 880 } 881 return "" === t && (t = e.placeholder), t 882 } 883 884 function Ie(t, e, i, n) { 885 for (var o = 0, a = 0, r = t.length; a < r && o < e; a++) { 886 var s = t.charCodeAt(a); 887 o += 0 <= s && s <= 127 ? i : n 888 } 889 return a 890 } 891 892 function Te(t) { return ge("å½", t) } 893 894 function De(t, e) { return Dw.measureText(t, e) } 895 896 function Ae(t, e, i, n) { 897 null != t && (t += ""); 898 var o = Te(e), 899 a = t ? t.split("\n") : [], 900 r = a.length * o, 901 s = r; 902 if (i && (s += i[0] + i[2]), t && n) { 903 var l = n.outerHeight, 904 u = n.outerWidth; 905 if (null != l && s > l) t = "", a = []; 906 else if (null != u) 907 for (var h = Se(u - (i ? i[1] + i[3] : 0), e, n.ellipsis, { minChar: n.minChar, placeholder: n.placeholder }), c = 0, d = a.length; c < d; c++) a[c] = Me(a[c], h) 908 } 909 return { lines: a, height: r, outerHeight: s, lineHeight: o } 910 } 911 912 function Ce(t, e) { 913 var i = { lines: [], width: 0, height: 0 }; 914 if (null != t && (t += ""), !t) return i; 915 for (var n, o = Iw.lastIndex = 0; null != (n = Iw.exec(t));) { 916 var a = n.index; 917 a > o && Le(i, t.substring(o, a)), Le(i, n[2], n[1]), o = Iw.lastIndex 918 } 919 o < t.length && Le(i, t.substring(o, t.length)); 920 var r = i.lines, 921 s = 0, 922 l = 0, 923 u = [], 924 h = e.textPadding, 925 c = e.truncate, 926 d = c && c.outerWidth, 927 f = c && c.outerHeight; 928 h && (null != d && (d -= h[1] + h[3]), null != f && (f -= h[0] + h[2])); 929 for (L = 0; L < r.length; L++) { 930 for (var p = r[L], g = 0, m = 0, v = 0; v < p.tokens.length; v++) { 931 var y = (k = p.tokens[v]).styleName && e.rich[k.styleName] || {}, 932 x = k.textPadding = y.textPadding, 933 _ = k.font = y.font || e.font, 934 w = k.textHeight = D(y.textHeight, Te(_)); 935 if (x && (w += x[0] + x[2]), k.height = w, k.lineHeight = A(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 }; 936 k.textWidth = ge(k.text, _); 937 var b = y.textWidth, 938 S = null == b || "auto" === b; 939 if ("string" == typeof b && "%" === b.charAt(b.length - 1)) k.percentWidth = b, u.push(k), b = 0; 940 else { 941 if (S) { 942 b = k.textWidth;
943 var M = y.textBackgroundColor, 944 I = M && M.image; 945 I && pe(I = ce(I)) && (b = Math.max(b, I.width * w / I.height)) 946 } 947 var T = x ? x[1] + x[3] : 0; 948 b += T; 949 var C = null != d ? d - m : null; 950 null != C && C < b && (!S || C < T ? (k.text = "", k.textWidth = b = 0) : (k.text = be(k.text, C - T, _, c.ellipsis, { minChar: c.minChar }), k.textWidth = ge(k.text, _), b = k.textWidth + T)) 951 } 952 m += k.width = b, y && (g = Math.max(g, k.lineHeight)) 953 } 954 p.width = m, p.lineHeight = g, s += g, l = Math.max(l, m) 955 } 956 i.outerWidth = i.width = D(e.textWidth, l), i.outerHeight = i.height = D(e.textHeight, s), h && (i.outerWidth += h[1] + h[3], i.outerHeight += h[0] + h[2]); 957 for (var L = 0; L < u.length; L++) { 958 var k = u[L], 959 P = k.percentWidth; 960 k.width = parseInt(P, 10) / 100 * l 961 } 962 return i 963 } 964 965 function Le(t, e, i) { 966 for (var n = "" === e, o = e.split("\n"), a = t.lines, r = 0; r < o.length; r++) { 967 var s = o[r], 968 l = { styleName: i, text: s, isLineHolder: !s && !n }; 969 if (r) a.push({ tokens: [l] }); 970 else { 971 var u = (a[a.length - 1] || (a[0] = { tokens: [] })).tokens, 972 h = u.length; 973 1 === h && u[0].isLineHolder ? u[0] = l : (s || !h || n) && u.push(l) 974 } 975 } 976 } 977 978 function ke(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 } 979 980 function Pe(t, e) { 981 var i, n, o, a, r = e.x, 982 s = e.y, 983 l = e.width, 984 u = e.height, 985 h = e.r; 986 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; 987 var c; 988 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) 989 } 990 991 function Ne(t) { return Oe(t), d(t.rich, Oe), t } 992 993 function Oe(t) { if (t) { t.font = ke(t); var e = t.textAlign; "middle" === e && (e = "center"), t.textAlign = null == e || Aw[e] ? e : "left"; var i = t.textVerticalAlign || t.textBaseline; "center" === i && (i = "middle"), t.textVerticalAlign = null == i || Cw[i] ? i : "top", t.textPadding && (t.textPadding = L(t.textPadding)) } } 994 995 function Ee(t, e, i, n, o) { n.rich ? ze(t, e, i, n, o) : Re(t, e, i, n, o) } 996 997 function Re(t, e, i, n, o) { 998 var a = Ue(e, "font", n.font || Tw), 999 r = n.textPadding, 1000 s = t.__textCotentBlock; 1001 s && !t.__dirty || (s = t.__textCotentBlock = Ae(i, a, r, n.truncate)); 1002 var l = s.outerHeight, 1003 u = s.lines, 1004 h = s.lineHeight, 1005 c = Ze(l, n, o), 1006 d = c.baseX, 1007 f = c.baseY, 1008 p = c.textAlign, 1009 g = c.textVerticalAlign; 1010 Ve(e, n, o, d, f); 1011 var m = _e(f, l, g), 1012 v = d, 1013 y = m, 1014 x = We(n); 1015 if (x || r) { 1016 var _ = ge(i, a); 1017 r && (_ += r[1] + r[3]); 1018 var w = xe(d, _, p); 1019 x && Fe(t, e, n, w, m, _, l), r && (v = qe(d, p, r), y += r[0]) 1020 } 1021 Ue(e, "textAlign", p || "left"), Ue(e, "textBaseline", "middle"), Ue(e, "shadowBlur", n.textShadowBlur || 0), Ue(e, "shadowColor", n.textShadowColor || "transparent"), Ue(e, "shadowOffsetX", n.textShadowOffsetX || 0), Ue(e, "shadowOffsetY", n.textShadowOffsetY || 0
1021), y += h / 2; 1022 var b = n.textStrokeWidth, 1023 S = Xe(n.textStroke, b), 1024 M = je(n.textFill); 1025 S && (Ue(e, "lineWidth", b), Ue(e, "strokeStyle", S)), M && Ue(e, "fillStyle", M); 1026 for (var I = 0; I < u.length; I++) S && e.strokeText(u[I], v, y), M && e.fillText(u[I], v, y), y += h 1027 } 1028 1029 function ze(t, e, i, n, o) { 1030 var a = t.__textCotentBlock; 1031 a && !t.__dirty || (a = t.__textCotentBlock = Ce(i, n)), Be(t, e, a, n, o) 1032 } 1033 1034 function Be(t, e, i, n, o) { 1035 var a = i.width, 1036 r = i.outerWidth, 1037 s = i.outerHeight, 1038 l = n.textPadding, 1039 u = Ze(s, n, o), 1040 h = u.baseX, 1041 c = u.baseY, 1042 d = u.textAlign, 1043 f = u.textVerticalAlign; 1044 Ve(e, n, o, h, c); 1045 var p = xe(h, r, d), 1046 g = _e(c, s, f), 1047 m = p, 1048 v = g; 1049 l && (m += l[3], v += l[0]); 1050 var y = m + a; 1051 We(n) && Fe(t, e, n, p, g, r, s); 1052 for (var x = 0; x < i.lines.length; x++) { 1053 for (var _, w = i.lines[x], b = w.tokens, S = b.length, M = w.lineHeight, I = w.width, T = 0, D = m, A = y, C = S - 1; T < S && (!(_ = b[T]).textAlign || "left" === _.textAlign);) Ge(t, e, _, n, M, v, D, "left"), I -= _.width, D += _.width, T++; 1054 for (; C >= 0 && "right" === (_ = b[C]).textAlign;) Ge(t, e, _, n, M, v, A, "right"), I -= _.width, A -= _.width, C--; 1055 for (D += (a - (D - m) - (y - A) - I) / 2; T <= C;) Ge(t, e, _ = b[T], n, M, v, D + _.width / 2, "center"), D += _.width, T++; 1056 v += M 1057 } 1058 } 1059 1060 function Ve(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) } } 1061 1062 function Ge(t, e, i, n, o, a, r, s) { 1063 var l = n.rich[i.styleName] || {}, 1064 u = i.textVerticalAlign, 1065 h = a + o / 2; 1066 "top" === u ? h = a + i.height / 2 : "bottom" === u && (h = a + o - i.height / 2), !i.isLineHolder && We(l) && Fe(t, e, l, "right" === s ? r - i.width : "center" === s ? r - i.width / 2 : r, h - i.height / 2, i.width, i.height); 1067 var c = i.textPadding; 1068 c && (r = qe(r, s, c), h -= i.height / 2 - c[2] - i.textHeight / 2), Ue(e, "shadowBlur", A(l.textShadowBlur, n.textShadowBlur, 0)), Ue(e, "shadowColor", l.textShadowColor || n.textShadowColor || "transparent"), Ue(e, "shadowOffsetX", A(l.textShadowOffsetX, n.textShadowOffsetX, 0)), Ue(e, "shadowOffsetY", A(l.textShadowOffsetY, n.textShadowOffsetY, 0)), Ue(e, "textAlign", s), Ue(e, "textBaseline", "middle"), Ue(e, "font", i.font || Tw); 1069 var d = Xe(l.textStroke || n.textStroke, p), 1070 f = je(l.textFill || n.textFill), 1071 p = D(l.textStrokeWidth, n.textStrokeWidth); 1072 d && (Ue(e, "lineWidth", p), Ue(e, "strokeStyle", d), e.strokeText(i.text, r, h)), f && (Ue(e, "fillStyle", f), e.fillText(i.text, r, h)) 1073 } 1074 1075 function We(t) { return t.textBackgroundColor || t.textBorderWidth && t.textBorderColor } 1076 1077 function Fe(t, e, i, n, o, a, r) { 1078 var s = i.textBackgroundColor, 1079 l = i.textBorderWidth, 1080 u = i.textBorderColor, 1081 h = _(s); 1082 if (Ue(e, "shadowBlur", i.textBoxShadowBlur || 0), Ue(e, "shadowColor", i.textBoxShadowColor || "transparent"), Ue(e, "shadowOffsetX", i.textBoxShadowOffsetX || 0), Ue(e, "shadowOffsetY", i.textBoxShadowOffsetY || 0), h || l && u) { 1083 e.beginPath(); 1084 var c = i.textBorderRadius; 1085 c ? Pe(e, { x: n, y: o, width: a, height: r, r: c }) : e.rect(n, o, a, r), e.closePath() 1086 } 1087 if (h) Ue(e, "fillStyle", s), e.fill(); 1088 else if (w(s)) { 1089 var d = s.image; 1090 (d = de(d, null, t, He, s)) && pe(d) && e.drawImage(d, n, o, a, r) 1091 } 1092 l && u && (Ue(e, "lineWidth", l), Ue(e, "strokeStyle", u), e.stroke()) 1093 } 1094 1095 function He(t, e) { e.image = t } 1096 1097 function Ze(t, e, i) { 1098 var n = e.x || 0, 1099 o = e.y || 0, 1100 a = e.textAlign, 1101 r = e.textVerticalAlign; 1102 if (i) { 1103 var s = e.textPosition; 1104 if (s instanceof Array) n = i.x + Ye(s[0], i.width), o = i.y + Ye(s[1], i.height); 1105 else { 1106 var l = we(s, i, e.textDistance); 1107 n = l.x, o = l.y, a = a || l.textAlign, r = r || l.textVerticalAlign 1108 } 1109 var u = e.textOffset; 1110 u && (n += u[0], o += u[1]) 1111 } 1112 return { baseX: n, baseY: o, textAlign: a, textVerticalAlign: r } 1113 } 1114 1115 function Ue(t, e, i) { return t[e] = dw(t, e, i), t[e] } 1116 1117 function Xe(t, e) { return null == t || e <= 0 || "transparent" === t || "none" === t ? null : t.image || t.colorStops ? "#000" : t } 1118 1119 function je(t) { return null == t || "none" === t ? null : t.image || t.colorStops ? "#000" : t } 1120 1121 function Ye(t, e) { return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t } 1122 1123 function qe(t, e, i) { return "right" === e ? t - i[1] : "center" === e ? t + i[3] / 2 - i[1] / 2 : t + i[3] } 1124 1125 function Ke(t, e) { return null != t && (t || e.textBackgroun
1125dColor || e.textBorderWidth && e.textBorderColor || e.textPadding) } 1126 1127 function $e(t) { 1128 t = t || {}, nw.call(this, t); 1129 for (var e in t) t.hasOwnProperty(e) && "style" !== e && (this[e] = t[e]); 1130 this.style = new pw(t.style, this), this._rect = null, this.__clipPaths = [] 1131 } 1132 1133 function Je(t) { $e.call(this, t) } 1134 1135 function Qe(t) { return parseInt(t, 10) } 1136 1137 function ti(t) { return !!t && (!!t.__builtin__ || "function" == typeof t.resize && "function" == typeof t.refresh) } 1138 1139 function ei(t, e, i) { return Pw.copy(t.getBoundingRect()), t.transform && Pw.applyTransform(t.transform), Nw.width = e, Nw.height = i, !Pw.intersect(Nw) } 1140 1141 function ii(t, e) { 1142 if (t == e) return !1; 1143 if (!t || !e || t.length !== e.length) return !0; 1144 for (var i = 0; i < t.length; i++) 1145 if (t[i] !== e[i]) return !0 1146 } 1147 1148 function ni(t, e) { 1149 for (var i = 0; i < t.length; i++) { 1150 var n = t[i]; 1151 n.setTransform(e), e.beginPath(), n.buildPath(e, n.shape), e.clip(), n.restoreTransform(e) 1152 } 1153 } 1154 1155 function oi(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 } 1156 1157 function ai(t) { return t.getBoundingClientRect ? t.getBoundingClientRect() : { left: 0, top: 0 } } 1158 1159 function ri(t, e, i, n) { return i = i || {}, n || !a_.canvasSupported ? si(t, e, i) : a_.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) : si(t, e, i), i } 1160 1161 function si(t, e, i) { 1162 var n = ai(t); 1163 i.zrX = e.clientX - n.left, i.zrY = e.clientY - n.top 1164 } 1165 1166 function li(t, e, i) { 1167 if (null != (e = e || window.event).zrX) return e; 1168 var n = e.type; 1169 if (n && n.indexOf("touch") >= 0) { 1170 var o = "touchend" != n ? e.targetTouches[0] : e.changedTouches[0]; 1171 o && ri(t, o, e, i) 1172 } else ri(t, e, e, i), e.zrDelta = e.wheelDelta ? e.wheelDelta / 120 : -(e.detail || 0) / 3; 1173 var a = e.button; 1174 return null == e.which && void 0 !== a && Rw.test(e.type) && (e.which = 1 & a ? 1 : 2 & a ? 3 : 4 & a ? 2 : 0), e 1175 } 1176 1177 function ui(t, e, i) { Ew ? t.addEventListener(e, i) : t.attachEvent("on" + e, i) } 1178 1179 function hi(t, e, i) { Ew ? t.removeEventListener(e, i) : t.detachEvent("on" + e, i) } 1180 1181 function ci(t) { return t.which > 1 } 1182 1183 function di(t) { 1184 var e = t[1][0] - t[0][0], 1185 i = t[1][1] - t[0][1]; 1186 return Math.sqrt(e * e + i * i) 1187 } 1188 1189 function fi(t) { return [(t[0][0] + t[1][0]) / 2, (t[0][1] + t[1][1]) / 2] } 1190 1191 function pi(t) { return "mousewheel" === t && a_.browser.firefox ? "DOMMouseScroll" : t } 1192 1193 function gi(t, e, i) { 1194 var n = t._gestureMgr; 1195 "start" === i && n.clear(); 1196 var o = n.recognize(e, t.handler.findHover(e.zrX, e.zrY, null).target, t.dom); 1197 if ("end" === i && n.clear(), o) { 1198 var a = o.type; 1199 e.gestureEvent = a, t.handler.dispatchToElement({ target: o.target }, a, o.event) 1200 } 1201 } 1202 1203 function mi(t) { t._touching = !0, clearTimeout(t._touchTimer), t._touchTimer = setTimeout(function() { t._touching = !1 }, 700) } 1204 1205 function vi(t) { var e = t.pointerType; return "pen" === e || "touch" === e } 1206 1207 function yi(t) { 1208 function e(t, e) { return function() { if (!e._touching) return t.apply(e, arguments) } } 1209 d(Fw, function(e) { t._handlers[e] = m(Uw[e], t) }), d(Zw, function(e) { t._handlers[e] = m(Uw[e], t) }), d(Ww, function(i) { t._handlers[i] = e(Uw[i], t) }) 1210 } 1211 1212 function xi(t) { 1213 function e(e, i) { d(e, function(e) { ui(t, pi(e), i._handlers[e]) }, i) } 1214 D_.call(this), this.dom = t, this._touching = !1, this._touchTimer, this._gestureMgr = new Vw, this._handlers = {}, yi(this), a_.pointerEventsSupported ? e(Zw, this) : (a_.touchEventsSupported && e(Fw, this), e(Ww, this)) 1215 } 1216 1217 function _i(t, e) { var i = new Kw(n_(), t, e); return qw[i.id] = i, i } 1218 1219 function wi(t, e) { Yw[t] = e } 1220 1221 function bi(t) { delete qw[t] } 1222 1223 function Si(t) { return t instanceof Array ? t : null == t ? [] : [t] } 1224 1225 function Mi(t, e, i) { if (t) { t[e] = t[e] || {}
1225, 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]) } } } 1226 1227 function Ii(t) { return !Qw(t) || tb(t) || t instanceof Date ? t : t.value } 1228 1229 function Ti(t) { return Qw(t) && !(t instanceof Array) } 1230 1231 function Di(t, e) { 1232 e = (e || []).slice(); 1233 var i = f(t || [], function(t, e) { return { exist: t } }); 1234 return Jw(e, function(t, n) { 1235 if (Qw(t)) { 1236 for (o = 0; o < i.length; o++) 1237 if (!i[o].option && null != t.id && i[o].exist.id === t.id + "") return i[o].option = t, void(e[n] = null); 1238 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 || Li(t) || Li(a) || a.name !== t.name + "")) return i[o].option = t, void(e[n] = null) } 1239 } 1240 }), Jw(e, function(t, e) { 1241 if (Qw(t)) { 1242 for (var n = 0; n < i.length; n++) { var o = i[n].exist; if (!i[n].option && !Li(o) && null == t.id) { i[n].option = t; break } } 1243 n >= i.length && i.push({ option: t }) 1244 } 1245 }), i 1246 } 1247 1248 function Ai(t) { 1249 var e = R(); 1250 Jw(t, function(t, i) { 1251 var n = t.exist; 1252 n && e.set(n.id, t) 1253 }), Jw(t, function(t, i) { 1254 var n = t.option; 1255 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 = {}) 1256 }), Jw(t, function(t, i) { 1257 var n = t.exist, 1258 o = t.option, 1259 a = t.keyInfo; 1260 if (Qw(o)) { 1261 if (a.name = null != o.name ? o.name + "" : n ? n.name : eb + i, n) a.id = n.id; 1262 else if (null != o.id) a.id = o.id + ""; 1263 else { 1264 var r = 0; 1265 do { a.id = "\0" + a.name + "\0" + r++ } while (e.get(a.id)) 1266 } 1267 e.set(a.id, t) 1268 } 1269 }) 1270 } 1271 1272 function Ci(t) { var e = t.name; return !(!e || !e.indexOf(eb)) } 1273 1274 function Li(t) { return Qw(t) && t.id && 0 === (t.id + "").indexOf("\0_ec_\0") } 1275 1276 function ki(t, e) { 1277 function i(t, e, i) { 1278 for (var n = 0, o = t.length; n < o; n++) 1279 for (var a = t[n].seriesId, r = Si(t[n].dataIndex), s = i && i[a], l = 0, u = r.length; l < u; l++) { 1280 var h = r[l]; 1281 s && s[h] ? s[h] = null : (e[a] || (e[a] = {}))[h] = 1 1282 } 1283 } 1284 1285 function n(t, e) { 1286 var i = []; 1287 for (var o in t) 1288 if (t.hasOwnProperty(o) && null != t[o]) 1289 if (e) i.push(+o); 1290 else { 1291 var a = n(t[o], !0); 1292 a.length && i.push({ seriesId: o, dataIndex: a }) 1293 } 1294 return i 1295 } 1296 var o = {}, 1297 a = {}; 1298 return i(t || [], o), i(e || [], a, o), [n(o), n(a)] 1299 } 1300 1301 function Pi(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 } 1302 1303 function Ni() { var t = "__\0ec_inner_" + nb++ + "_" + Math.random().toFixed(5); return function(e) { return e[t] || (e[t] = {}) } } 1304 1305 function Oi(t, e, i) { 1306 if (_(e)) { 1307 var n = {}; 1308 n[e + "Index"] = 0, e = n 1309 } 1310 var o = i && i.defaultMainType; 1311 !o || Ei(e, o + "Index") || Ei(e, o + "Id") || Ei(e, o + "Name") || (e[o + "Index"] = 0); 1312 var a = {}; 1313 return Jw(e, function(n, o) { 1314 var n = e[o]; 1315 if ("dataIndex" !== o && "dataIndexInside" !== o) { 1316 var r = o.match(/^(\w+)(Index|Id|Name)$/) || [], 1317 s = r[1], 1318 u = (r[2] || "").toLowerCase(); 1319 if (!(!s || !u || null == n || "index" === u && "none" === n || i && i.includeMainTypes && l(i.includeMainTypes, s) < 0)) { 1320 var h = { mainType: s }; 1321 "index" === u && "all" === n || (h[u] = n); 1322 var c = t.queryComponents(h); 1323 a[s + "Models"] = c, a[s + "Model"] = c[0] 1324 } 1325 } else a[o] = n 1326 }), a 1327 } 1328 1329 function Ei(t, e) { return t && t.hasOwnProperty(e) } 1330 1331 function Ri(t, e, i) { t.setAttribute ? t.setAttribute(e, i) : t[e] = i } 1332 1333 function zi(t, e) { return t.getAttribute ? t.getAttribute(e) : t[e] } 1334 1335 function Bi(t) { var e = { main: "", sub: "" }; return t && (t = t.split(ob), e.main = t[0] || "", e.sub = t[1] || ""), e } 1336 1337 function Vi(t) { k(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t), 'componentType "' + t + '" illegal') } 1338 1339 function Gi(t, e) { 1340 t.$constructor = t, t.extend = function(t) { 1341 var e = this, 1342 i = function() { t.$constructor ? t.$constructor.apply(this, arguments) : e.apply(this, arguments) }; 1343 return a(i.prototype, t), i.extend = this.extend, i.superCall = Fi, i.superApply = Hi, u(i, this), i.superClass = e, i 1344 } 1345 } 1346 1347 function Wi(t) { 1348 var e = ["__\0is_clz", rb++, Math.random().toFixed(3)].join("_"); 1349 t.prototype[e] = !0, t.isInstance = function(t) { return !(!t || !t[e]) } 1350 } 1351 1352 function Fi(t, e) { var i = C(arguments, 2); return this.superClass.prototype[e].apply(t, i) } 1353 1354 function Hi(t, e, i) { return this.superClass.prototype[e].apply(t, i) } 1355 1356 function Zi(t, e) { 1357 function i(t) { var e = n[t.main]; return e && e[ab] || ((e = n[t.main] = {})[ab] = !0), e } 1358 e = e || {}; 1359 var n = {}; 1360 if (t.registerClass = function(t, e) { return e && (Vi(e), (e = Bi(e)).sub ? e.sub !== ab && (i(e)[e.sub] = t) : n[e.main] = t), t }, t.getClass = function(t, e, i) { var o = n[t];
vendor: 9,986 bytes, lines 1360-1588
1360 if (o && o[ab] && (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) { 1361 t = Bi(t); 1362 var e = [], 1363 i = n[t.main]; 1364 return i && i[ab] ? d(i, function(t, i) { i !== ab && e.push(t) }) : e.push(i), e 1365 }, t.hasClass = function(t) { return t = Bi(t), !!n[t.main] }, t.getAllClassMainTypes = function() { var t = []; return d(n, function(e, i) { t.push(i) }), t }, t.hasSubTypes = function(t) { t = Bi(t); var e = n[t.main]; return e && e[ab] }, t.parseClassType = Bi, e.registerWhenExtend) { 1366 var o = t.extend; 1367 o && (t.extend = function(e) { var i = o.call(this, e); return t.registerClass(i, e.type) }) 1368 } 1369 return t 1370 } 1371 1372 function Ui(t) { return t > -pb && t < pb } 1373 1374 function Xi(t) { return t > pb || t < -pb } 1375 1376 function ji(t, e, i, n, o) { var a = 1 - o; return a * a * (a * t + 3 * o * e) + o * o * (o * n + 3 * a * i) } 1377 1378 function Yi(t, e, i, n, o) { var a = 1 - o; return 3 * (((e - t) * a + 2 * (i - e) * o) * a + (n - i) * o * o) } 1379 1380 function qi(t, e, i, n, o, a) { 1381 var r = n + 3 * (e - i) - t, 1382 s = 3 * (i - 2 * e + t), 1383 l = 3 * (e - t), 1384 u = t - o, 1385 h = s * s - 3 * r * l, 1386 c = s * l - 9 * r * u, 1387 d = l * l - 3 * s * u, 1388 f = 0; 1389 if (Ui(h) && Ui(c)) Ui(s) ? a[0] = 0 : (M = -l / s) >= 0 && M <= 1 && (a[f++] = M); 1390 else { 1391 var p = c * c - 4 * h * d; 1392 if (Ui(p)) { 1393 var g = c / h, 1394 m = -g / 2; 1395 (M = -s / r + g) >= 0 && M <= 1 && (a[f++] = M), m >= 0 && m <= 1 && (a[f++] = m) 1396 } else if (p > 0) { 1397 var v = fb(p), 1398 y = h * s + 1.5 * r * (-c + v), 1399 x = h * s + 1.5 * r * (-c - v); 1400 (M = (-s - ((y = y < 0 ? -db(-y, vb) : db(y, vb)) + (x = x < 0 ? -db(-x, vb) : db(x, vb)))) / (3 * r)) >= 0 && M <= 1 && (a[f++] = M) 1401 } else { 1402 var _ = (2 * h * s - 3 * r * c) / (2 * fb(h * h * h)), 1403 w = Math.acos(_) / 3, 1404 b = fb(h), 1405 S = Math.cos(w), 1406 M = (-s - 2 * b * S) / (3 * r), 1407 m = (-s + b * (S + mb * Math.sin(w))) / (3 * r), 1408 I = (-s + b * (S - mb * Math.sin(w))) / (3 * r); 1409 M >= 0 && M <= 1 && (a[f++] = M), m >= 0 && m <= 1 && (a[f++] = m), I >= 0 && I <= 1 && (a[f++] = I) 1410 } 1411 } 1412 return f 1413 } 1414 1415 function Ki(t, e, i, n, o) { 1416 var a = 6 * i - 12 * e + 6 * t, 1417 r = 9 * e + 3 * n - 3 * t - 9 * i, 1418 s = 3 * e - 3 * t, 1419 l = 0; 1420 if (Ui(r)) Xi(a) && (c = -s / a) >= 0 && c <= 1 && (o[l++] = c); 1421 else { 1422 var u = a * a - 4 * r * s; 1423 if (Ui(u)) o[0] = -a / (2 * r); 1424 else if (u > 0) { 1425 var h = fb(u), 1426 c = (-a + h) / (2 * r), 1427 d = (-a - h) / (2 * r); 1428 c >= 0 && c <= 1 && (o[l++] = c), d >= 0 && d <= 1 && (o[l++] = d) 1429 } 1430 } 1431 return l 1432 } 1433 1434 function $i(t, e, i, n, o, a) { 1435 var r = (e - t) * o + t, 1436 s = (i - e) * o + e, 1437 l = (n - i) * o + i, 1438 u = (s - r) * o + r, 1439 h = (l - s) * o + s, 1440 c = (h - u) * o + u; 1441 a[0] = t, a[1] = r, a[2] = u, a[3] = c, a[4] = c, a[5] = h, a[6] = l, a[7] = n 1442 } 1443 1444 function Ji(t, e, i, n, o, a, r, s, l, u, h) { 1445 var c, d, f, p, g, m = .005, 1446 v = 1 / 0; 1447 yb[0] = l, yb[1] = u; 1448 for (var y = 0; y < 1; y += .05) xb[0] = ji(t, i, o, r, y), xb[1] = ji(e, n, a, s, y), (p = M_(yb, xb)) < v && (c = y, v = p); 1449 v = 1 / 0; 1450 for (var x = 0; x < 32 && !(m < gb); x++) d = c - m, f = c + m, xb[0] = ji(t, i, o, r, d), xb[1] = ji(e, n, a, s, d), p = M_(xb, yb), d >= 0 && p < v ? (c = d, v = p) : (_b[0] = ji(t, i, o, r, f), _b[1] = ji(e, n, a, s, f), g = M_(_b, yb), f <= 1 && g < v ? (c = f, v = g) : m *= .5); 1451 return h && (h[0] = ji(t, i, o, r, c), h[1] = ji(e, n, a, s, c)), fb(v) 1452 } 1453 1454 function Qi(t, e, i, n) { var o = 1 - n; return o * (o * t + 2 * n * e) + n * n * i } 1455 1456 function tn(t, e, i, n) { return 2 * ((1 - n) * (e - t) + n * (i - e)) } 1457 1458 function en(t, e, i, n, o) { 1459 var a = t - 2 * e + i, 1460 r = 2 * (e - t), 1461 s = t - n, 1462 l = 0; 1463 if (Ui(a)) Xi(r) && (c = -s / r) >= 0 && c <= 1 && (o[l++] = c); 1464 else { 1465 var u = r * r - 4 * a * s; 1466 if (Ui(u))(c = -r / (2 * a)) >= 0 && c <= 1 && (o[l++] = c); 1467 else if (u > 0) { 1468 var h = fb(u), 1469 c = (-r + h) / (2 * a), 1470 d = (-r - h) / (2 * a); 1471 c >= 0 && c <= 1 && (o[l++] = c), d >= 0 && d <= 1 && (o[l++] = d) 1472 } 1473 } 1474 return l 1475 } 1476 1477 function nn(t, e, i) { var n = t + i - 2 * e; return 0 === n ? .5 : (t - e) / n } 1478 1479 function on(t, e, i, n, o) { 1480 var a = (e - t) * n + t, 1481 r = (i - e) * n + e, 1482 s = (r - a) * n + a; 1483 o[0] = t, o[1] = a, o[2] = s, o[3] = s, o[4] = r, o[5] = i 1484 } 1485 1486 function an(t, e, i, n, o, a, r, s, l) { 1487 var u, h = .005, 1488 c = 1 / 0; 1489 yb[0] = r, yb[1] = s; 1490 for (var d = 0; d < 1; d += .05) xb[0] = Qi(t, i, o, d), xb[1] = Qi(e, n, a, d), (m = M_(yb, xb)) < c && (u = d, c = m); 1491 c = 1 / 0; 1492 for (var f = 0; f < 32 && !(h < gb); f++) { 1493 var p = u - h, 1494 g = u + h; 1495 xb[0] = Qi(t, i, o, p), xb[1] = Qi(e, n, a, p); 1496 var m = M_(xb, yb); 1497 if (p >= 0 && m < c) u = p, c = m; 1498 else { 1499 _b[0] = Qi(t, i, o, g), _b[1] = Qi(e, n, a, g); 1500 var v = M_(_b, yb); 1501 g <= 1 && v < c ? (u = g, c = v) : h *= .5 1502 } 1503 } 1504 return l && (l[0] = Qi(t, i, o, u), l[1] = Qi(e, n, a, u)), fb(c) 1505 } 1506 1507 function rn(t, e, i) { 1508 if (0 !== t.length) { 1509 var n, o = t[0], 1510 a = o[0], 1511 r = o[0], 1512 s = o[1], 1513 l = o[1]; 1514 for (n = 1; n < t.length; n++) o = t[n], a = wb(a, o[0]), r = bb(r, o[0]), s = wb(s, o[1]), l = bb(l, o[1]); 1515 e[0] = a, e[1] = s, i[0] = r, i[1] = l 1516 } 1517 } 1518 1519 function sn(t, e, i, n, o, a) { o[0] = wb(t, i), o[1] = wb(e, n), a[0] = bb(t, i), a[1] = bb(e, n) } 1520 1521 function ln(t, e, i, n, o, a, r, s, l, u) { 1522 var h, c = Ki, 1523 d = ji, 1524 f = c(t, i, o, r, Cb); 1525 for (l[0] = 1 / 0, l[1] = 1 / 0, u[0] = -1 / 0, u[1] = -1 / 0, h = 0; h < f; h++) { 1526 var p = d(t, i, o, r, Cb[h]); 1527 l[0] = wb(p, l[0]), u[0] = bb(p, u[0]) 1528 } 1529 for (f = c(e, n, a, s, Lb), h = 0; h < f; h++) { 1530 var g = d(e, n, a, s, Lb[h]); 1531 l[1] = wb(g, l[1]), u[1] = bb(g, u[1]) 1532 } 1533 l[0] = wb(t, l[0]), u[0] = bb(t, u[0]), l[0] = wb(r, l[0]), u[0] = bb(r, u[0]), l[1] = wb(e, l[1]), u[1] = bb(e, u[1]), l[1] = wb(s, l[1]), u[1] = bb(s, u[1]) 1534 } 1535 1536 function un(t, e, i, n, o, a, r, s) { 1537 var l = nn, 1538 u = Qi, 1539 h = bb(wb(l(t, i, o), 1), 0), 1540 c = bb(wb(l(e, n, a), 1), 0), 1541 d = u(t, i, o, h), 1542 f = u(e, n, a, c); 1543 r[0] = wb(t, o, d), r[1] = wb(e, a, f), s[0] = bb(t, o, d), s[1] = bb(e, a, f) 1544 } 1545 1546 function hn(t, e, i, n, o, a, r, s, l) { 1547 var u = tt, 1548 h = et, 1549 c = Math.abs(o - a); 1550 if (c % Ib < 1e-4 && c > 1e-4) return s[0] = t - i, s[1] = e - n, l[0] = t + i, void(l[1] = e + n); 1551 if (Tb[0] = Mb(o) * i + t, Tb[1] = Sb(o) * n + e, Db[0] = Mb(a) * i + t, Db[1] = Sb(a) * n + e, u(s, Tb, Db), h(l, Tb, Db), (o %= Ib) < 0 && (o += Ib), (a %= Ib) < 0 && (a += Ib), o > a && !r ? a += Ib : o < a && r && (o += Ib), r) { 1552 var d = a; 1553 a = o, o = d 1554 } 1555 for (var f = 0; f < a; f += Math.PI / 2) f > o && (Ab[0] = Mb(f) * i + t, Ab[1] = Sb(f) * n + e, u(s, Ab, s), h(l, Ab, l)) 1556 } 1557 1558 function cn(t, e, i, n, o, a, r) { 1559 if (0 === o) return !1; 1560 var s = o, 1561 l = 0, 1562 u = t; 1563 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; 1564 if (t === i) return Math.abs(a - t) <= s / 2; 1565 var h = (l = (e - n) / (t - i)) * a - r + (u = (t * n - i * e) / (t - i)); 1566 return h * h / (l * l + 1) <= s / 2 * s / 2 1567 } 1568 1569 function dn(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) && Ji(t, e, i, n, o, a, r, s, u, h, null) <= c / 2 } 1570 1571 function fn(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) && an(t, e, i, n, o, a, s, l, null) <= u / 2 } 1572 1573 function pn(t) { return (t %= Zb) < 0 && (t += Zb), t } 1574 1575 function gn(t, e, i, n, o, a, r, s, l) { 1576 if (0 === r) return !1; 1577 var u = r; 1578 s -= t, l -= e; 1579 var h = Math.sqrt(s * s + l * l); 1580 if (h - u > i || h + u < i) return !1; 1581 if (Math.abs(n - o) % Ub < 1e-4) return !0; 1582 if (a) { 1583 var c = n; 1584 n = pn(o), o = pn(c) 1585 } else n = pn(n), o = pn(o); 1586 n > o && (o += Ub); 1587 var d = Math.atan2(l, s); 1588 return d < 0 && (d += Ub), d >= n && d <= o || d + Ub >
1588= n && d + Ub <= o 1589 } 1590 1591 function mn(t, e, i, n, o, a) { 1592 if (a > e && a > n || a < e && a < n) return 0; 1593 if (n === e) return 0; 1594 var r = n < e ? 1 : -1, 1595 s = (a - e) / (n - e); 1596 1 !== s && 0 !== s || (r = n < e ? .5 : -.5); 1597 var l = s * (i - t) + t; 1598 return l === o ? 1 / 0 : l > o ? r : 0 1599 } 1600 1601 function vn(t, e) { return Math.abs(t - e) < Yb } 1602 1603 function yn() { 1604 var t = Kb[0]; 1605 Kb[0] = Kb[1], Kb[1] = t 1606 } 1607 1608 function xn(t, e, i, n, o, a, r, s, l, u) { 1609 if (u > e && u > n && u > a && u > s || u < e && u < n && u < a && u < s) return 0; 1610 var h = qi(e, n, a, s, u, qb); 1611 if (0 === h) return 0; 1612 for (var c, d, f = 0, p = -1, g = 0; g < h; g++) { 1613 var m = qb[g], 1614 v = 0 === m || 1 === m ? .5 : 1; 1615 ji(t, i, o, r, m) < l || (p < 0 && (p = Ki(e, n, a, s, Kb), Kb[1] < Kb[0] && p > 1 && yn(), c = ji(e, n, a, s, Kb[0]), p > 1 && (d = ji(e, n, a, s, Kb[1]))), 2 == p ? m < Kb[0] ? f += c < e ? v : -v : m < Kb[1] ? f += d < c ? v : -v : f += s < d ? v : -v : m < Kb[0] ? f += c < e ? v : -v : f += s < c ? v : -v) 1616 } 1617 return f 1618 } 1619 1620 function _n(t, e, i, n, o, a, r, s) { 1621 if (s > e && s > n && s > a || s < e && s < n && s < a) return 0; 1622 var l = en(e, n, a, s, qb); 1623 if (0 === l) return 0; 1624 var u = nn(e, n, a); 1625 if (u >= 0 && u <= 1) { 1626 for (var h = 0, c = Qi(e, n, a, u), d = 0; d < l; d++) { 1627 f = 0 === qb[d] || 1 === qb[d] ? .5 : 1; 1628 (p = Qi(t, i, o, qb[d])) < r || (qb[d] < u ? h += c < e ? f : -f : h += a < c ? f : -f) 1629 } 1630 return h 1631 } 1632 var f = 0 === qb[0] || 1 === qb[0] ? .5 : 1, 1633 p = Qi(t, i, o, qb[0]); 1634 return p < r ? 0 : a < e ? f : -f 1635 } 1636 1637 function wn(t, e, i, n, o, a, r, s) { 1638 if ((s -= e) > i || s < -i) return 0; 1639 u = Math.sqrt(i * i - s * s); 1640 qb[0] = -u, qb[1] = u; 1641 var l = Math.abs(n - o); 1642 if (l < 1e-4) return 0; 1643 if (l % jb < 1e-4) { 1644 n = 0, o = jb; 1645 p = a ? 1 : -1; 1646 return r >= qb[0] + t && r <= qb[1] + t ? p : 0 1647 } 1648 if (a) { 1649 var u = n; 1650 n = pn(o), o = pn(u) 1651 } else n = pn(n), o = pn(o); 1652 n > o && (o += jb); 1653 for (var h = 0, c = 0; c < 2; c++) { 1654 var d = qb[c]; 1655 if (d + t > r) { 1656 var f = Math.atan2(s, d), 1657 p = a ? 1 : -1; 1658 f < 0 && (f = jb + f), (f >= n && f <= o || f + jb >= n && f + jb <= o) && (f > Math.PI / 2 && f < 1.5 * Math.PI && (p = -p), h += p) 1659 } 1660 } 1661 return h 1662 } 1663 1664 function bn(t, e, i, n, o) { 1665 for (var a = 0, r = 0, s = 0, l = 0, u = 0, h = 0; h < t.length;) { 1666 var c = t[h++]; 1667 switch (c === Xb.M && h > 1 && (i || (a += mn(r, s, l, u, n, o))), 1 == h && (l = r = t[h], u = s = t[h + 1]), c) { 1668 case Xb.M: 1669 r = l = t[h++], s = u = t[h++]; 1670 break; 1671 case Xb.L: 1672 if (i) { if (cn(r, s, t[h], t[h + 1], e, n, o)) return !0 } else a += mn(r, s, t[h], t[h + 1], n, o) || 0; 1673 r = t[h++], s = t[h++]; 1674 break; 1675 case Xb.C: 1676 if (i) { if (dn(r, s, t[h++], t[h++], t[h++], t[h++], t[h], t[h + 1], e, n, o)) return !0 } else a += xn(r, s, t[h++], t[h++], t[h++], t[h++], t[h], t[h + 1], n, o) || 0; 1677 r = t[h++], s = t[h++]; 1678 break; 1679 case Xb.Q: 1680 if (i) { if (fn(r, s, t[h++], t[h++], t[h], t[h + 1], e, n, o)) return !0 } else a += _n(r, s, t[h++], t[h++], t[h], t[h + 1], n, o) || 0; 1681 r = t[h++], s = t[h++]; 1682 break; 1683 case Xb.A: 1684 var d = t[h++], 1685 f = t[h++], 1686 p = t[h++], 1687 g = t[h++], 1688 m = t[h++], 1689 v = t[h++], 1690 y = (t[h++], 1 - t[h++]), 1691 x = Math.cos(m) * p + d, 1692 _ = Math.sin(m) * g + f; 1693 h > 1 ? a += mn(r, s, x, _, n, o) : (l = x, u = _); 1694 var w = (n - d) * g / p + d; 1695 if (i) { if (gn(d, f, g, m, m + v, y, e, w, o)) return !0 } else a += wn(d, f, g, m, m + v, y, w, o);
1696 r = Math.cos(m + v) * p + d, s = Math.sin(m + v) * g + f; 1697 break; 1698 case Xb.R: 1699 l = r = t[h++], u = s = t[h++]; 1700 var x = l + t[h++], 1701 _ = u + t[h++]; 1702 if (i) { if (cn(l, u, x, u, e, n, o) || cn(x, u, x, _, e, n, o) || cn(x, _, l, _, e, n, o) || cn(l, _, l, u, e, n, o)) return !0 } else a += mn(x, u, x, _, n, o), a += mn(l, _, l, u, n, o); 1703 break; 1704 case Xb.Z: 1705 if (i) { if (cn(r, s, l, u, e, n, o)) return !0 } else a += mn(r, s, l, u, n, o); 1706 r = l, s = u 1707 } 1708 } 1709 return i || vn(s, u) || (a += mn(r, s, l, u, n, o) || 0), 0 !== a 1710 } 1711 1712 function Sn(t, e, i) { return bn(t, 0, !1, e, i) } 1713 1714 function Mn(t, e, i, n) { return bn(t, e, !0, i, n) } 1715 1716 function In(t) { $e.call(this, t), this.path = null } 1717 1718 function Tn(t, e, i, n, o, a, r, s, l, u, h) { 1719 var c = l * (uS / 180), 1720 d = lS(c) * (t - i) / 2 + sS(c) * (e - n) / 2, 1721 f = -1 * sS(c) * (t - i) / 2 + lS(c) * (e - n) / 2, 1722 p = d * d / (r * r) + f * f / (s * s); 1723 p > 1 && (r *= rS(p), s *= rS(p)); 1724 var g = (o === a ? -1 : 1) * rS((r * r * (s * s) - r * r * (f * f) - s * s * (d * d)) / (r * r * (f * f) + s * s * (d * d))) || 0, 1725 m = g * r * f / s, 1726 v = g * -s * d / r, 1727 y = (t + i) / 2 + lS(c) * m - sS(c) * v, 1728 x = (e + n) / 2 + sS(c) * m + lS(c) * v, 1729 _ = dS([1, 0], [(d - m) / r, (f - v) / s]), 1730 w = [(d - m) / r, (f - v) / s], 1731 b = [(-1 * d - m) / r, (-1 * f - v) / s], 1732 S = dS(w, b); 1733 cS(w, b) <= -1 && (S = uS), cS(w, b) >= 1 && (S = 0), 0 === a && S > 0 && (S -= 2 * uS), 1 === a && S < 0 && (S += 2 * uS), h.addData(u, y, x, r, s, _, S, c, a) 1734 } 1735 1736 function Dn(t) { 1737 if (!t) return []; 1738 var e, i = t.replace(/-/g, " -").replace(/ /g, " ").replace(/ /g, ",").replace(/,,/g, ","); 1739 for (e = 0; e < aS.length; e++) i = i.replace(new RegExp(aS[e], "g"), "|" + aS[e]); 1740 var n, o = i.split("|"), 1741 a = 0, 1742 r = 0, 1743 s = new Hb, 1744 l = Hb.CMD; 1745 for (e = 1; e < o.length; e++) { 1746 var u, h = o[e], 1747 c = h.charAt(0), 1748 d = 0, 1749 f = h.slice(1).replace(/e,-/g, "e-").split(","); 1750 f.length > 0 && "" === f[0] && f.shift(); 1751 for (var p = 0; p < f.length; p++) f[p] = parseFloat(f[p]); 1752 for (; d < f.length && !isNaN(f[d]) && !isNaN(f[0]);) { 1753 var g, m, v, y, x, _, w, b = a, 1754 S = r; 1755 switch (c) { 1756 case "l": 1757 a += f[d++], r += f[d++], u = l.L, s.addData(u, a, r); 1758 break; 1759 case "L": 1760 a = f[d++], r = f[d++], u = l.L, s.addData(u, a, r); 1761 break; 1762 case "m": 1763 a += f[d++], r += f[d++], u = l.M, s.addData(u, a, r), c = "l"; 1764 break; 1765 case "M": 1766 a = f[d++], r = f[d++], u = l.M, s.addData(u, a, r), c = "L"; 1767 break; 1768 case "h": 1769 a += f[d++], u = l.L, s.addData(u, a, r); 1770 break; 1771 case "H": 1772 a = f[d++], u = l.L, s.addData(u, a, r); 1773 break; 1774 case "v": 1775 r += f[d++], u = l.L, s.addData(u, a, r); 1776 break; 1777 case "V": 1778 r = f[d++], u = l.L, s.addData(u, a, r); 1779 break; 1780 case "C": 1781 u = l.C, s.addData(u, f[d++], f[d++], f[d++], f[d++], f[d++], f[d++]), a = f[d - 2], r = f[d - 1]; 1782 break; 1783 case "c": 1784 u = l.C, s.addData(u, f[d++] + a, f[d++] + r, f[d++] + a, f[d++] + r, f[d++] + a, f[d++] + r), a += f[d - 2], r += f[d - 1]; 1785 break; 1786 case "S": 1787 g = a, m = r; 1788 var M = s.len(), 1789 I = s.data; 1790 n === l.C && (g += a - I[M - 4], m += r - I[M - 3]), u = l.C, b = f[d++], S = f[d++], a = f[d++], r = f[d++], s.addData(u, g, m, b, S, a, r); 1791 break; 1792 case "s": 1793 g = a, m = r; 1794 var M = s.len(), 1795 I = s.data; 1796 n === l.C && (g += a - I[M - 4], m += r - I[M - 3]), u = l.C, b = a + f[d++], S = r + f[d++], a += f[d++], r += f[d++], s.addData(u, g, m, b, S, a, r); 1797 break; 1798 case "Q": 1799 b = f[d++], S = f[d++], a = f[d++], r = f[d++], u = l.Q, s.addData(u, b, S, a, r); 1800 break; 1801 case "q": 1802 b = f[d++] + a, S = f[d++] + r, a += f[d++], r += f[d++], u = l.Q, s.addData(u, b, S, a, r); 1803 break; 1804 case "T": 1805 g = a, m = r; 1806 var M = s.len(), 1807 I = s.data; 1808 n === l.Q && (g += a - I[M - 4], m += r - I[M - 3]), a = f[d++], r = f[d++], u = l.Q, s.addData(u, g, m, a, r); 1809 break; 1810 case "t": 1811 g = a, m = r; 1812 var M = s.len(), 1813 I = s.data; 1814 n === l.Q && (g += a - I[M - 4], m += r - I[M - 3]), a += f[d++], r += f[d++], u = l.Q, s.addData(u, g, m, a, r); 1815 break; 1816 case "A": 1817 v = f[d++], y = f[d++], x = f[d++], _ = f[d++], w = f[d++], Tn(b = a, S = r, a = f[d++], r = f[d++], _, w, v, y, x, u = l.A, s); 1818 break; 1819 case "a": 1820 v = f[d++], y = f[d++], x = f[d++], _ = f[d++], w = f[d++], Tn(b = a, S = r, a += f[d++], r += f[d++], _, w, v, y, x, u = l.A, s) 1821 } 1822 } 1823 "z" !== c && "Z" !== c || (u = l.Z, s.addData(u)), n = u 1824 } 1825 return s.toStatic(), s 1826 } 1827 1828 function An(t, e) { 1829 var i = Dn(t); 1830 return e = e || {}, e.buildPath = function(t) { 1831 if (t.setData) t.setData(i.data), (e = t.getContext()) && t.rebuildPath(e); 1832 else { 1833 var e = t; 1834 i.rebuildPath(e) 1835 } 1836 }, e.applyTransform = function(t) { oS(i, t), this.dirty(!0) }, e 1837 } 1838 1839 function Cn(t, e) { return new In(An(t, e)) } 1840 1841 function Ln(t, e) { return In.extend(An(t, e)) } 1842 1843 function kn(t, e, i, n, o, a, r) { 1844 var s = .5 * (i - t), 1845 l = .5 * (n - e); 1846 return (2 * (e - i) + s + l) * r + (-3 * (e - i) - 2 * s - l) * a + s * o + e 1847 } 1848 1849 function Pn(t, e, i) { 1850 var n = e.points, 1851 o = e.smooth; 1852 if (n && n.length >= 2) { 1853 if (o && "spline" !== o) { 1854 var a = _S(n, o, i, e.smoothConstraint); 1855 t.moveTo(n[0][0], n[0][1]); 1856 for (var r = n.length, s = 0; s < (i ? r : r - 1); s++) { 1857 var l = a[2 * s], 1858 u = a[2 * s + 1], 1859 h = n[(s + 1) % r]; 1860 t.bezierCurveTo(l[0], l[1], u[0], u[1], h[0], h[1]) 1861 } 1862 } else { "spline" === o && (n = xS(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]) } 1863 i && t.closePath() 1864 } 1865 } 1866 1867 function Nn(t, e, i) { 1868 var n = t.cpx2, 1869 o = t.cpy2; 1870 return null === n || null === o ? [(i ? Yi : ji)(t.x1, t.cpx1, t.cpx2, t.x2, e), (i ? Yi : ji)(t.y1, t.cpy1, t.cpy2, t.y2, e)] : [(i ? tn : Qi)(t.x1, t.cpx1, t.x2, e), (i ? tn : Qi)(t.y1, t.cpy1, t.y2, e)] 1871 } 1872 1873 function On(t) { $e.call(this, t), this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.notClear = !0 } 1874 1875 function En(t) { return In.extend(t) } 1876 1877 function Rn(t, e, i, n) { 1878 var o = Cn(t, e),
1879 a = o.getBoundingRect(); 1880 return i && ("center" === n && (i = Bn(i, a)), Vn(o, i)), o 1881 } 1882 1883 function zn(t, e, i) { 1884 var n = new Je({ 1885 style: { image: t, x: e.x, y: e.y, width: e.width, height: e.height }, 1886 onload: function(t) { 1887 if ("center" === i) { 1888 var o = { width: t.width, height: t.height }; 1889 n.setStyle(Bn(e, o)) 1890 } 1891 } 1892 }); 1893 return n 1894 } 1895 1896 function Bn(t, e) { 1897 var i, n = e.width / e.height, 1898 o = t.height * n; 1899 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 } 1900 } 1901 1902 function Vn(t, e) { 1903 if (t.applyTransform) { 1904 var i = t.getBoundingRect().calculateTransform(e); 1905 t.applyTransform(i) 1906 } 1907 } 1908 1909 function Gn(t) { 1910 var e = t.shape, 1911 i = t.style.lineWidth; 1912 return NS(2 * e.x1) === NS(2 * e.x2) && (e.x1 = e.x2 = Fn(e.x1, i, !0)), NS(2 * e.y1) === NS(2 * e.y2) && (e.y1 = e.y2 = Fn(e.y1, i, !0)), t 1913 } 1914 1915 function Wn(t) { 1916 var e = t.shape, 1917 i = t.style.lineWidth, 1918 n = e.x, 1919 o = e.y, 1920 a = e.width, 1921 r = e.height; 1922 return e.x = Fn(e.x, i, !0), e.y = Fn(e.y, i, !0), e.width = Math.max(Fn(n + a, i, !1) - e.x, 0 === a ? 0 : 1), e.height = Math.max(Fn(o + r, i, !1) - e.y, 0 === r ? 0 : 1), t 1923 } 1924 1925 function Fn(t, e, i) { var n = NS(2 * t); return (n + NS(e)) % 2 == 0 ? n / 2 : (n + (i ? 1 : -1)) / 2 } 1926 1927 function Hn(t) { return null != t && "none" != t } 1928 1929 function Zn(t) { return "string" == typeof t ? kt(t, -.1) : t } 1930 1931 function Un(t) { 1932 if (t.__hoverStlDirty) { 1933 var e = t.style.stroke, 1934 i = t.style.fill, 1935 n = t.__hoverStl; 1936 n.fill = n.fill || (Hn(i) ? Zn(i) : null), n.stroke = n.stroke || (Hn(e) ? Zn(e) : null); 1937 var o = {}; 1938 for (var a in n) null != n[a] && (o[a] = t.style[a]); 1939 t.__normalStl = o, t.__hoverStlDirty = !1 1940 } 1941 } 1942 1943 function Xn(t) { 1944 if (!t.__isHover) { 1945 if (Un(t), t.useHoverLayer) t.__zr && t.__zr.addHover(t, t.__hoverStl); 1946 else { 1947 var e = t.style, 1948 i = e.insideRollbackOpt; 1949 i && uo(e), e.extendFrom(t.__hoverStl), i && (lo(e, e.insideOriginalTextPosition, i), null == e.textFill && (e.textFill = i.autoColor)), t.dirty(!1), t.z2 += 1 1950 } 1951 t.__isHover = !0 1952 } 1953 } 1954 1955 function jn(t) { 1956 if (t.__isHover) { 1957 var e = t.__normalStl; 1958 t.useHoverLayer ? t.__zr && t.__zr.removeHover(t) : (e && t.setStyle(e), t.z2 -= 1), t.__isHover = !1 1959 } 1960 } 1961 1962 function Yn(t) { "group" === t.type ? t.traverse(function(t) { "group" !== t.type && Xn(t) }) : Xn(t) } 1963 1964 function qn(t) { "group" === t.type ? t.traverse(function(t) { "group" !== t.type && jn(t) }) : jn(t) } 1965 1966 function Kn(t, e) { t.__hoverStl = t.hoverStyle || e || {}, t.__hoverStlDirty = !0, t.__isHover && Un(t) } 1967 1968 function $n(t) { this.__hoverSilentOnTouch && t.zrByTouch || !this.__isEmphasis && Yn(this) } 1969 1970 function Jn(t) { this.__hoverSilentOnTouch && t.zrByTouch || !this.__isEmphasis && qn(this) } 1971 1972 function Qn() { this.__isEmphasis = !0, Yn(this) } 1973 1974 function to() { this.__isEmphasis = !1, qn(this) } 1975 1976 function eo(t, e, i) { t.__hoverSilentOnTouch = i && i.hoverSilentOnTouch, "group" === t.type ? t.traverse(function(t) { "group" !== t.type && Kn(t, e) }) : Kn(t, e), t.on("mouseover", $n).on("mouseout", Jn), t.on("emphasis", Qn).on("normal", to) } 1977 1978 function io(t, e, i, n, o, a, r) { 1979 var s, l = (o = o || RS).labelFetcher, 1980 u = o.labelDataIndex, 1981 h = o.labelDimIndex, 1982 c = i.getShallow("show"), 1983 d = n.getShallow("show"); 1984 (c || d) && (l && (s = l.getFormattedLabel(u, "normal", null, h)), null == s && (s = x(o.defaultText) ? o.defaultText(u, o) : o.defaultText)); 1985 var f = c ? s : null, 1986 p = d ? D(l ? l.getFormattedLabel(u, "emphasis", null, h) : null, s) : null; 1987 null == f && null == p || (no(t, i, a, o), no(e, n, r, o, !0)), t.text = f, e.text = p 1988 } 1989 1990 function no(t, e, i, n, o) { return oo(t, e, n, o), i && a(t, i), t.host && t.host.dirty && t.host.dirty(!1), t } 1991 1992 function oo(t, e, i, n) {
1993 if ((i = i || RS).isRectText) { 1994 var o = e.getShallow("position") || (n ? null : "inside"); 1995 "outside" === o && (o = "top"), t.textPosition = o, t.textOffset = e.getShallow("offset"); 1996 var a = e.getShallow("rotate"); 1997 null != a && (a *= Math.PI / 180), t.textRotation = a, t.textDistance = D(e.getShallow("distance"), n ? null : 5) 1998 } 1999 var r, s = e.ecModel, 2000 l = s && s.option.textStyle, 2001 u = ao(e); 2002 if (u) { 2003 r = {}; 2004 for (var h in u) 2005 if (u.hasOwnProperty(h)) { 2006 var c = e.getModel(["rich", h]); 2007 ro(r[h] = {}, c, l, i, n) 2008 } 2009 } 2010 return t.rich = r, ro(t, e, l, i, n, !0), i.forceRich && !i.textStyle && (i.textStyle = {}), t 2011 } 2012 2013 function ao(t) { 2014 for (var e; t && t !== t.ecModel;) { 2015 var i = (t.option || RS).rich; 2016 if (i) { e = e || {}; for (var n in i) i.hasOwnProperty(n) && (e[n] = 1) } 2017 t = t.parentModel 2018 } 2019 return e 2020 } 2021 2022 function ro(t, e, i, n, o, a) { 2023 if (i = !o && i || RS, t.textFill = so(e.getShallow("color"), n) || i.color, t.textStroke = so(e.getShallow("textBorderColor"), n) || i.textBorderColor, t.textStrokeWidth = D(e.getShallow("textBorderWidth"), i.textBorderWidth), !o) { 2024 if (a) { 2025 var r = t.textPosition; 2026 t.insideRollback = lo(t, r, n), t.insideOriginalTextPosition = r, t.insideRollbackOpt = n 2027 } 2028 null == t.textFill && (t.textFill = n.autoColor) 2029 } 2030 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 = so(e.getShallow("backgroundColor"), n), t.textPadding = e.getShallow("padding"), t.textBorderColor = so(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 2031 } 2032 2033 function so(t, e) { return "auto" !== t ? t : e && e.autoColor ? e.autoColor : null } 2034 2035 function lo(t, e, i) { var n, o = i.useInsideStyle; return null == t.textFill && !1 !== o && (!0 === o || i.isRectText && e && "string" == typeof e && e.indexOf("inside") >= 0) && (n = { textFill: null, textStroke: t.textStroke, textStrokeWidth: t.textStrokeWidth }, t.textFill = "#fff", null == t.textStroke && (t.textStroke = i.autoColor, null == t.textStrokeWidth && (t.textStrokeWidth = 2))), n } 2036 2037 function uo(t) { 2038 var e = t.insideRollback; 2039 e && (t.textFill = e.textFill, t.textStroke = e.textStroke, t.textStrokeWidth = e.textStrokeWidth) 2040 } 2041 2042 function ho(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(" ")) } 2043 2044 function co(t, e, i, n, o, a) { 2045 if ("function" == typeof o && (a = o, o = null), n && n.isAnimationEnabled()) { 2046 var r = t ? "Update" : "", 2047 s = n.getShallow("animationDuration" + r), 2048 l = n.getShallow("animationEasing" + r),
2049 u = n.getShallow("animationDelay" + r); 2050 "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()) 2051 } else e.stopAnimation(), e.attr(i), a && a() 2052 } 2053 2054 function fo(t, e, i, n, o) { co(!0, t, e, i, n, o) } 2055 2056 function po(t, e, i, n, o) { co(!1, t, e, i, n, o) } 2057 2058 function go(t, e) { for (var i = lt([]); t && t !== e;) ht(i, t.getLocalTransform(), i), t = t.parent; return i } 2059 2060 function mo(t, e, i) { return e && !c(e) && (e = E_.getLocalTransform(e)), i && (e = pt([], e)), Q([], t, e) } 2061 2062 function vo(t, e, i) { 2063 var n = 0 === e[4] || 0 === e[5] || 0 === e[0] ? 1 : Math.abs(2 * e[4] / e[0]), 2064 o = 0 === e[4] || 0 === e[5] || 0 === e[2] ? 1 : Math.abs(2 * e[4] / e[2]), 2065 a = ["left" === t ? -n : "right" === t ? n : 0, "top" === t ? -o : "bottom" === t ? o : 0]; 2066 return a = mo(a, e, i), Math.abs(a[0]) > Math.abs(a[1]) ? a[0] > 0 ? "right" : "left" : a[1] > 0 ? "bottom" : "top" 2067 } 2068 2069 function yo(t, e, i, n) { 2070 function o(t) { var e = { position: W(t.position), rotation: t.rotation }; return t.shape && (e.shape = a({}, t.shape)), e } 2071 if (t && e) { 2072 var r = function(t) { var e = {}; return t.traverse(function(t) {!t.isGroup && t.anid && (e[t.anid] = t) }), e }(t); 2073 e.traverse(function(t) { 2074 if (!t.isGroup && t.anid) { 2075 var e = r[t.anid]; 2076 if (e) { 2077 var n = o(t); 2078 t.attr(o(e)), fo(t, n, i, t.dataIndex) 2079 } 2080 } 2081 }) 2082 } 2083 } 2084 2085 function xo(t, e) { 2086 return f(t, function(t) { 2087 var i = t[0]; 2088 i = OS(i, e.x), i = ES(i, e.x + e.width); 2089 var n = t[1]; 2090 return n = OS(n, e.y), n = ES(n, e.y + e.height), [i, n] 2091 }) 2092 } 2093 2094 function _o(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 Je(e)) : Rn(t.replace("path://", ""), e, i, "center") } 2095 2096 function wo(t, e, i) { this.parentModel = e, this.ecModel = i, this.option = t } 2097 2098 function bo(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 } 2099 2100 function So(t, e) { var i = ZS(t).getParent; return i ? i.call(t, e) : t.parentModel } 2101 2102 function Mo(t) { return [t || "", US++, Math.random().toFixed(5)].join("_") } 2103 2104 function Io(t) { return t.replace(/^\s+/, "").replace(/\s+$/, "") } 2105 2106 function To(t, e, i, n) { 2107 var o = e[1] - e[0], 2108 a = i[1] - i[0]; 2109 if (0 === o) return 0 === a ? i[0] : (i[0] + i[1]) / 2; 2110 if (n) 2111 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] } 2112 else { if (t === e[0]) return i[0]; if (t === e[1]) return i[1] } 2113 return (t - e[0]) / o * a + i[0] 2114 } 2115 2116 function Do(t, e) { 2117 switch (t) { 2118 case "center": 2119 case "middle": 2120 t = "50%"; 2121 break; 2122 case "left": 2123 case "top": 2124 t = "0%"; 2125 break; 2126 case "right": 2127 case "bottom": 2128 t = "100%" 2129 } 2130 return "string" == typeof t ? Io(t).match(/%$/) ? parseFloat(t) / 100 * e : parseFloat(t) : null == t ? NaN : +t 2131 } 2132 2133 function Ao(t, e, i) { return null == e && (e = 10), e = Math.min(Math.max(0, e), 20), t = (+t).toFixed(e), i ? t : +t } 2134 2135 function Co(t) { return t.sort(function(t, e) { return t - e }), t } 2136 2137 function Lo(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 } 2138 2139 function ko(t) { 2140 var e = t.toString(), 2141 i = e.indexOf("e"); 2142 if (i > 0) { var n = +e.slice(i + 1); return n < 0 ? -n : 0 } 2143 var o = e.indexOf("."); 2144 return o < 0 ? 0 : e.length - 1 - o 2145 } 2146 2147 function Po(t, e) { 2148 var i = Math.log, 2149 n = Math.LN10, 2150 o = Math.floor(i(t[1] - t[0]) / n), 2151 a = Math.round(i(Math.abs(e[1] - e[0])) / n), 2152 r = Math.min(Math.max(-o + a, 0), 20); 2153 return isFinite(r) ? r : 20 2154 } 2155 2156 function No(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 } 2157 2158 function Oo(t) { var e = 2 * Math.PI; return (t % e + e) % e } 2159 2160 function Eo(t) { return t > -XS && t < XS } 2161 2162 function Ro(t) { if (t instanceof Date) return t; if ("string" == typeof t) { var e = YS.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)) } 2163 2164 function zo(t) { return Math.pow(10, Bo(t)) } 2165 2166 function Bo(t) { return Math.floor(Math.log(t) / Math.LN10) } 2167 2168 function Vo(t, e) { 2169 var i, n = Bo(t), 2170 o = Math.pow(10, n), 2171 a = t / o; 2172 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 2173 } 2174 2175 function Go(t) { 2176 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)) } 2177 t.sort(function(t, i) { return e(t, i, 0) ? -1 : 1 });
2178 for (var i = -1 / 0, n = 1, o = 0; o < t.length;) { 2179 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]; 2180 a[0] === a[1] && r[0] * r[1] != 1 ? t.splice(o, 1) : o++ 2181 } 2182 return t 2183 } 2184 2185 function Wo(t) { return t - parseFloat(t) >= 0 } 2186 2187 function Fo(t) { return isNaN(t) ? "-" : (t = (t + "").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (t.length > 1 ? "." + t[1] : "") } 2188 2189 function Ho(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 } 2190 2191 function Zo(t) { return null == t ? "" : (t + "").replace($S, function(t, e) { return JS[e] }) } 2192 2193 function Uo(t, e, i) { 2194 y(e) || (e = [e]); 2195 var n = e.length; 2196 if (!n) return ""; 2197 for (var o = e[0].$vars || [], a = 0; a < o.length; a++) { 2198 var r = QS[a]; 2199 t = t.replace(tM(r), tM(r, 0)) 2200 } 2201 for (var s = 0; s < n; s++) 2202 for (var l = 0; l < o.length; l++) { 2203 var u = e[s][o[l]]; 2204 t = t.replace(tM(QS[l], s), i ? Zo(u) : u) 2205 } 2206 return t 2207 } 2208 2209 function Xo(t, e, i) { return d(e, function(e, n) { t = t.replace("{" + n + "}", i ? Zo(e) : e) }), t } 2210 2211 function jo(t, e) { 2212 var i = (t = _(t) ? { color: t, extraCssText: e } : t || {}).color, 2213 n = t.type, 2214 e = t.extraCssText; 2215 return i ? "subItem" === n ? '<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:' + Zo(i) + ";" + (e || "") + '"></span>' : '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:' + Zo(i) + ";" + (e || "") + '"></span>' : "" 2216 } 2217 2218 function Yo(t, e) { return t += "", "0000".substr(0, e - t.length) + t } 2219 2220 function qo(t, e, i) { 2221 "week" !== t && "month" !== t && "quarter" !== t && "half-year" !== t && "year" !== t || (t = "MM-dd\nyyyy"); 2222 var n = Ro(e), 2223 o = i ? "UTC" : "", 2224 a = n["get" + o + "FullYear"](), 2225 r = n["get" + o + "Month"]() + 1, 2226 s = n["get" + o + "Date"](), 2227 l = n["get" + o + "Hours"](), 2228 u = n["get" + o + "Minutes"](), 2229 h = n["get" + o + "Seconds"](), 2230 c = n["get" + o + "Milliseconds"](); 2231 return t = t.replace("MM", Yo(r, 2)).replace("M", r).replace("yyyy", a).replace("yy", a % 100).replace("dd", Yo(s, 2)).replace("d", s).replace("hh", Yo(l, 2)).replace("h", l).replace("mm", Yo(u, 2)).replace("m", u).replace("ss", Yo(h, 2)).replace("s", h).replace("SSS", Yo(c, 3)) 2232 } 2233 2234 function Ko(t) { return t ? t.charAt(0).toUpperCase() + t.substr(1) : t } 2235 2236 function $o(t, e, i, n, o) { 2237 var a = 0, 2238 r = 0; 2239 null == n && (n = 1 / 0), null == o && (o = 1 / 0); 2240 var s = 0; 2241 e.eachChild(function(l, u) { 2242 var h, c, d = l.position, 2243 f = l.getBoundingRect(), 2244 p = e.childAt(u + 1), 2245 g = p && p.getBoundingRect(); 2246 if ("horizontal" === t) { 2247 var m = f.width + (g ? -g.x + f.x : 0); 2248 (h = a + m) > n || l.newline ? (a = 0, h = m, r += s + i, s = f.height) : s = Math.max(s, f.height) 2249 } else { 2250 var v = f.height + (g ? -g.y + f.y : 0); 2251 (c = r + v) > o || l.newline ? (a += s + i, r = 0, c = v, s = f.width) : s = Math.max(s, f.width) 2252 } 2253 l.newline || (d[0] = a, d[1] = r, "horizontal" === t ? a = h + i : r = c + i) 2254 }) 2255 } 2256 2257 function Jo(t, e, i) { 2258 var n = e.width, 2259 o = e.height, 2260 a = Do(t.x, n), 2261 r = Do(t.y, o), 2262 s = Do(t.x2, n), 2263 l = Do(t.y2, o); 2264 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 = KS(i || 0), { width: Math.max(s - a - i[1] - i[3], 0), height: Math.max(l - r - i[0] - i[2], 0) } 2265 } 2266 2267 function Qo(t, e, i) { 2268 i = KS(i || 0); 2269 var n = e.width, 2270 o = e.height, 2271 a = Do(t.left, n), 2272 r = Do(t.top, o), 2273 s = Do(t.right, n), 2274 l = Do(t.bottom, o), 2275 u = Do(t.width, n), 2276 h = Do(t.height, o), 2277 c = i[2] + i[0], 2278 d = i[1] + i[3], 2279 f = t.aspect; 2280 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 = .8 * n : h = .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) { 2281 case "center": 2282 a = n / 2 - u / 2 - i[3]; 2283 break; 2284 case "right": 2285 a = n - u - d 2286 } 2287 switch (t.top || t.bottom) { 2288 case "middle": 2289 case "center": 2290 r = o / 2 - h / 2 - i[0]; 2291 break; 2292 case "bottom": 2293 r = o - h - c 2294 } 2295 a = a || 0, r = r || 0, isNaN(u) && (u = n - d - a - (s || 0)), isNaN(h) && (h = o - c - r - (l || 0)); 2296 var p = new $t(a + i[3], r + i[0], u, h); 2297 return p.margin = i, p 2298 } 2299 2300 function ta(t, e, i, n, o) { 2301 var a = !o || !o.hv || o.hv[0], 2302 s = !o || !o.hv || o.hv[1], 2303 l = o && o.boundingMode || "all"; 2304 if (a || s) { 2305 var u; 2306 if ("raw" === l) u = "group" === t.type ? new $t(0, 0, +e.width || 0, +e.height || 0
2306) : t.getBoundingRect(); 2307 else if (u = t.getBoundingRect(), t.needLocalTransform()) { 2308 var h = t.getLocalTransform(); 2309 (u = u.clone()).applyTransform(h) 2310 } 2311 e = Qo(r({ width: u.width, height: u.height }, e), i, n); 2312 var c = t.position, 2313 d = a ? e.x - u.x : 0, 2314 f = s ? e.y - u.y : 0; 2315 t.attr("position", "raw" === l ? [d, f] : [c[0] + d, c[1] + f]) 2316 } 2317 } 2318 2319 function ea(t, e) { return null != t[rM[e][0]] || null != t[rM[e][1]] && null != t[rM[e][2]] } 2320 2321 function ia(t, e, i) { 2322 function n(i, n) { 2323 var r = {}, 2324 l = 0, 2325 u = {}, 2326 h = 0; 2327 if (oM(i, function(e) { u[e] = t[e] }), oM(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; 2328 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 } 2329 return u 2330 } 2331 2332 function o(t, e) { return t.hasOwnProperty(e) } 2333 2334 function a(t, e) { return null != t[e] && "auto" !== t[e] } 2335 2336 function r(t, e, i) { oM(t, function(t) { e[t] = i[t] }) }!w(i) && (i = {}); 2337 var s = i.ignoreSize; 2338 !y(s) && (s = [s, s]); 2339 var l = n(rM[0], 0), 2340 u = n(rM[1], 1); 2341 r(rM[0], t, l), r(rM[1], t, u) 2342 } 2343 2344 function na(t) { return oa({}, t) } 2345 2346 function oa(t, e) { return e && t && oM(aM, function(i) { e.hasOwnProperty(i) && (t[i] = e[i]) }), t } 2347 2348 function aa(t, e) { 2349 for (var i = t.length, n = 0; n < i; n++) 2350 if (t[n].length > e) return t[n]; 2351 return t[i - 1] 2352 } 2353 2354 function ra(t) { 2355 var e = t.get("coordinateSystem"), 2356 i = { coordSysName: e, coordSysDims: [], axisMap: R(), categoryAxisMap: R() }, 2357 n = gM[e]; 2358 if (n) return n(t, i, i.axisMap, i.categoryAxisMap), i 2359 } 2360 2361 function sa(t) { return "category" === t.get("type") } 2362 2363 function la(t) { this.fromDataset = t.fromDataset, this.data = t.data || (t.sourceFormat === xM ? {} : []), this.sourceFormat = t.sourceFormat || _M, this.seriesLayoutBy = t.seriesLayoutBy || bM, this.dimensionsDefine = t.dimensionsDefine, this.encodeDefine = t.encodeDefine && R(t.encodeDefine), this.startIndex = t.startIndex || 0, this.dimensionsDetectCount = t.dimensionsDetectCount } 2364 2365 function ua(t) { 2366 var e = t.option.source, 2367 i = _M; 2368 if (S(e)) i = wM; 2369 else if (y(e)) 2370 for (var n = 0, o = e.length; n < o; n++) { var a = e[n]; if (null != a) { if (y(a)) { i = vM; break } if (w(a)) { i = yM; break } } } else if (w(e)) { 2371 for (var r in e) 2372 if (e.hasOwnProperty(r) && c(e[r])) { i = xM; break } 2373 } else if (null != e) throw new Error("Invalid data"); 2374 MM(t).sourceFormat = i 2375 } 2376 2377 function ha(t) { return MM(t).source } 2378 2379 function ca(t) { MM(t).datasetMap = R() } 2380 2381 function da(t) { 2382 var e = t.option, 2383 i = e.data, 2384 n = S(i) ? wM : mM, 2385 o = !1, 2386 a = e.seriesLayoutBy, 2387 r = e.sourceHeader, 2388 s = e.dimensions, 2389 l = ya(t); 2390 if (l) { 2391 var u = l.option; 2392 i = u.source, n = MM(l).sourceFormat, o = !0, a = a || u.seriesLayoutBy, null == r && (r = u.sourceHeader), s = s || u.dimensions 2393 } 2394 var h = fa(i, n, a, r, s), 2395 c = e.encode; 2396 !c && l && (c = va(t, l, i, n, a, h)), MM(t).source = new la({ data: i, fromDataset: o, seriesLayoutBy: a, sourceFormat: n, dimensionsDefine: h.dimensionsDefine, startIndex: h.startIndex, dimensionsDetectCount: h.dimensionsDetectCount, encodeDefine: c }) 2397 } 2398 2399 function fa(t, e, i, n, o) { 2400 if (!t) return { dimensionsDefine: pa(o) }; 2401 var a, r, s; 2402 if (e === vM) "auto" === n || null == n ? ga(function(t) { null != t && "-" !== t && (_(t) ? null == r && (r = 1) : r = 0) }, i, t, 10) : r = n ? 1 : 0, o || 1 !== r || (o = [], ga(function(t, e) { o[e] = null != t ? t : "" }, i, t)), a = o ? o.length : i === SM ? t.length : t[0] ? t[0].length : null;
2403 else if (e === yM) o || (o = ma(t), s = !0); 2404 else if (e === xM) o || (o = [], s = !0, d(t, function(t, e) { o.push(e) })); 2405 else if (e === mM) { 2406 var l = Ii(t[0]); 2407 a = y(l) && l.length || 1 2408 } 2409 var u; 2410 return s && d(o, function(t, e) { "name" === (w(t) ? t.name : t) && (u = e) }), { startIndex: r, dimensionsDefine: pa(o), dimensionsDetectCount: a, potentialNameDimIndex: u } 2411 } 2412 2413 function pa(t) { 2414 if (t) { 2415 var e = R(); 2416 return f(t, function(t, i) { 2417 if (null == (t = a({}, w(t) ? t : { name: t })).name) return t; 2418 t.name += "", null == t.displayName && (t.displayName = t.name); 2419 var n = e.get(t.name); 2420 return n ? t.name += "-" + n.count++ : e.set(t.name, { count: 1 }), t 2421 }) 2422 } 2423 } 2424 2425 function ga(t, e, i, n) { 2426 if (null == n && (n = 1 / 0), e === SM) 2427 for (a = 0; a < i.length && a < n; a++) t(i[a] ? i[a][0] : null, a); 2428 else 2429 for (var o = i[0] || [], a = 0; a < o.length && a < n; a++) t(o[a], a) 2430 } 2431 2432 function ma(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 } } 2433 2434 function va(t, e, i, n, o, a) { 2435 var r = ra(t), 2436 s = {}, 2437 l = [], 2438 u = [], 2439 h = t.subType, 2440 c = R(["pie", "map", "funnel"]), 2441 f = R(["line", "bar", "pictorialBar", "scatter", "effectScatter", "candlestick", "boxplot"]); 2442 if (r && null != f.get(h)) { 2443 var p = t.ecModel, 2444 g = MM(p).datasetMap, 2445 m = e.uid + "_" + o, 2446 v = g.get(m) || g.set(m, { categoryWayDim: 1, valueWayDim: 0 }); 2447 d(r.coordSysDims, function(t) { 2448 if (null == r.firstCategoryDimIndex) { 2449 e = v.valueWayDim++; 2450 s[t] = e, u.push(e) 2451 } else if (r.categoryAxisMap.get(t)) s[t] = 0, l.push(0); 2452 else { 2453 var e = v.categoryWayDim++; 2454 s[t] = e, u.push(e) 2455 } 2456 }) 2457 } else if (null != c.get(h)) { 2458 for (var y, x = 0; x < 5 && null == y; x++) _a(i, n, o, a.dimensionsDefine, a.startIndex, x) || (y = x); 2459 if (null != y) { 2460 s.value = y; 2461 var _ = a.potentialNameDimIndex || Math.max(y - 1, 0); 2462 u.push(_), l.push(_) 2463 } 2464 } 2465 return l.length && (s.itemName = l), u.length && (s.seriesName = u), s 2466 } 2467 2468 function ya(t) { var e = t.option; if (!e.data) return t.ecModel.getComponent("dataset", e.datasetIndex || 0) } 2469 2470 function xa(t, e) { return _a(t.data, t.sourceFormat, t.seriesLayoutBy, t.dimensionsDefine, t.startIndex, e) } 2471 2472 function _a(t, e, i, n, o, a) { 2473 function r(t) { return (null == t || !isFinite(t) || "" === t) && (!(!_(t) || "-" === t) || void 0) } 2474 var s; 2475 if (S(t)) return !1; 2476 var l; 2477 if (n && (l = w(l = n[a]) ? l.name : l), e === vM) 2478 if (i === SM) { 2479 for (var u = t[a], h = 0; h < (u || []).length && h < 5; h++) 2480 if (null != (s = r(u[o + h]))) return s 2481 } else 2482 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 === yM) { 2483 if (!l) return; 2484 for (h = 0; h < t.length && h < 5; h++) 2485 if ((d = t[h]) && null != (s = r(d[l]))) return s 2486 } else if (e === xM) { 2487 if (!l) return; 2488 if (!(u = t[l]) || S(u)) return !1; 2489 for (h = 0; h < u.length && h < 5; h++) 2490 if (null != (s = r(u[h]))) return s 2491 } else if (e === mM) 2492 for (h = 0; h < t.length && h < 5; h++) { 2493 var d = t[h], 2494 f = Ii(d); 2495 if (!y(f)) return !1; 2496 if (null != (s = r(f[a]))) return s 2497 } 2498 return !1 2499 } 2500 2501 function wa(t, e) { 2502 if (e) { 2503 var i = e.seiresIndex, 2504 n = e.seriesId, 2505 o = e.seriesName; 2506 return null != i && t.componentIndex !== i || null != n && t.id !== n || null != o && t.name !== o 2507 } 2508 } 2509 2510 function ba(t, e) { 2511 var o = t.color && !t.colorLayer; 2512 d(e, function(e, a) { "colorLayer" === a && o || hM.hasClass(a) || ("object" == typeof e ? t[a] = t[a] ? n(t[a], e, !1) : i(e) : null == t[a] && (t[a] = e)) }) 2513 } 2514 2515 function Sa(t) { t = t, this.option = {}, this.option[IM] = 1, this._componentsMap = R({ series: [] }), this._seriesIndices, this._seriesIndicesMap, ba(t, this._theme.option), n(t, dM, !1), this.mergeOption(t) } 2516 2517 function Ma(t, e) { y(e) || (e = e ? [e] : []); var i = {}; return d(e, function(e) { i[e] = (t.get(e) || []).slice() }), i } 2518 2519 function Ia(t, e, i) { return e.type ? e.type : i ? i.subType : hM.determineSubType(t, e) } 2520 2521 function Ta(t, e) { t._seriesIndicesMap = R(t._seriesIndices = f(e, function(t) { return t.componentIndex }) || []) } 2522 2523 function Da(t, e) { return e.hasOwnProperty("subType") ? g(t, function(t) { return t.subType === e.subType }) : t } 2524 2525 function Aa(t) { d(DM, function(e) { this[e] = m(t[e], t) }, this) } 2526 2527 function Ca() { this._coordinateSystems = [] } 2528 2529 function La(t) { this._api = t, this._timelineOptions = [], this._mediaList = [], this._mediaDefault, this._currentMediaIndices = [], this._optionBackup, this._newBaseOption } 2530 2531 function ka(t, e, i) { 2532 var n, o, a = [], 2533 r = [], 2534 s = t.timeline;
2535 if (t.baseOption && (o = t.baseOption), (s || t.options) && (o = o || {}, a = (t.options || []).slice()), t.media) { 2536 o = o || {}; 2537 var l = t.media; 2538 CM(l, function(t) { t && t.option && (t.query ? r.push(t) : n || (n = t)) }) 2539 } 2540 return o || (o = t), o.timeline || (o.timeline = s), CM([o].concat(a).concat(f(r, function(t) { return t.option })), function(t) { CM(e, function(e) { e(t, i) }) }), { baseOption: o, timelineOptions: a, mediaDefault: n, mediaList: r } 2541 } 2542 2543 function Pa(t, e, i) { 2544 var n = { width: e, height: i, aspectratio: e / i }, 2545 o = !0; 2546 return d(t, function(t, e) { 2547 var i = e.match(NM); 2548 if (i && i[1] && i[2]) { 2549 var a = i[1], 2550 r = i[2].toLowerCase(); 2551 Na(n[r], t, a) || (o = !1) 2552 } 2553 }), o 2554 } 2555 2556 function Na(t, e, i) { return "min" === i ? t >= e : "max" === i ? t <= e : t === e } 2557 2558 function Oa(t, e) { return t.join(",") === e.join(",") } 2559 2560 function Ea(t, e) { 2561 CM(e = e || {}, function(e, i) { 2562 if (null != e) { 2563 var n = t[i]; 2564 if (hM.hasClass(i)) { 2565 e = Si(e); 2566 var o = Di(n = Si(n), e); 2567 t[i] = kM(o, function(t) { return t.option && t.exist ? PM(t.exist, t.option, !0) : t.exist || t.option }) 2568 } else t[i] = PM(n, e, !0) 2569 } 2570 }) 2571 } 2572 2573 function Ra(t) { 2574 var e = t && t.itemStyle; 2575 if (e) 2576 for (var i = 0, o = RM.length; i < o; i++) { 2577 var a = RM[i], 2578 r = e.normal, 2579 s = e.emphasis; 2580 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) 2581 } 2582 } 2583 2584 function za(t, e, i) { 2585 if (t && t[e] && (t[e].normal || t[e].emphasis)) { 2586 var n = t[e].normal, 2587 o = t[e].emphasis; 2588 n && (i ? (t[e].normal = t[e].emphasis = null, r(t[e], n)) : t[e] = n), o && (t.emphasis = t.emphasis || {}
2588, t.emphasis[e] = o) 2589 } 2590 } 2591 2592 function Ba(t) { za(t, "itemStyle"), za(t, "lineStyle"), za(t, "areaStyle"), za(t, "label"), za(t, "labelLine"), za(t, "upperLabel"), za(t, "edgeLabel") } 2593 2594 function Va(t, e) { 2595 var i = EM(t) && t[e], 2596 n = EM(i) && i.textStyle; 2597 if (n) 2598 for (var o = 0, a = ib.length; o < a; o++) { 2599 var e = ib[o]; 2600 n.hasOwnProperty(e) && (i[e] = n[e]) 2601 } 2602 } 2603 2604 function Ga(t) { t && (Ba(t), Va(t, "label"), t.emphasis && Va(t.emphasis, "label")) } 2605 2606 function Wa(t) { 2607 if (EM(t)) { 2608 Ra(t), Ba(t), Va(t, "label"), Va(t, "upperLabel"), Va(t, "edgeLabel"), t.emphasis && (Va(t.emphasis, "label"), Va(t.emphasis, "upperLabel"), Va(t.emphasis, "edgeLabel")); 2609 var e = t.markPoint; 2610 e && (Ra(e), Ga(e)); 2611 var i = t.markLine; 2612 i && (Ra(i), Ga(i)); 2613 var n = t.markArea; 2614 n && Ga(n); 2615 var o = t.data; 2616 if ("graph" === t.type) { 2617 o = o || t.nodes; 2618 var a = t.links || t.edges; 2619 if (a && !S(a)) 2620 for (s = 0; s < a.length; s++) Ga(a[s]); 2621 d(t.categories, function(t) { Ba(t) }) 2622 } 2623 if (o && !S(o)) 2624 for (s = 0; s < o.length; s++) Ga(o[s]); 2625 if ((e = t.markPoint) && e.data) 2626 for (var r = e.data, s = 0; s < r.length; s++) Ga(r[s]); 2627 if ((i = t.markLine) && i.data) 2628 for (var l = i.data, s = 0; s < l.length; s++) y(l[s]) ? (Ga(l[s][0]), Ga(l[s][1])) : Ga(l[s]); 2629 "gauge" === t.type ? (Va(t, "axisLabel"), Va(t, "title"), Va(t, "detail")) : "treemap" === t.type ? (za(t.breadcrumb, "itemStyle"), d(t.levels, function(t) { Ba(t) })) : "tree" === t.type && Ba(t.leaves) 2630 } 2631 } 2632 2633 function Fa(t) { return y(t) ? t : t ? [t] : [] } 2634 2635 function Ha(t) { return (y(t) ? t[0] : t) || {} } 2636 2637 function Za(t, e) { e = e.split(","); for (var i = t, n = 0; n < e.length && null != (i = i && i[e[n]]); n++); return i } 2638 2639 function Ua(t, e, i, n) { 2640 e = e.split(","); 2641 for (var o, a = t, r = 0; r < e.length - 1; r++) null == a[o = e[r]] && (a[o] = {}), a = a[o]; 2642 (n || null == a[e[r]]) && (a[e[r]] = i) 2643 } 2644 2645 function Xa(t) { d(BM, function(e) { e[0] in t && !(e[1] in t) && (t[e[1]] = t[e[0]]) }) } 2646 2647 function ja(t) { 2648 d(t, function(e, i) { 2649 var n = [], 2650 o = [NaN, NaN], 2651 a = [e.stackResultDimension, e.stackedOverDimension], 2652 r = e.data, 2653 s = e.isStackedByIndex, 2654 l = r.map(a, function(a, l, u) { 2655 var h = r.get(e.stackedDimension, u); 2656 if (isNaN(h)) return o; 2657 var c, d; 2658 s ? d = r.getRawIndex(u) : c = r.get(e.stackedByDimension, u); 2659 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 } } } 2660 return n[0] = h, n[1] = f, n 2661 }); 2662 r.hostModel.setData(l), e.data = l 2663 }) 2664 } 2665 2666 function Ya(t, e) { 2667 la.isInstance(t) || (t = la.seriesDataToSource(t)), this._source = t; 2668 var i = this._data = t.data, 2669 n = t.sourceFormat; 2670 n === wM && (this._offset = 0, this._dimSize = e, this._data = i), a(this, FM[n === vM ? n + "_" + t.seriesLayoutBy : n]) 2671 } 2672 2673 function qa() { return this._data.length } 2674 2675 function Ka(t) { return this._data[t] } 2676 2677 function $a(t) { for (var e = 0; e < t.length; e++) this._data.push(t[e]) } 2678 2679 function Ja(t, e, i, n) { return null != i ? t[i] : t } 2680 2681 function Qa(t, e, i, n) { return tr(t[n], this._dimensionInfos[e]) } 2682 2683 function tr(t, e) { var i = e && e.type; if ("ordinal" === i) { var n = e && e.ordinalMeta; return n ? n.parseAndCollect(t) : t } return "time" === i && "number" != typeof t && null != t && "-" !== t && (t = +Ro(t)), null == t || "" === t ? NaN : +t } 2684 2685 function er(t, e, i) { 2686 if (t) { 2687 var n = t.getRawDataItem(e); 2688 if (null != n) { 2689 var o, a, r = t.getProvider().getSource().sourceFormat, 2690 s = t.getDimensionInfo(i); 2691 return s && (o = s.name, a = s.index), HM[r](n, e, a, o) 2692 } 2693 } 2694 } 2695 2696 function ir(t, e, i) { if (t) { var n = t.getProvider().getSource().sourceFormat; if (n === mM || n === yM) { var o = t.getRawDataItem(e); return n !== mM || w(o) || (o = null), o ? o[i] : void 0 } } } 2697 2698 function nr(t) { return new or(t) } 2699 2700 function or(t) { t = t || {}, this._reset = t.reset, this._plan = t.plan, this._count = t.count, this._onDirty = t.onDirty, this._dirty = !0, this.context } 2701 2702 function ar(t, e, i, n, o, a) { YM.reset(i, n, o, a), t._callingProgress = e, t._callingProgress({ start: i, end: n, count: n - i, next: YM.next }, t.context) } 2703 2704 function rr(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 } 2705 2706 function sr(t) { 2707 var e = t.name; 2708 Ci(t) || (t.name = lr(t) || e) 2709 } 2710 2711 function lr(t) { 2712 var e = t.getRawData(), 2713 i = []; 2714 return d(e.mapDimension("seriesName", !0), function(t) { 2715 var n = e.getDimensionInfo(t); 2716 n.displayName && i.push(n.displayName) 2717 }), i.join(" ") 2718 } 2719 2720 function ur(t) { return t.model.getRawData().count() } 2721 2722 function hr(t) { var e = t.model; return e.setData(e.getRawData().cloneShallow()), cr } 2723 2724 function cr(t, e) { t.end > e.outputData.count() && e.model.getRawData().cloneShallow(e.outputData) } 2725 2726 function dr(t, e) { d(t.CHANGABLE_METHODS, function(i) { t.wrapMethod(i, v(fr, e)) }) } 2727 2728 function fr(t) { 2729 var e = pr(t); 2730 e && e.setOutputEnd(this.count()) 2731 } 2732 2733 function pr(t) { 2734 var e = (t.ecModel || {}).scheduler, 2735 i = e && e.getPipeline(t.uid); 2736 if (i) { 2737 var n = i.currentTask; 2738 if (n) { 2739 var o = n.agentStubMap; 2740 o && (n = o.get(t.uid)) 2741 } 2742 return n 2743 } 2744 } 2745 2746 function gr() { this.group = new sw, this.uid = Mo("viewChart"), this.renderTask = nr({ plan: yr, reset: xr }), this.renderTask.context = { view: this } } 2747 2748 function mr(t, e) { 2749 if (t && (t.trigger(e), "group" === t.type)) 2750 for (var i = 0; i < t.childCount(); i++) mr(t.childAt(i), e) 2751 } 2752 2753 function vr(t, e, i) { 2754 var n = Pi(t, e); 2755 null != n ? d(Si(n), function(e) { mr(t.getItemGraphicEl(e), i) }) : t.eachItemGraphicEl(function(t) { mr(t, i) }) 2756 } 2757 2758 function yr(t) { return eI(t.model) } 2759 2760 function xr(t) { 2761 var e = t.model, 2762 i = t.ecModel, 2763 n = t.api, 2764 o = t.payload,
2765 a = e.pipelineContext.progressiveRender, 2766 r = t.view, 2767 s = o && tI(o).updateMethod, 2768 l = a ? "incrementalPrepareRender" : s && r[s] ? s : "render"; 2769 return "render" !== l && r[l](e, i, n, o), nI[l] 2770 } 2771 2772 function _r(t, e, i) { 2773 function n() { h = (new Date).getTime(), c = null, t.apply(r, s || []) } 2774 var o, a, r, s, l, u = 0, 2775 h = 0, 2776 c = null; 2777 e = e || 0; 2778 var d = function() { 2779 o = (new Date).getTime(), r = this, s = arguments; 2780 var t = l || e, 2781 d = l || i; 2782 l = null, a = o - (d ? u : h) - t, clearTimeout(c), d ? c = setTimeout(n, t) : a >= 0 ? n() : c = setTimeout(n, -a), u = o 2783 }; 2784 return d.clear = function() { c && (clearTimeout(c), c = null) }, d.debounceNextCall = function(t) { l = t }, d 2785 } 2786 2787 function wr(t, e, i, n) { 2788 var o = t[e]; 2789 if (o) { 2790 var a = o[oI] || o, 2791 r = o[rI]; 2792 if (o[aI] !== i || r !== n) { 2793 if (null == i || !n) return t[e] = a; 2794 (o = t[e] = _r(a, i, "debounce" === n))[oI] = a, o[rI] = n, o[aI] = i 2795 } 2796 return o 2797 } 2798 } 2799 2800 function br(t, e) { 2801 var i = t[e]; 2802 i && i[oI] && (t[e] = i[oI]) 2803 } 2804 2805 function Sr(t, e, i, n) { 2806 this.ecInstance = t, this.api = e, this.unfinished; 2807 var i = this._dataProcessorHandlers = i.slice(), 2808 n = this._visualHandlers = n.slice(); 2809 this._allHandlers = i.concat(n), this._stageTaskMap = R() 2810 } 2811 2812 function Mr(t, e, i, n, o) { 2813 function a(t, e) { return t.setDirty && (!t.dirtyMap || t.dirtyMap.get(e.__pipeline.id)) } 2814 o = o || {}; 2815 var r; 2816 d(e, function(e, s) { 2817 if (!o.visualType || o.visualType === e.visualType) { 2818 var l = t._stageTaskMap.get(e.uid), 2819 u = l.seriesTaskMap, 2820 h = l.overallTask; 2821 if (h) { 2822 var c, d = h.agentStubMap; 2823 d.each(function(t) { a(o, t) && (t.dirty(), c = !0) }), c && h.dirty(), dI(h, n); 2824 var f = t.getPerformArgs(h, o.block); 2825 d.each(function(t) { t.perform(f) }), r |= h.perform(f) 2826 } else u && u.each(function(s, l) { 2827 a(o, s) && s.dirty(); 2828 var u = t.getPerformArgs(s, o.block); 2829 u.skip = !e.performRawSeries && i.isSeriesFiltered(s.context.model), dI(s, n), r |= s.perform(u) 2830 }) 2831 } 2832 }), t.unfinished |= r 2833 } 2834 2835 function Ir(t, e, i, n, o) { 2836 function a(i) { 2837 var a = i.uid, 2838 s = r.get(a) || r.set(a, nr({ plan: kr, reset: Pr, count: Or })); 2839 s.context = { model: i, ecModel: n, api: o, useClearVisual: e.isVisual && !e.isLayout, plan: e.plan, reset: e.reset, scheduler: t }, Er(t, i, s) 2840 } 2841 var r = i.seriesTaskMap || (i.seriesTaskMap = R()), 2842 s = e.seriesType, 2843 l = e.getTargetSeries; 2844 e.createOnAllSeries ? n.eachRawSeries(a) : s ? n.eachRawSeriesByType(s, a) : l && l(n, o).each(a); 2845 var u = t._pipelineMap; 2846 r.each(function(t, e) { u.get(e) || (t.dispose(), r.removeKey(e)) }) 2847 } 2848 2849 function Tr(t, e, i, n, o) { 2850 function a(e) { 2851 var i = e.uid, 2852 n = s.get(i); 2853 n || (n = s.set(i, nr({ reset: Ar, onDirty: Lr })), r.dirty()), n.context = { model: e, overallProgress: h, modifyOutputEnd: c }, n.agent = r, n.__block = h, Er(t, e, n) 2854 } 2855 var r = i.overallTask = i.overallTask || nr({ reset: Dr }); 2856 r.context = { ecModel: n, api: o, overallReset: e.overallReset, scheduler: t }; 2857 var s = r.agentStubMap = r.agentStubMap || R(), 2858 l = e.seriesType, 2859 u = e.getTargetSeries, 2860 h = !0, 2861 c = e.modifyOutputEnd; 2862 l ? n.eachRawSeriesByType(l, a) : u ? u(n, o).each(a) : (h = !1, d(n.getSeries(), a)); 2863 var f = t._pipelineMap; 2864 s.each(function(t, e) { f.get(e) || (t.dispose(), r.dirty(), s.removeKey(e)) }) 2865 } 2866 2867 function Dr(t) { t.overallReset(t.ecModel, t.api, t.payload) } 2868 2869 function Ar(t, e) { return t.overallProgress && Cr } 2870 2871 function Cr() { this.agent.dirty(), this.getDownstream().dirty() } 2872 2873 function Lr() { this.agent && this.agent.dirty() } 2874 2875 function kr(t) { return t.plan && t.plan(t.model, t.ecModel, t.api, t.payload) } 2876 2877 function Pr(t) { t.useClearVisual && t.data.clearAllVisual(); var e = t.resetDefines = Si(t.reset(t.model, t.ecModel, t.api, t.payload)); return e.length > 1 ? f(e, function(t, e) { return Nr(e) }) : fI } 2878 2879 function Nr(t) { 2880 return function(e, i) { 2881 var n = i.data, 2882 o = i.resetDefines[t]; 2883 if (o && o.dataEach) 2884 for (var a = e.start; a < e.end; a++) o.dataEach(n, a); 2885 else o && o.progress && o.progress(e, n) 2886 } 2887 } 2888 2889 function Or(t) { return t.data.count() } 2890 2891 function Er(t, e, i) { 2892 var n = e.uid, 2893 o = t._pipelineMap.get(n); 2894 !o.head && (o.head = i), o.tail && o.tail.pipe(i), o.tail = i, i.__idxInPipeline = o.count++, i.__pipeline = o 2895 } 2896 2897 function Rr(t) { pI = null; try { t(gI, mI) } catch (t) {} return pI } 2898 2899 function zr(t, e) { for (var i in e.prototype) t[i] = B } 2900 2901 function Br(t) { return function(e, i, n) { e = e && e.toLowerCase(), D_.prototype[t].call(this, e, i, n) } } 2902 2903 function Vr() { D_.call(this) } 2904 2905 function Gr(t, e, n) { 2906 function o(t, e) { return t.__prio - e.__prio } 2907 n = n || {}, "string" == typeof e && (e = HI[e]), this.id, this.group, this._dom = t; 2908 var a = this._zr = _i(t, { renderer: n.renderer || "canvas", devicePixelRatio: n.devicePixelRatio, width: n.width, height: n.height }); 2909 this._throttledZrFlush = _r(m(a.flush, a), 17), (e = i(e)) && GM(e, !0), this._theme = e, this._chartsViews = [], this._chartsMap = {}, this._componentsViews = [], this._componentsMap = {}, this._coordSysMgr = new Ca; 2910 var r = this._api = os(this); 2911 ae(FI, o), ae(VI, o), this._scheduler = new Sr(this, r, VI, FI), D_.call(this), this._messageCenter = new Vr, this._initEvents(), this.resize = m(this.resize, this), this._pendingActions = [], a.animation.on("frame", this._onframe, this), Yr(a, this), N(this) 2912 } 2913 2914 function Wr(t, e, i) { 2915 var n, o = this._model, 2916 a = this._coordSysMgr.getCoordinateSystems(); 2917 e = Oi(o, e); 2918 for (var r = 0; r < a.length; r++) { var s = a[r]; if (s[t] && null != (n = s[t](o, e, i))) return n } 2919 } 2920 2921 function Fr(t) { 2922 var e = t._model, 2923 i = t._scheduler; 2924 i.restorePipelines(e), i.prepareStageTasks(), qr(t, "component", e, i), qr(t, "chart", e, i), i.plan() 2925 } 2926 2927 function Hr(t, e, i, n, o) { 2928 function a(n) { n && n.__alive && n[e] && n[e](n.__model, r, t._api, i) } 2929 var r = t._model; 2930 if (n) { 2931 var s = {}; 2932 s[n + "Id"] = i[n + "Id"], s[n + "Index"] = i[n + "Index"], s[n + "Name"] = i[n + "Name"]; 2933 var l = { mainType: n, query: s }; 2934 o && (l.subType = o); 2935 var u = i.excludeSeriesId; 2936 null != u && (u = R(Si(u))), r && r.eachComponent(l, function(e) { u && null != u.get(e.id) || a(t["series" === n ? "_chartsMap" : "_componentsMap"][e.__viewId]) }, t) 2937 } else bI(t._componentsViews.concat(t._chartsViews), a) 2938 } 2939 2940 function Zr(t, e) { 2941 var i = t._chartsMap, 2942 n = t._scheduler; 2943 e.eachSeries(function(t) { n.updateStreamModes(t, i[t.__viewId]) }) 2944 } 2945 2946 function Ur(t, e) { 2947 var i = t.type, 2948 n = t.escapeConnect, 2949 o = zI[i], 2950 s = o.actionInfo, 2951 l = (s.update || "update").split(":"), 2952 u = l.pop(); 2953 l = null != l[0] && II(l[0]), this[kI] = !0; 2954 var h = [t], 2955 c = !1; 2956 t.batch && (c = !0, h = f(t.batch, function(e) { return e = r(a({}, e), t), e.batch = null, e })); 2957 var d, p = [], 2958 g = "highlight" === i || "downplay" === i; 2959 bI(h, function(t) { d = o.action(t, this._model, this._api), (d = d || a({}, t)).type = s.event || d.type, p.push(d), g ? Hr(this, u, t, "series") : l && Hr(this, u, t, l.main, l.sub) }
2959, this), "none" === u || g || l || (this[PI] ? (Fr(this), EI.update.call(this, t), this[PI] = !1) : EI[u].call(this, t)), d = c ? { type: s.event || i, escapeConnect: n, batch: p } : p[0], this[kI] = !1, !e && this._messageCenter.trigger(d.type, d) 2960 } 2961 2962 function Xr(t) { 2963 for (var e = this._pendingActions; e.length;) { 2964 var i = e.shift(); 2965 Ur.call(this, i, t) 2966 } 2967 } 2968 2969 function jr(t) {!t && this.trigger("updated") } 2970 2971 function Yr(t, e) { t.on("rendered", function() { e.trigger("rendered"), !t.animation.isFinished() || e[PI] || e._scheduler.unfinished || e._pendingActions.length || e.trigger("finished") }) } 2972 2973 function qr(t, e, i, n) { 2974 function o(t) { 2975 var e = "_ec_" + t.id + "_" + t.type, 2976 o = s[e]; 2977 if (!o) { 2978 var h = II(t.type); 2979 (o = new(a ? $M.getClass(h.main, h.sub) : gr.getClass(h.sub))).init(i, u), s[e] = o, r.push(o), l.add(o.group) 2980 } 2981 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) 2982 } 2983 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; 2984 a ? i.eachComponent(function(t, e) { "series" !== t && o(e) }) : i.eachSeries(o); 2985 for (h = 0; h < r.length;) { 2986 var c = r[h]; 2987 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) 2988 } 2989 } 2990 2991 function Kr(t) { t.clearColorPalette(), t.eachSeries(function(t) { t.clearColorPalette() }) } 2992 2993 function $r(t, e, i, n) { Jr(t, e, i, n), bI(t._chartsViews, function(t) { t.__alive = !1 }), Qr(t, e, i, n), bI(t._chartsViews, function(t) { t.__alive || t.remove(e, i) }) } 2994 2995 function Jr(t, e, i, n, o) { 2996 bI(o || t._componentsViews, function(t) { 2997 var o = t.__model; 2998 t.render(o, e, i, n), ns(o, t) 2999 }) 3000 } 3001 3002 function Qr(t, e, i, n, o) { 3003 var a, r = t._scheduler; 3004 e.eachSeries(function(e) { 3005 var i = t._chartsMap[e.__viewId]; 3006 i.__alive = !0; 3007 var s = i.renderTask; 3008 r.updatePayload(s, n), o && o.get(e.uid) && s.dirty(), a |= s.perform(r.getPerformArgs(s)), i.group.silent = !!e.get("silent"), ns(e, i), is(e, i) 3009 }), r.unfinished |= a, es(t._zr, e), uI(t._zr.dom, e) 3010 } 3011 3012 function ts(t, e) { bI(WI, function(i) { i(t, e) }) } 3013 3014 function es(t, e) { 3015 var i = t.storage, 3016 n = 0; 3017 i.traverse(function(t) { t.isGroup || n++ }), n > e.get("hoverLayerThreshold") && !a_.node && i.traverse(function(t) { t.isGroup || (t.useHoverLayer = !0) }) 3018 } 3019 3020 function is(t, e) { 3021 var i = t.get("blendMode") || null; 3022 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) }) }) 3023 } 3024 3025 function ns(t, e) { 3026 var i = t.get("z"), 3027 n = t.get("zlevel"); 3028 e.group.traverse(function(t) { "group" !== t.type && (null != i && (t.z = i), null != n && (t.zlevel = n)) }) 3029 } 3030 3031 function os(t) { 3032 var e = t._coordSysMgr; 3033 return a(new Aa(t), { 3034 getCoordinateSystems: m(e.getCoordinateSystems, e), 3035 getComponentByElement: function(e) { 3036 for (; e;) { 3037 var i = e.__ecComponentInfo; 3038 if (null != i) return t._model.getComponent(i.mainType, i.index); 3039 e = e.parent 3040 } 3041 } 3042 }) 3043 } 3044 3045 function as(t) { 3046 function e(t, e) { for (var n = 0; n < t.length; n++) t[n][i] = e } 3047 var i = "__connectUpdateStatus"; 3048 bI(BI, function(n, o) { 3049 t._messageCenter.on(o, function(n) { 3050 if (XI[t.group] && 0 !== t[i]) { 3051 if (n && n.escapeConnect) return; 3052 var o = t.makeActionFromEvent(n), 3053 a = []; 3054 bI(UI, function(e) { e !== t && e.group === t.group && a.push(e) }), e(a, 0), bI(a, function(t) { 1 !== t[i] && t.dispatchAction(o) }), e(a, 2) 3055 } 3056 }) 3057 }) 3058 } 3059 3060 function rs(t) { XI[t] = !1 } 3061 3062 function ss(t) { return UI[zi(t, qI)] } 3063 3064 function ls(t, e) { HI[t] = e } 3065 3066 function us(t) { GI.push(t) } 3067 3068 function hs(t, e) { gs(VI, t, e, DI) } 3069 3070 function cs(t, e, i) { 3071 "function" == typeof e && (i = e, e = ""); 3072 var n = MI(t) ? t.type : [t, t = { event: e }][0]; 3073 t.event = (t.event || n).toLowerCase(), e = t.event, wI(NI.test(n) && NI.test(e)), zI[n] || (zI[n] = { action: i, actionInfo: t }), BI[e] = n 3074 } 3075 3076 function ds(t, e) { Ca.register(t, e) } 3077 3078 function fs(t, e) { gs(FI, t, e, AI, "layout") } 3079 3080 function ps(t, e) { gs(FI, t, e, CI, "visual") } 3081 3082 function gs(t, e, i, n, o) { 3083 (SI(e) || MI(e)) && (i = e, e = n); 3084 var a = Sr.wrapStageHandler(i, o); 3085 return a.__prio = e, a.__raw = i, t.push(a), a 3086 } 3087 3088 function ms(t, e) { ZI[t] = e } 3089 3090 function vs(t) { return hM.extend(t) } 3091 3092 function ys(t) { return $M.extend(t) } 3093 3094 function xs(t) { return KM.extend(t) } 3095 3096 function _s(t) { return gr.extend(t) } 3097 3098 function ws(t) { return KI[t] } 3099 3100 function bs(t) { return t } 3101 3102 function Ss(t, e, i, n, o) { this._old = t, this._new = e, this._oldKeyGetter = i || bs, this._newKeyGetter = n || bs, this.context = o } 3103 3104 function Ms(t, e, i, n, o) { 3105 for (var a = 0; a < t.length; a++) { 3106 var r = "_ec_" + o[n](t[a], a), 3107 s = e[r]; 3108 null == s ? (i.push(r), e[r] = a) : (s.length || (e[r] = s = [s]), s.push(a)) 3109 } 3110 } 3111 3112 function Is(t) { 3113 var e = {}, 3114 i = e.encode = {}, 3115 n = R(), 3116 o = [], 3117 a = []; 3118 d(t.dimensions, function(e) { 3119 var r = t.getDimensionInfo(e), 3120 s = r.coordDim; 3121 if (s) { 3122 var l = i[s]; 3123 i.hasOwnProperty(s) || (l = i[s] = []), l[r.coordDimIndex] = e, r.isExtraCoord || (n.set(s, 1), Ds(r.type) && (o[0] = e)), r.defaultTooltip && a.push(e) 3124 } 3125 QI.each(function(t, e) { 3126 var n = i[e]; 3127 i.hasOwnProperty(e) || (n = i[e] = []); 3128 var o = r.otherDims[e]; 3129 null != o && !1 !== o && (n[o] = r.name) 3130 }) 3131 }); 3132 var r = [], 3133 s = {}; 3134 n.each(function(t, e) { 3135 var n = i[e]; 3136 s[e] = n[0], r = r.concat(n) 3137 }), e.dataDimsOnCoord = r, e.encodeFirstDimNotExtra = s; 3138 var l = i.label; 3139 l && l.length && (o = l.slice()); 3140 var u = i.tooltip; 3141 return u && u.length ? a = u.slice() : a.length || (a = o.slice()), i.defaultedLabel = o, i.defaultedTooltip = a, e 3142 } 3143
3144 function Ts(t) { return "category" === t ? "ordinal" : "time" === t ? "time" : "float" } 3145 3146 function Ds(t) { return !("ordinal" === t || "time" === t) } 3147 3148 function As(t) { return t._rawCount > 65535 ? nT : oT } 3149 3150 function Cs(t) { var e = t.constructor; return e === Array ? t.slice() : new e(t) } 3151 3152 function Ls(t, e) { d(aT.concat(e.__wrappedMethods || []), function(i) { e.hasOwnProperty(i) && (t[i] = e[i]) }), t.__wrappedMethods = e.__wrappedMethods, d(rT, function(n) { t[n] = i(e[n]) }), t._calculationInfo = a(e._calculationInfo) } 3153 3154 function ks(t) { 3155 var e = t._invertedIndicesMap; 3156 d(e, function(i, n) { var o = t._dimensionInfos[n].ordinalMeta; if (o) { i = e[n] = new nT(o.categories.length); for (a = 0; a < i.length; a++) i[a] = NaN; for (var a = 0; a < t._count; a++) i[t.get(n, a)] = a } }) 3157 } 3158 3159 function Ps(t, e, i) { 3160 var n; 3161 if (null != e) { 3162 var o = t._chunkSize, 3163 a = Math.floor(i / o), 3164 r = i % o, 3165 s = t.dimensions[e], 3166 l = t._storage[s][a]; 3167 if (l) { 3168 n = l[r]; 3169 var u = t._dimensionInfos[s].ordinalMeta; 3170 u && u.categories.length && (n = u.categories[n]) 3171 } 3172 } 3173 return n 3174 } 3175 3176 function Ns(t) { return t } 3177 3178 function Os(t) { return t < this._count && t >= 0 ? this._indices[t] : -1 } 3179 3180 function Es(t, e) { var i = t._idList[e]; return null == i && (i = Ps(t, t._idDimIdx, e)), null == i && (i = eT + e), i } 3181 3182 function Rs(t) { return y(t) || (t = [t]), t } 3183 3184 function zs(t, e) { 3185 var i = t.dimensions, 3186 n = new sT(f(i, t.getDimensionInfo, t), t.hostModel); 3187 Ls(n, t); 3188 for (var o = n._storage = {}, a = t._storage, r = 0; r < i.length; r++) { 3189 var s = i[r]; 3190 a[s] && (l(e, s) >= 0 ? (o[s] = Bs(a[s]), n._rawExtent[s] = Vs(), n._extent[s] = null) : o[s] = a[s]) 3191 } 3192 return n 3193 } 3194 3195 function Bs(t) { for (var e = new Array(t.length), i = 0; i < t.length; i++) e[i] = Cs(t[i]); return e } 3196 3197 function Vs() { return [1 / 0, -1 / 0] } 3198 3199 function Gs(t, e, n) { 3200 function o(t, e, i) { null != QI.get(e) ? t.otherDims[e] = i : (t.coordDim = e, t.coordDimIndex = i, h.set(e, !0)) } 3201 la.isInstance(e) || (e = la.seriesDataToSource(e)), n = n || {}, t = (t || []).slice(); 3202 for (var s = (n.dimsDef || []).slice(), l = R(n.encodeDef), u = R(), h = R(), c = [], f = Ws(e, t, s, n.dimCount), p = 0; p < f; p++) { 3203 var g = s[p] = a({}, w(s[p]) ? s[p] : { name: s[p] }), 3204 m = g.name, 3205 v = c[p] = { otherDims: {} }; 3206 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) 3207 } 3208 l.each(function(t, e) { 3209 t = Si(t).slice(); 3210 var i = l.set(e, []); 3211 d(t, function(t, n) { _(t) && (t = u.get(t)), null != t && t < f && (i[n] = t, o(c[t], e, n)) }) 3212 }); 3213 var y = 0; 3214 d(t, function(t, e) { 3215 var n, t, a, s; 3216 if (_(t)) n = t, t = {}; 3217 else { 3218 n = t.name; 3219 var u = t.ordinalMeta; 3220 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 3221 } 3222 var h = Si(l.get(n)); 3223 if (!h.length) 3224 for (var f = 0; f < (a && a.length || 1); f++) { 3225 for (; y < c.length && null != c[y].coordDim;) y++; 3226 y < c.length && h.push(y++) 3227 } 3228 d(h, function(e, i) { 3229 var l = c[e]; 3230 if (o(r(l, t), n, i), null == l.name && a) { var u = a[i];!w(u) && (u = { name: u }
3230), l.name = l.displayName = u.name, l.defaultTooltip = u.defaultTooltip } 3231 s && r(l.otherDims, s) 3232 }) 3233 }); 3234 var x = n.generateCoord, 3235 b = n.generateCoordCount, 3236 S = null != b; 3237 b = x ? b || 1 : 0; 3238 for (var M = x || "value", I = 0; I < f; I++) null == (v = c[I] = c[I] || {}).coordDim && (v.coordDim = Fs(M, h, S), v.coordDimIndex = 0, (!x || b <= 0) && (v.isExtraCoord = !0), b--), null == v.name && (v.name = Fs(v.coordDim, u)), null == v.type && xa(e, I, v.name) && (v.type = "ordinal"); 3239 return c 3240 } 3241 3242 function Ws(t, e, i, n) { 3243 var o = Math.max(t.dimensionsDetectCount || 1, e.length, i.length, n || 0); 3244 return d(e, function(t) { 3245 var e = t.dimsDef; 3246 e && (o = Math.max(o, e.length)) 3247 }), o 3248 } 3249 3250 function Fs(t, e, i) { 3251 if (i || null != e.get(t)) { 3252 for (var n = 0; null != e.get(t + n);) n++; 3253 t += n 3254 } 3255 return e.set(t, !0), t 3256 } 3257 3258 function Hs(t, e, i) { 3259 var n, o, a, r, s = (i = i || {}).byIndex, 3260 l = i.stackedCoordDimension, 3261 u = !(!t || !t.get("stack")); 3262 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) { 3263 a = "__\0ecstackresult", r = "__\0ecstackedover", n && (n.createInvertedIndices = !0); 3264 var h = o.coordDim, 3265 c = o.type, 3266 f = 0; 3267 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 }) 3268 } 3269 return { stackedDimension: o && o.name, stackedByDimension: n && n.name, isStackedByIndex: s, stackedOverDimension: r, stackResultDimension: a } 3270 } 3271 3272 function Zs(t, e) { return !!e && e === t.getCalculationInfo("stackedDimension") } 3273 3274 function Us(t, e) { return Zs(t, e) ? t.getCalculationInfo("stackResultDimension") : e } 3275 3276 function Xs(t, e, i) { 3277 i = i || {}, la.isInstance(t) || (t = la.seriesDataToSource(t)); 3278 var n, o = e.get("coordinateSystem"), 3279 a = Ca.get(o), 3280 r = ra(e); 3281 r && (n = f(r.coordSysDims, function(t) { 3282 var e = { name: t }, 3283 i = r.axisMap.get(t); 3284 if (i) { 3285 var n = i.get("type"); 3286 e.type = Ts(n) 3287 } 3288 return e 3289 })), n || (n = a && (a.getDimensionsInfo ? a.getDimensionsInfo() : a.dimensions.slice()) || ["x", "y"]); 3290 var s, l, u = hT(t, { coordDimensions: n, generateCoord: i.generateCoord }); 3291 r && d(u, function(t, e) { 3292 var i = t.coordDim, 3293 n = r.categoryAxisMap.get(i); 3294 n && (null == s && (s = e), t.ordinalMeta = n.getOrdinalMeta()), null != t.otherDims.itemName && (l = !0) 3295 }), l || null == s || (u[s].otherDims.itemName = 0); 3296 var h = Hs(e, u), 3297 c = new sT(u, e); 3298 c.setCalculationInfo(h); 3299 var p = null != s && js(t) ? function(t, e, i, n) { return n === s ? i : this.defaultDimValueGetter(t, e, i, n) } : null; 3300 return c.hasItemOption = !1, c.initData(t, null, p), c 3301 } 3302 3303 function js(t) { if (t.sourceFormat === mM) { var e = Ys(t.data || []); return null != e && !y(Ii(e)) } } 3304 3305 function Ys(t) { for (var e = 0; e < t.length && null == t[e];) e++; return t[e] } 3306 3307 function qs(t) { this._setting = t || {}, this._extent = [1 / 0, -1 / 0], this._interval = 0, this.init && this.init.apply(this, arguments) } 3308 3309 function Ks(t) { this.categories = t.categories || [], this._needCollect = t.needCollect, this._deduplication = t.deduplication, this._map } 3310 3311 function $s(t) { return t._map || (t._map = R(t.categories)) } 3312 3313 function Js(t) { return w(t) && null != t.value ? t.value : t + "" } 3314 3315 function Qs(t, e, i, n) { 3316 var o = {}, 3317 a = t[1] - t[0], 3318 r = o.interval = Vo(a / e, !0); 3319 null != i && r < i && (r = o.interval = i), null != n && r > n && (r = o.interval = n); 3320 var s = o.intervalPrecision = tl(r); 3321 return il(o.niceTickExtent = [pT(Math.ceil(t[0] / r) * r, s), pT(Math.floor(t[1] / r) * r, s)], t), o 3322 } 3323 3324 function tl(t) { return ko(t) + 2 } 3325 3326 function el(t, e, i) { t[e] = Math.max(Math.min(t[e], i[1]), i[0]) } 3327 3328 function il(t, e) {!isFinite(t[0]) && (t[0] = e[0]), !isFinite(t[1]) && (t[1] = e[1]), el(t, 0, e), el(t, 1, e), t[0] > t[1] && (t[0] = t[1]) } 3329 3330 function nl(t, e, i, n) { 3331 var o = []; 3332 if (!t) return o; 3333 e[0] < i[0] && o.push(e[0]); 3334 for (var a = i[0]; a <= i[1] && (o.push(a), (a = pT(a + t, n)) !== o[o.length - 1]);) 3335 if (o.length > 1e4) return []; 3336 return e[1] > (o.length ? o[o.length - 1] : i[1]) && o.push(e[1]), o 3337 } 3338 3339 function ol(t) { return t.get("stack") || vT + t.seriesIndex } 3340 3341 function al(t) { return t.dim + t.index } 3342 3343 function rl(t) { 3344 var e = [], 3345 i = t.axis; 3346 if ("category" === i.type) { 3347 for (var n = i.getBandWidth(), o = 0; o < t.count; o++) e.push(r({ bandWidth: n, axisKey: "axis0", stackId: vT + o }, t)); 3348 for (var a = ul(e), s = [], o = 0; o < t.count; o++) { 3349 var l = a.axis0[vT + o]; 3350 l.offsetCenter = l.offset + l.width / 2, s.push(l) 3351 } 3352 return s 3353 } 3354 } 3355 3356 function sl(t, e) { var i = []; return e.eachSeriesByType(t, function(t) { dl(t) && !fl(t) && i.push(t) }), i } 3357 3358 function ll(t) { 3359 var e = []; 3360 return d(t, function(t) { 3361 var i = t.getData(), 3362 n = t.coordinateSystem.getBaseAxis(), 3363 o = n.getExtent(), 3364 a = "category" === n.type ? n.getBandWidth() : Math.abs(o[1] - o[0]) / i.count(), 3365 r = Do(t.get("barWidth"), a), 3366 s = Do(t.get("barMaxWidth"), a), 3367 l = t.get("barGap"), 3368 u = t.get("barCategoryGap"); 3369 e.push({ bandWidth: a, barWidth: r, barMaxWidth: s, barGap: l, barCategoryGap: u, axisKey: al(n), stackId: ol(t) }) 3370 }), ul(e) 3371 } 3372 3373 function ul(t) { 3374 var e = {}; 3375 d(t, function(t, i) { 3376 var n = t.axisKey, 3377 o = t.bandWidth, 3378 a = e[n] || { bandWidth: o, remainedWidth: o, autoWidthCount: 0, categoryGap: "20%", gap: "30%", stacks: {} },
3379 r = a.stacks; 3380 e[n] = a; 3381 var s = t.stackId; 3382 r[s] || a.autoWidthCount++, r[s] = r[s] || { width: 0, maxWidth: 0 }; 3383 var l = t.barWidth; 3384 l && !r[s].width && (r[s].width = l, l = Math.min(a.remainedWidth, l), a.remainedWidth -= l); 3385 var u = t.barMaxWidth; 3386 u && (r[s].maxWidth = u); 3387 var h = t.barGap; 3388 null != h && (a.gap = h); 3389 var c = t.barCategoryGap; 3390 null != c && (a.categoryGap = c) 3391 }); 3392 var i = {}; 3393 return d(e, function(t, e) { 3394 i[e] = {}; 3395 var n = t.stacks, 3396 o = t.bandWidth, 3397 a = Do(t.categoryGap, o), 3398 r = Do(t.gap, 1), 3399 s = t.remainedWidth, 3400 l = t.autoWidthCount, 3401 u = (s - a) / (l + (l - 1) * r); 3402 u = Math.max(u, 0), d(n, function(t, e) { 3403 var i = t.maxWidth; 3404 i && i < u && (i = Math.min(i, s), t.width && (i = Math.min(i, t.width)), s -= i, t.width = i, l--) 3405 }), u = (s - a) / (l + (l - 1) * r), u = Math.max(u, 0); 3406 var h, c = 0; 3407 d(n, function(t, e) { t.width || (t.width = u), h = t, c += t.width * (1 + r) }), h && (c -= h.width * r); 3408 var f = -c / 2; 3409 d(n, function(t, n) { i[e][n] = i[e][n] || { offset: f, width: t.width }, f += t.width * (1 + r) }) 3410 }), i 3411 } 3412 3413 function hl(t, e, i) { if (t && e) { var n = t[al(e)]; return null != n && null != i && (n = n[ol(i)]), n } } 3414 3415 function cl(t, e) { 3416 var i = sl(t, e), 3417 n = ll(i), 3418 o = {}; 3419 d(i, function(t) { 3420 var e = t.getData(), 3421 i = t.coordinateSystem, 3422 a = i.getBaseAxis(), 3423 r = ol(t), 3424 s = n[al(a)][r], 3425 l = s.offset, 3426 u = s.width, 3427 h = i.getOtherAxis(a), 3428 c = t.get("barMinHeight") || 0; 3429 o[r] = o[r] || [], e.setLayout({ offset: l, size: u }); 3430 for (var d = e.mapDimension(h.dim), f = e.mapDimension(a.dim), p = Zs(e, d), g = h.isHorizontal(), m = pl(a, h, p), v = 0, y = e.count(); v < y; v++) { 3431 var x = e.get(d, v), 3432 _ = e.get(f, v); 3433 if (!isNaN(x)) { 3434 var w = x >= 0 ? "p" : "n", 3435 b = m; 3436 p && (o[r][_] || (o[r][_] = { p: m, n: m }), b = o[r][_][w]); 3437 var S, M, I, T; 3438 if (g) S = b, M = (D = i.dataToPoint([x, _]))[1] + l, I = D[0] - m, T = u, Math.abs(I) < c && (I = (I < 0 ? -1 : 1) * c), p && (o[r][_][w] += I); 3439 else { 3440 var D = i.dataToPoint([_, x]); 3441 S = D[0] + l, M = b, I = u, T = D[1] - m, Math.abs(T) < c && (T = (T <= 0 ? -1 : 1) * c), p && (o[r][_][w] += T) 3442 } 3443 e.setItemLayout(v, { x: S, y: M, width: I, height: T }) 3444 } 3445 } 3446 }, this) 3447 } 3448 3449 function dl(t) { return t.coordinateSystem && "cartesian2d" === t.coordinateSystem.type } 3450 3451 function fl(t) { return t.pipelineContext && t.pipelineContext.large } 3452 3453 function pl(t, e, i) { return l(t.getAxesOnZeroOf(), e) >= 0 || i ? e.toGlobalCoord(e.dataToCoord(0)) : e.getGlobalExtent()[0] } 3454 3455 function gl(t, e) { return CT(t, AT(e)) } 3456 3457 function ml(t, e) { 3458 var i, n, o, a = t.type, 3459 r = e.getMin(), 3460 s = e.getMax(), 3461 l = null != r, 3462 u = null != s, 3463 h = t.getExtent(); 3464 "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] = Do(n[0], 1), n[1] = Do(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)); 3465 var c = e.ecModel; 3466 if (c && "time" === a) { 3467 var f, p = sl("bar", c); 3468 if (d(p, function(t) { f |= t.getBaseAxis() === e.axis }), f) { 3469 var g = ll(p), 3470 m = vl(r, s, e, g); 3471 r = m.min, s = m.max 3472 } 3473 } 3474 return [r, s] 3475 } 3476 3477 function vl(t, e, i, n) { 3478 var o = i.axis.getExtent(), 3479 a = o[1] - o[0], 3480 r = hl(n, i.axis); 3481 if (void 0 === r) return { min: t, max: e }; 3482 var s = 1 / 0; 3483 d(r, function(t) { s = Math.min(t.offset, s) }); 3484 var l = -1 / 0; 3485 d(r, function(t) { l = Math.max(t.offset + t.width, l) }), s = Math.abs(s), l = Math.abs(l); 3486 var u = s + l, 3487 h = e - t, 3488 c = h / (1 - (s + l) / a) - h; 3489 return e += c * (l / u), t -= c * (s / u), { min: t, max: e } 3490 } 3491 3492 function yl(t, e) { 3493 var i = ml(t, e), 3494 n = null != e.getMin(), 3495 o = null != e.getMax(), 3496 a = e.get("splitNumber"); 3497 "log" === t.type && (t.base = e.get("logBase")); 3498 var r = t.type; 3499 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 }); 3500 var s = e.get("interval"); 3501 null != s && t.setInterval && t.setInterval(s) 3502 } 3503 3504 function xl(t, e) { 3505 if (e = e || t.get("type")) switch (e) { 3506 case "category": 3507 return new fT(t.getOrdinalMeta ? t.getOrdinalMeta() : t.getCategories(), [1 / 0, -1 / 0]); 3508 case "value": 3509 return new mT; 3510 default: 3511 return (qs.getClass(e) || mT).create(t) 3512 } 3513 } 3514 3515 function _l(t) { 3516 var e = t.scale.getExtent(), 3517 i = e[0], 3518 n = e[1]; 3519 return !(i > 0 && n > 0 || i < 0 && n < 0) 3520 } 3521 3522 function wl(t) { 3523 var e = t.getLabelModel().get("formatter"), 3524 i = "category" === t.type ? t.scale.getExtent()[0] : null; 3525 return "string" == typeof e ? e = function(t) { return function(e) { return t.replace("{value}", null != e ? e : "") } }(e) : "function" == typeof e ? function(n, o) { return null != i && (o = n - i), e(bl(t, n), o) } : function(e) { return t.scale.getLabel(e) } 3526 } 3527 3528 function bl(t, e) { return "category" === t.type ? t.scale.getLabel(e) : e } 3529 3530 function Sl(t) { 3531 var e = t.model, 3532 i = t.scale; 3533 if (e.get("axisLabel.show") && !i.isBlank()) { 3534 var n, o, a = "category" === t.type, 3535 r = i.getExtent(); 3536 o = a ? i.count() : (n = i.getTicks()).length; 3537 var s, l = t.getLabelModel(), 3538 u = wl(t), 3539 h = 1; 3540 o > 40 && (h = Math.ceil(o / 40)); 3541 for (var c = 0; c < o; c += h) { 3542 var d = u(n ? n[c] : r[0] + c),
3543 f = Ml(l.getTextRect(d), l.get("rotate") || 0); 3544 s ? s.union(f) : s = f 3545 } 3546 return s 3547 } 3548 } 3549 3550 function Ml(t, e) { 3551 var i = e * Math.PI / 180, 3552 n = t.plain(), 3553 o = n.width, 3554 a = n.height, 3555 r = o * Math.cos(i) + a * Math.sin(i), 3556 s = o * Math.sin(i) + a * Math.cos(i); 3557 return new $t(n.x, n.y, r, s) 3558 } 3559 3560 function Il(t, e) { 3561 if ("image" !== this.type) { 3562 var i = this.style, 3563 n = this.shape; 3564 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) 3565 } 3566 } 3567 3568 function Tl(t, e, i, n, o, a, r) { 3569 var s = 0 === t.indexOf("empty"); 3570 s && (t = t.substr(5, 1).toLowerCase() + t.substr(6)); 3571 var l; 3572 return l = 0 === t.indexOf("image://") ? zn(t.slice(8), new $t(e, i, n, o), r ? "center" : "cover") : 0 === t.indexOf("path://") ? Rn(t.slice(7), {}, new $t(e, i, n, o), r ? "center" : "cover") : new FT({ shape: { symbolType: t, x: e, y: i, width: n, height: o } }), l.__isEmptyBrush = s, l.setColor = Il, l.setColor(a), l 3573 } 3574 3575 function Dl(t, e) { return Math.abs(t - e) < UT } 3576 3577 function Al(t, e, i) { 3578 var n = 0, 3579 o = t[0]; 3580 if (!o) return !1; 3581 for (var a = 1; a < t.length; a++) { 3582 var r = t[a]; 3583 n += mn(o[0], o[1], r[0], r[1], e, i), o = r 3584 } 3585 var s = t[0]; 3586 return Dl(o[0], s[0]) && Dl(o[1], s[1]) || (n += mn(o[0], o[1], s[0], s[1], e, i)), 0 !== n 3587 } 3588 3589 function Cl(t, e, i) { 3590 if (this.name = t, this.geometries = e, i) i = [i[0], i[1]]; 3591 else { 3592 var n = this.getBoundingRect(); 3593 i = [n.x + n.width / 2, n.y + n.height / 2] 3594 } 3595 this.center = i 3596 } 3597 3598 function Ll(t) { 3599 if (!t.UTF8Encoding) return t; 3600 var e = t.UTF8Scale; 3601 null == e && (e = 1024); 3602 for (var i = t.features, n = 0; n < i.length; n++) 3603 for (var o = i[n].geometry, a = o.coordinates, r = o.encodeOffsets, s = 0; s < a.length; s++) { 3604 var l = a[s]; 3605 if ("Polygon" === o.type) a[s] = kl(l, r[s], e); 3606 else if ("MultiPolygon" === o.type) 3607 for (var u = 0; u < l.length; u++) { 3608 var h = l[u]; 3609 l[u] = kl(h, r[s][u], e) 3610 } 3611 } 3612 return t.UTF8Encoding = !1, t 3613 } 3614 3615 function kl(t, e, i) { 3616 for (var n = [], o = e[0], a = e[1], r = 0; r < t.length; r += 2) { 3617 var s = t.charCodeAt(r) - 64, 3618 l = t.charCodeAt(r + 1) - 64; 3619 s = s >> 1 ^ -(1 & s), l = l >> 1 ^ -(1 & l), o = s += o, a = l += a, n.push([s / i, l / i]) 3620 } 3621 return n 3622 } 3623 3624 function Pl(t) { return "category" === t.type ? Ol(t) : zl(t) } 3625 3626 function Nl(t, e) { return "category" === t.type ? Rl(t, e) : { ticks: t.scale.getTicks() } } 3627 3628 function Ol(t) { 3629 var e = t.getLabelModel(), 3630 i = El(t, e); 3631 return !e.get("show") || t.scale.isBlank() ? { labels: [], labelCategoryInterval: i.labelCategoryInterval } : i 3632 } 3633 3634 function El(t, e) { 3635 var i = Bl(t, "labels"), 3636 n = Xl(e), 3637 o = Vl(i, n); 3638 if (o) return o; 3639 var a, r; 3640 return a = x(n) ? Ul(t, n) : Zl(t, r = "auto" === n ? Wl(t) : n), Gl(i, n, { labels: a, labelCategoryInterval: r }) 3641 } 3642 3643 function Rl(t, e) { 3644 var i = Bl(t, "ticks"), 3645 n = Xl(e), 3646 o = Vl(i, n); 3647 if (o) return o; 3648 var a, r; 3649 if (e.get("show") && !t.scale.isBlank() || (a = []), x(n)) a = Ul(t, n, !0); 3650 else if ("auto" === n) { 3651 var s = El(t, t.getLabelModel()); 3652 r = s.labelCategoryInterval, a = f(s.labels, function(t) { return t.tickValue }) 3653 } else a = Zl(t, r = n, !0); 3654 return Gl(i, n, { ticks: a, tickCategoryInterval: r }) 3655 } 3656 3657 function zl(t) { 3658 var e = t.scale.getTicks(), 3659 i = wl(t); 3660 return { labels: f(e, function(e, n) { return { formattedLabel: i(e, n), rawLabel: t.scale.getLabel(e), tickValue: e } }) } 3661 } 3662 3663 function Bl(t, e) { return jT(t)[e] || (jT(t)[e] = []) } 3664 3665 function Vl(t, e) { 3666 for (var i = 0; i < t.length; i++) 3667 if (t[i].key === e) return t[i].value 3668 } 3669 3670 function Gl(t, e, i) { return t.push({ key: e, value: i }), i } 3671 3672 function Wl(t) { var e = jT(t).autoInterval; return null != e ? e : jT(t).autoInterval = t.calculateCategoryInterval() } 3673 3674 function Fl(t) { 3675 var e = Hl(t), 3676 i = wl(t), 3677 n = (e.axisRotate - e.labelRotate) / 180 * Math.PI, 3678 o = t.scale, 3679 a = o.getExtent(), 3680 r = o.count(); 3681 if (a[1] - a[0] < 1) return 0; 3682 var s = 1; 3683 r > 40 && (s = Math.max(1, Math.floor(r / 40))); 3684 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) { 3685 var p = 0, 3686 g = 0, 3687 m = me(i(l), e.font, "center", "top"); 3688 p = 1.3 * m.width, g = 1.3 * m.height, d = Math.max(d, p, 7), f = Math.max(f, g, 7) 3689 } 3690 var v = d / h, 3691 y = f / c; 3692 isNaN(v) && (v = 1 / 0), isNaN(y) && (y = 1 / 0);
3693 var x = Math.max(0, Math.floor(Math.min(v, y))), 3694 _ = jT(t.model), 3695 w = _.lastAutoInterval, 3696 b = _.lastTickCount; 3697 return null != w && null != b && Math.abs(w - x) <= 1 && Math.abs(b - r) <= 1 && w > x ? x = w : (_.lastTickCount = r, _.lastAutoInterval = x), x 3698 } 3699 3700 function Hl(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() } } 3701 3702 function Zl(t, e, i) { 3703 function n(t) { l.push(i ? t : { formattedLabel: o(t), rawLabel: a.getLabel(t), tickValue: t }) } 3704 var o = wl(t), 3705 a = t.scale, 3706 r = a.getExtent(), 3707 s = t.getLabelModel(), 3708 l = [], 3709 u = Math.max((e || 0) + 1, 1), 3710 h = r[0], 3711 c = a.count(); 3712 0 !== h && u > 1 && c / u > 2 && (h = Math.round(Math.ceil(h / u) * u)); 3713 var d = { min: s.get("showMinLabel"), max: s.get("showMaxLabel") }; 3714 d.min && h !== r[0] && n(r[0]); 3715 for (var f = h; f <= r[1]; f += u) n(f); 3716 return d.max && f !== r[1] && n(r[1]), l 3717 } 3718 3719 function Ul(t, e, i) { 3720 var n = t.scale, 3721 o = wl(t), 3722 a = []; 3723 return d(n.getTicks(), function(t) { 3724 var r = n.getLabel(t); 3725 e(t, r) && a.push(i ? t : { formattedLabel: o(t), rawLabel: r, tickValue: t }) 3726 }), a 3727 } 3728 3729 function Xl(t) { var e = t.get("interval"); return null == e ? "auto" : e } 3730 3731 function jl(t, e) { 3732 var i = (t[1] - t[0]) / e / 2; 3733 t[0] += i, t[1] -= i 3734 } 3735 3736 function Yl(t, e, i, n, o) { 3737 function a(t, e) { return h ? t > e : t < e } 3738 var r = e.length; 3739 if (t.onBand && !n && r) { 3740 var s, l = t.getExtent(); 3741 if (1 === r) e[0].coord = l[0], s = e[1] = { coord: l[0] }; 3742 else { 3743 var u = e[1].coord - e[0].coord; 3744 d(e, function(t) { 3745 t.coord -= u / 2; 3746 var e = e || 0; 3747 e % 2 > 0 && (t.coord -= u / (2 * (e + 1))) 3748 }), s = { coord: e[r - 1].coord + u }, e.push(s) 3749 } 3750 var h = l[0] > l[1]; 3751 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] }) 3752 } 3753 } 3754 3755 function ql(t, e) { 3756 var i = t.mapDimension("defaultedLabel", !0), 3757 n = i.length; 3758 if (1 === n) return er(t, e, i[0]); 3759 if (n) { 3760 for (var o = [], a = 0; a < i.length; a++) { 3761 var r = er(t, e, i[a]); 3762 o.push(r) 3763 } 3764 return o.join(" ") 3765 } 3766 } 3767 3768 function Kl(t, e, i) { sw.call(this), this.updateData(t, e, i) } 3769 3770 function $l(t) { return [t[0] / 2, t[1] / 2] } 3771 3772 function Jl(t, e) { this.parent.drift(t, e) } 3773 3774 function Ql(t) { this.group = new sw, this._symbolCtor = t || Kl } 3775 3776 function tu(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") } 3777 3778 function eu(t) { return null == t || w(t) || (t = { isIgnore: t }), t || {} } 3779 3780 function iu(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") } } 3781 3782 function nu(t, e, i) { 3783 var n, o = t.getBaseAxis(), 3784 a = t.getOtherAxis(o), 3785 r = ou(a, i), 3786 s = o.dim, 3787 l = a.dim, 3788 u = e.mapDimension(l), 3789 h = e.mapDimension(s), 3790 c = "x" === l || "radius" === l ? 1 : 0, 3791 d = f(t.dimensions, function(t) { return e.mapDimension(t) }), 3792 p = e.getCalculationInfo("stackResultDimension"); 3793 return (n |= Zs(e, d[0])) && (d[0] = p), (n |= Zs(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") } 3794 } 3795 3796 function ou(t, e) { 3797 var i = 0, 3798 n = t.scale.getExtent(); 3799 return "start" === e ? i = n[0] : "end" === e ? i = n[1] : n[0] >
3799 0 ? i = n[0] : n[1] < 0 && (i = n[1]), i 3800 } 3801 3802 function au(t, e, i, n) { 3803 var o = NaN; 3804 t.stacked && (o = i.get(i.getCalculationInfo("stackedOverDimension"), n)), isNaN(o) && (o = t.valueStart); 3805 var a = t.baseDataOffset, 3806 r = []; 3807 return r[a] = i.get(t.baseDim, n), r[1 - a] = o, e.dataToPoint(r) 3808 } 3809 3810 function ru(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 } 3811 3812 function su(t) { return isNaN(t[0]) || isNaN(t[1]) } 3813 3814 function lu(t, e, i, n, o, a, r, s, l, u, h) { return "none" !== u && u ? uu.apply(this, arguments) : hu.apply(this, arguments) } 3815 3816 function uu(t, e, i, n, o, a, r, s, l, u, h) { 3817 for (var c = 0, d = i, f = 0; f < n; f++) { 3818 var p = e[d]; 3819 if (d >= o || d < 0) break; 3820 if (su(p)) { if (h) { d += a; continue } break } 3821 if (d === i) t[a > 0 ? "moveTo" : "lineTo"](p[0], p[1]); 3822 else if (l > 0) { 3823 var g = e[c], 3824 m = "y" === u ? 1 : 0, 3825 v = (p[m] - g[m]) * l; 3826 uD(cD, g), cD[m] = g[m] + v, uD(dD, p), dD[m] = p[m] - v, t.bezierCurveTo(cD[0], cD[1], dD[0], dD[1], p[0], p[1]) 3827 } else t.lineTo(p[0], p[1]); 3828 c = d, d += a 3829 } 3830 return f 3831 } 3832 3833 function hu(t, e, i, n, o, a, r, s, l, u, h) { 3834 for (var c = 0, d = i, f = 0; f < n; f++) { 3835 var p = e[d]; 3836 if (d >= o || d < 0) break; 3837 if (su(p)) { if (h) { d += a; continue } break } 3838 if (d === i) t[a > 0 ? "moveTo" : "lineTo"](p[0], p[1]), uD(cD, p); 3839 else if (l > 0) { 3840 var g = d + a, 3841 m = e[g]; 3842 if (h) 3843 for (; m && su(e[g]);) m = e[g += a]; 3844 var v = .5, 3845 y = e[c]; 3846 if (!(m = e[g]) || su(m)) uD(dD, p); 3847 else { 3848 su(m) && !h && (m = p), U(hD, m, y); 3849 var x, _; 3850 if ("x" === u || "y" === u) { 3851 var w = "x" === u ? 0 : 1; 3852 x = Math.abs(p[w] - y[w]), _ = Math.abs(p[w] - m[w]) 3853 } else x = S_(p, y), _ = S_(p, m); 3854 lD(dD, p, hD, -l * (1 - (v = _ / (_ + x)))) 3855 } 3856 rD(cD, cD, s), sD(cD, cD, r), rD(dD, dD, s), sD(dD, dD, r), t.bezierCurveTo(cD[0], cD[1], dD[0], dD[1], p[0], p[1]), lD(cD, p, hD, l * v) 3857 } else t.lineTo(p[0], p[1]); 3858 c = d, d += a 3859 } 3860 return f 3861 } 3862 3863 function cu(t, e) { 3864 var i = [1 / 0, 1 / 0], 3865 n = [-1 / 0, -1 / 0]; 3866 if (e) 3867 for (var o = 0; o < t.length; o++) { 3868 var a = t[o]; 3869 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]) 3870 } 3871 return { min: e ? i : n, max: e ? n : i } 3872 } 3873 3874 function du(t, e) { 3875 if (t.length === e.length) { 3876 for (var i = 0; i < t.length; i++) { 3877 var n = t[i], 3878 o = e[i]; 3879 if (n[0] !== o[0] || n[1] !== o[1]) return 3880 } 3881 return !0 3882 } 3883 } 3884 3885 function fu(t) { return "number" == typeof t ? t : t ? .5 : 0 } 3886 3887 function pu(t) { 3888 var e = t.getGlobalExtent(); 3889 if (t.onBand) { 3890 var i = t.getBandWidth() / 2 - 1, 3891 n = e[1] > e[0] ? 1 : -1; 3892 e[0] += n * i, e[1] -= n * i 3893 } 3894 return e 3895 } 3896 3897 function gu(t, e, i) { if (!i.valueDim) return []; for (var n = [], o = 0, a = e.count(); o < a; o++) n.push(au(i, t, e, o)); return n } 3898 3899 function mu(t, e, i, n) { 3900 var o = pu(t.getAxis("x")), 3901 a = pu(t.getAxis("y")), 3902 r = t.getBaseAxis().isHorizontal(), 3903 s = Math.min(o[0], o[1]), 3904 l = Math.min(a[0], a[1]), 3905 u = Math.max(o[0], o[1]) - s, 3906 h = Math.max(a[0], a[1]) - l; 3907 if (i) s -= .5, u += .5, l -= .5, h += .5; 3908 else { 3909 var c = n.get("lineStyle.width") || 2, 3910 d = n.get("clipOverflow") ? c / 2 : Math.max(u, h); 3911 r ? (l -= d, h += 2 * d) : (s -= d, u += 2 * d) 3912 } 3913 var f = new SS({ shape: { x: s, y: l, width: u, height: h } }); 3914 return e && (f.shape[r ? "width" : "height"] = 0, po(f, { shape: { width: u, height: h } }, n)), f 3915 } 3916 3917 function vu(t, e, i, n) { 3918 var o = t.getAngleAxis(), 3919 a = t.getRadiusAxis().getExtent().slice(); 3920 a[0] > a[1] && a.reverse(); 3921 var r = o.getExtent(), 3922 s = Math.PI / 180; 3923 i && (a[0] -= .5, a[1] += .5); 3924 var l = new vS({ shape: { cx: Ao(t.cx, 1), cy: Ao(t.cy, 1), r0: Ao(a[0], 1), r: Ao(a[1], 1), startAngle: -r[0] * s, endAngle: -r[1] * s, clockwise: o.inverse } }); 3925 return e && (l.shape.endAngle = -r[0] * s, po(l, { shape: { endAngle: -r[1] * s } }, n)), l 3926 } 3927 3928 function yu(t, e, i, n) { return "polar" === t.type ? vu(t, e, i, n) : mu(t, e, i, n) } 3929 3930 function xu(t, e, i) { 3931 for (var n = e.getBaseAxis(), o = "x" === n.dim || "radius" === n.dim ? 0 : 1, a = [], r = 0; r < t.length - 1; r++) { 3932 var s = t[r + 1], 3933 l = t[r]; 3934 a.push(l); 3935 var u = []; 3936 switch (i) { 3937 case "end": 3938 u[o] = s[o], u[1 - o] = l[1 - o], a.push(u); 3939 break; 3940 case "middle": 3941 var h = (l[o] + s[o]) / 2, 3942 c = []; 3943 u[o] = c[o] = h, u[1 - o] = l[1 - o], c[1 - o] = s[1 - o], a.push(u), a.push(c); 3944 break; 3945 default: 3946 u[o] = l[o], u[1 - o] = s[1 - o], a.push(u) 3947 } 3948 } 3949 return t[r] && a.push(t[r]), a 3950 } 3951 3952 function _u(t, e) { 3953 var i = t.getVisual("visualMeta"); 3954 if (i && i.length && t.count() && "cartesian2d" === e.type) { 3955 for (var n, o, a = i.length - 1; a >= 0; a--) { 3956 var r = i[a].dimension, 3957 s = t.dimensions[r], 3958 l = t.getDimensionInfo(s); 3959 if ("x" === (n = l && l.coordDim) || "y" === n) { o = i[a]; break } 3960 } 3961 if (o) { 3962 var u = e.getAxis(n), 3963 h = f(o.stops, function(t) { return { coord: u.toGlobalCoord(u.dataToCoord(t.value)), color: t.color } }), 3964 c = h.length, 3965 p = o.outerColors.slice(); 3966 c && h[0].coord > h[c - 1].coord && (h.reverse(), p.reverse()); 3967 var g = h[0].coord - 10, 3968 m = h[c - 1].coord + 10, 3969 v = m - g; 3970 if (v < .001) return "transparent";
3971 d(h, function(t) { t.offset = (t.coord - g) / v }), h.push({ offset: c ? h[c - 1].offset : .5, color: p[1] || "transparent" }), h.unshift({ offset: c ? h[0].offset : .5, color: p[0] || "transparent" }); 3972 var y = new LS(0, 0, 0, 0, h, !0); 3973 return y[n] = g, y[n + "2"] = m, y 3974 } 3975 } 3976 } 3977 3978 function wu(t, e, i) { 3979 var n = t.get("showAllSymbol"), 3980 o = "auto" === n; 3981 if (!n || o) { 3982 var a = i.getAxesByScale("ordinal")[0]; 3983 if (a && (!o || !bu(a, e))) { 3984 var r = e.mapDimension(a.dim), 3985 s = {}; 3986 return d(a.getViewLabels(), function(t) { s[t.tickValue] = 1 }), 3987 function(t) { return !s.hasOwnProperty(e.get(r, t)) } 3988 } 3989 } 3990 } 3991 3992 function bu(t, e) { 3993 var i = t.getExtent(), 3994 n = Math.abs(i[1] - i[0]) / t.scale.count(); 3995 isNaN(n) && (n = 0); 3996 for (var o = e.count(), a = Math.max(1, Math.round(o / 5)), r = 0; r < o; r += a) 3997 if (1.5 * Kl.getSymbolSize(e, r)[t.isHorizontal() ? 1 : 0] > n) return !1; 3998 return !0 3999 } 4000 4001 function Su(t) { return this._axes[t] } 4002 4003 function Mu(t) { xD.call(this, t) } 4004 4005 function Iu(t, e) { return e.type || (e.data ? "category" : "value") } 4006 4007 function Tu(t, e, i) { return t.getCoordSysModel() === e } 4008 4009 function Du(t, e, i) { this._coordsMap = {}, this._coordsList = [], this._axesMap = {}, this._axesList = [], this._initCartesian(t, e, i), this.model = t } 4010 4011 function Au(t, e, i) { 4012 i.getAxesOnZeroOf = function() { return n ? [n] : [] }; 4013 var n, o = t[e], 4014 a = i.model, 4015 r = a.get("axisLine.onZero"), 4016 s = a.get("axisLine.onZeroAxisIndex"); 4017 if (r) 4018 if (null == s) { 4019 for (var l in o) 4020 if (o.hasOwnProperty(l) && Cu(o[l])) { n = o[l]; break } 4021 } else Cu(o[s]) && (n = o[s]) 4022 } 4023 4024 function Cu(t) { return t && "category" !== t.type && "time" !== t.type && _l(t) } 4025 4026 function Lu(t, e) { 4027 var i = t.getExtent(), 4028 n = i[0] + i[1]; 4029 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 } 4030 } 4031 4032 function ku(t, e) { return f(AD, function(e) { return t.getReferringComponents(e)[0] }) } 4033 4034 function Pu(t) { return "cartesian2d" === t.get("coordinateSystem") } 4035 4036 function Nu(t) { var e = { componentType: t.mainType }; return e[t.mainType + "Index"] = t.componentIndex, e } 4037 4038 function Ou(t, e, i, n) { 4039 var o, a, r = Oo(i - t.rotation), 4040 s = n[0] > n[1], 4041 l = "start" === e && !s || "start" !== e && s; 4042 return Eo(r - CD / 2) ? (a = l ? "bottom" : "top", o = "center") : Eo(r - 1.5 * CD) ? (a = l ? "top" : "bottom", o = "center") : (a = "middle", o = r < 1.5 * CD && r > CD / 2 ? l ? "left" : "right" : l ? "right" : "left"), { rotation: r, textAlign: o, textVerticalAlign: a } 4043 } 4044 4045 function Eu(t) { var e = t.get("tooltip"); return t.get("silent") || !(t.get("triggerEvent") || e && e.show) } 4046 4047 function Ru(t, e, i) { 4048 var n = t.get("axisLabel.showMinLabel"), 4049 o = t.get("axisLabel.showMaxLabel"); 4050 e = e || [], i = i || []; 4051 var a = e[0], 4052 r = e[1], 4053 s = e[e.length - 1], 4054 l = e[e.length - 2], 4055 u = i[0], 4056 h = i[1], 4057 c = i[i.length - 1], 4058 d = i[i.length - 2]; 4059 !1 === n ? (zu(a), zu(u)) : Bu(a, r) && (n ? (zu(r), zu(h)) : (zu(a), zu(u))), !1 === o ? (zu(s), zu(c)) : Bu(l, s) && (o ? (zu(l), zu(d)) : (zu(s), zu(c))) 4060 } 4061 4062 function zu(t) { t && (t.ignore = !0) } 4063 4064 function Bu(t, e, i) { 4065 var n = t && t.getBoundingRect().clone(), 4066 o = e && e.getBoundingRect().clone(); 4067 if (n && o) { var a = lt([]); return dt(a, a, -t.rotation), n.applyTransform(ht([], a, t.getLocalTransform())), o.applyTransform(ht([], a, e.getLocalTransform())), n.intersect(o) } 4068 } 4069 4070 function Vu(t) { return "middle" === t || "center" === t } 4071 4072 function Gu(t, e, i) { 4073 var n = e.axis; 4074 if (e.get("axisTick.show") && !n.scale.isBlank()) { 4075 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++) { 4076 var p = l[f].coord; 4077 u[0] = p, u[1] = 0, h[0] = p, h[1] = i.tickDirection * s, c && (Q(u, u, c), Q(h, h, c)); 4078 var g = new MS(Gn({ 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 })); 4079 t.group.add(g), d.push(g) 4080 } 4081 return d 4082 } 4083 } 4084 4085 function Wu(t, e, i) { 4086 var n = e.axis; 4087 if (T(i.axisLabelShow, e.get("axisLabel.show")) && !n.scale.isBlank()) { 4088 var o = e.getModel("axisLabel"), 4089 a = o.get("margin"), 4090 r = n.getViewLabels(), 4091 s = (T(i.labelRotate, o.get("rotate")) || 0) * CD / 180, 4092 l = PD(i.rotation, s, i.labelDirection), 4093 u = e.getCategories(!0), 4094 h = [], 4095 c = Eu(e), 4096 f = e.get("triggerEvent"); 4097 return d(r, function(r, s) { 4098 var d = r.tickValue, 4099 p = r.formattedLabel, 4100 g = r.rawLabel, 4101 m = o; 4102 u && u[d] && u[d].textStyle && (m = new wo(u[d].textStyle, o, e.ecModel)); 4103 var v = m.getTextColor() || e.get("axisLine.lineStyle.color"), 4104 y = [n.dataToCoord(d), i.labelOffset + i.labelDirection * a], 4105 x = new fS({ anid: "label_" + d, position: y, rotation: l.rotation, silent: c, z2: 10 }); 4106 no(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 = Nu(e), x.eventData.targetType = "axisLabel", x.eventData.value = g), t._dumbGroup.add(x), x.updateTransform(), h.push(x), t.group.add(x), x.decomposeTransform() 4107 }), h 4108 } 4109 } 4110 4111 function Fu(t, e) { var i = { axesInfo: {}, seriesInvolved: !1, coordSysAxesInfo: {}, coordSysMap: {} }; return Hu(i, t, e), i.seriesInvolved && Uu(i, t), i } 4112 4113 function Hu(t, e, i) { 4114 var n = e.getComponent("tooltip"), 4115 o = e.getComponent("axisPointer"), 4116 a = o.get("link", !0) || [], 4117 r = []; 4118 ND(i.getCoordinateSystems(), function(i) { 4119 function s(n, s, l) { 4120 var c = l.model.getModel("axisPointer", o), 4121 d = c.get("show"); 4122 if (d && ("auto" !== d || n || $u(c))) { 4123 null == s && (s = c.get("triggerTooltip")); 4124 var f = (c = n ? Zu(l, h, o, e, n, s) : c).get("snap"), 4125 p = Ju(l.model), 4126 g = s || f || "category" === l.type, 4127 m = t.axesInfo[p] = { key: p, axis: l, coordSys: i, axisPointerModel: c, triggerTooltip: s, involveSeries: g, snap: f, useHandle: $u(c), seriesModels: [] }; 4128 u[p] = m, t.seriesInvolved |= g; 4129 var v = Xu(a, l); 4130 if (null != v) { 4131 var y = r[v] || (r[v] = { axesInfo: {} }); 4132 y.axesInfo[p] = m, y.mapper = a[v].mapper, m.linkGroup = y 4133 } 4134 } 4135 } 4136 if (i.axisPointerEnabled) { 4137 var l = Ju(i.model), 4138 u = t.coordSysAxesInfo[l] = {}; 4139 t.coordSysMap[l] = i; 4140 var h = i.model.getModel("tooltip", n); 4141 if (ND(i.getAxes(), OD(s, !1, null)), i.getTooltipAxes && n && h.get("show")) { 4142 var c = "axis" === h.get("trigger"), 4143 d = "cross" === h.get("axisPointer.type"), 4144 f = i.getTooltipAxes(h.get("axisPointer.axis"));
4145 (c || d) && ND(f.baseAxes, OD(s, !d || "cross", c)), d && ND(f.otherAxes, OD(s, "cross", !1)) 4146 } 4147 } 4148 }) 4149 } 4150 4151 function Zu(t, e, n, o, a, s) { 4152 var l = e.getModel("axisPointer"), 4153 u = {}; 4154 ND(["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"); 4155 var h = u.label || (u.label = {}); 4156 if (null == h.show && (h.show = !1), "cross" === a) { 4157 var c = l.get("label.show"); 4158 if (h.show = null == c || c, !s) { 4159 var d = u.lineStyle = l.get("crossStyle"); 4160 d && r(h, d.textStyle) 4161 } 4162 } 4163 return t.model.getModel("axisPointer", new wo(u, n, o)) 4164 } 4165 4166 function Uu(t, e) { 4167 e.eachSeries(function(e) { 4168 var i = e.coordinateSystem, 4169 n = e.get("tooltip.trigger", !0), 4170 o = e.get("tooltip.show", !0); 4171 i && "none" !== n && !1 !== n && "item" !== n && !1 !== o && !1 !== e.get("axisPointer.show", !0) && ND(t.coordSysAxesInfo[Ju(i.model)], function(t) { 4172 var n = t.axis; 4173 i.getAxis(n.dim) === n && (t.seriesModels.push(e), null == t.seriesDataCount && (t.seriesDataCount = 0), t.seriesDataCount += e.getData().count()) 4174 }) 4175 }, this) 4176 } 4177 4178 function Xu(t, e) { for (var i = e.model, n = e.dim, o = 0; o < t.length; o++) { var a = t[o] || {}; if (ju(a[n + "AxisId"], i.id) || ju(a[n + "AxisIndex"], i.componentIndex) || ju(a[n + "AxisName"], i.name)) return o } } 4179 4180 function ju(t, e) { return "all" === t || y(t) && l(t, e) >= 0 || t === e } 4181 4182 function Yu(t) { 4183 var e = qu(t); 4184 if (e) { 4185 var i = e.axisPointerModel, 4186 n = e.axis.scale, 4187 o = i.option, 4188 a = i.get("status"), 4189 r = i.get("value"); 4190 null != r && (r = n.parse(r)); 4191 var s = $u(i); 4192 null == a && (o.status = s ? "show" : "hide"); 4193 var l = n.getExtent().slice(); 4194 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") 4195 } 4196 } 4197 4198 function qu(t) { var e = (t.ecModel.getComponent("axisPointer") || {}).coordSysAxesInfo; return e && e.axesInfo[Ju(t)] } 4199 4200 function Ku(t) { var e = qu(t); return e && e.axisPointerModel } 4201 4202 function $u(t) { return !!t.get("handle.show") } 4203 4204 function Ju(t) { return t.type + "||" + t.id } 4205 4206 function Qu(t, e, i, n, o, a) { 4207 var r = ED.getAxisPointerClass(t.axisPointerClass); 4208 if (r) { 4209 var s = Ku(e); 4210 s ? (t._axisPointer || (t._axisPointer = new r)).render(e, s, n, a) : th(t, n) 4211 } 4212 } 4213 4214 function th(t, e, i) { 4215 var n = t._axisPointer; 4216 n && n.dispose(e, i), t._axisPointer = null 4217 } 4218 4219 function eh(t, e, i) { 4220 i = i || {}; 4221 var n = t.coordinateSystem, 4222 o = e.axis, 4223 a = {}, 4224 r = o.getAxesOnZeroOf()[0], 4225 s = o.position, 4226 l = r ? "onZero" : s, 4227 u = o.dim, 4228 h = n.getRect(), 4229 c = [h.x, h.x + h.width, h.y, h.y + h.height], 4230 d = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 }, 4231 f = e.get("offset") || 0, 4232 p = "x" === u ? [c[2] - f, c[3] + f] : [c[0] - f, c[1] + f]; 4233 if (r) { 4234 var g = r.toGlobalCoord(r.dataToCoord(0)); 4235 p[d.onZero] = Math.max(Math.min(g, p[1]), p[0]) 4236 } 4237 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); 4238 var m = { top: -1, bottom: 1, left: -1, right: 1 }; 4239 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); 4240 var v = e.get("axisLabel.rotate"); 4241 return a.labelRotate = "top" === l ? -v : v, a.z2 = 1, a 4242 } 4243 4244 function ih(t, e, i, n, o, a, r) { io(t, e, i.getModel("label"), i.getModel("emphasis.label"), { labelFetcher: o, labelDataIndex: a, defaultText: ql(o.getData(), a), isRectText: !0, autoColor: n }), nh(t), nh(e) } 4245 4246 function nh(t, e) { "outside" === t.textPosition && (t.textPosition = e) } 4247 4248 function oh(t, e, i) { i.style.text = null, fo(i, { shape: { width: 0 } }, e, t, function() { i.parent && i.parent.remove(i) }) } 4249 4250 function ah(t, e, i) { i.style.text = null, fo(i, { shape: { r: i.shape.r0 } }, e, t, function() { i.parent && i.parent.remove(i) }) } 4251 4252 function rh(t, e, i, n, o, a, s, l) { 4253 var u = e.getItemVisual(i, "color"), 4254 h = e.getItemVisual(i, "opacity"), 4255 c = n.getModel("itemStyle"), 4256 d = n.getModel("emphasis.itemStyle").getBarItemStyle(); 4257 l || t.setShape("r", c.get("barBorderRadius") || 0), t.useStyle(r({ fill: u, opacity: h }, c.getBarItemStyle())); 4258 var f = n.getShallow("cursor"); 4259 f && t.attr("cursor", f); 4260 var p = s ? o.height > 0 ? "bottom" : "top" : o.width > 0 ? "left" : "right"; 4261 l || ih(t.style, d, n, u, a, i, p), eo(t, d) 4262 } 4263 4264 function sh(t, e) { var i = t.get(HD) || 0; return Math.min(i, Math.abs(e.width), Math.abs(e.height)) } 4265 4266 function lh(t, e, i) { 4267 var n = t.getData(), 4268 o = [], 4269 a = n.getLayout("valueAxisHorizontal") ? 1 : 0; 4270 o[1 - a] = n.getLayout("valueAxisStart"); 4271 var r = new XD({ shape: { points: n.getLayout("largePoints") }, incremental: !!i, __startPoint: o, __valueIdx: a }); 4272 e.add(r), uh(r, t, n) 4273 } 4274 4275 function uh(t, e, i) { 4276 var n = i.getVisual("borderColor") || i.getVisual("color"), 4277 o = e.getModel("itemStyle").getItemStyle(["color", "borderColor"]); 4278 t.useStyle(o), t.style.fill = null, t.style.stroke = n, t.style.lineWidth = i.getLayout("barWidth") 4279 } 4280 4281 function hh(t, e, i, n) { 4282 var o = e.getData(), 4283 a = this.dataIndex, 4284 r = o.getName(a), 4285 s = e.get("selectedOffset"); 4286 n.dispatchAction({ type: "pieToggleSelect", from: t, name: r, seriesId: e.id }), o.each(function(t) { ch(o.getItemGraphicEl(t), o.getItemLayout(t), e.isSelected(o.getName(t)), s, i) }) 4287 } 4288 4289 function ch(t, e, i, n, o) { 4290 var a = (e.startAngle + e.endAngle) / 2,
4291 r = Math.cos(a), 4292 s = Math.sin(a), 4293 l = i ? n : 0, 4294 u = [r * l, s * l]; 4295 o ? t.animate().when(200, { position: u }).start("bounceOut") : t.attr("position", u) 4296 } 4297 4298 function dh(t, e) { 4299 function i() { a.ignore = a.hoverIgnore, r.ignore = r.hoverIgnore } 4300 4301 function n() { a.ignore = a.normalIgnore, r.ignore = r.normalIgnore } 4302 sw.call(this); 4303 var o = new vS({ z2: 2 }), 4304 a = new bS, 4305 r = new fS; 4306 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) 4307 } 4308 4309 function fh(t, e, i, n, o, a, r) { 4310 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--); } 4311 4312 function l(t, e, i, n, o, a) { 4313 for (var r = e ? Number.MAX_VALUE : 0, s = 0, l = t.length; s < l; s++) 4314 if ("center" !== t[s].position) { 4315 var u = Math.abs(t[s].y - n), 4316 h = t[s].len, 4317 c = t[s].len2, 4318 d = u < o + h ? Math.sqrt((o + h + c) * (o + h + c) - u * u) : Math.abs(t[s].x - i); 4319 e && d >= r && (d = r - 10), !e && d <= r && (d = r + 10), t[s].x = i + d * a, r = d 4320 } 4321 } 4322 t.sort(function(t, e) { return t.y - e.y }); 4323 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) { 4324 for (var a = e; a < i; a++) 4325 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); 4326 s(i - 1, n / 2) 4327 }(p, c, -u), h = t[p].y + t[p].height; 4328 r - h < 0 && s(c - 1, h - r); 4329 for (p = 0; p < c; p++) t[p].y >= i ? f.push(t[p]) : d.push(t[p]); 4330 l(d, !1, e, i, n, o), l(f, !0, e, i, n, o) 4331 } 4332 4333 function ph(t, e, i, n, o, a) { 4334 for (var r = [], s = [], l = 0; l < t.length; l++) t[l].x < e ? r.push(t[l]) : s.push(t[l]); 4335 fh(s, e, i, n, 1, o, a), fh(r, e, i, n, -1, o, a); 4336 for (l = 0; l < t.length; l++) { 4337 var u = t[l].linePoints; 4338 if (u) { 4339 var h = u[1][0] - u[2][0]; 4340 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 4341 } 4342 } 4343 } 4344 4345 function gh() { this.group = new sw } 4346 4347 function mh(t, e, i) { qT.call(this, t, e, i), this.type = "value", this.angle = 0, this.name = "", this.model } 4348 4349 function vh(t, e, i) { 4350 this._model = t, this.dimensions = [], this._indicatorAxes = f(t.getIndicatorModels(), function(t, e) { 4351 var i = "indicator_" + e, 4352 n = new mh(i, new mT); 4353 return n.name = t.get("name"), n.model = t, t.axis = n, this.dimensions.push(i), n 4354 }, this), this.resize(t, i), this.cx, this.cy, this.r, this.startAngle 4355 } 4356 4357 function yh(t, e) { return r({ show: e }, t) } 4358 4359 function xh(t) { return y(t) || (t = [+t, +t]), t } 4360 4361 function _h() { E_.call(this) } 4362 4363 function wh(t) { this.name = t, this.zoomLimit, E_.call(this), this._roamTransformable = new _h, this._rawTransformable = new _h, this._center, this._zoom } 4364 4365 function bh(t, e, i, n) { 4366 var o = i.seriesModel, 4367 a = o ? o.coordinateSystem : null; 4368 return a === this ? a[t](n) : null 4369 } 4370 4371 function Sh(t, e, i, n, o) { wh.call(this, t), this.map = e, this._nameCoordMap = R(), this.loadGeoJson(i, n, o) } 4372 4373 function Mh(t, e, i, n) { 4374 var o = i.geoModel, 4375 a = i.seriesModel, 4376 r = o ? o.coordinateSystem : a ? a.coordinateSystem || (a.getReferringComponents("geo")[0] || {}).coordinateSystem : null; 4377 return r === this ? r[t](n) : null 4378 } 4379 4380 function Ih(t, e) { 4381 var i = t.get("boundingCoords"); 4382 if (null != i) { 4383 var n = i[0], 4384 o = i[1]; 4385 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]) 4386 }
4387 var a, r = this.getBoundingRect(), 4388 s = t.get("layoutCenter"), 4389 l = t.get("layoutSize"), 4390 u = e.getWidth(), 4391 h = e.getHeight(), 4392 c = t.get("aspectScale") || .75, 4393 d = r.width / r.height * c, 4394 f = !1; 4395 s && l && (s = [Do(s[0], u), Do(s[1], h)], l = Do(l, Math.min(u, h)), isNaN(s[0]) || isNaN(s[1]) || isNaN(l) || (f = !0)); 4396 if (f) { 4397 var p = {}; 4398 d > 1 ? (p.width = l, p.height = l / d) : (p.height = l, p.width = l * d), p.y = s[1] - p.height / 2, p.x = s[0] - p.width / 2 4399 } else(a = t.getBoxLayoutParams()).aspect = d, p = Qo(a, { width: u, height: h }); 4400 this.setViewRect(p.x, p.y, p.width, p.height), this.setCenter(t.get("center")), this.setZoom(t.get("zoom")) 4401 } 4402 4403 function Th(t, e) { d(e.get("geoCoord"), function(e, i) { t.addGeoCoord(i, e) }) } 4404 4405 function Dh(t, e, i) { Lh(t)[e] = i } 4406 4407 function Ah(t, e, i) { 4408 var n = Lh(t); 4409 n[e] === i && (n[e] = null) 4410 } 4411 4412 function Ch(t, e) { return !!Lh(t)[e] } 4413 4414 function Lh(t) { return t[xA] || (t[xA] = {}) } 4415 4416 function kh(t) { 4417 this.pointerChecker, this._zr = t, this._opt = {}; 4418 var e = m, 4419 n = e(Ph, this), 4420 o = e(Nh, this), 4421 a = e(Oh, this), 4422 s = e(Eh, this), 4423 l = e(Rh, this); 4424 D_.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, 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 } 4425 } 4426 4427 function Ph(t) { 4428 if (!(ci(t) || t.target && t.target.draggable)) { 4429 var e = t.offsetX, 4430 i = t.offsetY; 4431 this.pointerChecker && this.pointerChecker(t, e, i) && (this._x = e, this._y = i, this._dragging = !0) 4432 } 4433 } 4434 4435 function Nh(t) { 4436 if (!ci(t) && Bh(this, "moveOnMouseMove", t) && this._dragging && "pinch" !== t.gestureEvent && !Ch(this._zr, "globalPan")) { 4437 var e = t.offsetX, 4438 i = t.offsetY, 4439 n = this._x, 4440 o = this._y, 4441 a = e - n, 4442 r = i - o; 4443 this._x = e, this._y = i, this._opt.preventDefaultMouseMove && zw(t.event), this.trigger("pan", a, r, n, o, e, i) 4444 } 4445 } 4446 4447 function Oh(t) { ci(t) || (this._dragging = !1) } 4448 4449 function Eh(t) { 4450 if (Bh(this, "zoomOnMouseWheel", t) && 0 !== t.wheelDelta) { 4451 var e = t.wheelDelta > 0 ? 1.1 : 1 / 1.1; 4452 zh.call(this, t, e, t.offsetX, t.offsetY) 4453 } 4454 } 4455 4456 function Rh(t) { 4457 if (!Ch(this._zr, "globalPan")) { 4458 var e = t.pinchScale > 1 ? 1.1 : 1 / 1.1; 4459 zh.call(this, t, e, t.pinchX, t.pinchY) 4460 } 4461 } 4462 4463 function zh(t, e, i, n) { this.pointerChecker && this.pointerChecker(t, i, n) && (zw(t.event), this.trigger("zoom", e, i, n)) } 4464 4465 function Bh(t, e, i) { var n = t._opt[e]; return n && (!_(n) || i.event[n + "Key"]) } 4466 4467 function Vh(t, e, i) { 4468 var n = t.target, 4469 o = n.position; 4470 o[0] += e, o[1] += i, n.dirty() 4471 } 4472 4473 function Gh(t, e, i, n) { 4474 var o = t.target, 4475 a = t.zoomLimit, 4476 r = o.position, 4477 s = o.scale, 4478 l = t.zoom = t.zoom || 1; 4479 if (l *= e, a) { 4480 var u = a.min || 0, 4481 h = a.max || 1 / 0; 4482 l = Math.max(Math.min(h, l), u) 4483 } 4484 var c = l / t.zoom; 4485 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() 4486 } 4487 4488 function Wh(t, e, i) { 4489 var n = e.getComponentByElement(t.topTarget), 4490 o = n && n.coordinateSystem; 4491 return n && n !== i && !_A[n.mainType] && o && o.model !== i 4492 } 4493 4494 function Fh(t, e) { 4495 var i = t.getItemStyle(), 4496 n = t.get("areaColor"); 4497 return null != n && (i.fill = n), i 4498 } 4499 4500 function Hh(t, e, i, n, o) { 4501 i.off("click"), i.off("mousedown"), e.get("selectedMode") && (i.on("mousedown", function() { t._mou
4501seDownFlag = !0 }), i.on("click", function(a) { 4502 if (t._mouseDownFlag) { 4503 t._mouseDownFlag = !1; 4504 for (var r = a.target; !r.__regions;) r = r.parent; 4505 if (r) { 4506 var s = { type: ("geo" === e.mainType ? "geo" : "map") + "ToggleSelect", batch: f(r.__regions, function(t) { return { name: t.name, from: o.uid } }) }; 4507 s[e.mainType + "Id"] = e.id, n.dispatchAction(s), Zh(e, i) 4508 } 4509 } 4510 })) 4511 } 4512 4513 function Zh(t, e) { e.eachChild(function(e) { d(e.__regions, function(i) { e.trigger(t.isSelected(i.name) ? "emphasis" : "normal") }) }) } 4514 4515 function Uh(t, e) { 4516 var i = new sw; 4517 this._controller = new kh(t.getZr()), this._controllerHost = { target: e ? i : null }, this.group = i, this._updateGroup = e, this._mouseDownFlag 4518 } 4519 4520 function Xh(t, e, i) { 4521 var n = t.getZoom(), 4522 o = t.getCenter(), 4523 a = e.zoom, 4524 r = t.dataToPoint(o); 4525 if (null != e.dx && null != e.dy) { 4526 r[0] -= e.dx, r[1] -= e.dy; 4527 o = t.pointToData(r); 4528 t.setCenter(o) 4529 } 4530 if (null != a) { 4531 if (i) { 4532 var s = i.min || 0, 4533 l = i.max || 1 / 0; 4534 a = Math.max(Math.min(n * a, l), s) / n 4535 } 4536 t.scale[0] *= a, t.scale[1] *= a; 4537 var u = t.position, 4538 h = (e.originX - u[0]) * (a - 1), 4539 c = (e.originY - u[1]) * (a - 1); 4540 u[0] -= h, u[1] -= c, t.updateTransform(); 4541 o = t.pointToData(r); 4542 t.setCenter(o), t.setZoom(a * n) 4543 } 4544 return { center: t.getCenter(), zoom: t.getZoom() } 4545 } 4546 4547 function jh(t, e) { 4548 var i = {}; 4549 return d(t, function(t) { 4550 t.each(t.mapDimension("value"), function(e, n) { 4551 var o = "ec-" + t.getName(n); 4552 i[o] = i[o] || [], isNaN(e) || i[o].push(e) 4553 }) 4554 }), 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 }) 4555 } 4556 4557 function Yh(t) { 4558 var e = t.mainData, 4559 i = t.datas; 4560 i || (i = { main: e }, t.datasAttr = { main: "data" }), t.datas = t.mainData = null, tc(e, i, t), wA(i, function(i) { wA(e.TRANSFERABLE_METHODS, function(e) { i.wrapMethod(e, v(qh, t)) }) }), e.wrapMethod("cloneShallow", v($h, t)), wA(e.CHANGABLE_METHODS, function(i) { e.wrapMethod(i, v(Kh, t)) }), k(i[e.dataType] === e) 4561 } 4562 4563 function qh(t, e) { 4564 if (Qh(this)) { 4565 var i = a({}, this[bA]); 4566 i[this.dataType] = e, tc(e, i, t) 4567 } else ec(e, this.dataType, this[SA], t); 4568 return e 4569 } 4570 4571 function Kh(t, e) { return t.struct && t.struct.update(this), e } 4572 4573 function $h(t, e) { return wA(e[bA], function(i, n) { i !== e && ec(i.cloneShallow(), n, e, t) }), e } 4574 4575 function Jh(t) { var e = this[SA]; return null == t || null == e ? e : e[bA][t] } 4576 4577 function Qh(t) { return t[SA] === t } 4578 4579 function tc(t, e, i) { t[bA] = {}, wA(e, function(e, n) { ec(e, n, t, i) }) } 4580 4581 function ec(t, e, i, n) { i[bA][e] = t, t[SA] = i, t.dataType = e, n.struct && (t[n.structAttr] = n.struct, n.struct[n.datasAttr[e]] = t), t.getLinkedData = Jh } 4582 4583 function ic(t, e, i) { this.root, this.data, this._nodes = [], this.hostModel = t, this.levelModels = f(e || [], function(e) { return new wo(e, t, t.ecModel) }), this.leavesModel = new wo(i || {}, t, t.ecModel) } 4584 4585 function nc(t, e) { 4586 var i = e.children; 4587 t.parentNode !== e && (i.push(t), t.parentNode = e) 4588 } 4589 4590 function oc(t) { 4591 t.hierNode = { defaultAncestor: null, ancestor: t, prelim: 0, modifier: 0, change: 0, shift: 0, i: 0, thread: null }; 4592 for (var e, i, n = [t]; e = n.pop();) 4593 if (i = e.children, e.isExpand && i.length) 4594 for (var o = i.length - 1; o >= 0; o--) { 4595 var a = i[o]; 4596 a.hierNode = { defaultAncestor: null, ancestor: a, prelim: 0, modifier: 0, change: 0, shift: 0, i: o, thread: null }, n.push(a) 4597 } 4598 } 4599 4600 function ac(t, e) { 4601 var i = t.isExpand ? t.children : [], 4602 n = t.parentNode.children, 4603 o = t.hierNode.i ? n[t.hierNode.i - 1] : null; 4604 if (i.length) { 4605 hc(t); 4606 var a = (i[0].hierNode.prelim + i[i.length - 1].hierNode.prelim) / 2;
4607 o ? (t.hierNode.prelim = o.hierNode.prelim + e(t, o), t.hierNode.modifier = t.hierNode.prelim - a) : t.hierNode.prelim = a 4608 } else o && (t.hierNode.prelim = o.hierNode.prelim + e(t, o)); 4609 t.parentNode.hierNode.defaultAncestor = cc(t, o, t.parentNode.hierNode.defaultAncestor || n[0], e) 4610 } 4611 4612 function rc(t) { 4613 var e = t.hierNode.prelim + t.parentNode.hierNode.modifier; 4614 t.setLayout({ x: e }, !0), t.hierNode.modifier += t.parentNode.hierNode.modifier 4615 } 4616 4617 function sc(t) { return arguments.length ? t : mc } 4618 4619 function lc(t, e) { var i = {}; return t -= Math.PI / 2, i.x = e * Math.cos(t), i.y = e * Math.sin(t), i } 4620 4621 function uc(t, e) { return Qo(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }) } 4622 4623 function hc(t) { 4624 for (var e = t.children, i = e.length, n = 0, o = 0; --i >= 0;) { 4625 var a = e[i]; 4626 a.hierNode.prelim += n, a.hierNode.modifier += n, o += a.hierNode.change, n += a.hierNode.shift + o 4627 } 4628 } 4629 4630 function cc(t, e, i, n) { 4631 if (e) { 4632 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 = dc(s), a = fc(a), s && a;) { 4633 o = dc(o), r = fc(r), o.hierNode.ancestor = t; 4634 var d = s.hierNode.prelim + c - a.hierNode.prelim - u + n(s, a); 4635 d > 0 && (gc(pc(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 4636 } 4637 s && !dc(o) && (o.hierNode.thread = s, o.hierNode.modifier += c - l), a && !fc(r) && (r.hierNode.thread = a, r.hierNode.modifier += u - h, i = t) 4638 } 4639 return i 4640 } 4641 4642 function dc(t) { var e = t.children; return e.length && t.isExpand ? e[e.length - 1] : t.hierNode.thread } 4643 4644 function fc(t) { var e = t.children; return e.length && t.isExpand ? e[0] : t.hierNode.thread } 4645 4646 function pc(t, e, i) { return t.hierNode.ancestor.parentNode === e.parentNode ? t.hierNode.ancestor : i } 4647 4648 function gc(t, e, i) { 4649 var n = i / (e.hierNode.i - t.hierNode.i); 4650 e.hierNode.change -= n, e.hierNode.shift += i, e.hierNode.modifier += i, e.hierNode.prelim += i, t.hierNode.change += n 4651 } 4652 4653 function mc(t, e) { return t.parentNode === e.parentNode ? 1 : 2 } 4654 4655 function vc(t, e) { var i = t.getItemLayout(e); return i && !isNaN(i.x) && !isNaN(i.y) && "none" !== t.getItemVisual(e, "symbol") } 4656 4657 function yc(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 } 4658 4659 function xc(t, e, i, n, o, a) { 4660 var s = !i, 4661 l = t.tree.getNodeByDataIndex(e), 4662 a = yc(l, l.getModel(), a), 4663 u = t.tree.root, 4664 h = l.parentNode === u ? l : l.parentNode || l, 4665 c = t.getItemGraphicEl(h.dataIndex), 4666 d = h.getLayout(), 4667 f = c ? { x: c.position[0], y: c.position[1], rawX: c.__radialOldRawX, rawY: c.__radialOldRawY } : d, 4668 p = l.getLayout(); 4669 s ? (i = new Kl(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), fo(i, { position: [p.x, p.y] }, o); 4670 var g = i.getSymbolPath(); 4671 if ("radial" === a.layout) { 4672 var m, v, y = u.children[0], 4673 x = y.getLayout(), 4674 _ = y.children.length; 4675 if (p.x === x.x && !0 === l.isExpand) { 4676 var w = {}; 4677 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) 4678 } 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); 4679 var b = v ? "left" : "right"; 4680 g.setStyle({ textPosition: b, textRotation: -m, textOrigin: "center", verticalAlign: "middle" }) 4681 } 4682 if (l.parentNode && l.parentNode !== u) { 4683 var S = i.__edge; 4684 S || (S = i.__edge = new TS({ shape: wc(a, f, f), style: r({ opacity: 0 }, a.lineStyle) })), fo(S, { shape: wc(a, d, p), style: { opacity: 1 } }, o), n.add(S) 4685 } 4686 } 4687 4688 function _c(t, e, i, n, o, a) { 4689 for (var r, s = t.tree.getNodeByDataIndex(e), l = t.tree.root, a = yc(s, s.getModel(), a), u = s.parentNode === l ? s : s.parentNode || s; null == (r = u.getLayout());) u = u.parentNode === l ? u : u.parentNode || u; 4690 fo(i, { position: [r.x + 1, r.y + 1] }, o, function() { n.remove(i), t.setItemGraphicEl(e, null) }), i.fadeOut(null, { keepLabel: !0 }); 4691 var h = i.__edge; 4692 h && fo(h, { shape: wc(a, r, r), style: { opacity: 0 } }, o, function() { n.remove(h) }) 4693 } 4694 4695 function wc(t, e, i) { 4696 var n, o, a, r, s = t.orient; 4697 if ("radial" === t.layout) { 4698 var l = e.rawX, 4699 u = e.rawY, 4700 h = i.rawX, 4701 c = i.rawY, 4702 d = lc(l, u), 4703 f = lc(l, u + (c - u) * t.curvature), 4704 p = lc(h, c + (u - c) * t.curvature), 4705 g = lc(h, c); 4706 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 } 4707 } 4708 var l = e.x, 4709 u = e.y, 4710 h = i.x, 4711 c = i.y;
4712 return "LR" !== s && "RL" !== s || (n = l + (h - l) * t.curvature, o = u, a = h + (l - h) * t.curvature, r = c), "TB" !== s && "BT" !== s || (n = l, o = u + (c - u) * t.curvature, a = h, r = c + (u - c) * t.curvature), { x1: l, y1: u, x2: h, y2: c, cpx1: n, cpy1: o, cpx2: a, cpy2: r } 4713 } 4714 4715 function bc(t, e, i) { 4716 for (var n, o = [t], a = []; n = o.pop();) 4717 if (a.push(n), n.isExpand) { 4718 var r = n.children; 4719 if (r.length) 4720 for (var s = 0; s < r.length; s++) o.push(r[s]) 4721 } 4722 for (; n = a.pop();) e(n, i) 4723 } 4724 4725 function Sc(t, e) { 4726 for (var i, n = [t]; i = n.pop();) 4727 if (e(i), i.isExpand) { 4728 var o = i.children; 4729 if (o.length) 4730 for (var a = o.length - 1; a >= 0; a--) n.push(o[a]) 4731 } 4732 } 4733 4734 function Mc(t, e) { 4735 var i = uc(t, e); 4736 t.layoutInfo = i; 4737 var n = t.get("layout"), 4738 o = 0, 4739 a = 0, 4740 r = null; 4741 "radial" === n ? (o = 2 * Math.PI, a = Math.min(i.height, i.width) / 2, r = sc(function(t, e) { return (t.parentNode === e.parentNode ? 1 : 2) / t.depth })) : (o = i.width, a = i.height, r = sc()); 4742 var s = t.getData().tree.root, 4743 l = s.children[0]; 4744 if (l) { 4745 oc(s), bc(l, ac, r), s.hierNode.modifier = -l.hierNode.prelim, Sc(l, rc); 4746 var u = l, 4747 h = l, 4748 c = l; 4749 Sc(l, function(t) { 4750 var e = t.getLayout().x; 4751 e < u.getLayout().x && (u = t), e > h.getLayout().x && (h = t), t.depth > c.depth && (c = t) 4752 }); 4753 var d = u === h ? 1 : r(u, h) / 2, 4754 f = d - u.getLayout().x, 4755 p = 0, 4756 g = 0, 4757 m = 0, 4758 v = 0; 4759 if ("radial" === n) p = o / (h.getLayout().x + d + f), g = a / (c.depth - 1 || 1), Sc(l, function(t) { 4760 m = (t.getLayout().x + f) * p, v = (t.depth - 1) * g; 4761 var e = lc(m, v); 4762 t.setLayout({ x: e.x, y: e.y, rawX: m, rawY: v }, !0) 4763 }); 4764 else { var y = t.getOrient(); "RL" === y || "LR" === y ? (g = a / (h.getLayout().x + d + f), p = o / (c.depth - 1 || 1), Sc(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), Sc(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) })) } 4765 } 4766 } 4767 4768 function Ic(t, e, i) { 4769 if (t && l(e, t.type) >= 0) { 4770 var n = i.getData().tree.root, 4771 o = t.targetNode; 4772 if (o && n.contains(o)) return { node: o }; 4773 var a = t.targetNodeId; 4774 if (null != a && (o = n.getNodeById(a))) return { node: o } 4775 } 4776 } 4777 4778 function Tc(t) { for (var e = []; t;)(t = t.parentNode) && e.push(t); return e.reverse() } 4779 4780 function Dc(t, e) { return l(Tc(t), e) >= 0 } 4781 4782 function Ac(t, e) { 4783 for (var i = []; t;) { 4784 var n = t.dataIndex; 4785 i.push({ name: t.name, dataIndex: n, value: e.getRawValue(n) }), t = t.parentNode 4786 } 4787 return i.reverse(), i 4788 } 4789 4790 function Cc(t) { 4791 var e = 0; 4792 d(t.children, function(t) { 4793 Cc(t); 4794 var i = t.value; 4795 y(i) && (i = i[0]), e += i 4796 }); 4797 var i = t.value; 4798 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 4799 } 4800 4801 function Lc(t, e) { 4802 var i = e.get("color"); 4803 if (i) { 4804 var n; 4805 return d(t = t || [], function(t) { 4806 var e = new wo(t), 4807 i = e.get("color"); 4808 (e.get("itemStyle.color") || i && "none" !== i) && (n = !0) 4809 }), n || ((t[0] || (t[0] = {})).color = i.slice()), t 4810 } 4811 } 4812 4813 function kc(t) { this.group = new sw, t.add(this.group) } 4814 4815 function Pc(t, e, i, n, o, a) { 4816 var r = [ 4817 [o ? t : t - IA, e], 4818 [t + i, e], 4819 [t + i, e + n], 4820 [o ? t : t - IA, e + n] 4821 ]; 4822 return !a && r.splice(2, 0, [t + i + IA, e + n / 2]), !o && r.push([t, e + n / 2]), r 4823 } 4824 4825 function Nc(t, e, i) { t.eventData = { componentType: "series", componentSubType: "treemap", seriesIndex: e.componentIndex, seriesName: e.name, seriesType: "treemap", selfType: "breadcrumb", nodeData: { dataIndex: i && i.dataIndex, name: i && i.name }, treePathInfo: i && Ac(i, e) } } 4826 4827 function Oc() { 4828 var t, e = [], 4829 i = {}; 4830 return { 4831 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) }, 4832 done: function(e) { return t = e, this }, 4833 start: function() { 4834 for (var n = e.length, o = 0, a = e.length; o < a; o++) { 4835 var r = e[o]; 4836 r.el.animateTo(r.target, r.time, r.delay, r.easing, function() {--n || (e.length = 0, i = {}, t && t()) }) 4837 } 4838 return this 4839 } 4840 } 4841 } 4842 4843 function Ec(t, e, n, o, r, s, l, u, h, c) { 4844 function d(t, e) { w ? !t.invisible && s.push(t) : (e(), t.__tmWillVisible || (t.invisible = !1)) } 4845 4846 function f(e, n, o, a, r, s) { 4847 var u = l.getModel(), 4848 h = T(t.getFormattedLabel(l.dataIndex, "normal", null, null, s ? "upperLabel" : "label"), u.get("name")); 4849 if (!s && v.isLeafRoot) { 4850 var c = t.get("drillDownIcon", !0); 4851 h = c ? c + " " + h : h 4852 } 4853 var d = u.getModel(s ? PA : LA), 4854 f = u.getModel(s ? NA : kA), 4855 p = d.getShallow("show"); 4856 io(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 4857 } 4858 4859 function p(t, i, o, a) { 4860 var s = null != S && n[t][S], 4861 l = r[t]; 4862 return s ? (n[t][S] = null, g(l, s, t)) : w || ((s = new i({ z: Rc(o, a) })).__tmDepth = o, s.__tmStorageName = t, m(l, s, t)), e[t][b] = s 4863 } 4864 4865 function g(t, e, i) { 4866 (t[b] = {}).old = "nodeGroup" === i ? e.position.slice() : a({}, e.shape) 4867 } 4868 4869 function m(t, e, i) { 4870 var n = t[b] = {}, 4871 a = l.parentNode; 4872 if (a && (!o || "drillDown" === o.direction)) { 4873 var s = 0, 4874 u = 0, 4875 h = r.background[a.getRawIndex()]; 4876 !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 } 4877 } 4878 n.fadein = "nodeGroup" !== i 4879 } 4880 if (l) { 4881 var v = l.getLayout(); 4882 if (v && v.isInView) { 4883 var y = v.width, 4884 x = v.height, 4885 _ = v.borderWidth, 4886 w = v.invisible, 4887 b = l.getRawIndex(), 4888 S = u && u.getRawIndex(), 4889 M = l.viewChildren, 4890 I = v.upperHeight, 4891 D = M && M.length, 4892 A = l.getModel("itemStyle"), 4893 C = l.getModel("emphasis.itemStyle"), 4894 L = p("nodeGroup", DA); 4895 if (L) { 4896 if (h.add(L), L.attr("position", [v.x || 0, v.y || 0]), L.__tmNodeWidth = y, L.__tmNodeHeight = x, v.isAboveViewRoot) return L; 4897 var k = p("background", AA, c, EA); 4898 if (k && function(e, i, n) { 4899 i.dataIndex = l.dataIndex, i.seriesIndex = t.seriesIndex, i.setShape({ x: 0, y: 0, width: y, height: x }); 4900 var o = l.getVisual("borderColor", !0), 4901 a = C.get("borderColor"); 4902 d(i, function() { 4903 var t = BA(A); 4904 t.fill = o; 4905 var e = zA(C); 4906 if (e.fill = a, n) { 4907 var r = y - 2 * _; 4908 f(t, e, o, r, I, { x: _, y: 0, width: r, height: I }) 4909 } else t.text = e.text = null; 4910 i.setStyle(t), eo(i, e) 4911 }), e.add(i) 4912 }(L, k, D && v.upperHeight), !D) { 4913 var P = p("content", AA, c, RA); 4914 P && function(e, i) { 4915 i.dataIndex = l.dataIndex, i.seriesIndex = t.seriesIndex; 4916 var n = Math.max(y - 2 * _, 0), 4917 o = Math.max(x - 2 * _, 0); 4918 i.culling = !0, i.setShape({ x: _, y: _, width: n, height: o }); 4919 var a = l.getVisual("color", !0); 4920 d(i, function() { 4921 var t = BA(A); 4922 t.fill = a; 4923 var e = zA(C); 4924 f(t, e, a, n, o), i.setStyle(t), eo(i, e) 4925 }), e.add(i) 4926 }(L, P) 4927 } 4928 return L 4929 } 4930 } 4931 } 4932 } 4933 4934 function Rc(t, e) { var i = t * OA + e; return (i - 1) / i } 4935 4936 function zc(t) { 4937 var e = t.pieceList; 4938 t.hasSpecialVisual = !1, d(e, function(e, i) { e.originIndex = i, null != e.visual && (t.hasSpecialVisual = !0) }) 4939 } 4940 4941 function Bc(t) { 4942 var e = t.categories, 4943 i = t.visual, 4944 n = t.categoryMap = {}; 4945 if (WA(e, function(t, e) { n[t] = e }), !y(i)) { 4946 var o = []; 4947 w(i) ? WA(i, function(t, e) { 4948 var i = n[e]; 4949 o[null != i ? i : HA] = t 4950 }) : o[HA] = i, i = jc(t, o) 4951 } 4952 for (var a = e.length - 1; a >= 0;
4952 a--) null == i[a] && (delete n[e[a]], e.pop()) 4953 } 4954 4955 function Vc(t, e) { 4956 var i = t.visual, 4957 n = []; 4958 w(i) ? WA(i, function(t) { n.push(t) }) : null != i && n.push(i); 4959 var o = { color: 1, symbol: 1 }; 4960 e || 1 !== n.length || o.hasOwnProperty(t.type) || (n[1] = n[0]), jc(t, n) 4961 } 4962 4963 function Gc(t) { return { applyVisual: function(e, i, n) { e = this.mapValueToVisual(e), n("color", t(i("color"), e)) }, _doMap: Uc([0, 1]) } } 4964 4965 function Wc(t) { var e = this.option.visual; return e[Math.round(To(t, [0, 1], [0, e.length - 1], !0))] || {} } 4966 4967 function Fc(t) { return function(e, i, n) { n(t, this.mapValueToVisual(e)) } } 4968 4969 function Hc(t) { var e = this.option.visual; return e[this.option.loop && t !== HA ? t % e.length : t] } 4970 4971 function Zc() { return this.option.visual[0] } 4972 4973 function Uc(t) { return { linear: function(e) { return To(e, t, this.option.visual, !0) }, category: Hc, piecewise: function(e, i) { var n = Xc.call(this, i); return null == n && (n = To(e, t, this.option.visual, !0)), n }, fixed: Zc } } 4974 4975 function Xc(t) { 4976 var e = this.option, 4977 i = e.pieceList; 4978 if (e.hasSpecialVisual) { var n = i[ZA.findPieceIndex(t, i)]; if (n && n.visual) return n.visual[this.type] } 4979 } 4980 4981 function jc(t, e) { return t.visual = e, "color" === t.type && (t.parsedVisual = f(e, function(t) { return At(t) })), e } 4982 4983 function Yc(t, e, i) { return t ? e <= i : e < i } 4984 4985 function qc(t, e, i, n, o, a) { 4986 var r = t.getModel(), 4987 s = t.getLayout(); 4988 if (s && !s.invisible && s.isInView) { 4989 var l, u = t.getModel(YA), 4990 h = Kc(u, e, i[t.depth], n), 4991 c = u.get("borderColor"), 4992 f = u.get("borderColorSaturation"); 4993 null != f && (c = Jc(f, l = $c(h))), t.setVisual("borderColor", c); 4994 var p = t.viewChildren; 4995 if (p && p.length) { 4996 var g = td(t, r, s, u, h, p); 4997 d(p, function(t, e) { 4998 (t.depth >= o.length || t === o[t.depth]) && qc(t, id(r, h, t, e, g, a), i, n, o, a) 4999 }) 5000 } else l = $c(h), t.setVisual("color", l) 5001 } 5002 } 5003 5004 function Kc(t, e, i, n) { 5005 var o = a({}, e); 5006 return d(["color", "colorAlpha", "colorSaturation"], function(a) { 5007 var r = t.get(a, !0); 5008 null == r && i && (r = i[a]), null == r && (r = e[a]), null == r && (r = n.get(a)), null != r && (o[a] = r) 5009 }), o 5010 } 5011 5012 function $c(t) { 5013 var e = Qc(t, "color"); 5014 if (e) { 5015 var i = Qc(t, "colorAlpha"), 5016 n = Qc(t, "colorSaturation"); 5017 return n && (e = Et(e, null, null, n)), i && (e = Rt(e, i)), e 5018 } 5019 } 5020 5021 function Jc(t, e) { return null != e ? Et(e, null, null, t) : null } 5022 5023 function Qc(t, e) { var i = t[e]; if (null != i && "none" !== i) return i } 5024 5025 function td(t, e, i, n, o, a) { 5026 if (a && a.length) { 5027 var r = ed(e, "color") || null != o.color && "none" !== o.color && (ed(e, "colorAlpha") || ed(e, "colorSaturation")); 5028 if (r) { 5029 var s = e.get("visualMin"), 5030 l = e.get("visualMax"), 5031 u = i.dataExtent.slice(); 5032 null != s && s < u[0] && (u[0] = s), null != l && l > u[1] && (u[1] = l); 5033 var h = e.get("colorMappingBy"), 5034 c = { type: r.name, dataExtent: u, visual: r.range }; 5035 "color" !== c.type || "index" !== h && "id" !== h ? c.mappingMethod = "linear" : (c.mappingMethod = "category", c.loop = !0); 5036 var d = new ZA(c); 5037 return d.__drColorMappingBy = h, d 5038 } 5039 } 5040 } 5041 5042 function ed(t, e) { var i = t.get(e); return jA(i) && i.length ? { name: e, range: i } : null } 5043 5044 function id(t, e, i, n, o, r) { 5045 var s = a({}, e); 5046 if (o) { 5047 var l = o.type, 5048 u = "color" === l && o.__drColorMappingBy, 5049 h = "index" === u ? n : "id" === u ? r.mapIdToIndex(i.getId()) : i.getValue(t.get("visualDimension")); 5050 s[l] = o.mapValueToVisual(h) 5051 } 5052 return s 5053 } 5054
5055 function nd(t, e, i, n) { 5056 var o, a; 5057 if (!t.isRemoved()) { 5058 var r = t.getLayout(); 5059 o = r.width, a = r.height; 5060 var s = (f = t.getModel()).get(tC), 5061 l = f.get(eC) / 2, 5062 u = fd(f), 5063 h = Math.max(s, u), 5064 c = s - l, 5065 d = h - l, 5066 f = t.getModel(); 5067 t.setLayout({ borderWidth: s, upperHeight: h, upperLabelHeight: u }, !0); 5068 var p = (o = KA(o - 2 * c, 0)) * (a = KA(a - c - d, 0)), 5069 g = od(t, f, p, e, i, n); 5070 if (g.length) { 5071 var m = { x: c, y: d, width: o, height: a }, 5072 v = $A(o, a), 5073 y = 1 / 0, 5074 x = []; 5075 x.area = 0; 5076 for (var _ = 0, w = g.length; _ < w;) { 5077 var b = g[_]; 5078 x.push(b), x.area += b.getLayout().area; 5079 var S = ld(x, v, e.squareRatio); 5080 S <= y ? (_++, y = S) : (x.area -= x.pop().getLayout().area, ud(x, v, m, l, !1), v = $A(m.width, m.height), x.length = x.area = 0, y = 1 / 0) 5081 } 5082 if (x.length && ud(x, v, m, l, !0), !i) { 5083 var M = f.get("childrenVisibleMin"); 5084 null != M && p < M && (i = !0) 5085 } 5086 for (var _ = 0, w = g.length; _ < w; _++) nd(g[_], e, i, n + 1) 5087 } 5088 } 5089 } 5090 5091 function od(t, e, i, n, o, a) { 5092 var r = t.children || [], 5093 s = n.sort; 5094 "asc" !== s && "desc" !== s && (s = null); 5095 var l = null != n.leafDepth && n.leafDepth <= a; 5096 if (o && !l) return t.viewChildren = []; 5097 rd(r = g(r, function(t) { return !t.isRemoved() }), s); 5098 var u = sd(e, r, s); 5099 if (0 === u.sum) return t.viewChildren = []; 5100 if (u.sum = ad(e, i, u.sum, s, r), 0 === u.sum) return t.viewChildren = []; 5101 for (var h = 0, c = r.length; h < c; h++) { 5102 var d = r[h].getValue() / u.sum * i; 5103 r[h].setLayout({ area: d }) 5104 } 5105 return l && (r.length && t.setLayout({ isLeafRoot: !0 }, !0), r.length = 0), t.viewChildren = r, t.setLayout({ dataExtent: u.dataExtent }, !0), r 5106 } 5107 5108 function ad(t, e, i, n, o) { 5109 if (!n) return i; 5110 for (var a = t.get("visibleMin"), r = o.length, s = r, l = r - 1; l >= 0; l--) { 5111 var u = o["asc" === n ? r - l - 1 : l].getValue(); 5112 u / i * e < a && (s = l, i -= u) 5113 } 5114 return "asc" === n ? o.splice(0, r - s) : o.splice(s, r - s), i 5115 } 5116 5117 function rd(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 } 5118 5119 function sd(t, e, i) { 5120 for (var n = 0, o = 0, a = e.length; o < a; o++) n += e[o].getValue(); 5121 var r = t.get("visualDimension"); 5122 if (e && e.length) 5123 if ("value" === r && i) s = [e[e.length - 1].getValue(), e[0].getValue()], "asc" === i && s.reverse(); 5124 else { 5125 var s = [1 / 0, -1 / 0]; 5126 QA(e, function(t) { 5127 var e = t.getValue(r); 5128 e < s[0] && (s[0] = e), e > s[1] && (s[1] = e) 5129 }) 5130 } 5131 else s = [NaN, NaN]; 5132 return { sum: n, dataExtent: s } 5133 } 5134 5135 function ld(t, e, i) { 5136 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)); 5137 var l = t.area * t.area, 5138 u = e * e * i; 5139 return l ? KA(u * o / l, l / (u * a)) : 1 / 0 5140 } 5141 5142 function ud(t, e, i, n, o) { 5143 var a = e === i.width ? 0 : 1, 5144 r = 1 - a, 5145 s = ["x", "y"], 5146 l = ["width", "height"], 5147 u = i[s[a]], 5148 h = e ? t.area / e : 0; 5149 (o || h > i[l[r]]) && (h = i[l[r]]); 5150 for (var c = 0, d = t.length; c < d; c++) { 5151 var f = t[c], 5152 p = {}, 5153 g = h ? f.getLayout().area / h : 0, 5154 m = p[l[r]] = KA(h - 2 * n, 0), 5155 v = i[s[a]] + i[l[a]] - u, 5156 y = c === d - 1 || v < g ? v : g, 5157 x = p[l[a]] = KA(y - 2 * n, 0); 5158 p[s[r]] = i[s[r]] + $A(n, m / 2), p[s[a]] = u + $A(n, x / 2), u += y, f.setLayout(p, !0) 5159 } 5160 i[s[r]] += h, i[l[r]] -= h 5161 } 5162 5163 function hd(t, e, i, n, o) { 5164 var a = (e || {}).node, 5165 r = [n, o]; 5166 if (!a || a === i) return r; 5167 for (var s, l = n * o, u = l * t.option.zoomToNodeRatio; s = a.parentNode;) { 5168 for (var h = 0, c = s.children, d = 0, f = c.length; d < f; d++) h += c[d].getValue(); 5169 var p = a.getValue(); 5170 if (0 === p) return r; 5171 u *= h / p; 5172 var g = s.getModel(), 5173 m = g.get(tC); 5174 (u += 4 * m * m + (3 * m + Math.max(m, fd(g))) * Math.pow(u, .5)) > jS && (u = jS), a = s 5175 } 5176 u < l && (u = l); 5177 var v = Math.pow(u / l, .5); 5178 return [n * v, o * v] 5179 } 5180 5181 function cd(t, e, i) { 5182 if (e) return { x: e.x, y: e.y }; 5183 var n = { x: 0, y: 0 }; 5184 if (!i) return n; 5185 var o = i.node, 5186 a = o.getLayout(); 5187 if (!a) return n; 5188 for (var r = [a.width / 2, a.height / 2], s = o; s;) { 5189 var l = s.getLayout(); 5190 r[0] += l.x, r[1] += l.y, s = s.parentNode 5191 } 5192 return { x: t.width / 2 - r[0], y: t.height / 2 - r[1] } 5193 } 5194 5195 function dd(t, e, i, n, o) { 5196 var a = t.getLayout(), 5197 r = i[o], 5198 s = r && r === t; 5199 if (!(r && !s || o === i.length && t !== n)) { 5200 t.setLayout({ isInView: !0, invisible: !s && !e.intersect(a), isAboveViewRoot: s }, !0); 5201 var l = new $t(e.x - a.x, e.y - a.y, e.width, e.height); 5202 QA(t.viewChildren || [], function(t) { dd(t, l, i, n, o + 1) }) 5203 } 5204 } 5205 5206 function fd(t) { return t.get(iC) ? t.get(nC) : 0 } 5207 5208 function pd(t) { return "_EC_" + t } 5209 5210 function gd(t, e) { this.id = null == t ? "" : t, this.inEdges = [], this.outEdges = [], this.edges = [], this.hostGraph, this.dataIndex = null == e ? -1 : e } 5211 5212 function md(t, e, i) { this.node1 = t, this.node2 = e, this.dataIndex = null == i ? -1 : i } 5213 5214 function vd(t) { return isNaN(+t.cpx1) || isNaN(+t.cpy1) } 5215 5216 function yd(t) { return "_" + t + "Type" } 5217 5218 function xd(t, e, i) { 5219 var n = e.getItemVisual(i, "color"), 5220 o = e.getItemVisual(i, t), 5221 a = e.getItemVisual(i, t + "Size");
5222 if (o && "none" !== o) { y(a) || (a = [a, a]); var r = Tl(o, -a[0] / 2, -a[1] / 2, a[0], a[1], n); return r.name = t, r } 5223 } 5224 5225 function _d(t) { var e = new dC({ name: "line" }); return wd(e.shape, t), e } 5226 5227 function wd(t, e) { 5228 var i = e[0], 5229 n = e[1], 5230 o = e[2]; 5231 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) 5232 } 5233 5234 function bd(t, e, i) { sw.call(this), this._createLine(t, e, i) } 5235 5236 function Sd(t) { this._ctor = t || bd, this.group = new sw } 5237 5238 function Md(t, e, i, n) { 5239 if (Ad(e.getItemLayout(i))) { 5240 var o = new t._ctor(e, i, n); 5241 e.setItemGraphicEl(i, o), t.group.add(o) 5242 } 5243 } 5244 5245 function Id(t, e, i, n, o, a) { 5246 var r = e.getItemGraphicEl(n); 5247 Ad(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) 5248 } 5249 5250 function Td(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") } } 5251 5252 function Dd(t) { return isNaN(t[0]) || isNaN(t[1]) } 5253 5254 function Ad(t) { return !Dd(t[0]) && !Dd(t[1]) } 5255 5256 function Cd(t, e, i) { 5257 for (var n, o = t[0], a = t[1], r = t[2], s = 1 / 0, l = i * i, u = .1, h = .1; h <= .9; h += .1) mC[0] = xC(o[0], a[0], r[0], h), mC[1] = xC(o[1], a[1], r[1], h), (f = wC(_C(mC, e) - l)) < s && (s = f, n = h); 5258 for (var c = 0; c < 32; c++) { 5259 var d = n + u; 5260 vC[0] = xC(o[0], a[0], r[0], n), vC[1] = xC(o[1], a[1], r[1], n), yC[0] = xC(o[0], a[0], r[0], d), yC[1] = xC(o[1], a[1], r[1], d); 5261 var f = _C(vC, e) - l; 5262 if (wC(f) < .01) break; 5263 var p = _C(yC, e) - l; 5264 u /= 2, f < 0 ? p >= 0 ? n += u : n -= u : p >= 0 ? n -= u : n += u 5265 } 5266 return n 5267 } 5268 5269 function Ld(t, e) { return t.getVisual("opacity") || t.getModel().get(e) } 5270 5271 function kd(t, e, i) { 5272 var n = t.getGraphicEl(), 5273 o = Ld(t, e); 5274 null != i && (null == o && (o = 1), o *= i), n.downplay && n.downplay(), n.traverse(function(t) { "group" !== t.type && t.setStyle("opacity", o) }) 5275 } 5276 5277 function Pd(t, e) { 5278 var i = Ld(t, e), 5279 n = t.getGraphicEl(); 5280 n.highlight && n.highlight(), n.traverse(function(t) { "group" !== t.type && t.setStyle("opacity", i) }) 5281 } 5282 5283 function Nd(t) { return t instanceof Array || (t = [t, t]), t } 5284 5285 function Od(t) { 5286 var e = t.coordinateSystem; 5287 if (!e || "view" === e.type) { 5288 var i = t.getGraph(); 5289 i.eachNode(function(t) { 5290 var e = t.getModel(); 5291 t.setLayout([+e.get("x"), +e.get("y")]) 5292 }), Ed(i) 5293 } 5294 } 5295 5296 function Ed(t) { 5297 t.eachEdge(function(t) { 5298 var e = t.getModel().get("lineStyle.curveness") || 0, 5299 i = W(t.node1.getLayout()), 5300 n = W(t.node2.getLayout()), 5301 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) 5302 }) 5303 } 5304 5305 function Rd(t) { 5306 var e = t.coordinateSystem; 5307 if (!e || "view" === e.type) { 5308 var i = e.getBoundingRect(), 5309 n = t.getData(), 5310 o = n.graph, 5311 a = 0, 5312 r = n.getSum("value"), 5313 s = 2 * Math.PI / (r || n.count()), 5314 l = i.width / 2 + i.x, 5315 u = i.height / 2 + i.y, 5316 h = Math.min(i.width, i.height) / 2; 5317 o.eachNode(function(t) { 5318 var e = t.getValue("value"); 5319 a += s * (r ? e : 1) / 2, t.setLayout([h * Math.cos(a) + l, h * Math.sin(a) + u]), a += s * (r ? e : 1) / 2 5320 }), n.setLayout({ cx: l, cy: u }), o.eachEdge(function(t) { 5321 var e, i = t.getModel().get("lineStyle.curveness") || 0,
5322 n = W(t.node1.getLayout()), 5323 o = W(t.node2.getLayout()), 5324 a = (n[0] + o[0]) / 2, 5325 r = (n[1] + o[1]) / 2; + i && (e = [l * (i *= 3) + a * (1 - i), u * i + r * (1 - i)]), t.setLayout([n, o, e]) 5326 }) 5327 } 5328 } 5329 5330 function zd(t, e, i) { 5331 for (var n = i.rect, o = n.width, a = n.height, r = [n.x + o / 2, n.y + a / 2], s = null == i.gravity ? .1 : i.gravity, l = 0; l < t.length; l++) { 5332 var u = t[l]; 5333 u.p || (u.p = V(o * (Math.random() - .5) + r[0], a * (Math.random() - .5) + r[1])), u.pp = W(u.p), u.edges = null 5334 } 5335 var h = .6; 5336 return { 5337 warmUp: function() { h = .5 }, 5338 setFixed: function(e) { t[e].fixed = !0 }, 5339 setUnfixed: function(e) { t[e].fixed = !1 }, 5340 step: function(i) { 5341 for (var n = [], o = t.length, a = 0; a < e.length; a++) { 5342 var l = e[a], 5343 u = l.n1; 5344 U(n, (p = l.n2).p, u.p); 5345 var c = X(n) - l.d, 5346 d = p.w / (u.w + p.w); 5347 isNaN(d) && (d = 0), q(n, n), !u.fixed && IC(u.p, u.p, n, d * c * h), !p.fixed && IC(p.p, p.p, n, -(1 - d) * c * h) 5348 } 5349 for (a = 0; a < o; a++)(v = t[a]).fixed || (U(n, r, v.p), IC(v.p, v.p, n, s * h)); 5350 for (a = 0; a < o; a++) 5351 for (var u = t[a], f = a + 1; f < o; f++) { 5352 var p = t[f]; 5353 U(n, p.p, u.p), 0 === (c = X(n)) && (F(n, Math.random() - .5, Math.random() - .5), c = 1); 5354 var g = (u.rep + p.rep) / c / c; 5355 !u.fixed && IC(u.pp, u.pp, n, g), !p.fixed && IC(p.pp, p.pp, n, -g) 5356 } 5357 for (var m = [], a = 0; a < o; a++) { 5358 var v = t[a]; 5359 v.fixed || (U(m, v.p, v.pp), IC(v.p, v.p, m, h), G(v.pp, v.p)) 5360 } 5361 h *= .992, i && i(t, e, h < .01) 5362 } 5363 } 5364 } 5365 5366 function Bd(t, e, i) { var n = t.getBoxLayoutParams(); return n.aspect = i, Qo(n, { width: e.getWidth(), height: e.getHeight() }) } 5367 5368 function Vd(t, e) { 5369 var i = t.get("center"), 5370 n = e.getWidth(), 5371 o = e.getHeight(), 5372 a = Math.min(n, o); 5373 return { cx: Do(i[0], e.getWidth()), cy: Do(i[1], e.getHeight()), r: Do(t.get("radius"), a / 2) } 5374 } 5375 5376 function Gd(t, e) { return e && ("string" == typeof e ? t = e.replace("{value}", null != t ? t : "") : "function" == typeof e && (t = e(t))), t } 5377 5378 function Wd(t, e) { 5379 function i() { a.ignore = a.hoverIgnore, r.ignore = r.hoverIgnore } 5380 5381 function n() { a.ignore = a.normalIgnore, r.ignore = r.normalIgnore } 5382 sw.call(this); 5383 var o = new wS, 5384 a = new bS, 5385 r = new fS; 5386 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) 5387 } 5388 5389 function Fd(t, e) { return Qo(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }) } 5390 5391 function Hd(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 } 5392 5393 function Zd(t) { 5394 t.each(function(e) { 5395 var i, n, o, a, r = t.getItemModel(e), 5396 s = r.getModel("label").get("position"), 5397 l = r.getModel("labelLine"), 5398 u = t.getItemLayout(e), 5399 h = u.points, 5400 c = "inner" === s || "inside" === s || "center" === s; 5401 if (c) i = "center", a = [ 5402 [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], 5403 [n, o] 5404 ]; 5405 else { 5406 var d, f, p, g = l.get("length"); 5407 "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"); 5408 var m = f; 5409 a = [ 5410 [d, f], 5411 [p, m] 5412 ], o = m 5413 } 5414 u.label = { linePoints: a, x: n, y: o, verticalAlign: "middle", textAlign: i, inside: c } 5415 }) 5416 } 5417 5418 function Ud(t) { 5419 if (!t.parallel) { 5420 var e = !1; 5421 d(t.series, function(t) { t && "parallel" === t.type && (e = !0) }), e && (t.parallel = [{}]) 5422 } 5423 } 5424 5425 function Xd(t) { 5426 d(Si(t.parallelAxis), function(e) { 5427 if (w(e)) { 5428 var i = e.parallelIndex || 0, 5429 o = Si(t.parallel)[i]; 5430 o && o.parallelAxisDefault && n(e, o.parallelAxisDefault, !1) 5431 } 5432 }) 5433 } 5434
5435 function jd(t, e) { var i = t[e] - t[1 - e]; return { span: Math.abs(i), sign: i > 0 ? -1 : i < 0 ? 1 : e ? -1 : 1 } } 5436 5437 function Yd(t, e) { return Math.min(e[1], Math.max(e[0], t)) } 5438 5439 function qd(t, e, i) { this._axesMap = R(), this._axesLayout = {}, this.dimensions = t.dimensions, this._rect, this._model = t, this._init(t, e, i) } 5440 5441 function Kd(t, e) { return OC(EC(t, e[0]), e[1]) } 5442 5443 function $d(t, e) { var i = e.layoutLength / (e.axisCount - 1); return { position: i * t, axisNameAvailableWidth: i, axisLabelShow: !0 } } 5444 5445 function Jd(t, e) { 5446 var i, n, o = e.layoutLength, 5447 a = e.axisExpandWidth, 5448 r = e.axisCount, 5449 s = e.axisCollapseWidth, 5450 l = e.winInnerIndices, 5451 u = s, 5452 h = !1; 5453 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 } 5454 } 5455 5456 function Qd(t) { D_.call(this), this._zr = t, this.group = new sw, this._brushType, this._brushOption, this._panels, this._track = [], this._dragging, this._covers = [], this._creatingCover, this._creatingPanel, this._enableGlobalPan, this._uid = "brushController_" + eL++, this._handlers = {}, HC(iL, function(t, e) { this._handlers[e] = m(t, this) }, this) } 5457 5458 function tf(t, e) { 5459 var o = t._zr; 5460 t._enableGlobalPan || Dh(o, $C, t._uid), HC(t._handlers, function(t, e) { o.on(e, t) }), t._brushType = e.brushType, t._brushOption = n(i(tL), e, !0) 5461 } 5462 5463 function ef(t) { 5464 var e = t._zr; 5465 Ah(e, $C, t._uid), HC(t._handlers, function(t, i) { e.off(i, t) }), t._brushType = t._brushOption = null 5466 } 5467 5468 function nf(t, e) { var i = nL[e.brushType].createCover(t, e); return i.__brushOption = e, rf(i, e), t.group.add(i), i } 5469 5470 function of(t, e) { var i = lf(e); return i.endCreating && (i.endCreating(t, e), rf(e, e.__brushOption)), e } 5471 5472 function af(t, e) { 5473 var i = e.__brushOption; 5474 lf(e).updateCoverShape(t, e, i.range, i) 5475 } 5476 5477 function rf(t, e) { 5478 var i = e.z; 5479 null == i && (i = YC), t.traverse(function(t) { t.z = i, t.z2 = i }) 5480 } 5481 5482 function sf(t, e) { lf(e).updateCommon(t, e), af(t, e) } 5483 5484 function lf(t) { return nL[t.__brushOption.brushType] } 5485 5486 function uf(t, e, i) { var n = t._panels; if (!n) return !0; var o, a = t._transform; return HC(n, function(t) { t.isTargetByCursor(e, i, a) && (o = t) }), o } 5487 5488 function hf(t, e) { var i = t._panels; if (!i) return !0; var n = e.__brushOption.panelId; return null == n || i[n] } 5489 5490 function cf(t) { 5491 var e = t._covers, 5492 i = e.length; 5493 return HC(e, function(e) { t.group.remove(e) }, t), e.length = 0, !!i 5494 } 5495 5496 function df(t, e) { 5497 var n = ZC(t._covers, function(t) { 5498 var e = t.__brushOption, 5499 n = i(e.range); 5500 return { brushType: e.brushType, panelId: e.panelId, range: n } 5501 }); 5502 t.trigger("brush", n, { isEnd: !!e.isEnd, removeOnClick: !!e.removeOnClick }) 5503 } 5504 5505 function ff(t) { 5506 var e = t._track; 5507 if (!e.length) return !1; 5508 var i = e[e.length - 1], 5509 n = e[0], 5510 o = i[0] - n[0], 5511 a = i[1] - n[1]; 5512 return jC(o * o + a * a, .5) > qC 5513 } 5514 5515 function pf(t) { var e = t.length - 1; return e < 0 && (e = 0), [t[0], t[e]] } 5516 5517 function gf(t, e, i, n) { var o = new sw; return o.add(new SS({ name: "main", style: xf(i), silent: !0, draggable: !0, cursor: "move", drift: FC(t, e, o, "nswe"), ondragend: FC(df, e, { isEnd: !0 }) })), HC(n, function(i) { o.add(new SS({ name: i, style: { opacity: 0 }, draggable: !0, silent: !0, invisible: !0, drift: FC(t, e, o, i), ondragend: FC(df, e, { isEnd: !0 }) })) }), o } 5518 5519 function mf(t, e, i, n) { 5520 var o = n.brushStyle.lineWidth || 0, 5521 a = XC(o, KC), 5522 r = i[0][0], 5523 s = i[1][0], 5524 l = r - o / 2, 5525 u = s - o / 2, 5526 h = i[0][1], 5527 c = i[1][1], 5528 d = h - a + o / 2, 5529 f = c - a + o / 2, 5530 p = h - r, 5531 g = c - s, 5532 m = p + o, 5533 v = g + o; 5534 yf(t, e, "main", r, s, p, g), n.transformable && (yf(t, e, "w", l, u, a, v), yf(t, e, "e", d, u, a, v), yf(t, e, "n", l, u, m, a), yf(t, e, "s", l, f, m, a), yf(t, e, "nw", l, u, a, a), yf(t, e, "ne", d, u, a, a), yf(t, e, "sw", l, f, a, a), yf(t, e, "se", d, f, a, a)) 5535 } 5536 5537 function vf(t, e) { 5538 var i = e.__brushOption, 5539 n = i.transformable, 5540 o = e.childAt(0); 5541 o.useStyle(xf(i)), o.attr({ silent: !n, cursor: n ? "move" : "default" }), HC(["w", "e", "n", "s", "se", "sw", "ne", "nw"], function(i) { 5542 var o = e.childOfName(i), 5543 a = bf(t, i); 5544 o && o.attr({ silent: !n, invisible: !n, cursor: n ? QC[a] + "-resize" : null }) 5545 }) 5546 } 5547 5548 function yf(t, e, i, n, o, a, r) { 5549 var s = e.childOfName(i); 5550 s && s.setShape(Df(Tf(t, e, [ 5551 [n, o], 5552 [n + a, o + r] 5553 ]))) 5554 } 5555 5556 function xf(t) { return r({ strokeNoScale: !0 }, t.brushStyle) } 5557 5558 function _f(t, e, i, n) { 5559 var o = [UC(t, i), UC(e, n)], 5560 a = [XC(t, i), XC(e, n)]; 5561 return [ 5562 [o[0], a[0]], 5563 [o[1], a[1]] 5564 ] 5565 } 5566 5567 function wf(t) { return go(t.group) } 5568 5569 function bf(t, e) { 5570 if (e.length > 1) return ("e" === (n = [bf(t, (e = e.split(""))[0]), bf(t, e[1])])[0] || "w" === n[0]) && n.reverse(), n.join(""); 5571 var i = { left: "w", right: "e", top: "n", bottom: "s" }, 5572 n = vo({ w: "left", e: "right", n: "top", s: "bottom" }[e], wf(t)); 5573 return i[n] 5574 } 5575 5576 function Sf(t, e, i, n, o, a, r, s) { 5577 var l = n.__brushOption, 5578 u = t(l.range), 5579 h = If(i, a, r); 5580 HC(o.split(""), function(t) { 5581 var e = JC[t]; 5582 u[e[0]][e[1]] += h[e[0]] 5583 }), l.range = e(_f(u[0][0], u[1][0], u[0][1], u[1][1])), sf(i, n), df(i, { isEnd: !1 }) 5584 } 5585 5586 function Mf(t, e, i, n, o) { 5587 var a = e.__brushOption.range, 5588 r = If(t, i, n); 5589 HC(a, function(t) { t[0] += r[0], t[1] += r[1] }), sf(t, e), df(t, { isEnd: !1 }) 5590 } 5591 5592 function If(t, e, i) { 5593 var n = t.group, 5594 o = n.transformCoordToLocal(e, i), 5595 a = n.transformCoordToLocal(0, 0); 5596 return [o[0] - a[0], o[1] - a[1]] 5597 } 5598 5599 function Tf(t, e, n) { var o = hf(t, e); return o && !0 !== o ? o.clipPath(n, t._transform) : i(n) } 5600 5601 function Df(t) { 5602 var e = UC(t[0][0], t[1][0]), 5603 i = UC(t[0][1], t[1][1]); 5604 return { x: e, y: i, width: XC(t[0][0], t[1][0]) - e, height: XC(t[0][1], t[1][1]) - i } 5605 } 5606 5607 function Af(t, e, i) { 5608 if (t._brushType) { 5609 var n = t._zr, 5610 o = t._covers, 5611 a = uf(t, e, i); 5612 if (!t._dragging) 5613 for (var r = 0; r < o.length; r++) { var s = o[r].__brushOption; if (a && (!0 === a || s.panelId === a.panelId) && nL[s.brushType].contain(o[r], i[0], i[1])) return } 5614 a && n.setCursorStyle("crosshair") 5615 } 5616 } 5617 5618 function Cf(t) { 5619 var e = t.event; 5620 e.preventDefault && e.preventDefault() 5621 } 5622 5623 function Lf(t, e, i) { return t.childOfName("main").contain(e, i) } 5624 5625 function kf(t, e, n, o) { 5626 var a, r = t._creatingCover, 5627 s = t._creatingPanel, 5628 l = t._brushOption; 5629 if (t._track.push(n.slice()), ff(t) || r) { 5630 if (s && !r) { 5631 "single" === l.brushMode && cf(t); 5632 var u = i(l); 5633 u.brushType = Pf(u.brushType, s), u.panelId = !0 === s ? null : s.panelId, r = t._creatingCover = nf(t, u), t._covers.push(r) 5634 } 5635 if (r) { 5636 var h = nL[Pf(t._brushType, s)]; 5637 r.__brushOption.range = h.getCreatingRange(Tf(t, r, t._track)), o && (of(t, r), h.updateCommon(t, r)), af(t, r), a = { isEnd: o } 5638 } 5639 } else o && "single" === l.brushMode && l.removeOnClick && uf(t, e, n) && cf(t) && (a = { isEnd: o, removeOnClick: !0 }); 5640 return a 5641 } 5642 5643 function Pf(t, e) { return "auto" === t ? e.defaultBrushType : t } 5644 5645 function Nf(t) { 5646 if (this._dragging) { 5647 Cf(t); 5648 var e = kf(this, t, this.group.transformCoordToLocal(t.offsetX, t.offsetY), !0); 5649 this._dragging = !1, this._track = [], this._creatingCover = null, e && df(this, e) 5650 } 5651 } 5652 5653 function Of(t) { 5654 return { 5655 createCover: function(e, i) { 5656 return gf(FC(Sf, function(e) { var i = [e, [0, 100]]; return t && i.reverse(), i }, function(e) { return e[t] }), e, i, [ 5657 ["w", "e"], 5658 ["n", "s"] 5659 ][t]) 5660 }, 5661 getCreatingRange: function(e) { var i = pf(e); return [UC(i[0][t], i[1][t]), XC(i[0][t], i[1][t])] }, 5662 updateCoverShape: function(e, i, n, o) { 5663 var a, r = hf(e, i); 5664 if (!0 !== r && r.getLinearBrushOtherExtent) a = r.getLinearBrushOtherExtent(t, e._transform); 5665 else { 5666 var s = e._zr; 5667 a = [0, [s.getWidth(), s.getHeight()][1 - t]] 5668 } 5669 var l = [n, a]; 5670 t && l.reverse(), mf(e, i, l, o) 5671 }, 5672 updateCommon: vf, 5673 contain: Lf 5674 } 5675 } 5676 5677 function Ef(t) { 5678 return t = Bf(t), 5679 function(e, i) { return xo(e, t) } 5680 } 5681 5682 function Rf(t, e) { 5683 return t = Bf(t), 5684 function(i) { 5685 var n = null != e ? e : i, 5686 o = n ? t.width : t.height,
5687 a = n ? t.x : t.y; 5688 return [a, a + (o || 0)] 5689 } 5690 } 5691 5692 function zf(t, e, i) { 5693 return t = Bf(t), 5694 function(n, o, a) { return t.contain(o[0], o[1]) && !Wh(n, e, i) } 5695 } 5696 5697 function Bf(t) { return $t.create(t) } 5698 5699 function Vf(t, e, i) { return i && "axisAreaSelect" === i.type && e.findComponents({ mainType: "parallelAxis", query: i })[0] === t } 5700 5701 function Gf(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)] } }) } 5702 5703 function Wf(t, e) { return e.getComponent("parallel", t.get("parallelIndex")) } 5704 5705 function Ff(t, e) { var i = t._model; return i.get("axisExpandable") && i.get("axisExpandTriggerOn") === e } 5706 5707 function Hf(t, e) { 5708 if (!t.encodeDefine) { 5709 var i = e.ecModel.getComponent("parallel", e.get("parallelIndex")); 5710 if (i) { 5711 var n = t.encodeDefine = R(); 5712 d(i.dimensions, function(t) { 5713 var e = Zf(t); 5714 n.set(t, e) 5715 }) 5716 } 5717 } 5718 } 5719 5720 function Zf(t) { return +t.replace("dim", "") } 5721 5722 function Uf(t, e, i) { 5723 var n = t.model, 5724 o = t.getRect(), 5725 a = new SS({ shape: { x: o.x, y: o.y, width: o.width, height: o.height } }), 5726 r = "horizontal" === n.get("layout") ? "width" : "height"; 5727 return a.setShape(r, 0), po(a, { shape: { width: o.width, height: o.height } }, e, i), a 5728 } 5729 5730 function Xf(t, e, i, n) { 5731 for (var o = [], a = 0; a < i.length; a++) { 5732 var r = i[a], 5733 s = t.get(t.mapDimension(r), e); 5734 Kf(s, n.getAxis(r).type) || o.push(n.dataToPoint(s, r)) 5735 } 5736 return o 5737 } 5738 5739 function jf(t, e, i, n, o) { 5740 var a = Xf(t, i, n, o), 5741 r = new bS({ shape: { points: a }, silent: !0, z2: 10 }); 5742 return e.add(r), t.setItemGraphicEl(i, r), r 5743 } 5744 5745 function Yf(t) { var e = t.get("smooth", !0); return !0 === e && (e = sL), { lineStyle: t.getModel("lineStyle").getLineStyle(), smooth: null != e ? e : sL } } 5746 5747 function qf(t, e, i, n) { 5748 var o = n.lineStyle; 5749 e.hasItemOption && (o = e.getItemModel(i).getModel("lineStyle").getLineStyle()), t.useStyle(o); 5750 var a = t.style; 5751 a.fill = null, a.stroke = e.getItemVisual(i, "color"), a.opacity = e.getItemVisual(i, "opacity"), n.smooth && (t.shape.smooth = n.smooth) 5752 } 5753 5754 function Kf(t, e) { return "category" === e ? null == t : null == t || isNaN(t) } 5755 5756 function $f(t, e, i) { var n = new SS({ shape: { x: t.x - 10, y: t.y - 10, width: 0, height: t.height + 20 } }); return po(n, { shape: { width: t.width + 20, height: t.height + 20 } }, e, i), n } 5757 5758 function Jf() { 5759 function t(e, n) { 5760 if (n >= i.length) return e; 5761 for (var o = -1, a = e.length, r = i[n++], s = {}, l = {}; ++o < a;) { 5762 var u = r(e[o]), 5763 h = l[u]; 5764 h ? h.push(e[o]) : l[u] = [e[o]] 5765 } 5766 return d(l, function(e, i) { s[i] = t(e, n) }), s 5767 } 5768 5769 function e(t, o) { 5770 if (o >= i.length) return t; 5771 var a = [], 5772 r = n[o++]; 5773 return d(t, function(t, i) { a.push({ key: i, values: e(t, o) }) }), r ? a.sort(function(t, e) { return r(t.key, e.key) }) : a 5774 } 5775 var i = [], 5776 n = []; 5777 return { key: function(t) { return i.push(t), this }, sortKeys: function(t) { return n[i.length - 1] = t, this }, entries: function(i) { return e(t(i, 0), 0) } } 5778 } 5779 5780 function Qf(t, e) { return Qo(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }) } 5781 5782 function tp(t, e, i, n, o, a, r) { ip(t, e, i, o), ap(t, e, a, n, r), dp(t) } 5783 5784 function ep(t) { 5785 d(t, function(t) { 5786 var e = gp(t.outEdges, xp), 5787 i = gp(t.inEdges, xp), 5788 n = Math.max(e, i); 5789 t.setLayout({ value: n }, !0) 5790 }) 5791 } 5792 5793 function ip(t, e, i, n) { 5794 for (var o = [], a = [], r = [], s = [], l = 0, u = 0; u < e.length; u++) o[u] = 1; 5795 for (u = 0; u < t.length; u++) a[u] = t[u].inEdges.length, 0 === a[u] && r.push(t[u]); 5796 for (; r.length;) d(r, function(n) { 5797 n.setLayout({ x: l }, !0), n.setLayout({ dx: i }, !0), d(n.outEdges, function(i) { 5798 var n = e.indexOf(i); 5799 o[n] = 0; 5800 var r = i.node2, 5801 l = t.indexOf(r); 5802 0 == --a[l] && s.push(r) 5803 }) 5804 }), ++l, r = s, s = []; 5805 for (u = 0; u < o.length; u++); 5806 np(t, l), op(t, (n - i) / (l - 1)) 5807 } 5808 5809 function np(t, e) { d(t, function(t) { t.outEdges.length || t.setLayout({ x: e - 1 }, !0) }) } 5810 5811 function op(t, e) { 5812 d(t, function(t) { 5813 var i = t.getLayout().x * e; 5814 t.setLayout({ x: i }, !0) 5815 }) 5816 } 5817 5818 function ap(t, e, i, n, o) { 5819 var a = Jf().key(function(t) { return t.getLayout().x }
5819).sortKeys(yp).entries(t).map(function(t) { return t.values }); 5820 rp(t, a, e, i, n), sp(a, n, i); 5821 for (var r = 1; o > 0; o--) lp(a, r *= .99), sp(a, n, i), hp(a, r), sp(a, n, i) 5822 } 5823 5824 function rp(t, e, i, n, o) { 5825 var a = []; 5826 d(e, function(t) { 5827 var e = t.length, 5828 i = 0; 5829 d(t, function(t) { i += t.getLayout().value }); 5830 var r = (n - (e - 1) * o) / i; 5831 a.push(r) 5832 }), a.sort(function(t, e) { return t - e }); 5833 var r = a[0]; 5834 d(e, function(t) { 5835 d(t, function(t, e) { 5836 t.setLayout({ y: e }, !0); 5837 var i = t.getLayout().value * r; 5838 t.setLayout({ dy: i }, !0) 5839 }) 5840 }), d(i, function(t) { 5841 var e = +t.getValue() * r; 5842 t.setLayout({ dy: e }, !0) 5843 }) 5844 } 5845 5846 function sp(t, e, i) { 5847 d(t, function(t) { 5848 var n, o, a, r = 0, 5849 s = t.length; 5850 for (t.sort(vp), a = 0; a < s; a++) { 5851 if (n = t[a], (o = r - n.getLayout().y) > 0) { 5852 l = n.getLayout().y + o; 5853 n.setLayout({ y: l }, !0) 5854 } 5855 r = n.getLayout().y + n.getLayout().dy + e 5856 } 5857 if ((o = r - e - i) > 0) { var l = n.getLayout().y - o; for (n.setLayout({ y: l }, !0), r = n.getLayout().y, a = s - 2; a >= 0; --a)(o = (n = t[a]).getLayout().y + n.getLayout().dy + e - r) > 0 && (l = n.getLayout().y - o, n.setLayout({ y: l }, !0)), r = n.getLayout().y } 5858 }) 5859 } 5860 5861 function lp(t, e) { 5862 d(t.slice().reverse(), function(t) { 5863 d(t, function(t) { 5864 if (t.outEdges.length) { 5865 var i = gp(t.outEdges, up) / gp(t.outEdges, xp), 5866 n = t.getLayout().y + (i - mp(t)) * e; 5867 t.setLayout({ y: n }, !0) 5868 } 5869 }) 5870 }) 5871 } 5872 5873 function up(t) { return mp(t.node2) * t.getValue() } 5874 5875 function hp(t, e) { 5876 d(t, function(t) { 5877 d(t, function(t) { 5878 if (t.inEdges.length) { 5879 var i = gp(t.inEdges, cp) / gp(t.inEdges, xp), 5880 n = t.getLayout().y + (i - mp(t)) * e; 5881 t.setLayout({ y: n }, !0) 5882 } 5883 }) 5884 }) 5885 } 5886 5887 function cp(t) { return mp(t.node1) * t.getValue() } 5888 5889 function dp(t) { 5890 d(t, function(t) { t.outEdges.sort(fp), t.inEdges.sort(pp) }), d(t, function(t) { 5891 var e = 0, 5892 i = 0; 5893 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 }) 5894 }) 5895 } 5896 5897 function fp(t, e) { return t.node2.getLayout().y - e.node2.getLayout().y } 5898 5899 function pp(t, e) { return t.node1.getLayout().y - e.node1.getLayout().y } 5900 5901 function gp(t, e) { 5902 for (var i = 0, n = t.length, o = -1; ++o < n;) { 5903 var a = +e.call(t, t[o], o); 5904 isNaN(a) || (i += a) 5905 } 5906 return i 5907 } 5908 5909 function mp(t) { return t.getLayout().y + t.getLayout().dy / 2 } 5910 5911 function vp(t, e) { return t.getLayout().y - e.getLayout().y } 5912 5913 function yp(t, e) { return t - e } 5914 5915 function xp(t) { return t.getValue() } 5916 5917 function _p(t, e, i, n, o) { 5918 var a = t.ends, 5919 r = new pL({ shape: { points: o ? bp(a, n, t) : a } }); 5920 return wp(t, r, e, i, o), r 5921 } 5922 5923 function wp(t, e, i, n, o) { 5924 var a = i.hostModel; 5925 (0, BS[o ? "initProps" : "updateProps"])(e, { shape: { points: t.ends } }, a, n); 5926 var r = i.getItemModel(n), 5927 s = r.getModel(dL), 5928 l = i.getItemVisual(n, "color"), 5929 u = s.getItemStyle(["borderColor"]); 5930 u.stroke = l, u.strokeNoScale = !0, e.useStyle(u), e.z2 = 100, eo(e, r.getModel(fL).getItemStyle()) 5931 } 5932 5933 function bp(t, e, i) { return f(t, function(t) { return t = t.slice(), t[e] = i.initBaseline, t }) } 5934 5935 function Sp(t) { 5936 var e = [], 5937 i = []; 5938 return t.eachSeriesByType("boxplot", function(t) { 5939 var n = t.getBaseAxis(), 5940 o = l(i, n); 5941 o < 0 && (o = i.length, i[o] = n, e[o] = { axis: n, seriesModels: [] }), e[o].seriesModels.push(t) 5942 }), e 5943 } 5944 5945 function Mp(t) { 5946 var e, i, n = t.axis, 5947 o = t.seriesModels, 5948 a = o.length, 5949 r = t.boxWidthList = [], 5950 s = t.boxOffsetList = [], 5951 l = []; 5952 if ("category" === n.type) i = n.getBandWidth(); 5953 else { 5954 var u = 0; 5955 mL(o, function(t) { u = Math.max(u, t.getData().count()) }), e = n.getExtent(), Math.abs(e[1] - e[0]) 5956 } 5957 mL(o, function(t) { 5958 var e = t.get("boxWidth"); 5959 y(e) || (e = [e, e]), l.push([Do(e[0], i) || 0, Do(e[1], i) || 0]) 5960 }); 5961 var h = .8 * i - 2, 5962 c = h / a * .3, 5963 d = (h - c * (a - 1)) / a, 5964 f = d / 2 - h / 2; 5965 mL(o, function(t, e) { s.push(f), f += c + d, r.push(Math.min(Math.max(d, l[e][0]), l[e][1])) }) 5966 } 5967 5968 function Ip(t, e, i) { 5969 function n(t, i, n) { 5970 var o = s.get(i, n), 5971 a = []; 5972 a[u] = t, a[h] = o; 5973 var l; 5974 return isNaN(t) || isNaN(o) ? l = [NaN, NaN] : (l = r.dataToPoint(a))[u] += e, l 5975 } 5976 5977 function o(t, e, i) { 5978 var n = e.slice(), 5979 o = e.slice(); 5980 n[u] += l, o[u] -= l, i ? t.push(n, o) : t.push(o, n) 5981 } 5982 5983 function a(t, e) { 5984 var i = e.slice(), 5985 n = e.slice(); 5986 i[u] -= l, n[u] += l, t.push(i, n) 5987 } 5988 var r = t.coordinateSystem, 5989 s = t.getData(), 5990 l = i / 2, 5991 u = "horizontal" === t.get("layout") ? 0 : 1, 5992 h = 1 - u, 5993 c = ["x", "y"], 5994 d = s.mapDimension(c[u]), 5995 f = s.mapDimension(c[h], !0); 5996 if (!(null == d || f.length < 5)) 5997 for (var p = 0; p < s.count(); p++) { 5998 var g = s.get(d, p), 5999 m = n(g, f[2], p), 6000 v = n(g, f[0], p), 6001 y = n(g, f[1], p), 6002 x = n(g, f[3], p), 6003 _ = n(g, f[4], p), 6004 w = []; 6005 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 }) 6006 } 6007 } 6008 6009 function Tp(t, e, i) { var n = t.ends; return new _L({ shape: { points: i ? Ap(n, t) : n }, z2: 100 }) } 6010 6011 function Dp(t, e, i, n) { 6012 var o = e.getItemModel(i), 6013 a = o.getModel(vL), 6014 r = e.getItemVisual(i, "color"), 6015 s = e.getItemVisual(i, "borderColor") || r, 6016 l = a.getItemStyle(xL); 6017 t.useStyle(l), t.style.strokeNoScale = !0, t.style.fill = r, t.style.stroke = s, t.__simpleBox = n, eo(t, o.getModel(yL).getItemStyle()) 6018 } 6019 6020 function Ap(t, e) { return f(t, function(t) { return t = t.slice(), t[1] = e.initBaseline, t }) } 6021 6022 function Cp(t, e, i) { 6023 var n = t.getData(), 6024 o = n.getLayout("largePoints"), 6025 a = new wL({ shape: { points: o }, __sign: 1 }); 6026 e.add(a); 6027 var r = new wL({ shape: { points: o }, __sign: -1 }); 6028 e.add(r), Lp(1, a, t, n), Lp(-1, r, t, n), i && (a.incremental = !0, r.incremental = !0) 6029 } 6030 6031 function Lp(t, e, i, n) { 6032 var o = t > 0 ? "P" : "N", 6033 a = n.getVisual("borderColor" + o) || n.getVisual("color" + o), 6034 r = i.getModel(vL).getItemStyle(xL); 6035 e.useStyle(r), e.style.fill = null, e.style.stroke = a 6036 } 6037 6038 function kp(t, e, i, n, o) { return i > n ? -1 : i < n ? 1 : e > 0 ? t.get(o, e - 1) <= n ? 1 : -1 : 1 } 6039 6040 function Pp(t, e) { 6041 var i, n = t.getBaseAxis(), 6042 o = "category" === n.type ? n.getBandWidth() : (i = n.getExtent(), Math.abs(i[1] - i[0]) / e.count()), 6043 a = Do(D(t.get("barMaxWidth"), o), o), 6044 r = Do(D(t.get("barMinWidth"), 1), o), 6045 s = t.get("barWidth"); 6046 return null != s ? Do(s, o) : Math.max(Math.min(o / 2, a), r) 6047 } 6048 6049 function Np(t) { return y(t) || (t = [+t, +t]), t } 6050 6051 function Op(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 } }) }) } 6052 6053 function Ep(t, e) { 6054 sw.call(this); 6055 var i = new Kl(t, e), 6056 n = new sw; 6057 this.add(i), this.add(n), n.beforeUpdate = function() { this.attr(i.getScale()) }, this.updateData(t, e) 6058 } 6059 6060 function Rp(t) { 6061 var e = t.data; 6062 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]]) })) 6063 } 6064 6065 function zp(t, e, i) { sw.call(this), this.add(this.createLine(t, e, i)), this._updateEffectSymbol(t, e) } 6066 6067 function Bp(t, e, i) { sw.call(this), this._createPolyline(t, e, i) } 6068 6069 function Vp(t, e, i) { zp.call(this, t, e, i), this._lastFrame = 0, this._lastFramePercent = 0 } 6070 6071 function Gp() { this.group = new sw } 6072 6073 function Wp(t) { return t instanceof Array || (t = [t, t]), t } 6074 6075 function Fp() { 6076 var t = m_(); 6077 this.canvas = t, this.blurSize = 30, this.pointSize = 20, this.maxOpacity = 1, this.minOpacity = 0, this._gradientPixels = {} 6078 } 6079 6080 function Hp(t, e, i) { 6081 var n = t[1] - t[0], 6082 o = (e = f(e, function(e) { return { interval: [(e.interval[0] - t[0]) / n, (e.interval[1] - t[0]) / n] } })).length, 6083 a = 0; 6084 return function(t) { 6085 for (n = a; n < o; n++) 6086 if ((r = e[n].interval)[0] <= t && t <= r[1]) { a = n; break } 6087 if (n === o) 6088 for (var n = a - 1; n >= 0; n--) { var r = e[n].interval; if (r[0] <= t && t <= r[1]) { a = n; break } } 6089 return n >= 0 && n < o && i[n] 6090 } 6091 } 6092 6093 function Zp(t, e) { 6094 var i = t[1] - t[0]; 6095 return e = [(e[0] - t[0]) / i, (e[1] - t[0]) / i], 6096 function(t) { return t >= e[0] && t <= e[1] } 6097 } 6098 6099 function Up(t) { var e = t.dimensions; return "lng" === e[0] && "lat" === e[1] } 6100 6101 function Xp(t, e, i, n) { 6102 var o = t.getItemLayout(e), 6103 a = i.get("symbolRepeat"), 6104 r = i.get("symbolClip"), 6105 s = i.get("symbolPosition") || "start", 6106 l = (i.get("symbolRotate") || 0) * Math.PI / 180 || 0, 6107 u = i.get("symbolPatternSize") || 2, 6108 h = i.isAnimationEnabled(), 6109 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 }; 6110 jp(i, a, o, n, c), qp(t, e, o, a, r, c.boundingLength, c.pxSign, u, n, c
6110), Kp(i, c.symbolScale, l, n, c); 6111 var d = c.symbolSize, 6112 f = i.get("symbolOffset"); 6113 return y(f) && (f = [Do(f[0], d[0]), Do(f[1], d[1])]), $p(i, d, o, a, r, f, s, c.valueLineWidth, c.boundingLength, c.repeatCutLength, n, c), c 6114 } 6115 6116 function jp(t, e, i, n, o) { 6117 var a, r = n.valueDim, 6118 s = t.get("symbolBoundingData"), 6119 l = n.coordSys.getOtherAxis(n.coordSys.getBaseAxis()), 6120 u = l.toGlobalCoord(l.dataToCoord(0)), 6121 h = 1 - +(i[r.wh] <= 0); 6122 if (y(s)) { 6123 var c = [Yp(l, s[0]) - u, Yp(l, s[1]) - u]; 6124 c[1] < c[0] && c.reverse(), a = c[h] 6125 } else a = null != s ? Yp(l, s) - u : e ? n.coordSysExtent[r.index][h] - u : i[r.wh]; 6126 o.boundingLength = a, e && (o.repeatCutLength = i[r.wh]), o.pxSign = a > 0 ? 1 : a < 0 ? -1 : 0 6127 } 6128 6129 function Yp(t, e) { return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e))) } 6130 6131 function qp(t, e, i, n, o, a, r, s, l, u) { 6132 var h = l.valueDim, 6133 c = l.categoryDim, 6134 d = Math.abs(i[c.wh]), 6135 f = t.getItemVisual(e, "symbolSize"); 6136 y(f) ? f = f.slice() : (null == f && (f = "100%"), f = [f, f]), f[c.index] = Do(f[c.index], d), f[h.index] = Do(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 6137 } 6138 6139 function Kp(t, e, i, n, o) { 6140 var a = t.get(FL) || 0; 6141 a && (ZL.attr({ scale: e.slice(), rotation: i }), ZL.updateTransform(), a /= ZL.getLineScale(), a *= e[n.valueDim.index]), o.valueLineWidth = a 6142 } 6143 6144 function $p(t, e, i, n, o, r, s, l, u, h, c, d) { 6145 var f = c.categoryDim, 6146 p = c.valueDim, 6147 g = d.pxSign, 6148 m = Math.max(e[p.index] + l, 0), 6149 v = m; 6150 if (n) { 6151 var y = Math.abs(u), 6152 x = T(t.get("symbolMargin"), "15%") + "", 6153 _ = !1; 6154 x.lastIndexOf("!") === x.length - 1 && (_ = !0, x = x.slice(0, x.length - 1)), x = Do(x, e[p.index]); 6155 var w = Math.max(m + 2 * x, 0), 6156 b = _ ? 0 : 2 * x, 6157 S = Wo(n), 6158 M = S ? n : pg((y + b) / w); 6159 w = m + 2 * (x = (y - M * m) / 2 / (_ ? M : M - 1)), b = _ ? 0 : 2 * x, S || "fixed" === n || (M = h ? pg((Math.abs(h) + b) / w) : 0), v = M * w - b, d.repeatTimes = M, d.symbolMargin = x 6160 } 6161 var I = g * (v / 2), 6162 D = d.pathPosition = []; 6163 D[f.index] = i[f.wh] / 2, D[p.index] = "start" === s ? I : "end" === s ? u - I : u / 2, r && (D[0] += r[0], D[1] += r[1]); 6164 var A = d.bundlePosition = []; 6165 A[f.index] = i[f.xy], A[p.index] = i[p.xy]; 6166 var C = d.barRectShape = a({}, i); 6167 C[p.wh] = g * Math.max(Math.abs(i[p.wh]), Math.abs(D[p.index] + I)), C[f.wh] = i[f.wh]; 6168 var L = d.clipShape = {}; 6169 L[f.xy] = -i[f.xy], L[f.wh] = c.ecSize[f.wh], L[p.xy] = 0, L[p.wh] = i[p.wh] 6170 } 6171 6172 function Jp(t) { 6173 var e = t.symbolPatternSize, 6174 i = Tl(t.symbolType, -e / 2, -e / 2, e, e, t.color); 6175 return i.attr({ culling: !0 }), "image" !== i.type && i.setStyle({ strokeNoScale: !0 }), i 6176 } 6177 6178 function Qp(t, e, i, n) { 6179 function o(t) { 6180 var e = l.slice(), 6181 n = i.pxSign, 6182 o = t; 6183 return ("start" === i.symbolRepeatDirection ? n > 0 : n < 0) && (o = h - 1 - t), e[u.index] = d * (o - h / 2 + .5) + l[u.index], { position: e, scale: i.symbolScale.slice(), rotation: i.rotation } 6184 } 6185 var a = t.__pictorialBundle, 6186 r = i.symbolSize, 6187 s = i.valueLineWidth, 6188 l = i.pathPosition, 6189 u = e.valueDim, 6190 h = i.repeatTimes || 0, 6191 c = 0, 6192 d = r[e.valueDim.index] + s + 2 * i.symbolMargin; 6193 for (cg(t, function(t) { t.__pictorialAnimationIndex = c, t.__pictorialRepeatTimes = h, c < h ? dg(t, null, o(c), i, n) : dg(t, null, { scale: [0, 0] }, i, n, function() { a.remove(t) }), rg(t, i), c++ }); c < h; c++) { 6194 var f = Jp(i); 6195 f.__pictorialAnimationIndex = c, f.__pictorialRepeatTimes = h, a.add(f); 6196 var p = o(c); 6197 dg(f, { position: p.position, scale: [0, 0] }, { scale: p.scale, rotation: p.rotation }, i, n), f.on("mouseover", function() { cg(t, function(t) { t.trigger("emphasis") }) }).on("mouseout", function() { cg(t, function(t) { t.trigger("normal") }) }), rg(f, i) 6198 } 6199 } 6200 6201 function tg(t, e, i, n) { 6202 var o = t.__pictorialBundle, 6203 a = t.__pictorialMainPath; 6204 a ? dg(a, null, { position: i.pathPosition.slice(), scale: i.symbolScale.slice(), rotation: i.rotation }, i, n) : (a = t.__pictorialMainPath = Jp(i), o.add(a), dg(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") })), rg(a, i) 6205 } 6206 6207 function eg(t, e, i) { 6208 var n = a({}, e.barRectShape), 6209 o = t.__pictorialBarRect; 6210 o ? dg(o, null, { shape: n }, e, i) : (o = t.__pictorialBarRect = new SS({ z2: 2, shape: n, silent: !0, style: { stroke: "transparent", fill: "transparent", lineWidth: 0 } }), t.add(o)) 6211 } 6212 6213 function ig(t, e, i, n) { 6214 if (i.symbolClip) { 6215 var o = t.__pictorialClipPath, 6216 r = a({}, i.clipShape), 6217 s = e.valueDim, 6218 l = i.animationModel, 6219 u = i.dataIndex; 6220 if (o) fo(o, { shape: r }, l, u); 6221 else { 6222 r[s.wh] = 0, o = new SS({ shape: r }), t.__pictorialBundle.setClipPath(o), t.__pictorialClipPath = o; 6223 var h = {}; 6224 h[s.wh] = i.clipShape[s.wh], BS[n ? "updateProps" : "initProps"](o, { shape: h }, l, u) 6225 } 6226 } 6227 } 6228 6229 function ng(t, e) { var i = t.getItemModel(e); return i.getAnimationDelayParams = og, i.isAnimationEnabled = ag, i } 6230 6231 function og(t) { return { index: t.__pictorialAnimationIndex, count: t.__pictorialRepeatTimes } } 6232 6233 function ag() { return this.parentModel.isAnimationEnabled() && !!this.getShallow("animation") } 6234 6235 function rg(t, e) { 6236 t.off("emphasis").off("normal"); 6237 var i = e.symbolScale.slice(); 6238 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") }) 6239 } 6240 6241 function sg(t, e, i, n) { 6242 var o = new sw, 6243 a = new sw; 6244 return o.add(a), o.__pictorialBundle = a, a.attr("position", i.bundlePosition.slice()), i.symbolRepeat ? Qp(o, e, i) : tg(o, e, i), eg(o, i, n), ig(o, e, i, n), o.__pictorialShapeStr = hg(t, i), o.__pictorialSymbolMeta = i, o 6245 } 6246 6247 function lg(t, e, i) { 6248 var n = i.animationModel, 6249 o = i.dataIndex; 6250 fo(t.__pictorialBundle, { position: i.bundlePosition.slice() }, n, o), i.symbolRepeat ? Qp(t, e, i, !0) : tg(t, e, i, !0), eg(t, i, !0), ig(t, e, i, !0) 6251 } 6252 6253 function ug(t, e, i, n) { 6254 var o = n.__pictorialBarRect; 6255 o && (o.style.text = null); 6256 var a = []; 6257 cg(n, function(t) { a.push(t) }), n.__pictorialMainPath && a.push(n.__pictorialMainPath), n.__pictorialClipPath && (i = null), d(a, function(t) { fo(t, { scale: [0, 0] }, i, e, function() { n.parent && n.parent.remove(n) }) }), t.setItemGraphicEl(e, null) 6258 } 6259 6260 function hg(t, e) { return [t.getItemVisual(e.dataIndex, "symbol") || "none", !!e.symbolRepeat, !!e.symbolClip].join(":") } 6261 6262 function cg(t, e, i) { d(t.__pictorialBundle.children(), function(n) { n !== t.__pictorialBarRect && e.call(i, n) }) } 6263 6264 function dg(t, e, i, n, o, a) { e && t.attr(e), n.symbolClip && !o ? i && t.attr(i) : i && BS[o ? "updateProps" : "initProps"](t, i, n.animationModel, n.dataIndex, a) } 6265 6266 function fg(t, e, i) { 6267 var n = i.color, 6268 o = i.dataIndex, 6269 a = i.itemModel, 6270 s = a.getModel("itemStyle").getItemStyle(["color"]), 6271 l = a.getModel("emphasis.itemStyle").getItemStyle(), 6272 u = a.getShallow("cursor"); 6273 cg(t, function(t) { t.setColor(n), t.setStyle(r({ fill: n, opacity: i.opacity }, s)), eo(t, l), u && (t.cursor = u), t.z2 = i.z2 }); 6274 var h = {}, 6275 c = e.valueDim.posDesc[+(i.boundingLength > 0)], 6276 d = t.__pictorialBarRect; 6277 ih(d.style, h, a, n, e.seriesModel, o, c), eo(d, h) 6278 } 6279 6280 function pg(t) { var e = Math.round(t);
6280 return Math.abs(t - e) < 1e-4 ? e : Math.ceil(t) } 6281 6282 function gg(t, e, i) { this.dimension = "single", this.dimensions = ["single"], this._axis = null, this._rect, this._init(t, e, i), this.model = t } 6283 6284 function mg(t, e) { 6285 e = e || {}; 6286 var i = t.coordinateSystem, 6287 n = t.axis, 6288 o = {}, 6289 a = n.position, 6290 r = n.orient, 6291 s = i.getRect(), 6292 l = [s.x, s.x + s.width, s.y, s.y + s.height], 6293 u = { horizontal: { top: l[2], bottom: l[3] }, vertical: { left: l[0], right: l[1] } }; 6294 o.position = ["vertical" === r ? u.vertical[a] : l[0], "horizontal" === r ? u.horizontal[a] : l[3]]; 6295 var h = { horizontal: 0, vertical: 1 }; 6296 o.rotation = Math.PI / 2 * h[r]; 6297 var c = { top: -1, bottom: 1, right: 1, left: -1 }; 6298 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); 6299 var d = e.rotate; 6300 return null == d && (d = t.get("axisLabel.rotate")), o.labelRotation = "top" === a ? -d : d, o.z2 = 1, o 6301 } 6302 6303 function vg(t, e, i, n, o) { 6304 var r = t.axis; 6305 if (!r.scale.isBlank() && r.containData(e)) 6306 if (t.involveSeries) { 6307 var s = yg(e, t), 6308 l = s.payloadBatch, 6309 u = s.snapToValue; 6310 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) 6311 } else i.showPointer(t, e) 6312 } 6313 6314 function yg(t, e) { 6315 var i = e.axis, 6316 n = i.dim, 6317 o = t, 6318 a = [], 6319 r = Number.MAX_VALUE, 6320 s = -1; 6321 return $L(e.seriesModels, function(e, l) { 6322 var u, h, c = e.getData().mapDimension(n, !0); 6323 if (e.getAxisTooltipData) { 6324 var d = e.getAxisTooltipData(c, t, i); 6325 h = d.dataIndices, u = d.nestestValue 6326 } else { 6327 if (!(h = e.getData().indicesOfNearest(c[0], t, "category" === i.type ? .5 : null)).length) return; 6328 u = e.getData().get(c[0], h[0]) 6329 } 6330 if (null != u && isFinite(u)) { 6331 var f = t - u, 6332 p = Math.abs(f); 6333 p <= r && ((p < r || f >= 0 && s < 0) && (r = p, s = f, o = u, a.length = 0), $L(h, function(t) { a.push({ seriesIndex: e.seriesIndex, dataIndexInside: t, dataIndex: e.getData().getRawIndex(t) }) })) 6334 } 6335 }), { payloadBatch: a, snapToValue: o } 6336 } 6337 6338 function xg(t, e, i, n) { t[e.key] = { value: i, payloadBatch: n } } 6339 6340 function _g(t, e, i, n) { 6341 var o = i.payloadBatch, 6342 a = e.axis, 6343 r = a.model, 6344 s = e.axisPointerModel; 6345 if (e.triggerTooltip && o.length) { 6346 var l = e.coordSys.model, 6347 u = Ju(l), 6348 h = t.map[u]; 6349 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() }) 6350 } 6351 } 6352 6353 function wg(t, e, i) { 6354 var n = i.axesInfo = []; 6355 $L(e, function(e, i) { 6356 var o = e.axisPointerModel.option, 6357 a = t[i]; 6358 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 }) 6359 }) 6360 } 6361 6362 function bg(t, e, i, n) { 6363 if (!Tg(e) && t.list.length) { 6364 var o = ((t.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {}; 6365 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 }) 6366 } else n({ type: "hideTip" }) 6367 } 6368 6369 function Sg(t, e, i) { 6370 var n = i.getZr(), 6371 o = QL(n).axisPointerLastHighlights || {}, 6372 a = QL(n).axisPointerLastHighlights = {}; 6373 $L(t, function(t, e) { 6374 var i = t.axisPointerModel.option; 6375 "show" === i.status && $L(i.seriesDataIndices, function(t) { 6376 var e = t.seriesIndex + " | " + t.dataIndex; 6377 a[e] = t 6378 }) 6379 }); 6380 var r = [], 6381 s = []; 6382 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 }) 6383 } 6384 6385 function Mg(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 } } 6386 6387 function Ig(t) { 6388 var e = t.axis.model, 6389 i = {}, 6390 n = i.axisDim = t.axis.dim; 6391 return i.axisIndex = i[n + "AxisIndex"] = e.componentIndex, i.axisName = i[n + "AxisName"] = e.name, i.axisId = i[n + "AxisId"] = e.id, i 6392 } 6393 6394 function Tg(t) { return !t || null == t[0] || isNaN(t[0]) || null == t[1] || isNaN(t[1]) } 6395 6396 function Dg(t, e, i) { 6397 if (!a_.node) { 6398 var n = e.getZr(); 6399 tk(n).records || (tk(n).records = {}), Ag(n, e), (tk(n).records[t] || (tk(n).records[t] = {})).handler = i 6400 } 6401 } 6402 6403 function Ag(t, e) { 6404 function i(i, n) { 6405 t.on(i, function(i) { 6406 var o = Pg(e); 6407 ek(tk(t).records, function(t) { t && n(t, i, o.dispatchAction) }), Cg(o.pendings, e) 6408 }) 6409 } 6410 tk(t).initialized || (tk(t).initialized = !0, i("click", v(kg, "click")), i("mousemove", v(kg, "mousemove")), i("globalout", Lg)) 6411 } 6412 6413 function Cg(t, e) { 6414 var i, n = t.showTip.length, 6415 o = t.hideTip.length; 6416 n ? i = t.showTip[n - 1] : o && (i = t.hideTip[o - 1]), i && (i.dispatchAction = null, e.dispatchAction(i)) 6417 } 6418 6419 function Lg(t, e, i) { t.handler("leave", null, i) } 6420 6421 function kg(t, e, i, n) { e.handler(t, i, n) } 6422 6423 function Pg(t) { 6424 var e = { showTip: [], hideTip: [] }, 6425 i = function(n) { 6426 var o = e[n.type]; 6427 o ? o.push(n) : (n.dispatchAction = i, t.dispatchAction(n)) 6428 }; 6429 return { dispatchAction: i, pendings: e } 6430 } 6431 6432 function Ng(t, e) { 6433 if (!a_.node) { 6434 var i = e.getZr(); 6435 (tk(i).records || {})[t] && (tk(i).records[t] = null) 6436 } 6437 } 6438 6439 function Og() {} 6440 6441 function Eg(t, e, i, n) { Rg(nk(i).lastProp, n) || (nk(i).lastProp = n, e ? fo(i, n, t) : (i.stopAnimation(), i.attr(n))) } 6442 6443 function Rg(t, e) { if (w(t) && w(e)) { var i = !0; return d(e, function(e, n) { i = i && Rg(t[n], e) }), !!i } return t === e } 6444 6445 function zg(t, e) { t[e.get("label.show") ? "show" : "hide"]() } 6446 6447 function Bg(t) { return { position: t.position.slice(), rotation: t.rotation || 0 } } 6448 6449 function Vg(t, e, i) { 6450 var n = e.get("z"), 6451 o = e.get("zlevel"); 6452 t && t.traverse(function(t) { "group" !== t.type && (null != n && (t.z = n), null != o && (t.zlevel = o), t.silent = i) }) 6453 } 6454 6455 function Gg(t) { 6456 var e, i = t.get("type"), 6457 n = t.getModel(i + "Style"); 6458 return "line" === i ? (e = n.getLineStyle()).fill = null : "shadow" === i && ((e = n.getAreaStyle()).stroke = null), e 6459 } 6460 6461 function Wg(t, e, i, n, o) { 6462 var a = Hg(i.get("value"), e.axis, e.ecModel, i.get("seriesDataIndices"), { precision: i.get("label.precision"), formatter: i.get("label.formatter") }), 6463 r = i.getModel("label"), 6464 s = KS(r.get("padding") || 0), 6465 l = r.getFont(), 6466 u = me(a, l), 6467 h = o.position, 6468 c = u.width + s[1] + s[3], 6469 d = u.height + s[0] + s[2], 6470 f = o.align; 6471 "right" === f && (h[0] -= c), "center" === f && (h[0] -= c / 2); 6472 var p = o.verticalAlign; 6473 "bottom" === p && (h[1] -= d), "middle" === p && (h[1] -= d / 2), Fg(h, c, d, n); 6474 var g = r.get("backgroundColor"); 6475 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 } 6476 } 6477 6478 function Fg(t, e, i, n) { 6479 var o = n.getWidth(), 6480 a = n.getHeight(); 6481 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) 6482 } 6483 6484 function Hg(t, e, i, n, o) { 6485 t = e.scale.parse(t); 6486 var a = e.scale.getLabel(t, { precision: o.precision }), 6487 r = o.formatter; 6488 if (r) { 6489 var s = { value: bl(e, t), seriesData: [] }; 6490 d(n, function(t) { 6491 var e = i.getSeriesByIndex(t.seriesIndex), 6492 n = t.dataIndexInside, 6493 o = e && e.getDataParams(n); 6494 o && s.seriesData.push(o) 6495 }), _(r) ? a = r.replace("{value}", a) : x(r) && (a = r(s)) 6496 } 6497 return a 6498 } 6499 6500 function Zg(t, e, i) { var n = st(); return dt(n, n, i.rotation), ct(n, n, i.position), mo([t.dataToCoord(e), (i.labelOffset || 0) + (i.labelDirection || 1) * (i.labelMargin || 0)], n) } 6501 6502 function Ug(t, e, i, n, o, a) { 6503 var r = LD.innerTextLayout(i.rotation, 0, i.labelDirection); 6504 i.labelMargin = o.get("label.margin"), Wg(e, n, o, a, { position: Zg(n.axis, t, i), align: r.textAlign, verticalAlign: r.textVerticalAlign }) 6505 } 6506 6507 function Xg(t, e, i) { return i = i || 0, { x1: t[i], y1: t[1 - i], x2: e[i], y2: e[1 - i] } } 6508 6509 function jg(t, e, i) { return i = i || 0, { x: t[i], y: t[1 - i], width: e[i], height: e[1 - i] } } 6510 6511 function Yg(t, e, i, n, o, a) { return { cx: t, cy: e, r0: i, r: n, startAngle: o, endAngle: a, clockwise: !0 } } 6512 6513 function qg(t, e) { var i = {}; return i[e.dim + "AxisIndex"] = e.index, t.getCartesian(i) } 6514 6515 function Kg(t) { return "x" === t.dim ? 0 : 1 } 6516 6517 function $g(t) { return t.isHorizontal() ? 0 : 1 } 6518 6519 function Jg(t, e) { var i = t.getRect(); return [i[lk[e]], i[lk[e]] + i[uk[e]]] } 6520 6521 function Qg(t, e, i) { var n = new SS({ shape: { x: t.x - 10, y: t.y - 10, width: 0, height: t.height + 20 } }); return po(n, { shape: { width: t.width + 20, height: t.height + 20 } }, e, i), n } 6522 6523 function tm(t, e, i) { 6524 if (t.count()) 6525 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 = em(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 }) } 6526 } 6527 6528 function em(t) { 6529 for (var e = t.length, i = t[0].length, n = [], o = [], a = 0, r = {}, s = 0; s < i; ++s) { 6530 for (var l = 0, u = 0; l < e; ++l) u += t[l][s][1]; 6531 u > a && (a = u), n.push(u) 6532 } 6533 for (var h = 0; h < i; ++h) o[h] = (a - n[h]) / 2; 6534 a = 0; 6535 for (var c = 0; c < i; ++c) { 6536 var d = n[c] + o[c]; 6537 d > a && (a = d) 6538 } 6539 return r.y0 = o, r.max = a, r 6540 } 6541 6542 function im(t) { 6543 var e = 0; 6544 d(t.children, function(t) { 6545 im(t); 6546 var i = t.value; 6547 y(i) && (i = i[0]), e += i 6548 }); 6549 var i = t.value; 6550 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 6551 } 6552 6553 function nm(t, e, i) { 6554 function n() { r.ignore = r.hoverIgnore } 6555 6556 function o() { r.ignore = r.normalIgnore } 6557 sw.call(this); 6558 var a = new vS({ z2: pk }); 6559 a.seriesIndex = e.seriesIndex; 6560 var r = new fS({ z2: gk, silent: t.getModel("label").get("silent") }); 6561 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) 6562 } 6563 6564 function om(t, e, i) { 6565 var n = t.getVisual("color"), 6566 o = t.getVisual("visualMeta"); 6567 o && 0 !== o.length || (n = null); 6568 var a = t.getModel("itemStyle").get("color"); 6569 if (a) return a; 6570 if (n) return n; 6571 if (0 === t.depth) return i.option.color[0]; 6572 var r = i.option.color.length; 6573 return a = i.option.color[am(t) % r] 6574 } 6575 6576 function am(t) { for (var e = t; e.depth > 1;) e = e.parentNode; return l(t.getAncestors()[0].children, e) } 6577 6578 function rm(t, e, i) { return i !== fk.NONE && (i === fk.SELF ? t === e : i === fk.ANCESTOR ? t === e || t.isAncestorOf(e) : t === e || t.isDescendantOf(e)) } 6579 6580 function sm(t, e) { 6581 var i = t.children || []; 6582 t.children = lm(i, e), i.length && d(t.children, function(t) { sm(t, e) }) 6583 } 6584 6585 function lm(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 }) } 6586 6587 function um(t, e) { 6588 return e = e || [0, 0], f(["x", "y"], function(i, n) { 6589 var o = this.getAxis(i), 6590 a = e[n], 6591 r = t[n] / 2; 6592 return "category" === o.type ? o.getBandWidth() : Math.abs(o.dataToCoord(a - r) - o.dataToCoord(a + r)) 6593 }, this) 6594 } 6595 6596 function hm(t, e) { 6597 return e = e || [0, 0], f([0, 1], function(i) { 6598 var n = e[i], 6599 o = t[i] / 2, 6600 a = [], 6601 r = []; 6602 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]) 6603 }, this) 6604 } 6605 6606 function cm(t, e) { 6607 var i = this.getAxis(), 6608 n = e instanceof Array ? e[0] : e, 6609 o = (t instanceof Array ? t[0] : t) / 2; 6610 return "category" === i.type ? i.getBandWidth() : Math.abs(i.dataToCoord(n - o) - i.dataToCoord(n + o)) 6611 } 6612 6613 function dm(t, e) { 6614 return f(["Radius", "Angle"], function(i, n) { 6615 var o = this["get" + i + "Axis"](), 6616 a = e[n], 6617 r = t[n] / 2, 6618 s = "dataTo" + i, 6619 l = "category" === o.type ? o.getBandWidth() : Math.abs(o[s](a - r) - o[s](a + r)); 6620 return "Angle" === i && (l = l * Math.PI / 180), l 6621 }, this) 6622 } 6623 6624 function fm(t) { 6625 var e, i = t.type; 6626 if ("path" === i) { 6627 var n = t.shape; 6628 (e = Rn(n.pathData, null, { x: n.x || 0, y: n.y || 0, width: n.width || 0, height: n.height || 0 }, "center")).__customPathData = t.pathData 6629 } else "image" === i ? (e = new Je({})).__customImagePath = t.style.image : "text" === i ? (e = new fS({})).__customText = t.style.text : e = new(0, BS[i.charAt(0).toUpperCase() + i.slice(1)]); 6630 return e.__customGraphicType = i, e.name = t.name, e 6631 } 6632 6633 function pm(t, e, n, o, a, r) { 6634 var s = {}, 6635 l = n.style || {}; 6636 if (n.shape && (s.shape = i(n.shape)), n.position && (s.position = n.position.slice()), n.scale && (s.scale = n.scale.slice()), n.origin && (s.origin = n.origin.slice()), n.rotation && (s.rotation = n.rotation), "image" === t.type &
6636& n.style) { 6637 u = s.style = {}; 6638 d(["x", "y", "width", "height"], function(e) { gm(e, u, l, t.style, r) }) 6639 } 6640 if ("text" === t.type && n.style) { 6641 var u = s.style = {}; 6642 d(["x", "y"], function(e) { gm(e, u, l, t.style, r) }), !l.hasOwnProperty("textFill") && l.fill && (l.textFill = l.fill), !l.hasOwnProperty("textStroke") && l.stroke && (l.textStroke = l.stroke) 6643 } 6644 if ("group" !== t.type && (t.useStyle(l), r)) { 6645 t.style.opacity = 0; 6646 var h = l.opacity; 6647 null == h && (h = 1), po(t, { style: { opacity: h } }, o, e) 6648 } 6649 r ? t.attr(s) : fo(t, s, o, e), t.attr({ z2: n.z2 || 0, silent: n.silent }), !1 !== n.styleEmphasis && eo(t, n.styleEmphasis) 6650 } 6651 6652 function gm(t, e, i, n, o) { null == i[t] || o || (e[t] = i[t], i[t] = n[t]) } 6653 6654 function mm(t, e, i, n) { 6655 function o(t) { null == t && (t = h), v && (c = e.getItemModel(t), d = c.getModel(bk), f = c.getModel(Sk), p = e.getItemVisual(t, "color"), v = !1) } 6656 var s = t.get("renderItem"), 6657 l = t.coordinateSystem, 6658 u = {}; 6659 l && (u = l.prepareCustoms ? l.prepareCustoms() : Ik[l.type](l)); 6660 var h, c, d, f, p, g = r({ 6661 getWidth: n.getWidth, 6662 getHeight: n.getHeight, 6663 getZr: n.getZr, 6664 getDevicePixelRatio: n.getDevicePixelRatio, 6665 value: function(t, i) { return null == i && (i = h), e.get(e.getDimension(t || 0), i) }, 6666 style: function(i, n) { 6667 null == n && (n = h), o(n); 6668 var r = c.getModel(_k).getItemStyle(); 6669 null != p && (r.fill = p); 6670 var s = e.getItemVisual(n, "opacity"); 6671 return null != s && (r.opacity = s), no(r, d, null, { autoColor: p, isRectText: !0 }), r.text = d.getShallow("show") ? D(t.getFormattedLabel(n, "normal"), ql(e, n)) : null, i && a(r, i), r 6672 }, 6673 styleEmphasis: function(i, n) { null == n && (n = h), o(n); var r = c.getModel(wk).getItemStyle(); return no(r, f, null, { isRectText: !0 }, !0), r.text = f.getShallow("show") ? A(t.getFormattedLabel(n, "emphasis"), t.getFormattedLabel(n, "normal"), ql(e, n)) : null, i && a(r, i), r }, 6674 visual: function(t, i) { return null == i && (i = h), e.getItemVisual(i, t) }, 6675 barLayout: function(t) { if (l.getBaseAxis) return rl(r({ axis: l.getBaseAxis() }, t), n) }, 6676 currentSeriesIndices: function() { return i.getCurrentSeriesIndices() }, 6677 font: function(t) { return ho(t, i) } 6678 }, u.api || {}), 6679 m = { context: {}, seriesId: t.id, seriesName: t.name, seriesIndex: t.seriesIndex, coordSys: u.coordSys, dataInsideLength: e.count(), encode: vm(t.getData()) }, 6680 v = !0; 6681 return function(t) { return h = t, v = !0, s && s(r({ dataIndexInside: t, dataIndex: e.getRawIndex(t) }, m), g) || {} } 6682 } 6683 6684 function vm(t) { 6685 var e = {}; 6686 return d(t.dimensions, function(i, n) { 6687 var o = t.getDimensionInfo(i); 6688 if (!o.isExtraCoord) { 6689 var a = o.coordDim; 6690 (e[a] = e[a] || [])[o.coordDimIndex] = n 6691 } 6692 }), e 6693 } 6694 6695 function ym(t, e, i, n, o, a) { return (t = xm(t, e, i, n, o, a)) && a.setItemGraphicEl(e, t), t } 6696 6697 function xm(t, e, i, n, o, a) { 6698 var r = i.type; 6699 if (!t || r === t.__customGraphicType || "path" === r && i.pathData === t.__customPathData || "image" === r && i.style.image === t.__customImagePath || "text" === r && i.style.text === t.__customText || (o.remove(t), t = null), null != r) { 6700 var s = !t; 6701 if (!t && (t = fm(i)), pm(t, e, i, n, a, s), "group" === r) { 6702 var l = t.children() || [], 6703 u = i.children || []; 6704 if (i.diffChildrenByName) _m({ oldChildren: l, newChildren: u, dataIndex: e, animatableModel: n, group: t, data: a }); 6705 else { for (var h = 0; h < u.length; h++) xm(t.childAt(h), e, u[h], n, t, a); for (; h < l.length; h++) l[h] && t.remove(l[h]) } 6706 } 6707 return o.add(t), t 6708 } 6709 } 6710 6711 function _m(t) { new Ss(t.oldChildren, t.newChildren, wm, wm, t).add(bm).update(bm).remove(Sm).execute() } 6712 6713 function wm(t, e) { var i = t && t.name; return null != i ? i : Mk + e } 6714 6715 function bm(t, e) { 6716 var i = this.context, 6717 n = null != t ? i.newChildren[t] : null; 6718 xm(null != e ? i.oldChildren[e] : null, i.dataIndex, n, i.animatableModel, i.group, i.data) 6719 } 6720 6721 function Sm(t) { 6722 var e = this.context, 6723 i = e.oldChildren[t]; 6724 i && e.group.remove(i) 6725 } 6726 6727 function Mm(t, e, i, n) { 6728 var o = i.type, 6729 a = new(0, BS[o.charAt(0).toUpperCase() + o.slice(1)])(i); 6730 e.add(a), n.set(t, a), a.__ecGraphicId = t 6731 } 6732 6733 function Im(t, e) { 6734 var i = t && t.parent; 6735 i && ("group" === t.type && t.traverse(function(t) { Im(t, e) }), e.removeKey(t.__ecGraphicId), i.remove(t)) 6736 } 6737 6738 function Tm(t) { return t = a({}, t), d(["id", "parentId", "$action", "hv", "bounding"].concat(aM), function(e) { delete t[e] }), t } 6739 6740 function Dm(t, e) { var i; return d(e, function(e) { null != t[e] && "auto" !== t[e] && (i = !0) }), i } 6741 6742 function Am(t, e) { 6743 var i = t.exist; 6744 if (e.id = t.keyInfo.id, !e.type && i && (e.type = i.type), null == e.parentId) { 6745 var n = e.parentOption; 6746 n ? e.parentId = n.id : i && (e.parentId = i.parentId) 6747 } 6748 e.parentOption = null 6749 } 6750 6751 function Cm(t, e, i) { 6752 var o = a({}, i), 6753 r = t[e], 6754 s = i.$action || "merge"; 6755 "merge" === s ? r ? (n(r, o, !0), ia(r, o, { ignoreSize: !0 }), oa(i, r)) : t[e] = o : "replace" === s ? t[e] = o : "remove" === s && r && (t[e] = null) 6756 } 6757 6758 function Lm(t, e) { t && (t.hv = e.hv = [Dm(e, ["left", "right"]), Dm(e, ["top", "bottom"])], "group" === t.type && (null == t.width && (t.width = e.width = 0), null == t.height && (t.height = e.height = 0))) } 6759 6760 function km(t, e, i) { 6761 var n, o = {}, 6762 a = "toggleSelected" === t; 6763 return i.eachComponent("legend", function(i) { 6764 a && null != n ? i[n ? "select" : "unSelect"](e.name) : (i[t](e.name), n = i.isSelected(e.name)), d(i.getData(), function(t) { 6765 var e = t.get("name"); 6766 if ("\n" !== e && "" !== e) { 6767 var n = i.isSelected(e); 6768 o.hasOwnProperty(e) ? o[e] = o[e] && n : o[e]
6768= n 6769 } 6770 }) 6771 }), { name: e.name, selected: o } 6772 } 6773 6774 function Pm(t, e, i) { 6775 var n = e.getBoxLayoutParams(), 6776 o = e.get("padding"), 6777 a = { width: i.getWidth(), height: i.getHeight() }, 6778 r = Qo(n, a, o); 6779 sM(e.get("orient"), t, e.get("itemGap"), r.width, r.height), ta(t, n, a, o) 6780 } 6781 6782 function Nm(t, e) { 6783 var i = KS(e.get("padding")), 6784 n = e.getItemStyle(["color", "opacity"]); 6785 return n.fill = e.get("backgroundColor"), t = new SS({ 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 }) 6786 } 6787 6788 function Om(t, e) { e.dispatchAction({ type: "legendToggleSelect", name: t }) } 6789 6790 function Em(t, e, i, n) { 6791 var o = i.getZr().storage.getDisplayList()[0]; 6792 o && o.useHoverLayer || i.dispatchAction({ type: "highlight", seriesName: t.name, name: e, excludeSeriesId: n }) 6793 } 6794 6795 function Rm(t, e, i, n) { 6796 var o = i.getZr().storage.getDisplayList()[0]; 6797 o && o.useHoverLayer || i.dispatchAction({ type: "downplay", seriesName: t.name, name: e, excludeSeriesId: n }) 6798 } 6799 6800 function zm(t, e, i) { 6801 var n = [1, 1]; 6802 n[t.getOrient().index] = 0, ia(e, i, { type: "box", ignoreSize: n }) 6803 } 6804 6805 function Bm(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(Vk, function(t) { return t + "transition:" + e }).join(";") } 6806 6807 function Vm(t) { 6808 var e = [], 6809 i = t.get("fontSize"), 6810 n = t.getTextColor(); 6811 return n && e.push("color:" + n), e.push("font:" + t.getFont()), i && e.push("line-height:" + Math.round(3 * i / 2) + "px"), zk(["decoration", "align"], function(i) { 6812 var n = t.get(i); 6813 n && e.push("text-" + i + ":" + n) 6814 }), e.join(";") 6815 } 6816 6817 function Gm(t) { 6818 var e = [], 6819 i = t.get("transitionDuration"), 6820 n = t.get("backgroundColor"), 6821 o = t.getModel("textStyle"), 6822 a = t.get("padding"); 6823 return i && e.push(Bm(i)), n && (a_.canvasSupported ? e.push("background-Color:" + n) : (e.push("background-Color:#" + Pt(n)), e.push("filter:alpha(opacity=70)"))), zk(["width", "color", "radius"], function(i) { 6824 var n = "border-" + i, 6825 o = Bk(n), 6826 a = t.get(o); 6827 null != a && e.push(n + ":" + a + ("color" === i ? "" : "px")) 6828 }), e.push(Vm(o)), null != a && e.push("padding:" + KS(a).join("px ") + "px"), e.join(";") + ";" 6829 } 6830 6831 function Wm(t, e) { 6832 if (a_.wxa) return null; 6833 var i = document.createElement("div"), 6834 n = this._zr = e.getZr(); 6835 this.el = i, this._x = e.getWidth() / 2, this._y = e.getHeight() / 2, t.appendChild(i), this._container = t, this._show = !1, this._hideTimeout; 6836 var o = this; 6837 i.onmouseenter = function() { o._enterable && (clearTimeout(o._hideTimeout), o._show = !0), o._inContent = !0 }, i.onmousemove = function(e) { 6838 if (e = e || window.event, !o._enterable) { 6839 var i = n.handler; 6840 li(t, e, !0), i.dispatch("mousemove", e) 6841 } 6842 }, i.onmouseleave = function() { o._enterable && o._show && o.hideLater(o._hideDelay), o._inContent = !1 } 6843 } 6844 6845 function Fm(t) { 6846 for (var e = t.pop(); t.length;) { 6847 var i = t.pop(); 6848 i && (wo.isInstance(i) && (i = i.get("tooltip", !0)), "string" == typeof i && (i = { formatter: i }), e = new wo(i, e, e.ecModel)) 6849 } 6850 return e 6851 } 6852 6853 function Hm(t, e) { return t.dispatchAction || m(e.dispatchAction, e) } 6854 6855 function Zm(t, e, i, n, o, a, r) { 6856 var s = Xm(i), 6857 l = s.width, 6858 u = s.height; 6859 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] 6860 } 6861 6862 function Um(t, e, i, n, o) { 6863 var a = Xm(i), 6864 r = a.width, 6865 s = a.height; 6866 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] 6867 } 6868 6869 function Xm(t) { 6870 var e = t.clientWidth, 6871 i = t.clientHeight; 6872 if (document.defaultView && document.defaultView.getComputedStyle) { 6873 var n = document.defaultView.getComputedStyle(t); 6874 n && (e += parseInt(n.paddingLeft, 10) + parseInt(n.paddingRight, 10) + parseInt(n.borderLeftWidth, 10) + parseInt(n.borderRightWidth, 10), i += parseInt(n.paddingTop, 10) + parseInt(n.paddingBottom, 10) + parseInt(n.borderTopWidth, 10) + parseInt(n.borderBottomWidth, 10)) 6875 } 6876 return { width: e, height: i } 6877 } 6878 6879 function jm(t, e, i) { 6880 var n = i[0], 6881 o = i[1], 6882 a = 0, 6883 r = 0, 6884 s = e.width, 6885 l = e.height; 6886 switch (t) { 6887 case "inside": 6888 a = e.x + s / 2 - n / 2, r = e.y + l / 2 - o / 2; 6889 break; 6890 case "top": 6891 a = e.x + s / 2 - n / 2, r = e.y - o - 5; 6892 break; 6893 case "bottom": 6894 a = e.x + s / 2 - n / 2, r = e.y + l + 5; 6895 break;
6896 case "left": 6897 a = e.x - n - 5, r = e.y + l / 2 - o / 2; 6898 break; 6899 case "right": 6900 a = e.x + s + 5, r = e.y + l / 2 - o / 2 6901 } 6902 return [a, r] 6903 } 6904 6905 function Ym(t) { return "center" === t || "middle" === t } 6906 6907 function qm(t) { return t.get("stack") || "__ec_stack_" + t.seriesIndex } 6908 6909 function Km(t) { return t.dim } 6910 6911 function $m(t, e) { 6912 var i = {}; 6913 d(t, function(t, e) { 6914 var n = t.getData(), 6915 o = t.coordinateSystem.getBaseAxis(), 6916 a = o.getExtent(), 6917 r = "category" === o.type ? o.getBandWidth() : Math.abs(a[1] - a[0]) / n.count(), 6918 s = i[Km(o)] || { bandWidth: r, remainedWidth: r, autoWidthCount: 0, categoryGap: "20%", gap: "30%", stacks: {} }, 6919 l = s.stacks; 6920 i[Km(o)] = s; 6921 var u = qm(t); 6922 l[u] || s.autoWidthCount++, l[u] = l[u] || { width: 0, maxWidth: 0 }; 6923 var h = Do(t.get("barWidth"), r), 6924 c = Do(t.get("barMaxWidth"), r), 6925 d = t.get("barGap"), 6926 f = t.get("barCategoryGap"); 6927 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) 6928 }); 6929 var n = {}; 6930 return d(i, function(t, e) { 6931 n[e] = {}; 6932 var i = t.stacks, 6933 o = t.bandWidth, 6934 a = Do(t.categoryGap, o), 6935 r = Do(t.gap, 1), 6936 s = t.remainedWidth, 6937 l = t.autoWidthCount, 6938 u = (s - a) / (l + (l - 1) * r); 6939 u = Math.max(u, 0), d(i, function(t, e) { 6940 var i = t.maxWidth; 6941 i && i < u && (i = Math.min(i, s), t.width && (i = Math.min(i, t.width)), s -= i, t.width = i, l--) 6942 }), u = (s - a) / (l + (l - 1) * r), u = Math.max(u, 0); 6943 var h, c = 0; 6944 d(i, function(t, e) { t.width || (t.width = u), h = t, c += t.width * (1 + r) }), h && (c -= h.width * r); 6945 var f = -c / 2; 6946 d(i, function(t, i) { n[e][i] = n[e][i] || { offset: f, width: t.width }, f += t.width * (1 + r) }) 6947 }), n 6948 } 6949 6950 function Jm(t, e) { qT.call(this, "radius", t, e), this.type = "category" } 6951 6952 function Qm(t, e) { e = e || [0, 360], qT.call(this, "angle", t, e), this.type = "category" } 6953 6954 function tv(t, e) { return e.type || (e.data ? "category" : "value") } 6955 6956 function ev(t, e, i) { 6957 var n = e.get("center"), 6958 o = i.getWidth(), 6959 a = i.getHeight(); 6960 t.cx = Do(n[0], o), t.cy = Do(n[1], a); 6961 var r = t.getRadiusAxis(), 6962 s = Math.min(o, a) / 2, 6963 l = Do(e.get("radius"), s); 6964 r.inverse ? r.setExtent(l, 0) : r.setExtent(0, l) 6965 } 6966 6967 function iv(t, e) { 6968 var i = this, 6969 n = i.getAngleAxis(), 6970 o = i.getRadiusAxis(); 6971 if (n.scale.setExtent(1 / 0, -1 / 0), o.scale.setExtent(1 / 0, -1 / 0), t.eachSeries(function(t) { 6972 if (t.coordinateSystem === i) { 6973 var e = t.getData(); 6974 d(e.mapDimension("radius", !0), function(t) { o.scale.unionExtentFromData(e, Us(e, t)) }), d(e.mapDimension("angle", !0), function(t) { n.scale.unionExtentFromData(e, Us(e, t)) }) 6975 } 6976 }), yl(n.scale, n.model), yl(o.scale, o.model), "category" === n.type && !n.onBand) { 6977 var a = n.getExtent(), 6978 r = 360 / n.scale.count(); 6979 n.inverse ? a[1] += r : a[1] -= r, n.setExtent(a[0], a[1]) 6980 } 6981 } 6982 6983 function nv(t, e) { 6984 if (t.type = e.get("type"), t.scale = xl(e), t.onBand = e.get("boundaryGap") && "category" === t.type, t.inverse = e.get("inverse"), "angleAxis" === e.mainType) { 6985 t.inverse ^= e.get("clockwise"); 6986 var i = e.get("startAngle"); 6987 t.setExtent(i, i + (t.inverse ? -360 : 360)) 6988 } 6989 e.axis = t, t.model = e 6990 } 6991 6992 function ov(t, e, i) { 6993 e[1] > e[0] && (e = e.slice().reverse()); 6994 var n = t.coordToPoint([e[0], i]), 6995 o = t.coordToPoint([e[1], i]); 6996 return { x1: n[0], y1: n[1], x2: o[0], y2: o[1] } 6997 } 6998 6999 function av(t) { return t.getRadiusAxis().inverse ? 0 : 1 } 7000 7001 function rv(t) { 7002 var e = t[0], 7003 i = t[t.length - 1]; 7004 e && i && Math.abs(Math.abs(e.coord - i.coord) - 360) < 1e-4 && t.pop() 7005 } 7006 7007 function sv(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 } } 7008 7009 function lv(t, e, i, n, o) { 7010 var a = e.axis, 7011 r = a.dataToCoord(t), 7012 s = n.getAngleAxis().getExtent()[0]; 7013 s = s / 180 * Math.PI; 7014 var l, u, h, c = n.getRadiusAxis().getExtent(); 7015 if ("radius" === a.dim) { 7016 var d = st(); 7017 dt(d, d, s), ct(d, d, [n.cx, n.cy]), l = mo([r, -o], d); 7018 var f = e.getModel("axisLabel").get("rotate") || 0, 7019 p = LD.innerTextLayout(s, f * Math.PI / 180, -1); 7020 u = p.textAlign, h = p.textVerticalAlign 7021 } else { 7022 var g = c[1]; 7023 l = n.coordToPoint([g + o, r]); 7024 var m = n.cx, 7025 v = n.cy; 7026 u = Math.abs(l[0] - m) / g < .3 ? "center" : l[0] > m ? "left" : "right", h = Math.abs(l[1] - v) / g < .3 ? "middle" : l[1] > v ? "top" : "bottom" 7027 } 7028 return { position: l, align: u, verticalAlign: h } 7029 } 7030 7031 function uv(t, e) { e.update = "updateView", cs(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 } }) } 7032 7033 function hv(t) { 7034 var e = {}; 7035 d(t, function(t) { e[t] = 1 }), t.length = 0, d(e, function(e, i) { t.push(i) }) 7036 } 7037 7038 function cv(t) { 7039 if (t) 7040 for (var e in t) 7041 if (t.hasOwnProperty(e)) return !0 7042 } 7043 7044 function dv(t, e, n) { 7045 function o() { var t = function() {}; return t.prototype.__hidden = t.prototype, new t } 7046 var a = {}; 7047 return tP(e, function(e) { 7048 var r = a[e] = o(); 7049 tP(t[e], function(t, o) { 7050 if (ZA.isValidType(o)) { 7051 var a = { type: o, visual: t }; 7052 n && n(a, e), r[o] = new ZA(a), "opacity" === o && ((a = i(a)).type = "colorAlpha", r.__hidden.__alphaForOpacity = new ZA(a)) 7053 } 7054 }) 7055 }), a 7056 } 7057 7058 function fv(t, e, n) { 7059 var o; 7060 d(n, function(t) { e.hasOwnProperty(t) && cv(e[t]) && (o = !0) }), o && d(n, function(n) { e.hasOwnProperty(n) && cv(e[n]) ? t[n] = i(e[n]) : delete t[n] }) 7061 } 7062 7063 function pv(t, e, i, n, o, a) { 7064 function r(t) { return i.getItemVisual(h, t) } 7065 7066 function s(t, e) { i.setItemVisual(h, t, e) } 7067 7068 function l(t, l) { 7069 h = null == a ? t : l; 7070 var c = i.getRawDataItem(h); 7071 if (!c || !1 !== c.visualMap) 7072 for (var d = n.call(o, t), f = e[d], p = u[d], g = 0, m = p.length; g < m; g++) { 7073 var v = p[g]; 7074 f[v] && f[v].applyVisual(t, r, s) 7075 } 7076 } 7077 var u = {}; 7078 d(t, function(t) { 7079 var i = ZA.prepareVisualTypes(e[t]); 7080 u[t] = i 7081 }); 7082 var h; 7083 null == a ? i.each(l) : i.each([a], l) 7084 } 7085
7086 function gv(t, e, i, n) { 7087 var o = {}; 7088 return d(t, function(t) { 7089 var i = ZA.prepareVisualTypes(e[t]); 7090 o[t] = i 7091 }), { 7092 progress: function(t, a) { 7093 null != n && (n = a.getDimension(n)); 7094 for (var r; null != (r = t.next());) { 7095 var s = a.getRawDataItem(r); 7096 if (s && !1 === s.visualMap) return; 7097 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++) { 7098 var p = c[d]; 7099 h[p] && h[p].applyVisual(l, function(t) { return a.getItemVisual(r, t) }, function(t, e) { a.setItemVisual(r, t, e) }) 7100 } 7101 } 7102 } 7103 } 7104 } 7105 7106 function mv(t) { 7107 var e = ["x", "y"], 7108 i = ["width", "height"]; 7109 return { 7110 point: function(e, i, n) { if (e) { var o = n.range; return vv(e[t], o) } }, 7111 rect: function(n, o, a) { 7112 if (n) { 7113 var r = a.range, 7114 s = [n[e[t]], n[e[t]] + n[i[t]]]; 7115 return s[1] < s[0] && s.reverse(), vv(s[0], r) || vv(s[1], r) || vv(r[0], s) || vv(r[1], s) 7116 } 7117 } 7118 } 7119 } 7120 7121 function vv(t, e) { return e[0] <= t && t <= e[1] } 7122 7123 function yv(t, e, i, n, o) { 7124 for (var a = 0, r = o[o.length - 1]; a < o.length; a++) { 7125 var s = o[a]; 7126 if (xv(t, e, i, n, s[0], s[1], r[0], r[1])) return !0; 7127 r = s 7128 } 7129 } 7130 7131 function xv(t, e, i, n, o, a, r, s) { var l = wv(i - t, o - r, n - e, a - s); if (_v(l)) return !1; var u = wv(o - t, o - r, a - e, a - s) / l; if (u < 0 || u > 1) return !1; var h = wv(i - t, o - t, n - e, a - e) / l; return !(h < 0 || h > 1) } 7132 7133 function _v(t) { return t <= 1e-6 && t >= -1e-6 } 7134 7135 function wv(t, e, i, n) { return t * n - e * i } 7136 7137 function bv(t, e, i) { 7138 var n = this._targetInfoList = [], 7139 o = {}, 7140 a = Mv(e, t); 7141 iP(lP, function(t, e) { 7142 (!i || !i.include || nP(i.include, e) >= 0) && t(a, n, o) 7143 }) 7144 } 7145 7146 function Sv(t) { return t[0] > t[1] && t.reverse(), t } 7147 7148 function Mv(t, e) { return Oi(t, e, { includeMainTypes: rP }) } 7149 7150 function Iv(t, e, i, n) { 7151 var o = i.getAxis(["x", "y"][t]), 7152 a = Sv(f([0, 1], function(t) { return e ? o.coordToData(o.toLocalCoord(n[t])) : o.toGlobalCoord(o.dataToCoord(n[t])) })), 7153 r = []; 7154 return r[t] = a, r[1 - t] = [NaN, NaN], { values: a, xyMinMax: r } 7155 } 7156 7157 function Tv(t, e, i, n) { return [e[0] - n[t] * i[0], e[1] - n[t] * i[1]] } 7158 7159 function Dv(t, e) { 7160 var i = Av(t), 7161 n = Av(e), 7162 o = [i[0] / n[0], i[1] / n[1]]; 7163 return isNaN(o[0]) && (o[0] = 1), isNaN(o[1]) && (o[1] = 1), o 7164 } 7165 7166 function Av(t) { return t ? [t[0][1] - t[0][0], t[1][1] - t[1][0]] : [NaN, NaN] } 7167 7168 function Cv(t, e, i, n, o) { 7169 if (o) { 7170 var a = t.getZr(); 7171 a[gP] || (a[pP] || (a[pP] = Lv), wr(a, pP, i, e)(t, n)) 7172 } 7173 } 7174 7175 function Lv(t, e) { 7176 if (!t.isDisposed()) { 7177 var i = t.getZr(); 7178 i[gP] = !0, t.dispatchAction({ type: "brushSelect", batch: e }), i[gP] = !1 7179 } 7180 } 7181 7182 function kv(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 } } 7183 7184 function Pv(t) { var e = t.brushSelector; if (_(e)) { var i = []; return d(eP, 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(eP, function(t, i) { n[i] = e }), n } return e } 7185 7186 function Nv(t, e) { var i = t.option.seriesIndex; return null != i && "all" !== i && (y(i) ? l(i, e) < 0 : e !== i) } 7187 7188 function Ov(t) { var e = t.selectors = {}; return d(eP[t.brushType], function(i, n) { e[n] = function(n) { return i(n, e, t) } }), t } 7189 7190 function Ev(t) { return new $t(t[0][0], t[1][0], t[0][1] - t[0][0], t[1][1] - t[1][0]) } 7191 7192 function Rv(t, e) { return n({ brushType: t.brushType, brushMode: t.brushMode, transformable: t.transformable, brushStyle: new wo(t.brushStyle).getItemStyle(), removeOnClick: t.removeOnClick, z: t.z }, e, !0) } 7193 7194 function zv(t, e, i, n) { 7195 (!n || n.$from !== t.id) && this._brushController.setPanels(t.brushTargetManager.makePanelOpts(i)).enableBrush(t.brushOption).updateCovers(t.areas.slice()) 7196 } 7197 7198 function Bv(t, e) { xP[t] = e } 7199 7200 function Vv(t) { return xP[t] } 7201 7202 function Gv(t, e, i) { this.model = t, this.ecModel = e, this.api = i, this._brushType, this._brush
7202Mode } 7203 7204 function Wv(t, e, i) { this._model = t } 7205 7206 function Fv(t, e, i, n) { 7207 var o = i.calendarModel, 7208 a = i.seriesModel, 7209 r = o ? o.coordinateSystem : a ? a.coordinateSystem : null; 7210 return r === this ? r[t](n) : null 7211 } 7212 7213 function Hv(t, e) { 7214 var i = t.cellSize; 7215 y(i) ? 1 === i.length && (i[1] = i[0]) : i = t.cellSize = [i, i]; 7216 var n = f([0, 1], function(t) { return ea(e, t) && (i[t] = "auto"), null != i[t] && "auto" !== i[t] }); 7217 ia(t, e, { type: "box", ignoreSize: n }) 7218 } 7219 7220 function Zv(t) { return l(IP, t) >= 0 } 7221 7222 function Uv(t, e, i) { 7223 function n(t, e) { return l(e.nodes, t) >= 0 } 7224 7225 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 } 7226 7227 function a(t, n) { n.nodes.push(t), e(function(e) { d(i(t, e) || [], function(t) { n.records[e.name][t] = !0 }) }) } 7228 return function(i) { 7229 var r = { nodes: [], records: {} }; 7230 if (e(function(t) { r.records[t.name] = {} }), !i) return r; 7231 a(i, r); 7232 var s; 7233 do { s = !1, t(function(t) {!n(t, r) && o(t, r) && (a(t, r), s = !0) }) } while (s); 7234 return r 7235 } 7236 } 7237 7238 function Xv(t, e, i) { 7239 var n = [1 / 0, -1 / 0]; 7240 return DP(i, function(t) { 7241 var i = t.getData(); 7242 i && DP(i.mapDimension(e, !0), function(t) { 7243 var e = i.getApproximateExtent(t); 7244 e[0] < n[0] && (n[0] = e[0]), e[1] > n[1] && (n[1] = e[1]) 7245 }) 7246 }), n[1] < n[0] && (n = [NaN, NaN]), jv(t, n), n 7247 } 7248 7249 function jv(t, e) { 7250 var i = t.getAxisModel(), 7251 n = i.getMin(!0), 7252 o = "category" === i.get("type"), 7253 a = o && i.getCategories().length; 7254 null != n && "dataMin" !== n && "function" != typeof n ? e[0] = n : o && (e[0] = a > 0 ? 0 : NaN); 7255 var r = i.getMax(!0); 7256 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 7257 } 7258 7259 function Yv(t, e) { 7260 var i = t.getAxisModel(), 7261 n = t._percentWindow, 7262 o = t._valueWindow; 7263 if (n) { 7264 var a = Po(o, [0, 500]); 7265 a = Math.min(a, 20); 7266 var r = e || 0 === n[0] && 100 === n[1]; 7267 i.setRange(r ? null : +o[0].toFixed(a), r ? null : +o[1].toFixed(a)) 7268 } 7269 } 7270 7271 function qv(t) { 7272 var e = t._minMaxSpan = {}, 7273 i = t._dataZoomModel; 7274 DP(["min", "max"], function(n) { 7275 e[n + "Span"] = i.get(n + "Span"); 7276 var o = i.get(n + "ValueSpan"); 7277 if (null != o && (e[n + "ValueSpan"] = o, null != (o = t.getAxisModel().axis.scale.parse(o)))) { 7278 var a = t._dataExtent; 7279 e[n + "Span"] = To(a[0] + o, a, [0, 100], !0) 7280 } 7281 }) 7282 } 7283 7284 function Kv(t) { var e = {}; return LP(["start", "end", "startValue", "endValue", "throttle"], function(i) { t.hasOwnProperty(i) && (e[i] = t[i]) }), e } 7285 7286 function $v(t, e) { 7287 var i = t._rangePropMode, 7288 n = t.get("rangeMode"); 7289 LP([ 7290 ["start", "startValue"], 7291 ["end", "endValue"] 7292 ], function(t, o) { 7293 var a = null != e[t[0]], 7294 r = null != e[t[1]]; 7295 a && !r ? i[o] = "percent" : !a && r ? i[o] = "value" : n ? i[o] = n[o] : a && (i[o] = "percent") 7296 }) 7297 } 7298 7299 function Jv(t) { return { x: "y", y: "x", radius: "angle", angle: "radius" }[t] } 7300 7301 function Qv(t) { return "vertical" === t ? "ns-resize" : "ew-resize" } 7302 7303 function ty(t, e) { 7304 var i = ny(t), 7305 n = e.dataZoomId, 7306 o = e.coordId; 7307 d(i, function(t, i) { 7308 var a = t.dataZoomInfos; 7309 a[n] && l(e.allCoordIds, o) < 0 && (delete a[n], t.count--) 7310 }), ay(i); 7311 var a = i[o]; 7312 a || ((a = i[o] = { coordId: o, dataZoomInfos: {}, count: 0 }
7312).controller = oy(t, a), a.dispatchAction = v(uy, t)), !a.dataZoomInfos[n] && a.count++, a.dataZoomInfos[n] = e; 7313 var r = hy(a.dataZoomInfos); 7314 a.controller.enable(r.controlType, r.opt), a.controller.setPointerChecker(e.containsPoint), wr(a, "dispatchAction", e.throttleRate, "fixRate") 7315 } 7316 7317 function ey(t, e) { 7318 var i = ny(t); 7319 d(i, function(t) { 7320 t.controller.dispose(); 7321 var i = t.dataZoomInfos; 7322 i[e] && (delete i[e], t.count--) 7323 }), ay(i) 7324 } 7325 7326 function iy(t) { return t.type + "\0_" + t.id } 7327 7328 function ny(t) { var e = t.getZr(); return e[ZP] || (e[ZP] = {}) } 7329 7330 function oy(t, e) { var i = new kh(t.getZr()); return i.on("pan", HP(ry, e)), i.on("zoom", HP(sy, e)), i } 7331 7332 function ay(t) { d(t, function(e, i) { e.count || (e.controller.dispose(), delete t[i]) }) } 7333 7334 function ry(t, e, i, n, o, a, r) { ly(t, function(s) { return s.panGetRange(t.controller, e, i, n, o, a, r) }) } 7335 7336 function sy(t, e, i, n) { ly(t, function(o) { return o.zoomGetRange(t.controller, e, i, n) }) } 7337 7338 function ly(t, e) { 7339 var i = []; 7340 d(t.dataZoomInfos, function(t) { var n = e(t);!t.disabled && n && i.push({ dataZoomId: t.dataZoomId, start: n[0], end: n[1] }) }), i.length && t.dispatchAction(i) 7341 } 7342 7343 function uy(t, e) { t.dispatchAction({ type: "dataZoom", batch: e }) } 7344 7345 function hy(t) { 7346 var e, i = {}, 7347 n = { type_true: 2, type_move: 1, type_false: 0, type_undefined: -1 }; 7348 return d(t, function(t) { 7349 var o = !t.disabled && (!t.zoomLock || "move"); 7350 n["type_" + o] > n["type_" + e] && (e = o), a(i, t.roamControllerOpt) 7351 }), { controlType: e, opt: i } 7352 } 7353 7354 function cy(t, e) { return t && t.hasOwnProperty && t.hasOwnProperty(e) } 7355 7356 function dy(t, e, i, n) { 7357 for (var o = e.targetVisuals[n], a = ZA.prepareVisualTypes(o), r = { color: t.getData().getVisual("color") }, s = 0, l = a.length; s < l; s++) { 7358 var u = a[s], 7359 h = o["opacity" === u ? "__alphaForOpacity" : u]; 7360 h && h.applyVisual(i, function(t) { return r[t] }, function(t, e) { r[t] = e }) 7361 } 7362 return r.color 7363 } 7364 7365 function fy(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 } 7366 7367 function py(t, e, i) { 7368 var n = t.option, 7369 o = n.align; 7370 if (null != o && "auto" !== o) return o; 7371 for (var a = { width: e.getWidth(), height: e.getHeight() }, r = "horizontal" === n.orient ? 1 : 0, s = [ 7372 ["left", "right", "width"], 7373 ["top", "bottom", "height"] 7374 ], 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]]; 7375 var d = [ 7376 ["x", "width", 3], 7377 ["y", "height", 0] 7378 ][r], 7379 f = Qo(h, a, n.padding); 7380 return l[(f.margin[d[2]] || 0) + f[d[0]] + .5 * f[d[1]] < .5 * a[d[1]] ? 0 : 1] 7381 } 7382 7383 function gy(t) { return d(t || [], function(e) { null != t.dataIndex && (t.dataIndexInside = t.dataIndex, t.dataIndex = null) }), t } 7384 7385 function my(t, e, i, n) { return new wS({ shape: { points: t }, draggable: !!i, cursor: e, drift: i, onmousemove: function(t) { zw(t.event) }, ondragend: n }) } 7386 7387 function vy(t, e) { 7388 return 0 === t ? [ 7389 [0, 0], 7390 [e, 0], 7391 [e, -e] 7392 ] : [ 7393 [0, 0], 7394 [e, 0], 7395 [e, e] 7396 ] 7397 } 7398 7399 function yy(t, e, i, n) { 7400 return t ? [ 7401 [0, -dN(e, fN(i, 0))], 7402 [gN, 0], 7403 [0, dN(e, fN(n - i, 0))] 7404 ] : [ 7405 [0, 0], 7406 [5, -5], 7407 [5, 5] 7408 ] 7409 } 7410 7411 function xy(t, e, i) { 7412 var n = pN / 2, 7413 o = t.get("hoverLinkDataSize"); 7414 return o && (n = hN(o, e, i, !0) / 2), n 7415 } 7416 7417 function _y(t) { var e = t.get("hoverLinkOnHandle"); return !!(null == e ? t.get("realtime") : e) } 7418 7419 function wy(t) { return "vertical" === t ? "ns-resize" : "ew-resize" } 7420 7421 function by(t, e) { 7422 var i = t.inverse; 7423 ("vertical" === t.orient ? !i : i) && e.reverse() 7424 } 7425 7426 function Sy(t) { Mi(t, "label", ["show"]) } 7427 7428 function My(t) { return !(isNaN(parseFloat(t.x)) && isNaN(parseFloat(t.y))) } 7429 7430 function Iy(t) { return !isNaN(parseFloat(t.x)) && !isNaN(parseFloat(t.y)) } 7431 7432 function Ty(t, e, i, n, o, a) { 7433 var r = [], 7434 s = Zs(e, n) ? e.getCalculationInfo("stackResultDimension") : n, 7435 l = Py(e, s, t), 7436 u = e.indicesOfNearest(s, l)[0]; 7437 r[o] = e.get(i, u), r[a] = e.get(n, u); 7438 var h = Lo(e.get(n, u)); 7439 return (h = Math.min(h, 20)) >
7439= 0 && (r[a] = +r[a].toFixed(h)), r 7440 } 7441 7442 function Dy(t, e) { 7443 var n = t.getData(), 7444 o = t.coordinateSystem; 7445 if (e && !Iy(e) && !y(e.coord) && o) { 7446 var a = o.dimensions, 7447 r = Ay(e, n, o, t); 7448 if ((e = i(e)).type && MN[e.type] && r.baseAxis && r.valueAxis) { 7449 var s = bN(a, r.baseAxis.dim), 7450 l = bN(a, r.valueAxis.dim); 7451 e.coord = MN[e.type](n, r.baseDataDim, r.valueDataDim, s, l), e.value = e.coord[l] 7452 } else { 7453 for (var u = [null != e.xAxis ? e.xAxis : e.radiusAxis, null != e.yAxis ? e.yAxis : e.angleAxis], h = 0; h < 2; h++) MN[u[h]] && (u[h] = Py(n, n.mapDimension(a[h]), u[h])); 7454 e.coord = u 7455 } 7456 } 7457 return e 7458 } 7459 7460 function Ay(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(Cy(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 } 7461 7462 function Cy(t, e) { 7463 var i = t.getData(), 7464 n = i.dimensions; 7465 e = i.getDimension(e); 7466 for (var o = 0; o < n.length; o++) { var a = i.getDimensionInfo(n[o]); if (a.name === e) return a.coordDim } 7467 } 7468 7469 function Ly(t, e) { return !(t && t.containData && e.coord && !My(e)) || t.containData(e.coord) } 7470 7471 function ky(t, e, i, n) { return n < 2 ? t.coord && t.coord[n] : t.value } 7472 7473 function Py(t, e, i) { 7474 if ("average" === i) { 7475 var n = 0, 7476 o = 0; 7477 return t.each(e, function(t, e) { isNaN(t) || (n += t, o++) }), n / o 7478 } 7479 return "median" === i ? t.getMedian(e) : t.getDataExtent(e, !0)["max" === i ? 1 : 0] 7480 } 7481 7482 function Ny(t, e, i) { 7483 var n = e.coordinateSystem; 7484 t.each(function(o) { 7485 var a, r = t.getItemModel(o), 7486 s = Do(r.get("x"), i.getWidth()), 7487 l = Do(r.get("y"), i.getHeight()); 7488 if (isNaN(s) || isNaN(l)) { 7489 if (e.getMarkerPosition) a = e.getMarkerPosition(t.getValues(t.dimensions, o)); 7490 else if (n) { 7491 var u = t.get(n.dimensions[0], o), 7492 h = t.get(n.dimensions[1], o); 7493 a = n.dataToPoint([u, h]) 7494 } 7495 } else a = [s, l]; 7496 isNaN(s) || (a[0] = s), isNaN(l) || (a[1] = l), t.setItemLayout(o, a) 7497 }) 7498 } 7499 7500 function Oy(t, e, i) { 7501 var n; 7502 n = t ? f(t && t.dimensions, function(t) { return r({ name: t }, e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {}) }) : [{ name: "value", type: "float" }]; 7503 var o = new sT(n, i), 7504 a = f(i.get("data"), v(Dy, e)); 7505 return t && (a = g(a, v(Ly, t))), o.initData(a, null, t ? ky : function(t) { return t.value }), o 7506 } 7507 7508 function Ey(t) { return !isNaN(t) && !isFinite(t) } 7509 7510 function Ry(t, e, i, n) { 7511 var o = 1 - t, 7512 a = n.dimensions[t]; 7513 return Ey(e[o]) && Ey(i[o]) && e[t] === i[t] && n.getAxis(a).containData(e[t]) 7514 } 7515 7516 function zy(t, e) { 7517 if ("cartesian2d" === t.type) { 7518 var i = e[0].coord, 7519 n = e[1].coord; 7520 if (i && n && (Ry(1, i, n, t) || Ry(0, i, n, t))) return !0 7521 } 7522 return Ly(t, e[0]) && Ly(t, e[1]) 7523 } 7524 7525 function By(t, e, i, n, o) { 7526 var a, r = n.coordinateSystem, 7527 s = t.getItemModel(e), 7528 l = Do(s.get("x"), o.getWidth()), 7529 u = Do(s.get("y"), o.getHeight()); 7530 if (isNaN(l) || isNaN(u)) { 7531 if (n.getMarkerPosition) a = n.getMarkerPosition(t.getValues(t.dimensions, e)); 7532 else { 7533 var h = r.dimensions, 7534 c = t.get(h[0], e), 7535 d = t.get(h[1], e); 7536 a = r.dataToPoint([c, d]) 7537 } 7538 if ("cartesian2d" === r.type) { 7539 var f = r.getAxis("x"), 7540 p = r.getAxis("y"), 7541 h = r.dimensions; 7542 Ey(t.get(h[0], e)) ? a[0] = f.toGlobalCoord(f.getExtent()[i ? 0 : 1]) : Ey(t.get(h[1], e)) && (a[1] = p.toGlobalCoord(p.getExtent()[i ? 0 : 1])) 7543 } 7544 isNaN(l) || (a[0] = l), isNaN(u) || (a[1] = u) 7545 } else a = [l, u]; 7546 t.setItemLayout(e, a) 7547 } 7548 7549 function Vy(t, e, i) { 7550 var n; 7551 n = t ? f(t && t.dimensions, function(t) { return r({ name: t }, e.getData().getDimensionInfo(e.getData().mapDimension(t)) || {}) }) : [{ name: "value", type: "float" }]; 7552 var o = new sT(n, i), 7553 a = new sT(n, i), 7554 s = new sT([], i), 7555 l = f(i.get("data"), v(TN, e, t, i)); 7556 t && (l = g(l, v(zy, t))); 7557 var u = t ? ky : function(t) { return t.value }; 7558 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 } 7559 } 7560 7561 function Gy(t) { return !isNaN(t) && !isFinite(t) } 7562 7563 function Wy(t, e, i, n) { var o = 1 - t; return Gy(e[o]) && Gy(i[o]) } 7564 7565 function Fy(t, e) { 7566 var i = e.coord[0], 7567 n = e.coord[1]; 7568 return !("cartesian2d" !== t.type || !i || !n || !Wy(1, i, n, t) && !Wy(0, i, n, t)) || (Ly(t, { coord: i, x: e.x0, y: e.y0 }) || Ly(t, { coord: n, x: e.x1, y: e.y1 })) 7569 } 7570 7571 function Hy(t, e, i, n, o) { 7572 var a, r = n.coordinateSystem, 7573 s = t.getItemModel(e), 7574 l = Do(s.get(i[0]), o.getWidth()), 7575 u = Do(s.get(i[1]), o.getHeight()); 7576 if (isNaN(l) || isNaN(u)) { 7577 if (n.getMarkerPosition) a = n.getMarkerPosition(t.getValues(i, e)); 7578 else { 7579 var h = [f = t.get(i[0], e), p = t.get(i[1], e)]; 7580 r.clampData && r.clampData(h, h), a = r.dataToPoint(h, !0) 7581 } 7582 if ("cartesian2d" === r.type) { 7583 var c = r.getAxis("x"), 7584 d = r.getAxis("y"), 7585 f = t.get(i[0], e), 7586 p = t.get(i[1], e); 7587 Gy(f) ? a[0] = c.toGlobalCoord(c.getExtent()["x0" === i[0] ? 0 : 1]) : Gy(p) && (a[1] = d.toGlobalCoord(d.getExtent()["y0" === i[1] ? 0 : 1])) 7588 } 7589 isNaN(l) || (a[0] = l), isNaN(u) || (a[1] = u) 7590 } else a = [l, u]; 7591 return a 7592 } 7593 7594 function Zy(t, e, i) { 7595 var n, o, a = ["x0", "y0", "x1", "y1"]; 7596 t ? (n = f(t && t.dimensions, function(t) { var i = e.getData(); return r({ name: t }, i.getDimensionInfo(i.mapDimension(t)) || {}) }), o = new sT(f(a, function(t, e) { return { name: t, type: n[e % 2].type } }), i)) : o = new sT(n = [{ name: "value", type: "float" }], i); 7597 var s = f(i.get("data"), v(DN, e, t, i)); 7598 t && (s = g(s, v(Fy, t))); 7599 var l = t ? function(t, e, i, n) { return t.coord[Math.floor(n / 2)][n % 2] } : function(t) { return t.value }; 7600 return o.initData(s, null, l), o.hasItemOption = !0, o 7601 } 7602 7603 function Uy(t) { 7604 var e = t.type, 7605 i = { number: "value", time: "time" }; 7606 if (i[e] && (t.axisType = i[e], delete t.type), Xy(t), jy(t, "controlPosition")) { 7607 var n = t.controlStyle || (t.controlStyle = {}); 7608 jy(n, "position") || (n.position = t.controlPosition), "none" !== n.position || jy(n, "show") || (n.show = !1, delete n.position), delete t.controlPosition 7609 } 7610 d(t.data || [], function(t) { w(t) && !y(t) && (!jy(t, "value") && jy(t, "name") && (t.value = t.name), Xy(t)) }) 7611 } 7612 7613 function Xy(t) { 7614 var e = t.itemStyle || (t.itemStyle = {}),
7615 i = e.emphasis || (e.emphasis = {}), 7616 n = t.label || t.label || {}, 7617 o = n.normal || (n.normal = {}), 7618 a = { normal: 1, emphasis: 1 }; 7619 d(n, function(t, e) { a[e] || jy(o, e) || (o[e] = t) }), i.label && !jy(n, "emphasis") && (n.emphasis = i.label, delete i.label) 7620 } 7621 7622 function jy(t, e) { return t.hasOwnProperty(e) } 7623 7624 function Yy(t, e) { return Qo(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }, t.get("padding")) } 7625 7626 function qy(t, e, n, o) { return Rn(t.get(e).replace(/^path:\/\//, ""), i(o || {}), new $t(n[0], n[1], n[2], n[3]), "center") } 7627 7628 function Ky(t, e, i, o, a, r) { 7629 var s = e.get("color"); 7630 a ? (a.setColor(s), i.add(a), r && r.onUpdate(a)) : ((a = Tl(t.get("symbol"), -1, -1, 2, 2, s)).setStyle("strokeNoScale", !0), i.add(a), r && r.onCreate(a)); 7631 var l = e.getItemStyle(["color", "symbol", "symbolSize"]); 7632 a.setStyle(l), o = n({ rectHover: !0, z2: 100 }, o, !0); 7633 var u = t.get("symbolSize"); 7634 (u = u instanceof Array ? u.slice() : [+u, +u])[0] /= 2, u[1] /= 2, o.scale = u; 7635 var h = t.get("symbolOffset"); 7636 if (h) { 7637 var c = o.position = o.position || [0, 0]; 7638 c[0] += Do(h[0], u[0]), c[1] += Do(h[1], u[1]) 7639 } 7640 var d = t.get("symbolRotate"); 7641 return o.rotation = (d || 0) * Math.PI / 180 || 0, a.attr(o), a.updateTransform(), a 7642 } 7643 7644 function $y(t, e, i, n, o) { 7645 if (!t.dragging) { 7646 var a = n.getModel("checkpointStyle"), 7647 r = i.dataToCoord(n.getData().get(["value"], e)); 7648 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))) 7649 } 7650 } 7651 7652 function Jy(t) { return 0 === t.indexOf("my") } 7653 7654 function Qy(t) { this.model = t } 7655 7656 function tx(t) { this.model = t } 7657 7658 function ex(t) { 7659 var e = {}, 7660 i = [], 7661 n = []; 7662 return t.eachRawSeries(function(t) { 7663 var o = t.coordinateSystem; 7664 if (!o || "cartesian2d" !== o.type && "polar" !== o.type) i.push(t); 7665 else { 7666 var a = o.getBaseAxis(); 7667 if ("category" === a.type) { 7668 var r = a.dim + "_" + a.index; 7669 e[r] || (e[r] = { categoryAxis: a, valueAxis: o.getOtherAxis(a), series: [] }, n.push({ axisDim: a.dim, axisIndex: a.index })), e[r].series.push(t) 7670 } else i.push(t) 7671 } 7672 }), { seriesGroupByCategoryAxis: e, other: i, meta: n } 7673 } 7674 7675 function ix(t) { 7676 var e = []; 7677 return d(t, function(t, i) { 7678 var n = t.categoryAxis, 7679 o = t.valueAxis.dim, 7680 a = [" "].concat(f(t.series, function(t) { return t.name })), 7681 r = [n.model.getCategories()]; 7682 d(t.series, function(t) { r.push(t.getRawData().mapArray(o, function(t) { return t })) }); 7683 for (var s = [a.join(HN)], l = 0; l < r[0].length; l++) { 7684 for (var u = [], h = 0; h < r.length; h++) u.push(r[h][l]); 7685 s.push(u.join(HN)) 7686 } 7687 e.push(s.join("\n")) 7688 }), e.join("\n\n" + FN + "\n\n") 7689 } 7690 7691 function nx(t) { 7692 return f(t, function(t) { 7693 var e = t.getRawData(), 7694 i = [t.name], 7695 n = []; 7696 return e.each(e.dimensions, function() { 7697 for (var t = arguments.length, o = arguments[t - 1], a = e.getName(o), r = 0; r < t - 1; r++) n[r] = arguments[r]; 7698 i.push((a ? a + HN : "") + n.join(HN)) 7699 }), i.join("\n") 7700 }).join("\n\n" + FN + "\n\n") 7701 } 7702 7703 function ox(t) { var e = ex(t); return { value: g([ix(e.seriesGroupByCategoryAxis), nx(e.other)], function(t) { return t.replace(/[\n\t\s]/g, "") }).join("\n\n" + FN + "\n\n"), meta: e.meta } } 7704 7705 function ax(t) { return t.replace(/^\s\s*/, "").replace(/\s\s*$/, "") } 7706 7707 function rx(t) { if (t.slice(0, t.indexOf("\n")).indexOf(HN) >= 0) return !0 } 7708 7709 function sx(t) { 7710 for (var e = t.split(/\n+/g), i = [], n = f(ax(e.shift()).split(ZN), function(t) { return { name: t, data: [] } }), o = 0; o < e.length; o++) { 7711 var a = ax(e[o]).split(ZN); 7712 i.push(a.shift()); 7713 for (var r = 0; r < a.length; r++) n[r] && (n[r].data[o] = a[r]) 7714 } 7715 return { series: n, categories: i } 7716 } 7717 7718 function lx(t) { 7719 for (var e = t.split(/\n+/g), i = ax(e.shift()), n = [], o = 0; o < e.length; o++) { 7720 var a, r = ax(e[o]).split(ZN), 7721 s = "", 7722 l = !1; 7723 isNaN(r[0]) ? (l = !0, s = r[0], r = r.slice(1), n[o] = { name: s, value: [] }, a = n[o].value) : a = n[o] = []; 7724 for (var u = 0; u < r.length; u++) a.push(+r[u]); 7725 1 === a.length && (l ? n[o].value = a[0] : n[o] = a[0]) 7726 } 7727 return { name: i, data: n } 7728 } 7729 7730 function ux(t, e) { 7731 var i = { series: [] }; 7732 return d(t.split(new RegExp("\n*" + FN + "\n*", "g")), function(t, n) { 7733 if (rx(t)) { 7734 var o = sx(t), 7735 a = e[n], 7736 r = a.axisDim + "Axis"; 7737 a && (i[r] = i[r] || [], i[r][a.axisIndex] = { data: o.categories }, i.series = i.series.concat(o.series)) 7738 } else { 7739 o = lx(t); 7740 i.series.push(o) 7741 } 7742 }), i 7743 } 7744 7745 function hx(t) { this._dom = null, this.model = t } 7746 7747 function cx(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 }) } 7748 7749 function dx(t, e) { 7750 var i = mx(t); 7751 UN(e, function(e, n) { 7752 for (var o = i.length - 1; o >= 0 && !i[o][n]; o--); 7753 if (o < 0) { 7754 var a = t.queryComponents({ mainType: "dataZoom", subType: "select", id: n })[0]; 7755 if (a) { 7756 var r = a.getPercentRange(); 7757 i[0][n] = { dataZoomId: n, start: r[0], end: r[1] } 7758 } 7759 } 7760 }), i.push(e) 7761 } 7762 7763 function fx(t) { 7764 var e = mx(t), 7765 i = e[e.length - 1]; 7766 e.length > 1 && e.pop(); 7767 var n = {}; 7768 return UN(i, function(t, i) { 7769 for (var o = e.length - 1; o >= 0; o--) 7770 if (t = e[o][i]) { n[i] = t; break } 7771 }), n 7772 } 7773 7774 function px(t) { t[XN] = null } 7775 7776 function gx(t) { return mx(t).length } 7777 7778 function mx(t) { var e = t[XN]; return e || (e = t[XN] = [{}]), e } 7779 7780 function vx(t, e, i) { 7781 (this._brushController = new Qd(i.getZr())).on("brush", m(this._onBrush, this)).mount(), this._isZ
7781oomActive 7782 } 7783 7784 function yx(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 } 7785 7786 function xx(t, e) { t.setIconStatus("back", gx(e) > 1 ? "emphasis" : "normal") } 7787 7788 function _x(t, e, i, n, o) { 7789 var a = i._isZoomActive; 7790 n && "takeGlobalCursor" === n.type && (a = "dataZoomSelect" === n.key && n.dataZoomSelectActive), i._isZoomActive = a, t.setIconStatus("zoom", a ? "emphasis" : "normal"); 7791 var r = new bv(yx(t.option), e, { include: ["grid"] }); 7792 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)" } }) 7793 } 7794 7795 function bx(t) { this.model = t } 7796 7797 function Sx(t) { return QN(t) } 7798 7799 function Mx() { 7800 if (!iO && nO) { 7801 iO = !0; 7802 var t = nO.styleSheets; 7803 t.length < 31 ? nO.createStyleSheet().addRule(".zrvml", "behavior:url(#default#VML)") : t[0].addRule(".zrvml", "behavior:url(#default#VML)") 7804 } 7805 } 7806 7807 function Ix(t) { return parseInt(t, 10) } 7808 7809 function Tx(t, e) { 7810 Mx(), this.root = t, this.storage = e; 7811 var i = document.createElement("div"), 7812 n = document.createElement("div"); 7813 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(); 7814 var o = e.delFromStorage, 7815 a = e.addToStorage; 7816 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 7817 } 7818 7819 function Dx(t) { return function() { ew('In IE8.0 VML mode painter not support method "' + t + '"') } } 7820 7821 function Ax(t) { return document.createElementNS(zO, t) } 7822 7823 function Cx(t) { return WO(1e4 * t) / 1e4 } 7824 7825 function Lx(t) { return t < jO && t > -jO } 7826 7827 function kx(t, e) { var i = e ? t.textFill : t.fill; return null != i && i !== GO } 7828 7829 function Px(t, e) { var i = e ? t.textStroke : t.stroke; return null != i && i !== GO } 7830
7831 function Nx(t, e) { e && Ox(t, "transform", "matrix(" + VO.call(e, ",") + ")") } 7832 7833 function Ox(t, e, i) { 7834 (!i || "linear" !== i.type && "radial" !== i.type) && ("string" == typeof i && i.indexOf("NaN") > -1 && console.log(i), t.setAttribute(e, i)) 7835 } 7836 7837 function Ex(t, e, i) { t.setAttributeNS("http://www.w3.org/1999/xlink", e, i) } 7838 7839 function Rx(t, e, i) { 7840 if (kx(e, i)) { 7841 var n = i ? e.textFill : e.fill; 7842 n = "transparent" === n ? GO : n, "none" !== t.getAttribute("clip-path") && n === GO && (n = "rgba(0, 0, 0, 0.002)"), Ox(t, "fill", n), Ox(t, "fill-opacity", e.opacity) 7843 } else Ox(t, "fill", GO); 7844 if (Px(e, i)) { 7845 var o = i ? e.textStroke : e.stroke; 7846 Ox(t, "stroke", o = "transparent" === o ? GO : o), Ox(t, "stroke-width", (i ? e.textStrokeWidth : e.lineWidth) / (!i && e.strokeNoScale ? e.host.getLineScale() : 1)), Ox(t, "paint-order", i ? "stroke" : "fill"), Ox(t, "stroke-opacity", e.opacity), e.lineDash ? (Ox(t, "stroke-dasharray", e.lineDash.join(",")), Ox(t, "stroke-dashoffset", WO(e.lineDashOffset || 0))) : Ox(t, "stroke-dasharray", ""), e.lineCap && Ox(t, "stroke-linecap", e.lineCap), e.lineJoin && Ox(t, "stroke-linejoin", e.lineJoin), e.miterLimit && Ox(t, "stroke-miterlimit", e.miterLimit) 7847 } else Ox(t, "stroke", GO) 7848 } 7849 7850 function zx(t) { 7851 for (var e = [], i = t.data, n = t.len(), o = 0; o < n;) { 7852 var a = "", 7853 r = 0; 7854 switch (i[o++]) { 7855 case BO.M: 7856 a = "M", r = 2; 7857 break; 7858 case BO.L: 7859 a = "L", r = 2; 7860 break; 7861 case BO.Q: 7862 a = "Q", r = 4; 7863 break; 7864 case BO.C: 7865 a = "C", r = 6; 7866 break; 7867 case BO.A: 7868 var s = i[o++], 7869 l = i[o++], 7870 u = i[o++], 7871 h = i[o++], 7872 c = i[o++], 7873 d = i[o++], 7874 f = i[o++], 7875 p = i[o++], 7876 g = Math.abs(d), 7877 m = Lx(g - UO) && !Lx(g), 7878 v = !1; 7879 v = g >= UO || !Lx(g) && (d > -ZO && d < 0 || d > ZO) == !!p; 7880 var y = Cx(s + u * HO(c)), 7881 x = Cx(l + h * FO(c)); 7882 m && (d = p ? UO - 1e-4 : 1e-4 - UO, v = !0, 9 === o && e.push("M", y, x)); 7883 var _ = Cx(s + u * HO(c + d)), 7884 w = Cx(l + h * FO(c + d)); 7885 e.push("A", Cx(u), Cx(h), WO(f * XO), +v, +p, _, w); 7886 break; 7887 case BO.Z: 7888 a = "Z"; 7889 break; 7890 case BO.R: 7891 var _ = Cx(i[o++]), 7892 w = Cx(i[o++]), 7893 b = Cx(i[o++]), 7894 S = Cx(i[o++]); 7895 e.push("M", _, w, "L", _ + b, w, "L", _ + b, w + S, "L", _, w + S, "L", _, w) 7896 } 7897 a && e.push(a); 7898 for (var M = 0; M < r; M++) e.push(Cx(i[o++])) 7899 } 7900 return e.join(" ") 7901 } 7902 7903 function Bx(t) { return "middle" === t ? "middle" : "bottom" === t ? "baseline" : "hanging" } 7904 7905 function Vx() {} 7906 7907 function Gx(t, e, i, n) { 7908 for (var o = 0, a = e.length, r = 0, s = 0; o < a; o++) { 7909 var l = e[o]; 7910 if (l.removed) { 7911 for (var u = [], h = s; h < s + l.count; h++) u.push(h); 7912 l.indices = u, s += l.count 7913 } else { 7914 for (var u = [], h = r; h < r + l.count; h++) u.push(h); 7915 l.indices = u, r += l.count, l.added || (s += l.count) 7916 } 7917 } 7918 return e 7919 } 7920 7921 function Wx(t) { return { newPos: t.newPos, components: t.components.slice(0) } } 7922 7923 function Fx(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 } 7924 7925 function Hx(t, e) { Fx.call(this, t, e, ["linearGradient", "radialGradient"], "__gradient_in_use__") } 7926 7927 function Zx(t, e) { Fx.call(this, t, e, "clipPath", "__clippath_in_use__") } 7928 7929 function Ux(t, e) { Fx.call(this, t, e, ["filter"], "__filter_in_use__", "_shadowDom") } 7930 7931 function Xx(t) { return t && (t.shadowBlur || t.shadowOffsetX || t.shadowOffsetY || t.textShadowBlur || t.textShadowOffsetX || t.textShadowOffsetY) } 7932 7933 function jx(t) { return parseInt(t, 10) } 7934 7935 function Yx(t) { return t instanceof In ? YO : t instanceof Je ? qO : t instanceof fS ? KO : YO } 7936 7937 function qx(t, e) { return e && t && e.parentNode !== t } 7938 7939 function Kx(t, e, i) { 7940 if (qx(t, e) && i) { 7941 var n = i.nextSibling; 7942 n ? t.insertBefore(e, n) : t.appendChild(e) 7943 } 7944 } 7945 7946 function $x(t, e) { 7947 if (qx(t, e)) { 7948 var i = t.firstChild; 7949 i ? t.insertBefore(e, i) : t.appendChild(e) 7950 } 7951 } 7952 7953 function Jx(t, e) { e && t && e.parentNode === t && t.removeChild(e) } 7954 7955 function Qx(t) { return t.__textSvgEl } 7956 7957 function t_(t) { return t.__svgEl } 7958 7959 function e_(t) { return function() { ew('In SVG mode painter not support method "' + t + '"') } } 7960 var i_ = 2311, 7961 n_ = function() { return i_++ }, 7962 o_ = {}, 7963 a_ = o_ = "object" == typeof wx && "function" == typeof wx.getSystemInfoSync ? { browser: {}, os: {}, node: !1, wxa: !0, canvasSupported: !0, svgSupported: !1, touchEventsSupported: !0 } : "undefined" == typeof document && "undefined" != typeof self ? { browser: {}, os: {}, node: !1, worker: !0, canvasSupported: !0 } : "undefined" == typeof navigator ? { browser: {}, os: {}, node: !0, worker: !1, canvasSupported: !0, svgSupported: !0 } : function(t) { 7964 var e = {}, 7965 i = {}, 7966 n = t.match(/Firefox\/([\d.]+)/), 7967 o = t.match(/MSIE\s([\d.]+)/) || t.match(/Trident\/.+?rv:(([\d.]+))/), 7968 a = t.match(/Edge\/([\d.]+)/), 7969 r = /micromessenger/i.test(t); 7970 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) } 7971 }(navigator.userAgent), 7972 r_ = { "[object Function]": 1, "[object RegExp]": 1, "[object Date]": 1, "[object Error]": 1, "[object CanvasGradient]": 1, "[object CanvasPattern]": 1, "[object Image]": 1, "[object Canvas]": 1 }, 7973 s_ = { "[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
7973]": 1 }, 7974 l_ = Object.prototype.toString, 7975 u_ = Array.prototype, 7976 h_ = u_.forEach, 7977 c_ = u_.filter, 7978 d_ = u_.slice, 7979 f_ = u_.map, 7980 p_ = u_.reduce, 7981 g_ = {}, 7982 m_ = function() { return g_.createCanvas() }; 7983 g_.createCanvas = function() { return document.createElement("canvas") }; 7984 var v_, y_ = "__ec_primitive__"; 7985 E.prototype = { constructor: E, get: function(t) { return this.hasOwnProperty(t) ? this[t] : null }, set: function(t, e) { return this[t] = e }, each: function(t, e) { void 0 !== e && (t = m(t, e)); for (var i in this) this.hasOwnProperty(i) && t(this[i], i) }, removeKey: function(t) { delete this[t] } }; 7986 var x_ = (Object.freeze || Object)({ 7987 $override: e, 7988 clone: i, 7989 merge: n, 7990 mergeAll: o, 7991 extend: a, 7992 defaults: r, 7993 createCanvas: m_, 7994 getContext: s, 7995 indexOf: l, 7996 inherits: u, 7997 mixin: h, 7998 isArrayLike: c, 7999 each: d, 8000 map: f, 8001 reduce: p, 8002 filter: g, 8003 find: function(t, e, i) { 8004 if (t && e) 8005 for (var n = 0, o = t.length; n < o; n++) 8006 if (e.call(i, t[n], n, t)) return t[n] 8007 }, 8008 bind: m, 8009 curry: v, 8010 isArray: y, 8011 isFunction: x, 8012 isString: _, 8013 isObject: w, 8014 isBuiltInObject: b, 8015 isTypedArray: S, 8016 isDom: M, 8017 eqNaN: I, 8018 retrieve: T, 8019 retrieve2: D, 8020 retrieve3: A, 8021 slice: C, 8022 normalizeCssArray: L, 8023 assert: k, 8024 trim: P, 8025 setAsPrimitive: N, 8026 isPrimitive: O, 8027 createHashMap: R, 8028 concatArray: z, 8029 noop: B 8030 }), 8031 __ = "undefined" == typeof Float32Array ? Array : Float32Array, 8032 w_ = X, 8033 b_ = j, 8034 S_ = K, 8035 M_ = $, 8036 I_ = (Object.freeze || Object)({ create: V, copy: G, clone: W, set: F, add: H, scaleAndAdd: Z, sub: U, len: X, length: w_, lenSquare: j, lengthSquare: b_, 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: S_, distanceSquare: $, distSquare: M_, negate: function(t, e) { return t[0] = -e[0], t[1] = -e[1], t }, lerp: J, applyTransform: Q, min: tt, max: et }); 8037 it.prototype = { 8038 constructor: it, 8039 _dragStart: function(t) { 8040 var e = t.target; 8041 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)) 8042 }, 8043 _drag: function(t) { 8044 var e = this._draggingTarget; 8045 if (e) { 8046 var i = t.offsetX, 8047 n = t.offsetY, 8048 o = i - this._x, 8049 a = n - this._y; 8050 this._x = i, this._y = n, e.drift(o, a, t), this.dispatchToElement(nt(e, t), "drag", t.event); 8051 var r = this.findHover(i, n, e).target, 8052 s = this._dropTarget; 8053 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)) 8054 } 8055 }, 8056 _dragEnd: function(t) { 8057 var e = this._draggingTarget; 8058 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 8059 } 8060 }; 8061 var T_ = Array.prototype.slice, 8062 D_ = function() { this._$handlers = {} }; 8063 D_.prototype = { 8064 constructor: D_, 8065 one: function(t, e, i) { 8066 var n = this._$handlers; 8067 if (!e || !t) return this; 8068 n[t] || (n[t] = []); 8069 for (var o = 0; o < n[t].length; o++) 8070 if (n[t][o].h === e) return this; 8071 return n[t].push({ h: e, one: !0, ctx: i || this }), this 8072 }, 8073 on: function(t, e, i) { 8074 var n = this._$handlers; 8075 if (!e || !t) return this; 8076 n[t] || (n[t] = []); 8077 for (var o = 0; o < n[t].length; o++) 8078 if (n[t][o].h === e) return this; 8079 return n[t].push({ h: e, one: !1, ctx: i || this }), this 8080 }, 8081 isSilent: function(t) { var e = this._$handlers; return e[t] && e[t].length }, 8082 off: function(t, e) { 8083 var i = this._$handlers; 8084 if (!t) return this._$handlers = {}, this; 8085 if (e) { 8086 if (i[t]) { 8087 for (var n = [], o = 0, a = i[t].length; o < a; o++) i[t][o].h != e && n.push(i[t][o]); 8088 i[t] = n 8089 } 8090 i[t] && 0 === i[t].length && delete i[t] 8091 } else delete i[t]; 8092 return this 8093 }, 8094 trigger: function(t) { 8095 if (this._$handlers[t]) { 8096 var e = arguments, 8097 i = e.length; 8098 i > 3 && (e = T_.call(e, 1)); 8099 for (var n = this._$handlers[t], o = n.length, a = 0; a < o;) { 8100 switch (i) { 8101 case 1: 8102 n[a].h.call(n[a].ctx); 8103 break; 8104 case 2: 8105 n[a].h.call(n[a].ctx, e[1]); 8106 break; 8107 case 3: 8108 n[a].h.call(n[a].ctx, e[1], e[2]); 8109 break; 8110 default: 8111 n[a].h.apply(n[a].ctx, e) 8112 } 8113 n[a].one ? (n.splice(a, 1), o--) : a++ 8114 } 8115 } 8116 return this 8117 }, 8118 triggerWithContext: function(t) { 8119 if (this._$handlers[t]) { 8120 var e = arguments, 8121 i = e.length; 8122 i > 4 && (e = T_.call(e, 1, e.length - 1)); 8123 for (var n = e[e.length - 1], o = this._$handlers[t], a = o.length, r = 0; r < a;) { 8124 switch (i) { 8125 case 1: 8126 o[r].h.call(n); 8127 break; 8128 case 2: 8129 o[r].h.call(n, e[1]); 8130 break; 8131 case 3: 8132 o[r].h.call(n, e[1], e[2]); 8133 break; 8134 default: 8135 o[r].h.apply(n, e) 8136 } 8137 o[r].one ? (o.splice(r, 1), a--) : r++ 8138 } 8139 } 8140 return this 8141 } 8142 }; 8143 var A_ = "silent"; 8144 at.prototype.dispose = function() {}; 8145 var C_ = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], 8146 L_ = function(t, e, i, n) { D_.call(this), this.storage = t, this.painter = e, this.painterRoot = n, i = i || new at, this.proxy = null, this._hovered = {}, this._lastTouchMoment, this._lastX, this._lastY, it.call(this), this.setHandlerProxy(i) }; 8147 L_.prototype = { 8148 constructor: L_, 8149 setHandlerProxy: function(t) { this.proxy && this.proxy.dispose(), t && (d(C_, function(e) { t.on && t.on(e, this[e], this) }, this), t.handler = this), this.proxy = t }, 8150 mousemove: function(t) { 8151 var e = t.zrX, 8152 i = t.zrY, 8153 n = this._hovered, 8154 o = n.target; 8155 o && !o.__zr && (o = (n = this.findHover(n.x, n.y)).target); 8156 var a = this._hovered = this.findHover(e, i), 8157 r = a.target, 8158 s = this.proxy;
8159 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) 8160 }, 8161 mouseout: function(t) { 8162 this.dispatchToElement(this._hovered, "mouseout", t); 8163 var e, i = t.toElement || t.relatedTarget; 8164 do { i = i && i.parentNode } while (i && 9 != i.nodeType && !(e = i === this.painterRoot)); 8165 !e && this.trigger("globalout", { event: t }) 8166 }, 8167 resize: function(t) { this._hovered = {} }, 8168 dispatch: function(t, e) { 8169 var i = this[t]; 8170 i && i.call(this, e) 8171 }, 8172 dispose: function() { this.proxy.dispose(), this.storage = this.proxy = this.painter = null }, 8173 setCursorStyle: function(t) { 8174 var e = this.proxy; 8175 e.setCursor && e.setCursor(t) 8176 }, 8177 dispatchToElement: function(t, e, i) { 8178 var n = (t = t || {}).target; 8179 if (!n || !n.silent) { 8180 for (var o = "on" + e, a = ot(e, t, i); n && (n[o] && (a.cancelBubble = n[o].call(n, a)), n.trigger(e, a), n = n.parent, !a.cancelBubble);); 8181 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) })) 8182 } 8183 }, 8184 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 = rt(n[a], t, e)) && (!o.topTarget && (o.topTarget = n[a]), r !== A_)) { o.target = n[a]; break } } return o } 8185 }, d(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function(t) { 8186 L_.prototype[t] = function(e) { 8187 var i = this.findHover(e.zrX, e.zrY), 8188 n = i.target; 8189 if ("mousedown" === t) this._downEl = n, this._downPoint = [e.zrX, e.zrY], this._upEl = n; 8190 else if ("mouseup" === t) this._upEl = n; 8191 else if ("click" === t) { 8192 if (this._downEl !== this._upEl || !this._downPoint || S_(this._downPoint, [e.zrX, e.zrY]) > 4) return; 8193 this._downPoint = null 8194 } 8195 this.dispatchToElement(i, t, e) 8196 } 8197 }), h(L_, D_), h(L_, it); 8198 var k_ = "undefined" == typeof Float32Array ? Array : Float32Array, 8199 P_ = (Object.freeze || Object)({ create: st, identity: lt, copy: ut, mul: ht, translate: ct, rotate: dt, scale: ft, invert: pt, clone: gt }), 8200 N_ = lt, 8201 O_ = 5e-5, 8202 E_ = function(t) { 8203 (t = t || {}).position || (this.position = [0, 0]), null == t.rotation && (this.rotation = 0), t.scale || (this.scale = [1, 1]), this.origin = this.origin || null 8204 }, 8205 R_ = E_.prototype; 8206 R_.transform = null, R_.needLocalTransform = function() { return mt(this.rotation) || mt(this.position[0]) || mt(this.position[1]) || mt(this.scale[0] - 1) || mt(this.scale[1] - 1) }, R_.updateTransform = function() { 8207 var t = this.parent, 8208 e = t && t.transform, 8209 i = this.needLocalTransform(), 8210 n = this.transform; 8211 i || e ? (n = n || st(), i ? this.getLocalTransform(n) : N_(n), e && (i ? ht(n, t.transform, n) : ut(n, t.transform)), this.transform = n, this.invTransform = this.invTransform || st(), pt(this.invTransform, n)) : n && N_(n) 8212 }, R_.getLocalTransform = function(t) { return E_.getLocalTransform(this, t) }, R_.setTransform = function(t) { 8213 var e = this.transform, 8214 i = t.dpr || 1; 8215 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) 8216 }, R_.restoreTransform = function(t) { 8217 var e = t.dpr || 1; 8218 t.setTransform(e, 0, 0, e, 0, 0) 8219 }; 8220 var z_ = []; 8221 R_.decomposeTransform = function() { 8222 if (this.transform) { 8223 var t = this.parent, 8224 e = this.transform; 8225 t && t.transform && (ht(z_, t.invTransform, e), e = z_); 8226 var i = e[0] * e[0] + e[1] * e[1], 8227 n = e[2] * e[2] + e[3] * e[3], 8228 o = this.position, 8229 a = this.scale; 8230 mt(i - 1) && (i = Math.sqrt(i)), mt(n - 1) && (n = Math.sqrt(n)), e[0] < 0 && (i = -i), e[3] < 0 && (n = -n), o[0] = e[4], o[1] = e[5], a[0] = i, a[1] = n, this.rotation = Math.atan2(-e[1] / n, e[0] / i) 8231 } 8232 }, R_.getGlobalScale = function() { 8233 var t = this.transform; 8234 if (!t) return [1, 1]; 8235 var e = Math.sqrt(t[0] * t[0] + t[1] * t[1]), 8236 i = Math.sqrt(t[2] * t[2] + t[3] * t[3]); 8237 return t[0] < 0 && (e = -e), t[3] < 0 && (i = -i), [e, i] 8238 }, R_.transformCoordToLocal = function(t, e) { 8239 var i = [t, e], 8240 n = this.invTransform; 8241 return n && Q(i, i, n), i 8242 }, R_.transformCoordToGlobal = function(t, e) { 8243 var i = [t, e], 8244 n = this.transform; 8245 return n && Q(i, i, n), i 8246 }, E_.getLocalTransform = function(t, e) { 8247 N_(e = e || []); 8248 var i = t.origin, 8249 n = t.scale || [1, 1], 8250 o = t.rotation || 0, 8251 a = t.position || [0, 0]; 8252 return i && (e[4] -= i[0], e[5] -= i[1]), ft(e, e, n), o && dt(e, e, o), i && (e[4] += i[0], e[5] += i[1]), e[4] += a[0], e[5] += a[1], e 8253 }; 8254 var B_ = { linear: function(t) { return t }, quadraticIn: function(t) { return t * t }, quadraticOut: function(t) { return t * (2 - t) }, quadraticInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1) }, cubicIn: function(t) { return t * t * t }, cubicOut: function(t) { return --t * t * t + 1 }, cubicInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2) }, quarticIn: function(t) { return t * t * t * t }, quarticOut: function(t) { return 1 - --t * t * t * t }, quarticInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2) }, quinticIn: function(t) { return t * t * t * t * t }, quinticOut: function(t) { return --t * t * t * t * t + 1 }, quinticInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2) }, sinusoidalIn: function(t) { return 1 - Math.cos(t * Math.PI / 2) }, sinusoidalOut: function(t) { return Math.sin(t * Math.PI / 2) }, sinusoidalInOut: function(t) { return .5 * (1 - Math.cos(Math.PI * t)) }, exponentialIn: function(t) { return 0 === t ? 0 : Math.pow(1024, t - 1) }, exponentialOut: function(t) { return 1 === t ? 1 : 1 - Math.pow(2, -10 * t) }, exponentialInOut: function(t) { return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? .5 * Math.pow(1024, t - 1) : .5 * (2 - Math.pow(2, -10 * (t - 1))) }, circularIn: function(t) { return 1 - Math.sqrt(1 - t * t) }
8254, circularOut: function(t) { return Math.sqrt(1 - --t * t) }, circularInOut: function(t) { return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1) }, elasticIn: function(t) { var e, i = .1; return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI), -i * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4)) }, elasticOut: function(t) { var e, i = .1; return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI), i * Math.pow(2, -10 * t) * Math.sin((t - e) * (2 * Math.PI) / .4) + 1) }, elasticInOut: function(t) { var e, i = .1; return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1, e = .1) : e = .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) / .4) * -.5 : i * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4) * .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) * .5 : .5 * ((t -= 2) * t * ((e + 1) * t + e) + 2) }, bounceIn: function(t) { return 1 - B_.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 + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 }, bounceInOut: function(t) { return t < .5 ? .5 * B_.bounceIn(2 * t) : .5 * B_.bounceOut(2 * t - 1) + .5 } }; 8255 vt.prototype = { 8256 constructor: vt, 8257 step: function(t, e) { 8258 if (this._initialized || (this._startTime = t + this._delay, this._initialized = !0), this._paused) this._pausedTime += e; 8259 else { 8260 var i = (t - this._startTime - this._pausedTime) / this._life; 8261 if (!(i < 0)) { 8262 i = Math.min(i, 1); 8263 var n = this.easing, 8264 o = "string" == typeof n ? B_[n] : n, 8265 a = "function" == typeof o ? o(i) : i; 8266 return this.fire("frame", a), 1 == i ? this.loop ? (this.restart(t), "restart") : (this._needsRemove = !0, "destroy") : null 8267 } 8268 } 8269 }, 8270 restart: function(t) { 8271 var e = (t - this._startTime - this._pausedTime) % this._life; 8272 this._startTime = t - e + this.gap, this._pausedTime = 0, this._needsRemove = !1 8273 }, 8274 fire: function(t, e) { this[t = "on" + t] && this[t](this._target, e) }, 8275 pause: function() { this._paused = !0 }, 8276 resume: function() { this._paused = !1 } 8277 }; 8278 var V_ = function() { this.head = null, this.tail = null, this._len = 0 }, 8279 G_ = V_.prototype; 8280 G_.insert = function(t) { var e = new W_(t); return this.insertEntry(e), e }, G_.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++ }, G_.remove = function(t) { 8281 var e = t.prev, 8282 i = t.next; 8283 e ? e.next = i : this.head = i, i ? i.prev = e : this.tail = e, t.next = t.prev = null, this._len-- 8284 }, G_.len = function() { return this._len }, G_.clear = function() { this.head = this.tail = null, this._len = 0 }; 8285 var W_ = function(t) { this.value = t, this.next, this.prev }, 8286 F_ = function(t) { this._list = new V_, this._map = {}, this._maxSize = t || 10, this._lastRemovedEntry = null }, 8287 H_ = F_.prototype; 8288 H_.put = function(t, e) { 8289 var i = this._list, 8290 n = this._map, 8291 o = null; 8292 if (null == n[t]) { 8293 var a = i.len(), 8294 r = this._lastRemovedEntry; 8295 if (a >= this._maxSize && a > 0) { 8296 var s = i.head; 8297 i.remove(s), delete n[s.key], o = s.value, this._lastRemovedEntry = s 8298 }
8299 r ? r.value = e : r = new W_(e), r.key = t, i.insertEntry(r), n[t] = r 8300 } 8301 return o 8302 }, H_.get = function(t) { 8303 var e = this._map[t], 8304 i = this._list; 8305 if (null != e) return e !== i.tail && (i.remove(e), i.insertEntry(e)), e.value 8306 }, H_.clear = function() { this._list.clear(), this._map = {} }; 8307 var Z_ = { 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] }, 8308 U_ = new F_(20), 8309 X_ = null, 8310 j_ = Nt, 8311 Y_ = Ot, 8312 q_ = (Object.freeze || Object)({ parse: At, lift: kt, toHex: Pt, fastLerp: Nt, fastMapToColor: j_, lerp: Ot, mapToColor: Y_, modifyHSL: Et, modifyAlpha: Rt, stringify: zt }), 8313 K_ = Array.prototype.slice, 8314 $_ = function(t, e, i, n) { this._tracks = {}, this._target = t, this._loop = e || !1, this._getter = i || Bt, this._setter = n || Vt, this._clipCount = 0, this._delay
8314= 0, this._doneList = [], this._onframeList = [], this._clipList = [] }; 8315 $_.prototype = { 8316 when: function(t, e) { 8317 var i = this._tracks; 8318 for (var n in e) 8319 if (e.hasOwnProperty(n)) { 8320 if (!i[n]) { 8321 i[n] = []; 8322 var o = this._getter(this._target, n); 8323 if (null == o) continue; 8324 0 !== t && i[n].push({ time: 0, value: jt(o) }) 8325 } 8326 i[n].push({ time: t, value: e[n] }) 8327 } 8328 return this 8329 }, 8330 during: function(t) { return this._onframeList.push(t), this }, 8331 pause: function() { 8332 for (var t = 0; t < this._clipList.length; t++) this._clipList[t].pause(); 8333 this._paused = !0 8334 }, 8335 resume: function() { 8336 for (var t = 0; t < this._clipList.length; t++) this._clipList[t].resume(); 8337 this._paused = !1 8338 }, 8339 isPaused: function() { return !!this._paused }, 8340 _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) }, 8341 start: function(t, e) { 8342 var i, n = this, 8343 o = 0; 8344 for (var a in this._tracks) 8345 if (this._tracks.hasOwnProperty(a)) { 8346 var r = Kt(this, t, function() {--o || n._doneCallback() }, this._tracks[a], a, e); 8347 r && (this._clipList.push(r), o++, this.animation && this.animation.addClip(r), i = r) 8348 } 8349 if (i) { 8350 var s = i.onframe; 8351 i.onframe = function(t, e) { s(t, e); for (var i = 0; i < n._onframeList.length; i++) n._onframeList[i](t, e) } 8352 } 8353 return o || this._doneCallback(), this 8354 }, 8355 stop: function(t) { 8356 for (var e = this._clipList, i = this.animation, n = 0; n < e.length; n++) { 8357 var o = e[n]; 8358 t && o.onframe(this._target, 1), i && i.removeClip(o) 8359 } 8360 e.length = 0 8361 }, 8362 delay: function(t) { return this._delay = t, this }, 8363 done: function(t) { return t && this._doneList.push(t), this }, 8364 getClips: function() { return this._clipList } 8365 }; 8366 var J_ = 1; 8367 "undefined" != typeof window && (J_ = Math.max(window.devicePixelRatio || 1, 1)); 8368 var Q_ = J_, 8369 tw = function() {}, 8370 ew = tw, 8371 iw = function() { this.animators = [] }; 8372 iw.prototype = { 8373 constructor: iw, 8374 animate: function(t, e) { 8375 var i, n = !1, 8376 o = this, 8377 a = this.__zr; 8378 if (t) { 8379 var r = t.split("."), 8380 s = o; 8381 n = "shape" === r[0]; 8382 for (var u = 0, h = r.length; u < h; u++) s && (s = s[r[u]]); 8383 s && (i = s) 8384 } else i = o; 8385 if (i) { 8386 var c = o.animators, 8387 d = new $_(i, e); 8388 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 8389 } 8390 ew('Property "' + t + '" is not existed in element ' + o.id) 8391 }, 8392 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 }, 8393 animateTo: function(t, e, i, n, o, a) { 8394 _(i) ? (o = n, n = i, i = 0) : x(n) ? (o = n, n = "linear", i = 0) : x(i) ? (o = i, i = 0) : x(e) ? (o = e, e = 500) : e || (e = 500), this.stopAnimation(), this._animateToShallow("", this, t, e, i); 8395 var r = this.animators.slice(), 8396 s = r.length; 8397 s || o && o(); 8398 for (var l = 0; l < r.length; l++) r[l].done(function() {--s || o && o() }).start(n, a) 8399 }, 8400 _animateToShallow: function(t, e, i, n, o) { 8401 var a = {}, 8402 r = 0; 8403 for (var s in i) 8404 if (i.hasOwnProperty(s)) 8405 if (null != e[s]) w(i[s]) && !c(i[s]) ? this._animateToShallow(t ? t + "." + s : s, e[s], i[s], n, o) : (a[s] = i[s], r++); 8406 else if (null != i[s]) 8407 if (t) { 8408 var l = {}; 8409 l[t] = {}, l[t][s] = i[s], this.attr(l) 8410 } else this.attr(s, i[s]); 8411 return r > 0 && this.animate(t, !1).when(null == n ? 500 : n, a).delay(o || 0), this 8412 } 8413 }; 8414 var nw = function(t) { E_.call(this, t), D_.call(this, t), iw.call(this, t), this.id = t.id || n_() }; 8415 nw.prototype = { 8416 type: "element", 8417 name: "", 8418 __zr: null, 8419 ignore: !1, 8420 clipPath: null, 8421 isGroup: !1, 8422 drift: function(t, e) { 8423 switch (this.draggable) { 8424 case "horizontal": 8425 e = 0; 8426 break; 8427 case "vertical": 8428 t = 0 8429 } 8430 var i = this.transform; 8431 i || (i = this.transform = [1, 0, 0, 1, 0, 0]), i[4] += t, i[5] += e, this.decomposeTransform(), this.dirty(!1) 8432 }, 8433 beforeUpdate: function() {}, 8434 afterUpdate: function() {}, 8435 update: function() { this.updateTransform() }, 8436 traverse: function(t, e) {}, 8437 attrKV: function(t, e) { 8438 if ("position" === t || "scale" === t || "origin" === t) { 8439 if (e) { 8440 var i = this[t]; 8441 i || (i = this[t] = []), i[0] = e[0], i[1] = e[1] 8442 } 8443 } else this[t] = e 8444 }, 8445 hide: function() { this.ignore = !0, this.__zr && this.__zr.refresh() }, 8446 show: function() { this.ignore = !1, this.__zr && this.__zr.refresh() }, 8447 attr: function(t, e) { 8448 if ("string" == typeof t) this.attrKV(t, e); 8449 else if (w(t)) 8450 for (var i in t) t.hasOwnProperty(i) && this.attrKV(i, t[i]); 8451 return this.dirty(!1), this 8452 }, 8453 setClipPath: function(t) { 8454 var e = this.__zr; 8455 e && t.addSelfToZr(e), this.clipPath && this.clipPath !== t && this.removeClipPath(), this.clipPath = t, t.__zr = e, t.__clipTarget = this, this.dirty(!1) 8456 }, 8457 removeClipPath: function() { 8458 var t = this.clipPath; 8459 t && (t.__zr && t.removeSelfFromZr(t.__zr), t.__zr = null, t.__clipTarget = null, this.clipPath = null, this.dirty(!1)) 8460 }, 8461 addSelfToZr: function(t) { 8462 this.__zr = t; 8463 var e = this.animators; 8464 if (e) 8465 for (var i = 0; i < e.length; i++) t.animation.addAnimator(e[i]); 8466 this.clipPath && this.clipPath.addSelfToZr(t) 8467 }, 8468 removeSelfFromZr: function(t) { 8469 this.__zr = null; 8470 var e = this.animators; 8471 if (e) 8472 for (var i = 0; i < e.length; i++) t.animation.removeAnimator(e[i]); 8473 this.clipPath && this.clipPath.removeSelfFromZr(t) 8474 } 8475 }, h(nw, iw), h(nw, E_), h(nw, D_); 8476 var ow = Q, 8477 aw = Math.min, 8478 rw = Math.max; 8479 $t.prototype = { 8480 constructor: $t, 8481 union: function(t) { 8482 var e = aw(t.x, this.x), 8483 i = aw(t.y, this.y); 8484 this.width = rw(t.x + t.width, this.x + this.width) - e, this.height = rw(t.y + t.height, this.y + this.height) - i, this.x = e, this.y = i 8485 }, 8486 applyTransform: function() { 8487 var t = [], 8488 e = [], 8489 i = [], 8490 n = []; 8491 return function(o) { 8492 if (o) { 8493 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, ow(t, t, o), ow(e, e, o), ow(i, i, o), ow(n, n, o), this.x = aw(t[0], e[0], i[0], n[0]), this.y = aw(t[1], e[1], i[1], n[1]); 8494 var a = rw(t[0], e[0], i[0], n[0]), 8495 r = rw(t[1], e[1], i[1], n[1]); 8496 this.width = a - this.x, this.height = r - this.y 8497 } 8498 } 8499 }(), 8500 calculateTransform: function(t) { 8501 var e = this, 8502 i = t.width / e.width, 8503 n = t.height / e.height, 8504 o = st(); 8505 return ct(o, o, [-e.x, -e.y]), ft(o, o, [i, n]), ct(o, o, [t.x, t.y]), o 8506 }, 8507 intersect: function(t) { 8508 if (!t) return !1; 8509 t instanceof $t || (t = $t.create(t)); 8510 var e = this, 8511 i = e.x, 8512 n = e.x + e.width, 8513 o = e.y, 8514 a = e.y + e.height, 8515 r = t.x, 8516 s = t.x + t.width, 8517 l = t.y, 8518 u = t.y + t.height; 8519 return !(n < r || s < i || a < l || u < o) 8520 }, 8521 contain: function(t, e) { var i = this; return t >= i.x && t <= i.x + i.width && e >= i.y && e <= i.y + i.height }, 8522 clone: function() { return new $t(this.x, this.y, this.width, this.height) }, 8523 copy: function(t) { this.x = t.x, this.y = t.y, this.width = t.width, this.height = t.height }, 8524 plain: function() { return { x: this.x, y: this.y, width: this.width, height: this.height } } 8525 }, $t.create = function(t) { return new $t(t.x, t.y, t.width, t.height) }; 8526 var sw = function(t) { 8527 t = t || {}, nw.call(this, t); 8528 for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]); 8529 this._children = [], this.__storage = null, this.__dirty = !0 8530 }; 8531 sw.prototype = { 8532 constructor: sw, 8533 isGroup: !0, 8534 type: "group", 8535 silent: !1, 8536 children: function() { return this._children.slice() }, 8537 childAt: function(t) { return this._children[t] }, 8538 childOfName: function(t) { 8539 for (var e = this._children, i = 0; i < e.length; i++) 8540 if (e[i].name === t) return e[i] 8541 }, 8542 childCount: function() { return this._children.length }, 8543 add: function(t) { return t && t !== this && t.parent !== this && (this._children.push(t), this._doAdd(t)), this }, 8544 addBefore: function(t, e) { 8545 if (t && t !== this && t.parent !== this && e && e.parent === this) { 8546 var i = this._children, 8547 n = i.indexOf(e); 8548 n >= 0 && (i.splice(n, 0, t), this._doAdd(t)) 8549 } 8550 return this 8551 }, 8552 _doAdd: function(t) { 8553 t.parent && t.parent.remove(t), t.parent = this; 8554 var e = this.__storage, 8555 i = this.__zr; 8556 e && e !== t.__storage && (e.addToStorage(t), t instanceof sw && t.addChildrenToStorage(e)), i && i.refresh() 8557 }, 8558 remove: function(t) { 8559 var e = this.__zr, 8560 i = this.__storage, 8561 n = this._children, 8562 o = l(n, t);
8563 return o < 0 ? this : (n.splice(o, 1), t.parent = null, i && (i.delFromStorage(t), t instanceof sw && t.delChildrenFromStorage(i)), e && e.refresh(), this) 8564 }, 8565 removeAll: function() { 8566 var t, e, i = this._children, 8567 n = this.__storage; 8568 for (e = 0; e < i.length; e++) t = i[e], n && (n.delFromStorage(t), t instanceof sw && t.delChildrenFromStorage(n)), t.parent = null; 8569 return i.length = 0, this 8570 }, 8571 eachChild: function(t, e) { 8572 for (var i = this._children, n = 0; n < i.length; n++) { 8573 var o = i[n]; 8574 t.call(e, o, n) 8575 } 8576 return this 8577 }, 8578 traverse: function(t, e) { 8579 for (var i = 0; i < this._children.length; i++) { 8580 var n = this._children[i]; 8581 t.call(e, n), "group" === n.type && n.traverse(t, e) 8582 } 8583 return this 8584 }, 8585 addChildrenToStorage: function(t) { 8586 for (var e = 0; e < this._children.length; e++) { 8587 var i = this._children[e]; 8588 t.addToStorage(i), i instanceof sw && i.addChildrenToStorage(t) 8589 } 8590 }, 8591 delChildrenFromStorage: function(t) { 8592 for (var e = 0; e < this._children.length; e++) { 8593 var i = this._children[e]; 8594 t.delFromStorage(i), i instanceof sw && i.delChildrenFromStorage(t) 8595 } 8596 }, 8597 dirty: function() { return this.__dirty = !0, this.__zr && this.__zr.refresh(), this }, 8598 getBoundingRect: function(t) { 8599 for (var e = null, i = new $t(0, 0, 0, 0), n = t || this._children, o = [], a = 0; a < n.length; a++) { 8600 var r = n[a]; 8601 if (!r.ignore && !r.invisible) { 8602 var s = r.getBoundingRect(), 8603 l = r.getLocalTransform(o); 8604 l ? (i.copy(s), i.applyTransform(l), (e = e || i.clone()).union(i)) : (e = e || s.clone()).union(s) 8605 } 8606 } 8607 return e || i 8608 } 8609 }, u(sw, nw); 8610 var lw = 32, 8611 uw = 7, 8612 hw = function() { this._roots = [], this._displayList = [], this._displayListLen = 0 }; 8613 hw.prototype = { 8614 constructor: hw, 8615 traverse: function(t, e) { for (var i = 0; i < this._roots.length; i++) this._roots[i].traverse(t, e) }, 8616 getDisplayList: function(t, e) { return e = e || !1, t && this.updateDisplayList(e), this._displayList }, 8617 updateDisplayList: function(t) { 8618 this._displayListLen = 0; 8619 for (var e = this._roots, i = this._displayList, n = 0, o = e.length; n < o; n++) this._updateAndAddDisplayable(e[n], null, t); 8620 i.length = this._displayListLen, a_.canvasSupported && ae(i, re) 8621 }, 8622 _updateAndAddDisplayable: function(t, e, i) { 8623 if (!t.ignore || i) { 8624 t.beforeUpdate(), t.__dirty && t.update(), t.afterUpdate(); 8625 var n = t.clipPath; 8626 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 } 8627 if (t.isGroup) { 8628 for (var r = t._children, s = 0; s < r.length; s++) { 8629 var l = r[s]; 8630 t.__dirty && (l.__dirty = !0), this._updateAndAddDisplayable(l, e, i) 8631 } 8632 t.__dirty = !1 8633 } else t.__clipPaths = e, this._displayList[this._displayListLen++] = t 8634 } 8635 }, 8636 addRoot: function(t) { t.__storage !== this && (t instanceof sw && t.addChildrenToStorage(this), this.addToStorage(t), this._roots.push(t)) }, 8637 delRoot: function(t) { 8638 if (null == t) { 8639 for (i = 0; i < this._roots.length; i++) { 8640 var e = this._roots[i]; 8641 e instanceof sw && e.delChildrenFromStorage(this) 8642 } 8643 return this._roots = [], this._displayList = [], void(this._displayListLen = 0) 8644 } 8645 if (t instanceof Array) 8646 for (var i = 0, n = t.length; i < n; i++) this.delRoot(t[i]); 8647 else { 8648 var o = l(this._roots, t); 8649 o >= 0 && (this.delFromStorage(t), this._roots.splice(o, 1), t instanceof sw && t.delChildrenFromStorage(this)) 8650 } 8651 }, 8652 addToStorage: function(t) { return t && (t.__storage = this, t.dirty(!1)), this }, 8653 delFromStorage: function(t) { return t && (t.__storage = null), this }, 8654 dispose: function() { this._renderList = this._roots = null }, 8655 displayableSortFunc: re 8656 }; 8657 var cw = { shadowBlur: 1, shadowOffsetX: 1, shadowOffsetY: 1, textShadowBlur: 1, textShadowOffsetX: 1, textShadowOffsetY: 1, textBoxShadowBlur: 1, textBoxShadowOffsetX: 1, textBoxShadowOffsetY: 1 }, 8658 dw = function(t, e, i) { return cw.hasOwnProperty(e) ? i *= t.dpr : i }, 8659 fw = [ 8660 ["shadowBlur", 0], 8661 ["shadowOffsetX", 0], 8662 ["shadowOffsetY", 0], 8663 ["shadowColor", "#000"], 8664 ["lineCap", "butt"], 8665 ["lineJoin", "miter"], 8666 ["miterLimit", 10] 8667 ], 8668 pw = function(t, e) { this.extendFrom(t, !1), this.host = e }; 8669 pw.prototype = { 8670 constructor: pw, 8671 host: null, 8672 fill: "#000", 8673 stroke: null, 8674 opacity: 1, 8675 lineDash: null, 8676 lineDashOffset: 0, 8677 shadowBlur: 0, 8678 shadowOffsetX: 0, 8679 shadowOffsetY: 0, 8680 lineWidth: 1, 8681 strokeNoScale: !1, 8682 text: null, 8683 font: null, 8684 textFont: null, 8685 fontStyle: null, 8686 fontWeight: null, 8687 fontSize: null, 8688 fontFamily: null, 8689 textTag: null, 8690 textFill: "#000", 8691 textStroke: null, 8692 textWidth: null, 8693 textHeight: null, 8694 textStrokeWidth: 0, 8695 textLineHeight: null, 8696 textPosition: "inside", 8697 textRect: null, 8698 textOffset: null, 8699 textAlign: null, 8700 textVerticalAlign: null, 8701 textDistance: 5, 8702 textShadowColor: "transparent", 8703 textShadowBlur: 0, 8704 textShadowOffsetX: 0, 8705 textShadowOffsetY: 0, 8706 textBoxShadowColor: "transparent", 8707 textBoxShadowBlur: 0, 8708 textBoxShadowOffsetX: 0, 8709 textBoxShadowOffsetY: 0, 8710 transformText: !1, 8711 textRotation: 0, 8712 textOrigin: null,
8713 textBackgroundColor: null, 8714 textBorderColor: null, 8715 textBorderWidth: 0, 8716 textBorderRadius: 0, 8717 textPadding: null, 8718 rich: null, 8719 truncate: null, 8720 blend: null, 8721 bind: function(t, e, i) { 8722 for (var n = this, o = i && i.style, a = !o, r = 0; r < fw.length; r++) { 8723 var s = fw[r], 8724 l = s[0]; 8725 (a || n[l] !== o[l]) && (t[l] = dw(t, l, n[l] || s[1])) 8726 } 8727 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()) { 8728 var u = n.lineWidth; 8729 t.lineWidth = u / (this.strokeNoScale && e && e.getLineScale ? e.getLineScale() : 1) 8730 } 8731 }, 8732 hasFill: function() { var t = this.fill; return null != t && "none" !== t }, 8733 hasStroke: function() { var t = this.stroke; return null != t && "none" !== t && this.lineWidth > 0 }, 8734 extendFrom: function(t, e) { 8735 if (t) 8736 for (var i in t) !t.hasOwnProperty(i) || !0 !== e && (!1 === e ? this.hasOwnProperty(i) : null == t[i]) || (this[i] = t[i]) 8737 }, 8738 set: function(t, e) { "string" == typeof t ? this[t] = e : this.extendFrom(t, !0) }, 8739 clone: function() { var t = new this.constructor; return t.extendFrom(this, !0), t }, 8740 getGradient: function(t, e, i) { for (var n = ("radial" === e.type ? le : se)(t, e, i), o = e.colorStops, a = 0; a < o.length; a++) n.addColorStop(o[a].offset, o[a].color); return n } 8741 }; 8742 for (var gw = pw.prototype, mw = 0; mw < fw.length; mw++) { 8743 var vw = fw[mw]; 8744 vw[0] in gw || (gw[vw[0]] = vw[1]) 8745 } 8746 pw.getGradient = gw.getGradient; 8747 var yw = function(t, e) { this.image = t, this.repeat = e, this.type = "pattern" }; 8748 yw.prototype.getCanvasPattern = function(t) { return t.createPattern(this.image, this.repeat || "repeat") }; 8749 var xw = function(t, e, i) { 8750 var n; 8751 i = i || Q_, "string" == typeof t ? n = he(t, e, i) : w(t) && (t = (n = t).id), this.id = t, this.dom = n; 8752 var o = n.style; 8753 o && (n.onselectstart = ue, 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 = .7, this.dpr = i 8754 }; 8755 xw.prototype = { 8756 constructor: xw, 8757 __dirty: !0, 8758 __used: !1, 8759 __drawIndex: 0, 8760 __startIndex: 0, 8761 __endIndex: 0, 8762 incremental: !1, 8763 getElementCount: function() { return this.__endIndex - this.__startIndex }, 8764 initContext: function() { this.ctx = this.dom.getContext("2d"), this.ctx.dpr = this.dpr }, 8765 createBackBuffer: function() { 8766 var t = this.dpr; 8767 this.domBack = he("back-" + this.id, this.painter, t), this.ctxBack = this.domBack.getContext("2d"), 1 != t && this.ctxBack.scale(t, t) 8768 }, 8769 resize: function(t, e) { 8770 var i = this.dpr, 8771 n = this.dom, 8772 o = n.style, 8773 a = this.domBack; 8774 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)) 8775 }, 8776 clear: function(t, e) { 8777 var i = this.dom, 8778 n = this.ctx, 8779 o = i.width, 8780 a = i.height, 8781 e = e || this.clearColor, 8782 r = this.motionBlur && !t, 8783 s = this.lastFrameAlpha, 8784 l = this.dpr; 8785 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) { 8786 var u; 8787 e.colorStops ? (u = e.__canvasGradient || pw.getGradient(n, e, { x: 0, y: 0, width: o, height: a }), e.__canvasGradient = u) : e.image && (u = yw.prototype.getCanvasPattern.call(e, n)), n.save(), n.fillStyle = u || e, n.fillRect(0, 0, o, a), n.restore(
8787) 8788 } 8789 if (r) { 8790 var h = this.domBack; 8791 n.save(), n.globalAlpha = s, n.drawImage(h, 0, 0, o, a), n.restore() 8792 } 8793 } 8794 }; 8795 var _w = "undefined" != typeof window && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function(t) { setTimeout(t, 16) }, 8796 ww = new F_(50), 8797 bw = {}, 8798 Sw = 0, 8799 Mw = 5e3, 8800 Iw = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g, 8801 Tw = "12px sans-serif", 8802 Dw = {}; 8803 Dw.measureText = function(t, e) { var i = s(); return i.font = e || Tw, i.measureText(t) }; 8804 var Aw = { left: 1, right: 1, center: 1 }, 8805 Cw = { top: 1, bottom: 1, middle: 1 }, 8806 Lw = new $t, 8807 kw = function() {}; 8808 kw.prototype = { 8809 constructor: kw, 8810 drawRectText: function(t, e) { 8811 var i = this.style; 8812 e = i.textRect || e, this.__dirty && Ne(i); 8813 var n = i.text; 8814 if (null != n && (n += ""), Ke(n, i)) { 8815 t.save(); 8816 var o = this.transform; 8817 i.transformText ? this.setTransform(t) : o && (Lw.copy(e), Lw.applyTransform(o), e = Lw), Ee(this, t, n, i, e), t.restore() 8818 } 8819 } 8820 }, $e.prototype = { constructor: $e, 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, inplace: !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 = !0, this._rect = null, this.__zr && this.__zr.refresh() }, animateStyle: function(t) { return this.animate("style", t) }, attrKV: function(t, e) { "style" !== t ? nw.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 pw(t, this), this.dirty(!1), this } }, u($e, nw), h($e, kw), Je.prototype = { 8821 constructor: Je, 8822 type: "image", 8823 brush: function(t, e) { 8824 var i = this.style, 8825 n = i.image; 8826 i.bind(t, this, e); 8827 var o = this._image = de(n, this._image, this, this.onload); 8828 if (o && pe(o)) { 8829 var a = i.x || 0, 8830 r = i.y || 0, 8831 s = i.width, 8832 l = i.height, 8833 u = o.width / o.height; 8834 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) { 8835 var h = i.sx || 0, 8836 c = i.sy || 0; 8837 t.drawImage(o, h, c, i.sWidth, i.sHeight, a, r, s, l) 8838 } else if (i.sx && i.sy) { 8839 var d = s - (h = i.sx), 8840 f = l - (c = i.sy); 8841 t.drawImage(o, h, c, d, f, a, r, s, l) 8842 } else t.drawImage(o, a, r, s, l); 8843 null != i.text && (this.restoreTransform(t), this.drawRectText(t, this.getBoundingRect())) 8844 } 8845 }, 8846 getBoundingRect: function() { var t = this.style; return this._rect || (this._rect = new $t(t.x || 0, t.y || 0, t.width || 0, t.height || 0)), this._rect } 8847 }, u(Je, $e); 8848 var Pw = new $t(0, 0, 0, 0), 8849 Nw = new $t(0, 0, 0, 0), 8850 Ow = function(t, e, i) { 8851 this.type = "canvas"; 8852 var n = !t.nodeName || "CANVAS" === t.nodeName.toUpperCase(); 8853 this._opts = i = a({}, i || {}), this.dpr = i.devicePixelRatio || Q_, this._singleCanvas = n, this.root = t; 8854 var o = t.style; 8855 o && (o["-webkit-tap-highlight-color"] = "transparent", o["-webkit-user-select"] = o["user-select"] = o["-webkit-touch-callout"] = "none", t.innerHTML = ""), this.storage = e; 8856 var r = this._zlevelList = [], 8857 s = this._layers = {}; 8858 if (this._layerConfig = {}, this._needsManuallyCompositing = !1, n) { 8859 var l = t.width, 8860 u = t.height; 8861 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; 8862 var h = new xw(t, this, this.dpr); 8863 h.__builtin__ = !0, h.initContext(), s[314159] = h, h.zlevel = 314159, r.push(314159), this._domRoot = t 8864 } else { 8865 this._width = this._getSize(0), this._height = this._getSize(1); 8866 var c = this._domRoot = oi(this._width, this._height); 8867 t.appendChild(c) 8868 } 8869 this._hoverlayer = null, this._hoverElements = [] 8870 }; 8871 Ow.prototype = { 8872 constructor: Ow, 8873 getType: function() { return "canvas" }, 8874 isSingleCanvas: function() { return this._singleCanvas }, 8875 getViewportRoot: function() { return this._domRoot }, 8876 getViewportRootOffset: function() { var t = this.getViewportRoot(); if (t) return { offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0 } }, 8877 refresh: function(t) { 8878 var e = this.storage.getDisplayList(!0), 8879 i = this._zlevelList; 8880 this._redrawId = Math.random(), this._paintList(e, t, this._redrawId); 8881 for (var n = 0; n < i.length; n++) { 8882 var o = i[n], 8883 a = this._layers[o]; 8884 if (!a.__builtin__ && a.refresh) { 8885 var r = 0 === n ? this._backgroundColor : null; 8886 a.refresh(r) 8887 } 8888 } 8889 return this.refreshHover(), this 8890 }, 8891 addHover: function(t, e) { 8892 if (!t.__hoverMir) { 8893 var i = new t.constructor({ style: t.style, shape: t.shape }); 8894 i.__from = t, t.__hoverMir = i, i.setStyle(e), this._hoverElements.push(i) 8895 } 8896 }, 8897 removeHover: function(t) { 8898 var e = t.__hoverMir, 8899 i = this._hoverElements, 8900 n = l(i, e); 8901 n >= 0 && i.splice(n, 1), t.__hoverMir = null 8902 }, 8903 clearHover: function(t) { 8904 for (var e = this._hoverElements, i = 0; i < e.length; i++) { 8905 var n = e[i].__from; 8906 n && (n.__hoverMir = null) 8907 } 8908 e.length = 0 8909 }, 8910 refreshHover: function() { 8911 var t = this._hoverElements, 8912 e = t.length, 8913 i = this._hoverlayer; 8914 if (i && i.clear(), e) { 8915 ae(t, this.storage.displayableSortFunc), i || (i = this._hoverlayer = this.getLayer(1e5)); 8916 var n = {}; 8917 i.ctx.save(); 8918 for (var o = 0; o < e;) { 8919 var a = t[o], 8920 r = a.__from; 8921 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--) 8922 }
8923 i.ctx.restore() 8924 } 8925 }, 8926 getHoverLayer: function() { return this.getLayer(1e5) }, 8927 _paintList: function(t, e, i) { 8928 if (this._redrawId === i) { 8929 e = e || !1, this._updateLayerStatus(t); 8930 var n = this._doPaintList(t, e); 8931 if (this._needsManuallyCompositing && this._compositeManually(), !n) { 8932 var o = this; 8933 _w(function() { o._paintList(t, e, i) }) 8934 } 8935 } 8936 }, 8937 _compositeManually: function() { 8938 var t = this.getLayer(314159).ctx, 8939 e = this._domRoot.width, 8940 i = this._domRoot.height; 8941 t.clearRect(0, 0, e, i), this.eachBuiltinLayer(function(n) { n.virtual && t.drawImage(n.dom, 0, 0, e, i) }) 8942 }, 8943 _doPaintList: function(t, e) { 8944 for (var i = [], n = 0; n < this._zlevelList.length; n++) { 8945 var o = this._zlevelList[n]; 8946 (s = this._layers[o]).__builtin__ && s !== this._hoverlayer && (s.__dirty || e) && i.push(s) 8947 } 8948 for (var a = !0, r = 0; r < i.length; r++) { 8949 var s = i[r], 8950 l = s.ctx, 8951 u = {}; 8952 l.save(); 8953 var h = e ? s.__startIndex : s.__drawIndex, 8954 c = !e && s.incremental && Date.now, 8955 f = c && Date.now(), 8956 p = s.zlevel === this._zlevelList[0] ? this._backgroundColor : null; 8957 if (s.__startIndex === s.__endIndex) s.clear(!1, p); 8958 else if (h === s.__startIndex) { 8959 var g = t[h]; 8960 g.incremental && g.notClear && !e || s.clear(!1, p) 8961 } - 1 === h && (console.error("For some unknown reason. drawIndex is -1"), h = s.__startIndex); 8962 for (var m = h; m < s.__endIndex; m++) { var v = t[m]; if (this._doPaintEl(v, s, e, u), v.__dirty = !1, c && Date.now() - f > 15) break } 8963 s.__drawIndex = m, s.__drawIndex < s.__endIndex && (a = !1), u.prevElClipPaths && l.restore(), l.restore() 8964 } 8965 return a_.wxa && d(this._layers, function(t) { t && t.ctx && t.ctx.draw && t.ctx.draw() }), a 8966 }, 8967 _doPaintEl: function(t, e, i, n) { 8968 var o = e.ctx, 8969 a = t.transform; 8970 if ((e.__dirty || i) && !t.invisible && 0 !== t.style.opacity && (!a || a[0] || a[3]) && (!t.culling || !ei(t, this._width, this._height))) { 8971 var r = t.__clipPaths; 8972 n.prevElClipPaths && !ii(r, n.prevElClipPaths) || (n.prevElClipPaths && (e.ctx.restore(), n.prevElClipPaths = null, n.prevEl = null), r && (o.save(), ni(r, o), n.prevElClipPaths = r)), t.beforeBrush && t.beforeBrush(o), t.brush(o, n.prevEl || null), n.prevEl = t, t.afterBrush && t.afterBrush(o) 8973 } 8974 }, 8975 getLayer: function(t, e) { this._singleCanvas && !this._needsManuallyCompositing && (t = 314159); var i = this._layers[t]; return i || ((i = new xw("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 }, 8976 insertLayer: function(t, e) { 8977 var i = this._layers, 8978 n = this._zlevelList, 8979 o = n.length, 8980 a = null, 8981 r = -1, 8982 s = this._domRoot; 8983 if (i[t]) ew("ZLevel " + t + " has been used already"); 8984 else if (ti(e)) { 8985 if (o > 0 && t > n[0]) { 8986 for (r = 0; r < o - 1 && !(n[r] < t && n[r + 1] > t); r++); 8987 a = i[n[r]] 8988 } 8989 if (n.splice(r + 1, 0, t), i[t] = e, !e.virtual) 8990 if (a) { 8991 var l = a.dom; 8992 l.nextSibling ? s.insertBefore(e.dom, l.nextSibling) : s.appendChild(e.dom) 8993 } else s.firstChild ? s.insertBefore(e.dom, s.firstChild) : s.appendChild(e.dom) 8994 }
8994 else ew("Layer of zlevel " + t + " is not valid") 8995 }, 8996 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) }, 8997 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) }, 8998 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) }, 8999 getLayers: function() { return this._layers }, 9000 _updateLayerStatus: function(t) { 9001 function e(t) { i && (i.__endIndex !== t && (i.__dirty = !0), i.__endIndex = t) } 9002 if (this.eachBuiltinLayer(function(t, e) { t.__dirty = t.__used = !1 }), this._singleCanvas) 9003 for (o = 1; o < t.length; o++) 9004 if ((r = t[o]).zlevel !== t[o - 1].zlevel || r.incremental) { this._needsManuallyCompositing = !0; break } 9005 for (var i = null, n = 0, o = 0; o < t.length; o++) { 9006 var a, r = t[o], 9007 s = r.zlevel; 9008 r.incremental ? ((a = this.getLayer(s + .001, this._needsManuallyCompositing)).incremental = !0, n = 1) : a = this.getLayer(s + (n > 0 ? .01 : 0), this._needsManuallyCompositing), a.__builtin__ || ew("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)) 9009 } 9010 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) }) 9011 }, 9012 clear: function() { return this.eachBuiltinLayer(this._clearLayer), this }, 9013 _clearLayer: function(t) { t.clear() }, 9014 setBackgroundColor: function(t) { this._backgroundColor = t }, 9015 configLayer: function(t, e) { 9016 if (e) { 9017 var i = this._layerConfig; 9018 i[t] ? n(i[t], e, !0) : i[t] = e; 9019 for (var o = 0; o < this._zlevelList.length; o++) { 9020 var a = this._zlevelList[o]; 9021 a !== t && a !== t + .01 || n(this._layers[a], i[t], !0) 9022 } 9023 } 9024 }, 9025 delLayer: function(t) { 9026 var e = this._layers, 9027 i = this._zlevelList, 9028 n = e[t]; 9029 n && (n.dom.parentNode.removeChild(n.dom), delete e[t], i.splice(l(i, t), 1)) 9030 }, 9031 resize: function(t, e) { 9032 if (this._domRoot.style) { 9033 var i = this._domRoot; 9034 i.style.display = "none"; 9035 var n = this._opts; 9036 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) { 9037 i.style.width = t + "px", i.style.height = e + "px"; 9038 for (var o in this._layers) this._layers.hasOwnProperty(o) && this._layers[o].resize(t, e); 9039 d(this._progressiveLayers, function(i) { i.resize(t, e) }), this.refresh(!0) 9040 } 9041 this._width = t, this._height = e 9042 } else { 9043 if (null == t || null == e) return; 9044 this._width = t, this._height = e, this.getLayer(314159).resize(t, e) 9045 } 9046 return this 9047 }, 9048 clearLayer: function(t) { 9049 var e = this._layers[t]; 9050 e && e.clear() 9051 }, 9052 dispose: function() { this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null }, 9053 getRenderedCanvas: function(t) { 9054 if (t = t || {}, this._singleCanvas && !this._compositeManually) return this._layers[314159].dom; 9055 var e = new xw("image", this, t.pixelRatio || this.dpr); 9056 if (e.initContext(), e.clear(!1, t.backgroundColor || this._backgroundColor), t.pixelRatio <= this.dpr) { 9057 this.refresh(); 9058 var i = e.dom.width, 9059 n = e.dom.height, 9060 o = e.ctx; 9061 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(
9061)) }) 9062 } else 9063 for (var a = {}, r = this.storage.getDisplayList(!0), s = 0; s < r.length; s++) { 9064 var l = r[s]; 9065 this._doPaintEl(l, e, !0, a) 9066 } 9067 return e.dom 9068 }, 9069 getWidth: function() { return this._width }, 9070 getHeight: function() { return this._height }, 9071 _getSize: function(t) { 9072 var e = this._opts, 9073 i = ["width", "height"][t], 9074 n = ["clientWidth", "clientHeight"][t], 9075 o = ["paddingLeft", "paddingTop"][t], 9076 a = ["paddingRight", "paddingBottom"][t]; 9077 if (null != e[i] && "auto" !== e[i]) return parseFloat(e[i]); 9078 var r = this.root, 9079 s = document.defaultView.getComputedStyle(r); 9080 return (r[n] || Qe(s[i]) || Qe(r.style[i])) - (Qe(s[o]) || 0) - (Qe(s[a]) || 0) | 0 9081 }, 9082 pathToImage: function(t, e) { 9083 e = e || this.dpr; 9084 var i = document.createElement("canvas"), 9085 n = i.getContext("2d"), 9086 o = t.getBoundingRect(), 9087 a = t.style, 9088 r = a.shadowBlur * e, 9089 s = a.shadowOffsetX * e, 9090 l = a.shadowOffsetY * e, 9091 u = a.hasStroke() ? a.lineWidth : 0, 9092 h = Math.max(u / 2, -s + r), 9093 c = Math.max(u / 2, s + r), 9094 d = Math.max(u / 2, -l + r), 9095 f = Math.max(u / 2, l + r), 9096 p = o.width + h + c, 9097 g = o.height + d + f; 9098 i.width = p * e, i.height = g * e, n.scale(e, e), n.clearRect(0, 0, p, g), n.dpr = e; 9099 var m = { position: t.position, rotation: t.rotation, scale: t.scale }; 9100 t.position = [h - o.x, d - o.y], t.rotation = 0, t.scale = [1, 1], t.updateTransform(), t && t.brush(n); 9101 var v = new Je({ style: { x: 0, y: 0, image: i } }); 9102 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 9103 } 9104 }; 9105 var Ew = "undefined" != typeof window && !!window.addEventListener, 9106 Rw = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, 9107 zw = Ew ? function(t) { t.preventDefault(), t.stopPropagation(), t.cancelBubble = !0 } : function(t) { t.returnValue = !1, t.cancelBubble = !0 }, 9108 Bw = 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, D_.call(this) }; 9109 Bw.prototype = { 9110 constructor: Bw, 9111 addClip: function(t) { this._clips.push(t) }, 9112 addAnimator: function(t) { t.animation = this; for (var e = t.getClips(), i = 0; i < e.length; i++) this.addClip(e[i]) }, 9113 removeClip: function(t) { 9114 var e = l(this._clips, t); 9115 e >= 0 && this._clips.splice(e, 1) 9116 }, 9117 removeAnimator: function(t) { 9118 for (var e = t.getClips(), i = 0; i < e.length; i++) this.removeClip(e[i]); 9119 t.animation = null 9120 }, 9121 _update: function() { 9122 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++) { 9123 var s = i[r], 9124 l = s.step(t, e); 9125 l && (o.push(l), a.push(s)) 9126 } 9127 for (r = 0; r < n;) i[r]._needsRemove ? (i[r] = i[n - 1], i.pop(), n--) : r++; 9128 n = o.length; 9129 for (r = 0; r < n; r++) a[r].fire(o[r]); 9130 this._time = t, this.onframe(e), this.trigger("frame", e), this.stage.update && this.stage.update() 9131 }, 9132 _startLoop: function() { 9133 function t() { e._running && (_w(t), !e._paused && e._update()) } 9134 var e = this; 9135 this._running = !0, _w(t) 9136 }, 9137 start: function() { this._time = (new Date).getTime(), this._pausedTime = 0, this._startLoop() }, 9138 stop: function() { this._running = !1 }, 9139 pause: function() { this._paused || (this._pauseStart = (new Date).getTime(), this._paused = !0) }, 9140 resume: function() { this._paused && (this._pausedTime += (new Date).getTime() - this._pauseStart, this._paused = !1) }, 9141 clear: function() { this._clips = [] }, 9142 isFinished: function() { return !this._clips.length }, 9143 animate: function(t, e) { var i = new $_(t, (e = e || {}).loop, e.getter, e.setter); return this.addAnimator(i), i } 9144 }, h(Bw, D_); 9145 var Vw = function() { this._track = [] }; 9146 Vw.prototype = { 9147 constructor: Vw, 9148 recognize: function(t, e, i) { return this._doTrack(t, e, i), this._recognize(t) }, 9149 clear: function() { return this._track.length = 0, this }, 9150 _doTrack: function(t, e, i) { 9151 var n = t.touches; 9152 if (n) { 9153 for (var o = { points: [], touches: [], target: e, event: t }, a = 0, r = n.length; a < r; a++) { 9154 var s = n[a], 9155 l = ri(i, s, {}); 9156 o.points.push([l.zrX, l.zrY]), o.touches.push(s) 9157 } 9158 this._track.push(o) 9159 } 9160 }, 9161 _recognize: function(t) { 9162 for (var e in Gw) 9163 if (Gw.hasOwnProperty(e)) { var i = Gw[e](this._track, t); if (i) return i } 9164 } 9165 }; 9166 var Gw = { 9167 pinch: function(t, e) { 9168 var i = t.length; 9169 if (i) { 9170 var n = (t[i - 1] || {}).points, 9171 o = (t[i - 2] || {}).points || n; 9172 if (o && o.length > 1 && n && n.length > 1) { var a = di(n) / di(o);!isFinite(a) && (a = 1), e.pinchScale = a; var r = fi(n); return e.pinchX = r[0], e.pinchY = r[1], { type: "pinch", target: t[0].target, event: e } } 9173 } 9174 } 9175 }, 9176 Ww = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], 9177 Fw = ["touchstart", "touchend", "touchmove"], 9178 Hw = { pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1 }, 9179 Zw = f(Ww, function(t) { var e = t.replace("mouse", "pointer"); return Hw[e] ? e : t }), 9180 Uw = { 9181 mousemove: function(t) { t = li(this.dom, t), this.trigger("mousemove", t) }, 9182 mouseout: function(t) { 9183 var e = (t = li(this.dom, t)).toElement || t.relatedTarget; 9184 if (e != this.dom) 9185 for (; e && 9 != e.nodeType;) { 9186 if (e === this.dom) return; 9187 e = e.parentNode 9188 } 9189 this.trigger("mouseout", t) 9190 }, 9191 touchstart: function(t) { 9192 (t = li(this.dom, t)).zrByTouch = !0, this._lastTouchMoment = new Date, gi(this, t, "start"), Uw.mousemove.call(this, t), Uw.mousedown.call(this, t), mi(this) 9193 }, 9194 touchmove: function(t) { 9195 (t = li(this.dom, t)).zrByTouch = !0, gi(this, t, "change"), Uw.mousemove.call(this, t), mi(this) 9196 }, 9197 touchend: function(t) { 9198 (t = li(this.dom, t)).zrByTouch = !0, gi(this, t, "end"), Uw.mouseup.call(this, t), +new Date - this._lastTouchMoment < 300 && Uw.click.call(this, t), mi(this) 9199 }, 9200 pointerdown: function(t) { Uw.mousedown.call(this, t) }, 9201 pointermove: function(t) { vi(t) || Uw.mousemove.call(this, t) }, 9202 pointerup: function(t) { Uw.mouseup.call(this, t) }, 9203 pointerout: function(t) { vi(t) || Uw.mouseout.call(this, t) } 9204 }; 9205 d(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function(t) { Uw[t] = function(e) { e = li(this.dom, e), this.trigger(t, e) } }); 9206 var Xw = xi.prototype; 9207 Xw.dispose = function() { 9208 for (var t = Ww.concat(Fw), e = 0; e < t.length; e++) { 9209 var i = t[e]; 9210 hi(this.dom, pi(i), this._handlers[i]) 9211 } 9212 }, Xw.setCursor = function(t) { this.dom.style && (this.dom.style.cursor = t || "default") }, h(xi, D_); 9213 var jw = !a_.canvasSupported, 9214 Yw = { canvas: Ow }, 9215 qw = {}, 9216 Kw = function(t, e, i) { 9217 i = i || {}, this.dom = e, this.id = t; 9218 var n = this, 9219 o = new hw, 9220 a = i.renderer; 9221 if (jw) { 9222 if (!Yw.vml) throw new Error("You need to require 'zrender/vml/vml' to supp
9222ort IE8"); 9223 a = "vml" 9224 } else a && Yw[a] || (a = "canvas"); 9225 var r = new Yw[a](e, o, i, t); 9226 this.storage = o, this.painter = r; 9227 var s = a_.node || a_.worker ? null : new xi(r.getViewportRoot()); 9228 this.handler = new L_(o, r, s, r.root), this.animation = new Bw({ stage: { update: m(this.flush, this) } }), this.animation.start(), this._needsRefresh; 9229 var l = o.delFromStorage, 9230 u = o.addToStorage; 9231 o.delFromStorage = function(t) { l.call(o, t), t && t.removeSelfFromZr(n) }, o.addToStorage = function(t) { u.call(o, t), t.addSelfToZr(n) } 9232 }; 9233 Kw.prototype = { 9234 constructor: Kw, 9235 getId: function() { return this.id }, 9236 add: function(t) { this.storage.addRoot(t), this._needsRefresh = !0 }, 9237 remove: function(t) { this.storage.delRoot(t), this._needsRefresh = !0 }, 9238 configLayer: function(t, e) { this.painter.configLayer && this.painter.configLayer(t, e), this._needsRefresh = !0 }, 9239 setBackgroundColor: function(t) { this.painter.setBackgroundColor && this.painter.setBackgroundColor(t), this._needsRefresh = !0 }, 9240 refreshImmediately: function() { this._needsRefresh = !1, this.painter.refresh(), this._needsRefresh = !1 }, 9241 refresh: function() { this._needsRefresh = !0 }, 9242 flush: function() { 9243 var t; 9244 this._needsRefresh && (t = !0, this.refreshImmediately()), this._needsRefreshHover && (t = !0, this.refreshHoverImmediately()), t && this.trigger("rendered") 9245 }, 9246 addHover: function(t, e) { this.painter.addHover && (this.painter.addHover(t, e), this.refreshHover()) }, 9247 removeHover: function(t) { this.painter.removeHover && (this.painter.removeHover(t), this.refreshHover()) }, 9248 clearHover: function() { this.painter.clearHover && (this.painter.clearHover(), this.refreshHover()) }, 9249 refreshHover: function() { this._needsRefreshHover = !0 }, 9250 refreshHoverImmediately: function() { this._needsRefreshHover = !1, this.painter.refreshHover && this.painter.refreshHover() }, 9251 resize: function(t) { t = t || {}, this.painter.resize(t.width, t.height), this.handler.resize() }, 9252 clearAnimation: function() { this.animation.clear() }, 9253 getWidth: function() { return this.painter.getWidth() }, 9254 getHeight: function() { return this.painter.getHeight() }, 9255 pathToImage: function(t, e) { return this.painter.pathToImage(t, e) }, 9256 setCursorStyle: function(t) { this.handler.setCursorStyle(t) }, 9257 findHover: function(t, e) { return this.handler.findHover(t, e) }, 9258 on: function(t, e, i) { this.handler.on(t, e, i) }, 9259 off: function(t, e) { this.handler.off(t, e) }, 9260 trigger: function(t, e) { this.handler.trigger(t, e) }, 9261 clear: function() { this.storage.delRoot(), this.painter.clear() }, 9262 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, bi(this.id) } 9263 }; 9264 var $w = (Object.freeze || Object)({ 9265 version: "4.0.4", 9266 init: _i, 9267 dispose: function(t) { 9268 if (t) t.dispose(); 9269 else { 9270 for (var e in qw) qw.hasOwnProperty(e) && qw[e].dispose(); 9271 qw = {} 9272 } 9273 return this 9274 }, 9275 getInstance: function(t) { return qw[t] }, 9276 registerPainter: wi 9277 }), 9278 Jw = d, 9279 Qw = w, 9280 tb = y, 9281 eb = "series\0", 9282 ib = ["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"], 9283 nb = 0, 9284 ob = ".", 9285 ab = "___EC__COMPONENT__CONTAINER___", 9286 rb = 0, 9287 sb = function(t) { 9288 for (var e = 0; e < t.length; e++) t[e][1] || (t[e][1] = t[e][0]); 9289 return function(e, i, n) { 9290 for (var o = {}, a = 0; a < t.length; a++) { 9291 var r = t[a][1]; 9292 if (!(i && l(i, r) >= 0 || n && l(n, r) < 0)) { 9293 var s = e.getShallow(r); 9294 null != s && (o[t[a][0]] = s) 9295 } 9296 } 9297 return o 9298 } 9299 }, 9300 lb = sb([ 9301 ["lineWidth", "width"], 9302 ["stroke", "color"], 9303 ["opacity"], 9304 ["shadowBlur"], 9305 ["shadowOffsetX"], 9306 ["shadowOffsetY"], 9307 ["shadowColor"] 9308 ]), 9309 ub = { 9310 getLineStyle: function(t) { 9311 var e = lb(this, t), 9312 i = this.getLineDash(e.lineWidth); 9313 return i && (e.lineDash = i), e 9314 }, 9315 getLineDash: function(t) { 9316 null == t && (t = 1); 9317 var e = this.get("type"), 9318 i = Math.max(t, 2), 9319 n = 4 * t; 9320 return "solid" === e || null == e ? null : "dashed" === e ? [n, n] : [i, i] 9321 } 9322 }, 9323 hb = sb([ 9324 ["fill", "color"], 9325 ["shadowBlur"], 9326 ["shadowOffsetX"], 9327 ["shadowOffsetY"], 9328 ["opacity"], 9329 ["shadowColor"] 9330 ]), 9331 cb = { getAreaStyle: function(t, e) { return hb(this, t, e) } }, 9332 db = Math.pow, 9333 fb = Math.sqrt, 9334 pb = 1e-8, 9335 gb = 1e-4, 9336 mb = fb(3), 9337 vb = 1 / 3, 9338 yb = V(), 9339 xb = V(), 9340 _b = V(), 9341 wb = Math.min, 9342 bb = Math.max, 9343 Sb = Math.sin,
9344 Mb = Math.cos, 9345 Ib = 2 * Math.PI, 9346 Tb = V(), 9347 Db = V(), 9348 Ab = V(), 9349 Cb = [], 9350 Lb = [], 9351 kb = { M: 1, L: 2, C: 3, Q: 4, A: 5, Z: 6, R: 7 }, 9352 Pb = [], 9353 Nb = [], 9354 Ob = [], 9355 Eb = [], 9356 Rb = Math.min, 9357 zb = Math.max, 9358 Bb = Math.cos, 9359 Vb = Math.sin, 9360 Gb = Math.sqrt, 9361 Wb = Math.abs, 9362 Fb = "undefined" != typeof Float32Array, 9363 Hb = function(t) { this._saveData = !t, this._saveData && (this.data = []), this._ctx = null }; 9364 Hb.prototype = { 9365 constructor: Hb, 9366 _xi: 0, 9367 _yi: 0, 9368 _x0: 0, 9369 _y0: 0, 9370 _ux: 0, 9371 _uy: 0, 9372 _len: 0, 9373 _lineDash: null, 9374 _dashOffset: 0, 9375 _dashIdx: 0, 9376 _dashSum: 0, 9377 setScale: function(t, e) { this._ux = Wb(1 / Q_ / t) || 0, this._uy = Wb(1 / Q_ / e) || 0 }, 9378 getContext: function() { return this._ctx }, 9379 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 }, 9380 moveTo: function(t, e) { return this.addData(kb.M, t, e), this._ctx && this._ctx.moveTo(t, e), this._x0 = t, this._y0 = e, this._xi = t, this._yi = e, this }, 9381 lineTo: function(t, e) { var i = Wb(t - this._xi) > this._ux || Wb(e - this._yi) > this._uy || this._len < 5; return this.addData(kb.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 }, 9382 bezierCurveTo: function(t, e, i, n, o, a) { return this.addData(kb.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 }, 9383 quadraticCurveTo: function(t, e, i, n) { return this.addData(kb.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 }, 9384 arc: function(t, e, i, n, o, a) { return this.addData(kb.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 = Bb(o) * i + t, this._yi = Vb(o) * i + t, this }, 9385 arcTo: function(t, e, i, n, o) { return this._ctx && this._ctx.arcTo(t, e, i, n, o), this }, 9386 rect: function(t, e, i, n) { return this._ctx && this._ctx.rect(t, e, i, n), this.addData(kb.R, t, e, i, n), this }, 9387 closePath: function() { 9388 this.addData(kb.Z); 9389 var t = this._ctx, 9390 e = this._x0, 9391 i = this._y0; 9392 return t && (this._needsDash() && this._dashedLineTo(e, i), t.closePath()), this._xi = e, this._yi = i, this 9393 }, 9394 fill: function(t) { t && t.fill(), this.toStatic() }, 9395 stroke: function(t) { t && t.stroke(), this.toStatic() }, 9396 setLineDash: function(t) { 9397 if (t instanceof Array) { 9398 this._lineDash = t, this._dashIdx = 0; 9399 for (var e = 0, i = 0; i < t.length; i++) e += t[i]; 9400 this._dashSum = e 9401 } 9402 return this 9403 }, 9404 setLineDashOffset: function(t) { return this._dashOffset = t, this }, 9405 len: function() { return this._len }, 9406 setData: function(t) { 9407 var e = t.length; 9408 this.data && this.data.length == e || !Fb || (this.data = new Float32Array(e)); 9409 for (var i = 0; i < e; i++) this.data[i] = t[i]; 9410 this._len = e 9411 }, 9412 appendPath: function(t) { 9413 t instanceof Array || (t = [t]); 9414 for (var e = t.length, i = 0, n = this._len, o = 0; o < e; o++) i += t[o].len(); 9415 Fb && this.data instanceof Float32Array && (this.data = new Float32Array(n + i)); 9416 for (o = 0; o < e; o++) 9417 for (var a = t[o].data, r = 0; r < a.length; r++) this.data[n++] = a[r]; 9418 this._len = n 9419 }, 9420 addData: function(t) { 9421 if (this._saveData) { 9422 var e = this.data; 9423 this._len + arguments.length > e.length && (this._expandData(), e = this.data); 9424 for (var i = 0; i < arguments.length; i++) e[this._len++] = arguments[i]; 9425 this._prevCmd = t 9426 } 9427 }, 9428 _expandData: function() { 9429 if (!(this.data instanceof Array)) { 9430 for (var t = [], e = 0; e < this._len; e++) t[e] = this.data[e]; 9431 this.data = t 9432 } 9433 }, 9434 _needsDash: function() { return this._lineDash }, 9435 _dashedLineTo: function(t, e) { 9436 var i, n, o = this._dashSum, 9437 a = this._dashOffset, 9438 r = this._lineDash, 9439 s = this._ctx, 9440 l = this._xi, 9441 u = this._yi, 9442 h = t - l, 9443 c = e - u, 9444 d = Gb(h * h + c * c), 9445 f = l, 9446 p = u, 9447 g = r.length; 9448 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 ? Rb(f, t) : zb(f, t), c >= 0 ? Rb(p, e) : zb(p, e)); 9449 h = f - t, c = p - e, this._dashOffset = -Gb(h * h + c * c) 9450 }, 9451 _dashedBezierTo: function(t, e, i, n, o, a) { 9452 var r, s, l, u, h, c = this._dashSum, 9453 d = this._dashOffset, 9454 f = this._lineDash, 9455 p = this._ctx, 9456 g = this._xi, 9457 m = this._yi, 9458 v = ji, 9459 y = 0, 9460 x = this._dashIdx, 9461 _ = f.length, 9462 w = 0; 9463 for (d < 0 && (d = c + d), d %= c, r = 0; r < 1; r += .1) s = v(g, t, i, o, r + .1) - v(g, t, i, o, r), l = v(m, e, n, a, r + .1) - v(m, e, n, a, r), y += Gb(s * s + l * l); 9464 for (;
9464 x < _ && !((w += f[x]) > d); x++); 9465 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) % _; 9466 x % 2 != 0 && p.lineTo(o, a), s = o - u, l = a - h, this._dashOffset = -Gb(s * s + l * l) 9467 }, 9468 _dashedQuadraticTo: function(t, e, i, n) { 9469 var o = i, 9470 a = n; 9471 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) 9472 }, 9473 toStatic: function() { 9474 var t = this.data; 9475 t instanceof Array && (t.length = this._len, Fb && (this.data = new Float32Array(t))) 9476 }, 9477 getBoundingRect: function() { 9478 Pb[0] = Pb[1] = Ob[0] = Ob[1] = Number.MAX_VALUE, Nb[0] = Nb[1] = Eb[0] = Eb[1] = -Number.MAX_VALUE; 9479 for (var t = this.data, e = 0, i = 0, n = 0, o = 0, a = 0; a < t.length;) { 9480 var r = t[a++]; 9481 switch (1 == a && (n = e = t[a], o = i = t[a + 1]), r) { 9482 case kb.M: 9483 e = n = t[a++], i = o = t[a++], Ob[0] = n, Ob[1] = o, Eb[0] = n, Eb[1] = o; 9484 break; 9485 case kb.L: 9486 sn(e, i, t[a], t[a + 1], Ob, Eb), e = t[a++], i = t[a++]; 9487 break; 9488 case kb.C: 9489 ln(e, i, t[a++], t[a++], t[a++], t[a++], t[a], t[a + 1], Ob, Eb), e = t[a++], i = t[a++]; 9490 break; 9491 case kb.Q: 9492 un(e, i, t[a++], t[a++], t[a], t[a + 1], Ob, Eb), e = t[a++], i = t[a++]; 9493 break; 9494 case kb.A: 9495 var s = t[a++], 9496 l = t[a++], 9497 u = t[a++], 9498 h = t[a++], 9499 c = t[a++], 9500 d = t[a++] + c, 9501 f = (t[a++], 1 - t[a++]); 9502 1 == a && (n = Bb(c) * u + s, o = Vb(c) * h + l), hn(s, l, u, h, c, d, f, Ob, Eb), e = Bb(d) * u + s, i = Vb(d) * h + l; 9503 break; 9504 case kb.R: 9505 sn(n = e = t[a++], o = i = t[a++], n + t[a++], o + t[a++], Ob, Eb); 9506 break; 9507 case kb.Z: 9508 e = n, i = o 9509 } 9510 tt(Pb, Pb, Ob), et(Nb, Nb, Eb) 9511 } 9512 return 0 === a && (Pb[0] = Pb[1] = Nb[0] = Nb[1] = 0), new $t(Pb[0], Pb[1], Nb[0] - Pb[0], Nb[1] - Pb[1]) 9513 }, 9514 rebuildPath: function(t) { 9515 for (var e, i, n, o, a, r, s = this.data, l = this._ux, u = this._uy, h = this._len, c = 0; c < h;) { 9516 var d = s[c++]; 9517 switch (1 == c && (e = n = s[c], i = o = s[c + 1]), d) { 9518 case kb.M: 9519 e = n = s[c++], i = o = s[c++], t.moveTo(n, o); 9520 break; 9521 case kb.L:
9522 a = s[c++], r = s[c++], (Wb(a - n) > l || Wb(r - o) > u || c === h - 1) && (t.lineTo(a, r), n = a, o = r); 9523 break; 9524 case kb.C: 9525 t.bezierCurveTo(s[c++], s[c++], s[c++], s[c++], s[c++], s[c++]), n = s[c - 2], o = s[c - 1]; 9526 break; 9527 case kb.Q: 9528 t.quadraticCurveTo(s[c++], s[c++], s[c++], s[c++]), n = s[c - 2], o = s[c - 1]; 9529 break; 9530 case kb.A: 9531 var f = s[c++], 9532 p = s[c++], 9533 g = s[c++], 9534 m = s[c++], 9535 v = s[c++], 9536 y = s[c++], 9537 x = s[c++], 9538 _ = s[c++], 9539 w = g > m ? g : m, 9540 b = g > m ? 1 : g / m, 9541 S = g > m ? m / g : 1, 9542 M = v + y; 9543 Math.abs(g - m) > .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 = Bb(v) * g + f, i = Vb(v) * m + p), n = Bb(M) * g + f, o = Vb(M) * m + p; 9544 break; 9545 case kb.R: 9546 e = n = s[c], i = o = s[c + 1], t.rect(s[c++], s[c++], s[c++], s[c++]); 9547 break; 9548 case kb.Z: 9549 t.closePath(), n = e, o = i 9550 } 9551 } 9552 } 9553 }, Hb.CMD = kb; 9554 var Zb = 2 * Math.PI, 9555 Ub = 2 * Math.PI, 9556 Xb = Hb.CMD, 9557 jb = 2 * Math.PI, 9558 Yb = 1e-4, 9559 qb = [-1, -1, -1], 9560 Kb = [-1, -1], 9561 $b = yw.prototype.getCanvasPattern, 9562 Jb = Math.abs, 9563 Qb = new Hb(!0); 9564 In.prototype = { 9565 constructor: In, 9566 type: "path", 9567 __dirtyPath: !0, 9568 strokeContainThreshold: 5, 9569 brush: function(t, e) { 9570 var i = this.style, 9571 n = this.path || Qb, 9572 o = i.hasStroke(), 9573 a = i.hasFill(), 9574 r = i.fill, 9575 s = i.stroke, 9576 l = a && !!r.colorStops, 9577 u = o && !!s.colorStops, 9578 h = a && !!r.image, 9579 c = o && !!s.image; 9580 if (i.bind(t, this, e), this.setTransform(t), this.__dirty) { 9581 var d; 9582 l && (d = d || this.getBoundingRect(), this._fillGradient = i.getGradient(t, r, d)), u && (d = d || this.getBoundingRect(), this._strokeGradient = i.getGradient(t, s, d)) 9583 } 9584 l ? t.fillStyle = this._fillGradient : h && (t.fillStyle = $b.call(r, t)), u ? t.strokeStyle = this._strokeGradient : c && (t.strokeStyle = $b.call(s, t)); 9585 var f = i.lineDash, 9586 p = i.lineDashOffset, 9587 g = !!t.setLineDash, 9588 m = this.getGlobalScale(); 9589 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 && n.fill(t), f && g && (t.setLineDash(f), t.lineDashOffset = p), o && n.stroke(t), f && g && t.setLineDash([]), null != i.text && (this.restoreTransform(t), this.drawRectText(t, this.getBoundingRect())) 9590 }, 9591 buildPath: function(t, e, i) {}, 9592 createPathProxy: function() { this.path = new Hb }, 9593 getBoundingRect: function() { 9594 var t = this._rect, 9595 e = this.style, 9596 i = !t; 9597 if (i) { 9598 var n = this.path; 9599 n || (n = this.path = new Hb), this.__dirtyPath && (n.beginPath(), this.buildPath(n, this.shape, !1)), t = n.getBoundingRect() 9600 } 9601 if (this._rect = t, e.hasStroke()) { 9602 var o = this._rectWithStroke || (this._rectWithStroke = t.clone()); 9603 if (this.__dirty || i) { 9604 o.copy(t); 9605 var a = e.lineWidth, 9606 r = e.strokeNoScale ? this.getLineScale() : 1; 9607 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) 9608 } 9609 return o 9610 } 9611 return t 9612 }, 9613 contain: function(t, e) { 9614 var i = this.transformCoordToLocal(t, e),
9615 n = this.getBoundingRect(), 9616 o = this.style; 9617 if (t = i[0], e = i[1], n.contain(t, e)) { 9618 var a = this.path.data; 9619 if (o.hasStroke()) { 9620 var r = o.lineWidth, 9621 s = o.strokeNoScale ? this.getLineScale() : 1; 9622 if (s > 1e-10 && (o.hasFill() || (r = Math.max(r, this.strokeContainThreshold)), Mn(a, r / s, t, e))) return !0 9623 } 9624 if (o.hasFill()) return Sn(a, t, e) 9625 } 9626 return !1 9627 }, 9628 dirty: function(t) { null == t && (t = !0), t && (this.__dirtyPath = t, this._rect = null), this.__dirty = !0, this.__zr && this.__zr.refresh(), this.__clipTarget && this.__clipTarget.dirty() }, 9629 animateShape: function(t) { return this.animate("shape", t) }, 9630 attrKV: function(t, e) { "shape" === t ? (this.setShape(e), this.__dirtyPath = !0, this._rect = null) : $e.prototype.attrKV.call(this, t, e) }, 9631 setShape: function(t, e) { 9632 var i = this.shape; 9633 if (i) { 9634 if (w(t)) 9635 for (var n in t) t.hasOwnProperty(n) && (i[n] = t[n]); 9636 else i[t] = e; 9637 this.dirty(!0) 9638 } 9639 return this 9640 }, 9641 getLineScale: function() { var t = this.transform; return t && Jb(t[0] - 1) > 1e-10 && Jb(t[3] - 1) > 1e-10 ? Math.sqrt(Jb(t[0] * t[3] - t[2] * t[1])) : 1 } 9642 }, In.extend = function(t) { 9643 var e = function(e) { 9644 In.call(this, e), t.style && this.style.extendFrom(t.style, !1); 9645 var i = t.shape; 9646 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]) } 9647 t.init && t.init.call(this, e) 9648 }; 9649 u(e, In); 9650 for (var i in t) "style" !== i && "shape" !== i && (e.prototype[i] = t[i]); 9651 return e 9652 }, u(In, $e); 9653 var tS = Hb.CMD, 9654 eS = [ 9655 [], 9656 [], 9657 [] 9658 ], 9659 iS = Math.sqrt, 9660 nS = Math.atan2, 9661 oS = function(t, e) { 9662 var i, n, o, a, r, s, l = t.data, 9663 u = tS.M, 9664 h = tS.C, 9665 c = tS.L, 9666 d = tS.R, 9667 f = tS.A, 9668 p = tS.Q; 9669 for (o = 0, a = 0; o < l.length;) { 9670 switch (i = l[o++], a = o, n = 0, i) { 9671 case u: 9672 case c: 9673 n = 1; 9674 break; 9675 case h: 9676 n = 3; 9677 break; 9678 case p: 9679 n = 2; 9680 break; 9681 case f: 9682 var g = e[4], 9683 m = e[5], 9684 v = iS(e[0] * e[0] + e[1] * e[1]), 9685 y = iS(e[2] * e[2] + e[3] * e[3]), 9686 x = nS(-e[1] / y, e[0] / v); 9687 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; 9688 break; 9689 case d: 9690 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] 9691 } 9692 for (r = 0; r < n; r++)(s = eS[r])[0] = l[o++], s[1] = l[o++], Q(s, s, e), l[a++] = s[0], l[a++] = s[1] 9693 } 9694 }, 9695 aS = ["m", "M", "l", "L", "v", "V", "h", "H", "z", "Z", "c", "C", "q", "Q", "t", "T", "s", "S", "a", "A"], 9696 rS = Math.sqrt, 9697 sS = Math.sin, 9698 lS = Math.cos, 9699 uS = Math.PI, 9700 hS = function(t) { return Math.sqrt(t[0] * t[0] + t[1] * t[1]) }, 9701 cS = function(t, e) { return (t[0] * e[0] + t[1] * e[1]) / (hS(t) * hS(e)) }, 9702 dS = function(t, e) { return (t[0] * e[1] < t[1] * e[0] ? -1 : 1) * Math.acos(cS(t, e)) }, 9703 fS = function(t) { $e.call(this, t) }; 9704 fS.prototype = { 9705 constructor: fS, 9706 type: "text", 9707 brush: function(t, e) { 9708 var i = this.style; 9709 this.__dirty && Ne(i), i.fill = i.stroke = i.shadowBlur = i.shadowColor = i.shadowOffsetX = i.shadowOffsetY = null; 9710 var n = i.text; 9711 null != n && (n += ""), i.bind(t, this, e), Ke(n, i) && (this.setTransform(t), Ee(this, t, n, i), this.restoreTransform(t)) 9712 }, 9713 getBoundingRect: function() { 9714 var t = this.style; 9715 if (this.__dirty && Ne(t), !this._rect) { 9716 var e = t.text; 9717 null != e ? e += "" : e = ""; 9718 var i = me(t.text + "", t.font, t.textAlign, t.textVerticalAlign, t.textPadding, t.rich); 9719 if (i.x += t.x || 0, i.y += t.y || 0, Xe(t.textStroke, t.textStrokeWidth)) { 9720 var n = t.textStrokeWidth; 9721 i.x -= n / 2, i.y -= n / 2, i.width += n, i.height += n 9722 } 9723 this._rect = i 9724 } 9725 return this._rect 9726 } 9727 }, u(fS, $e); 9728 var pS = In.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) } }), 9729 gS = [ 9730 ["shadowBlur", 0], 9731 ["shadowColor", "#000"], 9732 ["shadowOffsetX", 0], 9733 ["shadowOffsetY", 0] 9734 ], 9735 mS = function(t) { 9736 return a_.browser.ie && a_.browser.version >= 11 ? function() { 9737 var e, i = this.__clipPaths, 9738 n = this.style; 9739 if (i) 9740 for (var o = 0; o < i.length; o++) { 9741 var a = i[o], 9742 r = a && a.shape, 9743 s = a && a.type; 9744 if (r && ("sector" === s && r.startAngle === r.endAngle || "rect" === s && (!r.width || !r.height))) { 9745 for (l = 0; l < gS.length; l++) gS[l][2] = n[gS[l][0]], n[gS[l][0]] = gS[l][1]; 9746 e = !0; 9747 break 9748 } 9749 } 9750 if (t.apply(this, arguments), e) 9751 for (var l = 0; l < gS.length; l++) n[gS[l][0]] = gS[l][2] 9752 } : t 9753 }, 9754 vS = In.extend({ 9755 type: "sector", 9756 shape: { cx: 0, cy: 0, r0: 0, r: 0, startAngle: 0, endAngle: 2 * Math.PI, clockwise: !0 }, 9757 brush: mS(In.prototype.brush), 9758 buildPath: function(t, e) { 9759 var i = e.cx, 9760 n = e.cy, 9761 o = Math.max(e.r0 || 0, 0), 9762 a = Math.max(e.r, 0), 9763 r = e.startAngle, 9764 s = e.endAngle, 9765 l = e.clockwise,
9766 u = Math.cos(r), 9767 h = Math.sin(r); 9768 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() 9769 } 9770 }), 9771 yS = In.extend({ 9772 type: "ring", 9773 shape: { cx: 0, cy: 0, r: 0, r0: 0 }, 9774 buildPath: function(t, e) { 9775 var i = e.cx, 9776 n = e.cy, 9777 o = 2 * Math.PI; 9778 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) 9779 } 9780 }), 9781 xS = function(t, e) { 9782 for (var i = t.length, n = [], o = 0, a = 1; a < i; a++) o += K(t[a - 1], t[a]); 9783 var r = o / 2; 9784 r = r < i ? i : r; 9785 for (a = 0; a < r; a++) { 9786 var s, l, u, h = a / (r - 1) * (e ? i : i - 1), 9787 c = Math.floor(h), 9788 d = h - c, 9789 f = t[c % i]; 9790 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]); 9791 var p = d * d, 9792 g = d * p; 9793 n.push([kn(s[0], f[0], l[0], u[0], d, p, g), kn(s[1], f[1], l[1], u[1], d, p, g)]) 9794 } 9795 return n 9796 }, 9797 _S = function(t, e, i, n) { 9798 var o, a, r, s, l = [], 9799 u = [], 9800 h = [], 9801 c = []; 9802 if (n) { 9803 r = [1 / 0, 1 / 0], s = [-1 / 0, -1 / 0]; 9804 for (var d = 0, f = t.length; d < f; d++) tt(r, r, t[d]), et(s, s, t[d]); 9805 tt(r, r, n[0]), et(s, s, n[1]) 9806 } 9807 for (var d = 0, f = t.length; d < f; d++) { 9808 var p = t[d]; 9809 if (i) o = t[d ? d - 1 : f - 1], a = t[(d + 1) % f]; 9810 else { 9811 if (0 === d || d === f - 1) { l.push(W(t[d])); continue } 9812 o = t[d - 1], a = t[d + 1] 9813 } 9814 U(u, a, o), Y(u, u, e); 9815 var g = K(p, o), 9816 m = K(p, a), 9817 v = g + m; 9818 0 !== v && (g /= v, m /= v), Y(h, u, -g), Y(c, u, m); 9819 var y = H([], p, h), 9820 x = H([], p, c); 9821 n && (et(y, y, r), tt(y, y, s), et(x, x, r), tt(x, x, s)), l.push(y), l.push(x) 9822 } 9823 return i && l.push(l.shift()), l 9824 }, 9825 wS = In.extend({ type: "polygon", shape: { points: null, smooth: !1, smoothConstraint: null }, buildPath: function(t, e) { Pn(t, e, !0) } }), 9826 bS = In.extend({ type: "polyline", shape: { points: null, smooth: !1, smoothConstraint: null }, style: { stroke: "#000", fill: null }, buildPath: function(t, e) { Pn(t, e, !1) } }), 9827 SS = In.extend({ 9828 type: "rect", 9829 shape: { r: 0, x: 0, y: 0, width: 0, height: 0 }, 9830 buildPath: function(t, e) { 9831 var i = e.x, 9832 n = e.y, 9833 o = e.width, 9834 a = e.height; 9835 e.r ? Pe(t, e) : t.rect(i, n, o, a), t.closePath() 9836 } 9837 }), 9838 MS = In.extend({ 9839 type: "line", 9840 shape: { x1: 0, y1: 0, x2: 0, y2: 0, percent: 1 }, 9841 style: { stroke: "#000", fill: null }, 9842 buildPath: function(t, e) { 9843 var i = e.x1, 9844 n = e.y1, 9845 o = e.x2, 9846 a = e.y2, 9847 r = e.percent; 9848 0 !== r && (t.moveTo(i, n), r < 1 && (o = i * (1 - r) + o * r, a = n * (1 - r) + a * r), t.lineTo(o, a)) 9849 }, 9850 pointAt: function(t) { var e = this.shape; return [e.x1 * (1 - t) + e.x2 * t, e.y1 * (1 - t) + e.y2 * t] } 9851 }), 9852 IS = [], 9853 TS = In.extend({ 9854 type: "bezier-curve", 9855 shape: { x1: 0, y1: 0, x2: 0, y2: 0, cpx1: 0, cpy1: 0, percent: 1 }, 9856 style: { stroke: "#000", fill: null }, 9857 buildPath: function(t, e) { 9858 var i = e.x1, 9859 n = e.y1, 9860 o = e.x2, 9861 a = e.y2, 9862 r = e.cpx1, 9863 s = e.cpy1, 9864 l = e.cpx2, 9865 u = e.cpy2, 9866 h = e.percent; 9867 0 !== h && (t.moveTo(i, n), null == l || null == u ? (h < 1 && (on(i, r, o, h, IS), r = IS[1], o = IS[2], on(n, s, a, h, IS), s = IS[1], a = IS[2]), t.quadraticCurveTo(r, s, o, a)) : (h < 1 && ($i(i, r, l, o, h, IS), r = IS[1], l = IS[2], o = IS[3], $i(n, s, u, a, h, IS), s = IS[1], u = IS[2], a = IS[3]), t.bezierCurveTo(r, s, l, u, o, a))) 9868 }, 9869 pointAt: function(t) { return Nn(this.shape, t, !1) }, 9870 tangentAt: function(t) { var e = Nn(this.shape, t, !0); return q(e, e) } 9871 }), 9872 DS = In.extend({ 9873 type: "arc", 9874 shape: { cx: 0, cy: 0, r: 0, startAngle: 0, endAngle: 2 * Math.PI, clockwise: !0 }, 9875 style: { stroke: "#000", fill: null }, 9876 buildPath: function(t, e) { 9877 var i = e.cx, 9878 n = e.cy, 9879 o = Math.max(e.r, 0), 9880 a = e.startAngle, 9881 r = e.endAngle, 9882 s = e.clockwise,
9883 l = Math.cos(a), 9884 u = Math.sin(a); 9885 t.moveTo(l * o + i, u * o + n), t.arc(i, n, o, a, r, !s) 9886 } 9887 }), 9888 AS = In.extend({ 9889 type: "compound", 9890 shape: { paths: null }, 9891 _updatePathDirty: function() { 9892 for (var t = this.__dirtyPath, e = this.shape.paths, i = 0; i < e.length; i++) t = t || e[i].__dirtyPath; 9893 this.__dirtyPath = t, this.__dirty = this.__dirty || t 9894 }, 9895 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]) }, 9896 buildPath: function(t, e) { for (var i = e.paths || [], n = 0; n < i.length; n++) i[n].buildPath(t, i[n].shape, !0) }, 9897 afterBrush: function() { for (var t = this.shape.paths || [], e = 0; e < t.length; e++) t[e].__dirtyPath = !1 }, 9898 getBoundingRect: function() { return this._updatePathDirty(), In.prototype.getBoundingRect.call(this) } 9899 }), 9900 CS = function(t) { this.colorStops = t || [] }; 9901 CS.prototype = { constructor: CS, addColorStop: function(t, e) { this.colorStops.push({ offset: t, color: e }) } }; 9902 var LS = 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, CS.call(this, o) }; 9903 LS.prototype = { constructor: LS }, u(LS, CS); 9904 var kS = function(t, e, i, n, o) { this.x = null == t ? .5 : t, this.y = null == e ? .5 : e, this.r = null == i ? .5 : i, this.type = "radial", this.global = o || !1, CS.call(this, n) }; 9905 kS.prototype = { constructor: kS }, u(kS, CS), On.prototype.incremental = !0, On.prototype.clearDisplaybles = function() { this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.dirty(), this.notClear = !1 }, On.prototype.addDisplayable = function(t, e) { e ? this._temporaryDisplayables.push(t) : this._displayables.push(t), this.dirty() }, On.prototype.addDisplayables = function(t, e) { e = e || !1; for (var i = 0; i < t.length; i++) this.addDisplayable(t[i], e) }, On.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]) }, On.prototype.update = function() { 9906 this.updateTransform(); 9907 for (t = this._cursor; t < this._displayables.length; t++)(e = this._displayables[t]).parent = this, e.update(), e.parent = null; 9908 for (var t = 0; t < this._temporaryDisplayables.length; t++) { 9909 var e = this._temporaryDisplayables[t]; 9910 e.parent = this, e.update(), e.parent = null 9911 } 9912 }, On.prototype.brush = function(t, e) { 9913 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); 9914 this._cursor = i; 9915 for (var i = 0; i < this._temporaryDisplayables.length; i++) { 9916 var n = this._temporaryDisplayables[i]; 9917 n.beforeBrush && n.beforeBrush(t), n.brush(t, 0 === i ? null : this._temporaryDisplayables[i - 1]), n.afterBrush && n.afterBrush(t) 9918 } 9919 this._temporaryDisplayables = [], this.notClear = !0 9920 }; 9921 var PS = []; 9922 On.prototype.getBoundingRect = function() { 9923 if (!this._rect) { 9924 for (var t = new $t(1 / 0, 1 / 0, -1 / 0, -1 / 0), e = 0; e < this._displayables.length; e++) { 9925 var i = this._displayables[e], 9926 n = i.getBoundingRect().clone(); 9927 i.needLocalTransform() && n.applyTransform(i.getLocalTransform(PS)), t.union(n) 9928 } 9929 this._rect = t 9930 } 9931 return this._rect 9932 }, On.prototype.contain = function(t, e) { 9933 var i = this.transformCoordToLocal(t, e);
9934 if (this.getBoundingRect().contain(i[0], i[1])) 9935 for (var n = 0; n < this._displayables.length; n++) 9936 if (this._displayables[n].contain(t, e)) return !0; 9937 return !1 9938 }, u(On, $e); 9939 var NS = Math.round, 9940 OS = Math.max, 9941 ES = Math.min, 9942 RS = {}, 9943 zS = function(t, e) { 9944 for (var i = [], n = t.length, o = 0; o < n; o++) { 9945 var a = t[o]; 9946 a.path || a.createPathProxy(), a.__dirtyPath && a.buildPath(a.path, a.shape, !0), i.push(a.path) 9947 } 9948 var r = new In(e); 9949 return r.createPathProxy(), r.buildPath = function(t) { 9950 t.appendPath(i); 9951 var e = t.getContext(); 9952 e && t.rebuildPath(e) 9953 }, r 9954 }, 9955 BS = (Object.freeze || Object)({ 9956 extendShape: En, 9957 extendPath: function(t, e) { return Ln(t, e) }, 9958 makePath: Rn, 9959 makeImage: zn, 9960 mergePath: zS, 9961 resizePath: Vn, 9962 subPixelOptimizeLine: Gn, 9963 subPixelOptimizeRect: Wn, 9964 subPixelOptimize: Fn, 9965 setHoverStyle: eo, 9966 setLabelStyle: io, 9967 setTextStyle: no, 9968 setText: function(t, e, i) { var n, o = { isRectText: !0 };!1 === i ? n = !0 : o.autoColor = i, oo(t, e, o, n), t.host && t.host.dirty && t.host.dirty(!1) }, 9969 getFont: ho, 9970 updateProps: fo, 9971 initProps: po, 9972 getTransform: go, 9973 applyTransform: mo, 9974 transformDirection: vo, 9975 groupTransition: yo, 9976 clipPointsByRect: xo, 9977 clipRectByRect: function(t, e) { 9978 var i = OS(t.x, e.x), 9979 n = ES(t.x + t.width, e.x + e.width), 9980 o = OS(t.y, e.y), 9981 a = ES(t.y + t.height, e.y + e.height); 9982 if (n >= i && a >= o) return { x: i, y: o, width: n - i, height: a - o } 9983 }, 9984 createIcon: _o, 9985 Group: sw, 9986 Image: Je, 9987 Text: fS, 9988 Circle: pS, 9989 Sector: vS, 9990 Ring: yS, 9991 Polygon: wS, 9992 Polyline: bS, 9993 Rect: SS, 9994 Line: MS, 9995 BezierCurve: TS, 9996 Arc: DS, 9997 IncrementalDisplayable: On, 9998 CompoundPath: AS, 9999 LinearGradient: LS, 10000 RadialGradient: kS, 10001 BoundingRect: $t 10002 }), 10003 VS = ["textStyle", "color"], 10004 GS = { getTextColor: function(t) { var e = this.ecModel; return this.getShallow("color") || (!t && e ? e.get(VS) : null) }, getFont: function() { return ho({ fontStyle: this.getShallow("fontStyle"), fontWeight: this.getShallow("fontWeight"), fontSize: this.getShallow("fontSize"), fontFamily: this.getShallow("fontFamily") }, this.ecModel) }, getTextRect: function(t) { return me(t, this.getFont(), this.getShallow("align"), this.getShallow("verticalAlign") || this.get
10004Shallow("baseline"), this.getShallow("padding"), this.getShallow("rich"), this.getShallow("truncateText")) } }, 10005 WS = sb([ 10006 ["fill", "color"], 10007 ["stroke", "borderColor"], 10008 ["lineWidth", "borderWidth"], 10009 ["opacity"], 10010 ["shadowBlur"], 10011 ["shadowOffsetX"], 10012 ["shadowOffsetY"], 10013 ["shadowColor"], 10014 ["textPosition"], 10015 ["textAlign"] 10016 ]), 10017 FS = { 10018 getItemStyle: function(t, e) { 10019 var i = WS(this, t, e), 10020 n = this.getBorderLineDash(); 10021 return n && (i.lineDash = n), i 10022 }, 10023 getBorderLineDash: function() { var t = this.get("borderType"); return "solid" === t || null == t ? null : "dashed" === t ? [5, 5] : [1, 1] } 10024 }, 10025 HS = h, 10026 ZS = Ni(); 10027 wo.prototype = { 10028 constructor: wo, 10029 init: null, 10030 mergeOption: function(t) { n(this.option, t, !0) }, 10031 get: function(t, e) { return null == t ? this.option : bo(this.option, this.parsePath(t), !e && So(this, t)) }, 10032 getShallow: function(t, e) { 10033 var i = this.option, 10034 n = null == i ? i : i[t], 10035 o = !e && So(this, t); 10036 return null == n && o && (n = o.getShallow(t)), n 10037 }, 10038 getModel: function(t, e) { var i, n = null == t ? this.option : bo(this.option, t = this.parsePath(t)); return e = e || (i = So(this, t)) && i.getModel(t), new wo(n, e, this.ecModel) }, 10039 isEmpty: function() { return null == this.option }, 10040 restoreData: function() {}, 10041 clone: function() { return new(0, this.constructor)(i(this.option)) }, 10042 setReadOnly: function(t) {}, 10043 parsePath: function(t) { return "string" == typeof t && (t = t.split(".")), t }, 10044 customizeGetParent: function(t) { ZS(this).getParent = t }, 10045 isAnimationEnabled: function() { if (!a_.node) { if (null != this.option.animation) return !!this.option.animation; if (this.parentModel) return this.parentModel.isAnimationEnabled() } } 10046 }, Gi(wo), Wi(wo), HS(wo, ub), HS(wo, cb), HS(wo, GS), HS(wo, FS); 10047 var US = 0, 10048 XS = 1e-4, 10049 jS = 9007199254740991, 10050 YS = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/, 10051 qS = (Object.freeze || Object)({ linearMap: To, parsePercent: Do, round: Ao, asc: Co, getPrecision: Lo, getPrecisionSafe: ko, getPixelPrecision: Po, getPercentWithPrecision: No, MAX_SAFE_INTEGER: jS, remRadian: Oo, isRadianAroundZero: Eo, parseDate: Ro, quantity: zo, nice: Vo, reformIntervals: Go, isNumeric: Wo }), 10052 KS = L, 10053 $S = /([&<>"'])/g, 10054 JS = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, 10055 QS = ["a", "b", "c", "d", "e", "f", "g"], 10056 tM = function(t, e) { return "{" + t + (null == e ? "" : e) + "}" }, 10057 eM = be, 10058 iM = me, 10059 nM = (Object.freeze || Object)({ addCommas: Fo, toCamelCase: Ho, normalizeCssArray: KS, encodeHTML: Zo, formatTpl: Uo, formatTplSimple: Xo, getTooltipMarker: jo, formatTime: qo, capitalFirst: Ko, truncateText: eM, getTextRect: iM }), 10060 oM = d, 10061 aM = ["left", "right", "top", "bottom", "width", "height"], 10062 rM = [ 10063 ["width", "left", "right"], 10064 ["height", "top", "bottom"] 10065 ], 10066 sM = $o, 10067 lM = (v($o, "vertical"), v($o, "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") } } }), 10068 uM = Ni(), 10069 hM = wo.extend({ 10070 type: "component", 10071 id: "", 10072 name: "", 10073 mainType: "", 10074 subType: "", 10075 componentIndex: 0, 10076 defaultOption: null, 10077 ecModel: null, 10078 dependentModels: [], 10079 uid: null, 10080 layoutMode: null, 10081 $constructor: function(t, e, i, n) { wo.call(this, t, e, i, n), this.uid = Mo("ec_cpt_model") }, 10082 init: function(t, e, i, n) { this.mergeDefaultAndTheme(t, i) }, 10083 mergeDefaultAndTheme: function(t, e) { 10084 var i = this.layoutMode, 10085 o = i ? na(t) : {}; 10086 n(t, e.getTheme().get(this.mainType)), n(t, this.getDefaultOption()), i && ia(t, o, i) 10087 }, 10088 mergeOption: function(t, e) { 10089 n(this.option, t, !0); 10090 var i = this.layoutMode; 10091 i && ia(this.option, t, i) 10092 }, 10093 optionUpdated: function(t, e) {}, 10094 getDefaultOption: function() { 10095 var t = uM(this); 10096 if (!t.defaultOption) { 10097 for (var e = [], i = this.constructor; i;) { 10098 var o = i.prototype.defaultOption; 10099 o && e.push(o), i = i.superClass 10100 } 10101 for (var a = {}, r = e.length - 1; r >= 0; r--) a = n(a, e[r], !0); 10102 t.defaultOption = a 10103 } 10104 return t.defaultOption 10105 }, 10106 getReferringComponents: function(t) { return this.ecModel.queryComponents({ mainType: t, index: this.get(t + "Index", !0), id: this.get(t + "Id", !0) }) } 10107 }); 10108 Zi(hM, { registerWhenExtend: !0 }), 10109 function(t) { 10110 var e = {}; 10111 t.registerSubTypeDefaulter = function(t, i) { t = Bi(t), e[t.main] = i }, t.determineSubType = function(i, n) { 10112 var o = n.type; 10113 if (!o) { 10114 var a = Bi(i).main; 10115 t.hasSubTypes(i) && e[a] && (o = e[a](n)) 10116 } 10117 return o 10118 } 10119 }(hM), 10120 function(t, e) { 10121 function i(t) { 10122 var i = {}, 10123 a = []; 10124 return d(t, function(r) { 10125 var s = n(i, r), 10126 u = o(s.originalDeps = e(r), t); 10127 s.entryCount = u.length, 0 === s.entryCount && a.push(r), d(u, function(t) { 10128 l(s.predecessor, t) < 0 && s.predecessor.push(t); 10129 var e = n(i, t); 10130 l(e.successor, t) < 0 && e.successor.push(r) 10131 }) 10132 }), { graph: i, noEntryList: a } 10133 } 10134 10135 function n(t, e) { return t[e] || (t[e] = { predecessor: [], successor: [] }), t[e] } 10136 10137 function o(t, e) { var i = []; return d(t, function(t) { l(e, t) >= 0 && i.push(t) }), i } 10138 t.topologicalTravel = function(t, e, n, o) { 10139 function a(t) { s[t].entryCount--, 0 === s[t].entryCount && l.push(t) } 10140 if (t.length) { 10141 var r = i(e), 10142 s = r.graph, 10143 l = r.noEntryList, 10144 u = {}; 10145 for (d(t, function(t) { u[t] = !0 }); l.length;) { 10146 var h = l.pop(), 10147 c = s[h], 10148 f = !!u[h]; 10149 f && (n.call(o, h, c.originalDeps.slice()), delete u[h]), d(c.successor, f ? function(t) { u[t] = !0, a(t) } : a) 10150 } 10151 d(u, function() { throw new Error("Circle dependency may exists") }) 10152 } 10153 } 10154 }(hM, function(t) { var e = []; return d(hM.getClassesByMainType(t), function(t) { e = e.concat(t.prototype.depen
10154dencies || []) }), e = f(e, function(t) { return Bi(t).main }), "dataset" !== t && l(e, "dataset") <= 0 && e.unshift("dataset"), e }), h(hM, lM); 10155 var cM = ""; 10156 "undefined" != typeof navigator && (cM = navigator.platform || ""); 10157 var dM = { color: ["#c23531", "#2f4554", "#61a0a8", "#d48265", "#91c7ae", "#749f83", "#ca8622", "#bda29a", "#6e7074", "#546570", "#c4ccd3"], gradientColor: ["#f6efa6", "#d88273", "#bf444c"], textStyle: { fontFamily: cM.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 }, 10158 fM = Ni(), 10159 pM = { 10160 clearColorPalette: function() { fM(this).colorIdx = 0, fM(this).colorNameMap = {} }, 10161 getColorFromPalette: function(t, e, i) { 10162 var n = fM(e = e || this), 10163 o = n.colorIdx || 0, 10164 a = n.colorNameMap = n.colorNameMap || {}; 10165 if (a.hasOwnProperty(t)) return a[t]; 10166 var r = Si(this.get("color", !0)), 10167 s = this.get("colorLayer", !0), 10168 l = null != i && s ? aa(s, i) : r; 10169 if ((l = l || r) && l.length) { var u = l[o]; return t && (a[t] = u), n.colorIdx = (o + 1) % l.length, u } 10170 } 10171 }, 10172 gM = { 10173 cartesian2d: function(t, e, i, n) { 10174 var o = t.getReferringComponents("xAxis")[0], 10175 a = t.getReferringComponents("yAxis")[0]; 10176 e.coordSysDims = ["x", "y"], i.set("x", o), i.set("y", a), sa(o) && (n.set("x", o), e.firstCategoryDimIndex = 0), sa(a) && (n.set("y", a), e.firstCategoryDimIndex = 1) 10177 }, 10178 singleAxis: function(t, e, i, n) { 10179 var o = t.getReferringComponents("singleAxis")[0]; 10180 e.coordSysDims = ["single"], i.set("single", o), sa(o) && (n.set("single", o), e.firstCategoryDimIndex = 0) 10181 }, 10182 polar: function(t, e, i, n) { 10183 var o = t.getReferringComponents("polar")[0], 10184 a = o.findAxisModel("radiusAxis"), 10185 r = o.findAxisModel("angleAxis"); 10186 e.coordSysDims = ["radius", "angle"], i.set("radius", a), i.set("angle", r), sa(a) && (n.set("radius", a), e.firstCategoryDimIndex = 0), sa(r) && (n.set("angle", r), e.firstCategoryDimIndex = 1) 10187 }, 10188 geo: function(t, e, i, n) { e.coordSysDims = ["lng", "lat"] }, 10189 parallel: function(t, e, i, n) { 10190 var o = t.ecModel, 10191 a = o.getComponent("parallel", t.get("parallelIndex")), 10192 r = e.coordSysDims = a.dimensions.slice(); 10193 d(a.parallelAxisIndex, function(t, a) { 10194 var s = o.getComponent("parallelAxis", t), 10195 l = r[a]; 10196 i.set(l, s), sa(s) && null == e.firstCategoryDimIndex && (n.set(l, s), e.firstCategoryDimIndex = a) 10197 }) 10198 } 10199 }, 10200 mM = "original", 10201 vM = "arrayRows", 10202 yM = "objectRows", 10203 xM = "keyedColumns", 10204 _M = "unknown", 10205 wM = "typedArray", 10206 bM = "column", 10207 SM = "row"; 10208 la.seriesDataToSource = function(t) { return new la({ data: t, sourceFormat: S(t) ? wM : mM, fromDataset: !1 }) }, Wi(la); 10209 var MM = Ni(), 10210 IM = "\0_ec_inner", 10211 TM = wo.extend({ 10212 init: function(t, e, i, n) { i = i || {}, this.option = null, this._theme = new wo(i), this._optionManager = n }, 10213 setOption: function(t, e) { k(!(IM in t), "please use chart.getOption()"), this._optionManager.setOption(t, e), this.resetOption(null) }, 10214 resetOption: function(t) { 10215 var e = !1, 10216 i = this._optionManager; 10217 if (!t || "recreate" === t) { 10218 var n = i.mountOption("recreate" === t); 10219 this.option && "recreate" !== t ? (this.restoreData(), this.mergeOption(n)) : Sa.c
10219all(this, n), e = !0 10220 } 10221 if ("timeline" !== t && "media" !== t || this.restoreData(), !t || "recreate" === t || "timeline" === t) { 10222 var o = i.getTimelineOption(this); 10223 o && (this.mergeOption(o), e = !0) 10224 } 10225 if (!t || "recreate" === t || "media" === t) { 10226 var a = i.getMediaOption(this, this._api); 10227 a.length && d(a, function(t) { this.mergeOption(t, e = !0) }, this) 10228 } 10229 return e 10230 }, 10231 mergeOption: function(t) { 10232 var e = this.option, 10233 o = this._componentsMap, 10234 r = []; 10235 ca(this), d(t, function(t, o) { null != t && (hM.hasClass(o) ? o && r.push(o) : e[o] = null == e[o] ? i(t) : n(e[o], t, !0)) }), hM.topologicalTravel(r, hM.getAllClassMainTypes(), function(i, n) { 10236 var r = Si(t[i]), 10237 s = Di(o.get(i), r); 10238 Ai(s), d(s, function(t, e) { 10239 var n = t.option; 10240 w(n) && (t.keyInfo.mainType = i, t.keyInfo.subType = Ia(i, n, t.exist)) 10241 }); 10242 var l = Ma(o, n); 10243 e[i] = [], o.set(i, []), d(s, function(t, n) { 10244 var r = t.exist, 10245 s = t.option; 10246 if (k(w(s) || r, "Empty component definition"), s) { 10247 var u = hM.getClass(i, t.keyInfo.subType, !0); 10248 if (r && r instanceof u) r.name = t.keyInfo.name, r.mergeOption(s, this), r.optionUpdated(s, !1); 10249 else { 10250 var h = a({ dependentModels: l, componentIndex: n }, t.keyInfo); 10251 a(r = new u(s, this, this, h), h), r.init(s, this, this, h), r.optionUpdated(null, !0) 10252 } 10253 } else r.mergeOption({}, this), r.optionUpdated({}, !1); 10254 o.get(i)[n] = r, e[i][n] = r.option 10255 }, this), "series" === i && Ta(this, o.get("series")) 10256 }, this), this._seriesIndicesMap = R(this._seriesIndices = this._seriesIndices || []) 10257 }, 10258 getOption: function() { 10259 var t = i(this.option); 10260 return d(t, function(e, i) { 10261 if (hM.hasClass(i)) { 10262 for (var n = (e = Si(e)).length - 1; n >= 0; n--) Li(e[n]) && e.splice(n, 1); 10263 t[i] = e 10264 } 10265 }), delete t[IM], t 10266 }, 10267 getTheme: function() { return this._theme }, 10268 getComponent: function(t, e) { var i = this._componentsMap.get(t); if (i) return i[e || 0] }, 10269 queryComponents: function(t) { 10270 var e = t.mainType; 10271 if (!e) return []; 10272 var i = t.index, 10273 n = t.id, 10274 o = t.name, 10275 a = this._componentsMap.get(e); 10276 if (!a || !a.length) return []; 10277 var r; 10278 if (null != i) y(i) || (i = [i]), r = g(f(i, function(t) { return a[t] }), function(t) { return !!t }); 10279 else if (null != n) { 10280 var s = y(n); 10281 r = g(a, function(t) { return s && l(n, t.id) >= 0 || !s && t.id === n }) 10282 } else if (null != o) { 10283 var u = y(o); 10284 r = g(a, function(t) { return u && l(o, t.name) >= 0 || !u && t.name === o }) 10285 } else r = a.slice(); 10286 return Da(r, t) 10287 }, 10288 findComponents: function(t) { 10289 var e = t.query, 10290 i = t.mainType, 10291 n = function(t) { 10292 var e = i + "Index", 10293 n = i + "Id", 10294 o = i + "Name"; 10295 return !t || null == t[e] && null == t[n] && null == t[o] ? null : { mainType: i, index: t[e], id: t[n], name: t[o] } 10296 }(e); 10297 return function(e) { return t.filter ? g(e, t.filter) : e }(Da(n ? this.queryComponents(n) : this._componentsMap.get(i), t)) 10298 }, 10299 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) }, 10300 getSeriesByName: function(t) { return g(this._componentsMap.get("series"), function(e) { return e.name === t }) }, 10301 getSeriesByIndex: function(t) { return this._componentsMap.get("series")[t] }, 10302 getSeriesByType: function(t) { return g(this._componentsMap.get("series"), function(e) { return e.subType === t }) }, 10303 getSeries: function() { return this._componentsMap.get("series").slice() }, 10304 getSeriesCount: function() { return this._componentsMap.get("series").length }, 10305 eachSeries: function(t, e) { 10306 d(this._seriesIndices, function(i) { 10307 var n = this._componentsMap.get("series")[i]; 10308 t.call(e, n, i) 10309 }, this) 10310 }, 10311 eachRawSeries: function(t, e) { d(this._componentsMap.get("series"), t, e) }, 10312 eachSeriesByType: function(t, e, i) { 10313 d(this._seriesIndices, function(n) { 10314 var o = this._componentsMap.get("series")[n]; 10315 o.subType === t && e.call(i, o, n) 10316 }, this) 10317 }, 10318 eachRawSeriesByType: function(t, e, i) { return d(this.getSeriesByType(t), e, i) }, 10319 isSeriesFiltered: function(t) { return null == this._seriesIndicesMap.get(t.componentIndex) }, 10320 getCurrentSeriesIndices: function() { return (this._seriesIndices || []).slice() }, 10321 filterSeries: function(t, e) { Ta(this, g(this._componentsMap.get("series"), t, e)) }, 10322 restoreData: function(t) { 10323 var e = this._componentsMap; 10324 Ta(this, e.get("series")); 10325 var i = []; 10326 e.each(function(t, e) { i.push(e) }), hM.topologicalTravel(i, hM.getAllClassMainTypes(), function(i, n) { 10327 d(e.get(i), function(e) { 10328 ("series" !== i || !wa(e, t)) && e.restoreData() 10329 }) 10330 }) 10331 } 10332 }); 10333 h(TM, pM); 10334 var DM = ["getDom", "getZr", "getWidth", "getHeight", "getDevicePixelRatio", "dispatchAction", "isDisposed", "on", "off", "getDataURL", "getConnectedDataURL", "getModel", "getOption", "getViewOfComponentModel", "getViewOfSeriesModel"], 10335 AM = {}; 10336 Ca.prototype = { 10337 constructor: Ca, 10338 create: function(t, e) { 10339 var i = []; 10340 d(AM, function(n, o) { 10341 var a = n.create(t, e); 10342 i = i.concat(a || []) 10343 }), this._coordinateSystems = i 10344 }, 10345 update: function(t, e) { d(this._coordinateSystems, function(i) { i.update && i.update(t, e) }) }, 10346 getCoordinateSystems: function() { return this._coordinateSystems.slice() } 10347 }, Ca.register = function(t, e) { AM[t] = e }, Ca.get = function(t) { return AM[t] }; 10348 var CM = d, 10349 LM = i, 10350 kM = f, 10351 PM = n, 10352 NM = /^(min|max)?(.+)$/; 10353 La.prototype = { 10354 constructor: La, 10355 setOption: function(t, e) { 10356 t && d(Si(t.series), function(t) { t && t.data && S(t.data) && N(t.data) }), t = LM(t, !0); 10357 var i = this._optionBackup, 10358 n = ka.call(this, t, e, !i); 10359 this._newBaseOption = n.baseOption, i ? (Ea(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 10360 }, 10361 mountOption: function(t) { var e = this._optionBackup;
10361 return this._timelineOptions = kM(e.timelineOptions, LM), this._mediaList = kM(e.mediaList, LM), this._mediaDefault = LM(e.mediaDefault), this._currentMediaIndices = [], LM(t ? e.baseOption : this._newBaseOption) }, 10362 getTimelineOption: function(t) { 10363 var e, i = this._timelineOptions; 10364 if (i.length) { 10365 var n = t.getComponent("timeline"); 10366 n && (e = LM(i[n.getCurrentIndex()], !0)) 10367 } 10368 return e 10369 }, 10370 getMediaOption: function(t) { 10371 var e = this._api.getWidth(), 10372 i = this._api.getHeight(), 10373 n = this._mediaList, 10374 o = this._mediaDefault, 10375 a = [], 10376 r = []; 10377 if (!n.length && !o) return r; 10378 for (var s = 0, l = n.length; s < l; s++) Pa(n[s].query, e, i) && a.push(s); 10379 return !a.length && o && (a = [-1]), a.length && !Oa(a, this._currentMediaIndices) && (r = kM(a, function(t) { return LM(-1 === t ? o.option : n[t].option) })), this._currentMediaIndices = a, r 10380 } 10381 }; 10382 var OM = d, 10383 EM = w, 10384 RM = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"], 10385 zM = function(t, e) { 10386 OM(Fa(t.series), function(t) { EM(t) && Wa(t) }); 10387 var i = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"]; 10388 e && i.push("valueAxis", "categoryAxis", "logAxis", "timeAxis"), OM(i, function(e) { OM(Fa(t[e]), function(t) { t && (Va(t, "axisLabel"), Va(t.axisPointer, "label")) }) }), OM(Fa(t.parallel), function(t) { 10389 var e = t && t.parallelAxisDefault; 10390 Va(e, "axisLabel"), Va(e && e.axisPointer, "label") 10391 }), OM(Fa(t.calendar), function(t) { za(t, "itemStyle"), Va(t, "dayLabel"), Va(t, "monthLabel"), Va(t, "yearLabel") }), OM(Fa(t.radar), function(t) { Va(t, "name") }), OM(Fa(t.geo), function(t) { EM(t) && (Ga(t), OM(Fa(t.regions), function(t) { Ga(t) })) }), OM(Fa(t.timeline), function(t) { 10392 Ga(t), za(t, "label"), za(t, "itemStyle"), za(t, "controlStyle", !0); 10393 var e = t.data; 10394 y(e) && d(e, function(t) { w(t) && (za(t, "label"), za(t, "itemStyle")) }) 10395 }), OM(Fa(t.toolbox), function(t) { za(t, "iconStyle"), OM(t.feature, function(t) { za(t, "iconStyle") }) }), Va(Ha(t.axisPointer), "label"), Va(Ha(t.tooltip).axisPointer, "label") 10396 }, 10397 BM = [ 10398 ["x", "left"], 10399 ["y", "top"], 10400 ["x2", "right"], 10401 ["y2", "bottom"] 10402 ], 10403 VM = ["grid", "geo", "parallel", "legend", "toolbox", "title", "visualMap", "dataZoom", "timeline"], 10404 GM = function(t, e) { 10405 zM(t, e), t.series = Si(t.series), d(t.series, function(t) { 10406 if (w(t)) { 10407 var e = t.type; 10408 if ("pie" !== e && "gauge" !== e || null != t.clockWise && (t.clockwise = t.clockWise), "gauge" === e) { 10409 var i = Za(t, "pointer.color"); 10410 null != i && Ua(t, "itemStyle.normal.color", i) 10411 } 10412 Xa(t) 10413 } 10414 }), t.dataRange && (t.visualMap = t.dataRange), d(VM, function(e) { 10415 var i = t[e]; 10416 i && (y(i) || (i = [i]), d(i, function(t) { Xa(t) })) 10417 }) 10418 }, 10419 WM = Ya.prototype; 10420 WM.pure = !1, WM.persistent = !0, WM.getSource = function() { return this._source }; 10421 var FM = { 10422 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: $a }, 10423 arrayRows_row: { 10424 pure: !0, 10425 count: function() { var t = this._data[0]; return t ? Math.max(0, t.length - this._source.startIndex) : 0 }, 10426 getItem: function(t) { 10427 t += this._source.startIndex; 10428 for (var e = [], i = this._data, n = 0; n < i.length; n++) { 10429 var o = i[n]; 10430 e.push(o ? o[t] : null) 10431 } 10432 return e 10433 }, 10434 appendData: function() { throw new Error('Do not support appendData when set seriesLayoutBy: "row".') } 10435 }, 10436 objectRows: { pure: !0, count: qa, getItem: Ka, appendData: $a }, 10437 keyedColumns: { 10438 pure: !0, 10439 count: function() { 10440 var t = this._source.dimensionsDefine[0].name, 10441 e = this._data[t]; 10442 return e ? e.length : 0 10443 }, 10444 getItem: function(t) { 10445 for (var e = [], i = this._source.dimensionsDefine, n = 0; n < i.length; n++) { 10446 var o = this._data[i[n].name]; 10447 e.push(o ? o[t] : null) 10448 } 10449 return e 10450 }, 10451 appendData: function(t) { 10452 var e = this._data; 10453 d(t, function(t, i) { for (var n = e[i] || (e[i] = []), o = 0; o < (t || []).length; o++) n.push(t[o]) }) 10454 } 10455 }, 10456 original: { count: qa, getItem: Ka, appendData: $a }, 10457 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 } } 10458 }, 10459 HM = { arrayRows: Ja, objectRows: function(t, e, i, n) { return null != i ? t[n] : t }, keyedColumns: Ja, original: function(t, e, i, n) { var o = Ii(t); return null != i && o instanceof Array ? o[i] : o }, typedArray: Ja }, 10460 ZM = { arrayRows: Qa, objectRows: function(t, e, i, n) { return tr(t[e], this._dimensionInfos[e]) }, keyedColumns: Qa, original: function(t, e, i, n) { var o = t && (null == t.value ? t : t.value); return !this._rawData.pure && Ti(t) && (this.hasItemOption = !0), tr(o instanceof Array ? o[n] : o, this._dimensionInfos[e]) }, typedArray: function(t, e, i, n) { return t[n] } }, 10461 UM = /\{@(.+?)\}/g, 10462 XM = { 10463 getDataParams: function(t, e) { 10464 var i = this.getData(e), 10465 n = this.getRawValue(t, e), 10466 o = i.getRawIndex(t), 10467 a = i.getName(t), 10468 r = i.getRawDataItem(t), 10469 s = i.getItemVisual(t, "color"); 10470 return { componentType: this.mainType, componentSubType: this.subType, seriesType: "series" === this.mainType ? this.subType : null, seriesIndex: this.seriesIndex, seriesId: this.id, seriesName: this.name, name: a, dataIndex: o, data: r, dataType: e, value: n, color: s, marker: jo(s), $vars: ["seriesName", "name", "value"] } 10471 }, 10472 getFormattedLabel: function(t, e, i, n, o) { 10473 e = e || "normal"; 10474 var a = this.getData(i), 10475 r = a.getItemModel(t), 10476 s = this.getDataParams(t, i); 10477 null != n && s.value instanceof Array && (s.value = s.value[n]); 10478 var l = r.get("normal" === e ? [o || "label", "formatter"] : [e, o || "label", "formatter"]); 10479 return "function" == typeof l ? (s.status = e, l(s)) : "string" == typeof l ? Uo(l, s).replace(UM, function(e, i) { var n = i.length; return "[" === i.charAt(0) && "]" === i.charAt(n - 1) && (i = +i.slice(1, n - 1)), er(a, t, i) }) : void 0 10480 }, 10481 getRawValue: function(t, e) { return er(this.getData(e), t) }, 10482 formatTooltip: function() {} 10483 }, 10484 jM = or.prototype; 10485 jM.perform = function(t) { 10486 function e(t) { return !(t >= 1) && (t = 1), t } 10487 var i = this._upstream, 10488 n = t && t.skip; 10489 if (this._dirty && i) { 10490 var o = this.context; 10491 o.data = o.outputData = i.context.outputData 10492 } 10493 this.__pipeline && (this.__pipeline.currentTask = this); 10494 var a; 10495 this._plan && !n && (a = this._plan(this.context)); 10496 var r = e(this._modBy), 10497 s = this._modDataCount || 0, 10498 l = e(t && t.modBy), 10499 u = t && t.modDataCount || 0; 10500 r === l && s === u || (a = "reset"); 10501 var h; 10502 (this._dirty || "reset" === a) && (this._dirty = !1, h = rr(this, n)), this._modBy = l, this._modDataCount = u; 10503 var c = t && t.step; 10504 if (this._dueEnd = i ? i._outputDueEnd : this._count ? this._count(this.context) : 1 / 0, this._progress) { 10505 var d = this._dueIndex, 10506 f = Math.min(null != c ? this._dueIndex + c : 1 / 0, this._dueEnd); 10507 if (!n && (h || d < f)) { 10508 var p = this._progress; 10509 if (y(p)) 10510 for (var g = 0; g < p.length; g++) ar(this, p[g], d, f, l, u); 10511 else ar(this, p, d, f, l, u) 10512 } 10513 this._dueIndex = f; 10514 var m = null != this._settedOutputEnd ? this._settedOutputEnd : f; 10515 this._outputDueEnd = m 10516 } else this._dueIndex = this._outputDueEnd = null != this._settedOutputEnd ? this._settedOutputEnd : this._dueEnd; 10517 return this.unfinished() 10518 }; 10519 var YM = function() { 10520 function t() { return n < i ? n++ : null } 10521 10522 function e() {
10523 var t = n % r * o + Math.ceil(n / r), 10524 e = n >= i ? null : t < a ? t : n; 10525 return n++, e 10526 } 10527 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 } }; 10528 return s 10529 }(); 10530 jM.dirty = function() { this._dirty = !0, this._onDirty && this._onDirty(this.context) }, jM.unfinished = function() { return this._progress && this._dueIndex < this._dueEnd }, jM.pipe = function(t) { 10531 (this._downstream !== t || this._dirty) && (this._downstream = t, t._upstream = this, t.dirty()) 10532 }, jM.dispose = function() { this._disposed || (this._upstream && (this._upstream._downstream = null), this._downstream && (this._downstream._upstream = null), this._dirty = !1, this._disposed = !0) }, jM.getUpstream = function() { return this._upstream }, jM.getDownstream = function() { return this._downstream }, jM.setOutputEnd = function(t) { this._outputDueEnd = this._settedOutputEnd = t }; 10533 var qM = Ni(), 10534 KM = hM.extend({ 10535 type: "series.__base__", 10536 seriesIndex: 0, 10537 coordinateSystem: null, 10538 defaultOption: null, 10539 legendDataProvider: null, 10540 visualColorAccessPath: "itemStyle.color", 10541 layoutMode: null, 10542 init: function(t, e, i, n) { 10543 this.seriesIndex = this.componentIndex, this.dataTask = nr({ count: ur, reset: hr }), this.dataTask.context = { model: this }, this.mergeDefaultAndTheme(t, i), da(this); 10544 var o = this.getInitialData(t, i); 10545 dr(o, this), this.dataTask.context.data = o, qM(this).dataBeforeProcessed = o, sr(this) 10546 }, 10547 mergeDefaultAndTheme: function(t, e) { 10548 var i = this.layoutMode, 10549 o = i ? na(t) : {}, 10550 a = this.subType; 10551 hM.hasClass(a) && (a += "Series"), n(t, e.getTheme().get(this.subType)), n(t, this.getDefaultOption()), Mi(t, "label", ["show"]), this.fillDataTextStyle(t.data), i && ia(t, o, i) 10552 }, 10553 mergeOption: function(t, e) { 10554 t = n(this.option, t, !0), this.fillDataTextStyle(t.data); 10555 var i = this.layoutMode; 10556 i && ia(this.option, t, i), da(this); 10557 var o = this.getInitialData(t, e); 10558 dr(o, this), this.dataTask.dirty(), this.dataTask.context.data = o, qM(this).dataBeforeProcessed = o, sr(this) 10559 }, 10560 fillDataTextStyle: function(t) { 10561 if (t && !S(t)) 10562 for (var e = ["show"], i = 0; i < t.length; i++) t[i] && t[i].label && Mi(t[i], "label", e) 10563 }, 10564 getInitialData: function() {}, 10565 appendData: function(t) { this.getRawData().appendData(t.data) }, 10566 getData: function(t) { var e = pr(this); if (e) { var i = e.context.data; return null == t ? i : i.getLinkedData(t) } return qM(this).data }, 10567 setData: function(t) { 10568 var e = pr(this); 10569 if (e) { 10570 var i = e.context; 10571 i.data !== t && e.modifyOutputEnd && e.setOutputEnd(t.count()), i.outputData = t, e !== this.dataTask && (i.data = t) 10572 } 10573 qM(this).data = t 10574 }, 10575 getSource: function() { return ha(this) }, 10576 getRawData: function() { return qM(this).dataBeforeProcessed }, 10577 getBaseAxis: function() { var t = this.coordinateSystem; return t && t.getBaseAxis && t.getBaseAxis() }, 10578 formatTooltip: function(t, e, i) { 10579 function n(t) { return Zo(Fo(t)) } 10580 var o = this.getData(), 10581 a = o.mapDimension("defaultedTooltip", !0), 10582 r = a.length, 10583 s = this.getRawValue(t), 10584 l = y(s), 10585 u = o.getItemVisual(t, "color"); 10586 w(u) && u.colorStops && (u = (u.colorStops[0] || {}).color), u = u || "transparent"; 10587 var h = r > 1 || l && !r ? function(i) { 10588 function n(t, i) { 10589 var n = o.getDimensionInfo(i); 10590 if (n && !1 !== n.otherDims.tooltip) { 10591 var a = n.type, 10592 l = jo({ color: u, type: "subItem" }), 10593 h = (r ? l + Zo(n.displayName || "-") + ": " : "") + Zo("ordinal" === a ? t + "" : "time" === a ? e ? "" : qo("yyyy/
10593MM/dd hh:mm:ss", t) : Fo(t)); 10594 h && s.push(h) 10595 } 10596 } 10597 var r = p(i, function(t, e, i) { var n = o.getDimensionInfo(i); return t |= n && !1 !== n.tooltip && null != n.displayName }, 0), 10598 s = []; 10599 return a.length ? d(a, function(e) { n(er(o, t, e), e) }) : d(i, n), (r ? "<br/>" : "") + s.join(r ? "<br/>" : ", ") 10600 }(s) : n(r ? er(o, t, a[0]) : l ? s[0] : s), 10601 c = jo(u), 10602 f = o.getName(t), 10603 g = this.name; 10604 return Ci(this) || (g = ""), g = g ? Zo(g) + (e ? ": " : "<br/>") : "", e ? c + g + h : g + c + (f ? Zo(f) + ": " + h : h) 10605 }, 10606 isAnimationEnabled: function() { if (a_.node) return !1; var t = this.getShallow("animation"); return t && this.getData().count() > this.getShallow("animationThreshold") && (t = !1), t }, 10607 restoreData: function() { this.dataTask.dirty() }, 10608 getColorFromPalette: function(t, e, i) { 10609 var n = this.ecModel, 10610 o = pM.getColorFromPalette.call(this, t, e, i); 10611 return o || (o = n.getColorFromPalette(t, e, i)), o 10612 }, 10613 coordDimToDataDim: function(t) { return this.getRawData().mapDimension(t, !0) }, 10614 getProgressive: function() { return this.get("progressive") }, 10615 getProgressiveThreshold: function() { return this.get("progressiveThreshold") }, 10616 getAxisTooltipData: null, 10617 getTooltipPosition: null, 10618 pipeTask: null, 10619 preventIncremental: null, 10620 pipelineContext: null 10621 }); 10622 h(KM, XM), h(KM, pM); 10623 var $M = function() { this.group = new sw, this.uid = Mo("viewComponent") }; 10624 $M.prototype = { constructor: $M, init: function(t, e) {}, render: function(t, e, i, n) {}, dispose: function() {} }; 10625 var JM = $M.prototype; 10626 JM.updateView = JM.updateLayout = JM.updateVisual = function(t, e, i, n) {}, Gi($M), Zi($M, { registerWhenExtend: !0 }); 10627 var QM = function() { 10628 var t = Ni(); 10629 return function(e) { 10630 var i = t(e), 10631 n = e.pipelineContext, 10632 o = i.large, 10633 a = i.progressiveRender, 10634 r = i.large = n.large, 10635 s = i.progressiveRender = n.progressiveRender; 10636 return !!(o ^ r || a ^ s) && "reset" 10637 } 10638 }, 10639 tI = Ni(), 10640 eI = QM(); 10641 gr.prototype = { type: "chart", init: function(t, e) {}, render: function(t, e, i, n) {}, highlight: function(t, e, i, n) { vr(t.getData(), n, "emphasis") }, downplay: function(t, e, i, n) { vr(t.getData(), n, "normal") }, remove: function(t, e) { this.group.removeAll() }, dispose: function() {}, incrementalPrepareRender: null, incrementalRender: null, updateTransform: null }; 10642 var iI = gr.prototype; 10643 iI.updateView = iI.updateLayout = iI.updateVisual = function(t, e, i, n) { this.render(t, e, i, n) }, Gi(gr), Zi(gr, { registerWhenExtend: !0 }), gr.markUpdateMethod = function(t, e) { tI(t).updateMethod = e }; 10644 var nI = { 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) } } }, 10645 oI = "\0__throttleOriginMethod", 10646 aI = "\0__throttleRate", 10647 rI = "\0__throttleType", 10648 sI = { 10649 createOnAllSeries: !0, 10650 performRawSeries: !0, 10651 reset: function(t, e) { 10652 var i = t.getData(), 10653 n = (t.visualColorAccessPath || "itemStyle.color").split("."), 10654 o = t.get(n) || t.getColorFromPalette(t.name, null, e.getSeriesCount()); 10655 if (i.setVisual("color", o), !e.isSeriesFiltered(t)) { 10656 "function" != typeof o || o instanceof CS || i.each(function(e) { i.setItemVisual(e, "color", o(t.getDataParams(e))) }); 10657 return { 10658 dataEach: i.hasItemOption ? function(t, e) { 10659 var i = t.getItemModel(e).get(n, !0); 10660 null != i && t.setItemVisual(e, "color", i) 10661 } : null 10662 } 10663 } 10664 } 10665 }, 10666 lI = { 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: "主
10666顿²³æµå", 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: "" } } } }, 10667 uI = function(t, e) { 10668 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 } 10669 10670 function n(t) { var e = a.get(t); if (null == e) { for (var i = t.split("."), n = lI.aria, o = 0; o < i.length; ++o) n = n[i[o]]; return n } return e } 10671 10672 function o(t) { return lI.series.typeNames[t] || "èªå®ä¹å¾" } 10673 var a = e.getModel("aria"); 10674 if (a.get("show")) 10675 if (a.get("description")) t.setAttribute("aria-label", a.get("description")); 10676 else { 10677 var r = 0; 10678 e.eachSeries(function(t, e) {++r }, this); 10679 var s, l = a.get("data.maxCount") || 10, 10680 u = a.get("series.maxCount") || 10, 10681 h = Math.min(r, u); 10682 if (!(r < 1)) { 10683 var c = function() { var t = e.getModel("title").option; return t && t.length && (t = t[0]), t && t.text }(); 10684 s = c ? i(n("general.withTitle"), { title: c }) : n("general.withoutTitle"); 10685 var f = []; 10686 s += i(n(r > 1 ? "series.multiple.prefix" : "series.single.prefix"), { seriesCount: r }), e.eachSeries(function(t, e) { 10687 if (e < h) { 10688 var a, s = t.get("name"), 10689 u = "series." + (r > 1 ? "multiple" : "single") + "."; 10690 a = i(a = n(s ? u + "withName" : u + "withoutName"), { seriesId: t.seriesIndex, seriesName: t.get("name"), seriesType: o(t.subType) }); 10691 var c = t.getData(); 10692 window.data = c, c.count() > l ? a += i(n("data.partialData"), { displayCnt: l }) : a += n("data.allData"); 10693 for (var d = [], p = 0; p < c.count(); p++) 10694 if (p < l) { 10695 var g = c.getName(p), 10696 m = er(c, p); 10697 d.push(i(n(g ? "data.withName" : "data.withoutName"), { name: g, value: m })) 10698 } 10699 a += d.join(n("data.separator.middle")) + n("data.separator.end"), f.push(a) 10700 } 10701 }), s += f.join(n("series.multiple.separator.middle")) + n("series.multiple.separator.end"), t.setAttribute("aria-label", s) 10702 } 10703 } 10704 }, 10705 hI = Math.PI, 10706 cI = Sr.prototype; 10707 cI.restoreData = function(t, e) { 10708 t.restoreData(e), this._stageTaskMap.each(function(t) { 10709 var e = t.overallTask; 10710 e && e.dirty() 10711 }) 10712 }, cI.getPerformArgs = function(t, e) { 10713 if (t.__pipeline) { 10714 var i = this._pipelineMap.get(t.__pipeline.id), 10715 n = i.context, 10716 o = !e && i.progressiveEnabled && (!n || n.progressiveRender) && t.__idxInPipeline > i.blockIndex ? i.step : null, 10717 a = n && n.modDataCount; 10718 return { step: o, modBy: null != a ? Math.ceil(a / o) : null, modDataCount: a } 10719 } 10720 }, cI.getPipeline = function(t) { return this._pipelineMap.get(t) }, cI.updateStreamModes = function(t, e) { 10721 var i = this._pipelineMap.get(t.uid), 10722 n = t.getData().count(), 10723 o = i.progressiveEnabled && e.incrementalPrepareRender && n >= i.threshold, 10724 a = t.get("large") && n >= t.get("largeThreshold"), 10725 r = "mod" === t.get("progressiveChunkMode") ? n : null;
10726 t.pipelineContext = i.context = { progressiveRender: o, modDataCount: r, large: a } 10727 }, cI.restorePipelines = function(t) { 10728 var e = this, 10729 i = e._pipelineMap = R(); 10730 t.eachSeries(function(t) { 10731 var n = t.getProgressive(), 10732 o = t.uid; 10733 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 }), Er(e, t, t.dataTask) 10734 }) 10735 }, cI.prepareStageTasks = function() { 10736 var t = this._stageTaskMap, 10737 e = this.ecInstance.getModel(), 10738 i = this.api; 10739 d(this._allHandlers, function(n) { 10740 var o = t.get(n.uid) || t.set(n.uid, []); 10741 n.reset && Ir(this, n, o, e, i), n.overallReset && Tr(this, n, o, e, i) 10742 }, this) 10743 }, cI.prepareView = function(t, e, i, n) { 10744 var o = t.renderTask, 10745 a = o.context; 10746 a.model = e, a.ecModel = i, a.api = n, o.__block = !t.incrementalPrepareRender, Er(this, e, o) 10747 }, cI.performDataProcessorTasks = function(t, e) { Mr(this, this._dataProcessorHandlers, t, e, { block: !0 }) }, cI.performVisualTasks = function(t, e, i) { Mr(this, this._visualHandlers, t, e, i) }, cI.performSeriesTasks = function(t) { 10748 var e; 10749 t.eachSeries(function(t) { e |= t.dataTask.perform() }), this.unfinished |= e 10750 }, cI.plan = function() { 10751 this._pipelineMap.each(function(t) { 10752 var e = t.tail; 10753 do { 10754 if (e.__block) { t.blockIndex = e.__idxInPipeline; break } 10755 e = e.getUpstream() 10756 } while (e) 10757 }) 10758 }; 10759 var dI = cI.updatePayload = function(t, e) { "remain" !== e && (t.context.payload = e) }, 10760 fI = Nr(0); 10761 Sr.wrapStageHandler = function(t, e) { return x(t) && (t = { overallReset: t, seriesType: Rr(t) }), t.uid = Mo("stageHandler"), e && (t.visualType = e), t }; 10762 var pI, gI = {}, 10763 mI = {}; 10764 zr(gI, TM), zr(mI, Aa), gI.eachSeriesByType = gI.eachRawSeriesByType = function(t) { pI = t }, gI.eachComponent = function(t) { "series" === t.mainType && t.subType && (pI = t.subType) }; 10765 var vI = ["#37A2DA", "#32C5E9", "#67E0E3", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#E062AE", "#E690D1", "#e7bcf3", "#9d96f5", "#8378EA", "#96BFFF"], 10766 yI = { 10767 color: vI, 10768 colorLayer: [ 10769 ["#37A2DA", "#ffd85c", "#fd7b5f"], 10770 ["#37A2DA", "#67E0E3", "#FFDB5C", "#ff9f7f", "#E062AE", "#9d96f5"], 10771 ["#37A2DA", "#32C5E9", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#e7bcf3", "#8378EA", "#96BFFF"], vI 10772 ] 10773 }, 10774 xI = ["#dd6b66", "#759aa0", "#e69d87", "#8dc1a9", "#ea7e53", "#eedd78", "#73a373", "#73b9bc", "#7289ab", "#91ca8c", "#f49f42"], 10775 _I = { color: xI, 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: xI[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" } } }
10775, 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: xI }, gauge: { title: { textStyle: { color: "#eee" } } }, candlestick: { itemStyle: { normal: { color: "#FD1050", color0: "#0CF49B", borderColor: "#FD1050", borderColor0: "#0CF49B" } } } }; 10776 _I.categoryAxis.splitLine.show = !1, hM.extend({ type: "dataset", defaultOption: { seriesLayoutBy: bM, sourceHeader: null, dimensions: null, source: null }, optionUpdated: function() { ua(this) } }), $M.extend({ type: "dataset" }); 10777 var wI = k, 10778 bI = d, 10779 SI = x, 10780 MI = w, 10781 II = hM.parseClassType, 10782 TI = { zrender: "4.0.4" }, 10783 DI = 1e3, 10784 AI = 1e3, 10785 CI = 3e3, 10786 LI = { PROCESSOR: { FILTER: DI, STATISTIC: 5e3 }, VISUAL: { LAYOUT: AI, GLOBAL: 2e3, CHART: CI, COMPONENT: 4e3, BRUSH: 5e3 } }, 10787 kI = "__flagInMainProcess", 10788 PI = "__optionUpdated", 10789 NI = /^[a-zA-Z0-9_]+$/; 10790 Vr.prototype.on = Br("on"), Vr.prototype.off = Br("off"), Vr.prototype.one = Br("one"), h(Vr, D_); 10791 var OI = Gr.prototype; 10792 OI._onframe = function() { 10793 if (!this._disposed) { 10794 var t = this._scheduler; 10795 if (this[PI]) { 10796 var e = this[PI].silent; 10797 this[kI] = !0, Fr(this), EI.update.call(this), this[kI] = !1, this[PI] = !1, Xr.call(this, e), jr.call(this, e) 10798 } else if (t.unfinished) { 10799 var i = 1, 10800 n = this._model; 10801 this._api; 10802 t.unfinished = !1; 10803 do { 10804 var o = +new Date; 10805 t.performSeriesTasks(n), t.performDataProcessorTasks(n), Zr(this, n), t.performVisualTasks(n), Qr(this, this._model, 0, "remain"), i -= +new Date - o 10806 } while (i > 0 && t.unfinished); 10807 t.unfinished || this._zr.flush() 10808 } 10809 } 10810 }, OI.getDom = function() { return this._dom }, OI.getZr = function() { return this._zr }, OI.setOption = function(t, e, i) { 10811 var n; 10812 if (MI(e) && (i = e.lazyUpdate, n = e.silent, e = e.notMerge), this[kI] = !0, !this._model || e) { 10813 var o = new La(this._api), 10814 a = this._theme, 10815 r = this._model = new TM(null, null, a, o); 10816 r.scheduler = this._scheduler, r.init(null, null, a, o) 10817 } 10818 this._model.setOption(t, GI), i ? (this[PI] = { silent: n }, this[kI] = !1) : (Fr(this), EI.update.call(this), this._zr.flush(), this[PI] = !1, this[kI] = !1, Xr.call(this, n), jr.call(this, n)) 10819 }, OI.setTheme = function() { console.log("ECharts#setTheme() is DEPRECATED in ECharts 3.0") }, OI.getModel = function() { return this._model }, OI.getOption = function() { return this._model && this._model.getOption() }, OI.getWidth = function() { return this._zr.getWidth() }, OI.getHeight = function() { return this._zr.getHeight() }, OI.getDevicePixelRatio = function() { return this._zr.painter.dpr || window.devicePixelRatio || 1 }, OI.getRenderedCanvas = function(t) { if (a_.canvasSupported) return (t = t || {}).pixelRatio = t.pixelRatio || 1, t.backgroundColor = t.backgroundColor || this._model.get("backgroundColor"), this._zr.painter.getRenderedCanvas(t) }, OI.getSvgDataUrl = function() { if (a_.svgSupported) { var t = this._zr; return d(t.storage.getDisplayList(), function(t) { t.stopAnimation(!0) }), t.painter.pathToDataUrl() } }, OI.getDataURL = function(t) { 10820 var e = (t = t || {}).excludeComponents, 10821 i = this._model, 10822 n = [], 10823 o = this; 10824 bI(e, function(t) { 10825 i.eachComponent({ mainType: t }, function(t) { 10826 var e = o._componentsMap[t.__viewId]; 10827 e.group.ignore || (n.push(e), e.group.ignore = !0) 10828 }) 10829 }); 10830 var a = "svg" === this._zr.painter.getType() ? this.getSvgDataUrl() : this.getRenderedCanvas(t).toDataURL("image/" + (t && t.type || "png")); 10831 return bI(n, function(t) { t.group.ignore = !1 }), a 10832 }, OI.getConnectedDataURL = function(t) { 10833 if (a_.canvasSupported) { 10834 var e = this.group, 10835 n = Math.min, 10836 o = Math.max; 10837 if (XI[e]) { 10838 var a = 1 / 0, 10839 r = 1 / 0, 10840 s = -1 / 0, 10841 l = -1 / 0, 10842 u = [], 10843 h = t && t.pixelRatio || 1; 10844 d(UI, function(h, c) { 10845 if (h.group === e) { 10846 var d = h.getRenderedCanvas(i(t)), 10847 f = h.getDom().getBoundingClientRect(); 10848 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 }) 10849 } 10850 }); 10851 var c = (s *= h) - (a *= h), 10852 f = (l *= h) - (r *= h), 10853 p = m_(); 10854 p.width = c, p.height = f; 10855 var g = _i(p); 10856 return bI(u, function(t) { 10857 var e = new Je({ style: { x: t.left * h - a, y: t.top * h - r, image: t.dom } }); 10858 g.add(e) 10859 }), g.refreshImmediately(), p.toDataURL("image/" + (t && t.type || "png")) 10860 } 10861 return this.getDataURL(t) 10862 } 10863 }, OI.convertToPixel = v(Wr, "convertToPixel"), OI.convertFromPixel = v(Wr, "convertFromPixel"), OI.containPixel = function(t, e) { 10864 var i; 10865 return t = Oi(this._model, t), d(t, function(t, n) { 10866 n.indexOf("Models") >= 0 && d(t, function(t) { 10867 var o = t.coordinateSystem; 10868 if (o && o.containPoint) i |= !!o.containPoint(e); 10869 else if ("seriesModels" === n) { 10870 var a = this._chartsMap[t.__viewId]; 10871 a && a.containPoint && (i |= a.containPoint(e, t)) 10872 } 10873 }, this) 10874 }, this), !!i 10875 }, OI.getVisual = function(t, e) { 10876 var i = (t = Oi(this._model, t, { defaultMainType: "series" })).seriesModel.getData(), 10877 n = t.hasOwnProperty("dataIndexInside") ? t.dataIndexInside : t.hasOwnProperty("dataIndex") ? i.indexOfRawIndex(t.dataIndex) : null; 10878 return null != n ? i.getItemVisual(n, e) : i.getVisual(e) 10879 }, OI.getViewOfComponentModel = function(t) { return this._componentsMap[t.__viewId] }, OI.getViewOfSeriesModel = function(t) { return this._chartsMap[t.__viewId] }; 10880 var EI = { 10881 prepareAndUpdate: function(t) { Fr(this), EI.update.call(this, t) }, 10882 update: function(t) { 10883 var e = this._model, 10884 i = this._api, 10885 n = this._zr, 10886 o = this._coordSysMgr, 10887 a = this._scheduler; 10888 if (e) { 10889 a.restoreData(e, t), a.performSeriesTasks(e), o.create(e, i), a.performDataProcessorTasks(e, t), Zr(this, e), o.update(e, i), Kr(e), a.performVisualTasks(e, t), $r(this, e, i, t); 10890 var r = e.get("backgroundColor") || "transparent";
10891 if (a_.canvasSupported) n.setBackgroundColor(r); 10892 else { 10893 var s = At(r); 10894 r = zt(s, "rgb"), 0 === s[3] && (r = "transparent") 10895 } 10896 ts(e, i) 10897 } 10898 }, 10899 updateTransform: function(t) { 10900 var e = this._model, 10901 i = this, 10902 n = this._api; 10903 if (e) { 10904 var o = []; 10905 e.eachComponent(function(a, r) { 10906 var s = i.getViewOfComponentModel(r); 10907 if (s && s.__alive) 10908 if (s.updateTransform) { 10909 var l = s.updateTransform(r, e, n, t); 10910 l && l.update && o.push(s) 10911 } else o.push(s) 10912 }); 10913 var a = R(); 10914 e.eachSeries(function(o) { 10915 var r = i._chartsMap[o.__viewId]; 10916 if (r.updateTransform) { 10917 var s = r.updateTransform(o, e, n, t); 10918 s && s.update && a.set(o.uid, 1) 10919 } else a.set(o.uid, 1) 10920 }), Kr(e), this._scheduler.performVisualTasks(e, t, { setDirty: !0, dirtyMap: a }), Qr(i, e, 0, t, a), ts(e, this._api) 10921 } 10922 }, 10923 updateView: function(t) { 10924 var e = this._model; 10925 e && (gr.markUpdateMethod(t, "updateView"), Kr(e), this._scheduler.performVisualTasks(e, t, { setDirty: !0 }), $r(this, this._model, this._api, t), ts(e, this._api)) 10926 }, 10927 updateVisual: function(t) { EI.update.call(this, t) }, 10928 updateLayout: function(t) { EI.update.call(this, t) } 10929 }; 10930 OI.resize = function(t) { 10931 this._zr.resize(t); 10932 var e = this._model; 10933 if (this._loadingFX && this._loadingFX.resize(), e) { 10934 var i = e.resetOption("media"), 10935 n = t && t.silent; 10936 this[kI] = !0, i && Fr(this), EI.update.call(this), this[kI] = !1, Xr.call(this, n), jr.call(this, n) 10937 } 10938 }, OI.showLoading = function(t, e) { 10939 if (MI(t) && (e = t, t = ""), t = t || "default", this.hideLoading(), ZI[t]) { 10940 var i = ZI[t](this._api, e), 10941 n = this._zr; 10942 this._loadingFX = i, n.add(i) 10943 } 10944 }, OI.hideLoading = function() { this._loadingFX && this._zr.remove(this._loadingFX), this._loadingFX = null }, OI.makeActionFromEvent = function(t) { var e = a({}, t); return e.type = BI[t.type], e }, OI.dispatchAction = function(t, e) { MI(e) || (e = { silent: !!e }), zI[t.type] && this._model && (this[kI] ? this._pendingActions.push(t) : (Ur.call(this, t, e.silent), e.flush ? this._zr.flush(!0) : !1 !== e.flush && a_.browser.weChat && this._throttledZrFlush(), Xr.call(this, e.silent), jr.call(this, e.silent))) }, OI.appendData = function(t) { 10945 var e = t.seriesIndex; 10946 this.getModel().getSeriesByIndex(e).appendData(t), this._scheduler.unfinished = !0 10947 }, OI.on = Br("on"), OI.off = Br("off"), OI.one = Br("one"); 10948 var RI = ["click", "dblclick", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup", "globalout", "contextmenu"]; 10949 OI._initEvents = function() { 10950 bI(RI, function(t) { 10951 this._zr.on(t, function(e) { 10952 var i, n = this.getModel(), 10953 o = e.target; 10954 if ("globalout" === t) i = {}; 10955 else if (o && null != o.dataIndex) { 10956 var r = o.dataModel || n.getSeriesByIndex(o.seriesIndex); 10957 i = r && r.getDataParams(o.dataIndex, o.dataType) || {} 10958 } else o && o.eventData && (i = a({}, o.eventData)); 10959 i && (i.event = e, i.type = t, this.trigger(t, i)) 10960 }, this) 10961 }, this), bI(BI, function(t, e) { this._messageCenter.on(e, function(t) { this.trigger(e, t) }, this) }, this) 10962 }, OI.isDisposed = function() { return this._disposed }, OI.clear = function() { this.setOption({ series: [] }, !0) }, OI.dispose = function() { 10963 if (!this._disposed) { 10964 this._disposed = !0, Ri(this.getDom(), qI, ""); 10965 var t = this._api, 10966 e = this._model; 10967 bI(this._componentsViews, function(i) { i.dispose(e, t) }), bI(this._chartsViews, function(i) { i.dispose(e, t) }), this._zr.dispose(), delete UI[this.id] 10968 } 10969 }, h(Gr, D_); 10970 var zI = {}, 10971 BI = {}, 10972 VI = [], 10973 GI = [], 10974 WI = [], 10975 FI = [], 10976 HI = {}, 10977 ZI = {}, 10978 UI = {}, 10979 XI = {}, 10980 jI = new Date - 0, 10981 YI = new Date - 0, 10982 qI = "_echarts_instance_", 10983 KI = {}, 10984 $I = rs; 10985 ps(2e3, sI), us(GM), hs(5e3, function(t) { 10986 var e = R(); 10987 t.eachSeries(function(t) { 10988 var i = t.get("stack"); 10989 if (i) { 10990 var n = e.get(i) || e.set(i, []), 10991 o = t.getData(), 10992 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 }; 10993 if (!a.stackedDimension || !a.isStackedByIndex && !a.stackedByDimension) return; 10994 n.length && o.setCalculationInfo("stackedOnSeries", n[n.length - 1].seriesModel), n.push(a) 10995 } 10996 }), e.each(ja) 10997 }), ms("default", function(t, e) { 10998 r(e = e || {}, { text: "loading", color: "#c23531", textColor: "#000", maskColor: "rgba(255, 255, 255, 0.8)", zlevel: 0 }); 10999 var i = new SS({ style: { fill: e.maskColor }, zlevel: e.zlevel, z: 1e4 }), 11000 n = new DS({ shape: { startAngle: -hI / 2, endAngle: -hI / 2 + .1, r: 10 }, style: { stroke: e.color, lineCap: "round", lineWidth: 5 }, zlevel: e.zlevel, z: 10001 }), 11001 o = new SS({ style: { fill: "none", text: e.text, textPosition: "right", textDistance: 10, textFill: e.textColor }, zlevel: e.zlevel, z: 10001 }); 11002 n.animateShape(!0).when(1e3, { endAngle: 3 * hI / 2 }).start("circularInOut"), n.animateShape(!0).when(1e3, { startAngle: 3 * hI / 2 }).delay(300).start("circularInOut"); 11003 var a = new sw; 11004 return a.add(n), a.add(o), a.add(i), a.resize = function() { 11005 var e = t.getWidth() / 2, 11006 a = t.getHeight() / 2; 11007 n.setShape({ cx: e, cy: a }); 11008 var r = n.shape.r; 11009 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() }) 11010 }, a.resize(), a 11011 }), cs({ type: "highlight", event: "highlight", update: "highlight" }, B), cs({ type: "downplay", event: "downplay", update: "downplay" }, B), ls("light", yI), ls("dark", _I); 11012 var JI = {}; 11013 Ss.prototype = { 11014 constructor: Ss, 11015 add: function(t) { return this._add = t, this }, 11016 update: function(t) { return this._update = t, this }, 11017 remove: function(t) { return this._remove = t, this }, 11018 execute: function() { 11019 var t = this._old, 11020 e = this._new, 11021 i = {}, 11022 n = [], 11023 o = []; 11024 for (Ms(t, {}, n, "_oldKeyGetter", this), Ms(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); 11025 for (var a = 0; a < o.length; a++) { 11026 var r = o[a]; 11027 if (i.hasOwnProperty(r)) { 11028 var s = i[r]; 11029 if (null == s) continue; 11030 if (s.length) 11031 for (var l = 0, u = s.length; l < u; l++) this._add && this._add(s[l]); 11032 else this._add && this._add(s) 11033 } 11034 } 11035 } 11036 }; 11037 var QI = R(["tooltip", "label", "itemName", "itemId", "seriesName"]), 11038 tT = w, 11039 eT = "e\0\0", 11040 iT = { float: "undefined" == typeof Float64Array ? Array : Float64Array, int: "undefined" == typeof Int32Array ? Array : Int32Array, ordinal: Array, number: Array, time: Array },
11041 nT = "undefined" == typeof Uint32Array ? Array : Uint32Array, 11042 oT = "undefined" == typeof Uint16Array ? Array : Uint16Array, 11043 aT = ["hasItemOption", "_nameList", "_idList", "_invertedIndicesMap", "_rawData", "_chunkSize", "_chunkCount", "_dimValueGetter", "_count", "_rawCount", "_nameDimIdx", "_idDimIdx"], 11044 rT = ["_extent", "_approximateExtent", "_rawExtent"], 11045 sT = function(t, e) { 11046 t = t || ["x", "y"]; 11047 for (var i = {}, n = [], o = {}, a = 0; a < t.length; a++) { 11048 var r = t[a]; 11049 _(r) && (r = { name: r }); 11050 var s = r.name; 11051 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] = []) 11052 } 11053 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 = Is(this), this._invertedIndicesMap = o, this._calculationInfo = {} 11054 }, 11055 lT = sT.prototype; 11056 lT.type = "list", lT.hasItemOption = !0, lT.getDimension = function(t) { return isNaN(t) || (t = this.dimensions[t] || t), t }, lT.getDimensionInfo = function(t) { return this._dimensionInfos[this.getDimension(t)] }, lT.getDimensionsOnCoord = function() { return this._dimensionsSummary.dataDimsOnCoord.slice() }, lT.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] }, lT.initData = function(t, e, i) { 11057 (la.isInstance(t) || c(t)) && (t = new Ya(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 = ZM[this._rawData.getSource().sourceFormat], this._dimValueGetter = i = i || this.defaultDimValueGetter, this._rawExtent = {}, this._initDataFromProvider(0, t.count()), t.pure && (this.hasItemOption = !1) 11058 }, lT.getProvider = function() { return this._rawData }, lT.appendData = function(t) { 11059 var e = this._rawData, 11060 i = this.count(); 11061 e.appendData(t); 11062 var n = e.count(); 11063 e.persistent || (n += i), this._initDataFromProvider(i, n) 11064 }, lT._initDataFromProvider = function(t, e) { 11065 if (!(t >= e)) { 11066 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 = f - 1, g = 0; g < s; g++) { 11067 c[T = r[g]] || (c[T] = [1 / 0, -1 / 0]); 11068 var m = l[T]; 11069 0 === m.otherDims.itemName && (i = this._nameDimIdx = g), 0 === m.otherDims.itemId && (this._idDimIdx = g); 11070 var v = iT[m.type]; 11071 a[T] || (a[T] = []); 11072 var y = a[T][p]; 11073 if (y && y.length < n) { 11074 for (var x = new v(Math.min(e - p * n, n)), _ = 0; _ < y.length; _++) x[_] = y[_]; 11075 a[T][p] = x 11076 } 11077 for (I = f * n; I < e; I += n) a[T].push(new v(Math.min(e - I, n))); 11078 this._chunkCount = a[T].length 11079 } 11080 for (var w = new Array(s), b = t; b < e; b++) { 11081 w = o.getItem(b, w); 11082 for (var S = Math.floor(b / n), M = b % n, I = 0; I < s; I++) { 11083 var T = r[I], 11084 D = a[T][S], 11085 A = this._dimValueGetter(w, T, b, I); 11086 D[M] = A; 11087 var C = c[T]; 11088 A < C[0] && (C[0] = A), A > C[1] && (C[1] = A) 11089 } 11090 if (!o.pure) { 11091 var L = u[b]; 11092 if (w && null == L) 11093 if (null != w.name) u[b] = L = w.name; 11094 else if (null != i) { 11095 var k = r[i], 11096 P = a[k][S]; 11097 if (P) { 11098 L = P[M]; 11099 var N = l[k].ordinalMeta; 11100 N && N.categories.length && (L = N.categories[L]) 11101 } 11102 } 11103 var O = null == w ? null : w.id; 11104 null == O && null != L && (d[L] = d[L] || 0, O = L, d[L] > 0 && (O += "__ec__" + d[L]), d[L]++), null != O && (h[b] = O) 11105 } 11106 }!o.persistent && o.clean && o.clean(), this._rawCount = this._count = e, this._extent = {}, ks(this) 11107 } 11108 }, lT.count = function() { return this._count }, lT.getIndices = function() { 11109 var t = this._indices; 11110 if (t) { 11111 var e = t.constructor, 11112 i = this._count; 11113 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) 11114 } else 11115 for (var n = new(e = As(this))(this.count()), o = 0; o < n.length; o++) n[o] = o; 11116 return n 11117 }, lT.get = function(t, e) { 11118 if (!(e >= 0 && e < this._count)) return NaN; 11119 var i = this._storage; 11120 if (!i[t]) return NaN; 11121 e = this.getRawIndex(e); 11122 var n = Math.floor(e / this._chunkSize), 11123 o = e % this._chunkSize; 11124 return i[t][n][o] 11125 }, lT.getByRawIndex = function(t, e) { 11126 if (!(e >= 0 && e < this._rawCount)) return NaN; 11127 var i = this._storage[t]; 11128 if (!i) return NaN; 11129 var n = Math.floor(e / this._chunkSize), 11130 o = e % this._chunkSize; 11131 return i[n][o] 11132 }, lT._getFast = function(t, e) { 11133 var i = Math.floor(e / this._chunkSize), 11134 n = e % this._chunkSize; 11135 return this._storage[t][i][n] 11136 }, lT.getValues = function(t, e) { 11137 var i = []; 11138 y(t) || (e = t, t = this.dimensions); 11139 for (var n = 0, o = t.length; n < o; n++) i.push(this.get(t[n], e)); 11140 return i 11141 }, lT.hasValue = function(t) { 11142 for (var e = this._dimensionsSummary.dataDimsOnCoord, i = this._dimensionInfos, n = 0, o = e.length; n < o; n++) 11143 if ("ordinal" !== i[e[n]].type && isNaN(this.get(e[n], t))) return !1; 11144 return !0 11145 }, lT.getDataExtent = function(t) { 11146 t = this.getDimension(t); 11147 var e = [1 / 0, -1 / 0]; 11148 if (!this._storage[t]) return e; 11149 var i, n = this.count(); 11150 if (!this._indices) return this._rawExtent[t].slice(); 11151 if (i = this._extent[t]) return i.slice(); 11152 for (var o = (i = e)[0], a = i[1], r = 0; r < n; r++) { 11153 var s = this._getFast(t, this.getRawIndex(r)); 11154 s < o && (o = s), s > a && (a = s) 11155 } 11156 return i = [o, a], this._extent[t] = i, i 11157 }, lT.getApproximateExtent = function(t) { return t = this.getDimension(t), this._approximateExtent[t] || this.getDataExtent(t) }, lT.setApproximateExtent = function(t, e) { e = this.getDimension(e), this._approximateExtent[e] = t.slice() }, lT.getCalculationInfo = function(t) { return this._calculationInfo[t] }, lT.setCalculationInfo = function(t, e) { tT(t) ? a(this._calculationInfo, t) : this._calculationInfo[t] = e }, lT.getSum = function(t) { 11158 var e = 0; 11159 if (this._storage[t]) 11160 for (var i = 0, n = this.count(); i < n; i++) { 11161 var o = this.get(t, i); 11162 isNaN(o) || (e += o) 11163 } 11164 return e 11165 }, lT.getMedian = function(t) { 11166 var e = []; 11167 this.each(t, function(t, i) { isNaN(t) || e.push(t) }); 11168 var i = [].concat(e).sort(function(t, e) { return t - e }), 11169 n = this.count(); 11170 return 0 === n ? 0 : n % 2 == 1 ? i[(n - 1) / 2] : (i[n / 2] + i[n / 2 - 1]) / 2 11171 }, lT.rawIndexOf = function(t, e) { var i = (t && this._invertedIndicesMap[t])[e]; return null == i || isNaN(i) ? -1 : i }, lT.indexOfName = function(t) { 11172 for (var e = 0, i = this.count(); e < i; e++) 11173 if (this.getName(e) === t) return e; 11174 return -1 11175 }, lT.indexOfRawIndex = function(t) { 11176 if (!this._indices) return t; 11177 if (t >= this._rawCount || t < 0) return -1; 11178 var e = this._indices, 11179 i = e[t]; 11180 if (null != i && i < this._count && i === t) return t; 11181 for (var n = 0, o = this._count - 1; n <= o;) { 11182 var a = (n + o) / 2 | 0; 11183 if (e[a] < t) n = a + 1; 11184 else { 11185 if (!(e[a] > t)) return a; 11186 o = a - 1 11187 } 11188 } 11189 return -1 11190 }, lT.indicesOfNearest = function(t, e, i) { 11191 var n = []; 11192 if (!this._storage[t]) return n; 11193 null == i && (i = 1 / 0); 11194 for (var o = Number.MAX_VALUE, a = -1, r = 0, s = this.count(); r < s; r++) { 11195 var l = e - this.get(t, r), 11196 u = Math.abs(l); 11197 l <= i && u <= o && ((u < o || l >= 0 && a < 0) && (o = u, a = l, n.length = 0), n.push(r)) 11198 } 11199 return n 11200 }, lT.getRawIndex = Ns, lT.getRawDataItem = function(t) { 11201 if (this._rawData.persistent) return this._rawData.getItem(this.getRawIndex(t)); 11202 for (var e = [], i = 0; i < this.dimensions.length; i++) { 11203 var n = this.dimensions[i]; 11204 e.push(this.get(n, t)) 11205 } 11206 return e 11207 }, lT.getName = function(t) { var e = this.getRawIndex(t); return this._nameList[e] || Ps(this, this._nameDimIdx, e) || "" }, lT.getId = function(t) { return Es(this, this.getRawIndex(t)) }, lT.each = function(t, e, i, n) { 11208 if (this._count) { 11209 "function" == typeof t && (n = i, i = e, e = t, t = []), i = i || n || this; 11210 for (var o = (t = f(Rs(t), this.getDimension, this)).length, a = 0; a < this.count(); a++) switch (o) { 11211 case 0: 11212 e.call(i, a); 11213 break; 11214 case 1: 11215 e.call(i, this.get(t[0], a), a); 11216 break; 11217 case 2: 11218 e.call(i, this.get(t[0], a), this.get(t[1], a), a); 11219 break; 11220 default: 11221 for (var r = 0, s = []; r < o; r++) s[r] = this.get(t[r], a); 11222 s[r] = a, e.apply(i, s) 11223 } 11224 } 11225 }, lT.filterSelf = function(t, e, i, n) { 11226 if (this._count) { 11227 "function" == typeof t && (n = i, i = e, e = t, t = []), i = i || n || this, t = f(Rs(t), this.getDimension, this); 11228 for (var o = this.count(), a = new(As(this))(o), r = [], s = t.length, l = 0, u = t[0], h = 0; h < o; h++) { 11229 var c, d = this.getRawIndex(h); 11230 if (0 === s) c = e.call(i, h); 11231 else if (1 === s) { 11232 var p = this._getFast(u, d); 11233 c = e.call(i, p, h) 11234 } else { 11235 for (var g = 0; g < s; g++) r[g] = this._getFast(u, d); 11236 r[g] = h, c = e.apply(i, r) 11237 } 11238 c && (a[l++] = d) 11239 } 11240 return l < o && (this._indices = a), this._count = l, this._extent = {}, this.getRawIndex = this._indices ? Os : Ns, this 11241 } 11242 }, lT.selectRange = function(t) { 11243 if (this._count) { 11244 var e = []; 11245 for (var i in t) t.hasOwnProperty(i) && e.push(i); 11246 var n = e.length; 11247 if (n) { 11248 var o = this.count(), 11249 a = new(As(this))(o), 11250 r = 0, 11251 s = e[0], 11252 l = t[s][0], 11253 u = t[s][1], 11254 h = !1; 11255 if (!this._indices) { 11256 var c = 0; 11257 if (1 === n) { 11258 for (var d = this._storage[e[0]], f = 0; f < this._chunkCount; f++) 11259 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++; 11260 h = !0 11261 } else if (2 === n) { 11262 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++) 11263 for (var p = d[f], _ = v[f], g = Math.min(this._count - f * this._chunkSize, this._chunkSize), m = 0; m < g; m++) { 11264 var w = p[m], 11265 b = _[m]; 11266 (w >= l && w <= u || isNaN(w)) && (b >= y && b <= x || isNaN(b)) && (a[r++] = c), c++ 11267 } 11268 h = !0 11269 } 11270 } 11271 if (!h) 11272 if (1 === n) 11273 for (m = 0; m < o; m++) { 11274 M = this.getRawIndex(m); 11275 ((w = this._getFast(s, M)) >= l && w <= u || isNaN(w)) && (a[r++] = M) 11276 } else 11277 for (m = 0; m < o; m++) { 11278 for (var S = !0, M = this.getRawIndex(m), f = 0; f < n; f++) { 11279 var I = e[f]; 11280 ((w = this._getFast(i, M)) < t[I][0] || w > t[I][1]) && (S = !1) 11281 } 11282 S && (a[r++] = this.getRawIndex(m)) 11283 } 11284 return r < o && (this._indices = a), this._count = r, this._extent = {}, this.getRawIndex = this._indices ? Os : Ns, this 11285 } 11286 } 11287 }, lT.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 }, lT.map = function(t, e, i, n) { 11288 i = i || n || this; 11289 var o = zs(this, t = f(Rs(t), this.getDimension, this)); 11290 o._indices = this._indices, o.getRawIndex = o._indices ? Os : Ns; 11291 for (var a = o._storage, r = [], s = this._chunkSize, l = t.length, u = this.count(), h = [], c = o._rawExtent, d = 0; d < u; d++) { 11292 for (var p = 0; p < l; p++) h[p] = this.get(t[p], d); 11293 h[l] = d; 11294 var g = e && e.apply(i, h); 11295 if (null != g) { 11296 "object" != typeof g && (r[0] = g, g = r); 11297 for (var m = this.getRawIndex(d), v = Math.floor(m / s), y = m % s, x = 0; x < g.length; x++) { 11298 var _ = t[x], 11299 w = g[x], 11300 b = c[_], 11301 S = a[_]; 11302 S && (S[v][y] = w), w < b[0] && (b[0] = w), w > b[1] && (b[1] = w) 11303 } 11304 } 11305 } 11306 return o 11307 }, lT.downSample = function(t, e, i, n) { 11308 for (var o = zs(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(As(this))(u), f = 0, p = 0; p < u; p += s) { 11309 s > u - p && (s = u - p, r.length = s); 11310 for (var g = 0; g < s; g++) { 11311 var m = this.getRawIndex(p + g), 11312 v = Math.floor(m / h), 11313 y = m % h; 11314 r[g] = l[v][y] 11315 } 11316 var x = i(r), 11317 _ = this.getRawIndex(Math.min(p + n(r, x) || 0, u - 1)), 11318 w = _ % h; 11319 l[Math.floor(_ / h)][w] = x, x < c[0] && (c[0] = x), x > c[1] && (c[1] = x), d[f++] = _ 11320 } 11321 return o._count = f, o._indices = d, o.getRawIndex = Os, o 11322 }, lT.getItemModel = function(t) { var e = this.hostModel; return new wo(this.getRawDataItem(t), e, e && e.ecModel) }, lT.diff = function(t) { var e = this; return new Ss(t ? t.getIndices() : [], this.getIndices(), function(e) { return Es(t, e) }, function(t) { return Es(e, t) }) }, lT.getVisual = function(t) { var e = this._visual; return e && e[t] }, lT.setV
11322isual = function(t, e) { 11323 if (tT(t)) 11324 for (var i in t) t.hasOwnProperty(i) && this.setVisual(i, t[i]); 11325 else this._visual = this._visual || {}, this._visual[t] = e 11326 }, lT.setLayout = function(t, e) { 11327 if (tT(t)) 11328 for (var i in t) t.hasOwnProperty(i) && this.setLayout(i, t[i]); 11329 else this._layout[t] = e 11330 }, lT.getLayout = function(t) { return this._layout[t] }, lT.getItemLayout = function(t) { return this._itemLayouts[t] }, lT.setItemLayout = function(t, e, i) { this._itemLayouts[t] = i ? a(this._itemLayouts[t] || {}, e) : e }, lT.clearItemLayouts = function() { this._itemLayouts.length = 0 }, lT.getItemVisual = function(t, e, i) { 11331 var n = this._itemVisuals[t], 11332 o = n && n[e]; 11333 return null != o || i ? o : this.getVisual(e) 11334 }, lT.setItemVisual = function(t, e, i) { 11335 var n = this._itemVisuals[t] || {}, 11336 o = this.hasItemVisual; 11337 if (this._itemVisuals[t] = n, tT(e)) 11338 for (var a in e) e.hasOwnProperty(a) && (n[a] = e[a], o[a] = !0); 11339 else n[e] = i, o[e] = !0 11340 }, lT.clearAllVisual = function() { this._visual = {}, this._itemVisuals = [], this.hasItemVisual = {} }; 11341 var uT = function(t) { t.seriesIndex = this.seriesIndex, t.dataIndex = this.dataIndex, t.dataType = this.dataType }; 11342 lT.setItemGraphicEl = function(t, e) { 11343 var i = this.hostModel; 11344 e && (e.dataIndex = t, e.dataType = this.dataType, e.seriesIndex = i && i.seriesIndex, "group" === e.type && e.traverse(uT, e)), this._graphicEls[t] = e 11345 }, lT.getItemGraphicEl = function(t) { return this._graphicEls[t] }, lT.eachItemGraphicEl = function(t, e) { d(this._graphicEls, function(i, n) { i && t && t.call(e, i, n) }) }, lT.cloneShallow = function(t) { 11346 if (!t) { 11347 var e = f(this.dimensions, this.getDimensionInfo, this); 11348 t = new sT(e, this.hostModel) 11349 } 11350 if (t._storage = this._storage, Ls(t, this), this._indices) { 11351 var i = this._indices.constructor; 11352 t._indices = new i(this._indices) 11353 } else t._indices = null; 11354 return t.getRawIndex = t._indices ? Os : Ns, t 11355 }, lT.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))) }) }, lT.TRANSFERABLE_METHODS = ["cloneShallow", "downSample", "map"], lT.CHANGABLE_METHODS = ["filterSelf", "selectRange"]; 11356 var hT = function(t, e) { return e = e || {}, Gs(e.coordDimensions || [], t, { dimsDef: e.dimensionsDefine || t.dimensionsDefine, encodeDef: e.encodeDefine || t.encodeDefine, dimCount: e.dimensionsCount, generateCoord: e.generateCoord, generateCoordCount: e.generateCoordCount }) }; 11357 qs.prototype.parse = function(t) { return t }, qs.prototype.getSetting = function(t) { return this._setting[t] }, qs.prototype.contain = function(t) { var e = this._extent; return t >= e[0] && t <= e[1] }, qs.prototype.normalize = function(t) { var e = this._extent; return e[1] === e[0] ? .5 : (t - e[0]) / (e[1] - e[0]) }, qs.prototype.scale = function(t) { var e = this._extent; return t * (e[1] - e[0]) + e[0] }, qs.prototype.unionExtent = function(t) { 11358 var e = this._extent; 11359 t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]) 11360 }, qs.prototype.unionExtentFromData = function(t, e) { this.unionExtent(t.getApproximateExtent(e)) }, qs.prototype.getExtent = function() { return this._extent.slice() }, qs.prototype.setExtent = function(t, e) { 11361 var i = this._extent; 11362 isNaN(t) || (i[0] = t), isNaN(e) || (i[1] = e) 11363 }, qs.prototype.isBlank = function() { return this._isBlank }, qs.prototype.setBlank = function(t) { this._isBlank = t }, qs.prototype.getLabel = null, Gi(qs), Zi(qs, { registerWhenExtend: !0 }), Ks.createByAxisModel = function(t) { 11364 var e = t.option, 11365 i = e.data, 11366 n = i && f(i, Js); 11367 return new Ks({ categories: n, needCollect: !n, deduplication: !1 !== e.dedplication }) 11368 }; 11369 var cT = Ks.prototype; 11370 cT.getOrdinal = function(t) { return $s(this).get(t) }, cT.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 = $s(this); return null == (e = n.get(t)) && (i ? (e = this.categories.length, this.categories[e] = t, n.set(t, e)) : e = NaN), e }; 11371 var dT = qs.prototype, 11372 fT = qs.extend({ type: "ordinal", init: function(t, e) { t && !y(t) || (t = new Ks({ 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), dT.contain.call(this, t) && null != this._ordinalMeta.categories[t] }, normalize: function(t) { return dT.normalize.call(this, this.parse(t)) }, scale: function(t) { return Math.round(dT.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 }
11372, niceTicks: B, niceExtent: B }); 11373 fT.create = function() { return new fT }; 11374 var pT = Ao, 11375 gT = Ao, 11376 mT = qs.extend({ 11377 type: "interval", 11378 _interval: 0, 11379 _intervalPrecision: 2, 11380 setExtent: function(t, e) { 11381 var i = this._extent; 11382 isNaN(t) || (i[0] = parseFloat(t)), isNaN(e) || (i[1] = parseFloat(e)) 11383 }, 11384 unionExtent: function(t) { 11385 var e = this._extent; 11386 t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]), mT.prototype.setExtent.call(this, e[0], e[1]) 11387 }, 11388 getInterval: function() { return this._interval }, 11389 setInterval: function(t) { this._interval = t, this._niceExtent = this._extent.slice(), this._intervalPrecision = tl(t) }, 11390 getTicks: function() { return nl(this._interval, this._extent, this._niceExtent, this._intervalPrecision) }, 11391 getLabel: function(t, e) { if (null == t) return ""; var i = e && e.precision; return null == i ? i = ko(t) || 0 : "auto" === i && (i = this._intervalPrecision), t = gT(t, i, !0), Fo(t) }, 11392 niceTicks: function(t, e, i) { 11393 t = t || 5; 11394 var n = this._extent, 11395 o = n[1] - n[0]; 11396 if (isFinite(o)) { 11397 o < 0 && (o = -o, n.reverse()); 11398 var a = Qs(n, t, e, i); 11399 this._intervalPrecision = a.intervalPrecision, this._interval = a.interval, this._niceExtent = a.niceTickExtent 11400 } 11401 }, 11402 niceExtent: function(t) { 11403 var e = this._extent; 11404 if (e[0] === e[1]) 11405 if (0 !== e[0]) { 11406 var i = e[0]; 11407 t.fixMax ? e[0] -= i / 2 : (e[1] += i / 2, e[0] -= i / 2) 11408 } else e[1] = 1; 11409 var n = e[1] - e[0]; 11410 isFinite(n) || (e[0] = 0, e[1] = 1), this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval); 11411 var o = this._interval; 11412 t.fixMin || (e[0] = gT(Math.floor(e[0] / o) * o)), t.fixMax || (e[1] = gT(Math.ceil(e[1] / o) * o)) 11413 } 11414 }); 11415 mT.create = function() { return new mT }; 11416 var vT = "__ec_stack_", 11417 yT = "undefined" != typeof Float32Array ? Float32Array : Array, 11418 xT = { 11419 seriesType: "bar", 11420 plan: QM(), 11421 reset: function(t) { 11422 if (dl(t) && fl(t)) { 11423 var e = t.getData(), 11424 i = t.coordinateSystem, 11425 n = i.getBaseAxis(), 11426 o = i.getOtherAxis(n), 11427 a = e.mapDimension(o.dim), 11428 r = e.mapDimension(n.dim), 11429 s = o.isHorizontal(), 11430 l = s ? 0 : 1, 11431 u = hl(ll([t]), n, t).width; 11432 return u > .5 || (u = .5), { 11433 progress: function(t, e) { 11434 for (var h, c = new yT(2 * t.count), d = [], f = [], p = 0; null != (h = t.next());) f[l] = e.get(a, h), f[1 - l] = e.get(r, h), d = i.dataToPoint(f, null, d), c[p++] = d[0], c[p++] = d[1]; 11435 e.setLayout({ largePoints: c, barWidth: u, valueAxisStart: pl(n, o, !1), valueAxisHorizontal: s }) 11436 } 11437 } 11438 } 11439 } 11440 }, 11441 _T = mT.prototype, 11442 wT = Math.ceil, 11443 bT = Math.floor, 11444 ST = function(t, e, i, n) { 11445 for (; i < n;) { 11446 var o = i + n >>> 1; 11447 t[o][1] < e ? i = o + 1 : n = o 11448 } 11449 return i 11450 }, 11451 MT = mT.extend({ 11452 type: "time", 11453 getLabel: function(t) { 11454 var e = this._stepLvl, 11455 i = new Date(t);
11456 return qo(e[0], i, this.getSetting("useUTC")) 11457 }, 11458 niceExtent: function(t) { 11459 var e = this._extent; 11460 if (e[0] === e[1] && (e[0] -= 864e5, e[1] += 864e5), e[1] === -1 / 0 && e[0] === 1 / 0) { 11461 var i = new Date; 11462 e[1] = +new Date(i.getFullYear(), i.getMonth(), i.getDate()), e[0] = e[1] - 864e5 11463 } 11464 this.niceTicks(t.splitNumber, t.minInterval, t.maxInterval); 11465 var n = this._interval; 11466 t.fixMin || (e[0] = Ao(bT(e[0] / n) * n)), t.fixMax || (e[1] = Ao(wT(e[1] / n) * n)) 11467 }, 11468 niceTicks: function(t, e, i) { 11469 t = t || 10; 11470 var n = this._extent, 11471 o = n[1] - n[0], 11472 a = o / t; 11473 null != e && a < e && (a = e), null != i && a > i && (a = i); 11474 var r = IT.length, 11475 s = ST(IT, a, 0, r), 11476 l = IT[Math.min(s, r - 1)], 11477 u = l[1]; 11478 "year" === l[0] && (u *= Vo(o / u / t, !0)); 11479 var h = this.getSetting("useUTC") ? 0 : 60 * new Date(+n[0] || +n[1]).getTimezoneOffset() * 1e3, 11480 c = [Math.round(wT((n[0] - h) / u) * u + h), Math.round(bT((n[1] - h) / u) * u + h)]; 11481 il(c, n), this._stepLvl = l, this._interval = u, this._niceExtent = c 11482 }, 11483 parse: function(t) { return +Ro(t) } 11484 }); 11485 d(["contain", "normalize"], function(t) { MT.prototype[t] = function(e) { return _T[t].call(this, this.parse(e)) } }); 11486 var IT = [ 11487 ["hh:mm:ss", 1e3], 11488 ["hh:mm:ss", 5e3], 11489 ["hh:mm:ss", 1e4], 11490 ["hh:mm:ss", 15e3], 11491 ["hh:mm:ss", 3e4], 11492 ["hh:mm\nMM-dd", 6e4], 11493 ["hh:mm\nMM-dd", 3e5], 11494 ["hh:mm\nMM-dd", 6e5], 11495 ["hh:mm\nMM-dd", 9e5], 11496 ["hh:mm\nMM-dd", 18e5], 11497 ["hh:mm\nMM-dd", 36e5], 11498 ["hh:mm\nMM-dd", 72e5], 11499 ["hh:mm\nMM-dd", 216e5], 11500 ["hh:mm\nMM-dd", 432e5], 11501 ["MM-dd\nyyyy", 864e5], 11502 ["MM-dd\nyyyy", 1728e5], 11503 ["MM-dd\nyyyy", 2592e5], 11504 ["MM-dd\nyyyy", 3456e5], 11505 ["MM-dd\nyyyy", 432e6], 11506 ["MM-dd\nyyyy", 5184e5], 11507 ["week", 6048e5], 11508 ["MM-dd\nyyyy", 864e6], 11509 ["week", 12096e5], 11510 ["week", 18144e5], 11511 ["month", 26784e5], 11512 ["week", 36288e5], 11513 ["month", 53568e5], 11514 ["week", 36288e5], 11515 ["quarter", 8208e6], 11516 ["month", 107136e5], 11517 ["month", 13392e6], 11518 ["half-year", 16416e6], 11519 ["month", 214272e5], 11520 ["month", 26784e6], 11521 ["year", 32832e6] 11522 ]; 11523 MT.create = function(t) { return new MT({ useUTC: t.ecModel.get("useUTC") }) }; 11524 var TT = qs.prototype, 11525 DT = mT.prototype, 11526 AT = ko, 11527 CT = Ao, 11528 LT = Math.floor, 11529 kT = Math.ceil, 11530 PT = Math.pow, 11531 NT = Math.log, 11532 OT = qs.extend({ 11533 type: "log", 11534 base: 10, 11535 $constructor: function() { qs.apply(this, arguments), this._originalScale = new mT }, 11536 getTicks: function() { 11537 var t = this._originalScale, 11538 e = this._extent, 11539 i = t.getExtent(); 11540 return f(DT.getTicks.call(this), function(n) { var o = Ao(PT(this.base, n)); return o = n === e[0] && t.__fixMin ? gl(o, i[0]) : o, o = n === e[1] && t.__fixMax ? gl(o, i[1]) : o }, this) 11541 }, 11542 getLabel: DT.getLabel, 11543 scale: function(t) { return t = TT.scale.call(this, t), PT(this.base, t) }, 11544 setExtent: function(t, e) { 11545 var i = this.base; 11546 t = NT(t) / NT(i), e = NT(e) / NT(i), DT.setExtent.call(this, t, e) 11547 }, 11548 getExtent: function() { 11549 var t = this.base, 11550 e = TT.getExtent.call(this); 11551 e[0] = PT(t, e[0]), e[1] = PT(t, e[1]); 11552 var i = this._originalScale, 11553 n = i.getExtent(); 11554 return i.__fixMin && (e[0] = gl(e[0], n[0])), i.__fixMax && (e[1] = gl(e[1], n[1])), e 11555 }, 11556 unionExtent: function(t) { 11557 this._originalScale.unionExtent(t); 11558 var e = this.base; 11559 t[0] = NT(t[0]) / NT(e), t[1] = NT(t[1]) / NT(e), TT.unionExtent.call(this, t) 11560 }, 11561 unionExtentFromData: function(t, e) { this.unionExtent(t.getApproximateExtent(e)) }, 11562 niceTicks: function(t) { 11563 t = t || 10; 11564 var e = this._extent, 11565 i = e[1] - e[0]; 11566 if (!(i === 1 / 0 || i <= 0)) { 11567 var n = zo(i); 11568 for (t / i * n <= .5 && (n *= 10); !isNaN(n) && Math.abs(n) < 1 && Math.abs(n) > 0;) n *= 10;
11569 var o = [Ao(kT(e[0] / n) * n), Ao(LT(e[1] / n) * n)]; 11570 this._interval = n, this._niceExtent = o 11571 } 11572 }, 11573 niceExtent: function(t) { 11574 DT.niceExtent.call(this, t); 11575 var e = this._originalScale; 11576 e.__fixMin = t.fixMin, e.__fixMax = t.fixMax 11577 } 11578 }); 11579 d(["contain", "normalize"], function(t) { OT.prototype[t] = function(e) { return e = NT(e) / NT(this.base), TT[t].call(this, e) } }), OT.create = function() { return new OT }; 11580 var ET = { 11581 getMin: function(t) { 11582 var e = this.option, 11583 i = t || null == e.rangeStart ? e.min : e.rangeStart; 11584 return this.axis && null != i && "dataMin" !== i && "function" != typeof i && !I(i) && (i = this.axis.scale.parse(i)), i 11585 }, 11586 getMax: function(t) { 11587 var e = this.option, 11588 i = t || null == e.rangeEnd ? e.max : e.rangeEnd; 11589 return this.axis && null != i && "dataMax" !== i && "function" != typeof i && !I(i) && (i = this.axis.scale.parse(i)), i 11590 }, 11591 getNeedCrossZero: function() { var t = this.option; return null == t.rangeStart && null == t.rangeEnd && !t.scale }, 11592 getCoordSysModel: B, 11593 setRange: function(t, e) { this.option.rangeStart = t, this.option.rangeEnd = e }, 11594 resetRange: function() { this.option.rangeStart = this.option.rangeEnd = null } 11595 }, 11596 RT = En({ 11597 type: "triangle", 11598 shape: { cx: 0, cy: 0, width: 0, height: 0 }, 11599 buildPath: function(t, e) { 11600 var i = e.cx, 11601 n = e.cy, 11602 o = e.width / 2, 11603 a = e.height / 2; 11604 t.moveTo(i, n - a), t.lineTo(i + o, n + a), t.lineTo(i - o, n + a), t.closePath() 11605 } 11606 }), 11607 zT = En({ 11608 type: "diamond", 11609 shape: { cx: 0, cy: 0, width: 0, height: 0 }, 11610 buildPath: function(t, e) { 11611 var i = e.cx, 11612 n = e.cy, 11613 o = e.width / 2, 11614 a = e.height / 2; 11615 t.moveTo(i, n - a), t.lineTo(i + o, n), t.lineTo(i, n + a), t.lineTo(i - o, n), t.closePath() 11616 } 11617 }), 11618 BT = En({ 11619 type: "pin", 11620 shape: { x: 0, y: 0, width: 0, height: 0 }, 11621 buildPath: function(t, e) { 11622 var i = e.x, 11623 n = e.y, 11624 o = e.width / 5 * 3, 11625 a = Math.max(o, e.height), 11626 r = o / 2, 11627 s = r * r / (a - r), 11628 l = n - a + r + s, 11629 u = Math.asin(s / r), 11630 h = Math.cos(u) * r, 11631 c = Math.sin(u), 11632 d = Math.cos(u), 11633 f = .6 * r, 11634 p = .7 * r; 11635 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() 11636 } 11637 }), 11638 VT = En({ 11639 type: "arrow", 11640 shape: { x: 0, y: 0, width: 0, height: 0 }, 11641 buildPath: function(t, e) { 11642 var i = e.height, 11643 n = e.width, 11644 o = e.x, 11645 a = e.y, 11646 r = n / 3 * 2; 11647 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() 11648 } 11649 }), 11650 GT = { 11651 line: function(t, e, i, n, o) { o.x1 = t, o.y1 = e + n / 2, o.x2 = t + i, o.y2 = e + n / 2 }, 11652 rect: function(t, e, i, n, o) { o.x = t, o.y = e, o.width = i, o.height = n }, 11653 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 }, 11654 square: function(t, e, i, n, o) { 11655 var a = Math.min(i, n); 11656 o.x = t, o.y = e, o.width = a, o.height = a 11657 }, 11658 circle: function(t, e, i, n, o) { o.cx = t + i / 2, o.cy = e + n / 2, o.r = Math.min(i, n) / 2 }, 11659 diamond: function(t, e, i, n, o) { o.cx = t + i / 2, o.cy = e + n / 2, o.width = i, o.height = n }, 11660 pin: function(t, e, i, n, o) { o.x = t + i / 2, o.y = e + n / 2, o.width = i, o.height = n }, 11661 arrow: function(t, e, i, n, o) { o.x = t + i / 2, o.y = e + n / 2, o.width = i, o.height = n }, 11662 triangle: function(t, e, i, n, o) { o.cx = t + i / 2, o.cy = e + n / 2, o.width = i, o.height = n } 11663 }, 11664 WT = {}; 11665 d({ line: MS, rect: SS, roundRect: SS, square: SS, circle: pS, diamond: zT, pin: BT, arrow: VT, triangle: RT }, function(t, e) { WT[e] = new t }); 11666 var FT = En({ 11667 type: "symbol", 11668 shape: { symbolType: "", x: 0, y: 0, width: 0, height: 0 }, 11669 beforeBrush: function() { var t = this.style; "pin" === this.shape.symbolType && "inside" === t.textPosition && (t.textPosition = ["50%", "40%"], t.textAlign = "center", t.textVerticalAlign = "middle") }, 11670 buildPath: function(t, e, i) { 11671 var n = e.symbolType, 11672 o = WT[n]; 11673 "none" !== e.symbolType && (o || (o = WT[n = "rect"]), GT[n](e.x, e.y, e.width, e.height, o.shape), o.buildPath(t, o.shape, i)) 11674 } 11675 }), 11676 HT = { isDimensionStacked: Zs, enableDataStack: Hs, getStackedDimension: Us }, 11677 ZT = (Object.freeze || Object)({ 11678 createList: function(t) { return Xs(t.getSource(), t) },
11679 getLayoutRect: Qo, 11680 dataStack: HT, 11681 createScale: function(t, e) { 11682 var i = e; 11683 wo.isInstance(e) || h(i = new wo(e), ET); 11684 var n = xl(i); 11685 return n.setExtent(t[0], t[1]), yl(n, i), n 11686 }, 11687 mixinAxisModelCommonMethods: function(t) { h(t, ET) }, 11688 completeDimensions: Gs, 11689 createDimensions: hT, 11690 createSymbol: Tl 11691 }), 11692 UT = 1e-8; 11693 Cl.prototype = { 11694 constructor: Cl, 11695 properties: null, 11696 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 && (rn(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 $t(i[0], i[1], n[0] - i[0], n[1] - i[1]) }, 11697 contain: function(t) { 11698 var e = this.getBoundingRect(), 11699 i = this.geometries; 11700 if (!e.contain(t[0], t[1])) return !1; 11701 t: for (var n = 0, o = i.length; n < o; n++) 11702 if ("polygon" === i[n].type) { 11703 var a = i[n].exterior, 11704 r = i[n].interiors; 11705 if (Al(a, t[0], t[1])) { 11706 for (var s = 0; s < (r ? r.length : 0); s++) 11707 if (Al(r[s])) continue t; 11708 return !0 11709 } 11710 } 11711 return !1 11712 }, 11713 transformTo: function(t, e, i, n) { 11714 var o = this.getBoundingRect(), 11715 a = o.width / o.height; 11716 i ? n || (n = i / a) : i = a * n; 11717 for (var r = new $t(t, e, i, n), s = o.calculateTransform(r), l = this.geometries, u = 0; u < l.length; u++) 11718 if ("polygon" === l[u].type) { 11719 for (var h = l[u].exterior, c = l[u].interiors, d = 0; d < h.length; d++) Q(h[d], h[d], s); 11720 for (var f = 0; f < (c ? c.length : 0); f++) 11721 for (d = 0; d < c[f].length; d++) Q(c[f][d], c[f][d], s) 11722 }(o = this._rect).copy(r), this.center = [o.x + o.width / 2, o.y + o.height / 2] 11723 } 11724 }; 11725 var XT = function(t) { 11726 return Ll(t), f(g(t.features, function(t) { return t.geometry && t.properties && t.geometry.coordinates.length > 0 }), function(t) { 11727 var e = t.properties, 11728 i = t.geometry, 11729 n = i.coordinates, 11730 o = []; 11731 "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) }) }); 11732 var a = new Cl(e.name, o, e.cp); 11733 return a.properties = e, a 11734 }) 11735 }, 11736 jT = Ni(), 11737 YT = [0, 1], 11738 qT = function(t, e, i) { this.dim = t, this.scale = e, this._extent = i || [0, 0], this.inverse = !1, this.onBand = !1 }; 11739 qT.prototype = { 11740 constructor: qT, 11741 contain: function(t) { 11742 var e = this._extent, 11743 i = Math.min(e[0], e[1]), 11744 n = Math.max(e[0], e[1]); 11745 return t >= i && t <= n 11746 }, 11747 containData: function(t) { return this.contain(this.dataToCoord(t)) }, 11748 getExtent: function() { return this._extent.slice() }, 11749 getPixelPrecision: function(t) { return Po(t || this.scale.getExtent(), this._extent) }, 11750 setExtent: function(t, e) { 11751 var i = this._extent; 11752 i[0] = t, i[1] = e 11753 }, 11754 dataToCoord: function(t, e) { 11755 var i = this._extent, 11756 n = this.scale; 11757 return t = n.normalize(t), this.onBand && "ordinal" === n.type && jl(i = i.slice(), n.count()), To(t, YT, i, e) 11758 }, 11759 coordToData: function(t, e) { 11760 var i = this._extent, 11761 n = this.scale; 11762 this.onBand && "ordinal" === n.type && jl(i = i.slice(), n.count()); 11763 var o = To(t, i, YT, e); 11764 return this.scale.scale(o) 11765 }, 11766 pointToData: function(t, e) {}, 11767 getTicksCoords: function(t) { 11768 var e = (t = t || {}).tickModel || this.getTickModel(), 11769 i = Nl(this, e), 11770 n = f(i.ticks, function(t) { return { coord: this.dataToCoord(t), tickValue: t } }, this), 11771 o = e.get("alignWithLabel"); 11772 return Yl(this, n, i.tickCategoryInterval, o, t.clamp), n 11773 }, 11774 getViewLabels: function() { return Pl(this).labels }, 11775 getLabelModel: function() { return this.model.getModel("axisLabel") }, 11776 getTickModel: function() { return this.model.getModel("axisTick") }, 11777 getBandWidth: function() { 11778 var t = this._extent, 11779 e = this.scale.getExtent(), 11780 i = e[1] - e[0] + (this.onBand ? 1 : 0); 11781 0 === i && (i = 1); 11782 var n = Math.abs(t[1] - t[0]); 11783 return Math.abs(n) / i 11784 }, 11785 isHorizontal: null, 11786 getRotate: null, 11787 calculateCategoryInterval: function() { return Fl(this) } 11788 }; 11789 var KT = XT, 11790 $T = {}; 11791 d(["map", "each", "filter", "indexOf", "inherits", "reduce", "filter", "bind", "curry", "isArray", "isString", "isObject", "isFunction", "extend", "defaults", "clone", "merge"], function(t) { $T[t] = x_[t] }), KM.extend({ type: "series.line", dependencies: ["grid", "polar"], getInitialData: function(t, e) { return Xs(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 } }); 11792 var JT = Kl.prototype, 11793 QT = Kl.getSymbolSize = function(t, e) { var i = t.getItemVisual(e, "symbolSize"); return i instanceof Array ? i.slice() : [+i, +i] }; 11794 JT._createSymbol = function(t, e, i, n, o) { 11795 this.removeAll(); 11796 var a = Tl(t, -1, -1, 2, 2, e.getItemVisual(i, "color"), o); 11797 a.attr({ z2: 100, culling: !0, scale: $l(n) }), a.drift = Jl, this._symbolType = t, this.add(a) 11798 }, JT.stopSymbolAnimation = function(t) { this.childAt(0).stopAnimation(t) }, JT.getSymbolPath = function() { return this.childAt(0) }, JT.getScale = function() { return this.childAt(0).scale }, JT.highlight = function() { this.childAt(0).trigger("emphasis") }, JT.downplay = function() { this.childAt(0).trigger("normal") }, JT.setZ = function(t, e) { 11799 var i = this.childAt(0); 11800 i.zlevel = t, i.z = e 11801 }, JT.setDraggable = function(t) { 11802 var e = this.childAt(0); 11803 e.draggable = t, e.cursor = t ? "move" : "pointer" 11804 }, JT.updateData = function(t, e, i) { 11805 this.silent = !1; 11806 var n = t.getItemVisual(e, "symbol") || "circle", 11807 o = t.hostModel, 11808 a = QT(t, e), 11809 r = n !== this._symbolType; 11810 if (r) { 11811 var s = t.getItemVisual(e, "symbolKeepAspect"); 11812 this._createSymbol(n, t, e, a, s) 11813 } else(l = this.childAt(0)).silent = !1, fo(l, { scale: $l(a) }, o, e); 11814 if (this._updateCommon(t, e, a, i), r) { 11815 var l = this.childAt(0), 11816 u = i && i.fadeIn, 11817 h = { scale: l.scale.slice() }; 11818 u && (h.style = { opacity: l.style.opacity }), l.scale = [0, 0], u && (l.style.opacity = 0), po(l, h, o, e) 11819 } 11820 this._seriesModel = o 11821 }; 11822 var tD = ["itemStyle"], 11823 eD = ["emphasis", "itemStyle"], 11824 iD = ["label"], 11825 nD = ["emphasis", "label"]; 11826 JT._updateCommon = function(t, e, i, n) { 11827 var o = this.childAt(0), 11828 r = t.hostModel, 11829 s = t.getItemVisual(e, "color"); 11830 "image" !== o.type && o.useStyle({ strokeNoScale: !0 }); 11831 var l = n && n.itemStyle, 11832 u = n && n.hoverItemStyle, 11833 h = n && n.symbolRotate, 11834 c = n && n.symbolOffset, 11835 d = n && n.labelModel, 11836 f = n && n.hoverLabelModel, 11837 p = n && n.hoverAnimation, 11838 g = n && n.cursorStyle; 11839 if (!n || t.hasItemOption) { 11840 var m = n && n.itemModel ? n.itemModel : t.getItemModel(e); 11841 l = m.getModel(tD).getItemStyle(["color"]), u = m.getModel(eD).getItemStyle(), h = m.getShallow("symbolRotate"), c = m.getShallow("symbolOffset"), d = m.getModel(iD), f = m.getModel(nD), p = m.getShallow("hoverAnimation"), g = m.getShallow("cursor") 11842 } else u = a({}, u); 11843 var v = o.style; 11844 o.attr("rotation", (h || 0) * Math.PI / 180 || 0), c && o.attr("position", [Do(c[0], i[0]), Do(c[1], i[1])]), g && o.attr("cursor", g), o.setColor(s, n && n.symbolInnerColor), o.setStyle(l); 11845 var y = t.getItemVisual(e, "opacity"); 11846 null != y && (v.opacity = y); 11847 var x = t.getItemVisual(e, "liftZ"), 11848 _ = o.__z2Origin; 11849 null != x ? null == _ && (o.__z2Origin = o.z2, o.z2 += x) : null != _ && (o.z2 = _, o.__z2Origin = null); 11850 var w = n && n.useNameLabel; 11851 io(v, u, d, f, { labelFetcher: r, labelDataIndex: e, defaultText: function(e, i) { return w ? t.getName(e) : ql(t, e) }, isRectText: !0, autoColor: s }), o.off("mouseover").off("mouseout").off("emphasis").off("normal"), o.hoverStyle = u, eo(o); 11852 var b = $l(i); 11853 if (p && r.isAnimationEnabled()) { 11854 var S = function() { 11855 if (!this.incremental) { 11856 var t = b[1] / b[0]; 11857 this.animateTo({ scale: [Math.max(1.1 * b[0], b[0] + 3), Math.max(1.1 * b[1], b[1] + 3 * t)] }, 400, "elasticOut") 11858 } 11859 }, 11860 M = function() { this.incremental || this.animateTo({ scale: b }, 400, "elasticOut") }; 11861 o.on("mouseover", S).on("mouseout", M).on("emphasis", S).on("normal", M) 11862 } 11863 }, JT.fadeOut = function(t, e) { 11864 var i = this.childAt(0); 11865 this.silent = i.silent = !0, !(e && e.keepLabel) && (i.style.text = null), fo(i, { style: { opacity: 0 }, scale: [0, 0] }, this._seriesModel, this.dataIndex, t) 11866 }, u(Kl, sw); 11867 var oD = Ql.prototype; 11868 oD.updateData = function(t, e) { 11869 e = eu(e); 11870 var i = this.group, 11871 n = t.hostModel, 11872 o = this._data, 11873 a = this._symbolCtor, 11874 r = iu(t); 11875 o || i.removeAll(), t.diff(o).add(function(n) { 11876 var o = t.getItemLayout(n); 11877 if (tu(t, o, n, e)) { 11878 var s = new a(t, n, r); 11879 s.attr("position", o), t.setItemGraphicEl(n, s), i.add(s) 11880 } 11881 }).update(function(s, l) { 11882 var u = o.getItemGraphicEl(l), 11883 h = t.getItemLayout(s); 11884 tu(t, h, s, e) ? (u ? (u.updateData(t, s, r), fo(u, { position: h }, n)) : (u = new a(t, s)).attr("position", h), i.add(u), t.setItemGraphicEl(s, u)) : i.remove(u) 11885 }).remove(function(t) { 11886 var e = o.getItemGraphicEl(t); 11887 e && e.fadeOut(function() { i.remove(e) }) 11888 }).execute(), this._data = t 11889 }, oD.isPersistent = function() { return !0 }, oD.updateLayout = function() { 11890 var t = this._data; 11891 t && t.eachItemGraphicEl(function(e, i) { 11892 var n = t.getItemLayout(i); 11893 e.attr("position", n) 11894 }) 11895 }, oD.incrementalPrepareUpdate = function(t) { this._seriesScope = iu(t), this._data = null, this.group.removeAll() }, oD.incrementalUpdate = function(t, e, i) { 11896 i = eu(i); 11897 for (var n = t.start; n < t.end; n++) { 11898 var o = e.getItemLayout(n); 11899 if (tu(e, o, n, i)) { 11900 var a = new this._symbolCtor(e, n, this._seriesScope); 11901 a.traverse(function(t) { t.isGroup || (t.incremental = t.useHoverLayer = !0) }), a.attr("position", o), this.group.add(a), e.setItemGraphicEl(n, a) 11902 } 11903 } 11904 }, oD.remove = function(t) { 11905 var e = this.group, 11906 i = this._data; 11907 i && t ? i.eachItemGraphicEl(function(t) { t.fadeOut(function() { e.remove(t) }) }) : e.removeAll() 11908 }; 11909 var aD = function(t, e, i, n, o, a, r, s) { 11910 for (var l = ru(t, e), u = [], h = [], c = [], d = [], f = [], p
11910= [], g = [], m = nu(o, e, r), v = nu(a, t, s), y = 0; y < l.length; y++) { 11911 var x = l[y], 11912 _ = !0; 11913 switch (x.cmd) { 11914 case "=": 11915 var w = t.getItemLayout(x.idx), 11916 b = e.getItemLayout(x.idx1); 11917 (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)); 11918 break; 11919 case "+": 11920 S = x.idx; 11921 u.push(o.dataToPoint([e.get(m.dataDimsForPoint[0], S), e.get(m.dataDimsForPoint[1], S)])), h.push(e.getItemLayout(S).slice()), c.push(au(m, o, e, S)), d.push(n[S]), g.push(e.getRawIndex(S)); 11922 break; 11923 case "-": 11924 var S = x.idx, 11925 M = t.getRawIndex(S); 11926 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(au(v, a, t, S)), g.push(M)) : _ = !1 11927 } 11928 _ && (f.push(x), p.push(p.length)) 11929 } 11930 p.sort(function(t, e) { return g[t] - g[e] }); 11931 for (var I = [], T = [], D = [], A = [], C = [], y = 0; y < p.length; y++) { 11932 S = p[y]; 11933 I[y] = u[S], T[y] = h[S], D[y] = c[S], A[y] = d[S], C[y] = f[S] 11934 } 11935 return { current: I, next: T, stackedOnCurrent: D, stackedOnNext: A, status: C } 11936 }, 11937 rD = tt, 11938 sD = et, 11939 lD = Z, 11940 uD = G, 11941 hD = [], 11942 cD = [], 11943 dD = [], 11944 fD = In.extend({ 11945 type: "ec-polyline", 11946 shape: { points: [], smooth: 0, smoothConstraint: !0, smoothMonotone: null, connectNulls: !1 }, 11947 style: { fill: null, stroke: "#000" }, 11948 brush: mS(In.prototype.brush), 11949 buildPath: function(t, e) { 11950 var i = e.points, 11951 n = 0, 11952 o = i.length, 11953 a = cu(i, e.smoothConstraint); 11954 if (e.connectNulls) { for (; o > 0 && su(i[o - 1]); o--); for (; n < o && su(i[n]); n++); } 11955 for (; n < o;) n += lu(t, i, n, o, o, 1, a.min, a.max, e.smooth, e.smoothMonotone, e.connectNulls) + 1 11956 } 11957 }), 11958 pD = In.extend({ 11959 type: "ec-polygon", 11960 shape: { points: [], stackedOnPoints: [], smooth: 0, stackedOnSmooth: 0, smoothConstraint: !0, smoothMonotone: null, connectNulls: !1 }, 11961 brush: mS(In.prototype.brush), 11962 buildPath: function(t, e) { 11963 var i = e.points, 11964 n = e.stackedOnPoints, 11965 o = 0, 11966 a = i.length, 11967 r = e.smoothMonotone, 11968 s = cu(i, e.smoothConstraint), 11969 l = cu(n, e.smoothConstraint); 11970 if (e.connectNulls) { for (; a > 0 && su(i[a - 1]); a--); for (; o < a && su(i[o]); o++); } 11971 for (; o < a;) { 11972 var u = lu(t, i, o, a, a, 1, s.min, s.max, e.smooth, r, e.connectNulls); 11973 lu(t, n, o + u - 1, u, a, -1, l.min, l.max, e.stackedOnSmooth, r, e.connectNulls), o += u + 1, t.closePath() 11974 } 11975 } 11976 }); 11977 gr.extend({ 11978 type: "line", 11979 init: function() { 11980 var t = new sw, 11981 e = new Ql; 11982 this.group.add(e.group), this._symbolDraw = e, this._lineGroup = t 11983 }, 11984 render: function(t, e, i) { 11985 var n = t.coordinateSystem, 11986 o = this.group, 11987 a = t.getData(), 11988 s = t.getModel("lineStyle"), 11989 l = t.getModel("areaStyle"), 11990 u = a.mapArray(a.getItemLayout), 11991 h = "polar" === n.type, 11992 c = this._coordSys, 11993 d = this._symbolDraw, 11994 f = this._polyline, 11995 p = this._polygon, 11996 g = this._lineGroup, 11997 m = t.get("animation"), 11998 v = !l.isEmpty(), 11999 y = l.get("origin"), 12000 x = gu(n, a, nu(n, a, y)), 12001 _ = t.get("showSymbol"), 12002 w = _ && !h && wu(t, a, n), 12003 b = this._data; 12004 b && b.eachItemGraphicEl(function(t, e) { t.__temp && (o.remove(t), b.setItemGraphicEl(e, null)) }), _ || d.remove(), o.add(g); 12005 var S = !h && t.get("step"); 12006 f && c.type === n.type && S === this._step ? (v && !p ? p
12006= this._newPolygon(u, x, n, m) : p && !v && (g.remove(p), p = this._polygon = null), g.setClipPath(yu(n, !1, !1, t)), _ && d.updateData(a, { isIgnore: w, clipShape: yu(n, !1, !0, t) }), a.eachItemGraphicEl(function(t) { t.stopAnimation(!0) }), du(this._stackedOnPoints, x) && du(this._points, u) || (m ? this._updateAnimation(a, x, n, i, S, y) : (S && (u = xu(u, n, S), x = xu(x, n, S)), f.setShape({ points: u }), p && p.setShape({ points: u, stackedOnPoints: x })))) : (_ && d.updateData(a, { isIgnore: w, clipShape: yu(n, !1, !0, t) }), S && (u = xu(u, n, S), x = xu(x, n, S)), f = this._newPolyline(u, n, m), v && (p = this._newPolygon(u, x, n, m)), g.setClipPath(yu(n, !0, !1, t))); 12007 var M = _u(a, n) || a.getVisual("color"); 12008 f.useStyle(r(s.getLineStyle(), { fill: "none", stroke: M, lineJoin: "bevel" })); 12009 var I = t.get("smooth"); 12010 if (I = fu(t.get("smooth")), f.setShape({ smooth: I, smoothMonotone: t.get("smoothMonotone"), connectNulls: t.get("connectNulls") }), p) { 12011 var T = a.getCalculationInfo("stackedOnSeries"), 12012 D = 0; 12013 p.useStyle(r(l.getAreaStyle(), { fill: M, opacity: .7, lineJoin: "bevel" })), T && (D = fu(T.get("smooth"))), p.setShape({ smooth: I, stackedOnSmooth: D, smoothMonotone: t.get("smoothMonotone"), connectNulls: t.get("connectNulls") }) 12014 } 12015 this._data = a, this._coordSys = n, this._stackedOnPoints = x, this._points = u, this._step = S, this._valueOrigin = y 12016 }, 12017 dispose: function() {}, 12018 highlight: function(t, e, i, n) { 12019 var o = t.getData(), 12020 a = Pi(o, n); 12021 if (!(a instanceof Array) && null != a && a >= 0) { 12022 var r = o.getItemGraphicEl(a); 12023 if (!r) { 12024 var s = o.getItemLayout(a); 12025 if (!s) return; 12026 (r = new Kl(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) 12027 } 12028 r.highlight() 12029 } else gr.prototype.highlight.call(this, t, e, i, n) 12030 }, 12031 downplay: function(t, e, i, n) { 12032 var o = t.getData(), 12033 a = Pi(o, n); 12034 if (null != a && a >= 0) { 12035 var r = o.getItemGraphicEl(a); 12036 r && (r.__temp ? (o.setItemGraphicEl(a, null), this.group.remove(r)) : r.downplay()) 12037 } else gr.prototype.downplay.call(this, t, e, i, n) 12038 }, 12039 _newPolyline: function(t) { var e = this._polyline; return e && this._lineGroup.remove(e), e = new fD({ shape: { points: t }, silent: !0, z2: 10 }), this._lineGroup.add(e), this._polyline = e, e }, 12040 _newPolygon: function(t, e) { var i = this._polygon; return i && this._lineGroup.remove(i), i = new pD({ shape: { points: t, stackedOnPoints: e }, silent: !0 }), this._lineGroup.add(i), this._polygon = i, i }, 12041 _updateAnimation: function(t, e, i, n, o, a) { 12042 var r = this._polyline, 12043 s = this._polygon, 12044 l = t.hostModel, 12045 u = aD(this._data, t, this._stackedOnPoints, e, this._coordSys, i, this._valueOrigin, a), 12046 h = u.current, 12047 c = u.stackedOnCurrent, 12048 d = u.next, 12049 f = u.stackedOnNext; 12050 o && (h = xu(u.current, i, o), c = xu(u.stackedOnCurrent, i, o), d = xu(u.next, i, o), f = xu(u.stackedOnNext, i, o)), r.shape.__points = u.current, r.shape.points = h, fo(r, { shape: { points: d } }, l), s && (s.setShape({ points: h, stackedOnPoints: c }), fo(s, { shape: { points: d, stackedOnPoints: f } }, l)); 12051 for (var p = [], g = u.status, m = 0; m < g.length; m++) 12052 if ("=" === g[m].cmd) { 12053 var v = t.getItemGraphicEl(g[m].idx1); 12054 v && p.push({ el: v, ptIdx: m }) 12055 } 12056 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]) }) 12057 }, 12058 remove: function(t) { 12059 var e = this.group, 12060 i = this._data; 12061 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 12062 } 12063 }); 12064 var gD = function(t, e, i) { 12065 return { 12066 seriesType: t, 12067 performRawSeries: !0, 12068 reset: function(t, n, o) { 12069 var a = t.getData(), 12070 r = t.get("symbol") || e, 12071 s = t.get("symbolSize"), 12072 l = t.get("symbolKeepAspect"); 12073 if (a.setVisual({ legendSymbol: i || r, symbol: r, symbolSize: s, symbolKeepAspect: l }), !n.isSeriesFiltered(t)) { 12074 var u = "function" == typeof s; 12075 return { 12076 dataEach: a.hasItemOption || u ? function(e, i) { 12077 if ("function" == typeof s) { 12078 var n = t.getRawValue(i), 12079 o = t.getDataParams(i); 12080 e.setItemVisual(i, "symbolSize", s(n, o)) 12081 } 12082 if (e.hasItemOption) { 12083 var a = e.getItemModel(i), 12084 r = a.getShallow("symbol", !0), 12085 l = a.getShallow("symbolSize", !0), 12086 u = a.getShallow("symbolKeepAspect", !0); 12087 null != r && e.setItemVisual(i, "symbol", r), null != l && e.setItemVisual(i, "symbolSize", l), null != u && e.setItemVisual(i, "symbolKeepAspect", u) 12088 } 12089 } : null 12090 } 12091 } 12092 } 12093 } 12094 }, 12095 mD = function(t) { 12096 return { 12097 seriesType: t, 12098 plan: QM(), 12099 reset: function(t) { 12100 var e = t.getData(), 12101 i = t.coordinateSystem, 12102 n = t.pipelineContext.large; 12103 if (i) { 12104 var o = f(i.dimensions, function(t) { return e.mapDimension(t) }).slice(0, 2), 12105 a = o.length, 12106 r = e.getCalculationInfo("stackResultDimension"); 12107 return Zs(e, o[0]) && (o[0] = r), Zs(e, o[1]) && (o[1] = r), a && { 12108 progress: function(t, e) { 12109 for (var r = t.end - t.start, s = n && new Float32Array(r * a), l = t.start, u = 0, h = [], c = []; l < t.end; l++) { 12110 var d; 12111 if (1 === a) f = e.get(o[0], l), d = !isNaN(f) && i.dataToPoint(f, null, c); 12112 else { 12113 var f = h[0] = e.get(o[0], l), 12114 p = h[1] = e.get(o[1], l); 12115 d = !isNaN(f) && !isNaN(p) && i.dataToPoint(h, null, c) 12116 } 12117 n ? (s[u++] = d ? d[0] : NaN, s[u++] = d ? d[1] : NaN) : e.setItemLayout(l, d && d.slice() || [NaN, NaN]) 12118 } 12119 n && e.setLayout("symbolPoints", s) 12120 } 12121 } 12122 } 12123 } 12124 } 12125 }, 12126 vD = { 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] } }, 12127 yD = function(t, e) { return Math.round(t.length / 2) }, 12128 xD = function(t) { this._axes = {}, this._dimList = [], this.name = t || "" }; 12129 xD.prototype = { 12130 constructor: xD, 12131 type: "cartesian", 12132 getAxis: function(t) { return this._axes[t] }, 12133 getAxes: function() { return f(this._dimList, Su, this) }, 12134 getAxesByScale: function(t) { return t = t.toLowerCase(), g(this.getAxes(), function(e) { return e.scale.type === t }) }, 12135 addAxis: function(t) { 12136 var e = t.dim; 12137 this._axes[e] = t, this._dimList.push(e) 12138 }, 12139 dataToCoord: function(t) { return this._dataCoordConvert(t, "dataToCoord") }, 12140 coordToData: function(t) { return this._dataCoordConvert(t, "coordToData") }, 12141 _dataCoordConvert: function(t, e) { 12142 for (var i = this._dimList, n = t instanceof Array ? [] : {}, o = 0; o < i.length; o++) { 12143 var a = i[o], 12144 r = this._axes[a]; 12145 n[a] = r[e](t[a]) 12146 } 12147 return n 12148 } 12149 }, Mu.prototype = { 12150 constructor: Mu, 12151 type: "cartesian2d", 12152 dimensions: ["x", "y"], 12153 getBaseAxis: function() { return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAxis("x") }, 12154 containPoint: function(t) { 12155 var e = this.getAxis("x"), 12156 i = this.getAxis("y"); 12157 return e.contain(e.toLocalCoord(t[0])) && i.contain(i.toLocalCoord(t[1])) 12158 }, 12159 containData: function(t) { return this.getAxis("x").containData(t[0]) && this.getAxis("y").containData(t[1]) }, 12160 dataToPoint: function(t, e, i) { 12161 var n = this.getAxis("x"), 12162 o = this.getAxis("y"); 12163 return i = i || [], i[0] = n.toGlobalCoord(n.dataToCoord(t[0])), i[1] = o.toGlobalCoord(o.dataToCoord(t[1])), i 12164 }, 12165 clampData: function(t, e) { 12166 var i = this.getAxis("x").scale, 12167 n = this.getAxis("y").scale, 12168 o = i.getExtent(), 12169 a = n.getExtent(), 12170 r = i.parse(t[0]), 12171 s = n.parse(t[1]); 12172 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 12173 }, 12174 pointToData: function(t, e) { 12175 var i = this.getAxis("x"), 12176 n = this.getAxis("y"); 12177 return e = e || [], e[0] = i.coordToData(i.toLocalCoord(t[0])), e[1] = n.coordToData(n.toLocalCoord(t[1])), e 12178 }, 12179 getOtherAxis: function(t) { return this.getAxis("x" === t.dim ? "y" : "x") } 12180 }, u(Mu, xD); 12181 var _D = function(t, e, i, n, o) { qT.call(this, t, e, i), this.type = n || "value", this.position = o || "bottom" }; 12182 _D.prototype = { constructor: _D, 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(_D, qT); 12183 var wD = { 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: {}
12183, 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)"] } } }, 12184 bD = {}; 12185 bD.categoryAxis = n({ boundaryGap: !0, deduplication: null, splitLine: { show: !1 }, axisTick: { alignWithLabel: !1, interval: "auto" }, axisLabel: { interval: "auto" } }, wD), bD.valueAxis = n({ boundaryGap: [0, 0], splitNumber: 5 }, wD), bD.timeAxis = r({ scale: !0, min: "dataMin", max: "dataMax" }, bD.valueAxis), bD.logAxis = r({ scale: !0, logBase: 10 }, bD.valueAxis); 12186 var SD = ["value", "category", "time", "log"], 12187 MD = function(t, e, i, a) { 12188 d(SD, function(r) { 12189 e.extend({ 12190 type: t + "Axis." + r, 12191 mergeDefaultAndTheme: function(e, o) { 12192 var a = this.layoutMode, 12193 s = a ? na(e) : {}; 12194 n(e, o.getTheme().get(r + "Axis")), n(e, this.getDefaultOption()), e.type = i(t, e), a && ia(e, s, a) 12195 }, 12196 optionUpdated: function() { "category" === this.option.type && (this.__ordinalMeta = Ks.createByAxisModel(this)) }, 12197 getCategories: function(t) { var e = this.option; if ("category" === e.type) return t ? e.data : this.__ordinalMeta.categories }, 12198 getOrdinalMeta: function() { return this.__ordinalMeta }, 12199 defaultOption: o([{}, bD[r + "Axis"], a], !0) 12200 }) 12201 }), hM.registerSubTypeDefaulter(t + "Axis", v(i, t)) 12202 }, 12203 ID = hM.extend({ type: "cartesian2dAxis", axis: null, init: function() { ID.superApply(this, "init", arguments), this.resetRange() }, mergeOption: function() { ID.superApply(this, "mergeOption", arguments), this.resetRange() }, restoreData: function() { ID.superApply(this, "restoreData", arguments), this.resetRange() }, getCoordSysModel: function() { return this.ecModel.queryComponents({ mainType: "grid", index: this.option.gridIndex, id: this.option.gridId })[0] } }); 12204 n(ID.prototype, ET); 12205 var TD = { offset: 0 }; 12206 MD("x", ID, Iu, TD), MD("y", ID, Iu, TD), hM.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" } }); 12207 var DD = Du.prototype; 12208 DD.type = "grid", DD.axisPointerEnabled = !0, DD.getRect = function() { return this._rect }, DD.update = function(t, e) { 12209 var i = this._axesMap; 12210 this._updateScale(t, this.model), d(i.x, function(t) { yl(t.scale, t.model) }), d(i.y, function(t) { yl(t.scale, t.model) }), d(i.x, function(t) { Au(i, "y", t) }), d(i.y, function(t) { Au(i, "x", t) }), this.resize(this.model, e) 12211 }, DD.resize = function(t, e, i) { 12212 function n() { 12213 d(a, function(t) { 12214 var e = t.isHorizontal(), 12215 i = e ? [0, o.width] : [0, o.height], 12216 n = t.inverse ? 1 : 0; 12217 t.setExtent(i[n], i[1 - n]), Lu(t, e ? o.x : o.y) 12218 }) 12219 } 12220 var o = Qo(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }); 12221 this._rect = o; 12222 var a = this._axesList; 12223 n(), !i && t.get("containLabel") && (d(a, function(t) { 12224 if (!t.model.get("axisLabel.inside")) { 12225 var e = Sl(t); 12226 if (e) { 12227 var i = t.isHorizontal() ? "height" : "width", 12228 n = t.model.get("axisLabel.margin"); 12229 o[i] -= e[i] + n, "top" === t.position ? o.y += e.height + n : "left" === t.position && (
12229o.x += e.width + n) 12230 } 12231 } 12232 }), n()) 12233 }, DD.getAxis = function(t, e) { 12234 var i = this._axesMap[t]; 12235 if (null != i) { 12236 if (null == e) 12237 for (var n in i) 12238 if (i.hasOwnProperty(n)) return i[n]; 12239 return i[e] 12240 } 12241 }, DD.getAxes = function() { return this._axesList.slice() }, DD.getCartesian = function(t, e) { 12242 if (null != t && null != e) { var i = "x" + t + "y" + e; return this._coordsMap[i] } 12243 w(t) && (e = t.yAxisIndex, t = t.xAxisIndex); 12244 for (var n = 0, o = this._coordsList; n < o.length; n++) 12245 if (o[n].getAxis("x").index === t || o[n].getAxis("y").index === e) return o[n] 12246 }, DD.getCartesians = function() { return this._coordsList.slice() }, DD.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 }, DD.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 }, DD._findConvertTarget = function(t, e) { 12247 var i, n, o = e.seriesModel, 12248 a = e.xAxisModel || o && o.getReferringComponents("xAxis")[0], 12249 r = e.yAxisModel || o && o.getReferringComponents("yAxis")[0], 12250 s = e.gridModel, 12251 u = this._coordsList; 12252 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 } 12253 }, DD.containPoint = function(t) { var e = this._coordsList[0]; if (e) return e.containPoint(t) }, DD._initCartesian = function(t, e, i) { 12254 function n(i) { 12255 return function(n, s) { 12256 if (Tu(n, t, e)) { 12257 var l = n.get("position"); 12258 "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; 12259 var u = new _D(i, xl(n), [0, 0], n.get("type"), l), 12260 h = "category" === u.type; 12261 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]++ 12262 } 12263 } 12264 } 12265 var o = { left: !1, right: !1, top: !1, bottom: !1 }, 12266 a = { x: {}, y: {} }, 12267 r = { x: 0, y: 0 }; 12268 if (e.eachComponent("xAxis", n("x"), this), e.eachComponent("yAxis", n("y"), this), !r.x || !r.y) return this._axesMap = {}, void(this._axesList = []); 12269 this._axesMap = a, d(a.x, function(e, i) { 12270 d(a.y, function(n, o) { 12271 var a = "x" + i + "y" + o, 12272 r = new Mu(a); 12273 r.grid = this, r.model = t, this._coordsMap[a] = r, this._coordsList.push(r), r.addAxis(e), r.addAxis(n) 12274 }, this) 12275 }, this) 12276 }, DD._updateScale = function(t, e) { 12277 function i(t, e, i) { d(t.mapDimension(e.dim, !0), function(i) { e.scale.unionExtentFromData(t, Us(t, i)) }) } 12278 d(this._axesList, function(t) { t.scale.setExtent(1 / 0, -1 / 0) }), t.eachSeries(function(n) { 12279 if (Pu(n)) { 12280 var o = ku(n), 12281 a = o[0], 12282 r = o[1]; 12283 if (!Tu(a, e, t) || !Tu(r, e, t)) return; 12284 var s = this.getCartesian(a.componentIndex, r.componentIndex), 12285 l = n.getData(), 12286 u = s.getAxis("x"), 12287 h = s.getAxis("y"); 12288 "list" === l.type && (i(l, u), i(l, h)) 12289 } 12290 }, this) 12291 }, DD.getTooltipAxes = function(t) { 12292 var e = [], 12293 i = []; 12294 return d(this.getCartesians(), function(n) { 12295 var o = null != t && "auto" !== t ? n.getAxis(t) : n.getBaseAxis(), 12296 a = n.getOtherAxis(o); 12297 l(e, o) < 0 && e.push(o), l(i, a) < 0 && i.push(a) 12298 }), { baseAxes: e, otherAxes: i } 12299 }; 12300 var AD = ["xAxis", "yAxis"]; 12301 Du.create = function(t, e) { 12302 var i = []; 12303 return t.eachComponent("grid", function(n, o) { 12304 var a = new Du(n, t, e); 12305 a.name = "grid_" + o, a.resize(n, e, !0), n.coordinateSystem = a, i.push(a) 12306 }), t.eachSeries(function(t) { 12307 if (Pu(t)) { 12308 var e = ku(t), 12309 i = e[0], 12310 n = e[1], 12311 o = i.getCoordSysModel().coordinateSystem; 12312 t.coordinateSystem = o.getCartesian(i.componentIndex, n.componentIndex) 12313 } 12314 }), i 12315 }, Du.dimensions = Du.prototype.dimensions = Mu.prototype.dimensions, Ca.register("cartesian2d", Du); 12316 var CD = Math.PI, 12317 LD = function(t, e) { 12318 this.opt = e, this.axisModel = t, r(e, { labelOffset: 0, nameDirection: 1, tickDirection: 1, labelDirection: 1, silent: !0 }), this.group = new sw; 12319 var i = new sw({ position: e.position.slice(), rotation: e.rotation }); 12320 i.updateTransform(), this._transform = i.transform, this._dumbGroup = i 12321 }; 12322 LD.prototype = { constructor: LD, hasBuilder: function(t) { return !!kD[t] }, add: function(t) { kD[t].call(this) }, getGroup: function() { return this.group } }; 12323 var kD = {
12324 axisLine: function() { 12325 var t = this.opt, 12326 e = this.axisModel; 12327 if (e.get("axisLine.show")) { 12328 var i = this.axisModel.axis.getExtent(), 12329 n = this._transform, 12330 o = [i[0], 0], 12331 r = [i[1], 0]; 12332 n && (Q(o, o, n), Q(r, r, n)); 12333 var s = a({ lineCap: "round" }, e.getModel("axisLine.lineStyle").getLineStyle()); 12334 this.group.add(new MS(Gn({ 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 }))); 12335 var l = e.get("axisLine.symbol"), 12336 u = e.get("axisLine.symbolSize"), 12337 h = e.get("axisLine.symbolOffset") || 0; 12338 if ("number" == typeof h && (h = [h, h]), null != l) { 12339 "string" == typeof l && (l = [l, l]), "string" != typeof u && "number" != typeof u || (u = [u, u]); 12340 var c = u[0], 12341 f = u[1]; 12342 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) { 12343 if ("none" !== l[i] && null != l[i]) { 12344 var n = Tl(l[i], -c / 2, -f / 2, c, f, s.stroke, !0), 12345 a = e.r + e.offset, 12346 r = [o[0] + a * Math.cos(t.rotation), o[1] - a * Math.sin(t.rotation)]; 12347 n.attr({ rotation: e.rotate, position: r, silent: !0 }), this.group.add(n) 12348 } 12349 }, this) 12350 } 12351 } 12352 }, 12353 axisTickLabel: function() { 12354 var t = this.axisModel, 12355 e = this.opt, 12356 i = Gu(this, t, e); 12357 Ru(t, Wu(this, t, e), i) 12358 }, 12359 axisName: function() { 12360 var t = this.opt, 12361 e = this.axisModel, 12362 i = T(t.axisName, e.get("name")); 12363 if (i) { 12364 var n, o = e.get("nameLocation"), 12365 r = t.nameDirection, 12366 s = e.getModel("nameTextStyle"), 12367 l = e.get("nameGap") || 0, 12368 u = this.axisModel.axis.getExtent(), 12369 h = u[0] > u[1] ? -1 : 1, 12370 c = ["start" === o ? u[0] - h * l : "end" === o ? u[1] + h * l : (u[0] + u[1]) / 2, Vu(o) ? t.labelOffset + r * l : 0], 12371 d = e.get("nameRotate"); 12372 null != d && (d = d * CD / 180); 12373 var f; 12374 Vu(o) ? n = PD(t.rotation, null != d ? d : t.rotation, r) : (n = Ou(t, o, d || 0, u), null != (f = t.axisNameAvailableWidth) && (f = Math.abs(f / Math.sin(n.rotation)), !isFinite(f) && (f = null))); 12375 var p = s.getFont(), 12376 g = e.get("nameTruncate", !0) || {}, 12377 m = g.ellipsis, 12378 v = T(t.nameTruncateMaxWidth, g.maxWidth, f), 12379 y = null != m && null != v ? eM(i, v, p, m, { minChar: 2, placeholder: g.placeholder }) : i, 12380 x = e.get("tooltip", !0), 12381 _ = e.mainType, 12382 w = { componentType: _, name: i, $vars: ["name"] }; 12383 w[_ + "Index"] = e.componentIndex; 12384 var b = new fS({ anid: "name", __fullText: i, __truncatedText: y, position: c, rotation: n.rotation, silent: Eu(e), z2: 1, tooltip: x && x.show ? a({ content: i, formatter: function() { return i }, formatterParams: w }, x) : null }); 12385 no(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 = Nu(e), b.eventData.targetType = "axisName", b.eventData.name = i), this._dumbGroup.add(b), b.updateTransform(), this.group.add(b), b.decomposeTransform() 12386 } 12387 } 12388 }, 12389 PD = LD.innerTextLayout = function(t, e, i) { var n, o, a = Oo(e - t); return Eo(a) ? (o = i >
12389 0 ? "top" : "bottom", n = "center") : Eo(a - CD) ? (o = i > 0 ? "bottom" : "top", n = "center") : (o = "middle", n = a > 0 && a < CD ? i > 0 ? "right" : "left" : i > 0 ? "left" : "right"), { rotation: a, textAlign: n, textVerticalAlign: o } }, 12390 ND = d, 12391 OD = v, 12392 ED = ys({ 12393 type: "axis", 12394 _axisPointer: null, 12395 axisPointerClass: null, 12396 render: function(t, e, i, n) { this.axisPointerClass && Yu(t), ED.superApply(this, "render", arguments), Qu(this, t, 0, i, 0, !0) }, 12397 updateAxisPointer: function(t, e, i, n, o) { Qu(this, t, 0, i, 0, !1) }, 12398 remove: function(t, e) { 12399 var i = this._axisPointer; 12400 i && i.remove(e), ED.superApply(this, "remove", arguments) 12401 }, 12402 dispose: function(t, e) { th(this, e), ED.superApply(this, "dispose", arguments) } 12403 }), 12404 RD = []; 12405 ED.registerAxisPointerClass = function(t, e) { RD[t] = e }, ED.getAxisPointerClass = function(t) { return t && RD[t] }; 12406 var zD = ["axisLine", "axisTickLabel", "axisName"], 12407 BD = ["splitArea", "splitLine"], 12408 VD = ED.extend({ 12409 type: "cartesianAxis", 12410 axisPointerClass: "CartesianAxisPointer", 12411 render: function(t, e, i, n) { 12412 this.group.removeAll(); 12413 var o = this._axisGroup; 12414 if (this._axisGroup = new sw, this.group.add(this._axisGroup), t.get("show")) { 12415 var a = t.getCoordSysModel(), 12416 r = eh(a, t), 12417 s = new LD(t, r); 12418 d(zD, s.add, s), this._axisGroup.add(s.getGroup()), d(BD, function(e) { t.get(e + ".show") && this["_" + e](t, a) }, this), yo(o, this._axisGroup, t), VD.superCall(this, "render", t, e, i, n) 12419 } 12420 }, 12421 remove: function() { this._splitAreaColors = null }, 12422 _splitLine: function(t, e) { 12423 var i = t.axis; 12424 if (!i.scale.isBlank()) { 12425 var n = t.getModel("splitLine"), 12426 o = n.getModel("lineStyle"), 12427 a = o.get("color"); 12428 a = y(a) ? a : [a]; 12429 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++) { 12430 var g = i.toGlobalCoord(h[p].coord); 12431 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); 12432 var m = u++ % a.length, 12433 v = h[p].tickValue; 12434 this._axisGroup.add(new MS(Gn({ 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 }))) 12435 } 12436 } 12437 }, 12438 _splitArea: function(t, e) { 12439 var i = t.axis; 12440 if (!i.scale.isBlank()) { 12441 var n = t.getModel("splitArea"), 12442 o = n.getModel("areaStyle"), 12443 a = o.get("color"), 12444 s = e.coordinateSystem.getRect(), 12445 l = i.getTicksCoords({ tickModel: n, clamp: !0 }); 12446 if (l.length) { 12447 var u = a.length, 12448 h = this._splitAreaColors, 12449 c = R(), 12450 d = 0; 12451 if (h) 12452 for (m = 0; m < l.length; m++) { var f = h.get(l[m].tickValue); if (null != f) { d = (f + (u - 1) * m) % u; break } } 12453 var p = i.toGlobalCoord(l[0].coord), 12454 g = o.getAreaStyle(); 12455 a = y(a) ? a : [a]; 12456 for (var m = 1; m < l.length; m++) { 12457 var v, x, _, w, b = i.toGlobalCoord(l[m].coord); 12458 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)); 12459 var S = l[m - 1].tickValue; 12460 null != S && c.set(S, d), this._axisGroup.add(new SS({ 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 12461 } 12462 this._splitAreaColors = c 12463 } 12464 } 12465 } 12466 }); 12467 VD.extend({ type: "xAxis" }), VD.extend({ type: "yAxis" }), ys({ type: "grid", render: function(t, e) { this.group.removeAll(), t.get("show") && this.group.add(new SS({ shape: t.coordinateSystem.getRect(), style: r({ fill: t.get("backgroundColor") }, t.getItemStyle()), silent: !0, z2: -1 })) } }), us(function(t) { t.xAxis && t.yAxis && !t.grid && (t.grid = {}) }), ps(gD("line", "circle", "line")), fs(mD("line")), hs(LI.PROCESSOR.STATISTIC, function(t) { 12468 return { 12469 seriesType: t, 12470 modifyOutputEnd: !0, 12471 reset: function(t, e, i) { 12472 var n = t.getData(), 12473 o = t.get("sampling"), 12474 a = t.coordinateSystem; 12475 if ("cartesian2d" === a.type && o) { 12476 var r = a.getBaseAxis(), 12477 s = a.getOtherAxis(r), 12478 l = r.getExtent(), 12479 u = l[1] - l[0], 12480 h = Math.round(n.count() / u); 12481 if (h > 1) { var c; "string" == typeof o ? c = vD[o] : "function" == typeof o && (c = o), c && t.setData(n.downSample(n.mapDimension(s.dim), 1 / h, c, yD)) } 12482 } 12483 } 12484 } 12485 }("line")); 12486 var GD = KM.extend({ 12487 type: "series.__base_bar__", 12488 getInitialData: function(t, e) { return Xs(this.getSource(), this) }, 12489 getMarkerPosition: function(t) { 12490 var e = this.coordinateSystem; 12491 if (e) { 12492 var i = e.dataToPoint(e.clampData(t)), 12493 n = this.getData(), 12494 o = n.getLayout("offset"), 12495 a = n.getLayout("size"); 12496 return i[e.getBaseAxis().isHorizontal() ? 0 : 1] += o + a / 2, i 12497 } 12498 return [NaN, NaN] 12499 }, 12500 defaultOption: { zlevel: 0, z: 2, coordinateSystem: "cartesian2d", legendHoverLink: !0, barMinHeight: 0, barMinAngle: 0, large: !1, largeThreshold: 400, progressive: 3e3, progressiveChunkMode: "mod", itemStyle: {}, emphasis: {} } 12501 }); 12502 GD.extend({ 12503 type: "series.bar", 12504 dependencies: ["grid", "polar"], 12505 brushSelector: "rect", 12506 getProgressive: function() { return !!this.get("large") && this.get("progressive") },
12507 getProgressiveThreshold: function() { 12508 var t = this.get("progressiveThreshold"), 12509 e = this.get("largeThreshold"); 12510 return e > t && (t = e), t 12511 } 12512 }); 12513 var WD = sb([ 12514 ["fill", "color"], 12515 ["stroke", "borderColor"], 12516 ["lineWidth", "borderWidth"], 12517 ["stroke", "barBorderColor"], 12518 ["lineWidth", "barBorderWidth"], 12519 ["opacity"], 12520 ["shadowBlur"], 12521 ["shadowOffsetX"], 12522 ["shadowOffsetY"], 12523 ["shadowColor"] 12524 ]), 12525 FD = { 12526 getBarItemStyle: function(t) { 12527 var e = WD(this, t); 12528 if (this.getBorderLineDash) { 12529 var i = this.getBorderLineDash(); 12530 i && (e.lineDash = i) 12531 } 12532 return e 12533 } 12534 }, 12535 HD = ["itemStyle", "barBorderWidth"]; 12536 a(wo.prototype, FD), _s({ 12537 type: "bar", 12538 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 }, 12539 incrementalPrepareRender: function(t, e, i) { this._clear(), this._updateDrawMode(t) }, 12540 incrementalRender: function(t, e, i, n) { this._incrementalRenderLarge(t, e) }, 12541 _updateDrawMode: function(t) { 12542 var e = t.pipelineContext.large; 12543 (null == this._isLargeDraw || e ^ this._isLargeDraw) && (this._isLargeDraw = e, this._clear()) 12544 }, 12545 _renderNormal: function(t, e, i) { 12546 var n, o = this.group, 12547 a = t.getData(), 12548 r = this._data, 12549 s = t.coordinateSystem, 12550 l = s.getBaseAxis(); 12551 "cartesian2d" === s.type ? n = l.isHorizontal() : "polar" === s.type && (n = "angle" === l.dim); 12552 var u = t.isAnimationEnabled() ? t : null; 12553 a.diff(r).add(function(e) { 12554 if (a.hasValue(e)) { 12555 var i = a.getItemModel(e), 12556 r = UD[s.type](a, e, i), 12557 l = ZD[s.type](a, e, i, r, n, u); 12558 a.setItemGraphicEl(e, l), o.add(l), rh(l, a, e, i, r, t, n, "polar" === s.type) 12559 } 12560 }).update(function(e, i) { 12561 var l = r.getItemGraphicEl(i); 12562 if (a.hasValue(e)) { 12563 var h = a.getItemModel(e), 12564 c = UD[s.type](a, e, h); 12565 l ? fo(l, { shape: c }, u, e) : l = ZD[s.type](a, e, h, c, n, u, !0), a.setItemGraphicEl(e, l), o.add(l), rh(l, a, e, h, c, t, n, "polar" === s.type) 12566 } else o.remove(l) 12567 }).remove(function(t) { var e = r.getItemGraphicEl(t); "cartesian2d" === s.type ? e && oh(t, u, e) : e && ah(t, u, e) }).execute(), this._data = a 12568 }, 12569 _renderLarge: function(t, e, i) { this._clear(), lh(t, this.group) }, 12570 _incrementalRenderLarge: function(t, e) { lh(e, this.group, !0) }, 12571 dispose: B, 12572 remove: function(t) { this._clear(t) }, 12573 _clear: function(t) { 12574 var e = this.group, 12575 i = this._data; 12576 t && t.get("animation") && i && !this._isLargeDraw ? i.eachItemGraphicEl(function(e) { "sector" === e.type ? ah(e.dataIndex, t, e) : oh(e.dataIndex, t, e) }) : e.removeAll(), this._data = null 12577 } 12578 }); 12579 var ZD = { 12580 cartesian2d: function(t, e, i, n, o, r, s) { 12581 var l = new SS({ shape: a({}, n) }); 12582 if (r) { 12583 var u = l.shape, 12584 h = o ? "height" : "width", 12585 c = {}; 12586 u[h] = 0, c[h] = n[h], BS[s ? "updateProps" : "initProps"](l, { shape: c }, r, e) 12587 } 12588 return l 12589 }, 12590 polar: function(t, e, i, n, o, a, s) { 12591 var l = n.startAngle < n.endAngle, 12592 u = new vS({ shape: r({ clockwise: l }, n) }); 12593 if (a) { 12594 var h = u.shape, 12595 c = o ? "r" : "endAngle", 12596 d = {}; 12597 h[c] = o ? 0 : n.startAngle, d[c] = n[c], BS[s ? "updateProps" : "initProps"](u, { shape: d }, a, e) 12598 } 12599 return u 12600 } 12601 }, 12602 UD = { 12603 cartesian2d: function(t, e, i) { 12604 var n = t.getItemLayout(e), 12605 o = sh(i, n), 12606 a = n.width > 0 ? 1 : -1, 12607 r = n.height > 0 ? 1 : -1; 12608 return { x: n.x + a * o / 2, y: n.y + r * o / 2, width: n.width - a * o, height: n.height - r * o } 12609 }, 12610 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 } } 12611 }, 12612 XD = In.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]) } }); 12613 fs(v(cl, "bar")), fs(xT), ps({ seriesType: "bar", reset: function(t) { t.getData().setVisual("legendSymbol", "roundRect") } }); 12614 var jD = function(t, e, i) { 12615 e = y(e) && { coordDimensions: e } || a({}, e); 12616 var n = t.getSource(), 12617 o = hT(n, e), 12618 r = new sT(o, t); 12619 return r.initData(n, i), r 12620 }, 12621 YD = { 12622 updateSelectedMap: function(t) { this._targetList = y(t) ? t.slice() : [], this._selectTargetMap = p(t || [], function(t, e) { return t.set(e.name, e), t }, R()) }, 12623 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) }, 12624 unSelect: function(t, e) { 12625 var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t); 12626 i && (i.selected = !1) 12627 }, 12628 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 }, 12629 isSelected: function(t, e) { var i = null != e ? this._targetList[e] : this._selectTargetMap.get(t); return i && i.selected } 12630 }, 12631 qD = xs({ 12632 type: "series.pie", 12633 init: function(t) { qD.superApply(this, "init", arguments), this.legendDataProvider = function() { return this.getRawData() }
12633, this.updateSelectedMap(this._createSelectableList()), this._defaultLabelLine(t) }, 12634 mergeOption: function(t) { qD.superCall(this, "mergeOption", t), this.updateSelectedMap(this._createSelectableList()) }, 12635 getInitialData: function(t, e) { return jD(this, ["value"]) }, 12636 _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: ir(t, n, "selected") }); return i }, 12637 getDataParams: function(t) { 12638 var e = this.getData(), 12639 i = qD.superCall(this, "getDataParams", t), 12640 n = []; 12641 return e.each(e.mapDimension("value"), function(t) { n.push(t) }), i.percent = No(n, t, e.hostModel.get("percentPrecision")), i.$vars.push("percent"), i 12642 }, 12643 _defaultLabelLine: function(t) { 12644 Mi(t, "labelLine", ["show"]); 12645 var e = t.labelLine, 12646 i = t.emphasis.labelLine; 12647 e.show = e.show && t.label.show, i.show = i.show && t.emphasis.label.show 12648 }, 12649 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" } 12650 }); 12651 h(qD, YD); 12652 var KD = dh.prototype; 12653 KD.updateData = function(t, e, i) { 12654 function n() { s.stopAnimation(!0), s.animateTo({ shape: { r: h.r + l.get("hoverOffset") } }, 300, "elasticOut") } 12655 12656 function o() { s.stopAnimation(!0), s.animateTo({ shape: { r: h.r } }, 300, "elasticOut") } 12657 var s = this.childAt(0), 12658 l = t.hostModel, 12659 u = t.getItemModel(e), 12660 h = t.getItemLayout(e), 12661 c = a({}, h); 12662 c.label = null, i ? (s.setShape(c), "scale" === l.getShallow("animationType") ? (s.shape.r = h.r0, po(s, { shape: { r: h.r } }, l, e)) : (s.shape.endAngle = h.startAngle, fo(s, { shape: { endAngle: h.endAngle } }, l, e))) : fo(s, { shape: c }, l, e); 12663 var d = t.getItemVisual(e, "color"); 12664 s.useStyle(r({ lineJoin: "bevel", fill: d }, u.getModel("itemStyle").getItemStyle())), s.hoverStyle = u.getModel("emphasis.itemStyle").getItemStyle(); 12665 var f = u.getShallow("cursor"); 12666 f && s.attr("cursor", f), ch(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), eo(this) 12667 }, KD._updateLabel = function(t, e) { 12668 var i = this.childAt(1), 12669 n = this.childAt(2), 12670 o = t.hostModel, 12671 a = t.getItemModel(e), 12672 r = t.getItemLayout(e).label, 12673 s = t.getItemVisual(e, "color"); 12674 fo(i, { 12675 shape: { 12676 points: r.linePoints || [ 12677 [r.x, r.y], 12678 [r.x, r.y], 12679 [r.x, r.y] 12680 ] 12681 } 12682 }, o, e), fo(n, { style: { x: r.x, y: r.y } }, o, e), n.attr({ rotation: r.rotation, origin: [r.x, r.y], z2: 10 }); 12683 var l = a.getModel("label"), 12684 u = a.getModel("emphasis.label"), 12685 h = a.getModel("labelLine"), 12686 c = a.getModel("emphasis.labelLine"), 12687 s = t.getItemVisual(e, "color"); 12688 io(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(); 12689 var d = h.get("smooth"); 12690 d && !0 === d && (d = .4), i.setShape({ smooth: d }) 12691 }, u(dh, sw); 12692 gr.extend({ 12693 type: "pie", 12694 init: function() { 12695 var t = new sw; 12696 this._sectorGroup = t 12697 }, 12698 render: function(t, e, i, n) { 12699 if (!n || n.from !== this.uid) { 12700 var o = t.getData(), 12701 a = this._data, 12702 r = this.group, 12703 s = e.get("animation"), 12704 l = !a, 12705 u = t.get("animationType"), 12706 h = v(hh, this.uid, t, s, i), 12707 c = t.get("selectedMode"); 12708 if (o.diff(a).add(function(t) { 12709 var e = new dh(o, t); 12710 l && "scale" !== u && e.eachChild(function(t) { t.stopAnimation(!0) }), c && e.on("click", h), o.setItemGraphicEl(t, e), r.add(e) 12711 }).update(function(t, e) { 12712 var i = a.getItemGraphicEl(e); 12713 i.updateData(o, t), i.off("click"), c && i.on("click", h), r.add(i), o.setItemGraphicEl(t, i) 12714 }).remove(function(t) { 12715 var e = a.getItemGraphicEl(t); 12716 r.remove(e) 12717 }).execute(), s && l && o.count() > 0 && "scale" !== u) { 12718 var d = o.getItemLayout(0), 12719 f = Math.max(i.getWidth(), i.getHeight()) / 2, 12720 p = m(r.removeClipPath, r); 12721 r.setClipPath(this._createClipPath(d.cx, d.cy, f, d.startAngle, d.clockwise, p, t)) 12722 } 12723 this._data = o 12724 } 12725 }, 12726 dispose: function() {}, 12727 _createClipPath: function(t, e, i, n, o, a, r) { var s = new vS({ shape: { cx: t, cy: e, r0: 0, r: i, startAngle: n, endAngle: n, clockwise: o } }); return po(s, { shape: { endAngle: n + (o ? 1 : -1) * Math.PI * 2 } }, r, a), s }, 12728 containPoint: function(t, e) { 12729 var i = e.getData().getItemLayout(0); 12730 if (i) { 12731 var n = t[0] - i.cx, 12732 o = t[1] - i.cy, 12733 a = Math.sqrt(n * n + o * o); 12734 return a <= i.r && a >= i.r0 12735 } 12736 } 12737 }); 12738 var $D = function(t, e) { 12739 d(e, function(e) { 12740 e.update = "updateView", cs(e, function(i, n) { 12741 var o = {}; 12742 return n.eachComponent({ mainType: "series", subType: t, query: i }, function(t) { 12743 t[e.method] && t[e.method](i.name, i.dataIndex); 12744 var n = t.getData(); 12745 n.each(function(e) { 12746 var i = n.getName(e); 12747 o[i] = t.isSelected(i) || !1 12748 }) 12749 }), { name: i.name, selected: o } 12750 }) 12751 }) 12752 }, 12753 JD = function(t) { 12754 return { 12755 getTargetSeries: function(e) { 12756 var i = {}, 12757 n = R(); 12758 return e.eachSeriesByType(t, function(t) { t.__paletteScope = i, n.set(t.uid, t) }), n 12759 }, 12760 reset: function(t, e) { 12761 var i = t.getRawData(), 12762 n = {}, 12763 o = t.getData(); 12764 o.each(function(t) { 12765 var e = o.getRawIndex(t); 12766 n[e] = t 12767 }), i.each(function(e) { 12768 var a = n[e], 12769 r = null != a && o.getItemVisual(a, "color", !0); 12770 if (r) i.setItemVisual(e, "color", r); 12771 else { 12772 var s = i.getItemModel(e).get("itemStyle.color") || t.getColorFromPalette(i.getName(e) || e + "", t.__paletteScope, i.count()); 12773 i.setItemVisual(e, "color", s), null != a && o.setItemVisual(a, "color", s) 12774 } 12775 }) 12776 } 12777 } 12778 }, 12779 QD = function(t, e, i, n) { 12780 var o, a, r = t.getData(), 12781 s = [], 12782 l = !1; 12783 r.each(function(i) { 12784 var n, u, h, c, d = r.getItemLayout(i), 12785 f = r.getItemModel(i), 12786 p = f.getModel("label"), 12787 g = p.get("position") || f.get("emphasis.label.position"), 12788 m = f.getModel("labelLine"), 12789 v = m.get("length"), 12790 y = m.get("length2"), 12791 x = (d.startAngle + d.endAngle) / 2,
12792 _ = Math.cos(x), 12793 w = Math.sin(x); 12794 o = d.cx, a = d.cy; 12795 var b = "inside" === g || "inner" === g; 12796 if ("center" === g) n = d.cx, u = d.cy, c = "center"; 12797 else { 12798 var S = (b ? (d.r + d.r0) / 2 * _ : d.r * _) + o, 12799 M = (b ? (d.r + d.r0) / 2 * w : d.r * w) + a; 12800 if (n = S + 3 * _, u = M + 3 * w, !b) { 12801 var I = S + _ * (v + e - d.r), 12802 T = M + w * (v + e - d.r), 12803 D = I + (_ < 0 ? -1 : 1) * y, 12804 A = T; 12805 n = D + (_ < 0 ? -5 : 5), u = A, h = [ 12806 [S, M], 12807 [I, T], 12808 [D, A] 12809 ] 12810 } 12811 c = b ? "center" : _ > 0 ? "left" : "right" 12812 } 12813 var C = p.getFont(), 12814 L = p.get("rotate") ? _ < 0 ? -x + Math.PI : -x : 0, 12815 k = me(t.getFormattedLabel(i, "normal") || r.getName(i), C, c, "top"); 12816 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) 12817 }), !l && t.get("avoidLabelOverlap") && ph(s, o, a, e, i, n) 12818 }, 12819 tA = 2 * Math.PI, 12820 eA = Math.PI / 180, 12821 iA = function(t) { 12822 return { 12823 seriesType: t, 12824 reset: function(t, e) { 12825 var i = e.findComponents({ mainType: "legend" }); 12826 if (i && i.length) { 12827 var n = t.getData(); 12828 n.filterSelf(function(t) { 12829 for (var e = n.getName(t), o = 0; o < i.length; o++) 12830 if (!i[o].isSelected(e)) return !1; 12831 return !0 12832 }) 12833 } 12834 } 12835 } 12836 }; 12837 $D("pie", [{ type: "pieToggleSelect", event: "pieselectchanged", method: "toggleSelected" }, { type: "pieSelect", event: "pieselected", method: "select" }, { type: "pieUnSelect", event: "pieunselected", method: "unSelect" }]), ps(JD("pie")), fs(v(function(t, e, i, n) { 12838 e.eachSeriesByType(t, function(t) { 12839 var e = t.getData(), 12840 n = e.mapDimension("value"), 12841 o = t.get("center"), 12842 a = t.get("radius"); 12843 y(a) || (a = [0, a]), y(o) || (o = [o, o]); 12844 var r = i.getWidth(), 12845 s = i.getHeight(), 12846 l = Math.min(r, s), 12847 u = Do(o[0], r), 12848 h = Do(o[1], s), 12849 c = Do(a[0], l / 2), 12850 d = Do(a[1], l / 2), 12851 f = -t.get("startAngle") * eA, 12852 p = t.get("minAngle") * eA, 12853 g = 0; 12854 e.each(n, function(t) {!isNaN(t) && g++ }); 12855 var m = e.getSum(n), 12856 v = Math.PI / (m || g) * 2, 12857 x = t.get("clockwise"), 12858 _ = t.get("roseType"), 12859 w = t.get("stillShowZeroSum"), 12860 b = e.getDataExtent(n); 12861 b[0] = 0; 12862 var S = tA, 12863 M = 0, 12864 I = f, 12865 T = x ? 1 : -1; 12866 if (e.each(n, function(t, i) { 12867 var n; 12868 if (isNaN(t)) e.setItemLayout(i, { angle: NaN, startAngle: NaN, endAngle: NaN, clockwise: x, cx: u, cy: h, r0: c, r: _ ? NaN : d }); 12869 else { 12870 (n = "area" !== _ ? 0 === m && w ? v : t * v : tA / g) < p ? (n = p, S -= p) : M += t; 12871 var o = I + T * n; 12872 e.setItemLayout(i, { angle: n, startAngle: I, endAngle: o, clockwise: x, cx: u, cy: h, r0: c, r: _ ? To(t, b, [c, d]) : d }), I = o 12873 } 12874 }), S < tA && g) 12875 if (S <= .001) { 12876 var D = tA / g; 12877 e.each(n, function(t, i) { 12878 if (!isNaN(t)) { 12879 var n = e.getItemLayout(i); 12880 n.angle = D, n.startAngle = f + T * i * D, n.endAngle = f + T * (i + 1) * D 12881 } 12882 }) 12883 } else v = S / M, I = f, e.each(n, function(t, i) { 12884 if (!isNaN(t)) { 12885 var n = e.getItemLayout(i), 12886 o = n.angle === p ? p : t * v; 12887 n.startAngle = I, n.endAngle = I + T * o, I += T * o 12888 } 12889 }); 12890 QD(t, d, r, s) 12891 }) 12892 }, "pie")), hs(iA("pie")), KM.extend({ type: "series.scatter", dependencies: ["grid", "polar", "geo", "singleAxis", "calendar"], getInitialData: function(t, e) { return Xs(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: .8 } } }); 12893 var nA = En({ 12894 shape: { points: null }, 12895 symbolProxy: null, 12896 buildPath: function(t, e) { 12897 var i = e.points, 12898 n = e.size, 12899 o = this.symbolProxy, 12900 a = o.shape; 12901 if (!((t.getContext ? t.getContext() : t) && n[0] < 4)) 12902 for (var r = 0; r < i.length;) { 12903 var s = i[r++], 12904 l = i[r++]; 12905 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)) 12906 } 12907 }, 12908 afterBrush: function(t) { 12909 var e = this.shape, 12910 i = e.points, 12911 n = e.size; 12912 if (n[0] < 4) { 12913 this.setTransform(t); 12914 for (var o = 0; o < i.length;) { 12915 var a = i[o++], 12916 r = i[o++]; 12917 isNaN(a) || isNaN(r) || t.fillRect(a - n[0] / 2, r - n[1] / 2, n[0], n[1]) 12918 } 12919 this.restoreTransform(t) 12920 } 12921 }, 12922 findDataIndex: function(t, e) { 12923 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--) { 12924 var l = 2 * s, 12925 u = n[l] - a / 2, 12926 h = n[l + 1] - r / 2; 12927 if (t >= u && e >= h && t <= u + a && e <= h + r) return s 12928 } 12929 return -1 12930 } 12931 }), 12932 oA = gh.prototype; 12933 oA.isPersistent = function() { return !this._incremental }, oA.updateData = function(t) { 12934 this.group.removeAll(); 12935 var e = new nA({ rectHover: !0, cursor: "default" }); 12936 e.setShape({ points: t.getLayout("symbolPoints") }), this._setCommon(e, t), this.group.add(e), this._incremental = null 12937 }, oA.updateLayout = function(t) { 12938 if (!this._incremental) { 12939 var e = t.getLayout("symbolPoints"); 12940 this.group.eachChild(function(t) { 12941 if (null != t.startIndex) { 12942 var i = 2 * (t.endIndex - t.startIndex), 12943 n = 4 * t.startIndex * 2; 12944 e = new Float32Array(e.buffer, n, i) 12945 } 12946 t.setShape("points", e) 12947 }) 12948 } 12949 }, oA.incrementalPrepareUpdate = function(t) { this.group.removeAll(), this._clearIncremental(), t.count() > 2e6 ? (this._incremental || (this._incremental = new On({ silent: !0 })), this.group.add(this._incremental)) : this._incremental = null }, oA.incrementalUpdate = function(t, e) { 12950 var i; 12951 this._incremental ? (i = new nA, this._incremental.addDisplayable(i, !0)) : ((i = new nA({ 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) 12952 }, oA._setCommon = function(t, e, i) { 12953 var n = e.hostModel, 12954 o = e.getVisual("symbolSize"); 12955 t.setShape("size", o instanceof Array ? o : [o, o]), t.symbolProxy = Tl(e.getVisual("symbol"), 0, 0, 0, 0), t.setColor = t.symbolProxy.setColor; 12956 var a = t.shape.size[0] < 4;
12957 t.useStyle(n.getModel("itemStyle").getItemStyle(a ? ["color", "shadowBlur", "shadowColor"] : ["color"])); 12958 var r = e.getVisual("color"); 12959 r && t.setColor(r), i || (t.seriesIndex = n.seriesIndex, t.on("mousemove", function(e) { 12960 t.dataIndex = null; 12961 var i = t.findDataIndex(e.offsetX, e.offsetY); 12962 i >= 0 && (t.dataIndex = i + (t.startIndex || 0)) 12963 })) 12964 }, oA.remove = function() { this._clearIncremental(), this._incremental = null, this.group.removeAll() }, oA._clearIncremental = function() { 12965 var t = this._incremental; 12966 t && t.clearDisplaybles() 12967 }, _s({ 12968 type: "scatter", 12969 render: function(t, e, i) { 12970 var n = t.getData(); 12971 this._updateSymbolDraw(n, t).updateData(n), this._finished = !0 12972 }, 12973 incrementalPrepareRender: function(t, e, i) { 12974 var n = t.getData(); 12975 this._updateSymbolDraw(n, t).incrementalPrepareUpdate(n), this._finished = !1 12976 }, 12977 incrementalRender: function(t, e, i) { this._symbolDraw.incrementalUpdate(t, e.getData()), this._finished = t.end === e.getData().count() }, 12978 updateTransform: function(t, e, i) { 12979 var n = t.getData(); 12980 if (this.group.dirty(), !this._finished || n.count() > 1e4 || !this._symbolDraw.isPersistent()) return { update: !0 }; 12981 var o = mD().reset(t); 12982 o.progress && o.progress({ start: 0, end: n.count() }, n), this._symbolDraw.updateLayout(n) 12983 }, 12984 _updateSymbolDraw: function(t, e) { 12985 var i = this._symbolDraw, 12986 n = e.pipelineContext.large; 12987 return i && n === this._isLargeDraw || (i && i.remove(), i = this._symbolDraw = n ? new gh : new Ql, this._isLargeDraw = n, this.group.removeAll()), this.group.add(i.group), i 12988 }, 12989 remove: function(t, e) { this._symbolDraw && this._symbolDraw.remove(!0), this._symbolDraw = null }, 12990 dispose: function() {} 12991 }), ps(gD("scatter", "circle")), fs(mD("scatter")), u(mh, qT), vh.prototype.getIndicatorAxes = function() { return this._indicatorAxes }, vh.prototype.dataToPoint = function(t, e) { var i = this._indicatorAxes[e]; return this.coordToPoint(i.dataToCoord(t), e) }, vh.prototype.coordToPoint = function(t, e) { var i = this._indicatorAxes[e].angle; return [this.cx + t * Math.cos(i), this.cy - t * Math.sin(i)] }, vh.prototype.pointToData = function(t) { 12992 var e = t[0] - this.cx, 12993 i = t[1] - this.cy, 12994 n = Math.sqrt(e * e + i * i); 12995 e /= n, i /= n; 12996 for (var o, a = Math.atan2(-i, e), r = 1 / 0, s = -1, l = 0; l < this._indicatorAxes.length; l++) { 12997 var u = this._indicatorAxes[l], 12998 h = Math.abs(a - u.angle); 12999 h < r && (o = u, s = l, r = h) 13000 } 13001 return [s, +(o && o.coodToData(n))] 13002 }, vh.prototype.resize = function(t, e) { 13003 var i = t.get("center"), 13004 n = e.getWidth(), 13005 o = e.getHeight(), 13006 a = Math.min(n, o) / 2; 13007 this.cx = Do(i[0], n), this.cy = Do(i[1], o), this.startAngle = t.get("startAngle") * Math.PI / 180, this.r = Do(t.get("radius"), a), d(this._indicatorAxes, function(t, e) { 13008 t.setExtent(0, this.r); 13009 var i = this.startAngle + e * Math.PI * 2 / this._indicatorAxes.length; 13010 i = Math.atan2(Math.sin(i), Math.cos(i)), t.angle = i 13011 }, this) 13012 }, vh.prototype.update = function(t, e) { 13013 function i(t) { 13014 var e = Math.pow(10, Math.floor(Math.log(t) / Math.LN10)), 13015 i = t / e; 13016 return 2 === i ? i = 5 : i *= 2, i * e 13017 } 13018 var n = this._indicatorAxes, 13019 o = this._model; 13020 d(n, function(t) { t.scale.setExtent(1 / 0, -1 / 0) }), t.eachSeriesByType("radar", function(e, i) { 13021 if ("radar" === e.get("coordinateSystem") && t.getComponent("radar", e.get("radarIndex")) === o) { 13022 var a = e.getData(); 13023 d(n, function(t) { t.scale.unionExtentFromData(a, a.mapDimension(t.dim)) }) 13024 } 13025 }, this); 13026 var a = o.get("splitNumber"); 13027 d(n, function(t, e) { 13028 var n = ml(t.scale, t.model);
13029 yl(t.scale, t.model); 13030 var o = t.model, 13031 r = t.scale, 13032 s = o.getMin(), 13033 l = o.getMax(), 13034 u = r.getInterval(); 13035 if (null != s && null != l) r.setExtent(+s, +l), r.setInterval((l - s) / a); 13036 else if (null != s) { 13037 var h; 13038 do { h = s + u * a, r.setExtent(+s, h), r.setInterval(u), u = i(u) } while (h < n[1] && isFinite(h) && isFinite(n[1])) 13039 } else if (null != l) { 13040 var c; 13041 do { c = l - u * a, r.setExtent(c, +l), r.setInterval(u), u = i(u) } while (c > n[0] && isFinite(c) && isFinite(n[0])) 13042 } else { 13043 r.getTicks().length - 1 > a && (u = i(u)); 13044 var d = Math.round((n[0] + n[1]) / 2 / u) * u, 13045 f = Math.round(a / 2); 13046 r.setExtent(Ao(d - f * u), Ao(d + (a - f) * u)), r.setInterval(u) 13047 } 13048 }) 13049 }, vh.dimensions = [], vh.create = function(t, e) { 13050 var i = []; 13051 return t.eachComponent("radar", function(n) { 13052 var o = new vh(n, t, e); 13053 i.push(o), n.coordinateSystem = o 13054 }), t.eachSeriesByType("radar", function(t) { "radar" === t.get("coordinateSystem") && (t.coordinateSystem = i[t.get("radarIndex") || 0]) }), i 13055 }, Ca.register("radar", vh); 13056 var aA = bD.valueAxis, 13057 rA = (vs({ 13058 type: "radar", 13059 optionUpdated: function() { 13060 var t = this.get("boundaryGap"), 13061 e = this.get("splitNumber"), 13062 o = this.get("scale"), 13063 s = this.get("axisLine"), 13064 l = this.get("axisTick"), 13065 u = this.get("axisLabel"), 13066 h = this.get("name"), 13067 c = this.get("name.show"), 13068 d = this.get("name.formatter"), 13069 p = this.get("nameGap"), 13070 g = this.get("triggerEvent"), 13071 m = f(this.get("indicator") || [], function(f) { 13072 null != f.max && f.max > 0 && !f.min ? f.min = 0 : null != f.min && f.min < 0 && !f.max && (f.max = 0); 13073 var m = h; 13074 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) { 13075 var v = f.name; 13076 f.name = d.replace("{value}", null != v ? v : "") 13077 } else "function" == typeof d && (f.name = d(f.name, f)); 13078 var y = a(new wo(f, null, this.ecModel), ET); 13079 return y.mainType = "radar", y.componentIndex = this.componentIndex, y 13080 }, this); 13081 this.getIndicatorModels = function() { return m } 13082 }, 13083 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" } }, aA.axisLine), axisLabel: yh(aA.axisLabel, !1), axisTick: yh(aA.axisTick, !1), splitLine: yh(aA.splitLine, !0), splitArea: yh(aA.splitArea, !0), indicator: [] } 13084 }), ["axisLine", "axisTickLabel", "axisName"]); 13085 ys({ 13086 type: "radar", 13087 render: function(t, e, i) { this.group.removeAll(), this._buildAxes(t), this._buildSplitLineAndArea(t) }, 13088 _buildAxes: function(t) { 13089 var e = t.coordinateSystem; 13090 d(f(e.getIndicatorAxes(), function(t) { return new LD(t.model, { position: [e.cx, e.cy], rotation: t.angle, labelDirection: -1, tickDirection: -1, nameDirection: 1 }) }), function(t) { d(rA, t.add, t), this.group.add(t.getGroup()) }, this) 13091 }, 13092 _buildSplitLineAndArea: function(t) { 13093 function e(t, e, i) { var n = i % e.length; return t[n] = t[n] || [], n } 13094 var i = t.coordinateSystem, 13095 n = i.getIndicatorAxes(); 13096 if (n.length) { 13097 var o = t.get("shape"), 13098 a = t.getModel("splitLine"), 13099 s = t.getModel("splitArea"), 13100 l = a.getModel("lineStyle"), 13101 u = s.getModel("areaStyle"), 13102 h = a.get("show"), 13103 c = s.get("show"), 13104 p = l.get("color"), 13105 g = u.get("color"); 13106 p = y(p) ? p : [p], g = y(g) ? g : [g]; 13107 var m = [], 13108 v = []; 13109 if ("circle" === o) 13110 for (var x = n[0].getTicksCoords(), _ = i.cx, w = i.cy, b = 0; b < x.length; b++) h && m[A = e(m, p, b)].push(new pS({ shape: { cx: _, cy: w, r: x[b].coord } })), c && b < x.length - 1 && v[A = e(v, g, b)].push(new yS({ shape: { cx: _, cy: w, r0: x[b].coord, r: x[b + 1].coord } })); 13111 else 13112 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++) { 13113 for (var T = [], D = 0; D < n.length; D++) T.push(M[D][b]); 13114 if (T[0] && T.push(T[0].slice()), h && m[A = e(m, p, b)].push(new bS({ shape: { points: T } })), c && I) { 13115 var A = e(v, g, b - 1); 13116 v[A].push(new wS({ shape: { points: T.concat(I
13116) } })) 13117 } 13118 I = T.slice().reverse() 13119 } 13120 var C = l.getLineStyle(), 13121 L = u.getAreaStyle(); 13122 d(v, function(t, e) { this.group.add(zS(t, { style: r({ stroke: "none", fill: g[e % g.length] }, L), silent: !0 })) }, this), d(m, function(t, e) { this.group.add(zS(t, { style: r({ fill: "none", stroke: p[e % p.length] }, C), silent: !0 })) }, this) 13123 } 13124 } 13125 }); 13126 var sA = KM.extend({ 13127 type: "series.radar", 13128 dependencies: ["radar"], 13129 init: function(t) { sA.superApply(this, "init", arguments), this.legendDataProvider = function() { return this.getRawData() } }, 13130 getInitialData: function(t, e) { return jD(this, { generateCoord: "indicator_", generateCoordCount: 1 / 0 }) }, 13131 formatTooltip: function(t) { 13132 var e = this.getData(), 13133 i = this.coordinateSystem.getIndicatorAxes(), 13134 n = this.getData().getName(t); 13135 return Zo("" === n ? this.name : n) + "<br/>" + f(i, function(i, n) { var o = e.get(e.mapDimension(i.dim), t); return Zo(i.name + " : " + o) }).join("<br />") 13136 }, 13137 defaultOption: { zlevel: 0, z: 2, coordinateSystem: "radar", legendHoverLink: !0, radarIndex: 0, lineStyle: { width: 2, type: "solid" }, label: { position: "top" }, symbol: "emptyCircle", symbolSize: 4 } 13138 }); 13139 _s({ 13140 type: "radar", 13141 render: function(t, e, n) { 13142 function o(t, e) { 13143 var i = t.getItemVisual(e, "symbol") || "circle", 13144 n = t.getItemVisual(e, "color"); 13145 if ("none" !== i) { 13146 var o = xh(t.getItemVisual(e, "symbolSize")), 13147 a = Tl(i, -1, -1, 2, 2, n); 13148 return a.attr({ style: { strokeNoScale: !0 }, z2: 100, scale: [o[0] / 2, o[1] / 2] }), a 13149 } 13150 } 13151 13152 function a(e, i, n, a, r, s) { 13153 n.removeAll(); 13154 for (var l = 0; l < i.length - 1; l++) { 13155 var u = o(a, r); 13156 u && (u.__dimIdx = l, e[l] ? (u.attr("position", e[l]), BS[s ? "initProps" : "updateProps"](u, { position: i[l] }, t, r)) : u.attr("position", i[l]), n.add(u)) 13157 } 13158 } 13159 13160 function s(t) { return f(t, function(t) { return [l.cx, l.cy] }) } 13161 var l = t.coordinateSystem, 13162 u = this.group, 13163 h = t.getData(), 13164 c = this._data; 13165 h.diff(c).add(function(e) { 13166 var i = h.getItemLayout(e); 13167 if (i) { 13168 var n = new wS, 13169 o = new bS, 13170 r = { shape: { points: i } }; 13171 n.shape.points = s(i), o.shape.points = s(i), po(n, r, t, e), po(o, r, t, e); 13172 var l = new sw, 13173 u = new sw; 13174 l.add(o), l.add(n), l.add(u), a(o.shape.points, i, u, h, e, !0), h.setItemGraphicEl(e, l) 13175 } 13176 }).update(function(e, i) { 13177 var n = c.getItemGraphicEl(i), 13178 o = n.childAt(0), 13179 r = n.childAt(1), 13180 s = n.childAt(2), 13181 l = { shape: { points: h.getItemLayout(e) } }; 13182 l.shape.points && (a(o.shape.points, l.shape.points, s, h, e, !1), fo(o, l, t), fo(r, l, t), h.setItemGraphicEl(e, n)) 13183 }).remove(function(t) { u.remove(c.getItemGraphicEl(t)) }).execute(), h.eachItemGraphicEl(function(t, e) { 13184 function n() { l.attr("ignore", m) } 13185 13186 function o() { l.attr("ignore", g) } 13187 var a = h.getItemModel(e), 13188 s = t.childAt(0), 13189 l = t.childAt(1), 13190 c = t.childAt(2), 13191 d = h.getItemVisual(e, "color"); 13192 u.add(t), s.useStyle(r(a.getModel("lineStyle").getLineStyle(), { fill: "none", stroke: d })), s.hoverStyle = a.getModel("emphasis.lineStyle").getLineStyle(); 13193 var f = a.getModel("areaStyle"), 13194 p = a.getModel("emphasis.areaStyle"), 13195 g = f.isEmpty() && f.parentModel.isEmpty(), 13196 m = p.isEmpty() && p.parentModel.isEmpty(); 13197 m = m && g, l.ignore = g, l.useStyle(r(f.getAreaStyle(), { fill: d, opacity: .7 })), l.hoverStyle = p.getAreaStyle(); 13198 var v = a.getModel("itemStyle").getItemStyle(["color"]), 13199 y = a.getModel("emphasis.itemStyle").getItemStyle(), 13200 x = a.getModel("label"), 13201 _ = a.getModel("emphasis.label"); 13202 c.eachChild(function(t) { t.setStyle(v), t.hoverStyle = i(y), io(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), eo(t) 13203 }), this._data = h 13204 }, 13205 remove: function() { this.group.removeAll(), this._data = null }, 13206 dispose: function() {} 13207 }); 13208 ps(JD("radar")), ps(gD("radar", "circle")), fs(function(t) { 13209 t.eachSeriesByType("radar", function(t) { 13210 var e = t.getData(), 13211 i = [], 13212 n = t.coordinateSystem; 13213 if (n) { 13214 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) }); 13215 e.each(function(t) { i[t][0] && i[t].push(i[t][0].slice()), e.setItemLayout(t, i[t]) }) 13216 } 13217 }) 13218 }), hs(iA("radar")), us(function(t) { 13219 var e = t.polar; 13220 if (e) { 13221 y(e) || (e = [e]); 13222 var i = []; 13223 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 13224 } 13225 d(t.series, function(t) { t && "radar" === t.type && t.polarIndex && (t.radarIndex = t.polarIndex) }) 13226 }); 13227 var lA = Q; 13228 h(_h, E_), wh.prototype = { 13229 constructor: wh, 13230 type: "view", 13231 dimensions: ["x", "y"], 13232 setBoundingRect: function(t, e, i, n) { return this._rect = new $t(t, e, i, n), this._rect }, 13233 getBoundingRect: function() { return this._rect },
13234 setViewRect: function(t, e, i, n) { this.transformTo(t, e, i, n), this._viewRect = new $t(t, e, i, n) }, 13235 transformTo: function(t, e, i, n) { 13236 var o = this.getBoundingRect(), 13237 a = this._rawTransformable; 13238 a.transform = o.calculateTransform(new $t(t, e, i, n)), a.decomposeTransform(), this._updateTransform() 13239 }, 13240 setCenter: function(t) { t && (this._center = t, this._updateCenterAndZoom()) }, 13241 setZoom: function(t) { 13242 t = t || 1; 13243 var e = this.zoomLimit; 13244 e && (null != e.max && (t = Math.min(e.max, t)), null != e.min && (t = Math.max(e.min, t))), this._zoom = t, this._updateCenterAndZoom() 13245 }, 13246 getDefaultCenter: function() { var t = this.getBoundingRect(); return [t.x + t.width / 2, t.y + t.height / 2] }, 13247 getCenter: function() { return this._center || this.getDefaultCenter() }, 13248 getZoom: function() { return this._zoom || 1 }, 13249 getRoamTransform: function() { return this._roamTransformable.getLocalTransform() }, 13250 _updateCenterAndZoom: function() { 13251 var t = this._rawTransformable.getLocalTransform(), 13252 e = this._roamTransformable, 13253 i = this.getDefaultCenter(), 13254 n = this.getCenter(), 13255 o = this.getZoom(); 13256 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() 13257 }, 13258 _updateTransform: function() { 13259 var t = this._roamTransformable, 13260 e = this._rawTransformable; 13261 e.parent = t, t.updateTransform(), e.updateTransform(), ut(this.transform || (this.transform = []), e.transform || st()), this._rawTransform = e.getLocalTransform(), this.invTransform = this.invTransform || [], pt(this.invTransform, this.transform), this.decomposeTransform() 13262 }, 13263 getViewRect: function() { return this._viewRect }, 13264 getViewRectAfterRoam: function() { var t = this.getBoundingRect().clone(); return t.applyTransform(this.transform), t }, 13265 dataToPoint: function(t, e, i) { var n = e ? this._rawTransform : this.transform; return i = i || [], n ? lA(i, t, n) : G(i, t) }, 13266 pointToData: function(t) { var e = this.invTransform; return e ? lA([], t, e) : [t[0], t[1]] }, 13267 convertToPixel: v(bh, "dataToPoint"), 13268 convertFromPixel: v(bh, "pointToData"), 13269 containPoint: function(t) { return this.getViewRectAfterRoam().contain(t[0], t[1]) } 13270 }, h(wh, E_); 13271 for (var uA = [126, 25], hA = [ 13272 [ 13273 [0, 3.5], 13274 [7, 11.2], 13275 [15, 11.9], 13276 [30, 7], 13277 [42, .7], 13278 [52, .7], 13279 [56, 7.7], 13280 [59, .7], 13281 [64, .7], 13282 [64, 0], 13283 [5, 0], 13284 [0, 3.5] 13285 ], 13286 [ 13287 [13, 16.1], 13288 [19, 14.7], 13289 [16, 21.7], 13290 [11, 23.1], 13291 [13, 16.1] 13292 ], 13293 [ 13294 [12, 32.2], 13295 [14, 38.5], 13296 [15, 38.5], 13297 [13, 32.2], 13298 [12, 32.2] 13299 ], 13300 [ 13301 [16, 47.6], 13302 [12, 53.2], 13303 [13, 53.2], 13304 [18, 47.6], 13305 [16, 47.6] 13306 ], 13307 [ 13308 [6, 64.4], 13309 [8, 70], 13310 [9, 70], 13311 [8, 64.4], 13312 [6, 64.4] 13313 ], 13314 [ 13315 [23, 82.6], 13316 [29, 79.8], 13317 [30, 79.8], 13318 [25, 82.6], 13319 [23, 82.6] 13320 ], 13321 [ 13322 [37, 70.7], 13323 [43, 62.3], 13324 [44, 62.3], 13325 [39, 70.7], 13326 [37, 70.7] 13327 ], 13328 [ 13329 [48, 51.1], 13330 [51, 45.5], 13331 [53, 45.5], 13332 [50, 51.1], 13333 [48, 51.1] 13334 ], 13335 [ 13336 [51, 35], 13337 [51, 28.7], 13338 [53, 28.7],
13339 [53, 35], 13340 [51, 35] 13341 ], 13342 [ 13343 [52, 22.4], 13344 [55, 17.5], 13345 [56, 17.5], 13346 [53, 22.4], 13347 [52, 22.4] 13348 ], 13349 [ 13350 [58, 12.6], 13351 [62, 7], 13352 [63, 7], 13353 [60, 12.6], 13354 [58, 12.6] 13355 ], 13356 [ 13357 [0, 3.5], 13358 [0, 93.1], 13359 [64, 93.1], 13360 [64, 0], 13361 [63, 0], 13362 [63, 92.4], 13363 [1, 92.4], 13364 [1, 3.5], 13365 [0, 3.5] 13366 ] 13367 ], cA = 0; cA < hA.length; cA++) 13368 for (var dA = 0; dA < hA[cA].length; dA++) hA[cA][dA][0] /= 10.5, hA[cA][dA][1] /= -14, hA[cA][dA][0] += uA[0], hA[cA][dA][1] += uA[1]; 13369 var fA = { "åæµ·è¯¸å²": [32, 80], "广ä¸": [0, -10], "馿¸¯": [10, 5], "æ¾³é¨": [-10, 10], "天津": [5, 5] }, 13370 pA = { Russia: [100, 60], "United States": [-99, 38], "United States of America": [-99, 38] }, 13371 gA = [ 13372 [ 13373 [123.45165252685547, 25.73527164402261], 13374 [123.49731445312499, 25.73527164402261], 13375 [123.49731445312499, 25.750734064600884], 13376 [123.45165252685547, 25.750734064600884], 13377 [123.45165252685547, 25.73527164402261] 13378 ] 13379 ], 13380 mA = [function(t) { "china" === t.map && t.regions.push(new Cl("åæµ·è¯¸å²", f(hA, function(t) { return { type: "polygon", exterior: t } }), uA)) }, function(t) { 13381 d(t.regions, function(t) { 13382 var e = fA[t.name]; 13383 if (e) { 13384 var i = t.center; 13385 i[0] += e[0] / 10.5, i[1] += -e[1] / 14 13386 } 13387 }) 13388 }, function(t) { 13389 d(t.regions, function(t) { 13390 var e = pA[t.name]; 13391 if (e) { 13392 var i = t.center; 13393 i[0] = e[0], i[1] = e[1] 13394 } 13395 }) 13396 }, function(t) { 13397 if ("china" === t.map) 13398 for (var e = 0, i = t.regions.length; e < i; ++e) "å°æ¹¾" === t.regions[e].name && t.regions[e].geometries.push({ type: "polygon", exterior: gA[0] }) 13399 }]; 13400 Sh.prototype = { 13401 constructor: Sh, 13402 type: "geo", 13403 dimensions: ["lng", "lat"], 13404 containCoord: function(t) { 13405 for (var e = this.regions, i = 0; i < e.length; i++) 13406 if (e[i].contain(t)) return !0; 13407 return !1 13408 }, 13409 loadGeoJson: function(t, e, i) { 13410 try { this.regions = t ? XT(t) : [] } catch (t) { throw "Invalid geoJson format\n" + t.message } 13411 e = e || {}, i = i || {}; 13412 for (var n = this.regions, o = R(), a = 0; a < n.length; a++) { 13413 var r = n[a].name; 13414 r = i.hasOwnProperty(r) ? i[r] : r, n[a].name = r, o.set(r, n[a]), this.addGeoCoord(r, n[a].center); 13415 var s = e[r]; 13416 s && n[a].transformTo(s.left, s.top, s.width, s.height) 13417 } 13418 this._regionsMap = o, this._rect = null, d(mA, function(t) { t(this) }, this) 13419 }, 13420 transformTo: function(t, e, i, n) { 13421 var o = this.getBoundingRect(); 13422 (o = o.clone()).y = -o.y - o.height; 13423 var a = this._rawTransformable; 13424 a.transform = o.calculateTransform(new $t(t, e, i, n)), a.decomposeTransform(); 13425 var r = a.scale; 13426 r[1] = -r[1], a.updateTransform(), this._updateTransform() 13427 }, 13428 getRegion: function(t) { return this._regionsMap.get(t) }, 13429 getRegionByCoord: function(t) { 13430 for (var e = this.regions, i = 0; i < e.length; i++) 13431 if (e[i].contain(t)) return e[i] 13432 }, 13433 addGeoCoord: function(t, e) { this._nameCoordMap.set(t, e) }, 13434 getGeoCoord: function(t) { return this._nameCoordMap.get(t) }, 13435 getBoundingRect: function() { 13436 if (this._rect) return this._rect; 13437 for (var t, e = this.regions, i = 0; i < e.length; i++) {
13438 var n = e[i].getBoundingRect(); 13439 (t = t || n.clone()).union(n) 13440 } 13441 return this._rect = t || new $t(0, 0, 0, 0) 13442 }, 13443 dataToPoint: function(t, e, i) { if ("string" == typeof t && (t = this.getGeoCoord(t)), t) return wh.prototype.dataToPoint.call(this, t, e, i) }, 13444 convertToPixel: v(Mh, "dataToPoint"), 13445 convertFromPixel: v(Mh, "pointToData") 13446 }, h(Sh, wh); 13447 var vA = { 13448 dimensions: Sh.prototype.dimensions, 13449 create: function(t, e) { 13450 var i = []; 13451 t.eachComponent("geo", function(t, n) { 13452 var o = t.get("map"), 13453 a = ws(o), 13454 r = new Sh(o + n, o, a && a.geoJson, a && a.specialAreas, t.get("nameMap")); 13455 r.zoomLimit = t.get("scaleLimit"), i.push(r), Th(r, t), t.coordinateSystem = r, r.model = t, r.resize = Ih, r.resize(t, e) 13456 }), t.eachSeries(function(t) { 13457 if ("geo" === t.get("coordinateSystem")) { 13458 var e = t.get("geoIndex") || 0; 13459 t.coordinateSystem = i[e] 13460 } 13461 }); 13462 var n = {}; 13463 return t.eachSeriesByType("map", function(t) { 13464 if (!t.getHostGeoModel()) { 13465 var e = t.getMapType(); 13466 n[e] = n[e] || [], n[e].push(t) 13467 } 13468 }), d(n, function(t, n) { 13469 var a = ws(n), 13470 r = f(t, function(t) { return t.get("nameMap") }), 13471 s = new Sh(n, n, a && a.geoJson, a && a.specialAreas, o(r)); 13472 s.zoomLimit = T.apply(null, f(t, function(t) { return t.get("scaleLimit") })), i.push(s), s.resize = Ih, s.resize(t[0], e), d(t, function(t) { t.coordinateSystem = s, Th(s, t) }) 13473 }), i 13474 }, 13475 getFilledRegions: function(t, e, i) { 13476 var n = (t || []).slice(); 13477 i = i || {}; 13478 var o = ws(e), 13479 a = o && o.geoJson; 13480 if (!a) return t; 13481 for (var r = R(), s = a.features, l = 0; l < n.length; l++) r.set(n[l].name, n[l]); 13482 for (l = 0; l < s.length; l++) { 13483 var u = s[l].properties.name; 13484 r.get(u) || (i.hasOwnProperty(u) && (u = i[u]), n.push({ name: u })) 13485 } 13486 return n 13487 } 13488 }; 13489 ds("geo", vA); 13490 var yA = KM.extend({ 13491 type: "series.map", 13492 dependencies: ["geo"], 13493 layoutMode: "box", 13494 needsDrawMap: !1, 13495 seriesGroup: [], 13496 init: function(t) { yA.superApply(this, "init", arguments), this.updateSelectedMap(this._createSelectableList()) }, 13497 getInitialData: function(t) { return jD(this, ["value"]) }, 13498 mergeOption: function(t) { yA.superApply(this, "mergeOption", arguments), this.updateSelectedMap(this._createSelectableList()) }, 13499 _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: ir(t, n, "selected") }); return i = vA.getFilledRegions(i, this.getMapType(), this.option.nameMap) }, 13500 getHostGeoModel: function() { var t = this.option.geoIndex; return null != t ? this.dependentModels.geo[t] : null }, 13501 getMapType: function() { return (this.getHostGeoModel() || this).option.map }, 13502 _fillOption: function(t, e) {}, 13503 getRawValue: function(t) { var e = this.getData(); return e.get(e.mapDimension("value"), t) }, 13504 getRegionModel: function(t) { var e = this.getData(); return e.getItemModel(e.indexOfName(t)) }, 13505 formatTooltip: function(t) { 13506 for (var e = this.getData(), i = Fo(this.getRawValue(t)), n = e.getName(t), o = this.seriesGroup, a = [], r = 0; r < o.length; r++) { 13507 var s = o[r].originalData.indexOfName(n), 13508 l = e.mapDimension("value"); 13509 isNaN(o[r].originalData.get(l, s)) || a.push(Zo(o[r].name)) 13510 } 13511 return a.join(", ") + "<br />" + Zo(n + " : " + i) 13512 }, 13513 getTooltipPosition: function(t) { 13514 if (null != t) { 13515 var e = this.getData().getName(t), 13516 i = this.coordinateSystem, 13517 n = i.getRegion(e); 13518 return n && i.dataToPoint(n.center) 13519 } 13520 }, 13521 setZoom: function(t) { this.option.zoom = t }, 13522 setCenter: function(t) { this.option.center = t }, 13523 defaultOption: { zlevel: 0, z: 2, coordinateSystem: "geo", map: "", left: "center", top: "center", aspectScale: .75, showLegendSymbol: !0, dataRangeHoverLink: !0, boundingCoords: null, center: null, zoom: 1, scaleLimit: null, label: { show: !1, color: "#000" }, itemStyle: { borderWidth: .5, borderColor: "#444", areaColor: "#eee" }, emphasis: { label: { show: !0, color: "rgb(100,0,0)" }, itemStyle: { areaColor: "rgba(255,215,0,0.8)" } } } 13524 }); 13525 h(yA, YD); 13526 var xA = "\0_ec_interaction_mutex"; 13527 cs({ type: "takeGlobalCursor", event: "globalCursorTaken", update: "update" }, function() {}), h(kh, D_); 13528 var _A = { axisPointer: 1, tooltip: 1, brush: 1 }; 13529 Uh.prototype = { 13530 constructor: Uh, 13531 draw: function(t, e, i, n, o) { 13532 var a = "geo" === t.mainType, 13533 r = t.getData && t.getData(); 13534 a && e.eachComponent({ mainType: "series", subType: "map" }, function(e) { r || e.getHostGeoModel() !== t || (r = e.getData()) }); 13535 var s = t.coordinateSystem, 13536 l = this.group, 13537 u = s.scale, 13538 h = { position: s.position, scale: u }; 13539 !l.childAt(0) || o ? l.attr(h) : fo(l, h, t), l.removeAll(); 13540 var c = ["itemStyle"], 13541 f = ["emphasis", "itemStyle"], 13542 p = ["label"], 13543 g = ["emphasis", "label"], 13544 m = R(); 13545 d(s.regions, function(e) {
13546 var i = m.get(e.name) || m.set(e.name, new sw), 13547 n = new AS({ shape: { paths: [] } }); 13548 i.add(n); 13549 var o, s = (C = t.getRegionModel(e.name) || t).getModel(c), 13550 h = C.getModel(f), 13551 v = Fh(s), 13552 y = Fh(h), 13553 x = C.getModel(p), 13554 _ = C.getModel(g); 13555 if (r) { 13556 o = r.indexOfName(e.name); 13557 var w = r.getItemVisual(o, "color", !0); 13558 w && (v.fill = w) 13559 } 13560 d(e.geometries, function(t) { if ("polygon" === t.type) { n.shape.paths.push(new wS({ shape: { points: t.exterior } })); for (var e = 0; e < (t.interiors ? t.interiors.length : 0); e++) n.shape.paths.push(new wS({ shape: { points: t.interiors[e] } })) } }), n.setStyle(v), n.style.strokeNoScale = !0, n.culling = !0; 13561 var b = x.get("show"), 13562 S = _.get("show"), 13563 M = r && isNaN(r.get(r.mapDimension("value"), o)), 13564 I = r && r.getItemLayout(o); 13565 if (a || M && (b || S) || I && I.showLabel) { 13566 var T, D = a ? e.name : o; 13567 (!r || o >= 0) && (T = t); 13568 var A = new fS({ position: e.center.slice(), scale: [1 / u[0], 1 / u[1]], z2: 10, silent: !0 }); 13569 io(A.style, A.hoverStyle = {}, x, _, { labelFetcher: T, labelDataIndex: D, defaultText: e.name, useInsideStyle: !1 }, { textAlign: "center", textVerticalAlign: "middle" }), i.add(A) 13570 } 13571 if (r) r.setItemGraphicEl(o, i); 13572 else { 13573 var C = t.getRegionModel(e.name); 13574 n.eventData = { componentType: "geo", geoIndex: t.componentIndex, name: e.name, region: C && C.option || {} } 13575 }(i.__regions || (i.__regions = [])).push(e), eo(i, y, { hoverSilentOnTouch: !!t.get("selectedMode") }), l.add(i) 13576 }), this._updateController(t, e, i), Hh(this, t, l, i, n), Zh(t, l) 13577 }, 13578 remove: function() { this.group.removeAll(), this._controller.dispose(), this._controllerHost = {} }, 13579 _updateController: function(t, e, i) { 13580 function n() { var e = { type: "geoRoam", componentType: l }; return e[l + "Id"] = t.id, e } 13581 var o = t.coordinateSystem, 13582 r = this._controller, 13583 s = this._controllerHost; 13584 s.zoomLimit = t.get("scaleLimit"), s.zoom = o.getZoom(), r.enable(t.get("roam") || !1); 13585 var l = t.mainType; 13586 r.off("pan").on("pan", function(t, e) { this._mouseDownFlag = !1, Vh(s, t, e), i.dispatchAction(a(n(), { dx: t, dy: e })) }, this), r.off("zoom").on("zoom", function(t, e, o) { 13587 if (this._mouseDownFlag = !1, Gh(s, t, e, o), i.dispatchAction(a(n(), { zoom: t, originX: e, originY: o })), this._updateGroup) { 13588 var r = this.group, 13589 l = r.scale; 13590 r.traverse(function(t) { "text" === t.type && t.attr("scale", [1 / l[0], 1 / l[1]]) }) 13591 } 13592 }, this), r.setPointerChecker(function(e, n, a) { return o.getViewRectAfterRoam().contain(n, a) && !Wh(e, i, t) }) 13593 } 13594 }, _s({ 13595 type: "map", 13596 render: function(t, e, i, n) { 13597 if (!n || "mapToggleSelect" !== n.type || n.from !== this.uid) { 13598 var o = this.group; 13599 if (o.removeAll(), !t.getHostGeoModel()) { 13600 if (n && "geoRoam" === n.type && "series" === n.componentType && n.seriesId === t.id)(a = this._mapDraw) && o.add(a.group); 13601 else if (t.needsDrawMap) { 13602 var a = this._mapDraw || new Uh(i, !0); 13603 o.add(a.group), a.draw(t, e, i, this, n), this._mapDraw = a 13604 } else this._mapDraw && this._mapDraw.remove(), this._mapDraw = null; 13605 t.get("showLegendSymbol") && e.getComponent("legend") && this._renderSymbols(t, e, i) 13606 } 13607 } 13608 }, 13609 remove: function() { this._mapDraw && this._mapDraw.remove(), this._mapDraw = null, this.group.removeAll() }, 13610 dispose: function() { this._mapDraw && this._mapDraw.remove(), this._mapDraw = null }, 13611 _renderSymbols: function(t, e, i) { 13612 var n = t.originalData, 13613 o = this.group; 13614 n.each(n.mapDimension("value"), function(e, i) { 13615 if (!isNaN(e)) { 13616 var a = n.getItemLayout(i); 13617 if (a && a.point) { 13618 var r = a.point, 13619 s = a.offset, 13620 l = new pS({ style: { fill: t.getData().getVisual("color") }, shape: { cx: r[0] + 9 * s, cy: r[1], r: 3 }, silent: !0, z2: s ? 8 : 10 }); 13621 if (!s) { 13622 var u = t.mainSeries.getData(), 13623 h = n.getName(i), 13624 c = u.indexOfName(h), 13625 d = n.getItemModel(i), 13626 f = d.getModel("label"), 13627 p = d.getModel("emphasis.label"), 13628 g = u.getItemGraphicEl(c), 13629 m = D(t.getFormattedLabel(i, "normal"), h), 13630 v = D(t.getFormattedLabel(i, "emphasis"), m), 13631 y = function() { 13632 var t = no({}, p, { text: p.get("show") ? v : null }, { isRectText: !0, useInsideStyle: !1 }, !0); 13633 l.style.extendFrom(t), l.__mapOriginalZ2 = l.z2, l.z2 += 1 13634 }, 13635 x = function() { no(l.style, f, { text: f.get("show") ? m : null, textPosition: f.getShallow("position") || "bottom" }, { isRectText: !0, useInsideStyle: !1 }), null != l.__mapOriginalZ2 && (l.z2 = l.__mapOriginalZ2, l.__mapOriginalZ2 = null) }; 13636 g.on("mouseover", y).on("mouseout", x).on("emphasis", y).on("normal", x), x() 13637 } 13638 o.add(l) 13639 } 13640 } 13641 }) 13642 } 13643 }), cs({ type: "geoRoam", event: "geoRoam", update: "updateTransform" }, function(t, e) { 13644 var i = t.componentType || "series"; 13645 e.eachComponent({ mainType: i, query: t }, function(e) { 13646 var n = e.coordinateSystem; 13647 if ("geo" === n.type) { 13648 var o = Xh(n, t, e.get("scaleLimit")); 13649 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) }) 13650 } 13651 }) 13652 }); 13653 fs(function(t) { 13654 var e = {}; 13655 t.eachSeriesByType("map", function(i) { 13656 var n = i.getMapType(); 13657 if (!i.getHostGeoModel() && !e[n]) { 13658 var o = {}; 13659 d(i.seriesGroup, function(e) { 13660 var i = e.coordinateSystem, 13661 n = e.originalData; 13662 e.get("showLegendSymbol") && t.getComponent("legend") && n.each(n.mapDimension("value"), function(t, e) { 13663 var a = n.getName(e), 13664 r = i.getRegion(a); 13665 if (r && !isNaN(t)) { 13666 var s = o[a] || 0, 13667 l = i.dataToPoint(r.center); 13668 o[a] = s + 1, n.setItemLayout(e, { point: l, offset: s }) 13669 } 13670 }) 13671 }); 13672 var a = i.getData(); 13673 a.each(function(t) { 13674 var e = a.getName(t), 13675 i = a.getItemLayout(t) || {}; 13676 i.showLabel = !o[e], a.setItemLayout(t, i) 13677 }), e[n] = !0 13678 } 13679 }) 13680 }), ps(function(t) { 13681 t.eachSeriesByType("map", function(t) {
13682 var e = t.get("color"), 13683 i = t.getModel("itemStyle"), 13684 n = i.get("areaColor"), 13685 o = i.get("color") || e[t.seriesIndex % e.length]; 13686 t.getData().setVisual({ areaColor: n, color: o }) 13687 }) 13688 }), hs(LI.PROCESSOR.STATISTIC, function(t) { 13689 var e = {}; 13690 t.eachSeriesByType("map", function(t) { 13691 var i = t.getHostGeoModel(), 13692 n = i ? "o" + i.id : "i" + t.getMapType(); 13693 (e[n] = e[n] || []).push(t) 13694 }), d(e, function(t, e) { for (var i = jh(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] }) 13695 }), us(function(t) { 13696 var e = []; 13697 d(t.series, function(t) { t && "map" === t.type && (e.push(t), t.map = t.map || t.mapType, r(t, t.mapLocation)) }) 13698 }), $D("map", [{ type: "mapToggleSelect", event: "mapselectchanged", method: "toggleSelected" }, { type: "mapSelect", event: "mapselected", method: "select" }, { type: "mapUnSelect", event: "mapunselected", method: "unSelect" }]); 13699 var wA = d, 13700 bA = "\0__link_datas", 13701 SA = "\0__link_mainData", 13702 MA = 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 }; 13703 MA.prototype = { 13704 constructor: MA, 13705 isRemoved: function() { return this.dataIndex < 0 }, 13706 eachNode: function(t, e, i) { 13707 "function" == typeof t && (i = e, e = t, t = null), _(t = t || {}) && (t = { order: t }); 13708 var n, o = t.order || "preorder", 13709 a = this[t.attr || "children"]; 13710 "preorder" === o && (n = e.call(i, this)); 13711 for (var r = 0; !n && r < a.length; r++) a[r].eachNode(t, e, i); 13712 "postorder" === o && e.call(i, this) 13713 }, 13714 updateDepthAndHeight: function(t) { 13715 var e = 0; 13716 this.depth = t; 13717 for (var i = 0; i < this.children.length; i++) { 13718 var n = this.children[i]; 13719 n.updateDepthAndHeight(t + 1), n.height > e && (e = n.height) 13720 } 13721 this.height = e + 1 13722 }, 13723 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 } }, 13724 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 } }, 13725 getAncestors: function(t) { for (var e = [], i = t ? this : this.parentNode; i;) e.push(i), i = i.parentNode; return e.reverse(), e }, 13726 getValue: function(t) { var e = this.hostTree.data; return e.get(e.getDimension(t || "value"), this.dataIndex) }, 13727 setLayout: function(t, e) { this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, t, e) }, 13728 getLayout: function() { return this.hostTree.data.getItemLayout(this.dataIndex) }, 13729 getModel: function(t) { 13730 if (!(this.dataIndex < 0)) { 13731 var e, i = this.hostTree, 13732 n = i.data.getItemModel(this.dataIndex), 13733 o = this.getLevelModel(); 13734 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)) 13735 } 13736 }, 13737 getLevelModel: function() { return (this.hostTree.levelModels || [])[this.depth] }, 13738 getLeavesModel: function() { return this.hostTree.leavesModel }, 13739 setVisual: function(t, e) { this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, t, e) }, 13740 getVisual: function(t, e) { return this.hostTree.data.getItemVisual(this.dataIndex, t, e) }, 13741 getRawIndex: function() { return this.hostTree.data.getRawIndex(this.dataIndex) }, 13742 getId: function() { return this.hostTree.data.getId(this.dataIndex) }, 13743 isAncestorOf: function(t) { 13744 for (var e = t.parentNode; e;) { 13745 if (e === this) return !0; 13746 e = e.parentNode 13747 } 13748 return !1 13749 }, 13750 isDescendantOf: function(t) { return t !== this && t.isAncestorOf(this) } 13751 }, ic.prototype = { constructor: ic, 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() } }, ic.createTree = function(t, e, i) { 13752 function n(t, e) { 13753 var i = t.value; 13754 r = Math.max(r, y(i) ? i.length : 1), a.push(t);
13755 var s = new MA(t.name, o); 13756 e ? nc(s, e) : o.root = s, o._nodes.push(s); 13757 var l = t.children; 13758 if (l) 13759 for (var u = 0; u < l.length; u++) n(l[u], s) 13760 } 13761 var o = new ic(e, i.levels, i.leaves), 13762 a = [], 13763 r = 1; 13764 n(t), o.root.updateDepthAndHeight(0); 13765 var s = hT(a, { coordDimensions: ["value"], dimensionsCount: r }), 13766 l = new sT(s, e); 13767 return l.initData(a), Yh({ mainData: l, struct: o, structAttr: "tree" }), o.update(), o 13768 }, KM.extend({ 13769 type: "series.tree", 13770 layoutInfo: null, 13771 layoutMode: "box", 13772 getInitialData: function(t) { 13773 var e = { name: t.name, children: t.data }, 13774 i = t.leaves || {}, 13775 n = {}; 13776 n.leaves = i; 13777 var o = ic.createTree(e, this, n), 13778 a = 0; 13779 o.eachNode("preorder", function(t) { t.depth > a && (a = t.depth) }); 13780 var r = t.expandAndCollapse && t.initialTreeDepth >= 0 ? t.initialTreeDepth : a; 13781 return o.root.eachNode("preorder", function(t) { 13782 var e = t.hostTree.data.getRawDataItem(t.dataIndex); 13783 t.isExpand = e && null != e.collapsed ? !e.collapsed : t.depth <= r 13784 }), o.data 13785 }, 13786 getOrient: function() { var t = this.get("orient"); return "horizontal" === t ? t = "LR" : "vertical" === t && (t = "TB"), t }, 13787 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 Zo(a + (isNaN(o) || null == o ? "" : " : " + o)) }, 13788 defaultOption: { zlevel: 0, z: 2, left: "12%", top: "12%", right: "12%", bottom: "12%", layout: "orthogonal", orient: "LR", symbol: "emptyCircle", symbolSize: 7, expandAndCollapse: !0, initialTreeDepth: 2, lineStyle: { color: "#ccc", width: 1.5, curveness: .5 }, itemStyle: { color: "lightsteelblue", borderColor: "#c23531", borderWidth: 1.5 }, label: { show: !0, color: "#555" }, leaves: { label: { show: !0 } }, animationEasing: "linear", animationDuration: 700, animationDurationUpdate: 1e3 } 13789 }), _s({ 13790 type: "tree", 13791 init: function(t, e) { this._oldTree, this._mainGroup = new sw, this.group.add(this._mainGroup) }, 13792 render: function(t, e, i, n) { 13793 var o = t.getData(), 13794 a = t.layoutInfo, 13795 r = this._mainGroup, 13796 s = t.get("layout"); 13797 "radial" === s ? r.attr("position", [a.x + a.width / 2, a.y + a.height / 2]) : r.attr("position", [a.x, a.y]); 13798 var l = this._data, 13799 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 }; 13800 o.diff(l).add(function(e) { vc(o, e) && xc(o, e, null, r, t, u) }).update(function(e, i) { 13801 var n = l.getItemGraphicEl(i); 13802 vc(o, e) ? xc(o, e, n, r, t, u) : n && _c(l, i, n, r, t, u) 13803 }).remove(function(e) { 13804 var i = l.getItemGraphicEl(e); 13805 i && _c(l, e, i, r, t, u) 13806 }).execute(), !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 13807 }, 13808 dispose: function() {}, 13809 remove: function() { this._mainGroup.removeAll(), this._data = null } 13810 }), cs({ type: "treeExpandAndCollapse", event: "treeExpandAndCollapse", update: "update" }, function(t, e) { 13811 e.eachComponent({ mainType: "series", subType: "tree", query: t }, function(e) { 13812 var i = t.dataIndex, 13813 n = e.getData().tree.getNodeByDataIndex(i); 13814 n.isExpand = !n.isExpand 13815 }) 13816 }); 13817 ps(gD("tree", "circle")), fs(function(t, e) { t.eachSeriesByType("tree", function(t) { Mc(t, e) }) }), KM.extend({ 13818 type: "series.treemap", 13819 layoutMode: "box", 13820 dependencies: ["grid", "polar"], 13821 _viewRoot: null, 13822 defaultOption: { progressive: 0, hoverLayerThreshold: 1 / 0, left: "center", top: "middle", right: null, bottom: null, width: "80%", height: "80%", sort: !0, clipWindow: "origin", squareRatio: .5 * (1 + Math.sqrt(5)), leafDepth: null, drillDownIcon: "â¶", zoomToNodeRatio: .1024, roam: !0, nodeClick: "zoomToNode", animation: !0, animationDurationUpdate: 900, animationEasing: "quinticInOut", breadcrumb: { show: !0, height: 22, left: "center", top: "bottom", emptyItemWidth: 25, itemStyle: { color: "rgba(0,0,0,0.7)", 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" } }
13822, visualDimension: 0, visualMin: null, visualMax: null, color: [], colorAlpha: null, colorSaturation: null, colorMappingBy: "index", visibleMin: 10, childrenVisibleMin: null, levels: [] }, 13823 getInitialData: function(t, e) { 13824 var i = { name: t.name, children: t.data }; 13825 Cc(i); 13826 var n = t.levels || []; 13827 n = t.levels = Lc(n, e); 13828 var o = {}; 13829 return o.levels = n, ic.createTree(i, this, o).data 13830 }, 13831 optionUpdated: function() { this.resetViewRoot() }, 13832 formatTooltip: function(t) { 13833 var e = this.getData(), 13834 i = this.getRawValue(t), 13835 n = Fo(y(i) ? i[0] : i); 13836 return Zo(e.getName(t) + ": " + n) 13837 }, 13838 getDataParams: function(t) { 13839 var e = KM.prototype.getDataParams.apply(this, arguments), 13840 i = this.getData().tree.getNodeByDataIndex(t); 13841 return e.treePathInfo = Ac(i, this), e 13842 }, 13843 setLayoutInfo: function(t) { this.layoutInfo = this.layoutInfo || {}, a(this.layoutInfo, t) }, 13844 mapIdToIndex: function(t) { 13845 var e = this._idIndexMap; 13846 e || (e = this._idIndexMap = R(), this._idIndexMapCount = 0); 13847 var i = e.get(t); 13848 return null == i && e.set(t, i = this._idIndexMapCount++), i 13849 }, 13850 getViewRoot: function() { return this._viewRoot }, 13851 resetViewRoot: function(t) { 13852 t ? this._viewRoot = t : t = this._viewRoot; 13853 var e = this.getRawData().tree.root; 13854 t && (t === e || e.contains(t)) || (this._viewRoot = e) 13855 } 13856 }); 13857 var IA = 5; 13858 kc.prototype = { 13859 constructor: kc, 13860 render: function(t, e, i, n) { 13861 var o = t.getModel("breadcrumb"), 13862 a = this.group; 13863 if (a.removeAll(), o.get("show") && i) { 13864 var r = o.getModel("itemStyle"), 13865 s = r.getModel("textStyle"), 13866 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: [] }; 13867 this._prepare(i, l, s), this._renderContent(t, l, r, s, n), ta(a, l.pos, l.box) 13868 } 13869 }, 13870 _prepare: function(t, e, i) { 13871 for (var n = t; n; n = n.parentNode) { 13872 var o = n.getModel().get("name"), 13873 a = i.getTextRect(o), 13874 r = Math.max(a.width + 16, e.emptyItemWidth); 13875 e.totalWidth += r + 8, e.renderList.push({ node: n, text: o, width: r }) 13876 } 13877 }, 13878 _renderContent: function(t, e, i, n, o) { 13879 for (var a = 0, s = e.emptyItemWidth, l = t.get("breadcrumb.height"), u = Jo(e.pos, e.box), h = e.totalWidth, c = e.renderList, d = c.length - 1; d >= 0; d--) { 13880 var f = c[d], 13881 p = f.node, 13882 g = f.width, 13883 m = f.text; 13884 h > u.width && (h -= g - s, g = s, m = null); 13885 var y = new wS({ shape: { points: Pc(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) }); 13886 this.group.add(y), Nc(y, t, p), a += g + 8 13887 } 13888 }, 13889 remove: function() { this.group.removeAll() } 13890 }; 13891 var TA = m, 13892 DA = sw, 13893 AA = SS, 13894 CA = d, 13895 LA = ["label"], 13896 kA = ["emphasis", "label"], 13897 PA = ["upperLabel"], 13898 NA = ["emphasis", "upperLabel"], 13899 OA = 10, 13900 EA = 1, 13901 RA = 2, 13902 zA = sb([ 13903 ["fill", "color"], 13904 ["stroke", "strokeColor"], 13905 ["lineWidth", "strokeWidth"], 13906 ["shadowBlur"], 13907 ["shadowOffsetX"], 13908 ["shadowOffsetY"], 13909 ["shadowColor"] 13910 ]), 13911 BA = function(t) { var e = zA(t); return e.stroke = e.fill = e.lineWidth = null, e }; 13912 _s({ 13913 type: "treemap", 13914 init: function(t, e) { this._containerGroup, this._storage = { nodeGroup: [], background: [], content: [] }, this._oldTree, this._breadcrumb, this._controller, this._state = "ready" }, 13915 render: function(t, e, i, n) { 13916 if (!(l(e.findComponents({ mainType: "series", subType: "treemap", query: n }), t) < 0)) { 13917 this.seriesModel = t, this.api = i, this.ecModel = e; 13918 var o = Ic(n, ["treemapZoomToNode", "treemapRootToNode"], t), 13919 a = n && n.type, 13920 r = t.layoutInfo, 13921 s = !this._oldTree, 13922 u = this._storage, 13923 h = "treemapRootToNode" === a && o && u ? { rootNodeGroup: u.no
13923deGroup[o.node.getRawIndex()], direction: n.direction } : null, 13924 c = this._giveContainerGroup(r), 13925 d = this._doRender(c, t, h); 13926 s || a && "treemapZoomToNode" !== a && "treemapRootToNode" !== a ? d.renderFinally() : this._doAnimation(c, d, t, h), this._resetController(i), this._renderBreadcrumb(t, i, o) 13927 } 13928 }, 13929 _giveContainerGroup: function(t) { var e = this._containerGroup; return e || (e = this._containerGroup = new DA, this._initEvents(e), this.group.add(e)), e.attr("position", [t.x, t.y]), e }, 13930 _doRender: function(t, e, i) { 13931 function n(t, e, i, o, a) { 13932 function r(t) { return t.getId() } 13933 13934 function s(r, s) { 13935 var l = null != r ? t[r] : null, 13936 u = null != s ? e[s] : null, 13937 c = h(l, u, i, a); 13938 c && n(l && l.viewChildren || [], u && u.viewChildren || [], c, o, a + 1) 13939 } 13940 o ? (e = t, CA(t, function(t, e) {!t.isRemoved() && s(e, e) })) : new Ss(e, t, r, r).add(s).update(s).remove(v(s, null)).execute() 13941 } 13942 var o = e.getData().tree, 13943 a = this._oldTree, 13944 r = { nodeGroup: [], background: [], content: [] }, 13945 s = { nodeGroup: [], background: [], content: [] }, 13946 l = this._storage, 13947 u = [], 13948 h = v(Ec, e, s, l, i, r, u); 13949 n(o.root ? [o.root] : [], a && a.root ? [a.root] : [], t, o === a || !a, 0); 13950 var c = function(t) { 13951 var e = { nodeGroup: [], background: [], content: [] }; 13952 return t && CA(t, function(t, i) { 13953 var n = e[i]; 13954 CA(t, function(t) { t && (n.push(t), t.__tmWillDelete = 1) }) 13955 }), e 13956 }(l); 13957 return this._oldTree = o, this._storage = s, { lastsForAnimation: r, willDeleteEls: c, renderFinally: function() { CA(c, function(t) { CA(t, function(t) { t.parent && t.parent.remove(t) }) }), CA(u, function(t) { t.invisible = !0, t.dirty() }) } } 13958 }, 13959 _doAnimation: function(t, e, i, n) { 13960 if (i.get("animation")) { 13961 var o = i.get("animationDurationUpdate"), 13962 r = i.get("animationEasing"), 13963 s = Oc(); 13964 CA(e.willDeleteEls, function(t, e) { 13965 CA(t, function(t, i) { 13966 if (!t.invisible) { 13967 var a, l = t.parent; 13968 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 } }; 13969 else { 13970 var u = 0, 13971 h = 0; 13972 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 } } 13973 } 13974 a && s.add(t, a, o, r) 13975 } 13976 }) 13977 }), CA(this._storage, function(t, i) { 13978 CA(t, function(t, n) { 13979 var l = e.lastsForAnimation[i][n], 13980 u = {}; 13981 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)) 13982 }) 13983 }, this), this._state = "animating", s.done(TA(function() { this._state = "ready", e.renderFinally() }, this)).start() 13984 } 13985 }, 13986 _resetController: function(t) { 13987 var e = this._controller; 13988 e || ((e = this._controller = new kh(t.getZr())).enable(this.seriesModel.get("roam")), e.on("pan", TA(this._onPan, this)), e.on("zoom", TA(this._onZoom, this))); 13989 var i = new $t(0, 0, t.getWidth(), t.getHeight()); 13990 e.setPointerChecker(function(t, e, n) { return i.contain(e, n) }) 13991 }, 13992 _clearController: function() { 13993 var t = this._controller; 13994 t && (t.dispose(), t = null) 13995 }, 13996 _onPan: function(t, e) { 13997 if ("animating" !== this._state && (Math.abs(t) > 3 || Math.abs(e) > 3)) { 13998 var i = this.seriesModel.getData().tree.root; 13999 if (!i) return; 14000 var n = i.getLayout(); 14001 if (!n) return; 14002 this.api.dispatchAction({ type: "treemapMove", from: this.uid, seriesId: this.seriesModel.id, rootRect: { x: n.x + t, y: n.y + e, width: n.width, height: n.height } }) 14003 } 14004 }, 14005 _onZoom: function(t, e, i) { 14006 if ("animating" !== this._state) { 14007 var n = this.seriesModel.getData().tree.root; 14008 if (!n) return; 14009 var o = n.getLayout(); 14010 if (!o) return; 14011 var a = new $t(o.x, o.y, o.width, o.height), 14012 r = this.seriesModel.layoutInfo; 14013 e -= r.x, i -= r.y; 14014 var s = st();
14015 ct(s, s, [-e, -i]), ft(s, s, [t, t]), ct(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 } }) 14016 } 14017 }, 14018 _initEvents: function(t) { 14019 t.on("click", function(t) { 14020 if ("ready" === this._state) { 14021 var e = this.seriesModel.get("nodeClick", !0); 14022 if (e) { 14023 var i = this.findTarget(t.offsetX, t.offsetY); 14024 if (i) { 14025 var n = i.node; 14026 if (n.getLayout().isLeafRoot) this._rootToNode(i); 14027 else if ("zoomToNode" === e) this._zoomToNode(i); 14028 else if ("link" === e) { 14029 var o = n.hostTree.data.getItemModel(n.dataIndex), 14030 a = o.get("link", !0), 14031 r = o.get("target", !0) || "blank"; 14032 a && window.open(a, r) 14033 } 14034 } 14035 } 14036 } 14037 }, this) 14038 }, 14039 _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 kc(this.group))).render(t, e, i.node, TA(function(e) { "animating" !== this._state && (Dc(t.getViewRoot(), e) ? this._rootToNode({ node: e }) : this._zoomToNode({ node: e })) }, this)) }, 14040 remove: function() { this._clearController(), this._containerGroup && this._containerGroup.removeAll(), this._storage = { nodeGroup: [], background: [], content: [] }, this._state = "ready", this._breadcrumb && this._breadcrumb.remove() }, 14041 dispose: function() { this._clearController() }, 14042 _zoomToNode: function(t) { this.api.dispatchAction({ type: "treemapZoomToNode", from: this.uid, seriesId: this.seriesModel.id, targetNode: t.node }) }, 14043 _rootToNode: function(t) { this.api.dispatchAction({ type: "treemapRootToNode", from: this.uid, seriesId: this.seriesModel.id, targetNode: t.node }) }, 14044 findTarget: function(t, e) { 14045 var i; 14046 return this.seriesModel.getViewRoot().eachNode({ attr: "viewChildren", order: "preorder" }, function(n) { 14047 var o = this._storage.background[n.getRawIndex()]; 14048 if (o) { 14049 var a = o.transformCoordToLocal(t, e), 14050 r = o.shape; 14051 if (!(r.x <= a[0] && a[0] <= r.x + r.width && r.y <= a[1] && a[1] <= r.y + r.height)) return !1; 14052 i = { node: n, offsetX: a[0], offsetY: a[1] } 14053 } 14054 }, this), i 14055 } 14056 }); 14057 for (var VA = ["treemapZoomToNode", "treemapRender", "treemapMove"], GA = 0; GA < VA.length; GA++) cs({ type: VA[GA], update: "updateView" }, function() {}); 14058 cs({ type: "treemapRootToNode", update: "updateView" }, function(t, e) { 14059 e.eachComponent({ mainType: "series", subType: "treemap", query: t }, function(e, i) { 14060 var n = Ic(t, ["treemapZoomToNode", "treemapRootToNode"], e); 14061 if (n) { 14062 var o = e.getViewRoot(); 14063 o && (t.direction = Dc(o, n.node) ? "rollUp" : "drillDown"), e.resetViewRoot(n.node) 14064 } 14065 }) 14066 }); 14067 var WA = d, 14068 FA = w, 14069 HA = -1, 14070 ZA = function(t) { 14071 var e = t.mappingMethod, 14072 n = t.type, 14073 o = this.option = i(t); 14074 this.type = n, this.mappingMethod = e, this._normalizeData = XA[e]; 14075 var a = UA[n]; 14076 this.applyVisual = a.applyVisual, this.getColorMapper = a.getColorMapper, this._doMap = a._doMap[e], "piecewise" === e ? (Vc(o), zc(o)) : "category" === e ? o.categories ? Bc(o) : Vc(o, !0) : (k("linear" !== e || o.dataExtent), Vc(o)) 14077 }; 14078 ZA.prototype = { constructor: ZA, mapValueToVisual: function(t) { var e = this._normalizeData(t); return this._doMap(e, t) }
14078, getNormalizer: function() { return m(this._normalizeData, this) } }; 14079 var UA = ZA.visualHandlers = { 14080 color: { applyVisual: Fc("color"), getColorMapper: function() { var t = this.option; return m("category" === t.mappingMethod ? function(t, e) { return !e && (t = this._normalizeData(t)), Hc.call(this, t) } : function(e, i, n) { var o = !!n; return !i && (e = this._normalizeData(e)), n = Nt(e, t.parsedVisual, n), o ? n : zt(n, "rgba") }, this) }, _doMap: { linear: function(t) { return zt(Nt(t, this.option.parsedVisual), "rgba") }, category: Hc, piecewise: function(t, e) { var i = Xc.call(this, e); return null == i && (i = zt(Nt(t, this.option.parsedVisual), "rgba")), i }, fixed: Zc } }, 14081 colorHue: Gc(function(t, e) { return Et(t, e) }), 14082 colorSaturation: Gc(function(t, e) { return Et(t, null, e) }), 14083 colorLightness: Gc(function(t, e) { return Et(t, null, null, e) }), 14084 colorAlpha: Gc(function(t, e) { return Rt(t, e) }), 14085 opacity: { applyVisual: Fc("opacity"), _doMap: Uc([0, 1]) }, 14086 liftZ: { applyVisual: Fc("liftZ"), _doMap: { linear: Zc, category: Zc, piecewise: Zc, fixed: Zc } }, 14087 symbol: { 14088 applyVisual: function(t, e, i) { 14089 var n = this.mapValueToVisual(t); 14090 if (_(n)) i("symbol", n); 14091 else if (FA(n)) 14092 for (var o in n) n.hasOwnProperty(o) && i(o, n[o]) 14093 }, 14094 _doMap: { linear: Wc, category: Hc, piecewise: function(t, e) { var i = Xc.call(this, e); return null == i && (i = Wc.call(this, t)), i }, fixed: Zc } 14095 }, 14096 symbolSize: { applyVisual: Fc("symbolSize"), _doMap: Uc([0, 1]) } 14097 }, 14098 XA = { 14099 linear: function(t) { return To(t, this.option.dataExtent, [0, 1], !0) }, 14100 piecewise: function(t) { 14101 var e = this.option.pieceList, 14102 i = ZA.findPieceIndex(t, e, !0); 14103 if (null != i) return To(i, [0, e.length - 1], [0, 1], !0) 14104 }, 14105 category: function(t) { var e = this.option.categories ? this.option.categoryMap[t] : t; return null == e ? HA : e }, 14106 fixed: B 14107 }; 14108 ZA.listVisualTypes = function() { var t = []; return d(UA, function(e, i) { t.push(i) }), t }, ZA.addVisualHandler = function(t, e) { UA[t] = e }, ZA.isValidType = function(t) { return UA.hasOwnProperty(t) }, ZA.eachVisual = function(t, e, i) { w(t) ? d(t, e, i) : e.call(i, t) }, ZA.mapVisual = function(t, e, i) { 14109 var n, o = y(t) ? [] : w(t) ? {} : (n = !0, null); 14110 return ZA.eachVisual(t, function(t, a) { 14111 var r = e.call(i, t, a); 14112 n ? o = r : o[a] = r 14113 }), o 14114 }, ZA.retrieveVisuals = function(t) { var e, i = {}; return t && WA(UA, function(n, o) { t.hasOwnProperty(o) && (i[o] = t[o], e = !0) }), e ? i : null }, ZA.prepareVisualTypes = function(t) { 14115 if (FA(t)) { 14116 var e = []; 14117 WA(t, function(t, i) { e.push(i) }), t = e 14118 } else { 14119 if (!y(t)) return []; 14120 t = t.slice() 14121 } 14122 return t.sort(function(t, e) { return "color" === e && "color" !== t && 0 === t.indexOf("color") ? 1 : -1 }), t 14123 }, ZA.dependsOn = function(t, e) { return "color" === e ? !(!t || 0 !== t.indexOf(e)) : t === e }, ZA.findPieceIndex = function(t, e, i) { 14124 function n(e, i) { 14125 var n = Math.abs(e - t); 14126 n < a && (a = n, o = i) 14127 } 14128 for (var o, a = 1 / 0, r = 0, s = e.length; r < s; r++) { 14129 var l = e[r].value; 14130 if (null != l) { 14131 if (l === t || "string" == typeof l && l === t + "") return r; 14132 i && n(l, r) 14133 } 14134 } 14135 for (var r = 0, s = e.length; r < s; r++) { 14136 var u = e[r], 14137 h = u.interval, 14138 c = u.close; 14139 if (h) { 14140 if (h[0] === -1 / 0) { if (Yc(c[1], t, h[1])) return r } else if (h[1] === 1 / 0) { if (Yc(c[0], h[0], t)) return r } else if (Yc(c[0], h[0], t) && Yc(c[1], t, h[1])) return r; 14141 i && n(h[0], r), i && n(h[1], r) 14142 } 14143 } 14144 if (i) return t === 1 / 0 ? e.length - 1 : t === -1 / 0 ? 0 : o 14145 }; 14146 var jA = y, 14147 YA = "itemStyle", 14148 qA = { 14149 seriesType: "treemap", 14150 reset: function(t, e, i, n) { 14151 var o = t.getData().tree, 14152 a = o.root, 14153 r = t.getModel(YA); 14154 a.isRemoved() || qc(a, {}, f(o.levelModels, function(t) { return t ? t.get(YA) : null }), r, t.getViewRoot().getAncestors(), t) 14155 } 14156 }, 14157 KA = Math.max, 14158 $A = Math.min, 14159 JA = T, 14160 QA = d, 14161 tC = ["itemStyle", "borderWidth"], 14162 eC = ["itemStyle", "gapWidth"], 14163 iC = ["upperLabel", "show"], 14164 nC = ["upperLabel", "height"], 14165 oC = { 14166 seriesType: "treemap", 14167 reset: function(t, e, i, n) { 14168 var o = i.getWidth(), 14169 r = i.getHeight(), 14170 s = t.option, 14171 l = Qo(t.getBoxLayoutParams(), { width: i.getWidth(), height: i.getHeight() }), 14172 u = s.size || [], 14173 h = Do(JA(l.width, u[0]), o), 14174 c = Do(JA(l.height, u[1]), r), 14175 d = n && n.type, 14176 f = Ic(n, ["treemapZoomToNode", "treemapRootToNode"], t), 14177 p = "treemapRender" === d || "treemapMove" === d ? n.rootRect : null, 14178 g = t.getViewRoot(), 14179 m = Tc(g); 14180 if ("treemapMove" !== d) { 14181 var v = "treemapZoomToNode" === d ? hd(t, f, g, h, c) : p ? [p.width, p.height] : [h, c], 14182 y = s.sort; 14183 y && "asc" !== y && "desc" !== y && (y = "desc"); 14184 var x = { squareRatio: s.squareRatio, sort: y, leafDepth: s.leafDepth }; 14185 g.hostTree.clearLayouts(); 14186 _ = { x: 0, y: 0, width: v[0], height: v[1], area: v[0] * v[1] }; 14187 g.setLayout(_), nd(g, x, !1, 0); 14188 var _ = g.getLayout(); 14189 QA(m, function(t, e) { 14190 var i = (m[e + 1] || g).getValue(); 14191 t.setLayout(a({ dataExtent: [i, i], borderWidth: 0, upperHeight: 0 }, _)) 14192 }) 14193 } 14194 var w = t.getData().tree.root; 14195 w.setLayout(cd(l, p, f), !0), t.setLayoutInfo(l), dd(w, new $t(-l.x, -l.y, o, r), m, g, 0) 14196 } 14197 }; 14198 ps(qA), fs(oC); 14199 var aC = function(t) { this._directed = t || !1, this.nodes = [], this.edges = [], this._nodesMap = {}, this._edgesMap = {}, this.data, this.edgeData }, 14200 rC = aC.prototype; 14201 rC.type = "graph", rC.isDirected = function() { return this._directed }, rC.addNode = function(t, e) { t = t || "" + e; var i = this._nodesMap; if (!i[pd(t)]) { var n = new gd(t, e); return n.hostGraph = this, this.nodes.push(n), i[pd(t)] = n, n } }, rC.getNodeByIndex = function(t) { var e = this.data.getRawIndex(t); return this.nodes[e] }, rC.getNodeById = function(t) { return this._nodesMap[pd(t)] }, rC.addEdge = function(t, e, i) { 14202 var n = this._nodesMap, 14203 o = this._edgesMap; 14204 if ("number" == typeof t && (t = this.nodes[t]), "number" == typeof e && (e = this.nodes[e]), gd.isInstance(t) || (t = n[pd(t)]), gd.isInstance(e) || (e = n[pd(e)]), t && e) { var a = t.id + "-" + e.id; if (!o[a]) { var r = new md(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 } } 14205 }, rC.getEdgeByIndex = function(t) { var e = this.edgeData.getRawIndex(t); return this.edges[e] }, rC.getEdge = function(t, e) { gd.isInstance(t) && (t = t.id), gd.isInstance(e) && (e = e.id); var i = this._edgesMap; return this._directed ? i[t + "-" + e] : i[t + "-" + e] || i[e + "-" + t] }, rC.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) }, rC.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) }, rC.breadthFirstTraverse = function(t, e, i, n) { 14206 if (gd.isInstance(e) || (e = this._nodesMap[pd(e)]), e) { 14207 for (var o = "out" === i ? "outEdges" : "in" === i ? "inEdges" : "edges", a = 0; a < this.nodes.length; a++) this.nodes[a].__visited = !1; 14208 if (!t.call(n, e, null)) 14209 for (var r = [e]; r.length;) 14210 for (var s = r.shift(), l = s[o], a = 0; a < l.length; a++) { 14211 var u = l[a], 14212 h = u.node1 === s ? u.node2 : u.node1; 14213 if (!h.__visited) { 14214 if (t.call(n, h, s)) return; 14215 r.push(h), h.__visited = !0 14216 } 14217 } 14218 } 14219 }, rC.update = function() { 14220 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; 14221 for (var o = 0, a = t.count(); o < a; o++) i[t.getRawIndex(o)].dataIndex = o; 14222 e.filterSelf(function(t) { var i = n[e.getRawIndex(t)]; return i.node1.dataIndex >= 0 && i.node2.dataIndex >= 0 }); 14223 for (var o = 0, a = n.length; o < a; o++) n[o].dataIndex = -1; 14224 for (var o = 0, a = e.count(); o < a; o++) n[e.getRawIndex(o)].dataIndex = o 14225 }, rC.clone = function() { 14226 for (var t = new aC(this._directed), e = this.nodes, i = this.edges, n = 0; n < e.length; n++) t.addNode(e[n].id, e[n].dataIndex); 14227 for (n = 0; n < i.length; n++) { 14228 var o = i[n]; 14229 t.addEdge(o.node1.id, o.node2.id, o.dataIndex) 14230 } 14231 return t 14232 }, gd.prototype = { constructor: gd, 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) } }, md.prototype.getModel = function(t) { if (!(this.dataIndex < 0)) return this.hostGraph.edgeData.getItemModel(this.dataIndex).getModel(t) }; 14233 var sC = 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) } } }; 14234 h(gd, sC("hostGraph", "data")), h(md, sC("hostGraph", "edgeData")), aC.Node = gd, aC.Edge = md, Wi(gd), Wi(md); 14235 var lC = function(t, e, i, n, o) { 14236 for (var a = new aC(n), r = 0; r < t.length; r++) a.addNode(T(t[r].id, t[r].name, r), r); 14237 for (var s = [], u = [], h = 0, r = 0; r < e.length; r++) { 14238 var c = e[r], 14239 d = c.source, 14240 f = c.target; 14241 a.addEdge(d, f, h) && (u.push(c), s.push(T(c.id, d + " > " + f)), h++) 14242 } 14243 var p, g = i.get("coordinateSystem"); 14244 if ("cartesian2d" === g || "polar" === g) p = Xs(t, i); 14245 else { 14246 var m = Ca.get(g), 14247 v = m && "view" !== m.type ? m.dimensions || [] : []; 14248 l(v, "value") < 0 && v.concat(["value"]); 14249 var y = hT(t, { coordDimensions: v }); 14250 (p = new sT(y, i)).initData(t) 14251 } 14252 var x = new sT(["value"], i); 14253 return x.initData(u, s), o && o(p, x), Yh({ mainData: p, struct: a, structAttr: "graph", datas: { node: p, edge: x }, datasAttr: { node: "data", edge: "edgeData" } }), a.update(), a 14254 }, 14255 uC = xs({ 14256 type: "series.graph", 14257 init: function(t) { uC.superApply(this, "init", arguments), this.legendDataProvider = function() { return this._categoriesData }, this.fillDataTextStyle(t.edges || t.links), this._updateCategoriesData() }, 14258 mergeOption: function(t) { uC.superApply(this, "mergeOption", arguments), this.fillDataTextStyle(t.edges || t.links), this._updateCategoriesData() }, 14259 mergeDefaultAndTheme: function(t) { uC.superApply(this, "mergeDefaultAndTheme", arguments), Mi(t, ["edgeLabel"], ["show"]) }, 14260 getInitialData: function(t, e) { 14261 var i = t.edges || t.links || [], 14262 n = t.data || t.nodes || [], 14263 o = this; 14264 if (n && i) return lC(n, i, this, !0, function(t, i) { 14265 function n(t) { return (t = this.parsePath(t)) && "label" === t[0] ? r : t && "emphasis" === t[0] && "label" === t[1] ? l : this.parentModel } 14266 t.wrapMethod("getItemModel", function(t) { var e = o._categoriesModels[t.getShallow("category")]; return e && (e.parentModel = t.parentModel, t.parentModel = e), t }); 14267 var a = o.getModel("edgeLabel"), 14268 r = new wo({ label: a.option }, a.parentModel, e), 14269 s = o.getModel("emphasis.edgeLabel"), 14270 l = new wo({ emphasis: { label: s.option } }, s.parentModel, e); 14271 i.wrapMethod("getItemModel", function(t) { return t.customizeGetParent(n), t }) 14272 }).data 14273 }, 14274 getGraph: function() { return this.getData().graph }, 14275 getEdgeData: function() { return this.getGraph().edgeData }, 14276 getCategoriesData: function() { return this._categoriesData }, 14277 formatTooltip: function(t, e, i) { 14278 if ("edge" === i) { 14279 var n = this.getData(), 14280 o = this.getDataParams(t, i), 14281 a = n.graph.getEdgeByIndex(t), 14282 r = n.getName(a.node1.dataIndex), 14283 s = n.getName(a.node2.dataIndex), 14284 l = []; 14285 return null != r && l.push(r), null != s && l.push(s), l = Zo(l.join(" > ")), o.value && (l += " : " + Zo(o.value)), l 14286 } 14287 return uC.superApply(this, "formatTooltip", arguments) 14288 }, 14289 _updateCategoriesData: function() { 14290 var t = f(this.option.categories || [], function(t) { return null != t.value ? t : a({ value: 0 }, t) }), 14291 e = new sT(["value"], this); 14292 e.initData(t), this._categoriesData = e, this._categoriesModels = e.mapArray(function(t) { return e.getItemModel(t, !0) }) 14293 }, 14294 setZoom: function(t) { this.option.zoom = t }, 14295 setCenter: function(t) { this.option.center = t }, 14296 isAnimationEnabled: function() { return uC.superCall(this, "isAnimationEnabled") && !("force" === this.get("layout") && this.get("force.layoutAnimation")) }, 14297 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: .1, edgeLength: 30, layoutAnimation: !0 }
14297, 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: .6, label: { show: !1, formatter: "{b}" }, itemStyle: {}, lineStyle: { color: "#aaa", width: 1, curveness: 0, opacity: .5 }, emphasis: { label: { show: !0 } } } 14298 }), 14299 hC = MS.prototype, 14300 cC = TS.prototype, 14301 dC = En({ 14302 type: "ec-line", 14303 style: { stroke: "#000", fill: null }, 14304 shape: { x1: 0, y1: 0, x2: 0, y2: 0, percent: 1, cpx1: null, cpy1: null }, 14305 buildPath: function(t, e) { 14306 (vd(e) ? hC : cC).buildPath(t, e) 14307 }, 14308 pointAt: function(t) { return vd(this.shape) ? hC.pointAt.call(this, t) : cC.pointAt.call(this, t) }, 14309 tangentAt: function(t) { 14310 var e = this.shape, 14311 i = vd(e) ? [e.x2 - e.x1, e.y2 - e.y1] : cC.tangentAt.call(this, t); 14312 return q(i, i) 14313 } 14314 }), 14315 fC = ["fromSymbol", "toSymbol"], 14316 pC = bd.prototype; 14317 pC.beforeUpdate = function() { 14318 var t = this, 14319 e = t.childOfName("fromSymbol"), 14320 i = t.childOfName("toSymbol"), 14321 n = t.childOfName("label"); 14322 if (e || i || !n.ignore) { 14323 for (var o = 1, a = this.parent; a;) a.scale && (o /= a.scale[0]), a = a.parent; 14324 var r = t.childOfName("line"); 14325 if (this.__dirty || r.__dirty) { 14326 var s = r.shape.percent, 14327 l = r.pointAt(0), 14328 u = r.pointAt(s), 14329 h = U([], u, l); 14330 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) { 14331 i.attr("position", u); 14332 var c = r.tangentAt(1); 14333 i.attr("rotation", -Math.PI / 2 - Math.atan2(c[1], c[0])), i.attr("scale", [o * s, o * s]) 14334 } 14335 if (!n.ignore) { 14336 n.attr("position", u); 14337 var d, f, p, g = 5 * o; 14338 if ("end" === n.__position) d = [h[0] * g + u[0], h[1] * g + u[1]], f = h[0] > .8 ? "left" : h[0] < -.8 ? "right" : "center", p = h[1] > .8 ? "top" : h[1] < -.8 ? "bottom" : "middle"; 14339 else if ("middle" === n.__position) { 14340 var m = s / 2, 14341 v = [(c = r.tangentAt(m))[1], -c[0]], 14342 y = r.pointAt(m); 14343 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"; 14344 var x = -Math.atan2(c[1], c[0]); 14345 u[0] < l[0] && (x = Math.PI + x), n.attr("rotation", x) 14346 } else d = [-h[0] * g + l[0], -h[1] * g + l[1]], f = h[0] > .8 ? "right" : h[0] < -.8 ? "left" : "center", p = h[1] > .8 ? "bottom" : h[1] < -.8 ? "top" : "middle"; 14347 n.attr({ style: { textVerticalAlign: n.__verticalAlign || p, textAlign: n.__textAlign || f }, position: d, scale: [o, o] }) 14348 } 14349 } 14350 } 14351 }, pC._createLine = function(t, e, i) { 14352 var n = t.hostModel, 14353 o = _d(t.getItemLayout(e)); 14354 o.shape.percent = 0, po(o, { shape: { percent: 1 } }, n, e), this.add(o); 14355 var a = new fS({ name: "label" }); 14356 this.add(a), d(fC, function(i) { 14357 var n = xd(i, t, e); 14358 this.add(n), this[yd(i)] = t.getItemVisual(e, i) 14359 }, this), this._updateCommonStl(t, e, i) 14360 }, pC.updateData = function(t, e, i) { 14361 var n = t.hostModel, 14362 o = this.childOfName("line"), 14363 a = t.getItemLayout(e), 14364 r = { shape: {} }; 14365 wd(r.shape, a), fo(o, r, n, e), d(fC, function(i) { 14366 var n = t.getItemVisual(e, i), 14367 o = yd(i); 14368 if (this[o] !== n) { 14369 this.remove(this.childOfName(i)); 14370 var a = xd(i, t, e); 14371 this.add(a) 14372 } 14373 this[o] = n 14374 }, this), this._updateCommonStl(t, e, i) 14375 }, pC._updateCommonStl = function(t, e, i) { 14376 var n = t.hostModel, 14377 o = this.childOfName("line"), 14378 a = i && i.lineStyle, 14379 s = i && i.hoverLineStyle, 14380 l = i && i.labelModel, 14381 u = i && i.hoverLabelModel; 14382 if (!i || t.hasItemOption) { 14383 var h = t.getItemModel(e); 14384 a = h.getModel("lineStyle").getLineStyle(), s = h.getModel("emphasis.lineStyle").getLineStyle(), l = h.getModel("label"), u = h.getModel("emphasis.label") 14385 } 14386 var c = t.getItemVisual(e, "color"), 14387 f = A(t.getItemVisual(e, "opacity"), a.opacity, 1); 14388 o.useStyle(r({ strokeNoScale: !0, fill: "none", stroke: c, opacity: f }, a)), o.hoverStyle = s, d(fC, function(t) { 14389 var e = this.childOfName(t);
14390 e && (e.setColor(c), e.setStyle({ opacity: f })) 14391 }, this); 14392 var p, g, m = l.getShallow("show"), 14393 v = u.getShallow("show"), 14394 y = this.childOfName("label"); 14395 if ((m || v) && (p = c || "#000", null == (g = n.getFormattedLabel(e, "normal", t.dataType)))) { 14396 var x = n.getRawValue(e); 14397 g = null == x ? t.getName(e) : isFinite(x) ? Ao(x) : x 14398 } 14399 var _ = m ? g : null, 14400 w = v ? D(n.getFormattedLabel(e, "emphasis", t.dataType), g) : null, 14401 b = y.style; 14402 null == _ && null == w || (no(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, eo(this) 14403 }, pC.highlight = function() { this.trigger("emphasis") }, pC.downplay = function() { this.trigger("normal") }, pC.updateLayout = function(t, e) { this.setLinePoints(t.getItemLayout(e)) }, pC.setLinePoints = function(t) { 14404 var e = this.childOfName("line"); 14405 wd(e.shape, t), e.dirty() 14406 }, u(bd, sw); 14407 var gC = Sd.prototype; 14408 gC.isPersistent = function() { return !0 }, gC.updateData = function(t) { 14409 var e = this, 14410 i = e.group, 14411 n = e._lineData; 14412 e._lineData = t, n || i.removeAll(); 14413 var o = Td(t); 14414 t.diff(n).add(function(i) { Md(e, t, i, o) }).update(function(i, a) { Id(e, n, t, a, i, o) }).remove(function(t) { i.remove(n.getItemGraphicEl(t)) }).execute() 14415 }, gC.updateLayout = function() { 14416 var t = this._lineData; 14417 t && t.eachItemGraphicEl(function(e, i) { e.updateLayout(t, i) }, this) 14418 }, gC.incrementalPrepareUpdate = function(t) { this._seriesScope = Td(t), this._lineData = null, this.group.removeAll() }, gC.incrementalUpdate = function(t, e) { 14419 for (var i = t.start; i < t.end; i++) 14420 if (Ad(e.getItemLayout(i))) { 14421 var n = new this._ctor(e, i, this._seriesScope); 14422 n.traverse(function(t) { t.isGroup || (t.incremental = t.useHoverLayer = !0) }), this.group.add(n), e.setItemGraphicEl(i, n) 14423 } 14424 }, gC.remove = function() { this._clearIncremental(), this._incremental = null, this.group.removeAll() }, gC._clearIncremental = function() { 14425 var t = this._incremental; 14426 t && t.clearDisplaybles() 14427 }; 14428 var mC = [], 14429 vC = [], 14430 yC = [], 14431 xC = Qi, 14432 _C = M_, 14433 wC = Math.abs, 14434 bC = function(t, e) { 14435 function i(t) { var e = t.getVisual("symbolSize"); return e instanceof Array && (e = (e[0] + e[1]) / 2), e } 14436 var n = [], 14437 o = on, 14438 a = [ 14439 [], 14440 [], 14441 [] 14442 ], 14443 r = [ 14444 [], 14445 [] 14446 ], 14447 s = []; 14448 e /= 2, t.eachEdge(function(t, l) { 14449 var u = t.getLayout(), 14450 h = t.getVisual("fromSymbol"), 14451 c = t.getVisual("toSymbol"); 14452 u.__original || (u.__original = [W(u[0]), W(u[1])], u[2] && u.__original.push(W(u[2]))); 14453 var d = u.__original; 14454 if (null != u[2]) { 14455 if (G(a[0], d[0]), G(a[1], d[2]), G(a[2], d[1]), h && "none" != h) { 14456 var f = i(t.node1), 14457 p = Cd(a, d[0], f * e); 14458 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] 14459 } 14460 if (c && "none" != c) { 14461 var f = i(t.node2), 14462 p = Cd(a, d[1], f * e); 14463 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[
144631], a[2][1] = n[2] 14464 } 14465 G(u[0], a[0]), G(u[1], a[2]), G(u[2], a[1]) 14466 } else { 14467 if (G(r[0], d[0]), G(r[1], d[1]), U(s, r[1], r[0]), q(s, s), h && "none" != h) { 14468 f = i(t.node1); 14469 Z(r[0], r[0], s, f * e) 14470 } 14471 if (c && "none" != c) { 14472 f = i(t.node2); 14473 Z(r[1], r[1], s, -f * e) 14474 } 14475 G(u[0], r[0]), G(u[1], r[1]) 14476 } 14477 }) 14478 }, 14479 SC = ["itemStyle", "opacity"], 14480 MC = ["lineStyle", "opacity"]; 14481 _s({ 14482 type: "graph", 14483 init: function(t, e) { 14484 var i = new Ql, 14485 n = new Sd, 14486 o = this.group; 14487 this._controller = new kh(e.getZr()), this._controllerHost = { target: o }, o.add(i.group), o.add(n.group), this._symbolDraw = i, this._lineDraw = n, this._firstRender = !0 14488 }, 14489 render: function(t, e, i) { 14490 var n = t.coordinateSystem; 14491 this._model = t, this._nodeScaleRatio = t.get("nodeScaleRatio"); 14492 var o = this._symbolDraw, 14493 a = this._lineDraw, 14494 r = this.group; 14495 if ("view" === n.type) { 14496 var s = { position: n.position, scale: n.scale }; 14497 this._firstRender ? r.attr(s) : fo(r, s, t) 14498 } 14499 bC(t.getGraph(), this._getNodeGlobalScale(t)); 14500 var l = t.getData(); 14501 o.updateData(l); 14502 var u = t.getEdgeData(); 14503 a.updateData(u), this._updateNodeAndLinkScale(), this._updateController(t, e, i), clearTimeout(this._layoutTimeout); 14504 var h = t.forceLayout, 14505 c = t.get("force.layoutAnimation"); 14506 h && this._startForceLayoutIteration(h, c), l.eachItemGraphicEl(function(e, n) { 14507 var o = l.getItemModel(n); 14508 e.off("drag").off("dragend"); 14509 var a = l.getItemModel(n).get("draggable"); 14510 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.off("mouseover", e.__focusNodeAdjacency), e.off("mouseout", e.__unfocusNodeAdjacency), o.get("focusNodeAdjacency") && (e.on("mouseover", e.__focusNodeAdjacency = function() { i.dispatchAction({ type: "focusNodeAdjacency", seriesId: t.id, dataIndex: e.dataIndex }) }), e.on("mouseout", e.__unfocusNodeAdjacency = function() { i.dispatchAction({ type: "unfocusNodeAdjacency", seriesId: t.id }) })) 14511 }, this), l.graph.eachEdge(function(e) { 14512 var n = e.getGraphicEl(); 14513 n.off("mouseover", n.__focusNodeAdjacency), n.off("mouseout", n.__unfocusNodeAdjacency), e.getModel().get("focusNodeAdjacency") && (n.on("mouseover", n.__focusNodeAdjacency = function() { i.dispatchAction({ type: "focusNodeAdjacency", seriesId: t.id, edgeDataIndex: e.dataIndex }) }), n.on("mouseout", n.__unfocusNodeAdjacency = function() { i.dispatchAction({ type: "unfocusNodeAdjacency", seriesId: t.id }) })) 14514 }); 14515 var d = "circular" === t.get("layout") && t.get("circular.rotateLabel"), 14516 f = l.getLayout("cx"), 14517 p = l.getLayout("cy"); 14518 l.eachItemGraphicEl(function(t, e) { 14519 var i = t.getSymbolPath(); 14520 if (d) { 14521 var n = l.getItemLayout(e), 14522 o = Math.atan2(n[1] - p, n[0] - f); 14523 o < 0 && (o = 2 * Math.PI + o); 14524 var a = n[0] < f; 14525 a && (o -= Math.PI); 14526 var r = a ? "left" : "right"; 14527 i.setStyle({ textRotation: -o, textPosition: r, textOrigin: "center" }), i.hoverStyle && (i.hoverStyle.textPosition = r) 14528 } else i.setStyle({ textRotation: 0 }) 14529 }), this._firstRender = !1 14530 }, 14531 dispose: function() { this._controller && this._controller.dispose(), this._controllerHost = {} }, 14532 focusNodeAdjacency: function(t, e, i, n) { 14533 var o = this._model.getData().graph, 14534 a = n.dataIndex, 14535 r = n.edgeDataIndex, 14536 s = o.getNodeByIndex(a), 14537 l = o.getEdgeByIndex(r); 14538 (s || l) && (o.eachNode(function(t) { kd(t, SC, .1) }), o.eachEdge(function(t) { kd(t, MC, .1) }), s && (Pd(s, SC), d(s.edges, function(t) { t.dataIndex < 0 || (Pd(t, MC), Pd(t.node1, SC), Pd(t.node2, SC)) })), l && (Pd(l, MC), Pd(l.node1, SC), Pd(l.node2, SC))) 14539 }, 14540 unfocusNodeAdjacency: function(t, e, i, n) { 14541 var o = this._model.getData().graph; 14542 o.eachNode(function(t) { kd(t, SC) }), o.eachEdge(function(t) { kd(t, MC) }) 14543 }, 14544 _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()) }) }() }, 14545 _updateController: function(t, e, i) { 14546 var n = this._controller, 14547 o = this._controllerHost, 14548 a = this.group; 14549 n.setPointerChecker(function(e, n, o) { var r = a.getBoundingRect
14549(); return r.applyTransform(a.transform), r.contain(n, o) && !Wh(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, n) { Vh(o, e, n), i.dispatchAction({ seriesId: t.id, type: "graphRoam", dx: e, dy: n }) }).on("zoom", function(e, n, a) { Gh(o, e, n, a), i.dispatchAction({ seriesId: t.id, type: "graphRoam", zoom: e, originX: n, originY: a }), this._updateNodeAndLinkScale(), bC(t.getGraph(), this._getNodeGlobalScale(t)), this._lineDraw.updateLayout() }, this)) : n.disable() 14550 }, 14551 _updateNodeAndLinkScale: function() { 14552 var t = this._model, 14553 e = t.getData(), 14554 i = this._getNodeGlobalScale(t), 14555 n = [i, i]; 14556 e.eachItemGraphicEl(function(t, e) { t.attr("scale", n) }) 14557 }, 14558 _getNodeGlobalScale: function(t) { 14559 var e = t.coordinateSystem; 14560 if ("view" !== e.type) return 1; 14561 var i = this._nodeScaleRatio, 14562 n = e.scale, 14563 o = n && n[0] || 1; 14564 return ((e.getZoom() - 1) * i + 1) / o 14565 }, 14566 updateLayout: function(t) { bC(t.getGraph(), this._getNodeGlobalScale(t)), this._symbolDraw.updateLayout(), this._lineDraw.updateLayout() }, 14567 remove: function(t, e) { this._symbolDraw && this._symbolDraw.remove(), this._lineDraw && this._lineDraw.remove() } 14568 }), cs({ type: "graphRoam", event: "graphRoam", update: "none" }, function(t, e) { 14569 e.eachComponent({ mainType: "series", query: t }, function(e) { 14570 var i = Xh(e.coordinateSystem, t); 14571 e.setCenter && e.setCenter(i.center), e.setZoom && e.setZoom(i.zoom) 14572 }) 14573 }), cs({ type: "focusNodeAdjacency", event: "focusNodeAdjacency", update: "series.graph:focusNodeAdjacency" }, function() {}), cs({ type: "unfocusNodeAdjacency", event: "unfocusNodeAdjacency", update: "series.graph:unfocusNodeAdjacency" }, function() {}); 14574 var IC = Z; 14575 hs(function(t) { 14576 var e = t.findComponents({ mainType: "legend" }); 14577 e && e.length && t.eachSeriesByType("graph", function(t) { 14578 var i = t.getCategoriesData(), 14579 n = t.getGraph().data, 14580 o = i.mapArray(i.getName); 14581 n.filterSelf(function(t) { 14582 var i = n.getItemModel(t).getShallow("category"); 14583 if (null != i) { 14584 "number" == typeof i && (i = o[i]); 14585 for (var a = 0; a < e.length; a++) 14586 if (!e[a].isSelected(i)) return !1 14587 } 14588 return !0 14589 }) 14590 }, this) 14591 }), ps(gD("graph", "circle", null)), ps(function(t) { 14592 var e = {}; 14593 t.eachSeriesByType("graph", function(t) { 14594 var i = t.getCategoriesData(), 14595 n = t.getData(), 14596 o = {}; 14597 i.each(function(n) { 14598 var a = i.getName(n); 14599 o["ec-" + a] = n; 14600 var r = i.getItemModel(n).get("itemStyle.color") || t.getColorFromPalette(a, e); 14601 i.setItemVisual(n, "color", r) 14602 }), i.count() && n.each(function(t) { 14603 var e = n.getItemModel(t).getShallow("category"); 14604 null != e && ("string" == typeof e && (e = o["ec-" + e]), n.getItemVisual(t, "color", !0) || n.setItemVisual(t, "color", i.getItemVisual(e, "color"))) 14605 }) 14606 }) 14607 }), ps(function(t) { 14608 t.eachSeriesByType("graph", function(t) { 14609 var e = t.getGraph(), 14610 i = t.getEdgeData(), 14611 n = Nd(t.get("edgeSymbol")), 14612 o = Nd(t.get("edgeSymbolSize")), 14613 a = "lineStyle.color".split("."), 14614 r = "lineStyle.opacity".split("."); 14615 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) { 14616 var n = i.getItemModel(t), 14617 o = e.getEdgeByIndex(t), 14618 s = Nd(n.getShallow("symbol", !0)), 14619 l = Nd(n.getShallow("symbolSize", !0)), 14620 u = n.get(a), 14621 h = n.get(r); 14622 switch (u) { 14623 case "source": 14624 u = o.node1.getVisual("color"); 14625 break; 14626 case "target": 14627 u = o.node2.getVisual("color") 14628 } 14629 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) 14630 }) 14631 }) 14632 }), fs(function(t, e) { 14633 t.eachSeriesByType("graph", function(t) { 14634 var e = t.get("layout"), 14635 i = t.coordinateSystem; 14636 if (i && "view" !== i.type) { 14637 var n = t.getData(), 14638 o = []; 14639 d(i.dimensions, function(t) { o = o.concat(n.mapDimension(t, !0)) }); 14640 for (var a = 0; a < n.count(); a++) { 14641 for (var r = [], s = !1, l = 0; l < o.length; l++) { 14642 var u = n.get(o[l], a); 14643 isNaN(u) || (s = !0), r.push(u) 14644 } 14645 s ? n.setItemLayout(a, i.dataToPoint(r)) : n.setItemLayout(a, [
14645NaN, NaN]) 14646 } 14647 Ed(n.graph) 14648 } else e && "none" !== e || Od(t) 14649 }) 14650 }), fs(function(t) { t.eachSeriesByType("graph", function(t) { "circular" === t.get("layout") && Rd(t) }) }), fs(function(t) { 14651 t.eachSeriesByType("graph", function(t) { 14652 var e = t.coordinateSystem; 14653 if (!e || "view" === e.type) 14654 if ("force" === t.get("layout")) { 14655 var i = t.preservedPoints || {}, 14656 n = t.getGraph(), 14657 o = n.data, 14658 a = n.edgeData, 14659 r = t.getModel("force"), 14660 s = r.get("initLayout"); 14661 t.preservedPoints ? o.each(function(t) { 14662 var e = o.getId(t); 14663 o.setItemLayout(t, i[e] || [NaN, NaN]) 14664 }) : s && "none" !== s ? "circular" === s && Rd(t) : Od(t); 14665 var l = o.getDataExtent("value"), 14666 u = a.getDataExtent("value"), 14667 h = r.get("repulsion"), 14668 c = r.get("edgeLength"); 14669 y(h) || (h = [h, h]), y(c) || (c = [c, c]), c = [c[1], c[0]]; 14670 var d = o.mapArray("value", function(t, e) { 14671 var i = o.getItemLayout(e), 14672 n = To(t, l, h); 14673 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 } 14674 }), 14675 f = a.mapArray("value", function(t, e) { 14676 var i = n.getEdgeByIndex(e), 14677 o = To(t, u, c); 14678 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 } 14679 }), 14680 p = (e = t.coordinateSystem).getBoundingRect(), 14681 g = zd(d, f, { rect: p, gravity: r.get("gravity") }), 14682 m = g.step; 14683 g.step = function(t) { 14684 for (var e = 0, a = d.length; e < a; e++) d[e].fixed && G(d[e].p, n.getNodeByIndex(e).getLayout()); 14685 m(function(e, a, r) { 14686 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; 14687 for (var s = 0, l = a.length; s < l; s++) { 14688 var u = a[s], 14689 h = n.getEdgeByIndex(s), 14690 c = u.n1.p, 14691 d = u.n2.p, 14692 f = h.getLayout(); 14693 (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) 14694 } 14695 t && t(r) 14696 }) 14697 }, t.forceLayout = g, t.preservedPoints = i, g.step() 14698 } else t.forceLayout = null 14699 }) 14700 }), ds("graphView", { 14701 create: function(t, e) { 14702 var i = []; 14703 return t.eachSeriesByType("graph", function(t) { 14704 var n = t.get("coordinateSystem"); 14705 if (!n || "view" === n) { 14706 var o = t.getData(), 14707 a = [], 14708 r = []; 14709 rn(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); 14710 var s = (r[0] - a[0]) / (r[1] - a[1]), 14711 l = Bd(t, e, s); 14712 isNaN(s) && (a = [l.x, l.y], r = [l.x + l.width, l.y + l.height]); 14713 var u = r[0] - a[0], 14714 h = r[1] - a[1], 14715 c = l.width, 14716 d = l.height, 14717 f = t.coordinateSystem = new wh; 14718 f.zoomLimit = t.get("scaleLimit"), f.setBoundingRect
14718(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) 14719 } 14720 }), i 14721 } 14722 }); 14723 KM.extend({ 14724 type: "series.gauge", 14725 getInitialData: function(t, e) { var i = t.data || []; return y(i) || (i = [i]), t.data = i, jD(this, ["value"]) }, 14726 defaultOption: { 14727 zlevel: 0, 14728 z: 2, 14729 center: ["50%", "50%"], 14730 legendHoverLink: !0, 14731 radius: "75%", 14732 startAngle: 225, 14733 endAngle: -45, 14734 clockwise: !0, 14735 min: 0, 14736 max: 100, 14737 splitNumber: 10, 14738 axisLine: { 14739 show: !0, 14740 lineStyle: { 14741 color: [ 14742 [.2, "#91c7ae"], 14743 [.8, "#63869e"], 14744 [1, "#c23531"] 14745 ], 14746 width: 30 14747 } 14748 }, 14749 splitLine: { show: !0, length: 30, lineStyle: { color: "#eee", width: 2, type: "solid" } }, 14750 axisTick: { show: !0, splitNumber: 5, length: 8, lineStyle: { color: "#eee", width: 1, type: "solid" } }, 14751 axisLabel: { show: !0, distance: 5, color: "auto" }, 14752 pointer: { show: !0, length: "80%", width: 8 }, 14753 itemStyle: { color: "auto" }, 14754 title: { show: !0, offsetCenter: [0, "-40%"], color: "#333", fontSize: 15 }, 14755 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 } 14756 } 14757 }); 14758 var TC = In.extend({ 14759 type: "echartsGaugePointer", 14760 shape: { angle: 0, width: 10, r: 10, x: 0, y: 0 }, 14761 buildPath: function(t, e) { 14762 var i = Math.cos, 14763 n = Math.sin, 14764 o = e.r, 14765 a = e.width, 14766 r = e.angle, 14767 s = e.x - i(r) * a * (a >= o / 3 ? 1 : 2), 14768 l = e.y - n(r) * a * (a >= o / 3 ? 1 : 2); 14769 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) 14770 } 14771 }), 14772 DC = 2 * Math.PI, 14773 AC = (gr.extend({ 14774 type: "gauge", 14775 render: function(t, e, i) { 14776 this.group.removeAll(); 14777 var n = t.get("axisLine.lineStyle.color"), 14778 o = Vd(t, i); 14779 this._renderMain(t, e, i, n, o) 14780 }, 14781 dispose: function() {}, 14782 _renderMain: function(t, e, i, n, o) { 14783 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) % DC, c = l, d = r.get("width"), f = 0; f < n.length; f++) { 14784 var p = Math.min(Math.max(n[f][0], 0), 1), 14785 g = new vS({ 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 }); 14786 g.setStyle({ fill: n[f][1] }), g.setStyle(r.getLineStyle(["color", "borderWidth", "borderColor"])), a.add(g), c = u 14787 } 14788 var m = function(t) { 14789 if (t <= 0) return n[0][1]; 14790 for (var e = 0; e < n.length; e++) 14791 if (n[e][0] >= t && (0 === e ? 0 : n[e - 1][0]) < t) return n[e][1]; 14792 return n[e - 1][1] 14793 }; 14794 if (!s) { 14795 var v = l; 14796 l = u, u = v 14797 } 14798 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) 14799 }, 14800 _renderTicks: function(t, e, i, n, o, a, r, s) { 14801 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 = Do(p.get("length"), c), _ = Do(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++) { 14802 var D = Math.cos(w), 14803 A = Math.sin(w); 14804 if (p.get("show")) { var C = new MS({ shape: { x1: D * c + u, y1: A * c + h, x2: D * (c - x) + u, y2: A * (c - x) + h }, style: M, silent: !0 }); "auto" === M.stroke && C.setStyle({ stroke: n(T / v) }), l.add(C) } 14805 if (m.get("show")) { 14806 var L = Gd(Ao(T / v * (f - d) + d), m.get("formatter")), 14807 k = m.get("distance"), 14808 P = n(T / v); 14809 l.add(new fS({ style: no({}, m, { text: L, x: D * (c - x - k) + u, y: A * (c - x - k) + h, textVerticalAlign: A < -.4 ? "top" : A > .4 ? "bottom" : "middle", textAlign: D < -.4 ? "left" : D > .4 ? "right" : "center" }, { autoColor: P }), silent: !0 })) 14810 } 14811 if (g.get("show") && T !== v) { 14812 for (var N = 0; N <= y; N++) { 14813 var D = Math.cos(w), 14814 A = Math.sin(w), 14815 O = new MS({ shape: { x1: D * c + u, y1: A * c + h, x2: D * (c - _) + u, y2: A * (c - _) + h }, silent: !0, style: I }); 14816 "auto" === I.stroke && O.setStyle({ stroke: n((T + N / y
14816) / v) }), l.add(O), w += S 14817 } 14818 w -= S 14819 } else w += b 14820 } 14821 }, 14822 _renderPointer: function(t, e, i, n, o, a, r, s) { 14823 var l = this.group, 14824 u = this._data; 14825 if (t.get("pointer.show")) { 14826 var h = [+t.get("min"), +t.get("max")], 14827 c = [a, r], 14828 d = t.getData(), 14829 f = d.mapDimension("value"); 14830 d.diff(u).add(function(e) { 14831 var i = new TC({ shape: { angle: a } }); 14832 po(i, { shape: { angle: To(d.get(f, e), h, c, !0) } }, t), l.add(i), d.setItemGraphicEl(e, i) 14833 }).update(function(e, i) { 14834 var n = u.getItemGraphicEl(i); 14835 fo(n, { shape: { angle: To(d.get(f, e), h, c, !0) } }, t), l.add(n), d.setItemGraphicEl(e, n) 14836 }).remove(function(t) { 14837 var e = u.getItemGraphicEl(t); 14838 l.remove(e) 14839 }).execute(), d.eachItemGraphicEl(function(t, e) { 14840 var i = d.getItemModel(e), 14841 a = i.getModel("pointer"); 14842 t.setShape({ x: o.cx, y: o.cy, width: Do(a.get("width"), o.r), r: Do(a.get("length"), o.r) }), t.useStyle(i.getModel("itemStyle").getItemStyle()), "auto" === t.style.fill && t.setStyle("fill", n(To(d.get(f, e), h, [0, 1], !0))), eo(t, i.getModel("emphasis.itemStyle").getItemStyle()) 14843 }), this._data = d 14844 } else u && u.eachItemGraphicEl(function(t) { l.remove(t) }) 14845 }, 14846 _renderTitle: function(t, e, i, n, o) { 14847 var a = t.getData(), 14848 r = a.mapDimension("value"), 14849 s = t.getModel("title"); 14850 if (s.get("show")) { 14851 var l = s.get("offsetCenter"), 14852 u = o.cx + Do(l[0], o.r), 14853 h = o.cy + Do(l[1], o.r), 14854 c = +t.get("min"), 14855 d = +t.get("max"), 14856 f = n(To(t.getData().get(r, 0), [c, d], [0, 1], !0)); 14857 this.group.add(new fS({ silent: !0, style: no({}, s, { x: u, y: h, text: a.getName(0), textAlign: "center", textVerticalAlign: "middle" }, { autoColor: f, forceRich: !0 }) })) 14858 } 14859 },
14860 _renderDetail: function(t, e, i, n, o) { 14861 var a = t.getModel("detail"), 14862 r = +t.get("min"), 14863 s = +t.get("max"); 14864 if (a.get("show")) { 14865 var l = a.get("offsetCenter"), 14866 u = o.cx + Do(l[0], o.r), 14867 h = o.cy + Do(l[1], o.r), 14868 c = Do(a.get("width"), o.r), 14869 d = Do(a.get("height"), o.r), 14870 f = t.getData(), 14871 p = f.get(f.mapDimension("value"), 0), 14872 g = n(To(p, [r, s], [0, 1], !0)); 14873 this.group.add(new fS({ silent: !0, style: no({}, a, { x: u, y: h, text: Gd(p, a.get("formatter")), textWidth: isNaN(c) ? null : c, textHeight: isNaN(d) ? null : d, textAlign: "center", textVerticalAlign: "middle" }, { autoColor: g, forceRich: !0 }) })) 14874 } 14875 } 14876 }), xs({ 14877 type: "series.funnel", 14878 init: function(t) { AC.superApply(this, "init", arguments), this.legendDataProvider = function() { return this.getRawData() }, this._defaultLabelLine(t) }, 14879 getInitialData: function(t, e) { return jD(this, ["value"]) }, 14880 _defaultLabelLine: function(t) { 14881 Mi(t, "labelLine", ["show"]); 14882 var e = t.labelLine, 14883 i = t.emphasis.labelLine; 14884 e.show = e.show && t.label.show, i.show = i.show && t.emphasis.label.show 14885 }, 14886 getDataParams: function(t) { 14887 var e = this.getData(), 14888 i = AC.superCall(this, "getDataParams", t), 14889 n = e.mapDimension("value"), 14890 o = e.getSum(n); 14891 return i.percent = o ? +(e.get(n, t) / o * 100).toFixed(2) : 0, i.$vars.push("percent"), i 14892 }, 14893 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 } } } 14894 })), 14895 CC = Wd.prototype, 14896 LC = ["itemStyle", "opacity"]; 14897 CC.updateData = function(t, e, i) { 14898 var n = this.childAt(0), 14899 o = t.hostModel, 14900 a = t.getItemModel(e), 14901 s = t.getItemLayout(e), 14902 l = t.getItemModel(e).get(LC); 14903 l = null == l ? 1 : l, n.useStyle({}), i ? (n.setShape({ points: s.points }), n.setStyle({ opacity: 0 }), po(n, { style: { opacity: l } }, o, e)) : fo(n, { style: { opacity: l }, shape: { points: s.points } }, o, e); 14904 var u = a.getModel("itemStyle"), 14905 h = t.getItemVisual(e, "color"); 14906 n.setStyle(r({ lineJoin: "round", fill: h }, u.getItemStyle(["opacity"]))), n.hoverStyle = u.getModel("emphasis").getItemStyle(), this._updateLabel(t, e), eo(this) 14907 }, CC._updateLabel = function(t, e) { 14908 var i = this.childAt(1), 14909 n = this.childAt(2), 14910 o = t.hostModel, 14911 a = t.getItemModel(e), 14912 r = t.getItemLayout(e).label, 14913 s = t.getItemVisual(e, "color"); 14914 fo(i, { shape: { points: r.linePoints || r.linePoints } }, o, e), fo(n, { style: { x: r.x, y: r.y } }, o, e), n.attr({ rotation: r.rotation, origin: [r.x, r.y], z2: 10 }); 14915 var l = a.getModel("label"), 14916 u = a.getModel("emphasis.label"), 14917 h = a.getModel("labelLine"), 14918 c = a.getModel("emphasis.labelLine"), 14919 s = t.getItemVisual(e, "color"); 14920 io(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() 14921 }, u(Wd, sw); 14922 gr.extend({ 14923 type: "funnel", 14924 render: function(t, e, i) { 14925 var n = t.getData(), 14926 o = this._data, 14927 a = this.group; 14928 n.diff(o).add(function(t) { 14929 var e = new Wd(n, t); 14930 n.setItemGraphicEl(t, e), a.add(e) 14931 }).update(function(t, e) { 14932 var i = o.getItemGraphicEl(e); 14933 i.updateData(n, t), a.add(i), n.setItemGraphicEl(t, i) 14934 }).remove(function(t) { 14935 var e = o.getItemGraphicEl(t); 14936 a.remove(e) 14937 }).execute(), this._data = n 14938 }, 14939 remove: function() { this.group.removeAll(), this._data = null }, 14940 dispose: function() {} 14941 }); 14942 ps(JD("funnel")), fs(function(t, e, i) { 14943 t.eachSeriesByType("funnel", function(t) { 14944 var i = t.getData(), 14945 n = i.mapDimension("value"), 14946 o = t.get("sort"), 14947 a = Fd(t, e), 14948 r = Hd(i, o), 14949 s = [Do(t.get("minSize"), a.width), Do(t.get("maxSize"), a.width)], 14950 l = i.getDataExtent(n), 14951 u = t.get("min"), 14952 h = t.get("max"); 14953 null == u && (u = Math.min(l[0], 0)), null == h && (h = l[1]); 14954 var c = t.get("funnelAlign"), 14955 d = t.get("gap"), 14956 f = (a.height - d * (i.count() - 1)) / i.count(), 14957 p = a.y, 14958 g = function(t, e) { 14959 var o, r = To(i.get(n, t) || 0, [u, h], s, !0); 14960 switch (c) {
14961 case "left": 14962 o = a.x; 14963 break; 14964 case "center": 14965 o = a.x + (a.width - r) / 2; 14966 break; 14967 case "right": 14968 o = a.x + a.width - r 14969 } 14970 return [ 14971 [o, e], 14972 [o + r, e] 14973 ] 14974 }; 14975 "ascending" === o && (f = -f, d = -d, p += a.height, r = r.reverse()); 14976 for (var m = 0; m < r.length; m++) { 14977 var v = r[m], 14978 y = r[m + 1], 14979 x = i.getItemModel(v).get("itemStyle.height"); 14980 null == x ? x = f : (x = Do(x, a.height), "ascending" === o && (x = -x)); 14981 var _ = g(v, p), 14982 w = g(y, p + x); 14983 p += x + d, i.setItemLayout(v, { points: _.concat(w.slice().reverse()) }) 14984 } 14985 Zd(i) 14986 }) 14987 }), hs(iA("funnel")); 14988 var kC = function(t, e, i, n, o) { qT.call(this, t, e, i), this.type = n || "value", this.axisIndex = o }; 14989 kC.prototype = { constructor: kC, model: null, isHorizontal: function() { return "horizontal" !== this.coordinateSystem.getModel().get("layout") } }, u(kC, qT); 14990 var PC = function(t, e, i, n, o, a) { 14991 e[0] = Yd(e[0], i), e[1] = Yd(e[1], i), t = t || 0; 14992 var r = i[1] - i[0]; 14993 null != o && (o = Yd(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); 14994 var s = jd(e, n); 14995 e[n] += t; 14996 var l = o || 0, 14997 u = i.slice(); 14998 s.sign < 0 ? u[0] += l : u[1] -= l, e[n] = Yd(e[n], u); 14999 h = jd(e, n); 15000 null != o && (h.sign !== s.sign || h.span < o) && (e[1 - n] = e[n] + s.sign * o); 15001 var h = jd(e, n); 15002 return null != a && h.span > a && (e[1 - n] = e[n] + h.sign * a), e 15003 }, 15004 NC = d, 15005 OC = Math.min, 15006 EC = Math.max, 15007 RC = Math.floor, 15008 zC = Math.ceil, 15009 BC = Ao, 15010 VC = Math.PI; 15011 qd.prototype = { 15012 type: "parallel", 15013 constructor: qd, 15014 _init: function(t, e, i) { 15015 var n = t.dimensions, 15016 o = t.parallelAxisIndex; 15017 NC(n, function(t, i) { 15018 var n = o[i], 15019 a = e.getComponent("parallelAxis", n), 15020 r = this._axesMap.set(t, new kC(t, xl(a), [0, 0], a.get("type"), n)), 15021 s = "category" === r.type; 15022 r.onBand = s && a.get("boundaryGap"), r.inverse = a.get("inverse"), a.axis = r, r.model = a, r.coordinateSystem = a.coordinateSystem = this 15023 }, this) 15024 }, 15025 update: function(t, e) { this._updateAxesFromSeries(this._model, t) }, 15026 containPoint: function(t) { 15027 var e = this._makeLayoutInfo(), 15028 i = e.axisBase, 15029 n = e.layoutBase, 15030 o = e.pixelDimIndex, 15031 a = t[1 - o], 15032 r = t[o]; 15033 return a >= i && a <= i + e.axisLength && r >= n && r <= n + e.layoutLength 15034 }, 15035 getModel: function() { return this._model }, 15036 _updateAxesFromSeries: function(t, e) { 15037 e.eachSeries(function(i) { 15038 if (t.contains(i, e)) { 15039 var n = i.getData(); 15040 NC(this.dimensions, function(t) { 15041 var e = this._axesMap.get(t); 15042 e.scale.unionExtentFromData(n, n.mapDimension(t)), yl(e.scale, e.model) 15043 }, this) 15044 } 15045 }, this) 15046 }, 15047 resize: function(t, e) { this._rect = Qo(t.getBoxLayoutParams(), { width: e.getWidth(), height: e.getHeight() }), this._layoutAxes() }, 15048 getRect: function() { return this._rect }, 15049 _makeLayoutInfo: function() { 15050 var t, e = this._model, 15051 i = this._rect, 15052 n = ["x", "y"], 15053 o = ["width", "height"], 15054 a = e.get("layout"), 15055 r = "horizontal" === a ? 0 : 1, 15056 s = i[o[r]], 15057 l = [0, s], 15058 u = this.dimensions.length, 15059 h = Kd(e.get("axisExpandWidth"), l), 15060 c = Kd(e.get("axisExpandCount") || 0, [0, u]), 15061 d = e.get("axisExpandable") && u > 3 && u > c && c > 1 && h > 0 && s > 0, 15062 f = e.get("axisExpandWindow"); 15063 f ? (t = Kd(f[1] - f[0], l), f[1] = f[0] + t) : (t = Kd(h * (c - 1), l), (f = [h * (e.get("axisExpandCenter") || RC(u / 2)) - t / 2])[1] = f[0] + t); 15064 var p = (s - t) / (u - c); 15065 p < 3 && (p = 0); 15066 var g = [RC(BC(f[0] / h, 1)) + 1, zC(BC(f[1] / h, 1)) - 1], 15067 m = p / h * f[0]; 15068 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 } 15069 }, 15070 _layoutAxes: function() { 15071 var t = this._rect, 15072 e = this._axesMap, 15073 i = this.dimensions, 15074 n = this._makeLayoutInfo(), 15075 o = n.layout; 15076 e.each(function(t) { 15077 var e = [0, n.axisLength], 15078 i = t.inverse ? 1 : 0; 15079 t.setExtent(e[i], e[1 - i]) 15080 }), NC(i, function(e, i) { 15081 var a = (n.axisExpandable ? Jd : $d)(i, n), 15082 r = { horizontal: { x: a.position, y: n.axisLength }, vertical: { x: 0, y: a.position } }, 15083 s = { horizontal: VC / 2, vertical: 0 }, 15084 l = [r[o].x + t.x, r[o].y + t.y], 15085 u = s[o], 15086 h = st(); 15087 dt(h, h, u), ct(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 } 15088 }, this) 15089 }, 15090 getAxis: function(t) { return this._axesMap.get(t) }, 15091 dataToPoint: function(t, e) { return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t), e) }, 15092 eachActiveState: function(t, e, i, n) { 15093 null == i && (i = 0), null == n && (n = t.count()); 15094 var o = this._axesMap, 15095 a = this.dimensions, 15096 r = [], 15097 s = []; 15098 d(a, function(e) { r.push(t.mapDimension(e)), s.push(o.get(e).model) }); 15099 for (var l = this.hasAxisBrushed(), u = i; u < n; u++) { 15100 var h; 15101 if (l) { 15102 h = "active"; 15103 for (var c = t.getValues(r, u), f = 0, p = a.length; f < p; f++) 15104 if ("inactive" === s[f].getActiveState(c[f])) { h = "inactive"; break } 15105 } else h = "normal"; 15106 e(h, u) 15107 } 15108 }, 15109 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 }, 15110 axisCoordToPoint: function(t, e) { return mo([t, 0], this._axesLayout[e].transform) }, 15111 getAxisLayout: function(t) { return i(this._axesLayout[t]) }, 15112 getSlidedAxisExpandWindow: function(t) { 15113 var e = this._makeLayoutInfo(), 15114 i = e.pixelDimIndex, 15115 n = e.axisExpandWindow.slice(), 15116 o = n[1] - n[0], 15117 a = [0, e.axisExpandWidth * (e.axisCount - 1)]; 15118 if (!this.containPoint(t)) return { behavior: "none", axisExpandWindow: n }; 15119 var r, s = t[i] - e.layoutBase - e.axisExpandWindow0Pos, 15120 l = "slide", 15121 u = e.axisCollapseWidth, 15122 h = this._model.get("axisExpandSlideTriggerArea"), 15123 c = null != h[0]; 15124 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]) >
15124= 0 && (r = s - o * (1 - h[1])) <= 0 && (r = 0), (r *= e.axisExpandWidth / u) ? PC(r, n, a, "all") : l = "none"; 15125 else { 15126 o = n[1] - n[0]; 15127 (n = [EC(0, a[1] * s / o - o / 2)])[1] = OC(a[1], n[0] + o), n[0] = n[1] - o 15128 } 15129 return { axisExpandWindow: n, behavior: l } 15130 } 15131 }, Ca.register("parallel", { 15132 create: function(t, e) { 15133 var i = []; 15134 return t.eachComponent("parallel", function(n, o) { 15135 var a = new qd(n, t, e); 15136 a.name = "parallel_" + o, a.resize(n, e), n.coordinateSystem = a, a.model = n, i.push(a) 15137 }), t.eachSeries(function(e) { 15138 if ("parallel" === e.get("coordinateSystem")) { 15139 var i = t.queryComponents({ mainType: "parallel", index: e.get("parallelIndex"), id: e.get("parallelId") })[0]; 15140 e.coordinateSystem = i.coordinateSystem 15141 } 15142 }), i 15143 } 15144 }); 15145 var GC = hM.extend({ 15146 type: "baseParallelAxis", 15147 axis: null, 15148 activeIntervals: [], 15149 getAreaSelectStyle: function() { 15150 return sb([ 15151 ["fill", "color"], 15152 ["lineWidth", "borderWidth"], 15153 ["stroke", "borderColor"], 15154 ["width", "width"], 15155 ["opacity", "opacity"] 15156 ])(this.getModel("areaSelectStyle")) 15157 },
15158 setActiveIntervals: function(t) { 15159 var e = this.activeIntervals = i(t); 15160 if (e) 15161 for (var n = e.length - 1; n >= 0; n--) Co(e[n]) 15162 }, 15163 getActiveState: function(t) { 15164 var e = this.activeIntervals; 15165 if (!e.length) return "normal"; 15166 if (null == t || isNaN(t)) return "inactive"; 15167 if (1 === e.length) { var i = e[0]; if (i[0] <= t && t <= i[1]) return "active" } else 15168 for (var n = 0, o = e.length; n < o; n++) 15169 if (e[n][0] <= t && t <= e[n][1]) return "active"; return "inactive" 15170 } 15171 }), 15172 WC = { type: "value", dim: null, areaSelectStyle: { width: 20, borderWidth: 1, borderColor: "rgba(160,197,232)", color: "rgba(160,197,232)", opacity: .3 }, realtime: !0, z: 10 }; 15173 n(GC.prototype, ET), MD("parallel", GC, function(t, e) { return e.type || (e.data ? "category" : "value") }, WC), hM.extend({ 15174 type: "parallel", 15175 dependencies: ["parallelAxis"], 15176 coordinateSystem: null, 15177 dimensions: null, 15178 parallelAxisIndex: null, 15179 layoutMode: "box", 15180 defaultOption: { zlevel: 0, z: 0, left: 80, top: 60, right: 80, bottom: 60, layout: "horizontal", axisExpandable: !1, axisExpandCenter: null, axisExpandCount: 0, axisExpandWidth: 50, axisExpandRate: 17, axisExpandDebounce: 50, axisExpandSlideTriggerArea: [-.15, .05, .4], axisExpandTriggerOn: "click", parallelAxisDefault: null }, 15181 init: function() { hM.prototype.init.apply(this, arguments), this.mergeOption({}) }, 15182 mergeOption: function(t) { 15183 var e = this.option; 15184 t && n(e, t, !0), this._initDimensions() 15185 }, 15186 contains: function(t, e) { var i = t.get("parallelIndex"); return null != i && e.getComponent("parallel", i) === this }, 15187 setAxisExpand: function(t) { d(["axisExpandable", "axisExpandCenter", "axisExpandCount", "axisExpandWidth", "axisExpandWindow"], function(e) { t.hasOwnProperty(e) && (this.option[e] = t[e]) }, this) }, 15188 _initDimensions: function() { 15189 var t = this.dimensions = [], 15190 e = this.parallelAxisIndex = []; 15191 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) }) 15192 } 15193 }), cs({ type: "axisAreaSelect", event: "axisAreaSelected" }, function(t, e) { e.eachComponent({ mainType: "parallelAxis", query: t }, function(e) { e.axis.model.setActiveIntervals(t.intervals) }) }), cs("parallelAxisExpand", function(t, e) { e.eachComponent({ mainType: "parallel", query: t }, function(e) { e.setAxisExpand(t) }) }); 15194 var FC = v, 15195 HC = d, 15196 ZC = f, 15197 UC = Math.min, 15198 XC = Math.max, 15199 jC = Math.pow, 15200 YC = 1e4, 15201 qC = 6, 15202 KC = 6, 15203 $C = "globalPan", 15204 JC = { w: [0, 0], e: [0, 1], n: [1, 0], s: [1, 1] }, 15205 QC = { w: "ew", e: "ew", n: "ns", s: "ns", ne: "nesw", sw: "nesw", nw: "nwse", se: "nwse" }, 15206 tL = { brushStyle: { lineWidth: 2, stroke: "rgba(0,0,0,0.3)", fill: "rgba(0,0,0,0.1)" }, transformable: !0, brushMode: "single", removeOnClick: !1 }, 15207 eL = 0; 15208 Qd.prototype = { 15209 constructor: Qd, 15210 enableBrush: function(t) { return this._brushType && ef(this), t.brushType && tf(this, t), this }, 15211 setPanels: function(t) { 15212 if (t && t.length) { 15213 var e = this._panels = {}; 15214 d(t, function(t) { e[t.panelId] = i(t) }) 15215 } else this._panels = null; 15216 return this 15217 }, 15218 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 }, 15219 eachCover: function(t, e) { HC(this._covers, t, e) }, 15220 updateCovers: function(t) { 15221 function e(t, e) { return (null != t.id ? t.id : a + e) + "-" + t.brushType } 15222 15223 function o(e, i) { 15224 var n = t[e]; 15225 if (null != i && r[i] === u) s[e] = r[i]; 15226 else { 15227 var o = s[e] = null != i ? (r[i].__brushOption = n, r[i]) : of(l, nf(l, n)); 15228 sf(l, o) 15229 } 15230 } 15231 t = f(t, function(t) { return n(i(tL), t, !0) }); 15232 var a = "\0-brush-index-", 15233 r = this._covers, 15234 s = this._covers = [], 15235 l = this, 15236 u = this._creatingCover; 15237 return new Ss(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 15238 }, 15239 unmount: function() { return this.enableBrush(!1), cf(this), this._zr.remove(this.group), this }, 15240 dispose: function() { this.unmount(), this.off() } 15241 }, h(Qd, D_); 15242 var iL = { 15243 mousedown: function(t) { 15244 if (this._dragging) Nf.call(this, t); 15245 else if (!t.target || !t.target.draggable) { 15246 Cf(t); 15247 var e = this.group.transformCoordToLocal(t.offsetX, t.offsetY); 15248 this._creatingCover = null, (this._creatingPanel = uf(this, t, e)) && (this._dragging = !0, this._track = [e.slice()]) 15249 } 15250 }, 15251 mousemove: function(t) { 15252 var e = this.group.transformCoordToLocal(t.offsetX, t.offsetY); 15253 if (Af(this, t, e), this._dragging) { 15254 Cf(t); 15255 var i = kf(this, t, e, !1); 15256 i && df(this, i) 15257 } 15258 }, 15259 mouseup: Nf 15260 }, 15261 nL = { lineX: Of(0), lineY: Of(1), rect: { createCover: function(t, e) { return gf(FC(Sf, function(t) { return t }, function(t) { return t }), t, e, ["w", "e", "n", "s", "se", "sw", "ne", "nw"]) }, getCreatingRange: function(t) { var e = pf(t); return _f(e[1][0], e[1][1], e[0][0], e[0][1]) }, updateCoverShape: function(t, e, i, n) { mf(t, e, i, n) }, updateCommon: vf, contain: Lf }, polygon: { createCover: function(t, e) { var i = new sw; return i.add(new bS({ name: "main", style: xf(e), silent: !0 })), i }, getCreatingRange: function(t) { return t }, endCreating: function(t, e) { e.remove(e.childAt(0)), e.add(new wS({ name: "main", draggable: !0, drift: FC(Mf, t, e), ondragend: FC(df, t, { isEnd: !0 }) })) }, updateCoverShape: function(t, e, i, n) { e.childAt(0).setShape({ points: Tf(t, e, i) }) }, updateCommon: vf, contain: Lf } }, 15262 oL = ["axisLine", "axisTickLabel", "axisName"], 15263 aL = ys({ 15264 type: "parallelAxis", 15265 init: function(t, e) { aL.superApply(this, "init", arguments), (this._brushController = new Qd(e.getZr())).on("brush", m(this._onBrush, this)) }, 15266 render: function(t, e, i, n) { 15267 if (!Vf(t, e, n)) { 15268 this.axisModel = t, this.api = i, this.group.removeAll(); 15269 var o = this._axisGroup; 15270 if (this._axisGroup = new sw, this.group.add(this._axisGroup), t.get("show")) { 15271 var r = Wf(t, e), 15272 s = r.coordinateSystem, 15273 l = t.getAreaSelectStyle(), 15274 u = l.width, 15275 h = t.axis.dim, 15276 c = a({ strokeContainThreshold: u }, s.getAxisLayout(h)), 15277 f = new LD(t, c); 15278 d(oL, f.add, f), this._axisGroup.add(f.getGroup()), this._refreshBrushController(c, l, t, r, u, i); 15279 var p = n && !1 === n.animation ? null : t; 15280 yo(o, this._axisGroup, p) 15281 } 15282 } 15283 }, 15284 _refreshBrushController: function(t, e, i, n, o, a) { 15285 var r = i.axis.getExtent(), 15286 s = r[1] - r[0], 15287 l = Math.min(30, .1 * Math.abs(s)), 15288 u = $t.create({ x: r[0], y: -o / 2, width: s, height: o }); 15289 u.x -= l, u.width += 2 * l, this._brushController.mount({ enableGlobalPan: !0, rotation: t.rotation, position: t.position }).setPanels([{ panelId: "pl", clipPath: Ef(u), isTargetByCursor: zf(u, a, n), getLinearBrushOtherExtent: Rf(u, 0) }]).enableBrush({ brushType: "lineX", brushStyle: e, removeOnClick: !0 }).updateCovers(Gf(i)) 15290 }, 15291 _onBrush: function(t, e) { 15292 var i = this.axisModel, 15293 n = i.axis, 15294 o = f(t, function(t) { return [n.coordToData(t.range[0], !0), n.coordToData(t.range[1], !0)] }); 15295 (!i.option.realtime === e.isEnd || e.removeOnClick) && this.api.dispatchAction({ type: "axisAreaSelect", parallelAxisId: i.id, intervals: o }) 15296 }, 15297 dispose: function() { this._brushController.dispose() } 15298 }); 15299 ys({ type: "parallel", render: function(t, e, i) { this._model = t, this._api = i, this._handlers || (this._handlers = {}, d(rL, function(t, e) { i.getZr().on(e, this._handlers[e] = m(t, this)) }, this)), wr(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)) } }); 15300 var rL = { 15301 mousedown: function(t) { Ff(this, "click") && (this._mouseDownPoint = [t.offsetX, t.offsetY]) }, 15302 mouseup: function(t) { 15303 var e = this._mouseDownPoint; 15304 if (Ff(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 }) } 15305 this._mouseDownPoint = null 15306 }, 15307 mousemove: function(t) { 15308 if (!this._mouseDownPoint && Ff(this, "mousemove")) { 15309 var e = this._model, 15310 i = e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX, t.offsetY]), 15311 n = i.behavior; 15312 "jump" === n && this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")), this._throttledDispatchExpand("none" === n ? null : { axisExpandWindow: i.axisExpandWindow, animation: "jump" === n && null }) 15313 } 15314 } 15315 }; 15316 us(function(t) { Ud(t), Xd(t) }), KM.extend({ 15317 type: "series.parallel", 15318 dependencies: ["parallel"], 15319 visualColorAccessPath: "lineStyle.color",
15320 getInitialData: function(t, e) { var i = this.getSource(); return Hf(i, this), Xs(i, this) }, 15321 getRawIndicesByActiveState: function(t) { 15322 var e = this.coordinateSystem, 15323 i = this.getData(), 15324 n = []; 15325 return e.eachActiveState(i, function(e, o) { t === e && n.push(i.getRawIndex(o)) }), n 15326 }, 15327 defaultOption: { zlevel: 0, z: 2, coordinateSystem: "parallel", parallelIndex: 0, label: { show: !1 }, inactiveOpacity: .05, activeOpacity: 1, lineStyle: { width: 1, opacity: .45, type: "solid" }, emphasis: { label: { show: !1 } }, progressive: 500, smooth: !1, animationEasing: "linear" } 15328 }); 15329 var sL = .3, 15330 lL = (gr.extend({ 15331 type: "parallel", 15332 init: function() { this._dataGroup = new sw, this.group.add(this._dataGroup), this._data, this._initialized }, 15333 render: function(t, e, i, n) { 15334 var o = this._dataGroup, 15335 a = t.getData(), 15336 r = this._data, 15337 s = t.coordinateSystem, 15338 l = s.dimensions, 15339 u = Yf(t); 15340 if (a.diff(r).add(function(t) { qf(jf(a, o, t, l, s), a, t, u) }).update(function(e, i) { 15341 var o = r.getItemGraphicEl(i), 15342 h = Xf(a, e, l, s); 15343 a.setItemGraphicEl(e, o), fo(o, { shape: { points: h } }, n && !1 === n.animation ? null : t, e), qf(o, a, e, u) 15344 }).remove(function(t) { 15345 var e = r.getItemGraphicEl(t); 15346 o.remove(e) 15347 }).execute(), !this._initialized) { 15348 this._initialized = !0; 15349 var h = Uf(s, t, function() { setTimeout(function() { o.removeClipPath() }) }); 15350 o.setClipPath(h) 15351 } 15352 this._data = a 15353 }, 15354 incrementalPrepareRender: function(t, e, i) { this._initialized = !0, this._data = null, this._dataGroup.removeAll() }, 15355 incrementalRender: function(t, e, i) { 15356 for (var n = e.getData(), o = e.coordinateSystem, a = o.dimensions, r = Yf(e), s = t.start; s < t.end; s++) { 15357 var l = jf(n, this._dataGroup, s, a, o); 15358 l.incremental = !0, qf(l, n, s, r) 15359 } 15360 }, 15361 dispose: function() {}, 15362 remove: function() { this._dataGroup && this._dataGroup.removeAll(), this._data = null } 15363 }), ["lineStyle", "normal", "opacity"]); 15364 ps({ 15365 seriesType: "parallel", 15366 reset: function(t, e, i) { 15367 var n = t.getModel("itemStyle"), 15368 o = t.getModel("lineStyle"), 15369 a = e.get("color"), 15370 r = o.get("color") || n.get("color") || a[t.seriesIndex % a.length], 15371 s = t.get("inactiveOpacity"), 15372 l = t.get("activeOpacity"), 15373 u = t.getModel("lineStyle").getLineStyle(), 15374 h = t.coordinateSystem, 15375 c = t.getData(), 15376 d = { normal: u.opacity, active: l, inactive: s }; 15377 return c.setVisual("color", r), { 15378 progress: function(t, e) { 15379 h.eachActiveState(e, function(t, i) { 15380 var n = d[t]; 15381 if ("normal" === t && e.hasItemOption) { 15382 var o = e.getItemModel(i).get(lL, !0); 15383 null != o && (n = o) 15384 } 15385 e.setItemVisual(i, "opacity", n) 15386 }, t.start, t.end) 15387 } 15388 } 15389 } 15390 }); 15391 var uL = KM.extend({ 15392 type: "series.sankey", 15393 layoutInfo: null, 15394 getInitialData: function(t) { 15395 var e = t.edges || t.links, 15396 i = t.data || t.nodes; 15397 if (i && e) return lC(i, e, this, !0).data 15398 }, 15399 setNodePosition: function(t, e) { 15400 var i = this.option.data[t]; 15401 i.localX = e[0], i.localY = e[1] 15402 }, 15403 getGraph: function() { return this.getData().graph }, 15404 getEdgeData: function() { return this.getGraph().edgeData }, 15405 formatTooltip: function(t, e, i) { 15406 if ("edge" === i) { 15407 var n = this.getDataParams(t, i), 15408 o = n.data, 15409 a = o.source + " -- " + o.target; 15410 return n.value && (a += " : " + n.value), Zo(a) 15411 } 15412 return uL.superCall(this, "formatTooltip", t, e) 15413 }, 15414 defaultOption: { zlevel: 0, z: 2, coordinateSystem: "view", layout: null, left: "5%", top: "5%", right: "20%", bottom: "5%", nodeWidth: 20, nodeGap: 8, draggable: !0, layoutIterations: 32, label: { show: !0, position: "right", color: "#000", fontSize: 12 }, itemStyle: { borderWidth: 1, borderColor: "#333" }, lineStyle: { color: "#314656", opacity: .2, curveness: .5 }, emphasis: { label: { show: !0 }, lineStyle: { opacity: .6 } }, animationEasing: "linear", animationDuration: 1e3 } 15415 }), 15416 hL = En({ 15417 shape: { x1: 0, y1: 0, x2: 0, y2: 0, cpx1: 0, cpy1: 0, cpx2: 0, cpy2: 0, extent: 0 }, 15418 buildPath: function(t, e) { 15419 var i = e.extent / 2; 15420 t.moveTo(e.x1, e.y1 - i), t.bezierCurveTo(e.cpx1, e.cpy1 - i, e.cpx2, e.cpy2 - i, e.x2, e.y2 - i), t.lineTo(e.x2, e.y2 + i), t.bezierCurveTo(e.cpx2, e.cpy2 + i, e.cpx1, e.cpy1 + i, e.x1, e.y1 + i
15420), t.closePath() 15421 } 15422 }); 15423 _s({ 15424 type: "sankey", 15425 _model: null, 15426 render: function(t, e, i) { 15427 var n = t.getGraph(), 15428 o = this.group, 15429 a = t.layoutInfo, 15430 r = a.width, 15431 s = a.height, 15432 l = t.getData(), 15433 u = t.getData("edge"); 15434 this._model = t, o.removeAll(), o.attr("position", [a.x, a.y]), n.eachEdge(function(e) { 15435 var i = new hL; 15436 i.dataIndex = e.dataIndex, i.seriesIndex = t.seriesIndex, i.dataType = "edge"; 15437 var n = e.getModel("lineStyle"), 15438 a = n.get("curveness"), 15439 l = e.node1.getLayout(), 15440 h = e.node1.getModel(), 15441 c = h.get("localX"), 15442 d = h.get("localY"), 15443 f = e.node2.getLayout(), 15444 p = e.node2.getModel(), 15445 g = p.get("localX"), 15446 m = p.get("localY"), 15447 v = e.getLayout(); 15448 i.shape.extent = Math.max(1, v.dy); 15449 var y = (null != c ? c * r : l.x) + l.dx, 15450 x = (null != d ? d * s : l.y) + v.sy + v.dy / 2, 15451 _ = null != g ? g * r : f.x, 15452 w = (null != m ? m * s : f.y) + v.ty + v.dy / 2, 15453 b = y * (1 - a) + _ * a, 15454 S = x, 15455 M = y * a + _ * (1 - a), 15456 I = w; 15457 switch (i.setShape({ x1: y, y1: x, x2: _, y2: w, cpx1: b, cpy1: S, cpx2: M, cpy2: I }), i.setStyle(n.getItemStyle()), i.style.fill) { 15458 case "source": 15459 i.style.fill = e.node1.getVisual("color"); 15460 break; 15461 case "target": 15462 i.style.fill = e.node2.getVisual("color") 15463 } 15464 eo(i, e.getModel("emphasis.lineStyle").getItemStyle()), o.add(i), u.setItemGraphicEl(e.dataIndex, i) 15465 }), n.eachNode(function(e) { 15466 var i = e.getLayout(), 15467 n = e.getModel(), 15468 a = n.get("localX"), 15469 u = n.get("localY"), 15470 h = n.getModel("label"), 15471 c = n.getModel("emphasis.label"), 15472 d = new SS({ shape: { x: null != a ? a * r : i.x, y: null != u ? u * s : i.y, width: i.dx, height: i.dy }, style: n.getModel("itemStyle").getItemStyle() }), 15473 f = e.getModel("emphasis.itemStyle").getItemStyle(); 15474 io(d.style, f, h, c, { labelFetcher: t, labelDataIndex: e.dataIndex, defaultText: e.id, isRectText: !0 }), d.setStyle("fill", e.getVisual("color")), eo(d, f), o.add(d), l.setItemGraphicEl(e.dataIndex, d), d.dataType = "node" 15475 }), t.get("draggable") && l.eachItemGraphicEl(function(e, n) { e.drift = function(e, o) { this.shape.x += e, this.shape.y += o, this.dirty(), i.dispatchAction({ type: "dragNode", seriesId: t.id, dataIndex: l.getRawIndex(n), localX: this.shape.x / r, localY: this.shape.y / s }) }, e.draggable = !0, e.cursor = "move" }), !this._data && t.get("animation") && o.setClipPath($f(o.getBoundingRect(), t, function() { o.removeClipPath() })), this._data = t.getData() 15476 }, 15477 dispose: function() {} 15478 }), cs({ 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]) }) }); 15479 fs(function(t, e, i) { 15480 t.eachSeriesByType("sankey", function(t) { 15481 var i = t.get("nodeWidth"), 15482 n = t.get("nodeGap"), 15483 o = Qf(t, e); 15484 t.layoutInfo = o; 15485 var a = o.width, 15486 r = o.height, 15487 s = t.getGraph(), 15488 l = s.nodes, 15489 u = s.edges; 15490 ep(l), tp(l, u, i, n, a, r, 0 !== g(l, function(t) { return 0 === t.getLayout().value }).length ? 0 : t.get("layoutIterations")) 15491 }) 15492 }), ps(function(t, e) { 15493 t.eachSeriesByType("sankey", function(t) { 15494 var e = t.getGraph().nodes; 15495 if (e.length) { 15496 var i = 1 / 0, 15497 n = -1 / 0; 15498 d(e, function(t) { 15499 var e = t.getLayout().value; 15500 e < i && (i = e), e > n && (n = e) 15501 }), d(e, function(e) { 15502 var o = new ZA({ type: "color", mappingMethod: "linear", dataExtent: [i, n], visual: t.get("
15502color") }).mapValueToVisual(e.getLayout().value); 15503 e.setVisual("color", o); 15504 var a = e.getModel().get("itemStyle.color"); 15505 null != a && e.setVisual("color", a) 15506 }) 15507 } 15508 }) 15509 }); 15510 var cL = { 15511 _baseAxisDim: null, 15512 getInitialData: function(t, e) { 15513 var i, n, o = e.getComponent("xAxis", this.get("xAxisIndex")), 15514 a = e.getComponent("yAxis", this.get("yAxisIndex")), 15515 r = o.get("type"), 15516 s = a.get("type"); 15517 "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"; 15518 var l = ["x", "y"], 15519 u = "horizontal" === t.layout ? 0 : 1, 15520 h = this._baseAxisDim = l[u], 15521 c = l[1 - u], 15522 f = [o, a], 15523 p = f[u].get("type"), 15524 g = f[1 - u].get("type"), 15525 m = t.data; 15526 if (m && n) { 15527 var v = []; 15528 d(m, function(t, e) { 15529 var i; 15530 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) 15531 }), t.data = v 15532 } 15533 var x = this.defaultValueDimensions; 15534 return jD(this, { coordDimensions: [{ name: h, type: Ts(p), ordinalMeta: i, otherDims: { tooltip: !1, itemName: 0 }, dimsDef: ["base"] }, { name: c, type: Ts(g), dimsDef: x.slice() }], dimensionsCount: x.length + 1 }) 15535 }, 15536 getBaseAxis: function() { var t = this._baseAxisDim; return this.ecModel.getComponent(t + "Axis", this.get(t + "AxisIndex")).axis } 15537 }; 15538 h(KM.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 } }), cL, !0); 15539 var dL = ["itemStyle"], 15540 fL = ["emphasis", "itemStyle"], 15541 pL = (gr.extend({ 15542 type: "boxplot", 15543 render: function(t, e, i) { 15544 var n = t.getData(), 15545 o = this.group, 15546 a = this._data; 15547 this._data || o.removeAll(); 15548 var r = "horizontal" === t.get("layout") ? 1 : 0; 15549 n.diff(a).add(function(t) { 15550 if (n.hasValue(t)) { 15551 var e = _p(n.getItemLayout(t), n, t, r, !0); 15552 n.setItemGraphicEl(t, e), o.add(e) 15553 } 15554 }).update(function(t, e) { 15555 var i = a.getItemGraphicEl(e); 15556 if (n.hasValue(t)) { 15557 var s = n.getItemLayout(t); 15558 i ? wp(s, i, n, t) : i = _p(s, n, t, r), o.add(i), n.setItemGraphicEl(t, i) 15559 } else o.remove(i) 15560 }).remove(function(t) { 15561 var e = a.getItemGraphicEl(t); 15562 e && o.remove(e) 15563 }).execute(), this._data = n 15564 }, 15565 remove: function(t) { 15566 var e = this.group, 15567 i = this._data; 15568 this._data = null, i && i.eachItemGraphicEl(function(t) { t && e.remove(t) }) 15569 }, 15570 dispose: B 15571 }), In.extend({ 15572 type: "boxplotBoxPath", 15573 shape: {}, 15574 buildPath: function(t, e) { 15575 var i = e.points, 15576 n = 0; 15577 for (t.moveTo(i[n][0], i[n][1]), n++; n < 4; n++) t.lineTo(i[n][0], i[n][1]); 15578 for (t.closePath(); n < i.length; n++) t.moveTo(i[n][0], i[n][1]), n++, t.lineTo(i[n][0], i[n][1]) 15579 } 15580 })), 15581 gL = ["itemStyle", "borderColor"], 15582 mL = d; 15583 ps(function(t, e) {
15584 var i = t.get("color"); 15585 t.eachRawSeriesByType("boxplot", function(e) { 15586 var n = i[e.seriesIndex % i.length], 15587 o = e.getData(); 15588 o.setVisual({ legendSymbol: "roundRect", color: e.get(gL) || n }), t.isSeriesFiltered(e) || o.each(function(t) { 15589 var e = o.getItemModel(t); 15590 o.setItemVisual(t, { color: e.get(gL, !0) }) 15591 }) 15592 }) 15593 }), fs(function(t) { 15594 var e = Sp(t); 15595 mL(e, function(t) { 15596 var e = t.seriesModels; 15597 e.length && (Mp(t), mL(e, function(e, i) { Ip(e, t.boxOffsetList[i], t.boxWidthList[i]) })) 15598 }) 15599 }), h(KM.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) } }), cL, !0); 15600 var vL = ["itemStyle"], 15601 yL = ["emphasis", "itemStyle"], 15602 xL = ["color", "color0", "borderColor", "borderColor0"], 15603 _L = (gr.extend({ 15604 type: "candlestick", 15605 render: function(t, e, i) { this._updateDrawMode(t), this._isLargeDraw ? this._renderLarge(t) : this._renderNormal(t) }, 15606 incrementalPrepareRender: function(t, e, i) { this._clear(), this._updateDrawMode(t) }, 15607 incrementalRender: function(t, e, i, n) { this._isLargeDraw ? this._incrementalRenderLarge(t, e) : this._incrementalRenderNormal(t, e) }, 15608 _updateDrawMode: function(t) { 15609 var e = t.pipelineContext.large; 15610 (null == this._isLargeDraw || e ^ this._isLargeDraw) && (this._isLargeDraw = e, this._clear()) 15611 }, 15612 _renderNormal: function(t) { 15613 var e = t.getData(), 15614 i = this._data, 15615 n = this.group, 15616 o = e.getLayout("isSimpleBox"); 15617 this._data || n.removeAll(), e.diff(i).add(function(i) { 15618 if (e.hasValue(i)) { 15619 var a, r = e.getItemLayout(i); 15620 po(a = Tp(r, 0, !0), { shape: { points: r.ends } }, t, i), Dp(a, e, i, o), n.add(a), e.setItemGraphicEl(i, a) 15621 } 15622 }).update(function(a, r) { 15623 var s = i.getItemGraphicEl(r); 15624 if (e.hasValue(a)) { 15625 var l = e.getItemLayout(a); 15626 s ? fo(s, { shape: { points: l.ends } }, t, a) : s = Tp(l), Dp(s, e, a, o), n.add(s), e.setItemGraphicEl(a, s) 15627 } else n.remove(s) 15628 }).remove(function(t) { 15629 var e = i.getItemGraphicEl(t); 15630 e && n.remove(e) 15631 }).execute(), this._data = e 15632 }, 15633 _renderLarge: function(t) { this._clear(), Cp(t, this.group) }, 15634 _incrementalRenderNormal: function(t, e) { 15635 for (var i, n = e.getData(), o = n.getLayout("isSimpleBox"); null != (i = t.next());) { 15636 var a; 15637 Dp(a = Tp(n.getItemLayout(i)), n, i, o), a.incremental = !0, this.group.add(a) 15638 } 15639 }, 15640 _incrementalRenderLarge: function(t, e) { Cp(e, this.group, !0) }, 15641 remove: function(t) { this._clear() }, 15642 _clear: function() { this.group.removeAll(), this._data = null }, 15643 dispose: B 15644 }), In.extend({ 15645 type: "normalCandlestickBox", 15646 shape: {}, 15647 buildPath: function(t, e) { 15648 var i = e.points; 15649 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])) 15650 } 15651 })), 15652 wL = In.extend({ 15653 type: "largeCandlestickBox", 15654 shape: {}, 15655 buildPath: function(t, e) { 15656 for (var i = e.points, n = 0; n < i.length;) 15657 if (this.__sign === i[n++]) { 15658 var o = i[n++]; 15659 t.moveTo(o, i[n++]), t.lineTo(o, i[n++]) 15660 } else n += 3 15661 } 15662 }), 15663 bL = ["itemStyle", "borderColor"], 15664 SL = ["itemStyle", "borderColor0"], 15665 ML = ["itemStyle", "color"], 15666 IL = ["itemStyle", "color0"], 15667 TL = { 15668 seriesType: "candlestick", 15669 plan: QM(), 15670 performRawSeries: !0, 15671 reset: function(t, e) { 15672 function i(t, e) { return e.get(t > 0 ? ML : IL) } 15673 15674 function n(t, e) { return e.get(t > 0 ? bL : SL) } 15675 var o = t.getData(), 15676 a = t.pipelineContext.large; 15677 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 && { 15678 progress: function(t, e) { 15679 for (var o; null != (o = t.next());) { 15680 var a = e.getItemModel(o), 15681 r = e.getItemLayout(o).sign; 15682 e.setItemVisual(o, { color: i(r, a), borderColor: n(r, a) }) 15683 } 15684 } 15685 } 15686 } 15687 }, 15688 DL = "undefined" != typeof Float32Array ? Float32Array : Array, 15689 AL = { 15690 seriesType: "candlestick", 15691 plan: QM(), 15692 reset: function(t) { 15693 var e = t.coordinateSystem, 15694 i = t.getData(), 15695 n = Pp(t, i), 15696 o = 0, 15697 a = 1, 15698 r = ["x", "y"], 15699 s = i.mapDimension(r[o]), 15700 l = i.mapDimension(r[a], !0), 15701 u = l[0], 15702 h = l[1], 15703 c = l[2], 15704 d = l[3]; 15705 if (i.setLayout({ candleWidth: n, isSimpleBox: n <= 1.3 }), !(null == s || l.length < 4)) return { 15706 progress: t.pipelineContext.large ? function(t, i) { 15707 for (var n, r, l = new DL(5 * t.count), f = 0, p = [], g = []; null != (r = t.next());) { 15708 var m = i.get(s, r), 15709 v = i.get(u, r), 15710 y = i.get(h, r), 15711 x = i.get(c, r), 15712 _ = i.get(d, r); 15713 isNaN(m) || isNaN(x) || isNaN(_) ? (l[f++] = NaN, f += 4) : (l[f++] = kp(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) 15714 } 15715 i.setLayout("largePoints", l) 15716 } : function(t, i) { 15717 function r(t, i) { var n = []; return n[o] = i, n[a] = t, isNaN(i) || isNaN(t) ? [NaN, NaN] : e.dataToPoint(n) } 15718 15719 function l(t, e, i) { 15720 var a = e.slice(), 15721 r = e.slice(); 15722 a[o] = Fn(a[o] + n / 2, 1, !1), r[o] = Fn(r[o] - n / 2, 1, !0), i ? t.push(a, r) : t.push(r, a) 15723 } 15724 15725 function f(t) { return t[o] = Fn(t[o], 1), t } 15726 for (var p; null != (p = t.next());) { 15727 var g = i.get(s, p), 15728 m = i.get(u, p), 15729 v = i.get(h, p), 15730 y = i.get(c, p), 15731 x = i.get(d, p), 15732 _ = Math.min(m, v), 15733 w = Math.max(m, v), 15734 b = r(_, g), 15735 S = r(w, g), 15736 M = r(y, g), 15737 I = r(x, g), 15738 T = []; 15739 l(T, S, 0), l(T, b, 1), T.push(f(I), f(S), f(M), f(b)), i.setItemLayout(p, { 15740 sign: kp(i, p, m, v, h), 15741 initBaseline: m > v ? S[a] : b[a], 15742 ends: T, 15743 brushRect: function(t, e, i) { 15744 var s = r(t, i), 15745 l = r(e, i); 15746 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 } 15747 }(y, x, g) 15748 }) 15749 } 15750 } 15751 } 15752 } 15753 }; 15754 us(function(t) { t && y(t.series) && d(t.series, function(t) { w(t) && "k" === t.type && (t.type = "candlestick") }) }), ps(TL), fs(AL), KM.extend({ type: "series.effectScatter", dependencies: ["grid", "polar"], getInitialData: function(t, e) { return Xs(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 } }); 15755 var CL = Ep.prototype; 15756 CL.stopEffectAnimation = function() { this.childAt(1).removeAll() }
15756, CL.startEffectAnimation = function(t) { 15757 for (var e = t.symbolType, i = t.color, n = this.childAt(1), o = 0; o < 3; o++) { 15758 var a = Tl(e, -1, -1, 2, 2, i); 15759 a.attr({ style: { strokeNoScale: !0 }, z2: 99, silent: !0, scale: [.5, .5] }); 15760 var r = -o / 3 * t.period + t.effectOffset; 15761 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) 15762 } 15763 Op(n, t) 15764 }, CL.updateEffectAnimation = function(t) { 15765 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) } 15766 Op(i, t) 15767 }, CL.highlight = function() { this.trigger("emphasis") }, CL.downplay = function() { this.trigger("normal") }, CL.updateData = function(t, e) { 15768 var i = t.hostModel; 15769 this.childAt(0).updateData(t, e); 15770 var n = this.childAt(1), 15771 o = t.getItemModel(e), 15772 a = t.getItemVisual(e, "symbol"), 15773 r = Np(t.getItemVisual(e, "symbolSize")), 15774 s = t.getItemVisual(e, "color"); 15775 n.attr("scale", r), n.traverse(function(t) { t.attr({ fill: s }) }); 15776 var l = o.getShallow("symbolOffset"); 15777 if (l) { 15778 var u = n.position; 15779 u[0] = Do(l[0], r[0]), u[1] = Do(l[1], r[1]) 15780 } 15781 n.rotation = (o.getShallow("symbolRotate") || 0) * Math.PI / 180 || 0; 15782 var h = {}; 15783 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; 15784 else { 15785 this._effectCfg = null, this.stopEffectAnimation(); 15786 var c = this.childAt(0), 15787 d = function() { c.highlight(), "render" !== h.showEffectOn && this.startEffectAnimation(h) }, 15788 f = function() { c.downplay(), "render" !== h.showEffectOn && this.stopEffectAnimation() }; 15789 this.on("mouseover", d, this).on("mouseout", f, this).on("emphasis", d, this).on("normal", f, this) 15790 } 15791 this._effectCfg = h 15792 }, CL.fadeOut = function(t) { this.off("mouseover").off("mouseout").off("emphasis").off("normal"), t && t() }, u(Ep, sw), _s({ 15793 type: "effectScatter", 15794 init: function() { this._symbolDraw = new Ql(Ep) }, 15795 render: function(t, e, i) { 15796 var n = t.getData(), 15797 o = this._symbolDraw; 15798 o.updateData(n), this.group.add(o.group) 15799 }, 15800 updateTransform: function(t, e, i) { 15801 var n = t.getData(); 15802 this.group.dirty(); 15803 var o = mD().reset(t); 15804 o.progress && o.progress({ start: 0, end: n.count() }, n), this._symbolDraw.updateLayout(n) 15805 }, 15806 _updateGroupTransform: function(t) { 15807 var e = t.coordinateSystem; 15808 e && e.getRoamTransform && (this.group.transform = gt(e.getRoamTransform()), this.group.decomposeTransform()) 15809 }, 15810 remove: function(t, e) { this._symbolDraw && this._symbolDraw.remove(e) },
15811 dispose: function() {} 15812 }), ps(gD("effectScatter", "circle")), fs(mD("effectScatter")); 15813 var LL = "undefined" == typeof Uint32Array ? Array : Uint32Array, 15814 kL = "undefined" == typeof Float64Array ? Array : Float64Array, 15815 PL = KM.extend({ 15816 type: "series.lines", 15817 dependencies: ["grid", "polar"], 15818 visualColorAccessPath: "lineStyle.color", 15819 init: function(t) { 15820 t.data = t.data || [], Rp(t); 15821 var e = this._processFlatCoordsArray(t.data); 15822 this._flatCoords = e.flatCoords, this._flatCoordsOffset = e.flatCoordsOffset, e.flatCoords && (t.data = new Float32Array(e.count)), PL.superApply(this, "init", arguments) 15823 }, 15824 mergeOption: function(t) { 15825 if (t.data = t.data || [], Rp(t), t.data) { 15826 var e = this._processFlatCoordsArray(t.data); 15827 this._flatCoords = e.flatCoords, this._flatCoordsOffset = e.flatCoordsOffset, e.flatCoords && (t.data = new Float32Array(e.count)) 15828 } 15829 PL.superApply(this, "mergeOption", arguments) 15830 }, 15831 appendData: function(t) { 15832 var e = this._processFlatCoordsArray(t.data); 15833 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) 15834 }, 15835 _getCoordsFromItemModel: function(t) { var e = this.getData().getItemModel(t); return e.option instanceof Array ? e.option : e.getShallow("coords") }, 15836 getLineCoordsCount: function(t) { return this._flatCoordsOffset ? this._flatCoordsOffset[2 * t + 1] : this._getCoordsFromItemModel(t).length }, 15837 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 }, 15838 _processFlatCoordsArray: function(t) { 15839 var e = 0; 15840 if (this._flatCoords && (e = this._flatCoords.length), "number" == typeof t[0]) { 15841 for (var i = t.length, n = new LL(i), o = new kL(i), a = 0, r = 0, s = 0, l = 0; l < i;) { 15842 s++; 15843 var u = t[l++]; 15844 n[r++] = a + e, n[r++] = u; 15845 for (var h = 0; h < u; h++) { 15846 var c = t[l++], 15847 d = t[l++]; 15848 o[a++] = c, o[a++] = d 15849 } 15850 } 15851 return { flatCoordsOffset: new Uint32Array(n.buffer, 0, r), flatCoords: o, count: s } 15852 } 15853 return { flatCoordsOffset: null, flatCoords: null, count: t.length } 15854 }, 15855 getInitialData: function(t, e) { 15856 var i = new sT(["value"], this); 15857 return i.hasItemOption = !1, i.initData(t.data, [], function(t, e, n, o) { 15858 if (t instanceof Array) return NaN; 15859 i.hasItemOption = !0; 15860 var a = t.value; 15861 return null != a ? a instanceof Array ? a[o] : a : void 0 15862 }), i 15863 }, 15864 formatTooltip: function(t) { 15865 var e = this.getData().getItemModel(t), 15866 i = e.get("name"); 15867 if (i) return i; 15868 var n = e.get("fromName"), 15869 o = e.get("toName"), 15870 a = []; 15871 return null != n && a.push(n), null != o && a.push(o), Zo(a.join(" > ")) 15872 }, 15873 preventIncremental: function() { return !!this.get("effect.show") }, 15874 getProgressive: function() { var t = this.option.progressive; return null == t ? this.option.large ? 1e4 : this.get("progressive") : t }, 15875 getProgressiveThreshold: function() { var t = this.option.progressiveThreshold; return null == t ? this.option.large ? 2e4 : this.get("progressiveThreshold") : t }, 15876 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: .2 }, large: !1, largeThreshold: 2e3, polyline: !1, label: { show: !1, position: "end" }, lineStyle: { opacity: .5 } } 15877 }), 15878 NL = zp.prototype; 15879 NL.createLine = function(t, e, i) { return new bd(t, e, i) }, NL._updateEffectSymbol = function(t, e) { 15880 var i = t.getItemModel(e).getModel("effect"), 15881 n = i.get("symbolSize"), 15882 o = i.get("symbol"); 15883 y(n) || (n = [n, n]); 15884 var a = i.get("color") || t.getItemVisual(e, "color"), 15885 r = this.childAt(1); 15886 this._symbolType !== o && (this.remove(r), (r = Tl(o, -.5, -.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)) 15887 }, NL._updateEffectAnimation = function(t, e, i) { 15888 var n = this.childAt(1); 15889 if (n) { 15890 var o = this, 15891 a = t.getItemLayout(i), 15892 r = 1e3 * e.get("period"), 15893 s = e.get("loop"), 15894 l = e.get("constantSpeed"), 15895 u = T(e.get("delay"), function(e) { return e / t.count() * r / 3 }), 15896 h = "function" == typeof u; 15897 if (n.ignore = !0, this.updateAnimationPoints(n, a), l > 0 && (r = this.getLineLength(n) / l * 1e3), r !== this._period || s !== this._loop) { 15898 n.stopAnimation(); 15899 var c = u; 15900 h && (c = u(i)), n.__t > 0 && (c = -r * n.__t), n.__t = 0; 15901 var d = n.animate("", s).when(r, { __t: 1 }).delay(c).during(function() { o.updateSymbolPosition(n) }); 15902 s || d.done(function() { o.remove(n) }), d.start() 15903 } 15904 this._period = r, this._loop = s 15905 } 15906 }, NL.getLineLength = function(t) { return S_(t.__p1, t.__cp1) + S_(t.__cp1, t.__p2) }, NL.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] }, NL.updateData = function(t, e, i) { this.childAt(0).updateData(t, e, i), this._updateEffectSymbol(t, e) }, NL.updateSymbolPosition = function(t) { 15907 var e = t.__p1, 15908 i = t.__p2, 15909 n = t.__cp1, 15910 o = t.__t, 15911 a = t.position, 15912 r = Qi, 15913 s = tn; 15914 a[0] = r(e[0], n[0], i[0], o), a[1] = r(e[1], n[1], i[1], o); 15915 var l = s(e[0], n[0], i[0], o), 15916 u = s(e[1], n[1], i[1], o);
15917 t.rotation = -Math.atan2(u, l) - Math.PI / 2, t.ignore = !1 15918 }, NL.updateLayout = function(t, e) { 15919 this.childAt(0).updateLayout(t, e); 15920 var i = t.getItemModel(e).getModel("effect"); 15921 this._updateEffectAnimation(t, i, e) 15922 }, u(zp, sw); 15923 var OL = Bp.prototype; 15924 OL._createPolyline = function(t, e, i) { 15925 var n = t.getItemLayout(e), 15926 o = new bS({ shape: { points: n } }); 15927 this.add(o), this._updateCommonStl(t, e, i) 15928 }, OL.updateData = function(t, e, i) { 15929 var n = t.hostModel; 15930 fo(this.childAt(0), { shape: { points: t.getItemLayout(e) } }, n, e), this._updateCommonStl(t, e, i) 15931 }, OL._updateCommonStl = function(t, e, i) { 15932 var n = this.childAt(0), 15933 o = t.getItemModel(e), 15934 a = t.getItemVisual(e, "color"), 15935 s = i && i.lineStyle, 15936 l = i && i.hoverLineStyle; 15937 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, eo(this) 15938 }, OL.updateLayout = function(t, e) { this.childAt(0).setShape("points", t.getItemLayout(e)) }, u(Bp, sw); 15939 var EL = Vp.prototype; 15940 EL.createLine = function(t, e, i) { return new Bp(t, e, i) }, EL.updateAnimationPoints = function(t, e) { 15941 this._points = e; 15942 for (var i = [0], n = 0, o = 1; o < e.length; o++) { 15943 var a = e[o - 1], 15944 r = e[o]; 15945 n += S_(a, r), i.push(n) 15946 } 15947 if (0 !== n) { 15948 for (o = 0; o < i.length; o++) i[o] /= n; 15949 this._offsets = i, this._length = n 15950 } 15951 }, EL.getLineLength = function(t) { return this._length }, EL.updateSymbolPosition = function(t) { 15952 var e = t.__t, 15953 i = this._points, 15954 n = this._offsets, 15955 o = i.length; 15956 if (n) { 15957 var a = this._lastFrame; 15958 if (e < this._lastFramePercent) { 15959 for (r = Math.min(a + 1, o - 1); r >= 0 && !(n[r] <= e); r--); 15960 r = Math.min(r, o - 2) 15961 } else { 15962 for (var r = a; r < o && !(n[r] > e); r++); 15963 r = Math.min(r - 1, o - 2) 15964 } 15965 J(t.position, i[r], i[r + 1], (e - n[r]) / (n[r + 1] - n[r])); 15966 var s = i[r + 1][0] - i[r][0], 15967 l = i[r + 1][1] - i[r][1]; 15968 t.rotation = -Math.atan2(l, s) - Math.PI / 2, this._lastFrame = r, this._lastFramePercent = e, t.ignore = !1 15969 } 15970 }, u(Vp, zp); 15971 var RL = En({ 15972 shape: { polyline: !1, curveness: 0, segs: [] }, 15973 buildPath: function(t, e) { 15974 var i = e.segs, 15975 n = e.curveness; 15976 if (e.polyline) 15977 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 15978 for (var r = 0; r < i.length;) { 15979 var s = i[r++], 15980 l = i[r++], 15981 u = i[r++], 15982 h = i[r++]; 15983 if (t.moveTo(s, l), n > 0) { 15984 var c = (s + u) / 2 - (l - h) * n, 15985 d = (l + h) / 2 - (u - s) * n; 15986 t.quadraticCurveTo(c, d, u, h) 15987 } else t.lineTo(u, h) 15988 } 15989 }, 15990 findDataIndex: function(t, e) { 15991 var i = this.shape, 15992 n = i.segs, 15993 o = i.curveness; 15994 if (i.polyline) 15995 for (var a = 0, r = 0; r < n.length;) { 15996 var s = n[r++]; 15997 if (s > 0) 15998 for (var l = n[r++], u = n[r++], h = 1; h < s; h++) 15999 if (cn(l, u, c = n[r++], d = n[r++])) return a; 16000 a++ 16001 } else 16002 for (var a = 0, r = 0; r < n.length;) { 16003 var l = n[r++], 16004 u = n[r++], 16005 c = n[r++], 16006 d = n[r++]; 16007 if (o > 0) { if (fn(l, u, (l + c) / 2 - (u - d) * o, (u + d) / 2 - (c - l) * o, c, d)) return a } else if (cn(l, u, c, d)) return a; 16008 a++ 16009 } 16010 return -1 16011 } 16012 }), 16013 zL = Gp.prototype; 16014 zL.isPersistent = function() { return !this._incremental }, zL.updateData = function(t) { 16015 this.group.removeAll(); 16016 var e = new RL({ rectHover: !0, cursor: "default" }); 16017 e.setShape({ segs: t.getLayout("linesPoints") }), this._setCommon(e, t), this.group.add(e), this._incremental = null 16018 }, zL.incrementalPrepareUpdate = function(t) { this.group.removeAll(), this._clearIncremental(), t.count() > 5e5 ? (this._incremental || (this._incremental = new On({ silent: !0 })), this.group.add(this._incremental)) : this._incremental = null }, zL.incrementalUpdate = function(t, e) { 16019 var i = new RL; 16020 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)) 16021 }, zL.remove = function() { this._clearIncremental(), this._incremental = null, this.group.removeAll() }, zL._setCommon = function(t, e, i) { 16022 var n = e.hostModel; 16023 t.setShape({ polyline: n.get("polyline"), curveness: n.get("lineStyle.curveness") }), t.useStyle(n.getModel("lineStyle").getLineStyle()), t.style.strokeNoScale = !0; 16024 var o = e.getVisual("color"); 16025 o && t.setStyle("stroke", o), t.setStyle("fill"), i || (t.seriesIndex = n.seriesIndex, t.on("mousemove", function(e) { 16026 t.dataIndex = null; 16027 var i = t.findDataIndex(e.offsetX, e.offsetY); 16028 i > 0 && (t.dataIndex = i + t.__startIndex) 16029 })) 16030 }, zL._clearIncremental = function() { 16031 var t = this._incremental; 16032 t && t.clearDisplaybles() 16033 }; 16034 var BL = { 16035 seriesType: "lines", 16036 plan: QM(), 16037 reset: function(t) { 16038 var e = t.coordinateSystem, 16039 i = t.get("polyline"), 16040 n = t.pipelineContext.large; 16041 return { 16042 progress: function(o, a) { 16043 var r = []; 16044 if (n) { 16045 var s, l = o.end - o.start; 16046 if (i) { 16047 for (var u = 0, h = o.start; h < o.end; h++) u += t.getLineCoordsCount(h); 16048 s = new Float32Array(l + 2 * u) 16049 } else s = new Float32Array(4 * l); 16050 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] } 16051 a.setLayout("linesPoints", s) 16052 } else 16053 for (h = o.start; h < o.end; h++) { 16054 var p = a.getItemModel(h), 16055 g = t.getLineCoords(h, r), 16056 m = []; 16057 if (i) 16058 for (var v = 0; v < g; v++) m.push(e.dataToPoint(r[v])); 16059 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]) } 16060 a.setItemLayout(h, m) 16061 } 16062 } 16063 } 16064 } 16065 }; 16066 _s({ 16067 type: "lines", 16068 init: function() {}, 16069 render: function(t, e, i) { 16070 var n = t.getData(), 16071 o = this._updateLineDraw(n, t), 16072 a = t.get("zlevel"), 16073 r = t.get("effect.trailLength"), 16074 s = i.getZr(), 16075 l = "svg" === s.painter.getType(); 16076 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 + .9, 1), 0
16076) })), o.updateData(n), this._lastZlevel = a, this._finished = !0 16077 }, 16078 incrementalPrepareRender: function(t, e, i) { 16079 var n = t.getData(); 16080 this._updateLineDraw(n, t).incrementalPrepareUpdate(n), this._clearLayer(i), this._finished = !1 16081 }, 16082 incrementalRender: function(t, e, i) { this._lineDraw.incrementalUpdate(t, e.getData()), this._finished = t.end === e.getData().count() }, 16083 updateTransform: function(t, e, i) { 16084 var n = t.getData(), 16085 o = t.pipelineContext; 16086 if (!this._finished || o.large || o.progressiveRender) return { update: !0 }; 16087 var a = BL.reset(t); 16088 a.progress && a.progress({ start: 0, end: n.count() }, n), this._lineDraw.updateLayout(), this._clearLayer(i) 16089 }, 16090 _updateLineDraw: function(t, e) { 16091 var i = this._lineDraw, 16092 n = this._showEffect(e), 16093 o = !!e.get("polyline"), 16094 a = e.pipelineContext.large; 16095 return i && n === this._hasEffet && o === this._isPolyline && a === this._isLargeDraw || (i && i.remove(), i = this._lineDraw = a ? new Gp : new Sd(o ? n ? Vp : Bp : n ? zp : bd), this._hasEffet = n, this._isPolyline = o, this._isLargeDraw = a, this.group.removeAll()), this.group.add(i.group), i 16096 }, 16097 _showEffect: function(t) { return !!t.get("effect.show") }, 16098 _clearLayer: function(t) { var e = t.getZr(); "svg" === e.painter.getType() || null == this._lastZlevel || e.painter.getLayer(this._lastZlevel).clear(!0) }, 16099 remove: function(t, e) { this._lineDraw && this._lineDraw.remove(), this._lineDraw = null, this._clearLayer(e) }, 16100 dispose: function() {} 16101 }); 16102 var VL = "lineStyle.opacity".split("."), 16103 GL = { 16104 seriesType: "lines", 16105 reset: function(t, e, i) { 16106 var n = Wp(t.get("symbol")), 16107 o = Wp(t.get("symbolSize")), 16108 a = t.getData(); 16109 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(VL)), { 16110 dataEach: a.hasItemOption ? function(t, e) { 16111 var i = t.getItemModel(e), 16112 n = Wp(i.getShallow("symbol", !0)), 16113 o = Wp(i.getShallow("symbolSize", !0)), 16114 a = i.get(VL); 16115 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) 16116 } : null 16117 } 16118 } 16119 }; 16120 fs(BL), ps(GL), KM.extend({ type: "series.heatmap", getInitialData: function(t, e) { return Xs(this.getSource(), this, { generateCoord: "value" }) }, preventIncremental: function() { var t = Ca.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 } }); 16121 Fp.prototype = { 16122 update: function(t, e, i, n, o, a) { 16123 var r = this._getBrush(), 16124 s = this._getGradient(t, o, "inRange"), 16125 l = this._getGradient(t, o, "outOfRange"), 16126 u = this.pointSize + this.blurSize, 16127 h = this.canvas, 16128 c = h.getContext("2d"), 16129 d = t.length; 16130 h.width = e, h.height = i; 16131 for (var f = 0; f < d; ++f) { 16132 var p = t[f], 16133 g = p[0], 16134 m = p[1], 16135 v = n(p[2]); 16136 c.globalAlpha = v, c.drawImage(r, g - u, m - u) 16137 } 16138 if (!h.width || !h.height) return h; 16139 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;) { 16140 var v = x[_ + 3] / 256, 16141 M = 4 * Math.floor(255 * v); 16142 if (v > 0) { 16143 var I = a(v) ? s : l; 16144 v > 0 && (v = v * S + b), x[_++] = I[M], x[_++] = I[M + 1], x[_++] = I[M + 2], x[_++] = I[M + 3] * v * 256 16145 } else _ += 4 16146 } 16147 return c.putImageData(y, 0, 0), h 16148 }, 16149 _getBrush: function() { 16150 var t = this._brushCanvas || (this._brushCanvas = m_()), 16151 e = this.pointSize + this.blurSize, 16152 i = 2 * e; 16153 t.width = i, t.height = i; 16154 var n = t.getContext("2d"); 16155 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 16156 }, 16157 _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 } 16158 }, _s({ 16159 type: "heatmap", 16160 render: function(t, e, i) { 16161 var n; 16162 e.eachComponent("visualMap", function(e) { e.eachTargetSeries(function(i) { i === t && (n = e) }) }
16162), this.group.removeAll(), this._incrementalDisplayable = null; 16163 var o = t.coordinateSystem; 16164 "cartesian2d" === o.type || "calendar" === o.type ? this._renderOnCartesianAndCalendar(t, i, 0, t.getData().count()) : Up(o) && this._renderOnGeo(o, t, n, i) 16165 }, 16166 incrementalPrepareRender: function(t, e, i) { this.group.removeAll() }, 16167 incrementalRender: function(t, e, i, n) { e.coordinateSystem && this._renderOnCartesianAndCalendar(e, n, t.start, t.end, !0) }, 16168 _renderOnCartesianAndCalendar: function(t, e, i, n, o) { 16169 var r, s, l = t.coordinateSystem; 16170 if ("cartesian2d" === l.type) { 16171 var u = l.getAxis("x"), 16172 h = l.getAxis("y"); 16173 r = u.getBandWidth(), s = h.getBandWidth() 16174 } 16175 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++) { 16176 var _; 16177 if ("cartesian2d" === v) { 16178 if (isNaN(d.get(y[2], x))) continue; 16179 var w = l.dataToPoint([d.get(y[0], x), d.get(y[1], x)]); 16180 _ = new SS({ 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") } }) 16181 } else { 16182 if (isNaN(d.get(y[1], x))) continue; 16183 _ = new SS({ z2: 1, shape: l.dataToRect([d.get(y[0], x)]).contentShape, style: { fill: d.getItemVisual(x, "color"), opacity: d.getItemVisual(x, "opacity") } }) 16184 } 16185 var b = d.getItemModel(x); 16186 d.hasItemOption && (f = b.getModel("itemStyle").getItemStyle(["color"]), p = b.getModel("emphasis.itemStyle").getItemStyle(), g = b.getModel("label"), m = b.getModel("emphasis.label")); 16187 var S = t.getRawValue(x), 16188 M = "-"; 16189 S && null != S[2] && (M = S[2]), io(f, p, g, m, { labelFetcher: t, labelDataIndex: x, defaultText: M, isRectText: !0 }), _.setStyle(f), eo(_, d.hasItemOption ? p : a({}, p)), _.incremental = o, o && (_.useHoverLayer = !0), c.add(_), d.setItemGraphicEl(x, _) 16190 } 16191 }, 16192 _renderOnGeo: function(t, e, i, n) { 16193 var o = i.targetVisuals.inRange, 16194 a = i.targetVisuals.outOfRange, 16195 r = e.getData(), 16196 s = this._hmLayer || this._hmLayer || new Fp; 16197 s.blurSize = e.get("blurSize"), s.pointSize = e.get("pointSize"), s.minOpacity = e.get("minOpacity"), s.maxOpacity = e.get("maxOpacity"); 16198 var l = t.getViewRect().clone(), 16199 u = t.getRoamTransform(); 16200 l.applyTransform(u); 16201 var h = Math.max(l.x, 0), 16202 c = Math.max(l.y, 0), 16203 d = Math.min(l.width + l.x, n.getWidth()), 16204 f = Math.min(l.height + l.y, n.getHeight()), 16205 p = d - h, 16206 g = f - c, 16207 m = [r.mapDimension("lng"), r.mapDimension("lat"), r.mapDimension("value")], 16208 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 }), 16209 y = i.getExtent(), 16210 x = "visualMap.continuous" === i.type ? Zp(y, i.option.range) : Hp(y, i.getPieceList(), i.option.selected); 16211 s.update(v, p, g, o.color.getNormalizer(), { inRange: o.color.getColorMapper(), outOfRange: a.color.getColorMapper() }, x); 16212 var _ = new Je({ style: { width: p, height: g, x: h, y: c, image: s.canvas }, silent: !0 }); 16213 this.group.add(_) 16214 }, 16215 dispose: function() {} 16216 }); 16217 var WL = GD.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, WL.superApply(this, "getInitialData", arguments) } }), 16218 FL = ["itemStyle", "borderWidth"], 16219 HL = [{ xy: "x", wh: "width", index: 0, posDesc: ["left", "right"] }, { xy: "y", wh: "height", index: 1, posDesc: ["top", "bottom"] }], 16220 ZL = new pS; 16221 _s({ 16222 type: "pictorialBar", 16223 render: function(t, e, i) { 16224 var n = this.group, 16225 o = t.getData(), 16226 a = this._data, 16227 r = t.coordinateSystem, 16228 s = !!r.getBaseAxis().isHorizontal(), 16229 l = r.grid.getRect(), 16230 u = { 16231 ecSize: { width: i.getWidth(), height: i.getHeight() }, 16232 seriesModel: t, 16233 coordSys: r, 16234 coordSysExtent: [ 16235 [l.x, l.x + l.width], 16236 [l.y, l.y + l.height] 16237 ], 16238 isHorizontal: s, 16239 valueDim: HL[+s], 16240 categoryDim: HL[1 - s] 16241 }; 16242 return o.diff(a).add(function(t) { 16243 if (o.hasValue(t)) { 16244 var e = ng(o, t), 16245 i = Xp(o, t, e, u), 16246 a = sg(o, u, i); 16247 o.setItemGraphicEl(t, a), n.add(a), fg(a, u, i) 16248 } 16249 }).update(function(t, e) { 16250 var i = a.getItemGraphicEl(e); 16251 if (o.hasValue(t)) { 16252 var r = ng(o, t), 16253 s = Xp(o, t, r, u), 16254 l = hg(o, s); 16255 i && l !== i.__pictorialShapeStr && (n.remove(i), o.setItemGraphicEl(t, null), i = null), i ? lg(i, u, s) : i = sg(o, u, s, !0), o.setItemGraphicEl(t, i), i.__pictorialSymbolMeta = s, n.add(i), fg(i, u, s) 16256 } else n.remove(i) 16257 }).remove(function(t) { 16258 var e = a.getItemGraphicEl(t); 16259 e && ug(a, t, e.__pictorialSymbolMeta.animationModel, e) 16260 }).execute(), this._data = o, this.group 16261 }, 16262 dispose: B, 16263 remove: function(t, e) { 16264 var i = this.group, 16265 n = this._data; 16266 t.get("animation") ? n && n.eachItemGraphicEl(function(e) { ug(n, e.dataIndex, t, e) }) : i.removeAll() 16267 } 16268 }); 16269 fs(v(cl, "pictorialBar")), ps(gD("pictorialBar", "roundRect")); 16270 var UL = function(t, e, i, n, o) { qT.call(this, t, e, i), this.type = n || "value", this.position = o || "bottom", this.orient = null }; 16271 UL.prototype = { constructor: UL, 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(UL, qT), gg.prototype = { 16272 type: "singleAxis", 16273 axisPointerEnabled: !0, 16274 constructor: gg, 16275 _init: function(t, e, i) { 16276 var n = this.dimension, 16277 o = new UL(n, xl(t), [0, 0], t.get("type"), t.get("position")), 16278 a = "category" === o.type; 16279 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 16280 }, 16281 update: function(t, e) { 16282 t.eachSeries(function(t) { 16283 if (t.coordinateSystem === this) { 16284 var e = t.getData(); 16285 d(e.mapDimension(this.dimension, !0), function(t) { this._axis.scale.unionExtentFromData(e, t) }, this), yl(this._axis.scale, this._axis.model) 16286 } 16287 }, this) 16288 }, 16289 resize: function(t, e) { this._rect = Qo({ 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() }, 16290 getRect: function() { return this._rect }, 16291 _adjustAxis: function() { 16292 var t = this._rect, 16293 e = this._axis, 16294 i = e.isHorizontal(), 16295 n = i ? [0, t.width] : [0, t.height], 16296 o = e.reverse ? 1 : 0; 16297 e.setExtent(n[o], n[1 - o]), this._updateAxisTransform(e, i ? t.x : t.
16297y) 16298 }, 16299 _updateAxisTransform: function(t, e) { 16300 var i = t.getExtent(), 16301 n = i[0] + i[1], 16302 o = t.isHorizontal(); 16303 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 } 16304 }, 16305 getAxis: function() { return this._axis }, 16306 getBaseAxis: function() { return this._axis }, 16307 getAxes: function() { return [this._axis] }, 16308 getTooltipAxes: function() { return { baseAxes: [this.getAxis()] } }, 16309 containPoint: function(t) { 16310 var e = this.getRect(), 16311 i = this.getAxis(); 16312 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 16313 }, 16314 pointToData: function(t) { var e = this.getAxis(); return [e.coordToData(e.toLocalCoord(t["horizontal" === e.orient ? 0 : 1]))] }, 16315 dataToPoint: function(t) { 16316 var e = this.getAxis(), 16317 i = this.getRect(), 16318 n = [], 16319 o = "horizontal" === e.orient ? 0 : 1; 16320 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 16321 } 16322 }, Ca.register("single", { 16323 create: function(t, e) { 16324 var i = []; 16325 return t.eachComponent("singleAxis", function(n, o) { 16326 var a = new gg(n, t, e); 16327 a.name = "single_" + o, a.resize(n, e), n.coordinateSystem = a, i.push(a) 16328 }), t.eachSeries(function(e) { 16329 if ("singleAxis" === e.get("coordinateSystem")) { 16330 var i = t.queryComponents({ mainType: "singleAxis", index: e.get("singleAxisIndex"), id: e.get("singleAxisId") })[0]; 16331 e.coordinateSystem = i && i.coordinateSystem 16332 } 16333 }), i 16334 }, 16335 dimensions: gg.prototype.dimensions 16336 }); 16337 var XL = ["axisLine", "axisTickLabel", "axisName"], 16338 jL = ED.extend({ 16339 type: "singleAxis", 16340 axisPointerClass: "SingleAxisPointer", 16341 render: function(t, e, i, n) { 16342 var o = this.group; 16343 o.removeAll(); 16344 var a = mg(t), 16345 r = new LD(t, a); 16346 d(XL, r.add, r), o.add(r.getGroup()), t.get("splitLine.show") && this._splitLine(t), jL.superCall(this, "render", t, e, i, n) 16347 }, 16348 _splitLine: function(t) { 16349 var e = t.axis; 16350 if (!e.scale.isBlank()) { 16351 var i = t.getModel("splitLine"), 16352 n = i.getModel("lineStyle"), 16353 o = n.get("width"), 16354 a = n.get("color"); 16355 a = a instanceof Array ? a : [a]; 16356 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) { 16357 var p = e.toGlobalCoord(h[f].coord); 16358 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); 16359 var g = u++ % a.length; 16360 l[g] = l[g] || [], l[g].push(new MS(Gn({ shape: { x1: c[0], y1: c[1], x2: d[0], y2: d[1] }, style: { lineWidth: o }, silent: !0 }))) 16361 } 16362 for (f = 0; f < l.length; ++f) this.group.add(zS(l[f], { style: { stroke: a[f % a.length], lineDash: n.getLineDash(o), lineWidth: o }, silent: !0 })) 16363 } 16364 } 16365 }), 16366 YL = hM.extend({ type: "singleAxis", layoutMode: "box", axis: null, coordinateSystem: null, getCoordSysModel: function() { return this } }), 16367 qL = { 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: .2 } } }; 16368 n(YL.prototype, ET), MD("single", YL, function(t, e) { return e.type || (e.data ? "category" : "value") }, qL); 16369 var KL = function(t, e) { 16370 var i, n = [], 16371 o = t.seriesIndex; 16372 if (null == o || !(i = e.getSeriesByIndex(o))) return { point: [] }; 16373 var a = i.getData(), 16374 r = Pi(a, t); 16375 if (null == r || r < 0 || y(r)) return { point: [] }; 16376 var s = a.getItemGraphicEl(r), 16377 l = i.coordinateSystem; 16378 if (i.getTooltipPosition) n = i.getTooltipPosition(r) || []; 16379 else if (l && l.dataToPoint) n = l.dataToPoint(a.getValues(f(l.dimensions, function(t) { return a.mapDimension(t) }), r, !0)) || []; 16380 else if (s) {
16381 var u = s.getBoundingRect().clone(); 16382 u.applyTransform(s.transform), n = [u.x + u.width / 2, u.y + u.height / 2] 16383 } 16384 return { point: n, el: s } 16385 }, 16386 $L = d, 16387 JL = v, 16388 QL = Ni(), 16389 tk = (vs({ 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 } } }), Ni()), 16390 ek = d, 16391 ik = ys({ 16392 type: "axisPointer", 16393 render: function(t, e, i) { 16394 var n = e.getComponent("tooltip"), 16395 o = t.get("triggerOn") || n && n.get("triggerOn") || "mousemove|click"; 16396 Dg("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 }) }) 16397 }, 16398 remove: function(t, e) { Ng(e.getZr(), "axisPointer"), ik.superApply(this._model, "remove", arguments) }, 16399 dispose: function(t, e) { Ng("axisPointer", e), ik.superApply(this._model, "dispose", arguments) } 16400 }), 16401 nk = Ni(), 16402 ok = i, 16403 ak = m; 16404 (Og.prototype = { 16405 _group: null, 16406 _lastGraphicKey: null, 16407 _handle: null, 16408 _dragging: !1, 16409 _lastValue: null, 16410 _lastStatus: null, 16411 _payloadInfo: null, 16412 animationThreshold: 15, 16413 render: function(t, e, i, n) { 16414 var o = e.get("value"), 16415 a = e.get("status"); 16416 if (this._axisModel = t, this._axisPointerModel = e, this._api = i, n || this._lastValue !== o || this._lastStatus !== a) { 16417 this._lastValue = o, this._lastStatus = a; 16418 var r = this._group, 16419 s = this._handle; 16420 if (!a || "hide" === a) return r && r.hide(), void(s && s.hide()); 16421 r && r.show(), s && s.show(); 16422 var l = {}; 16423 this.makeElOption(l, o, t, e, i); 16424 var u = l.graphicKey; 16425 u !== this._lastGraphicKey && this.clear(i), this._lastGraphicKey = u; 16426 var h = this._moveAnimation = this.determineAnimation(t, e); 16427 if (r) { 16428 var c = v(Eg, e, h); 16429 this.updatePointerEl(r, l, c, e), this.updateLabelEl(r, l, c, e) 16430 } else r = this._group = new sw, this.createPointerEl(r, l, t, e), this.createLabelEl(r, l, t, e), i.getZr().add(r); 16431 Vg(r, e, !0), this._renderHandle(o) 16432 } 16433 }, 16434 remove: function(t) { this.clear(t) }, 16435 dispose: function(t) { this.clear(t) }, 16436 determineAnimation: function(t, e) { 16437 var i = e.get("animation"), 16438 n = t.axis, 16439 o = "category" === n.type, 16440 a = e.get("snap"); 16441 if (!a && !o) return !1; 16442 if ("auto" === i || null == i) { 16443 var r = this.animationThreshold; 16444 if (o && n.getBandWidth() > r) return !0; 16445 if (a) { 16446 var s = qu(t).seriesDataCount, 16447 l = n.getExtent(); 16448 return Math.abs(l[0] - l[1]) / s > r 16449 } 16450 return !1 16451 } 16452 return !0 === i 16453 }, 16454 makeElOption: function(t, e, i, n, o) {}, 16455 createPointerEl: function(t, e, i, n) { 16456 var o = e.pointer; 16457 if (o) { 16458 var a = nk(t).pointerEl = new BS[o.type](ok(e.pointer)); 16459 t.add(a) 16460 } 16461 }, 16462 createLabelEl: function(t, e, i, n) { 16463 if (e.label) { 16464 var o = nk(t).labelEl = new SS(ok(e.label)); 16465 t.add(o), zg(o, n) 16466 } 16467 }, 16468 updatePointerEl: function(t, e, i) { 16469 var n = nk(t).pointerEl; 16470 n && (n.setStyle(e.pointer.style), i(n, { shape: e.pointer.shape })) 16471 }, 16472 updateLabelEl: function(t, e, i, n) { 16473 var o = nk(t).labelEl; 16474 o && (o.setStyle(e.label.style), i(o, { shape: e.label.shape, position: e.label.position }), zg(o, n)) 16475 }, 16476 _renderHandle: function(t) { 16477 if (!this._dragging && this.updateHandleTransform) { 16478 var e = this._axisPointerModel, 16479 i = this._api.getZr(), 16480 n = this._handle, 16481 o = e.getModel("handle"), 16482 a = e.get("status"); 16483 if (!o.get("show") || !a || "hide" === a) return n && i.remove(n), void(this._handle = null); 16484 var r; 16485 this._handle || (r = !0, n = this._handle = _o(o.get("icon"), { cursor: "move", draggable: !0, onmousemove: function(t) { zw(t.event) }, onmousedown: ak(this._onHandleDragMove, this, 0, 0), drift: ak(this._onHandleDragMove, this), ondragend: ak(this._onHandleDragEnd, this) }), i.add(n)), Vg(n, e, !1); 16486 var s = ["color", "borderColor", "borderWidth", "opacity", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"]; 16487 n.setStyle(o.getItemStyle(null, s)); 16488 var l = o.get("size"); 16489 y(l) || (l = [l, l]), n.attr("scale", [l[0] / 2, l[1] / 2]), wr(this, "_doDispat
16489chAxisPointer", o.get("throttle") || 0, "fixRate"), this._moveHandleToValue(t, r) 16490 } 16491 }, 16492 _moveHandleToValue: function(t, e) { Eg(this._axisPointerModel, !e && this._moveAnimation, this._handle, Bg(this.getHandleTransform(t, this._axisModel, this._axisPointerModel))) }, 16493 _onHandleDragMove: function(t, e) { 16494 var i = this._handle; 16495 if (i) { 16496 this._dragging = !0; 16497 var n = this.updateHandleTransform(Bg(i), [t, e], this._axisModel, this._axisPointerModel); 16498 this._payloadInfo = n, i.stopAnimation(), i.attr(Bg(n)), nk(i).lastProp = null, this._doDispatchAxisPointer() 16499 } 16500 }, 16501 _doDispatchAxisPointer: function() { 16502 if (this._handle) { 16503 var t = this._payloadInfo, 16504 e = this._axisModel; 16505 this._api.dispatchAction({ type: "updateAxisPointer", x: t.cursorPoint[0], y: t.cursorPoint[1], tooltipOption: t.tooltipOption, axesInfo: [{ axisDim: e.axis.dim, axisIndex: e.componentIndex }] }) 16506 } 16507 }, 16508 _onHandleDragEnd: function(t) { 16509 if (this._dragging = !1, this._handle) { 16510 var e = this._axisPointerModel.get("value"); 16511 this._moveHandleToValue(e), this._api.dispatchAction({ type: "hideTip" }) 16512 } 16513 }, 16514 getHandleTransform: null, 16515 updateHandleTransform: null, 16516 clear: function(t) { 16517 this._lastValue = null, this._lastStatus = null; 16518 var e = t.getZr(), 16519 i = this._group, 16520 n = this._handle; 16521 e && i && (this._lastGraphicKey = null, i && e.remove(i), n && e.remove(n), this._group = null, this._handle = null, this._payloadInfo = null) 16522 }, 16523 doClear: function() {}, 16524 buildLabel: function(t, e, i) { return i = i || 0, { x: t[i], y: t[1 - i], width: e[i], height: e[1 - i] } } 16525 }).constructor = Og, Gi(Og); 16526 var rk = Og.extend({ 16527 makeElOption: function(t, e, i, n, o) { 16528 var a = i.axis, 16529 r = a.grid, 16530 s = n.get("type"), 16531 l = qg(r, a).getOtherAxis(a).getGlobalExtent(), 16532 u = a.toGlobalCoord(a.dataToCoord(e, !0)); 16533 if (s && "none" !== s) { 16534 var h = Gg(n), 16535 c = sk[s](a, u, l, h); 16536 c.style = h, t.graphicKey = c.type, t.pointer = c 16537 } 16538 Ug(e, t, eh(r.model, i), i, n, o) 16539 }, 16540 getHandleTransform: function(t, e, i) { var n = eh(e.axis.grid.model, e, { labelInside: !1 }); return n.labelMargin = i.get("handle.margin"), { position: Zg(e.axis, t, n), rotation: n.rotation + (n.labelDirection < 0 ? Math.PI : 0) } }, 16541 updateHandleTransform: function(t, e, i, n) { 16542 var o = i.axis, 16543 a = o.grid, 16544 r = o.getGlobalExtent(!0), 16545 s = qg(a, o).getOtherAxis(o).getGlobalExtent(), 16546 l = "x" === o.dim ? 0 : 1, 16547 u = t.position; 16548 u[l] += e[l], u[l] = Math.min(r[1], u[l]), u[l] = Math.max(r[0], u[l]); 16549 var h = (s[1] + s[0]) / 2, 16550 c = [h, h]; 16551 c[l] = u[l]; 16552 var d = [{ verticalAlign: "middle" }, { align: "center" }]; 16553 return { position: u, rotation: t.rotation, cursorPoint: c, tooltipOption: d[l] } 16554 } 16555 }), 16556 sk = { 16557 line: function(t, e, i, n) { var o = Xg([e, i[0]], [e, i[1]], Kg(t)); return Gn({ shape: o, style: n }), { type: "Line", shape: o } }, 16558 shadow: function(t, e, i, n) { 16559 var o = Math.max(1, t.getBandWidth()), 16560 a = i[1] - i[0]; 16561 return { type: "Rect", shape: jg([e - o / 2, i[0]], [o, a], Kg(t)) } 16562 } 16563 }; 16564 ED.registerAxisPointerClass("CartesianAxisPointer", rk), us(function(t) { 16565 if (t) { 16566 (!t.axisPointer || 0 === t.axisPointer.length) && (t.axisPointer = {}); 16567 var e = t.axisPointer.link; 16568 e && !y(e) && (t.axisPointer.link = [e]) 16569 } 16570 }), hs(LI.PROCESSOR.STATISTIC, function(t, e) { t.getComponent("axisPointer").coordSysAxesInfo = Fu(t, e) }), cs({ type: "updateAxisPointer", event: "updateAxisPointer", update: ":updateAxisPointer" }, function(t, e, i) {
16571 var n = t.currTrigger, 16572 o = [t.x, t.y], 16573 a = t, 16574 r = t.dispatchAction || m(i.dispatchAction, i), 16575 s = e.getComponent("axisPointer").coordSysAxesInfo; 16576 if (s) { 16577 Tg(o) && (o = KL({ seriesIndex: a.seriesIndex, dataIndex: a.dataIndex }, e).point); 16578 var l = Tg(o), 16579 u = a.axesInfo, 16580 h = s.axesInfo, 16581 c = "leave" === n || Tg(o), 16582 d = {}, 16583 f = {}, 16584 p = { list: [], map: {} }, 16585 g = { showPointer: JL(xg, f), showTooltip: JL(_g, p) }; 16586 $L(s.coordSysMap, function(t, e) { 16587 var i = l || t.containPoint(o); 16588 $L(s.coordSysAxesInfo[e], function(t, e) { 16589 var n = t.axis, 16590 a = Mg(u, t); 16591 if (!c && i && (!u || a)) { 16592 var r = a && a.value; 16593 null != r || l || (r = n.pointToData(o)), null != r && vg(t, r, g, !1, d) 16594 } 16595 }) 16596 }); 16597 var v = {}; 16598 return $L(h, function(t, e) { 16599 var i = t.linkGroup; 16600 i && !f[e] && $L(i.axesInfo, function(e, n) { 16601 var o = f[n]; 16602 if (e !== t && o) { 16603 var a = o.value; 16604 i.mapper && (a = t.axis.scale.parse(i.mapper(a, Ig(e), Ig(t)))), v[t.key] = a 16605 } 16606 }) 16607 }), $L(v, function(t, e) { vg(h[e], t, g, !0, d) }), wg(f, h, d), bg(p, o, t, r), Sg(h, 0, i), d 16608 } 16609 }); 16610 var lk = ["x", "y"], 16611 uk = ["width", "height"], 16612 hk = Og.extend({ 16613 makeElOption: function(t, e, i, n, o) { 16614 var a = i.axis, 16615 r = a.coordinateSystem, 16616 s = Jg(r, 1 - $g(a)), 16617 l = r.dataToPoint(e)[0], 16618 u = n.get("type"); 16619 if (u && "none" !== u) { 16620 var h = Gg(n), 16621 c = ck[u](a, l, s, h); 16622 c.style = h, t.graphicKey = c.type, t.pointer = c 16623 } 16624 Ug(e, t, mg(i), i, n, o) 16625 }, 16626 getHandleTransform: function(t, e, i) { var n = mg(e, { labelInside: !1 }); return n.labelMargin = i.get("handle.margin"), { position: Zg(e.axis, t, n), rotation: n.rotation + (n.labelDirection < 0 ? Math.PI : 0) } }, 16627 updateHandleTransform: function(t, e, i, n) { 16628 var o = i.axis, 16629 a = o.coordinateSystem, 16630 r = $g(o), 16631 s = Jg(a, r), 16632 l = t.position; 16633 l[r] += e[r], l[r] = Math.min(s[1], l[r]), l[r] = Math.max(s[0], l[r]); 16634 var u = Jg(a, 1 - r), 16635 h = (u[1] + u[0]) / 2, 16636 c = [h, h]; 16637 return c[r] = l[r], { position: l, rotation: t.rotation, cursorPoint: c, tooltipOption: { verticalAlign: "middle" } } 16638 } 16639 }), 16640 ck = { 16641 line: function(t, e, i, n) { var o = Xg([e, i[0]], [e, i[1]], $g(t)); return Gn({ shape: o, style: n }), { type: "Line", shape: o } }, 16642 shadow: function(t, e, i, n) { 16643 var o = t.getBandWidth(), 16644 a = i[1] - i[0]; 16645 return { type: "Rect", shape: jg([e - o / 2, i[0]], [o, a], $g(t)) } 16646 } 16647 }; 16648 ED.registerAxisPointerClass("SingleAxisPointer", hk), ys({ type: "single" }); 16649 var dk = KM.extend({ 16650 type: "series.themeRiver", 16651 dependencies: ["singleAxis"], 16652 nameMap: null, 16653 init: function(t) { dk.superApply(this, "init", arguments), this.legendDataProvider = function() { return this.getRawData() } }, 16654 fixData: function(t) { 16655 for (var e = t.length, i = f(Jf().key(function(t) { return t[2] }).entries(t), function(t) { return { name: t.key, dataList: t.values } }), n = i.length, o = -1, a = -1, r = 0; r < n; ++r) { 16656 var s = i[r].dataList.length; 16657 s > o && (o = s, a = r) 16658 } 16659 for (var l = 0; l < n; ++l) 16660 if (l !== a) 16661 for (var u = i[l].name, h = 0; h < o; ++h) { 16662 for (var c = i[a].dataList[h][0], d = i[l].dataList.length, p = -1, g = 0; g < d; ++g) 16663 if (i[l].dataList[g][0] === c) { p = g; break } - 1 === p && (t[e] = [], t[e][0] = c, t[e][1] = 0, t[e][2] = u, e++) 16664 } 16665 return t 16666 }, 16667 getInitialData: function(t, e) { 16668 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++); 16669 var u = hT(o, { coordDimensions: ["single"], dimensionsDefine: [{ name: "time", type: Ts(i) }, { name: "value", type: "float" }, { name: "name", type: "ordinal" }], encodeDefine: { single: 0, value: 1, itemName: 2 } }), 16670 h = new sT(u, this); 16671 return h.initData(o), h 16672 }, 16673 getLayerSeries: function() { for (var t = this.getData(), e = t.count(), i = [], n = 0; n < e; ++n) i[n] = n; for (var o = f(Jf().key(function(e) { return t.get("name", e) }).entries(i), function(t) { return { name: t.key, indices: t.values } }), a = t.mapDimension("single"), r = 0; r < o.length; ++r) o[r].indices.sort(function(e, i) { return t.get(a, e) - t.get(a, i) }); return o }, 16674 getAxisTooltipData: function(t, e, i) { 16675 y(t) || (t = t ? [t] : []); 16676 for (var n, o = this.getData(), a = this.getLayerSeries(), r = [], s = a.length, l = 0; l < s; ++l) { 16677 for (var u = Number.MAX_VALUE, h = -1, c = a[l].indices.length, d = 0; d < c; ++d) { 16678 var f = o.get(t[0], a[l].indices[d]), 16679 p = Math.abs(f - e);
16680 p <= u && (n = f, u = p, h = a[l].indices[d]) 16681 } 16682 r.push(h) 16683 } 16684 return { dataIndices: r, nestestValue: n } 16685 }, 16686 formatTooltip: function(t) { 16687 var e = this.getData(), 16688 i = e.getName(t), 16689 n = e.get(e.mapDimension("value"), t); 16690 return (isNaN(n) || null == n) && (n = "-"), Zo(i + " : " + n) 16691 }, 16692 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 } } } 16693 }); 16694 _s({ 16695 type: "themeRiver", 16696 init: function() { this._layers = [] }, 16697 render: function(t, e, i) { 16698 function n(t) { return t.name } 16699 16700 function o(e, i, n) { 16701 var o = this._layers; 16702 if ("remove" !== e) { 16703 for (var u, h = [], c = [], f = l[i].indices, p = 0; p < f.length; p++) { 16704 var g = r.getItemLayout(f[p]), 16705 m = g.x, 16706 v = g.y0, 16707 y = g.y; 16708 h.push([m, v]), c.push([m, v + y]), u = r.getItemVisual(f[p], "color") 16709 } 16710 var x, _, w = r.getItemLayout(f[0]), 16711 b = r.getItemModel(f[p - 1]), 16712 S = b.getModel("label"), 16713 M = S.get("margin"); 16714 if ("add" === e) { 16715 I = d[i] = new sw; 16716 x = new pD({ shape: { points: h, stackedOnPoints: c, smooth: .4, stackedOnSmooth: .4, smoothConstraint: !1 }, z2: 0 }), _ = new fS({ style: { x: w.x - M, y: w.y0 + w.y / 2 } }), I.add(x), I.add(_), s.add(I), x.setClipPath(Qg(x.getBoundingRect(), t, function() { x.removeClipPath() })) 16717 } else { 16718 var I = o[n]; 16719 x = I.childAt(0), _ = I.childAt(1), s.add(I), d[i] = I, fo(x, { shape: { points: h, stackedOnPoints: c } }, t), fo(_, { style: { x: w.x - M, y: w.y0 + w.y / 2 } }, t) 16720 } 16721 var T = b.getModel("emphasis.itemStyle"), 16722 D = b.getModel("itemStyle"); 16723 no(_.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 }, D.getItemStyle(["color"]))), eo(x, T.getItemStyle()) 16724 } else s.remove(o[i]) 16725 } 16726 var r = t.getData(), 16727 s = this.group, 16728 l = t.getLayerSeries(), 16729 u = r.getLayout("layoutInfo"), 16730 h = u.rect, 16731 c = u.boundaryGap; 16732 s.attr("position", [0, h.y + c[0]]); 16733 var d = {}; 16734 new Ss(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 16735 }, 16736 dispose: function() {} 16737 }); 16738 fs(function(t, e) { 16739 t.eachSeriesByType("themeRiver", function(t) { 16740 var e = t.getData(), 16741 i = t.coordinateSystem, 16742 n = {}, 16743 o = i.getRect(); 16744 n.rect = o; 16745 var a = t.get("boundaryGap"), 16746 r = i.getAxis(); 16747 n.boundaryGap = a, "horizontal" === r.orient ? (a[0] = Do(a[0], o.height), a[1] = Do(a[1], o.height), tm(e, t, o.height - a[0] - a[1])) : (a[0] = Do(a[0], o.width), a[1] = Do(a[1], o.width), tm(e, t, o.width - a[0] - a[1])), e.setLayout("layoutInfo", n) 16748 }) 16749 }), ps(function(t) { 16750 t.eachSeriesByType("themeRiver", function(t) { 16751 var e = t.getData(), 16752 i = t.getRawData(), 16753 n = t.get("color"), 16754 o = R(); 16755 e.each(function(t) { o.set(e.getRawIndex(t), t) }), i.each(function(a) { 16756 var r = i.getName(a), 16757 s = n[(t.nameMap.get(r) - 1) % n.length]; 16758 i.setItemVisual(a, "color", s); 16759 var l = o.get(a); 16760 null != l && e.setItemVisual(l, "color", s) 16761 }) 16762 }) 16763 }), hs(iA("themeRiver")), KM.extend({ 16764 type: "series.sunburst", 16765 _viewRoot: null, 16766 getInitialData: function(t, e) { 16767 var i = { name: t.name, children: t.data }; 16768 im(i); 16769 var n = t.levels || [], 16770 o = {}; 16771 return o.levels = n, ic.createTree(i, this, o).data 16772 }, 16773 optionUpdated: function() { this.resetViewRoot() }, 16774 getDataParams: function(t) { 16775 var e = KM.prototype.getDataParams.apply(this, arguments), 16776 i = this.getData().tree.getNodeByDataIndex(t); 16777 return e.treePathInfo = Ac(i, this), e 16778 }, 16779 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", opacity: 1, emphasis: {}, highlight: { opacity: 1 }, downplay: { opacity: .9 } }, animationType: "expansion", animationDuration: 1e3, animationDurationUpdate: 500, animationEasing: "cubicOut", data: [], levels: [], sort: "desc" }, 16780 getViewRoot: function() { return this._viewRoot }, 16781 resetViewRoot: function(t) { 16782 t ? this._viewRoot = t : t = this._viewRoot; 16783 var e = this.getRawData().tree.root; 16784 t && (t === e || e.contains(t)) || (this._viewRoot = e) 16785 } 16786 }); 16787 var fk = { NONE: "none", DESCENDANT: "descendant", ANCESTOR: "ancestor", SELF: "self" }, 16788 pk = 2, 16789 gk = 4, 16790 mk = nm.prototype; 16791 mk.updateData = function(t, e, i, o, s) { 16792 this.node = e, e.piece = this, o = o || this._seriesModel, s = s || this._ecModel; 16793 var l = this.childAt(0); 16794 l.dataIndex = e.dataIndex; 16795 var u = e.getModel(), 16796 h = e.getLayout(); 16797 h || console.log(e.getLayout()); 16798 var c = a({}, h); 16799 c.label = null; 16800 var d, f = om(e, 0, s), 16801 p = u.getModel("itemStyle").getItemStyle(); 16802 d = r({ lineJoin: "bevel", fill: (d = "normal" === i ? p : n(u.getModel(i + ".itemStyle").getItemStyle(), p)).fill || f }, d), t ? (l.setShape(c), l.shape.r = h.r0, fo(l, { shape: { r: h.r } }, o, e.dataIndex), l.useStyle(d)) : "object" == typeof d.fill && d.fill.type || "object" == typeof l.style.fill && l.style.fill.type ? (fo(l, { shape: c }, o), l.useStyle(d)) : fo(l, { shape: c, style: d }, o), this._updateLabel(o, f, i); 16803 var g = u.getShallow("cursor"); 16804 if (g && l.attr("cursor", g), t) { 16805 var m = o.getShallow("highlightPolicy"); 16806 this._initEvents(l, e, o, m) 16807 } 16808 this._seriesModel = o || this._seriesModel, this._ecModel = s || this._ecModel 16809 }
16809, mk.onEmphasis = function(t) { 16810 var e = this; 16811 this.node.hostTree.root.eachNode(function(i) { i.piece && (e.node === i ? i.piece.updateData(!1, i, "emphasis") : rm(i, e.node, t) ? i.piece.childAt(0).trigger("highlight") : t !== fk.NONE && i.piece.childAt(0).trigger("downplay")) }) 16812 }, mk.onNormal = function() { this.node.hostTree.root.eachNode(function(t) { t.piece && t.piece.updateData(!1, t, "normal") }) }, mk.onHighlight = function() { this.updateData(!1, this.node, "highlight") }, mk.onDownplay = function() { this.updateData(!1, this.node, "downplay") }, mk._updateLabel = function(t, e, i) { 16813 function n(t) { var e = r.get(t); return null == e ? a.get(t) : e } 16814 var o = this.node.getModel(), 16815 a = o.getModel("label"), 16816 r = "normal" === i || "emphasis" === i ? a : o.getModel(i + ".label"), 16817 s = o.getModel("emphasis.label"), 16818 l = T(t.getFormattedLabel(this.node.dataIndex, "normal", null, null, "label"), this.node.name); 16819 !1 === n("show") && (l = ""); 16820 var u = this.node.getLayout(), 16821 h = r.get("minAngle"); 16822 null == h && (h = a.get("minAngle")), h = h / 180 * Math.PI; 16823 var c = u.endAngle - u.startAngle; 16824 null != h && Math.abs(c) < h && (l = ""); 16825 var d = this.childAt(1); 16826 io(d.style, d.hoverStyle || {}, a, s, { defaultText: r.getShallow("show") ? l : null, autoColor: e, useInsideStyle: !0 }); 16827 var f, p = (u.startAngle + u.endAngle) / 2, 16828 g = Math.cos(p), 16829 m = Math.sin(p), 16830 v = n("position"), 16831 y = n("distance") || 0, 16832 x = n("align"); 16833 "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") }); 16834 var _ = f * g + u.cx, 16835 w = f * m + u.cy; 16836 d.attr("position", [_, w]); 16837 var b = n("rotate"), 16838 S = 0; 16839 "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) 16840 }, mk._initEvents = function(t, e, i, n) { 16841 t.off("mouseover").off("mouseout").off("emphasis").off("normal"); 16842 var o = this, 16843 a = function() { o.onEmphasis(n) }, 16844 r = function() { o.onNormal() }; 16845 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() }) 16846 }, u(nm, sw); 16847 gr.extend({ 16848 type: "sunburst", 16849 init: function() {}, 16850 render: function(t, e, i, n) { 16851 function o(i, n) { 16852 if (c || !i || i.getValue() || (i = null), i !== l && n !== l) 16853 if (n && n.piece) i ? (n.piece.updateData(!1, i, "normal", t, e), s.setItemGraphicEl(i.dataIndex, n.piece)) : a(n); 16854 else if (i) { 16855 var o = new nm(i, t, e); 16856 h.add(o), s.setItemGraphicEl(i.dataIndex, o) 16857 } 16858 } 16859 16860 function a(t) { t && t.piece && (h.remove(t.piece), t.piece = null) } 16861 var r = this; 16862 this.seriesModel = t, this.api = i, this.ecModel = e; 16863 var s = t.getData(), 16864 l = s.tree.root, 16865 u = t.getViewRoot(), 16866 h = this.group, 16867 c = t.get("renderLabelForZeroData"), 16868 d = []; 16869 u.eachNode(function(t) { d.push(t) }); 16870 var f = this._oldChildren || []; 16871 if (function(t, e) { 16872 function i(t) { return t.getId() } 16873 16874 function n(i, n) { o(null == i ? null : t[i], null == n ? null : e[n]) } 16875 0 === t.length && 0 === e.length || new Ss(e, t, i, i).add(n).update(n).remove(v(n, null)).execute() 16876 }(d, f), function(i, n) { 16877 if (n.depth > 0) { 16878 r.virtualPiece ? r.virtualPiece.updateData(!1, i, "normal", t, e) : (r.virtualPiece = new nm(i, t, e), h.add(r.virtualPiece)), n.piece._onclickEvent && n.piece.off("click", n.piece._onclickEvent); 16879 var o = function(t) { r._rootToNode(n.parentNode) }; 16880 n.piece._onclickEvent = o, r.virtualPiece.on("click", o) 16881 } else r.virtualPiece && (h.remove(r.virtualPiece), r.virtualPiece = null) 16882 }(l, u), n && n.highlight && n.highlight.piece) { 16883 var p = t.getShallow("highlightPolicy");
16884 n.highlight.piece.onEmphasis(p) 16885 } else if (n && n.unhighlight) { var g = this.virtualPiece;!g && l.children.length && (g = l.children[0].piece), g && g.onNormal() } 16886 this._initEvents(), this._oldChildren = d 16887 }, 16888 dispose: function() {}, 16889 _initEvents: function() { 16890 var t = this, 16891 e = function(e) { 16892 var i = !1; 16893 t.seriesModel.getViewRoot().eachNode(function(n) { 16894 if (!i && n.piece && n.piece.childAt(0) === e.target) { 16895 var o = n.getModel().get("nodeClick"); 16896 if ("rootToNode" === o) t._rootToNode(n); 16897 else if ("link" === o) { 16898 var a = n.getModel(), 16899 r = a.get("link"); 16900 if (r) { 16901 var s = a.get("target", !0) || "_blank"; 16902 window.open(r, s) 16903 } 16904 } 16905 i = !0 16906 } 16907 }) 16908 }; 16909 this.group._onclickEvent && this.group.off("click", this.group._onclickEvent), this.group.on("click", e), this.group._onclickEvent = e 16910 }, 16911 _rootToNode: function(t) { t !== this.seriesModel.getViewRoot() && this.api.dispatchAction({ type: "sunburstRootToNode", from: this.uid, seriesId: this.seriesModel.id, targetNode: t }) }, 16912 containPoint: function(t, e) { 16913 var i = e.getData().getItemLayout(0); 16914 if (i) { 16915 var n = t[0] - i.cx, 16916 o = t[1] - i.cy, 16917 a = Math.sqrt(n * n + o * o); 16918 return a <= i.r && a >= i.r0 16919 } 16920 } 16921 }); 16922 var vk = "sunburstRootToNode"; 16923 cs({ type: vk, update: "updateView" }, function(t, e) { 16924 e.eachComponent({ mainType: "series", subType: "sunburst", query: t }, function(e, i) { 16925 var n = Ic(t, [vk], e); 16926 if (n) { 16927 var o = e.getViewRoot(); 16928 o && (t.direction = Dc(o, n.node) ? "rollUp" : "drillDown"), e.resetViewRoot(n.node) 16929 } 16930 }) 16931 }); 16932 var yk = "sunburstHighlight"; 16933 cs({ type: yk, update: "updateView" }, function(t, e) { 16934 e.eachComponent({ mainType: "series", subType: "sunburst", query: t }, function(e, i) { 16935 var n = Ic(t, [yk], e); 16936 n && (t.highlight = n.node) 16937 }) 16938 }); 16939 cs({ type: "sunburstUnhighlight", update: "updateView" }, function(t, e) { e.eachComponent({ mainType: "series", subType: "sunburst", query: t }, function(e, i) { t.unhighlight = !0 }) }); 16940 var xk = Math.PI / 180; 16941 ps(v(JD, "sunburst")), fs(v(function(t, e, i, n) { 16942 e.eachSeriesByType(t, function(t) { 16943 var e = t.get("center"), 16944 n = t.get("radius"); 16945 y(n) || (n = [0, n]), y(e) || (e = [e, e]); 16946 var o = i.getWidth(), 16947 a = i.getHeight(), 16948 r = Math.min(o, a), 16949 s = Do(e[0], o), 16950 l = Do(e[1], a), 16951 u = Do(n[0], r / 2), 16952 h = Do(n[1], r / 2), 16953 c = -t.get("startAngle") * xk, 16954 f = t.get("minAngle") * xk, 16955 p = t.getData().tree.root, 16956 g = t.getViewRoot(), 16957 m = g.depth, 16958 v = t.get("sort"); 16959 null != v && sm(g, v); 16960 var x = 0; 16961 d(g.children, function(t) {!isNaN(t.getValue()) && x++ }); 16962 var _ = g.getValue(), 16963 w = Math.PI / (_ || x) * 2, 16964 b = g.depth > 0, 16965 S = g.height - (b ? -1 : 1), 16966 M = (h - u) / (S || 1), 16967 I = t.get("clockwise"), 16968 T = t.get("stillShowZeroSum"), 16969 D = I ? 1 : -1, 16970 A = function(t, e) { 16971 if (t) { 16972 var i = e; 16973 if (t !== p) { 16974 var n = t.getValue(), 16975 o = 0 === _ && T ? w : n * w; 16976 o < f && (o = f), i = e + D * o; 16977 var a = t.depth - m - (b ? -1 : 1), 16978 h = u + M * a, 16979 c = u + M * (a + 1), 16980 g = t.getModel(); 16981 null != g.get("r0") && (h = Do(g.get("r0"), r / 2)), null != g.get("r") && (c = Do(g.get("r"), r / 2)), t.setLayout({ angle: o, startAngle: e, endAngle: i, clockwise: I, cx: s, cy: l, r0: h, r: c }) 16982 } 16983 if (t.children && t.children.length) { 16984 var v = 0; 16985 d(t.children, function(t) { v += A(t, e + v) }) 16986 } 16987 return i - e 16988 } 16989 }; 16990 if (b) { 16991 var C = u, 16992 L = u + M, 16993 k = 2 * Math.PI; 16994 p.setLayout({ angle: k, startAngle: c, endAngle: c + k, clockwise: I, cx: s, cy: l, r0: C, r: L }) 16995 } 16996 A(g, c) 16997 }) 16998 }, "sunburst")), hs(v(iA, "sunburst")); 16999 var _k = ["itemStyle"], 17000 wk = ["emphasis", "itemStyle"], 17001 bk = ["label"], 17002 Sk = ["emphasis", "label"], 17003 Mk = "e\0\0", 17004 Ik = { 17005 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(um, t) } } },
17006 geo: function(t) { var e = t.getBoundingRect(); return { coordSys: { type: "geo", x: e.x, y: e.y, width: e.width, height: e.height }, api: { coord: function(e) { return t.dataToPoint(e) }, size: m(hm, t) } } }, 17007 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(cm, t) } } }, 17008 polar: function(t) { 17009 var e = t.getRadiusAxis(), 17010 i = t.getAngleAxis(), 17011 n = e.getExtent(); 17012 return n[0] > n[1] && n.reverse(), { 17013 coordSys: { type: "polar", cx: t.cx, cy: t.cy, r: n[1], r0: n[0] }, 17014 api: { 17015 coord: m(function(n) { 17016 var o = e.dataToRadius(n[0]), 17017 a = i.dataToAngle(n[1]), 17018 r = t.coordToPoint([o, a]); 17019 return r.push(o, a * Math.PI / 180), r 17020 }), 17021 size: m(dm, t) 17022 } 17023 } 17024 }, 17025 calendar: function(t) { 17026 var e = t.getRect(), 17027 i = t.getRangeInfo(); 17028 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) } } } 17029 } 17030 }; 17031 xs({ type: "series.custom", dependencies: ["grid", "polar", "geo", "singleAxis", "calendar"], defaultOption: { coordinateSystem: "cartesian2d", zlevel: 0, z: 2, legendHoverLink: !0 }, getInitialData: function(t, e) { return Xs(this.getSource(), this) } }), _s({ 17032 type: "custom", 17033 _data: null, 17034 render: function(t, e, i) { 17035 var n = this._data, 17036 o = t.getData(), 17037 a = this.group, 17038 r = mm(t, o, e, i); 17039 this.group.removeAll(), o.diff(n).add(function(e) { ym(null, e, r(e), t, a, o) }).update(function(e, i) { ym(n.getItemGraphicEl(i), e, r(e), t, a, o) }).remove(function(t) { 17040 var e = n.getItemGraphicEl(t); 17041 e && a.remove(e) 17042 }).execute(), this._data = o 17043 }, 17044 incrementalPrepareRender: function(t, e, i) { this.group.removeAll(), this._data = null }, 17045 incrementalRender: function(t, e, i, n) { for (var o = e.getData(), a = mm(e, o, i, n), r = t.start; r < t.end; r++) ym(null, r, a(r), e, this.group, o).traverse(function(t) { t.isGroup || (t.incremental = !0, t.useHoverLayer = !0) }) }, 17046 dispose: B 17047 }), us(function(t) { 17048 var e = t.graphic; 17049 y(e) ? e[0] && e[0].elements ? t.graphic = [t.graphic[0]] : t.graphic = [{ elements: e }] : e && !e.elements && (t.graphic = [{ elements: [e] }]) 17050 }); 17051 var Tk = vs({ 17052 type: "graphic", 17053 defaultOption: { elements: [], parentId: null }, 17054 _elOptionsToUpdate: null, 17055 mergeOption: function(t) { 17056 var e = this.option.elements; 17057 this.option.elements = null, Tk.superApply(this, "mergeOption", arguments), this.option.elements = e 17058 }, 17059 optionUpdated: function(t, e) { 17060 var i = this.option, 17061 n = (e ? i : t).elements, 17062 o = i.elements = e ? [] : i.elements, 17063 a = []; 17064 this._flatten(n, a); 17065 var r = Di(o, a); 17066 Ai(r); 17067 var s = this._elOptionsToUpdate = []; 17068 d(r, function(t, e) { 17069 var i = t.option; 17070 i && (s.push(i), Am(t, i), Cm(o, e, i), Lm(o[e], i)) 17071 }, this); 17072 for (var l = o.length - 1; l >= 0; l--) null == o[l] ? o.splice(l, 1) : delete o[l].$action 17073 }, 17074 _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) }, 17075 useElOptionsToUpdate: function() { var t = this._elOptionsToUpdate; return this._elOptionsToUpdate = null, t } 17076 }); 17077 ys({ 17078 type: "graphic", 17079 init: function(t, e) { this._elMap = R(), this._lastGraphicModel }, 17080 render: function(t, e, i) { t !== this._lastGraphicModel && this._clear(), this._lastGraphicModel = t, this._updateElements(t, i), this._relocate(t, i) }, 17081 _updateElements: function(t, e) { 17082 var i = t.useElOptionsToUpdate(); 17083 if (i) { 17084 var n = this._elMap, 17085 o = this.group; 17086 d(i, function(t) { 17087 var e = t.$action, 17088 i = t.id, 17089 a = n.get(i), 17090 r = t.parentId, 17091 s = null != r ? n.get(r) : o; 17092 if ("text" === t.type) { 17093 var l = t.style; 17094 t.hv && t.hv[1] && (l.textVerticalAlign = l.textBaseline = null), !l.hasOwnProperty("textFill") && l.fill && (l.textFill = l.fill), !l.hasOwnProperty("textStroke") && l.stroke && (l.textStroke = l.stroke) 17095 } 17096 var u = Tm(t); 17097 e && "merge" !== e ? "replace" === e ? (Im(a, n), Mm(i, s, u, n)) : "remove" === e && Im(a, n) : a ? a.attr(u) : Mm(i, s, u, n); 17098 var h = n.get(i); 17099 h && (h.__ecGraphicWidth = t.width, h.__ecGraphicHeight = t.height) 17100 }) 17101 } 17102 }, 17103 _relocate: function(t, e) { 17104 for (var i = t.option.elements, n = this.group, o = this._elMap, a = i.length - 1; a >= 0; a--) { 17105 var r = i[a], 17106 s = o.get(r.id); 17107 if (s) { 17108 var l = s.parent; 17109 ta(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 }) 17110 } 17111 } 17112 }, 17113 _clear: function() { 17114 var t = this._elMap; 17115 t.each(function(e) { Im(e, t) }), this._elMap = R() 17116 }, 17117 dispose: function() { this._clear() } 17118 }); 17119 var Dk = vs({ 17120 type: "legend.plain", 17121 dependencies: ["series"], 17122 layoutMode: { type: "box", ignoreSize: !0 },
17123 init: function(t, e, i) { this.mergeDefaultAndTheme(t, i), t.selected = t.selected || {} }, 17124 mergeOption: function(t) { Dk.superCall(this, "mergeOption", t) }, 17125 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")) } }, 17126 _updateData: function(t) { 17127 var e = [], 17128 i = []; 17129 t.eachRawSeries(function(n) { 17130 var o = n.name; 17131 i.push(o); 17132 var a; 17133 if (n.legendDataProvider) { 17134 var r = n.legendDataProvider(), 17135 s = r.mapArray(r.getName); 17136 t.isSeriesFiltered(n) || (i = i.concat(s)), s.length ? e = e.concat(s) : a = !0 17137 } else a = !0; 17138 a && Ci(n) && e.push(n.name) 17139 }), this._availableNames = i; 17140 var n = f(this.get("data") || e, function(t) { return "string" != typeof t && "number" != typeof t || (t = { name: t }), new wo(t, this, this.ecModel) }, this); 17141 this._data = n 17142 }, 17143 getData: function() { return this._data }, 17144 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 }, 17145 unSelect: function(t) { "single" !== this.get("selectedMode") && (this.option.selected[t] = !1) }, 17146 toggleSelected: function(t) { 17147 var e = this.option.selected; 17148 e.hasOwnProperty(t) || (e[t] = !0), this[e[t] ? "unSelect" : "select"](t) 17149 }, 17150 isSelected: function(t) { var e = this.option.selected; return !(e.hasOwnProperty(t) && !e[t]) && l(this._availableNames, t) >= 0 }, 17151 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 } } 17152 }); 17153 cs("legendToggleSelect", "legendselectchanged", v(km, "toggleSelected")), cs("legendSelect", "legendselected", v(km, "select")), cs("legendUnSelect", "legendunselected", v(km, "unSelect")); 17154 var Ak = v, 17155 Ck = d, 17156 Lk = sw, 17157 kk = ys({ 17158 type: "legend.plain", 17159 newlineDisabled: !1, 17160 init: function() { this.group.add(this._contentGroup = new Lk), this._backgroundEl }, 17161 getContentGroup: function() { return this._contentGroup }, 17162 render: function(t, e, i) { 17163 if (this.resetInner(), t.get("show", !0)) { 17164 var n = t.get("align"); 17165 n && "auto" !== n || (n = "right" === t.get("left") && "vertical" === t.get("orient") ? "right" : "left"), this.renderInner(n, t, e, i); 17166 var o = t.getBoxLayoutParams(), 17167 a = { width: i.getWidth(), height: i.getHeight() }, 17168 s = t.get("padding"), 17169 l = Qo(o, a, s), 17170 u = this.layoutInner(t, n, l), 17171 h = Qo(r({ width: u.width, height: u.height }, o), a, s); 17172 this.group.attr("position", [h.x - u.x, h.y - u.y]), this.group.add(this._backgroundEl = Nm(u, t)) 17173 } 17174 }, 17175 resetInner: function() { this.getContentGroup().removeAll(), this._backgroundEl && this.group.remove(this._backgroundEl) }, 17176 renderInner: function(t, e, i, n) { 17177 var o = this.getContentGroup(), 17178 a = R(), 17179 r = e.get("selectedMode"), 17180 s = []; 17181 i.eachRawSeries(function(t) {!t.get("legendHoverLink") && s.push(t.id) }), Ck(e.getData(), function(l, u) { 17182 var h = l.get("name"); 17183 if (this.newlineDisabled || "" !== h && "\n" !== h) { 17184 var c = i.getSeriesByName(h)[0]; 17185 if (!a.get(h)) 17186 if (c) { 17187 var d = c.getData(), 17188 f = d.getVisual("color"); 17189 "function" == typeof f && (f = f(c.getDataParams(0))); 17190 var p = d.getVisual("legendSymbol") || "roundRect", 17191 g = d.getVisual("symbol"); 17192 this._createItem(h, u, l, e, p, g, t, f, r).on("click", Ak(Om, h, n)).on("mouseover", Ak(Em, c, null, n, s)).on("mouseout", Ak(Rm, c, null, n, s)), a.set(h, !0) 17193 } else i.eachRawSeries(function(i) { 17194 if (!a.get(h) && i.legendDataProvider) { 17195 var o = i.legendDataProvider(), 17196 c = o.indexOfName(h); 17197 if (c < 0) return; 17198 var d = o.getItemVisual(c, "color"); 17199 this._createItem(h, u, l, e, "roundRect", null, t, d, r).on("click", Ak(Om, h, n)).on("mouseover", Ak(Em, i, h, n, s)).on("mouseout", Ak(Rm, i, h, n, s)), a.set(h, !0) 17200 } 17201 }, this) 17202 } else o.add(new Lk({ newline: !0 })) 17203 }, this) 17204 }, 17205 _createItem: function(t, e, i, n, o, r, s, l, u) { 17206 var h = n.get("itemWidth"), 17207 c = n.get("itemHeight"), 17208 d = n.get("inactiveColor"), 17209 f = n.get("symbolKeepAspect"), 17210 p = n.isSelected(t), 17211 g = new Lk, 17212 m = i.getModel("textStyle"), 17213 v = i.get("icon"), 17214 y = i.getModel("tooltip"), 17215 x = y.parentModel; 17216 if (o = v || o, g.add(Tl(o, 0, 0, h, c, p ? l : d, null == f || f)), !v && r && (r !== o || "none" == r)) { var _ = .8 * c; "none" === r && (r = "circle"), g.add(Tl(r, (h - _) / 2, (c - _) / 2, _, _, p ? l : d, null == f || f)) } 17217 var w = "left" === s ? h + 5 : -5, 17218 b = s, 17219 S = n.get("formatter"), 17220 M = t; 17221 "string" == typeof S && S ? M = S.replace("{name}", null != t ? t : "") : "function" == typeof S && (M = S(t)), g.add(new fS({ style: no({}, m, { text: M, x: w, y: c / 2, textFill: p ? m.getTextColor() : d, textAlign: b, textVerticalAlign: "middle" }) }));
17222 var I = new SS({ 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 }); 17223 return g.add(I), g.eachChild(function(t) { t.silent = !0 }), I.silent = !u, this.getContentGroup().add(g), eo(g), g.__legendDataIndex = e, g 17224 }, 17225 layoutInner: function(t, e, i) { 17226 var n = this.getContentGroup(); 17227 sM(t.get("orient"), n, t.get("itemGap"), i.width, i.height); 17228 var o = n.getBoundingRect(); 17229 return n.attr("position", [-o.x, -o.y]), this.group.getBoundingRect() 17230 } 17231 }); 17232 hs(function(t) { 17233 var e = t.findComponents({ mainType: "legend" }); 17234 e && e.length && t.filterSeries(function(t) { 17235 for (var i = 0; i < e.length; i++) 17236 if (!e[i].isSelected(t.name)) return !1; 17237 return !0 17238 }) 17239 }), hM.registerSubTypeDefaulter("legend", function() { return "plain" }); 17240 var Pk = Dk.extend({ 17241 type: "legend.scroll", 17242 setScrollDataIndex: function(t) { this.option.scrollDataIndex = t }, 17243 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 }, 17244 init: function(t, e, i, n) { 17245 var o = na(t); 17246 Pk.superCall(this, "init", t, e, i, n), zm(this, t, o) 17247 }, 17248 mergeOption: function(t, e) { Pk.superCall(this, "mergeOption", t, e), zm(this, this.option, t) }, 17249 getOrient: function() { return "vertical" === this.get("orient") ? { index: 1, name: "vertical" } : { index: 0, name: "horizontal" } } 17250 }), 17251 Nk = sw, 17252 Ok = ["width", "height"], 17253 Ek = ["x", "y"], 17254 Rk = kk.extend({ 17255 type: "legend.scroll", 17256 newlineDisabled: !0, 17257 init: function() { Rk.superCall(this, "init"), this._currentIndex = 0, this.group.add(this._containerGroup = new Nk), this._containerGroup.add(this.getContentGroup()), this.group.add(this._controllerGroup = new Nk), this._showController }, 17258 resetInner: function() { Rk.superCall(this, "resetInner"), this._controllerGroup.removeAll(), this._containerGroup.removeClipPath(), this._containerGroup.__rectSize = null }, 17259 renderInner: function(t, e, i, n) { 17260 function o(t, i) { 17261 var o = t + "DataIndex", 17262 l = _o(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] }); 17263 l.name = t, r.add(l) 17264 } 17265 var a = this; 17266 Rk.superCall(this, "renderInner", t, e, i, n); 17267 var r = this._controllerGroup, 17268 s = e.get("pageIconSize", !0); 17269 y(s) || (s = [s, s]), o("pagePrev", 0); 17270 var l = e.getModel("pageTextStyle"); 17271 r.add(new fS({ name: "pageText", style: { textFill: l.getTextColor(), font: l.getFont(), textVerticalAlign: "middle", textAlign: "center" }, silent: !0 })), o("pageNext", 1) 17272 }, 17273 layoutInner: function(t, e, i) { 17274 var n = this.getContentGroup(), 17275 o = this._containerGroup, 17276 a = this._controllerGroup, 17277 r = t.getOrient().index, 17278 s = Ok[r], 17279 l = Ok[1 - r], 17280 u = Ek[1 - r]; 17281 sM(t.get("orient"), n, t.get("itemGap"), r ? i.width : null, r ? null : i.height), sM("horizontal", a, t.get("pageButtonItemGap", !0));
17282 var h = n.getBoundingRect(), 17283 c = a.getBoundingRect(), 17284 d = this._showController = h[s] > i[s], 17285 f = [-h.x, -h.y]; 17286 f[r] = n.position[r]; 17287 var p = [0, 0], 17288 g = [-c.x, -c.y], 17289 m = D(t.get("pageButtonGap", !0), t.get("itemGap", !0)); 17290 d && ("end" === t.get("pageButtonPosition", !0) ? g[r] += i[s] - c[s] : p[r] += c[s] + m), g[1 - r] += h[l] / 2 - c[l] / 2, n.attr("position", f), o.attr("position", p), a.attr("position", g); 17291 var v = this.group.getBoundingRect(); 17292 if ((v = { x: 0, y: 0 })[s] = d ? i[s] : h[s], v[l] = Math.max(h[l], c[l]), v[u] = Math.min(0, c[u] + g[1 - r]), o.__rectSize = i[s], d) { 17293 var y = { x: 0, y: 0 }; 17294 y[s] = Math.max(i[s] - c[s] - m, 0), y[l] = v[l], o.setClipPath(new SS({ shape: y })), o.__rectSize = y[s] 17295 } else a.eachChild(function(t) { t.attr({ invisible: !0, silent: !0 }) }); 17296 var x = this._getPageInfo(t); 17297 return null != x.pageIndex && fo(n, { position: x.contentPosition }, !!d && t), this._updatePageInfoView(t, x), v 17298 }, 17299 _pageGo: function(t, e, i) { 17300 var n = this._getPageInfo(e)[t]; 17301 null != n && i.dispatchAction({ type: "legendScroll", scrollDataIndex: n, legendId: e.id }) 17302 }, 17303 _updatePageInfoView: function(t, e) { 17304 var i = this._controllerGroup; 17305 d(["pagePrev", "pageNext"], function(n) { 17306 var o = null != e[n + "DataIndex"], 17307 a = i.childOfName(n); 17308 a && (a.setStyle("fill", o ? t.get("pageIconColor", !0) : t.get("pageIconInactiveColor", !0)), a.cursor = o ? "pointer" : "default") 17309 }); 17310 var n = i.childOfName("pageText"), 17311 o = t.get("pageFormatter"), 17312 a = e.pageIndex, 17313 r = null != a ? a + 1 : 0, 17314 s = e.pageCount; 17315 n && o && n.setStyle("text", _(o) ? o.replace("{current}", r).replace("{total}", s) : o({ current: r, total: s })) 17316 }, 17317 _getPageInfo: function(t) { 17318 function e(t) { var e = t.getBoundingRect().clone(); return e[f] += t.position[h], e } 17319 var i, n, o, a, r = t.get("scrollDataIndex", !0), 17320 s = this.getContentGroup(), 17321 l = s.getBoundingRect(), 17322 u = this._containerGroup.__rectSize, 17323 h = t.getOrient().index, 17324 c = Ok[h], 17325 d = Ok[1 - h], 17326 f = Ek[h], 17327 p = s.position.slice(); 17328 this._showController ? s.eachChild(function(t) { t.__legendDataIndex === r && (a = t) }) : a = s.childAt(0); 17329 var g = u ? Math.ceil(l[c] / u) : 0; 17330 if (a) { 17331 var m = a.getBoundingRect(), 17332 v = a.position[h] + m[f]; 17333 p[h] = -v - l[f], i = Math.floor(g * (v + m[f] + u / 2) / l[c]), i = l[c] && g ? Math.max(0, Math.min(g - 1, i)) : -1; 17334 var y = { x: 0, y: 0 }; 17335 y[c] = u, y[d] = l[d], y[f] = -p[h] - l[f]; 17336 var x, _ = s.children(); 17337 if (s.eachChild(function(t, i) { 17338 var n = e(t); 17339 n.intersect(y) && (null == x && (x = i), o = t.__legendDataIndex), i === _.length - 1 && n[f] + n[c] <= y[f] + y[c] && (o = null) 17340 }), null != x) { 17341 var w = e(_[x]); 17342 if (y[f] = w[f] + w[c] - y[c], x <= 0 && w[f] >= y[f]) n = null; 17343 else { 17344 for (; x > 0 && e(_[x - 1]).intersect(y);) x--; 17345 n = _[x].__legendDataIndex 17346 } 17347 } 17348 } 17349 return { contentPosition: p, pageIndex: i, pageCount: g, pagePrevDataIndex: n, pageNextDataIndex: o } 17350 } 17351 }); 17352 cs("legendScroll", "legendscroll", function(t, e) { 17353 var i = t.scrollDataIndex; 17354 null != i && e.eachComponent({ mainType: "legend", subType: "scroll", query: t }, function(t) { t.setScrollDataIndex(i) }) 17355 }), vs({ type: "tooltip", dependencies: ["axisPointer"], defaultOption: { zlevel: 0, z: 8, show: !0, showContent: !0, trigger: "item", triggerOn: "mousemove|click", alwaysShowContent: !1, displayMode: "single", confine: !1, showDelay: 0, hideDelay: 100, transitionDuration: .4, enterable: !1, backgroundColor: "rgba(50,50,50,0.7)", borderColor: "#333", borderRadius: 4, borderWidth: 0, padding: 5, extraCssText: "", axisPointer: { type: "line", axis: "auto", animation: "auto", animationDurationUpdate: 200, animationEasingUpdate: "exponentialOut", crossStyle: { color: "#999", width: 1, type: "dashed", textStyle: {} } }, textStyle: { color: "#fff", fontSize: 14 } } }); 17356 var zk = d, 17357 Bk = Ho, 17358 Vk = ["", "-webkit-", "-moz-", "-o-"]; 17359 Wm.prototype = { 17360 constructor: Wm, 17361 _enterable: !0, 17362 update: function() { 17363 var t = this._container, 17364 e = t.currentStyle || document.defaultView.getComputedStyle(t), 17365 i = t.style; 17366 "absolute" !== i.position && "absolute" !== e.position && (i.position = "relative") 17367 }, 17368 show: function(t) { 17369 clearTimeout(this._hideTimeout); 17370 var e = this.el; 17371 e.style.cssText = "position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;" + Gm(t) + ";left:" + this._x + "px;top:" + this._y + "px;" + (t.get("extraCssText") || ""), e.style.display = e.innerHTML ? "block" : "none", this._show = !0 17372 }, 17373 setContent: function(t) { this.el.innerHTML = null == t ? "" : t }, 17374 setEnterable: function(t) { this._enterable = t }, 17375 getSize: function() { var t = this.el; return [t.clientWidth, t.clientHeight] }, 17376 moveTo: function(t, e) { 17377 var i, n = this._zr; 17378 n && n.painter && (i = n.painter.getViewportRootOffset()) && (t += i.offsetLeft, e += i.offsetTop); 17379 var o = this.el.style; 17380 o.left = t + "px", o.top = e + "px", this._x = t, this._y = e 17381 }, 17382 hide: function() { this.el.style.display = "none", this._show = !1 },
17383 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()) }, 17384 isShow: function() { return this._show } 17385 }; 17386 var Gk = m, 17387 Wk = d, 17388 Fk = Do, 17389 Hk = new SS({ shape: { x: -1, y: -1, width: 2, height: 2 } }); 17390 ys({ 17391 type: "tooltip", 17392 init: function(t, e) { 17393 if (!a_.node) { 17394 var i = new Wm(e.getDom(), e); 17395 this._tooltipContent = i 17396 } 17397 }, 17398 render: function(t, e, i) { 17399 if (!a_.node && !a_.wxa) { 17400 this.group.removeAll(), this._tooltipModel = t, this._ecModel = e, this._api = i, this._lastDataByCoordSys = null, this._alwaysShowContent = t.get("alwaysShowContent"); 17401 var n = this._tooltipContent; 17402 n.update(), n.setEnterable(t.get("enterable")), this._initGlobalListener(), this._keepShow() 17403 } 17404 }, 17405 _initGlobalListener: function() { 17406 var t = this._tooltipModel.get("triggerOn"); 17407 Dg("itemTooltip", this._api, Gk(function(e, i, n) { "none" !== t && (t.indexOf(e) >= 0 ? this._tryShow(i, n) : "leave" === e && this._hide(n)) }, this)) 17408 }, 17409 _keepShow: function() { 17410 var t = this._tooltipModel, 17411 e = this._ecModel, 17412 i = this._api; 17413 if (null != this._lastX && null != this._lastY && "none" !== t.get("triggerOn")) { 17414 var n = this; 17415 clearTimeout(this._refreshUpdateTimeout), this._refreshUpdateTimeout = setTimeout(function() { n.manuallyShowTip(t, e, i, { x: n._lastX, y: n._lastY }) }) 17416 } 17417 }, 17418 manuallyShowTip: function(t, e, i, n) { 17419 if (n.from !== this.uid && !a_.node) { 17420 var o = Hm(n, i); 17421 this._ticket = ""; 17422 var a = n.dataByCoordSys; 17423 if (n.tooltip && null != n.x && null != n.y) { 17424 var r = Hk; 17425 r.position = [n.x, n.y], r.update(), r.tooltip = n.tooltip, this._tryShow({ offsetX: n.x, offsetY: n.y, target: r }, o) 17426 } else if (a) this._tryShow({ offsetX: n.x, offsetY: n.y, position: n.position, event: {}, dataByCoordSys: n.dataByCoordSys, tooltipOption: n.tooltipOption }, o); 17427 else if (null != n.seriesIndex) { 17428 if (this._manuallyAxisShowTip(t, e, i, n)) return; 17429 var s = KL(n, e), 17430 l = s.point[0], 17431 u = s.point[1]; 17432 null != l && null != u && this._tryShow({ offsetX: l, offsetY: u, position: n.position, target: s.el, event: {} }, o) 17433 } 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)) 17434 } 17435 }, 17436 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(Hm(n, i)) }, 17437 _manuallyAxisShowTip: function(t, e, i, n) { 17438 var o = n.seriesIndex, 17439 a = n.dataIndex, 17440 r = e.getComponent("axisPointer").coordSysAxesInfo; 17441 if (null != o && null != a && null != r) { var s = e.getSeriesByIndex(o); if (s && "axis" === (t = Fm([s.getData().getItemModel(a), s, (s.coordinateSystem || {}).model, t])).get("trigger")) return i.dispatchAction({ type: "updateAxisPointer", seriesIndex: o, dataIndex: a, position: n.position }), !0 } 17442 }, 17443 _tryShow: function(t, e) { 17444 var i = t.target; 17445 if (this._tooltipModel) { 17446 this._lastX = t.offsetX, this._lastY = t.offsetY; 17447 var n = t.dataByCoordSys; 17448 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)) 17449 } 17450 }, 17451 _showOrMove: function(t, e) { 17452 var i = t.get("showDelay"); 17453 e = m(e, this), clearTimeout(this._showTimout), i > 0 ? this._showTimout = setTimeout(e, i) : e() 17454 }, 17455 _showAxisTooltip: function(t, e) { 17456 var i = this._ecModel, 17457 n = this._tooltipModel, 17458 o = [e.offsetX, e.offsetY], 17459 a = [], 17460 r = [], 17461 s = Fm([e.tooltipOption, n]); 17462 Wk(t, function(t) { 17463 Wk(t.dataByAxis, function(t) { 17464 var e = i.getComponent(t.axisDim + "Axis", t.axisIndex), 17465 n = t.value, 17466 o = []; 17467 if (e && null != n) { 17468 var s = Hg(n, e.axis, i, t.seriesDataIndices, t.valueLabelOpt); 17469 d(t.seriesDataIndices, function(a) { 17470 var l = i.getSeriesByIndex(a.seriesIndex), 17471 u = a.dataIndexInside, 17472 h = l && l.getDataParams(u); 17473 h.axisDim = t.axisDim, h.axisIndex = t.axisIndex, h.axisType = t.axisType, h.axisId = t.axisId, h.axisValue = bl(e.axis, n), h.axisValueLabel = s, h && (r.push(h), o.push(l.formatTooltip(u, !0))) 17474 }); 17475 var l = s; 17476 a.push((l ? Zo(l) + "<br />" : "") + o.join("<br />")) 17477 } 17478 }) 17479 }, this), a.reverse(), a = a.join("<br /><br />"); 17480 var l = e.position; 17481 this._showOrMove(s, function() { this._updateContentNotChangedOnAxis(t) ? this._updatePosition(s, l, o[0], o[1], this._tooltipContent, r) : this._showTooltipContent(s, a, r, Math.random(), o[0], o[1], l) }) 17482 }, 17483 _showSeriesItemTooltip: function(t, e, i) { 17484 var n = this._ecModel, 17485 o = e.seriesIndex, 17486 a = n.getSeriesByIndex(o), 17487 r = e.dataModel || a, 17488 s = e.dataIndex, 17489 l = e.dataType, 17490 u = r.getData(), 17491 h = Fm([u.getItemModel(s), r, a && (a.coordinateSystem || {}).model, this._tooltipModel]), 17492 c = h.get("trigger"); 17493 if (null == c || "item" === c) { 17494 var d = r.getDataParams(s, l), 17495 f = r.formatTooltip(s, !1, l), 17496 p = "item_" + r.name + "_" + s; 17497 this._showOrMove(h, function() { this._showTooltipContent(h, f, d, p, t.offsetX, t.offsetY, t.position, t.target) }), i({ type: "showTip", dataIndexInside: s, dataIndex: u.getRawIndex(s), seriesIndex: o, from: this.uid }) 17498 } 17499 }, 17500 _showComponentItemTooltip: function(t, e, i) { 17501 var n = e.tooltip; 17502 if ("string" == typeof n) { 17503 var o = n; 17504 n = { content: o, formatter: o } 17505 } 17506 var a = new wo(n, this._tooltipModel, this._ecModel), 17507 r = a.get("content"), 17508 s = Math.random(); 17509 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 }) 17510 }, 17511 _showTooltipContent: function(t, e, i, n, o, a, r, s) { 17512 if (this._ticket = "", t.get("showContent") && t.get("show")) { 17513 var l = this._tooltipContent, 17514 u = t.get("formatter"); 17515 r = r || t.get("position"); 17516 var h = e; 17517 if (u && "string" == typeof u) h = Uo(u, i, !0); 17518 else if ("function" == typeof u) { 17519 var c = Gk(function(e, n) { e === this._ticket && (l.setContent(n), this._updatePosition(t, r, o, a, l, i, s)) }, this); 17520 this._ticket = n, h = u(i, n, c) 17521 } 17522 l.setContent(h), l.show(t), this._updatePosition(t, r, o, a, l, i, s) 17523 } 17524 }, 17525 _updatePosition: function(t, e, i, n, o, a, r) { 17526 var s = this._api.getWidth(), 17527 l = this._api.getHeight(); 17528 e = e || t.get("position"); 17529 var u = o.getSize(), 17530 h = t.get("align"), 17531 c = t.get("verticalAlign"),
17532 d = r && r.getBoundingRect().clone(); 17533 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 = Fk(e[0], s), n = Fk(e[1], l); 17534 else if (w(e)) { 17535 e.width = u[0], e.height = u[1]; 17536 var f = Qo(e, { width: s, height: l }); 17537 i = f.x, n = f.y, h = null, c = null 17538 } else "string" == typeof e && r ? (i = (p = jm(e, d, u))[0], n = p[1]) : (i = (p = Zm(i, n, o.el, s, l, h ? null : 20, c ? null : 20))[0], n = p[1]); 17539 if (h && (i -= Ym(h) ? u[0] / 2 : "right" === h ? u[0] : 0), c && (n -= Ym(c) ? u[1] / 2 : "bottom" === c ? u[1] : 0), t.get("confine")) { 17540 var p = Um(i, n, o.el, s, l); 17541 i = p[0], n = p[1] 17542 } 17543 o.moveTo(i, n) 17544 }, 17545 _updateContentNotChangedOnAxis: function(t) { 17546 var e = this._lastDataByCoordSys, 17547 i = !!e && e.length === t.length; 17548 return i && Wk(e, function(e, n) { 17549 var o = e.dataByAxis || {}, 17550 a = (t[n] || {}).dataByAxis || []; 17551 (i &= o.length === a.length) && Wk(o, function(t, e) { 17552 var n = a[e] || {}, 17553 o = t.seriesDataIndices || [], 17554 r = n.seriesDataIndices || []; 17555 (i &= t.value === n.value && t.axisType === n.axisType && t.axisId === n.axisId && o.length === r.length) && Wk(o, function(t, e) { 17556 var n = r[e]; 17557 i &= t.seriesIndex === n.seriesIndex && t.dataIndex === n.dataIndex 17558 }) 17559 }) 17560 }), this._lastDataByCoordSys = t, !!i 17561 }, 17562 _hide: function(t) { this._lastDataByCoordSys = null, t({ type: "hideTip", from: this.uid }) }, 17563 dispose: function(t, e) { a_.node || a_.wxa || (this._tooltipContent.hide(), Ng("itemTooltip", e)) } 17564 }), cs({ type: "showTip", event: "showTip", update: "tooltip:manuallyShowTip" }, function() {}), cs({ type: "hideTip", event: "hideTip", update: "tooltip:manuallyHideTip" }, function() {}), Jm.prototype = { constructor: Jm, pointToData: function(t, e) { return this.polar.pointToData(t, e)["radius" === this.dim ? 0 : 1] }, dataToRadius: qT.prototype.dataToCoord, radiusToData: qT.prototype.coordToData }, u(Jm, qT), Qm.prototype = { constructor: Qm, pointToData: function(t, e) { return this.polar.pointToData(t, e)["radius" === this.dim ? 0 : 1] }, dataToAngle: qT.prototype.dataToCoord, angleToData: qT.prototype.coordToData }, u(Qm, qT); 17565 var Zk = function(t) { this.name = t || "", this.cx = 0, this.cy = 0, this._radiusAxis = new Jm, this._angleAxis = new Qm, this._radiusAxis.polar = this._angleAxis.polar = this }; 17566 Zk.prototype = { 17567 type: "polar", 17568 axisPointerEnabled: !0, 17569 constructor: Zk, 17570 dimensions: ["radius", "angle"], 17571 model: null, 17572 containPoint: function(t) { var e = this.pointToCoord(t); return this._radiusAxis.contain(e[0]) && this._angleAxis.contain(e[1]) }, 17573 containData: function(t) { return this._radiusAxis.containData(t[0]) && this._angleAxis.containData(t[1]) }, 17574 getAxis: function(t) { return this["_" + t + "Axis"] }, 17575 getAxes: function() { return [this._radiusAxis, this._angleAxis] }, 17576 getAxesByScale: function(t) { 17577 var e = [], 17578 i = this._angleAxis, 17579 n = this._radiusAxis; 17580 return i.scale.type === t && e.push(i), n.scale.type === t && e.push(n), e 17581 }, 17582 getAngleAxis: function() { return this._angleAxis }, 17583 getRadiusAxis: function() { return this._radiusAxis }, 17584 getOtherAxis: function(t) { var e = this._angleAxis; return t === e ? this._radiusAxis : e }, 17585 getBaseAxis: function() { return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAngleAxis() }, 17586 getTooltipAxes: function(t) { var e = null != t && "auto" !== t ? this.getAxis(t) : this.getBaseAxis(); return { baseAxes: [e], otherAxes: [this.getOtherAxis(e)] } }, 17587 dataToPoint: function(t, e) { return this.coordToPoint([this._radiusAxis.dataToRadius(t[0], e), this._angleAxis.dataToAngle(t[1], e)]) }, 17588 pointToData: function(t, e) { var i = this.pointToCoord(t); return [this._radiusAxis.radiusToData(i[0], e), this._angleAxis.angleToData(i[1], e)] }, 17589 pointToCoord: function(t) { 17590 var e = t[0] - this.cx, 17591 i = t[1] - this.cy, 17592 n = this.getAngleAxis(), 17593 o = n.getExtent(), 17594 a = Math.min(o[0], o[1]), 17595 r = Math.max(o[0], o[1]); 17596 n.inverse ? a = r - 360 : r = a + 360; 17597 var s = Math.sqrt(e * e + i * i); 17598 e /= s, i /= s; 17599 for (var l = Math.atan2(-i, e) / Math.PI * 180, u = l < a ? 1 : -1; l < a || l > r;) l += 360 * u; 17600 return [s, l] 17601 }, 17602 coordToPoint: function(t) { 17603 var e = t[0], 17604 i = t[1] / 180 * Math.PI; 17605 return [Math.cos(i) * e + this.cx, -Math.sin(i) * e + this.cy] 17606 } 17607 }; 17608 var Uk = hM.extend({ type: "polarAxis", axis: null, getCoordSysModel: function() { return this.ecModel.queryComponents({ mainType: "polar", index: this.option.polarIndex, id: this.option.polarId })[0] } }); 17609 n(Uk.prototype, ET); 17610 var Xk = { angle: { startAngle: 90, clockwise: !0, splitNumber: 12, axisLabel: { rotate: !1 } }, radius: { splitNumber: 5 } }; 17611 MD("angle", Uk, tv, Xk.angle), MD("radius", Uk, tv, Xk.radius), vs({ 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%" } }); 17612 var jk = { 17613 dimensions: Zk.prototype.dimensions, 17614 create: function(t, e) { 17615 var i = []; 17616 return t.eachComponent("polar", function(t, n) { 17617 var o = new Zk(n); 17618 o.update = iv; 17619 var a = o.getRadiusAxis(), 17620 r = o.getAngleAxis(), 17621 s = t.findAxisModel("radiusAxis"), 17622 l = t.findAxisModel("angleAxis"); 17623 nv(a, s), nv(r, l), ev(o, t, e), i.push(o), t.coordinateSystem = o, o.model = t 17624 }), t.eachSeries(function(e) { 17625 if ("polar" === e.get("coordinateSystem")) { 17626 var i = t.queryComponents({ mainType: "polar", index: e.get("polarIndex"), id: e.get("polarId") })[0]; 17627 e.coordinateSystem = i.coordinateSystem 17628 } 17629 }), i 17630 } 17631 }; 17632 Ca.register("polar", jk); 17633 var Yk = ["axisLine", "axisLabel", "axisTick", "splitLine", "splitArea"]; 17634 ED.extend({ 17635 type: "angleAxis", 17636 axisPointerClass: "PolarAxisPointer", 17637 render: function(t, e) { 17638 if (this.group.removeAll(), t.get("show")) { 17639 var n = t.axis, 17640 o = n.polar, 17641 a = o.getRadiusAxis().getExtent(), 17642 r = n.getTicksCoords(), 17643 s = f(n.getViewLabels(), function(t) { return (t = i(t)).coord = n.dataToCoord(t.tickValue), t }); 17644 rv(s), rv(r), d(Yk, function(e) {!t.get(e + ".show") || n.scale.isBlank() && "axisLine" !== e || this["_" + e](t, o, r, a, s) }, this) 17645 } 17646 },
17647 _axisLine: function(t, e, i, n) { 17648 var o = t.getModel("axisLine.lineStyle"), 17649 a = new pS({ shape: { cx: e.cx, cy: e.cy, r: n[av(e)] }, style: o.getLineStyle(), z2: 1, silent: !0 }); 17650 a.style.fill = null, this.group.add(a) 17651 }, 17652 _axisTick: function(t, e, i, n) { 17653 var o = t.getModel("axisTick"), 17654 a = (o.get("inside") ? -1 : 1) * o.get("length"), 17655 s = n[av(e)], 17656 l = f(i, function(t) { return new MS({ shape: ov(e, [s, s + a], t.coord) }) }); 17657 this.group.add(zS(l, { style: r(o.getModel("lineStyle").getLineStyle(), { stroke: t.get("axisLine.lineStyle.color") }) })) 17658 }, 17659 _axisLabel: function(t, e, i, n, o) { 17660 var a = t.getCategories(!0), 17661 r = t.getModel("axisLabel"), 17662 s = r.get("margin"); 17663 d(o, function(i, o) { 17664 var l = r, 17665 u = i.tickValue, 17666 h = n[av(e)], 17667 c = e.coordToPoint([h + s, i.coord]), 17668 d = e.cx, 17669 f = e.cy, 17670 p = Math.abs(c[0] - d) / h < .3 ? "center" : c[0] > d ? "left" : "right", 17671 g = Math.abs(c[1] - f) / h < .3 ? "middle" : c[1] > f ? "top" : "bottom"; 17672 a && a[u] && a[u].textStyle && (l = new wo(a[u].textStyle, r, r.ecModel)); 17673 var m = new fS({ silent: !0 }); 17674 this.group.add(m), no(m.style, l, { x: c[0], y: c[1], textFill: l.getTextColor() || t.get("axisLine.lineStyle.color"), text: i.formattedLabel, textAlign: p, textVerticalAlign: g }) 17675 }, this) 17676 }, 17677 _splitLine: function(t, e, i, n) { 17678 var o = t.getModel("splitLine").getModel("lineStyle"), 17679 a = o.get("color"), 17680 s = 0; 17681 a = a instanceof Array ? a : [a]; 17682 for (var l = [], u = 0; u < i.length; u++) { 17683 var h = s++ % a.length; 17684 l[h] = l[h] || [], l[h].push(new MS({ shape: ov(e, n, i[u].coord) })) 17685 } 17686 for (u = 0; u < l.length; u++) this.group.add(zS(l[u], { style: r({ stroke: a[u % a.length] }, o.getLineStyle()), silent: !0, z: t.get("z") })) 17687 }, 17688 _splitArea: function(t, e, i, n) { 17689 if (i.length) { 17690 var o = t.getModel("splitArea").getModel("areaStyle"), 17691 a = o.get("color"), 17692 s = 0; 17693 a = a instanceof Array ? a : [a]; 17694 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++) { 17695 var g = s++ % a.length; 17696 l[g] = l[g] || [], l[g].push(new vS({ 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 17697 } 17698 for (p = 0; p < l.length; p++) this.group.add(zS(l[p], { style: r({ fill: a[p % a.length] }, o.getAreaStyle()), silent: !0 })) 17699 } 17700 } 17701 }); 17702 var qk = ["axisLine", "axisTickLabel", "axisName"], 17703 Kk = ["splitLine", "splitArea"]; 17704 ED.extend({ 17705 type: "radiusAxis", 17706 axisPointerClass: "PolarAxisPointer", 17707 render: function(t, e) { 17708 if (this.group.removeAll(), t.get("show")) { 17709 var i = t.axis, 17710 n = i.polar, 17711 o = n.getAngleAxis(), 17712 a = i.getTicksCoords(), 17713 r = o.getExtent()[0], 17714 s = i.getExtent(), 17715 l = sv(n, t, r), 17716 u = new LD(t, l); 17717 d(qk, u.add, u), this.group.add(u.getGroup()), d(Kk, function(e) { t.get(e + ".show") && !i.scale.isBlank() && this["_" + e](t, n, r, s, a) }, this) 17718 } 17719 }, 17720 _splitLine: function(t, e, i, n, o) { 17721 var a = t.getModel("splitLine").getModel("lineStyle"), 17722 s = a.get("color"), 17723 l = 0; 17724 s = s instanceof Array ? s : [s]; 17725 for (var u = [], h = 0; h < o.length; h++) { 17726 var c = l++ % s.length; 17727 u[c] = u[c] || [], u[c].push(new pS({ shape: { cx: e.cx, cy: e.cy, r: o[h].coord }, silent: !0 })) 17728 } 17729 for (h = 0; h < u.length; h++) this.group.add(zS(u[h], { style: r({ stroke: s[h % s.length], fill: null }, a.getLineStyle()), silent: !0 })) 17730 }, 17731 _splitArea: function(t, e, i, n, o) { 17732 if (o.length) { 17733 var a = t.getModel("splitArea").getModel("areaStyle"), 17734 s = a.get("color"), 17735 l = 0; 17736 s = s instanceof Array ? s : [s]; 17737 for (var u = [], h = o[0].coord, c = 1; c < o.length; c++) { 17738 var d = l++ % s.length; 17739 u[d] = u[d] || [], u[d].push(new vS({ 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 17740 } 17741 for (c = 0; c < u.length; c++) this.group.add(zS(u[c], { style: r({ fill: s[c % s.length] }, a.getAreaStyle()), silent: !0 })) 17742 } 17743 } 17744 }); 17745 var $k = Og.extend({ 17746 makeElOption: function(t, e, i, n, o) { 17747 var a = i.axis; 17748 "angle" === a.dim && (this.animationThreshold = Math.PI / 18); 17749 var r, s = a.polar, 17750 l = s.getOtherAxis(a).getExtent(); 17751 r = a["dataTo" + Ko(a.dim)](e); 17752 var u = n.get("type"); 17753 if (u && "none" !== u) { 17754 var h = Gg(n), 17755 c = Jk[u](a, s, r, l, h); 17756 c.style = h, t.graphicKey = c.type, t.pointer = c 17757 } 17758 Wg(t, i, n, o, lv(e, i, 0, s, n.get("label.margin"))) 17759 } 17760 }), 17761 Jk = { 17762 line: function(t, e, i, n, o) { return "angle" === t.dim ? { type: "Line", shape: Xg(e.coordToPoint([n[0], i]), e.coordToPoint([n[1], i])) } : { type: "Circle", shape: { cx: e.cx, cy: e.cy, r: i } } }, 17763 shadow: function(t, e, i, n, o) { 17764 var a = Math.max(1, t.getBandWidth()), 17765 r = Math.PI / 180; 17766 return "angle" === t.dim ? { type: "Sector", shape: Yg(e.cx, e.cy, n[0], n[1], (-i - a / 2) * r, (a / 2 - i) * r) } : { type: "Sector", shape: Yg(e.cx, e.cy, i - a / 2, i + a / 2, 0, 2 * Math.PI) } 17767 } 17768 }; 17769 ED.registerAxisPointerClass("PolarAxisPointer", $k), fs(v(function(t, e, i) { 17770 var n = i.getWidth(), 17771 o = i.getHeight(), 17772 a = {}, 17773 r = $m(g(e.getSeriesByType(t), function(t) { return !e.isSeriesFiltered(t) && t.coordinateSystem && "polar" === t.coordinateSystem.type })); 17774 e.eachSeriesByType(t, function(t) { 17775 if ("polar" === t.coordinateSystem.type) { 17776 var e = t.getData(), 17777 i = t.coordinateSystem, 17778 s = i.getBaseAxis(), 17779 l = qm(t), 17780 u = r[Km(s)][l], 17781 h = u.offset, 17782 c = u.width, 17783 d = i.getOtherAxis(s),
17784 f = t.get("center") || ["50%", "50%"], 17785 p = Do(f[0], n), 17786 g = Do(f[1], o), 17787 m = t.get("barMinHeight") || 0, 17788 v = t.get("barMinAngle") || 0; 17789 a[l] = a[l] || []; 17790 for (var y = e.mapDimension(d.dim), x = e.mapDimension(s.dim), _ = Zs(e, y), w = d.getExtent()[0], b = 0, S = e.count(); b < S; b++) { 17791 var M = e.get(y, b), 17792 I = e.get(x, b); 17793 if (!isNaN(M)) { 17794 var T = M >= 0 ? "p" : "n", 17795 D = w; 17796 _ && (a[l][I] || (a[l][I] = { p: w, n: w }), D = a[l][I][T]); 17797 var A, C, L, k; 17798 if ("radius" === d.dim) { 17799 var P = d.dataToRadius(M) - w, 17800 N = s.dataToAngle(I); 17801 Math.abs(P) < m && (P = (P < 0 ? -1 : 1) * m), A = D, C = D + P, k = (L = N - h) - c, _ && (a[l][I][T] = C) 17802 } else { 17803 var O = d.dataToAngle(M, !0) - w, 17804 E = s.dataToRadius(I); 17805 Math.abs(O) < v && (O = (O < 0 ? -1 : 1) * v), C = (A = E + h) + c, L = D, k = D + O, _ && (a[l][I][T] = k) 17806 } 17807 e.setItemLayout(b, { cx: p, cy: g, r0: A, r: C, startAngle: -L * Math.PI / 180, endAngle: -k * Math.PI / 180 }) 17808 } 17809 } 17810 } 17811 }, this) 17812 }, "bar")), ys({ type: "polar" }), h(hM.extend({ 17813 type: "geo", 17814 coordinateSystem: null, 17815 layoutMode: "box", 17816 init: function(t) { hM.prototype.init.apply(this, arguments), Mi(t, "label", ["show"]) }, 17817 optionUpdated: function() { 17818 var t = this.option, 17819 e = this; 17820 t.regions = vA.getFilledRegions(t.regions, t.map, t.nameMap), this._optionModelMap = p(t.regions || [], function(t, i) { return i.name && t.set(i.name, new wo(i, e)), t }, R()), this.updateSelectedMap(t.regions) 17821 }, 17822 defaultOption: { zlevel: 0, z: 0, show: !0, left: "center", top: "center", aspectScale: .75, silent: !1, map: "", boundingCoords: null, center: null, zoom: 1, scaleLimit: null, label: { show: !1, color: "#000" }, itemStyle: { borderWidth: .5, borderColor: "#444", color: "#eee" }, emphasis: { label: { show: !0, color: "rgb(100,0,0)" }, itemStyle: { color: "rgba(255,215,0,0.8)" } }, regions: [] }, 17823 getRegionModel: function(t) { return this._optionModelMap.get(t) || new wo(null, this, this.ecModel) }, 17824 getFormattedLabel: function(t, e) { 17825 var i = this.getRegionModel(t).get("label." + e + ".formatter"), 17826 n = { name: t }; 17827 return "function" == typeof i ? (n.status = e, i(n)) : "string" == typeof i ? i.replace("{a}", null != t ? t : "") : void 0 17828 }, 17829 setZoom: function(t) { this.option.zoom = t }, 17830 setCenter: function(t) { this.option.center = t } 17831 }), YD), ys({ 17832 type: "geo", 17833 init: function(t, e) { 17834 var i = new Uh(e, !0); 17835 this._mapDraw = i, this.group.add(i.group) 17836 }, 17837 render: function(t, e, i, n) { 17838 if (!n || "geoToggleSelect" !== n.type || n.from !== this.uid) { 17839 var o = this._mapDraw; 17840 t.get("show") ? o.draw(t, e, i, this, n) : this._mapDraw.group.removeAll(), this.group.silent = t.get("silent") 17841 } 17842 }, 17843 dispose: function() { this._mapDraw && this._mapDraw.remove() } 17844 }), uv("toggleSelected", { type: "geoToggleSelect", event: "geoselectchanged" }), uv("select", { type: "geoSelect", event: "geoselected" }), uv("unSelect", { type: "geoUnSelect", event: "geounselected" }); 17845 var Qk = ["rect", "polygon", "keep", "clear"], 17846 tP = d, 17847 eP = { 17848 lineX: mv(0), 17849 lineY: mv(1), 17850 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) } }, 17851 polygon: { 17852 point: function(t, e, i) { return t && i.boundingRect.contain(t[0], t[1]) && Al(i.range, t[0], t[1]) }, 17853 rect: function(t, e, i) { 17854 var n = i.range; 17855 if (!t || n.length <= 1) return !1; 17856 var o = t.x, 17857 a = t.y, 17858 r = t.width, 17859 s = t.height, 17860 l = n[0]; 17861 return !!(Al(n, o, a) || Al(n, o + r, a) || Al(n, o, a + s) || Al(n, o + r, a + s) || $t.create(t).contain(l[0], l[1]) || yv(o, a, o + r, a, n) || yv(o, a, o, a + s, n) || yv(o + r, a, o + r, a + s, n) || yv(o, a + s, o + r, a + s, n)) || void 0 17862 } 17863 } 17864 }, 17865 iP = d, 17866 nP = l, 17867 oP = v, 17868 aP = ["dataToPoint", "pointToData"], 17869 rP = ["grid", "xAxis", "yAxis", "geo", "graph", "polar", "radiu
17869sAxis", "angleAxis", "bmap"], 17870 sP = bv.prototype; 17871 sP.setOutputRanges = function(t, e) { 17872 this.matchOutputRanges(t, e, function(t, e, i) { 17873 if ((t.coordRanges || (t.coordRanges = [])).push(e), !t.coordRange) { 17874 t.coordRange = e; 17875 var n = cP[t.brushType](0, i, e); 17876 t.__rangeOffset = { offset: dP[t.brushType](n.values, t.range, [1, 1]), xyMinMax: n.xyMinMax } 17877 } 17878 }) 17879 }, sP.matchOutputRanges = function(t, e, i) { 17880 iP(t, function(t) { 17881 var n = this.findTargetInfo(t, e); 17882 n && !0 !== n && d(n.coordSyses, function(n) { 17883 var o = cP[t.brushType](1, n, t.range); 17884 i(t, o.values, n, e) 17885 }) 17886 }, this) 17887 }, sP.setInputRanges = function(t, e) { 17888 iP(t, function(t) { 17889 var i = this.findTargetInfo(t, e); 17890 if (t.range = t.range || [], i && !0 !== i) { 17891 t.panelId = i.panelId; 17892 var n = cP[t.brushType](0, i.coordSys, t.coordRange), 17893 o = t.__rangeOffset; 17894 t.range = o ? dP[t.brushType](n.values, o.offset, Dv(n.xyMinMax, o.xyMinMax)) : n.values 17895 } 17896 }, this) 17897 }, sP.makePanelOpts = function(t, e) { return f(this._targetInfoList, function(i) { var n = i.getPanelRect(); return { panelId: i.panelId, defaultBrushType: e && e(i), clipPath: Ef(n), isTargetByCursor: zf(n, t, i.coordSysModel), getLinearBrushOtherExtent: Rf(n) } }) }, sP.controlSeries = function(t, e, i) { var n = this.findTargetInfo(t, i); return !0 === n || n && nP(n.coordSyses, e.coordinateSystem) >= 0 }, sP.findTargetInfo = function(t, e) { 17898 for (var i = this._targetInfoList, n = Mv(e, t), o = 0; o < i.length; o++) { 17899 var a = i[o], 17900 r = t.panelId; 17901 if (r) { if (a.panelId === r) return a } else 17902 for (o = 0; o < uP.length; o++) 17903 if (uP[o](n, a)) return a 17904 } 17905 return !0 17906 }; 17907 var lP = { 17908 grid: function(t, e) { 17909 var i = t.xAxisModels, 17910 n = t.yAxisModels, 17911 o = t.gridModels, 17912 a = R(), 17913 r = {}, 17914 s = {}; 17915 (i || n || o) && (iP(i, function(t) { 17916 var e = t.axis.grid.model; 17917 a.set(e.id, e), r[e.id] = !0 17918 }), iP(n, function(t) { 17919 var e = t.axis.grid.model; 17920 a.set(e.id, e), s[e.id] = !0 17921 }), iP(o, function(t) { a.set(t.id, t), r[t.id] = !0, s[t.id] = !0 }), a.each(function(t) { 17922 var o = t.coordinateSystem, 17923 a = []; 17924 iP(o.getCartesians(), function(t, e) { 17925 (nP(i, t.getAxis("x").model) >= 0 || nP(n, t.getAxis("y").model) >= 0) && a.push(t) 17926 }), e.push({ panelId: "grid--" + t.id, gridModel: t, coordSysModel: t, coordSys: a[0], coordSyses: a, getPanelRect: hP.grid, xAxisDeclared: r[t.id], yAxisDeclared: s[t.id] }) 17927 })) 17928 }, 17929 geo: function(t, e) { 17930 iP(t.geoModels, function(t) { 17931 var i = t.coordinateSystem; 17932 e.push({ panelId: "geo--" + t.id, geoModel: t, coordSysModel: t, coordSys: i, coordSyses: [i], getPanelRect: hP.geo }) 17933 }) 17934 } 17935 }, 17936 uP = [function(t, e) { 17937 var i = t.xAxisModel, 17938 n = t.yAxisModel, 17939 o = t.gridModel; 17940 return !o && i && (o = i.axis.grid.model), !o && n && (o = n.axis.grid.model), o && o === e.gridModel 17941 }, function(t, e) { var i = t.geoModel; return i && i === e.geoModel }], 17942 hP = { 17943 grid: function() { return this.coordSys.grid.getRect().clone() }, 17944 geo: function() { 17945 var t = this.coordSys, 17946 e = t.getBoundingRect().clone(); 17947 return e.applyTransform(go(t)), e 17948 } 17949 }, 17950 cP = { 17951 lineX: oP(Iv, 0), 17952 lineY: oP(Iv, 1), 17953 rect: function(t, e, i) { 17954 var n = e[aP[t]]([i[0][0], i[1][0]]), 17955 o = e[aP[t]]([i[0][1], i[1][1]]), 17956 a = [Sv([n[0], o[0]]), Sv([n[1], o[1]])]; 17957 return { values: a, xyMinMax: a } 17958 }, 17959 polygon: function(t, e, i) { 17960 var n = [ 17961 [1 / 0, -1 / 0], 17962 [1 / 0, -1 / 0] 17963 ]; 17964 return { values: f(i, function(i) { var o = e[aP[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 } 17965 } 17966 }, 17967 dP = { 17968 lineX: oP(Tv, 0), 17969 lineY: oP(Tv, 1), 17970 rect: function(t, e, i) { 17971 return [ 17972 [t[0][0] - i[0] * e[0][0], t[0][1] - i[0] * e[0][1]], 17973 [t[1][0] - i[1] * e[1][0], t[1][1] - i[1] * e[1][1]] 17974 ] 17975 }, 17976 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]] }) } 17977 }, 17978 fP = ["inBrush", "outOfBrush"], 17979 pP = "__ecBrushSelect", 17980 gP = "__ecInBrushSelectEvent", 17981 mP = LI.VISUAL.BRUSH; 17982 fs(mP, 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 bv(e.option, t)).setInputRanges(e.areas, t) }) }), ps(mP, function(t, e, n) { 17983 var o, a, s = []; 17984 t.eachComponent({ mainType: "brush" }, function(e, n) { 17985 function l(t) { return "all" === m || v[t] } 17986 17987 function u(t) { return !!t.length } 17988 17989 function h(t, e) { 17990 var i = t.coordinateSystem; 17991 w |= i.hasAxisBrushed(), l(e) && i.eachActiveState(t.getData(), function(t, e) { "active" === t && (x[e] = 1) }) 17992 } 17993 17994 function c(i, n, o) { 17995 var a = Pv(i); 17996 if (a && !Nv(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))) { 17997 var r = i.getData(); 17998 r.each(function(t) { kv(a, o, r, t) && (x[t] = 1) }) 17999 } 18000 } 18001 var p = { brushId: e.id, brushIndex: n, brushName: e.name, areas: i(e.areas), selected: [] }; 18002 s.push(p); 18003 var g = e.option, 18004 m = g.brushLink, 18005 v = [], 18006 x = [], 18007 _ = [], 18008 w = 0; 18009 n || (o = g.throttleType, a = g.throttleDelay); 18010 var b = f(e.areas, function(t) { return Ov(r({ boundingRect: vP[t.brushType](t) }, t)) }), 18011 S = dv(e.option, fP, function(t) { t.mappingMethod = "fixed" }); 18012 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) { 18013 var i = { seriesId: t.id, seriesIndex: e, seriesName: t.name, dataIndex: [] }; 18014 p.selected.push(i); 18015 var n = Pv(t), 18016 o = _[e], 18017 a = t.getData(), 18018 r = l(e) ? function(t) { return x[t] ? (i.dataIndex.push(a.getRawIndex(t)), "inBrush") : "outOfBrush" } : function(t) { return kv(n, o, a, t) ? (i.dataIndex.push(a.getRawIndex(t)), "inBrush") : "outOfBrush" }; 18019 (l(e) ? w : u(o)) && pv(fP, S, a, r) 18020 }) 18021 }), Cv(e, o, a, s, n) 18022 }); 18023 var vP = { 18024 lineX: B, 18025 lineY: B, 18026 rect: function(t) { return Ev(t.range) }, 18027 polygon: function(t) { 18028 for (var e, i = t.range, n = 0, o = i.length; n < o; n++) { 18029 e = e || [ 18030 [1 / 0, -1 / 0], 18031 [1 / 0, -1 / 0] 18032 ]; 18033 var a = i[n]; 18034 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]) 18035 } 18036 return e && Ev(e) 18037 } 18038 }, 18039 yP = ["#ddd"]; 18040 vs({ 18041 type: "brush", 18042 dependencies: ["geo", "grid", "xAxis", "yAxis", "parallel", "series"], 18043 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 }, 18044 areas: [], 18045 brushType: null, 18046 brushOption: {}, 18047 coordInfoList: [], 18048 optionUpdated: function(t, e) { 18049 var i = this.option; 18050 !e && fv(i, t, ["inBrush", "outOfBrush"]); 18051 var n = i.inBrush = i.inBrush || {}; 18052 i.outOfBrush = i.outOfBrush || { color: yP }, n.hasOwnProperty("liftZ") || (n.liftZ = 5) 18053 }, 18054 setAreas: function(t) { t && (this.areas = f(t, function(t) { return Rv(this.option, t) }, this)) }, 18055 setBrushOption: function(t) { this.brushOption = Rv(this.option, t), this.brushType = this.brushOption.brushType } 18056 }); 18057 ys({ 18058 type: "brush", 18059 init: function(t, e) { this.ecModel = t, this.api = e, this.model, (this._brushController = new Qd(e.getZr())).on("brush", m(this._onBrush, this)).mount() }, 18060 render: function(t) { return this.model = t, zv.apply(this, arguments) }, 18061 updateTransform: zv, 18062 updateView: zv, 18063 dispose: function() { this._brushController.dispose() }, 18064 _onBrush: function(t, e) { 18065 var n = this.model.id; 18066 this.model.brushTargetManager.setOutputRanges(t, this.ecModel), (!e.isEnd || e.removeOnClick) && this.api.dispatchAction({ type: "brush", brushId: n, areas: i(t), $from: n }) 18067 } 18068 }), cs({ type: "brush", event: "brush" }, function(t, e) { e.eachComponent({ mainType: "brush", query: t }, function(e) { e.setAreas(t.areas) }) }), cs({ type: "brushSelect", event: "brushSelected", update: "none" }, function() {}); 18069 var xP = {}, 18070 _P = lI.toolbox.brush; 18071 Gv.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
18071-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(_P.title) }; 18072 var wP = Gv.prototype; 18073 wP.render = wP.updateView = function(t, e, i) { 18074 var n, o, a; 18075 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") }) 18076 }, wP.getIcons = function() { 18077 var t = this.model, 18078 e = t.get("icon", !0), 18079 i = {}; 18080 return d(t.get("type", !0), function(t) { e[t] && (i[t] = e[t]) }), i 18081 }, wP.onclick = function(t, e, i) { 18082 var n = this._brushType, 18083 o = this._brushMode; 18084 "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 } }) 18085 }, Bv("brush", Gv), us(function(t, e) { 18086 var i = t && t.brush; 18087 if (y(i) || (i = i ? [i] : []), i.length) { 18088 var n = []; 18089 d(i, function(t) { 18090 var e = t.hasOwnProperty("toolbox") ? t.toolbox : []; 18091 e instanceof Array && (n = n.concat(e)) 18092 }); 18093 var o = t && t.toolbox; 18094 y(o) && (o = o[0]), o || (o = { feature: {} }, t.toolbox = [o]); 18095 var a = o.feature || (o.feature = {}), 18096 r = a.brush || (a.brush = {}), 18097 s = r.type || (r.type = []); 18098 s.push.apply(s, n), hv(s), e && !s.length && s.push.apply(s, Qk) 18099 } 18100 }); 18101 Wv.prototype = { 18102 constructor: Wv, 18103 type: "calendar", 18104 dimensions: ["time", "value"], 18105 getDimensionsInfo: function() { return [{ name: "time", type: "time" }, "value"] }, 18106 getRangeInfo: function() { return this._rangeInfo }, 18107 getModel: function() { return this._model }, 18108 getRect: function() { return this._rect }, 18109 getCellWidth: function() { return this._sw }, 18110 getCellHeight: function() { return this._sh }, 18111 getOrient: function() { return this._orient }, 18112 getFirstDayOfWeek: function() { return this._firstDayOfWeek }, 18113 getDateInfo: function(t) { 18114 var e = (t = Ro(t)).getFullYear(), 18115 i = t.getMonth() + 1; 18116 i = i < 10 ? "0" + i : i; 18117 var n = t.getDate(); 18118 n = n < 10 ? "0" + n : n; 18119 var o = t.getDay(); 18120 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 } 18121 }, 18122 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)) }, 18123 update: function(t, e) { 18124 function i(t, e) { return null != t[e] && "auto" !== t[e] } 18125 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()); 18126 var n = this._rangeInfo.weeks || 1, 18127 o = ["width", "height"], 18128 a = this._model.get("cellSize").slice(), 18129 r = this._model.getBoxLayoutParams(), 18130 s = "horizontal" === this._orient ? [n, 7] : [7, n]; 18131 d([0, 1], function(t) { i(a, t) && (r[o[t]] = a[t] * s[t]) }); 18132 var l = { width: e.getWidth(), height: e.getHeight() }, 18133 u = this._rect = Qo(r, l); 18134 d([0, 1], function(t) { i(a, t) || (a[t] = u[o[t]] / s[t]) }), this._sw = a[0], this._sh = a[1] 18135 }, 18136 dataToPoint: function(t, e) { 18137 y(t) && (t = t[0]), null == e && (e = !0); 18138 var i = this.getDateInfo(t), 18139 n = this._rangeInfo, 18140 o = i.formatedDate; 18141 if (e && !(i.time >= n.start.time && i.time < n.end.time + 864e5)) return [NaN, NaN]; 18142 var a = i.day, 18143 r = this._getRangeInfo([n.start.time, o]).nthWeek; 18144 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] 18145 }, 18146 pointToData: function(t) { var e = this.pointToDate(t);
18146 return e && e.time }, 18147 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] } }, 18148 pointToDate: function(t) { 18149 var e = Math.floor((t[0] - this._rect.x) / this._sw) + 1, 18150 i = Math.floor((t[1] - this._rect.y) / this._sh) + 1, 18151 n = this._rangeInfo.range; 18152 return "vertical" === this._orient ? this._getDateByWeeksAndDay(i, e - 1, n) : this._getDateByWeeksAndDay(e, i - 1, n) 18153 }, 18154 convertToPixel: v(Fv, "dataToPoint"), 18155 convertFromPixel: v(Fv, "pointToData"), 18156 _initRangeOption: function() { 18157 var t = this._model.get("range"), 18158 e = t; 18159 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)) { 18160 var i = this.getDateInfo(e), 18161 n = i.date; 18162 n.setMonth(n.getMonth() + 1); 18163 var o = this.getNextNDay(n, -1); 18164 t = [i.formatedDate, o.formatedDate] 18165 } 18166 /^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(e) && (t = [e, e]); 18167 var a = this._getRangeInfo(t); 18168 return a.start.time > a.end.time && t.reverse(), t 18169 }, 18170 _getRangeInfo: function(t) { 18171 var e; 18172 (t = [this.getDateInfo(t[0]), this.getDateInfo(t[1])])[0].time > t[1].time && (e = !0, t.reverse()); 18173 var i = Math.floor(t[1].time / 864e5) - Math.floor(t[0].time / 864e5) + 1, 18174 n = new Date(t[0].time), 18175 o = n.getDate(), 18176 a = t[1].date.getDate(); 18177 if (n.setDate(o + i - 1), n.getDate() !== a) 18178 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); 18179 var s = Math.floor((i + t[0].day + 6) / 7), 18180 l = e ? 1 - s : s - 1; 18181 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 } 18182 }, 18183 _getDateByWeeksAndDay: function(t, e, i) { 18184 var n = this._getRangeInfo(i); 18185 if (t > n.weeks || 0 === t && e < n.fweek || t === n.weeks && e > n.lweek) return !1; 18186 var o = 7 * (t - 1) - n.fweek + e, 18187 a = new Date(n.start.time); 18188 return a.setDate(n.start.d + o), this.getDateInfo(a) 18189 } 18190 }, Wv.dimensions = Wv.prototype.dimensions, Wv.getDimensionsInfo = Wv.prototype.getDimensionsInfo, Wv.create = function(t, e) { 18191 var i = []; 18192 return t.eachComponent("calendar", function(n) { 18193 var o = new Wv(n, t, e); 18194 i.push(o), n.coordinateSystem = o 18195 }), t.eachSeries(function(t) { "calendar" === t.get("coordinateSystem") && (t.coordinateSystem = i[t.get("calendarIndex") || 0]) }), i 18196 }, Ca.register("calendar", Wv); 18197 var bP = hM.extend({ 18198 type: "calendar", 18199 coordinateSystem: null, 18200 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 } }, 18201 init: function(t, e, i, n) { 18202 var o = na(t); 18203 bP.superApply(this, "init", arguments), Hv(t, o) 18204 }, 18205 mergeOption: function(t, e) { bP.superApply(this, "mergeOption", arguments), Hv(this.option, t) } 18206 }), 18207 SP = { EN: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], CN: ["䏿", "äºæ", "䏿", "åæ", "äºæ", "å æ", "䏿", "å «æ", "乿", "åæ", "å䏿", "åäºæ"] }, 18208 MP = { EN: ["S", "M", "T", "W", "T", "F", "S"], CN: ["æ¥", "ä¸", "äº", "ä¸", "å", "äº", "å "] }; 18209 ys({ 18210 type: "calendar", 18211 _tlpoints: null, 18212 _blpoints: null, 18213 _firstDayOfMonth: null, 18214 _firstDayPoints: null, 18215 render: function(t, e, i) { 18216 var n = this.group; 18217 n.removeAll(); 18218 var o = t.coordinateSystem, 18219 a = o.getRangeInfo(), 18220 r = o.getOrient(); 18221 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) 18222 }, 18223 _renderDayRect: function(t, e, i) { 18224 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) { 18225 var l = n.dataToRect([s], !1).tl, 18226 u = new SS({ shape: { x: l[0], y: l[1], width: a, height: r }, cursor: "default", style: o }); 18227 i.add(u) 18228 } 18229 }, 18230 _renderLines: function(t, e, i, n) { 18231 function o(e) { 18232 a._firstDayOfMonth.push(r.getDateInfo(e)), a._firstDayPoints.push(r.dataToRect([e], !1).tl); 18233 var o = a._getLinePointsOfOneWeek(t, e, i); 18234 a._tlpoints.push(o[0]), a._blpoints.push(o[o.length - 1]), l && a._drawSplitline(o, s, n) 18235 } 18236 var a = this, 18237 r = t.coordinateSystem, 18238 s = t.getModel("splitLine.lineStyle").getLineStyle(), 18239 l = t.get("splitLine.show"), 18240 u = s.lineWidth; 18241 this._tlpoints = [], this._blpoints = [], this._firstDayOfMonth = [], this._firstDayPoints = []; 18242 for (var h = e.start, c = 0; h.time <= e.end.time; c++) { 18243 o(h.formatedDate), 0 === c && (h = r.getDateInfo(e.start.y + "-" + e.start.m)); 18244 var d = h.date; 18245 d.setMonth(d.getMonth() + 1), h = r.getDateInfo(d) 18246 } 18247 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) 18248 }, 18249 _getEdgesPoints: function(t, e, i) { 18250 var n = [t[0].slice(), t[t.length - 1].slice()], 18251 o = "horizontal" === i ? 0 : 1; 18252 return n[0][o] = n[0][o] - e / 2, n[1][o] = n[1][o] + e / 2, n 18253 }, 18254 _drawSplitline: function(t, e, i) { 18255 var n = new bS({ z2: 20, shape: { points: t }, style: e }); 18256 i.add(n) 18257 }, 18258 _getLinePointsOfOneWeek: function(t, e, i) { 18259 var n = t.coordinateSystem; 18260 e = n.getDateInfo(e); 18261 for (var o = [], a = 0; a < 7; a++) { 18262 var r = n.getNextNDay(e.time, a), 18263 s = n.dataToRect([r.time], !1); 18264 o[2 * r.day] = s.tl, o[2 * r.day + 1] = s["horizontal" === i ? "bl" : "tr"] 18265 } 18266 return o 18267 }, 18268 _formatterLabel: function(t, e) { return "string" == typeof t && t ? Xo(t, e) : "function" == typeof t ? t(e) : e.nameMap }, 18269 _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] } } }, 18270 _renderYearText: function(t, e, i, n) { 18271 var o = t.getModel("yearLabel"); 18272 if (o.get("show")) { 18273 var a = o.get("margin"), 18274 r = o.get("position"); 18275 r || (r = "horizontal" !== i ? "top" : "left"); 18276 var s = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]], 18277 l = (s[0][0] + s[1][0]) / 2, 18278 u = (s[0][1] + s[1][1]) / 2, 18279 h = "horizontal" === i ? 0 : 1, 18280 c = { top: [l, s[h][1]], bottom: [l, s[1 - h][1]], left: [s[1 - h][0], u], right: [s[h][0], u] }, 18281 d = e.start.y; + e.end.y > +e.start.y && (d = d + "-" + e.end.y); 18282 var f = o.get("formatter"), 18283 p = { start: e.start.y, end: e.end.y, nameMap: d }, 18284 g = this._formatterLabel(f, p), 18285 m = new fS({ z2: 30 }); 18286 no(m.style, o, { text: g }), m.attr(this._yearTextPositionControl(m, c[r], i, r, a)), n.add(m) 18287 } 18288 }, 18289 _monthTextPositionControl: function(t, e, i, n, o) { 18290 var a = "left", 18291 r = "top", 18292 s = t[0], 18293 l = t[1]; 18294 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 } 18295 }, 18296 _renderMonthText: function(t, e, i) { 18297 var n = t.getModel("monthLabel"); 18298 if (n.get("show")) { 18299 var o = n.get("nameMap"), 18300 r = n.get("margin"), 18301 s = n.get("position"), 18302 l = n.get("align"), 18303 u = [this._tlpoints, this._blpoints]; 18304 _(o) && (o = SP[o.toUpperCase()] || []); 18305 var h = "start" === s ? 0 : 1, 18306 c = "horizontal" === e ? 0 : 1; 18307 r = "start" === s ? -r : r; 18308 for (var d = "center" === l, f = 0; f < u[h].length - 1; f++) { 18309 var p = u[h][f].slice(), 18310 g = this._firstDayOfMonth[f]; 18311 if (d) { 18312 var m = this._firstDayPoints[f]; 18313 p[c] = (m[c] + u[0][f + 1][c]) / 2 18314 } 18315 var v = n.get("formatter"), 18316 y = o[+g.m - 1], 18317 x = { yyyy: g.y, yy: (g.y + "").slice(2), MM: g.m, M: +g.m, nameMap: y }, 18318 w = this._formatterLabel(v, x), 18319 b = new fS({ z2: 30 }); 18320 a(no(b.style, n, { text: w }), this._monthTextPositionControl(p, d, e, s, r)), i.add(b) 18321 } 18322 } 18323 }, 18324 _weekTextPositionControl: function(t, e, i, n, o) { 18325 var a = "center", 18326 r = "middle", 18327 s = t[0], 18328 l = t[1], 18329 u = "start" === i; 18330 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 } 18331 }, 18332 _renderWeekText: function(t, e, i, n) { 18333 var o = t.getModel("dayLabel"); 18334 if (o.get("show")) { 18335 var r = t.coordinateSystem, 18336 s = o.get("position"), 18337 l = o.get("nameMap"), 18338 u = o.get("margin"), 18339 h = r.getFirstDayOfWeek(); 18340 _(l) && (l = MP[l.toUpperCase()] || []); 18341 var c = r.getNextNDay(e.end.time, 7 - e.lweek).time, 18342 d = [r.getCellWidth(), r.getCellHeight()]; 18343 u = Do(u, d["horizontal" === i ? 0 : 1]), "start" === s && (c = r.getNextNDay(e.start.time, -(7 + e.fweek)).time, u = -u); 18344 for (var f = 0; f < 7; f++) { 18345 var p = r.getNextNDay(c, f), 18346 g = r.dataToRect([p.time], !1).center, 18347 m = f; 18348 m = Math.abs((f + h) % 7); 18349 var v = new fS({ z2: 30 }); 18350 a(no(v.style, o, { text: l[m] }), this._weekTextPositionControl(g, i, s, u, d)), n.add(v) 18351 } 18352 } 18353 } 18354 }), vs({ 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" } } }), ys({ 18355 type: "title", 18356 render: function(t, e, i) { 18357 if (this.group.removeAll(), t.get("show")) { 18358 var n = this.group, 18359 o = t.getModel("textStyle"), 18360 a = t.getModel("subtextStyle"), 18361 r = t.get("textAlign"), 18362 s = t.get("textBaseline"), 18363 l = new fS({ style: no({}, o, { text: t.get("text"), textFill: o.getTextColor() }, { disableBox: !0 }), z2: 10 }),
18364 u = l.getBoundingRect(), 18365 h = t.get("subtext"), 18366 c = new fS({ style: no({}, a, { text: h, textFill: a.getTextColor(), y: u.height + t.get("itemGap"), textVerticalAlign: "top" }, { disableBox: !0 }), z2: 10 }), 18367 d = t.get("link"), 18368 f = t.get("sublink"); 18369 l.silent = !d, c.silent = !f, d && l.on("click", function() { window.open(d, "_" + t.get("target")) }), f && c.on("click", function() { window.open(f, "_" + t.get("subtarget")) }), n.add(l), h && n.add(c); 18370 var p = n.getBoundingRect(), 18371 g = t.getBoxLayoutParams(); 18372 g.width = p.width, g.height = p.height; 18373 var m = Qo(g, { width: i.getWidth(), height: i.getHeight() }, t.get("padding")); 18374 r || ("middle" === (r = t.get("left") || t.get("right")) && (r = "center"), "right" === r ? m.x += m.width : "center" === r && (m.x += m.width / 2)), s || ("center" === (s = t.get("top") || t.get("bottom")) && (s = "middle"), "bottom" === s ? m.y += m.height : "middle" === s && (m.y += m.height / 2), s = s || "top"), n.attr("position", [m.x, m.y]); 18375 var v = { textAlign: r, textVerticalAlign: s }; 18376 l.setStyle(v), c.setStyle(v), p = n.getBoundingRect(); 18377 var y = m.margin, 18378 x = t.getItemStyle(["color", "opacity"]); 18379 x.fill = t.get("backgroundColor"); 18380 var _ = new SS({ shape: { x: p.x - y[3], y: p.y - y[0], width: p.width + y[1] + y[3], height: p.height + y[0] + y[2], r: t.get("borderRadius") }, style: x, silent: !0 }); 18381 Wn(_), n.add(_) 18382 } 18383 } 18384 }), hM.registerSubTypeDefaulter("dataZoom", function() { return "slider" }); 18385 var IP = ["cartesian2d", "polar", "singleAxis"], 18386 TP = function(t, e) { 18387 var i = f(t = t.slice(), Ko), 18388 n = f(e = (e || []).slice(), Ko); 18389 return function(o, a) { 18390 d(t, function(t, r) { 18391 for (var s = { name: t, capital: i[r] }, l = 0; l < e.length; l++) s[e[l]] = t + n[l]; 18392 o.call(a, s) 18393 }) 18394 } 18395 }(["x", "y", "z", "radius", "angle", "single"], ["axisIndex", "axis", "index", "id"]), 18396 DP = d, 18397 AP = Co, 18398 CP = 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 }; 18399 CP.prototype = { 18400 constructor: CP, 18401 hostedBy: function(t) { return this._dataZoomModel === t }, 18402 getDataValueWindow: function() { return this._valueWindow.slice() }, 18403 getDataPercentWindow: function() { return this._percentWindow.slice() }, 18404 getTargetSeriesModels: function() { 18405 var t = [], 18406 e = this.ecModel; 18407 return e.eachSeries(function(i) { 18408 if (Zv(i.get("coordinateSystem"))) { 18409 var n = this._dimName, 18410 o = e.queryComponents({ mainType: n + "Axis", index: i.get(n + "AxisIndex"), id: i.get(n + "AxisId") })[0]; 18411 this._axisIndex === (o && o.componentIndex) && t.push(i) 18412 } 18413 }, this), t 18414 }, 18415 getAxisModel: function() { return this.ecModel.getComponent(this._dimName + "Axis", this._axisIndex) }, 18416 getOtherAxisModel: function() { 18417 var t, e, i = this._dimName, 18418 n = this.ecModel, 18419 o = this.getAxisModel(); 18420 "x" === i || "y" === i ? (e = "gridIndex", t = "x" === i ? "y" : "x") : (e = "polarIndex", t = "angle" === i ? "radius" : "angle"); 18421 var a; 18422 return n.eachComponent(t + "Axis", function(t) { 18423 (t.get(e) || 0) === (o.get(e) || 0) && (a = t) 18424 }), a 18425 }, 18426 getMinMaxSpan: function() { return i(this._minMaxSpan) }, 18427 calculateDataWindow: function(t) { 18428 var e = this._dataExtent, 18429 i = this.getAxisModel().axis.scale, 18430 n = this._dataZoomModel.getRangePropMode(), 18431 o = [0, 100], 18432 a = [t.start, t.end], 18433 r = []; 18434 return DP(["startValue", "endValue"], function(e) { r.push(null != t[e] ? i.parse(t[e]) : null) }), DP([0, 1], function(t) { 18435 var s = r[t], 18436 l = a[t]; 18437 "percent" === n[t] ? (null == l && (l = o[t]), s = i.parse(To(l, o, e, !0))) : l = To(s, e, o, !0), r[t] = s, a[t] = l 18438 }), { valueWindow: AP(r), percentWindow: AP(a) } 18439 }, 18440 reset: function(t) { 18441 if (t === this._dataZoomModel) { 18442 var e = this.getTargetSeriesModels(); 18443 this._dataExtent = Xv(this, this._dimName, e); 18444 var i = this.calculateDataWindow(t.option); 18445 this._valueWindow = i.valueWindow, this._percentWindow = i.percentWindow, qv(this), Yv(this) 18446 } 18447 }, 18448 restore: function(t) { t === this._dataZoomModel && (this._valueWindow = this._percentWindow = null, Yv(this, !0)) }, 18449 filterData: function(t, e) { 18450 function i(t) { return t >= r[0] && t <= r[1] } 18451 if (t === this._dataZoomModel) { 18452 var n = this._dimName, 18453 o = this.getTargetSeriesModels(), 18454 a = t.get("filterMode"), 18455 r = this._valueWindow; 18456 "none" !== a && DP(o, function(t) { 18457 var e = t.getData(), 18458 o = e.mapDimension(n, !0); 18459 "weakFilter" === a ? e.filterSelf(function(t) { 18460 for (var i, n, a, s = 0; s < o.length; s++) { 18461 var l = e.get(o[s], t), 18462 u = !isNaN(l), 18463 h = l < r[0], 18464 c = l > r[1]; 18465 if (u && !h && !c) return !0; 18466 u && (a = !0), h && (i = !0), c && (n = !0) 18467 } 18468 return a && i && n 18469 }) : DP(o, function(n) { 18470 if ("empty" === a) t.setData(e.map(n, function(t) { return i(t) ? t : NaN })); 18471 else { 18472 var o = {}; 18473 o[n] = r, e.selectRange(o) 18474 } 18475 }), DP(o, function(t) { e.setApproximateExtent(r, t) }) 18476 }) 18477 } 18478 } 18479 }; 18480 var LP = d, 18481 kP = TP, 18482 PP = vs({ 18483 type: "dataZoom",
18484 dependencies: ["xAxis", "yAxis", "zAxis", "radiusAxis", "angleAxis", "singleAxis", "series"], 18485 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 }, 18486 init: function(t, e, i) { 18487 this._dataIntervalByAxis = {}, this._dataInfo = {}, this._axisProxies = {}, this.textStyleModel, this._autoThrottle = !0, this._rangePropMode = ["percent", "percent"]; 18488 var n = Kv(t); 18489 this.mergeDefaultAndTheme(t, i), this.doInit(n) 18490 }, 18491 mergeOption: function(t) { 18492 var e = Kv(t); 18493 n(this.option, t, !0), this.doInit(e) 18494 }, 18495 doInit: function(t) { 18496 var e = this.option; 18497 a_.canvasSupported || (e.realtime = !1), this._setDefaultThrottle(t), $v(this, t), LP([ 18498 ["start", "startValue"], 18499 ["end", "endValue"] 18500 ], function(t, i) { "value" === this._rangePropMode[i] && (e[t[0]] = null) }, this), this.textStyleModel = this.getModel("textStyle"), this._resetTarget(), this._giveAxisProxies() 18501 }, 18502 _giveAxisProxies: function() { 18503 var t = this._axisProxies; 18504 this.eachTargetAxis(function(e, i, n, o) { 18505 var a = this.dependentModels[e.axis][i], 18506 r = a.__dzAxisProxy || (a.__dzAxisProxy = new CP(e.name, i, this, o)); 18507 t[e.name + "_" + i] = r 18508 }, this) 18509 }, 18510 _resetTarget: function() { 18511 var t = this.option, 18512 e = this._judgeAutoMode(); 18513 kP(function(e) { 18514 var i = e.axisIndex; 18515 t[i] = Si(t[i]) 18516 }, this), "axisIndex" === e ? this._autoSetAxisIndex() : "orient" === e && this._autoSetOrient() 18517 }, 18518 _judgeAutoMode: function() { 18519 var t = this.option, 18520 e = !1; 18521 kP(function(i) { null != t[i.axisIndex] && (e = !0) }, this); 18522 var i = t.orient; 18523 return null == i && e ? "orient" : e ? void 0 : (null == i && (t.orient = "horizontal"), "axisIndex") 18524 }, 18525 _autoSetAxisIndex: function() { 18526 var t = !0, 18527 e = this.get("orient", !0), 18528 i = this.option, 18529 n = this.dependentModels; 18530 if (t) { 18531 var o = "vertical" === e ? "y" : "x"; 18532 n[o + "Axis"].length ? (i[o + "AxisIndex"] = [0], t = !1) : LP(n.singleAxis, function(n) { t && n.get("orient", !0) === e && (i.singleAxisIndex = [n.componentIndex], t = !1) }) 18533 } 18534 t && kP(function(e) { 18535 if (t) { 18536 var n = [], 18537 o = this.dependentModels[e.axis]; 18538 if (o.length && !n.length) 18539 for (var a = 0, r = o.length; a < r; a++) "category" === o[a].get("type") && n.push(a); 18540 i[e.axisIndex] = n, n.length && (t = !1) 18541 } 18542 }, this), t && this.ecModel.eachSeries(function(t) { 18543 this._isSeriesHasAllAxesTypeOf(t, "value") && kP(function(e) { 18544 var n = i[e.axisIndex], 18545 o = t.get(e.axisIndex), 18546 a = t.get(e.axisId); 18547 l(n, o = t.ecModel.queryComponents({ mainType: e.axis, index: o, id: a })[0].componentIndex) < 0 && n.push(o) 18548 }) 18549 }, this) 18550 }, 18551 _autoSetOrient: function() { 18552 var t; 18553 this.eachTargetAxis(function(e) {!t && (t = e.name) }, this), this.option.orient = "y" === t ? "vertical" : "horizontal" 18554 }, 18555 _isSeriesHasAllAxesTypeOf: function(t, e) { 18556 var i = !0; 18557 return kP(function(n) { 18558 var o = t.get(n.axisIndex), 18559 a = this.dependentModels[n.axis][o]; 18560 a && a.get("type") === e || (i = !1) 18561 }, this), i 18562 }, 18563 _setDefaultThrottle: function(t) { 18564 if (t.hasOwnProperty("throttle") && (this._autoThrottle = !1), this._autoThrottle) { 18565 var e = this.ecModel.option; 18566 this.option.throttle = e.animation && e.animationDurationUpdate > 0 ? 100 : 20 18567 } 18568 }, 18569 getFirstTargetAxisModel: function() { 18570 var t; 18571 return kP(function(e) { 18572 if (null == t) { 18573 var i = this.get(e.axisIndex); 18574 i.length && (t = this.dependentModels[e.axis][i[0]]) 18575 } 18576 }, this), t 18577 }, 18578 eachTargetAxis: function(t, e) { 18579 var i = this.ecModel; 18580 kP(function(n) { LP(this.get(n.axisIndex), function(o) { t.call(e, n, o, this, i) }, this) }, this) 18581 }, 18582 getAxisProxy: function(t, e) { return this._axisProxies[t + "_" + e] }, 18583 getAxisModel: function(t, e) { var i = this.getAxisProxy(t, e); return i && i.getAxisModel() }, 18584 setRawRange: function(t, e) { 18585 var i = this.option; 18586 LP([ 18587 ["start", "startValue"], 18588 ["end", "endValue"] 18589 ], function(e) { null == t[e[0]] && null == t[e[1]] || (i[e[0]] = t[e[0]], i[e[1]] = t[e[1]]) }, this), !e && $v(this, t) 18590 }, 18591 getPercentRange: function() { var t = this.findRepresentativeAxisProxy(); if (t) return t.getDataPercentWindow() }, 18592 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 }, 18593 findRepresentativeAxisProxy: function(t) { 18594 if (t) return t.__dzAxisProxy; 18595 var e = this._axisProxies; 18596 for (var i in e) 18597 if (e.hasOwnProperty(i) && e[i].hostedBy(this)) return e[i]; 18598 for (var i in e) 18599 if (e.hasOwnProperty(i) && !e[i].hostedBy(this)) return e[i] 18600 }, 18601 getRangePropMode: function() { return this._rangePropMode.slice() } 18602 }), 18603 NP = $M.extend({ 18604 type: "dataZoom", 18605 render: function(t, e, i, n) { this.dataZoomModel = t, this.ecModel = e, this.api = i }, 18606 getTargetCoordInfo: function() { 18607 function t(t, e, i, n) { 18608 for (var o, a = 0; a < i.length; a++) 18609 if (i[a].model === t) { o = i[a]; break } 18610 o || i.push(o = { model: t, axisModels: [], coordIndex: n }), o.axisModels.push(e) 18611 } 18612 var e = this.dataZoomModel, 18613 i = this.ecModel, 18614 n = {}; 18615 return e.eachTargetAxis(function(e, o) { 18616 var a = i.getComponent(e.axis, o); 18617 if (a) { 18618 var r = a.getCoordSysModel(); 18619 r && t(r, a, n[r.mainType] || (n[r.mainType] = []), r.componentIndex) 18620 } 18621 }, this), n 18622 } 18623 }), 18624 OP = (PP.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)", dataBackgroun
18624d: { lineStyle: { color: "#2f4554", width: .5, opacity: .3 }, areaStyle: { color: "rgba(47,69,84,0.3)", opacity: .3 } }, borderColor: "#ddd", fillerColor: "rgba(167,183,204,0.4)", handleIcon: "M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z", handleSize: "100%", handleStyle: { color: "#a7b7cc" }, labelPrecision: null, labelFormatter: null, showDetail: !0, showDataShadow: "auto", realtime: !0, zoomLock: !1, textStyle: { color: "#333" } } }), SS), 18625 EP = To, 18626 RP = Co, 18627 zP = m, 18628 BP = d, 18629 VP = "horizontal", 18630 GP = 5, 18631 WP = ["line", "bar", "candlestick", "scatter"], 18632 FP = NP.extend({ 18633 type: "dataZoom.slider", 18634 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 }, 18635 render: function(t, e, i, n) { FP.superApply(this, "render", arguments), wr(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() }, 18636 remove: function() { FP.superApply(this, "remove", arguments), br(this, "_dispatchZoomAction") }, 18637 dispose: function() { FP.superApply(this, "dispose", arguments), br(this, "_dispatchZoomAction") }, 18638 _buildView: function() { 18639 var t = this.group; 18640 t.removeAll(), this._resetLocation(), this._resetInterval(); 18641 var e = this._displayables.barGroup = new sw; 18642 this._renderBackground(), this._renderHandle(), this._renderDataShadow(), t.add(e), this._positionGroup() 18643 }, 18644 _resetLocation: function() { 18645 var t = this.dataZoomModel, 18646 e = this.api, 18647 i = this._findCoordRect(), 18648 n = { width: e.getWidth(), height: e.getHeight() }, 18649 o = this._orient === VP ? { 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 }, 18650 a = na(t.option); 18651 d(["right", "top", "width", "height"], function(t) { "ph" === a[t] && (a[t] = o[t]) }); 18652 var r = Qo(a, n, t.padding); 18653 this._location = { x: r.x, y: r.y }, this._size = [r.width, r.height], "vertical" === this._orient && this._size.reverse() 18654 }, 18655 _positionGroup: function() { 18656 var t = this.group, 18657 e = this._location, 18658 i = this._orient, 18659 n = this.dataZoomModel.getFirstTargetAxisModel(), 18660 o = n && n.get("inverse"), 18661 a = this._displayables.barGroup, 18662 r = (this._dataShadowInfo || {}).otherAxisInverse; 18663 a.attr(i !== VP || o ? i === VP && 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] }); 18664 var s = t.getBoundingRect([a]); 18665 t.attr("position", [e.x - s.x, e.y - s.y]) 18666 }, 18667 _getViewExtent: function() { return [0, this._size[0]] }, 18668 _renderBackground: function() { 18669 var t = this.dataZoomModel, 18670 e = this._size, 18671 i = this._displayables.barGroup; 18672 i.add(new OP({ silent: !0, shape: { x: 0, y: 0, width: e[0], height: e[1] }, style: { fill: t.get("backgroundColor") }, z2: -40 })), i.add(new OP({ shape: { x: 0, y: 0, width: e[0], height: e[1] }, style: { fill: "transparent" }, z2: 0, onclick: m(this._onClickPanelClick, this) })) 18673 }, 18674 _renderDataShadow: function() { 18675 var t = this._dataShadowInfo = this._prepareDataShadowInfo(); 18676 if (t) { 18677 var e = this._size, 18678 i = t.series, 18679 n = i.getRawData(), 18680 o = i.getShadowDim ? i.getShadowDim() : t.otherDim; 18681 if (null != o) { 18682 var a = n.getDataExtent(o), 18683 s = .3 * (a[1] - a[0]); 18684 a = [a[0] - s, a[1] + s]; 18685 var l, u = [0, e[1]], 18686 h = [0, e[0]], 18687 c = [ 18688 [e[0], 0], 18689 [0, 0] 18690 ], 18691 d = [], 18692 f = h[1] / (n.count() - 1), 18693 p = 0, 18694 g = Math.round(n.count() / e[0]); 18695 n.each([o], function(t, e) { 18696 if (g > 0 && e % g) p += f; 18697 else { 18698 var i = null == t || isNaN(t) || "" === t, 18699 n = i ? 0 : EP(t, a, u, !0); 18700 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 18701 } 18702 }); 18703 var m = this.dataZoomModel; 18704 this._displayables.barGroup.add(new wS({ shape: { points: c }
18704, style: r({ fill: m.get("dataBackgroundColor") }, m.getModel("dataBackground.areaStyle").getAreaStyle()), silent: !0, z2: -20 })), this._displayables.barGroup.add(new bS({ shape: { points: d }, style: m.getModel("dataBackground.lineStyle").getLineStyle(), silent: !0, z2: -19 })) 18705 } 18706 } 18707 }, 18708 _prepareDataShadowInfo: function() { 18709 var t = this.dataZoomModel, 18710 e = t.get("showDataShadow"); 18711 if (!1 !== e) { 18712 var i, n = this.ecModel; 18713 return t.eachTargetAxis(function(o, a) { 18714 d(t.getAxisProxy(o.name, a).getTargetSeriesModels(), function(t) { 18715 if (!(i || !0 !== e && l(WP, t.get("type")) < 0)) { 18716 var r, s = n.getComponent(o.axis, a).axis, 18717 u = Jv(o.name), 18718 h = t.coordinateSystem; 18719 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 } 18720 } 18721 }, this) 18722 }, this), i 18723 } 18724 }, 18725 _renderHandle: function() { 18726 var t = this._displayables, 18727 e = t.handles = [], 18728 i = t.handleLabels = [], 18729 n = this._displayables.barGroup, 18730 o = this._size, 18731 a = this.dataZoomModel; 18732 n.add(t.filler = new OP({ draggable: !0, cursor: Qv(this._orient), drift: zP(this._onDragMove, this, "all"), onmousemove: function(t) { zw(t.event) }, ondragstart: zP(this._showDataInfo, this, !0), ondragend: zP(this._onDragEnd, this), onmouseover: zP(this._showDataInfo, this, !0), onmouseout: zP(this._showDataInfo, this, !1), style: { fill: a.get("fillerColor"), textPosition: "inside" } })), n.add(new OP(Wn({ 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)" } }))), BP([0, 1], function(t) { 18733 var o = _o(a.get("handleIcon"), { cursor: Qv(this._orient), draggable: !0, drift: zP(this._onDragMove, this, t), onmousemove: function(t) { zw(t.event) }, ondragend: zP(this._onDragEnd, this), onmouseover: zP(this._showDataInfo, this, !0), onmouseout: zP(this._showDataInfo, this, !1) }, { x: -1, y: 0, width: 2, height: 2 }), 18734 r = o.getBoundingRect(); 18735 this._handleHeight = Do(a.get("handleSize"), this._size[1]), this._handleWidth = r.width / r.height * this._handleHeight, o.setStyle(a.getModel("handleStyle").getItemStyle()); 18736 var s = a.get("handleColor"); 18737 null != s && (o.style.fill = s), n.add(e[t] = o); 18738 var l = a.textStyleModel; 18739 this.group.add(i[t] = new fS({ silent: !0, invisible: !0, style: { x: 0, y: 0, text: "", textVerticalAlign: "middle", textAlign: "center", textFill: l.getTextColor(), textFont: l.getFont() }, z2: 10 })) 18740 }, this) 18741 }, 18742 _resetInterval: function() { 18743 var t = this._range = this.dataZoomModel.getPercentRange(), 18744 e = this._getViewExtent(); 18745 this._handleEnds = [EP(t[0], [0, 100], e, !0), EP(t[1], [0, 100], e, !0)] 18746 }, 18747 _updateInterval: function(t, e) { 18748 var i = this.dataZoomModel, 18749 n = this._handleEnds, 18750 o = this._getViewExtent(), 18751 a = i.findRepresentativeAxisProxy().getMinMaxSpan(), 18752 r = [0, 100]; 18753 PC(e, n, o, i.get("zoomLock") ? "all" : t, null != a.minSpan ? EP(a.minSpan, r, o, !0) : null, null != a.maxSpan ? EP(a.maxSpan, r, o, !0) : null); 18754 var s = this._range, 18755 l = this._range = RP([EP(n[0], o, r, !0), EP(n[1], o, r, !0)]); 18756 return !s || s[0] !== l[0] || s[1] !== l[1] 18757 }, 18758 _updateView: function(t) { 18759 var e = this._displayables, 18760 i = this._handleEnds, 18761 n = RP(i.slice()), 18762 o = this._size; 18763 BP([0, 1], function(t) { 18764 var n = e.handles[t], 18765 a = this._handleHeight; 18766 n.attr({ scale: [a / 2, a / 2], position: [i[t], o[1] / 2 - a / 2] }) 18767 }, this), e.filler.setShape({ x: n[0], y: 0, width: n[1] - n[0], height: o[1] }), this._updateDataInfo(t) 18768 }, 18769 _updateDataInfo: function(t) { 18770 function e(t) { 18771 var e = go(n.handles[t].parent, this.group), 18772 i = vo(0 === t ? "right" : "left", e), 18773 s = this._handleWidth / 2 + GP, 18774 l = mo([c[t] + (0 === t ? -s : s), this._size[1] / 2], e); 18775 o[t].setStyle({ x: l[0], y: l[1], textVerticalAlign: a === VP ? "middle" : i, textAlign: a === VP ? i : "center", text: r[t] }) 18776 } 18777 var i = this.dataZoomModel, 18778 n = this._displayables, 18779 o = n.handleLabels, 18780 a = this._orient, 18781 r = ["", ""]; 18782 if (i.get("showDetail")) { 18783 var s = i.findRepresentativeAxisProxy(); 18784 if (s) { 18785 var l = s.getAxisModel().axis, 18786 u = this._range, 18787 h = t ? s.calculateDataWindow({ start: u[0], end: u[1] }).valueWindow : s.getDataValueWindow(); 18788 r = [this._formatLabel(h[0], l), this._formatLabel(h[1], l)] 18789 } 18790 } 18791 var c = RP(this._handleEnds.slice()); 18792 e.call(this, 0), e.call(this, 1) 18793 }, 18794 _formatLabel: function(t, e) { 18795 var i = this.dataZoomModel, 18796 n = i.get("labelFormatter"), 18797 o = i.get("labelPrecision"); 18798 null != o && "auto" !== o || (o = e.getPixelPrecision()); 18799 var a = null == t || isNaN(t) ? "" : "category" === e.type || "time" === e.type ? e.scale.getLabel(Math.round(t)) : t.toFixed(Math.min(o, 20)); 18800 return x(n) ? n(t, a) : _(n) ? n.replace("{value}", a) : a 18801 }, 18802 _showDataInfo: function(t) { 18803 t = this._dragging || t; 18804 var e = this._displayables.handleLabels; 18805 e[0].attr("invisible", !t), e[1].attr("invisible", !t) 18806 }, 18807 _onDragMove: function(t, e, i) { 18808 this._dragging = !0; 18809 var n = mo([e, i], this._displayables.barGroup.getL
18809ocalTransform(), !0), 18810 o = this._updateInterval(t, n[0]), 18811 a = this.dataZoomModel.get("realtime"); 18812 this._updateView(!a), o && a && this._dispatchZoomAction() 18813 }, 18814 _onDragEnd: function() { this._dragging = !1, this._showDataInfo(!1), !this.dataZoomModel.get("realtime") && this._dispatchZoomAction() }, 18815 _onClickPanelClick: function(t) { 18816 var e = this._size, 18817 i = this._displayables.barGroup.transformCoordToLocal(t.offsetX, t.offsetY); 18818 if (!(i[0] < 0 || i[0] > e[0] || i[1] < 0 || i[1] > e[1])) { 18819 var n = this._handleEnds, 18820 o = (n[0] + n[1]) / 2, 18821 a = this._updateInterval("all", i[0] - o); 18822 this._updateView(), a && this._dispatchZoomAction() 18823 } 18824 }, 18825 _dispatchZoomAction: function() { 18826 var t = this._range; 18827 this.api.dispatchAction({ type: "dataZoom", from: this.uid, dataZoomId: this.dataZoomModel.id, start: t[0], end: t[1] }) 18828 }, 18829 _findCoordRect: function() { 18830 var t; 18831 if (BP(this.getTargetCoordInfo(), function(e) { 18832 if (!t && e.length) { 18833 var i = e[0].model.coordinateSystem; 18834 t = i.getRect && i.getRect() 18835 } 18836 }), !t) { 18837 var e = this.api.getWidth(), 18838 i = this.api.getHeight(); 18839 t = { x: .2 * e, y: .2 * i, width: .6 * e, height: .6 * i } 18840 } 18841 return t 18842 } 18843 }); 18844 PP.extend({ type: "dataZoom.inside", defaultOption: { disabled: !1, zoomLock: !1, zoomOnMouseWheel: !0, moveOnMouseMove: !0, preventDefaultMouseMove: !0 } }); 18845 var HP = v, 18846 ZP = "\0_ec_dataZoom_roams", 18847 UP = m, 18848 XP = NP.extend({ 18849 type: "dataZoom.inside", 18850 init: function(t, e) { this._range }, 18851 render: function(t, e, i, n) { 18852 XP.superApply(this, "render", arguments), this._range = t.getPercentRange(), d(this.getTargetCoordInfo(), function(e, n) { 18853 var o = f(e, function(t) { return iy(t.model) }); 18854 d(e, function(e) { 18855 var a = e.model, 18856 r = t.option; 18857 ty(i, { coordId: iy(a), allCoordIds: o, containsPoint: function(t, e, i) { return a.coordinateSystem.containPoint([e, i]) }, dataZoomId: t.id, throttleRate: t.get("throttle", !0), panGetRange: UP(this._onPan, this, e, n), zoomGetRange: UP(this._onZoom, this, e, n), zoomLock: r.zoomLock, disabled: r.disabled, roamControllerOpt: { zoomOnMouseWheel: r.zoomOnMouseWheel, moveOnMouseMove: r.moveOnMouseMove, preventDefaultMouseMove: r.preventDefaultMouseMove } }) 18858 }, this) 18859 }, this) 18860 }, 18861 dispose: function() { ey(this.api, this.dataZoomModel.id), XP.superApply(this, "dispose", arguments), this._range = null }, 18862 _onPan: function(t, e, i, n, o, a, r, s, l) { 18863 var u = this._range, 18864 h = u.slice(), 18865 c = t.axisModels[0]; 18866 if (c) { 18867 var d = jP[e]([a, r], [s, l], c, i, t), 18868 f = d.signal * (h[1] - h[0]) * d.pixel / d.pixelLength; 18869 return PC(f, h, [0, 100], "all"), this._range = h, u[0] !== h[0] || u[1] !== h[1] ? h : void 0 18870 } 18871 }, 18872 _onZoom: function(t, e, i, n, o, a) { 18873 var r = this._range, 18874 s = r.slice(), 18875 l = t.axisModels[0]; 18876 if (l) { 18877 var u = jP[e](null, [o, a], l, i, t), 18878 h = (u.signal > 0 ? u.pixelStart + u.pixelLength - u.pixel : u.pixel - u.pixelStart) / u.pixelLength * (s[1] - s[0]) + s[0]; 18879 n = Math.max(1 / n, 0), s[0] = (s[0] - h) * n + h, s[1] = (s[1] - h) * n + h; 18880 var c = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();
18881 return PC(0, s, [0, 100], 0, c.minSpan, c.maxSpan), this._range = s, r[0] !== s[0] || r[1] !== s[1] ? s : void 0 18882 } 18883 } 18884 }), 18885 jP = { 18886 grid: function(t, e, i, n, o) { 18887 var a = i.axis, 18888 r = {}, 18889 s = o.model.coordinateSystem.getRect(); 18890 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 18891 }, 18892 polar: function(t, e, i, n, o) { 18893 var a = i.axis, 18894 r = {}, 18895 s = o.model.coordinateSystem, 18896 l = s.getRadiusAxis().getExtent(), 18897 u = s.getAngleAxis().getExtent(); 18898 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 18899 }, 18900 singleAxis: function(t, e, i, n, o) { 18901 var a = i.axis, 18902 r = o.model.coordinateSystem.getRect(), 18903 s = {}; 18904 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 18905 } 18906 }; 18907 hs({ 18908 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 }, 18909 modifyOutputEnd: !0, 18910 overallReset: function(t, e) { 18911 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) { 18912 var e = t.findRepresentativeAxisProxy(), 18913 i = e.getDataPercentWindow(), 18914 n = e.getDataValueWindow(); 18915 t.setRawRange({ start: i[0], end: i[1], startValue: n[0], endValue: n[1] }, !0) 18916 }) 18917 } 18918 }), cs("dataZoom", function(t, e) { 18919 var i = Uv(m(e.eachComponent, e, "dataZoom"), TP, function(t, e) { return t.get(e.axisIndex) }), 18920 n = []; 18921 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 }) }) 18922 }); 18923 var YP = d, 18924 qP = function(t) { 18925 var e = t && t.visualMap; 18926 y(e) || (e = e ? [e] : []), YP(e, function(t) { 18927 if (t) { 18928 cy(t, "splitList") && !cy(t, "pieces") && (t.pieces = t.splitList, delete t.splitList); 18929 var e = t.pieces; 18930 e && y(e) && YP(e, function(t) { w(t) && (cy(t, "start") && !cy(t, "min") && (t.min = t.start), cy(t, "end") && !cy(t, "max") && (t.max = t.end)) }) 18931 } 18932 }) 18933 }; 18934 hM.registerSubTypeDefaulter("visualMap", function(t) { return t.categories || (t.pieces ? t.pieces.length > 0 : t.splitNumber > 0) && !t.calculable ? "piecewise" : "continuous" }); 18935 var KP = LI.VISUAL.COMPONENT; 18936 ps(KP, { 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(gv(e.stateList, e.targetVisuals, m(e.getValueState, e), e.getDataDimension(t.getData()))) }), i } }), ps(KP, { 18937 createOnAllSeries: !0, 18938 reset: function(t, e) { 18939 var i = t.getData(), 18940 n = []; 18941 e.eachComponent("visualMap", function(e) { 18942 if (e.isTargetSeries(t)) { 18943 var o = e.getVisualMeta(m(dy, null, t, e)) || { stops: [], outerColors: [] }, 18944 a = e.getDataDimension(i), 18945 r = i.getDimensionInfo(a); 18946 null != r && (o.dimension = r.index, n.push(o)) 18947 } 18948 }), t.getData().setVisual("visualMeta", n) 18949 } 18950 }); 18951 var $P = { get: function(t, e, n) { var o = i((JP[t] || {})[e]); return n && y(o) ? o[o.length - 1] : o } }, 18952 JP = { color: { active: ["#006edd", "#e0ffff"], inactive: ["rgba(0,0,0,0)"] }, colorHue: { active: [0, 360], inactive: [0, 0] }, colorSaturation: { active: [.3, 1], inactive: [0, 0] }, colorLightness: { active: [.9, .5], inactive: [0, 0] }, colorAlpha: { active: [.3, 1], inactive: [0, 0] }, opacity: { active: [.3, 1], inactive: [0, 0] }, symbol: { active: ["circle", "roundRect", "diamond"], inactive: ["none"] }, symbolSize: { active: [10, 50], inactive: [0, 0] } }, 18953 QP = ZA.mapVisual, 18954 tN = ZA.eachVisual, 18955 eN = y, 18956 iN = d, 18957 nN = Co, 18958 oN = To, 18959 aN = B, 18960 rN = vs({ 18961 type: "visualMap", 18962 dependencies: ["series"], 18963 stateList: ["inRange", "outOfRange"], 18964 replacableOptionKeys: ["inRange", "outOfRange", "target", "controller", "color"], 18965 dataBound: [-1 / 0, 1 / 0], 18966 layoutMode: { type: "box", ignoreSize: !0 },
18967 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" } }, 18968 init: function(t, e, i) { this._dataExtent, this.targetVisuals = {}, this.controllerVisuals = {}, this.textStyleModel, this.itemSize, this.mergeDefaultAndTheme(t, i) }, 18969 optionUpdated: function(t, e) { 18970 var i = this.option; 18971 a_.canvasSupported || (i.realtime = !1), !e && fv(i, t, this.replacableOptionKeys), this.textStyleModel = this.getModel("textStyle"), this.resetItemSize(), this.completeVisualOption() 18972 }, 18973 resetVisual: function(t) { 18974 var e = this.stateList; 18975 t = m(t, this), this.controllerVisuals = dv(this.option.controller, e, t), this.targetVisuals = dv(this.option.target, e, t) 18976 }, 18977 getTargetSeriesIndices: function() { 18978 var t = this.option.seriesIndex, 18979 e = []; 18980 return null == t || "all" === t ? this.ecModel.eachSeries(function(t, i) { e.push(i) }) : e = Si(t), e 18981 }, 18982 eachTargetSeries: function(t, e) { d(this.getTargetSeriesIndices(), function(i) { t.call(e, this.ecModel.getSeriesByIndex(i)) }, this) }, 18983 isTargetSeries: function(t) { var e = !1; return this.eachTargetSeries(function(i) { i === t && (e = !0) }), e }, 18984 formatValueText: function(t, e, i) { 18985 function n(t) { return t === l[0] ? "min" : t === l[1] ? "max" : (+t).toFixed(Math.min(s, 20)) } 18986 var o, a, r = this.option, 18987 s = r.precision, 18988 l = this.dataBound, 18989 u = r.formatter; 18990 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 18991 }, 18992 resetExtent: function() { 18993 var t = this.option, 18994 e = nN([t.min, t.max]); 18995 this._dataExtent = e 18996 }, 18997 getDataDimension: function(t) { 18998 var e = this.option.dimension, 18999 i = t.dimensions; 19000 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 } } 19001 }, 19002 getExtent: function() { return this._dataExtent.slice() }, 19003 completeVisualOption: function() { 19004 function t(t) { 19005 eN(o.color) && !t.inRange && (t.inRange = { color: o.color.slice().reverse() }), t.inRange = t.inRange || { color: e.get("gradientColor") }, iN(this.stateList, function(e) { 19006 var i = t[e]; 19007 if (_(i)) { 19008 var n = $P.get(i, "active", l); 19009 n ? (t[e] = {}, t[e][i] = n) : delete t[e] 19010 } 19011 }, this) 19012 } 19013 var e = this.ecModel, 19014 o = this.option, 19015 a = { inRange: o.inRange, outOfRange: o.outOfRange }, 19016 r = o.target || (o.target = {}), 19017 s = o.controller || (o.controller = {}); 19018 n(r, a), n(s, a); 19019 var l = this.isCategory(); 19020 t.call(this, r), t.call(this, s), 19021 function(t, e, i) { 19022 var n = t[e], 19023 o = t[i]; 19024 n && !o && (o = t[i] = {}, iN(n, function(t, e) { 19025 if (ZA.isValidType(e)) { 19026 var i = $P.get(e, "inactive", l); 19027 null != i && (o[e] = i, "color" !== e || o.hasOwnProperty("opacity") || o.hasOwnProperty("colorAlpha") || (o.opacity = [0, 0])) 19028 } 19029 })) 19030 }.call(this, r, "inRange", "outOfRange"), 19031 function(t) { 19032 var e = (t.inRange || {}).symbol || (t.outOfRange || {}).symbol, 19033 n = (t.inRange || {}).symbolSize || (t.outOfRange || {}).symbolSize, 19034 o = this.get("inactiveColor"); 19035 iN(this.stateList, function(a) { 19036 var r = this.itemSize, 19037 s = t[a]; 19038 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 = QP(s.symbol, function(t) { return "none" === t || "square" === t ? "roundRect" : t }); 19039 var u = s.symbolSize; 19040 if (null != u) { 19041 var h = -1 / 0; 19042 tN(u, function(t) { t > h && (h = t) }), s.symbolSize = QP(u, function(t) { return oN(t, [0, h], [0, r[0]], !0) }) 19043 } 19044 }, this) 19045 }.call(this, s) 19046 }, 19047 resetItemSize: function() { this.itemSize = [parseFloat(this.get("itemWidth")), parseFloat(this.get("itemHeight"))] }, 19048 isCategory: function() { return !!this.option.categories }, 19049 setSelected: aN, 19050 getValueState: aN, 19051 getVisualMeta: aN 19052 }), 19053 sN = [20, 140], 19054 lN = rN.extend({ 19055 type: "visualMap.continuous", 19056 defaultOption: { align: "auto", calculable: !1, range: null, realtime: !0, itemHeight: null, itemWidth: null, hoverLink: !0, hoverLinkDataSize: null, hoverLinkOnHandle: null }, 19057 optionUpdated: function(t, e) { lN.superApply(this, "optionUpdated", arguments), this.resetExtent(), this.resetVisual(function(t) { t.mappingMethod = "linear", t.dataExtent = this.getExtent() }), this._resetRange() }, 19058 resetItemSize: function() { lN.superApply(this, "resetItemSize", arguments); var t = this.itemSize; "horizontal" === this._orient && t.reverse(), (null == t[0] || isNaN(t[0])) && (t[0] = sN[0]), (null == t[1] || isNaN(t[1])) && (t[1] = sN[1]) }, 19059 _resetRange: function() { 19060 var t = this.getExtent(), 19061 e = this.option.range; 19062 !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])) 19063 }, 19064 completeVisualOption: function() { 19065 rN.prototype.completeVisualOption.apply(this, arguments), d(this.stateList, function(t) { 19066 var e = this.option.controller[t].symbolSize; 19067 e && e[0] !== e[1] && (e[0] = 0) 19068 }, this) 19069 }, 19070 setSelected: function(t) { this.option.range = t.slice(), this._resetRange() }, 19071 getSelected: function() { 19072 var t = this.getExtent(), 19073 e = Co((this.get("range") || []).slice()); 19074 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 19075 }, 19076 getValueState: function(t) { 19077 var e = this.option.range, 19078 i = this.getExtent(); 19079 return (e[0] <= i[0] || e[0] <= t) && (e[1] >= i[1] || t <= e[1]) ? "inRange" : "outOfRange" 19080 }, 19081 findTargetDataIndices: function(t) { 19082 var e = []; 19083 return this.eachTargetSeries(function(i) { 19084 var n = [], 19085 o = i.getData(); 19086 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 }) 19087 }, this), e 19088 }, 19089 getVisualMeta: function(t) { 19090 function e(e, i) { o.push({ value: e, color: t(e, i) }) } 19091 for (var i = fy(0, 0, this.getExtent()), n = fy(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"); 19092 for (u = 1; a < s; a++, u = 0) u && o.length && e(n[a], "outOfRange"), e(n[a], "inRange"); 19093 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")); 19094 var h = o.length; 19095 return { stops: o, outerColors: [h ? o[0].color : "transparent", h ? o[h - 1].color : "transparent"] } 19096 } 19097 }), 19098 uN = ys({ 19099 type: "visualMap", 19100 autoPositionValues: { left: 1, right: 1, top: 1, bottom: 1 }, 19101 init: function(t, e) { this.ecModel = t, this.api = e, this.visualMapModel }, 19102 render: function(t, e, i, n) { this.visualMapModel = t, !1 !== t.get("show") ? this.doRender.apply(this, arguments) : this.group.removeAll() },
19103 renderBackground: function(t) { 19104 var e = this.visualMapModel, 19105 i = KS(e.get("padding") || 0), 19106 n = t.getBoundingRect(); 19107 t.add(new SS({ 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") } })) 19108 }, 19109 getControllerVisual: function(t, e, i) { 19110 function n(t) { return s[t] } 19111 19112 function o(t, e) { s[t] = e } 19113 var a = (i = i || {}).forceState, 19114 r = this.visualMapModel, 19115 s = {}; 19116 if ("symbol" === e && (s.symbol = r.get("itemSymbol")), "color" === e) { 19117 var l = r.get("contentColor"); 19118 s.color = l 19119 } 19120 var u = r.controllerVisuals[a || r.getValueState(t)]; 19121 return d(ZA.prepareVisualTypes(u), function(a) { 19122 var r = u[a]; 19123 i.convertOpacityToAlpha && "opacity" === a && (a = "colorAlpha", r = u.__alphaForOpacity), ZA.dependsOn(a, e) && r && r.applyVisual(t, n, o) 19124 }), s[e] 19125 }, 19126 positionGroup: function(t) { 19127 var e = this.visualMapModel, 19128 i = this.api; 19129 ta(t, e.getBoxLayoutParams(), { width: i.getWidth(), height: i.getHeight() }) 19130 }, 19131 doRender: B 19132 }), 19133 hN = To, 19134 cN = d, 19135 dN = Math.min, 19136 fN = Math.max, 19137 pN = 12, 19138 gN = 6, 19139 mN = uN.extend({ 19140 type: "visualMap.continuous", 19141 init: function() { mN.superApply(this, "init", arguments), this._shapes = {}, this._dataInterval = [], this._handleEnds = [], this._orient, this._useHandle, this._hoverLinkDataIndices = [], this._dragging, this._hovering }, 19142 doRender: function(t, e, i, n) { n && "selectDataRange" === n.type && n.from === this.uid || this._buildView() }, 19143 _buildView: function() { 19144 this.group.removeAll(); 19145 var t = this.visualMapModel, 19146 e = this.group; 19147 this._orient = t.get("orient"), this._useHandle = t.get("calculable"), this._resetInterval(), this._renderBar(e); 19148 var i = t.get("text"); 19149 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) 19150 }, 19151 _renderEndsText: function(t, e, i) { 19152 if (e) { 19153 var n = e[1 - i]; 19154 n = null != n ? n + "" : ""; 19155 var o = this.visualMapModel, 19156 a = o.get("textGap"), 19157 r = o.itemSize, 19158 s = this._shapes.barGroup, 19159 l = this._applyTransform([r[0] / 2, 0 === i ? -a : r[1] + a], s), 19160 u = this._applyTransform(0 === i ? "bottom" : "top", s), 19161 h = this._orient, 19162 c = this.visualMapModel.textStyleModel; 19163 this.group.add(new fS({ 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() } })) 19164 } 19165 }, 19166 _renderBar: function(t) { 19167 var e = this.visualMapModel, 19168 i = this._shapes, 19169 n = e.itemSize, 19170 o = this._orient, 19171 a = this._useHandle, 19172 r = py(e, this.api, n), 19173 s = i.barGroup = this._createBarGroup(r); 19174 s.add(i.outOfRange = my()), s.add(i.inRange = my(null, a ? wy(this._orient) : null, m(this._dragHandle, this, "all", !1), m(this._dragHandle, this, "all", !0)));
19175 var l = e.textStyleModel.getTextRect("å½"), 19176 u = fN(l.width, l.height); 19177 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) 19178 }, 19179 _createHandle: function(t, e, i, n, o) { 19180 var a = m(this._dragHandle, this, e, !1), 19181 r = m(this._dragHandle, this, e, !0), 19182 s = my(vy(e, n), wy(this._orient), a, r); 19183 s.position[0] = i[0], t.add(s); 19184 var l = this.visualMapModel.textStyleModel, 19185 u = new fS({ draggable: !0, drift: a, onmousemove: function(t) { zw(t.event) }, ondragend: r, style: { x: 0, y: 0, text: "", textFont: l.getFont(), textFill: l.getTextColor() } }); 19186 this.group.add(u); 19187 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], 19188 c = this._shapes; 19189 c.handleThumbs[e] = s, c.handleLabelPoints[e] = h, c.handleLabels[e] = u 19190 }, 19191 _createIndicator: function(t, e, i, n) { 19192 var o = my([ 19193 [0, 0] 19194 ], "move"); 19195 o.position[0] = e[0], o.attr({ invisible: !0, silent: !0 }), t.add(o); 19196 var a = this.visualMapModel.textStyleModel, 19197 r = new fS({ silent: !0, invisible: !0, style: { x: 0, y: 0, text: "", textFont: a.getFont(), textFill: a.getTextColor() } }); 19198 this.group.add(r); 19199 var s = ["horizontal" === n ? i / 2 : gN + 3, 0], 19200 l = this._shapes; 19201 l.indicator = o, l.indicatorLabel = r, l.indicatorLabelPoint = s 19202 }, 19203 _dragHandle: function(t, e, i, n) { 19204 if (this._useHandle) { 19205 if (this._dragging = !e, !e) { 19206 var o = this._applyTransform([i, n], this._shapes.barGroup, !0); 19207 this._updateInterval(t, o[1]), this._updateView() 19208 } 19209 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() : _y(this.visualMapModel) && this._doHoverLinkToSeries(this._handleEnds[t], !1) 19210 } 19211 }, 19212 _resetInterval: function() { 19213 var t = this.visualMapModel, 19214 e = this._dataInterval = t.getSelected(), 19215 i = t.getExtent(), 19216 n = [0, t.itemSize[1]]; 19217 this._handleEnds = [hN(e[0], i, n, !0), hN(e[1], i, n, !0)] 19218 }, 19219 _updateInterval: function(t, e) { 19220 e = e || 0; 19221 var i = this.visualMapModel, 19222 n = this._handleEnds, 19223 o = [0, i.itemSize[1]]; 19224 PC(e, n, o, t, 0); 19225 var a = i.getExtent(); 19226 this._dataInterval = [hN(n[0], o, a, !0), hN(n[1], o, a, !0)] 19227 }, 19228 _updateView: function(t) { 19229 var e = this.visualMapModel, 19230 i = e.getExtent(), 19231 n = this._shapes, 19232 o = [0, e.itemSize[1]], 19233 a = t ? o : this._handleEnds, 19234 r = this._createBarVisual(this._dataInterval, i, a, "inRange"), 19235 s = this._createBarVisual(i, i, o, "outOfRange"); 19236 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) 19237 }, 19238 _createBarVisual: function(t, e, i, n) { 19239 var o = { forceState: n, convertOpacityToAlpha: !0 }, 19240 a = this._makeColorGradient(t, o), 19241 r = [this.getControllerVisual(t[0], "symbolSize", o), this.getControllerVisual(t[1], "symbolSize", o)], 19242 s = this._createBarPoints(i, r); 19243 return { barColor: new LS(0, 0, 0, 1, a), barPoints: s, handlesColor: [a[0].color, a[a.length - 1].color] } 19244 }, 19245 _makeColorGradient: function(t, e) { 19246 var i = [], 19247 n = (t[1] - t[0]) / 100; 19248 i.push({ color: this.getControllerVisual(t[0], "color", e), offset: 0 }); 19249 for (var o = 1; o < 100; o++) { 19250 var a = t[0] + n * o; 19251 if (a > t[1]) break; 19252 i.push({ color: this.getControllerVisual(a, "color", e), offset: o / 100 }) 19253 } 19254 return i.push({ color: this.getControllerVisual(t[1], "color", e), offset: 1 }), i 19255 }, 19256 _createBarPoints: function(t, e) { 19257 var i = this.visualMapModel.itemSize; 19258 return [ 19259 [i[0] - e[0], t[0]], 19260 [i[0], t[0]], 19261 [i[0], t[1]], 19262 [i[0] - e[1], t[1]] 19263 ] 19264 }, 19265 _createBarGroup: function(t) { 19266 var e = this._orient, 19267 i = this.visualMapModel.get("inverse"); 19268 return new sw("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 }) 19269 }, 19270 _updateHandle: function(t, e) { 19271 if (this._useHandle) { 19272 var i = this._shapes, 19273 n = this.visualMapModel, 19274 o = i.handleThumbs, 19275 a = i.handleLabels; 19276 cN([0, 1], function(r) { 19277 var s = o[r]; 19278 s.setStyle("fill", e.handlesColor[r]), s.position[1] = t[r]; 19279 var l = mo(i.handleLabelPoints[r], go(s, this.group)); 19280 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) }) 19281 }, this) 19282 } 19283 }, 19284 _showIndicator: function(t, e, i, n) { 19285 var o = this.visualMapModel, 19286 a = o.getExtent(), 19287 r = o.itemSize, 19288 s = [0, r[1]], 19289 l = hN(t, a, s, !0), 19290 u = this._shapes, 19291 h = u.indicator; 19292 if (h) { 19293 h.position[1] = l, h.attr("invisible", !1), h.setShape("points", yy(!!i, n, l, r[1])); 19294 var c = { convertOpacityToAlpha: !0 }, 19295 d = this.getControllerVisual(t, "color", c); 19296 h.setStyle("fill", d); 19297 var f = mo(u.indicatorLabelPoint, go(h, this.group)), 19298 p = u.indicatorLabel; 19299 p.attr("invisible", !1); 19300 var g = this._applyTransform("left", u.barGroup), 19301 m = this._orient; 19302 p.setStyle({ text: (i || "") + o.formatValueText(e), textVerticalAlign: "horizontal" === m ? g : "middle", textAlign: "horizontal" === m ? "center" : g, x: f[0], y: f[1] }) 19303 } 19304 }, 19305 _enableHoverLinkToSeries: function() { 19306 var t = this; 19307 this._shapes.barGroup.on("mousemove", function(e) { 19308 if (t._hovering = !0, !t._dragging) { 19309 var i = t.visualMapModel.itemSize, 19310 n = t._applyTransform([e.offsetX, e.offsetY], t._shapes.barGroup, !0, !0); 19311 n[1] = dN(fN(0, n[1]), i[1]), t._doHoverLinkToSeries(n[1], 0 <= n[0] && n[0] <=
19311i[0]) 19312 } 19313 }).on("mouseout", function() { t._hovering = !1, !t._dragging && t._clearHoverLinkToSeries() }) 19314 }, 19315 _enableHoverLinkFromSeries: function() { 19316 var t = this.api.getZr(); 19317 this.visualMapModel.option.hoverLink ? (t.on("mouseover", this._hoverLinkFromSeriesMouseOver, this), t.on("mouseout", this._hideIndicator, this)) : this._clearHoverLinkFromSeries() 19318 }, 19319 _doHoverLinkToSeries: function(t, e) { 19320 var i = this.visualMapModel, 19321 n = i.itemSize; 19322 if (i.option.hoverLink) { 19323 var o = [0, n[1]], 19324 a = i.getExtent(); 19325 t = dN(fN(o[0], t), o[1]); 19326 var r = xy(i, a, o), 19327 s = [t - r, t + r], 19328 l = hN(t, o, a, !0), 19329 u = [hN(s[0], o, a, !0), hN(s[1], o, a, !0)]; 19330 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)); 19331 var h = this._hoverLinkDataIndices, 19332 c = []; 19333 (e || _y(i)) && (c = this._hoverLinkDataIndices = i.findTargetDataIndices(u)); 19334 var d = ki(h, c); 19335 this._dispatchHighDown("downplay", gy(d[0])), this._dispatchHighDown("highlight", gy(d[1])) 19336 } 19337 }, 19338 _hoverLinkFromSeriesMouseOver: function(t) { 19339 var e = t.target, 19340 i = this.visualMapModel; 19341 if (e && null != e.dataIndex) { 19342 var n = this.ecModel.getSeriesByIndex(e.seriesIndex); 19343 if (i.isTargetSeries(n)) { 19344 var o = n.getData(e.dataType), 19345 a = o.get(i.getDataDimension(o), e.dataIndex, !0); 19346 isNaN(a) || this._showIndicator(a, a) 19347 } 19348 } 19349 }, 19350 _hideIndicator: function() { 19351 var t = this._shapes; 19352 t.indicator && t.indicator.attr("invisible", !0), t.indicatorLabel && t.indicatorLabel.attr("invisible", !0) 19353 }, 19354 _clearHoverLinkToSeries: function() { 19355 this._hideIndicator(); 19356 var t = this._hoverLinkDataIndices; 19357 this._dispatchHighDown("downplay", gy(t)), t.length = 0 19358 }, 19359 _clearHoverLinkFromSeries: function() { 19360 this._hideIndicator(); 19361 var t = this.api.getZr(); 19362 t.off("mouseover", this._hoverLinkFromSeriesMouseOver), t.off("mouseout", this._hideIndicator) 19363 }, 19364 _applyTransform: function(t, e, i, n) { var o = go(e, n ? null : this.group); return BS[y(t) ? "applyTransform" : "transformDirection"](t, o, i) }, 19365 _dispatchHighDown: function(t, e) { e && e.length && this.api.dispatchAction({ type: t, batch: e }) }, 19366 dispose: function() { this._clearHoverLinkFromSeries(), this._clearHoverLinkToSeries() }, 19367 remove: function() { this._clearHoverLinkFromSeries(), this._clearHoverLinkToSeries() } 19368 }); 19369 cs({ type: "selectDataRange", event: "dataRangeSelected", update: "update" }, function(t, e) { e.eachComponent({ mainType: "visualMap", query: t }, function(e) { e.setSelected(t.selected) }) }), us(qP); 19370 var vN = rN.extend({ 19371 type: "visualMap.piecewise", 19372 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 }, 19373 optionUpdated: function(t, e) { 19374 vN.superApply(this, "optionUpdated", arguments), this._pieceList = [], this.resetExtent(); 19375 var n = this._mode = this._determineMode(); 19376 yN[this._mode].call(this), this._resetSelected(t, e); 19377 var o = this.option.categories; 19378 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 })) }) 19379 }, 19380 completeVisualOption: function() { 19381 function t(t, e, i) { return t && t[e] && (w(t[e]) ? t[e].hasOwnProperty(i) : t[e] === i) } 19382 var e = this.option, 19383 i = {}, 19384 n = ZA.listVisualTypes(), 19385 o = this.isCategory(); 19386 d(e.pieces, function(t) { d(n, function(e) { t.hasOwnProperty(e) && (i[e] = 1) }) }), d(i, function(i, n) { 19387 var a = 0; 19388 d(this.stateList, function(i) { a |= t(e, i, n) || t(e.target, i, n) }, this), !a && d(this.stateList, function(t) { 19389 (e[t] || (e[t] = {}))[n] = $P.get(n, "inRange" === t ? "active" : "inactive", o) 19390 }) 19391 }, this), rN.prototype.completeVisualOption.apply(this, arguments) 19392 }, 19393 _resetSelected: function(t, e) { 19394 var i = this.option, 19395 n = this._pieceList, 19396 o = (e ? i : t).selected || {}; 19397 if (i.selected = o, d(n, function(t, e) {
19398 var i = this.getSelectedMapKey(t); 19399 o.hasOwnProperty(i) || (o[i] = !0) 19400 }, this), "single" === i.selectedMode) { 19401 var a = !1; 19402 d(n, function(t, e) { 19403 var i = this.getSelectedMapKey(t); 19404 o[i] && (a ? o[i] = !1 : a = !0) 19405 }, this) 19406 } 19407 }, 19408 getSelectedMapKey: function(t) { return "categories" === this._mode ? t.value + "" : t.index + "" }, 19409 getPieceList: function() { return this._pieceList }, 19410 _determineMode: function() { var t = this.option; return t.pieces && t.pieces.length > 0 ? "pieces" : this.option.categories ? "categories" : "splitNumber" }, 19411 setSelected: function(t) { this.option.selected = i(t) }, 19412 getValueState: function(t) { var e = ZA.findPieceIndex(t, this._pieceList); return null != e && this.option.selected[this.getSelectedMapKey(this._pieceList[e])] ? "inRange" : "outOfRange" }, 19413 findTargetDataIndices: function(t) { 19414 var e = []; 19415 return this.eachTargetSeries(function(i) { 19416 var n = [], 19417 o = i.getData(); 19418 o.each(this.getDataDimension(o), function(e, i) { ZA.findPieceIndex(e, this._pieceList) === t && n.push(i) }, this), e.push({ seriesId: i.id, dataIndex: n }) 19419 }, this), e 19420 }, 19421 getRepresentValue: function(t) { 19422 var e; 19423 if (this.isCategory()) e = t.value; 19424 else if (null != t.value) e = t.value; 19425 else { 19426 var i = t.interval || []; 19427 e = i[0] === -1 / 0 && i[1] === 1 / 0 ? 0 : (i[0] + i[1]) / 2 19428 } 19429 return e 19430 }, 19431 getVisualMeta: function(t) { 19432 function e(e, a) { 19433 var r = o.getRepresentValue({ interval: e }); 19434 a || (a = o.getValueState(r)); 19435 var s = t(r, a); 19436 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 }) 19437 } 19438 if (!this.isCategory()) { 19439 var i = [], 19440 n = [], 19441 o = this, 19442 a = this._pieceList.slice(); 19443 if (a.length) { 19444 var r = a[0].interval[0]; 19445 r !== -1 / 0 && a.unshift({ interval: [-1 / 0, r] }), (r = a[a.length - 1].interval[1]) !== 1 / 0 && a.push({ interval: [r, 1 / 0] }) 19446 } else a.push({ interval: [-1 / 0, 1 / 0] }); 19447 var s = -1 / 0; 19448 return d(a, function(t) { 19449 var i = t.interval; 19450 i && (i[0] > s && e([s, i[0]], "outOfRange"), e(i.slice()), s = i[1]) 19451 }, this), { stops: i, outerColors: n } 19452 } 19453 } 19454 }), 19455 yN = { 19456 splitNumber: function() { 19457 var t = this.option, 19458 e = this._pieceList, 19459 i = Math.min(t.precision, 20), 19460 n = this.getExtent(), 19461 o = t.splitNumber; 19462 o = Math.max(parseInt(o, 10), 1), t.splitNumber = o; 19463 for (var a = (n[1] - n[0]) / o; + a.toFixed(i) !== a && i < 5;) i++; 19464 t.precision = i, a = +a.toFixed(i); 19465 var r = 0; 19466 t.minOpen && e.push({ index: r++, interval: [-1 / 0, n[0]], close: [0, 0] }); 19467 for (var s = n[0], l = r + o; r < l; s += a) { 19468 var u = r === o - 1 ? n[1] : s + a; 19469 e.push({ index: r++, interval: [s, u], close: [1, 1] }) 19470 } 19471 t.maxOpen && e.push({ index: r++, interval: [n[1], 1 / 0], close: [0, 0] }), Go(e), d(e, function(t) { t.text = this.formatValueText(t.interval) }, this) 19472 }, 19473 categories: function() { 19474 var t = this.option; 19475 d(t.categories, function(t) { this._pieceList.push({ text: this.formatValueText(t, !0), value: t }) }, this), by(t, this._pieceList) 19476 }, 19477 pieces: function() { 19478 var t = this.option, 19479 e = this._pieceList; 19480 d(t.pieces, function(t, i) { 19481 w(t) || (t = { value: t }); 19482 var n = { text: "", index: i }; 19483 if (null != t.label && (n.text = t.label), t.hasOwnProperty("value")) { 19484 var o = n.value = t.value; 19485 n.interval = [o, o], n.close = [1, 1] 19486 } else { 19487 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++) { 19488 for (var c = [ 19489 ["gte", "gt", "min"], 19490 ["lte", "lt", "max"] 19491 ][h], d = 0; d < 3 && null == a[h]; d++) a[h] = t[c[d]], r[h] = s[d], u[h] = 2 === d; 19492 null == a[h] && (a[h] = l[h]) 19493 } 19494 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]) 19495 } 19496 n.visual = ZA.retrieveVisuals(t), e.push(n) 19497 }, this), by(t, e), Go(e), d(e, function(t) { 19498 var e = t.close, 19499 i = [ 19500 ["<", "â¤"][e[1]], 19501 [">", "â¥"][e[0]] 19502 ]; 19503 t.text = t.text || this.formatValueText(null != t.value ? t.value : t.interval, !1, i) 19504 }, this) 19505 } 19506 }; 19507 uN.extend({ 19508 type: "visualMap.piecewise", 19509 doRender: function() { 19510 var t = this.group; 19511 t.removeAll(); 19512 var e = this.visualMapModel, 19513 i = e.get("textGap"), 19514 n = e.textStyleModel, 19515 o = n.getFont(), 19516 a = n.getTextColor(), 19517 r = this._getItemAlign(), 19518 s = e.itemSize, 19519 l = this._getViewData(), 19520 u = l.endsText, 19521 h = T(e.get("showLabel", !0), !u); 19522 u && this._renderEndsText(t, u[0], s, h, r), d(l.viewPieceList, function(n) { 19523 var l = n.piece, 19524 u = new sw; 19525 u.onclick = m(this._onItemClick, this, l), this._enableHoverLink(u, n.indexInModelPieceList); 19526 var c = e.getRepresentValue(l); 19527 if (this._createItemSymbol(u, c, [0, 0, s[0], s[1]]), h) { 19528 var d = this.visualMapModel.getValueState(c); 19529 u.add(new fS({ 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 ? .5 : 1 } })) 19530 } 19531 t.add(u) 19532 }, this), u && this._renderEndsText(t, u[1], s, h, r), sM(e.get("orient"), t, e.get("itemGap")), this.renderBackgroun
19532d(t), this.positionGroup(t) 19533 }, 19534 _enableHoverLink: function(t, e) { 19535 function i(t) { 19536 var i = this.visualMapModel; 19537 i.option.hoverLink && this.api.dispatchAction({ type: t, batch: gy(i.findTargetDataIndices(e)) }) 19538 } 19539 t.on("mouseover", m(i, this, "highlight")).on("mouseout", m(i, this, "downplay")) 19540 }, 19541 _getItemAlign: function() { 19542 var t = this.visualMapModel, 19543 e = t.option; 19544 if ("vertical" === e.orient) return py(t, this.api, t.itemSize); 19545 var i = e.align; 19546 return i && "auto" !== i || (i = "left"), i 19547 }, 19548 _renderEndsText: function(t, e, i, n, o) { 19549 if (e) { 19550 var a = new sw, 19551 r = this.visualMapModel.textStyleModel; 19552 a.add(new fS({ 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) 19553 } 19554 }, 19555 _getViewData: function() { 19556 var t = this.visualMapModel, 19557 e = f(t.getPieceList(), function(t, e) { return { piece: t, indexInModelPieceList: e } }), 19558 i = t.get("text"), 19559 n = t.get("orient"), 19560 o = t.get("inverse"); 19561 return ("horizontal" === n ? o : !o) ? e.reverse() : i && (i = i.slice().reverse()), { viewPieceList: e, endsText: i } 19562 }, 19563 _createItemSymbol: function(t, e, i) { t.add(Tl(this.getControllerVisual(e, "symbol"), i[0], i[1], i[2], i[3], this.getControllerVisual(e, "color"))) }, 19564 _onItemClick: function(t) { 19565 var e = this.visualMapModel, 19566 n = e.option, 19567 o = i(n.selected), 19568 a = e.getSelectedMapKey(t); 19569 "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 }) 19570 } 19571 }); 19572 us(qP); 19573 var xN = Fo, 19574 _N = Zo, 19575 wN = vs({ 19576 type: "marker", 19577 dependencies: ["series", "grid", "polar", "geo"], 19578 init: function(t, e, i, n) { this.mergeDefaultAndTheme(t, i), this.mergeOption(t, i, n.createdBySelf, !0) }, 19579 isAnimationEnabled: function() { if (a_.node) return !1; var t = this.__hostSeries; return this.getShallow("animation") && t && t.isAnimationEnabled() }, 19580 mergeOption: function(t, e, i, n) { 19581 var o = this.constructor, 19582 r = this.mainType + "Model"; 19583 i || e.eachSeries(function(t) { 19584 var i = t.get(this.mainType, !0), 19585 s = t[r]; 19586 i && i.data ? (s ? s.mergeOption(i, e, !0) : (n && Sy(i), d(i.data, function(t) { t instanceof Array ? (Sy(t[0]), Sy(t[1])) : Sy(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 19587 }, this) 19588 }, 19589 formatTooltip: function(t) { 19590 var e = this.getData(), 19591 i = this.getRawValue(t), 19592 n = y(i) ? f(i, xN).join(", ") : xN(i), 19593 o = e.getName(t), 19594 a = _N(this.name); 19595 return (null != i || o) && (a += "<br />"), o && (a += _N(o), null != i && (a += " : ")), null != i && (a += _N(n)), a 19596 }, 19597 getData: function() { return this._data }, 19598 setData: function(t) { this._data = t } 19599 }); 19600 h(wN, XM), wN.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 } } } }); 19601 var bN = l, 19602 SN = v, 19603 MN = { min: SN(Ty, "min"), max: SN(Ty, "max"), average: SN(Ty, "average") }, 19604 IN = ys({ 19605 type: "marker", 19606 init: function() { this.markerGroupMap = R() }, 19607 render: function(t, e, i) { 19608 var n = this.markerGroupMap; 19609 n.each(function(t) { t.__keep = !1 }); 19610 var o = this.type + "Model"; 19611 e.eachSeries(function(t) { 19612 var n = t[o]; 19613 n && this.renderSeries(t, n, e, i) 19614 }, this), n.each(function(t) {!t.__keep && this.group.remove(t.group) }, this) 19615 }, 19616 renderSeries: function() {} 19617 }); 19618 IN.extend({ 19619 type: "markPoint", 19620 updateTransform: function(t, e, i) { 19621 e.eachSeries(function(t) { 19622 var e = t.markPointModel; 19623 e && (Ny(e.getData(), t, i), this.markerGroupMap.get(t.id).updateLayout(e)) 19624 }, this) 19625 }, 19626 renderSeries: function(t, e, i, n) { 19627 var o = t.coordinateSystem, 19628 a = t.id, 19629 r = t.getData(), 19630 s = this.markerGroupMap, 19631 l = s.get(a) || s.set(a, new Ql), 19632 u = Oy(o, t, e); 19633 e.setData(u), Ny(e.getData(), t, n), u.each(function(t) { 19634 var i = u.getItemModel(t), 19635 n = i.getShallow("symbolSize"); 19636 "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") }) 19637 }), 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") 19638 } 19639 }), us(function(t) { t.markPoint = t.markPoint || {} }), wN.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" } }); 19640 var TN = function(t, e, o, r) { 19641 var s = t.getData(), 19642 l = r.type; 19643 if (!y(r) && ("min" === l || "max" === l || "average" === l || "median" === l || null != r.xAxis || null != r.yAxis)) { 19644 var u, h; 19645 if (null != r.yAxis || null != r.xAxis) u = null != r.yAxis ? "y" : "x", e.getAxis(u), h = T(r.yAxis, r.xAxis); 19646 else { 19647 var c = Ay(r, s, e, t); 19648 u = c.valueDataDim, c.valueAxis, h = Py(s, u, l) 19649 } 19650 var d = "x" === u ? 0 : 1, 19651 f = 1 - d, 19652 p = i(r), 19653 g = {}; 19654 p.type = null, p.coord = [], g.coord = [], p.coord[f] = -1 / 0, g.co
19654ord[f] = 1 / 0; 19655 var m = o.get("precision"); 19656 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 }] 19657 } 19658 return r = [Dy(t, r[0]), Dy(t, r[1]), a({}, r[2])], r[2].type = r[2].type || "", n(r[2], r[0]), n(r[2], r[1]), r 19659 }; 19660 IN.extend({ 19661 type: "markLine", 19662 updateTransform: function(t, e, i) { 19663 e.eachSeries(function(t) { 19664 var e = t.markLineModel; 19665 if (e) { 19666 var n = e.getData(), 19667 o = e.__from, 19668 a = e.__to; 19669 o.each(function(e) { By(o, e, !0, t, i), By(a, e, !1, t, i) }), n.each(function(t) { n.setItemLayout(t, [o.getItemLayout(t), a.getItemLayout(t)]) }), this.markerGroupMap.get(t.id).updateLayout() 19670 } 19671 }, this) 19672 }, 19673 renderSeries: function(t, e, i, n) { 19674 function o(e, i, o) { 19675 var a = e.getItemModel(i); 19676 By(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") }) 19677 } 19678 var a = t.coordinateSystem, 19679 r = t.id, 19680 s = t.getData(), 19681 l = this.markerGroupMap, 19682 u = l.get(r) || l.set(r, new Sd); 19683 this.group.add(u.group); 19684 var h = Vy(a, t, e), 19685 c = h.from, 19686 d = h.to, 19687 f = h.line; 19688 e.__from = c, e.__to = d, e.setData(f); 19689 var p = e.get("symbol"), 19690 g = e.get("symbolSize"); 19691 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) { 19692 var e = f.getItemModel(t).get("lineStyle.color"); 19693 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") }) 19694 }), 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") 19695 } 19696 }), us(function(t) { t.markLine = t.markLine || {} }), wN.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" } } } }); 19697 var DN = function(t, e, i, n) { 19698 var a = Dy(t, n[0]), 19699 r = Dy(t, n[1]), 19700 s = T, 19701 l = a.coord, 19702 u = r.coord; 19703 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); 19704 var h = o([{}, a, r]); 19705 return h.coord = [a.coord, r.coord], h.x0 = a.x, h.y0 = a.y, h.x1 = r.x, h.y1 = r.y, h 19706 }, 19707 AN = [ 19708 ["x0", "y0"], 19709 ["x1", "y0"], 19710 ["x1", "y1"], 19711 ["x0", "y1"] 19712 ]; 19713 IN.extend({ 19714 type: "markArea", 19715 updateTransform: function(t, e, i) { 19716 e.eachSeries(function(t) { 19717 var e = t.markAreaModel; 19718 if (e) { 19719 var n = e.getData(); 19720 n.each(function(e) { 19721 var o = f(AN, function(o) { return Hy(n, e, o, t, i) }); 19722 n.setItemLayout(e, o), n.getItemGraphicEl(e).setShape("points", o) 19723 }) 19724 } 19725 }, this) 19726 }, 19727 renderSeries: function(t, e, i, n) { 19728 var o = t.coordinateSystem, 19729 a = t.id, 19730 s = t.getData(), 19731 l = this.markerGroupMap, 19732 u = l.get(a) || l.set(a, { group: new sw }); 19733 this.group.add(u.group), u.__keep = !0; 19734 var h = Zy(o, t, e); 19735 e.setData(h), h.each(function(e) { h.setItemLayout(e, f(AN, function(i) { return Hy(h, e, i, t, n) }
19735)), h.setItemVisual(e, { color: s.getVisual("color") }) }), h.diff(u.__data).add(function(t) { 19736 var e = new wS({ shape: { points: h.getItemLayout(t) } }); 19737 h.setItemGraphicEl(t, e), u.group.add(e) 19738 }).update(function(t, i) { 19739 var n = u.__data.getItemGraphicEl(i); 19740 fo(n, { shape: { points: h.getItemLayout(t) } }, e, t), u.group.add(n), h.setItemGraphicEl(t, n) 19741 }).remove(function(t) { 19742 var e = u.__data.getItemGraphicEl(t); 19743 u.group.remove(e) 19744 }).execute(), h.eachItemGraphicEl(function(t, i) { 19745 var n = h.getItemModel(i), 19746 o = n.getModel("label"), 19747 a = n.getModel("emphasis.label"), 19748 s = h.getItemVisual(i, "color"); 19749 t.useStyle(r(n.getModel("itemStyle").getItemStyle(), { fill: Rt(s, .4), stroke: s })), t.hoverStyle = n.getModel("emphasis.itemStyle").getItemStyle(), io(t.style, t.hoverStyle, o, a, { labelFetcher: e, labelDataIndex: i, defaultText: h.getName(i) || "", isRectText: !0, autoColor: s }), eo(t, {}), t.dataModel = e 19750 }), u.__data = h, u.group.silent = e.get("silent") || t.get("silent") 19751 } 19752 }), us(function(t) { t.markArea = t.markArea || {} }); 19753 hM.registerSubTypeDefaulter("timeline", function() { return "slider" }), cs({ 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) }), cs({ type: "timelinePlayChange", event: "timelinePlayChanged", update: "update" }, function(t, e) { 19754 var i = e.getComponent("timeline"); 19755 i && null != t.playState && i.setPlayState(t.playState) 19756 }); 19757 var CN = hM.extend({ 19758 type: "timeline", 19759 layoutMode: "box", 19760 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: [] }, 19761 init: function(t, e, i) { this._data, this._names, this.mergeDefaultAndTheme(t, i), this._initData() }, 19762 mergeOption: function(t) { CN.superApply(this, "mergeOption", arguments), this._initData() }, 19763 setCurrentIndex: function(t) { 19764 null == t && (t = this.option.currentIndex); 19765 var e = this._data.count(); 19766 this.option.loop ? t = (t % e + e) % e : (t >
19766= e && (t = e - 1), t < 0 && (t = 0)), this.option.currentIndex = t 19767 }, 19768 getCurrentIndex: function() { return this.option.currentIndex }, 19769 isIndexMax: function() { return this.getCurrentIndex() >= this._data.count() - 1 }, 19770 setPlayState: function(t) { this.option.autoPlay = !!t }, 19771 getPlayState: function() { return !!this.option.autoPlay }, 19772 _initData: function() { 19773 var t = this.option, 19774 e = t.data || [], 19775 n = t.axisType, 19776 o = this._names = []; 19777 if ("category" === n) { 19778 var a = []; 19779 d(e, function(t, e) { 19780 var n, r = Ii(t); 19781 w(t) ? (n = i(t)).value = e : n = e, a.push(n), _(r) || null != r && !isNaN(r) || (r = ""), o.push(r + "") 19782 }), e = a 19783 } 19784 var r = { category: "ordinal", time: "time" }[n] || "number"; 19785 (this._data = new sT([{ name: "value", type: r }], this)).initData(e, o) 19786 }, 19787 getData: function() { return this._data }, 19788 getCategories: function() { if ("category" === this.get("axisType")) return this._names.slice() } 19789 }); 19790 h(CN.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: [] } }), XM); 19791 var LN = $M.extend({ type: "timeline" }), 19792 kN = function(t, e, i, n) { qT.call(this, t, e, i), this.type = n || "value", this.model = null }; 19793 kN.prototype = { constructor: kN, getLabelModel: function() { return this.model.getModel("label") }, isHorizontal: function() { return "horizontal" === this.model.get("orient") } }, u(kN, qT); 19794 var PN = m, 19795 NN = d, 19796 ON = Math.PI; 19797 LN.extend({ 19798 type: "timeline.slider", 19799 init: function(t, e) { this.api = e, this._axis, this._viewRect, this._timer, this._currentPointer, this._mainGroup, this._labelGroup }, 19800 render: function(t, e, i, n) { 19801 if (this.model = t, this.api = i, this.ecModel = e, this.group.removeAll(), t.get("show", !0)) { 19802 var o = this._layout(t, i), 19803 a = this._createGroup("mainGroup"), 19804 r = this._createGroup("labelGroup"), 19805 s = this._axis = this._createAxis(o, t); 19806 t.formatTooltip = function(t) { return Zo(s.scale.getLabel(t)) }, NN(["AxisLine", "AxisTick", "Control", "CurrentPointer"], function(e) { this["_render" + e](o, a, s, t) }, this), this._renderAxisLabel(o, r, s, t), this._position(o, t) 19807 } 19808 this._doPlayStop() 19809 }, 19810 remove: function() { this._clearTimer(), this.group.removeAll() }, 19811 dispose: function() { this._clearTimer() }, 19812 _layout: function(t, e) { 19813 var i = t.get("label.position"), 19814 n = t.get("orient"), 19815 o = Yy(t, e); 19816 null == i || "auto" === i ? i = "horizontal" === n ? o.y + o.height / 2 < e.getHeight() / 2 ? "-" : "+" : o.x + o.width / 2 < e.getW
19816idth() / 2 ? "+" : "-" : isNaN(i) && (i = { horizontal: { top: "-", bottom: "+" }, vertical: { left: "-", right: "+" } }[n][i]); 19817 var a = { horizontal: "center", vertical: i >= 0 || "+" === i ? "left" : "right" }, 19818 r = { horizontal: i >= 0 || "+" === i ? "top" : "bottom", vertical: "middle" }, 19819 s = { horizontal: 0, vertical: ON / 2 }, 19820 l = "vertical" === n ? o.height : o.width, 19821 u = t.getModel("controlStyle"), 19822 h = u.get("show", !0), 19823 c = h ? u.get("itemSize") : 0, 19824 d = h ? u.get("itemGap") : 0, 19825 f = c + d, 19826 p = t.get("label.rotate") || 0; 19827 p = p * ON / 180; 19828 var g, m, v, y, x = u.get("position", !0), 19829 _ = h && u.get("showPlayBtn", !0), 19830 w = h && u.get("showPrevBtn", !0), 19831 b = h && u.get("showNextBtn", !0), 19832 S = 0, 19833 M = l; 19834 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 } 19835 }, 19836 _position: function(t, e) { 19837 function i(t) { 19838 var e = t.position; 19839 t.origin = [c[0][0] - e[0], c[1][0] - e[1]] 19840 } 19841 19842 function n(t) { 19843 return [ 19844 [t.x, t.x + t.width], 19845 [t.y, t.y + t.height] 19846 ] 19847 } 19848 19849 function o(t, e, i, n, o) { t[n] += i[n][o] - e[n][o] } 19850 var a = this._mainGroup, 19851 r = this._labelGroup, 19852 s = t.viewRect; 19853 if ("vertical" === t.orient) { 19854 var l = st(), 19855 u = s.x, 19856 h = s.y + s.height; 19857 ct(l, l, [-u, -h]), dt(l, l, -ON / 2), ct(l, l, [u, h]), (s = s.clone()).applyTransform(l) 19858 } 19859 var c = n(s), 19860 d = n(a.getBoundingRect()), 19861 f = n(r.getBoundingRect()), 19862 p = a.position, 19863 g = r.position; 19864 g[0] = p[0] = c[0][0]; 19865 var m = t.labelPosOpt; 19866 if (isNaN(m)) o(p, d, c, 1, v = "+" === m ? 0 : 1), o(g, f, c, 1, 1 - v); 19867 else { 19868 var v = m >= 0 ? 0 : 1; 19869 o(p, d, c, 1, v), g[1] = p[1] + m 19870 } 19871 a.attr("position", p), r.attr("position", g), a.rotation = r.rotation = t.rotation, i(a), i(r) 19872 }, 19873 _createAxis: function(t, e) { 19874 var i = e.getData(), 19875 n = e.get("axisType"), 19876 o = xl(e, n); 19877 o.getTicks = function() { return i.mapArray(["value"], function(t) { return t }) }; 19878 var a = i.getDataExtent("value"); 19879 o.setExtent(a[0], a[1]), o.niceTicks(); 19880 var r = new kN("value", o, t.axisExtent, n); 19881 return r.model = e, r 19882 }, 19883 _createGroup: function(t) { var e = this["_" + t] = new sw; return this.group.add(e), e }, 19884 _renderAxisLine: function(t, e, i, n) { 19885 var o = i.getExtent(); 19886 n.get("lineStyle.show") && e.add(new MS({ shape: { x1: o[0], y1: 0, x2: o[1], y2: 0 }, style: a({ lineCap: "round" }, n.getModel("lineStyle").getLineStyle()), silent: !0, z2: 1 })) 19887 }, 19888 _renderAxisTick: function(t, e, i, n) { 19889 var o = n.getData(), 19890 a = i.scale.getTicks(); 19891 NN(a, function(t) { 19892 var a = i.dataToCoord(t), 19893 r = o.getItemModel(t), 19894 s = r.getModel("itemStyle"), 19895 l = r.getModel("emphasis.itemStyle"), 19896 u = { position: [a, 0], onclick: PN(this._changeTimeline, this, t) }, 19897 h = Ky(r, s, e, u); 19898 eo(h, l.getItemStyle()), r.get("tooltip") ? (h.dataIndex = t, h.dataModel = n) : h.dataIndex = h.dataModel = null 19899 }, this) 19900 }, 19901 _renderAxisLabel: function(t, e, i, n) { 19902 if (i.getLabelModel().get("show")) { 19903 var o = n.getData(), 19904 a = i.getViewLabels(); 19905 NN(a, function(n) { 19906 var a = n.tickValue, 19907 r = o.getItemModel(a), 19908 s = r.getModel("label"), 19909 l = r.getModel("emphasis.label"), 19910 u = i.dataToCoord(n.tickValue), 19911 h = new fS({ position: [u, 0], rotation: t.labelRotation - t.rotation, onclick: PN(this._changeTimeline, this, a), silent: !1 }); 19912 no(h.style, s, { text: n.formattedLabel, textAlign: t.labelAlign, textVerticalAlign: t.labelBaseline }), e.add(h), eo(h, no({}, l)) 19913 }, this) 19914 } 19915 }, 19916 _renderControl: function(t, e, i, n) { 19917 function o(t, i, o, h) { 19918 if (t) { 19919 var c = qy(n, i, u, { position: t, origin: [a / 2, 0], rotation: h ? -r : 0, rectHover: !0, style: s, onclick: o }); 19920 e.add(c), eo(c, l) 19921 } 19922 } 19923 var a = t.controlSize, 19924 r = t.rotation, 19925 s = n.getModel("controlStyle").getItemStyle(), 19926 l = n.getModel("emphasis.controlStyle").getItemStyle(), 19927 u = [0, -a / 2, a, a], 19928 h = n.getPlayState(), 19929 c = n.get("inverse", !0); 19930 o(t.nextBtnPosition, "controlStyle.nextIcon", PN(this._changeTimeline, this, c ? "-" : "+")), o(t.prevBtnPosition, "controlStyle.prevIcon", PN(this._changeTimeline, this, c ? "+" : "-")), o(t.playPosition, "controlStyle." + (h ? "stopIcon" : "playIcon"), PN(this._handlePlayClick, this, !h), !0) 19931 }, 19932 _renderCurrentPointer: function(t, e, i, n) { 19933 var o = n.getData(), 19934 a = n.getCurrentIndex(), 19935 r = o.getItemModel(a).getModel("checkpointStyle"), 19936 s = this, 19937 l = { onCreate: function(t) { t.draggable = !0, t.drift = PN(s._handlePointerDrag, s), t.ondragend = PN(s._handlePointerDragend, s), $y(t, a, i, n, !0) }, onUpdate: function(t) { $y(t, a, i, n) } }; 19938 this._currentPointer = Ky(r, r, this._mainGroup, {}, this._currentPointer, l) 19939 }, 19940 _handlePlayClick: function(t) { this._clearTimer(), this.api.dispatchAction({ type: "timelinePlayChange", playState: t, from: this.uid }) }, 19941 _handlePointerDrag: function(t, e, i) { this._clearTimer(), this._pointerChangeTimeline([i.offsetX, i.offsetY]) }, 19942 _handlePointerDragend: function(t) { this._pointerChangeTimeline([t.offsetX, t.offsetY], !0) }, 19943 _pointerChangeTimeline: function(t, e) { 19944 var i = this._toAxisCoord(t)[0], 19945 n = Co(this._axis.getExtent().slice()); 19946 i > n[1] && (i = n[1]), i < n[0] && (i = n[0]), this._currentPointer.position[0] = i, this._currentPointer.dirty(); 19947 var o = this._findNearestTick(i), 19948 a = this.model; 19949 (e || o !== a.getCurrentIndex() && a.get("realtime")) && this._changeTimeline(o) 19950 }, 19951 _doPlayStop: function() { 19952 this._clearTimer(), this.model.getPlayState() && (this._timer = setTimeout(PN(function() { 19953 var t = this.model; 19954 this._changeTimeline(t.getCurrentIndex() + (t.get("rewind", !0) ? -1 : 1)) 19955 }, this), this.model.get("playInterval"))) 19956 }, 19957 _toAxisCoord: function(t) { return mo(t, this._mainGroup.getL
19957ocalTransform(), !0) }, 19958 _findNearestTick: function(t) { 19959 var e, i = this.model.getData(), 19960 n = 1 / 0, 19961 o = this._axis; 19962 return i.each(["value"], function(i, a) { 19963 var r = o.dataToCoord(i), 19964 s = Math.abs(r - t); 19965 s < n && (n = s, e = a) 19966 }), e 19967 }, 19968 _clearTimer: function() { this._timer && (clearTimeout(this._timer), this._timer = null) }, 19969 _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 }) } 19970 }), us(function(t) { 19971 var e = t && t.timeline; 19972 y(e) || (e = e ? [e] : []), d(e, function(t) { t && Uy(t) }) 19973 }); 19974 var EN = vs({ 19975 type: "toolbox", 19976 layoutMode: { type: "box", ignoreSize: !0 }, 19977 optionUpdated: function() { 19978 EN.superApply(this, "optionUpdated", arguments), d(this.option.feature, function(t, e) { 19979 var i = Vv(e); 19980 i && n(t, i.defaultOption) 19981 }) 19982 }, 19983 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" } } } 19984 }); 19985 ys({ 19986 type: "toolbox", 19987 render: function(t, e, i, n) { 19988 function o(o, r) { 19989 var s, c = h[o], 19990 d = h[r], 19991 f = new wo(l[c], t, t.ecModel); 19992 if (c && !d) { 19993 if (Jy(c)) s = { model: f, onclick: f.option.onclick, featureName: c }; 19994 else { 19995 var p = Vv(c); 19996 if (!p) return; 19997 s = new p(f, e, i) 19998 } 19999 u[c] = s 20000 } else { 20001 if (!(s = u[d])) return; 20002 s.model = f, s.ecModel = e, s.api = i 20003 } 20004 c || !d ? f.get("show") && !s.unusable ? (a(f, s, c), f.setIconStatus = function(t, e) { 20005 var i = this.option, 20006 n = this.iconPaths; 20007 i.iconStatus = i.iconStatus || {}, i.iconStatus[t] = e, n[t] && n[t].trigger(e) 20008 }, s.render && s.render(f, e, i, n)) : s.remove && s.remove(e, i) : s.dispose && s.dispose(e, i) 20009 } 20010 20011 function a(n, o, a) { 20012 var l = n.getModel("iconStyle"), 20013 u = n.getModel("emphasis.iconStyle"), 20014 h = o.getIcons ? o.getIcons() : n.get("icon"), 20015 c = n.get("title") || {}; 20016 if ("string" == typeof h) { 20017 var f = h, 20018 p = c; 20019 c = {}, (h = {})[a] = f, c[a] = p 20020 } 20021 var g = n.iconPaths = {}; 20022 d(h, function(a, h) { 20023 var d = _o(a, {}, { x: -s / 2, y: -s / 2, width: s, height: s }); 20024 d.setStyle(l.getItemStyle()), d.hoverStyle = u.getItemStyle(), eo(d), t.get("showTitle") && (d.__title = c[h], d.on("mouseover", function() { 20025 var t = u.getItemStyle(); 20026 d.setStyle({ text: c[h], textPosition: t.textPosition || "bottom", textFill: t.fill || t.stroke || "#000", textAlign: t.textAlign || "center" }) 20027 }).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 20028 }) 20029 } 20030 var r = this.group; 20031 if (r.removeAll(), t.get("show")) { 20032 var s = +t.get("itemSize"), 20033 l = t.get("feature") || {}, 20034 u = this._features || (this._features = {}), 20035 h = []; 20036 d(l, function(t, e) { h.push(e) }), new Ss(this._featureNames || [], h).add(o).update(o).remove(v(o, null)).execute(), this._featureNames = h, Pm(r, t, i), r.add(Nm(r.getBoundingRect
20036(), t)), r.eachChild(function(t) { 20037 var e = t.__title, 20038 n = t.hoverStyle; 20039 if (n && e) { 20040 var o = me(e, ke(n)), 20041 a = t.position[0] + r.position[0], 20042 l = !1; 20043 t.position[1] + r.position[1] + s + o.height > i.getHeight() && (n.textPosition = "top", l = !0); 20044 var u = l ? -5 - o.height : s + 8; 20045 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") 20046 } 20047 }) 20048 } 20049 }, 20050 updateView: function(t, e, i, n) { d(this._features, function(t) { t.updateView && t.updateView(t.model, e, i, n) }) }, 20051 remove: function(t, e) { d(this._features, function(i) { i.remove && i.remove(t, e) }), this.group.removeAll() }, 20052 dispose: function(t, e) { d(this._features, function(i) { i.dispose && i.dispose(t, e) }) } 20053 }); 20054 var RN = lI.toolbox.saveAsImage; 20055 Qy.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: RN.title, type: "png", name: "", excludeComponents: ["toolbox"], pixelRatio: 1, lang: RN.lang.slice() }, Qy.prototype.unusable = !a_.canvasSupported, Qy.prototype.onclick = function(t, e) { 20056 var i = this.model, 20057 n = i.get("name") || t.get("title.0.text") || "echarts", 20058 o = document.createElement("a"), 20059 a = i.get("type", !0) || "png"; 20060 o.download = n + "." + a, o.target = "_blank"; 20061 var r = e.getConnectedDataURL({ type: a, backgroundColor: i.get("backgroundColor", !0) || t.get("backgroundColor") || "#fff", excludeComponents: i.get("excludeComponents"), pixelRatio: i.get("pixelRatio") }); 20062 if (o.href = r, "function" != typeof MouseEvent || a_.browser.ie || a_.browser.edge) 20063 if (window.navigator.msSaveOrOpenBlob) { 20064 for (var s = atob(r.split(",")[1]), l = s.length, u = new Uint8Array(l); l--;) u[l] = s.charCodeAt(l); 20065 var h = new Blob([u]); 20066 window.navigator.msSaveOrOpenBlob(h, n + "." + a) 20067 } else { 20068 var c = i.get("lang"), 20069 d = '<body style="margin:0;"><img src="' + r + '" style="max-width:100%;" title="' + (c && c[0] || "") + '" /></body>'; 20070 window.open().document.write(d) 20071 } 20072 else { 20073 var f = new MouseEvent("click", { view: window, bubbles: !0, cancelable: !1 }); 20074 o.dispatchEvent(f) 20075 } 20076 }, Bv("saveAsImage", Qy); 20077 var zN = lI.toolbox.magicType; 20078 tx.defaultOption = { show: !0, type: [], icon: { line: "M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4", bar: "M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7", stack: "M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z", tiled: "M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z" }, title: i(zN.title), option: {}, seriesIndex: {} }; 20079 var BN = tx.prototype; 20080 BN.getIcons = function() { 20081 var t = this.model, 20082 e = t.get("icon"), 20083 i = {}; 20084 return d(t.get("type"), function(t) { e[t] && (i[t] = e[t]) }), i 20085 }; 20086 var VN = { line: function(t, e, i, o) { if ("bar" === t) return n({ id: e, type: "line", data: i.get("data"), stack: i.get("stack"), markPoint: i.get("markPoint"), markLine: i.get("markLine") }, o.get("option.line") || {}, !0) }, bar: function(t, e, i, o) { if ("line" === t) return n({ id: e, type: "bar", data: i.get("data"), stack: i.get("stack"), markPoint: i.get("markPoint"), markLine: i.get("markLine") }, o.get("option.bar") || {}, !0) }, stack: function(t, e, i, o) { if ("line" === t || "bar" === t) return n({ id: e, stack: "__ec_magicType_stack__" }, o.get("option.stack") || {}, !0) }, tiled: function(t, e, i, o) { if ("line" === t || "bar" === t) return n({ id: e, stack: "" }, o.get("option.tiled") || {}, !0) } }, 20087 GN = [ 20088 ["line", "bar"], 20089 ["stack", "tiled"] 20090 ]; 20091 BN.onclick = function(t, e, i) { 20092 var n = this.model, 20093 o = n.get("seriesIndex." + i); 20094 if (VN[i]) { 20095 var a = { series: [] }; 20096 d(GN, function(t) { l(t, i) >= 0 && d(t, function(t) { n.setIconStatus(t, "normal") }) }), n.setIconStatus(i, "emphasis"), t.eachComponent({ mainType: "series", query: null == o ? null : { seriesIndex: o } }, function(e) { 20097 var o = e.subType, 20098 s = e.id, 20099 l = VN[i](o, s, e, n); 20100 l && (r(l, e.option), a.series.push(l)); 20101 var u = e.coordinateSystem; 20102 if (u && "cartesian2d" === u.type && ("line" === i || "bar" === i)) { 20103 var h = u.getAxesByScale("ordinal")[0]; 20104 if (h) { 20105 var c = h.dim + "Axis", 20106 d = t.queryComponents({ mainType: c, index: e.get(name + "Index"), id: e.get(name + "Id") })[0].componentIndex; 20107 a[c] = a[c] || []; 20108 for (var f = 0; f <= d; f++) a[c][d] = a[c][d] || {}; 20109 a[c][d].boundaryGap = "bar" === i 20110 } 20111 } 20112 }), e.dispatchAction({ type: "changeMagicType", currentType: i, newOption: a }) 20113 } 20114 }, cs({ type: "changeMagicType", event: "magicTypeChanged", update: "prepareAndUpdate" }, function(t, e) { e.mergeOption(t.newOption) }), Bv("magicType", tx); 20115 var WN = lI.toolbox.dataView, 20116 FN = new Array(60).join("-"), 20117 HN = "\t", 20118 ZN = new RegExp("[" + HN + "]+", "g"); 20119 hx.defaultOption = { show: !0, readOnly: !1, optionToContent: null, contentToOption: null, icon: "M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28", title: i(WN.title), lang: i(WN.lang), backgroundColor: "#fff", textColor: "#000", textareaColor: "#fff", textareaBorderColor: "#333", buttonColor: "#c23531", buttonTextColor: "#fff" }, hx.prototype.onclick = function(t, e) { 20120 function i() { n.removeChild(a), x._dom = null } 20121 var n = e.getDom(), 20122 o = this.model; 20123 this._dom && n.removeChild(this._dom); 20124 var a = document.createElement("div"); 20125 a.style.cssText = "position:absolute;
20125left:5px;top:5px;bottom:5px;right:5px;", a.style.backgroundColor = o.get("backgroundColor") || "#fff"; 20126 var r = document.createElement("h4"), 20127 s = o.get("lang") || []; 20128 r.innerHTML = s[0] || o.get("title"), r.style.cssText = "margin: 10px 20px;", r.style.color = o.get("textColor"); 20129 var l = document.createElement("div"), 20130 u = document.createElement("textarea"); 20131 l.style.cssText = "display:block;width:100%;overflow:auto;"; 20132 var h = o.get("optionToContent"), 20133 c = o.get("contentToOption"), 20134 d = ox(t); 20135 if ("function" == typeof h) { var f = h(e.getOption()); "string" == typeof f ? l.innerHTML = f : M(f) && l.appendChild(f) } else l.appendChild(u), u.readOnly = o.get("readOnly"), u.style.cssText = "width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;", u.style.color = o.get("textColor"), u.style.borderColor = o.get("textareaBorderColor"), u.style.backgroundColor = o.get("textareaColor"), u.value = d.value; 20136 var p = d.meta, 20137 g = document.createElement("div"); 20138 g.style.cssText = "position:absolute;bottom:0;left:0;right:0;"; 20139 var m = "float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px", 20140 v = document.createElement("div"), 20141 y = document.createElement("div"); 20142 m += ";background-color:" + o.get("buttonColor"), m += ";color:" + o.get("buttonTextColor"); 20143 var x = this; 20144 ui(v, "click", i), ui(y, "click", function() { 20145 var t; 20146 try { t = "function" == typeof c ? c(l, e.getOption()) : ux(u.value, p) } catch (t) { throw i(), new Error("Data view format error " + t) } 20147 t && e.dispatchAction({ type: "changeDataView", newOption: t }), i() 20148 }), v.innerHTML = s[1], y.innerHTML = s[2], y.style.cssText = m, v.style.cssText = m, !o.get("readOnly") && g.appendChild(y), g.appendChild(v), ui(u, "keydown", function(t) { 20149 if (9 === (t.keyCode || t.which)) { 20150 var e = this.value, 20151 i = this.selectionStart, 20152 n = this.selectionEnd; 20153 this.value = e.substring(0, i) + HN + e.substring(n), this.selectionStart = this.selectionEnd = i + 1, zw(t) 20154 } 20155 }), a.appendChild(r), a.appendChild(l), a.appendChild(g), l.style.height = n.clientHeight - 80 + "px", n.appendChild(a), this._dom = a 20156 }, hx.prototype.remove = function(t, e) { this._dom && e.getDom().removeChild(this._dom) }, hx.prototype.dispose = function(t, e) { this.remove(t, e) }, Bv("dataView", hx), cs({ type: "changeDataView", event: "dataViewChanged", update: "prepareAndUpdate" }, function(t, e) { 20157 var i = []; 20158 d(t.newOption.series, function(t) { 20159 var n = e.getSeriesByName(t.name)[0]; 20160 if (n) { 20161 var o = n.get("data"); 20162 i.push({ name: t.name, data: cx(t.data, o) }) 20163 } else i.push(a({ type: "scatter" }, t)) 20164 }), e.mergeOption(r({ series: i }, t.newOption)) 20165 }); 20166 var UN = d, 20167 XN = "\0_ec_hist_store"; 20168 PP.extend({ type: "dataZoom.select" }), NP.extend({ type: "dataZoom.select" }); 20169 var jN = lI.toolbox.dataZoom, 20170 YN = d, 20171 qN = "\0_ec_\0toolbox-dataZoom_"; 20172 vx.defaultOption = { show: !0, icon: { zoom: "M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1", back: "M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26" }, title: i(jN.title) }; 20173 var KN = vx.prototype; 20174 KN.render = function(t, e, i, n) { this.model = t, this.ecModel = e, this.api = i, _x(t, e, this, n, i), xx(t, e) }, KN.onclick = function(t, e, i) { $N[i].call(this) }, KN.remove = function(t, e) { this._brushController.unmount() }, KN.dispose = function(t, e) { this._brushController.dispose() }; 20175 var $N = { 20176 zoom: function() {
20177 var t = !this._isZoomActive; 20178 this.api.dispatchAction({ type: "takeGlobalCursor", key: "dataZoomSelect", dataZoomSelectActive: t }) 20179 }, 20180 back: function() { this._dispatchZoomAction(fx(this.ecModel)) } 20181 }; 20182 KN._onBrush = function(t, e) { 20183 function i(t, e, i) { 20184 var r = e.getAxis(t), 20185 s = r.model, 20186 l = n(t, s, a), 20187 u = l.findRepresentativeAxisProxy(s).getMinMaxSpan(); 20188 null == u.minValueSpan && null == u.maxValueSpan || (i = PC(0, i.slice(), r.scale.getExtent(), 0, u.minValueSpan, u.maxValueSpan)), l && (o[l.id] = { dataZoomId: l.id, startValue: i[0], endValue: i[1] }) 20189 } 20190 20191 function n(t, e, i) { var n; return i.eachComponent({ mainType: "dataZoom", subType: "select" }, function(i) { i.getAxisModel(t, e.componentIndex) && (n = i) }), n } 20192 if (e.isEnd && t.length) { 20193 var o = {}, 20194 a = this.ecModel; 20195 this._brushController.updateCovers([]), new bv(yx(this.model.option), a, { include: ["grid"] }).matchOutputRanges(t, a, function(t, e, n) { if ("cartesian2d" === n.type) { var o = t.brushType; "rect" === o ? (i("x", n, e[0]), i("y", n, e[1])) : i({ lineX: "x", lineY: "y" }[o], n, e) } }), dx(a, o), this._dispatchZoomAction(o) 20196 } 20197 }, KN._dispatchZoomAction = function(t) { 20198 var e = []; 20199 YN(t, function(t, n) { e.push(i(t)) }), e.length && this.api.dispatchAction({ type: "dataZoom", from: this.uid, batch: e }) 20200 }, Bv("dataZoom", vx), us(function(t) { 20201 function e(t, e) { 20202 if (e) { 20203 var o = t + "Index", 20204 a = e[o]; 20205 null == a || "all" == a || y(a) || (a = !1 === a || "none" === a ? [] : [a]), i(t, function(e, i) { 20206 if (null == a || "all" == a || -1 !== l(a, i)) { 20207 var r = { type: "select", $fromToolbox: !0, id: qN + t + i }; 20208 r[o] = i, n.push(r) 20209 } 20210 }) 20211 } 20212 } 20213 20214 function i(e, i) { 20215 var n = t[e]; 20216 y(n) || (n = n ? [n] : []), YN(n, i) 20217 } 20218 if (t) { 20219 var n = t.dataZoom || (t.dataZoom = []); 20220 y(n) || (t.dataZoom = n = [n]); 20221 var o = t.toolbox; 20222 if (o && (y(o) && (o = o[0]), o && o.feature)) { 20223 var a = o.feature.dataZoom; 20224 e("xAxis", a), e("yAxis", a) 20225 } 20226 } 20227 }); 20228 var JN = lI.toolbox.restore; 20229 bx.defaultOption = { show: !0, icon: "M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5", title: JN.title }, bx.prototype.onclick = function(t, e, i) { px(t), e.dispatchAction({ type: "restore", from: this.uid }) }, Bv("restore", bx), cs({ type: "restore", event: "restore", update: "prepareAndUpdate" }, function(t, e) { e.resetOption("recreate") }); 20230 var QN, tO = "urn:schemas-microsoft-com:vml", 20231 eO = "undefined" == typeof window ? null : window, 20232 iO = !1, 20233 nO = eO && eO.document; 20234 if (nO && !a_.canvasSupported) try {!nO.namespaces.zrvml && nO.namespaces.add("zrvml", tO), QN = function(t) { return nO.createElement("<zrvml:" + t + ' class="zrvml">') } } catch (t) { QN = function(t) { return nO.createElement("<" + t + ' xmlns="' + tO + '" class="zrvml">') } } 20235 var oO = Hb.CMD, 20236 aO = Math.round, 20237 rO = Math.sqrt, 20238 sO = Math.abs,
20239 lO = Math.cos, 20240 uO = Math.sin, 20241 hO = Math.max; 20242 if (!a_.canvasSupported) { 20243 var cO = 21600, 20244 dO = cO / 2, 20245 fO = function(t) { t.style.cssText = "position:absolute;left:0;top:0;width:1px;height:1px;", t.coordsize = cO + "," + cO, t.coordorigin = "0,0" }, 20246 pO = function(t) { return String(t).replace(/&/g, "&").replace(/"/g, """) }, 20247 gO = function(t, e, i) { return "rgb(" + [t, e, i].join(",") + ")" }, 20248 mO = function(t, e) { e && t && e.parentNode !== t && t.appendChild(e) }, 20249 vO = function(t, e) { e && t && e.parentNode === t && t.removeChild(e) }, 20250 yO = function(t, e, i) { return 1e5 * (parseFloat(t) || 0) + 1e3 * (parseFloat(e) || 0) + i }, 20251 xO = function(t, e) { return "string" == typeof t ? t.lastIndexOf("%") >= 0 ? parseFloat(t) / 100 * e : parseFloat(t) : t }, 20252 _O = function(t, e, i) { 20253 var n = At(e); 20254 i = +i, isNaN(i) && (i = 1), n && (t.color = gO(n[0], n[1], n[2]), t.opacity = i * n[3]) 20255 }, 20256 wO = function(t) { var e = At(t); return [gO(e[0], e[1], e[2]), e[3]] }, 20257 bO = function(t, e, i) { 20258 var n = e.fill; 20259 if (null != n) 20260 if (n instanceof CS) { 20261 var o, a = 0, 20262 r = [0, 0], 20263 s = 0, 20264 l = 1, 20265 u = i.getBoundingRect(), 20266 h = u.width, 20267 c = u.height; 20268 if ("linear" === n.type) { 20269 o = "gradient"; 20270 var d = i.transform, 20271 f = [n.x * h, n.y * c], 20272 p = [n.x2 * h, n.y2 * c]; 20273 d && (Q(f, f, d), Q(p, p, d)); 20274 var g = p[0] - f[0], 20275 m = p[1] - f[1]; 20276 (a = 180 * Math.atan2(g, m) / Math.PI) < 0 && (a += 360), a < 1e-6 && (a = 0) 20277 } else { 20278 o = "gradientradial"; 20279 var f = [n.x * h, n.y * c], 20280 d = i.transform, 20281 v = i.scale, 20282 y = h, 20283 x = c; 20284 r = [(f[0] - u.x) / y, (f[1] - u.y) / x], d && Q(f, f, d), y /= v[0] * cO, x /= v[1] * cO; 20285 var _ = hO(y, x); 20286 s = 0 / _, l = 2 * n.r / _ - s 20287 } 20288 var w = n.colorStops.slice(); 20289 w.sort(function(t, e) { return t.offset - e.offset }); 20290 for (var b = w.length, S = [], M = [], I = 0; I < b; I++) { 20291 var T = w[I], 20292 D = wO(T.color); 20293 M.push(T.offset * l + s + " " + D[0]), 0 !== I && I !== b - 1 || S.push(D) 20294 } 20295 if (b >= 2) { 20296 var A = S[0][0], 20297 C = S[1][0], 20298 L = S[0][1] * e.opacity, 20299 k = S[1][1] * e.opacity; 20300 t.type = o, t.method = "none", t.focus = "100%", t.angle = a, t.color = A, t.color2 = C, t.colors = M.join(","), t.opacity = k, t.opacity2 = L 20301 } 20302 "radial" === o && (t.focusposition = r.join(",")) 20303 } else _O(t, n, e.opacity) 20304 }, 20305 SO = function(t, e) { null != e.lineDash && (t.dashstyle = e.lineDash.join(" ")), null == e.stroke || e.stroke instanceof CS || _O(t, e.stroke, e.opacity) }, 20306 MO = function(t, e, i, n) { 20307 var o = "fill" == e, 20308 a = t.getElementsByTagName(e)[0]; 20309 null != i[e] && "none" !== i[e] && (o || !o && i.lineWidth) ? (t[o ? "filled" : "stroked"] = "true", i[e] instanceof CS && vO(t, a), a || (a = Sx(e)), o ? bO(a, i, n) : SO(a, i), mO(t, a)) : (t[o ? "filled" : "stroked"] = "false", vO(t, a)) 20310 }, 20311 IO = [ 20312 [], 20313 [], 20314 [] 20315 ], 20316 TO = function(t, e) { 20317 var i, n, o, a, r, s, l = oO.M, 20318 u = oO.C, 20319 h = oO.L, 20320 c = oO.A, 20321 d = oO.Q, 20322 f = [], 20323 p = t.data, 20324 g = t.len(); 20325 for (a = 0; a < g;) { 20326 switch (o = p[a++], n = "", i = 0, o) { 20327 case l: 20328 n = " m ", i = 1, r = p[a++], s = p[a++], IO[0][0] = r, IO[0][1] = s; 20329 break; 20330 case h: 20331 n = " l ", i = 1, r = p[a++], s = p[a++], IO[0][0] = r, IO[0][1] = s; 20332 break; 20333 case d: 20334 case u: 20335 n = " c ", i = 3; 20336 var m, v, y = p[a++], 20337 x = p[a++], 20338 _ = p[a++], 20339 w = p[a++]; 20340 o === d ? (m = _, v = w, _ = (_ + 2 * y) / 3, w = (w + 2 * x) / 3, y = (r + 2 * y) / 3, x = (s + 2 * x) / 3) : (m = p[a++], v = p[a++]), IO[0][0] = y, IO[0][1] = x, IO[1][0] = _, IO[1][1] = w, IO[2][0] = m, IO[2][1] = v, r = m, s = v; 20341 break; 20342 case c: 20343 var b = 0, 20344 S = 0, 20345 M = 1, 20346 I = 1, 20347 T = 0; 20348 e && (b = e[4], S = e[5], M = rO(e[0] * e[0] + e[1] * e[1]), I = rO(e[2] * e[2] + e[3] * e[3]), T = Math.atan2(-e[1] / I, e[0] / M)); 20349 var D = p[a++], 20350 A = p[a++], 20351 C = p[a++], 20352 L = p[a++], 20353 k = p[a++] + T, 20354 P = p[a++] + k + T; 20355 a++; 20356 var N = p[a++], 20357 O = D + lO(k) * C, 20358 E = A + uO(k) * L, 20359 y = D + lO(P) * C, 20360 x = A + uO(P) * L, 20361 R = N ? " wa " : " at "; 20362 Math.abs(O - y) < 1e-4 && (Math.abs(P - k) > .01 ? N && (O += .0125) : Math.abs(E - A) < 1e-4 ? N && O < D || !N && O > D ? x -= .0125 : x += .0125 : N && E < A || !N && E > A ? y += .0125 : y -= .0125), f.push(R, aO(((D - C) * M + b) * cO - dO), ",", aO(((A - L) * I + S) * cO - dO), ",", aO(((D + C) * M + b) * cO - dO), ",", aO(((A + L) * I + S) * cO - dO), ",", aO((O * M + b) * cO - dO), ",", aO((E * I + S) * cO - dO), ",", aO((y * M + b) * cO - dO), ",", aO((x * I + S) * cO - dO)), r = y, s = x; 20363 break; 20364 case oO.R: 20365 var z = IO[0], 20366 B = IO[1]; 20367 z[0] = p[a++], z[1] = p[a++], B[0] = z[0] + p[a++], B[1] = z[1] + p[a++], e && (Q(z, z, e), Q(B, B, e)), z[0] = aO(z[0] * cO - dO), B[0] = aO(B[0] * cO - dO), z[1] = aO(z[1] * cO - dO), B[1] = aO(B[
203671] * cO - dO), f.push(" m ", z[0], ",", z[1], " l ", B[0], ",", z[1], " l ", B[0], ",", B[1], " l ", z[0], ",", B[1]); 20368 break; 20369 case oO.Z: 20370 f.push(" x ") 20371 } 20372 if (i > 0) { 20373 f.push(n); 20374 for (var V = 0; V < i; V++) { 20375 var G = IO[V]; 20376 e && Q(G, G, e), f.push(aO(G[0] * cO - dO), ",", aO(G[1] * cO - dO), V < i - 1 ? "," : "") 20377 } 20378 } 20379 } 20380 return f.join("") 20381 }; 20382 In.prototype.brushVML = function(t) { 20383 var e = this.style, 20384 i = this._vmlEl; 20385 i || (i = Sx("shape"), fO(i), this._vmlEl = i), MO(i, "fill", e, this), MO(i, "stroke", e, this); 20386 var n = this.transform, 20387 o = null != n, 20388 a = i.getElementsByTagName("stroke")[0]; 20389 if (a) { 20390 var r = e.lineWidth; 20391 if (o && !e.strokeNoScale) { 20392 var s = n[0] * n[3] - n[1] * n[2]; 20393 r *= rO(sO(s)) 20394 } 20395 a.weight = r + "px" 20396 } 20397 var l = this.path || (this.path = new Hb); 20398 this.__dirtyPath && (l.beginPath(), this.buildPath(l, this.shape), l.toStatic(), this.__dirtyPath = !1), i.path = TO(l, this.transform), i.style.zIndex = yO(this.zlevel, this.z, this.z2), mO(t, i), null != e.text ? this.drawRectText(t, this.getBoundingRect()) : this.removeRectText(t) 20399 }, In.prototype.onRemove = function(t) { vO(t, this._vmlEl), this.removeRectText(t) }, In.prototype.onAdd = function(t) { mO(t, this._vmlEl), this.appendRectText(t) }; 20400 var DO = function(t) { return "object" == typeof t && t.tagName && "IMG" === t.tagName.toUpperCase() }; 20401 Je.prototype.brushVML = function(t) { 20402 var e, i, n = this.style, 20403 o = n.image; 20404 if (DO(o)) { 20405 var a = o.src; 20406 if (a === this._imageSrc) e = this._imageWidth, i = this._imageHeight; 20407 else { 20408 var r = o.runtimeStyle, 20409 s = r.width, 20410 l = r.height; 20411 r.width = "auto", r.height = "auto", e = o.width, i = o.height, r.width = s, r.height = l, this._imageSrc = a, this._imageWidth = e, this._imageHeight = i 20412 } 20413 o = a 20414 } else o === this._imageSrc && (e = this._imageWidth, i = this._imageHeight); 20415 if (o) { 20416 var u = n.x || 0, 20417 h = n.y || 0, 20418 c = n.width, 20419 d = n.height, 20420 f = n.sWidth, 20421 p = n.sHeight, 20422 g = n.sx || 0, 20423 m = n.sy || 0, 20424 v = f && p, 20425 y = this._vmlEl; 20426 y || (y = nO.createElement("div"), fO(y), this._vmlEl = y); 20427 var x, _ = y.style, 20428 w = !1, 20429 b = 1, 20430 S = 1; 20431 if (this.transform && (x = this.transform, b = rO(x[0] * x[0] + x[1] * x[1]), S = rO(x[2] * x[2] + x[3] * x[3]), w = x[1] || x[2]), w) { 20432 var M = [u, h], 20433 I = [u + c, h], 20434 T = [u, h + d], 20435 D = [u + c, h + d]; 20436 Q(M, M, x), Q(I, I, x), Q(T, T, x), Q(D, D, x); 20437 var A = hO(M[0], I[0], T[0], D[0]), 20438 C = hO(M[1], I[1], T[1], D[1]), 20439 L = []; 20440 L.push("M11=", x[0] / b, ",", "M12=", x[2] / S, ",", "M21=", x[1] / b, ",", "M22=", x[3] / S, ",", "Dx=", aO(u * b + x[4]), ",", "Dy=", aO(h * S + x[5])), _.padding = "0 " + aO(A) + "px " + aO(C) + "px 0", _.filter = "progid:DXImageTransform.Microsoft.Matrix(" + L.join("") + ", SizingMethod=clip)" 20441 } else x && (u = u * b + x[4], h = h * S + x[5]), _.filter = "", _.left = aO(u) + "px", _.top = aO(h) + "px"; 20442 var k = this._imageEl, 20443 P = this._cropEl; 20444 k || (k = nO.createElement("div"), this._imageEl = k); 20445 var N = k.style; 20446 if (v) { 20447 if (e && i) N.width = aO(b * e * c / f) + "px", N.height = aO(S * i * d / p) + "px"; 20448 else { 20449 var O = new Image, 20450 E = this; 20451 O.onload = function() { O.onload = null, e = O.width, i = O.height, N.width = aO(b * e * c / f) + "px", N.height = aO(S * i * d / p) + "px", E._imageWidth = e, E._imageHeight = i, E._imageSrc = o }, O.src = o 20452 } 20453 P || ((P = nO.createElement("div")).style.overflow = "hidden", this._cropEl = P); 20454 var R = P.style; 20455 R.width = aO((c + g * c / f) * b), R.height = aO((d + m * d / p) * S), R.filter = "progid:DXImageTransform.Microsoft.Matrix(Dx=" + -g * c / f * b + ",Dy=" + -m * d / p * S + ")", P.parentNode || y.appendChild(P), k.parentNode != P && P.appendChild(k) 20456 } else N.width = aO(b * c) + "px", N.height = aO(S * d) + "px", y.appendChild(k), P && P.parentNode && (y.removeChild(P), this._cropEl = null); 20457 var z = "", 20458 B = n.opacity; 20459 B < 1 && (z += ".Alpha(opacity=" + aO(100 * B) + ") "), z += "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + o + ", SizingMethod=scale)", N.filter = z, y.style.zIndex = yO(this.zlevel, this.z, this.z2), mO(t, y), null != n.text && this.drawRectText(t, this.getBoundingRect
20459()) 20460 } 20461 }, Je.prototype.onRemove = function(t) { vO(t, this._vmlEl), this._vmlEl = null, this._cropEl = null, this._imageEl = null, this.removeRectText(t) }, Je.prototype.onAdd = function(t) { mO(t, this._vmlEl), this.appendRectText(t) }; 20462 var AO, CO = {}, 20463 LO = 0, 20464 kO = document.createElement("div"), 20465 PO = function(t) { 20466 var e = CO[t]; 20467 if (!e) { 20468 LO > 100 && (LO = 0, CO = {}); 20469 var i, n = kO.style; 20470 try { n.font = t, i = n.fontFamily.split(",")[0] } catch (t) {} 20471 e = { style: n.fontStyle || "normal", variant: n.fontVariant || "normal", weight: n.fontWeight || "normal", size: 0 | parseFloat(n.fontSize || 12), family: i || "Microsoft YaHei" }, CO[t] = e, LO++ 20472 } 20473 return e 20474 }; 20475 ! function(t, e) { Dw[t] = e }("measureText", function(t, e) { 20476 var i = nO; 20477 AO || ((AO = i.createElement("div")).style.cssText = "position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;", nO.body.appendChild(AO)); 20478 try { AO.style.font = e } catch (t) {} 20479 return AO.innerHTML = "", AO.appendChild(i.createTextNode(t)), { width: AO.offsetWidth } 20480 }); 20481 for (var NO = new $t, OO = [kw, $e, Je, In, fS], EO = 0; EO < OO.length; EO++) { 20482 var RO = OO[EO].prototype; 20483 RO.drawRectText = function(t, e, i, n) { 20484 var o = this.style; 20485 this.__dirty && Ne(o); 20486 var a = o.text; 20487 if (null != a && (a += ""), a) { 20488 if (o.rich) { 20489 var r = Ce(a, o); 20490 a = []; 20491 for (var s = 0; s < r.lines.length; s++) { 20492 for (var l = r.lines[s].tokens, u = [], h = 0; h < l.length; h++) u.push(l[h].text); 20493 a.push(u.join("")) 20494 } 20495 a = a.join("\n") 20496 } 20497 var c, d, f = o.textAlign, 20498 p = o.textVerticalAlign, 20499 g = PO(o.font), 20500 m = g.style + " " + g.variant + " " + g.weight + " " + g.size + 'px "' + g.family + '"'; 20501 i = i || me(a, m, f, p); 20502 var v = this.transform; 20503 if (v && !n && (NO.copy(e), NO.applyTransform(v), e = NO), n) c = e.x, d = e.y; 20504 else { 20505 var y = o.textPosition, 20506 x = o.textDistance; 20507 if (y instanceof Array) c = e.x + xO(y[0], e.width), d = e.y + xO(y[1], e.height), f = f || "left"; 20508 else { 20509 var _ = we(y, e, x); 20510 c = _.x, d = _.y, f = f || _.textAlign, p = p || _.textVerticalAlign 20511 } 20512 } 20513 c = xe(c, i.width, f), d = _e(d, i.height, p), d += i.height / 2; 20514 var w, b, S, M = Sx, 20515 I = this._textVmlEl; 20516 I ? b = (w = (S = I.firstChild).nextSibling).nextSibling : (I = M("line"), w = M("path"), b = M("textpath"), S = M("skew"), b.style["v-text-align"] = "left", fO(I), w.textpathok = !0, b.on = !0, I.from = "0 0", I.to = "1000 0.05", mO(I, S), mO(I, w), mO(I, b), this._textVmlEl = I); 20517 var T = [c, d], 20518 D = I.style; 20519 v && n ? (Q(T, T, v), S.on = !0, S.matrix = v[0].toFixed(3) + "," + v[2].toFixed(3) + "," + v[1].toFixed(3) + "," + v[3].toFixed(3) + ",0,0", S.offset = (aO(T[0]) || 0) + "," + (aO(T[1]) || 0), S.origin = "0 0", D.left = "0px", D.top = "0px") : (S.on = !1, D.left = aO(c) + "px", D.top = aO(d) + "px"), b.string = pO(a); 20520 try { b.style.font = m } catch (t) {} 20521 MO(I, "fill", { fill: o.textFill, opacity: o.opacity }, this), MO(I, "stroke", { stroke: o.textStroke, opacity: o.opacity, lineDash: o.lineDash }, this), I.style.zIndex = yO(this.zlevel, this.z, this.z2), mO(t, I) 20522 } 20523 }, RO.removeRectText = function(t) { vO(t, this._textVmlEl), this._textVmlEl = null }
20523, RO.appendRectText = function(t) { mO(t, this._textVmlEl) } 20524 } 20525 fS.prototype.brushVML = function(t) { 20526 var e = this.style; 20527 null != e.text ? this.drawRectText(t, { x: e.x || 0, y: e.y || 0, width: 0, height: 0 }, this.getBoundingRect(), !0) : this.removeRectText(t) 20528 }, fS.prototype.onRemove = function(t) { this.removeRectText(t) }, fS.prototype.onAdd = function(t) { this.appendRectText(t) } 20529 } 20530 Tx.prototype = { 20531 constructor: Tx, 20532 getType: function() { return "vml" }, 20533 getViewportRoot: function() { return this._vmlViewport }, 20534 getViewportRootOffset: function() { var t = this.getViewportRoot(); if (t) return { offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0 } }, 20535 refresh: function() { 20536 var t = this.storage.getDisplayList(!0, !0); 20537 this._paintList(t) 20538 }, 20539 _paintList: function(t) { 20540 for (var e = this._vmlRoot, i = 0; i < t.length; i++) { 20541 var n = t[i]; 20542 n.invisible || n.ignore ? (n.__alreadyNotVisible || n.onRemove(e), n.__alreadyNotVisible = !0) : (n.__alreadyNotVisible && n.onAdd(e), n.__alreadyNotVisible = !1, n.__dirty && (n.beforeBrush && n.beforeBrush(), (n.brushVML || n.brush).call(n, e), n.afterBrush && n.afterBrush())), n.__dirty = !1 20543 } 20544 this._firstPaint && (this._vmlViewport.appendChild(e), this._firstPaint = !1) 20545 }, 20546 resize: function(t, e) { 20547 var t = null == t ? this._getWidth() : t, 20548 e = null == e ? this._getHeight() : e; 20549 if (this._width != t || this._height != e) { 20550 this._width = t, this._height = e; 20551 var i = this._vmlViewport.style; 20552 i.width = t + "px", i.height = e + "px" 20553 } 20554 }, 20555 dispose: function() { this.root.innerHTML = "", this._vmlRoot = this._vmlViewport = this.storage = null }, 20556 getWidth: function() { return this._width }, 20557 getHeight: function() { return this._height }, 20558 clear: function() { this._vmlViewport && this.root.removeChild(this._vmlViewport) }, 20559 _getWidth: function() { 20560 var t = this.root, 20561 e = t.currentStyle; 20562 return (t.clientWidth || Ix(e.width)) - Ix(e.paddingLeft) - Ix(e.paddingRight) | 0 20563 }, 20564 _getHeight: function() { 20565 var t = this.root, 20566 e = t.currentStyle; 20567 return (t.clientHeight || Ix(e.height)) - Ix(e.paddingTop) - Ix(e.paddingBottom) | 0 20568 } 20569 }, d(["getLayer", "insertLayer", "eachLayer", "eachBuiltinLayer", "eachOtherLayer", "getLayers", "modLayer", "delLayer", "clearLayer", "toDataURL", "pathToImage"], function(t) { Tx.prototype[t] = Dx(t) }), wi("vml", Tx); 20570 var zO = "http://www.w3.org/2000/svg", 20571 BO = Hb.CMD, 20572 VO = Array.prototype.join, 20573 GO = "none", 20574 WO = Math.round, 20575 FO = Math.sin, 20576 HO = Math.cos, 20577 ZO = Math.PI, 20578 UO = 2 * Math.PI, 20579 XO = 180 / ZO, 20580 jO = 1e-4, 20581 YO = {}; 20582 YO.brush = function(t) { 20583 var e = t.style, 20584 i = t.__svgEl; 20585 i || (i = Ax("path"), t.__svgEl = i), t.path || t.createPathProxy(); 20586 var n = t.path; 20587 if (t.__dirtyPath) { 20588 n.beginPath(), t.buildPath(n, t.shape), t.__dirtyPath = !1; 20589 var o = zx(n); 20590 o.indexOf("NaN") < 0 && Ox(i, "d", o) 20591 } 20592 Rx(i, e), Nx(i, t.transform), null != e.text && JO(t, t.getBoundingRect()) 20593 }; 20594 var qO = {}; 20595 qO.brush = function(t) { 20596 var e = t.style, 20597 i = e.image; 20598 if (i instanceof HTMLImageElement && (i = i.src), i) { 20599 var n = e.x || 0, 20600 o = e.y || 0, 20601 a = e.width, 20602 r = e.height, 20603 s = t.__svgEl; 20604 s || (s = Ax("image"), t.__svgEl = s), i !== t.__imageSrc && (Ex(s, "href", i), t.__imageSrc = i), Ox(s, "width", a), Ox(s, "height", r), Ox(s, "x", n), Ox(s, "y", o), Nx(s, t.transform), null != e.text && JO(t, t.getBoundingRect()) 20605 } 20606 }; 20607 var KO = {}, 20608 $O = new $t, 20609 JO = function(t, e, i) { 20610 var n = t.style; 20611 t.__dirty && Ne(n); 20612 var o = n.text; 20613 if (null != o) { 20614 o += ""; 20615 var a = t.__textSvgEl; 20616 a || (a = Ax("text"), t.__textSvgEl = a); 20617 var r, s, l = n.textPosition, 20618 u = n.textDistance, 20619 h = n.textAlign || "left"; 20620 "number" == typeof n.fontSize && (n.fontSize += "px"); 20621 var c = n.font || [n.fontStyle || "", n.fontWeight || "", n.fontSize || "", n.fontFamily || ""].join(" ") || Tw, 20622 d = Bx(n.textVerticalAlign), 20623 f = (i = me(o, c, h, d)).lineHeight; 20624 if (l instanceof Array) r = e.x + l[0], s = e.y + l[1]; 20625 else { 20626 var p = we(l, e, u); 20627 r = p.x, s = p.y, d = Bx(p.textVerticalAlign), h = p.textAlign 20628 } 20629 Ox(a, "alignment-baseline", d), c && (a.style.font = c); 20630 var g = n.textPadding;
20631 if (Ox(a, "x", r), Ox(a, "y", s), Rx(a, n, !0), t instanceof fS || t.style.transformText) Nx(a, t.transform); 20632 else { 20633 if (t.transform) $O.copy(e), $O.applyTransform(t.transform), e = $O; 20634 else { 20635 var m = t.transformCoordToGlobal(e.x, e.y); 20636 e.x = m[0], e.y = m[1] 20637 } 20638 var v = n.textOrigin; 20639 "center" === v ? (r = i.width / 2 + r, s = i.height / 2 + s) : v && (r = v[0] + r, s = v[1] + s); 20640 var y = -n.textRotation || 0, 20641 x = st(); 20642 dt(x, t.transform, y), Nx(a, x) 20643 } 20644 var _ = o.split("\n"), 20645 w = _.length, 20646 b = h; 20647 "left" === b ? (b = "start", g && (r += g[3])) : "right" === b ? (b = "end", g && (r -= g[1])) : "center" === b && (b = "middle", g && (r += (g[3] - g[1]) / 2)); 20648 var S = 0; 20649 if ("baseline" === d ? (S = -i.height + f, g && (S -= g[2])) : "middle" === d ? (S = (-i.height + f) / 2, g && (s += (g[0] - g[2]) / 2)) : g && (S += g[0]), t.__text !== o || t.__textFont !== c) { 20650 var M = t.__tspanList || []; 20651 t.__tspanList = M; 20652 for (T = 0; T < w; T++)(D = M[T]) ? D.innerHTML = "" : (D = M[T] = Ax("tspan"), a.appendChild(D), Ox(D, "alignment-baseline", d), Ox(D, "text-anchor", b)), Ox(D, "x", r), Ox(D, "y", s + T * f + S), D.appendChild(document.createTextNode(_[T])); 20653 for (; T < M.length; T++) a.removeChild(M[T]); 20654 M.length = w, t.__text = o, t.__textFont = c 20655 } else if (t.__tspanList.length) 20656 for (var I = t.__tspanList.length, T = 0; T < I; ++T) { 20657 var D = t.__tspanList[T]; 20658 D && (Ox(D, "x", r), Ox(D, "y", s + T * f + S)) 20659 } 20660 } 20661 }; 20662 KO.drawRectText = JO, KO.brush = function(t) { 20663 var e = t.style; 20664 null != e.text && (e.textPosition = [0, 0], JO(t, { x: e.x || 0, y: e.y || 0, width: 0, height: 0 }, t.getBoundingRect())) 20665 }, Vx.prototype = { 20666 diff: function(t, e, i) { 20667 i || (i = function(t, e) { return t === e }), this.equals = i; 20668 var n = this; 20669 t = t.slice(); 20670 var o = (e = e.slice()).length, 20671 a = t.length, 20672 r = 1, 20673 s = o + a, 20674 l = [{ newPos: -1, components: [] }], 20675 u = this.extractCommon(l[0], e, t, 0); 20676 if (l[0].newPos + 1 >= o && u + 1 >= a) { for (var h = [], c = 0; c < e.length; c++) h.push(c); return [{ indices: h, count: e.length }] } 20677 for (; r <= s;) { 20678 var d = function() { 20679 for (var i = -1 * r; i <= r; i += 2) { 20680 var s, u = l[i - 1], 20681 h = l[i + 1], 20682 c = (h ? h.newPos : 0) - i; 20683 u && (l[i - 1] = void 0); 20684 var d = u && u.newPos + 1 < o, 20685 f = h && 0 <= c && c < a; 20686 if (d || f) { 20687 if (!d || f && u.newPos < h.newPos ? (s = Wx(h), n.pushComponent(s.components, void 0, !0)) : ((s = u).newPos++, n.pushComponent(s.components, !0, void 0)), c = n.extractCommon(s, e, t, i), s.newPos + 1 >= o && c + 1 >= a) return Gx(0, s.components); 20688 l[i] = s 20689 } else l[i] = void 0 20690 } 20691 r++ 20692 }(); 20693 if (d) return d 20694 } 20695 }, 20696 pushComponent: function(t, e, i) { 20697 var n = t[t.length - 1]; 20698 n && n.added === e && n.removed === i ? t[t.length - 1] = { count: n.count + 1, added: e, removed: i } : t.push({ count: 1, added: e, removed: i }) 20699 }, 20700 extractCommon: function(t, e, i, n) { for (var o = e.length, a = i.length, r = t.newPos, s = r - n, l = 0; r + 1 < o && s + 1 < a && this.equals(e[r + 1], i[s + 1]);) r++, s++, l++; return l && t.components.push({ count: l }), t.newPos = r, s }, 20701 tokenize: function(t) { return t.slice() }, 20702 join: function(t) { return t.slice() } 20703 }; 20704 var QO = new Vx, 20705 tE = function(t, e, i) { return QO.diff(t, e, i) }; 20706 Fx.prototype.createElement = Ax, Fx.prototype.getDefs = function(t) { 20707 var e = this._svgRoot, 20708 i = this._svgRoot.getElementsByTagName("defs"); 20709 return 0 === i.length ? t ? ((i = e.insertBefore(this.createElement("defs"), e.firstChild)).contains || (i.contains = function(t) { 20710 var e = i.children; 20711 if (!e) return !1; 20712 for (var n = e.length - 1; n >= 0; --n) 20713 if (e[n] === t) return !0; 20714 return !1 20715 }), i) : null : i[0] 20716 }, Fx.prototype.update = function(t, e) { 20717 if (t) { 20718 var i = this.getDefs(!1); 20719 if (t[this._domName] && i.contains(t[this._domName])) "function" == typeof e && e(t); 20720 else { 20721 var n = this.add(t); 20722 n && (t[this._domName] = n) 20723 } 20724 } 20725 }, Fx.prototype.addDom = function(t) { this.getDefs(!0).appendChild(t) }, Fx.prototype.removeDom = function(t) { 20726 var e = this.getDefs(!1); 20727 e && t[this._domName] && (e.removeChild(t[this._domName]), t[this._domName] = null) 20728 }, Fx.prototype.getDoms = function() { 20729 var t = this.getDefs(!1); 20730 if (!t) return []; 20731 var e = []; 20732 return d(this._tagNames, function(i) { 20733 var n = t.getElementsByTagName(i); 20734 e = e.concat([].slice.call(n)) 20735 }), e 20736 }, Fx.prototype.markAllUnused = function() { 20737 var t = this;
20738 d(this.getDoms(), function(e) { e[t._markLabel] = "0" }) 20739 }, Fx.prototype.markUsed = function(t) { t && (t[this._markLabel] = "1") }, Fx.prototype.removeUnused = function() { 20740 var t = this.getDefs(!1); 20741 if (t) { 20742 var e = this; 20743 d(this.getDoms(), function(i) { "1" !== i[e._markLabel] && t.removeChild(i) }) 20744 } 20745 }, Fx.prototype.getSvgProxy = function(t) { return t instanceof In ? YO : t instanceof Je ? qO : t instanceof fS ? KO : YO }, Fx.prototype.getTextSvgElement = function(t) { return t.__textSvgEl }, Fx.prototype.getSvgElement = function(t) { return t.__svgEl }, u(Hx, Fx), Hx.prototype.addWithoutUpdate = function(t, e) { 20746 if (e && e.style) { 20747 var i = this; 20748 d(["fill", "stroke"], function(n) { 20749 if (e.style[n] && ("linear" === e.style[n].type || "radial" === e.style[n].type)) { 20750 var o, a = e.style[n], 20751 r = i.getDefs(!0); 20752 a._dom ? (o = a._dom, r.contains(a._dom) || i.addDom(o)) : o = i.add(a), i.markUsed(e); 20753 var s = o.getAttribute("id"); 20754 t.setAttribute(n, "url(#" + s + ")") 20755 } 20756 }) 20757 } 20758 }, Hx.prototype.add = function(t) { 20759 var e; 20760 if ("linear" === t.type) e = this.createElement("linearGradient"); 20761 else { 20762 if ("radial" !== t.type) return ew("Illegal gradient type."), null; 20763 e = this.createElement("radialGradient") 20764 } 20765 return t.id = t.id || this.nextId++, e.setAttribute("id", "zr" + this._zrId + "-gradient-" + t.id), this.updateDom(t, e), this.addDom(e), e 20766 }, Hx.prototype.update = function(t) { 20767 var e = this; 20768 Fx.prototype.update.call(this, t, function() { 20769 var i = t.type, 20770 n = t._dom.tagName; 20771 "linear" === i && "linearGradient" === n || "radial" === i && "radialGradient" === n ? e.updateDom(t, t._dom) : (e.removeDom(t), e.add(t)) 20772 }) 20773 }, Hx.prototype.updateDom = function(t, e) { 20774 if ("linear" === t.type) e.setAttribute("x1", t.x), e.setAttribute("y1", t.y), e.setAttribute("x2", t.x2), e.setAttribute("y2", t.y2); 20775 else { 20776 if ("radial" !== t.type) return void ew("Illegal gradient type."); 20777 e.setAttribute("cx", t.x), e.setAttribute("cy", t.y), e.setAttribute("r", t.r) 20778 } 20779 t.global ? e.setAttribute("gradientUnits", "userSpaceOnUse") : e.setAttribute("gradientUnits", "objectBoundingBox"), e.innerHTML = ""; 20780 for (var i = t.colorStops, n = 0, o = i.length; n < o; ++n) { 20781 var a = this.createElement("stop"); 20782 a.setAttribute("offset", 100 * i[n].offset + "%"), a.setAttribute("stop-color", i[n].color), e.appendChild(a) 20783 } 20784 t._dom = e 20785 }, Hx.prototype.markUsed = function(t) { 20786 if (t.style) { 20787 var e = t.style.fill; 20788 e && e._dom && Fx.prototype.markUsed.call(this, e._dom), (e = t.style.stroke) && e._dom && Fx.prototype.markUsed.call(this, e._dom) 20789 } 20790 }, u(Zx, Fx), Zx.prototype.update = function(t) { 20791 var e = this.getSvgElement(t); 20792 e && this.updateDom(e, t.__clipPaths, !1); 20793 var i = this.getTextSvgElement(t); 20794 i && this.updateDom(i, t.__clipPaths, !0), this.markUsed(t) 20795 }, Zx.prototype.updateDom = function(t, e, i) { 20796 if (e && e.length > 0) { 20797 var n, o, a = this.getDefs(!0), 20798 r = e[0], 20799 s = i ? "_textDom" : "_dom"; 20800 r[s] ? (o = r[s].getAttribute("id"), n = r[s], a.contains(n) || a.appendChild(n)) : (o = "zr" + this._zrId + "-clip-" + this.nextId, ++this.nextId, (n = this.createElement("clipPath")).setAttribute("id", o), a.appendChild(n), r[s] = n); 20801 var l = this.getSvgProxy(r); 20802 if (r.transform && r.parent.invTransform && !i) { 20803 var u = Array.prototype.slice.call(r.transform); 20804 ht(r.transform, r.parent.invTransform, r.transform), l.brush(r), r.transform = u 20805 } else l.brush(r);
20806 var h = this.getSvgElement(r); 20807 n.innerHTML = "", n.appendChild(h.cloneNode()), t.setAttribute("clip-path", "url(#" + o + ")"), e.length > 1 && this.updateDom(n, e.slice(1), i) 20808 } else t && t.setAttribute("clip-path", "none") 20809 }, Zx.prototype.markUsed = function(t) { 20810 var e = this; 20811 t.__clipPaths && t.__clipPaths.length > 0 && d(t.__clipPaths, function(t) { t._dom && Fx.prototype.markUsed.call(e, t._dom), t._textDom && Fx.prototype.markUsed.call(e, t._textDom) }) 20812 }, u(Ux, Fx), Ux.prototype.addWithoutUpdate = function(t, e) { 20813 if (e && Xx(e.style)) { 20814 var i, n = e.style; 20815 n._shadowDom ? (i = n._shadowDom, this.getDefs(!0).contains(n._shadowDom) || this.addDom(i)) : i = this.add(e), this.markUsed(e); 20816 var o = i.getAttribute("id"); 20817 t.style.filter = "url(#" + o + ")" 20818 } 20819 }, Ux.prototype.add = function(t) { 20820 var e = this.createElement("filter"), 20821 i = t.style; 20822 return i._shadowDomId = i._shadowDomId || this.nextId++, e.setAttribute("id", "zr" + this._zrId + "-shadow-" + i._shadowDomId), this.updateDom(t, e), this.addDom(e), e 20823 }, Ux.prototype.update = function(t, e) { 20824 var i = e.style; 20825 if (Xx(i)) { 20826 var n = this; 20827 Fx.prototype.update.call(this, e, function(t) { n.updateDom(e, t._shadowDom) }) 20828 } else this.remove(t, i) 20829 }, Ux.prototype.remove = function(t, e) { null != e._shadowDomId && (this.removeDom(e), t.style.filter = "") }, Ux.prototype.updateDom = function(t, e) { 20830 var i = e.getElementsByTagName("feDropShadow"); 20831 i = 0 === i.length ? this.createElement("feDropShadow") : i[0]; 20832 var n, o, a, r, s = t.style, 20833 l = t.scale ? t.scale[0] || 1 : 1, 20834 u = t.scale ? t.scale[1] || 1 : 1; 20835 if (s.shadowBlur || s.shadowOffsetX || s.shadowOffsetY) n = s.shadowOffsetX || 0, o = s.shadowOffsetY || 0, a = s.shadowBlur, r = s.shadowColor; 20836 else { 20837 if (!s.textShadowBlur) return void this.removeDom(e, s); 20838 n = s.textShadowOffsetX || 0, o = s.textShadowOffsetY || 0, a = s.textShadowBlur, r = s.textShadowColor 20839 } 20840 i.setAttribute("dx", n / l), i.setAttribute("dy", o / u), i.setAttribute("flood-color", r); 20841 var h = a / 2 / l + " " + a / 2 / u; 20842 i.setAttribute("stdDeviation", h), e.setAttribute("x", "-100%"), e.setAttribute("y", "-100%"), e.setAttribute("width", Math.ceil(a / 2 * 200) + "%"), e.setAttribute("height", Math.ceil(a / 2 * 200) + "%"), e.appendChild(i), s._shadowDom = e 20843 }, Ux.prototype.markUsed = function(t) { 20844 var e = t.style; 20845 e && e._shadowDom && Fx.prototype.markUsed.call(this, e._shadowDom) 20846 }; 20847 var eE = function(t, e, i, n) { 20848 this.root = t, this.storage = e, this._opts = i = a({}, i || {}); 20849 var o = Ax("svg"); 20850 o.setAttribute("xmlns", "http://www.w3.org/2000/svg"), o.setAttribute("version", "1.1"), o.setAttribute("baseProfile", "full"), o.style.cssText = "user-select:none;position:absolute;left:0;top:0;", this.gradientManager = new Hx(n, o), this.clipPathManager = new Zx(n, o), this.shadowManager = new Ux(n, o); 20851 var r = document.createElement("div"); 20852 r.style.cssText = "overflow:hidden;position:relative", this._svgRoot = o, this._viewport = r, t.appendChild(r), r.appendChild(o), this.resize(i.width, i.height), this._visibleList = [] 20853 }; 20854 eE.prototype = { 20855 constructor: eE, 20856 getType: function() { return "svg" }, 20857 getViewportRoot: function() { return this._viewport }, 20858 getViewportRootOffset: function() { var t = this.getViewportRoot(); if (t) return { offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0 } }, 20859 refresh: function() { 20860 var t = this.storage.getDisplayList(!0); 20861 this._paintList(t) 20862 }, 20863 setBackgroundColor: function(t) { this._viewport.style.background = t }, 20864 _paintList: function(t) { 20865 this.gradientManager.markAllUnused(), this.clipPathManager.markAllUnused(), this.shadowManager.markAllUnused(); 20866 var e, i = this._svgRoot, 20867 n = this._visibleList, 20868 o = t.length, 20869 a = []; 20870 for (e = 0; e < o; e++) { 20871 var r = Yx(f = t[e]), 20872 s = t_(f) || Qx(f); 20873 f.invisible || (f.__dirty && (r && r.brush(f), this.clipPathManager.update(f), f.style && (this.gradientManager.update(f.
20873style.fill), this.gradientManager.update(f.style.stroke), this.shadowManager.update(s, f)), f.__dirty = !1), a.push(f)) 20874 } 20875 var l, u = tE(n, a); 20876 for (e = 0; e < u.length; e++) 20877 if ((c = u[e]).removed) 20878 for (d = 0; d < c.count; d++) { 20879 var s = t_(f = n[c.indices[d]]), 20880 h = Qx(f); 20881 Jx(i, s), Jx(i, h) 20882 } 20883 for (e = 0; e < u.length; e++) { 20884 var c = u[e]; 20885 if (c.added) 20886 for (d = 0; d < c.count; d++) { 20887 var s = t_(f = a[c.indices[d]]), 20888 h = Qx(f); 20889 l ? Kx(i, s, l) : $x(i, s), s ? Kx(i, h, s) : l ? Kx(i, h, l) : $x(i, h), Kx(i, h, s), l = h || s || l, this.gradientManager.addWithoutUpdate(s, f), this.shadowManager.addWithoutUpdate(l, f), this.clipPathManager.markUsed(f) 20890 } else if (!c.removed) 20891 for (var d = 0; d < c.count; d++) { 20892 var f = a[c.indices[d]]; 20893 l = s = Qx(f) || t_(f) || l, this.gradientManager.markUsed(f), this.gradientManager.addWithoutUpdate(s, f), this.shadowManager.markUsed(f), this.shadowManager.addWithoutUpdate(s, f), this.clipPathManager.markUsed(f) 20894 } 20895 } 20896 this.gradientManager.removeUnused(), this.clipPathManager.removeUnused(), this.shadowManager.removeUnused(), this._visibleList = a 20897 }, 20898 _getDefs: function(t) { 20899 var e = this._svgRoot, 20900 i = this._svgRoot.getElementsByTagName("defs"); 20901 return 0 === i.length ? t ? ((i = e.insertBefore(Ax("defs"), e.firstChild)).contains || (i.contains = function(t) { 20902 var e = i.children; 20903 if (!e) return !1; 20904 for (var n = e.length - 1; n >= 0; --n) 20905 if (e[n] === t) return !0; 20906 return !1 20907 }), i) : null : i[0] 20908 }, 20909 resize: function(t, e) { 20910 var i = this._viewport; 20911 i.style.display = "none"; 20912 var n = this._opts; 20913 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 || this._height !== e) { 20914 this._width = t, this._height = e; 20915 var o = i.style; 20916 o.width = t + "px", o.height = e + "px"; 20917 var a = this._svgRoot; 20918 a.setAttribute("width", t), a.setAttribute("height", e) 20919 } 20920 }, 20921 getWidth: function() { return this._width }, 20922 getHeight: function() { return this._height }, 20923 _getSize: function(t) { 20924 var e = this._opts, 20925 i = ["width", "height"][t], 20926 n = ["clientWidth", "clientHeight"][t], 20927 o = ["paddingLeft", "paddingTop"][t], 20928 a = ["paddingRight", "paddingBottom"][t]; 20929 if (null != e[i] && "auto" !== e[i]) return parseFloat(e[i]); 20930 var r = this.root, 20931 s = document.defaultView.getComputedStyle(r); 20932 return (r[n] || jx(s[i]) || jx(r.style[i])) - (jx(s[o]) || 0) - (jx(s[a]) || 0) | 0 20933 }, 20934 dispose: function() { this.root.innerHTML = "", this._svgRoot = this._viewport = this.storage = null }, 20935 clear: function() { this._viewport && this.root.removeChild(this._viewport) }, 20936 pathToDataUrl: function() { return this.refresh(), "data:image/svg+xml;charset=UTF-8," + this._svgRoot.outerHTML } 20937 }, d(["getLayer", "insertLayer", "eachLayer", "eachBuiltinLayer", "eachOtherLayer", "getLayers", "modLayer", "delLayer", "clearLayer", "toDataURL", "pathToImage"], function(t) { eE.prototype[t] = e_(t) }), wi("svg", eE), t.version = "4.1.0", t.dependencies = TI, t.PRIORITY = LI, t.init = function(t, e, i) { var n = ss(t); if (n) return n; var o = new Gr(t, e, i); return o.id = "ec_" + jI++, UI[o.id] = o, Ri(t, qI, o.id), as(o), o }, t.connect = function(t) { 20938 if (y(t)) { 20939 var e = t; 20940 t = null, bI(e, function(e) { null != e.group && (t = e.group) }), t = t || "g_" + YI++, bI(e, function(e) { e.group = t }) 20941 } 20942 return XI[t] = !0, t 20943 }
20943, t.disConnect = rs, t.disconnect = $I, t.dispose = function(t) { "string" == typeof t ? t = UI[t] : t instanceof Gr || (t = ss(t)), t instanceof Gr && !t.isDisposed() && t.dispose() }, t.getInstanceByDom = ss, t.getInstanceById = function(t) { return UI[t] }, t.registerTheme = ls, t.registerPreprocessor = us, t.registerProcessor = hs, t.registerPostUpdate = function(t) { WI.push(t) }, t.registerAction = cs, t.registerCoordinateSystem = ds, t.getCoordinateSystemDimensions = function(t) { var e = Ca.get(t); if (e) return e.getDimensionsInfo ? e.getDimensionsInfo() : e.dimensions.slice() }, t.registerLayout = fs, t.registerVisual = ps, t.registerLoading = ms, t.extendComponentModel = vs, t.extendComponentView = ys, t.extendSeriesModel = xs, t.extendChartView = _s, t.setCanvasCreator = function(t) { e("createCanvas", t) }, t.registerMap = function(t, e, i) { e.geoJson && !e.features && (i = e.specialAreas, e = e.geoJson), "string" == typeof e && (e = "undefined" != typeof JSON && JSON.parse ? JSON.parse(e) : new Function("return (" + e + ");")()), KI[t] = { geoJson: e, specialAreas: i } }, t.getMap = ws, t.dataTool = JI, t.zrender = $w, t.graphic = BS, t.number = qS, t.format = nM, t.throttle = _r, t.helper = ZT, t.matrix = P_, t.vector = I_, t.color = q_, t.parseGeoJSON = XT, t.parseGeoJson = KT, t.util = $T, t.List = sT, t.Model = wo, t.Axis = qT, t.env = a_ 20944});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.