import { d as pS, aE as Vv, g as Pi, a as E, C as gS, z as mS, A as Fe, j as rt, P as yS, V as _S, B as eo, ae as SS } from './vendor.3506a68e.js' /* empty css */ /* empty css */ /* empty css */ import { r as xS, o as Ae, k as wS } from './index.9e4b607f.js' var bS = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAA2JJREFUWEftl9tLFHEUxz9n1FoqS4IkpNtDQaYlGd3snlYrhgTdifoT6jGqh9CgepCgx3qIHopKuqA+lElZDyph1ENUpoHQhei5pDJ3Tszorjuzl5ndVZHYeZv5nd+cz3zP+Z7frjDJL5nkfGQBM61QVsGsgpkqEG+/tpNLEeswqUIoRHkixdyLFzthPag9FBEiiEEQZQdQ4AAS6qWYs27IcQPUl+QxhQpyCALVwAo06Vj7xTvy5QChaMgxBdQ+5vGLasSGqkKZaSeLzqJR6a3n4XvhDwFmyRL+jBmgvmUKQ2y0y2baYCUeKiVr6dtSxuGMS6yvWDjSRxbQdpT8yEujFXHLEK1ceG00fgCDpVLGl5QBtY+p/GDTSB9ZpVs2Ds4+JeVcTMnF+poKTE4ClSjTI70UT4l4n50sztl7PQQokxIGfQNqN8eA66729hbOgkrddjtlNW2JXh7zOm1nBtP4BszwJooTIbxByfHZCndlLfuT5YkF7GYNIV5E2d+5f3QsjD4fVu4tQh0m3UALUGqrmTjeMkaxrOFzaoAdtkv7HeMiWemE9wj1PKKRKrZgcAeY40P901LBBa+4uB2jHTSh1DoUcA9c6EE4x3pui2BqJycwaQByPQez8IECViQyhueg1k5mY9KBsjTOF/ZicI6v3LKOJW0nQC5XgaNeakTWDXbJBh77iU/oOe1iEYN0AXNHFPloK/aNm+HzUttYwFTuo6xyJEs0sIercE82s88PXGzRXLv0OStRrmFwmRA3ZBtD4RBtZytCo89+C28bQCiWLcmN4Vlir6/TZxxHaUDJSxrrVtLgtGz1NkbagHa/hbiCcCzhGIpIHJVmuJF6mctyP8ZIC1CfM5+/PIjpNy+5w+uWMSr9GSNlQH1KCUM8BQodPO75GG8oD2+4LzvZ6/dbUgds5RDKrXQSIFgnxjLZwad09vs62vXhCKC76f3cC2ckyPl04DzHTKTfLUAzDQWFXhambozUS9zMboSWmKMP+w+O9cvFeYWVzSUo1bSmq55/BRuZRYBel0m+Y1CDUodSY0M4TdMotRzMBM43oJ27mXKUSyilQCcGJ6SWfm1lOr+5gnIkCuYJg+yRA/ycMECvRNrEYkzKyKFfannlFe933ZeL/b5sPOKygJmqmlXwv1fwH9at6ylMGY7gAAAAAElFTkSuQmCC', TS = Object.freeze({ __proto__: null, [Symbol.toStringTag]: 'Module', default: bS }), CS = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAABDFJREFUWEftmF9oW3UUx7/n3mTt/INaxUEiU1zrHKnaJsW0nVazFbWbxYW6TREEEWT6sBdBfPDNB/Ft4ItTEMZAtKFUzdSuLbVOu3Zp1jSldWPWP3OzdXSCUu1s19wjN7lpbm7u3f3d22UUNA+BXM7vez58z+93fueGsMY/tMb58N8BbJ9JXleZWe/zyBnPcuXSbKyq4c+rUZ1VObibO2VpNvAMMe8DIwywl3NUTEQTIBz6G1UH4z7fgltY14C7z437iaQYGE02yX+SJLnjI38g5QbSFWD0/KlbvXz5BDNvsk/KANG8xGj+eOMDk/bxxRGuADvOjn9G4PaslKbAWm2NgtpjEGGa5tcFYoHAkhNIx4DRn8eaiHB8JUmeIP8gr2jynAgvd20MvltmwJMfAHihJMkKkIGMdBZLNNZ9ZyhUVsBdP46eY8IdBcOsLNOOs46GQEqmAhvivoaLopCOShydTt+ekRYviIrnGo4WrWVSoDx+5O7GXlENR4DtZxMBLPMVTyJrp4XypdVIWCMlmZ6L3xX+sCyAO84MtRBJX+tPr2giXdz+z6ub3hFd58jBtu9HGgnKsKi4aRzJ+76oDh8U1XAE+OQPIzXLmcwZXfsrdBvL0hpQiPb01DTHygIYSia9t914Sb1XPaIJjHEKSfV992wdF13vyEFV9LHTx5IAHPWygs20cF6ZveW7wB7h28Q54Klv3lKgvG68OKwcKW7b1NO/paVN1D2zrWS7dvvpY/dDyaRtA00CJJme79v86GEnax07qIpvm/pqAOCIWSJDXy6EEGaUC7RpMBL5p+yAkakBdTgdYoYsmkwCXhqo3f6+aLzoFrLUe2Sy/20wvyaSkIiODgZa20ArF5/IsmyMqxJnVzJLLZP9nQB35H7mcpYISpSSLv+1bbA++ocwlS7QPaAq0tkpP7z5pgQDQdPkhHled71/6N6H5t3Arc5BzcWtE72/AOxfsVBPQsReT4VvMBD57ZoDqrdKhXfuAJhfKUpeOkn3LvDi3vFrVeK6VPfN66lyL7PyKoAaS2eKJmyag0wHiDOHhuvaf3Xipu0ebBg9Uit5lEYwbSGiB7Pvv8ze0tOQkyrMgwYMFZhI/U4zMAyJ0sw4MVq/84r3siVgOBWvYYUPM9QXct1kvOoGpQnkTz3Rt1iWXkyEd2anJOPHFLBpqqdq6dLiBAGFzW+YkJ2USSD2d4XQOBZ6aloIMJT89E0wv6EPzo/spQbalNaSzuAN4ejJhl1PCAEGE93HGWz3l4aAMQ5C1P0pV2xIBXfMFXUqM4m6ka4+EFodyOtCLccFk1NTjELeJX8q+OyMLeB9o12tksJfMrPt5Ew2t6Vxa1iWkOiTdPjpqFCJ1aDaRKxZUmg/g6vVe9fKTStAezACiJkVXISMeOYGvGc2adv2QXdlvnqr/gdcrZdr3sF/AWQ0XDiCWwUIAAAAAElFTkSuQmCC', AS = Object.freeze({ __proto__: null, [Symbol.toStringTag]: 'Module', default: CS }) const MS = '_incomeConsus_7nw9z_1', DS = '_income_7nw9z_1', IS = '_countPrice_7nw9z_10', LS = '_searchTime_7nw9z_20', PS = '_section_7nw9z_37', RS = '_numberCount_7nw9z_45', ES = '_color1_7nw9z_60', OS = '_color2_7nw9z_63', kS = '_color3_7nw9z_66', BS = '_color4_7nw9z_69', NS = '_color5_7nw9z_72', FS = '_color6_7nw9z_75', zS = '_color7_7nw9z_78', VS = '_color8_7nw9z_81', GS = '_color9_7nw9z_84', HS = '_type_7nw9z_87', WS = '_price_7nw9z_90', US = '_incomeTitle_7nw9z_105', YS = '_incomeLine_7nw9z_122', ZS = '_pieSection_7nw9z_126', $S = '_pieIncome_7nw9z_132', XS = '_rateAll_7nw9z_136', qS = '_rate_7nw9z_136', KS = '_pieData_7nw9z_161', QS = '_pieTitle_7nw9z_178', JS = '_pieLive_7nw9z_191', jS = '_pieVideo_7nw9z_194', tx = '_pieMusic_7nw9z_197', ex = '_pie1_7nw9z_200', rx = '_pie2_7nw9z_203', nx = '_pie3_7nw9z_206', ix = '_pie4_7nw9z_209', ax = '_pie5_7nw9z_212', ox = '_pie6_7nw9z_215', sx = '_timePopup_7nw9z_226', lx = '_timeMonth_7nw9z_232', ux = '_timeYear_7nw9z_233' var V = { incomeConsus: MS, income: DS, countPrice: IS, searchTime: LS, section: PS, numberCount: RS, color1: ES, color2: OS, color3: kS, color4: BS, color5: NS, color6: FS, color7: zS, color8: VS, color9: GS, type: HS, price: WS, incomeTitle: US, incomeLine: YS, pieSection: ZS, pieIncome: $S, rateAll: XS, rate: qS, pieData: KS, pieTitle: QS, pieLive: JS, pieVideo: jS, pieMusic: tx, pie1: ex, pie2: rx, pie3: nx, pie4: ix, pie5: ax, pie6: ox, timePopup: sx, timeMonth: lx, timeYear: ux } /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ var Ml = function (r, t) { return ( (Ml = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (e, n) { e.__proto__ = n }) || function (e, n) { for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]) }), Ml(r, t) ) } function B(r, t) { if (typeof t != 'function' && t !== null) throw new TypeError( 'Class extends value ' + String(t) + ' is not a constructor or null' ) Ml(r, t) function e() { this.constructor = r } r.prototype = t === null ? Object.create(t) : ((e.prototype = t.prototype), new e()) } var fx = (function () { function r() { ;(this.firefox = !1), (this.ie = !1), (this.edge = !1), (this.newEdge = !1), (this.weChat = !1) } return r })(), hx = (function () { function r() { ;(this.browser = new fx()), (this.node = !1), (this.wxa = !1), (this.worker = !1), (this.svgSupported = !1), (this.touchEventsSupported = !1), (this.pointerEventsSupported = !1), (this.domSupported = !1), (this.transformSupported = !1), (this.transform3dSupported = !1), (this.hasGlobalWindow = typeof window != 'undefined') } return r })(), Ur = new hx() typeof wx == 'object' && typeof wx.getSystemInfoSync == 'function' ? ((Ur.wxa = !0), (Ur.touchEventsSupported = !0)) : typeof document == 'undefined' && typeof self != 'undefined' ? (Ur.worker = !0) : typeof navigator == 'undefined' ? ((Ur.node = !0), (Ur.svgSupported = !0)) : vx(navigator.userAgent, Ur) function vx(r, t) { var e = t.browser, n = r.match(/Firefox\/([\d.]+)/), i = r.match(/MSIE\s([\d.]+)/) || r.match(/Trident\/.+?rv:(([\d.]+))/), a = r.match(/Edge?\/([\d.]+)/), o = /micromessenger/i.test(r) n && ((e.firefox = !0), (e.version = n[1])), i && ((e.ie = !0), (e.version = i[1])), a && ((e.edge = !0), (e.version = a[1]), (e.newEdge = +a[1].split('.')[0] > 18)), o && (e.weChat = !0), (t.svgSupported = typeof SVGRect != 'undefined'), (t.touchEventsSupported = 'ontouchstart' in window && !e.ie && !e.edge), (t.pointerEventsSupported = 'onpointerdown' in window && (e.edge || (e.ie && +e.version >= 11))), (t.domSupported = typeof document != 'undefined') var s = document.documentElement.style ;(t.transform3dSupported = ((e.ie && 'transition' in s) || e.edge || ('WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix()) || 'MozPerspective' in s) && !('OTransition' in s)), (t.transformSupported = t.transform3dSupported || (e.ie && +e.version >= 9)) } var at = Ur, Dl = 12, cx = 'sans-serif', Yr = Dl + 'px ' + cx, dx = 20, px = 100, gx = "007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N" function mx(r) { var t = {} if (typeof JSON == 'undefined') return t for (var e = 0; e < r.length; e++) { var n = String.fromCharCode(e + 32), i = (r.charCodeAt(e) - dx) / px t[n] = i } return t } var yx = mx(gx), kn = { createCanvas: function () { return typeof document != 'undefined' && document.createElement('canvas') }, measureText: (function () { var r, t return function (e, n) { if (!r) { var i = kn.createCanvas() r = i && i.getContext('2d') } if (r) return t !== n && (t = r.font = n || Yr), r.measureText(e) ;(e = e || ''), (n = n || Yr) var a = /^([0-9]*?)px$/.exec(n), o = +(a && a[1]) || Dl, s = 0 if (n.indexOf('mono') >= 0) s = o * e.length else for (var l = 0; l < e.length; l++) { var u = yx[e[l]] s += u == null ? o : u * o } return { width: s } } })(), loadImage: function (r, t, e) { var n = new Image() return (n.onload = t), (n.onerror = e), (n.src = r), n } }, Gv = Sr( [ 'Function', 'RegExp', 'Date', 'Error', 'CanvasGradient', 'CanvasPattern', 'Image', 'Canvas' ], function (r, t) { return (r['[object ' + t + ']'] = !0), r }, {} ), Hv = Sr( [ 'Int8', 'Uint8', 'Uint8Clamped', 'Int16', 'Uint16', 'Int32', 'Uint32', 'Float32', 'Float64' ], function (r, t) { return (r['[object ' + t + 'Array]'] = !0), r }, {} ), Bn = Object.prototype.toString, ro = Array.prototype, _x = ro.forEach, Sx = ro.filter, Il = ro.slice, xx = ro.map, Wv = function () {}.constructor, no = Wv ? Wv.prototype : null, Ll = '__proto__', bx = 2311 function Uv() { return bx++ } function Pl() { for (var r = [], t = 0; t < arguments.length; t++) r[t] = arguments[t] typeof console != 'undefined' && console.error.apply(console, r) } function tt(r) { if (r == null || typeof r != 'object') return r var t = r, e = Bn.call(r) if (e === '[object Array]') { if (!ki(r)) { t = [] for (var n = 0, i = r.length; n < i; n++) t[n] = tt(r[n]) } } else if (Hv[e]) { if (!ki(r)) { var a = r.constructor if (a.from) t = a.from(r) else { t = new a(r.length) for (var n = 0, i = r.length; n < i; n++) t[n] = r[n] } } } else if (!Gv[e] && !ki(r) && !Ri(r)) { t = {} for (var o in r) r.hasOwnProperty(o) && o !== Ll && (t[o] = tt(r[o])) } return t } function nt(r, t, e) { if (!Y(t) || !Y(r)) return e ? tt(t) : r for (var n in t) if (t.hasOwnProperty(n) && n !== Ll) { var i = r[n], a = t[n] Y(a) && Y(i) && !z(a) && !z(i) && !Ri(a) && !Ri(i) && !Yv(a) && !Yv(i) && !ki(a) && !ki(i) ? nt(i, a, e) : (e || !(n in r)) && (r[n] = tt(t[n])) } return r } function N(r, t) { if (Object.assign) Object.assign(r, t) else for (var e in t) t.hasOwnProperty(e) && e !== Ll && (r[e] = t[e]) return r } function j(r, t, e) { for (var n = xt(t), i = 0; i < n.length; i++) { var a = n[i] ;(e ? t[a] != null : r[a] == null) && (r[a] = t[a]) } return r } function ot(r, t) { if (r) { if (r.indexOf) return r.indexOf(t) for (var e = 0, n = r.length; e < n; e++) if (r[e] === t) return e } return -1 } function Tx(r, t) { var e = r.prototype function n() {} ;(n.prototype = t.prototype), (r.prototype = new n()) for (var i in e) e.hasOwnProperty(i) && (r.prototype[i] = e[i]) ;(r.prototype.constructor = r), (r.superClass = t) } function ze(r, t, e) { if ( ((r = 'prototype' in r ? r.prototype : r), (t = 'prototype' in t ? t.prototype : t), Object.getOwnPropertyNames) ) for (var n = Object.getOwnPropertyNames(t), i = 0; i < n.length; i++) { var a = n[i] a !== 'constructor' && (e ? t[a] != null : r[a] == null) && (r[a] = t[a]) } else j(r, t, e) } function Zt(r) { return !r || typeof r == 'string' ? !1 : typeof r.length == 'number' } function A(r, t, e) { if (!!(r && t)) if (r.forEach && r.forEach === _x) r.forEach(t, e) else if (r.length === +r.length) for (var n = 0, i = r.length; n < i; n++) t.call(e, r[n], n, r) else for (var a in r) r.hasOwnProperty(a) && t.call(e, r[a], a, r) } function G(r, t, e) { if (!r) return [] if (!t) return El(r) if (r.map && r.map === xx) return r.map(t, e) for (var n = [], i = 0, a = r.length; i < a; i++) n.push(t.call(e, r[i], i, r)) return n } function Sr(r, t, e, n) { if (!!(r && t)) { for (var i = 0, a = r.length; i < a; i++) e = t.call(n, e, r[i], i, r) return e } } function Lt(r, t, e) { if (!r) return [] if (!t) return El(r) if (r.filter && r.filter === Sx) return r.filter(t, e) for (var n = [], i = 0, a = r.length; i < a; i++) t.call(e, r[i], i, r) && n.push(r[i]) return n } function xt(r) { if (!r) return [] if (Object.keys) return Object.keys(r) var t = [] for (var e in r) r.hasOwnProperty(e) && t.push(e) return t } function Cx(r, t) { for (var e = [], n = 2; n < arguments.length; n++) e[n - 2] = arguments[n] return function () { return r.apply(t, e.concat(Il.call(arguments))) } } var X = no && Q(no.bind) ? no.call.bind(no.bind) : Cx function lt(r) { for (var t = [], e = 1; e < arguments.length; e++) t[e - 1] = arguments[e] return function () { return r.apply(this, t.concat(Il.call(arguments))) } } function z(r) { return Array.isArray ? Array.isArray(r) : Bn.call(r) === '[object Array]' } function Q(r) { return typeof r == 'function' } function W(r) { return typeof r == 'string' } function Rl(r) { return Bn.call(r) === '[object String]' } function dt(r) { return typeof r == 'number' } function Y(r) { var t = typeof r return t === 'function' || (!!r && t === 'object') } function Yv(r) { return !!Gv[Bn.call(r)] } function ie(r) { return !!Hv[Bn.call(r)] } function Ri(r) { return ( typeof r == 'object' && typeof r.nodeType == 'number' && typeof r.ownerDocument == 'object' ) } function io(r) { return r.colorStops != null } function Ax(r) { return r.image != null } function Mx(r) { return Bn.call(r) === '[object RegExp]' } function ao(r) { return r !== r } function Ei() { for (var r = [], t = 0; t < arguments.length; t++) r[t] = arguments[t] for (var e = 0, n = r.length; e < n; e++) if (r[e] != null) return r[e] } function ht(r, t) { return r != null ? r : t } function Oi(r, t, e) { return r != null ? r : t != null ? t : e } function El(r) { for (var t = [], e = 1; e < arguments.length; e++) t[e - 1] = arguments[e] return Il.apply(r, t) } function Zv(r) { if (typeof r == 'number') return [r, r, r, r] var t = r.length return t === 2 ? [r[0], r[1], r[0], r[1]] : t === 3 ? [r[0], r[1], r[2], r[1]] : r } function Ve(r, t) { if (!r) throw new Error(t) } function Ge(r) { return r == null ? null : typeof r.trim == 'function' ? r.trim() : r.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '') } var $v = '__ec_primitive__' function oo(r) { r[$v] = !0 } function ki(r) { return r[$v] } var Dx = (function () { function r(t) { this.data = {} var e = z(t) this.data = {} var n = this t instanceof r ? t.each(i) : t && A(t, i) function i(a, o) { e ? n.set(a, o) : n.set(o, a) } } return ( (r.prototype.get = function (t) { return this.data.hasOwnProperty(t) ? this.data[t] : null }), (r.prototype.set = function (t, e) { return (this.data[t] = e) }), (r.prototype.each = function (t, e) { for (var n in this.data) this.data.hasOwnProperty(n) && t.call(e, this.data[n], n) }), (r.prototype.keys = function () { return xt(this.data) }), (r.prototype.removeKey = function (t) { delete this.data[t] }), r ) })() function q(r) { return new Dx(r) } function Ix(r, t) { for (var e = new r.constructor(r.length + t.length), n = 0; n < r.length; n++) e[n] = r[n] for (var i = r.length, n = 0; n < t.length; n++) e[n + i] = t[n] return e } function so(r, t) { var e if (Object.create) e = Object.create(r) else { var n = function () {} ;(n.prototype = r), (e = new n()) } return t && N(e, t), e } function Xv(r) { var t = r.style ;(t.webkitUserSelect = 'none'), (t.userSelect = 'none'), (t.webkitTapHighlightColor = 'rgba(0,0,0,0)'), (t['-webkit-touch-callout'] = 'none') } function nr(r, t) { return r.hasOwnProperty(t) } function $t() {} var Lx = 180 / Math.PI function Nn(r, t) { return r == null && (r = 0), t == null && (t = 0), [r, t] } function Px(r) { return [r[0], r[1]] } function qv(r, t, e) { return (r[0] = t[0] + e[0]), (r[1] = t[1] + e[1]), r } function Rx(r, t, e) { return (r[0] = t[0] - e[0]), (r[1] = t[1] - e[1]), r } function Ex(r) { return Math.sqrt(Ox(r)) } function Ox(r) { return r[0] * r[0] + r[1] * r[1] } function Ol(r, t, e) { return (r[0] = t[0] * e), (r[1] = t[1] * e), r } function kx(r, t) { var e = Ex(t) return ( e === 0 ? ((r[0] = 0), (r[1] = 0)) : ((r[0] = t[0] / e), (r[1] = t[1] / e)), r ) } function kl(r, t) { return Math.sqrt( (r[0] - t[0]) * (r[0] - t[0]) + (r[1] - t[1]) * (r[1] - t[1]) ) } var Bl = kl function Bx(r, t) { return (r[0] - t[0]) * (r[0] - t[0]) + (r[1] - t[1]) * (r[1] - t[1]) } var Fn = Bx function lo(r, t, e, n) { return (r[0] = t[0] + n * (e[0] - t[0])), (r[1] = t[1] + n * (e[1] - t[1])), r } function ue(r, t, e) { var n = t[0], i = t[1] return ( (r[0] = e[0] * n + e[2] * i + e[4]), (r[1] = e[1] * n + e[3] * i + e[5]), r ) } function zn(r, t, e) { return (r[0] = Math.min(t[0], e[0])), (r[1] = Math.min(t[1], e[1])), r } function Vn(r, t, e) { return (r[0] = Math.max(t[0], e[0])), (r[1] = Math.max(t[1], e[1])), r } var Gn = (function () { function r(t, e) { ;(this.target = t), (this.topTarget = e && e.topTarget) } return r })(), Nx = (function () { function r(t) { ;(this.handler = t), t.on('mousedown', this._dragStart, this), t.on('mousemove', this._drag, this), t.on('mouseup', this._dragEnd, this) } return ( (r.prototype._dragStart = function (t) { for (var e = t.target; e && !e.draggable; ) e = e.parent || e.__hostTarget e && ((this._draggingTarget = e), (e.dragging = !0), (this._x = t.offsetX), (this._y = t.offsetY), this.handler.dispatchToElement(new Gn(e, t), 'dragstart', t.event)) }), (r.prototype._drag = function (t) { var e = this._draggingTarget if (e) { var n = t.offsetX, i = t.offsetY, a = n - this._x, o = i - this._y ;(this._x = n), (this._y = i), e.drift(a, o, t), this.handler.dispatchToElement(new Gn(e, t), 'drag', t.event) var s = this.handler.findHover(n, i, e).target, l = this._dropTarget ;(this._dropTarget = s), e !== s && (l && s !== l && this.handler.dispatchToElement( new Gn(l, t), 'dragleave', t.event ), s && s !== l && this.handler.dispatchToElement( new Gn(s, t), 'dragenter', t.event )) } }), (r.prototype._dragEnd = function (t) { var e = this._draggingTarget e && (e.dragging = !1), this.handler.dispatchToElement(new Gn(e, t), 'dragend', t.event), this._dropTarget && this.handler.dispatchToElement( new Gn(this._dropTarget, t), 'drop', t.event ), (this._draggingTarget = null), (this._dropTarget = null) }), r ) })(), Fx = Nx, zx = (function () { function r(t) { t && (this._$eventProcessor = t) } return ( (r.prototype.on = function (t, e, n, i) { this._$handlers || (this._$handlers = {}) var a = this._$handlers if ( (typeof e == 'function' && ((i = n), (n = e), (e = null)), !n || !t) ) return this var o = this._$eventProcessor e != null && o && o.normalizeQuery && (e = o.normalizeQuery(e)), a[t] || (a[t] = []) for (var s = 0; s < a[t].length; s++) if (a[t][s].h === n) return this var l = { h: n, query: e, ctx: i || this, callAtLast: n.zrEventfulCallAtLast }, u = a[t].length - 1, f = a[t][u] return f && f.callAtLast ? a[t].splice(u, 0, l) : a[t].push(l), this }), (r.prototype.isSilent = function (t) { var e = this._$handlers return !e || !e[t] || !e[t].length }), (r.prototype.off = function (t, e) { var n = this._$handlers if (!n) return this if (!t) return (this._$handlers = {}), this if (e) { if (n[t]) { for (var i = [], a = 0, o = n[t].length; a < o; a++) n[t][a].h !== e && i.push(n[t][a]) n[t] = i } n[t] && n[t].length === 0 && delete n[t] } else delete n[t] return this }), (r.prototype.trigger = function (t) { for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n] if (!this._$handlers) return this var i = this._$handlers[t], a = this._$eventProcessor if (i) for (var o = e.length, s = i.length, l = 0; l < s; l++) { var u = i[l] if (!(a && a.filter && u.query != null && !a.filter(t, u.query))) switch (o) { case 0: u.h.call(u.ctx) break case 1: u.h.call(u.ctx, e[0]) break case 2: u.h.call(u.ctx, e[0], e[1]) break default: u.h.apply(u.ctx, e) break } } return a && a.afterTrigger && a.afterTrigger(t), this }), (r.prototype.triggerWithContext = function (t) { for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n] if (!this._$handlers) return this var i = this._$handlers[t], a = this._$eventProcessor if (i) for ( var o = e.length, s = e[o - 1], l = i.length, u = 0; u < l; u++ ) { var f = i[u] if (!(a && a.filter && f.query != null && !a.filter(t, f.query))) switch (o) { case 0: f.h.call(s) break case 1: f.h.call(s, e[0]) break case 2: f.h.call(s, e[0], e[1]) break default: f.h.apply(s, e.slice(1, o - 1)) break } } return a && a.afterTrigger && a.afterTrigger(t), this }), r ) })(), fe = zx, Vx = Math.log(2) function Nl(r, t, e, n, i, a) { var o = n + '-' + i, s = r.length if (a.hasOwnProperty(o)) return a[o] if (t === 1) { var l = Math.round(Math.log(((1 << s) - 1) & ~i) / Vx) return r[e][l] } for (var u = n | (1 << e), f = e + 1; n & (1 << f); ) f++ for (var h = 0, c = 0, v = 0; c < s; c++) { var d = 1 << c d & i || ((h += (v % 2 ? -1 : 1) * r[e][c] * Nl(r, t - 1, f, u, i | d, a)), v++) } return (a[o] = h), h } function Kv(r, t) { var e = [ [r[0], r[1], 1, 0, 0, 0, -t[0] * r[0], -t[0] * r[1]], [0, 0, 0, r[0], r[1], 1, -t[1] * r[0], -t[1] * r[1]], [r[2], r[3], 1, 0, 0, 0, -t[2] * r[2], -t[2] * r[3]], [0, 0, 0, r[2], r[3], 1, -t[3] * r[2], -t[3] * r[3]], [r[4], r[5], 1, 0, 0, 0, -t[4] * r[4], -t[4] * r[5]], [0, 0, 0, r[4], r[5], 1, -t[5] * r[4], -t[5] * r[5]], [r[6], r[7], 1, 0, 0, 0, -t[6] * r[6], -t[6] * r[7]], [0, 0, 0, r[6], r[7], 1, -t[7] * r[6], -t[7] * r[7]] ], n = {}, i = Nl(e, 8, 0, 0, 0, n) if (i !== 0) { for (var a = [], o = 0; o < 8; o++) for (var s = 0; s < 8; s++) a[s] == null && (a[s] = 0), (a[s] += ((((o + s) % 2 ? -1 : 1) * Nl(e, 7, o === 0 ? 1 : 0, 1 << o, 1 << s, n)) / i) * t[o]) return function (l, u, f) { var h = u * a[6] + f * a[7] + 1 ;(l[0] = (u * a[0] + f * a[1] + a[2]) / h), (l[1] = (u * a[3] + f * a[4] + a[5]) / h) } } } var Qv = '___zrEVENTSAVED', Fl = [] function Gx(r, t, e, n, i) { return zl(Fl, t, n, i, !0) && zl(r, e, Fl[0], Fl[1]) } function zl(r, t, e, n, i) { if (t.getBoundingClientRect && at.domSupported && !Jv(t)) { var a = t[Qv] || (t[Qv] = {}), o = Hx(t, a), s = Wx(o, a, i) if (s) return s(r, e, n), !0 } return !1 } function Hx(r, t) { var e = t.markers if (e) return e e = t.markers = [] for (var n = ['left', 'right'], i = ['top', 'bottom'], a = 0; a < 4; a++) { var o = document.createElement('div'), s = o.style, l = a % 2, u = (a >> 1) % 2 ;(s.cssText = [ 'position: absolute', 'visibility: hidden', 'padding: 0', 'margin: 0', 'border-width: 0', 'user-select: none', 'width:0', 'height:0', n[l] + ':0', i[u] + ':0', n[1 - l] + ':auto', i[1 - u] + ':auto', '' ].join('!important;')), r.appendChild(o), e.push(o) } return e } function Wx(r, t, e) { for ( var n = e ? 'invTrans' : 'trans', i = t[n], a = t.srcCoords, o = [], s = [], l = !0, u = 0; u < 4; u++ ) { var f = r[u].getBoundingClientRect(), h = 2 * u, c = f.left, v = f.top o.push(c, v), (l = l && a && c === a[h] && v === a[h + 1]), s.push(r[u].offsetLeft, r[u].offsetTop) } return l && i ? i : ((t.srcCoords = o), (t[n] = e ? Kv(s, o) : Kv(o, s))) } function Jv(r) { return r.nodeName.toUpperCase() === 'CANVAS' } var Ux = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, Vl = [], Yx = at.browser.firefox && +at.browser.version.split('.')[0] < 39 function Gl(r, t, e, n) { return ( (e = e || {}), n ? jv(r, t, e) : Yx && t.layerX != null && t.layerX !== t.offsetX ? ((e.zrX = t.layerX), (e.zrY = t.layerY)) : t.offsetX != null ? ((e.zrX = t.offsetX), (e.zrY = t.offsetY)) : jv(r, t, e), e ) } function jv(r, t, e) { if (at.domSupported && r.getBoundingClientRect) { var n = t.clientX, i = t.clientY if (Jv(r)) { var a = r.getBoundingClientRect() ;(e.zrX = n - a.left), (e.zrY = i - a.top) return } else if (zl(Vl, r, n, i)) { ;(e.zrX = Vl[0]), (e.zrY = Vl[1]) return } } e.zrX = e.zrY = 0 } function Hl(r) { return r || window.event } function he(r, t, e) { if (((t = Hl(t)), t.zrX != null)) return t var n = t.type, i = n && n.indexOf('touch') >= 0 if (i) { var o = n !== 'touchend' ? t.targetTouches[0] : t.changedTouches[0] o && Gl(r, o, t, e) } else { Gl(r, t, t, e) var a = Zx(t) t.zrDelta = a ? a / 120 : -(t.detail || 0) / 3 } var s = t.button return ( t.which == null && s !== void 0 && Ux.test(t.type) && (t.which = s & 1 ? 1 : s & 2 ? 3 : s & 4 ? 2 : 0), t ) } function Zx(r) { var t = r.wheelDelta if (t) return t var e = r.deltaX, n = r.deltaY if (e == null || n == null) return t var i = Math.abs(n !== 0 ? n : e), a = n > 0 ? -1 : n < 0 ? 1 : e > 0 ? -1 : 1 return 3 * i * a } function Wl(r, t, e, n) { r.addEventListener(t, e, n) } function $x(r, t, e, n) { r.removeEventListener(t, e, n) } var Hn = function (r) { r.preventDefault(), r.stopPropagation(), (r.cancelBubble = !0) } function tc(r) { return r.which === 2 || r.which === 3 } var Xx = (function () { function r() { this._track = [] } return ( (r.prototype.recognize = function (t, e, n) { return this._doTrack(t, e, n), this._recognize(t) }), (r.prototype.clear = function () { return (this._track.length = 0), this }), (r.prototype._doTrack = function (t, e, n) { var i = t.touches if (!!i) { for ( var a = { points: [], touches: [], target: e, event: t }, o = 0, s = i.length; o < s; o++ ) { var l = i[o], u = Gl(n, l, {}) a.points.push([u.zrX, u.zrY]), a.touches.push(l) } this._track.push(a) } }), (r.prototype._recognize = function (t) { for (var e in Ul) if (Ul.hasOwnProperty(e)) { var n = Ul[e](this._track, t) if (n) return n } }), r ) })() function ec(r) { var t = r[1][0] - r[0][0], e = r[1][1] - r[0][1] return Math.sqrt(t * t + e * e) } function qx(r) { return [(r[0][0] + r[1][0]) / 2, (r[0][1] + r[1][1]) / 2] } var Ul = { pinch: function (r, t) { var e = r.length if (!!e) { var n = (r[e - 1] || {}).points, i = (r[e - 2] || {}).points || n if (i && i.length > 1 && n && n.length > 1) { var a = ec(n) / ec(i) !isFinite(a) && (a = 1), (t.pinchScale = a) var o = qx(n) return ( (t.pinchX = o[0]), (t.pinchY = o[1]), { type: 'pinch', target: r[0].target, event: t } ) } } } }, rc = 'silent' function Kx(r, t, e) { return { type: r, event: e, target: t.target, topTarget: t.topTarget, cancelBubble: !1, offsetX: e.zrX, offsetY: e.zrY, gestureEvent: e.gestureEvent, pinchX: e.pinchX, pinchY: e.pinchY, pinchScale: e.pinchScale, wheelDelta: e.zrDelta, zrByTouch: e.zrByTouch, which: e.which, stop: Qx } } function Qx() { Hn(this.event) } var Jx = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.handler = null), e } return ( (t.prototype.dispose = function () {}), (t.prototype.setCursor = function () {}), t ) })(fe), Bi = (function () { function r(t, e) { ;(this.x = t), (this.y = e) } return r })(), jx = [ 'click', 'dblclick', 'mousewheel', 'mouseout', 'mouseup', 'mousedown', 'mousemove', 'contextmenu' ], nc = (function (r) { B(t, r) function t(e, n, i, a) { var o = r.call(this) || this return ( (o._hovered = new Bi(0, 0)), (o.storage = e), (o.painter = n), (o.painterRoot = a), (i = i || new Jx()), (o.proxy = null), o.setHandlerProxy(i), (o._draggingMgr = new Fx(o)), o ) } return ( (t.prototype.setHandlerProxy = function (e) { this.proxy && this.proxy.dispose(), e && (A( jx, function (n) { e.on && e.on(n, this[n], this) }, this ), (e.handler = this)), (this.proxy = e) }), (t.prototype.mousemove = function (e) { var n = e.zrX, i = e.zrY, a = ic(this, n, i), o = this._hovered, s = o.target s && !s.__zr && ((o = this.findHover(o.x, o.y)), (s = o.target)) var l = (this._hovered = a ? new Bi(n, i) : this.findHover(n, i)), u = l.target, f = this.proxy f.setCursor && f.setCursor(u ? u.cursor : 'default'), s && u !== s && this.dispatchToElement(o, 'mouseout', e), this.dispatchToElement(l, 'mousemove', e), u && u !== s && this.dispatchToElement(l, 'mouseover', e) }), (t.prototype.mouseout = function (e) { var n = e.zrEventControl n !== 'only_globalout' && this.dispatchToElement(this._hovered, 'mouseout', e), n !== 'no_globalout' && this.trigger('globalout', { type: 'globalout', event: e }) }), (t.prototype.resize = function () { this._hovered = new Bi(0, 0) }), (t.prototype.dispatch = function (e, n) { var i = this[e] i && i.call(this, n) }), (t.prototype.dispose = function () { this.proxy.dispose(), (this.storage = null), (this.proxy = null), (this.painter = null) }), (t.prototype.setCursorStyle = function (e) { var n = this.proxy n.setCursor && n.setCursor(e) }), (t.prototype.dispatchToElement = function (e, n, i) { e = e || {} var a = e.target if (!(a && a.silent)) { for ( var o = 'on' + n, s = Kx(n, e, i); a && (a[o] && (s.cancelBubble = !!a[o].call(a, s)), a.trigger(n, s), (a = a.__hostTarget ? a.__hostTarget : a.parent), !s.cancelBubble); ); s.cancelBubble || (this.trigger(n, s), this.painter && this.painter.eachOtherLayer && this.painter.eachOtherLayer(function (l) { typeof l[o] == 'function' && l[o].call(l, s), l.trigger && l.trigger(n, s) })) } }), (t.prototype.findHover = function (e, n, i) { for ( var a = this.storage.getDisplayList(), o = new Bi(e, n), s = a.length - 1; s >= 0; s-- ) { var l = void 0 if ( a[s] !== i && !a[s].ignore && (l = tw(a[s], e, n)) && (!o.topTarget && (o.topTarget = a[s]), l !== rc) ) { o.target = a[s] break } } return o }), (t.prototype.processGesture = function (e, n) { this._gestureMgr || (this._gestureMgr = new Xx()) var i = this._gestureMgr n === 'start' && i.clear() var a = i.recognize( e, this.findHover(e.zrX, e.zrY, null).target, this.proxy.dom ) if ((n === 'end' && i.clear(), a)) { var o = a.type e.gestureEvent = o var s = new Bi() ;(s.target = a.target), this.dispatchToElement(s, o, a.event) } }), t ) })(fe) A( ['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (r) { nc.prototype[r] = function (t) { var e = t.zrX, n = t.zrY, i = ic(this, e, n), a, o if ( ((r !== 'mouseup' || !i) && ((a = this.findHover(e, n)), (o = a.target)), r === 'mousedown') ) (this._downEl = o), (this._downPoint = [t.zrX, t.zrY]), (this._upEl = o) else if (r === 'mouseup') this._upEl = o else if (r === 'click') { if ( this._downEl !== this._upEl || !this._downPoint || Bl(this._downPoint, [t.zrX, t.zrY]) > 4 ) return this._downPoint = null } this.dispatchToElement(a, r, t) } } ) function tw(r, t, e) { if (r[r.rectHover ? 'rectContain' : 'contain'](t, e)) { for (var n = r, i = void 0, a = !1; n; ) { if ((n.ignoreClip && (a = !0), !a)) { var o = n.getClipPath() if (o && !o.contain(t, e)) return !1 n.silent && (i = !0) } var s = n.__hostTarget n = s || n.parent } return i ? rc : !0 } return !1 } function ic(r, t, e) { var n = r.painter return t < 0 || t > n.getWidth() || e < 0 || e > n.getHeight() } var ew = nc, ac = 32, Ni = 7 function rw(r) { for (var t = 0; r >= ac; ) (t |= r & 1), (r >>= 1) return r + t } function oc(r, t, e, n) { var i = t + 1 if (i === e) return 1 if (n(r[i++], r[t]) < 0) { for (; i < e && n(r[i], r[i - 1]) < 0; ) i++ nw(r, t, i) } else for (; i < e && n(r[i], r[i - 1]) >= 0; ) i++ return i - t } function nw(r, t, e) { for (e--; t < e; ) { var n = r[t] ;(r[t++] = r[e]), (r[e--] = n) } } function sc(r, t, e, n, i) { for (n === t && n++; n < e; n++) { for (var a = r[n], o = t, s = n, l; o < s; ) (l = (o + s) >>> 1), i(a, r[l]) < 0 ? (s = l) : (o = l + 1) var u = n - o switch (u) { case 3: r[o + 3] = r[o + 2] case 2: r[o + 2] = r[o + 1] case 1: r[o + 1] = r[o] break default: for (; u > 0; ) (r[o + u] = r[o + u - 1]), u-- } r[o] = a } } function Yl(r, t, e, n, i, a) { var o = 0, s = 0, l = 1 if (a(r, t[e + i]) > 0) { for (s = n - i; l < s && a(r, t[e + i + l]) > 0; ) (o = l), (l = (l << 1) + 1), l <= 0 && (l = s) l > s && (l = s), (o += i), (l += i) } else { for (s = i + 1; l < s && a(r, t[e + i - l]) <= 0; ) (o = l), (l = (l << 1) + 1), l <= 0 && (l = s) l > s && (l = s) var u = o ;(o = i - l), (l = i - u) } for (o++; o < l; ) { var f = o + ((l - o) >>> 1) a(r, t[e + f]) > 0 ? (o = f + 1) : (l = f) } return l } function Zl(r, t, e, n, i, a) { var o = 0, s = 0, l = 1 if (a(r, t[e + i]) < 0) { for (s = i + 1; l < s && a(r, t[e + i - l]) < 0; ) (o = l), (l = (l << 1) + 1), l <= 0 && (l = s) l > s && (l = s) var u = o ;(o = i - l), (l = i - u) } else { for (s = n - i; l < s && a(r, t[e + i + l]) >= 0; ) (o = l), (l = (l << 1) + 1), l <= 0 && (l = s) l > s && (l = s), (o += i), (l += i) } for (o++; o < l; ) { var f = o + ((l - o) >>> 1) a(r, t[e + f]) < 0 ? (l = f) : (o = f + 1) } return l } function iw(r, t) { var e = Ni, n, i, a = 0, o = [] ;(n = []), (i = []) function s(v, d) { ;(n[a] = v), (i[a] = d), (a += 1) } function l() { for (; a > 1; ) { var v = a - 2 if ( (v >= 1 && i[v - 1] <= i[v] + i[v + 1]) || (v >= 2 && i[v - 2] <= i[v] + i[v - 1]) ) i[v - 1] < i[v + 1] && v-- else if (i[v] > i[v + 1]) break f(v) } } function u() { for (; a > 1; ) { var v = a - 2 v > 0 && i[v - 1] < i[v + 1] && v--, f(v) } } function f(v) { var d = n[v], p = i[v], g = n[v + 1], m = i[v + 1] ;(i[v] = p + m), v === a - 3 && ((n[v + 1] = n[v + 2]), (i[v + 1] = i[v + 2])), a-- var y = Zl(r[g], r, d, p, 0, t) ;(d += y), (p -= y), p !== 0 && ((m = Yl(r[d + p - 1], r, g, m, m - 1, t)), m !== 0 && (p <= m ? h(d, p, g, m) : c(d, p, g, m))) } function h(v, d, p, g) { var m = 0 for (m = 0; m < d; m++) o[m] = r[v + m] var y = 0, _ = p, S = v if (((r[S++] = r[_++]), --g == 0)) { for (m = 0; m < d; m++) r[S + m] = o[y + m] return } if (d === 1) { for (m = 0; m < g; m++) r[S + m] = r[_ + m] r[S + g] = o[y] return } for (var w = e, x, b, T; ; ) { ;(x = 0), (b = 0), (T = !1) do if (t(r[_], o[y]) < 0) { if (((r[S++] = r[_++]), b++, (x = 0), --g == 0)) { T = !0 break } } else if (((r[S++] = o[y++]), x++, (b = 0), --d == 1)) { T = !0 break } while ((x | b) < w) if (T) break do { if (((x = Zl(r[_], o, y, d, 0, t)), x !== 0)) { for (m = 0; m < x; m++) r[S + m] = o[y + m] if (((S += x), (y += x), (d -= x), d <= 1)) { T = !0 break } } if (((r[S++] = r[_++]), --g == 0)) { T = !0 break } if (((b = Yl(o[y], r, _, g, 0, t)), b !== 0)) { for (m = 0; m < b; m++) r[S + m] = r[_ + m] if (((S += b), (_ += b), (g -= b), g === 0)) { T = !0 break } } if (((r[S++] = o[y++]), --d == 1)) { T = !0 break } w-- } while (x >= Ni || b >= Ni) if (T) break w < 0 && (w = 0), (w += 2) } if (((e = w), e < 1 && (e = 1), d === 1)) { for (m = 0; m < g; m++) r[S + m] = r[_ + m] r[S + g] = o[y] } else { if (d === 0) throw new Error() for (m = 0; m < d; m++) r[S + m] = o[y + m] } } function c(v, d, p, g) { var m = 0 for (m = 0; m < g; m++) o[m] = r[p + m] var y = v + d - 1, _ = g - 1, S = p + g - 1, w = 0, x = 0 if (((r[S--] = r[y--]), --d == 0)) { for (w = S - (g - 1), m = 0; m < g; m++) r[w + m] = o[m] return } if (g === 1) { for (S -= d, y -= d, x = S + 1, w = y + 1, m = d - 1; m >= 0; m--) r[x + m] = r[w + m] r[S] = o[_] return } for (var b = e; ; ) { var T = 0, C = 0, M = !1 do if (t(o[_], r[y]) < 0) { if (((r[S--] = r[y--]), T++, (C = 0), --d == 0)) { M = !0 break } } else if (((r[S--] = o[_--]), C++, (T = 0), --g == 1)) { M = !0 break } while ((T | C) < b) if (M) break do { if (((T = d - Zl(o[_], r, v, d, d - 1, t)), T !== 0)) { for ( S -= T, y -= T, d -= T, x = S + 1, w = y + 1, m = T - 1; m >= 0; m-- ) r[x + m] = r[w + m] if (d === 0) { M = !0 break } } if (((r[S--] = o[_--]), --g == 1)) { M = !0 break } if (((C = g - Yl(r[y], o, 0, g, g - 1, t)), C !== 0)) { for (S -= C, _ -= C, g -= C, x = S + 1, w = _ + 1, m = 0; m < C; m++) r[x + m] = o[w + m] if (g <= 1) { M = !0 break } } if (((r[S--] = r[y--]), --d == 0)) { M = !0 break } b-- } while (T >= Ni || C >= Ni) if (M) break b < 0 && (b = 0), (b += 2) } if (((e = b), e < 1 && (e = 1), g === 1)) { for (S -= d, y -= d, x = S + 1, w = y + 1, m = d - 1; m >= 0; m--) r[x + m] = r[w + m] r[S] = o[_] } else { if (g === 0) throw new Error() for (w = S - (g - 1), m = 0; m < g; m++) r[w + m] = o[m] } } return { mergeRuns: l, forceMergeRuns: u, pushRun: s } } function uo(r, t, e, n) { e || (e = 0), n || (n = r.length) var i = n - e if (!(i < 2)) { var a = 0 if (i < ac) { ;(a = oc(r, e, n, t)), sc(r, e, n, e + a, t) return } var o = iw(r, t), s = rw(i) do { if (((a = oc(r, e, n, t)), a < s)) { var l = i l > s && (l = s), sc(r, e, e + l, e + a, t), (a = l) } o.pushRun(e, a), o.mergeRuns(), (i -= a), (e += a) } while (i !== 0) o.forceMergeRuns() } } var ae = 1, Fi = 2, Wn = 4, lc = !1 function $l() { lc || ((lc = !0), console.warn( 'z / z2 / zlevel of displayable is invalid, which may cause unexpected errors' )) } function uc(r, t) { return r.zlevel === t.zlevel ? r.z === t.z ? r.z2 - t.z2 : r.z - t.z : r.zlevel - t.zlevel } var aw = (function () { function r() { ;(this._roots = []), (this._displayList = []), (this._displayListLen = 0), (this.displayableSortFunc = uc) } return ( (r.prototype.traverse = function (t, e) { for (var n = 0; n < this._roots.length; n++) this._roots[n].traverse(t, e) }), (r.prototype.getDisplayList = function (t, e) { e = e || !1 var n = this._displayList return (t || !n.length) && this.updateDisplayList(e), n }), (r.prototype.updateDisplayList = function (t) { this._displayListLen = 0 for ( var e = this._roots, n = this._displayList, i = 0, a = e.length; i < a; i++ ) this._updateAndAddDisplayable(e[i], null, t) ;(n.length = this._displayListLen), uo(n, uc) }), (r.prototype._updateAndAddDisplayable = function (t, e, n) { if (!(t.ignore && !n)) { t.beforeUpdate(), t.update(), t.afterUpdate() var i = t.getClipPath() if (t.ignoreClip) e = null else if (i) { e ? (e = e.slice()) : (e = []) for (var a = i, o = t; a; ) (a.parent = o), a.updateTransform(), e.push(a), (o = a), (a = a.getClipPath()) } if (t.childrenRef) { for (var s = t.childrenRef(), l = 0; l < s.length; l++) { var u = s[l] t.__dirty && (u.__dirty |= ae), this._updateAndAddDisplayable(u, e, n) } t.__dirty = 0 } else { var f = t e && e.length ? (f.__clipPaths = e) : f.__clipPaths && f.__clipPaths.length > 0 && (f.__clipPaths = []), isNaN(f.z) && ($l(), (f.z = 0)), isNaN(f.z2) && ($l(), (f.z2 = 0)), isNaN(f.zlevel) && ($l(), (f.zlevel = 0)), (this._displayList[this._displayListLen++] = f) } var h = t.getDecalElement && t.getDecalElement() h && this._updateAndAddDisplayable(h, e, n) var c = t.getTextGuideLine() c && this._updateAndAddDisplayable(c, e, n) var v = t.getTextContent() v && this._updateAndAddDisplayable(v, e, n) } }), (r.prototype.addRoot = function (t) { ;(t.__zr && t.__zr.storage === this) || this._roots.push(t) }), (r.prototype.delRoot = function (t) { if (t instanceof Array) { for (var e = 0, n = t.length; e < n; e++) this.delRoot(t[e]) return } var i = ot(this._roots, t) i >= 0 && this._roots.splice(i, 1) }), (r.prototype.delAllRoots = function () { ;(this._roots = []), (this._displayList = []), (this._displayListLen = 0) }), (r.prototype.getRoots = function () { return this._roots }), (r.prototype.dispose = function () { ;(this._displayList = null), (this._roots = null) }), r ) })(), ow = aw, fc fc = (at.hasGlobalWindow && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window)) || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window)) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame)) || function (r) { return setTimeout(r, 16) } var Xl = fc, fo = { linear: function (r) { return r }, quadraticIn: function (r) { return r * r }, quadraticOut: function (r) { return r * (2 - r) }, quadraticInOut: function (r) { return (r *= 2) < 1 ? 0.5 * r * r : -0.5 * (--r * (r - 2) - 1) }, cubicIn: function (r) { return r * r * r }, cubicOut: function (r) { return --r * r * r + 1 }, cubicInOut: function (r) { return (r *= 2) < 1 ? 0.5 * r * r * r : 0.5 * ((r -= 2) * r * r + 2) }, quarticIn: function (r) { return r * r * r * r }, quarticOut: function (r) { return 1 - --r * r * r * r }, quarticInOut: function (r) { return (r *= 2) < 1 ? 0.5 * r * r * r * r : -0.5 * ((r -= 2) * r * r * r - 2) }, quinticIn: function (r) { return r * r * r * r * r }, quinticOut: function (r) { return --r * r * r * r * r + 1 }, quinticInOut: function (r) { return (r *= 2) < 1 ? 0.5 * r * r * r * r * r : 0.5 * ((r -= 2) * r * r * r * r + 2) }, sinusoidalIn: function (r) { return 1 - Math.cos((r * Math.PI) / 2) }, sinusoidalOut: function (r) { return Math.sin((r * Math.PI) / 2) }, sinusoidalInOut: function (r) { return 0.5 * (1 - Math.cos(Math.PI * r)) }, exponentialIn: function (r) { return r === 0 ? 0 : Math.pow(1024, r - 1) }, exponentialOut: function (r) { return r === 1 ? 1 : 1 - Math.pow(2, -10 * r) }, exponentialInOut: function (r) { return r === 0 ? 0 : r === 1 ? 1 : (r *= 2) < 1 ? 0.5 * Math.pow(1024, r - 1) : 0.5 * (-Math.pow(2, -10 * (r - 1)) + 2) }, circularIn: function (r) { return 1 - Math.sqrt(1 - r * r) }, circularOut: function (r) { return Math.sqrt(1 - --r * r) }, circularInOut: function (r) { return (r *= 2) < 1 ? -0.5 * (Math.sqrt(1 - r * r) - 1) : 0.5 * (Math.sqrt(1 - (r -= 2) * r) + 1) }, elasticIn: function (r) { var t, e = 0.1, n = 0.4 return r === 0 ? 0 : r === 1 ? 1 : (!e || e < 1 ? ((e = 1), (t = n / 4)) : (t = (n * Math.asin(1 / e)) / (2 * Math.PI)), -( e * Math.pow(2, 10 * (r -= 1)) * Math.sin(((r - t) * (2 * Math.PI)) / n) )) }, elasticOut: function (r) { var t, e = 0.1, n = 0.4 return r === 0 ? 0 : r === 1 ? 1 : (!e || e < 1 ? ((e = 1), (t = n / 4)) : (t = (n * Math.asin(1 / e)) / (2 * Math.PI)), e * Math.pow(2, -10 * r) * Math.sin(((r - t) * (2 * Math.PI)) / n) + 1) }, elasticInOut: function (r) { var t, e = 0.1, n = 0.4 return r === 0 ? 0 : r === 1 ? 1 : (!e || e < 1 ? ((e = 1), (t = n / 4)) : (t = (n * Math.asin(1 / e)) / (2 * Math.PI)), (r *= 2) < 1 ? -0.5 * (e * Math.pow(2, 10 * (r -= 1)) * Math.sin(((r - t) * (2 * Math.PI)) / n)) : e * Math.pow(2, -10 * (r -= 1)) * Math.sin(((r - t) * (2 * Math.PI)) / n) * 0.5 + 1) }, backIn: function (r) { var t = 1.70158 return r * r * ((t + 1) * r - t) }, backOut: function (r) { var t = 1.70158 return --r * r * ((t + 1) * r + t) + 1 }, backInOut: function (r) { var t = 1.70158 * 1.525 return (r *= 2) < 1 ? 0.5 * (r * r * ((t + 1) * r - t)) : 0.5 * ((r -= 2) * r * ((t + 1) * r + t) + 2) }, bounceIn: function (r) { return 1 - fo.bounceOut(1 - r) }, bounceOut: function (r) { return r < 1 / 2.75 ? 7.5625 * r * r : r < 2 / 2.75 ? 7.5625 * (r -= 1.5 / 2.75) * r + 0.75 : r < 2.5 / 2.75 ? 7.5625 * (r -= 2.25 / 2.75) * r + 0.9375 : 7.5625 * (r -= 2.625 / 2.75) * r + 0.984375 }, bounceInOut: function (r) { return r < 0.5 ? fo.bounceIn(r * 2) * 0.5 : fo.bounceOut(r * 2 - 1) * 0.5 + 0.5 } }, hc = fo, ho = Math.pow, xr = Math.sqrt, vo = 1e-8, vc = 1e-4, cc = xr(3), co = 1 / 3, He = Nn(), ve = Nn(), Un = Nn() function wr(r) { return r > -vo && r < vo } function dc(r) { return r > vo || r < -vo } function Rt(r, t, e, n, i) { var a = 1 - i return a * a * (a * r + 3 * i * t) + i * i * (i * n + 3 * a * e) } function pc(r, t, e, n, i) { var a = 1 - i return 3 * (((t - r) * a + 2 * (e - t) * i) * a + (n - e) * i * i) } function po(r, t, e, n, i, a) { var o = n + 3 * (t - e) - r, s = 3 * (e - t * 2 + r), l = 3 * (t - r), u = r - i, f = s * s - 3 * o * l, h = s * l - 9 * o * u, c = l * l - 3 * s * u, v = 0 if (wr(f) && wr(h)) if (wr(s)) a[0] = 0 else { var d = -l / s d >= 0 && d <= 1 && (a[v++] = d) } else { var p = h * h - 4 * f * c if (wr(p)) { var g = h / f, d = -s / o + g, m = -g / 2 d >= 0 && d <= 1 && (a[v++] = d), m >= 0 && m <= 1 && (a[v++] = m) } else if (p > 0) { var y = xr(p), _ = f * s + 1.5 * o * (-h + y), S = f * s + 1.5 * o * (-h - y) _ < 0 ? (_ = -ho(-_, co)) : (_ = ho(_, co)), S < 0 ? (S = -ho(-S, co)) : (S = ho(S, co)) var d = (-s - (_ + S)) / (3 * o) d >= 0 && d <= 1 && (a[v++] = d) } else { var w = (2 * f * s - 3 * o * h) / (2 * xr(f * f * f)), x = Math.acos(w) / 3, b = xr(f), T = Math.cos(x), d = (-s - 2 * b * T) / (3 * o), m = (-s + b * (T + cc * Math.sin(x))) / (3 * o), C = (-s + b * (T - cc * Math.sin(x))) / (3 * o) d >= 0 && d <= 1 && (a[v++] = d), m >= 0 && m <= 1 && (a[v++] = m), C >= 0 && C <= 1 && (a[v++] = C) } } return v } function gc(r, t, e, n, i) { var a = 6 * e - 12 * t + 6 * r, o = 9 * t + 3 * n - 3 * r - 9 * e, s = 3 * t - 3 * r, l = 0 if (wr(o)) { if (dc(a)) { var u = -s / a u >= 0 && u <= 1 && (i[l++] = u) } } else { var f = a * a - 4 * o * s if (wr(f)) i[0] = -a / (2 * o) else if (f > 0) { var h = xr(f), u = (-a + h) / (2 * o), c = (-a - h) / (2 * o) u >= 0 && u <= 1 && (i[l++] = u), c >= 0 && c <= 1 && (i[l++] = c) } } return l } function br(r, t, e, n, i, a) { var o = (t - r) * i + r, s = (e - t) * i + t, l = (n - e) * i + e, u = (s - o) * i + o, f = (l - s) * i + s, h = (f - u) * i + u ;(a[0] = r), (a[1] = o), (a[2] = u), (a[3] = h), (a[4] = h), (a[5] = f), (a[6] = l), (a[7] = n) } function mc(r, t, e, n, i, a, o, s, l, u, f) { var h, c = 0.005, v = 1 / 0, d, p, g, m ;(He[0] = l), (He[1] = u) for (var y = 0; y < 1; y += 0.05) (ve[0] = Rt(r, e, i, o, y)), (ve[1] = Rt(t, n, a, s, y)), (g = Fn(He, ve)), g < v && ((h = y), (v = g)) v = 1 / 0 for (var _ = 0; _ < 32 && !(c < vc); _++) (d = h - c), (p = h + c), (ve[0] = Rt(r, e, i, o, d)), (ve[1] = Rt(t, n, a, s, d)), (g = Fn(ve, He)), d >= 0 && g < v ? ((h = d), (v = g)) : ((Un[0] = Rt(r, e, i, o, p)), (Un[1] = Rt(t, n, a, s, p)), (m = Fn(Un, He)), p <= 1 && m < v ? ((h = p), (v = m)) : (c *= 0.5)) return f && ((f[0] = Rt(r, e, i, o, h)), (f[1] = Rt(t, n, a, s, h))), xr(v) } function sw(r, t, e, n, i, a, o, s, l) { for (var u = r, f = t, h = 0, c = 1 / l, v = 1; v <= l; v++) { var d = v * c, p = Rt(r, e, i, o, d), g = Rt(t, n, a, s, d), m = p - u, y = g - f ;(h += Math.sqrt(m * m + y * y)), (u = p), (f = g) } return h } function Gt(r, t, e, n) { var i = 1 - n return i * (i * r + 2 * n * t) + n * n * e } function yc(r, t, e, n) { return 2 * ((1 - n) * (t - r) + n * (e - t)) } function lw(r, t, e, n, i) { var a = r - 2 * t + e, o = 2 * (t - r), s = r - n, l = 0 if (wr(a)) { if (dc(o)) { var u = -s / o u >= 0 && u <= 1 && (i[l++] = u) } } else { var f = o * o - 4 * a * s if (wr(f)) { var u = -o / (2 * a) u >= 0 && u <= 1 && (i[l++] = u) } else if (f > 0) { var h = xr(f), u = (-o + h) / (2 * a), c = (-o - h) / (2 * a) u >= 0 && u <= 1 && (i[l++] = u), c >= 0 && c <= 1 && (i[l++] = c) } } return l } function _c(r, t, e) { var n = r + e - 2 * t return n === 0 ? 0.5 : (r - t) / n } function go(r, t, e, n, i) { var a = (t - r) * n + r, o = (e - t) * n + t, s = (o - a) * n + a ;(i[0] = r), (i[1] = a), (i[2] = s), (i[3] = s), (i[4] = o), (i[5] = e) } function Sc(r, t, e, n, i, a, o, s, l) { var u, f = 0.005, h = 1 / 0 ;(He[0] = o), (He[1] = s) for (var c = 0; c < 1; c += 0.05) { ;(ve[0] = Gt(r, e, i, c)), (ve[1] = Gt(t, n, a, c)) var v = Fn(He, ve) v < h && ((u = c), (h = v)) } h = 1 / 0 for (var d = 0; d < 32 && !(f < vc); d++) { var p = u - f, g = u + f ;(ve[0] = Gt(r, e, i, p)), (ve[1] = Gt(t, n, a, p)) var v = Fn(ve, He) if (p >= 0 && v < h) (u = p), (h = v) else { ;(Un[0] = Gt(r, e, i, g)), (Un[1] = Gt(t, n, a, g)) var m = Fn(Un, He) g <= 1 && m < h ? ((u = g), (h = m)) : (f *= 0.5) } } return l && ((l[0] = Gt(r, e, i, u)), (l[1] = Gt(t, n, a, u))), xr(h) } function uw(r, t, e, n, i, a, o) { for (var s = r, l = t, u = 0, f = 1 / o, h = 1; h <= o; h++) { var c = h * f, v = Gt(r, e, i, c), d = Gt(t, n, a, c), p = v - s, g = d - l ;(u += Math.sqrt(p * p + g * g)), (s = v), (l = d) } return u } var fw = /cubic-bezier\(([0-9,\.e ]+)\)/ function xc(r) { var t = r && fw.exec(r) if (t) { var e = t[1].split(','), n = +Ge(e[0]), i = +Ge(e[1]), a = +Ge(e[2]), o = +Ge(e[3]) if (isNaN(n + i + a + o)) return var s = [] return function (l) { return l <= 0 ? 0 : l >= 1 ? 1 : po(0, n, a, 1, l, s) && Rt(0, i, o, 1, s[0]) } } } var hw = (function () { function r(t) { ;(this._inited = !1), (this._startTime = 0), (this._pausedTime = 0), (this._paused = !1), (this._life = t.life || 1e3), (this._delay = t.delay || 0), (this.loop = t.loop || !1), (this.onframe = t.onframe || $t), (this.ondestroy = t.ondestroy || $t), (this.onrestart = t.onrestart || $t), t.easing && this.setEasing(t.easing) } return ( (r.prototype.step = function (t, e) { if ( (this._inited || ((this._startTime = t + this._delay), (this._inited = !0)), this._paused) ) { this._pausedTime += e return } var n = this._life, i = t - this._startTime - this._pausedTime, a = i / n a < 0 && (a = 0), (a = Math.min(a, 1)) var o = this.easingFunc, s = o ? o(a) : a if ((this.onframe(s), a === 1)) if (this.loop) { var l = i % n ;(this._startTime = t - l), (this._pausedTime = 0), this.onrestart() } else return !0 return !1 }), (r.prototype.pause = function () { this._paused = !0 }), (r.prototype.resume = function () { this._paused = !1 }), (r.prototype.setEasing = function (t) { ;(this.easing = t), (this.easingFunc = Q(t) ? t : hc[t] || xc(t)) }), r ) })(), vw = hw, wc = (function () { function r(t) { this.value = t } return r })(), cw = (function () { function r() { this._len = 0 } return ( (r.prototype.insert = function (t) { var e = new wc(t) return this.insertEntry(e), e }), (r.prototype.insertEntry = function (t) { this.head ? ((this.tail.next = t), (t.prev = this.tail), (t.next = null), (this.tail = t)) : (this.head = this.tail = t), this._len++ }), (r.prototype.remove = function (t) { var e = t.prev, n = t.next e ? (e.next = n) : (this.head = n), n ? (n.prev = e) : (this.tail = e), (t.next = t.prev = null), this._len-- }), (r.prototype.len = function () { return this._len }), (r.prototype.clear = function () { ;(this.head = this.tail = null), (this._len = 0) }), r ) })(), dw = (function () { function r(t) { ;(this._list = new cw()), (this._maxSize = 10), (this._map = {}), (this._maxSize = t) } return ( (r.prototype.put = function (t, e) { var n = this._list, i = this._map, a = null if (i[t] == null) { var o = n.len(), s = this._lastRemovedEntry if (o >= this._maxSize && o > 0) { var l = n.head n.remove(l), delete i[l.key], (a = l.value), (this._lastRemovedEntry = l) } s ? (s.value = e) : (s = new wc(e)), (s.key = t), n.insertEntry(s), (i[t] = s) } return a }), (r.prototype.get = function (t) { var e = this._map[t], n = this._list if (e != null) return e !== n.tail && (n.remove(e), n.insertEntry(e)), e.value }), (r.prototype.clear = function () { this._list.clear(), (this._map = {}) }), (r.prototype.len = function () { return this._list.len() }), r ) })(), zi = dw, bc = { 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] } function Tr(r) { return (r = Math.round(r)), r < 0 ? 0 : r > 255 ? 255 : r } function ql(r) { return r < 0 ? 0 : r > 1 ? 1 : r } function Kl(r) { var t = r return t.length && t.charAt(t.length - 1) === '%' ? Tr((parseFloat(t) / 100) * 255) : Tr(parseInt(t, 10)) } function mo(r) { var t = r return t.length && t.charAt(t.length - 1) === '%' ? ql(parseFloat(t) / 100) : ql(parseFloat(t)) } function Ql(r, t, e) { return ( e < 0 ? (e += 1) : e > 1 && (e -= 1), e * 6 < 1 ? r + (t - r) * e * 6 : e * 2 < 1 ? t : e * 3 < 2 ? r + (t - r) * (2 / 3 - e) * 6 : r ) } function yo(r, t, e) { return r + (t - r) * e } function ce(r, t, e, n, i) { return (r[0] = t), (r[1] = e), (r[2] = n), (r[3] = i), r } function Jl(r, t) { return (r[0] = t[0]), (r[1] = t[1]), (r[2] = t[2]), (r[3] = t[3]), r } var Tc = new zi(20), _o = null function Yn(r, t) { _o && Jl(_o, t), (_o = Tc.put(r, _o || t.slice())) } function ir(r, t) { if (!!r) { t = t || [] var e = Tc.get(r) if (e) return Jl(t, e) r = r + '' var n = r.replace(/ /g, '').toLowerCase() if (n in bc) return Jl(t, bc[n]), Yn(r, t), t var i = n.length if (n.charAt(0) === '#') { if (i === 4 || i === 5) { var a = parseInt(n.slice(1, 4), 16) if (!(a >= 0 && a <= 4095)) { ce(t, 0, 0, 0, 1) return } return ( ce( t, ((a & 3840) >> 4) | ((a & 3840) >> 8), (a & 240) | ((a & 240) >> 4), (a & 15) | ((a & 15) << 4), i === 5 ? parseInt(n.slice(4), 16) / 15 : 1 ), Yn(r, t), t ) } else if (i === 7 || i === 9) { var a = parseInt(n.slice(1, 7), 16) if (!(a >= 0 && a <= 16777215)) { ce(t, 0, 0, 0, 1) return } return ( ce( t, (a & 16711680) >> 16, (a & 65280) >> 8, a & 255, i === 9 ? parseInt(n.slice(7), 16) / 255 : 1 ), Yn(r, t), t ) } return } var o = n.indexOf('('), s = n.indexOf(')') if (o !== -1 && s + 1 === i) { var l = n.substr(0, o), u = n.substr(o + 1, s - (o + 1)).split(','), f = 1 switch (l) { case 'rgba': if (u.length !== 4) return u.length === 3 ? ce(t, +u[0], +u[1], +u[2], 1) : ce(t, 0, 0, 0, 1) f = mo(u.pop()) case 'rgb': if (u.length !== 3) { ce(t, 0, 0, 0, 1) return } return ce(t, Kl(u[0]), Kl(u[1]), Kl(u[2]), f), Yn(r, t), t case 'hsla': if (u.length !== 4) { ce(t, 0, 0, 0, 1) return } return (u[3] = mo(u[3])), Cc(u, t), Yn(r, t), t case 'hsl': if (u.length !== 3) { ce(t, 0, 0, 0, 1) return } return Cc(u, t), Yn(r, t), t default: return } } ce(t, 0, 0, 0, 1) } } function Cc(r, t) { var e = (((parseFloat(r[0]) % 360) + 360) % 360) / 360, n = mo(r[1]), i = mo(r[2]), a = i <= 0.5 ? i * (n + 1) : i + n - i * n, o = i * 2 - a return ( (t = t || []), ce( t, Tr(Ql(o, a, e + 1 / 3) * 255), Tr(Ql(o, a, e) * 255), Tr(Ql(o, a, e - 1 / 3) * 255), 1 ), r.length === 4 && (t[3] = r[3]), t ) } function Ac(r, t) { var e = ir(r) if (e) { for (var n = 0; n < 3; n++) t < 0 ? (e[n] = (e[n] * (1 - t)) | 0) : (e[n] = ((255 - e[n]) * t + e[n]) | 0), e[n] > 255 ? (e[n] = 255) : e[n] < 0 && (e[n] = 0) return So(e, e.length === 4 ? 'rgba' : 'rgb') } } function pw(r, t, e) { if (!(!(t && t.length) || !(r >= 0 && r <= 1))) { var n = r * (t.length - 1), i = Math.floor(n), a = Math.ceil(n), o = ir(t[i]), s = ir(t[a]), l = n - i, u = So( [ Tr(yo(o[0], s[0], l)), Tr(yo(o[1], s[1], l)), Tr(yo(o[2], s[2], l)), ql(yo(o[3], s[3], l)) ], 'rgba' ) return e ? { color: u, leftIndex: i, rightIndex: a, value: n } : u } } function So(r, t) { if (!(!r || !r.length)) { var e = r[0] + ',' + r[1] + ',' + r[2] return ( (t === 'rgba' || t === 'hsva' || t === 'hsla') && (e += ',' + r[3]), t + '(' + e + ')' ) } } function xo(r, t) { var e = ir(r) return e ? ((0.299 * e[0] + 0.587 * e[1] + 0.114 * e[2]) * e[3]) / 255 + (1 - e[3]) * t : 0 } function gw(r) { return r.type === 'linear' } function mw(r) { return r.type === 'radial' } ;(function () { return at.hasGlobalWindow && Q(window.btoa) ? function (r) { return window.btoa(unescape(r)) } : typeof Buffer != 'undefined' ? function (r) { return Buffer.from(r).toString('base64') } : function (r) { return null } })() var jl = Array.prototype.slice function ar(r, t, e) { return (t - r) * e + r } function tu(r, t, e, n) { for (var i = t.length, a = 0; a < i; a++) r[a] = ar(t[a], e[a], n) return r } function yw(r, t, e, n) { for (var i = t.length, a = i && t[0].length, o = 0; o < i; o++) { r[o] || (r[o] = []) for (var s = 0; s < a; s++) r[o][s] = ar(t[o][s], e[o][s], n) } return r } function wo(r, t, e, n) { for (var i = t.length, a = 0; a < i; a++) r[a] = t[a] + e[a] * n return r } function Mc(r, t, e, n) { for (var i = t.length, a = i && t[0].length, o = 0; o < i; o++) { r[o] || (r[o] = []) for (var s = 0; s < a; s++) r[o][s] = t[o][s] + e[o][s] * n } return r } function _w(r, t) { for ( var e = r.length, n = t.length, i = e > n ? t : r, a = Math.min(e, n), o = i[a - 1] || { color: [0, 0, 0, 0], offset: 0 }, s = a; s < Math.max(e, n); s++ ) i.push({ offset: o.offset, color: o.color.slice() }) } function Sw(r, t, e) { var n = r, i = t if (!(!n.push || !i.push)) { var a = n.length, o = i.length if (a !== o) { var s = a > o if (s) n.length = o else for (var l = a; l < o; l++) n.push(e === 1 ? i[l] : jl.call(i[l])) } for (var u = n[0] && n[0].length, l = 0; l < n.length; l++) if (e === 1) isNaN(n[l]) && (n[l] = i[l]) else for (var f = 0; f < u; f++) isNaN(n[l][f]) && (n[l][f] = i[l][f]) } } function bo(r) { if (Zt(r)) { var t = r.length if (Zt(r[0])) { for (var e = [], n = 0; n < t; n++) e.push(jl.call(r[n])) return e } return jl.call(r) } return r } function To(r) { return ( (r[0] = Math.floor(r[0]) || 0), (r[1] = Math.floor(r[1]) || 0), (r[2] = Math.floor(r[2]) || 0), (r[3] = r[3] == null ? 1 : r[3]), 'rgba(' + r.join(',') + ')' ) } function xw(r) { return Zt(r && r[0]) ? 2 : 1 } var Co = 0, Ao = 1, Dc = 2, Vi = 3, eu = 4, ru = 5, Ic = 6 function Lc(r) { return r === eu || r === ru } function Mo(r) { return r === Ao || r === Dc } var Gi = [0, 0, 0, 0], ww = (function () { function r(t) { ;(this.keyframes = []), (this.discrete = !1), (this._invalid = !1), (this._needsSort = !1), (this._lastFr = 0), (this._lastFrP = 0), (this.propName = t) } return ( (r.prototype.isFinished = function () { return this._finished }), (r.prototype.setFinished = function () { ;(this._finished = !0), this._additiveTrack && this._additiveTrack.setFinished() }), (r.prototype.needsAnimate = function () { return this.keyframes.length >= 1 }), (r.prototype.getAdditiveTrack = function () { return this._additiveTrack }), (r.prototype.addKeyframe = function (t, e, n) { this._needsSort = !0 var i = this.keyframes, a = i.length, o = !1, s = Ic, l = e if (Zt(e)) { var u = xw(e) ;(s = u), ((u === 1 && !dt(e[0])) || (u === 2 && !dt(e[0][0]))) && (o = !0) } else if (dt(e) && !ao(e)) s = Co else if (W(e)) if (!isNaN(+e)) s = Co else { var f = ir(e) f && ((l = f), (s = Vi)) } else if (io(e)) { var h = N({}, l) ;(h.colorStops = G(e.colorStops, function (v) { return { offset: v.offset, color: ir(v.color) } })), gw(e) ? (s = eu) : mw(e) && (s = ru), (l = h) } a === 0 ? (this.valType = s) : (s !== this.valType || s === Ic) && (o = !0), (this.discrete = this.discrete || o) var c = { time: t, value: l, rawValue: e, percent: 0 } return ( n && ((c.easing = n), (c.easingFunc = Q(n) ? n : hc[n] || xc(n))), i.push(c), c ) }), (r.prototype.prepare = function (t, e) { var n = this.keyframes this._needsSort && n.sort(function (p, g) { return p.time - g.time }) for ( var i = this.valType, a = n.length, o = n[a - 1], s = this.discrete, l = Mo(i), u = Lc(i), f = 0; f < a; f++ ) { var h = n[f], c = h.value, v = o.value ;(h.percent = h.time / t), s || (l && f !== a - 1 ? Sw(c, v, i) : u && _w(c.colorStops, v.colorStops)) } if ( !s && i !== ru && e && this.needsAnimate() && e.needsAnimate() && i === e.valType && !e._finished ) { this._additiveTrack = e for (var d = n[0].value, f = 0; f < a; f++) i === Co ? (n[f].additiveValue = n[f].value - d) : i === Vi ? (n[f].additiveValue = wo([], n[f].value, d, -1)) : Mo(i) && (n[f].additiveValue = i === Ao ? wo([], n[f].value, d, -1) : Mc([], n[f].value, d, -1)) } }), (r.prototype.step = function (t, e) { if (!this._finished) { this._additiveTrack && this._additiveTrack._finished && (this._additiveTrack = null) var n = this._additiveTrack != null, i = n ? 'additiveValue' : 'value', a = this.valType, o = this.keyframes, s = o.length, l = this.propName, u = a === Vi, f, h = this._lastFr, c = Math.min, v, d if (s === 1) v = d = o[0] else { if (e < 0) f = 0 else if (e < this._lastFrP) { var p = c(h + 1, s - 1) for (f = p; f >= 0 && !(o[f].percent <= e); f--); f = c(f, s - 2) } else { for (f = h; f < s && !(o[f].percent > e); f++); f = c(f - 1, s - 2) } ;(d = o[f + 1]), (v = o[f]) } if (!!(v && d)) { ;(this._lastFr = f), (this._lastFrP = e) var g = d.percent - v.percent, m = g === 0 ? 1 : c((e - v.percent) / g, 1) d.easingFunc && (m = d.easingFunc(m)) var y = n ? this._additiveValue : u ? Gi : t[l] if ( ((Mo(a) || u) && !y && (y = this._additiveValue = []), this.discrete) ) t[l] = m < 1 ? v.rawValue : d.rawValue else if (Mo(a)) a === Ao ? tu(y, v[i], d[i], m) : yw(y, v[i], d[i], m) else if (Lc(a)) { var _ = v[i], S = d[i], w = a === eu ;(t[l] = { type: w ? 'linear' : 'radial', x: ar(_.x, S.x, m), y: ar(_.y, S.y, m), colorStops: G(_.colorStops, function (b, T) { var C = S.colorStops[T] return { offset: ar(b.offset, C.offset, m), color: To(tu([], b.color, C.color, m)) } }), global: S.global }), w ? ((t[l].x2 = ar(_.x2, S.x2, m)), (t[l].y2 = ar(_.y2, S.y2, m))) : (t[l].r = ar(_.r, S.r, m)) } else if (u) tu(y, v[i], d[i], m), n || (t[l] = To(y)) else { var x = ar(v[i], d[i], m) n ? (this._additiveValue = x) : (t[l] = x) } n && this._addToTarget(t) } } }), (r.prototype._addToTarget = function (t) { var e = this.valType, n = this.propName, i = this._additiveValue e === Co ? (t[n] = t[n] + i) : e === Vi ? (ir(t[n], Gi), wo(Gi, Gi, i, 1), (t[n] = To(Gi))) : e === Ao ? wo(t[n], t[n], i, 1) : e === Dc && Mc(t[n], t[n], i, 1) }), r ) })(), bw = (function () { function r(t, e, n, i) { if ( ((this._tracks = {}), (this._trackKeys = []), (this._maxTime = 0), (this._started = 0), (this._clip = null), (this._target = t), (this._loop = e), e && i) ) { Pl("Can' use additive animation on looped animation.") return } ;(this._additiveAnimators = i), (this._allowDiscrete = n) } return ( (r.prototype.getMaxTime = function () { return this._maxTime }), (r.prototype.getDelay = function () { return this._delay }), (r.prototype.getLoop = function () { return this._loop }), (r.prototype.getTarget = function () { return this._target }), (r.prototype.changeTarget = function (t) { this._target = t }), (r.prototype.when = function (t, e, n) { return this.whenWithKeys(t, e, xt(e), n) }), (r.prototype.whenWithKeys = function (t, e, n, i) { for (var a = this._tracks, o = 0; o < n.length; o++) { var s = n[o], l = a[s] if (!l) { l = a[s] = new ww(s) var u = void 0, f = this._getAdditiveTrack(s) if (f) { var h = f.keyframes, c = h[h.length - 1] ;(u = c && c.value), f.valType === Vi && u && (u = To(u)) } else u = this._target[s] if (u == null) continue t > 0 && l.addKeyframe(0, bo(u), i), this._trackKeys.push(s) } l.addKeyframe(t, bo(e[s]), i) } return (this._maxTime = Math.max(this._maxTime, t)), this }), (r.prototype.pause = function () { this._clip.pause(), (this._paused = !0) }), (r.prototype.resume = function () { this._clip.resume(), (this._paused = !1) }), (r.prototype.isPaused = function () { return !!this._paused }), (r.prototype.duration = function (t) { return (this._maxTime = t), (this._force = !0), this }), (r.prototype._doneCallback = function () { this._setTracksFinished(), (this._clip = null) var t = this._doneCbs if (t) for (var e = t.length, n = 0; n < e; n++) t[n].call(this) }), (r.prototype._abortedCallback = function () { this._setTracksFinished() var t = this.animation, e = this._abortedCbs if ((t && t.removeClip(this._clip), (this._clip = null), e)) for (var n = 0; n < e.length; n++) e[n].call(this) }), (r.prototype._setTracksFinished = function () { for ( var t = this._tracks, e = this._trackKeys, n = 0; n < e.length; n++ ) t[e[n]].setFinished() }), (r.prototype._getAdditiveTrack = function (t) { var e, n = this._additiveAnimators if (n) for (var i = 0; i < n.length; i++) { var a = n[i].getTrack(t) a && (e = a) } return e }), (r.prototype.start = function (t) { if (!(this._started > 0)) { this._started = 1 for ( var e = this, n = [], i = this._maxTime || 0, a = 0; a < this._trackKeys.length; a++ ) { var o = this._trackKeys[a], s = this._tracks[o], l = this._getAdditiveTrack(o), u = s.keyframes, f = u.length if ((s.prepare(i, l), s.needsAnimate())) if (!this._allowDiscrete && s.discrete) { var h = u[f - 1] h && (e._target[s.propName] = h.rawValue), s.setFinished() } else n.push(s) } if (n.length || this._force) { var c = new vw({ life: i, loop: this._loop, delay: this._delay || 0, onframe: function (v) { e._started = 2 var d = e._additiveAnimators if (d) { for (var p = !1, g = 0; g < d.length; g++) if (d[g]._clip) { p = !0 break } p || (e._additiveAnimators = null) } for (var g = 0; g < n.length; g++) n[g].step(e._target, v) var m = e._onframeCbs if (m) for (var g = 0; g < m.length; g++) m[g](e._target, v) }, ondestroy: function () { e._doneCallback() } }) ;(this._clip = c), this.animation && this.animation.addClip(c), t && c.setEasing(t) } else this._doneCallback() return this } }), (r.prototype.stop = function (t) { if (!!this._clip) { var e = this._clip t && e.onframe(1), this._abortedCallback() } }), (r.prototype.delay = function (t) { return (this._delay = t), this }), (r.prototype.during = function (t) { return ( t && (this._onframeCbs || (this._onframeCbs = []), this._onframeCbs.push(t)), this ) }), (r.prototype.done = function (t) { return ( t && (this._doneCbs || (this._doneCbs = []), this._doneCbs.push(t)), this ) }), (r.prototype.aborted = function (t) { return ( t && (this._abortedCbs || (this._abortedCbs = []), this._abortedCbs.push(t)), this ) }), (r.prototype.getClip = function () { return this._clip }), (r.prototype.getTrack = function (t) { return this._tracks[t] }), (r.prototype.getTracks = function () { var t = this return G(this._trackKeys, function (e) { return t._tracks[e] }) }), (r.prototype.stopTracks = function (t, e) { if (!t.length || !this._clip) return !0 for ( var n = this._tracks, i = this._trackKeys, a = 0; a < t.length; a++ ) { var o = n[t[a]] o && !o.isFinished() && (e ? o.step(this._target, 1) : this._started === 1 && o.step(this._target, 0), o.setFinished()) } for (var s = !0, a = 0; a < i.length; a++) if (!n[i[a]].isFinished()) { s = !1 break } return s && this._abortedCallback(), s }), (r.prototype.saveTo = function (t, e, n) { if (!!t) { e = e || this._trackKeys for (var i = 0; i < e.length; i++) { var a = e[i], o = this._tracks[a] if (!(!o || o.isFinished())) { var s = o.keyframes, l = s[n ? 0 : s.length - 1] l && (t[a] = bo(l.rawValue)) } } } }), (r.prototype.__changeFinalValue = function (t, e) { e = e || xt(t) for (var n = 0; n < e.length; n++) { var i = e[n], a = this._tracks[i] if (!!a) { var o = a.keyframes if (o.length > 1) { var s = o.pop() a.addKeyframe(s.time, t[i]), a.prepare(this._maxTime, a.getAdditiveTrack()) } } } }), r ) })(), nu = bw function Zn() { return new Date().getTime() } var Tw = (function (r) { B(t, r) function t(e) { var n = r.call(this) || this return ( (n._running = !1), (n._time = 0), (n._pausedTime = 0), (n._pauseStart = 0), (n._paused = !1), (e = e || {}), (n.stage = e.stage || {}), n ) } return ( (t.prototype.addClip = function (e) { e.animation && this.removeClip(e), this._head ? ((this._tail.next = e), (e.prev = this._tail), (e.next = null), (this._tail = e)) : (this._head = this._tail = e), (e.animation = this) }), (t.prototype.addAnimator = function (e) { e.animation = this var n = e.getClip() n && this.addClip(n) }), (t.prototype.removeClip = function (e) { if (!!e.animation) { var n = e.prev, i = e.next n ? (n.next = i) : (this._head = i), i ? (i.prev = n) : (this._tail = n), (e.next = e.prev = e.animation = null) } }), (t.prototype.removeAnimator = function (e) { var n = e.getClip() n && this.removeClip(n), (e.animation = null) }), (t.prototype.update = function (e) { for ( var n = Zn() - this._pausedTime, i = n - this._time, a = this._head; a; ) { var o = a.next, s = a.step(n, i) s && (a.ondestroy(), this.removeClip(a)), (a = o) } ;(this._time = n), e || (this.trigger('frame', i), this.stage.update && this.stage.update()) }), (t.prototype._startLoop = function () { var e = this this._running = !0 function n() { e._running && (Xl(n), !e._paused && e.update()) } Xl(n) }), (t.prototype.start = function () { this._running || ((this._time = Zn()), (this._pausedTime = 0), this._startLoop()) }), (t.prototype.stop = function () { this._running = !1 }), (t.prototype.pause = function () { this._paused || ((this._pauseStart = Zn()), (this._paused = !0)) }), (t.prototype.resume = function () { this._paused && ((this._pausedTime += Zn() - this._pauseStart), (this._paused = !1)) }), (t.prototype.clear = function () { for (var e = this._head; e; ) { var n = e.next ;(e.prev = e.next = e.animation = null), (e = n) } this._head = this._tail = null }), (t.prototype.isFinished = function () { return this._head == null }), (t.prototype.animate = function (e, n) { ;(n = n || {}), this.start() var i = new nu(e, n.loop) return this.addAnimator(i), i }), t ) })(fe), Cw = Tw, Aw = 300, iu = at.domSupported, au = (function () { var r = [ 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout', 'mouseup', 'mousedown', 'mousemove', 'contextmenu' ], t = ['touchstart', 'touchend', 'touchmove'], e = { pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1 }, n = G(r, function (i) { var a = i.replace('mouse', 'pointer') return e.hasOwnProperty(a) ? a : i }) return { mouse: r, touch: t, pointer: n } })(), Pc = { mouse: ['mousemove', 'mouseup'], pointer: ['pointermove', 'pointerup'] }, Rc = !1 function ou(r) { var t = r.pointerType return t === 'pen' || t === 'touch' } function Mw(r) { ;(r.touching = !0), r.touchTimer != null && (clearTimeout(r.touchTimer), (r.touchTimer = null)), (r.touchTimer = setTimeout(function () { ;(r.touching = !1), (r.touchTimer = null) }, 700)) } function su(r) { r && (r.zrByTouch = !0) } function Dw(r, t) { return he(r.dom, new Iw(r, t), !0) } function Ec(r, t) { for ( var e = t, n = !1; e && e.nodeType !== 9 && !(n = e.domBelongToZr || (e !== t && e === r.painterRoot)); ) e = e.parentNode return n } var Iw = (function () { function r(t, e) { ;(this.stopPropagation = $t), (this.stopImmediatePropagation = $t), (this.preventDefault = $t), (this.type = e.type), (this.target = this.currentTarget = t.dom), (this.pointerType = e.pointerType), (this.clientX = e.clientX), (this.clientY = e.clientY) } return r })(), Me = { mousedown: function (r) { ;(r = he(this.dom, r)), (this.__mayPointerCapture = [r.zrX, r.zrY]), this.trigger('mousedown', r) }, mousemove: function (r) { r = he(this.dom, r) var t = this.__mayPointerCapture t && (r.zrX !== t[0] || r.zrY !== t[1]) && this.__togglePointerCapture(!0), this.trigger('mousemove', r) }, mouseup: function (r) { ;(r = he(this.dom, r)), this.__togglePointerCapture(!1), this.trigger('mouseup', r) }, mouseout: function (r) { r = he(this.dom, r) var t = r.toElement || r.relatedTarget Ec(this, t) || (this.__pointerCapturing && (r.zrEventControl = 'no_globalout'), this.trigger('mouseout', r)) }, wheel: function (r) { ;(Rc = !0), (r = he(this.dom, r)), this.trigger('mousewheel', r) }, mousewheel: function (r) { Rc || ((r = he(this.dom, r)), this.trigger('mousewheel', r)) }, touchstart: function (r) { ;(r = he(this.dom, r)), su(r), (this.__lastTouchMoment = new Date()), this.handler.processGesture(r, 'start'), Me.mousemove.call(this, r), Me.mousedown.call(this, r) }, touchmove: function (r) { ;(r = he(this.dom, r)), su(r), this.handler.processGesture(r, 'change'), Me.mousemove.call(this, r) }, touchend: function (r) { ;(r = he(this.dom, r)), su(r), this.handler.processGesture(r, 'end'), Me.mouseup.call(this, r), +new Date() - +this.__lastTouchMoment < Aw && Me.click.call(this, r) }, pointerdown: function (r) { Me.mousedown.call(this, r) }, pointermove: function (r) { ou(r) || Me.mousemove.call(this, r) }, pointerup: function (r) { Me.mouseup.call(this, r) }, pointerout: function (r) { ou(r) || Me.mouseout.call(this, r) } } A(['click', 'dblclick', 'contextmenu'], function (r) { Me[r] = function (t) { ;(t = he(this.dom, t)), this.trigger(r, t) } }) var lu = { pointermove: function (r) { ou(r) || lu.mousemove.call(this, r) }, pointerup: function (r) { lu.mouseup.call(this, r) }, mousemove: function (r) { this.trigger('mousemove', r) }, mouseup: function (r) { var t = this.__pointerCapturing this.__togglePointerCapture(!1), this.trigger('mouseup', r), t && ((r.zrEventControl = 'only_globalout'), this.trigger('mouseout', r)) } } function Lw(r, t) { var e = t.domHandlers at.pointerEventsSupported ? A(au.pointer, function (n) { Do(t, n, function (i) { e[n].call(r, i) }) }) : (at.touchEventsSupported && A(au.touch, function (n) { Do(t, n, function (i) { e[n].call(r, i), Mw(t) }) }), A(au.mouse, function (n) { Do(t, n, function (i) { ;(i = Hl(i)), t.touching || e[n].call(r, i) }) })) } function Pw(r, t) { at.pointerEventsSupported ? A(Pc.pointer, e) : at.touchEventsSupported || A(Pc.mouse, e) function e(n) { function i(a) { ;(a = Hl(a)), Ec(r, a.target) || ((a = Dw(r, a)), t.domHandlers[n].call(r, a)) } Do(t, n, i, { capture: !0 }) } } function Do(r, t, e, n) { ;(r.mounted[t] = e), (r.listenerOpts[t] = n), Wl(r.domTarget, t, e, n) } function uu(r) { var t = r.mounted for (var e in t) t.hasOwnProperty(e) && $x(r.domTarget, e, t[e], r.listenerOpts[e]) r.mounted = {} } var Oc = (function () { function r(t, e) { ;(this.mounted = {}), (this.listenerOpts = {}), (this.touching = !1), (this.domTarget = t), (this.domHandlers = e) } return r })(), Rw = (function (r) { B(t, r) function t(e, n) { var i = r.call(this) || this return ( (i.__pointerCapturing = !1), (i.dom = e), (i.painterRoot = n), (i._localHandlerScope = new Oc(e, Me)), iu && (i._globalHandlerScope = new Oc(document, lu)), Lw(i, i._localHandlerScope), i ) } return ( (t.prototype.dispose = function () { uu(this._localHandlerScope), iu && uu(this._globalHandlerScope) }), (t.prototype.setCursor = function (e) { this.dom.style && (this.dom.style.cursor = e || 'default') }), (t.prototype.__togglePointerCapture = function (e) { if ( ((this.__mayPointerCapture = null), iu && +this.__pointerCapturing ^ +e) ) { this.__pointerCapturing = e var n = this._globalHandlerScope e ? Pw(this, n) : uu(n) } }), t ) })(fe), Ew = Rw, kc = 1 at.hasGlobalWindow && (kc = Math.max( window.devicePixelRatio || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI) || 1, 1 )) var Io = kc, fu = 0.4, hu = '#333', vu = '#ccc', Ow = '#eee' function Hi() { return [1, 0, 0, 1, 0, 0] } function cu(r) { return ( (r[0] = 1), (r[1] = 0), (r[2] = 0), (r[3] = 1), (r[4] = 0), (r[5] = 0), r ) } function kw(r, t) { return ( (r[0] = t[0]), (r[1] = t[1]), (r[2] = t[2]), (r[3] = t[3]), (r[4] = t[4]), (r[5] = t[5]), r ) } function $n(r, t, e) { var n = t[0] * e[0] + t[2] * e[1], i = t[1] * e[0] + t[3] * e[1], a = t[0] * e[2] + t[2] * e[3], o = t[1] * e[2] + t[3] * e[3], s = t[0] * e[4] + t[2] * e[5] + t[4], l = t[1] * e[4] + t[3] * e[5] + t[5] return ( (r[0] = n), (r[1] = i), (r[2] = a), (r[3] = o), (r[4] = s), (r[5] = l), r ) } function du(r, t, e) { return ( (r[0] = t[0]), (r[1] = t[1]), (r[2] = t[2]), (r[3] = t[3]), (r[4] = t[4] + e[0]), (r[5] = t[5] + e[1]), r ) } function pu(r, t, e) { var n = t[0], i = t[2], a = t[4], o = t[1], s = t[3], l = t[5], u = Math.sin(e), f = Math.cos(e) return ( (r[0] = n * f + o * u), (r[1] = -n * u + o * f), (r[2] = i * f + s * u), (r[3] = -i * u + f * s), (r[4] = f * a + u * l), (r[5] = f * l - u * a), r ) } function Bw(r, t, e) { var n = e[0], i = e[1] return ( (r[0] = t[0] * n), (r[1] = t[1] * i), (r[2] = t[2] * n), (r[3] = t[3] * i), (r[4] = t[4] * n), (r[5] = t[5] * i), r ) } function Lo(r, t) { var e = t[0], n = t[2], i = t[4], a = t[1], o = t[3], s = t[5], l = e * o - a * n return l ? ((l = 1 / l), (r[0] = o * l), (r[1] = -a * l), (r[2] = -n * l), (r[3] = e * l), (r[4] = (n * s - o * i) * l), (r[5] = (a * i - e * s) * l), r) : null } var Bc = cu, Nc = 5e-5 function Zr(r) { return r > Nc || r < -Nc } var $r = [], Xn = [], gu = Hi(), mu = Math.abs, Wi = (function () { function r() {} return ( (r.prototype.getLocalTransform = function (t) { return r.getLocalTransform(this, t) }), (r.prototype.setPosition = function (t) { ;(this.x = t[0]), (this.y = t[1]) }), (r.prototype.setScale = function (t) { ;(this.scaleX = t[0]), (this.scaleY = t[1]) }), (r.prototype.setSkew = function (t) { ;(this.skewX = t[0]), (this.skewY = t[1]) }), (r.prototype.setOrigin = function (t) { ;(this.originX = t[0]), (this.originY = t[1]) }), (r.prototype.needLocalTransform = function () { return ( Zr(this.rotation) || Zr(this.x) || Zr(this.y) || Zr(this.scaleX - 1) || Zr(this.scaleY - 1) || Zr(this.skewX) || Zr(this.skewY) ) }), (r.prototype.updateTransform = function () { var t = this.parent && this.parent.transform, e = this.needLocalTransform(), n = this.transform if (!(e || t)) { n && Bc(n) return } ;(n = n || Hi()), e ? this.getLocalTransform(n) : Bc(n), t && (e ? $n(n, t, n) : kw(n, t)), (this.transform = n), this._resolveGlobalScaleRatio(n) }), (r.prototype._resolveGlobalScaleRatio = function (t) { var e = this.globalScaleRatio if (e != null && e !== 1) { this.getGlobalScale($r) var n = $r[0] < 0 ? -1 : 1, i = $r[1] < 0 ? -1 : 1, a = (($r[0] - n) * e + n) / $r[0] || 0, o = (($r[1] - i) * e + i) / $r[1] || 0 ;(t[0] *= a), (t[1] *= a), (t[2] *= o), (t[3] *= o) } ;(this.invTransform = this.invTransform || Hi()), Lo(this.invTransform, t) }), (r.prototype.getComputedTransform = function () { for (var t = this, e = []; t; ) e.push(t), (t = t.parent) for (; (t = e.pop()); ) t.updateTransform() return this.transform }), (r.prototype.setLocalTransform = function (t) { if (!!t) { var e = t[0] * t[0] + t[1] * t[1], n = t[2] * t[2] + t[3] * t[3], i = Math.atan2(t[1], t[0]), a = Math.PI / 2 + i - Math.atan2(t[3], t[2]) ;(n = Math.sqrt(n) * Math.cos(a)), (e = Math.sqrt(e)), (this.skewX = a), (this.skewY = 0), (this.rotation = -i), (this.x = +t[4]), (this.y = +t[5]), (this.scaleX = e), (this.scaleY = n), (this.originX = 0), (this.originY = 0) } }), (r.prototype.decomposeTransform = function () { if (!!this.transform) { var t = this.parent, e = this.transform t && t.transform && ($n(Xn, t.invTransform, e), (e = Xn)) var n = this.originX, i = this.originY ;(n || i) && ((gu[4] = n), (gu[5] = i), $n(Xn, e, gu), (Xn[4] -= n), (Xn[5] -= i), (e = Xn)), this.setLocalTransform(e) } }), (r.prototype.getGlobalScale = function (t) { var e = this.transform return ( (t = t || []), e ? ((t[0] = Math.sqrt(e[0] * e[0] + e[1] * e[1])), (t[1] = Math.sqrt(e[2] * e[2] + e[3] * e[3])), e[0] < 0 && (t[0] = -t[0]), e[3] < 0 && (t[1] = -t[1]), t) : ((t[0] = 1), (t[1] = 1), t) ) }), (r.prototype.transformCoordToLocal = function (t, e) { var n = [t, e], i = this.invTransform return i && ue(n, n, i), n }), (r.prototype.transformCoordToGlobal = function (t, e) { var n = [t, e], i = this.transform return i && ue(n, n, i), n }), (r.prototype.getLineScale = function () { var t = this.transform return t && mu(t[0] - 1) > 1e-10 && mu(t[3] - 1) > 1e-10 ? Math.sqrt(mu(t[0] * t[3] - t[2] * t[1])) : 1 }), (r.prototype.copyTransform = function (t) { Nw(this, t) }), (r.getLocalTransform = function (t, e) { e = e || [] var n = t.originX || 0, i = t.originY || 0, a = t.scaleX, o = t.scaleY, s = t.anchorX, l = t.anchorY, u = t.rotation || 0, f = t.x, h = t.y, c = t.skewX ? Math.tan(t.skewX) : 0, v = t.skewY ? Math.tan(-t.skewY) : 0 if (n || i || s || l) { var d = n + s, p = i + l ;(e[4] = -d * a - c * p * o), (e[5] = -p * o - v * d * a) } else e[4] = e[5] = 0 return ( (e[0] = a), (e[3] = o), (e[1] = v * a), (e[2] = c * o), u && pu(e, e, u), (e[4] += n + f), (e[5] += i + h), e ) }), (r.initDefaultProps = (function () { var t = r.prototype ;(t.scaleX = t.scaleY = t.globalScaleRatio = 1), (t.x = t.y = t.originX = t.originY = t.skewX = t.skewY = t.rotation = t.anchorX = t.anchorY = 0) })()), r ) })(), Ui = [ 'x', 'y', 'originX', 'originY', 'anchorX', 'anchorY', 'rotation', 'scaleX', 'scaleY', 'skewX', 'skewY' ] function Nw(r, t) { for (var e = 0; e < Ui.length; e++) { var n = Ui[e] r[n] = t[n] } } var Fw = (function () { function r(t, e) { ;(this.x = t || 0), (this.y = e || 0) } return ( (r.prototype.copy = function (t) { return (this.x = t.x), (this.y = t.y), this }), (r.prototype.clone = function () { return new r(this.x, this.y) }), (r.prototype.set = function (t, e) { return (this.x = t), (this.y = e), this }), (r.prototype.equal = function (t) { return t.x === this.x && t.y === this.y }), (r.prototype.add = function (t) { return (this.x += t.x), (this.y += t.y), this }), (r.prototype.scale = function (t) { ;(this.x *= t), (this.y *= t) }), (r.prototype.scaleAndAdd = function (t, e) { ;(this.x += t.x * e), (this.y += t.y * e) }), (r.prototype.sub = function (t) { return (this.x -= t.x), (this.y -= t.y), this }), (r.prototype.dot = function (t) { return this.x * t.x + this.y * t.y }), (r.prototype.len = function () { return Math.sqrt(this.x * this.x + this.y * this.y) }), (r.prototype.lenSquare = function () { return this.x * this.x + this.y * this.y }), (r.prototype.normalize = function () { var t = this.len() return (this.x /= t), (this.y /= t), this }), (r.prototype.distance = function (t) { var e = this.x - t.x, n = this.y - t.y return Math.sqrt(e * e + n * n) }), (r.prototype.distanceSquare = function (t) { var e = this.x - t.x, n = this.y - t.y return e * e + n * n }), (r.prototype.negate = function () { return (this.x = -this.x), (this.y = -this.y), this }), (r.prototype.transform = function (t) { if (!!t) { var e = this.x, n = this.y return ( (this.x = t[0] * e + t[2] * n + t[4]), (this.y = t[1] * e + t[3] * n + t[5]), this ) } }), (r.prototype.toArray = function (t) { return (t[0] = this.x), (t[1] = this.y), t }), (r.prototype.fromArray = function (t) { ;(this.x = t[0]), (this.y = t[1]) }), (r.set = function (t, e, n) { ;(t.x = e), (t.y = n) }), (r.copy = function (t, e) { ;(t.x = e.x), (t.y = e.y) }), (r.len = function (t) { return Math.sqrt(t.x * t.x + t.y * t.y) }), (r.lenSquare = function (t) { return t.x * t.x + t.y * t.y }), (r.dot = function (t, e) { return t.x * e.x + t.y * e.y }), (r.add = function (t, e, n) { ;(t.x = e.x + n.x), (t.y = e.y + n.y) }), (r.sub = function (t, e, n) { ;(t.x = e.x - n.x), (t.y = e.y - n.y) }), (r.scale = function (t, e, n) { ;(t.x = e.x * n), (t.y = e.y * n) }), (r.scaleAndAdd = function (t, e, n, i) { ;(t.x = e.x + n.x * i), (t.y = e.y + n.y * i) }), (r.lerp = function (t, e, n, i) { var a = 1 - i ;(t.x = a * e.x + i * n.x), (t.y = a * e.y + i * n.y) }), r ) })(), Z = Fw, Po = Math.min, Ro = Math.max, Xr = new Z(), qr = new Z(), Kr = new Z(), Qr = new Z(), Yi = new Z(), Zi = new Z(), zw = (function () { function r(t, e, n, i) { n < 0 && ((t = t + n), (n = -n)), i < 0 && ((e = e + i), (i = -i)), (this.x = t), (this.y = e), (this.width = n), (this.height = i) } return ( (r.prototype.union = function (t) { var e = Po(t.x, this.x), n = Po(t.y, this.y) isFinite(this.x) && isFinite(this.width) ? (this.width = Ro(t.x + t.width, this.x + this.width) - e) : (this.width = t.width), isFinite(this.y) && isFinite(this.height) ? (this.height = Ro(t.y + t.height, this.y + this.height) - n) : (this.height = t.height), (this.x = e), (this.y = n) }), (r.prototype.applyTransform = function (t) { r.applyTransform(this, this, t) }), (r.prototype.calculateTransform = function (t) { var e = this, n = t.width / e.width, i = t.height / e.height, a = Hi() return du(a, a, [-e.x, -e.y]), Bw(a, a, [n, i]), du(a, a, [t.x, t.y]), a }), (r.prototype.intersect = function (t, e) { if (!t) return !1 t instanceof r || (t = r.create(t)) var n = this, i = n.x, a = n.x + n.width, o = n.y, s = n.y + n.height, l = t.x, u = t.x + t.width, f = t.y, h = t.y + t.height, c = !(a < l || u < i || s < f || h < o) if (e) { var v = 1 / 0, d = 0, p = Math.abs(a - l), g = Math.abs(u - i), m = Math.abs(s - f), y = Math.abs(h - o), _ = Math.min(p, g), S = Math.min(m, y) a < l || u < i ? _ > d && ((d = _), p < g ? Z.set(Zi, -p, 0) : Z.set(Zi, g, 0)) : _ < v && ((v = _), p < g ? Z.set(Yi, p, 0) : Z.set(Yi, -g, 0)), s < f || h < o ? S > d && ((d = S), m < y ? Z.set(Zi, 0, -m) : Z.set(Zi, 0, y)) : _ < v && ((v = _), m < y ? Z.set(Yi, 0, m) : Z.set(Yi, 0, -y)) } return e && Z.copy(e, c ? Yi : Zi), c }), (r.prototype.contain = function (t, e) { var n = this return t >= n.x && t <= n.x + n.width && e >= n.y && e <= n.y + n.height }), (r.prototype.clone = function () { return new r(this.x, this.y, this.width, this.height) }), (r.prototype.copy = function (t) { r.copy(this, t) }), (r.prototype.plain = function () { return { x: this.x, y: this.y, width: this.width, height: this.height } }), (r.prototype.isFinite = function () { return ( isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height) ) }), (r.prototype.isZero = function () { return this.width === 0 || this.height === 0 }), (r.create = function (t) { return new r(t.x, t.y, t.width, t.height) }), (r.copy = function (t, e) { ;(t.x = e.x), (t.y = e.y), (t.width = e.width), (t.height = e.height) }), (r.applyTransform = function (t, e, n) { if (!n) { t !== e && r.copy(t, e) return } if (n[1] < 1e-5 && n[1] > -1e-5 && n[2] < 1e-5 && n[2] > -1e-5) { var i = n[0], a = n[3], o = n[4], s = n[5] ;(t.x = e.x * i + o), (t.y = e.y * a + s), (t.width = e.width * i), (t.height = e.height * a), t.width < 0 && ((t.x += t.width), (t.width = -t.width)), t.height < 0 && ((t.y += t.height), (t.height = -t.height)) return } ;(Xr.x = Kr.x = e.x), (Xr.y = Qr.y = e.y), (qr.x = Qr.x = e.x + e.width), (qr.y = Kr.y = e.y + e.height), Xr.transform(n), Qr.transform(n), qr.transform(n), Kr.transform(n), (t.x = Po(Xr.x, qr.x, Kr.x, Qr.x)), (t.y = Po(Xr.y, qr.y, Kr.y, Qr.y)) var l = Ro(Xr.x, qr.x, Kr.x, Qr.x), u = Ro(Xr.y, qr.y, Kr.y, Qr.y) ;(t.width = l - t.x), (t.height = u - t.y) }), r ) })(), vt = zw, Fc = {} function oe(r, t) { t = t || Yr var e = Fc[t] e || (e = Fc[t] = new zi(500)) var n = e.get(r) return n == null && ((n = kn.measureText(r, t).width), e.put(r, n)), n } function zc(r, t, e, n) { var i = oe(r, t), a = yu(t), o = $i(0, i, e), s = qn(0, a, n), l = new vt(o, s, i, a) return l } function Eo(r, t, e, n) { var i = ((r || '') + '').split(` `), a = i.length if (a === 1) return zc(i[0], t, e, n) for (var o = new vt(0, 0, 0, 0), s = 0; s < i.length; s++) { var l = zc(i[s], t, e, n) s === 0 ? o.copy(l) : o.union(l) } return o } function $i(r, t, e) { return e === 'right' ? (r -= t) : e === 'center' && (r -= t / 2), r } function qn(r, t, e) { return e === 'middle' ? (r -= t / 2) : e === 'bottom' && (r -= t), r } function yu(r) { return oe('\u56FD', r) } function Cr(r, t) { return typeof r == 'string' ? r.lastIndexOf('%') >= 0 ? (parseFloat(r) / 100) * t : parseFloat(r) : r } function Oo(r, t, e) { var n = t.position || 'inside', i = t.distance != null ? t.distance : 5, a = e.height, o = e.width, s = a / 2, l = e.x, u = e.y, f = 'left', h = 'top' if (n instanceof Array) (l += Cr(n[0], e.width)), (u += Cr(n[1], e.height)), (f = null), (h = null) else switch (n) { case 'left': ;(l -= i), (u += s), (f = 'right'), (h = 'middle') break case 'right': ;(l += i + o), (u += s), (h = 'middle') break case 'top': ;(l += o / 2), (u -= i), (f = 'center'), (h = 'bottom') break case 'bottom': ;(l += o / 2), (u += a + i), (f = 'center') break case 'inside': ;(l += o / 2), (u += s), (f = 'center'), (h = 'middle') break case 'insideLeft': ;(l += i), (u += s), (h = 'middle') break case 'insideRight': ;(l += o - i), (u += s), (f = 'right'), (h = 'middle') break case 'insideTop': ;(l += o / 2), (u += i), (f = 'center') break case 'insideBottom': ;(l += o / 2), (u += a - i), (f = 'center'), (h = 'bottom') break case 'insideTopLeft': ;(l += i), (u += i) break case 'insideTopRight': ;(l += o - i), (u += i), (f = 'right') break case 'insideBottomLeft': ;(l += i), (u += a - i), (h = 'bottom') break case 'insideBottomRight': ;(l += o - i), (u += a - i), (f = 'right'), (h = 'bottom') break } return ( (r = r || {}), (r.x = l), (r.y = u), (r.align = f), (r.verticalAlign = h), r ) } var _u = '__zr_normal__', Su = Ui.concat(['ignore']), Vw = Sr( Ui, function (r, t) { return (r[t] = !0), r }, { ignore: !1 } ), Kn = {}, Gw = new vt(0, 0, 0, 0), xu = (function () { function r(t) { ;(this.id = Uv()), (this.animators = []), (this.currentStates = []), (this.states = {}), this._init(t) } return ( (r.prototype._init = function (t) { this.attr(t) }), (r.prototype.drift = function (t, e, n) { switch (this.draggable) { case 'horizontal': e = 0 break case 'vertical': t = 0 break } var i = this.transform i || (i = this.transform = [1, 0, 0, 1, 0, 0]), (i[4] += t), (i[5] += e), this.decomposeTransform(), this.markRedraw() }), (r.prototype.beforeUpdate = function () {}), (r.prototype.afterUpdate = function () {}), (r.prototype.update = function () { this.updateTransform(), this.__dirty && this.updateInnerText() }), (r.prototype.updateInnerText = function (t) { var e = this._textContent if (e && (!e.ignore || t)) { this.textConfig || (this.textConfig = {}) var n = this.textConfig, i = n.local, a = e.innerTransformable, o = void 0, s = void 0, l = !1 a.parent = i ? this : null var u = !1 if ((a.copyTransform(e), n.position != null)) { var f = Gw n.layoutRect ? f.copy(n.layoutRect) : f.copy(this.getBoundingRect()), i || f.applyTransform(this.transform), this.calculateTextPosition ? this.calculateTextPosition(Kn, n, f) : Oo(Kn, n, f), (a.x = Kn.x), (a.y = Kn.y), (o = Kn.align), (s = Kn.verticalAlign) var h = n.origin if (h && n.rotation != null) { var c = void 0, v = void 0 h === 'center' ? ((c = f.width * 0.5), (v = f.height * 0.5)) : ((c = Cr(h[0], f.width)), (v = Cr(h[1], f.height))), (u = !0), (a.originX = -a.x + c + (i ? 0 : f.x)), (a.originY = -a.y + v + (i ? 0 : f.y)) } } n.rotation != null && (a.rotation = n.rotation) var d = n.offset d && ((a.x += d[0]), (a.y += d[1]), u || ((a.originX = -d[0]), (a.originY = -d[1]))) var p = n.inside == null ? typeof n.position == 'string' && n.position.indexOf('inside') >= 0 : n.inside, g = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {}), m = void 0, y = void 0, _ = void 0 p && this.canBeInsideText() ? ((m = n.insideFill), (y = n.insideStroke), (m == null || m === 'auto') && (m = this.getInsideTextFill()), (y == null || y === 'auto') && ((y = this.getInsideTextStroke(m)), (_ = !0))) : ((m = n.outsideFill), (y = n.outsideStroke), (m == null || m === 'auto') && (m = this.getOutsideFill()), (y == null || y === 'auto') && ((y = this.getOutsideStroke(m)), (_ = !0))), (m = m || '#000'), (m !== g.fill || y !== g.stroke || _ !== g.autoStroke || o !== g.align || s !== g.verticalAlign) && ((l = !0), (g.fill = m), (g.stroke = y), (g.autoStroke = _), (g.align = o), (g.verticalAlign = s), e.setDefaultTextStyle(g)), (e.__dirty |= ae), l && e.dirtyStyle(!0) } }), (r.prototype.canBeInsideText = function () { return !0 }), (r.prototype.getInsideTextFill = function () { return '#fff' }), (r.prototype.getInsideTextStroke = function (t) { return '#000' }), (r.prototype.getOutsideFill = function () { return this.__zr && this.__zr.isDarkMode() ? vu : hu }), (r.prototype.getOutsideStroke = function (t) { var e = this.__zr && this.__zr.getBackgroundColor(), n = typeof e == 'string' && ir(e) n || (n = [255, 255, 255, 1]) for (var i = n[3], a = this.__zr.isDarkMode(), o = 0; o < 3; o++) n[o] = n[o] * i + (a ? 0 : 255) * (1 - i) return (n[3] = 1), So(n, 'rgba') }), (r.prototype.traverse = function (t, e) {}), (r.prototype.attrKV = function (t, e) { t === 'textConfig' ? this.setTextConfig(e) : t === 'textContent' ? this.setTextContent(e) : t === 'clipPath' ? this.setClipPath(e) : t === 'extra' ? ((this.extra = this.extra || {}), N(this.extra, e)) : (this[t] = e) }), (r.prototype.hide = function () { ;(this.ignore = !0), this.markRedraw() }), (r.prototype.show = function () { ;(this.ignore = !1), this.markRedraw() }), (r.prototype.attr = function (t, e) { if (typeof t == 'string') this.attrKV(t, e) else if (Y(t)) for (var n = t, i = xt(n), a = 0; a < i.length; a++) { var o = i[a] this.attrKV(o, t[o]) } return this.markRedraw(), this }), (r.prototype.saveCurrentToNormalState = function (t) { this._innerSaveToNormal(t) for (var e = this._normalState, n = 0; n < this.animators.length; n++) { var i = this.animators[n], a = i.__fromStateTransition if (!(i.getLoop() || (a && a !== _u))) { var o = i.targetName, s = o ? e[o] : e i.saveTo(s) } } }), (r.prototype._innerSaveToNormal = function (t) { var e = this._normalState e || (e = this._normalState = {}), t.textConfig && !e.textConfig && (e.textConfig = this.textConfig), this._savePrimaryToNormal(t, e, Su) }), (r.prototype._savePrimaryToNormal = function (t, e, n) { for (var i = 0; i < n.length; i++) { var a = n[i] t[a] != null && !(a in e) && (e[a] = this[a]) } }), (r.prototype.hasState = function () { return this.currentStates.length > 0 }), (r.prototype.getState = function (t) { return this.states[t] }), (r.prototype.ensureState = function (t) { var e = this.states return e[t] || (e[t] = {}), e[t] }), (r.prototype.clearStates = function (t) { this.useState(_u, !1, t) }), (r.prototype.useState = function (t, e, n, i) { var a = t === _u, o = this.hasState() if (!(!o && a)) { var s = this.currentStates, l = this.stateTransition if (!(ot(s, t) >= 0 && (e || s.length === 1))) { var u if ( (this.stateProxy && !a && (u = this.stateProxy(t)), u || (u = this.states && this.states[t]), !u && !a) ) { Pl('State ' + t + ' not exists.') return } a || this.saveCurrentToNormalState(u) var f = !!((u && u.hoverLayer) || i) f && this._toggleHoverLayerFlag(!0), this._applyStateObj( t, u, this._normalState, e, !n && !this.__inHover && l && l.duration > 0, l ) var h = this._textContent, c = this._textGuide return ( h && h.useState(t, e, n, f), c && c.useState(t, e, n, f), a ? ((this.currentStates = []), (this._normalState = {})) : e ? this.currentStates.push(t) : (this.currentStates = [t]), this._updateAnimationTargets(), this.markRedraw(), !f && this.__inHover && (this._toggleHoverLayerFlag(!1), (this.__dirty &= ~ae)), u ) } } }), (r.prototype.useStates = function (t, e, n) { if (!t.length) this.clearStates() else { var i = [], a = this.currentStates, o = t.length, s = o === a.length if (s) { for (var l = 0; l < o; l++) if (t[l] !== a[l]) { s = !1 break } } if (s) return for (var l = 0; l < o; l++) { var u = t[l], f = void 0 this.stateProxy && (f = this.stateProxy(u, t)), f || (f = this.states[u]), f && i.push(f) } var h = i[o - 1], c = !!((h && h.hoverLayer) || n) c && this._toggleHoverLayerFlag(!0) var v = this._mergeStates(i), d = this.stateTransition this.saveCurrentToNormalState(v), this._applyStateObj( t.join(','), v, this._normalState, !1, !e && !this.__inHover && d && d.duration > 0, d ) var p = this._textContent, g = this._textGuide p && p.useStates(t, e, c), g && g.useStates(t, e, c), this._updateAnimationTargets(), (this.currentStates = t.slice()), this.markRedraw(), !c && this.__inHover && (this._toggleHoverLayerFlag(!1), (this.__dirty &= ~ae)) } }), (r.prototype._updateAnimationTargets = function () { for (var t = 0; t < this.animators.length; t++) { var e = this.animators[t] e.targetName && e.changeTarget(this[e.targetName]) } }), (r.prototype.removeState = function (t) { var e = ot(this.currentStates, t) if (e >= 0) { var n = this.currentStates.slice() n.splice(e, 1), this.useStates(n) } }), (r.prototype.replaceState = function (t, e, n) { var i = this.currentStates.slice(), a = ot(i, t), o = ot(i, e) >= 0 a >= 0 ? (o ? i.splice(a, 1) : (i[a] = e)) : n && !o && i.push(e), this.useStates(i) }), (r.prototype.toggleState = function (t, e) { e ? this.useState(t, !0) : this.removeState(t) }), (r.prototype._mergeStates = function (t) { for (var e = {}, n, i = 0; i < t.length; i++) { var a = t[i] N(e, a), a.textConfig && ((n = n || {}), N(n, a.textConfig)) } return n && (e.textConfig = n), e }), (r.prototype._applyStateObj = function (t, e, n, i, a, o) { var s = !(e && i) e && e.textConfig ? ((this.textConfig = N({}, i ? this.textConfig : n.textConfig)), N(this.textConfig, e.textConfig)) : s && n.textConfig && (this.textConfig = n.textConfig) for (var l = {}, u = !1, f = 0; f < Su.length; f++) { var h = Su[f], c = a && Vw[h] e && e[h] != null ? c ? ((u = !0), (l[h] = e[h])) : (this[h] = e[h]) : s && n[h] != null && (c ? ((u = !0), (l[h] = n[h])) : (this[h] = n[h])) } if (!a) for (var f = 0; f < this.animators.length; f++) { var v = this.animators[f], d = v.targetName v.getLoop() || v.__changeFinalValue(d ? (e || n)[d] : e || n) } u && this._transitionState(t, l, o) }), (r.prototype._attachComponent = function (t) { if (!(t.__zr && !t.__hostTarget) && t !== this) { var e = this.__zr e && t.addSelfToZr(e), (t.__zr = e), (t.__hostTarget = this) } }), (r.prototype._detachComponent = function (t) { t.__zr && t.removeSelfFromZr(t.__zr), (t.__zr = null), (t.__hostTarget = null) }), (r.prototype.getClipPath = function () { return this._clipPath }), (r.prototype.setClipPath = function (t) { this._clipPath && this._clipPath !== t && this.removeClipPath(), this._attachComponent(t), (this._clipPath = t), this.markRedraw() }), (r.prototype.removeClipPath = function () { var t = this._clipPath t && (this._detachComponent(t), (this._clipPath = null), this.markRedraw()) }), (r.prototype.getTextContent = function () { return this._textContent }), (r.prototype.setTextContent = function (t) { var e = this._textContent e !== t && (e && e !== t && this.removeTextContent(), (t.innerTransformable = new Wi()), this._attachComponent(t), (this._textContent = t), this.markRedraw()) }), (r.prototype.setTextConfig = function (t) { this.textConfig || (this.textConfig = {}), N(this.textConfig, t), this.markRedraw() }), (r.prototype.removeTextConfig = function () { ;(this.textConfig = null), this.markRedraw() }), (r.prototype.removeTextContent = function () { var t = this._textContent t && ((t.innerTransformable = null), this._detachComponent(t), (this._textContent = null), (this._innerTextDefaultStyle = null), this.markRedraw()) }), (r.prototype.getTextGuideLine = function () { return this._textGuide }), (r.prototype.setTextGuideLine = function (t) { this._textGuide && this._textGuide !== t && this.removeTextGuideLine(), this._attachComponent(t), (this._textGuide = t), this.markRedraw() }), (r.prototype.removeTextGuideLine = function () { var t = this._textGuide t && (this._detachComponent(t), (this._textGuide = null), this.markRedraw()) }), (r.prototype.markRedraw = function () { this.__dirty |= ae var t = this.__zr t && (this.__inHover ? t.refreshHover() : t.refresh()), this.__hostTarget && this.__hostTarget.markRedraw() }), (r.prototype.dirty = function () { this.markRedraw() }), (r.prototype._toggleHoverLayerFlag = function (t) { this.__inHover = t var e = this._textContent, n = this._textGuide e && (e.__inHover = t), n && (n.__inHover = t) }), (r.prototype.addSelfToZr = function (t) { if (this.__zr !== t) { this.__zr = t var e = this.animators if (e) for (var n = 0; n < e.length; n++) t.animation.addAnimator(e[n]) this._clipPath && this._clipPath.addSelfToZr(t), this._textContent && this._textContent.addSelfToZr(t), this._textGuide && this._textGuide.addSelfToZr(t) } }), (r.prototype.removeSelfFromZr = function (t) { if (!!this.__zr) { this.__zr = null var e = this.animators if (e) for (var n = 0; n < e.length; n++) t.animation.removeAnimator(e[n]) this._clipPath && this._clipPath.removeSelfFromZr(t), this._textContent && this._textContent.removeSelfFromZr(t), this._textGuide && this._textGuide.removeSelfFromZr(t) } }), (r.prototype.animate = function (t, e, n) { var i = t ? this[t] : this, a = new nu(i, e, n) return t && (a.targetName = t), this.addAnimator(a, t), a }), (r.prototype.addAnimator = function (t, e) { var n = this.__zr, i = this t .during(function () { i.updateDuringAnimation(e) }) .done(function () { var a = i.animators, o = ot(a, t) o >= 0 && a.splice(o, 1) }), this.animators.push(t), n && n.animation.addAnimator(t), n && n.wakeUp() }), (r.prototype.updateDuringAnimation = function (t) { this.markRedraw() }), (r.prototype.stopAnimation = function (t, e) { for (var n = this.animators, i = n.length, a = [], o = 0; o < i; o++) { var s = n[o] !t || t === s.scope ? s.stop(e) : a.push(s) } return (this.animators = a), this }), (r.prototype.animateTo = function (t, e, n) { wu(this, t, e, n) }), (r.prototype.animateFrom = function (t, e, n) { wu(this, t, e, n, !0) }), (r.prototype._transitionState = function (t, e, n, i) { for (var a = wu(this, e, n, i), o = 0; o < a.length; o++) a[o].__fromStateTransition = t }), (r.prototype.getBoundingRect = function () { return null }), (r.prototype.getPaintRect = function () { return null }), (r.initDefaultProps = (function () { var t = r.prototype ;(t.type = 'element'), (t.name = ''), (t.ignore = t.silent = t.isGroup = t.draggable = t.dragging = t.ignoreClip = t.__inHover = !1), (t.__dirty = ae) function e(n, i, a, o) { Object.defineProperty(t, n, { get: function () { if (!this[i]) { var l = (this[i] = []) s(this, l) } return this[i] }, set: function (l) { ;(this[a] = l[0]), (this[o] = l[1]), (this[i] = l), s(this, l) } }) function s(l, u) { Object.defineProperty(u, 0, { get: function () { return l[a] }, set: function (f) { l[a] = f } }), Object.defineProperty(u, 1, { get: function () { return l[o] }, set: function (f) { l[o] = f } }) } } Object.defineProperty && (e('position', '_legacyPos', 'x', 'y'), e('scale', '_legacyScale', 'scaleX', 'scaleY'), e('origin', '_legacyOrigin', 'originX', 'originY')) })()), r ) })() ze(xu, fe) ze(xu, Wi) function wu(r, t, e, n, i) { e = e || {} var a = [] Vc(r, '', r, t, e, n, a, i) var o = a.length, s = !1, l = e.done, u = e.aborted, f = function () { ;(s = !0), o--, o <= 0 && (s ? l && l() : u && u()) }, h = function () { o--, o <= 0 && (s ? l && l() : u && u()) } o || (l && l()), a.length > 0 && e.during && a[0].during(function (d, p) { e.during(p) }) for (var c = 0; c < a.length; c++) { var v = a[c] f && v.done(f), h && v.aborted(h), e.force && v.duration(e.duration), v.start(e.easing) } return a } function bu(r, t, e) { for (var n = 0; n < e; n++) r[n] = t[n] } function Hw(r) { return Zt(r[0]) } function Ww(r, t, e) { if (Zt(t[e])) if ((Zt(r[e]) || (r[e] = []), ie(t[e]))) { var n = t[e].length r[e].length !== n && ((r[e] = new t[e].constructor(n)), bu(r[e], t[e], n)) } else { var i = t[e], a = r[e], o = i.length if (Hw(i)) for (var s = i[0].length, l = 0; l < o; l++) a[l] ? bu(a[l], i[l], s) : (a[l] = Array.prototype.slice.call(i[l])) else bu(a, i, o) a.length = i.length } else r[e] = t[e] } function Uw(r, t) { return r === t || (Zt(r) && Zt(t) && Yw(r, t)) } function Yw(r, t) { var e = r.length if (e !== t.length) return !1 for (var n = 0; n < e; n++) if (r[n] !== t[n]) return !1 return !0 } function Vc(r, t, e, n, i, a, o, s) { for ( var l = xt(n), u = i.duration, f = i.delay, h = i.additive, c = i.setToFinal, v = !Y(a), d = r.animators, p = [], g = 0; g < l.length; g++ ) { var m = l[g], y = n[m] if (y != null && e[m] != null && (v || a[m])) if (Y(y) && !Zt(y) && !io(y)) { if (t) { s || ((e[m] = y), r.updateDuringAnimation(t)) continue } Vc(r, m, e[m], y, i, a && a[m], o, s) } else p.push(m) else s || ((e[m] = y), r.updateDuringAnimation(t), p.push(m)) } var _ = p.length if (!h && _) for (var S = 0; S < d.length; S++) { var w = d[S] if (w.targetName === t) { var x = w.stopTracks(p) if (x) { var b = ot(d, w) d.splice(b, 1) } } } if ( (i.force || ((p = Lt(p, function (D) { return !Uw(n[D], e[D]) })), (_ = p.length)), _ > 0 || (i.force && !o.length)) ) { var T = void 0, C = void 0, M = void 0 if (s) { ;(C = {}), c && (T = {}) for (var S = 0; S < _; S++) { var m = p[S] ;(C[m] = e[m]), c ? (T[m] = n[m]) : (e[m] = n[m]) } } else if (c) { M = {} for (var S = 0; S < _; S++) { var m = p[S] ;(M[m] = bo(e[m])), Ww(e, n, m) } } var w = new nu( e, !1, !1, h ? Lt(d, function (I) { return I.targetName === t }) : null ) ;(w.targetName = t), i.scope && (w.scope = i.scope), c && T && w.whenWithKeys(0, T, p), M && w.whenWithKeys(0, M, p), w.whenWithKeys(u == null ? 500 : u, s ? C : n, p).delay(f || 0), r.addAnimator(w, t), o.push(w) } } var Gc = xu, Hc = (function (r) { B(t, r) function t(e) { var n = r.call(this) || this return (n.isGroup = !0), (n._children = []), n.attr(e), n } return ( (t.prototype.childrenRef = function () { return this._children }), (t.prototype.children = function () { return this._children.slice() }), (t.prototype.childAt = function (e) { return this._children[e] }), (t.prototype.childOfName = function (e) { for (var n = this._children, i = 0; i < n.length; i++) if (n[i].name === e) return n[i] }), (t.prototype.childCount = function () { return this._children.length }), (t.prototype.add = function (e) { return ( e && e !== this && e.parent !== this && (this._children.push(e), this._doAdd(e)), this ) }), (t.prototype.addBefore = function (e, n) { if (e && e !== this && e.parent !== this && n && n.parent === this) { var i = this._children, a = i.indexOf(n) a >= 0 && (i.splice(a, 0, e), this._doAdd(e)) } return this }), (t.prototype.replace = function (e, n) { var i = ot(this._children, e) return i >= 0 && this.replaceAt(n, i), this }), (t.prototype.replaceAt = function (e, n) { var i = this._children, a = i[n] if (e && e !== this && e.parent !== this && e !== a) { ;(i[n] = e), (a.parent = null) var o = this.__zr o && a.removeSelfFromZr(o), this._doAdd(e) } return this }), (t.prototype._doAdd = function (e) { e.parent && e.parent.remove(e), (e.parent = this) var n = this.__zr n && n !== e.__zr && e.addSelfToZr(n), n && n.refresh() }), (t.prototype.remove = function (e) { var n = this.__zr, i = this._children, a = ot(i, e) return a < 0 ? this : (i.splice(a, 1), (e.parent = null), n && e.removeSelfFromZr(n), n && n.refresh(), this) }), (t.prototype.removeAll = function () { for (var e = this._children, n = this.__zr, i = 0; i < e.length; i++) { var a = e[i] n && a.removeSelfFromZr(n), (a.parent = null) } return (e.length = 0), this }), (t.prototype.eachChild = function (e, n) { for (var i = this._children, a = 0; a < i.length; a++) { var o = i[a] e.call(n, o, a) } return this }), (t.prototype.traverse = function (e, n) { for (var i = 0; i < this._children.length; i++) { var a = this._children[i], o = e.call(n, a) a.isGroup && !o && a.traverse(e, n) } return this }), (t.prototype.addSelfToZr = function (e) { r.prototype.addSelfToZr.call(this, e) for (var n = 0; n < this._children.length; n++) { var i = this._children[n] i.addSelfToZr(e) } }), (t.prototype.removeSelfFromZr = function (e) { r.prototype.removeSelfFromZr.call(this, e) for (var n = 0; n < this._children.length; n++) { var i = this._children[n] i.removeSelfFromZr(e) } }), (t.prototype.getBoundingRect = function (e) { for ( var n = new vt(0, 0, 0, 0), i = e || this._children, a = [], o = null, s = 0; s < i.length; s++ ) { var l = i[s] if (!(l.ignore || l.invisible)) { var u = l.getBoundingRect(), f = l.getLocalTransform(a) f ? (vt.applyTransform(n, u, f), (o = o || n.clone()), o.union(n)) : ((o = o || u.clone()), o.union(u)) } } return o || n }), t ) })(Gc) Hc.prototype.type = 'group' var At = Hc /*! * ZRender, a high performance 2d drawing library. * * Copyright (c) 2013, Baidu Inc. * All rights reserved. * * LICENSE * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt */ var ko = {}, Wc = {} function Zw(r) { delete Wc[r] } function $w(r) { if (!r) return !1 if (typeof r == 'string') return xo(r, 1) < fu if (r.colorStops) { for (var t = r.colorStops, e = 0, n = t.length, i = 0; i < n; i++) e += xo(t[i].color, 1) return (e /= n), e < fu } return !1 } var Xw = (function () { function r(t, e, n) { var i = this ;(this._sleepAfterStill = 10), (this._stillFrameAccum = 0), (this._needsRefresh = !0), (this._needsRefreshHover = !0), (this._darkMode = !1), (n = n || {}), (this.dom = e), (this.id = t) var a = new ow(), o = n.renderer || 'canvas' ko[o] || (o = xt(ko)[0]), (n.useDirtyRect = n.useDirtyRect == null ? !1 : n.useDirtyRect) var s = new ko[o](e, a, n, t), l = n.ssr || s.ssrOnly ;(this.storage = a), (this.painter = s) var u = !at.node && !at.worker && !l ? new Ew(s.getViewportRoot(), s.root) : null ;(this.handler = new ew(a, s, u, s.root)), (this.animation = new Cw({ stage: { update: l ? null : function () { return i._flush(!0) } } })), l || this.animation.start() } return ( (r.prototype.add = function (t) { !t || (this.storage.addRoot(t), t.addSelfToZr(this), this.refresh()) }), (r.prototype.remove = function (t) { !t || (this.storage.delRoot(t), t.removeSelfFromZr(this), this.refresh()) }), (r.prototype.configLayer = function (t, e) { this.painter.configLayer && this.painter.configLayer(t, e), this.refresh() }), (r.prototype.setBackgroundColor = function (t) { this.painter.setBackgroundColor && this.painter.setBackgroundColor(t), this.refresh(), (this._backgroundColor = t), (this._darkMode = $w(t)) }), (r.prototype.getBackgroundColor = function () { return this._backgroundColor }), (r.prototype.setDarkMode = function (t) { this._darkMode = t }), (r.prototype.isDarkMode = function () { return this._darkMode }), (r.prototype.refreshImmediately = function (t) { t || this.animation.update(!0), (this._needsRefresh = !1), this.painter.refresh(), (this._needsRefresh = !1) }), (r.prototype.refresh = function () { ;(this._needsRefresh = !0), this.animation.start() }), (r.prototype.flush = function () { this._flush(!1) }), (r.prototype._flush = function (t) { var e, n = Zn() this._needsRefresh && ((e = !0), this.refreshImmediately(t)), this._needsRefreshHover && ((e = !0), this.refreshHoverImmediately()) var i = Zn() e ? ((this._stillFrameAccum = 0), this.trigger('rendered', { elapsedTime: i - n })) : this._sleepAfterStill > 0 && (this._stillFrameAccum++, this._stillFrameAccum > this._sleepAfterStill && this.animation.stop()) }), (r.prototype.setSleepAfterStill = function (t) { this._sleepAfterStill = t }), (r.prototype.wakeUp = function () { this.animation.start(), (this._stillFrameAccum = 0) }), (r.prototype.refreshHover = function () { this._needsRefreshHover = !0 }), (r.prototype.refreshHoverImmediately = function () { ;(this._needsRefreshHover = !1), this.painter.refreshHover && this.painter.getType() === 'canvas' && this.painter.refreshHover() }), (r.prototype.resize = function (t) { ;(t = t || {}), this.painter.resize(t.width, t.height), this.handler.resize() }), (r.prototype.clearAnimation = function () { this.animation.clear() }), (r.prototype.getWidth = function () { return this.painter.getWidth() }), (r.prototype.getHeight = function () { return this.painter.getHeight() }), (r.prototype.setCursorStyle = function (t) { this.handler.setCursorStyle(t) }), (r.prototype.findHover = function (t, e) { return this.handler.findHover(t, e) }), (r.prototype.on = function (t, e, n) { return this.handler.on(t, e, n), this }), (r.prototype.off = function (t, e) { this.handler.off(t, e) }), (r.prototype.trigger = function (t, e) { this.handler.trigger(t, e) }), (r.prototype.clear = function () { for (var t = this.storage.getRoots(), e = 0; e < t.length; e++) t[e] instanceof At && t[e].removeSelfFromZr(this) this.storage.delAllRoots(), this.painter.clear() }), (r.prototype.dispose = function () { this.animation.stop(), this.clear(), this.storage.dispose(), this.painter.dispose(), this.handler.dispose(), (this.animation = this.storage = this.painter = this.handler = null), Zw(this.id) }), r ) })() function Uc(r, t) { var e = new Xw(Uv(), r, t) return (Wc[e.id] = e), e } function qw(r, t) { ko[r] = t } var Yc = 1e-4, Zc = 20 function Kw(r) { return r.replace(/^\s+|\s+$/g, '') } function Bt(r, t, e, n) { var i = t[0], a = t[1], o = e[0], s = e[1], l = a - i, u = s - o if (l === 0) return u === 0 ? o : (o + s) / 2 if (n) if (l > 0) { if (r <= i) return o if (r >= a) return s } else { if (r >= i) return o if (r <= a) return s } else { if (r === i) return o if (r === a) return s } return ((r - i) / l) * u + o } function yt(r, t) { switch (r) { case 'center': case 'middle': r = '50%' break case 'left': case 'top': r = '0%' break case 'right': case 'bottom': r = '100%' break } return W(r) ? Kw(r).match(/%$/) ? (parseFloat(r) / 100) * t : parseFloat(r) : r == null ? NaN : +r } function Pt(r, t, e) { return ( t == null && (t = 10), (t = Math.min(Math.max(0, t), Zc)), (r = (+r).toFixed(t)), e ? r : +r ) } function Xi(r) { return ( r.sort(function (t, e) { return t - e }), r ) } function or(r) { if (((r = +r), isNaN(r))) return 0 if (r > 1e-14) { for (var t = 1, e = 0; e < 15; e++, t *= 10) if (Math.round(r * t) / t === r) return e } return Qw(r) } function Qw(r) { var t = r.toString().toLowerCase(), e = t.indexOf('e'), n = e > 0 ? +t.slice(e + 1) : 0, i = e > 0 ? e : t.length, a = t.indexOf('.'), o = a < 0 ? 0 : i - 1 - a return Math.max(0, o - n) } function $c(r, t) { var e = Math.log, n = Math.LN10, i = Math.floor(e(r[1] - r[0]) / n), a = Math.round(e(Math.abs(t[1] - t[0])) / n), o = Math.min(Math.max(-i + a, 0), 20) return isFinite(o) ? o : 20 } function Jw(r, t, e) { if (!r[t]) return 0 var n = Sr( r, function (d, p) { return d + (isNaN(p) ? 0 : p) }, 0 ) if (n === 0) return 0 for ( var i = Math.pow(10, e), a = G(r, function (d) { return ((isNaN(d) ? 0 : d) / n) * i * 100 }), o = i * 100, s = G(a, function (d) { return Math.floor(d) }), l = Sr( s, function (d, p) { return d + p }, 0 ), u = G(a, function (d, p) { return d - s[p] }); l < o; ) { for ( var f = Number.NEGATIVE_INFINITY, h = null, c = 0, v = u.length; c < v; ++c ) u[c] > f && ((f = u[c]), (h = c)) ++s[h], (u[h] = 0), ++l } return s[t] / i } function jw(r, t) { var e = Math.max(or(r), or(t)), n = r + t return e > Zc ? n : Pt(n, e) } function Xc(r) { var t = Math.PI * 2 return ((r % t) + t) % t } function Bo(r) { return r > -Yc && r < Yc } var tb = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/ function sr(r) { if (r instanceof Date) return r if (W(r)) { var t = tb.exec(r) if (!t) return new Date(NaN) if (t[8]) { var e = +t[4] || 0 return ( t[8].toUpperCase() !== 'Z' && (e -= +t[8].slice(0, 3)), new Date( Date.UTC( +t[1], +(t[2] || 1) - 1, +t[3] || 1, e, +(t[5] || 0), +t[6] || 0, t[7] ? +t[7].substring(0, 3) : 0 ) ) ) } else return new Date( +t[1], +(t[2] || 1) - 1, +t[3] || 1, +t[4] || 0, +(t[5] || 0), +t[6] || 0, t[7] ? +t[7].substring(0, 3) : 0 ) } else if (r == null) return new Date(NaN) return new Date(Math.round(r)) } function eb(r) { return Math.pow(10, Tu(r)) } function Tu(r) { if (r === 0) return 0 var t = Math.floor(Math.log(r) / Math.LN10) return r / Math.pow(10, t) >= 10 && t++, t } function qc(r, t) { var e = Tu(r), n = Math.pow(10, e), i = r / n, a return ( t ? i < 1.5 ? (a = 1) : i < 2.5 ? (a = 2) : i < 4 ? (a = 3) : i < 7 ? (a = 5) : (a = 10) : i < 1 ? (a = 1) : i < 2 ? (a = 2) : i < 3 ? (a = 3) : i < 5 ? (a = 5) : (a = 10), (r = a * n), e >= -20 ? +r.toFixed(e < 0 ? -e : 0) : r ) } function Ar(r) { var t = parseFloat(r) return t == r && (t !== 0 || !W(r) || r.indexOf('x') <= 0) ? t : NaN } function rb(r) { return !isNaN(Ar(r)) } function Kc() { return Math.round(Math.random() * 9) } function Qc(r, t) { return t === 0 ? r : Qc(t, r % t) } function Jc(r, t) { return r == null ? t : t == null ? r : (r * t) / Qc(r, t) } function ut(r) { throw new Error(r) } function jc(r, t, e) { return (t - r) * e + r } var td = 'series\0', ed = '\0_ec_\0' function Mt(r) { return r instanceof Array ? r : r == null ? [] : [r] } function Cu(r, t, e) { if (r) { ;(r[t] = r[t] || {}), (r.emphasis = r.emphasis || {}), (r.emphasis[t] = r.emphasis[t] || {}) for (var n = 0, i = e.length; n < i; n++) { var a = e[n] !r.emphasis[t].hasOwnProperty(a) && r[t].hasOwnProperty(a) && (r.emphasis[t][a] = r[t][a]) } } } var rd = [ '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' ] function qi(r) { return Y(r) && !z(r) && !(r instanceof Date) ? r.value : r } function nb(r) { return Y(r) && !(r instanceof Array) } function ib(r, t, e) { var n = e === 'normalMerge', i = e === 'replaceMerge', a = e === 'replaceAll' ;(r = r || []), (t = (t || []).slice()) var o = q() A(t, function (l, u) { if (!Y(l)) { t[u] = null return } }) var s = ab(r, o, e) return ( (n || i) && ob(s, r, o, t), n && sb(s, t), n || i ? lb(s, t, i) : a && ub(s, t), fb(s), s ) } function ab(r, t, e) { var n = [] if (e === 'replaceAll') return n for (var i = 0; i < r.length; i++) { var a = r[i] a && a.id != null && t.set(a.id, i), n.push({ existing: e === 'replaceMerge' || Qi(a) ? null : a, newOption: null, keyInfo: null, brandNew: null }) } return n } function ob(r, t, e, n) { A(n, function (i, a) { if (!(!i || i.id == null)) { var o = Ki(i.id), s = e.get(o) if (s != null) { var l = r[s] Ve(!l.newOption, 'Duplicated option on id "' + o + '".'), (l.newOption = i), (l.existing = t[s]), (n[a] = null) } } }) } function sb(r, t) { A(t, function (e, n) { if (!(!e || e.name == null)) for (var i = 0; i < r.length; i++) { var a = r[i].existing if ( !r[i].newOption && a && (a.id == null || e.id == null) && !Qi(e) && !Qi(a) && nd('name', a, e) ) { ;(r[i].newOption = e), (t[n] = null) return } } }) } function lb(r, t, e) { A(t, function (n) { if (!!n) { for ( var i, a = 0; (i = r[a]) && (i.newOption || Qi(i.existing) || (i.existing && n.id != null && !nd('id', n, i.existing))); ) a++ i ? ((i.newOption = n), (i.brandNew = e)) : r.push({ newOption: n, brandNew: e, existing: null, keyInfo: null }), a++ } }) } function ub(r, t) { A(t, function (e) { r.push({ newOption: e, brandNew: !0, existing: null, keyInfo: null }) }) } function fb(r) { var t = q() A(r, function (e) { var n = e.existing n && t.set(n.id, e) }), A(r, function (e) { var n = e.newOption Ve( !n || n.id == null || !t.get(n.id) || t.get(n.id) === e, 'id duplicates: ' + (n && n.id) ), n && n.id != null && t.set(n.id, e), !e.keyInfo && (e.keyInfo = {}) }), A(r, function (e, n) { var i = e.existing, a = e.newOption, o = e.keyInfo if (!!Y(a)) { if (((o.name = a.name != null ? Ki(a.name) : i ? i.name : td + n), i)) o.id = Ki(i.id) else if (a.id != null) o.id = Ki(a.id) else { var s = 0 do o.id = '\0' + o.name + '\0' + s++ while (t.get(o.id)) } t.set(o.id, e) } }) } function nd(r, t, e) { var n = We(t[r], null), i = We(e[r], null) return n != null && i != null && n === i } function Ki(r) { return We(r, '') } function We(r, t) { return r == null ? t : W(r) ? r : dt(r) || Rl(r) ? r + '' : t } function Au(r) { var t = r.name return !!(t && t.indexOf(td)) } function Qi(r) { return r && r.id != null && Ki(r.id).indexOf(ed) === 0 } function hb(r) { return ed + r } function vb(r, t, e) { A(r, function (n) { var i = n.newOption Y(i) && ((n.keyInfo.mainType = t), (n.keyInfo.subType = cb(t, i, n.existing, e))) }) } function cb(r, t, e, n) { var i = t.type ? t.type : e ? e.subType : n.determineSubType(r, t) return i } function Jr(r, t) { if (t.dataIndexInside != null) return t.dataIndexInside if (t.dataIndex != null) return z(t.dataIndex) ? G(t.dataIndex, function (e) { return r.indexOfRawIndex(e) }) : r.indexOfRawIndex(t.dataIndex) if (t.name != null) return z(t.name) ? G(t.name, function (e) { return r.indexOfName(e) }) : r.indexOfName(t.name) } function wt() { var r = '__ec_inner_' + db++ return function (t) { return t[r] || (t[r] = {}) } } var db = Kc() function Ji(r, t, e) { var n = Mu(t, e), i = n.mainTypeSpecified, a = n.queryOptionMap, o = n.others, s = o, l = e ? e.defaultMainType : null return ( !i && l && a.set(l, {}), a.each(function (u, f) { var h = ji(r, f, u, { useDefault: l === f, enableAll: e && e.enableAll != null ? e.enableAll : !0, enableNone: e && e.enableNone != null ? e.enableNone : !0 }) ;(s[f + 'Models'] = h.models), (s[f + 'Model'] = h.models[0]) }), s ) } function Mu(r, t) { var e if (W(r)) { var n = {} ;(n[r + 'Index'] = 0), (e = n) } else e = r var i = q(), a = {}, o = !1 return ( A(e, function (s, l) { if (l === 'dataIndex' || l === 'dataIndexInside') { a[l] = s return } var u = l.match(/^(\w+)(Index|Id|Name)$/) || [], f = u[1], h = (u[2] || '').toLowerCase() if ( !( !f || !h || (t && t.includeMainTypes && ot(t.includeMainTypes, f) < 0) ) ) { o = o || !!f var c = i.get(f) || i.set(f, {}) c[h] = s } }), { mainTypeSpecified: o, queryOptionMap: i, others: a } ) } var Xt = { useDefault: !0, enableAll: !1, enableNone: !1 }, pb = { useDefault: !1, enableAll: !0, enableNone: !0 } function ji(r, t, e, n) { n = n || Xt var i = e.index, a = e.id, o = e.name, s = { models: null, specified: i != null || a != null || o != null } if (!s.specified) { var l = void 0 return (s.models = n.useDefault && (l = r.getComponent(t)) ? [l] : []), s } return i === 'none' || i === !1 ? (Ve( n.enableNone, '`"none"` or `false` is not a valid value on index option.' ), (s.models = []), s) : (i === 'all' && (Ve(n.enableAll, '`"all"` is not a valid value on index option.'), (i = a = o = null)), (s.models = r.queryComponents({ mainType: t, index: i, id: a, name: o })), s) } function id(r, t, e) { r.setAttribute ? r.setAttribute(t, e) : (r[t] = e) } function gb(r, t) { return r.getAttribute ? r.getAttribute(t) : r[t] } function mb(r) { return r === 'auto' ? (at.domSupported ? 'html' : 'richText') : r || 'html' } function ad(r, t, e, n, i) { var a = t == null || t === 'auto' if (n == null) return n if (dt(n)) { var o = jc(e || 0, n, i) return Pt(o, a ? Math.max(or(e || 0), or(n)) : t) } else { if (W(n)) return i < 1 ? e : n for ( var s = [], l = e, u = n, f = Math.max(l ? l.length : 0, u.length), h = 0; h < f; ++h ) { var c = r.getDimensionInfo(h) if (c && c.type === 'ordinal') s[h] = (i < 1 && l ? l : u)[h] else { var v = l && l[h] ? l[h] : 0, d = u[h], o = jc(v, d, i) s[h] = Pt(o, a ? Math.max(or(v), or(d)) : t) } } return s } } var yb = '.', jr = '___EC__COMPONENT__CONTAINER___', od = '___EC__EXTENDED_CLASS___' function Ue(r) { var t = { main: '', sub: '' } if (r) { var e = r.split(yb) ;(t.main = e[0] || ''), (t.sub = e[1] || '') } return t } function _b(r) { Ve( /^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(r), 'componentType "' + r + '" illegal' ) } function Sb(r) { return !!(r && r[od]) } function Du(r, t) { ;(r.$constructor = r), (r.extend = function (e) { var n = this, i return ( xb(n) ? (i = (function (a) { B(o, a) function o() { return a.apply(this, arguments) || this } return o })(n)) : ((i = function () { ;(e.$constructor || n).apply(this, arguments) }), Tx(i, this)), N(i.prototype, e), (i[od] = !0), (i.extend = this.extend), (i.superCall = Tb), (i.superApply = Cb), (i.superClass = n), i ) }) } function xb(r) { return Q(r) && /^class\s/.test(Function.prototype.toString.call(r)) } function sd(r, t) { r.extend = t.extend } var wb = Math.round(Math.random() * 10) function bb(r) { var t = ['__\0is_clz', wb++].join('_') ;(r.prototype[t] = !0), (r.isInstance = function (e) { return !!(e && e[t]) }) } function Tb(r, t) { for (var e = [], n = 2; n < arguments.length; n++) e[n - 2] = arguments[n] return this.superClass.prototype[t].apply(r, e) } function Cb(r, t, e) { return this.superClass.prototype[t].apply(r, e) } function No(r) { var t = {} ;(r.registerClass = function (n) { var i = n.type || n.prototype.type if (i) { _b(i), (n.prototype.type = i) var a = Ue(i) if (!a.sub) t[a.main] = n else if (a.sub !== jr) { var o = e(a) o[a.sub] = n } } return n }), (r.getClass = function (n, i, a) { var o = t[n] if ((o && o[jr] && (o = i ? o[i] : null), a && !o)) throw new Error( i ? 'Component ' + n + '.' + (i || '') + ' is used but not imported.' : n + '.type should be specified.' ) return o }), (r.getClassesByMainType = function (n) { var i = Ue(n), a = [], o = t[i.main] return ( o && o[jr] ? A(o, function (s, l) { l !== jr && a.push(s) }) : a.push(o), a ) }), (r.hasClass = function (n) { var i = Ue(n) return !!t[i.main] }), (r.getAllClassMainTypes = function () { var n = [] return ( A(t, function (i, a) { n.push(a) }), n ) }), (r.hasSubTypes = function (n) { var i = Ue(n), a = t[i.main] return a && a[jr] }) function e(n) { var i = t[n.main] return (!i || !i[jr]) && ((i = t[n.main] = {}), (i[jr] = !0)), i } } function ta(r, t) { for (var e = 0; e < r.length; e++) r[e][1] || (r[e][1] = r[e][0]) return ( (t = t || !1), function (n, i, a) { for (var o = {}, s = 0; s < r.length; s++) { var l = r[s][1] if (!((i && ot(i, l) >= 0) || (a && ot(a, l) < 0))) { var u = n.getShallow(l, t) u != null && (o[r[s][0]] = u) } } return o } ) } var Ab = [ ['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor'] ], Mb = ta(Ab), Db = (function () { function r() {} return ( (r.prototype.getAreaStyle = function (t, e) { return Mb(this, t, e) }), r ) })(), Iu = new zi(50) function Ib(r) { if (typeof r == 'string') { var t = Iu.get(r) return t && t.image } else return r } function ld(r, t, e, n, i) { if (r) if (typeof r == 'string') { if ((t && t.__zrImageSrc === r) || !e) return t var a = Iu.get(r), o = { hostEl: e, cb: n, cbPayload: i } return ( a ? ((t = a.image), !Fo(t) && a.pending.push(o)) : ((t = kn.loadImage(r, ud, ud)), (t.__zrImageSrc = r), Iu.put(r, (t.__cachedImgObj = { image: t, pending: [o] }))), t ) } else return r else return t } function ud() { var r = this.__cachedImgObj this.onload = this.onerror = this.__cachedImgObj = null for (var t = 0; t < r.pending.length; t++) { var e = r.pending[t], n = e.cb n && n(this, e.cbPayload), e.hostEl.dirty() } r.pending.length = 0 } function Fo(r) { return r && r.width && r.height } var Lu = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g function Lb(r, t, e, n, i) { if (!t) return '' var a = (r + '').split(` `) i = fd(t, e, n, i) for (var o = 0, s = a.length; o < s; o++) a[o] = hd(a[o], i) return a.join(` `) } function fd(r, t, e, n) { n = n || {} var i = N({}, n) ;(i.font = t), (e = ht(e, '...')), (i.maxIterations = ht(n.maxIterations, 2)) var a = (i.minChar = ht(n.minChar, 0)) i.cnCharWidth = oe('\u56FD', t) var o = (i.ascCharWidth = oe('a', t)) i.placeholder = ht(n.placeholder, '') for (var s = (r = Math.max(0, r - 1)), l = 0; l < a && s >= o; l++) s -= o var u = oe(e, t) return ( u > s && ((e = ''), (u = 0)), (s = r - u), (i.ellipsis = e), (i.ellipsisWidth = u), (i.contentWidth = s), (i.containerWidth = r), i ) } function hd(r, t) { var e = t.containerWidth, n = t.font, i = t.contentWidth if (!e) return '' var a = oe(r, n) if (a <= e) return r for (var o = 0; ; o++) { if (a <= i || o >= t.maxIterations) { r += t.ellipsis break } var s = o === 0 ? Pb(r, i, t.ascCharWidth, t.cnCharWidth) : a > 0 ? Math.floor((r.length * i) / a) : 0 ;(r = r.substr(0, s)), (a = oe(r, n)) } return r === '' && (r = t.placeholder), r } function Pb(r, t, e, n) { for (var i = 0, a = 0, o = r.length; a < o && i < t; a++) { var s = r.charCodeAt(a) i += 0 <= s && s <= 127 ? e : n } return a } function Rb(r, t) { r != null && (r += '') var e = t.overflow, n = t.padding, i = t.font, a = e === 'truncate', o = yu(i), s = ht(t.lineHeight, o), l = !!t.backgroundColor, u = t.lineOverflow === 'truncate', f = t.width, h f != null && (e === 'break' || e === 'breakAll') ? (h = r ? cd(r, t.font, f, e === 'breakAll', 0).lines : []) : (h = r ? r.split(` `) : []) var c = h.length * s, v = ht(t.height, c) if (c > v && u) { var d = Math.floor(v / s) h = h.slice(0, d) } if (r && a && f != null) for ( var p = fd(f, i, t.ellipsis, { minChar: t.truncateMinChar, placeholder: t.placeholder }), g = 0; g < h.length; g++ ) h[g] = hd(h[g], p) for (var m = v, y = 0, g = 0; g < h.length; g++) y = Math.max(oe(h[g], i), y) f == null && (f = y) var _ = y return ( n && ((m += n[0] + n[2]), (_ += n[1] + n[3]), (f += n[1] + n[3])), l && (_ = f), { lines: h, height: v, outerWidth: _, outerHeight: m, lineHeight: s, calculatedLineHeight: o, contentWidth: y, contentHeight: c, width: f } ) } var Eb = (function () { function r() {} return r })(), vd = (function () { function r(t) { ;(this.tokens = []), t && (this.tokens = t) } return r })(), Ob = (function () { function r() { ;(this.width = 0), (this.height = 0), (this.contentWidth = 0), (this.contentHeight = 0), (this.outerWidth = 0), (this.outerHeight = 0), (this.lines = []) } return r })() function kb(r, t) { var e = new Ob() if ((r != null && (r += ''), !r)) return e for ( var n = t.width, i = t.height, a = t.overflow, o = (a === 'break' || a === 'breakAll') && n != null ? { width: n, accumWidth: 0, breakAll: a === 'breakAll' } : null, s = (Lu.lastIndex = 0), l; (l = Lu.exec(r)) != null; ) { var u = l.index u > s && Pu(e, r.substring(s, u), t, o), Pu(e, l[2], t, o, l[1]), (s = Lu.lastIndex) } s < r.length && Pu(e, r.substring(s, r.length), t, o) var f = [], h = 0, c = 0, v = t.padding, d = a === 'truncate', p = t.lineOverflow === 'truncate' function g(k, F, H) { ;(k.width = F), (k.lineHeight = H), (h += H), (c = Math.max(c, F)) } t: for (var m = 0; m < e.lines.length; m++) { for (var y = e.lines[m], _ = 0, S = 0, w = 0; w < y.tokens.length; w++) { var x = y.tokens[w], b = (x.styleName && t.rich[x.styleName]) || {}, T = (x.textPadding = b.padding), C = T ? T[1] + T[3] : 0, M = (x.font = b.font || t.font) x.contentHeight = yu(M) var D = ht(b.height, x.contentHeight) if ( ((x.innerHeight = D), T && (D += T[0] + T[2]), (x.height = D), (x.lineHeight = Oi(b.lineHeight, t.lineHeight, D)), (x.align = (b && b.align) || t.align), (x.verticalAlign = (b && b.verticalAlign) || 'middle'), p && i != null && h + x.lineHeight > i) ) { w > 0 ? ((y.tokens = y.tokens.slice(0, w)), g(y, S, _), (e.lines = e.lines.slice(0, m + 1))) : (e.lines = e.lines.slice(0, m)) break t } var I = b.width, L = I == null || I === 'auto' if (typeof I == 'string' && I.charAt(I.length - 1) === '%') (x.percentWidth = I), f.push(x), (x.contentWidth = oe(x.text, M)) else { if (L) { var P = b.backgroundColor, R = P && P.image R && ((R = Ib(R)), Fo(R) && (x.width = Math.max(x.width, (R.width * D) / R.height))) } var O = d && n != null ? n - S : null O != null && O < x.width ? !L || O < C ? ((x.text = ''), (x.width = x.contentWidth = 0)) : ((x.text = Lb(x.text, O - C, M, t.ellipsis, { minChar: t.truncateMinChar })), (x.width = x.contentWidth = oe(x.text, M))) : (x.contentWidth = oe(x.text, M)) } ;(x.width += C), (S += x.width), b && (_ = Math.max(_, x.lineHeight)) } g(y, S, _) } ;(e.outerWidth = e.width = ht(n, c)), (e.outerHeight = e.height = ht(i, h)), (e.contentHeight = h), (e.contentWidth = c), v && ((e.outerWidth += v[1] + v[3]), (e.outerHeight += v[0] + v[2])) for (var m = 0; m < f.length; m++) { var x = f[m], U = x.percentWidth x.width = (parseInt(U, 10) / 100) * e.width } return e } function Pu(r, t, e, n, i) { var a = t === '', o = (i && e.rich[i]) || {}, s = r.lines, l = o.font || e.font, u = !1, f, h if (n) { var c = o.padding, v = c ? c[1] + c[3] : 0 if (o.width != null && o.width !== 'auto') { var d = Cr(o.width, n.width) + v s.length > 0 && d + n.accumWidth > n.width && ((f = t.split(` `)), (u = !0)), (n.accumWidth = d) } else { var p = cd(t, l, n.width, n.breakAll, n.accumWidth) ;(n.accumWidth = p.accumWidth + v), (h = p.linesWidths), (f = p.lines) } } else f = t.split(` `) for (var g = 0; g < f.length; g++) { var m = f[g], y = new Eb() if ( ((y.styleName = i), (y.text = m), (y.isLineHolder = !m && !a), typeof o.width == 'number' ? (y.width = o.width) : (y.width = h ? h[g] : oe(m, l)), !g && !u) ) { var _ = (s[s.length - 1] || (s[0] = new vd())).tokens, S = _.length S === 1 && _[0].isLineHolder ? (_[0] = y) : (m || !S || a) && _.push(y) } else s.push(new vd([y])) } } function Bb(r) { var t = r.charCodeAt(0) return t >= 33 && t <= 383 } var Nb = Sr( ',&?/;] '.split(''), function (r, t) { return (r[t] = !0), r }, {} ) function Fb(r) { return Bb(r) ? !!Nb[r] : !0 } function cd(r, t, e, n, i) { for ( var a = [], o = [], s = '', l = '', u = 0, f = 0, h = 0; h < r.length; h++ ) { var c = r.charAt(h) if ( c === ` ` ) { l && ((s += l), (f += u)), a.push(s), o.push(f), (s = ''), (l = ''), (u = 0), (f = 0) continue } var v = oe(c, t), d = n ? !1 : !Fb(c) if (a.length ? f + v > e : i + f + v > e) { f ? (s || l) && (d ? (s || ((s = l), (l = ''), (u = 0), (f = u)), a.push(s), o.push(f - u), (l += c), (u += v), (s = ''), (f = u)) : (l && ((s += l), (l = ''), (u = 0)), a.push(s), o.push(f), (s = c), (f = v))) : d ? (a.push(l), o.push(u), (l = c), (u = v)) : (a.push(c), o.push(v)) continue } ;(f += v), d ? ((l += c), (u += v)) : (l && ((s += l), (l = ''), (u = 0)), (s += c)) } return ( !a.length && !s && ((s = r), (l = ''), (u = 0)), l && (s += l), s && (a.push(s), o.push(f)), a.length === 1 && (f += i), { accumWidth: f, lines: a, linesWidths: o } ) } var Ru = '__zr_style_' + Math.round(Math.random() * 10), tn = { shadowBlur: 0, shadowOffsetX: 0, shadowOffsetY: 0, shadowColor: '#000', opacity: 1, blend: 'source-over' }, zo = { style: { shadowBlur: !0, shadowOffsetX: !0, shadowOffsetY: !0, shadowColor: !0, opacity: !0 } } tn[Ru] = !0 var dd = ['z', 'z2', 'invisible'], zb = ['invisible'], Vb = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype._init = function (e) { for (var n = xt(e), i = 0; i < n.length; i++) { var a = n[i] a === 'style' ? this.useStyle(e[a]) : r.prototype.attrKV.call(this, a, e[a]) } this.style || this.useStyle({}) }), (t.prototype.beforeBrush = function () {}), (t.prototype.afterBrush = function () {}), (t.prototype.innerBeforeBrush = function () {}), (t.prototype.innerAfterBrush = function () {}), (t.prototype.shouldBePainted = function (e, n, i, a) { var o = this.transform if ( this.ignore || this.invisible || this.style.opacity === 0 || (this.culling && Gb(this, e, n)) || (o && !o[0] && !o[3]) ) return !1 if (i && this.__clipPaths) { for (var s = 0; s < this.__clipPaths.length; ++s) if (this.__clipPaths[s].isZeroArea()) return !1 } if (a && this.parent) for (var l = this.parent; l; ) { if (l.ignore) return !1 l = l.parent } return !0 }), (t.prototype.contain = function (e, n) { return this.rectContain(e, n) }), (t.prototype.traverse = function (e, n) { e.call(n, this) }), (t.prototype.rectContain = function (e, n) { var i = this.transformCoordToLocal(e, n), a = this.getBoundingRect() return a.contain(i[0], i[1]) }), (t.prototype.getPaintRect = function () { var e = this._paintRect if (!this._paintRect || this.__dirty) { var n = this.transform, i = this.getBoundingRect(), a = this.style, o = a.shadowBlur || 0, s = a.shadowOffsetX || 0, l = a.shadowOffsetY || 0 ;(e = this._paintRect || (this._paintRect = new vt(0, 0, 0, 0))), n ? vt.applyTransform(e, i, n) : e.copy(i), (o || s || l) && ((e.width += o * 2 + Math.abs(s)), (e.height += o * 2 + Math.abs(l)), (e.x = Math.min(e.x, e.x + s - o)), (e.y = Math.min(e.y, e.y + l - o))) var u = this.dirtyRectTolerance e.isZero() || ((e.x = Math.floor(e.x - u)), (e.y = Math.floor(e.y - u)), (e.width = Math.ceil(e.width + 1 + u * 2)), (e.height = Math.ceil(e.height + 1 + u * 2))) } return e }), (t.prototype.setPrevPaintRect = function (e) { e ? ((this._prevPaintRect = this._prevPaintRect || new vt(0, 0, 0, 0)), this._prevPaintRect.copy(e)) : (this._prevPaintRect = null) }), (t.prototype.getPrevPaintRect = function () { return this._prevPaintRect }), (t.prototype.animateStyle = function (e) { return this.animate('style', e) }), (t.prototype.updateDuringAnimation = function (e) { e === 'style' ? this.dirtyStyle() : this.markRedraw() }), (t.prototype.attrKV = function (e, n) { e !== 'style' ? r.prototype.attrKV.call(this, e, n) : this.style ? this.setStyle(n) : this.useStyle(n) }), (t.prototype.setStyle = function (e, n) { return ( typeof e == 'string' ? (this.style[e] = n) : N(this.style, e), this.dirtyStyle(), this ) }), (t.prototype.dirtyStyle = function (e) { e || this.markRedraw(), (this.__dirty |= Fi), this._rect && (this._rect = null) }), (t.prototype.dirty = function () { this.dirtyStyle() }), (t.prototype.styleChanged = function () { return !!(this.__dirty & Fi) }), (t.prototype.styleUpdated = function () { this.__dirty &= ~Fi }), (t.prototype.createStyle = function (e) { return so(tn, e) }), (t.prototype.useStyle = function (e) { e[Ru] || (e = this.createStyle(e)), this.__inHover ? (this.__hoverStyle = e) : (this.style = e), this.dirtyStyle() }), (t.prototype.isStyleObject = function (e) { return e[Ru] }), (t.prototype._innerSaveToNormal = function (e) { r.prototype._innerSaveToNormal.call(this, e) var n = this._normalState e.style && !n.style && (n.style = this._mergeStyle(this.createStyle(), this.style)), this._savePrimaryToNormal(e, n, dd) }), (t.prototype._applyStateObj = function (e, n, i, a, o, s) { r.prototype._applyStateObj.call(this, e, n, i, a, o, s) var l = !(n && a), u if ( (n && n.style ? o ? a ? (u = n.style) : ((u = this._mergeStyle(this.createStyle(), i.style)), this._mergeStyle(u, n.style)) : ((u = this._mergeStyle( this.createStyle(), a ? this.style : i.style )), this._mergeStyle(u, n.style)) : l && (u = i.style), u) ) if (o) { var f = this.style if (((this.style = this.createStyle(l ? {} : f)), l)) for (var h = xt(f), c = 0; c < h.length; c++) { var v = h[c] v in u && ((u[v] = u[v]), (this.style[v] = f[v])) } for (var d = xt(u), c = 0; c < d.length; c++) { var v = d[c] this.style[v] = this.style[v] } this._transitionState( e, { style: u }, s, this.getAnimationStyleProps() ) } else this.useStyle(u) for (var p = this.__inHover ? zb : dd, c = 0; c < p.length; c++) { var v = p[c] n && n[v] != null ? (this[v] = n[v]) : l && i[v] != null && (this[v] = i[v]) } }), (t.prototype._mergeStates = function (e) { for ( var n = r.prototype._mergeStates.call(this, e), i, a = 0; a < e.length; a++ ) { var o = e[a] o.style && ((i = i || {}), this._mergeStyle(i, o.style)) } return i && (n.style = i), n }), (t.prototype._mergeStyle = function (e, n) { return N(e, n), e }), (t.prototype.getAnimationStyleProps = function () { return zo }), (t.initDefaultProps = (function () { var e = t.prototype ;(e.type = 'displayable'), (e.invisible = !1), (e.z = 0), (e.z2 = 0), (e.zlevel = 0), (e.culling = !1), (e.cursor = 'pointer'), (e.rectHover = !1), (e.incremental = !1), (e._rect = null), (e.dirtyRectTolerance = 0), (e.__dirty = ae | Fi) })()), t ) })(Gc), Eu = new vt(0, 0, 0, 0), Ou = new vt(0, 0, 0, 0) function Gb(r, t, e) { return ( Eu.copy(r.getBoundingRect()), r.transform && Eu.applyTransform(r.transform), (Ou.width = t), (Ou.height = e), !Eu.intersect(Ou) ) } var Qn = Vb, jt = Math.min, te = Math.max, ku = Math.sin, Bu = Math.cos, en = Math.PI * 2, Vo = Nn(), Go = Nn(), Ho = Nn() function pd(r, t, e) { if (r.length !== 0) { for ( var n = r[0], i = n[0], a = n[0], o = n[1], s = n[1], l = 1; l < r.length; l++ ) (n = r[l]), (i = jt(i, n[0])), (a = te(a, n[0])), (o = jt(o, n[1])), (s = te(s, n[1])) ;(t[0] = i), (t[1] = o), (e[0] = a), (e[1] = s) } } function gd(r, t, e, n, i, a) { ;(i[0] = jt(r, e)), (i[1] = jt(t, n)), (a[0] = te(r, e)), (a[1] = te(t, n)) } var md = [], yd = [] function Hb(r, t, e, n, i, a, o, s, l, u) { var f = gc, h = Rt, c = f(r, e, i, o, md) ;(l[0] = 1 / 0), (l[1] = 1 / 0), (u[0] = -1 / 0), (u[1] = -1 / 0) for (var v = 0; v < c; v++) { var d = h(r, e, i, o, md[v]) ;(l[0] = jt(d, l[0])), (u[0] = te(d, u[0])) } c = f(t, n, a, s, yd) for (var v = 0; v < c; v++) { var p = h(t, n, a, s, yd[v]) ;(l[1] = jt(p, l[1])), (u[1] = te(p, u[1])) } ;(l[0] = jt(r, l[0])), (u[0] = te(r, u[0])), (l[0] = jt(o, l[0])), (u[0] = te(o, u[0])), (l[1] = jt(t, l[1])), (u[1] = te(t, u[1])), (l[1] = jt(s, l[1])), (u[1] = te(s, u[1])) } function Wb(r, t, e, n, i, a, o, s) { var l = _c, u = Gt, f = te(jt(l(r, e, i), 1), 0), h = te(jt(l(t, n, a), 1), 0), c = u(r, e, i, f), v = u(t, n, a, h) ;(o[0] = jt(r, i, c)), (o[1] = jt(t, a, v)), (s[0] = te(r, i, c)), (s[1] = te(t, a, v)) } function Ub(r, t, e, n, i, a, o, s, l) { var u = zn, f = Vn, h = Math.abs(i - a) if (h % en < 1e-4 && h > 1e-4) { ;(s[0] = r - e), (s[1] = t - n), (l[0] = r + e), (l[1] = t + n) return } if ( ((Vo[0] = Bu(i) * e + r), (Vo[1] = ku(i) * n + t), (Go[0] = Bu(a) * e + r), (Go[1] = ku(a) * n + t), u(s, Vo, Go), f(l, Vo, Go), (i = i % en), i < 0 && (i = i + en), (a = a % en), a < 0 && (a = a + en), i > a && !o ? (a += en) : i < a && o && (i += en), o) ) { var c = a ;(a = i), (i = c) } for (var v = 0; v < a; v += Math.PI / 2) v > i && ((Ho[0] = Bu(v) * e + r), (Ho[1] = ku(v) * n + t), u(s, Ho, s), f(l, Ho, l)) } var pt = { M: 1, L: 2, C: 3, Q: 4, A: 5, Z: 6, R: 7 }, rn = [], nn = [], Ye = [], Mr = [], Ze = [], $e = [], Nu = Math.min, Fu = Math.max, an = Math.cos, on = Math.sin, lr = Math.abs, zu = Math.PI, Dr = zu * 2, Vu = typeof Float32Array != 'undefined', ea = [] function Gu(r) { var t = Math.round((r / zu) * 1e8) / 1e8 return (t % 2) * zu } function Yb(r, t) { var e = Gu(r[0]) e < 0 && (e += Dr) var n = e - r[0], i = r[1] ;(i += n), !t && i - e >= Dr ? (i = e + Dr) : t && e - i >= Dr ? (i = e - Dr) : !t && e > i ? (i = e + (Dr - Gu(e - i))) : t && e < i && (i = e - (Dr - Gu(i - e))), (r[0] = e), (r[1] = i) } var Zb = (function () { function r(t) { ;(this.dpr = 1), (this._xi = 0), (this._yi = 0), (this._x0 = 0), (this._y0 = 0), (this._len = 0), t && (this._saveData = !1), this._saveData && (this.data = []) } return ( (r.prototype.increaseVersion = function () { this._version++ }), (r.prototype.getVersion = function () { return this._version }), (r.prototype.setScale = function (t, e, n) { ;(n = n || 0), n > 0 && ((this._ux = lr(n / Io / t) || 0), (this._uy = lr(n / Io / e) || 0)) }), (r.prototype.setDPR = function (t) { this.dpr = t }), (r.prototype.setContext = function (t) { this._ctx = t }), (r.prototype.getContext = function () { return this._ctx }), (r.prototype.beginPath = function () { return this._ctx && this._ctx.beginPath(), this.reset(), this }), (r.prototype.reset = function () { this._saveData && (this._len = 0), this._pathSegLen && ((this._pathSegLen = null), (this._pathLen = 0)), this._version++ }), (r.prototype.moveTo = function (t, e) { return ( this._drawPendingPt(), this.addData(pt.M, t, e), this._ctx && this._ctx.moveTo(t, e), (this._x0 = t), (this._y0 = e), (this._xi = t), (this._yi = e), this ) }), (r.prototype.lineTo = function (t, e) { var n = lr(t - this._xi), i = lr(e - this._yi), a = n > this._ux || i > this._uy if ( (this.addData(pt.L, t, e), this._ctx && a && this._ctx.lineTo(t, e), a) ) (this._xi = t), (this._yi = e), (this._pendingPtDist = 0) else { var o = n * n + i * i o > this._pendingPtDist && ((this._pendingPtX = t), (this._pendingPtY = e), (this._pendingPtDist = o)) } return this }), (r.prototype.bezierCurveTo = function (t, e, n, i, a, o) { return ( this._drawPendingPt(), this.addData(pt.C, t, e, n, i, a, o), this._ctx && this._ctx.bezierCurveTo(t, e, n, i, a, o), (this._xi = a), (this._yi = o), this ) }), (r.prototype.quadraticCurveTo = function (t, e, n, i) { return ( this._drawPendingPt(), this.addData(pt.Q, t, e, n, i), this._ctx && this._ctx.quadraticCurveTo(t, e, n, i), (this._xi = n), (this._yi = i), this ) }), (r.prototype.arc = function (t, e, n, i, a, o) { this._drawPendingPt(), (ea[0] = i), (ea[1] = a), Yb(ea, o), (i = ea[0]), (a = ea[1]) var s = a - i return ( this.addData(pt.A, t, e, n, n, i, s, 0, o ? 0 : 1), this._ctx && this._ctx.arc(t, e, n, i, a, o), (this._xi = an(a) * n + t), (this._yi = on(a) * n + e), this ) }), (r.prototype.arcTo = function (t, e, n, i, a) { return ( this._drawPendingPt(), this._ctx && this._ctx.arcTo(t, e, n, i, a), this ) }), (r.prototype.rect = function (t, e, n, i) { return ( this._drawPendingPt(), this._ctx && this._ctx.rect(t, e, n, i), this.addData(pt.R, t, e, n, i), this ) }), (r.prototype.closePath = function () { this._drawPendingPt(), this.addData(pt.Z) var t = this._ctx, e = this._x0, n = this._y0 return t && t.closePath(), (this._xi = e), (this._yi = n), this }), (r.prototype.fill = function (t) { t && t.fill(), this.toStatic() }), (r.prototype.stroke = function (t) { t && t.stroke(), this.toStatic() }), (r.prototype.len = function () { return this._len }), (r.prototype.setData = function (t) { var e = t.length !(this.data && this.data.length === e) && Vu && (this.data = new Float32Array(e)) for (var n = 0; n < e; n++) this.data[n] = t[n] this._len = e }), (r.prototype.appendPath = function (t) { t instanceof Array || (t = [t]) for (var e = t.length, n = 0, i = this._len, a = 0; a < e; a++) n += t[a].len() Vu && this.data instanceof Float32Array && (this.data = new Float32Array(i + n)) for (var a = 0; a < e; a++) for (var o = t[a].data, s = 0; s < o.length; s++) this.data[i++] = o[s] this._len = i }), (r.prototype.addData = function (t, e, n, i, a, o, s, l, u) { if (!!this._saveData) { var f = this.data this._len + arguments.length > f.length && (this._expandData(), (f = this.data)) for (var h = 0; h < arguments.length; h++) f[this._len++] = arguments[h] } }), (r.prototype._drawPendingPt = function () { this._pendingPtDist > 0 && (this._ctx && this._ctx.lineTo(this._pendingPtX, this._pendingPtY), (this._pendingPtDist = 0)) }), (r.prototype._expandData = function () { if (!(this.data instanceof Array)) { for (var t = [], e = 0; e < this._len; e++) t[e] = this.data[e] this.data = t } }), (r.prototype.toStatic = function () { if (!!this._saveData) { this._drawPendingPt() var t = this.data t instanceof Array && ((t.length = this._len), Vu && this._len > 11 && (this.data = new Float32Array(t))) } }), (r.prototype.getBoundingRect = function () { ;(Ye[0] = Ye[1] = Ze[0] = Ze[1] = Number.MAX_VALUE), (Mr[0] = Mr[1] = $e[0] = $e[1] = -Number.MAX_VALUE) var t = this.data, e = 0, n = 0, i = 0, a = 0, o for (o = 0; o < this._len; ) { var s = t[o++], l = o === 1 switch ((l && ((e = t[o]), (n = t[o + 1]), (i = e), (a = n)), s)) { case pt.M: ;(e = i = t[o++]), (n = a = t[o++]), (Ze[0] = i), (Ze[1] = a), ($e[0] = i), ($e[1] = a) break case pt.L: gd(e, n, t[o], t[o + 1], Ze, $e), (e = t[o++]), (n = t[o++]) break case pt.C: Hb(e, n, t[o++], t[o++], t[o++], t[o++], t[o], t[o + 1], Ze, $e), (e = t[o++]), (n = t[o++]) break case pt.Q: Wb(e, n, t[o++], t[o++], t[o], t[o + 1], Ze, $e), (e = t[o++]), (n = t[o++]) break case pt.A: var u = t[o++], f = t[o++], h = t[o++], c = t[o++], v = t[o++], d = t[o++] + v o += 1 var p = !t[o++] l && ((i = an(v) * h + u), (a = on(v) * c + f)), Ub(u, f, h, c, v, d, p, Ze, $e), (e = an(d) * h + u), (n = on(d) * c + f) break case pt.R: ;(i = e = t[o++]), (a = n = t[o++]) var g = t[o++], m = t[o++] gd(i, a, i + g, a + m, Ze, $e) break case pt.Z: ;(e = i), (n = a) break } zn(Ye, Ye, Ze), Vn(Mr, Mr, $e) } return ( o === 0 && (Ye[0] = Ye[1] = Mr[0] = Mr[1] = 0), new vt(Ye[0], Ye[1], Mr[0] - Ye[0], Mr[1] - Ye[1]) ) }), (r.prototype._calculateLength = function () { var t = this.data, e = this._len, n = this._ux, i = this._uy, a = 0, o = 0, s = 0, l = 0 this._pathSegLen || (this._pathSegLen = []) for (var u = this._pathSegLen, f = 0, h = 0, c = 0; c < e; ) { var v = t[c++], d = c === 1 d && ((a = t[c]), (o = t[c + 1]), (s = a), (l = o)) var p = -1 switch (v) { case pt.M: ;(a = s = t[c++]), (o = l = t[c++]) break case pt.L: { var g = t[c++], m = t[c++], y = g - a, _ = m - o ;(lr(y) > n || lr(_) > i || c === e - 1) && ((p = Math.sqrt(y * y + _ * _)), (a = g), (o = m)) break } case pt.C: { var S = t[c++], w = t[c++], g = t[c++], m = t[c++], x = t[c++], b = t[c++] ;(p = sw(a, o, S, w, g, m, x, b, 10)), (a = x), (o = b) break } case pt.Q: { var S = t[c++], w = t[c++], g = t[c++], m = t[c++] ;(p = uw(a, o, S, w, g, m, 10)), (a = g), (o = m) break } case pt.A: var T = t[c++], C = t[c++], M = t[c++], D = t[c++], I = t[c++], L = t[c++], P = L + I ;(c += 1), t[c++], d && ((s = an(I) * M + T), (l = on(I) * D + C)), (p = Fu(M, D) * Nu(Dr, Math.abs(L))), (a = an(P) * M + T), (o = on(P) * D + C) break case pt.R: { ;(s = a = t[c++]), (l = o = t[c++]) var R = t[c++], O = t[c++] p = R * 2 + O * 2 break } case pt.Z: { var y = s - a, _ = l - o ;(p = Math.sqrt(y * y + _ * _)), (a = s), (o = l) break } } p >= 0 && ((u[h++] = p), (f += p)) } return (this._pathLen = f), f }), (r.prototype.rebuildPath = function (t, e) { var n = this.data, i = this._ux, a = this._uy, o = this._len, s, l, u, f, h, c, v = e < 1, d, p, g = 0, m = 0, y, _ = 0, S, w if ( v && (this._pathSegLen || this._calculateLength(), (d = this._pathSegLen), (p = this._pathLen), (y = e * p), !y) ) return t: for (var x = 0; x < o; ) { var b = n[x++], T = x === 1 switch ( (T && ((u = n[x]), (f = n[x + 1]), (s = u), (l = f)), b !== pt.L && _ > 0 && (t.lineTo(S, w), (_ = 0)), b) ) { case pt.M: ;(s = u = n[x++]), (l = f = n[x++]), t.moveTo(u, f) break case pt.L: { ;(h = n[x++]), (c = n[x++]) var C = lr(h - u), M = lr(c - f) if (C > i || M > a) { if (v) { var D = d[m++] if (g + D > y) { var I = (y - g) / D t.lineTo(u * (1 - I) + h * I, f * (1 - I) + c * I) break t } g += D } t.lineTo(h, c), (u = h), (f = c), (_ = 0) } else { var L = C * C + M * M L > _ && ((S = h), (w = c), (_ = L)) } break } case pt.C: { var P = n[x++], R = n[x++], O = n[x++], U = n[x++], k = n[x++], F = n[x++] if (v) { var D = d[m++] if (g + D > y) { var I = (y - g) / D br(u, P, O, k, I, rn), br(f, R, U, F, I, nn), t.bezierCurveTo(rn[1], nn[1], rn[2], nn[2], rn[3], nn[3]) break t } g += D } t.bezierCurveTo(P, R, O, U, k, F), (u = k), (f = F) break } case pt.Q: { var P = n[x++], R = n[x++], O = n[x++], U = n[x++] if (v) { var D = d[m++] if (g + D > y) { var I = (y - g) / D go(u, P, O, I, rn), go(f, R, U, I, nn), t.quadraticCurveTo(rn[1], nn[1], rn[2], nn[2]) break t } g += D } t.quadraticCurveTo(P, R, O, U), (u = O), (f = U) break } case pt.A: var H = n[x++], $ = n[x++], J = n[x++], et = n[x++], ft = n[x++], Ct = n[x++], mt = n[x++], zt = !n[x++], Vt = J > et ? J : et, It = lr(J - et) > 0.001, bt = ft + Ct, K = !1 if (v) { var D = d[m++] g + D > y && ((bt = ft + (Ct * (y - g)) / D), (K = !0)), (g += D) } if ( (It && t.ellipse ? t.ellipse(H, $, J, et, mt, ft, bt, zt) : t.arc(H, $, Vt, ft, bt, zt), K) ) break t T && ((s = an(ft) * J + H), (l = on(ft) * et + $)), (u = an(bt) * J + H), (f = on(bt) * et + $) break case pt.R: ;(s = u = n[x]), (l = f = n[x + 1]), (h = n[x++]), (c = n[x++]) var it = n[x++], Ne = n[x++] if (v) { var D = d[m++] if (g + D > y) { var Ot = y - g t.moveTo(h, c), t.lineTo(h + Nu(Ot, it), c), (Ot -= it), Ot > 0 && t.lineTo(h + it, c + Nu(Ot, Ne)), (Ot -= Ne), Ot > 0 && t.lineTo(h + Fu(it - Ot, 0), c + Ne), (Ot -= it), Ot > 0 && t.lineTo(h, c + Fu(Ne - Ot, 0)) break t } g += D } t.rect(h, c, it, Ne) break case pt.Z: if (v) { var D = d[m++] if (g + D > y) { var I = (y - g) / D t.lineTo(u * (1 - I) + s * I, f * (1 - I) + l * I) break t } g += D } t.closePath(), (u = s), (f = l) } } }), (r.prototype.clone = function () { var t = new r(), e = this.data return ( (t.data = e.slice ? e.slice() : Array.prototype.slice.call(e)), (t._len = this._len), t ) }), (r.CMD = pt), (r.initDefaultProps = (function () { var t = r.prototype ;(t._saveData = !0), (t._ux = 0), (t._uy = 0), (t._pendingPtDist = 0), (t._version = 0) })()), r ) })(), ur = Zb function Jn(r, t, e, n, i, a, o) { if (i === 0) return !1 var s = i, l = 0, u = r if ( (o > t + s && o > n + s) || (o < t - s && o < n - s) || (a > r + s && a > e + s) || (a < r - s && a < e - s) ) return !1 if (r !== e) (l = (t - n) / (r - e)), (u = (r * n - e * t) / (r - e)) else return Math.abs(a - r) <= s / 2 var f = l * a - o + u, h = (f * f) / (l * l + 1) return h <= ((s / 2) * s) / 2 } function $b(r, t, e, n, i, a, o, s, l, u, f) { if (l === 0) return !1 var h = l if ( (f > t + h && f > n + h && f > a + h && f > s + h) || (f < t - h && f < n - h && f < a - h && f < s - h) || (u > r + h && u > e + h && u > i + h && u > o + h) || (u < r - h && u < e - h && u < i - h && u < o - h) ) return !1 var c = mc(r, t, e, n, i, a, o, s, u, f, null) return c <= h / 2 } function Xb(r, t, e, n, i, a, o, s, l) { if (o === 0) return !1 var u = o if ( (l > t + u && l > n + u && l > a + u) || (l < t - u && l < n - u && l < a - u) || (s > r + u && s > e + u && s > i + u) || (s < r - u && s < e - u && s < i - u) ) return !1 var f = Sc(r, t, e, n, i, a, s, l, null) return f <= u / 2 } var _d = Math.PI * 2 function Ir(r) { return (r %= _d), r < 0 && (r += _d), r } var ra = Math.PI * 2 function qb(r, t, e, n, i, a, o, s, l) { if (o === 0) return !1 var u = o ;(s -= r), (l -= t) var f = Math.sqrt(s * s + l * l) if (f - u > e || f + u < e) return !1 if (Math.abs(n - i) % ra < 1e-4) return !0 if (a) { var h = n ;(n = Ir(i)), (i = Ir(h)) } else (n = Ir(n)), (i = Ir(i)) n > i && (i += ra) var c = Math.atan2(l, s) return c < 0 && (c += ra), (c >= n && c <= i) || (c + ra >= n && c + ra <= i) } function sn(r, t, e, n, i, a) { if ((a > t && a > n) || (a < t && a < n) || n === t) return 0 var o = (a - t) / (n - t), s = n < t ? 1 : -1 ;(o === 1 || o === 0) && (s = n < t ? 0.5 : -0.5) var l = o * (e - r) + r return l === i ? 1 / 0 : l > i ? s : 0 } var Lr = ur.CMD, ln = Math.PI * 2, Kb = 1e-4 function Qb(r, t) { return Math.abs(r - t) < Kb } var qt = [-1, -1, -1], de = [-1, -1] function Jb() { var r = de[0] ;(de[0] = de[1]), (de[1] = r) } function jb(r, t, e, n, i, a, o, s, l, u) { if ((u > t && u > n && u > a && u > s) || (u < t && u < n && u < a && u < s)) return 0 var f = po(t, n, a, s, u, qt) if (f === 0) return 0 for (var h = 0, c = -1, v = void 0, d = void 0, p = 0; p < f; p++) { var g = qt[p], m = g === 0 || g === 1 ? 0.5 : 1, y = Rt(r, e, i, o, g) y < l || (c < 0 && ((c = gc(t, n, a, s, de)), de[1] < de[0] && c > 1 && Jb(), (v = Rt(t, n, a, s, de[0])), c > 1 && (d = Rt(t, n, a, s, de[1]))), c === 2 ? g < de[0] ? (h += v < t ? m : -m) : g < de[1] ? (h += d < v ? m : -m) : (h += s < d ? m : -m) : g < de[0] ? (h += v < t ? m : -m) : (h += s < v ? m : -m)) } return h } function tT(r, t, e, n, i, a, o, s) { if ((s > t && s > n && s > a) || (s < t && s < n && s < a)) return 0 var l = lw(t, n, a, s, qt) if (l === 0) return 0 var u = _c(t, n, a) if (u >= 0 && u <= 1) { for (var f = 0, h = Gt(t, n, a, u), c = 0; c < l; c++) { var v = qt[c] === 0 || qt[c] === 1 ? 0.5 : 1, d = Gt(r, e, i, qt[c]) d < o || (qt[c] < u ? (f += h < t ? v : -v) : (f += a < h ? v : -v)) } return f } else { var v = qt[0] === 0 || qt[0] === 1 ? 0.5 : 1, d = Gt(r, e, i, qt[0]) return d < o ? 0 : a < t ? v : -v } } function eT(r, t, e, n, i, a, o, s) { if (((s -= t), s > e || s < -e)) return 0 var l = Math.sqrt(e * e - s * s) ;(qt[0] = -l), (qt[1] = l) var u = Math.abs(n - i) if (u < 1e-4) return 0 if (u >= ln - 1e-4) { ;(n = 0), (i = ln) var f = a ? 1 : -1 return o >= qt[0] + r && o <= qt[1] + r ? f : 0 } if (n > i) { var h = n ;(n = i), (i = h) } n < 0 && ((n += ln), (i += ln)) for (var c = 0, v = 0; v < 2; v++) { var d = qt[v] if (d + r > o) { var p = Math.atan2(s, d), f = a ? 1 : -1 p < 0 && (p = ln + p), ((p >= n && p <= i) || (p + ln >= n && p + ln <= i)) && (p > Math.PI / 2 && p < Math.PI * 1.5 && (f = -f), (c += f)) } } return c } function Sd(r, t, e, n, i) { for ( var a = r.data, o = r.len(), s = 0, l = 0, u = 0, f = 0, h = 0, c, v, d = 0; d < o; ) { var p = a[d++], g = d === 1 switch ( (p === Lr.M && d > 1 && (e || (s += sn(l, u, f, h, n, i))), g && ((l = a[d]), (u = a[d + 1]), (f = l), (h = u)), p) ) { case Lr.M: ;(f = a[d++]), (h = a[d++]), (l = f), (u = h) break case Lr.L: if (e) { if (Jn(l, u, a[d], a[d + 1], t, n, i)) return !0 } else s += sn(l, u, a[d], a[d + 1], n, i) || 0 ;(l = a[d++]), (u = a[d++]) break case Lr.C: if (e) { if ($b(l, u, a[d++], a[d++], a[d++], a[d++], a[d], a[d + 1], t, n, i)) return !0 } else s += jb(l, u, a[d++], a[d++], a[d++], a[d++], a[d], a[d + 1], n, i) || 0 ;(l = a[d++]), (u = a[d++]) break case Lr.Q: if (e) { if (Xb(l, u, a[d++], a[d++], a[d], a[d + 1], t, n, i)) return !0 } else s += tT(l, u, a[d++], a[d++], a[d], a[d + 1], n, i) || 0 ;(l = a[d++]), (u = a[d++]) break case Lr.A: var m = a[d++], y = a[d++], _ = a[d++], S = a[d++], w = a[d++], x = a[d++] d += 1 var b = !!(1 - a[d++]) ;(c = Math.cos(w) * _ + m), (v = Math.sin(w) * S + y), g ? ((f = c), (h = v)) : (s += sn(l, u, c, v, n, i)) var T = ((n - m) * S) / _ + m if (e) { if (qb(m, y, S, w, w + x, b, t, T, i)) return !0 } else s += eT(m, y, S, w, w + x, b, T, i) ;(l = Math.cos(w + x) * _ + m), (u = Math.sin(w + x) * S + y) break case Lr.R: ;(f = l = a[d++]), (h = u = a[d++]) var C = a[d++], M = a[d++] if (((c = f + C), (v = h + M), e)) { if ( Jn(f, h, c, h, t, n, i) || Jn(c, h, c, v, t, n, i) || Jn(c, v, f, v, t, n, i) || Jn(f, v, f, h, t, n, i) ) return !0 } else (s += sn(c, h, c, v, n, i)), (s += sn(f, v, f, h, n, i)) break case Lr.Z: if (e) { if (Jn(l, u, f, h, t, n, i)) return !0 } else s += sn(l, u, f, h, n, i) ;(l = f), (u = h) break } } return !e && !Qb(u, h) && (s += sn(l, u, f, h, n, i) || 0), s !== 0 } function rT(r, t, e) { return Sd(r, 0, !1, t, e) } function nT(r, t, e, n) { return Sd(r, t, !0, e, n) } var xd = j( { fill: '#000', stroke: null, strokePercent: 1, fillOpacity: 1, strokeOpacity: 1, lineDashOffset: 0, lineWidth: 1, lineCap: 'butt', miterLimit: 10, strokeNoScale: !1, strokeFirst: !1 }, tn ), iT = { style: j( { fill: !0, stroke: !0, strokePercent: !0, fillOpacity: !0, strokeOpacity: !0, lineDashOffset: !0, lineWidth: !0, miterLimit: !0 }, zo.style ) }, Hu = Ui.concat(['invisible', 'culling', 'z', 'z2', 'zlevel', 'parent']), aT = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype.update = function () { var e = this r.prototype.update.call(this) var n = this.style if (n.decal) { var i = (this._decalEl = this._decalEl || new t()) i.buildPath === t.prototype.buildPath && (i.buildPath = function (l) { e.buildPath(l, e.shape) }), (i.silent = !0) var a = i.style for (var o in n) a[o] !== n[o] && (a[o] = n[o]) ;(a.fill = n.fill ? n.decal : null), (a.decal = null), (a.shadowColor = null), n.strokeFirst && (a.stroke = null) for (var s = 0; s < Hu.length; ++s) i[Hu[s]] = this[Hu[s]] i.__dirty |= ae } else this._decalEl && (this._decalEl = null) }), (t.prototype.getDecalElement = function () { return this._decalEl }), (t.prototype._init = function (e) { var n = xt(e) this.shape = this.getDefaultShape() var i = this.getDefaultStyle() i && this.useStyle(i) for (var a = 0; a < n.length; a++) { var o = n[a], s = e[o] o === 'style' ? this.style ? N(this.style, s) : this.useStyle(s) : o === 'shape' ? N(this.shape, s) : r.prototype.attrKV.call(this, o, s) } this.style || this.useStyle({}) }), (t.prototype.getDefaultStyle = function () { return null }), (t.prototype.getDefaultShape = function () { return {} }), (t.prototype.canBeInsideText = function () { return this.hasFill() }), (t.prototype.getInsideTextFill = function () { var e = this.style.fill if (e !== 'none') { if (W(e)) { var n = xo(e, 0) return n > 0.5 ? hu : n > 0.2 ? Ow : vu } else if (e) return vu } return hu }), (t.prototype.getInsideTextStroke = function (e) { var n = this.style.fill if (W(n)) { var i = this.__zr, a = !!(i && i.isDarkMode()), o = xo(e, 0) < fu if (a === o) return n } }), (t.prototype.buildPath = function (e, n, i) {}), (t.prototype.pathUpdated = function () { this.__dirty &= ~Wn }), (t.prototype.getUpdatedPathProxy = function (e) { return ( !this.path && this.createPathProxy(), this.path.beginPath(), this.buildPath(this.path, this.shape, e), this.path ) }), (t.prototype.createPathProxy = function () { this.path = new ur(!1) }), (t.prototype.hasStroke = function () { var e = this.style, n = e.stroke return !(n == null || n === 'none' || !(e.lineWidth > 0)) }), (t.prototype.hasFill = function () { var e = this.style, n = e.fill return n != null && n !== 'none' }), (t.prototype.getBoundingRect = function () { var e = this._rect, n = this.style, i = !e if (i) { var a = !1 this.path || ((a = !0), this.createPathProxy()) var o = this.path ;(a || this.__dirty & Wn) && (o.beginPath(), this.buildPath(o, this.shape, !1), this.pathUpdated()), (e = o.getBoundingRect()) } if ( ((this._rect = e), this.hasStroke() && this.path && this.path.len() > 0) ) { var s = this._rectStroke || (this._rectStroke = e.clone()) if (this.__dirty || i) { s.copy(e) var l = n.strokeNoScale ? this.getLineScale() : 1, u = n.lineWidth if (!this.hasFill()) { var f = this.strokeContainThreshold u = Math.max(u, f == null ? 4 : f) } l > 1e-10 && ((s.width += u / l), (s.height += u / l), (s.x -= u / l / 2), (s.y -= u / l / 2)) } return s } return e }), (t.prototype.contain = function (e, n) { var i = this.transformCoordToLocal(e, n), a = this.getBoundingRect(), o = this.style if (((e = i[0]), (n = i[1]), a.contain(e, n))) { var s = this.path if (this.hasStroke()) { var l = o.lineWidth, u = o.strokeNoScale ? this.getLineScale() : 1 if ( u > 1e-10 && (this.hasFill() || (l = Math.max(l, this.strokeContainThreshold)), nT(s, l / u, e, n)) ) return !0 } if (this.hasFill()) return rT(s, e, n) } return !1 }), (t.prototype.dirtyShape = function () { ;(this.__dirty |= Wn), this._rect && (this._rect = null), this._decalEl && this._decalEl.dirtyShape(), this.markRedraw() }), (t.prototype.dirty = function () { this.dirtyStyle(), this.dirtyShape() }), (t.prototype.animateShape = function (e) { return this.animate('shape', e) }), (t.prototype.updateDuringAnimation = function (e) { e === 'style' ? this.dirtyStyle() : e === 'shape' ? this.dirtyShape() : this.markRedraw() }), (t.prototype.attrKV = function (e, n) { e === 'shape' ? this.setShape(n) : r.prototype.attrKV.call(this, e, n) }), (t.prototype.setShape = function (e, n) { var i = this.shape return ( i || (i = this.shape = {}), typeof e == 'string' ? (i[e] = n) : N(i, e), this.dirtyShape(), this ) }), (t.prototype.shapeChanged = function () { return !!(this.__dirty & Wn) }), (t.prototype.createStyle = function (e) { return so(xd, e) }), (t.prototype._innerSaveToNormal = function (e) { r.prototype._innerSaveToNormal.call(this, e) var n = this._normalState e.shape && !n.shape && (n.shape = N({}, this.shape)) }), (t.prototype._applyStateObj = function (e, n, i, a, o, s) { r.prototype._applyStateObj.call(this, e, n, i, a, o, s) var l = !(n && a), u if ( (n && n.shape ? o ? a ? (u = n.shape) : ((u = N({}, i.shape)), N(u, n.shape)) : ((u = N({}, a ? this.shape : i.shape)), N(u, n.shape)) : l && (u = i.shape), u) ) if (o) { this.shape = N({}, this.shape) for (var f = {}, h = xt(u), c = 0; c < h.length; c++) { var v = h[c] typeof u[v] == 'object' ? (this.shape[v] = u[v]) : (f[v] = u[v]) } this._transitionState(e, { shape: f }, s) } else (this.shape = u), this.dirtyShape() }), (t.prototype._mergeStates = function (e) { for ( var n = r.prototype._mergeStates.call(this, e), i, a = 0; a < e.length; a++ ) { var o = e[a] o.shape && ((i = i || {}), this._mergeStyle(i, o.shape)) } return i && (n.shape = i), n }), (t.prototype.getAnimationStyleProps = function () { return iT }), (t.prototype.isZeroArea = function () { return !1 }), (t.extend = function (e) { var n = (function (a) { B(o, a) function o(s) { var l = a.call(this, s) || this return e.init && e.init.call(l, s), l } return ( (o.prototype.getDefaultStyle = function () { return tt(e.style) }), (o.prototype.getDefaultShape = function () { return tt(e.shape) }), o ) })(t) for (var i in e) typeof e[i] == 'function' && (n.prototype[i] = e[i]) return n }), (t.initDefaultProps = (function () { var e = t.prototype ;(e.type = 'path'), (e.strokeContainThreshold = 5), (e.segmentIgnoreThreshold = 0), (e.subPixelOptimize = !1), (e.autoBatch = !1), (e.__dirty = ae | Fi | Wn) })()), t ) })(Qn), st = aT, oT = j( { strokeFirst: !0, font: Yr, x: 0, y: 0, textAlign: 'left', textBaseline: 'top', miterLimit: 2 }, xd ), wd = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.hasStroke = function () { var e = this.style, n = e.stroke return n != null && n !== 'none' && e.lineWidth > 0 }), (t.prototype.hasFill = function () { var e = this.style, n = e.fill return n != null && n !== 'none' }), (t.prototype.createStyle = function (e) { return so(oT, e) }), (t.prototype.setBoundingRect = function (e) { this._rect = e }), (t.prototype.getBoundingRect = function () { var e = this.style if (!this._rect) { var n = e.text n != null ? (n += '') : (n = '') var i = Eo(n, e.font, e.textAlign, e.textBaseline) if (((i.x += e.x || 0), (i.y += e.y || 0), this.hasStroke())) { var a = e.lineWidth ;(i.x -= a / 2), (i.y -= a / 2), (i.width += a), (i.height += a) } this._rect = i } return this._rect }), (t.initDefaultProps = (function () { var e = t.prototype e.dirtyRectTolerance = 10 })()), t ) })(Qn) wd.prototype.type = 'tspan' var Wu = wd, sT = j({ x: 0, y: 0 }, tn), lT = { style: j( { x: !0, y: !0, width: !0, height: !0, sx: !0, sy: !0, sWidth: !0, sHeight: !0 }, zo.style ) } function uT(r) { return !!(r && typeof r != 'string' && r.width && r.height) } var bd = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.createStyle = function (e) { return so(sT, e) }), (t.prototype._getSize = function (e) { var n = this.style, i = n[e] if (i != null) return i var a = uT(n.image) ? n.image : this.__image if (!a) return 0 var o = e === 'width' ? 'height' : 'width', s = n[o] return s == null ? a[e] : (a[e] / a[o]) * s }), (t.prototype.getWidth = function () { return this._getSize('width') }), (t.prototype.getHeight = function () { return this._getSize('height') }), (t.prototype.getAnimationStyleProps = function () { return lT }), (t.prototype.getBoundingRect = function () { var e = this.style return ( this._rect || (this._rect = new vt( e.x || 0, e.y || 0, this.getWidth(), this.getHeight() )), this._rect ) }), t ) })(Qn) bd.prototype.type = 'image' var un = bd function fT(r, t) { var e = t.x, n = t.y, i = t.width, a = t.height, o = t.r, s, l, u, f i < 0 && ((e = e + i), (i = -i)), a < 0 && ((n = n + a), (a = -a)), typeof o == 'number' ? (s = l = u = f = o) : o instanceof Array ? o.length === 1 ? (s = l = u = f = o[0]) : o.length === 2 ? ((s = u = o[0]), (l = f = o[1])) : o.length === 3 ? ((s = o[0]), (l = f = o[1]), (u = o[2])) : ((s = o[0]), (l = o[1]), (u = o[2]), (f = o[3])) : (s = l = u = f = 0) var h s + l > i && ((h = s + l), (s *= i / h), (l *= i / h)), u + f > i && ((h = u + f), (u *= i / h), (f *= i / h)), l + u > a && ((h = l + u), (l *= a / h), (u *= a / h)), s + f > a && ((h = s + f), (s *= a / h), (f *= a / h)), r.moveTo(e + s, n), r.lineTo(e + i - l, n), l !== 0 && r.arc(e + i - l, n + l, l, -Math.PI / 2, 0), r.lineTo(e + i, n + a - u), u !== 0 && r.arc(e + i - u, n + a - u, u, 0, Math.PI / 2), r.lineTo(e + f, n + a), f !== 0 && r.arc(e + f, n + a - f, f, Math.PI / 2, Math.PI), r.lineTo(e, n + s), s !== 0 && r.arc(e + s, n + s, s, Math.PI, Math.PI * 1.5) } var jn = Math.round function Td(r, t, e) { if (!!t) { var n = t.x1, i = t.x2, a = t.y1, o = t.y2 ;(r.x1 = n), (r.x2 = i), (r.y1 = a), (r.y2 = o) var s = e && e.lineWidth return ( s && (jn(n * 2) === jn(i * 2) && (r.x1 = r.x2 = fn(n, s, !0)), jn(a * 2) === jn(o * 2) && (r.y1 = r.y2 = fn(a, s, !0))), r ) } } function Cd(r, t, e) { if (!!t) { var n = t.x, i = t.y, a = t.width, o = t.height ;(r.x = n), (r.y = i), (r.width = a), (r.height = o) var s = e && e.lineWidth return ( s && ((r.x = fn(n, s, !0)), (r.y = fn(i, s, !0)), (r.width = Math.max(fn(n + a, s, !1) - r.x, a === 0 ? 0 : 1)), (r.height = Math.max(fn(i + o, s, !1) - r.y, o === 0 ? 0 : 1))), r ) } } function fn(r, t, e) { if (!t) return r var n = jn(r * 2) return (n + jn(t)) % 2 == 0 ? n / 2 : (n + (e ? 1 : -1)) / 2 } var hT = (function () { function r() { ;(this.x = 0), (this.y = 0), (this.width = 0), (this.height = 0) } return r })(), vT = {}, Ad = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype.getDefaultShape = function () { return new hT() }), (t.prototype.buildPath = function (e, n) { var i, a, o, s if (this.subPixelOptimize) { var l = Cd(vT, n, this.style) ;(i = l.x), (a = l.y), (o = l.width), (s = l.height), (l.r = n.r), (n = l) } else (i = n.x), (a = n.y), (o = n.width), (s = n.height) n.r ? fT(e, n) : e.rect(i, a, o, s) }), (t.prototype.isZeroArea = function () { return !this.shape.width || !this.shape.height }), t ) })(st) Ad.prototype.type = 'rect' var St = Ad, Md = { fill: '#000' }, Dd = 2, cT = { style: j( { fill: !0, stroke: !0, fillOpacity: !0, strokeOpacity: !0, lineWidth: !0, fontSize: !0, lineHeight: !0, width: !0, height: !0, textShadowColor: !0, textShadowBlur: !0, textShadowOffsetX: !0, textShadowOffsetY: !0, backgroundColor: !0, padding: !0, borderColor: !0, borderWidth: !0, borderRadius: !0 }, zo.style ) }, Id = (function (r) { B(t, r) function t(e) { var n = r.call(this) || this return ( (n.type = 'text'), (n._children = []), (n._defaultStyle = Md), n.attr(e), n ) } return ( (t.prototype.childrenRef = function () { return this._children }), (t.prototype.update = function () { r.prototype.update.call(this), this.styleChanged() && this._updateSubTexts() for (var e = 0; e < this._children.length; e++) { var n = this._children[e] ;(n.zlevel = this.zlevel), (n.z = this.z), (n.z2 = this.z2), (n.culling = this.culling), (n.cursor = this.cursor), (n.invisible = this.invisible) } }), (t.prototype.updateTransform = function () { var e = this.innerTransformable e ? (e.updateTransform(), e.transform && (this.transform = e.transform)) : r.prototype.updateTransform.call(this) }), (t.prototype.getLocalTransform = function (e) { var n = this.innerTransformable return n ? n.getLocalTransform(e) : r.prototype.getLocalTransform.call(this, e) }), (t.prototype.getComputedTransform = function () { return ( this.__hostTarget && (this.__hostTarget.getComputedTransform(), this.__hostTarget.updateInnerText(!0)), r.prototype.getComputedTransform.call(this) ) }), (t.prototype._updateSubTexts = function () { ;(this._childCursor = 0), yT(this.style), this.style.rich ? this._updateRichTexts() : this._updatePlainTexts(), (this._children.length = this._childCursor), this.styleUpdated() }), (t.prototype.addSelfToZr = function (e) { r.prototype.addSelfToZr.call(this, e) for (var n = 0; n < this._children.length; n++) this._children[n].__zr = e }), (t.prototype.removeSelfFromZr = function (e) { r.prototype.removeSelfFromZr.call(this, e) for (var n = 0; n < this._children.length; n++) this._children[n].__zr = null }), (t.prototype.getBoundingRect = function () { if ((this.styleChanged() && this._updateSubTexts(), !this._rect)) { for ( var e = new vt(0, 0, 0, 0), n = this._children, i = [], a = null, o = 0; o < n.length; o++ ) { var s = n[o], l = s.getBoundingRect(), u = s.getLocalTransform(i) u ? (e.copy(l), e.applyTransform(u), (a = a || e.clone()), a.union(e)) : ((a = a || l.clone()), a.union(l)) } this._rect = a || e } return this._rect }), (t.prototype.setDefaultTextStyle = function (e) { this._defaultStyle = e || Md }), (t.prototype.setTextContent = function (e) {}), (t.prototype._mergeStyle = function (e, n) { if (!n) return e var i = n.rich, a = e.rich || (i && {}) return ( N(e, n), i && a ? (this._mergeRich(a, i), (e.rich = a)) : a && (e.rich = a), e ) }), (t.prototype._mergeRich = function (e, n) { for (var i = xt(n), a = 0; a < i.length; a++) { var o = i[a] ;(e[o] = e[o] || {}), N(e[o], n[o]) } }), (t.prototype.getAnimationStyleProps = function () { return cT }), (t.prototype._getOrCreateChild = function (e) { var n = this._children[this._childCursor] return ( (!n || !(n instanceof e)) && (n = new e()), (this._children[this._childCursor++] = n), (n.__zr = this.__zr), (n.parent = this), n ) }), (t.prototype._updatePlainTexts = function () { var e = this.style, n = e.font || Yr, i = e.padding, a = Bd(e), o = Rb(a, e), s = Uu(e), l = !!e.backgroundColor, u = o.outerHeight, f = o.outerWidth, h = o.contentWidth, c = o.lines, v = o.lineHeight, d = this._defaultStyle, p = e.x || 0, g = e.y || 0, m = e.align || d.align || 'left', y = e.verticalAlign || d.verticalAlign || 'top', _ = p, S = qn(g, o.contentHeight, y) if (s || i) { var w = $i(p, f, m), x = qn(g, u, y) s && this._renderBackground(e, e, w, x, f, u) } ;(S += v / 2), i && ((_ = kd(p, m, i)), y === 'top' ? (S += i[0]) : y === 'bottom' && (S -= i[2])) for ( var b = 0, T = !1, C = Od(('fill' in e) ? e.fill : ((T = !0), d.fill)), M = Ed( ('stroke' in e) ? e.stroke : !l && (!d.autoStroke || T) ? ((b = Dd), d.stroke) : null ), D = e.textShadowBlur > 0, I = e.width != null && (e.overflow === 'truncate' || e.overflow === 'break' || e.overflow === 'breakAll'), L = o.calculatedLineHeight, P = 0; P < c.length; P++ ) { var R = this._getOrCreateChild(Wu), O = R.createStyle() R.useStyle(O), (O.text = c[P]), (O.x = _), (O.y = S), m && (O.textAlign = m), (O.textBaseline = 'middle'), (O.opacity = e.opacity), (O.strokeFirst = !0), D && ((O.shadowBlur = e.textShadowBlur || 0), (O.shadowColor = e.textShadowColor || 'transparent'), (O.shadowOffsetX = e.textShadowOffsetX || 0), (O.shadowOffsetY = e.textShadowOffsetY || 0)), (O.stroke = M), (O.fill = C), M && ((O.lineWidth = e.lineWidth || b), (O.lineDash = e.lineDash), (O.lineDashOffset = e.lineDashOffset || 0)), (O.font = n), Pd(O, e), (S += v), I && R.setBoundingRect( new vt( $i(O.x, e.width, O.textAlign), qn(O.y, L, O.textBaseline), h, L ) ) } }), (t.prototype._updateRichTexts = function () { var e = this.style, n = Bd(e), i = kb(n, e), a = i.width, o = i.outerWidth, s = i.outerHeight, l = e.padding, u = e.x || 0, f = e.y || 0, h = this._defaultStyle, c = e.align || h.align, v = e.verticalAlign || h.verticalAlign, d = $i(u, o, c), p = qn(f, s, v), g = d, m = p l && ((g += l[3]), (m += l[0])) var y = g + a Uu(e) && this._renderBackground(e, e, d, p, o, s) for (var _ = !!e.backgroundColor, S = 0; S < i.lines.length; S++) { for ( var w = i.lines[S], x = w.tokens, b = x.length, T = w.lineHeight, C = w.width, M = 0, D = g, I = y, L = b - 1, P = void 0; M < b && ((P = x[M]), !P.align || P.align === 'left'); ) this._placeToken(P, e, T, m, D, 'left', _), (C -= P.width), (D += P.width), M++ for (; L >= 0 && ((P = x[L]), P.align === 'right'); ) this._placeToken(P, e, T, m, I, 'right', _), (C -= P.width), (I -= P.width), L-- for (D += (a - (D - g) - (y - I) - C) / 2; M <= L; ) (P = x[M]), this._placeToken(P, e, T, m, D + P.width / 2, 'center', _), (D += P.width), M++ m += T } }), (t.prototype._placeToken = function (e, n, i, a, o, s, l) { var u = n.rich[e.styleName] || {} u.text = e.text var f = e.verticalAlign, h = a + i / 2 f === 'top' ? (h = a + e.height / 2) : f === 'bottom' && (h = a + i - e.height / 2) var c = !e.isLineHolder && Uu(u) c && this._renderBackground( u, n, s === 'right' ? o - e.width : s === 'center' ? o - e.width / 2 : o, h - e.height / 2, e.width, e.height ) var v = !!u.backgroundColor, d = e.textPadding d && ((o = kd(o, s, d)), (h -= e.height / 2 - d[0] - e.innerHeight / 2)) var p = this._getOrCreateChild(Wu), g = p.createStyle() p.useStyle(g) var m = this._defaultStyle, y = !1, _ = 0, S = Od( 'fill' in u ? u.fill : 'fill' in n ? n.fill : ((y = !0), m.fill) ), w = Ed( 'stroke' in u ? u.stroke : 'stroke' in n ? n.stroke : !v && !l && (!m.autoStroke || y) ? ((_ = Dd), m.stroke) : null ), x = u.textShadowBlur > 0 || n.textShadowBlur > 0 ;(g.text = e.text), (g.x = o), (g.y = h), x && ((g.shadowBlur = u.textShadowBlur || n.textShadowBlur || 0), (g.shadowColor = u.textShadowColor || n.textShadowColor || 'transparent'), (g.shadowOffsetX = u.textShadowOffsetX || n.textShadowOffsetX || 0), (g.shadowOffsetY = u.textShadowOffsetY || n.textShadowOffsetY || 0)), (g.textAlign = s), (g.textBaseline = 'middle'), (g.font = e.font || Yr), (g.opacity = Oi(u.opacity, n.opacity, 1)), Pd(g, u), w && ((g.lineWidth = Oi(u.lineWidth, n.lineWidth, _)), (g.lineDash = ht(u.lineDash, n.lineDash)), (g.lineDashOffset = n.lineDashOffset || 0), (g.stroke = w)), S && (g.fill = S) var b = e.contentWidth, T = e.contentHeight p.setBoundingRect( new vt($i(g.x, b, g.textAlign), qn(g.y, T, g.textBaseline), b, T) ) }), (t.prototype._renderBackground = function (e, n, i, a, o, s) { var l = e.backgroundColor, u = e.borderWidth, f = e.borderColor, h = l && l.image, c = l && !h, v = e.borderRadius, d = this, p, g if (c || e.lineHeight || (u && f)) { ;(p = this._getOrCreateChild(St)), p.useStyle(p.createStyle()), (p.style.fill = null) var m = p.shape ;(m.x = i), (m.y = a), (m.width = o), (m.height = s), (m.r = v), p.dirtyShape() } if (c) { var y = p.style ;(y.fill = l || null), (y.fillOpacity = ht(e.fillOpacity, 1)) } else if (h) { ;(g = this._getOrCreateChild(un)), (g.onload = function () { d.dirtyStyle() }) var _ = g.style ;(_.image = l.image), (_.x = i), (_.y = a), (_.width = o), (_.height = s) } if (u && f) { var y = p.style ;(y.lineWidth = u), (y.stroke = f), (y.strokeOpacity = ht(e.strokeOpacity, 1)), (y.lineDash = e.borderDash), (y.lineDashOffset = e.borderDashOffset || 0), (p.strokeContainThreshold = 0), p.hasFill() && p.hasStroke() && ((y.strokeFirst = !0), (y.lineWidth *= 2)) } var S = (p || g).style ;(S.shadowBlur = e.shadowBlur || 0), (S.shadowColor = e.shadowColor || 'transparent'), (S.shadowOffsetX = e.shadowOffsetX || 0), (S.shadowOffsetY = e.shadowOffsetY || 0), (S.opacity = Oi(e.opacity, n.opacity, 1)) }), (t.makeFont = function (e) { var n = '' return ( mT(e) && (n = [ e.fontStyle, e.fontWeight, gT(e.fontSize), e.fontFamily || 'sans-serif' ].join(' ')), (n && Ge(n)) || e.textFont || e.font ) }), t ) })(Qn), dT = { left: !0, right: 1, center: 1 }, pT = { top: 1, bottom: 1, middle: 1 }, Ld = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily'] function gT(r) { return typeof r == 'string' && (r.indexOf('px') !== -1 || r.indexOf('rem') !== -1 || r.indexOf('em') !== -1) ? r : isNaN(+r) ? Dl + 'px' : r + 'px' } function Pd(r, t) { for (var e = 0; e < Ld.length; e++) { var n = Ld[e], i = t[n] i != null && (r[n] = i) } } function mT(r) { return r.fontSize != null || r.fontFamily || r.fontWeight } function yT(r) { return Rd(r), A(r.rich, Rd), r } function Rd(r) { if (r) { r.font = Id.makeFont(r) var t = r.align t === 'middle' && (t = 'center'), (r.align = t == null || dT[t] ? t : 'left') var e = r.verticalAlign e === 'center' && (e = 'middle'), (r.verticalAlign = e == null || pT[e] ? e : 'top') var n = r.padding n && (r.padding = Zv(r.padding)) } } function Ed(r, t) { return r == null || t <= 0 || r === 'transparent' || r === 'none' ? null : r.image || r.colorStops ? '#000' : r } function Od(r) { return r == null || r === 'none' ? null : r.image || r.colorStops ? '#000' : r } function kd(r, t, e) { return t === 'right' ? r - e[1] : t === 'center' ? r + e[3] / 2 - e[1] / 2 : r + e[3] } function Bd(r) { var t = r.text return t != null && (t += ''), t } function Uu(r) { return !!( r.backgroundColor || r.lineHeight || (r.borderWidth && r.borderColor) ) } var Et = Id, ct = wt(), _T = function (r, t, e, n) { if (n) { var i = ct(n) ;(i.dataIndex = e), (i.dataType = t), (i.seriesIndex = r), n.type === 'group' && n.traverse(function (a) { var o = ct(a) ;(o.seriesIndex = r), (o.dataIndex = e), (o.dataType = t) }) } }, Nd = 1, Fd = {}, zd = wt(), Yu = wt(), Zu = 0, Wo = 1, Uo = 2, pe = ['emphasis', 'blur', 'select'], Yo = ['normal', 'emphasis', 'blur', 'select'], ST = 10, xT = 9, hn = 'highlight', Zo = 'downplay', na = 'select', $o = 'unselect', ia = 'toggleSelect' function ti(r) { return r != null && r !== 'none' } var Vd = new zi(100) function Gd(r) { if (W(r)) { var t = Vd.get(r) return t || ((t = Ac(r, -0.1)), Vd.put(r, t)), t } else if (io(r)) { var e = N({}, r) return ( (e.colorStops = G(r.colorStops, function (n) { return { offset: n.offset, color: Ac(n.color, -0.1) } })), e ) } return r } function Xo(r, t, e) { r.onHoverStateChange && (r.hoverState || 0) !== e && r.onHoverStateChange(t), (r.hoverState = e) } function Hd(r) { Xo(r, 'emphasis', Uo) } function Wd(r) { r.hoverState === Uo && Xo(r, 'normal', Zu) } function $u(r) { Xo(r, 'blur', Wo) } function Ud(r) { r.hoverState === Wo && Xo(r, 'normal', Zu) } function wT(r) { r.selected = !0 } function bT(r) { r.selected = !1 } function Yd(r, t, e) { t(r, e) } function fr(r, t, e) { Yd(r, t, e), r.isGroup && r.traverse(function (n) { Yd(n, t, e) }) } function Zd(r, t) { switch (t) { case 'emphasis': r.hoverState = Uo break case 'normal': r.hoverState = Zu break case 'blur': r.hoverState = Wo break case 'select': r.selected = !0 } } function TT(r, t, e, n) { for (var i = r.style, a = {}, o = 0; o < t.length; o++) { var s = t[o], l = i[s] a[s] = l == null ? n && n[s] : l } for (var o = 0; o < r.animators.length; o++) { var u = r.animators[o] u.__fromStateTransition && u.__fromStateTransition.indexOf(e) < 0 && u.targetName === 'style' && u.saveTo(a, t) } return a } function CT(r, t, e, n) { var i = e && ot(e, 'select') >= 0, a = !1 if (r instanceof st) { var o = zd(r), s = (i && o.selectFill) || o.normalFill, l = (i && o.selectStroke) || o.normalStroke if (ti(s) || ti(l)) { n = n || {} var u = n.style || {} u.fill === 'inherit' ? ((a = !0), (n = N({}, n)), (u = N({}, u)), (u.fill = s)) : !ti(u.fill) && ti(s) ? ((a = !0), (n = N({}, n)), (u = N({}, u)), (u.fill = Gd(s))) : !ti(u.stroke) && ti(l) && (a || ((n = N({}, n)), (u = N({}, u))), (u.stroke = Gd(l))), (n.style = u) } } if (n && n.z2 == null) { a || (n = N({}, n)) var f = r.z2EmphasisLift n.z2 = r.z2 + (f != null ? f : ST) } return n } function AT(r, t, e) { if (e && e.z2 == null) { e = N({}, e) var n = r.z2SelectLift e.z2 = r.z2 + (n != null ? n : xT) } return e } function MT(r, t, e) { var n = ot(r.currentStates, t) >= 0, i = r.style.opacity, a = n ? null : TT(r, ['opacity'], t, { opacity: 1 }) e = e || {} var o = e.style || {} return ( o.opacity == null && ((e = N({}, e)), (o = N({ opacity: n ? i : a.opacity * 0.1 }, o)), (e.style = o)), e ) } function Xu(r, t) { var e = this.states[r] if (this.style) { if (r === 'emphasis') return CT(this, r, t, e) if (r === 'blur') return MT(this, r, e) if (r === 'select') return AT(this, r, e) } return e } function DT(r) { r.stateProxy = Xu var t = r.getTextContent(), e = r.getTextGuideLine() t && (t.stateProxy = Xu), e && (e.stateProxy = Xu) } function $d(r, t) { !Jd(r, t) && !r.__highByOuter && fr(r, Hd) } function Xd(r, t) { !Jd(r, t) && !r.__highByOuter && fr(r, Wd) } function ei(r, t) { ;(r.__highByOuter |= 1 << (t || 0)), fr(r, Hd) } function ri(r, t) { !(r.__highByOuter &= ~(1 << (t || 0))) && fr(r, Wd) } function IT(r) { fr(r, $u) } function qd(r) { fr(r, Ud) } function Kd(r) { fr(r, wT) } function Qd(r) { fr(r, bT) } function Jd(r, t) { return r.__highDownSilentOnTouch && t.zrByTouch } function jd(r) { var t = r.getModel(), e = [], n = [] t.eachComponent(function (i, a) { var o = Yu(a), s = i === 'series', l = s ? r.getViewOfSeriesModel(a) : r.getViewOfComponentModel(a) !s && n.push(l), o.isBlured && (l.group.traverse(function (u) { Ud(u) }), s && e.push(a)), (o.isBlured = !1) }), A(n, function (i) { i && i.toggleBlurSeries && i.toggleBlurSeries(e, !1, t) }) } function qu(r, t, e, n) { var i = n.getModel() e = e || 'coordinateSystem' function a(u, f) { for (var h = 0; h < f.length; h++) { var c = u.getItemGraphicEl(f[h]) c && qd(c) } } if (r != null && !(!t || t === 'none')) { var o = i.getSeriesByIndex(r), s = o.coordinateSystem s && s.master && (s = s.master) var l = [] i.eachSeries(function (u) { var f = o === u, h = u.coordinateSystem h && h.master && (h = h.master) var c = h && s ? h === s : f if ( !( (e === 'series' && !f) || (e === 'coordinateSystem' && !c) || (t === 'series' && f) ) ) { var v = n.getViewOfSeriesModel(u) if ( (v.group.traverse(function (g) { $u(g) }), Zt(t)) ) a(u.getData(), t) else if (Y(t)) for (var d = xt(t), p = 0; p < d.length; p++) a(u.getData(d[p]), t[d[p]]) l.push(u), (Yu(u).isBlured = !0) } }), i.eachComponent(function (u, f) { if (u !== 'series') { var h = n.getViewOfComponentModel(f) h && h.toggleBlurSeries && h.toggleBlurSeries(l, !0, i) } }) } } function Ku(r, t, e) { if (!(r == null || t == null)) { var n = e.getModel().getComponent(r, t) if (!!n) { Yu(n).isBlured = !0 var i = e.getViewOfComponentModel(n) !i || !i.focusBlurEnabled || i.group.traverse(function (a) { $u(a) }) } } } function LT(r, t, e) { var n = r.seriesIndex, i = r.getData(t.dataType) if (!!i) { var a = Jr(i, t) a = (z(a) ? a[0] : a) || 0 var o = i.getItemGraphicEl(a) if (!o) for (var s = i.count(), l = 0; !o && l < s; ) o = i.getItemGraphicEl(l++) if (o) { var u = ct(o) qu(n, u.focus, u.blurScope, e) } else { var f = r.get(['emphasis', 'focus']), h = r.get(['emphasis', 'blurScope']) f != null && qu(n, f, h, e) } } } function Qu(r, t, e, n) { var i = { focusSelf: !1, dispatchers: null } if (r == null || r === 'series' || t == null || e == null) return i var a = n.getModel().getComponent(r, t) if (!a) return i var o = n.getViewOfComponentModel(a) if (!o || !o.findHighDownDispatchers) return i for (var s = o.findHighDownDispatchers(e), l, u = 0; u < s.length; u++) if (ct(s[u]).focus === 'self') { l = !0 break } return { focusSelf: l, dispatchers: s } } function PT(r, t, e) { var n = ct(r), i = Qu(n.componentMainType, n.componentIndex, n.componentHighDownName, e), a = i.dispatchers, o = i.focusSelf a ? (o && Ku(n.componentMainType, n.componentIndex, e), A(a, function (s) { return $d(s, t) })) : (qu(n.seriesIndex, n.focus, n.blurScope, e), n.focus === 'self' && Ku(n.componentMainType, n.componentIndex, e), $d(r, t)) } function RT(r, t, e) { jd(e) var n = ct(r), i = Qu( n.componentMainType, n.componentIndex, n.componentHighDownName, e ).dispatchers i ? A(i, function (a) { return Xd(a, t) }) : Xd(r, t) } function ET(r, t, e) { if (!!ju(t)) { var n = t.dataType, i = r.getData(n), a = Jr(i, t) z(a) || (a = [a]), r[t.type === ia ? 'toggleSelect' : t.type === na ? 'select' : 'unselect']( a, n ) } } function tp(r) { var t = r.getAllData() A(t, function (e) { var n = e.data, i = e.type n.eachItemGraphicEl(function (a, o) { r.isSelected(o, i) ? Kd(a) : Qd(a) }) }) } function OT(r) { var t = [] return ( r.eachSeries(function (e) { var n = e.getAllData() A(n, function (i) { i.data var a = i.type, o = e.getSelectedDataIndices() if (o.length > 0) { var s = { dataIndex: o, seriesIndex: e.seriesIndex } a != null && (s.dataType = a), t.push(s) } }) }), t ) } function qo(r, t, e) { rp(r, !0), fr(r, DT), BT(r, t, e) } function kT(r) { rp(r, !1) } function aa(r, t, e, n) { n ? kT(r) : qo(r, t, e) } function BT(r, t, e) { var n = ct(r) t != null ? ((n.focus = t), (n.blurScope = e)) : n.focus && (n.focus = null) } var ep = ['emphasis', 'blur', 'select'], NT = { itemStyle: 'getItemStyle', lineStyle: 'getLineStyle', areaStyle: 'getAreaStyle' } function Ko(r, t, e, n) { e = e || 'itemStyle' for (var i = 0; i < ep.length; i++) { var a = ep[i], o = t.getModel([a, e]), s = r.ensureState(a) s.style = n ? n(o) : o[NT[e]]() } } function rp(r, t) { var e = t === !1, n = r r.highDownSilentOnTouch && (n.__highDownSilentOnTouch = r.highDownSilentOnTouch), (!e || n.__highDownDispatcher) && ((n.__highByOuter = n.__highByOuter || 0), (n.__highDownDispatcher = !e)) } function Ju(r) { return !!(r && r.__highDownDispatcher) } function FT(r) { var t = Fd[r] return t == null && Nd <= 32 && (t = Fd[r] = Nd++), t } function ju(r) { var t = r.type return t === na || t === $o || t === ia } function np(r) { var t = r.type return t === hn || t === Zo } function zT(r) { var t = zd(r) ;(t.normalFill = r.style.fill), (t.normalStroke = r.style.stroke) var e = r.states.select || {} ;(t.selectFill = (e.style && e.style.fill) || null), (t.selectStroke = (e.style && e.style.stroke) || null) } var ni = ur.CMD, VT = [[], [], []], ip = Math.sqrt, GT = Math.atan2 function ap(r, t) { if (!!t) { var e = r.data, n = r.len(), i, a, o, s, l, u, f = ni.M, h = ni.C, c = ni.L, v = ni.R, d = ni.A, p = ni.Q for (o = 0, s = 0; o < n; ) { switch (((i = e[o++]), (s = o), (a = 0), i)) { case f: a = 1 break case c: a = 1 break case h: a = 3 break case p: a = 2 break case d: var g = t[4], m = t[5], y = ip(t[0] * t[0] + t[1] * t[1]), _ = ip(t[2] * t[2] + t[3] * t[3]), S = GT(-t[1] / _, t[0] / y) ;(e[o] *= y), (e[o++] += g), (e[o] *= _), (e[o++] += m), (e[o++] *= y), (e[o++] *= _), (e[o++] += S), (e[o++] += S), (o += 2), (s = o) break case v: ;(u[0] = e[o++]), (u[1] = e[o++]), ue(u, u, t), (e[s++] = u[0]), (e[s++] = u[1]), (u[0] += e[o++]), (u[1] += e[o++]), ue(u, u, t), (e[s++] = u[0]), (e[s++] = u[1]) } for (l = 0; l < a; l++) { var w = VT[l] ;(w[0] = e[o++]), (w[1] = e[o++]), ue(w, w, t), (e[s++] = w[0]), (e[s++] = w[1]) } } r.increaseVersion() } } var tf = Math.sqrt, Qo = Math.sin, Jo = Math.cos, oa = Math.PI function op(r) { return Math.sqrt(r[0] * r[0] + r[1] * r[1]) } function ef(r, t) { return (r[0] * t[0] + r[1] * t[1]) / (op(r) * op(t)) } function sp(r, t) { return (r[0] * t[1] < r[1] * t[0] ? -1 : 1) * Math.acos(ef(r, t)) } function lp(r, t, e, n, i, a, o, s, l, u, f) { var h = l * (oa / 180), c = (Jo(h) * (r - e)) / 2 + (Qo(h) * (t - n)) / 2, v = (-1 * Qo(h) * (r - e)) / 2 + (Jo(h) * (t - n)) / 2, d = (c * c) / (o * o) + (v * v) / (s * s) d > 1 && ((o *= tf(d)), (s *= tf(d))) var p = (i === a ? -1 : 1) * tf( (o * o * (s * s) - o * o * (v * v) - s * s * (c * c)) / (o * o * (v * v) + s * s * (c * c)) ) || 0, g = (p * o * v) / s, m = (p * -s * c) / o, y = (r + e) / 2 + Jo(h) * g - Qo(h) * m, _ = (t + n) / 2 + Qo(h) * g + Jo(h) * m, S = sp([1, 0], [(c - g) / o, (v - m) / s]), w = [(c - g) / o, (v - m) / s], x = [(-1 * c - g) / o, (-1 * v - m) / s], b = sp(w, x) if ((ef(w, x) <= -1 && (b = oa), ef(w, x) >= 1 && (b = 0), b < 0)) { var T = Math.round((b / oa) * 1e6) / 1e6 b = oa * 2 + (T % 2) * oa } f.addData(u, y, _, o, s, S, b, h, a) } var HT = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi, WT = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g function UT(r) { var t = new ur() if (!r) return t var e = 0, n = 0, i = e, a = n, o, s = ur.CMD, l = r.match(HT) if (!l) return t for (var u = 0; u < l.length; u++) { for ( var f = l[u], h = f.charAt(0), c = void 0, v = f.match(WT) || [], d = v.length, p = 0; p < d; p++ ) v[p] = parseFloat(v[p]) for (var g = 0; g < d; ) { var m = void 0, y = void 0, _ = void 0, S = void 0, w = void 0, x = void 0, b = void 0, T = e, C = n, M = void 0, D = void 0 switch (h) { case 'l': ;(e += v[g++]), (n += v[g++]), (c = s.L), t.addData(c, e, n) break case 'L': ;(e = v[g++]), (n = v[g++]), (c = s.L), t.addData(c, e, n) break case 'm': ;(e += v[g++]), (n += v[g++]), (c = s.M), t.addData(c, e, n), (i = e), (a = n), (h = 'l') break case 'M': ;(e = v[g++]), (n = v[g++]), (c = s.M), t.addData(c, e, n), (i = e), (a = n), (h = 'L') break case 'h': ;(e += v[g++]), (c = s.L), t.addData(c, e, n) break case 'H': ;(e = v[g++]), (c = s.L), t.addData(c, e, n) break case 'v': ;(n += v[g++]), (c = s.L), t.addData(c, e, n) break case 'V': ;(n = v[g++]), (c = s.L), t.addData(c, e, n) break case 'C': ;(c = s.C), t.addData(c, v[g++], v[g++], v[g++], v[g++], v[g++], v[g++]), (e = v[g - 2]), (n = v[g - 1]) break case 'c': ;(c = s.C), t.addData( c, v[g++] + e, v[g++] + n, v[g++] + e, v[g++] + n, v[g++] + e, v[g++] + n ), (e += v[g - 2]), (n += v[g - 1]) break case 'S': ;(m = e), (y = n), (M = t.len()), (D = t.data), o === s.C && ((m += e - D[M - 4]), (y += n - D[M - 3])), (c = s.C), (T = v[g++]), (C = v[g++]), (e = v[g++]), (n = v[g++]), t.addData(c, m, y, T, C, e, n) break case 's': ;(m = e), (y = n), (M = t.len()), (D = t.data), o === s.C && ((m += e - D[M - 4]), (y += n - D[M - 3])), (c = s.C), (T = e + v[g++]), (C = n + v[g++]), (e += v[g++]), (n += v[g++]), t.addData(c, m, y, T, C, e, n) break case 'Q': ;(T = v[g++]), (C = v[g++]), (e = v[g++]), (n = v[g++]), (c = s.Q), t.addData(c, T, C, e, n) break case 'q': ;(T = v[g++] + e), (C = v[g++] + n), (e += v[g++]), (n += v[g++]), (c = s.Q), t.addData(c, T, C, e, n) break case 'T': ;(m = e), (y = n), (M = t.len()), (D = t.data), o === s.Q && ((m += e - D[M - 4]), (y += n - D[M - 3])), (e = v[g++]), (n = v[g++]), (c = s.Q), t.addData(c, m, y, e, n) break case 't': ;(m = e), (y = n), (M = t.len()), (D = t.data), o === s.Q && ((m += e - D[M - 4]), (y += n - D[M - 3])), (e += v[g++]), (n += v[g++]), (c = s.Q), t.addData(c, m, y, e, n) break case 'A': ;(_ = v[g++]), (S = v[g++]), (w = v[g++]), (x = v[g++]), (b = v[g++]), (T = e), (C = n), (e = v[g++]), (n = v[g++]), (c = s.A), lp(T, C, e, n, x, b, _, S, w, c, t) break case 'a': ;(_ = v[g++]), (S = v[g++]), (w = v[g++]), (x = v[g++]), (b = v[g++]), (T = e), (C = n), (e += v[g++]), (n += v[g++]), (c = s.A), lp(T, C, e, n, x, b, _, S, w, c, t) break } } ;(h === 'z' || h === 'Z') && ((c = s.Z), t.addData(c), (e = i), (n = a)), (o = c) } return t.toStatic(), t } var up = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return (t.prototype.applyTransform = function (e) {}), t })(st) function fp(r) { return r.setData != null } function hp(r, t) { var e = UT(r), n = N({}, t) return ( (n.buildPath = function (i) { if (fp(i)) { i.setData(e.data) var a = i.getContext() a && i.rebuildPath(a, 1) } else { var a = i e.rebuildPath(a, 1) } }), (n.applyTransform = function (i) { ap(e, i), this.dirtyShape() }), n ) } function YT(r, t) { return new up(hp(r, t)) } function ZT(r, t) { var e = hp(r, t), n = (function (i) { B(a, i) function a(o) { var s = i.call(this, o) || this return ( (s.applyTransform = e.applyTransform), (s.buildPath = e.buildPath), s ) } return a })(up) return n } function $T(r, t) { for (var e = [], n = r.length, i = 0; i < n; i++) { var a = r[i] e.push(a.getUpdatedPathProxy(!0)) } var o = new st(t) return ( o.createPathProxy(), (o.buildPath = function (s) { if (fp(s)) { s.appendPath(e) var l = s.getContext() l && s.rebuildPath(l, 1) } }), o ) } function rf(r, t) { t = t || {} var e = new st() return ( r.shape && e.setShape(r.shape), e.setStyle(r.style), t.bakeTransform ? ap(e.path, r.getComputedTransform()) : t.toLocal ? e.setLocalTransform(r.getComputedTransform()) : e.copyTransform(r), (e.buildPath = r.buildPath), (e.applyTransform = e.applyTransform), (e.z = r.z), (e.z2 = r.z2), (e.zlevel = r.zlevel), e ) } var XT = (function () { function r() { ;(this.cx = 0), (this.cy = 0), (this.r = 0) } return r })(), vp = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype.getDefaultShape = function () { return new XT() }), (t.prototype.buildPath = function (e, n) { e.moveTo(n.cx + n.r, n.cy), e.arc(n.cx, n.cy, n.r, 0, Math.PI * 2) }), t ) })(st) vp.prototype.type = 'circle' var nf = vp, qT = (function () { function r() { ;(this.cx = 0), (this.cy = 0), (this.rx = 0), (this.ry = 0) } return r })(), cp = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype.getDefaultShape = function () { return new qT() }), (t.prototype.buildPath = function (e, n) { var i = 0.5522848, a = n.cx, o = n.cy, s = n.rx, l = n.ry, u = s * i, f = l * i e.moveTo(a - s, o), e.bezierCurveTo(a - s, o - f, a - u, o - l, a, o - l), e.bezierCurveTo(a + u, o - l, a + s, o - f, a + s, o), e.bezierCurveTo(a + s, o + f, a + u, o + l, a, o + l), e.bezierCurveTo(a - u, o + l, a - s, o + f, a - s, o), e.closePath() }), t ) })(st) cp.prototype.type = 'ellipse' var dp = cp, pp = Math.PI, af = pp * 2, vn = Math.sin, ii = Math.cos, KT = Math.acos, Ht = Math.atan2, gp = Math.abs, sa = Math.sqrt, la = Math.max, Xe = Math.min, De = 1e-4 function QT(r, t, e, n, i, a, o, s) { var l = e - r, u = n - t, f = o - i, h = s - a, c = h * l - f * u if (!(c * c < De)) return (c = (f * (t - a) - h * (r - i)) / c), [r + c * l, t + c * u] } function jo(r, t, e, n, i, a, o) { var s = r - e, l = t - n, u = (o ? a : -a) / sa(s * s + l * l), f = u * l, h = -u * s, c = r + f, v = t + h, d = e + f, p = n + h, g = (c + d) / 2, m = (v + p) / 2, y = d - c, _ = p - v, S = y * y + _ * _, w = i - a, x = c * p - d * v, b = (_ < 0 ? -1 : 1) * sa(la(0, w * w * S - x * x)), T = (x * _ - y * b) / S, C = (-x * y - _ * b) / S, M = (x * _ + y * b) / S, D = (-x * y + _ * b) / S, I = T - g, L = C - m, P = M - g, R = D - m return ( I * I + L * L > P * P + R * R && ((T = M), (C = D)), { cx: T, cy: C, x0: -f, y0: -h, x1: T * (i / w - 1), y1: C * (i / w - 1) } ) } function JT(r) { var t if (z(r)) { var e = r.length if (!e) return r e === 1 ? (t = [r[0], r[0], 0, 0]) : e === 2 ? (t = [r[0], r[0], r[1], r[1]]) : e === 3 ? (t = r.concat(r[2])) : (t = r) } else t = [r, r, r, r] return t } function jT(r, t) { var e, n = la(t.r, 0), i = la(t.r0 || 0, 0), a = n > 0, o = i > 0 if (!(!a && !o)) { if ((a || ((n = i), (i = 0)), i > n)) { var s = n ;(n = i), (i = s) } var l = t.startAngle, u = t.endAngle if (!(isNaN(l) || isNaN(u))) { var f = t.cx, h = t.cy, c = !!t.clockwise, v = gp(u - l), d = v > af && v % af if ((d > De && (v = d), !(n > De))) r.moveTo(f, h) else if (v > af - De) r.moveTo(f + n * ii(l), h + n * vn(l)), r.arc(f, h, n, l, u, !c), i > De && (r.moveTo(f + i * ii(u), h + i * vn(u)), r.arc(f, h, i, u, l, c)) else { var p = void 0, g = void 0, m = void 0, y = void 0, _ = void 0, S = void 0, w = void 0, x = void 0, b = void 0, T = void 0, C = void 0, M = void 0, D = void 0, I = void 0, L = void 0, P = void 0, R = n * ii(l), O = n * vn(l), U = i * ii(u), k = i * vn(u), F = v > De if (F) { var H = t.cornerRadius H && ((e = JT(H)), (p = e[0]), (g = e[1]), (m = e[2]), (y = e[3])) var $ = gp(n - i) / 2 if ( ((_ = Xe($, m)), (S = Xe($, y)), (w = Xe($, p)), (x = Xe($, g)), (C = b = la(_, S)), (M = T = la(w, x)), (b > De || T > De) && ((D = n * ii(u)), (I = n * vn(u)), (L = i * ii(l)), (P = i * vn(l)), v < pp)) ) { var J = QT(R, O, L, P, D, I, U, k) if (J) { var et = R - J[0], ft = O - J[1], Ct = D - J[0], mt = I - J[1], zt = 1 / vn( KT( (et * Ct + ft * mt) / (sa(et * et + ft * ft) * sa(Ct * Ct + mt * mt)) ) / 2 ), Vt = sa(J[0] * J[0] + J[1] * J[1]) ;(C = Xe(b, (n - Vt) / (zt + 1))), (M = Xe(T, (i - Vt) / (zt - 1))) } } } if (!F) r.moveTo(f + R, h + O) else if (C > De) { var It = Xe(m, C), bt = Xe(y, C), K = jo(L, P, R, O, n, It, c), it = jo(D, I, U, k, n, bt, c) r.moveTo(f + K.cx + K.x0, h + K.cy + K.y0), C < b && It === bt ? r.arc( f + K.cx, h + K.cy, C, Ht(K.y0, K.x0), Ht(it.y0, it.x0), !c ) : (It > 0 && r.arc( f + K.cx, h + K.cy, It, Ht(K.y0, K.x0), Ht(K.y1, K.x1), !c ), r.arc( f, h, n, Ht(K.cy + K.y1, K.cx + K.x1), Ht(it.cy + it.y1, it.cx + it.x1), !c ), bt > 0 && r.arc( f + it.cx, h + it.cy, bt, Ht(it.y1, it.x1), Ht(it.y0, it.x0), !c )) } else r.moveTo(f + R, h + O), r.arc(f, h, n, l, u, !c) if (!(i > De) || !F) r.lineTo(f + U, h + k) else if (M > De) { var It = Xe(p, M), bt = Xe(g, M), K = jo(U, k, D, I, i, -bt, c), it = jo(R, O, L, P, i, -It, c) r.lineTo(f + K.cx + K.x0, h + K.cy + K.y0), M < T && It === bt ? r.arc( f + K.cx, h + K.cy, M, Ht(K.y0, K.x0), Ht(it.y0, it.x0), !c ) : (bt > 0 && r.arc( f + K.cx, h + K.cy, bt, Ht(K.y0, K.x0), Ht(K.y1, K.x1), !c ), r.arc( f, h, i, Ht(K.cy + K.y1, K.cx + K.x1), Ht(it.cy + it.y1, it.cx + it.x1), c ), It > 0 && r.arc( f + it.cx, h + it.cy, It, Ht(it.y1, it.x1), Ht(it.y0, it.x0), !c )) } else r.lineTo(f + U, h + k), r.arc(f, h, i, u, l, c) } r.closePath() } } } var tC = (function () { function r() { ;(this.cx = 0), (this.cy = 0), (this.r0 = 0), (this.r = 0), (this.startAngle = 0), (this.endAngle = Math.PI * 2), (this.clockwise = !0), (this.cornerRadius = 0) } return r })(), mp = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype.getDefaultShape = function () { return new tC() }), (t.prototype.buildPath = function (e, n) { jT(e, n) }), (t.prototype.isZeroArea = function () { return ( this.shape.startAngle === this.shape.endAngle || this.shape.r === this.shape.r0 ) }), t ) })(st) mp.prototype.type = 'sector' var hr = mp, eC = (function () { function r() { ;(this.cx = 0), (this.cy = 0), (this.r = 0), (this.r0 = 0) } return r })(), yp = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype.getDefaultShape = function () { return new eC() }), (t.prototype.buildPath = function (e, n) { var i = n.cx, a = n.cy, o = Math.PI * 2 e.moveTo(i + n.r, a), e.arc(i, a, n.r, 0, o, !1), e.moveTo(i + n.r0, a), e.arc(i, a, n.r0, 0, o, !0) }), t ) })(st) yp.prototype.type = 'ring' var _p = yp function rC(r, t, e, n) { var i = [], a = [], o = [], s = [], l, u, f, h if (n) { ;(f = [1 / 0, 1 / 0]), (h = [-1 / 0, -1 / 0]) for (var c = 0, v = r.length; c < v; c++) zn(f, f, r[c]), Vn(h, h, r[c]) zn(f, f, n[0]), Vn(h, h, n[1]) } for (var c = 0, v = r.length; c < v; c++) { var d = r[c] if (e) (l = r[c ? c - 1 : v - 1]), (u = r[(c + 1) % v]) else if (c === 0 || c === v - 1) { i.push(Px(r[c])) continue } else (l = r[c - 1]), (u = r[c + 1]) Rx(a, u, l), Ol(a, a, t) var p = kl(d, l), g = kl(d, u), m = p + g m !== 0 && ((p /= m), (g /= m)), Ol(o, a, -p), Ol(s, a, g) var y = qv([], d, o), _ = qv([], d, s) n && (Vn(y, y, f), zn(y, y, h), Vn(_, _, f), zn(_, _, h)), i.push(y), i.push(_) } return e && i.push(i.shift()), i } function Sp(r, t, e) { var n = t.smooth, i = t.points if (i && i.length >= 2) { if (n) { var a = rC(i, n, e, t.smoothConstraint) r.moveTo(i[0][0], i[0][1]) for (var o = i.length, s = 0; s < (e ? o : o - 1); s++) { var l = a[s * 2], u = a[s * 2 + 1], f = i[(s + 1) % o] r.bezierCurveTo(l[0], l[1], u[0], u[1], f[0], f[1]) } } else { r.moveTo(i[0][0], i[0][1]) for (var s = 1, h = i.length; s < h; s++) r.lineTo(i[s][0], i[s][1]) } e && r.closePath() } } var nC = (function () { function r() { ;(this.points = null), (this.smooth = 0), (this.smoothConstraint = null) } return r })(), xp = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype.getDefaultShape = function () { return new nC() }), (t.prototype.buildPath = function (e, n) { Sp(e, n, !0) }), t ) })(st) xp.prototype.type = 'polygon' var ua = xp, iC = (function () { function r() { ;(this.points = null), (this.percent = 1), (this.smooth = 0), (this.smoothConstraint = null) } return r })(), wp = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype.getDefaultStyle = function () { return { stroke: '#000', fill: null } }), (t.prototype.getDefaultShape = function () { return new iC() }), (t.prototype.buildPath = function (e, n) { Sp(e, n, !1) }), t ) })(st) wp.prototype.type = 'polyline' var ai = wp, aC = {}, oC = (function () { function r() { ;(this.x1 = 0), (this.y1 = 0), (this.x2 = 0), (this.y2 = 0), (this.percent = 1) } return r })(), bp = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype.getDefaultStyle = function () { return { stroke: '#000', fill: null } }), (t.prototype.getDefaultShape = function () { return new oC() }), (t.prototype.buildPath = function (e, n) { var i, a, o, s if (this.subPixelOptimize) { var l = Td(aC, n, this.style) ;(i = l.x1), (a = l.y1), (o = l.x2), (s = l.y2) } else (i = n.x1), (a = n.y1), (o = n.x2), (s = n.y2) var u = n.percent u !== 0 && (e.moveTo(i, a), u < 1 && ((o = i * (1 - u) + o * u), (s = a * (1 - u) + s * u)), e.lineTo(o, s)) }), (t.prototype.pointAt = function (e) { var n = this.shape return [n.x1 * (1 - e) + n.x2 * e, n.y1 * (1 - e) + n.y2 * e] }), t ) })(st) bp.prototype.type = 'line' var cn = bp, ee = [], sC = (function () { function r() { ;(this.x1 = 0), (this.y1 = 0), (this.x2 = 0), (this.y2 = 0), (this.cpx1 = 0), (this.cpy1 = 0), (this.percent = 1) } return r })() function Tp(r, t, e) { var n = r.cpx2, i = r.cpy2 return n != null || i != null ? [ (e ? pc : Rt)(r.x1, r.cpx1, r.cpx2, r.x2, t), (e ? pc : Rt)(r.y1, r.cpy1, r.cpy2, r.y2, t) ] : [ (e ? yc : Gt)(r.x1, r.cpx1, r.x2, t), (e ? yc : Gt)(r.y1, r.cpy1, r.y2, t) ] } var Cp = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype.getDefaultStyle = function () { return { stroke: '#000', fill: null } }), (t.prototype.getDefaultShape = function () { return new sC() }), (t.prototype.buildPath = function (e, n) { var i = n.x1, a = n.y1, o = n.x2, s = n.y2, l = n.cpx1, u = n.cpy1, f = n.cpx2, h = n.cpy2, c = n.percent c !== 0 && (e.moveTo(i, a), f == null || h == null ? (c < 1 && (go(i, l, o, c, ee), (l = ee[1]), (o = ee[2]), go(a, u, s, c, ee), (u = ee[1]), (s = ee[2])), e.quadraticCurveTo(l, u, o, s)) : (c < 1 && (br(i, l, f, o, c, ee), (l = ee[1]), (f = ee[2]), (o = ee[3]), br(a, u, h, s, c, ee), (u = ee[1]), (h = ee[2]), (s = ee[3])), e.bezierCurveTo(l, u, f, h, o, s))) }), (t.prototype.pointAt = function (e) { return Tp(this.shape, e, !1) }), (t.prototype.tangentAt = function (e) { var n = Tp(this.shape, e, !0) return kx(n, n) }), t ) })(st) Cp.prototype.type = 'bezier-curve' var Ap = Cp, lC = (function () { function r() { ;(this.cx = 0), (this.cy = 0), (this.r = 0), (this.startAngle = 0), (this.endAngle = Math.PI * 2), (this.clockwise = !0) } return r })(), Mp = (function (r) { B(t, r) function t(e) { return r.call(this, e) || this } return ( (t.prototype.getDefaultStyle = function () { return { stroke: '#000', fill: null } }), (t.prototype.getDefaultShape = function () { return new lC() }), (t.prototype.buildPath = function (e, n) { var i = n.cx, a = n.cy, o = Math.max(n.r, 0), s = n.startAngle, l = n.endAngle, u = n.clockwise, f = Math.cos(s), h = Math.sin(s) e.moveTo(f * o + i, h * o + a), e.arc(i, a, o, s, l, !u) }), t ) })(st) Mp.prototype.type = 'arc' var of = Mp, uC = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = 'compound'), e } return ( (t.prototype._updatePathDirty = function () { for ( var e = this.shape.paths, n = this.shapeChanged(), i = 0; i < e.length; i++ ) n = n || e[i].shapeChanged() n && this.dirtyShape() }), (t.prototype.beforeBrush = function () { this._updatePathDirty() for ( var e = this.shape.paths || [], n = this.getGlobalScale(), i = 0; i < e.length; i++ ) e[i].path || e[i].createPathProxy(), e[i].path.setScale(n[0], n[1], e[i].segmentIgnoreThreshold) }), (t.prototype.buildPath = function (e, n) { for (var i = n.paths || [], a = 0; a < i.length; a++) i[a].buildPath(e, i[a].shape, !0) }), (t.prototype.afterBrush = function () { for (var e = this.shape.paths || [], n = 0; n < e.length; n++) e[n].pathUpdated() }), (t.prototype.getBoundingRect = function () { return ( this._updatePathDirty.call(this), st.prototype.getBoundingRect.call(this) ) }), t ) })(st), fC = uC, hC = (function () { function r(t) { this.colorStops = t || [] } return ( (r.prototype.addColorStop = function (t, e) { this.colorStops.push({ offset: t, color: e }) }), r ) })(), Dp = hC, vC = (function (r) { B(t, r) function t(e, n, i, a, o, s) { var l = r.call(this, o) || this return ( (l.x = e == null ? 0 : e), (l.y = n == null ? 0 : n), (l.x2 = i == null ? 1 : i), (l.y2 = a == null ? 0 : a), (l.type = 'linear'), (l.global = s || !1), l ) } return t })(Dp), Ip = vC, cC = (function (r) { B(t, r) function t(e, n, i, a, o) { var s = r.call(this, a) || this return ( (s.x = e == null ? 0.5 : e), (s.y = n == null ? 0.5 : n), (s.r = i == null ? 0.5 : i), (s.type = 'radial'), (s.global = o || !1), s ) } return t })(Dp), dC = cC, dn = [0, 0], pn = [0, 0], ts = new Z(), es = new Z(), pC = (function () { function r(t, e) { ;(this._corners = []), (this._axes = []), (this._origin = [0, 0]) for (var n = 0; n < 4; n++) this._corners[n] = new Z() for (var n = 0; n < 2; n++) this._axes[n] = new Z() t && this.fromBoundingRect(t, e) } return ( (r.prototype.fromBoundingRect = function (t, e) { var n = this._corners, i = this._axes, a = t.x, o = t.y, s = a + t.width, l = o + t.height if ((n[0].set(a, o), n[1].set(s, o), n[2].set(s, l), n[3].set(a, l), e)) for (var u = 0; u < 4; u++) n[u].transform(e) Z.sub(i[0], n[1], n[0]), Z.sub(i[1], n[3], n[0]), i[0].normalize(), i[1].normalize() for (var u = 0; u < 2; u++) this._origin[u] = i[u].dot(n[0]) }), (r.prototype.intersect = function (t, e) { var n = !0, i = !e return ( ts.set(1 / 0, 1 / 0), es.set(0, 0), (!this._intersectCheckOneSide(this, t, ts, es, i, 1) && ((n = !1), i)) || (!this._intersectCheckOneSide(t, this, ts, es, i, -1) && ((n = !1), i)) || i || Z.copy(e, n ? ts : es), n ) }), (r.prototype._intersectCheckOneSide = function (t, e, n, i, a, o) { for (var s = !0, l = 0; l < 2; l++) { var u = this._axes[l] if ( (this._getProjMinMaxOnAxis(l, t._corners, dn), this._getProjMinMaxOnAxis(l, e._corners, pn), dn[1] < pn[0] || dn[0] > pn[1]) ) { if (((s = !1), a)) return s var f = Math.abs(pn[0] - dn[1]), h = Math.abs(dn[0] - pn[1]) Math.min(f, h) > i.len() && (f < h ? Z.scale(i, u, -f * o) : Z.scale(i, u, h * o)) } else if (n) { var f = Math.abs(pn[0] - dn[1]), h = Math.abs(dn[0] - pn[1]) Math.min(f, h) < n.len() && (f < h ? Z.scale(n, u, f * o) : Z.scale(n, u, -h * o)) } } return s }), (r.prototype._getProjMinMaxOnAxis = function (t, e, n) { for ( var i = this._axes[t], a = this._origin, o = e[0].dot(i) + a[t], s = o, l = o, u = 1; u < e.length; u++ ) { var f = e[u].dot(i) + a[t] ;(s = Math.min(f, s)), (l = Math.max(f, l)) } ;(n[0] = s), (n[1] = l) }), r ) })(), rs = pC, gC = [], mC = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return ( (e.notClear = !0), (e.incremental = !0), (e._displayables = []), (e._temporaryDisplayables = []), (e._cursor = 0), e ) } return ( (t.prototype.traverse = function (e, n) { e.call(n, this) }), (t.prototype.useStyle = function () { this.style = {} }), (t.prototype.getCursor = function () { return this._cursor }), (t.prototype.innerAfterBrush = function () { this._cursor = this._displayables.length }), (t.prototype.clearDisplaybles = function () { ;(this._displayables = []), (this._temporaryDisplayables = []), (this._cursor = 0), this.markRedraw(), (this.notClear = !1) }), (t.prototype.clearTemporalDisplayables = function () { this._temporaryDisplayables = [] }), (t.prototype.addDisplayable = function (e, n) { n ? this._temporaryDisplayables.push(e) : this._displayables.push(e), this.markRedraw() }), (t.prototype.addDisplayables = function (e, n) { n = n || !1 for (var i = 0; i < e.length; i++) this.addDisplayable(e[i], n) }), (t.prototype.getDisplayables = function () { return this._displayables }), (t.prototype.getTemporalDisplayables = function () { return this._temporaryDisplayables }), (t.prototype.eachPendingDisplayable = function (e) { for (var n = this._cursor; n < this._displayables.length; n++) e && e(this._displayables[n]) for (var n = 0; n < this._temporaryDisplayables.length; n++) e && e(this._temporaryDisplayables[n]) }), (t.prototype.update = function () { this.updateTransform() for (var e = this._cursor; e < this._displayables.length; e++) { var n = this._displayables[e] ;(n.parent = this), n.update(), (n.parent = null) } for (var e = 0; e < this._temporaryDisplayables.length; e++) { var n = this._temporaryDisplayables[e] ;(n.parent = this), n.update(), (n.parent = null) } }), (t.prototype.getBoundingRect = function () { if (!this._rect) { for ( var e = new vt(1 / 0, 1 / 0, -1 / 0, -1 / 0), n = 0; n < this._displayables.length; n++ ) { var i = this._displayables[n], a = i.getBoundingRect().clone() i.needLocalTransform() && a.applyTransform(i.getLocalTransform(gC)), e.union(a) } this._rect = e } return this._rect }), (t.prototype.contain = function (e, n) { var i = this.transformCoordToLocal(e, n), a = this.getBoundingRect() if (a.contain(i[0], i[1])) for (var o = 0; o < this._displayables.length; o++) { var s = this._displayables[o] if (s.contain(e, n)) return !0 } return !1 }), t ) })(Qn), yC = mC, Lp = wt() function ns(r, t, e, n, i) { var a if (t && t.ecModel) { var o = t.ecModel.getUpdatePayload() a = o && o.animation } var s = t && t.isAnimationEnabled(), l = r === 'update' if (s) { var u = void 0, f = void 0, h = void 0 n ? ((u = ht(n.duration, 200)), (f = ht(n.easing, 'cubicOut')), (h = 0)) : ((u = t.getShallow( l ? 'animationDurationUpdate' : 'animationDuration' )), (f = t.getShallow(l ? 'animationEasingUpdate' : 'animationEasing')), (h = t.getShallow(l ? 'animationDelayUpdate' : 'animationDelay'))), a && (a.duration != null && (u = a.duration), a.easing != null && (f = a.easing), a.delay != null && (h = a.delay)), Q(h) && (h = h(e, i)), Q(u) && (u = u(e)) var c = { duration: u || 0, delay: h, easing: f } return c } else return null } function sf(r, t, e, n, i, a, o) { var s = !1, l Q(i) ? ((o = a), (a = i), (i = null)) : Y(i) && ((a = i.cb), (o = i.during), (s = i.isFrom), (l = i.removeOpt), (i = i.dataIndex)) var u = r === 'leave' u || t.stopAnimation('leave') var f = ns( r, n, i, u ? l || {} : null, n && n.getAnimationDelayParams ? n.getAnimationDelayParams(t, i) : null ) if (f && f.duration > 0) { var h = f.duration, c = f.delay, v = f.easing, d = { duration: h, delay: c || 0, easing: v, done: a, force: !!a || !!o, setToFinal: !u, scope: r, during: o } s ? t.animateFrom(e, d) : t.animateTo(e, d) } else t.stopAnimation(), !s && t.attr(e), o && o(1), a && a() } function kt(r, t, e, n, i, a) { sf('update', r, t, e, n, i, a) } function Wt(r, t, e, n, i, a) { sf('enter', r, t, e, n, i, a) } function oi(r) { if (!r.__zr) return !0 for (var t = 0; t < r.animators.length; t++) { var e = r.animators[t] if (e.scope === 'leave') return !0 } return !1 } function is(r, t, e, n, i, a) { oi(r) || sf('leave', r, t, e, n, i, a) } function Pp(r, t, e, n) { r.removeTextContent(), r.removeTextGuideLine(), is(r, { style: { opacity: 0 } }, t, e, n) } function as(r, t, e) { function n() { r.parent && r.parent.remove(r) } r.isGroup ? r.traverse(function (i) { i.isGroup || Pp(i, t, e, n) }) : Pp(r, t, e, n) } function lf(r) { Lp(r).oldStyle = r.style } function _C(r) { return Lp(r).oldStyle } var os = Math.max, ss = Math.min, uf = {} function SC(r) { return st.extend(r) } var xC = ZT function wC(r, t) { return xC(r, t) } function Ie(r, t) { uf[r] = t } function bC(r) { if (uf.hasOwnProperty(r)) return uf[r] } function ff(r, t, e, n) { var i = YT(r, t) return e && (n === 'center' && (e = Ep(e, i.getBoundingRect())), Op(i, e)), i } function Rp(r, t, e) { var n = new un({ style: { image: r, x: t.x, y: t.y, width: t.width, height: t.height }, onload: function (i) { if (e === 'center') { var a = { width: i.width, height: i.height } n.setStyle(Ep(t, a)) } } }) return n } function Ep(r, t) { var e = t.width / t.height, n = r.height * e, i n <= r.width ? (i = r.height) : ((n = r.width), (i = n / e)) var a = r.x + r.width / 2, o = r.y + r.height / 2 return { x: a - n / 2, y: o - i / 2, width: n, height: i } } var TC = $T function Op(r, t) { if (!!r.applyTransform) { var e = r.getBoundingRect(), n = e.calculateTransform(t) r.applyTransform(n) } } function CC(r) { return Td(r.shape, r.shape, r.style), r } function AC(r) { return Cd(r.shape, r.shape, r.style), r } var MC = fn function ls(r, t) { for (var e = cu([]); r && r !== t; ) $n(e, r.getLocalTransform(), e), (r = r.parent) return e } function fa(r, t, e) { return ( t && !Zt(t) && (t = Wi.getLocalTransform(t)), e && (t = Lo([], t)), ue([], r, t) ) } function hf(r, t, e) { var n = t[4] === 0 || t[5] === 0 || t[0] === 0 ? 1 : Math.abs((2 * t[4]) / t[0]), i = t[4] === 0 || t[5] === 0 || t[2] === 0 ? 1 : Math.abs((2 * t[4]) / t[2]), a = [ r === 'left' ? -n : r === 'right' ? n : 0, r === 'top' ? -i : r === 'bottom' ? i : 0 ] return ( (a = fa(a, t, e)), Math.abs(a[0]) > Math.abs(a[1]) ? a[0] > 0 ? 'right' : 'left' : a[1] > 0 ? 'bottom' : 'top' ) } function kp(r) { return !r.isGroup } function DC(r) { return r.shape != null } function Bp(r, t, e) { if (!r || !t) return function n(o) { var s = {} return ( o.traverse(function (l) { kp(l) && l.anid && (s[l.anid] = l) }), s ) } function i(o) { var s = { x: o.x, y: o.y, rotation: o.rotation } return DC(o) && (s.shape = N({}, o.shape)), s } var a = n(r) t.traverse(function (o) { if (kp(o) && o.anid) { var s = a[o.anid] if (s) { var l = i(o) o.attr(i(s)), kt(o, l, e, ct(o).dataIndex) } } }) } function Np(r, t) { return G(r, function (e) { var n = e[0] ;(n = os(n, t.x)), (n = ss(n, t.x + t.width)) var i = e[1] return (i = os(i, t.y)), (i = ss(i, t.y + t.height)), [n, i] }) } function IC(r, t) { var e = os(r.x, t.x), n = ss(r.x + r.width, t.x + t.width), i = os(r.y, t.y), a = ss(r.y + r.height, t.y + t.height) if (n >= e && a >= i) return { x: e, y: i, width: n - e, height: a - i } } function us(r, t, e) { var n = N({ rectHover: !0 }, t), i = (n.style = { strokeNoScale: !0 }) if (((e = e || { x: -1, y: -1, width: 2, height: 2 }), r)) return r.indexOf('image://') === 0 ? ((i.image = r.slice(8)), j(i, e), new un(n)) : ff(r.replace('path://', ''), n, e, 'center') } function LC(r, t, e, n, i) { for (var a = 0, o = i[i.length - 1]; a < i.length; a++) { var s = i[a] if (Fp(r, t, e, n, s[0], s[1], o[0], o[1])) return !0 o = s } } function Fp(r, t, e, n, i, a, o, s) { var l = e - r, u = n - t, f = o - i, h = s - a, c = vf(f, h, l, u) if (PC(c)) return !1 var v = r - i, d = t - a, p = vf(v, d, l, u) / c if (p < 0 || p > 1) return !1 var g = vf(v, d, f, h) / c return !(g < 0 || g > 1) } function vf(r, t, e, n) { return r * n - e * t } function PC(r) { return r <= 1e-6 && r >= -1e-6 } function fs(r) { var t = r.itemTooltipOption, e = r.componentModel, n = r.itemName, i = W(t) ? { formatter: t } : t, a = e.mainType, o = e.componentIndex, s = { componentType: a, name: n, $vars: ['name'] } s[a + 'Index'] = o var l = r.formatterParamsExtra l && A(xt(l), function (f) { nr(s, f) || ((s[f] = l[f]), s.$vars.push(f)) }) var u = ct(r.el) ;(u.componentMainType = a), (u.componentIndex = o), (u.tooltipConfig = { name: n, option: j({ content: n, formatterParams: s }, i) }) } function zp(r, t) { var e r.isGroup && (e = t(r)), e || r.traverse(t) } function hs(r, t) { if (r) if (z(r)) for (var e = 0; e < r.length; e++) zp(r[e], t) else zp(r, t) } Ie('circle', nf) Ie('ellipse', dp) Ie('sector', hr) Ie('ring', _p) Ie('polygon', ua) Ie('polyline', ai) Ie('rect', St) Ie('line', cn) Ie('bezierCurve', Ap) Ie('arc', of) var RC = Object.freeze({ __proto__: null, [Symbol.toStringTag]: 'Module', updateProps: kt, initProps: Wt, removeElement: is, removeElementWithFadeOut: as, isElementRemoved: oi, extendShape: SC, extendPath: wC, registerShape: Ie, getShapeClass: bC, makePath: ff, makeImage: Rp, mergePath: TC, resizePath: Op, subPixelOptimizeLine: CC, subPixelOptimizeRect: AC, subPixelOptimize: MC, getTransform: ls, applyTransform: fa, transformDirection: hf, groupTransition: Bp, clipPointsByRect: Np, clipRectByRect: IC, createIcon: us, linePolygonIntersect: LC, lineLineIntersect: Fp, setTooltipConfig: fs, traverseElements: hs, Group: At, Image: un, Text: Et, Circle: nf, Ellipse: dp, Sector: hr, Ring: _p, Polygon: ua, Polyline: ai, Rect: St, Line: cn, BezierCurve: Ap, Arc: of, IncrementalDisplayable: yC, CompoundPath: fC, LinearGradient: Ip, RadialGradient: dC, BoundingRect: vt, OrientedBoundingRect: rs, Point: Z, Path: st }), vs = {} function Vp(r, t) { for (var e = 0; e < pe.length; e++) { var n = pe[e], i = t[n], a = r.ensureState(n) ;(a.style = a.style || {}), (a.style.text = i) } var o = r.currentStates.slice() r.clearStates(!0), r.setStyle({ text: t.normal }), r.useStates(o, !0) } function cf(r, t, e) { var n = r.labelFetcher, i = r.labelDataIndex, a = r.labelDimIndex, o = t.normal, s n && (s = n.getFormattedLabel( i, 'normal', null, a, o && o.get('formatter'), e != null ? { interpolatedValue: e } : null )), s == null && (s = Q(r.defaultText) ? r.defaultText(i, r, e) : r.defaultText) for (var l = { normal: s }, u = 0; u < pe.length; u++) { var f = pe[u], h = t[f] l[f] = ht( n ? n.getFormattedLabel(i, f, null, a, h && h.get('formatter')) : null, s ) } return l } function ha(r, t, e, n) { e = e || vs for (var i = r instanceof Et, a = !1, o = 0; o < Yo.length; o++) { var s = t[Yo[o]] if (s && s.getShallow('show')) { a = !0 break } } var l = i ? r : r.getTextContent() if (a) { i || (l || ((l = new Et()), r.setTextContent(l)), r.stateProxy && (l.stateProxy = r.stateProxy)) var u = cf(e, t), f = t.normal, h = !!f.getShallow('show'), c = vr(f, n && n.normal, e, !1, !i) ;(c.text = u.normal), i || r.setTextConfig(Gp(f, e, !1)) for (var o = 0; o < pe.length; o++) { var v = pe[o], s = t[v] if (s) { var d = l.ensureState(v), p = !!ht(s.getShallow('show'), h) if ( (p !== h && (d.ignore = !p), (d.style = vr(s, n && n[v], e, !0, !i)), (d.style.text = u[v]), !i) ) { var g = r.ensureState(v) g.textConfig = Gp(s, e, !0) } } } ;(l.silent = !!f.getShallow('silent')), l.style.x != null && (c.x = l.style.x), l.style.y != null && (c.y = l.style.y), (l.ignore = !h), l.useStyle(c), l.dirty(), e.enableTextSetter && (si(l).setLabelText = function (m) { var y = cf(e, t, m) Vp(l, y) }) } else l && (l.ignore = !0) r.dirty() } function va(r, t) { t = t || 'label' for (var e = { normal: r.getModel(t) }, n = 0; n < pe.length; n++) { var i = pe[n] e[i] = r.getModel([i, t]) } return e } function vr(r, t, e, n, i) { var a = {} return EC(a, r, e, n, i), t && N(a, t), a } function Gp(r, t, e) { t = t || {} var n = {}, i, a = r.getShallow('rotate'), o = ht(r.getShallow('distance'), e ? null : 5), s = r.getShallow('offset') return ( (i = r.getShallow('position') || (e ? null : 'inside')), i === 'outside' && (i = t.defaultOutsidePosition || 'top'), i != null && (n.position = i), s != null && (n.offset = s), a != null && ((a *= Math.PI / 180), (n.rotation = a)), o != null && (n.distance = o), (n.outsideFill = r.get('color') === 'inherit' ? t.inheritColor || null : 'auto'), n ) } function EC(r, t, e, n, i) { e = e || vs var a = t.ecModel, o = a && a.option.textStyle, s = OC(t), l if (s) { l = {} for (var u in s) if (s.hasOwnProperty(u)) { var f = t.getModel(['rich', u]) Yp((l[u] = {}), f, o, e, n, i, !1, !0) } } l && (r.rich = l) var h = t.get('overflow') h && (r.overflow = h) var c = t.get('minMargin') c != null && (r.margin = c), Yp(r, t, o, e, n, i, !0, !1) } function OC(r) { for (var t; r && r !== r.ecModel; ) { var e = (r.option || vs).rich if (e) { t = t || {} for (var n = xt(e), i = 0; i < n.length; i++) { var a = n[i] t[a] = 1 } } r = r.parentModel } return t } var Hp = [ 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY' ], Wp = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'], Up = [ 'padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY' ] function Yp(r, t, e, n, i, a, o, s) { e = (!i && e) || vs var l = n && n.inheritColor, u = t.getShallow('color'), f = t.getShallow('textBorderColor'), h = ht(t.getShallow('opacity'), e.opacity) ;(u === 'inherit' || u === 'auto') && (l ? (u = l) : (u = null)), (f === 'inherit' || f === 'auto') && (l ? (f = l) : (f = null)), a || ((u = u || e.color), (f = f || e.textBorderColor)), u != null && (r.fill = u), f != null && (r.stroke = f) var c = ht(t.getShallow('textBorderWidth'), e.textBorderWidth) c != null && (r.lineWidth = c) var v = ht(t.getShallow('textBorderType'), e.textBorderType) v != null && (r.lineDash = v) var d = ht(t.getShallow('textBorderDashOffset'), e.textBorderDashOffset) d != null && (r.lineDashOffset = d), !i && h == null && !s && (h = n && n.defaultOpacity), h != null && (r.opacity = h), !i && !a && r.fill == null && n.inheritColor && (r.fill = n.inheritColor) for (var p = 0; p < Hp.length; p++) { var g = Hp[p], m = ht(t.getShallow(g), e[g]) m != null && (r[g] = m) } for (var p = 0; p < Wp.length; p++) { var g = Wp[p], m = t.getShallow(g) m != null && (r[g] = m) } if (r.verticalAlign == null) { var y = t.getShallow('baseline') y != null && (r.verticalAlign = y) } if (!o || !n.disableBox) { for (var p = 0; p < Up.length; p++) { var g = Up[p], m = t.getShallow(g) m != null && (r[g] = m) } var _ = t.getShallow('borderType') _ != null && (r.borderDash = _), (r.backgroundColor === 'auto' || r.backgroundColor === 'inherit') && l && (r.backgroundColor = l), (r.borderColor === 'auto' || r.borderColor === 'inherit') && l && (r.borderColor = l) } } function kC(r, t) { var e = t && t.getModel('textStyle') return Ge( [ r.fontStyle || (e && e.getShallow('fontStyle')) || '', r.fontWeight || (e && e.getShallow('fontWeight')) || '', (r.fontSize || (e && e.getShallow('fontSize')) || 12) + 'px', r.fontFamily || (e && e.getShallow('fontFamily')) || 'sans-serif' ].join(' ') ) } var si = wt() function BC(r, t, e, n) { if (!!r) { var i = si(r) ;(i.prevValue = i.value), (i.value = e) var a = t.normal ;(i.valueAnimation = a.get('valueAnimation')), i.valueAnimation && ((i.precision = a.get('precision')), (i.defaultInterpolatedText = n), (i.statesModels = t)) } } function NC(r, t, e, n, i) { var a = si(r) if (!a.valueAnimation || a.prevValue === a.value) return var o = a.defaultInterpolatedText, s = ht(a.interpolatedValue, a.prevValue), l = a.value function u(f) { var h = ad(e, a.precision, s, l, f) a.interpolatedValue = f === 1 ? null : h var c = cf( { labelDataIndex: t, labelFetcher: i, defaultText: o ? o(h) : h + '' }, a.statesModels, h ) Vp(r, c) } ;(r.percent = 0), (a.prevValue == null ? Wt : kt)(r, { percent: 1 }, n, t, null, u) } var FC = ['textStyle', 'color'], df = [ 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'padding', 'lineHeight', 'rich', 'width', 'height', 'overflow' ], pf = new Et(), zC = (function () { function r() {} return ( (r.prototype.getTextColor = function (t) { var e = this.ecModel return this.getShallow('color') || (!t && e ? e.get(FC) : null) }), (r.prototype.getFont = function () { return kC( { fontStyle: this.getShallow('fontStyle'), fontWeight: this.getShallow('fontWeight'), fontSize: this.getShallow('fontSize'), fontFamily: this.getShallow('fontFamily') }, this.ecModel ) }), (r.prototype.getTextRect = function (t) { for ( var e = { text: t, verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline') }, n = 0; n < df.length; n++ ) e[df[n]] = this.getShallow(df[n]) return pf.useStyle(e), pf.update(), pf.getBoundingRect() }), r ) })(), VC = zC, Zp = [ ['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit'] ], GC = ta(Zp), HC = (function () { function r() {} return ( (r.prototype.getLineStyle = function (t) { return GC(this, t) }), r ) })(), $p = [ ['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit'] ], WC = ta($p), UC = (function () { function r() {} return ( (r.prototype.getItemStyle = function (t, e) { return WC(this, t, e) }), r ) })(), gn = (function () { function r(t, e, n) { ;(this.parentModel = e), (this.ecModel = n), (this.option = t) } return ( (r.prototype.init = function (t, e, n) { for (var i = [], a = 3; a < arguments.length; a++) i[a - 3] = arguments[a] }), (r.prototype.mergeOption = function (t, e) { nt(this.option, t, !0) }), (r.prototype.get = function (t, e) { return t == null ? this.option : this._doGet(this.parsePath(t), !e && this.parentModel) }), (r.prototype.getShallow = function (t, e) { var n = this.option, i = n == null ? n : n[t] if (i == null && !e) { var a = this.parentModel a && (i = a.getShallow(t)) } return i }), (r.prototype.getModel = function (t, e) { var n = t != null, i = n ? this.parsePath(t) : null, a = n ? this._doGet(i) : this.option return ( (e = e || (this.parentModel && this.parentModel.getModel(this.resolveParentPath(i)))), new r(a, e, this.ecModel) ) }), (r.prototype.isEmpty = function () { return this.option == null }), (r.prototype.restoreData = function () {}), (r.prototype.clone = function () { var t = this.constructor return new t(tt(this.option)) }), (r.prototype.parsePath = function (t) { return typeof t == 'string' ? t.split('.') : t }), (r.prototype.resolveParentPath = function (t) { return t }), (r.prototype.isAnimationEnabled = function () { if (!at.node && this.option) { if (this.option.animation != null) return !!this.option.animation if (this.parentModel) return this.parentModel.isAnimationEnabled() } }), (r.prototype._doGet = function (t, e) { var n = this.option if (!t) return n for ( var i = 0; i < t.length && !( !!t[i] && ((n = n && typeof n == 'object' ? n[t[i]] : null), n == null) ); i++ ); return ( n == null && e && (n = e._doGet(this.resolveParentPath(t), e.parentModel)), n ) }), r ) })() Du(gn) bb(gn) ze(gn, HC) ze(gn, UC) ze(gn, Db) ze(gn, VC) var Nt = gn, YC = Math.round(Math.random() * 10) function ca(r) { return [r || '', YC++].join('_') } function ZC(r) { var t = {} ;(r.registerSubTypeDefaulter = function (e, n) { var i = Ue(e) t[i.main] = n }), (r.determineSubType = function (e, n) { var i = n.type if (!i) { var a = Ue(e).main r.hasSubTypes(e) && t[a] && (i = t[a](n)) } return i }) } function $C(r, t) { r.topologicalTravel = function (a, o, s, l) { if (!a.length) return var u = e(o), f = u.graph, h = u.noEntryList, c = {} for ( A(a, function (y) { c[y] = !0 }); h.length; ) { var v = h.pop(), d = f[v], p = !!c[v] p && (s.call(l, v, d.originalDeps.slice()), delete c[v]), A(d.successor, p ? m : g) } A(c, function () { var y = '' throw new Error(y) }) function g(y) { f[y].entryCount--, f[y].entryCount === 0 && h.push(y) } function m(y) { ;(c[y] = !0), g(y) } } function e(a) { var o = {}, s = [] return ( A(a, function (l) { var u = n(o, l), f = (u.originalDeps = t(l)), h = i(f, a) ;(u.entryCount = h.length), u.entryCount === 0 && s.push(l), A(h, function (c) { ot(u.predecessor, c) < 0 && u.predecessor.push(c) var v = n(o, c) ot(v.successor, c) < 0 && v.successor.push(l) }) }), { graph: o, noEntryList: s } ) } function n(a, o) { return a[o] || (a[o] = { predecessor: [], successor: [] }), a[o] } function i(a, o) { var s = [] return ( A(a, function (l) { ot(o, l) >= 0 && s.push(l) }), s ) } } function cs(r, t) { return nt(nt({}, r, !0), t, !0) } var XC = { time: { month: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], monthAbbr: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], dayOfWeek: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ], dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] }, legend: { selector: { all: 'All', inverse: 'Inv' } }, toolbox: { brush: { title: { rect: 'Box Select', polygon: 'Lasso Select', lineX: 'Horizontally Select', lineY: 'Vertically Select', keep: 'Keep Selections', clear: 'Clear Selections' } }, dataView: { title: 'Data View', lang: ['Data View', 'Close', 'Refresh'] }, dataZoom: { title: { zoom: 'Zoom', back: 'Zoom Reset' } }, magicType: { title: { line: 'Switch to Line Chart', bar: 'Switch to Bar Chart', stack: 'Stack', tiled: 'Tile' } }, restore: { title: 'Restore' }, saveAsImage: { title: 'Save as Image', lang: ['Right Click to Save Image'] } }, series: { typeNames: { pie: 'Pie chart', bar: 'Bar chart', line: 'Line chart', scatter: 'Scatter plot', effectScatter: 'Ripple scatter plot', radar: 'Radar chart', tree: 'Tree', treemap: 'Treemap', boxplot: 'Boxplot', candlestick: 'Candlestick', k: 'K line chart', heatmap: 'Heat map', map: 'Map', parallel: 'Parallel coordinate map', lines: 'Line graph', graph: 'Relationship graph', sankey: 'Sankey diagram', funnel: 'Funnel chart', gauge: 'Gauge', pictorialBar: 'Pictorial bar', themeRiver: 'Theme River Map', sunburst: 'Sunburst' } }, aria: { general: { withTitle: 'This is a chart about "{title}"', withoutTitle: 'This is a chart' }, series: { single: { prefix: '', withName: ' with type {seriesType} named {seriesName}.', withoutName: ' with type {seriesType}.' }, multiple: { prefix: '. It consists of {seriesCount} series count.', withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.', withoutName: ' The {seriesId} series is a {seriesType}.', separator: { middle: '', end: '' } } }, data: { allData: 'The data is as follows: ', partialData: 'The first {displayCnt} items are: ', withName: 'the data for {name} is {value}', withoutName: '{value}', separator: { middle: ', ', end: '. ' } } } }, qC = { time: { month: [ '\u4E00\u6708', '\u4E8C\u6708', '\u4E09\u6708', '\u56DB\u6708', '\u4E94\u6708', '\u516D\u6708', '\u4E03\u6708', '\u516B\u6708', '\u4E5D\u6708', '\u5341\u6708', '\u5341\u4E00\u6708', '\u5341\u4E8C\u6708' ], monthAbbr: [ '1\u6708', '2\u6708', '3\u6708', '4\u6708', '5\u6708', '6\u6708', '7\u6708', '8\u6708', '9\u6708', '10\u6708', '11\u6708', '12\u6708' ], dayOfWeek: [ '\u661F\u671F\u65E5', '\u661F\u671F\u4E00', '\u661F\u671F\u4E8C', '\u661F\u671F\u4E09', '\u661F\u671F\u56DB', '\u661F\u671F\u4E94', '\u661F\u671F\u516D' ], dayOfWeekAbbr: [ '\u65E5', '\u4E00', '\u4E8C', '\u4E09', '\u56DB', '\u4E94', '\u516D' ] }, legend: { selector: { all: '\u5168\u9009', inverse: '\u53CD\u9009' } }, toolbox: { brush: { title: { rect: '\u77E9\u5F62\u9009\u62E9', polygon: '\u5708\u9009', lineX: '\u6A2A\u5411\u9009\u62E9', lineY: '\u7EB5\u5411\u9009\u62E9', keep: '\u4FDD\u6301\u9009\u62E9', clear: '\u6E05\u9664\u9009\u62E9' } }, dataView: { title: '\u6570\u636E\u89C6\u56FE', lang: ['\u6570\u636E\u89C6\u56FE', '\u5173\u95ED', '\u5237\u65B0'] }, dataZoom: { title: { zoom: '\u533A\u57DF\u7F29\u653E', back: '\u533A\u57DF\u7F29\u653E\u8FD8\u539F' } }, magicType: { title: { line: '\u5207\u6362\u4E3A\u6298\u7EBF\u56FE', bar: '\u5207\u6362\u4E3A\u67F1\u72B6\u56FE', stack: '\u5207\u6362\u4E3A\u5806\u53E0', tiled: '\u5207\u6362\u4E3A\u5E73\u94FA' } }, restore: { title: '\u8FD8\u539F' }, saveAsImage: { title: '\u4FDD\u5B58\u4E3A\u56FE\u7247', lang: ['\u53F3\u952E\u53E6\u5B58\u4E3A\u56FE\u7247'] } }, series: { typeNames: { pie: '\u997C\u56FE', bar: '\u67F1\u72B6\u56FE', line: '\u6298\u7EBF\u56FE', scatter: '\u6563\u70B9\u56FE', effectScatter: '\u6D9F\u6F2A\u6563\u70B9\u56FE', radar: '\u96F7\u8FBE\u56FE', tree: '\u6811\u56FE', treemap: '\u77E9\u5F62\u6811\u56FE', boxplot: '\u7BB1\u578B\u56FE', candlestick: 'K\u7EBF\u56FE', k: 'K\u7EBF\u56FE', heatmap: '\u70ED\u529B\u56FE', map: '\u5730\u56FE', parallel: '\u5E73\u884C\u5750\u6807\u56FE', lines: '\u7EBF\u56FE', graph: '\u5173\u7CFB\u56FE', sankey: '\u6851\u57FA\u56FE', funnel: '\u6F0F\u6597\u56FE', gauge: '\u4EEA\u8868\u76D8\u56FE', pictorialBar: '\u8C61\u5F62\u67F1\u56FE', themeRiver: '\u4E3B\u9898\u6CB3\u6D41\u56FE', sunburst: '\u65ED\u65E5\u56FE' } }, aria: { general: { withTitle: '\u8FD9\u662F\u4E00\u4E2A\u5173\u4E8E\u201C{title}\u201D\u7684\u56FE\u8868\u3002', withoutTitle: '\u8FD9\u662F\u4E00\u4E2A\u56FE\u8868\uFF0C' }, series: { single: { prefix: '', withName: '\u56FE\u8868\u7C7B\u578B\u662F{seriesType}\uFF0C\u8868\u793A{seriesName}\u3002', withoutName: '\u56FE\u8868\u7C7B\u578B\u662F{seriesType}\u3002' }, multiple: { prefix: '\u5B83\u7531{seriesCount}\u4E2A\u56FE\u8868\u7CFB\u5217\u7EC4\u6210\u3002', withName: '\u7B2C{seriesId}\u4E2A\u7CFB\u5217\u662F\u4E00\u4E2A\u8868\u793A{seriesName}\u7684{seriesType}\uFF0C', withoutName: '\u7B2C{seriesId}\u4E2A\u7CFB\u5217\u662F\u4E00\u4E2A{seriesType}\uFF0C', separator: { middle: '\uFF1B', end: '\u3002' } } }, data: { allData: '\u5176\u6570\u636E\u662F\u2014\u2014', partialData: '\u5176\u4E2D\uFF0C\u524D{displayCnt}\u9879\u662F\u2014\u2014', withName: '{name}\u7684\u6570\u636E\u662F{value}', withoutName: '{value}', separator: { middle: '\uFF0C', end: '' } } } }, ds = 'ZH', gf = 'EN', da = gf, ps = {}, mf = {}, Xp = at.domSupported ? (function () { var r = ( document.documentElement.lang || navigator.language || navigator.browserLanguage ).toUpperCase() return r.indexOf(ds) > -1 ? ds : da })() : da function qp(r, t) { ;(r = r.toUpperCase()), (mf[r] = new Nt(t)), (ps[r] = t) } function KC(r) { if (W(r)) { var t = ps[r.toUpperCase()] || {} return r === ds || r === gf ? tt(t) : nt(tt(t), tt(ps[da]), !1) } else return nt(tt(r), tt(ps[da]), !1) } function QC(r) { return mf[r] } function JC() { return mf[da] } qp(gf, XC) qp(ds, qC) var yf = 1e3, _f = yf * 60, pa = _f * 60, ge = pa * 24, Kp = ge * 365, ga = { year: '{yyyy}', month: '{MMM}', day: '{d}', hour: '{HH}:{mm}', minute: '{HH}:{mm}', second: '{HH}:{mm}:{ss}', millisecond: '{HH}:{mm}:{ss} {SSS}', none: '{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}' }, gs = '{yyyy}-{MM}-{dd}', Qp = { year: '{yyyy}', month: '{yyyy}-{MM}', day: gs, hour: gs + ' ' + ga.hour, minute: gs + ' ' + ga.minute, second: gs + ' ' + ga.second, millisecond: ga.none }, Sf = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'], Jp = [ 'year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond' ] function mn(r, t) { return (r += ''), '0000'.substr(0, t - r.length) + r } function li(r) { switch (r) { case 'half-year': case 'quarter': return 'month' case 'week': case 'half-week': return 'day' case 'half-day': case 'quarter-day': return 'hour' default: return r } } function jC(r) { return r === li(r) } function tA(r) { switch (r) { case 'year': case 'month': return 'day' case 'millisecond': return 'millisecond' default: return 'second' } } function ms(r, t, e, n) { var i = sr(r), a = i[xf(e)](), o = i[ui(e)]() + 1, s = Math.floor((o - 1) / 3) + 1, l = i[ys(e)](), u = i['get' + (e ? 'UTC' : '') + 'Day'](), f = i[ma(e)](), h = ((f - 1) % 12) + 1, c = i[_s(e)](), v = i[Ss(e)](), d = i[xs(e)](), p = n instanceof Nt ? n : QC(n || Xp) || JC(), g = p.getModel('time'), m = g.get('month'), y = g.get('monthAbbr'), _ = g.get('dayOfWeek'), S = g.get('dayOfWeekAbbr') return (t || '') .replace(/{yyyy}/g, a + '') .replace(/{yy}/g, (a % 100) + '') .replace(/{Q}/g, s + '') .replace(/{MMMM}/g, m[o - 1]) .replace(/{MMM}/g, y[o - 1]) .replace(/{MM}/g, mn(o, 2)) .replace(/{M}/g, o + '') .replace(/{dd}/g, mn(l, 2)) .replace(/{d}/g, l + '') .replace(/{eeee}/g, _[u]) .replace(/{ee}/g, S[u]) .replace(/{e}/g, u + '') .replace(/{HH}/g, mn(f, 2)) .replace(/{H}/g, f + '') .replace(/{hh}/g, mn(h + '', 2)) .replace(/{h}/g, h + '') .replace(/{mm}/g, mn(c, 2)) .replace(/{m}/g, c + '') .replace(/{ss}/g, mn(v, 2)) .replace(/{s}/g, v + '') .replace(/{SSS}/g, mn(d, 3)) .replace(/{S}/g, d + '') } function eA(r, t, e, n, i) { var a = null if (W(e)) a = e else if (Q(e)) a = e(r.value, t, { level: r.level }) else { var o = N({}, ga) if (r.level > 0) for (var s = 0; s < Sf.length; ++s) o[Sf[s]] = '{primary|' + o[Sf[s]] + '}' var l = e ? (e.inherit === !1 ? e : j(e, o)) : o, u = jp(r.value, i) if (l[u]) a = l[u] else if (l.inherit) { for (var f = Jp.indexOf(u), s = f - 1; s >= 0; --s) if (l[u]) { a = l[u] break } a = a || o.none } if (z(a)) { var h = r.level == null ? 0 : r.level >= 0 ? r.level : a.length + r.level ;(h = Math.min(h, a.length - 1)), (a = a[h]) } } return ms(new Date(r.value), a, i, n) } function jp(r, t) { var e = sr(r), n = e[ui(t)]() + 1, i = e[ys(t)](), a = e[ma(t)](), o = e[_s(t)](), s = e[Ss(t)](), l = e[xs(t)](), u = l === 0, f = u && s === 0, h = f && o === 0, c = h && a === 0, v = c && i === 1, d = v && n === 1 return d ? 'year' : v ? 'month' : c ? 'day' : h ? 'hour' : f ? 'minute' : u ? 'second' : 'millisecond' } function tg(r, t, e) { var n = dt(r) ? sr(r) : r switch (((t = t || jp(r, e)), t)) { case 'year': return n[xf(e)]() case 'half-year': return n[ui(e)]() >= 6 ? 1 : 0 case 'quarter': return Math.floor((n[ui(e)]() + 1) / 4) case 'month': return n[ui(e)]() case 'day': return n[ys(e)]() case 'half-day': return n[ma(e)]() / 24 case 'hour': return n[ma(e)]() case 'minute': return n[_s(e)]() case 'second': return n[Ss(e)]() case 'millisecond': return n[xs(e)]() } } function xf(r) { return r ? 'getUTCFullYear' : 'getFullYear' } function ui(r) { return r ? 'getUTCMonth' : 'getMonth' } function ys(r) { return r ? 'getUTCDate' : 'getDate' } function ma(r) { return r ? 'getUTCHours' : 'getHours' } function _s(r) { return r ? 'getUTCMinutes' : 'getMinutes' } function Ss(r) { return r ? 'getUTCSeconds' : 'getSeconds' } function xs(r) { return r ? 'getUTCMilliseconds' : 'getMilliseconds' } function rA(r) { return r ? 'setUTCFullYear' : 'setFullYear' } function eg(r) { return r ? 'setUTCMonth' : 'setMonth' } function rg(r) { return r ? 'setUTCDate' : 'setDate' } function ng(r) { return r ? 'setUTCHours' : 'setHours' } function ig(r) { return r ? 'setUTCMinutes' : 'setMinutes' } function ag(r) { return r ? 'setUTCSeconds' : 'setSeconds' } function og(r) { return r ? 'setUTCMilliseconds' : 'setMilliseconds' } function sg(r) { if (!rb(r)) return W(r) ? r : '-' var t = (r + '').split('.') return ( t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, '$1,') + (t.length > 1 ? '.' + t[1] : '') ) } function lg(r, t) { return ( (r = (r || '').toLowerCase().replace(/-(.)/g, function (e, n) { return n.toUpperCase() })), t && r && (r = r.charAt(0).toUpperCase() + r.slice(1)), r ) } var ws = Zv, nA = /([&<>"'])/g, iA = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' } function me(r) { return r == null ? '' : (r + '').replace(nA, function (t, e) { return iA[e] }) } function wf(r, t, e) { var n = '{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}' function i(f) { return f && Ge(f) ? f : '-' } function a(f) { return !!(f != null && !isNaN(f) && isFinite(f)) } var o = t === 'time', s = r instanceof Date if (o || s) { var l = o ? sr(r) : r if (isNaN(+l)) { if (s) return '-' } else return ms(l, n, e) } if (t === 'ordinal') return Rl(r) ? i(r) : dt(r) && a(r) ? r + '' : '-' var u = Ar(r) return a(u) ? sg(u) : Rl(r) ? i(r) : typeof r == 'boolean' ? r + '' : '-' } var ug = ['a', 'b', 'c', 'd', 'e', 'f', 'g'], bf = function (r, t) { return '{' + r + (t == null ? '' : t) + '}' } function fg(r, t, e) { z(t) || (t = [t]) var n = t.length if (!n) return '' for (var i = t[0].$vars || [], a = 0; a < i.length; a++) { var o = ug[a] r = r.replace(bf(o), bf(o, 0)) } for (var s = 0; s < n; s++) for (var l = 0; l < i.length; l++) { var u = t[s][i[l]] r = r.replace(bf(ug[l], s), e ? me(u) : u) } return r } function aA(r, t) { var e = W(r) ? { color: r, extraCssText: t } : r || {}, n = e.color, i = e.type t = e.extraCssText var a = e.renderMode || 'html' if (!n) return '' if (a === 'html') return i === 'subItem' ? '' : '' var o = e.markerId || 'markerX' return { renderMode: a, content: '{' + o + '|} ', style: i === 'subItem' ? { width: 4, height: 4, borderRadius: 2, backgroundColor: n } : { width: 10, height: 10, borderRadius: 5, backgroundColor: n } } } function yn(r, t) { return ( (t = t || 'transparent'), W(r) ? r : (Y(r) && r.colorStops && (r.colorStops[0] || {}).color) || t ) } function hg(r, t) { if (t === '_blank' || t === 'blank') { var e = window.open() ;(e.opener = null), (e.location.href = r) } else window.open(r, t) } var bs = A, oA = ['left', 'right', 'top', 'bottom', 'width', 'height'], Ts = [ ['width', 'left', 'right'], ['height', 'top', 'bottom'] ] function Tf(r, t, e, n, i) { var a = 0, o = 0 n == null && (n = 1 / 0), i == null && (i = 1 / 0) var s = 0 t.eachChild(function (l, u) { var f = l.getBoundingRect(), h = t.childAt(u + 1), c = h && h.getBoundingRect(), v, d if (r === 'horizontal') { var p = f.width + (c ? -c.x + f.x : 0) ;(v = a + p), v > n || l.newline ? ((a = 0), (v = p), (o += s + e), (s = f.height)) : (s = Math.max(s, f.height)) } else { var g = f.height + (c ? -c.y + f.y : 0) ;(d = o + g), d > i || l.newline ? ((a += s + e), (o = 0), (d = g), (s = f.width)) : (s = Math.max(s, f.width)) } l.newline || ((l.x = a), (l.y = o), l.markRedraw(), r === 'horizontal' ? (a = v + e) : (o = d + e)) }) } var fi = Tf lt(Tf, 'vertical') lt(Tf, 'horizontal') function cr(r, t, e) { e = ws(e || 0) var n = t.width, i = t.height, a = yt(r.left, n), o = yt(r.top, i), s = yt(r.right, n), l = yt(r.bottom, i), u = yt(r.width, n), f = yt(r.height, i), h = e[2] + e[0], c = e[1] + e[3], v = r.aspect switch ( (isNaN(u) && (u = n - s - c - a), isNaN(f) && (f = i - l - h - o), v != null && (isNaN(u) && isNaN(f) && (v > n / i ? (u = n * 0.8) : (f = i * 0.8)), isNaN(u) && (u = v * f), isNaN(f) && (f = u / v)), isNaN(a) && (a = n - s - u - c), isNaN(o) && (o = i - l - f - h), r.left || r.right) ) { case 'center': a = n / 2 - u / 2 - e[3] break case 'right': a = n - u - c break } switch (r.top || r.bottom) { case 'middle': case 'center': o = i / 2 - f / 2 - e[0] break case 'bottom': o = i - f - h break } ;(a = a || 0), (o = o || 0), isNaN(u) && (u = n - c - a - (s || 0)), isNaN(f) && (f = i - h - o - (l || 0)) var d = new vt(a + e[3], o + e[0], u, f) return (d.margin = e), d } function sA(r, t, e, n, i, a) { var o = !i || !i.hv || i.hv[0], s = !i || !i.hv || i.hv[1], l = (i && i.boundingMode) || 'all' if (((a = a || r), (a.x = r.x), (a.y = r.y), !o && !s)) return !1 var u if (l === 'raw') u = r.type === 'group' ? new vt(0, 0, +t.width || 0, +t.height || 0) : r.getBoundingRect() else if (((u = r.getBoundingRect()), r.needLocalTransform())) { var f = r.getLocalTransform() ;(u = u.clone()), u.applyTransform(f) } var h = cr(j({ width: u.width, height: u.height }, t), e, n), c = o ? h.x - u.x : 0, v = s ? h.y - u.y : 0 return ( l === 'raw' ? ((a.x = c), (a.y = v)) : ((a.x += c), (a.y += v)), a === r && r.markRedraw(), !0 ) } function ya(r) { var t = r.layoutMode || r.constructor.layoutMode return Y(t) ? t : t ? { type: t } : null } function hi(r, t, e) { var n = e && e.ignoreSize !z(n) && (n = [n, n]) var i = o(Ts[0], 0), a = o(Ts[1], 1) u(Ts[0], r, i), u(Ts[1], r, a) function o(f, h) { var c = {}, v = 0, d = {}, p = 0, g = 2 if ( (bs(f, function (_) { d[_] = r[_] }), bs(f, function (_) { s(t, _) && (c[_] = d[_] = t[_]), l(c, _) && v++, l(d, _) && p++ }), n[h]) ) return l(t, f[1]) ? (d[f[2]] = null) : l(t, f[2]) && (d[f[1]] = null), d if (p === g || !v) return d if (v >= g) return c for (var m = 0; m < f.length; m++) { var y = f[m] if (!s(c, y) && s(r, y)) { c[y] = r[y] break } } return c } function s(f, h) { return f.hasOwnProperty(h) } function l(f, h) { return f[h] != null && f[h] !== 'auto' } function u(f, h, c) { bs(f, function (v) { h[v] = c[v] }) } } function _a(r) { return lA({}, r) } function lA(r, t) { return ( t && r && bs(oA, function (e) { t.hasOwnProperty(e) && (r[e] = t[e]) }), r ) } var uA = wt(), vi = (function (r) { B(t, r) function t(e, n, i) { var a = r.call(this, e, n, i) || this return (a.uid = ca('ec_cpt_model')), a } return ( (t.prototype.init = function (e, n, i) { this.mergeDefaultAndTheme(e, i) }), (t.prototype.mergeDefaultAndTheme = function (e, n) { var i = ya(this), a = i ? _a(e) : {}, o = n.getTheme() nt(e, o.get(this.mainType)), nt(e, this.getDefaultOption()), i && hi(e, a, i) }), (t.prototype.mergeOption = function (e, n) { nt(this.option, e, !0) var i = ya(this) i && hi(this.option, e, i) }), (t.prototype.optionUpdated = function (e, n) {}), (t.prototype.getDefaultOption = function () { var e = this.constructor if (!Sb(e)) return e.defaultOption var n = uA(this) if (!n.defaultOption) { for (var i = [], a = e; a; ) { var o = a.prototype.defaultOption o && i.push(o), (a = a.superClass) } for (var s = {}, l = i.length - 1; l >= 0; l--) s = nt(s, i[l], !0) n.defaultOption = s } return n.defaultOption }), (t.prototype.getReferringComponents = function (e, n) { var i = e + 'Index', a = e + 'Id' return ji( this.ecModel, e, { index: this.get(i, !0), id: this.get(a, !0) }, n ) }), (t.prototype.getBoxLayoutParams = function () { var e = this return { left: e.get('left'), top: e.get('top'), right: e.get('right'), bottom: e.get('bottom'), width: e.get('width'), height: e.get('height') } }), (t.prototype.getZLevelKey = function () { return '' }), (t.prototype.setZLevel = function (e) { this.option.zlevel = e }), (t.protoInitialize = (function () { var e = t.prototype ;(e.type = 'component'), (e.id = ''), (e.name = ''), (e.mainType = ''), (e.subType = ''), (e.componentIndex = 0) })()), t ) })(Nt) sd(vi, Nt) No(vi) ZC(vi) $C(vi, fA) function fA(r) { var t = [] return ( A(vi.getClassesByMainType(r), function (e) { t = t.concat(e.dependencies || e.prototype.dependencies || []) }), (t = G(t, function (e) { return Ue(e).main })), r !== 'dataset' && ot(t, 'dataset') <= 0 && t.unshift('dataset'), t ) } var _t = vi, vg = '' typeof navigator != 'undefined' && (vg = navigator.platform || '') var ci = 'rgba(0, 0, 0, 0.2)', hA = { darkMode: 'auto', colorBy: 'series', color: [ '#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc' ], gradientColor: ['#f6efa6', '#d88273', '#bf444c'], aria: { decal: { decals: [ { color: ci, dashArrayX: [1, 0], dashArrayY: [2, 5], symbolSize: 1, rotation: Math.PI / 6 }, { color: ci, symbol: 'circle', dashArrayX: [ [8, 8], [0, 8, 8, 0] ], dashArrayY: [6, 0], symbolSize: 0.8 }, { color: ci, dashArrayX: [1, 0], dashArrayY: [4, 3], rotation: -Math.PI / 4 }, { color: ci, dashArrayX: [ [6, 6], [0, 6, 6, 0] ], dashArrayY: [6, 0] }, { color: ci, dashArrayX: [ [1, 0], [1, 6] ], dashArrayY: [1, 0, 6, 0], rotation: Math.PI / 4 }, { color: ci, symbol: 'triangle', dashArrayX: [ [9, 9], [0, 9, 9, 0] ], dashArrayY: [7, 2], symbolSize: 0.75 } ] } }, textStyle: { fontFamily: vg.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif', fontSize: 12, fontStyle: 'normal', fontWeight: 'normal' }, blendMode: null, stateAnimation: { duration: 300, easing: 'cubicOut' }, animation: 'auto', animationDuration: 1e3, animationDurationUpdate: 500, animationEasing: 'cubicInOut', animationEasingUpdate: 'cubicInOut', animationThreshold: 2e3, progressiveThreshold: 3e3, progressive: 400, hoverLayerThreshold: 3e3, useUTC: !1 }, cg = q([ 'tooltip', 'label', 'itemName', 'itemId', 'itemGroupId', 'seriesName' ]), ye = 'original', Kt = 'arrayRows', _e = 'objectRows', qe = 'keyedColumns', Pr = 'typedArray', dg = 'unknown', Ke = 'column', di = 'row', Ft = { Must: 1, Might: 2, Not: 3 }, pg = wt() function vA(r) { pg(r).datasetMap = q() } function cA(r, t, e) { var n = {}, i = Cf(t) if (!i || !r) return n var a = [], o = [], s = t.ecModel, l = pg(s).datasetMap, u = i.uid + '_' + e.seriesLayoutBy, f, h ;(r = r.slice()), A(r, function (p, g) { var m = Y(p) ? p : (r[g] = { name: p }) m.type === 'ordinal' && f == null && ((f = g), (h = d(m))), (n[m.name] = []) }) var c = l.get(u) || l.set(u, { categoryWayDim: h, valueWayDim: 0 }) A(r, function (p, g) { var m = p.name, y = d(p) if (f == null) { var _ = c.valueWayDim v(n[m], _, y), v(o, _, y), (c.valueWayDim += y) } else if (f === g) v(n[m], 0, y), v(a, 0, y) else { var _ = c.categoryWayDim v(n[m], _, y), v(o, _, y), (c.categoryWayDim += y) } }) function v(p, g, m) { for (var y = 0; y < m; y++) p.push(g + y) } function d(p) { var g = p.dimsDef return g ? g.length : 1 } return a.length && (n.itemName = a), o.length && (n.seriesName = o), n } function dA(r, t, e) { var n = {}, i = Cf(r) if (!i) return n var a = t.sourceFormat, o = t.dimensionsDefine, s ;(a === _e || a === qe) && A(o, function (f, h) { ;(Y(f) ? f.name : f) === 'name' && (s = h) }) var l = (function () { for (var f = {}, h = {}, c = [], v = 0, d = Math.min(5, e); v < d; v++) { var p = mg(t.data, a, t.seriesLayoutBy, o, t.startIndex, v) c.push(p) var g = p === Ft.Not if ( (g && f.v == null && v !== s && (f.v = v), (f.n == null || f.n === f.v || (!g && c[f.n] === Ft.Not)) && (f.n = v), m(f) && c[f.n] !== Ft.Not) ) return f g || (p === Ft.Might && h.v == null && v !== s && (h.v = v), (h.n == null || h.n === h.v) && (h.n = v)) } function m(y) { return y.v != null && y.n != null } return m(f) ? f : m(h) ? h : null })() if (l) { n.value = [l.v] var u = s != null ? s : l.n ;(n.itemName = [u]), (n.seriesName = [u]) } return n } function Cf(r) { var t = r.get('data', !0) if (!t) return ji( r.ecModel, 'dataset', { index: r.get('datasetIndex', !0), id: r.get('datasetId', !0) }, Xt ).models[0] } function pA(r) { return !r.get('transform', !0) && !r.get('fromTransformResult', !0) ? [] : ji( r.ecModel, 'dataset', { index: r.get('fromDatasetIndex', !0), id: r.get('fromDatasetId', !0) }, Xt ).models } function gg(r, t) { return mg( r.data, r.sourceFormat, r.seriesLayoutBy, r.dimensionsDefine, r.startIndex, t ) } function mg(r, t, e, n, i, a) { var o, s = 5 if (ie(r)) return Ft.Not var l, u if (n) { var f = n[a] Y(f) ? ((l = f.name), (u = f.type)) : W(f) && (l = f) } if (u != null) return u === 'ordinal' ? Ft.Must : Ft.Not if (t === Kt) { var h = r if (e === di) { for (var c = h[a], v = 0; v < (c || []).length && v < s; v++) if ((o = S(c[i + v])) != null) return o } else for (var v = 0; v < h.length && v < s; v++) { var d = h[i + v] if (d && (o = S(d[a])) != null) return o } } else if (t === _e) { var p = r if (!l) return Ft.Not for (var v = 0; v < p.length && v < s; v++) { var g = p[v] if (g && (o = S(g[l])) != null) return o } } else if (t === qe) { var m = r if (!l) return Ft.Not var c = m[l] if (!c || ie(c)) return Ft.Not for (var v = 0; v < c.length && v < s; v++) if ((o = S(c[v])) != null) return o } else if (t === ye) for (var y = r, v = 0; v < y.length && v < s; v++) { var g = y[v], _ = qi(g) if (!z(_)) return Ft.Not if ((o = S(_[a])) != null) return o } function S(w) { var x = W(w) if (w != null && isFinite(w) && w !== '') return x ? Ft.Might : Ft.Not if (x && w !== '-') return Ft.Must } return Ft.Not } var Af = q() function gA(r, t) { Ve(Af.get(r) == null && t), Af.set(r, t) } function mA(r, t, e) { var n = Af.get(t) if (!n) return e var i = n(r) return i ? e.concat(i) : e } var yg = wt() wt() var Mf = (function () { function r() {} return ( (r.prototype.getColorFromPalette = function (t, e, n) { var i = Mt(this.get('color', !0)), a = this.get('colorLayer', !0) return _A(this, yg, i, a, t, e, n) }), (r.prototype.clearColorPalette = function () { SA(this, yg) }), r ) })() function yA(r, t) { for (var e = r.length, n = 0; n < e; n++) if (r[n].length > t) return r[n] return r[e - 1] } function _A(r, t, e, n, i, a, o) { a = a || r var s = t(a), l = s.paletteIdx || 0, u = (s.paletteNameMap = s.paletteNameMap || {}) if (u.hasOwnProperty(i)) return u[i] var f = o == null || !n ? e : yA(n, o) if (((f = f || e), !(!f || !f.length))) { var h = f[l] return i && (u[i] = h), (s.paletteIdx = (l + 1) % f.length), h } } function SA(r, t) { ;(t(r).paletteIdx = 0), (t(r).paletteNameMap = {}) } var Cs, Sa, _g, Sg = '\0_ec_inner', xA = 1, xg = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.init = function (e, n, i, a, o, s) { ;(a = a || {}), (this.option = null), (this._theme = new Nt(a)), (this._locale = new Nt(o)), (this._optionManager = s) }), (t.prototype.setOption = function (e, n, i) { var a = Tg(n) this._optionManager.setOption(e, i, a), this._resetOption(null, a) }), (t.prototype.resetOption = function (e, n) { return this._resetOption(e, Tg(n)) }), (t.prototype._resetOption = function (e, n) { var i = !1, a = this._optionManager if (!e || e === 'recreate') { var o = a.mountOption(e === 'recreate') !this.option || e === 'recreate' ? _g(this, o) : (this.restoreData(), this._mergeOption(o, n)), (i = !0) } if ( ((e === 'timeline' || e === 'media') && this.restoreData(), !e || e === 'recreate' || e === 'timeline') ) { var s = a.getTimelineOption(this) s && ((i = !0), this._mergeOption(s, n)) } if (!e || e === 'recreate' || e === 'media') { var l = a.getMediaOption(this) l.length && A( l, function (u) { ;(i = !0), this._mergeOption(u, n) }, this ) } return i }), (t.prototype.mergeOption = function (e) { this._mergeOption(e, null) }), (t.prototype._mergeOption = function (e, n) { var i = this.option, a = this._componentsMap, o = this._componentsCount, s = [], l = q(), u = n && n.replaceMergeMainTypeMap vA(this), A(e, function (h, c) { h != null && (_t.hasClass(c) ? c && (s.push(c), l.set(c, !0)) : (i[c] = i[c] == null ? tt(h) : nt(i[c], h, !0))) }), u && u.each(function (h, c) { _t.hasClass(c) && !l.get(c) && (s.push(c), l.set(c, !0)) }), _t.topologicalTravel(s, _t.getAllClassMainTypes(), f, this) function f(h) { var c = mA(this, h, Mt(e[h])), v = a.get(h), d = v ? u && u.get(h) ? 'replaceMerge' : 'normalMerge' : 'replaceAll', p = ib(v, c, d) vb(p, h, _t), (i[h] = null), a.set(h, null), o.set(h, 0) var g = [], m = [], y = 0, _ A( p, function (S, w) { var x = S.existing, b = S.newOption if (!b) x && (x.mergeOption({}, this), x.optionUpdated({}, !1)) else { var T = h === 'series', C = _t.getClass(h, S.keyInfo.subType, !T) if (!C) return if (h === 'tooltip') { if (_) return _ = !0 } if (x && x.constructor === C) (x.name = S.keyInfo.name), x.mergeOption(b, this), x.optionUpdated(b, !1) else { var M = N({ componentIndex: w }, S.keyInfo) ;(x = new C(b, this, this, M)), N(x, M), S.brandNew && (x.__requireNewView = !0), x.init(b, this, this), x.optionUpdated(null, !0) } } x ? (g.push(x.option), m.push(x), y++) : (g.push(void 0), m.push(void 0)) }, this ), (i[h] = g), a.set(h, m), o.set(h, y), h === 'series' && Cs(this) } this._seriesIndices || Cs(this) }), (t.prototype.getOption = function () { var e = tt(this.option) return ( A(e, function (n, i) { if (_t.hasClass(i)) { for (var a = Mt(n), o = a.length, s = !1, l = o - 1; l >= 0; l--) a[l] && !Qi(a[l]) ? (s = !0) : ((a[l] = null), !s && o--) ;(a.length = o), (e[i] = a) } }), delete e[Sg], e ) }), (t.prototype.getTheme = function () { return this._theme }), (t.prototype.getLocaleModel = function () { return this._locale }), (t.prototype.setUpdatePayload = function (e) { this._payload = e }), (t.prototype.getUpdatePayload = function () { return this._payload }), (t.prototype.getComponent = function (e, n) { var i = this._componentsMap.get(e) if (i) { var a = i[n || 0] if (a) return a if (n == null) { for (var o = 0; o < i.length; o++) if (i[o]) return i[o] } } }), (t.prototype.queryComponents = function (e) { var n = e.mainType if (!n) return [] var i = e.index, a = e.id, o = e.name, s = this._componentsMap.get(n) if (!s || !s.length) return [] var l return ( i != null ? ((l = []), A(Mt(i), function (u) { s[u] && l.push(s[u]) })) : a != null ? (l = wg('id', a, s)) : o != null ? (l = wg('name', o, s)) : (l = Lt(s, function (u) { return !!u })), bg(l, e) ) }), (t.prototype.findComponents = function (e) { var n = e.query, i = e.mainType, a = s(n), o = a ? this.queryComponents(a) : Lt(this._componentsMap.get(i), function (u) { return !!u }) return l(bg(o, e)) function s(u) { var f = i + 'Index', h = i + 'Id', c = i + 'Name' return u && (u[f] != null || u[h] != null || u[c] != null) ? { mainType: i, index: u[f], id: u[h], name: u[c] } : null } function l(u) { return e.filter ? Lt(u, e.filter) : u } }), (t.prototype.eachComponent = function (e, n, i) { var a = this._componentsMap if (Q(e)) { var o = n, s = e a.each(function (h, c) { for (var v = 0; h && v < h.length; v++) { var d = h[v] d && s.call(o, c, d, d.componentIndex) } }) } else for ( var l = W(e) ? a.get(e) : Y(e) ? this.findComponents(e) : null, u = 0; l && u < l.length; u++ ) { var f = l[u] f && n.call(i, f, f.componentIndex) } }), (t.prototype.getSeriesByName = function (e) { var n = We(e, null) return Lt(this._componentsMap.get('series'), function (i) { return !!i && n != null && i.name === n }) }), (t.prototype.getSeriesByIndex = function (e) { return this._componentsMap.get('series')[e] }), (t.prototype.getSeriesByType = function (e) { return Lt(this._componentsMap.get('series'), function (n) { return !!n && n.subType === e }) }), (t.prototype.getSeries = function () { return Lt(this._componentsMap.get('series'), function (e) { return !!e }) }), (t.prototype.getSeriesCount = function () { return this._componentsCount.get('series') }), (t.prototype.eachSeries = function (e, n) { Sa(this), A( this._seriesIndices, function (i) { var a = this._componentsMap.get('series')[i] e.call(n, a, i) }, this ) }), (t.prototype.eachRawSeries = function (e, n) { A(this._componentsMap.get('series'), function (i) { i && e.call(n, i, i.componentIndex) }) }), (t.prototype.eachSeriesByType = function (e, n, i) { Sa(this), A( this._seriesIndices, function (a) { var o = this._componentsMap.get('series')[a] o.subType === e && n.call(i, o, a) }, this ) }), (t.prototype.eachRawSeriesByType = function (e, n, i) { return A(this.getSeriesByType(e), n, i) }), (t.prototype.isSeriesFiltered = function (e) { return Sa(this), this._seriesIndicesMap.get(e.componentIndex) == null }), (t.prototype.getCurrentSeriesIndices = function () { return (this._seriesIndices || []).slice() }), (t.prototype.filterSeries = function (e, n) { Sa(this) var i = [] A( this._seriesIndices, function (a) { var o = this._componentsMap.get('series')[a] e.call(n, o, a) && i.push(a) }, this ), (this._seriesIndices = i), (this._seriesIndicesMap = q(i)) }), (t.prototype.restoreData = function (e) { Cs(this) var n = this._componentsMap, i = [] n.each(function (a, o) { _t.hasClass(o) && i.push(o) }), _t.topologicalTravel(i, _t.getAllClassMainTypes(), function (a) { A(n.get(a), function (o) { o && (a !== 'series' || !wA(o, e)) && o.restoreData() }) }) }), (t.internalField = (function () { ;(Cs = function (e) { var n = (e._seriesIndices = []) A(e._componentsMap.get('series'), function (i) { i && n.push(i.componentIndex) }), (e._seriesIndicesMap = q(n)) }), (Sa = function (e) {}), (_g = function (e, n) { ;(e.option = {}), (e.option[Sg] = xA), (e._componentsMap = q({ series: [] })), (e._componentsCount = q()) var i = n.aria Y(i) && i.enabled == null && (i.enabled = !0), bA(n, e._theme.option), nt(n, hA, !1), e._mergeOption(n, null) }) })()), t ) })(Nt) function wA(r, t) { if (t) { var e = t.seriesIndex, n = t.seriesId, i = t.seriesName return ( (e != null && r.componentIndex !== e) || (n != null && r.id !== n) || (i != null && r.name !== i) ) } } function bA(r, t) { var e = r.color && !r.colorLayer A(t, function (n, i) { ;(i === 'colorLayer' && e) || _t.hasClass(i) || (typeof n == 'object' ? (r[i] = r[i] ? nt(r[i], n, !1) : tt(n)) : r[i] == null && (r[i] = n)) }) } function wg(r, t, e) { if (z(t)) { var n = q() return ( A(t, function (a) { if (a != null) { var o = We(a, null) o != null && n.set(a, !0) } }), Lt(e, function (a) { return a && n.get(a[r]) }) ) } else { var i = We(t, null) return Lt(e, function (a) { return a && i != null && a[r] === i }) } } function bg(r, t) { return t.hasOwnProperty('subType') ? Lt(r, function (e) { return e && e.subType === t.subType }) : r } function Tg(r) { var t = q() return ( r && A(Mt(r.replaceMerge), function (e) { t.set(e, !0) }), { replaceMergeMainTypeMap: t } ) } ze(xg, Mf) var Cg = xg, TA = [ 'getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isSSR', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getOption', 'getId', 'updateLabelLayout' ], CA = (function () { function r(t) { A( TA, function (e) { this[e] = X(t[e], t) }, this ) } return r })(), Ag = CA, Df = {}, AA = (function () { function r() { this._coordinateSystems = [] } return ( (r.prototype.create = function (t, e) { var n = [] A(Df, function (i, a) { var o = i.create(t, e) n = n.concat(o || []) }), (this._coordinateSystems = n) }), (r.prototype.update = function (t, e) { A(this._coordinateSystems, function (n) { n.update && n.update(t, e) }) }), (r.prototype.getCoordinateSystems = function () { return this._coordinateSystems.slice() }), (r.register = function (t, e) { Df[t] = e }), (r.get = function (t) { return Df[t] }), r ) })(), If = AA, MA = /^(min|max)?(.+)$/, DA = (function () { function r(t) { ;(this._timelineOptions = []), (this._mediaList = []), (this._currentMediaIndices = []), (this._api = t) } return ( (r.prototype.setOption = function (t, e, n) { t && (A(Mt(t.series), function (o) { o && o.data && ie(o.data) && oo(o.data) }), A(Mt(t.dataset), function (o) { o && o.source && ie(o.source) && oo(o.source) })), (t = tt(t)) var i = this._optionBackup, a = IA(t, e, !i) ;(this._newBaseOption = a.baseOption), i ? (a.timelineOptions.length && (i.timelineOptions = a.timelineOptions), a.mediaList.length && (i.mediaList = a.mediaList), a.mediaDefault && (i.mediaDefault = a.mediaDefault)) : (this._optionBackup = a) }), (r.prototype.mountOption = function (t) { var e = this._optionBackup return ( (this._timelineOptions = e.timelineOptions), (this._mediaList = e.mediaList), (this._mediaDefault = e.mediaDefault), (this._currentMediaIndices = []), tt(t ? e.baseOption : this._newBaseOption) ) }), (r.prototype.getTimelineOption = function (t) { var e, n = this._timelineOptions if (n.length) { var i = t.getComponent('timeline') i && (e = tt(n[i.getCurrentIndex()])) } return e }), (r.prototype.getMediaOption = function (t) { var e = this._api.getWidth(), n = this._api.getHeight(), i = this._mediaList, a = this._mediaDefault, o = [], s = [] if (!i.length && !a) return s for (var l = 0, u = i.length; l < u; l++) LA(i[l].query, e, n) && o.push(l) return ( !o.length && a && (o = [-1]), o.length && !RA(o, this._currentMediaIndices) && (s = G(o, function (f) { return tt(f === -1 ? a.option : i[f].option) })), (this._currentMediaIndices = o), s ) }), r ) })() function IA(r, t, e) { var n = [], i, a, o = r.baseOption, s = r.timeline, l = r.options, u = r.media, f = !!r.media, h = !!(l || s || (o && o.timeline)) o ? ((a = o), a.timeline || (a.timeline = s)) : ((h || f) && (r.options = r.media = null), (a = r)), f && z(u) && A(u, function (v) { v && v.option && (v.query ? n.push(v) : i || (i = v)) }), c(a), A(l, function (v) { return c(v) }), A(n, function (v) { return c(v.option) }) function c(v) { A(t, function (d) { d(v, e) }) } return { baseOption: a, timelineOptions: l || [], mediaDefault: i, mediaList: n } } function LA(r, t, e) { var n = { width: t, height: e, aspectratio: t / e }, i = !0 return ( A(r, function (a, o) { var s = o.match(MA) if (!(!s || !s[1] || !s[2])) { var l = s[1], u = s[2].toLowerCase() PA(n[u], a, l) || (i = !1) } }), i ) } function PA(r, t, e) { return e === 'min' ? r >= t : e === 'max' ? r <= t : r === t } function RA(r, t) { return r.join(',') === t.join(',') } var EA = DA, Le = A, xa = Y, Mg = [ 'areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine' ] function Lf(r) { var t = r && r.itemStyle if (!!t) for (var e = 0, n = Mg.length; e < n; e++) { var i = Mg[e], a = t.normal, o = t.emphasis a && a[i] && ((r[i] = r[i] || {}), r[i].normal ? nt(r[i].normal, a[i]) : (r[i].normal = a[i]), (a[i] = null)), o && o[i] && ((r[i] = r[i] || {}), r[i].emphasis ? nt(r[i].emphasis, o[i]) : (r[i].emphasis = o[i]), (o[i] = null)) } } function Ut(r, t, e) { if (r && r[t] && (r[t].normal || r[t].emphasis)) { var n = r[t].normal, i = r[t].emphasis n && (e ? ((r[t].normal = r[t].emphasis = null), j(r[t], n)) : (r[t] = n)), i && ((r.emphasis = r.emphasis || {}), (r.emphasis[t] = i), i.focus && (r.emphasis.focus = i.focus), i.blurScope && (r.emphasis.blurScope = i.blurScope)) } } function wa(r) { Ut(r, 'itemStyle'), Ut(r, 'lineStyle'), Ut(r, 'areaStyle'), Ut(r, 'label'), Ut(r, 'labelLine'), Ut(r, 'upperLabel'), Ut(r, 'edgeLabel') } function Dt(r, t) { var e = xa(r) && r[t], n = xa(e) && e.textStyle if (n) for (var i = 0, a = rd.length; i < a; i++) { var o = rd[i] n.hasOwnProperty(o) && (e[o] = n[o]) } } function Se(r) { r && (wa(r), Dt(r, 'label'), r.emphasis && Dt(r.emphasis, 'label')) } function OA(r) { if (!!xa(r)) { Lf(r), wa(r), Dt(r, 'label'), Dt(r, 'upperLabel'), Dt(r, 'edgeLabel'), r.emphasis && (Dt(r.emphasis, 'label'), Dt(r.emphasis, 'upperLabel'), Dt(r.emphasis, 'edgeLabel')) var t = r.markPoint t && (Lf(t), Se(t)) var e = r.markLine e && (Lf(e), Se(e)) var n = r.markArea n && Se(n) var i = r.data if (r.type === 'graph') { i = i || r.nodes var a = r.links || r.edges if (a && !ie(a)) for (var o = 0; o < a.length; o++) Se(a[o]) A(r.categories, function (u) { wa(u) }) } if (i && !ie(i)) for (var o = 0; o < i.length; o++) Se(i[o]) if (((t = r.markPoint), t && t.data)) for (var s = t.data, o = 0; o < s.length; o++) Se(s[o]) if (((e = r.markLine), e && e.data)) for (var l = e.data, o = 0; o < l.length; o++) z(l[o]) ? (Se(l[o][0]), Se(l[o][1])) : Se(l[o]) r.type === 'gauge' ? (Dt(r, 'axisLabel'), Dt(r, 'title'), Dt(r, 'detail')) : r.type === 'treemap' ? (Ut(r.breadcrumb, 'itemStyle'), A(r.levels, function (u) { wa(u) })) : r.type === 'tree' && wa(r.leaves) } } function dr(r) { return z(r) ? r : r ? [r] : [] } function Dg(r) { return (z(r) ? r[0] : r) || {} } function kA(r, t) { Le(dr(r.series), function (n) { xa(n) && OA(n) }) var e = [ 'xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar' ] t && e.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis'), Le(e, function (n) { Le(dr(r[n]), function (i) { i && (Dt(i, 'axisLabel'), Dt(i.axisPointer, 'label')) }) }), Le(dr(r.parallel), function (n) { var i = n && n.parallelAxisDefault Dt(i, 'axisLabel'), Dt(i && i.axisPointer, 'label') }), Le(dr(r.calendar), function (n) { Ut(n, 'itemStyle'), Dt(n, 'dayLabel'), Dt(n, 'monthLabel'), Dt(n, 'yearLabel') }), Le(dr(r.radar), function (n) { Dt(n, 'name'), n.name && n.axisName == null && ((n.axisName = n.name), delete n.name), n.nameGap != null && n.axisNameGap == null && ((n.axisNameGap = n.nameGap), delete n.nameGap) }), Le(dr(r.geo), function (n) { xa(n) && (Se(n), Le(dr(n.regions), function (i) { Se(i) })) }), Le(dr(r.timeline), function (n) { Se(n), Ut(n, 'label'), Ut(n, 'itemStyle'), Ut(n, 'controlStyle', !0) var i = n.data z(i) && A(i, function (a) { Y(a) && (Ut(a, 'label'), Ut(a, 'itemStyle')) }) }), Le(dr(r.toolbox), function (n) { Ut(n, 'iconStyle'), Le(n.feature, function (i) { Ut(i, 'iconStyle') }) }), Dt(Dg(r.axisPointer), 'label'), Dt(Dg(r.tooltip).axisPointer, 'label') } function BA(r, t) { for ( var e = t.split(','), n = r, i = 0; i < e.length && ((n = n && n[e[i]]), n != null); i++ ); return n } function NA(r, t, e, n) { for (var i = t.split(','), a = r, o, s = 0; s < i.length - 1; s++) (o = i[s]), a[o] == null && (a[o] = {}), (a = a[o]) ;(n || a[i[s]] == null) && (a[i[s]] = e) } function Ig(r) { r && A(FA, function (t) { t[0] in r && !(t[1] in r) && (r[t[1]] = r[t[0]]) }) } var FA = [ ['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom'] ], zA = [ 'grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline' ], Pf = [ ['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth'] ] function ba(r) { var t = r && r.itemStyle if (t) for (var e = 0; e < Pf.length; e++) { var n = Pf[e][1], i = Pf[e][0] t[n] != null && (t[i] = t[n]) } } function Lg(r) { !r || (r.alignTo === 'edge' && r.margin != null && r.edgeDistance == null && (r.edgeDistance = r.margin)) } function Pg(r) { !r || (r.downplay && !r.blur && (r.blur = r.downplay)) } function VA(r) { !r || (r.focusNodeAdjacency != null && ((r.emphasis = r.emphasis || {}), r.emphasis.focus == null && (r.emphasis.focus = 'adjacency'))) } function Rg(r, t) { if (r) for (var e = 0; e < r.length; e++) t(r[e]), r[e] && Rg(r[e].children, t) } function Eg(r, t) { kA(r, t), (r.series = Mt(r.series)), A(r.series, function (e) { if (!!Y(e)) { var n = e.type if (n === 'line') e.clipOverflow != null && (e.clip = e.clipOverflow) else if (n === 'pie' || n === 'gauge') { e.clockWise != null && (e.clockwise = e.clockWise), Lg(e.label) var i = e.data if (i && !ie(i)) for (var a = 0; a < i.length; a++) Lg(i[a]) e.hoverOffset != null && ((e.emphasis = e.emphasis || {}), (e.emphasis.scaleSize = null) && (e.emphasis.scaleSize = e.hoverOffset)) } else if (n === 'gauge') { var o = BA(e, 'pointer.color') o != null && NA(e, 'itemStyle.color', o) } else if (n === 'bar') { ba(e), ba(e.backgroundStyle), ba(e.emphasis) var i = e.data if (i && !ie(i)) for (var a = 0; a < i.length; a++) typeof i[a] == 'object' && (ba(i[a]), ba(i[a] && i[a].emphasis)) } else if (n === 'sunburst') { var s = e.highlightPolicy s && ((e.emphasis = e.emphasis || {}), e.emphasis.focus || (e.emphasis.focus = s)), Pg(e), Rg(e.data, Pg) } else n === 'graph' || n === 'sankey' ? VA(e) : n === 'map' && (e.mapType && !e.map && (e.map = e.mapType), e.mapLocation && j(e, e.mapLocation)) e.hoverAnimation != null && ((e.emphasis = e.emphasis || {}), e.emphasis && e.emphasis.scale == null && (e.emphasis.scale = e.hoverAnimation)), Ig(e) } }), r.dataRange && (r.visualMap = r.dataRange), A(zA, function (e) { var n = r[e] n && (z(n) || (n = [n]), A(n, function (i) { Ig(i) })) }) } function GA(r) { var t = q() r.eachSeries(function (e) { var n = e.get('stack') if (n) { var i = t.get(n) || t.set(n, []), a = e.getData(), o = { stackResultDimension: a.getCalculationInfo('stackResultDimension'), stackedOverDimension: a.getCalculationInfo('stackedOverDimension'), stackedDimension: a.getCalculationInfo('stackedDimension'), stackedByDimension: a.getCalculationInfo('stackedByDimension'), isStackedByIndex: a.getCalculationInfo('isStackedByIndex'), data: a, seriesModel: e } if (!o.stackedDimension || !(o.isStackedByIndex || o.stackedByDimension)) return i.length && a.setCalculationInfo('stackedOnSeries', i[i.length - 1].seriesModel), i.push(o) } }), t.each(HA) } function HA(r) { A(r, function (t, e) { var n = [], i = [NaN, NaN], a = [t.stackResultDimension, t.stackedOverDimension], o = t.data, s = t.isStackedByIndex, l = t.seriesModel.get('stackStrategy') || 'samesign' o.modify(a, function (u, f, h) { var c = o.get(t.stackedDimension, h) if (isNaN(c)) return i var v, d s ? (d = o.getRawIndex(h)) : (v = o.get(t.stackedByDimension, h)) for (var p = NaN, g = e - 1; g >= 0; g--) { var m = r[g] if ((s || (d = m.data.rawIndexOf(m.stackedByDimension, v)), d >= 0)) { var y = m.data.getByRawIndex(m.stackResultDimension, d) if ( l === 'all' || (l === 'positive' && y > 0) || (l === 'negative' && y < 0) || (l === 'samesign' && c >= 0 && y > 0) || (l === 'samesign' && c <= 0 && y < 0) ) { ;(c = jw(c, y)), (p = y) break } } } return (n[0] = c), (n[1] = p), n }) }) } var As = (function () { function r(t) { ;(this.data = t.data || (t.sourceFormat === qe ? {} : [])), (this.sourceFormat = t.sourceFormat || dg), (this.seriesLayoutBy = t.seriesLayoutBy || Ke), (this.startIndex = t.startIndex || 0), (this.dimensionsDetectedCount = t.dimensionsDetectedCount), (this.metaRawOption = t.metaRawOption) var e = (this.dimensionsDefine = t.dimensionsDefine) if (e) for (var n = 0; n < e.length; n++) { var i = e[n] i.type == null && gg(this, n) === Ft.Must && (i.type = 'ordinal') } } return r })() function Rf(r) { return r instanceof As } function Ef(r, t, e) { e = e || Og(r) var n = t.seriesLayoutBy, i = UA(r, e, n, t.sourceHeader, t.dimensions), a = new As({ data: r, sourceFormat: e, seriesLayoutBy: n, dimensionsDefine: i.dimensionsDefine, startIndex: i.startIndex, dimensionsDetectedCount: i.dimensionsDetectedCount, metaRawOption: tt(t) }) return a } function Of(r) { return new As({ data: r, sourceFormat: ie(r) ? Pr : ye }) } function WA(r) { return new As({ data: r.data, sourceFormat: r.sourceFormat, seriesLayoutBy: r.seriesLayoutBy, dimensionsDefine: tt(r.dimensionsDefine), startIndex: r.startIndex, dimensionsDetectedCount: r.dimensionsDetectedCount }) } function Og(r) { var t = dg if (ie(r)) t = Pr else if (z(r)) { r.length === 0 && (t = Kt) for (var e = 0, n = r.length; e < n; e++) { var i = r[e] if (i != null) { if (z(i)) { t = Kt break } else if (Y(i)) { t = _e break } } } } else if (Y(r)) { for (var a in r) if (nr(r, a) && Zt(r[a])) { t = qe break } } return t } function UA(r, t, e, n, i) { var a, o if (!r) return { dimensionsDefine: kg(i), startIndex: o, dimensionsDetectedCount: a } if (t === Kt) { var s = r n === 'auto' || n == null ? Bg( function (u) { u != null && u !== '-' && (W(u) ? o == null && (o = 1) : (o = 0)) }, e, s, 10 ) : (o = dt(n) ? n : n ? 1 : 0), !i && o === 1 && ((i = []), Bg( function (u, f) { i[f] = u != null ? u + '' : '' }, e, s, 1 / 0 )), (a = i ? i.length : e === di ? s.length : s[0] ? s[0].length : null) } else if (t === _e) i || (i = YA(r)) else if (t === qe) i || ((i = []), A(r, function (u, f) { i.push(f) })) else if (t === ye) { var l = qi(r[0]) a = (z(l) && l.length) || 1 } return { startIndex: o, dimensionsDefine: kg(i), dimensionsDetectedCount: a } } function YA(r) { for (var t = 0, e; t < r.length && !(e = r[t++]); ); if (e) { var n = [] return ( A(e, function (i, a) { n.push(a) }), n ) } } function kg(r) { if (!!r) { var t = q() return G(r, function (e, n) { e = Y(e) ? e : { name: e } var i = { name: e.name, displayName: e.displayName, type: e.type } if (i.name == null) return i ;(i.name += ''), i.displayName == null && (i.displayName = i.name) var a = t.get(i.name) return a ? (i.name += '-' + a.count++) : t.set(i.name, { count: 1 }), i }) } } function Bg(r, t, e, n) { if (t === di) for (var i = 0; i < e.length && i < n; i++) r(e[i] ? e[i][0] : null, i) else for (var a = e[0] || [], i = 0; i < a.length && i < n; i++) r(a[i], i) } function Ng(r) { var t = r.sourceFormat return t === _e || t === qe } var _n, Sn, xn, Fg, zg, Vg = (function () { function r(t, e) { var n = Rf(t) ? t : Of(t) this._source = n var i = (this._data = n.data) n.sourceFormat === Pr && ((this._offset = 0), (this._dimSize = e), (this._data = i)), zg(this, i, n) } return ( (r.prototype.getSource = function () { return this._source }), (r.prototype.count = function () { return 0 }), (r.prototype.getItem = function (t, e) {}), (r.prototype.appendData = function (t) {}), (r.prototype.clean = function () {}), (r.protoInitialize = (function () { var t = r.prototype ;(t.pure = !1), (t.persistent = !0) })()), (r.internalField = (function () { var t zg = function (o, s, l) { var u = l.sourceFormat, f = l.seriesLayoutBy, h = l.startIndex, c = l.dimensionsDefine, v = Fg[Bf(u, f)] if ((N(o, v), u === Pr)) (o.getItem = e), (o.count = i), (o.fillStorage = n) else { var d = Hg(u, f) o.getItem = X(d, null, s, h, c) var p = Ug(u, f) o.count = X(p, null, s, h, c) } } var e = function (o, s) { ;(o = o - this._offset), (s = s || []) for ( var l = this._data, u = this._dimSize, f = u * o, h = 0; h < u; h++ ) s[h] = l[f + h] return s }, n = function (o, s, l, u) { for (var f = this._data, h = this._dimSize, c = 0; c < h; c++) { for ( var v = u[c], d = v[0] == null ? 1 / 0 : v[0], p = v[1] == null ? -1 / 0 : v[1], g = s - o, m = l[c], y = 0; y < g; y++ ) { var _ = f[y * h + c] ;(m[o + y] = _), _ < d && (d = _), _ > p && (p = _) } ;(v[0] = d), (v[1] = p) } }, i = function () { return this._data ? this._data.length / this._dimSize : 0 } Fg = ((t = {}), (t[Kt + '_' + Ke] = { pure: !0, appendData: a }), (t[Kt + '_' + di] = { pure: !0, appendData: function () { throw new Error( 'Do not support appendData when set seriesLayoutBy: "row".' ) } }), (t[_e] = { pure: !0, appendData: a }), (t[qe] = { pure: !0, appendData: function (o) { var s = this._data A(o, function (l, u) { for ( var f = s[u] || (s[u] = []), h = 0; h < (l || []).length; h++ ) f.push(l[h]) }) } }), (t[ye] = { appendData: a }), (t[Pr] = { persistent: !1, pure: !0, appendData: function (o) { this._data = o }, clean: function () { ;(this._offset += this.count()), (this._data = null) } }), t) function a(o) { for (var s = 0; s < o.length; s++) this._data.push(o[s]) } })()), r ) })(), Gg = function (r, t, e, n) { return r[n] }, ZA = ((_n = {}), (_n[Kt + '_' + Ke] = function (r, t, e, n) { return r[n + t] }), (_n[Kt + '_' + di] = function (r, t, e, n, i) { n += t for (var a = i || [], o = r, s = 0; s < o.length; s++) { var l = o[s] a[s] = l ? l[n] : null } return a }), (_n[_e] = Gg), (_n[qe] = function (r, t, e, n, i) { for (var a = i || [], o = 0; o < e.length; o++) { var s = e[o].name, l = r[s] a[o] = l ? l[n] : null } return a }), (_n[ye] = Gg), _n) function Hg(r, t) { var e = ZA[Bf(r, t)] return e } var Wg = function (r, t, e) { return r.length }, $A = ((Sn = {}), (Sn[Kt + '_' + Ke] = function (r, t, e) { return Math.max(0, r.length - t) }), (Sn[Kt + '_' + di] = function (r, t, e) { var n = r[0] return n ? Math.max(0, n.length - t) : 0 }), (Sn[_e] = Wg), (Sn[qe] = function (r, t, e) { var n = e[0].name, i = r[n] return i ? i.length : 0 }), (Sn[ye] = Wg), Sn) function Ug(r, t) { var e = $A[Bf(r, t)] return e } var kf = function (r, t, e) { return r[t] }, XA = ((xn = {}), (xn[Kt] = kf), (xn[_e] = function (r, t, e) { return r[e] }), (xn[qe] = kf), (xn[ye] = function (r, t, e) { var n = qi(r) return n instanceof Array ? n[t] : n }), (xn[Pr] = kf), xn) function Yg(r) { var t = XA[r] return t } function Bf(r, t) { return r === Kt ? r + '_' + t : r } function pi(r, t, e) { if (!!r) { var n = r.getRawDataItem(t) if (n != null) { var i = r.getStore(), a = i.getSource().sourceFormat if (e != null) { var o = r.getDimensionIndex(e), s = i.getDimensionProperty(o) return Yg(a)(n, o, s) } else { var l = n return a === ye && (l = qi(n)), l } } } } var qA = /\{@(.+?)\}/g, KA = (function () { function r() {} return ( (r.prototype.getDataParams = function (t, e) { var n = this.getData(e), i = this.getRawValue(t, e), a = n.getRawIndex(t), o = n.getName(t), s = n.getRawDataItem(t), l = n.getItemVisual(t, 'style'), u = l && l[n.getItemVisual(t, 'drawType') || 'fill'], f = l && l.stroke, h = this.mainType, c = h === 'series', v = n.userOutput && n.userOutput.get() return { componentType: h, componentSubType: this.subType, componentIndex: this.componentIndex, seriesType: c ? this.subType : null, seriesIndex: this.seriesIndex, seriesId: c ? this.id : null, seriesName: c ? this.name : null, name: o, dataIndex: a, data: s, dataType: e, value: i, color: u, borderColor: f, dimensionNames: v ? v.fullDimensions : null, encode: v ? v.encode : null, $vars: ['seriesName', 'name', 'value'] } }), (r.prototype.getFormattedLabel = function (t, e, n, i, a, o) { e = e || 'normal' var s = this.getData(n), l = this.getDataParams(t, n) if ( (o && (l.value = o.interpolatedValue), i != null && z(l.value) && (l.value = l.value[i]), !a) ) { var u = s.getItemModel(t) a = u.get( e === 'normal' ? ['label', 'formatter'] : [e, 'label', 'formatter'] ) } if (Q(a)) return (l.status = e), (l.dimensionIndex = i), a(l) if (W(a)) { var f = fg(a, l) return f.replace(qA, function (h, c) { var v = c.length, d = c d.charAt(0) === '[' && d.charAt(v - 1) === ']' && (d = +d.slice(1, v - 1)) var p = pi(s, t, d) if (o && z(o.interpolatedValue)) { var g = s.getDimensionIndex(d) g >= 0 && (p = o.interpolatedValue[g]) } return p != null ? p + '' : '' }) } }), (r.prototype.getRawValue = function (t, e) { return pi(this.getData(e), t) }), (r.prototype.formatTooltip = function (t, e, n) {}), r ) })() function Zg(r) { var t, e return Y(r) ? r.type && (e = r) : (t = r), { text: t, frag: e } } function Ta(r) { return new QA(r) } var QA = (function () { function r(t) { ;(t = t || {}), (this._reset = t.reset), (this._plan = t.plan), (this._count = t.count), (this._onDirty = t.onDirty), (this._dirty = !0) } return ( (r.prototype.perform = function (t) { var e = this._upstream, n = t && t.skip if (this._dirty && e) { var i = this.context i.data = i.outputData = e.context.outputData } this.__pipeline && (this.__pipeline.currentTask = this) var a this._plan && !n && (a = this._plan(this.context)) var o = f(this._modBy), s = this._modDataCount || 0, l = f(t && t.modBy), u = (t && t.modDataCount) || 0 ;(o !== l || s !== u) && (a = 'reset') function f(y) { return !(y >= 1) && (y = 1), y } var h ;(this._dirty || a === 'reset') && ((this._dirty = !1), (h = this._doReset(n))), (this._modBy = l), (this._modDataCount = u) var c = t && t.step if ( (e ? (this._dueEnd = e._outputDueEnd) : (this._dueEnd = this._count ? this._count(this.context) : 1 / 0), this._progress) ) { var v = this._dueIndex, d = Math.min(c != null ? this._dueIndex + c : 1 / 0, this._dueEnd) if (!n && (h || v < d)) { var p = this._progress if (z(p)) for (var g = 0; g < p.length; g++) this._doProgress(p[g], v, d, l, u) else this._doProgress(p, v, d, l, u) } this._dueIndex = d var m = this._settedOutputEnd != null ? this._settedOutputEnd : d this._outputDueEnd = m } else this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd return this.unfinished() }), (r.prototype.dirty = function () { ;(this._dirty = !0), this._onDirty && this._onDirty(this.context) }), (r.prototype._doProgress = function (t, e, n, i, a) { $g.reset(e, n, i, a), (this._callingProgress = t), this._callingProgress( { start: e, end: n, count: n - e, next: $g.next }, this.context ) }), (r.prototype._doReset = function (t) { ;(this._dueIndex = this._outputDueEnd = this._dueEnd = 0), (this._settedOutputEnd = null) var e, n !t && this._reset && ((e = this._reset(this.context)), e && e.progress && ((n = e.forceFirstProgress), (e = e.progress)), z(e) && !e.length && (e = null)), (this._progress = e), (this._modBy = this._modDataCount = null) var i = this._downstream return i && i.dirty(), n }), (r.prototype.unfinished = function () { return this._progress && this._dueIndex < this._dueEnd }), (r.prototype.pipe = function (t) { ;(this._downstream !== t || this._dirty) && ((this._downstream = t), (t._upstream = this), t.dirty()) }), (r.prototype.dispose = function () { this._disposed || (this._upstream && (this._upstream._downstream = null), this._downstream && (this._downstream._upstream = null), (this._dirty = !1), (this._disposed = !0)) }), (r.prototype.getUpstream = function () { return this._upstream }), (r.prototype.getDownstream = function () { return this._downstream }), (r.prototype.setOutputEnd = function (t) { this._outputDueEnd = this._settedOutputEnd = t }), r ) })(), $g = (function () { var r, t, e, n, i, a = { reset: function (l, u, f, h) { ;(t = l), (r = u), (e = f), (n = h), (i = Math.ceil(n / e)), (a.next = e > 1 && n > 0 ? s : o) } } return a function o() { return t < r ? t++ : null } function s() { var l = (t % i) * e + Math.ceil(t / i), u = t >= r ? null : l < n ? l : t return t++, u } })() function Ms(r, t) { var e = t && t.type return e === 'ordinal' ? r : (e === 'time' && !dt(r) && r != null && r !== '-' && (r = +sr(r)), r == null || r === '' ? NaN : +r) } var JA = q({ number: function (r) { return parseFloat(r) }, time: function (r) { return +sr(r) }, trim: function (r) { return W(r) ? Ge(r) : r } }) function Xg(r) { return JA.get(r) } var qg = { lt: function (r, t) { return r < t }, lte: function (r, t) { return r <= t }, gt: function (r, t) { return r > t }, gte: function (r, t) { return r >= t } }, jA = (function () { function r(t, e) { if (!dt(e)) { var n = '' ut(n) } ;(this._opFn = qg[t]), (this._rvalFloat = Ar(e)) } return ( (r.prototype.evaluate = function (t) { return dt(t) ? this._opFn(t, this._rvalFloat) : this._opFn(Ar(t), this._rvalFloat) }), r ) })(), Kg = (function () { function r(t, e) { var n = t === 'desc' ;(this._resultLT = n ? 1 : -1), e == null && (e = n ? 'min' : 'max'), (this._incomparable = e === 'min' ? -1 / 0 : 1 / 0) } return ( (r.prototype.evaluate = function (t, e) { var n = dt(t) ? t : Ar(t), i = dt(e) ? e : Ar(e), a = isNaN(n), o = isNaN(i) if ( (a && (n = this._incomparable), o && (i = this._incomparable), a && o) ) { var s = W(t), l = W(e) s && (n = l ? t : 0), l && (i = s ? e : 0) } return n < i ? this._resultLT : n > i ? -this._resultLT : 0 }), r ) })(), tM = (function () { function r(t, e) { ;(this._rval = e), (this._isEQ = t), (this._rvalTypeof = typeof e), (this._rvalFloat = Ar(e)) } return ( (r.prototype.evaluate = function (t) { var e = t === this._rval if (!e) { var n = typeof t n !== this._rvalTypeof && (n === 'number' || this._rvalTypeof === 'number') && (e = Ar(t) === this._rvalFloat) } return this._isEQ ? e : !e }), r ) })() function eM(r, t) { return r === 'eq' || r === 'ne' ? new tM(r === 'eq', t) : nr(qg, r) ? new jA(r, t) : null } var rM = (function () { function r() {} return ( (r.prototype.getRawData = function () { throw new Error('not supported') }), (r.prototype.getRawDataItem = function (t) { throw new Error('not supported') }), (r.prototype.cloneRawData = function () {}), (r.prototype.getDimensionInfo = function (t) {}), (r.prototype.cloneAllDimensionInfo = function () {}), (r.prototype.count = function () {}), (r.prototype.retrieveValue = function (t, e) {}), (r.prototype.retrieveValueFromItem = function (t, e) {}), (r.prototype.convertValue = function (t, e) { return Ms(t, e) }), r ) })() function nM(r, t) { var e = new rM(), n = r.data, i = (e.sourceFormat = r.sourceFormat), a = r.startIndex, o = '' r.seriesLayoutBy !== Ke && ut(o) var s = [], l = {}, u = r.dimensionsDefine if (u) A(u, function (p, g) { var m = p.name, y = { index: g, name: m, displayName: p.displayName } if ((s.push(y), m != null)) { var _ = '' nr(l, m) && ut(_), (l[m] = y) } }) else for (var f = 0; f < r.dimensionsDetectedCount; f++) s.push({ index: f }) var h = Hg(i, Ke) t.__isBuiltIn && ((e.getRawDataItem = function (p) { return h(n, a, s, p) }), (e.getRawData = X(iM, null, r))), (e.cloneRawData = X(aM, null, r)) var c = Ug(i, Ke) e.count = X(c, null, n, a, s) var v = Yg(i) e.retrieveValue = function (p, g) { var m = h(n, a, s, p) return d(m, g) } var d = (e.retrieveValueFromItem = function (p, g) { if (p != null) { var m = s[g] if (m) return v(p, g, m.name) } }) return ( (e.getDimensionInfo = X(oM, null, s, l)), (e.cloneAllDimensionInfo = X(sM, null, s)), e ) } function iM(r) { var t = r.sourceFormat if (!Nf(t)) { var e = '' ut(e) } return r.data } function aM(r) { var t = r.sourceFormat, e = r.data if (!Nf(t)) { var n = '' ut(n) } if (t === Kt) { for (var i = [], a = 0, o = e.length; a < o; a++) i.push(e[a].slice()) return i } else if (t === _e) { for (var i = [], a = 0, o = e.length; a < o; a++) i.push(N({}, e[a])) return i } } function oM(r, t, e) { if (e != null) { if (dt(e) || (!isNaN(e) && !nr(t, e))) return r[e] if (nr(t, e)) return t[e] } } function sM(r) { return tt(r) } var Qg = q() function lM(r) { r = tt(r) var t = r.type, e = '' t || ut(e) var n = t.split(':') n.length !== 2 && ut(e) var i = !1 n[0] === 'echarts' && ((t = n[1]), (i = !0)), (r.__isBuiltIn = i), Qg.set(t, r) } function uM(r, t, e) { var n = Mt(r), i = n.length, a = '' i || ut(a) for (var o = 0, s = i; o < s; o++) { var l = n[o] ;(t = fM(l, t)), o !== s - 1 && (t.length = Math.max(t.length, 1)) } return t } function fM(r, t, e, n) { var i = '' t.length || ut(i), Y(r) || ut(i) var a = r.type, o = Qg.get(a) o || ut(i) var s = G(t, function (u) { return nM(u, o) }), l = Mt( o.transform({ upstream: s[0], upstreamList: s, config: tt(r.config) }) ) return G(l, function (u, f) { var h = '' Y(u) || ut(h), u.data || ut(h) var c = Og(u.data) Nf(c) || ut(h) var v, d = t[0] if (d && f === 0 && !u.dimensions) { var p = d.startIndex p && (u.data = d.data.slice(0, p).concat(u.data)), (v = { seriesLayoutBy: Ke, sourceHeader: p, dimensions: d.metaRawOption.dimensions }) } else v = { seriesLayoutBy: Ke, sourceHeader: 0, dimensions: u.dimensions } return Ef(u.data, v, null) }) } function Nf(r) { return r === Kt || r === _e } var Ds = 'undefined', hM = typeof Uint32Array === Ds ? Array : Uint32Array, vM = typeof Uint16Array === Ds ? Array : Uint16Array, Jg = typeof Int32Array === Ds ? Array : Int32Array, jg = typeof Float64Array === Ds ? Array : Float64Array, tm = { float: jg, int: Jg, ordinal: Array, number: Array, time: jg }, Ff function Ca(r) { return r > 65535 ? hM : vM } function gi() { return [1 / 0, -1 / 0] } function cM(r) { var t = r.constructor return t === Array ? r.slice() : new t(r) } function em(r, t, e, n, i) { var a = tm[e || 'float'] if (i) { var o = r[t], s = o && o.length if (s !== n) { for (var l = new a(n), u = 0; u < s; u++) l[u] = o[u] r[t] = l } } else r[t] = new a(n) } var zf = (function () { function r() { ;(this._chunks = []), (this._rawExtent = []), (this._extent = []), (this._count = 0), (this._rawCount = 0), (this._calcDimNameToIdx = q()) } return ( (r.prototype.initData = function (t, e, n) { ;(this._provider = t), (this._chunks = []), (this._indices = null), (this.getRawIndex = this._getRawIdxIdentity) var i = t.getSource(), a = (this.defaultDimValueGetter = Ff[i.sourceFormat]) ;(this._dimValueGetter = n || a), (this._rawExtent = []), Ng(i), (this._dimensions = G(e, function (o) { return { type: o.type, property: o.property } })), this._initDataFromProvider(0, t.count()) }), (r.prototype.getProvider = function () { return this._provider }), (r.prototype.getSource = function () { return this._provider.getSource() }), (r.prototype.ensureCalculationDimension = function (t, e) { var n = this._calcDimNameToIdx, i = this._dimensions, a = n.get(t) if (a != null) { if (i[a].type === e) return a } else a = i.length return ( (i[a] = { type: e }), n.set(t, a), (this._chunks[a] = new tm[e || 'float'](this._rawCount)), (this._rawExtent[a] = gi()), a ) }), (r.prototype.collectOrdinalMeta = function (t, e) { var n = this._chunks[t], i = this._dimensions[t], a = this._rawExtent, o = i.ordinalOffset || 0, s = n.length o === 0 && (a[t] = gi()) for (var l = a[t], u = o; u < s; u++) { var f = (n[u] = e.parseAndCollect(n[u])) isNaN(f) || ((l[0] = Math.min(f, l[0])), (l[1] = Math.max(f, l[1]))) } ;(i.ordinalMeta = e), (i.ordinalOffset = s), (i.type = 'ordinal') }), (r.prototype.getOrdinalMeta = function (t) { var e = this._dimensions[t], n = e.ordinalMeta return n }), (r.prototype.getDimensionProperty = function (t) { var e = this._dimensions[t] return e && e.property }), (r.prototype.appendData = function (t) { var e = this._provider, n = this.count() e.appendData(t) var i = e.count() return ( e.persistent || (i += n), n < i && this._initDataFromProvider(n, i, !0), [n, i] ) }), (r.prototype.appendValues = function (t, e) { for ( var n = this._chunks, i = this._dimensions, a = i.length, o = this._rawExtent, s = this.count(), l = s + Math.max(t.length, e || 0), u = 0; u < a; u++ ) { var f = i[u] em(n, u, f.type, l, !0) } for (var h = [], c = s; c < l; c++) for (var v = c - s, d = 0; d < a; d++) { var f = i[d], p = Ff.arrayRows.call(this, t[v] || h, f.property, v, d) n[d][c] = p var g = o[d] p < g[0] && (g[0] = p), p > g[1] && (g[1] = p) } return (this._rawCount = this._count = l), { start: s, end: l } }), (r.prototype._initDataFromProvider = function (t, e, n) { for ( var i = this._provider, a = this._chunks, o = this._dimensions, s = o.length, l = this._rawExtent, u = G(o, function (y) { return y.property }), f = 0; f < s; f++ ) { var h = o[f] l[f] || (l[f] = gi()), em(a, f, h.type, e, n) } if (i.fillStorage) i.fillStorage(t, e, a, l) else for (var c = [], v = t; v < e; v++) { c = i.getItem(v, c) for (var d = 0; d < s; d++) { var p = a[d], g = this._dimValueGetter(c, u[d], v, d) p[v] = g var m = l[d] g < m[0] && (m[0] = g), g > m[1] && (m[1] = g) } } !i.persistent && i.clean && i.clean(), (this._rawCount = this._count = e), (this._extent = []) }), (r.prototype.count = function () { return this._count }), (r.prototype.get = function (t, e) { if (!(e >= 0 && e < this._count)) return NaN var n = this._chunks[t] return n ? n[this.getRawIndex(e)] : NaN }), (r.prototype.getValues = function (t, e) { var n = [], i = [] if (e == null) { ;(e = t), (t = []) for (var a = 0; a < this._dimensions.length; a++) i.push(a) } else i = t for (var a = 0, o = i.length; a < o; a++) n.push(this.get(i[a], e)) return n }), (r.prototype.getByRawIndex = function (t, e) { if (!(e >= 0 && e < this._rawCount)) return NaN var n = this._chunks[t] return n ? n[e] : NaN }), (r.prototype.getSum = function (t) { var e = this._chunks[t], n = 0 if (e) for (var i = 0, a = this.count(); i < a; i++) { var o = this.get(t, i) isNaN(o) || (n += o) } return n }), (r.prototype.getMedian = function (t) { var e = [] this.each([t], function (a) { isNaN(a) || e.push(a) }) var n = e.sort(function (a, o) { return a - o }), i = this.count() return i === 0 ? 0 : i % 2 == 1 ? n[(i - 1) / 2] : (n[i / 2] + n[i / 2 - 1]) / 2 }), (r.prototype.indexOfRawIndex = function (t) { if (t >= this._rawCount || t < 0) return -1 if (!this._indices) return t var e = this._indices, n = e[t] if (n != null && n < this._count && n === t) return t for (var i = 0, a = this._count - 1; i <= a; ) { var o = ((i + a) / 2) | 0 if (e[o] < t) i = o + 1 else if (e[o] > t) a = o - 1 else return o } return -1 }), (r.prototype.indicesOfNearest = function (t, e, n) { var i = this._chunks, a = i[t], o = [] if (!a) return o n == null && (n = 1 / 0) for ( var s = 1 / 0, l = -1, u = 0, f = 0, h = this.count(); f < h; f++ ) { var c = this.getRawIndex(f), v = e - a[c], d = Math.abs(v) d <= n && ((d < s || (d === s && v >= 0 && l < 0)) && ((s = d), (l = v), (u = 0)), v === l && (o[u++] = f)) } return (o.length = u), o }), (r.prototype.getIndices = function () { var t, e = this._indices if (e) { var n = e.constructor, i = this._count if (n === Array) { t = new n(i) for (var a = 0; a < i; a++) t[a] = e[a] } else t = new n(e.buffer, 0, i) } else { var n = Ca(this._rawCount) t = new n(this.count()) for (var a = 0; a < t.length; a++) t[a] = a } return t }), (r.prototype.filter = function (t, e) { if (!this._count) return this for ( var n = this.clone(), i = n.count(), a = Ca(n._rawCount), o = new a(i), s = [], l = t.length, u = 0, f = t[0], h = n._chunks, c = 0; c < i; c++ ) { var v = void 0, d = n.getRawIndex(c) if (l === 0) v = e(c) else if (l === 1) { var p = h[f][d] v = e(p, c) } else { for (var g = 0; g < l; g++) s[g] = h[t[g]][d] ;(s[g] = c), (v = e.apply(null, s)) } v && (o[u++] = d) } return ( u < i && (n._indices = o), (n._count = u), (n._extent = []), n._updateGetRawIdx(), n ) }), (r.prototype.selectRange = function (t) { var e = this.clone(), n = e._count if (!n) return this var i = xt(t), a = i.length if (!a) return this var o = e.count(), s = Ca(e._rawCount), l = new s(o), u = 0, f = i[0], h = t[f][0], c = t[f][1], v = e._chunks, d = !1 if (!e._indices) { var p = 0 if (a === 1) { for (var g = v[i[0]], m = 0; m < n; m++) { var y = g[m] ;((y >= h && y <= c) || isNaN(y)) && (l[u++] = p), p++ } d = !0 } else if (a === 2) { for ( var g = v[i[0]], _ = v[i[1]], S = t[i[1]][0], w = t[i[1]][1], m = 0; m < n; m++ ) { var y = g[m], x = _[m] ;((y >= h && y <= c) || isNaN(y)) && ((x >= S && x <= w) || isNaN(x)) && (l[u++] = p), p++ } d = !0 } } if (!d) if (a === 1) for (var m = 0; m < o; m++) { var b = e.getRawIndex(m), y = v[i[0]][b] ;((y >= h && y <= c) || isNaN(y)) && (l[u++] = b) } else for (var m = 0; m < o; m++) { for (var T = !0, b = e.getRawIndex(m), C = 0; C < a; C++) { var M = i[C], y = v[M][b] ;(y < t[M][0] || y > t[M][1]) && (T = !1) } T && (l[u++] = e.getRawIndex(m)) } return ( u < o && (e._indices = l), (e._count = u), (e._extent = []), e._updateGetRawIdx(), e ) }), (r.prototype.map = function (t, e) { var n = this.clone(t) return this._updateDims(n, t, e), n }), (r.prototype.modify = function (t, e) { this._updateDims(this, t, e) }), (r.prototype._updateDims = function (t, e, n) { for ( var i = t._chunks, a = [], o = e.length, s = t.count(), l = [], u = t._rawExtent, f = 0; f < e.length; f++ ) u[e[f]] = gi() for (var h = 0; h < s; h++) { for (var c = t.getRawIndex(h), v = 0; v < o; v++) l[v] = i[e[v]][c] l[o] = h var d = n && n.apply(null, l) if (d != null) { typeof d != 'object' && ((a[0] = d), (d = a)) for (var f = 0; f < d.length; f++) { var p = e[f], g = d[f], m = u[p], y = i[p] y && (y[c] = g), g < m[0] && (m[0] = g), g > m[1] && (m[1] = g) } } } }), (r.prototype.lttbDownSample = function (t, e) { var n = this.clone([t], !0), i = n._chunks, a = i[t], o = this.count(), s = 0, l = Math.floor(1 / e), u = this.getRawIndex(0), f, h, c, v = new (Ca(this._rawCount))(Math.min((Math.ceil(o / l) + 2) * 2, o)) v[s++] = u for (var d = 1; d < o - 1; d += l) { for ( var p = Math.min(d + l, o - 1), g = Math.min(d + l * 2, o), m = (g + p) / 2, y = 0, _ = p; _ < g; _++ ) { var S = this.getRawIndex(_), w = a[S] isNaN(w) || (y += w) } y /= g - p var x = d, b = Math.min(d + l, o), T = d - 1, C = a[u] ;(f = -1), (c = x) for (var M = -1, D = 0, _ = x; _ < b; _++) { var S = this.getRawIndex(_), w = a[S] if (isNaN(w)) { D++, M < 0 && (M = S) continue } ;(h = Math.abs((T - m) * (w - C) - (T - _) * (y - C))), h > f && ((f = h), (c = S)) } D > 0 && D < b - x && ((v[s++] = Math.min(M, c)), (c = Math.max(M, c))), (v[s++] = c), (u = c) } return ( (v[s++] = this.getRawIndex(o - 1)), (n._count = s), (n._indices = v), (n.getRawIndex = this._getRawIdx), n ) }), (r.prototype.downSample = function (t, e, n, i) { for ( var a = this.clone([t], !0), o = a._chunks, s = [], l = Math.floor(1 / e), u = o[t], f = this.count(), h = (a._rawExtent[t] = gi()), c = new (Ca(this._rawCount))(Math.ceil(f / l)), v = 0, d = 0; d < f; d += l ) { l > f - d && ((l = f - d), (s.length = l)) for (var p = 0; p < l; p++) { var g = this.getRawIndex(d + p) s[p] = u[g] } var m = n(s), y = this.getRawIndex(Math.min(d + i(s, m) || 0, f - 1)) ;(u[y] = m), m < h[0] && (h[0] = m), m > h[1] && (h[1] = m), (c[v++] = y) } return (a._count = v), (a._indices = c), a._updateGetRawIdx(), a }), (r.prototype.each = function (t, e) { if (!!this._count) for ( var n = t.length, i = this._chunks, a = 0, o = this.count(); a < o; a++ ) { var s = this.getRawIndex(a) switch (n) { case 0: e(a) break case 1: e(i[t[0]][s], a) break case 2: e(i[t[0]][s], i[t[1]][s], a) break default: for (var l = 0, u = []; l < n; l++) u[l] = i[t[l]][s] ;(u[l] = a), e.apply(null, u) } } }), (r.prototype.getDataExtent = function (t) { var e = this._chunks[t], n = gi() if (!e) return n var i = this.count(), a = !this._indices, o if (a) return this._rawExtent[t].slice() if (((o = this._extent[t]), o)) return o.slice() o = n for (var s = o[0], l = o[1], u = 0; u < i; u++) { var f = this.getRawIndex(u), h = e[f] h < s && (s = h), h > l && (l = h) } return (o = [s, l]), (this._extent[t] = o), o }), (r.prototype.getRawDataItem = function (t) { var e = this.getRawIndex(t) if (this._provider.persistent) return this._provider.getItem(e) for (var n = [], i = this._chunks, a = 0; a < i.length; a++) n.push(i[a][e]) return n }), (r.prototype.clone = function (t, e) { var n = new r(), i = this._chunks, a = t && Sr( t, function (s, l) { return (s[l] = !0), s }, {} ) if (a) for (var o = 0; o < i.length; o++) n._chunks[o] = a[o] ? cM(i[o]) : i[o] else n._chunks = i return ( this._copyCommonProps(n), e || (n._indices = this._cloneIndices()), n._updateGetRawIdx(), n ) }), (r.prototype._copyCommonProps = function (t) { ;(t._count = this._count), (t._rawCount = this._rawCount), (t._provider = this._provider), (t._dimensions = this._dimensions), (t._extent = tt(this._extent)), (t._rawExtent = tt(this._rawExtent)) }), (r.prototype._cloneIndices = function () { if (this._indices) { var t = this._indices.constructor, e = void 0 if (t === Array) { var n = this._indices.length e = new t(n) for (var i = 0; i < n; i++) e[i] = this._indices[i] } else e = new t(this._indices) return e } return null }), (r.prototype._getRawIdxIdentity = function (t) { return t }), (r.prototype._getRawIdx = function (t) { return t < this._count && t >= 0 ? this._indices[t] : -1 }), (r.prototype._updateGetRawIdx = function () { this.getRawIndex = this._indices ? this._getRawIdx : this._getRawIdxIdentity }), (r.internalField = (function () { function t(e, n, i, a) { return Ms(e[a], this._dimensions[a]) } Ff = { arrayRows: t, objectRows: function (e, n, i, a) { return Ms(e[n], this._dimensions[a]) }, keyedColumns: t, original: function (e, n, i, a) { var o = e && (e.value == null ? e : e.value) return Ms(o instanceof Array ? o[a] : o, this._dimensions[a]) }, typedArray: function (e, n, i, a) { return e[a] } } })()), r ) })(), rm = (function () { function r(t) { ;(this._sourceList = []), (this._storeList = []), (this._upstreamSignList = []), (this._versionSignBase = 0), (this._dirty = !0), (this._sourceHost = t) } return ( (r.prototype.dirty = function () { this._setLocalSource([], []), (this._storeList = []), (this._dirty = !0) }), (r.prototype._setLocalSource = function (t, e) { ;(this._sourceList = t), (this._upstreamSignList = e), this._versionSignBase++, this._versionSignBase > 9e10 && (this._versionSignBase = 0) }), (r.prototype._getVersionSign = function () { return this._sourceHost.uid + '_' + this._versionSignBase }), (r.prototype.prepareSource = function () { this._isDirty() && (this._createSource(), (this._dirty = !1)) }), (r.prototype._createSource = function () { this._setLocalSource([], []) var t = this._sourceHost, e = this._getUpstreamSourceManagers(), n = !!e.length, i, a if (Is(t)) { var o = t, s = void 0, l = void 0, u = void 0 if (n) { var f = e[0] f.prepareSource(), (u = f.getSource()), (s = u.data), (l = u.sourceFormat), (a = [f._getVersionSign()]) } else (s = o.get('data', !0)), (l = ie(s) ? Pr : ye), (a = []) var h = this._getSourceMetaRawOption() || {}, c = (u && u.metaRawOption) || {}, v = ht(h.seriesLayoutBy, c.seriesLayoutBy) || null, d = ht(h.sourceHeader, c.sourceHeader), p = ht(h.dimensions, c.dimensions), g = v !== c.seriesLayoutBy || !!d != !!c.sourceHeader || p i = g ? [Ef(s, { seriesLayoutBy: v, sourceHeader: d, dimensions: p }, l)] : [] } else { var m = t if (n) { var y = this._applyTransform(e) ;(i = y.sourceList), (a = y.upstreamSignList) } else { var _ = m.get('source', !0) ;(i = [Ef(_, this._getSourceMetaRawOption(), null)]), (a = []) } } this._setLocalSource(i, a) }), (r.prototype._applyTransform = function (t) { var e = this._sourceHost, n = e.get('transform', !0), i = e.get('fromTransformResult', !0) if (i != null) { var a = '' t.length !== 1 && im(a) } var o, s = [], l = [] return ( A(t, function (u) { u.prepareSource() var f = u.getSource(i || 0), h = '' i != null && !f && im(h), s.push(f), l.push(u._getVersionSign()) }), n ? (o = uM(n, s, { datasetIndex: e.componentIndex })) : i != null && (o = [WA(s[0])]), { sourceList: o, upstreamSignList: l } ) }), (r.prototype._isDirty = function () { if (this._dirty) return !0 for ( var t = this._getUpstreamSourceManagers(), e = 0; e < t.length; e++ ) { var n = t[e] if (n._isDirty() || this._upstreamSignList[e] !== n._getVersionSign()) return !0 } }), (r.prototype.getSource = function (t) { t = t || 0 var e = this._sourceList[t] if (!e) { var n = this._getUpstreamSourceManagers() return n[0] && n[0].getSource(t) } return e }), (r.prototype.getSharedDataStore = function (t) { var e = t.makeStoreSchema() return this._innerGetDataStore(e.dimensions, t.source, e.hash) }), (r.prototype._innerGetDataStore = function (t, e, n) { var i = 0, a = this._storeList, o = a[i] o || (o = a[i] = {}) var s = o[n] if (!s) { var l = this._getUpstreamSourceManagers()[0] Is(this._sourceHost) && l ? (s = l._innerGetDataStore(t, e, n)) : ((s = new zf()), s.initData(new Vg(e, t.length), t)), (o[n] = s) } return s }), (r.prototype._getUpstreamSourceManagers = function () { var t = this._sourceHost if (Is(t)) { var e = Cf(t) return e ? [e.getSourceManager()] : [] } else return G(pA(t), function (n) { return n.getSourceManager() }) }), (r.prototype._getSourceMetaRawOption = function () { var t = this._sourceHost, e, n, i if (Is(t)) (e = t.get('seriesLayoutBy', !0)), (n = t.get('sourceHeader', !0)), (i = t.get('dimensions', !0)) else if (!this._getUpstreamSourceManagers().length) { var a = t ;(e = a.get('seriesLayoutBy', !0)), (n = a.get('sourceHeader', !0)), (i = a.get('dimensions', !0)) } return { seriesLayoutBy: e, sourceHeader: n, dimensions: i } }), r ) })() function nm(r) { var t = r.option.transform t && oo(r.option.transform) } function Is(r) { return r.mainType === 'series' } function im(r) { throw new Error(r) } var am = 'line-height:1' function om(r, t) { var e = r.color || '#6e7079', n = r.fontSize || 12, i = r.fontWeight || '400', a = r.color || '#464646', o = r.fontSize || 14, s = r.fontWeight || '900' return t === 'html' ? { nameStyle: 'font-size:' + me(n + '') + 'px;color:' + me(e) + ';font-weight:' + me(i + ''), valueStyle: 'font-size:' + me(o + '') + 'px;color:' + me(a) + ';font-weight:' + me(s + '') } : { nameStyle: { fontSize: n, fill: e, fontWeight: i }, valueStyle: { fontSize: o, fill: a, fontWeight: s } } } var dM = [0, 10, 20, 30], pM = [ '', ` `, ` `, ` ` ] function Aa(r, t) { return (t.type = r), t } function Vf(r) { return r.type === 'section' } function sm(r) { return Vf(r) ? gM : mM } function lm(r) { if (Vf(r)) { var t = 0, e = r.blocks.length, n = e > 1 || (e > 0 && !r.noHeader) return ( A(r.blocks, function (i) { var a = lm(i) a >= t && (t = a + +(n && (!a || (Vf(i) && !i.noHeader)))) }), t ) } return 0 } function gM(r, t, e, n) { var i = t.noHeader, a = yM(lm(t)), o = [], s = t.blocks || [] Ve(!s || z(s)), (s = s || []) var l = r.orderMode if (t.sortBlocks && l) { s = s.slice() var u = { valueAsc: 'asc', valueDesc: 'desc' } if (nr(u, l)) { var f = new Kg(u[l], null) s.sort(function (d, p) { return f.evaluate(d.sortParam, p.sortParam) }) } else l === 'seriesDesc' && s.reverse() } A(s, function (d, p) { var g = t.valueFormatter, m = sm(d)( g ? N(N({}, r), { valueFormatter: g }) : r, d, p > 0 ? a.html : 0, n ) m != null && o.push(m) }) var h = r.renderMode === 'richText' ? o.join(a.richText) : Gf(o.join(''), i ? e : a.html) if (i) return h var c = wf(t.header, 'ordinal', r.useUTC), v = om(n, r.renderMode).nameStyle return r.renderMode === 'richText' ? fm(r, c, v) + a.richText + h : Gf('
' + me(c) + '
' + h, e) } function mM(r, t, e, n) { var i = r.renderMode, a = t.noName, o = t.noValue, s = !t.markerType, l = t.name, u = r.useUTC, f = t.valueFormatter || r.valueFormatter || function (S) { return ( (S = z(S) ? S : [S]), G(S, function (w, x) { return wf(w, z(v) ? v[x] : v, u) }) ) } if (!(a && o)) { var h = s ? '' : r.markupStyleCreator.makeTooltipMarker( t.markerType, t.markerColor || '#333', i ), c = a ? '' : wf(l, 'ordinal', u), v = t.valueType, d = o ? [] : f(t.value), p = !s || !a, g = !s && a, m = om(n, i), y = m.nameStyle, _ = m.valueStyle return i === 'richText' ? (s ? '' : h) + (a ? '' : fm(r, c, y)) + (o ? '' : xM(r, d, p, g, _)) : Gf( (s ? '' : h) + (a ? '' : _M(c, !s, y)) + (o ? '' : SM(d, p, g, _)), e ) } } function um(r, t, e, n, i, a) { if (!!r) { var o = sm(r), s = { useUTC: i, renderMode: e, orderMode: n, markupStyleCreator: t, valueFormatter: r.valueFormatter } return o(s, r, 0, a) } } function yM(r) { return { html: dM[r], richText: pM[r] } } function Gf(r, t) { var e = '
', n = 'margin: ' + t + 'px 0 0' return '
' + r + e + '
' } function _M(r, t, e) { var n = t ? 'margin-left:2px' : '' return '' + me(r) + '' } function SM(r, t, e, n) { var i = e ? '10px' : '20px', a = t ? 'float:right;margin-left:' + i : '' return ( (r = z(r) ? r : [r]), '' + G(r, function (o) { return me(o) }).join('  ') + '' ) } function fm(r, t, e) { return r.markupStyleCreator.wrapRichTextStyle(t, e) } function xM(r, t, e, n, i) { var a = [i], o = n ? 10 : 20 return ( e && a.push({ padding: [0, 0, 0, o], align: 'right' }), r.markupStyleCreator.wrapRichTextStyle(z(t) ? t.join(' ') : t, a) ) } function wM(r, t) { var e = r.getData().getItemVisual(t, 'style'), n = e[r.visualDrawType] return yn(n) } function hm(r, t) { var e = r.get('padding') return e != null ? e : t === 'richText' ? [8, 10] : 10 } var Hf = (function () { function r() { ;(this.richTextStyles = {}), (this._nextStyleNameId = Kc()) } return ( (r.prototype._generateStyleName = function () { return '__EC_aUTo_' + this._nextStyleNameId++ }), (r.prototype.makeTooltipMarker = function (t, e, n) { var i = n === 'richText' ? this._generateStyleName() : null, a = aA({ color: e, type: t, renderMode: n, markerId: i }) return W(a) ? a : ((this.richTextStyles[i] = a.style), a.content) }), (r.prototype.wrapRichTextStyle = function (t, e) { var n = {} z(e) ? A(e, function (a) { return N(n, a) }) : N(n, e) var i = this._generateStyleName() return (this.richTextStyles[i] = n), '{' + i + '|' + t + '}' }), r ) })() function bM(r) { var t = r.series, e = r.dataIndex, n = r.multipleSeries, i = t.getData(), a = i.mapDimensionsAll('defaultedTooltip'), o = a.length, s = t.getRawValue(e), l = z(s), u = wM(t, e), f, h, c, v if (o > 1 || (l && !o)) { var d = TM(s, t, e, a, u) ;(f = d.inlineValues), (h = d.inlineValueTypes), (c = d.blocks), (v = d.inlineValues[0]) } else if (o) { var p = i.getDimensionInfo(a[0]) ;(v = f = pi(i, e, a[0])), (h = p.type) } else v = f = l ? s[0] : s var g = Au(t), m = (g && t.name) || '', y = i.getName(e), _ = n ? m : y return Aa('section', { header: m, noHeader: n || !g, sortParam: v, blocks: [ Aa('nameValue', { markerType: 'item', markerColor: u, name: _, noName: !Ge(_), value: f, valueType: h }) ].concat(c || []) }) } function TM(r, t, e, n, i) { var a = t.getData(), o = Sr( r, function (h, c, v) { var d = a.getDimensionInfo(v) return (h = h || (d && d.tooltip !== !1 && d.displayName != null)) }, !1 ), s = [], l = [], u = [] n.length ? A(n, function (h) { f(pi(a, e, h), h) }) : A(r, f) function f(h, c) { var v = a.getDimensionInfo(c) !v || v.otherDims.tooltip === !1 || (o ? u.push( Aa('nameValue', { markerType: 'subItem', markerColor: i, name: v.displayName, value: h, valueType: v.type }) ) : (s.push(h), l.push(v.type))) } return { inlineValues: s, inlineValueTypes: l, blocks: u } } var Rr = wt() function Ls(r, t) { return r.getName(t) || r.getId(t) } var Ps = '__universalTransitionEnabled', Rs = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e._selectedDataIndicesMap = {}), e } return ( (t.prototype.init = function (e, n, i) { ;(this.seriesIndex = this.componentIndex), (this.dataTask = Ta({ count: AM, reset: MM })), (this.dataTask.context = { model: this }), this.mergeDefaultAndTheme(e, i) var a = (Rr(this).sourceManager = new rm(this)) a.prepareSource() var o = this.getInitialData(e, i) cm(o, this), (this.dataTask.context.data = o), (Rr(this).dataBeforeProcessed = o), vm(this), this._initSelectedMapFromData(o) }), (t.prototype.mergeDefaultAndTheme = function (e, n) { var i = ya(this), a = i ? _a(e) : {}, o = this.subType _t.hasClass(o) && (o += 'Series'), nt(e, n.getTheme().get(this.subType)), nt(e, this.getDefaultOption()), Cu(e, 'label', ['show']), this.fillDataTextStyle(e.data), i && hi(e, a, i) }), (t.prototype.mergeOption = function (e, n) { ;(e = nt(this.option, e, !0)), this.fillDataTextStyle(e.data) var i = ya(this) i && hi(this.option, e, i) var a = Rr(this).sourceManager a.dirty(), a.prepareSource() var o = this.getInitialData(e, n) cm(o, this), this.dataTask.dirty(), (this.dataTask.context.data = o), (Rr(this).dataBeforeProcessed = o), vm(this), this._initSelectedMapFromData(o) }), (t.prototype.fillDataTextStyle = function (e) { if (e && !ie(e)) for (var n = ['show'], i = 0; i < e.length; i++) e[i] && e[i].label && Cu(e[i], 'label', n) }), (t.prototype.getInitialData = function (e, n) {}), (t.prototype.appendData = function (e) { var n = this.getRawData() n.appendData(e.data) }), (t.prototype.getData = function (e) { var n = Wf(this) if (n) { var i = n.context.data return e == null ? i : i.getLinkedData(e) } else return Rr(this).data }), (t.prototype.getAllData = function () { var e = this.getData() return e && e.getLinkedDataAll ? e.getLinkedDataAll() : [{ data: e }] }), (t.prototype.setData = function (e) { var n = Wf(this) if (n) { var i = n.context ;(i.outputData = e), n !== this.dataTask && (i.data = e) } Rr(this).data = e }), (t.prototype.getEncode = function () { var e = this.get('encode', !0) if (e) return q(e) }), (t.prototype.getSourceManager = function () { return Rr(this).sourceManager }), (t.prototype.getSource = function () { return this.getSourceManager().getSource() }), (t.prototype.getRawData = function () { return Rr(this).dataBeforeProcessed }), (t.prototype.getColorBy = function () { var e = this.get('colorBy') return e || 'series' }), (t.prototype.isColorBySeries = function () { return this.getColorBy() === 'series' }), (t.prototype.getBaseAxis = function () { var e = this.coordinateSystem return e && e.getBaseAxis && e.getBaseAxis() }), (t.prototype.formatTooltip = function (e, n, i) { return bM({ series: this, dataIndex: e, multipleSeries: n }) }), (t.prototype.isAnimationEnabled = function () { var e = this.ecModel if (at.node && !(e && e.ssr)) return !1 var n = this.getShallow('animation') return ( n && this.getData().count() > this.getShallow('animationThreshold') && (n = !1), !!n ) }), (t.prototype.restoreData = function () { this.dataTask.dirty() }), (t.prototype.getColorFromPalette = function (e, n, i) { var a = this.ecModel, o = Mf.prototype.getColorFromPalette.call(this, e, n, i) return o || (o = a.getColorFromPalette(e, n, i)), o }), (t.prototype.coordDimToDataDim = function (e) { return this.getRawData().mapDimensionsAll(e) }), (t.prototype.getProgressive = function () { return this.get('progressive') }), (t.prototype.getProgressiveThreshold = function () { return this.get('progressiveThreshold') }), (t.prototype.select = function (e, n) { this._innerSelect(this.getData(n), e) }), (t.prototype.unselect = function (e, n) { var i = this.option.selectedMap if (!!i) { var a = this.option.selectedMode, o = this.getData(n) if (a === 'series' || i === 'all') { ;(this.option.selectedMap = {}), (this._selectedDataIndicesMap = {}) return } for (var s = 0; s < e.length; s++) { var l = e[s], u = Ls(o, l) ;(i[u] = !1), (this._selectedDataIndicesMap[u] = -1) } } }), (t.prototype.toggleSelect = function (e, n) { for (var i = [], a = 0; a < e.length; a++) (i[0] = e[a]), this.isSelected(e[a], n) ? this.unselect(i, n) : this.select(i, n) }), (t.prototype.getSelectedDataIndices = function () { if (this.option.selectedMap === 'all') return [].slice.call(this.getData().getIndices()) for ( var e = this._selectedDataIndicesMap, n = xt(e), i = [], a = 0; a < n.length; a++ ) { var o = e[n[a]] o >= 0 && i.push(o) } return i }), (t.prototype.isSelected = function (e, n) { var i = this.option.selectedMap if (!i) return !1 var a = this.getData(n) return ( (i === 'all' || i[Ls(a, e)]) && !a.getItemModel(e).get(['select', 'disabled']) ) }), (t.prototype.isUniversalTransitionEnabled = function () { if (this[Ps]) return !0 var e = this.option.universalTransition return e ? (e === !0 ? !0 : e && e.enabled) : !1 }), (t.prototype._innerSelect = function (e, n) { var i, a, o = this.option, s = o.selectedMode, l = n.length if (!(!s || !l)) { if (s === 'series') o.selectedMap = 'all' else if (s === 'multiple') { Y(o.selectedMap) || (o.selectedMap = {}) for (var u = o.selectedMap, f = 0; f < l; f++) { var h = n[f], c = Ls(e, h) ;(u[c] = !0), (this._selectedDataIndicesMap[c] = e.getRawIndex(h)) } } else if (s === 'single' || s === !0) { var v = n[l - 1], c = Ls(e, v) ;(o.selectedMap = ((i = {}), (i[c] = !0), i)), (this._selectedDataIndicesMap = ((a = {}), (a[c] = e.getRawIndex(v)), a)) } } }), (t.prototype._initSelectedMapFromData = function (e) { if (!this.option.selectedMap) { var n = [] e.hasItemOption && e.each(function (i) { var a = e.getRawDataItem(i) a && a.selected && n.push(i) }), n.length > 0 && this._innerSelect(e, n) } }), (t.registerClass = function (e) { return _t.registerClass(e) }), (t.protoInitialize = (function () { var e = t.prototype ;(e.type = 'series.__base__'), (e.seriesIndex = 0), (e.ignoreStyleOnData = !1), (e.hasSymbolVisual = !1), (e.defaultSymbol = 'circle'), (e.visualStyleAccessPath = 'itemStyle'), (e.visualDrawType = 'fill') })()), t ) })(_t) ze(Rs, KA) ze(Rs, Mf) sd(Rs, _t) function vm(r) { var t = r.name Au(r) || (r.name = CM(r) || t) } function CM(r) { var t = r.getRawData(), e = t.mapDimensionsAll('seriesName'), n = [] return ( A(e, function (i) { var a = t.getDimensionInfo(i) a.displayName && n.push(a.displayName) }), n.join(' ') ) } function AM(r) { return r.model.getRawData().count() } function MM(r) { var t = r.model return t.setData(t.getRawData().cloneShallow()), DM } function DM(r, t) { t.outputData && r.end > t.outputData.count() && t.model.getRawData().cloneShallow(t.outputData) } function cm(r, t) { A(Ix(r.CHANGABLE_METHODS, r.DOWNSAMPLE_METHODS), function (e) { r.wrapMethod(e, lt(IM, t)) }) } function IM(r, t) { var e = Wf(r) return e && e.setOutputEnd((t || this).count()), t } function Wf(r) { var t = (r.ecModel || {}).scheduler, e = t && t.getPipeline(r.uid) if (e) { var n = e.currentTask if (n) { var i = n.agentStubMap i && (n = i.get(r.uid)) } return n } } var Er = Rs, Uf = (function () { function r() { ;(this.group = new At()), (this.uid = ca('viewComponent')) } return ( (r.prototype.init = function (t, e) {}), (r.prototype.render = function (t, e, n, i) {}), (r.prototype.dispose = function (t, e) {}), (r.prototype.updateView = function (t, e, n, i) {}), (r.prototype.updateLayout = function (t, e, n, i) {}), (r.prototype.updateVisual = function (t, e, n, i) {}), (r.prototype.toggleBlurSeries = function (t, e, n) {}), (r.prototype.eachRendered = function (t) { var e = this.group e && e.traverse(t) }), r ) })() Du(Uf) No(Uf) var xe = Uf function Yf() { var r = wt() return function (t) { var e = r(t), n = t.pipelineContext, i = !!e.large, a = !!e.progressiveRender, o = (e.large = !!(n && n.large)), s = (e.progressiveRender = !!(n && n.progressiveRender)) return (i !== o || a !== s) && 'reset' } } var dm = wt(), LM = Yf(), Zf = (function () { function r() { ;(this.group = new At()), (this.uid = ca('viewChart')), (this.renderTask = Ta({ plan: PM, reset: RM })), (this.renderTask.context = { view: this }) } return ( (r.prototype.init = function (t, e) {}), (r.prototype.render = function (t, e, n, i) {}), (r.prototype.highlight = function (t, e, n, i) { var a = t.getData(i && i.dataType) !a || gm(a, i, 'emphasis') }), (r.prototype.downplay = function (t, e, n, i) { var a = t.getData(i && i.dataType) !a || gm(a, i, 'normal') }), (r.prototype.remove = function (t, e) { this.group.removeAll() }), (r.prototype.dispose = function (t, e) {}), (r.prototype.updateView = function (t, e, n, i) { this.render(t, e, n, i) }), (r.prototype.updateLayout = function (t, e, n, i) { this.render(t, e, n, i) }), (r.prototype.updateVisual = function (t, e, n, i) { this.render(t, e, n, i) }), (r.prototype.eachRendered = function (t) { hs(this.group, t) }), (r.markUpdateMethod = function (t, e) { dm(t).updateMethod = e }), (r.protoInitialize = (function () { var t = r.prototype t.type = 'chart' })()), r ) })() function pm(r, t, e) { r && Ju(r) && (t === 'emphasis' ? ei : ri)(r, e) } function gm(r, t, e) { var n = Jr(r, t), i = t && t.highlightKey != null ? FT(t.highlightKey) : null n != null ? A(Mt(n), function (a) { pm(r.getItemGraphicEl(a), e, i) }) : r.eachItemGraphicEl(function (a) { pm(a, e, i) }) } Du(Zf) No(Zf) function PM(r) { return LM(r.model) } function RM(r) { var t = r.model, e = r.ecModel, n = r.api, i = r.payload, a = t.pipelineContext.progressiveRender, o = r.view, s = i && dm(i).updateMethod, l = a ? 'incrementalPrepareRender' : s && o[s] ? s : 'render' return l !== 'render' && o[l](t, e, n, i), EM[l] } var EM = { incrementalPrepareRender: { progress: function (r, t) { t.view.incrementalRender(r, t.model, t.ecModel, t.api, t.payload) } }, render: { forceFirstProgress: !0, progress: function (r, t) { t.view.render(t.model, t.ecModel, t.api, t.payload) } } }, Qe = Zf, Es = '\0__throttleOriginMethod', mm = '\0__throttleRate', ym = '\0__throttleType' function $f(r, t, e) { var n, i = 0, a = 0, o = null, s, l, u, f t = t || 0 function h() { ;(a = new Date().getTime()), (o = null), r.apply(l, u || []) } var c = function () { for (var v = [], d = 0; d < arguments.length; d++) v[d] = arguments[d] ;(n = new Date().getTime()), (l = this), (u = v) var p = f || t, g = f || e ;(f = null), (s = n - (g ? i : a) - p), clearTimeout(o), g ? (o = setTimeout(h, p)) : s >= 0 ? h() : (o = setTimeout(h, -s)), (i = n) } return ( (c.clear = function () { o && (clearTimeout(o), (o = null)) }), (c.debounceNextCall = function (v) { f = v }), c ) } function Os(r, t, e, n) { var i = r[t] if (!!i) { var a = i[Es] || i, o = i[ym], s = i[mm] if (s !== e || o !== n) { if (e == null || !n) return (r[t] = a) ;(i = r[t] = $f(a, e, n === 'debounce')), (i[Es] = a), (i[ym] = n), (i[mm] = e) } return i } } function ks(r, t) { var e = r[t] e && e[Es] && (e.clear && e.clear(), (r[t] = e[Es])) } var _m = wt(), Sm = { itemStyle: ta($p, !0), lineStyle: ta(Zp, !0) }, OM = { lineStyle: 'stroke', itemStyle: 'fill' } function xm(r, t) { var e = r.visualStyleMapper || Sm[t] return e || (console.warn("Unkown style type '" + t + "'."), Sm.itemStyle) } function wm(r, t) { var e = r.visualDrawType || OM[t] return e || (console.warn("Unkown style type '" + t + "'."), 'fill') } var kM = { createOnAllSeries: !0, performRawSeries: !0, reset: function (r, t) { var e = r.getData(), n = r.visualStyleAccessPath || 'itemStyle', i = r.getModel(n), a = xm(r, n), o = a(i), s = i.getShallow('decal') s && (e.setVisual('decal', s), (s.dirty = !0)) var l = wm(r, n), u = o[l], f = Q(u) ? u : null, h = o.fill === 'auto' || o.stroke === 'auto' if (!o[l] || f || h) { var c = r.getColorFromPalette(r.name, null, t.getSeriesCount()) o[l] || ((o[l] = c), e.setVisual('colorFromPalette', !0)), (o.fill = o.fill === 'auto' || Q(o.fill) ? c : o.fill), (o.stroke = o.stroke === 'auto' || Q(o.stroke) ? c : o.stroke) } if ( (e.setVisual('style', o), e.setVisual('drawType', l), !t.isSeriesFiltered(r) && f) ) return ( e.setVisual('colorFromPalette', !1), { dataEach: function (v, d) { var p = r.getDataParams(d), g = N({}, o) ;(g[l] = f(p)), v.setItemVisual(d, 'style', g) } } ) } }, Ma = new Nt(), BM = { createOnAllSeries: !0, performRawSeries: !0, reset: function (r, t) { if (!(r.ignoreStyleOnData || t.isSeriesFiltered(r))) { var e = r.getData(), n = r.visualStyleAccessPath || 'itemStyle', i = xm(r, n), a = e.getVisual('drawType') return { dataEach: e.hasItemOption ? function (o, s) { var l = o.getRawDataItem(s) if (l && l[n]) { Ma.option = l[n] var u = i(Ma), f = o.ensureUniqueItemVisual(s, 'style') N(f, u), Ma.option.decal && (o.setItemVisual(s, 'decal', Ma.option.decal), (Ma.option.decal.dirty = !0)), a in u && o.setItemVisual(s, 'colorFromPalette', !1) } } : null } } } }, NM = { performRawSeries: !0, overallReset: function (r) { var t = q() r.eachSeries(function (e) { var n = e.getColorBy() if (!e.isColorBySeries()) { var i = e.type + '-' + n, a = t.get(i) a || ((a = {}), t.set(i, a)), (_m(e).scope = a) } }), r.eachSeries(function (e) { if (!(e.isColorBySeries() || r.isSeriesFiltered(e))) { var n = e.getRawData(), i = {}, a = e.getData(), o = _m(e).scope, s = e.visualStyleAccessPath || 'itemStyle', l = wm(e, s) a.each(function (u) { var f = a.getRawIndex(u) i[f] = u }), n.each(function (u) { var f = i[u], h = a.getItemVisual(f, 'colorFromPalette') if (h) { var c = a.ensureUniqueItemVisual(f, 'style'), v = n.getName(u) || u + '', d = n.count() c[l] = e.getColorFromPalette(v, o, d) } }) } }) } }, Bs = Math.PI function FM(r, t) { ;(t = t || {}), j(t, { text: 'loading', textColor: '#000', fontSize: 12, fontWeight: 'normal', fontStyle: 'normal', fontFamily: 'sans-serif', maskColor: 'rgba(255, 255, 255, 0.8)', showSpinner: !0, color: '#5470c6', spinnerRadius: 10, lineWidth: 5, zlevel: 0 }) var e = new At(), n = new St({ style: { fill: t.maskColor }, zlevel: t.zlevel, z: 1e4 }) e.add(n) var i = new Et({ style: { text: t.text, fill: t.textColor, fontSize: t.fontSize, fontWeight: t.fontWeight, fontStyle: t.fontStyle, fontFamily: t.fontFamily }, zlevel: t.zlevel, z: 10001 }), a = new St({ style: { fill: 'none' }, textContent: i, textConfig: { position: 'right', distance: 10 }, zlevel: t.zlevel, z: 10001 }) e.add(a) var o return ( t.showSpinner && ((o = new of({ shape: { startAngle: -Bs / 2, endAngle: -Bs / 2 + 0.1, r: t.spinnerRadius }, style: { stroke: t.color, lineCap: 'round', lineWidth: t.lineWidth }, zlevel: t.zlevel, z: 10001 })), o .animateShape(!0) .when(1e3, { endAngle: (Bs * 3) / 2 }) .start('circularInOut'), o .animateShape(!0) .when(1e3, { startAngle: (Bs * 3) / 2 }) .delay(300) .start('circularInOut'), e.add(o)), (e.resize = function () { var s = i.getBoundingRect().width, l = t.showSpinner ? t.spinnerRadius : 0, u = (r.getWidth() - l * 2 - (t.showSpinner && s ? 10 : 0) - s) / 2 - (t.showSpinner && s ? 0 : 5 + s / 2) + (t.showSpinner ? 0 : s / 2) + (s ? 0 : l), f = r.getHeight() / 2 t.showSpinner && o.setShape({ cx: u, cy: f }), a.setShape({ x: u - l, y: f - l, width: l * 2, height: l * 2 }), n.setShape({ x: 0, y: 0, width: r.getWidth(), height: r.getHeight() }) }), e.resize(), e ) } var zM = (function () { function r(t, e, n, i) { ;(this._stageTaskMap = q()), (this.ecInstance = t), (this.api = e), (n = this._dataProcessorHandlers = n.slice()), (i = this._visualHandlers = i.slice()), (this._allHandlers = n.concat(i)) } return ( (r.prototype.restoreData = function (t, e) { t.restoreData(e), this._stageTaskMap.each(function (n) { var i = n.overallTask i && i.dirty() }) }), (r.prototype.getPerformArgs = function (t, e) { if (!!t.__pipeline) { var n = this._pipelineMap.get(t.__pipeline.id), i = n.context, a = !e && n.progressiveEnabled && (!i || i.progressiveRender) && t.__idxInPipeline > n.blockIndex, o = a ? n.step : null, s = i && i.modDataCount, l = s != null ? Math.ceil(s / o) : null return { step: o, modBy: l, modDataCount: s } } }), (r.prototype.getPipeline = function (t) { return this._pipelineMap.get(t) }), (r.prototype.updateStreamModes = function (t, e) { var n = this._pipelineMap.get(t.uid), i = t.getData(), a = i.count(), o = n.progressiveEnabled && e.incrementalPrepareRender && a >= n.threshold, s = t.get('large') && a >= t.get('largeThreshold'), l = t.get('progressiveChunkMode') === 'mod' ? a : null t.pipelineContext = n.context = { progressiveRender: o, modDataCount: l, large: s } }), (r.prototype.restorePipelines = function (t) { var e = this, n = (e._pipelineMap = q()) t.eachSeries(function (i) { var a = i.getProgressive(), o = i.uid n.set(o, { id: o, head: null, tail: null, threshold: i.getProgressiveThreshold(), progressiveEnabled: a && !(i.preventIncremental && i.preventIncremental()), blockIndex: -1, step: Math.round(a || 700), count: 0 }), e._pipe(i, i.dataTask) }) }), (r.prototype.prepareStageTasks = function () { var t = this._stageTaskMap, e = this.api.getModel(), n = this.api A( this._allHandlers, function (i) { var a = t.get(i.uid) || t.set(i.uid, {}), o = '' Ve(!(i.reset && i.overallReset), o), i.reset && this._createSeriesStageTask(i, a, e, n), i.overallReset && this._createOverallStageTask(i, a, e, n) }, this ) }), (r.prototype.prepareView = function (t, e, n, i) { var a = t.renderTask, o = a.context ;(o.model = e), (o.ecModel = n), (o.api = i), (a.__block = !t.incrementalPrepareRender), this._pipe(e, a) }), (r.prototype.performDataProcessorTasks = function (t, e) { this._performStageTasks(this._dataProcessorHandlers, t, e, { block: !0 }) }), (r.prototype.performVisualTasks = function (t, e, n) { this._performStageTasks(this._visualHandlers, t, e, n) }), (r.prototype._performStageTasks = function (t, e, n, i) { i = i || {} var a = !1, o = this A(t, function (l, u) { if (!(i.visualType && i.visualType !== l.visualType)) { var f = o._stageTaskMap.get(l.uid), h = f.seriesTaskMap, c = f.overallTask if (c) { var v, d = c.agentStubMap d.each(function (g) { s(i, g) && (g.dirty(), (v = !0)) }), v && c.dirty(), o.updatePayload(c, n) var p = o.getPerformArgs(c, i.block) d.each(function (g) { g.perform(p) }), c.perform(p) && (a = !0) } else h && h.each(function (g, m) { s(i, g) && g.dirty() var y = o.getPerformArgs(g, i.block) ;(y.skip = !l.performRawSeries && e.isSeriesFiltered(g.context.model)), o.updatePayload(g, n), g.perform(y) && (a = !0) }) } }) function s(l, u) { return l.setDirty && (!l.dirtyMap || l.dirtyMap.get(u.__pipeline.id)) } this.unfinished = a || this.unfinished }), (r.prototype.performSeriesTasks = function (t) { var e t.eachSeries(function (n) { e = n.dataTask.perform() || e }), (this.unfinished = e || this.unfinished) }), (r.prototype.plan = function () { this._pipelineMap.each(function (t) { var e = t.tail do { if (e.__block) { t.blockIndex = e.__idxInPipeline break } e = e.getUpstream() } while (e) }) }), (r.prototype.updatePayload = function (t, e) { e !== 'remain' && (t.context.payload = e) }), (r.prototype._createSeriesStageTask = function (t, e, n, i) { var a = this, o = e.seriesTaskMap, s = (e.seriesTaskMap = q()), l = t.seriesType, u = t.getTargetSeries t.createOnAllSeries ? n.eachRawSeries(f) : l ? n.eachRawSeriesByType(l, f) : u && u(n, i).each(f) function f(h) { var c = h.uid, v = s.set( c, (o && o.get(c)) || Ta({ plan: UM, reset: YM, count: $M }) ) ;(v.context = { model: h, ecModel: n, api: i, useClearVisual: t.isVisual && !t.isLayout, plan: t.plan, reset: t.reset, scheduler: a }), a._pipe(h, v) } }), (r.prototype._createOverallStageTask = function (t, e, n, i) { var a = this, o = (e.overallTask = e.overallTask || Ta({ reset: VM })) o.context = { ecModel: n, api: i, overallReset: t.overallReset, scheduler: a } var s = o.agentStubMap, l = (o.agentStubMap = q()), u = t.seriesType, f = t.getTargetSeries, h = !0, c = !1, v = '' Ve(!t.createOnAllSeries, v), u ? n.eachRawSeriesByType(u, d) : f ? f(n, i).each(d) : ((h = !1), A(n.getSeries(), d)) function d(p) { var g = p.uid, m = l.set( g, (s && s.get(g)) || ((c = !0), Ta({ reset: GM, onDirty: WM })) ) ;(m.context = { model: p, overallProgress: h }), (m.agent = o), (m.__block = h), a._pipe(p, m) } c && o.dirty() }), (r.prototype._pipe = function (t, e) { var n = t.uid, i = this._pipelineMap.get(n) !i.head && (i.head = e), i.tail && i.tail.pipe(e), (i.tail = e), (e.__idxInPipeline = i.count++), (e.__pipeline = i) }), (r.wrapStageHandler = function (t, e) { return ( Q(t) && (t = { overallReset: t, seriesType: XM(t) }), (t.uid = ca('stageHandler')), e && (t.visualType = e), t ) }), r ) })() function VM(r) { r.overallReset(r.ecModel, r.api, r.payload) } function GM(r) { return r.overallProgress && HM } function HM() { this.agent.dirty(), this.getDownstream().dirty() } function WM() { this.agent && this.agent.dirty() } function UM(r) { return r.plan ? r.plan(r.model, r.ecModel, r.api, r.payload) : null } function YM(r) { r.useClearVisual && r.data.clearAllVisual() var t = (r.resetDefines = Mt(r.reset(r.model, r.ecModel, r.api, r.payload))) return t.length > 1 ? G(t, function (e, n) { return bm(n) }) : ZM } var ZM = bm(0) function bm(r) { return function (t, e) { var n = e.data, i = e.resetDefines[r] if (i && i.dataEach) for (var a = t.start; a < t.end; a++) i.dataEach(n, a) else i && i.progress && i.progress(t, n) } } function $M(r) { return r.data.count() } function XM(r) { Ns = null try { r(Da, Tm) } catch {} return Ns } var Da = {}, Tm = {}, Ns Cm(Da, Cg) Cm(Tm, Ag) Da.eachSeriesByType = Da.eachRawSeriesByType = function (r) { Ns = r } Da.eachComponent = function (r) { r.mainType === 'series' && r.subType && (Ns = r.subType) } function Cm(r, t) { for (var e in t.prototype) r[e] = $t } var Am = zM, Mm = [ '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF' ], qM = { color: Mm, colorLayer: [ ['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], [ '#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF' ], Mm ] }, Qt = '#B9B8CE', Dm = '#100C2A', Fs = function () { return { axisLine: { lineStyle: { color: Qt } }, splitLine: { lineStyle: { color: '#484753' } }, splitArea: { areaStyle: { color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)'] } }, minorSplitLine: { lineStyle: { color: '#20203B' } } } }, Im = [ '#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff' ], Lm = { darkMode: !0, color: Im, backgroundColor: Dm, axisPointer: { lineStyle: { color: '#817f91' }, crossStyle: { color: '#817f91' }, label: { color: '#fff' } }, legend: { textStyle: { color: Qt } }, textStyle: { color: Qt }, title: { textStyle: { color: '#EEF1FA' }, subtextStyle: { color: '#B9B8CE' } }, toolbox: { iconStyle: { borderColor: Qt } }, dataZoom: { borderColor: '#71708A', textStyle: { color: Qt }, brushStyle: { color: 'rgba(135,163,206,0.3)' }, handleStyle: { color: '#353450', borderColor: '#C5CBE3' }, moveHandleStyle: { color: '#B0B6C3', opacity: 0.3 }, fillerColor: 'rgba(135,163,206,0.2)', emphasis: { handleStyle: { borderColor: '#91B7F2', color: '#4D587D' }, moveHandleStyle: { color: '#636D9A', opacity: 0.7 } }, dataBackground: { lineStyle: { color: '#71708A', width: 1 }, areaStyle: { color: '#71708A' } }, selectedDataBackground: { lineStyle: { color: '#87A3CE' }, areaStyle: { color: '#87A3CE' } } }, visualMap: { textStyle: { color: Qt } }, timeline: { lineStyle: { color: Qt }, label: { color: Qt }, controlStyle: { color: Qt, borderColor: Qt } }, calendar: { itemStyle: { color: Dm }, dayLabel: { color: Qt }, monthLabel: { color: Qt }, yearLabel: { color: Qt } }, timeAxis: Fs(), logAxis: Fs(), valueAxis: Fs(), categoryAxis: Fs(), line: { symbol: 'circle' }, graph: { color: Im }, gauge: { title: { color: Qt }, axisLine: { lineStyle: { color: [[1, 'rgba(207,212,219,0.2)']] } }, axisLabel: { color: Qt }, detail: { color: '#EEF1FA' } }, candlestick: { itemStyle: { color: '#f64e56', color0: '#54ea92', borderColor: '#f64e56', borderColor0: '#54ea92' } } } Lm.categoryAxis.splitLine.show = !1 var KM = Lm, QM = (function () { function r() {} return ( (r.prototype.normalizeQuery = function (t) { var e = {}, n = {}, i = {} if (W(t)) { var a = Ue(t) ;(e.mainType = a.main || null), (e.subType = a.sub || null) } else { var o = ['Index', 'Name', 'Id'], s = { name: 1, dataIndex: 1, dataType: 1 } A(t, function (l, u) { for (var f = !1, h = 0; h < o.length; h++) { var c = o[h], v = u.lastIndexOf(c) if (v > 0 && v === u.length - c.length) { var d = u.slice(0, v) d !== 'data' && ((e.mainType = d), (e[c.toLowerCase()] = l), (f = !0)) } } s.hasOwnProperty(u) && ((n[u] = l), (f = !0)), f || (i[u] = l) }) } return { cptQuery: e, dataQuery: n, otherQuery: i } }), (r.prototype.filter = function (t, e) { var n = this.eventInfo if (!n) return !0 var i = n.targetEl, a = n.packedEvent, o = n.model, s = n.view if (!o || !s) return !0 var l = e.cptQuery, u = e.dataQuery return ( f(l, o, 'mainType') && f(l, o, 'subType') && f(l, o, 'index', 'componentIndex') && f(l, o, 'name') && f(l, o, 'id') && f(u, a, 'name') && f(u, a, 'dataIndex') && f(u, a, 'dataType') && (!s.filterForExposedEvent || s.filterForExposedEvent(t, e.otherQuery, i, a)) ) function f(h, c, v, d) { return h[v] == null || c[d || v] === h[v] } }), (r.prototype.afterTrigger = function () { this.eventInfo = null }), r ) })(), Xf = ['symbol', 'symbolSize', 'symbolRotate', 'symbolOffset'], Pm = Xf.concat(['symbolKeepAspect']), JM = { createOnAllSeries: !0, performRawSeries: !0, reset: function (r, t) { var e = r.getData() if ( (r.legendIcon && e.setVisual('legendIcon', r.legendIcon), !r.hasSymbolVisual) ) return for (var n = {}, i = {}, a = !1, o = 0; o < Xf.length; o++) { var s = Xf[o], l = r.get(s) Q(l) ? ((a = !0), (i[s] = l)) : (n[s] = l) } if ( ((n.symbol = n.symbol || r.defaultSymbol), e.setVisual( N( { legendIcon: r.legendIcon || n.symbol, symbolKeepAspect: r.get('symbolKeepAspect') }, n ) ), t.isSeriesFiltered(r)) ) return var u = xt(i) function f(h, c) { for ( var v = r.getRawValue(c), d = r.getDataParams(c), p = 0; p < u.length; p++ ) { var g = u[p] h.setItemVisual(c, g, i[g](v, d)) } } return { dataEach: a ? f : null } } }, jM = { createOnAllSeries: !0, performRawSeries: !0, reset: function (r, t) { if (!r.hasSymbolVisual || t.isSeriesFiltered(r)) return var e = r.getData() function n(i, a) { for (var o = i.getItemModel(a), s = 0; s < Pm.length; s++) { var l = Pm[s], u = o.getShallow(l, !0) u != null && i.setItemVisual(a, l, u) } } return { dataEach: e.hasItemOption ? n : null } } } function tD(r, t, e) { switch (e) { case 'color': var n = r.getItemVisual(t, 'style') return n[r.getVisual('drawType')] case 'opacity': return r.getItemVisual(t, 'style').opacity case 'symbol': case 'symbolSize': case 'liftZ': return r.getItemVisual(t, e) } } function eD(r, t) { switch (t) { case 'color': var e = r.getVisual('style') return e[r.getVisual('drawType')] case 'opacity': return r.getVisual('style').opacity case 'symbol': case 'symbolSize': case 'liftZ': return r.getVisual(t) } } function rD(r, t) { function e(n, i) { var a = [] return ( n.eachComponent( { mainType: 'series', subType: r, query: i }, function (o) { a.push(o.seriesIndex) } ), a ) } A( [ [r + 'ToggleSelect', 'toggleSelect'], [r + 'Select', 'select'], [r + 'UnSelect', 'unselect'] ], function (n) { t(n[0], function (i, a, o) { ;(i = N({}, i)), o.dispatchAction(N(i, { type: n[1], seriesIndex: e(a, i) })) }) } ) } function mi(r, t, e, n, i) { var a = r + t e.isSilent(a) || n.eachComponent({ mainType: 'series', subType: 'pie' }, function (o) { for ( var s = o.seriesIndex, l = o.option.selectedMap, u = i.selected, f = 0; f < u.length; f++ ) if (u[f].seriesIndex === s) { var h = o.getData(), c = Jr(h, i.fromActionPayload) e.trigger(a, { type: a, seriesId: o.id, name: z(c) ? h.getName(c[0]) : h.getName(c), selected: W(l) ? l : N({}, l) }) } }) } function nD(r, t, e) { r.on('selectchanged', function (n) { var i = e.getModel() n.isFromClick ? (mi('map', 'selectchanged', t, i, n), mi('pie', 'selectchanged', t, i, n)) : n.fromAction === 'select' ? (mi('map', 'selected', t, i, n), mi('pie', 'selected', t, i, n)) : n.fromAction === 'unselect' && (mi('map', 'unselected', t, i, n), mi('pie', 'unselected', t, i, n)) }) } function Ia(r, t, e) { for (var n; r && !(t(r) && ((n = r), e)); ) r = r.__hostTarget || r.parent return n } var iD = Math.round(Math.random() * 9), aD = typeof Object.defineProperty == 'function', oD = (function () { function r() { this._id = '__ec_inner_' + iD++ } return ( (r.prototype.get = function (t) { return this._guard(t)[this._id] }), (r.prototype.set = function (t, e) { var n = this._guard(t) return ( aD ? Object.defineProperty(n, this._id, { value: e, enumerable: !1, configurable: !0 }) : (n[this._id] = e), this ) }), (r.prototype.delete = function (t) { return this.has(t) ? (delete this._guard(t)[this._id], !0) : !1 }), (r.prototype.has = function (t) { return !!this._guard(t)[this._id] }), (r.prototype._guard = function (t) { if (t !== Object(t)) throw TypeError('Value of WeakMap is not a non-null object.') return t }), r ) })(), sD = oD, lD = st.extend({ type: 'triangle', shape: { cx: 0, cy: 0, width: 0, height: 0 }, buildPath: function (r, t) { var e = t.cx, n = t.cy, i = t.width / 2, a = t.height / 2 r.moveTo(e, n - a), r.lineTo(e + i, n + a), r.lineTo(e - i, n + a), r.closePath() } }), uD = st.extend({ type: 'diamond', shape: { cx: 0, cy: 0, width: 0, height: 0 }, buildPath: function (r, t) { var e = t.cx, n = t.cy, i = t.width / 2, a = t.height / 2 r.moveTo(e, n - a), r.lineTo(e + i, n), r.lineTo(e, n + a), r.lineTo(e - i, n), r.closePath() } }), fD = st.extend({ type: 'pin', shape: { x: 0, y: 0, width: 0, height: 0 }, buildPath: function (r, t) { var e = t.x, n = t.y, i = (t.width / 5) * 3, a = Math.max(i, t.height), o = i / 2, s = (o * o) / (a - o), l = n - a + o + s, u = Math.asin(s / o), f = Math.cos(u) * o, h = Math.sin(u), c = Math.cos(u), v = o * 0.6, d = o * 0.7 r.moveTo(e - f, l + s), r.arc(e, l, o, Math.PI - u, Math.PI * 2 + u), r.bezierCurveTo(e + f - h * v, l + s + c * v, e, n - d, e, n), r.bezierCurveTo(e, n - d, e - f + h * v, l + s + c * v, e - f, l + s), r.closePath() } }), hD = st.extend({ type: 'arrow', shape: { x: 0, y: 0, width: 0, height: 0 }, buildPath: function (r, t) { var e = t.height, n = t.width, i = t.x, a = t.y, o = (n / 3) * 2 r.moveTo(i, a), r.lineTo(i + o, a + e), r.lineTo(i, a + (e / 4) * 3), r.lineTo(i - o, a + e), r.lineTo(i, a), r.closePath() } }), vD = { line: cn, rect: St, roundRect: St, square: St, circle: nf, diamond: uD, pin: fD, arrow: hD, triangle: lD }, cD = { line: function (r, t, e, n, i) { ;(i.x1 = r), (i.y1 = t + n / 2), (i.x2 = r + e), (i.y2 = t + n / 2) }, rect: function (r, t, e, n, i) { ;(i.x = r), (i.y = t), (i.width = e), (i.height = n) }, roundRect: function (r, t, e, n, i) { ;(i.x = r), (i.y = t), (i.width = e), (i.height = n), (i.r = Math.min(e, n) / 4) }, square: function (r, t, e, n, i) { var a = Math.min(e, n) ;(i.x = r), (i.y = t), (i.width = a), (i.height = a) }, circle: function (r, t, e, n, i) { ;(i.cx = r + e / 2), (i.cy = t + n / 2), (i.r = Math.min(e, n) / 2) }, diamond: function (r, t, e, n, i) { ;(i.cx = r + e / 2), (i.cy = t + n / 2), (i.width = e), (i.height = n) }, pin: function (r, t, e, n, i) { ;(i.x = r + e / 2), (i.y = t + n / 2), (i.width = e), (i.height = n) }, arrow: function (r, t, e, n, i) { ;(i.x = r + e / 2), (i.y = t + n / 2), (i.width = e), (i.height = n) }, triangle: function (r, t, e, n, i) { ;(i.cx = r + e / 2), (i.cy = t + n / 2), (i.width = e), (i.height = n) } }, zs = {} A(vD, function (r, t) { zs[t] = new r() }) var dD = st.extend({ type: 'symbol', shape: { symbolType: '', x: 0, y: 0, width: 0, height: 0 }, calculateTextPosition: function (r, t, e) { var n = Oo(r, t, e), i = this.shape return ( i && i.symbolType === 'pin' && t.position === 'inside' && (n.y = e.y + e.height * 0.4), n ) }, buildPath: function (r, t, e) { var n = t.symbolType if (n !== 'none') { var i = zs[n] i || ((n = 'rect'), (i = zs[n])), cD[n](t.x, t.y, t.width, t.height, i.shape), i.buildPath(r, i.shape, e) } } }) function pD(r, t) { if (this.type !== 'image') { var e = this.style this.__isEmptyBrush ? ((e.stroke = r), (e.fill = t || '#fff'), (e.lineWidth = 2)) : this.shape.symbolType === 'line' ? (e.stroke = r) : (e.fill = r), this.markRedraw() } } function Or(r, t, e, n, i, a, o) { var s = r.indexOf('empty') === 0 s && (r = r.substr(5, 1).toLowerCase() + r.substr(6)) var l return ( r.indexOf('image://') === 0 ? (l = Rp(r.slice(8), new vt(t, e, n, i), o ? 'center' : 'cover')) : r.indexOf('path://') === 0 ? (l = ff(r.slice(7), {}, new vt(t, e, n, i), o ? 'center' : 'cover')) : (l = new dD({ shape: { symbolType: r, x: t, y: e, width: n, height: i } })), (l.__isEmptyBrush = s), (l.setColor = pD), a && l.setColor(a), l ) } function gD(r) { return z(r) || (r = [+r, +r]), [r[0] || 0, r[1] || 0] } function Rm(r, t) { if (r != null) return ( z(r) || (r = [r, r]), [yt(r[0], t[0]) || 0, yt(ht(r[1], r[0]), t[1]) || 0] ) } function wn(r) { return isFinite(r) } function mD(r, t, e) { var n = t.x == null ? 0 : t.x, i = t.x2 == null ? 1 : t.x2, a = t.y == null ? 0 : t.y, o = t.y2 == null ? 0 : t.y2 t.global || ((n = n * e.width + e.x), (i = i * e.width + e.x), (a = a * e.height + e.y), (o = o * e.height + e.y)), (n = wn(n) ? n : 0), (i = wn(i) ? i : 1), (a = wn(a) ? a : 0), (o = wn(o) ? o : 0) var s = r.createLinearGradient(n, a, i, o) return s } function yD(r, t, e) { var n = e.width, i = e.height, a = Math.min(n, i), o = t.x == null ? 0.5 : t.x, s = t.y == null ? 0.5 : t.y, l = t.r == null ? 0.5 : t.r t.global || ((o = o * n + e.x), (s = s * i + e.y), (l = l * a)), (o = wn(o) ? o : 0.5), (s = wn(s) ? s : 0.5), (l = l >= 0 && wn(l) ? l : 0.5) var u = r.createRadialGradient(o, s, 0, o, s, l) return u } function qf(r, t, e) { for ( var n = t.type === 'radial' ? yD(r, t, e) : mD(r, t, e), i = t.colorStops, a = 0; a < i.length; a++ ) n.addColorStop(i[a].offset, i[a].color) return n } function _D(r, t) { if (r === t || (!r && !t)) return !1 if (!r || !t || r.length !== t.length) return !0 for (var e = 0; e < r.length; e++) if (r[e] !== t[e]) return !0 return !1 } function Vs(r) { return parseInt(r, 10) } function Gs(r, t, e) { var n = ['width', 'height'][t], i = ['clientWidth', 'clientHeight'][t], a = ['paddingLeft', 'paddingTop'][t], o = ['paddingRight', 'paddingBottom'][t] if (e[n] != null && e[n] !== 'auto') return parseFloat(e[n]) var s = document.defaultView.getComputedStyle(r) return ( ((r[i] || Vs(s[n]) || Vs(r.style[n])) - (Vs(s[a]) || 0) - (Vs(s[o]) || 0)) | 0 ) } function SD(r, t) { return !r || r === 'solid' || !(t > 0) ? null : r === 'dashed' ? [4 * t, 2 * t] : r === 'dotted' ? [t] : dt(r) ? [r] : z(r) ? r : null } function Em(r) { var t = r.style, e = t.lineDash && t.lineWidth > 0 && SD(t.lineDash, t.lineWidth), n = t.lineDashOffset if (e) { var i = t.strokeNoScale && r.getLineScale ? r.getLineScale() : 1 i && i !== 1 && ((e = G(e, function (a) { return a / i })), (n /= i)) } return [e, n] } var xD = new ur(!0) function Hs(r) { var t = r.stroke return !(t == null || t === 'none' || !(r.lineWidth > 0)) } function Om(r) { return typeof r == 'string' && r !== 'none' } function Ws(r) { var t = r.fill return t != null && t !== 'none' } function km(r, t) { if (t.fillOpacity != null && t.fillOpacity !== 1) { var e = r.globalAlpha ;(r.globalAlpha = t.fillOpacity * t.opacity), r.fill(), (r.globalAlpha = e) } else r.fill() } function Bm(r, t) { if (t.strokeOpacity != null && t.strokeOpacity !== 1) { var e = r.globalAlpha ;(r.globalAlpha = t.strokeOpacity * t.opacity), r.stroke(), (r.globalAlpha = e) } else r.stroke() } function Kf(r, t, e) { var n = ld(t.image, t.__image, e) if (Fo(n)) { var i = r.createPattern(n, t.repeat || 'repeat') if (typeof DOMMatrix == 'function' && i && i.setTransform) { var a = new DOMMatrix() a.translateSelf(t.x || 0, t.y || 0), a.rotateSelf(0, 0, (t.rotation || 0) * Lx), a.scaleSelf(t.scaleX || 1, t.scaleY || 1), i.setTransform(a) } return i } } function wD(r, t, e, n) { var i, a = Hs(e), o = Ws(e), s = e.strokePercent, l = s < 1, u = !t.path ;(!t.silent || l) && u && t.createPathProxy() var f = t.path || xD, h = t.__dirty if (!n) { var c = e.fill, v = e.stroke, d = o && !!c.colorStops, p = a && !!v.colorStops, g = o && !!c.image, m = a && !!v.image, y = void 0, _ = void 0, S = void 0, w = void 0, x = void 0 ;(d || p) && (x = t.getBoundingRect()), d && ((y = h ? qf(r, c, x) : t.__canvasFillGradient), (t.__canvasFillGradient = y)), p && ((_ = h ? qf(r, v, x) : t.__canvasStrokeGradient), (t.__canvasStrokeGradient = _)), g && ((S = h || !t.__canvasFillPattern ? Kf(r, c, t) : t.__canvasFillPattern), (t.__canvasFillPattern = S)), m && ((w = h || !t.__canvasStrokePattern ? Kf(r, v, t) : t.__canvasStrokePattern), (t.__canvasStrokePattern = S)), d ? (r.fillStyle = y) : g && (S ? (r.fillStyle = S) : (o = !1)), p ? (r.strokeStyle = _) : m && (w ? (r.strokeStyle = w) : (a = !1)) } var b = t.getGlobalScale() f.setScale(b[0], b[1], t.segmentIgnoreThreshold) var T, C r.setLineDash && e.lineDash && ((i = Em(t)), (T = i[0]), (C = i[1])) var M = !0 ;(u || h & Wn) && (f.setDPR(r.dpr), l ? f.setContext(null) : (f.setContext(r), (M = !1)), f.reset(), t.buildPath(f, t.shape, n), f.toStatic(), t.pathUpdated()), M && f.rebuildPath(r, l ? s : 1), T && (r.setLineDash(T), (r.lineDashOffset = C)), n || (e.strokeFirst ? (a && Bm(r, e), o && km(r, e)) : (o && km(r, e), a && Bm(r, e))), T && r.setLineDash([]) } function bD(r, t, e) { var n = (t.__image = ld(e.image, t.__image, t, t.onload)) if (!(!n || !Fo(n))) { var i = e.x || 0, a = e.y || 0, o = t.getWidth(), s = t.getHeight(), l = n.width / n.height if ( (o == null && s != null ? (o = s * l) : s == null && o != null ? (s = o / l) : o == null && s == null && ((o = n.width), (s = n.height)), e.sWidth && e.sHeight) ) { var u = e.sx || 0, f = e.sy || 0 r.drawImage(n, u, f, e.sWidth, e.sHeight, i, a, o, s) } else if (e.sx && e.sy) { var u = e.sx, f = e.sy, h = o - u, c = s - f r.drawImage(n, u, f, h, c, i, a, o, s) } else r.drawImage(n, i, a, o, s) } } function TD(r, t, e) { var n, i = e.text if ((i != null && (i += ''), i)) { ;(r.font = e.font || Yr), (r.textAlign = e.textAlign), (r.textBaseline = e.textBaseline) var a = void 0, o = void 0 r.setLineDash && e.lineDash && ((n = Em(t)), (a = n[0]), (o = n[1])), a && (r.setLineDash(a), (r.lineDashOffset = o)), e.strokeFirst ? (Hs(e) && r.strokeText(i, e.x, e.y), Ws(e) && r.fillText(i, e.x, e.y)) : (Ws(e) && r.fillText(i, e.x, e.y), Hs(e) && r.strokeText(i, e.x, e.y)), a && r.setLineDash([]) } } var Nm = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'], Fm = [ ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10] ] function zm(r, t, e, n, i) { var a = !1 if (!n && ((e = e || {}), t === e)) return !1 if (n || t.opacity !== e.opacity) { re(r, i), (a = !0) var o = Math.max(Math.min(t.opacity, 1), 0) r.globalAlpha = isNaN(o) ? tn.opacity : o } ;(n || t.blend !== e.blend) && (a || (re(r, i), (a = !0)), (r.globalCompositeOperation = t.blend || tn.blend)) for (var s = 0; s < Nm.length; s++) { var l = Nm[s] ;(n || t[l] !== e[l]) && (a || (re(r, i), (a = !0)), (r[l] = r.dpr * (t[l] || 0))) } return ( (n || t.shadowColor !== e.shadowColor) && (a || (re(r, i), (a = !0)), (r.shadowColor = t.shadowColor || tn.shadowColor)), a ) } function Vm(r, t, e, n, i) { var a = La(t, i.inHover), o = n ? null : (e && La(e, i.inHover)) || {} if (a === o) return !1 var s = zm(r, a, o, n, i) if ( ((n || a.fill !== o.fill) && (s || (re(r, i), (s = !0)), Om(a.fill) && (r.fillStyle = a.fill)), (n || a.stroke !== o.stroke) && (s || (re(r, i), (s = !0)), Om(a.stroke) && (r.strokeStyle = a.stroke)), (n || a.opacity !== o.opacity) && (s || (re(r, i), (s = !0)), (r.globalAlpha = a.opacity == null ? 1 : a.opacity)), t.hasStroke()) ) { var l = a.lineWidth, u = l / (a.strokeNoScale && t.getLineScale ? t.getLineScale() : 1) r.lineWidth !== u && (s || (re(r, i), (s = !0)), (r.lineWidth = u)) } for (var f = 0; f < Fm.length; f++) { var h = Fm[f], c = h[0] ;(n || a[c] !== o[c]) && (s || (re(r, i), (s = !0)), (r[c] = a[c] || h[1])) } return s } function CD(r, t, e, n, i) { return zm(r, La(t, i.inHover), e && La(e, i.inHover), n, i) } function Gm(r, t) { var e = t.transform, n = r.dpr || 1 e ? r.setTransform(n * e[0], n * e[1], n * e[2], n * e[3], n * e[4], n * e[5]) : r.setTransform(n, 0, 0, n, 0, 0) } function AD(r, t, e) { for (var n = !1, i = 0; i < r.length; i++) { var a = r[i] ;(n = n || a.isZeroArea()), Gm(t, a), t.beginPath(), a.buildPath(t, a.shape), t.clip() } e.allClipped = n } function MD(r, t) { return r && t ? r[0] !== t[0] || r[1] !== t[1] || r[2] !== t[2] || r[3] !== t[3] || r[4] !== t[4] || r[5] !== t[5] : !(!r && !t) } var Hm = 1, Wm = 2, Um = 3, Ym = 4 function DD(r) { var t = Ws(r), e = Hs(r) return !( r.lineDash || !(+t ^ +e) || (t && typeof r.fill != 'string') || (e && typeof r.stroke != 'string') || r.strokePercent < 1 || r.strokeOpacity < 1 || r.fillOpacity < 1 ) } function re(r, t) { t.batchFill && r.fill(), t.batchStroke && r.stroke(), (t.batchFill = ''), (t.batchStroke = '') } function La(r, t) { return (t && r.__hoverStyle) || r.style } function Zm(r, t) { bn(r, t, { inHover: !1, viewWidth: 0, viewHeight: 0 }, !0) } function bn(r, t, e, n) { var i = t.transform if (!t.shouldBePainted(e.viewWidth, e.viewHeight, !1, !1)) { ;(t.__dirty &= ~ae), (t.__isRendered = !1) return } var a = t.__clipPaths, o = e.prevElClipPaths, s = !1, l = !1 if ( ((!o || _D(a, o)) && (o && o.length && (re(r, e), r.restore(), (l = s = !0), (e.prevElClipPaths = null), (e.allClipped = !1), (e.prevEl = null)), a && a.length && (re(r, e), r.save(), AD(a, r, e), (s = !0)), (e.prevElClipPaths = a)), e.allClipped) ) { t.__isRendered = !1 return } t.beforeBrush && t.beforeBrush(), t.innerBeforeBrush() var u = e.prevEl u || (l = s = !0) var f = t instanceof st && t.autoBatch && DD(t.style) s || MD(i, u.transform) ? (re(r, e), Gm(r, t)) : f || re(r, e) var h = La(t, e.inHover) t instanceof st ? (e.lastDrawType !== Hm && ((l = !0), (e.lastDrawType = Hm)), Vm(r, t, u, l, e), (!f || (!e.batchFill && !e.batchStroke)) && r.beginPath(), wD(r, t, h, f), f && ((e.batchFill = h.fill || ''), (e.batchStroke = h.stroke || ''))) : t instanceof Wu ? (e.lastDrawType !== Um && ((l = !0), (e.lastDrawType = Um)), Vm(r, t, u, l, e), TD(r, t, h)) : t instanceof un ? (e.lastDrawType !== Wm && ((l = !0), (e.lastDrawType = Wm)), CD(r, t, u, l, e), bD(r, t, h)) : t.getTemporalDisplayables && (e.lastDrawType !== Ym && ((l = !0), (e.lastDrawType = Ym)), ID(r, t, e)), f && n && re(r, e), t.innerAfterBrush(), t.afterBrush && t.afterBrush(), (e.prevEl = t), (t.__dirty = 0), (t.__isRendered = !0) } function ID(r, t, e) { var n = t.getDisplayables(), i = t.getTemporalDisplayables() r.save() var a = { prevElClipPaths: null, prevEl: null, allClipped: !1, viewWidth: e.viewWidth, viewHeight: e.viewHeight, inHover: e.inHover }, o, s for (o = t.getCursor(), s = n.length; o < s; o++) { var l = n[o] l.beforeBrush && l.beforeBrush(), l.innerBeforeBrush(), bn(r, l, a, o === s - 1), l.innerAfterBrush(), l.afterBrush && l.afterBrush(), (a.prevEl = l) } for (var u = 0, f = i.length; u < f; u++) { var l = i[u] l.beforeBrush && l.beforeBrush(), l.innerBeforeBrush(), bn(r, l, a, u === f - 1), l.innerAfterBrush(), l.afterBrush && l.afterBrush(), (a.prevEl = l) } t.clearTemporalDisplayables(), (t.notClear = !0), r.restore() } var Qf = new sD(), $m = new zi(100), Xm = [ 'symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight' ] function Jf(r, t) { if (r === 'none') return null var e = t.getDevicePixelRatio(), n = t.getZr(), i = n.painter.type === 'svg' r.dirty && Qf.delete(r) var a = Qf.get(r) if (a) return a var o = j(r, { symbol: 'rect', symbolSize: 1, symbolKeepAspect: !0, color: 'rgba(0, 0, 0, 0.2)', backgroundColor: null, dashArrayX: 5, dashArrayY: 5, rotation: 0, maxTileWidth: 512, maxTileHeight: 512 }) o.backgroundColor === 'none' && (o.backgroundColor = null) var s = { repeat: 'repeat' } return ( l(s), (s.rotation = o.rotation), (s.scaleX = s.scaleY = i ? 1 : 1 / e), Qf.set(r, s), (r.dirty = !1), s ) function l(u) { for (var f = [e], h = !0, c = 0; c < Xm.length; ++c) { var v = o[Xm[c]] if (v != null && !z(v) && !W(v) && !dt(v) && typeof v != 'boolean') { h = !1 break } f.push(v) } var d if (h) { d = f.join(',') + (i ? '-svg' : '') var p = $m.get(d) p && (i ? (u.svgElement = p) : (u.image = p)) } var g = Km(o.dashArrayX), m = LD(o.dashArrayY), y = qm(o.symbol), _ = PD(g), S = Qm(m), w = !i && kn.createCanvas(), x = i && { tag: 'g', attrs: {}, key: 'dcl', children: [] }, b = C(), T w && ((w.width = b.width * e), (w.height = b.height * e), (T = w.getContext('2d'))), M(), h && $m.put(d, w || x), (u.image = w), (u.svgElement = x), (u.svgWidth = b.width), (u.svgHeight = b.height) function C() { for (var D = 1, I = 0, L = _.length; I < L; ++I) D = Jc(D, _[I]) for (var P = 1, I = 0, L = y.length; I < L; ++I) P = Jc(P, y[I].length) D *= P var R = S * _.length * y.length return { width: Math.max(1, Math.min(D, o.maxTileWidth)), height: Math.max(1, Math.min(R, o.maxTileHeight)) } } function M() { T && (T.clearRect(0, 0, w.width, w.height), o.backgroundColor && ((T.fillStyle = o.backgroundColor), T.fillRect(0, 0, w.width, w.height))) for (var D = 0, I = 0; I < m.length; ++I) D += m[I] if (D <= 0) return for (var L = -S, P = 0, R = 0, O = 0; L < b.height; ) { if (P % 2 == 0) { for ( var U = (R / 2) % y.length, k = 0, F = 0, H = 0; k < b.width * 2; ) { for (var $ = 0, I = 0; I < g[O].length; ++I) $ += g[O][I] if ($ <= 0) break if (F % 2 == 0) { var J = (1 - o.symbolSize) * 0.5, et = k + g[O][F] * J, ft = L + m[P] * J, Ct = g[O][F] * o.symbolSize, mt = m[P] * o.symbolSize, zt = (H / 2) % y[U].length Vt(et, ft, Ct, mt, y[U][zt]) } ;(k += g[O][F]), ++H, ++F, F === g[O].length && (F = 0) } ++O, O === g.length && (O = 0) } ;(L += m[P]), ++R, ++P, P === m.length && (P = 0) } function Vt(It, bt, K, it, Ne) { var Ot = i ? 1 : e, _r = Or( Ne, It * Ot, bt * Ot, K * Ot, it * Ot, o.color, o.symbolKeepAspect ) if (i) { var rr = n.painter.renderOneToVNode(_r) rr && x.children.push(rr) } else Zm(T, _r) } } } } function qm(r) { if (!r || r.length === 0) return [['rect']] if (W(r)) return [[r]] for (var t = !0, e = 0; e < r.length; ++e) if (!W(r[e])) { t = !1 break } if (t) return qm([r]) for (var n = [], e = 0; e < r.length; ++e) W(r[e]) ? n.push([r[e]]) : n.push(r[e]) return n } function Km(r) { if (!r || r.length === 0) return [[0, 0]] if (dt(r)) { var t = Math.ceil(r) return [[t, t]] } for (var e = !0, n = 0; n < r.length; ++n) if (!dt(r[n])) { e = !1 break } if (e) return Km([r]) for (var i = [], n = 0; n < r.length; ++n) if (dt(r[n])) { var t = Math.ceil(r[n]) i.push([t, t]) } else { var t = G(r[n], function (s) { return Math.ceil(s) }) t.length % 2 == 1 ? i.push(t.concat(t)) : i.push(t) } return i } function LD(r) { if (!r || (typeof r == 'object' && r.length === 0)) return [0, 0] if (dt(r)) { var t = Math.ceil(r) return [t, t] } var e = G(r, function (n) { return Math.ceil(n) }) return r.length % 2 ? e.concat(e) : e } function PD(r) { return G(r, function (t) { return Qm(t) }) } function Qm(r) { for (var t = 0, e = 0; e < r.length; ++e) t += r[e] return r.length % 2 == 1 ? t * 2 : t } function RD(r, t) { r.eachRawSeries(function (e) { if (!r.isSeriesFiltered(e)) { var n = e.getData() n.hasItemVisual() && n.each(function (o) { var s = n.getItemVisual(o, 'decal') if (s) { var l = n.ensureUniqueItemVisual(o, 'style') l.decal = Jf(s, t) } }) var i = n.getVisual('decal') if (i) { var a = n.getVisual('style') a.decal = Jf(i, t) } } }) } var ED = new fe(), Pe = ED, Jm = {} function OD(r, t) { Jm[r] = t } function kD(r) { return Jm[r] } var BD = typeof window != 'undefined', ND = 1, FD = 800, zD = 900, VD = 1e3, GD = 2e3, HD = 5e3, jm = 1e3, WD = 1100, jf = 2e3, t0 = 3e3, UD = 4e3, Us = 4500, YD = 4600, ZD = 5e3, $D = 6e3, e0 = 7e3, XD = { PROCESSOR: { FILTER: VD, SERIES_FILTER: FD, STATISTIC: HD }, VISUAL: { LAYOUT: jm, PROGRESSIVE_LAYOUT: WD, GLOBAL: jf, CHART: t0, POST_CHART_LAYOUT: YD, COMPONENT: UD, BRUSH: ZD, CHART_ITEM: Us, ARIA: $D, DECAL: e0 } }, Yt = '__flagInMainProcess', ne = '__pendingUpdate', th = '__needsUpdateStatus', r0 = /^[a-zA-Z0-9_]+$/, eh = '__connectUpdateStatus', n0 = 0, qD = 1, KD = 2 function i0(r) { return function () { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e] if (this.isDisposed()) { se(this.id) return } return o0(this, r, t) } } function a0(r) { return function () { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e] return o0(this, r, t) } } function o0(r, t, e) { return (e[0] = e[0] && e[0].toLowerCase()), fe.prototype[t].apply(r, e) } var s0 = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return t })(fe), l0 = s0.prototype l0.on = a0('on') l0.off = a0('off') var yi, rh, Ys, kr, nh, ih, ah, Pa, Ra, u0, f0, oh, h0, Zs, v0, c0, we, d0, p0 = (function (r) { B(t, r) function t(e, n, i) { var a = r.call(this, new QM()) || this ;(a._chartsViews = []), (a._chartsMap = {}), (a._componentsViews = []), (a._componentsMap = {}), (a._pendingActions = []), (i = i || {}), W(n) && (n = g0[n]), (a._dom = e) var o = 'canvas', s = !1, l = (a._zr = Uc(e, { renderer: i.renderer || o, devicePixelRatio: i.devicePixelRatio, width: i.width, height: i.height, ssr: i.ssr, useDirtyRect: i.useDirtyRect == null ? s : i.useDirtyRect })) ;(a._ssr = i.ssr), (a._throttledZrFlush = $f(X(l.flush, l), 17)), (n = tt(n)), n && Eg(n, !0), (a._theme = n), (a._locale = KC(i.locale || Xp)), (a._coordSysMgr = new If()) var u = (a._api = v0(a)) function f(h, c) { return h.__prio - c.__prio } return ( uo(Xs, f), uo(lh, f), (a._scheduler = new Am(a, u, lh, Xs)), (a._messageCenter = new s0()), a._initEvents(), (a.resize = X(a.resize, a)), l.animation.on('frame', a._onframe, a), u0(l, a), f0(l, a), oo(a), a ) } return ( (t.prototype._onframe = function () { if (!this._disposed) { d0(this) var e = this._scheduler if (this[ne]) { var n = this[ne].silent this[Yt] = !0 try { yi(this), kr.update.call(this, null, this[ne].updateParams) } catch (l) { throw ((this[Yt] = !1), (this[ne] = null), l) } this._zr.flush(), (this[Yt] = !1), (this[ne] = null), Pa.call(this, n), Ra.call(this, n) } else if (e.unfinished) { var i = ND, a = this._model, o = this._api e.unfinished = !1 do { var s = +new Date() e.performSeriesTasks(a), e.performDataProcessorTasks(a), ih(this, a), e.performVisualTasks(a), Zs(this, this._model, o, 'remain', {}), (i -= +new Date() - s) } while (i > 0 && e.unfinished) e.unfinished || this._zr.flush() } } }), (t.prototype.getDom = function () { return this._dom }), (t.prototype.getId = function () { return this.id }), (t.prototype.getZr = function () { return this._zr }), (t.prototype.isSSR = function () { return this._ssr }), (t.prototype.setOption = function (e, n, i) { if (!this[Yt]) { if (this._disposed) { se(this.id) return } var a, o, s if ( (Y(n) && ((i = n.lazyUpdate), (a = n.silent), (o = n.replaceMerge), (s = n.transition), (n = n.notMerge)), (this[Yt] = !0), !this._model || n) ) { var l = new EA(this._api), u = this._theme, f = (this._model = new Cg()) ;(f.scheduler = this._scheduler), (f.ssr = this._ssr), f.init(null, null, null, u, this._locale, l) } this._model.setOption(e, { replaceMerge: o }, uh) var h = { seriesTransition: s, optionChanged: !0 } if (i) (this[ne] = { silent: a, updateParams: h }), (this[Yt] = !1), this.getZr().wakeUp() else { try { yi(this), kr.update.call(this, null, h) } catch (c) { throw ((this[ne] = null), (this[Yt] = !1), c) } this._ssr || this._zr.flush(), (this[ne] = null), (this[Yt] = !1), Pa.call(this, a), Ra.call(this, a) } } }), (t.prototype.setTheme = function () {}), (t.prototype.getModel = function () { return this._model }), (t.prototype.getOption = function () { return this._model && this._model.getOption() }), (t.prototype.getWidth = function () { return this._zr.getWidth() }), (t.prototype.getHeight = function () { return this._zr.getHeight() }), (t.prototype.getDevicePixelRatio = function () { return this._zr.painter.dpr || (BD && window.devicePixelRatio) || 1 }), (t.prototype.getRenderedCanvas = function (e) { return this.renderToCanvas(e) }), (t.prototype.renderToCanvas = function (e) { e = e || {} var n = this._zr.painter return n.getRenderedCanvas({ backgroundColor: e.backgroundColor || this._model.get('backgroundColor'), pixelRatio: e.pixelRatio || this.getDevicePixelRatio() }) }), (t.prototype.renderToSVGString = function (e) { e = e || {} var n = this._zr.painter return n.renderToString({ useViewBox: e.useViewBox }) }), (t.prototype.getSvgDataURL = function () { if (!!at.svgSupported) { var e = this._zr, n = e.storage.getDisplayList() return ( A(n, function (i) { i.stopAnimation(null, !0) }), e.painter.toDataURL() ) } }), (t.prototype.getDataURL = function (e) { if (this._disposed) { se(this.id) return } e = e || {} var n = e.excludeComponents, i = this._model, a = [], o = this A(n, function (l) { i.eachComponent({ mainType: l }, function (u) { var f = o._componentsMap[u.__viewId] f.group.ignore || (a.push(f), (f.group.ignore = !0)) }) }) var s = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.renderToCanvas(e).toDataURL( 'image/' + ((e && e.type) || 'png') ) return ( A(a, function (l) { l.group.ignore = !1 }), s ) }), (t.prototype.getConnectedDataURL = function (e) { if (this._disposed) { se(this.id) return } var n = e.type === 'svg', i = this.group, a = Math.min, o = Math.max, s = 1 / 0 if (m0[i]) { var l = s, u = s, f = -s, h = -s, c = [], v = (e && e.pixelRatio) || this.getDevicePixelRatio() A(Oa, function (_, S) { if (_.group === i) { var w = n ? _.getZr().painter.getSvgDom().innerHTML : _.renderToCanvas(tt(e)), x = _.getDom().getBoundingClientRect() ;(l = a(x.left, l)), (u = a(x.top, u)), (f = o(x.right, f)), (h = o(x.bottom, h)), c.push({ dom: w, left: x.left, top: x.top }) } }), (l *= v), (u *= v), (f *= v), (h *= v) var d = f - l, p = h - u, g = kn.createCanvas(), m = Uc(g, { renderer: n ? 'svg' : 'canvas' }) if ((m.resize({ width: d, height: p }), n)) { var y = '' return ( A(c, function (_) { var S = _.left - l, w = _.top - u y += '' + _.dom + '' }), (m.painter.getSvgRoot().innerHTML = y), e.connectedBackgroundColor && m.painter.setBackgroundColor(e.connectedBackgroundColor), m.refreshImmediately(), m.painter.toDataURL() ) } else return ( e.connectedBackgroundColor && m.add( new St({ shape: { x: 0, y: 0, width: d, height: p }, style: { fill: e.connectedBackgroundColor } }) ), A(c, function (_) { var S = new un({ style: { x: _.left * v - l, y: _.top * v - u, image: _.dom } }) m.add(S) }), m.refreshImmediately(), g.toDataURL('image/' + ((e && e.type) || 'png')) ) } else return this.getDataURL(e) }), (t.prototype.convertToPixel = function (e, n) { return nh(this, 'convertToPixel', e, n) }), (t.prototype.convertFromPixel = function (e, n) { return nh(this, 'convertFromPixel', e, n) }), (t.prototype.containPixel = function (e, n) { if (this._disposed) { se(this.id) return } var i = this._model, a, o = Ji(i, e) return ( A( o, function (s, l) { l.indexOf('Models') >= 0 && A( s, function (u) { var f = u.coordinateSystem if (f && f.containPoint) a = a || !!f.containPoint(n) else if (l === 'seriesModels') { var h = this._chartsMap[u.__viewId] h && h.containPoint && (a = a || h.containPoint(n, u)) } }, this ) }, this ), !!a ) }), (t.prototype.getVisual = function (e, n) { var i = this._model, a = Ji(i, e, { defaultMainType: 'series' }), o = a.seriesModel, s = o.getData(), l = a.hasOwnProperty('dataIndexInside') ? a.dataIndexInside : a.hasOwnProperty('dataIndex') ? s.indexOfRawIndex(a.dataIndex) : null return l != null ? tD(s, l, n) : eD(s, n) }), (t.prototype.getViewOfComponentModel = function (e) { return this._componentsMap[e.__viewId] }), (t.prototype.getViewOfSeriesModel = function (e) { return this._chartsMap[e.__viewId] }), (t.prototype._initEvents = function () { var e = this A(QD, function (n) { var i = function (a) { var o = e.getModel(), s = a.target, l, u = n === 'globalout' if ( (u ? (l = {}) : s && Ia( s, function (d) { var p = ct(d) if (p && p.dataIndex != null) { var g = p.dataModel || o.getSeriesByIndex(p.seriesIndex) return ( (l = (g && g.getDataParams(p.dataIndex, p.dataType)) || {}), !0 ) } else if (p.eventData) return (l = N({}, p.eventData)), !0 }, !0 ), l) ) { var f = l.componentType, h = l.componentIndex ;(f === 'markLine' || f === 'markPoint' || f === 'markArea') && ((f = 'series'), (h = l.seriesIndex)) var c = f && h != null && o.getComponent(f, h), v = c && e[c.mainType === 'series' ? '_chartsMap' : '_componentsMap'][ c.__viewId ] ;(l.event = a), (l.type = n), (e._$eventProcessor.eventInfo = { targetEl: s, packedEvent: l, model: c, view: v }), e.trigger(n, l) } } ;(i.zrEventfulCallAtLast = !0), e._zr.on(n, i, e) }), A(Ea, function (n, i) { e._messageCenter.on( i, function (a) { this.trigger(i, a) }, e ) }), A(['selectchanged'], function (n) { e._messageCenter.on( n, function (i) { this.trigger(n, i) }, e ) }), nD(this._messageCenter, this, this._api) }), (t.prototype.isDisposed = function () { return this._disposed }), (t.prototype.clear = function () { if (this._disposed) { se(this.id) return } this.setOption({ series: [] }, !0) }), (t.prototype.dispose = function () { if (this._disposed) { se(this.id) return } this._disposed = !0 var e = this.getDom() e && id(this.getDom(), hh, '') var n = this, i = n._api, a = n._model A(n._componentsViews, function (o) { o.dispose(a, i) }), A(n._chartsViews, function (o) { o.dispose(a, i) }), n._zr.dispose(), (n._dom = n._model = n._chartsMap = n._componentsMap = n._chartsViews = n._componentsViews = n._scheduler = n._api = n._zr = n._throttledZrFlush = n._theme = n._coordSysMgr = n._messageCenter = null), delete Oa[n.id] }), (t.prototype.resize = function (e) { if (!this[Yt]) { if (this._disposed) { se(this.id) return } this._zr.resize(e) var n = this._model if ((this._loadingFX && this._loadingFX.resize(), !!n)) { var i = n.resetOption('media'), a = e && e.silent this[ne] && (a == null && (a = this[ne].silent), (i = !0), (this[ne] = null)), (this[Yt] = !0) try { i && yi(this), kr.update.call(this, { type: 'resize', animation: N({ duration: 0 }, e && e.animation) }) } catch (o) { throw ((this[Yt] = !1), o) } ;(this[Yt] = !1), Pa.call(this, a), Ra.call(this, a) } } }), (t.prototype.showLoading = function (e, n) { if (this._disposed) { se(this.id) return } if ( (Y(e) && ((n = e), (e = '')), (e = e || 'default'), this.hideLoading(), !!fh[e]) ) { var i = fh[e](this._api, n), a = this._zr ;(this._loadingFX = i), a.add(i) } }), (t.prototype.hideLoading = function () { if (this._disposed) { se(this.id) return } this._loadingFX && this._zr.remove(this._loadingFX), (this._loadingFX = null) }), (t.prototype.makeActionFromEvent = function (e) { var n = N({}, e) return (n.type = Ea[e.type]), n }), (t.prototype.dispatchAction = function (e, n) { if (this._disposed) { se(this.id) return } if ((Y(n) || (n = { silent: !!n }), !!$s[e.type] && !!this._model)) { if (this[Yt]) { this._pendingActions.push(e) return } var i = n.silent ah.call(this, e, i) var a = n.flush a ? this._zr.flush() : a !== !1 && at.browser.weChat && this._throttledZrFlush(), Pa.call(this, i), Ra.call(this, i) } }), (t.prototype.updateLabelLayout = function () { Pe.trigger('series:layoutlabels', this._model, this._api, { updatedSeries: [] }) }), (t.prototype.appendData = function (e) { if (this._disposed) { se(this.id) return } var n = e.seriesIndex, i = this.getModel(), a = i.getSeriesByIndex(n) a.appendData(e), (this._scheduler.unfinished = !0), this.getZr().wakeUp() }), (t.internalField = (function () { ;(yi = function (h) { var c = h._scheduler c.restorePipelines(h._model), c.prepareStageTasks(), rh(h, !0), rh(h, !1), c.plan() }), (rh = function (h, c) { for ( var v = h._model, d = h._scheduler, p = c ? h._componentsViews : h._chartsViews, g = c ? h._componentsMap : h._chartsMap, m = h._zr, y = h._api, _ = 0; _ < p.length; _++ ) p[_].__alive = !1 c ? v.eachComponent(function (x, b) { x !== 'series' && S(b) }) : v.eachSeries(S) function S(x) { var b = x.__requireNewView x.__requireNewView = !1 var T = '_ec_' + x.id + '_' + x.type, C = !b && g[T] if (!C) { var M = Ue(x.type), D = c ? xe.getClass(M.main, M.sub) : Qe.getClass(M.sub) ;(C = new D()), C.init(v, y), (g[T] = C), p.push(C), m.add(C.group) } ;(x.__viewId = C.__id = T), (C.__alive = !0), (C.__model = x), (C.group.__ecComponentInfo = { mainType: x.mainType, index: x.componentIndex }), !c && d.prepareView(C, x, v, y) } for (var _ = 0; _ < p.length; ) { var w = p[_] w.__alive ? _++ : (!c && w.renderTask.dispose(), m.remove(w.group), w.dispose(v, y), p.splice(_, 1), g[w.__id] === w && delete g[w.__id], (w.__id = w.group.__ecComponentInfo = null)) } }), (Ys = function (h, c, v, d, p) { var g = h._model if ((g.setUpdatePayload(v), !d)) { A([].concat(h._componentsViews).concat(h._chartsViews), w) return } var m = {} ;(m[d + 'Id'] = v[d + 'Id']), (m[d + 'Index'] = v[d + 'Index']), (m[d + 'Name'] = v[d + 'Name']) var y = { mainType: d, query: m } p && (y.subType = p) var _ = v.excludeSeriesId, S _ != null && ((S = q()), A(Mt(_), function (x) { var b = We(x, null) b != null && S.set(b, !0) })), g && g.eachComponent( y, function (x) { var b = S && S.get(x.id) !== null if (!b) if (np(v)) if (x instanceof Er) v.type === hn && !v.notBlur && !x.get(['emphasis', 'disabled']) && LT(x, v, h._api) else { var T = Qu( x.mainType, x.componentIndex, v.name, h._api ), C = T.focusSelf, M = T.dispatchers v.type === hn && C && !v.notBlur && Ku(x.mainType, x.componentIndex, h._api), M && A(M, function (D) { v.type === hn ? ei(D) : ri(D) }) } else ju(v) && x instanceof Er && (ET(x, v, h._api), tp(x), we(h)) }, h ), g && g.eachComponent( y, function (x) { var b = S && S.get(x.id) !== null b || w( h[d === 'series' ? '_chartsMap' : '_componentsMap'][ x.__viewId ] ) }, h ) function w(x) { x && x.__alive && x[c] && x[c](x.__model, g, h._api, v) } }), (kr = { prepareAndUpdate: function (h) { yi(this), kr.update.call(this, h, { optionChanged: h.newOption != null }) }, update: function (h, c) { var v = this._model, d = this._api, p = this._zr, g = this._coordSysMgr, m = this._scheduler if (!!v) { v.setUpdatePayload(h), m.restoreData(v, h), m.performSeriesTasks(v), g.create(v, d), m.performDataProcessorTasks(v, h), ih(this, v), g.update(v, d), e(v), m.performVisualTasks(v, h), oh(this, v, d, h, c) var y = v.get('backgroundColor') || 'transparent', _ = v.get('darkMode') p.setBackgroundColor(y), _ != null && _ !== 'auto' && p.setDarkMode(_), Pe.trigger('afterupdate', v, d) } }, updateTransform: function (h) { var c = this, v = this._model, d = this._api if (!!v) { v.setUpdatePayload(h) var p = [] v.eachComponent(function (m, y) { if (m !== 'series') { var _ = c.getViewOfComponentModel(y) if (_ && _.__alive) if (_.updateTransform) { var S = _.updateTransform(y, v, d, h) S && S.update && p.push(_) } else p.push(_) } }) var g = q() v.eachSeries(function (m) { var y = c._chartsMap[m.__viewId] if (y.updateTransform) { var _ = y.updateTransform(m, v, d, h) _ && _.update && g.set(m.uid, 1) } else g.set(m.uid, 1) }), e(v), this._scheduler.performVisualTasks(v, h, { setDirty: !0, dirtyMap: g }), Zs(this, v, d, h, {}, g), Pe.trigger('afterupdate', v, d) } }, updateView: function (h) { var c = this._model !c || (c.setUpdatePayload(h), Qe.markUpdateMethod(h, 'updateView'), e(c), this._scheduler.performVisualTasks(c, h, { setDirty: !0 }), oh(this, c, this._api, h, {}), Pe.trigger('afterupdate', c, this._api)) }, updateVisual: function (h) { var c = this, v = this._model !v || (v.setUpdatePayload(h), v.eachSeries(function (d) { d.getData().clearAllVisual() }), Qe.markUpdateMethod(h, 'updateVisual'), e(v), this._scheduler.performVisualTasks(v, h, { visualType: 'visual', setDirty: !0 }), v.eachComponent(function (d, p) { if (d !== 'series') { var g = c.getViewOfComponentModel(p) g && g.__alive && g.updateVisual(p, v, c._api, h) } }), v.eachSeries(function (d) { var p = c._chartsMap[d.__viewId] p.updateVisual(d, v, c._api, h) }), Pe.trigger('afterupdate', v, this._api)) }, updateLayout: function (h) { kr.update.call(this, h) } }), (nh = function (h, c, v, d) { if (h._disposed) { se(h.id) return } for ( var p = h._model, g = h._coordSysMgr.getCoordinateSystems(), m, y = Ji(p, v), _ = 0; _ < g.length; _++ ) { var S = g[_] if (S[c] && (m = S[c](p, y, d)) != null) return m } }), (ih = function (h, c) { var v = h._chartsMap, d = h._scheduler c.eachSeries(function (p) { d.updateStreamModes(p, v[p.__viewId]) }) }), (ah = function (h, c) { var v = this, d = this.getModel(), p = h.type, g = h.escapeConnect, m = $s[p], y = m.actionInfo, _ = (y.update || 'update').split(':'), S = _.pop(), w = _[0] != null && Ue(_[0]) this[Yt] = !0 var x = [h], b = !1 h.batch && ((b = !0), (x = G(h.batch, function (P) { return (P = j(N({}, P), h)), (P.batch = null), P }))) var T = [], C, M = ju(h), D = np(h) if ( (D && jd(this._api), A(x, function (P) { if ( ((C = m.action(P, v._model, v._api)), (C = C || N({}, P)), (C.type = y.event || C.type), T.push(C), D) ) { var R = Mu(h), O = R.queryOptionMap, U = R.mainTypeSpecified, k = U ? O.keys()[0] : 'series' Ys(v, S, P, k), we(v) } else M ? (Ys(v, S, P, 'series'), we(v)) : w && Ys(v, S, P, w.main, w.sub) }), S !== 'none' && !D && !M && !w) ) try { this[ne] ? (yi(this), kr.update.call(this, h), (this[ne] = null)) : kr[S].call(this, h) } catch (P) { throw ((this[Yt] = !1), P) } if ( (b ? (C = { type: y.event || p, escapeConnect: g, batch: T }) : (C = T[0]), (this[Yt] = !1), !c) ) { var I = this._messageCenter if ((I.trigger(C.type, C), M)) { var L = { type: 'selectchanged', escapeConnect: g, selected: OT(d), isFromClick: h.isFromClick || !1, fromAction: h.type, fromActionPayload: h } I.trigger(L.type, L) } } }), (Pa = function (h) { for (var c = this._pendingActions; c.length; ) { var v = c.shift() ah.call(this, v, h) } }), (Ra = function (h) { !h && this.trigger('updated') }), (u0 = function (h, c) { h.on('rendered', function (v) { c.trigger('rendered', v), h.animation.isFinished() && !c[ne] && !c._scheduler.unfinished && !c._pendingActions.length && c.trigger('finished') }) }), (f0 = function (h, c) { h.on('mouseover', function (v) { var d = v.target, p = Ia(d, Ju) p && (PT(p, v, c._api), we(c)) }) .on('mouseout', function (v) { var d = v.target, p = Ia(d, Ju) p && (RT(p, v, c._api), we(c)) }) .on('click', function (v) { var d = v.target, p = Ia( d, function (y) { return ct(y).dataIndex != null }, !0 ) if (p) { var g = p.selected ? 'unselect' : 'select', m = ct(p) c._api.dispatchAction({ type: g, dataType: m.dataType, dataIndexInside: m.dataIndex, seriesIndex: m.seriesIndex, isFromClick: !0 }) } }) }) function e(h) { h.clearColorPalette(), h.eachSeries(function (c) { c.clearColorPalette() }) } function n(h) { var c = [], v = [], d = !1 if ( (h.eachComponent(function (y, _) { var S = _.get('zlevel') || 0, w = _.get('z') || 0, x = _.getZLevelKey() ;(d = d || !!x), (y === 'series' ? v : c).push({ zlevel: S, z: w, idx: _.componentIndex, type: y, key: x }) }), d) ) { var p = c.concat(v), g, m uo(p, function (y, _) { return y.zlevel === _.zlevel ? y.z - _.z : y.zlevel - _.zlevel }), A(p, function (y) { var _ = h.getComponent(y.type, y.idx), S = y.zlevel, w = y.key g != null && (S = Math.max(g, S)), w ? (S === g && w !== m && S++, (m = w)) : m && (S === g && S++, (m = '')), (g = S), _.setZLevel(S) }) } } ;(oh = function (h, c, v, d, p) { n(c), h0(h, c, v, d, p), A(h._chartsViews, function (g) { g.__alive = !1 }), Zs(h, c, v, d, p), A(h._chartsViews, function (g) { g.__alive || g.remove(c, v) }) }), (h0 = function (h, c, v, d, p, g) { A(g || h._componentsViews, function (m) { var y = m.__model u(y, m), m.render(y, c, v, d), s(y, m), f(y, m) }) }), (Zs = function (h, c, v, d, p, g) { var m = h._scheduler ;(p = N(p || {}, { updatedSeries: c.getSeries() })), Pe.trigger('series:beforeupdate', c, v, p) var y = !1 c.eachSeries(function (_) { var S = h._chartsMap[_.__viewId] S.__alive = !0 var w = S.renderTask m.updatePayload(w, d), u(_, S), g && g.get(_.uid) && w.dirty(), w.perform(m.getPerformArgs(w)) && (y = !0), (S.group.silent = !!_.get('silent')), o(_, S), tp(_) }), (m.unfinished = y || m.unfinished), Pe.trigger('series:layoutlabels', c, v, p), Pe.trigger('series:transition', c, v, p), c.eachSeries(function (_) { var S = h._chartsMap[_.__viewId] s(_, S), f(_, S) }), a(h, c), Pe.trigger('series:afterupdate', c, v, p) }), (we = function (h) { ;(h[th] = !0), h.getZr().wakeUp() }), (d0 = function (h) { !h[th] || (h.getZr().storage.traverse(function (c) { oi(c) || i(c) }), (h[th] = !1)) }) function i(h) { for (var c = [], v = h.currentStates, d = 0; d < v.length; d++) { var p = v[d] p === 'emphasis' || p === 'blur' || p === 'select' || c.push(p) } h.selected && h.states.select && c.push('select'), h.hoverState === Uo && h.states.emphasis ? c.push('emphasis') : h.hoverState === Wo && h.states.blur && c.push('blur'), h.useStates(c) } function a(h, c) { var v = h._zr, d = v.storage, p = 0 d.traverse(function (g) { g.isGroup || p++ }), p > c.get('hoverLayerThreshold') && !at.node && !at.worker && c.eachSeries(function (g) { if (!g.preventUsingHoverLayer) { var m = h._chartsMap[g.__viewId] m.__alive && m.eachRendered(function (y) { y.states.emphasis && (y.states.emphasis.hoverLayer = !0) }) } }) } function o(h, c) { var v = h.get('blendMode') || null c.eachRendered(function (d) { d.isGroup || (d.style.blend = v) }) } function s(h, c) { if (!h.preventAutoZ) { var v = h.get('z') || 0, d = h.get('zlevel') || 0 c.eachRendered(function (p) { return l(p, v, d, -1 / 0), !0 }) } } function l(h, c, v, d) { var p = h.getTextContent(), g = h.getTextGuideLine(), m = h.isGroup if (m) for (var y = h.childrenRef(), _ = 0; _ < y.length; _++) d = Math.max(l(y[_], c, v, d), d) else (h.z = c), (h.zlevel = v), (d = Math.max(h.z2, d)) if ( (p && ((p.z = c), (p.zlevel = v), isFinite(d) && (p.z2 = d + 2)), g) ) { var S = h.textGuideLineConfig ;(g.z = c), (g.zlevel = v), isFinite(d) && (g.z2 = d + (S && S.showAbove ? 1 : -1)) } return d } function u(h, c) { c.eachRendered(function (v) { if (!oi(v)) { var d = v.getTextContent(), p = v.getTextGuideLine() v.stateTransition && (v.stateTransition = null), d && d.stateTransition && (d.stateTransition = null), p && p.stateTransition && (p.stateTransition = null), v.hasState() ? ((v.prevStates = v.currentStates), v.clearStates()) : v.prevStates && (v.prevStates = null) } }) } function f(h, c) { var v = h.getModel('stateAnimation'), d = h.isAnimationEnabled(), p = v.get('duration'), g = p > 0 ? { duration: p, delay: v.get('delay'), easing: v.get('easing') } : null c.eachRendered(function (m) { if (m.states && m.states.emphasis) { if (oi(m)) return if ((m instanceof st && zT(m), m.__dirty)) { var y = m.prevStates y && m.useStates(y) } if (d) { m.stateTransition = g var _ = m.getTextContent(), S = m.getTextGuideLine() _ && (_.stateTransition = g), S && (S.stateTransition = g) } m.__dirty && i(m) } }) } ;(v0 = function (h) { return new ((function (c) { B(v, c) function v() { return (c !== null && c.apply(this, arguments)) || this } return ( (v.prototype.getCoordinateSystems = function () { return h._coordSysMgr.getCoordinateSystems() }), (v.prototype.getComponentByElement = function (d) { for (; d; ) { var p = d.__ecComponentInfo if (p != null) return h._model.getComponent(p.mainType, p.index) d = d.parent } }), (v.prototype.enterEmphasis = function (d, p) { ei(d, p), we(h) }), (v.prototype.leaveEmphasis = function (d, p) { ri(d, p), we(h) }), (v.prototype.enterBlur = function (d) { IT(d), we(h) }), (v.prototype.leaveBlur = function (d) { qd(d), we(h) }), (v.prototype.enterSelect = function (d) { Kd(d), we(h) }), (v.prototype.leaveSelect = function (d) { Qd(d), we(h) }), (v.prototype.getModel = function () { return h.getModel() }), (v.prototype.getViewOfComponentModel = function (d) { return h.getViewOfComponentModel(d) }), (v.prototype.getViewOfSeriesModel = function (d) { return h.getViewOfSeriesModel(d) }), v ) })(Ag))(h) }), (c0 = function (h) { function c(v, d) { for (var p = 0; p < v.length; p++) { var g = v[p] g[eh] = d } } A(Ea, function (v, d) { h._messageCenter.on(d, function (p) { if (m0[h.group] && h[eh] !== n0) { if (p && p.escapeConnect) return var g = h.makeActionFromEvent(p), m = [] A(Oa, function (y) { y !== h && y.group === h.group && m.push(y) }), c(m, n0), A(m, function (y) { y[eh] !== qD && y.dispatchAction(g) }), c(m, KD) } }) }) }) })()), t ) })(fe), sh = p0.prototype sh.on = i0('on') sh.off = i0('off') sh.one = function (r, t, e) { var n = this function i() { for (var a = [], o = 0; o < arguments.length; o++) a[o] = arguments[o] t && t.apply && t.apply(this, a), n.off(r, i) } this.on.call(this, r, i, e) } var QD = [ 'click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu' ] function se(r) {} var $s = {}, Ea = {}, lh = [], uh = [], Xs = [], g0 = {}, fh = {}, Oa = {}, m0 = {}, JD = +new Date() - 0, hh = '_echarts_instance_' function y0(r, t, e) { var n = !(e && e.ssr) if (n) { var i = jD(r) if (i) return i } var a = new p0(r, t, e) return ( (a.id = 'ec_' + JD++), (Oa[a.id] = a), n && id(r, hh, a.id), c0(a), Pe.trigger('afterinit', a), a ) } function jD(r) { return Oa[gb(r, hh)] } function _0(r, t) { g0[r] = t } function S0(r) { ot(uh, r) < 0 && uh.push(r) } function x0(r, t) { ch(lh, r, t, GD) } function t2(r) { vh('afterinit', r) } function e2(r) { vh('afterupdate', r) } function vh(r, t) { Pe.on(r, t) } function Je(r, t, e) { Q(t) && ((e = t), (t = '')) var n = Y(r) ? r.type : [r, (r = { event: t })][0] ;(r.event = (r.event || n).toLowerCase()), (t = r.event), !Ea[t] && (Ve(r0.test(n) && r0.test(t)), $s[n] || ($s[n] = { action: e, actionInfo: r }), (Ea[t] = n)) } function r2(r, t) { If.register(r, t) } function n2(r, t) { ch(Xs, r, t, jm, 'layout') } function Tn(r, t) { ch(Xs, r, t, t0, 'visual') } var w0 = [] function ch(r, t, e, n, i) { if (((Q(t) || Y(t)) && ((e = t), (t = n)), !(ot(w0, e) >= 0))) { w0.push(e) var a = Am.wrapStageHandler(e, i) ;(a.__prio = t), (a.__raw = e), r.push(a) } } function b0(r, t) { fh[r] = t } function i2(r, t, e) { var n = kD('registerMap') n && n(r, t, e) } var a2 = lM Tn(jf, kM) Tn(Us, BM) Tn(Us, NM) Tn(jf, JM) Tn(Us, jM) Tn(e0, RD) S0(Eg) x0(zD, GA) b0('default', FM) Je({ type: hn, event: hn, update: hn }, $t) Je({ type: Zo, event: Zo, update: Zo }, $t) Je({ type: na, event: na, update: na }, $t) Je({ type: $o, event: $o, update: $o }, $t) Je({ type: ia, event: ia, update: ia }, $t) _0('light', qM) _0('dark', KM) function ka(r) { return r == null ? 0 : r.length || 1 } function T0(r) { return r } var o2 = (function () { function r(t, e, n, i, a, o) { ;(this._old = t), (this._new = e), (this._oldKeyGetter = n || T0), (this._newKeyGetter = i || T0), (this.context = a), (this._diffModeMultiple = o === 'multiple') } return ( (r.prototype.add = function (t) { return (this._add = t), this }), (r.prototype.update = function (t) { return (this._update = t), this }), (r.prototype.updateManyToOne = function (t) { return (this._updateManyToOne = t), this }), (r.prototype.updateOneToMany = function (t) { return (this._updateOneToMany = t), this }), (r.prototype.updateManyToMany = function (t) { return (this._updateManyToMany = t), this }), (r.prototype.remove = function (t) { return (this._remove = t), this }), (r.prototype.execute = function () { this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']() }), (r.prototype._executeOneToOne = function () { var t = this._old, e = this._new, n = {}, i = new Array(t.length), a = new Array(e.length) this._initIndexMap(t, null, i, '_oldKeyGetter'), this._initIndexMap(e, n, a, '_newKeyGetter') for (var o = 0; o < t.length; o++) { var s = i[o], l = n[s], u = ka(l) if (u > 1) { var f = l.shift() l.length === 1 && (n[s] = l[0]), this._update && this._update(f, o) } else u === 1 ? ((n[s] = null), this._update && this._update(l, o)) : this._remove && this._remove(o) } this._performRestAdd(a, n) }), (r.prototype._executeMultiple = function () { var t = this._old, e = this._new, n = {}, i = {}, a = [], o = [] this._initIndexMap(t, n, a, '_oldKeyGetter'), this._initIndexMap(e, i, o, '_newKeyGetter') for (var s = 0; s < a.length; s++) { var l = a[s], u = n[l], f = i[l], h = ka(u), c = ka(f) if (h > 1 && c === 1) this._updateManyToOne && this._updateManyToOne(f, u), (i[l] = null) else if (h === 1 && c > 1) this._updateOneToMany && this._updateOneToMany(f, u), (i[l] = null) else if (h === 1 && c === 1) this._update && this._update(f, u), (i[l] = null) else if (h > 1 && c > 1) this._updateManyToMany && this._updateManyToMany(f, u), (i[l] = null) else if (h > 1) for (var v = 0; v < h; v++) this._remove && this._remove(u[v]) else this._remove && this._remove(u) } this._performRestAdd(o, i) }), (r.prototype._performRestAdd = function (t, e) { for (var n = 0; n < t.length; n++) { var i = t[n], a = e[i], o = ka(a) if (o > 1) for (var s = 0; s < o; s++) this._add && this._add(a[s]) else o === 1 && this._add && this._add(a) e[i] = null } }), (r.prototype._initIndexMap = function (t, e, n, i) { for (var a = this._diffModeMultiple, o = 0; o < t.length; o++) { var s = '_ec_' + this[i](t[o], o) if ((a || (n[o] = s), !!e)) { var l = e[s], u = ka(l) u === 0 ? ((e[s] = o), a && n.push(s)) : u === 1 ? (e[s] = [l, o]) : l.push(o) } } }), r ) })(), Ba = o2, s2 = (function () { function r(t, e) { ;(this._encode = t), (this._schema = e) } return ( (r.prototype.get = function () { return { fullDimensions: this._getFullDimensionNames(), encode: this._encode } }), (r.prototype._getFullDimensionNames = function () { return ( this._cachedDimNames || (this._cachedDimNames = this._schema ? this._schema.makeOutputDimensionNames() : []), this._cachedDimNames ) }), r ) })() function l2(r, t) { var e = {}, n = (e.encode = {}), i = q(), a = [], o = [], s = {} A(r.dimensions, function (c) { var v = r.getDimensionInfo(c), d = v.coordDim if (d) { var p = v.coordDimIndex ;(dh(n, d)[p] = c), v.isExtraCoord || (i.set(d, 1), f2(v.type) && (a[0] = c), (dh(s, d)[p] = r.getDimensionIndex(v.name))), v.defaultTooltip && o.push(c) } cg.each(function (g, m) { var y = dh(n, m), _ = v.otherDims[m] _ != null && _ !== !1 && (y[_] = v.name) }) }) var l = [], u = {} i.each(function (c, v) { var d = n[v] ;(u[v] = d[0]), (l = l.concat(d)) }), (e.dataDimsOnCoord = l), (e.dataDimIndicesOnCoord = G(l, function (c) { return r.getDimensionInfo(c).storeDimIndex })), (e.encodeFirstDimNotExtra = u) var f = n.label f && f.length && (a = f.slice()) var h = n.tooltip return ( h && h.length ? (o = h.slice()) : o.length || (o = a.slice()), (n.defaultedLabel = a), (n.defaultedTooltip = o), (e.userOutput = new s2(s, t)), e ) } function dh(r, t) { return r.hasOwnProperty(t) || (r[t] = []), r[t] } function u2(r) { return r === 'category' ? 'ordinal' : r === 'time' ? 'time' : 'float' } function f2(r) { return !(r === 'ordinal' || r === 'time') } var h2 = (function () { function r(t) { ;(this.otherDims = {}), t != null && N(this, t) } return r })(), qs = h2, v2 = wt(), c2 = { float: 'f', int: 'i', ordinal: 'o', number: 'n', time: 't' }, C0 = (function () { function r(t) { ;(this.dimensions = t.dimensions), (this._dimOmitted = t.dimensionOmitted), (this.source = t.source), (this._fullDimCount = t.fullDimensionCount), this._updateDimOmitted(t.dimensionOmitted) } return ( (r.prototype.isDimensionOmitted = function () { return this._dimOmitted }), (r.prototype._updateDimOmitted = function (t) { ;(this._dimOmitted = t), !!t && (this._dimNameMap || (this._dimNameMap = D0(this.source))) }), (r.prototype.getSourceDimensionIndex = function (t) { return ht(this._dimNameMap.get(t), -1) }), (r.prototype.getSourceDimension = function (t) { var e = this.source.dimensionsDefine if (e) return e[t] }), (r.prototype.makeStoreSchema = function () { for ( var t = this._fullDimCount, e = Ng(this.source), n = !I0(t), i = '', a = [], o = 0, s = 0; o < t; o++ ) { var l = void 0, u = void 0, f = void 0, h = this.dimensions[s] if (h && h.storeDimIndex === o) (l = e ? h.name : null), (u = h.type), (f = h.ordinalMeta), s++ else { var c = this.getSourceDimension(o) c && ((l = e ? c.name : null), (u = c.type)) } a.push({ property: l, type: u, ordinalMeta: f }), e && l != null && (!h || !h.isCalculationCoord) && (i += n ? l.replace(/\`/g, '`1').replace(/\$/g, '`2') : l), (i += '$'), (i += c2[u] || 'f'), f && (i += f.uid), (i += '$') } var v = this.source, d = [v.seriesLayoutBy, v.startIndex, i].join('$$') return { dimensions: a, hash: d } }), (r.prototype.makeOutputDimensionNames = function () { for (var t = [], e = 0, n = 0; e < this._fullDimCount; e++) { var i = void 0, a = this.dimensions[n] if (a && a.storeDimIndex === e) a.isCalculationCoord || (i = a.name), n++ else { var o = this.getSourceDimension(e) o && (i = o.name) } t.push(i) } return t }), (r.prototype.appendCalculationDimension = function (t) { this.dimensions.push(t), (t.isCalculationCoord = !0), this._fullDimCount++, this._updateDimOmitted(!0) }), r ) })() function A0(r) { return r instanceof C0 } function M0(r) { for (var t = q(), e = 0; e < (r || []).length; e++) { var n = r[e], i = Y(n) ? n.name : n i != null && t.get(i) == null && t.set(i, e) } return t } function D0(r) { var t = v2(r) return t.dimNameMap || (t.dimNameMap = M0(r.dimensionsDefine)) } function I0(r) { return r > 30 } var Na = Y, Br = G, d2 = typeof Int32Array == 'undefined' ? Array : Int32Array, p2 = 'e\0\0', L0 = -1, g2 = [ 'hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_dimSummary', 'userOutput', '_rawData', '_dimValueGetter', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount' ], m2 = ['_approximateExtent'], P0, Ks, Fa, za, ph, Qs, gh, y2 = (function () { function r(t, e) { ;(this.type = 'list'), (this._dimOmitted = !1), (this._nameList = []), (this._idList = []), (this._visual = {}), (this._layout = {}), (this._itemVisuals = []), (this._itemLayouts = []), (this._graphicEls = []), (this._approximateExtent = {}), (this._calculationInfo = {}), (this.hasItemOption = !1), (this.TRANSFERABLE_METHODS = [ 'cloneShallow', 'downSample', 'lttbDownSample', 'map' ]), (this.CHANGABLE_METHODS = ['filterSelf', 'selectRange']), (this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample']) var n, i = !1 A0(t) ? ((n = t.dimensions), (this._dimOmitted = t.isDimensionOmitted()), (this._schema = t)) : ((i = !0), (n = t)), (n = n || ['x', 'y']) for ( var a = {}, o = [], s = {}, l = !1, u = {}, f = 0; f < n.length; f++ ) { var h = n[f], c = W(h) ? new qs({ name: h }) : h instanceof qs ? h : new qs(h), v = c.name ;(c.type = c.type || 'float'), c.coordDim || ((c.coordDim = v), (c.coordDimIndex = 0)) var d = (c.otherDims = c.otherDims || {}) o.push(v), (a[v] = c), u[v] != null && (l = !0), c.createInvertedIndices && (s[v] = []), d.itemName === 0 && (this._nameDimIdx = f), d.itemId === 0 && (this._idDimIdx = f), i && (c.storeDimIndex = f) } if ( ((this.dimensions = o), (this._dimInfos = a), this._initGetDimensionInfo(l), (this.hostModel = e), (this._invertedIndicesMap = s), this._dimOmitted) ) { var p = (this._dimIdxToName = q()) A(o, function (g) { p.set(a[g].storeDimIndex, g) }) } } return ( (r.prototype.getDimension = function (t) { var e = this._recognizeDimIndex(t) if (e == null) return t if (((e = t), !this._dimOmitted)) return this.dimensions[e] var n = this._dimIdxToName.get(e) if (n != null) return n var i = this._schema.getSourceDimension(e) if (i) return i.name }), (r.prototype.getDimensionIndex = function (t) { var e = this._recognizeDimIndex(t) if (e != null) return e if (t == null) return -1 var n = this._getDimInfo(t) return n ? n.storeDimIndex : this._dimOmitted ? this._schema.getSourceDimensionIndex(t) : -1 }), (r.prototype._recognizeDimIndex = function (t) { if ( dt(t) || (t != null && !isNaN(t) && !this._getDimInfo(t) && (!this._dimOmitted || this._schema.getSourceDimensionIndex(t) < 0)) ) return +t }), (r.prototype._getStoreDimIndex = function (t) { var e = this.getDimensionIndex(t) return e }), (r.prototype.getDimensionInfo = function (t) { return this._getDimInfo(this.getDimension(t)) }), (r.prototype._initGetDimensionInfo = function (t) { var e = this._dimInfos this._getDimInfo = t ? function (n) { return e.hasOwnProperty(n) ? e[n] : void 0 } : function (n) { return e[n] } }), (r.prototype.getDimensionsOnCoord = function () { return this._dimSummary.dataDimsOnCoord.slice() }), (r.prototype.mapDimension = function (t, e) { var n = this._dimSummary if (e == null) return n.encodeFirstDimNotExtra[t] var i = n.encode[t] return i ? i[e] : null }), (r.prototype.mapDimensionsAll = function (t) { var e = this._dimSummary, n = e.encode[t] return (n || []).slice() }), (r.prototype.getStore = function () { return this._store }), (r.prototype.initData = function (t, e, n) { var i = this, a if ((t instanceof zf && (a = t), !a)) { var o = this.dimensions, s = Rf(t) || Zt(t) ? new Vg(t, o.length) : t a = new zf() var l = Br(o, function (u) { return { type: i._dimInfos[u].type, property: u } }) a.initData(s, l, n) } ;(this._store = a), (this._nameList = (e || []).slice()), (this._idList = []), (this._nameRepeatCount = {}), this._doInit(0, a.count()), (this._dimSummary = l2(this, this._schema)), (this.userOutput = this._dimSummary.userOutput) }), (r.prototype.appendData = function (t) { var e = this._store.appendData(t) this._doInit(e[0], e[1]) }), (r.prototype.appendValues = function (t, e) { var n = this._store.appendValues(t, e.length), i = n.start, a = n.end, o = this._shouldMakeIdFromName() if ((this._updateOrdinalMeta(), e)) for (var s = i; s < a; s++) { var l = s - i ;(this._nameList[s] = e[l]), o && gh(this, s) } }), (r.prototype._updateOrdinalMeta = function () { for ( var t = this._store, e = this.dimensions, n = 0; n < e.length; n++ ) { var i = this._dimInfos[e[n]] i.ordinalMeta && t.collectOrdinalMeta(i.storeDimIndex, i.ordinalMeta) } }), (r.prototype._shouldMakeIdFromName = function () { var t = this._store.getProvider() return ( this._idDimIdx == null && t.getSource().sourceFormat !== Pr && !t.fillStorage ) }), (r.prototype._doInit = function (t, e) { if (!(t >= e)) { var n = this._store, i = n.getProvider() this._updateOrdinalMeta() var a = this._nameList, o = this._idList, s = i.getSource().sourceFormat, l = s === ye if (l && !i.pure) for (var u = [], f = t; f < e; f++) { var h = i.getItem(f, u) if ( (!this.hasItemOption && nb(h) && (this.hasItemOption = !0), h) ) { var c = h.name a[f] == null && c != null && (a[f] = We(c, null)) var v = h.id o[f] == null && v != null && (o[f] = We(v, null)) } } if (this._shouldMakeIdFromName()) for (var f = t; f < e; f++) gh(this, f) P0(this) } }), (r.prototype.getApproximateExtent = function (t) { return ( this._approximateExtent[t] || this._store.getDataExtent(this._getStoreDimIndex(t)) ) }), (r.prototype.setApproximateExtent = function (t, e) { ;(e = this.getDimension(e)), (this._approximateExtent[e] = t.slice()) }), (r.prototype.getCalculationInfo = function (t) { return this._calculationInfo[t] }), (r.prototype.setCalculationInfo = function (t, e) { Na(t) ? N(this._calculationInfo, t) : (this._calculationInfo[t] = e) }), (r.prototype.getName = function (t) { var e = this.getRawIndex(t), n = this._nameList[e] return ( n == null && this._nameDimIdx != null && (n = Fa(this, this._nameDimIdx, e)), n == null && (n = ''), n ) }), (r.prototype._getCategory = function (t, e) { var n = this._store.get(t, e), i = this._store.getOrdinalMeta(t) return i ? i.categories[n] : n }), (r.prototype.getId = function (t) { return Ks(this, this.getRawIndex(t)) }), (r.prototype.count = function () { return this._store.count() }), (r.prototype.get = function (t, e) { var n = this._store, i = this._dimInfos[t] if (i) return n.get(i.storeDimIndex, e) }), (r.prototype.getByRawIndex = function (t, e) { var n = this._store, i = this._dimInfos[t] if (i) return n.getByRawIndex(i.storeDimIndex, e) }), (r.prototype.getIndices = function () { return this._store.getIndices() }), (r.prototype.getDataExtent = function (t) { return this._store.getDataExtent(this._getStoreDimIndex(t)) }), (r.prototype.getSum = function (t) { return this._store.getSum(this._getStoreDimIndex(t)) }), (r.prototype.getMedian = function (t) { return this._store.getMedian(this._getStoreDimIndex(t)) }), (r.prototype.getValues = function (t, e) { var n = this, i = this._store return z(t) ? i.getValues( Br(t, function (a) { return n._getStoreDimIndex(a) }), e ) : i.getValues(t) }), (r.prototype.hasValue = function (t) { for ( var e = this._dimSummary.dataDimIndicesOnCoord, n = 0, i = e.length; n < i; n++ ) if (isNaN(this._store.get(e[n], t))) return !1 return !0 }), (r.prototype.indexOfName = function (t) { for (var e = 0, n = this._store.count(); e < n; e++) if (this.getName(e) === t) return e return -1 }), (r.prototype.getRawIndex = function (t) { return this._store.getRawIndex(t) }), (r.prototype.indexOfRawIndex = function (t) { return this._store.indexOfRawIndex(t) }), (r.prototype.rawIndexOf = function (t, e) { var n = t && this._invertedIndicesMap[t], i = n[e] return i == null || isNaN(i) ? L0 : i }), (r.prototype.indicesOfNearest = function (t, e, n) { return this._store.indicesOfNearest(this._getStoreDimIndex(t), e, n) }), (r.prototype.each = function (t, e, n) { Q(t) && ((n = e), (e = t), (t = [])) var i = n || this, a = Br(za(t), this._getStoreDimIndex, this) this._store.each(a, i ? X(e, i) : e) }), (r.prototype.filterSelf = function (t, e, n) { Q(t) && ((n = e), (e = t), (t = [])) var i = n || this, a = Br(za(t), this._getStoreDimIndex, this) return (this._store = this._store.filter(a, i ? X(e, i) : e)), this }), (r.prototype.selectRange = function (t) { var e = this, n = {}, i = xt(t) return ( A(i, function (a) { var o = e._getStoreDimIndex(a) n[o] = t[a] }), (this._store = this._store.selectRange(n)), this ) }), (r.prototype.mapArray = function (t, e, n) { Q(t) && ((n = e), (e = t), (t = [])), (n = n || this) var i = [] return ( this.each( t, function () { i.push(e && e.apply(this, arguments)) }, n ), i ) }), (r.prototype.map = function (t, e, n, i) { var a = n || i || this, o = Br(za(t), this._getStoreDimIndex, this), s = Qs(this) return (s._store = this._store.map(o, a ? X(e, a) : e)), s }), (r.prototype.modify = function (t, e, n, i) { var a = n || i || this, o = Br(za(t), this._getStoreDimIndex, this) this._store.modify(o, a ? X(e, a) : e) }), (r.prototype.downSample = function (t, e, n, i) { var a = Qs(this) return ( (a._store = this._store.downSample( this._getStoreDimIndex(t), e, n, i )), a ) }), (r.prototype.lttbDownSample = function (t, e) { var n = Qs(this) return ( (n._store = this._store.lttbDownSample(this._getStoreDimIndex(t), e)), n ) }), (r.prototype.getRawDataItem = function (t) { return this._store.getRawDataItem(t) }), (r.prototype.getItemModel = function (t) { var e = this.hostModel, n = this.getRawDataItem(t) return new Nt(n, e, e && e.ecModel) }), (r.prototype.diff = function (t) { var e = this return new Ba( t ? t.getStore().getIndices() : [], this.getStore().getIndices(), function (n) { return Ks(t, n) }, function (n) { return Ks(e, n) } ) }), (r.prototype.getVisual = function (t) { var e = this._visual return e && e[t] }), (r.prototype.setVisual = function (t, e) { ;(this._visual = this._visual || {}), Na(t) ? N(this._visual, t) : (this._visual[t] = e) }), (r.prototype.getItemVisual = function (t, e) { var n = this._itemVisuals[t], i = n && n[e] return i == null ? this.getVisual(e) : i }), (r.prototype.hasItemVisual = function () { return this._itemVisuals.length > 0 }), (r.prototype.ensureUniqueItemVisual = function (t, e) { var n = this._itemVisuals, i = n[t] i || (i = n[t] = {}) var a = i[e] return ( a == null && ((a = this.getVisual(e)), z(a) ? (a = a.slice()) : Na(a) && (a = N({}, a)), (i[e] = a)), a ) }), (r.prototype.setItemVisual = function (t, e, n) { var i = this._itemVisuals[t] || {} ;(this._itemVisuals[t] = i), Na(e) ? N(i, e) : (i[e] = n) }), (r.prototype.clearAllVisual = function () { ;(this._visual = {}), (this._itemVisuals = []) }), (r.prototype.setLayout = function (t, e) { Na(t) ? N(this._layout, t) : (this._layout[t] = e) }), (r.prototype.getLayout = function (t) { return this._layout[t] }), (r.prototype.getItemLayout = function (t) { return this._itemLayouts[t] }), (r.prototype.setItemLayout = function (t, e, n) { this._itemLayouts[t] = n ? N(this._itemLayouts[t] || {}, e) : e }), (r.prototype.clearItemLayouts = function () { this._itemLayouts.length = 0 }), (r.prototype.setItemGraphicEl = function (t, e) { var n = this.hostModel && this.hostModel.seriesIndex _T(n, this.dataType, t, e), (this._graphicEls[t] = e) }), (r.prototype.getItemGraphicEl = function (t) { return this._graphicEls[t] }), (r.prototype.eachItemGraphicEl = function (t, e) { A(this._graphicEls, function (n, i) { n && t && t.call(e, n, i) }) }), (r.prototype.cloneShallow = function (t) { return ( t || (t = new r( this._schema ? this._schema : Br(this.dimensions, this._getDimInfo, this), this.hostModel )), ph(t, this), (t._store = this._store), t ) }), (r.prototype.wrapMethod = function (t, e) { var n = this[t] !Q(n) || ((this.__wrappedMethods = this.__wrappedMethods || []), this.__wrappedMethods.push(t), (this[t] = function () { var i = n.apply(this, arguments) return e.apply(this, [i].concat(El(arguments))) })) }), (r.internalField = (function () { ;(P0 = function (t) { var e = t._invertedIndicesMap A(e, function (n, i) { var a = t._dimInfos[i], o = a.ordinalMeta, s = t._store if (o) { n = e[i] = new d2(o.categories.length) for (var l = 0; l < n.length; l++) n[l] = L0 for (var l = 0; l < s.count(); l++) n[s.get(a.storeDimIndex, l)] = l } }) }), (Fa = function (t, e, n) { return We(t._getCategory(e, n), null) }), (Ks = function (t, e) { var n = t._idList[e] return ( n == null && t._idDimIdx != null && (n = Fa(t, t._idDimIdx, e)), n == null && (n = p2 + e), n ) }), (za = function (t) { return z(t) || (t = t != null ? [t] : []), t }), (Qs = function (t) { var e = new r( t._schema ? t._schema : Br(t.dimensions, t._getDimInfo, t), t.hostModel ) return ph(e, t), e }), (ph = function (t, e) { A(g2.concat(e.__wrappedMethods || []), function (n) { e.hasOwnProperty(n) && (t[n] = e[n]) }), (t.__wrappedMethods = e.__wrappedMethods), A(m2, function (n) { t[n] = tt(e[n]) }), (t._calculationInfo = N({}, e._calculationInfo)) }), (gh = function (t, e) { var n = t._nameList, i = t._idList, a = t._nameDimIdx, o = t._idDimIdx, s = n[e], l = i[e] if ( (s == null && a != null && (n[e] = s = Fa(t, a, e)), l == null && o != null && (i[e] = l = Fa(t, o, e)), l == null && s != null) ) { var u = t._nameRepeatCount, f = (u[s] = (u[s] || 0) + 1) ;(l = s), f > 1 && (l += '__ec__' + f), (i[e] = l) } }) })()), r ) })(), R0 = y2 function E0(r, t) { Rf(r) || (r = Of(r)), (t = t || {}) var e = t.coordDimensions || [], n = t.dimensionsDefine || r.dimensionsDefine || [], i = q(), a = [], o = S2(r, e, n, t.dimensionsCount), s = t.canOmitUnusedDimensions && I0(o), l = n === r.dimensionsDefine, u = l ? D0(r) : M0(n), f = t.encodeDefine !f && t.encodeDefaulter && (f = t.encodeDefaulter(r, o)) for (var h = q(f), c = new Jg(o), v = 0; v < c.length; v++) c[v] = -1 function d(C) { var M = c[C] if (M < 0) { var D = n[C], I = Y(D) ? D : { name: D }, L = new qs(), P = I.name P != null && u.get(P) != null && (L.name = L.displayName = P), I.type != null && (L.type = I.type), I.displayName != null && (L.displayName = I.displayName) var R = a.length return (c[C] = R), (L.storeDimIndex = C), a.push(L), L } return a[M] } if (!s) for (var v = 0; v < o; v++) d(v) h.each(function (C, M) { var D = Mt(C).slice() if (D.length === 1 && !W(D[0]) && D[0] < 0) { h.set(M, !1) return } var I = h.set(M, []) A(D, function (L, P) { var R = W(L) ? u.get(L) : L R != null && R < o && ((I[P] = R), g(d(R), M, P)) }) }) var p = 0 A(e, function (C) { var M, D, I, L if (W(C)) (M = C), (L = {}) else { ;(L = C), (M = L.name) var P = L.ordinalMeta ;(L.ordinalMeta = null), (L = N({}, L)), (L.ordinalMeta = P), (D = L.dimsDef), (I = L.otherDims), (L.name = L.coordDim = L.coordDimIndex = L.dimsDef = L.otherDims = null) } var R = h.get(M) if (R !== !1) { if (((R = Mt(R)), !R.length)) for (var O = 0; O < ((D && D.length) || 1); O++) { for (; p < o && d(p).coordDim != null; ) p++ p < o && R.push(p++) } A(R, function (U, k) { var F = d(U) if ( (l && L.type != null && (F.type = L.type), g(j(F, L), M, k), F.name == null && D) ) { var H = D[k] !Y(H) && (H = { name: H }), (F.name = F.displayName = H.name), (F.defaultTooltip = H.defaultTooltip) } I && j(F.otherDims, I) }) } }) function g(C, M, D) { cg.get(M) != null ? (C.otherDims[M] = D) : ((C.coordDim = M), (C.coordDimIndex = D), i.set(M, !0)) } var m = t.generateCoord, y = t.generateCoordCount, _ = y != null y = m ? y || 1 : 0 var S = m || 'value' function w(C) { C.name == null && (C.name = C.coordDim) } if (s) A(a, function (C) { w(C) }), a.sort(function (C, M) { return C.storeDimIndex - M.storeDimIndex }) else for (var x = 0; x < o; x++) { var b = d(x), T = b.coordDim T == null && ((b.coordDim = x2(S, i, _)), (b.coordDimIndex = 0), (!m || y <= 0) && (b.isExtraCoord = !0), y--), w(b), b.type == null && (gg(r, x) === Ft.Must || (b.isExtraCoord && (b.otherDims.itemName != null || b.otherDims.seriesName != null))) && (b.type = 'ordinal') } return ( _2(a), new C0({ source: r, dimensions: a, fullDimensionCount: o, dimensionOmitted: s }) ) } function _2(r) { for (var t = q(), e = 0; e < r.length; e++) { var n = r[e], i = n.name, a = t.get(i) || 0 a > 0 && (n.name = i + (a - 1)), a++, t.set(i, a) } } function S2(r, t, e, n) { var i = Math.max(r.dimensionsDetectedCount || 1, t.length, e.length, n || 0) return ( A(t, function (a) { var o Y(a) && (o = a.dimsDef) && (i = Math.max(i, o.length)) }), i ) } function x2(r, t, e) { var n = t.data if (e || n.hasOwnProperty(r)) { for (var i = 0; n.hasOwnProperty(r + i); ) i++ r += i } return t.set(r, !0), r } var w2 = (function () { function r(t) { ;(this.coordSysDims = []), (this.axisMap = q()), (this.categoryAxisMap = q()), (this.coordSysName = t) } return r })() function b2(r) { var t = r.get('coordinateSystem'), e = new w2(t), n = T2[t] if (n) return n(r, e, e.axisMap, e.categoryAxisMap), e } var T2 = { cartesian2d: function (r, t, e, n) { var i = r.getReferringComponents('xAxis', Xt).models[0], a = r.getReferringComponents('yAxis', Xt).models[0] ;(t.coordSysDims = ['x', 'y']), e.set('x', i), e.set('y', a), _i(i) && (n.set('x', i), (t.firstCategoryDimIndex = 0)), _i(a) && (n.set('y', a), t.firstCategoryDimIndex == null && (t.firstCategoryDimIndex = 1)) }, singleAxis: function (r, t, e, n) { var i = r.getReferringComponents('singleAxis', Xt).models[0] ;(t.coordSysDims = ['single']), e.set('single', i), _i(i) && (n.set('single', i), (t.firstCategoryDimIndex = 0)) }, polar: function (r, t, e, n) { var i = r.getReferringComponents('polar', Xt).models[0], a = i.findAxisModel('radiusAxis'), o = i.findAxisModel('angleAxis') ;(t.coordSysDims = ['radius', 'angle']), e.set('radius', a), e.set('angle', o), _i(a) && (n.set('radius', a), (t.firstCategoryDimIndex = 0)), _i(o) && (n.set('angle', o), t.firstCategoryDimIndex == null && (t.firstCategoryDimIndex = 1)) }, geo: function (r, t, e, n) { t.coordSysDims = ['lng', 'lat'] }, parallel: function (r, t, e, n) { var i = r.ecModel, a = i.getComponent('parallel', r.get('parallelIndex')), o = (t.coordSysDims = a.dimensions.slice()) A(a.parallelAxisIndex, function (s, l) { var u = i.getComponent('parallelAxis', s), f = o[l] e.set(f, u), _i(u) && (n.set(f, u), t.firstCategoryDimIndex == null && (t.firstCategoryDimIndex = l)) }) } } function _i(r) { return r.get('type') === 'category' } function C2(r, t, e) { e = e || {} var n = e.byIndex, i = e.stackedCoordDimension, a, o, s A2(t) ? (a = t) : ((o = t.schema), (a = o.dimensions), (s = t.store)) var l = !!(r && r.get('stack')), u, f, h, c if ( (A(a, function (y, _) { W(y) && (a[_] = y = { name: y }), l && !y.isExtraCoord && (!n && !u && y.ordinalMeta && (u = y), !f && y.type !== 'ordinal' && y.type !== 'time' && (!i || i === y.coordDim) && (f = y)) }), f && !n && !u && (n = !0), f) ) { ;(h = '__\0ecstackresult_' + r.id), (c = '__\0ecstackedover_' + r.id), u && (u.createInvertedIndices = !0) var v = f.coordDim, d = f.type, p = 0 A(a, function (y) { y.coordDim === v && p++ }) var g = { name: h, coordDim: v, coordDimIndex: p, type: d, isExtraCoord: !0, isCalculationCoord: !0, storeDimIndex: a.length }, m = { name: c, coordDim: c, coordDimIndex: p + 1, type: d, isExtraCoord: !0, isCalculationCoord: !0, storeDimIndex: a.length + 1 } o ? (s && ((g.storeDimIndex = s.ensureCalculationDimension(c, d)), (m.storeDimIndex = s.ensureCalculationDimension(h, d))), o.appendCalculationDimension(g), o.appendCalculationDimension(m)) : (a.push(g), a.push(m)) } return { stackedDimension: f && f.name, stackedByDimension: u && u.name, isStackedByIndex: n, stackedOverDimension: c, stackResultDimension: h } } function A2(r) { return !A0(r.schema) } function Si(r, t) { return !!t && t === r.getCalculationInfo('stackedDimension') } function M2(r, t) { return Si(r, t) ? r.getCalculationInfo('stackResultDimension') : t } function D2(r, t) { var e = r.get('coordinateSystem'), n = If.get(e), i return ( t && t.coordSysDims && (i = G(t.coordSysDims, function (a) { var o = { name: a }, s = t.axisMap.get(a) if (s) { var l = s.get('type') o.type = u2(l) } return o })), i || (i = (n && (n.getDimensionsInfo ? n.getDimensionsInfo() : n.dimensions.slice())) || ['x', 'y']), i ) } function I2(r, t, e) { var n, i return ( e && A(r, function (a, o) { var s = a.coordDim, l = e.categoryAxisMap.get(s) l && (n == null && (n = o), (a.ordinalMeta = l.getOrdinalMeta()), t && (a.createInvertedIndices = !0)), a.otherDims.itemName != null && (i = !0) }), !i && n != null && (r[n].otherDims.itemName = 0), n ) } function mh(r, t, e) { e = e || {} var n = t.getSourceManager(), i, a = !1 r ? ((a = !0), (i = Of(r))) : ((i = n.getSource()), (a = i.sourceFormat === ye)) var o = b2(t), s = D2(t, o), l = e.useEncodeDefaulter, u = Q(l) ? l : l ? lt(cA, s, t) : null, f = { coordDimensions: s, generateCoord: e.generateCoord, encodeDefine: t.getEncode(), encodeDefaulter: u, canOmitUnusedDimensions: !a }, h = E0(i, f), c = I2(h.dimensions, e.createInvertedIndices, o), v = a ? null : n.getSharedDataStore(h), d = C2(t, { schema: h, store: v }), p = new R0(h, t) p.setCalculationInfo(d) var g = c != null && L2(i) ? function (m, y, _, S) { return S === c ? _ : this.defaultDimValueGetter(m, y, _, S) } : null return (p.hasItemOption = !1), p.initData(a ? i : v, null, g), p } function L2(r) { if (r.sourceFormat === ye) { var t = P2(r.data || []) return !z(qi(t)) } } function P2(r) { for (var t = 0; t < r.length && r[t] == null; ) t++ return r[t] } var O0 = (function () { function r(t) { ;(this._setting = t || {}), (this._extent = [1 / 0, -1 / 0]) } return ( (r.prototype.getSetting = function (t) { return this._setting[t] }), (r.prototype.unionExtent = function (t) { var e = this._extent t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]) }), (r.prototype.unionExtentFromData = function (t, e) { this.unionExtent(t.getApproximateExtent(e)) }), (r.prototype.getExtent = function () { return this._extent.slice() }), (r.prototype.setExtent = function (t, e) { var n = this._extent isNaN(t) || (n[0] = t), isNaN(e) || (n[1] = e) }), (r.prototype.isInExtentRange = function (t) { return this._extent[0] <= t && this._extent[1] >= t }), (r.prototype.isBlank = function () { return this._isBlank }), (r.prototype.setBlank = function (t) { this._isBlank = t }), r ) })() No(O0) var pr = O0, R2 = 0, E2 = (function () { function r(t) { ;(this.categories = t.categories || []), (this._needCollect = t.needCollect), (this._deduplication = t.deduplication), (this.uid = ++R2) } return ( (r.createByAxisModel = function (t) { var e = t.option, n = e.data, i = n && G(n, O2) return new r({ categories: i, needCollect: !i, deduplication: e.dedplication !== !1 }) }), (r.prototype.getOrdinal = function (t) { return this._getOrCreateMap().get(t) }), (r.prototype.parseAndCollect = function (t) { var e, n = this._needCollect if (!W(t) && !n) return t if (n && !this._deduplication) return (e = this.categories.length), (this.categories[e] = t), e var i = this._getOrCreateMap() return ( (e = i.get(t)), e == null && (n ? ((e = this.categories.length), (this.categories[e] = t), i.set(t, e)) : (e = NaN)), e ) }), (r.prototype._getOrCreateMap = function () { return this._map || (this._map = q(this.categories)) }), r ) })() function O2(r) { return Y(r) && r.value != null ? r.value : r + '' } var yh = E2 function _h(r) { return r.type === 'interval' || r.type === 'log' } function k2(r, t, e, n) { var i = {}, a = r[1] - r[0], o = (i.interval = qc(a / t, !0)) e != null && o < e && (o = i.interval = e), n != null && o > n && (o = i.interval = n) var s = (i.intervalPrecision = k0(o)), l = (i.niceTickExtent = [ Pt(Math.ceil(r[0] / o) * o, s), Pt(Math.floor(r[1] / o) * o, s) ]) return B2(l, r), i } function Sh(r) { var t = Math.pow(10, Tu(r)), e = r / t return ( e ? (e === 2 ? (e = 3) : e === 3 ? (e = 5) : (e *= 2)) : (e = 1), Pt(e * t) ) } function k0(r) { return or(r) + 2 } function B0(r, t, e) { r[t] = Math.max(Math.min(r[t], e[1]), e[0]) } function B2(r, t) { !isFinite(r[0]) && (r[0] = t[0]), !isFinite(r[1]) && (r[1] = t[1]), B0(r, 0, t), B0(r, 1, t), r[0] > r[1] && (r[0] = r[1]) } function Js(r, t) { return r >= t[0] && r <= t[1] } function js(r, t) { return t[1] === t[0] ? 0.5 : (r - t[0]) / (t[1] - t[0]) } function tl(r, t) { return r * (t[1] - t[0]) + t[0] } var N0 = (function (r) { B(t, r) function t(e) { var n = r.call(this, e) || this n.type = 'ordinal' var i = n.getSetting('ordinalMeta') return ( i || (i = new yh({})), z(i) && (i = new yh({ categories: G(i, function (a) { return Y(a) ? a.value : a }) })), (n._ordinalMeta = i), (n._extent = n.getSetting('extent') || [0, i.categories.length - 1]), n ) } return ( (t.prototype.parse = function (e) { return e == null ? NaN : W(e) ? this._ordinalMeta.getOrdinal(e) : Math.round(e) }), (t.prototype.contain = function (e) { return ( (e = this.parse(e)), Js(e, this._extent) && this._ordinalMeta.categories[e] != null ) }), (t.prototype.normalize = function (e) { return (e = this._getTickNumber(this.parse(e))), js(e, this._extent) }), (t.prototype.scale = function (e) { return (e = Math.round(tl(e, this._extent))), this.getRawOrdinalNumber(e) }), (t.prototype.getTicks = function () { for (var e = [], n = this._extent, i = n[0]; i <= n[1]; ) e.push({ value: i }), i++ return e }), (t.prototype.getMinorTicks = function (e) {}), (t.prototype.setSortInfo = function (e) { if (e == null) { this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null return } for ( var n = e.ordinalNumbers, i = (this._ordinalNumbersByTick = []), a = (this._ticksByOrdinalNumber = []), o = 0, s = this._ordinalMeta.categories.length, l = Math.min(s, n.length); o < l; ++o ) { var u = n[o] ;(i[o] = u), (a[u] = o) } for (var f = 0; o < s; ++o) { for (; a[f] != null; ) f++ i.push(f), (a[f] = o) } }), (t.prototype._getTickNumber = function (e) { var n = this._ticksByOrdinalNumber return n && e >= 0 && e < n.length ? n[e] : e }), (t.prototype.getRawOrdinalNumber = function (e) { var n = this._ordinalNumbersByTick return n && e >= 0 && e < n.length ? n[e] : e }), (t.prototype.getLabel = function (e) { if (!this.isBlank()) { var n = this.getRawOrdinalNumber(e.value), i = this._ordinalMeta.categories[n] return i == null ? '' : i + '' } }), (t.prototype.count = function () { return this._extent[1] - this._extent[0] + 1 }), (t.prototype.unionExtentFromData = function (e, n) { this.unionExtent(e.getApproximateExtent(n)) }), (t.prototype.isInExtentRange = function (e) { return ( (e = this._getTickNumber(e)), this._extent[0] <= e && this._extent[1] >= e ) }), (t.prototype.getOrdinalMeta = function () { return this._ordinalMeta }), (t.prototype.calcNiceTicks = function () {}), (t.prototype.calcNiceExtent = function () {}), (t.type = 'ordinal'), t ) })(pr) pr.registerClass(N0) var F0 = N0, Cn = Pt, z0 = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return ( (e.type = 'interval'), (e._interval = 0), (e._intervalPrecision = 2), e ) } return ( (t.prototype.parse = function (e) { return e }), (t.prototype.contain = function (e) { return Js(e, this._extent) }), (t.prototype.normalize = function (e) { return js(e, this._extent) }), (t.prototype.scale = function (e) { return tl(e, this._extent) }), (t.prototype.setExtent = function (e, n) { var i = this._extent isNaN(e) || (i[0] = parseFloat(e)), isNaN(n) || (i[1] = parseFloat(n)) }), (t.prototype.unionExtent = function (e) { var n = this._extent e[0] < n[0] && (n[0] = e[0]), e[1] > n[1] && (n[1] = e[1]), this.setExtent(n[0], n[1]) }), (t.prototype.getInterval = function () { return this._interval }), (t.prototype.setInterval = function (e) { ;(this._interval = e), (this._niceExtent = this._extent.slice()), (this._intervalPrecision = k0(e)) }), (t.prototype.getTicks = function (e) { var n = this._interval, i = this._extent, a = this._niceExtent, o = this._intervalPrecision, s = [] if (!n) return s var l = 1e4 i[0] < a[0] && (e ? s.push({ value: Cn(a[0] - n, o) }) : s.push({ value: i[0] })) for ( var u = a[0]; u <= a[1] && (s.push({ value: u }), (u = Cn(u + n, o)), u !== s[s.length - 1].value); ) if (s.length > l) return [] var f = s.length ? s[s.length - 1].value : a[1] return ( i[1] > f && (e ? s.push({ value: Cn(f + n, o) }) : s.push({ value: i[1] })), s ) }), (t.prototype.getMinorTicks = function (e) { for ( var n = this.getTicks(!0), i = [], a = this.getExtent(), o = 1; o < n.length; o++ ) { for ( var s = n[o], l = n[o - 1], u = 0, f = [], h = s.value - l.value, c = h / e; u < e - 1; ) { var v = Cn(l.value + (u + 1) * c) v > a[0] && v < a[1] && f.push(v), u++ } i.push(f) } return i }), (t.prototype.getLabel = function (e, n) { if (e == null) return '' var i = n && n.precision i == null ? (i = or(e.value) || 0) : i === 'auto' && (i = this._intervalPrecision) var a = Cn(e.value, i, !0) return sg(a) }), (t.prototype.calcNiceTicks = function (e, n, i) { e = e || 5 var a = this._extent, o = a[1] - a[0] if (!!isFinite(o)) { o < 0 && ((o = -o), a.reverse()) var s = k2(a, e, n, i) ;(this._intervalPrecision = s.intervalPrecision), (this._interval = s.interval), (this._niceExtent = s.niceTickExtent) } }), (t.prototype.calcNiceExtent = function (e) { var n = this._extent if (n[0] === n[1]) if (n[0] !== 0) { var i = n[0] e.fixMax || (n[1] += i / 2), (n[0] -= i / 2) } else n[1] = 1 var a = n[1] - n[0] isFinite(a) || ((n[0] = 0), (n[1] = 1)), this.calcNiceTicks(e.splitNumber, e.minInterval, e.maxInterval) var o = this._interval e.fixMin || (n[0] = Cn(Math.floor(n[0] / o) * o)), e.fixMax || (n[1] = Cn(Math.ceil(n[1] / o) * o)) }), (t.prototype.setNiceExtent = function (e, n) { this._niceExtent = [e, n] }), (t.type = 'interval'), t ) })(pr) pr.registerClass(z0) var Va = z0, V0 = typeof Float32Array != 'undefined', N2 = V0 ? Float32Array : Array function gr(r) { return z(r) ? (V0 ? new Float32Array(r) : r) : new N2(r) } var F2 = '__ec_stack_' function xh(r) { return r.get('stack') || F2 + r.seriesIndex } function wh(r) { return r.dim + r.index } function G0(r, t) { var e = [] return ( t.eachSeriesByType(r, function (n) { W0(n) && e.push(n) }), e ) } function z2(r) { var t = {} A(r, function (l) { var u = l.coordinateSystem, f = u.getBaseAxis() if (!(f.type !== 'time' && f.type !== 'value')) for ( var h = l.getData(), c = f.dim + '_' + f.index, v = h.getDimensionIndex(h.mapDimension(f.dim)), d = h.getStore(), p = 0, g = d.count(); p < g; ++p ) { var m = d.get(v, p) t[c] ? t[c].push(m) : (t[c] = [m]) } }) var e = {} for (var n in t) if (t.hasOwnProperty(n)) { var i = t[n] if (i) { i.sort(function (l, u) { return l - u }) for (var a = null, o = 1; o < i.length; ++o) { var s = i[o] - i[o - 1] s > 0 && (a = a === null ? s : Math.min(a, s)) } e[n] = a } } return e } function H0(r) { var t = z2(r), e = [] return ( A(r, function (n) { var i = n.coordinateSystem, a = i.getBaseAxis(), o = a.getExtent(), s if (a.type === 'category') s = a.getBandWidth() else if (a.type === 'value' || a.type === 'time') { var l = a.dim + '_' + a.index, u = t[l], f = Math.abs(o[1] - o[0]), h = a.scale.getExtent(), c = Math.abs(h[1] - h[0]) s = u ? (f / c) * u : f } else { var v = n.getData() s = Math.abs(o[1] - o[0]) / v.count() } var d = yt(n.get('barWidth'), s), p = yt(n.get('barMaxWidth'), s), g = yt(n.get('barMinWidth') || (U0(n) ? 0.5 : 1), s), m = n.get('barGap'), y = n.get('barCategoryGap') e.push({ bandWidth: s, barWidth: d, barMaxWidth: p, barMinWidth: g, barGap: m, barCategoryGap: y, axisKey: wh(a), stackId: xh(n) }) }), V2(e) ) } function V2(r) { var t = {} A(r, function (n, i) { var a = n.axisKey, o = n.bandWidth, s = t[a] || { bandWidth: o, remainedWidth: o, autoWidthCount: 0, categoryGap: null, gap: '20%', stacks: {} }, l = s.stacks t[a] = s var u = n.stackId l[u] || s.autoWidthCount++, (l[u] = l[u] || { width: 0, maxWidth: 0 }) var f = n.barWidth f && !l[u].width && ((l[u].width = f), (f = Math.min(s.remainedWidth, f)), (s.remainedWidth -= f)) var h = n.barMaxWidth h && (l[u].maxWidth = h) var c = n.barMinWidth c && (l[u].minWidth = c) var v = n.barGap v != null && (s.gap = v) var d = n.barCategoryGap d != null && (s.categoryGap = d) }) var e = {} return ( A(t, function (n, i) { e[i] = {} var a = n.stacks, o = n.bandWidth, s = n.categoryGap if (s == null) { var l = xt(a).length s = Math.max(35 - l * 4, 15) + '%' } var u = yt(s, o), f = yt(n.gap, 1), h = n.remainedWidth, c = n.autoWidthCount, v = (h - u) / (c + (c - 1) * f) ;(v = Math.max(v, 0)), A(a, function (m) { var y = m.maxWidth, _ = m.minWidth if (m.width) { var S = m.width y && (S = Math.min(S, y)), _ && (S = Math.max(S, _)), (m.width = S), (h -= S + f * S), c-- } else { var S = v y && y < S && (S = Math.min(y, h)), _ && _ > S && (S = _), S !== v && ((m.width = S), (h -= S + f * S), c--) } }), (v = (h - u) / (c + (c - 1) * f)), (v = Math.max(v, 0)) var d = 0, p A(a, function (m, y) { m.width || (m.width = v), (p = m), (d += m.width * (1 + f)) }), p && (d -= p.width * f) var g = -d / 2 A(a, function (m, y) { ;(e[i][y] = e[i][y] || { bandWidth: o, offset: g, width: m.width }), (g += m.width * (1 + f)) }) }), e ) } function G2(r, t, e) { if (r && t) { var n = r[wh(t)] return n != null && e != null ? n[xh(e)] : n } } function H2(r, t) { var e = G0(r, t), n = H0(e) A(e, function (i) { var a = i.getData(), o = i.coordinateSystem, s = o.getBaseAxis(), l = xh(i), u = n[wh(s)][l], f = u.offset, h = u.width a.setLayout({ bandWidth: u.bandWidth, offset: f, size: h }) }) } function W2(r) { return { seriesType: r, plan: Yf(), reset: function (t) { if (!!W0(t)) { var e = t.getData(), n = t.coordinateSystem, i = n.getBaseAxis(), a = n.getOtherAxis(i), o = e.getDimensionIndex(e.mapDimension(a.dim)), s = e.getDimensionIndex(e.mapDimension(i.dim)), l = t.get('showBackground', !0), u = e.mapDimension(a.dim), f = e.getCalculationInfo('stackResultDimension'), h = Si(e, u) && !!e.getCalculationInfo('stackedOnSeries'), c = a.isHorizontal(), v = U2(i, a), d = U0(t), p = t.get('barMinHeight') || 0, g = f && e.getDimensionIndex(f), m = e.getLayout('size'), y = e.getLayout('offset') return { progress: function (_, S) { for ( var w = _.count, x = d && gr(w * 3), b = d && l && gr(w * 3), T = d && gr(w), C = n.master.getRect(), M = c ? C.width : C.height, D, I = S.getStore(), L = 0; (D = _.next()) != null; ) { var P = I.get(h ? g : o, D), R = I.get(s, D), O = v, U = void 0 h && (U = +P - I.get(o, D)) var k = void 0, F = void 0, H = void 0, $ = void 0 if (c) { var J = n.dataToPoint([P, R]) if (h) { var et = n.dataToPoint([U, R]) O = et[0] } ;(k = O), (F = J[1] + y), (H = J[0] - O), ($ = m), Math.abs(H) < p && (H = (H < 0 ? -1 : 1) * p) } else { var J = n.dataToPoint([R, P]) if (h) { var et = n.dataToPoint([R, U]) O = et[1] } ;(k = J[0] + y), (F = O), (H = m), ($ = J[1] - O), Math.abs($) < p && ($ = ($ <= 0 ? -1 : 1) * p) } d ? ((x[L] = k), (x[L + 1] = F), (x[L + 2] = c ? H : $), b && ((b[L] = c ? C.x : k), (b[L + 1] = c ? F : C.y), (b[L + 2] = M)), (T[D] = D)) : S.setItemLayout(D, { x: k, y: F, width: H, height: $ }), (L += 3) } d && S.setLayout({ largePoints: x, largeDataIndices: T, largeBackgroundPoints: b, valueAxisHorizontal: c }) } } } } } } function W0(r) { return r.coordinateSystem && r.coordinateSystem.type === 'cartesian2d' } function U0(r) { return r.pipelineContext && r.pipelineContext.large } function U2(r, t) { return t.toGlobalCoord(t.dataToCoord(t.type === 'log' ? 1 : 0)) } var Y2 = function (r, t, e, n) { for (; e < n; ) { var i = (e + n) >>> 1 r[i][1] < t ? (e = i + 1) : (n = i) } return e }, Y0 = (function (r) { B(t, r) function t(e) { var n = r.call(this, e) || this return (n.type = 'time'), n } return ( (t.prototype.getLabel = function (e) { var n = this.getSetting('useUTC') return ms( e.value, Qp[tA(li(this._minLevelUnit))] || Qp.second, n, this.getSetting('locale') ) }), (t.prototype.getFormattedLabel = function (e, n, i) { var a = this.getSetting('useUTC'), o = this.getSetting('locale') return eA(e, n, i, o, a) }), (t.prototype.getTicks = function () { var e = this._interval, n = this._extent, i = [] if (!e) return i i.push({ value: n[0], level: 0 }) var a = this.getSetting('useUTC'), o = J2(this._minLevelUnit, this._approxInterval, a, n) return (i = i.concat(o)), i.push({ value: n[1], level: 0 }), i }), (t.prototype.calcNiceExtent = function (e) { var n = this._extent if ( (n[0] === n[1] && ((n[0] -= ge), (n[1] += ge)), n[1] === -1 / 0 && n[0] === 1 / 0) ) { var i = new Date() ;(n[1] = +new Date(i.getFullYear(), i.getMonth(), i.getDate())), (n[0] = n[1] - ge) } this.calcNiceTicks(e.splitNumber, e.minInterval, e.maxInterval) }), (t.prototype.calcNiceTicks = function (e, n, i) { e = e || 10 var a = this._extent, o = a[1] - a[0] ;(this._approxInterval = o / e), n != null && this._approxInterval < n && (this._approxInterval = n), i != null && this._approxInterval > i && (this._approxInterval = i) var s = el.length, l = Math.min(Y2(el, this._approxInterval, 0, s), s - 1) ;(this._interval = el[l][1]), (this._minLevelUnit = el[Math.max(l - 1, 0)][0]) }), (t.prototype.parse = function (e) { return dt(e) ? e : +sr(e) }), (t.prototype.contain = function (e) { return Js(this.parse(e), this._extent) }), (t.prototype.normalize = function (e) { return js(this.parse(e), this._extent) }), (t.prototype.scale = function (e) { return tl(e, this._extent) }), (t.type = 'time'), t ) })(Va), el = [ ['second', yf], ['minute', _f], ['hour', pa], ['quarter-day', pa * 6], ['half-day', pa * 12], ['day', ge * 1.2], ['half-week', ge * 3.5], ['week', ge * 7], ['month', ge * 31], ['quarter', ge * 95], ['half-year', Kp / 2], ['year', Kp] ] function Z2(r, t, e, n) { var i = sr(t), a = sr(e), o = function (d) { return tg(i, d, n) === tg(a, d, n) }, s = function () { return o('year') }, l = function () { return s() && o('month') }, u = function () { return l() && o('day') }, f = function () { return u() && o('hour') }, h = function () { return f() && o('minute') }, c = function () { return h() && o('second') }, v = function () { return c() && o('millisecond') } switch (r) { case 'year': return s() case 'month': return l() case 'day': return u() case 'hour': return f() case 'minute': return h() case 'second': return c() case 'millisecond': return v() } } function $2(r, t) { return (r /= ge), r > 16 ? 16 : r > 7.5 ? 7 : r > 3.5 ? 4 : r > 1.5 ? 2 : 1 } function X2(r) { var t = 30 * ge return (r /= t), r > 6 ? 6 : r > 3 ? 3 : r > 2 ? 2 : 1 } function q2(r) { return (r /= pa), r > 12 ? 12 : r > 6 ? 6 : r > 3.5 ? 4 : r > 2 ? 2 : 1 } function Z0(r, t) { return ( (r /= t ? _f : yf), r > 30 ? 30 : r > 20 ? 20 : r > 15 ? 15 : r > 10 ? 10 : r > 5 ? 5 : r > 2 ? 2 : 1 ) } function K2(r) { return qc(r, !0) } function Q2(r, t, e) { var n = new Date(r) switch (li(t)) { case 'year': case 'month': n[eg(e)](0) case 'day': n[rg(e)](1) case 'hour': n[ng(e)](0) case 'minute': n[ig(e)](0) case 'second': n[ag(e)](0), n[og(e)](0) } return n.getTime() } function J2(r, t, e, n) { var i = 1e4, a = Jp, o = 0 function s(M, D, I, L, P, R, O) { for (var U = new Date(D), k = D, F = U[L](); k < I && k <= n[1]; ) O.push({ value: k }), (F += M), U[P](F), (k = U.getTime()) O.push({ value: k, notAdd: !0 }) } function l(M, D, I) { var L = [], P = !D.length if (!Z2(li(M), n[0], n[1], e)) { P && (D = [{ value: Q2(new Date(n[0]), M, e) }, { value: n[1] }]) for (var R = 0; R < D.length - 1; R++) { var O = D[R].value, U = D[R + 1].value if (O !== U) { var k = void 0, F = void 0, H = void 0, $ = !1 switch (M) { case 'year': ;(k = Math.max(1, Math.round(t / ge / 365))), (F = xf(e)), (H = rA(e)) break case 'half-year': case 'quarter': case 'month': ;(k = X2(t)), (F = ui(e)), (H = eg(e)) break case 'week': case 'half-week': case 'day': ;(k = $2(t)), (F = ys(e)), (H = rg(e)), ($ = !0) break case 'half-day': case 'quarter-day': case 'hour': ;(k = q2(t)), (F = ma(e)), (H = ng(e)) break case 'minute': ;(k = Z0(t, !0)), (F = _s(e)), (H = ig(e)) break case 'second': ;(k = Z0(t, !1)), (F = Ss(e)), (H = ag(e)) break case 'millisecond': ;(k = K2(t)), (F = xs(e)), (H = og(e)) break } s(k, O, U, F, H, $, L), M === 'year' && I.length > 1 && R === 0 && I.unshift({ value: I[0].value - k }) } } for (var R = 0; R < L.length; R++) I.push(L[R]) return L } } for (var u = [], f = [], h = 0, c = 0, v = 0; v < a.length && o++ < i; ++v) { var d = li(a[v]) if (!!jC(a[v])) { l(a[v], u[u.length - 1] || [], f) var p = a[v + 1] ? li(a[v + 1]) : null if (d !== p) { if (f.length) { ;(c = h), f.sort(function (M, D) { return M.value - D.value }) for (var g = [], m = 0; m < f.length; ++m) { var y = f[m].value ;(m === 0 || f[m - 1].value !== y) && (g.push(f[m]), y >= n[0] && y <= n[1] && h++) } var _ = (n[1] - n[0]) / t if ((h > _ * 1.5 && c > _ / 1.5) || (u.push(g), h > _ || r === a[v])) break } f = [] } } } for ( var S = Lt( G(u, function (M) { return Lt(M, function (D) { return D.value >= n[0] && D.value <= n[1] && !D.notAdd }) }), function (M) { return M.length > 0 } ), w = [], x = S.length - 1, v = 0; v < S.length; ++v ) for (var b = S[v], T = 0; T < b.length; ++T) w.push({ value: b[T].value, level: x - v }) w.sort(function (M, D) { return M.value - D.value }) for (var C = [], v = 0; v < w.length; ++v) (v === 0 || w[v].value !== w[v - 1].value) && C.push(w[v]) return C } pr.registerClass(Y0) var j2 = Y0, $0 = pr.prototype, Ga = Va.prototype, tI = Pt, eI = Math.floor, rI = Math.ceil, rl = Math.pow, be = Math.log, bh = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return ( (e.type = 'log'), (e.base = 10), (e._originalScale = new Va()), (e._interval = 0), e ) } return ( (t.prototype.getTicks = function (e) { var n = this._originalScale, i = this._extent, a = n.getExtent(), o = Ga.getTicks.call(this, e) return G( o, function (s) { var l = s.value, u = Pt(rl(this.base, l)) return ( (u = l === i[0] && this._fixMin ? nl(u, a[0]) : u), (u = l === i[1] && this._fixMax ? nl(u, a[1]) : u), { value: u } ) }, this ) }), (t.prototype.setExtent = function (e, n) { var i = this.base ;(e = be(e) / be(i)), (n = be(n) / be(i)), Ga.setExtent.call(this, e, n) }), (t.prototype.getExtent = function () { var e = this.base, n = $0.getExtent.call(this) ;(n[0] = rl(e, n[0])), (n[1] = rl(e, n[1])) var i = this._originalScale, a = i.getExtent() return ( this._fixMin && (n[0] = nl(n[0], a[0])), this._fixMax && (n[1] = nl(n[1], a[1])), n ) }), (t.prototype.unionExtent = function (e) { this._originalScale.unionExtent(e) var n = this.base ;(e[0] = be(e[0]) / be(n)), (e[1] = be(e[1]) / be(n)), $0.unionExtent.call(this, e) }), (t.prototype.unionExtentFromData = function (e, n) { this.unionExtent(e.getApproximateExtent(n)) }), (t.prototype.calcNiceTicks = function (e) { e = e || 10 var n = this._extent, i = n[1] - n[0] if (!(i === 1 / 0 || i <= 0)) { var a = eb(i), o = (e / i) * a for ( o <= 0.5 && (a *= 10); !isNaN(a) && Math.abs(a) < 1 && Math.abs(a) > 0; ) a *= 10 var s = [Pt(rI(n[0] / a) * a), Pt(eI(n[1] / a) * a)] ;(this._interval = a), (this._niceExtent = s) } }), (t.prototype.calcNiceExtent = function (e) { Ga.calcNiceExtent.call(this, e), (this._fixMin = e.fixMin), (this._fixMax = e.fixMax) }), (t.prototype.parse = function (e) { return e }), (t.prototype.contain = function (e) { return (e = be(e) / be(this.base)), Js(e, this._extent) }), (t.prototype.normalize = function (e) { return (e = be(e) / be(this.base)), js(e, this._extent) }), (t.prototype.scale = function (e) { return (e = tl(e, this._extent)), rl(this.base, e) }), (t.type = 'log'), t ) })(pr), X0 = bh.prototype X0.getMinorTicks = Ga.getMinorTicks X0.getLabel = Ga.getLabel function nl(r, t) { return tI(r, or(t)) } pr.registerClass(bh) var nI = bh, iI = (function () { function r(t, e, n) { this._prepareParams(t, e, n) } return ( (r.prototype._prepareParams = function (t, e, n) { n[1] < n[0] && (n = [NaN, NaN]), (this._dataMin = n[0]), (this._dataMax = n[1]) var i = (this._isOrdinal = t.type === 'ordinal') this._needCrossZero = t.type === 'interval' && e.getNeedCrossZero && e.getNeedCrossZero() var a = (this._modelMinRaw = e.get('min', !0)) Q(a) ? (this._modelMinNum = il(t, a({ min: n[0], max: n[1] }))) : a !== 'dataMin' && (this._modelMinNum = il(t, a)) var o = (this._modelMaxRaw = e.get('max', !0)) if ( (Q(o) ? (this._modelMaxNum = il(t, o({ min: n[0], max: n[1] }))) : o !== 'dataMax' && (this._modelMaxNum = il(t, o)), i) ) this._axisDataLen = e.getCategories().length else { var s = e.get('boundaryGap'), l = z(s) ? s : [s || 0, s || 0] typeof l[0] == 'boolean' || typeof l[1] == 'boolean' ? (this._boundaryGapInner = [0, 0]) : (this._boundaryGapInner = [Cr(l[0], 1), Cr(l[1], 1)]) } }), (r.prototype.calculate = function () { var t = this._isOrdinal, e = this._dataMin, n = this._dataMax, i = this._axisDataLen, a = this._boundaryGapInner, o = t ? null : n - e || Math.abs(e), s = this._modelMinRaw === 'dataMin' ? e : this._modelMinNum, l = this._modelMaxRaw === 'dataMax' ? n : this._modelMaxNum, u = s != null, f = l != null s == null && (s = t ? (i ? 0 : NaN) : e - a[0] * o), l == null && (l = t ? (i ? i - 1 : NaN) : n + a[1] * o), (s == null || !isFinite(s)) && (s = NaN), (l == null || !isFinite(l)) && (l = NaN) var h = ao(s) || ao(l) || (t && !i) this._needCrossZero && (s > 0 && l > 0 && !u && (s = 0), s < 0 && l < 0 && !f && (l = 0)) var c = this._determinedMin, v = this._determinedMax return ( c != null && ((s = c), (u = !0)), v != null && ((l = v), (f = !0)), { min: s, max: l, minFixed: u, maxFixed: f, isBlank: h } ) }), (r.prototype.modifyDataMinMax = function (t, e) { this[oI[t]] = e }), (r.prototype.setDeterminedMinMax = function (t, e) { var n = aI[t] this[n] = e }), (r.prototype.freeze = function () { this.frozen = !0 }), r ) })(), aI = { min: '_determinedMin', max: '_determinedMax' }, oI = { min: '_dataMin', max: '_dataMax' } function q0(r, t, e) { var n = r.rawExtentInfo return n || ((n = new iI(r, t, e)), (r.rawExtentInfo = n), n) } function il(r, t) { return t == null ? null : ao(t) ? NaN : r.parse(t) } function K0(r, t) { var e = r.type, n = q0(r, t, r.getExtent()).calculate() r.setBlank(n.isBlank) var i = n.min, a = n.max, o = t.ecModel if (o && e === 'time') { var s = G0('bar', o), l = !1 if ( (A(s, function (h) { l = l || h.getBaseAxis() === t.axis }), l) ) { var u = H0(s), f = sI(i, a, t, u) ;(i = f.min), (a = f.max) } } return { extent: [i, a], fixMin: n.minFixed, fixMax: n.maxFixed } } function sI(r, t, e, n) { var i = e.axis.getExtent(), a = i[1] - i[0], o = G2(n, e.axis) if (o === void 0) return { min: r, max: t } var s = 1 / 0 A(o, function (v) { s = Math.min(v.offset, s) }) var l = -1 / 0 A(o, function (v) { l = Math.max(v.offset + v.width, l) }), (s = Math.abs(s)), (l = Math.abs(l)) var u = s + l, f = t - r, h = 1 - (s + l) / a, c = f / h - f return (t += c * (l / u)), (r -= c * (s / u)), { min: r, max: t } } function Q0(r, t) { var e = t, n = K0(r, e), i = n.extent, a = e.get('splitNumber') r instanceof nI && (r.base = e.get('logBase')) var o = r.type, s = e.get('interval'), l = o === 'interval' || o === 'time' r.setExtent(i[0], i[1]), r.calcNiceExtent({ splitNumber: a, fixMin: n.fixMin, fixMax: n.fixMax, minInterval: l ? e.get('minInterval') : null, maxInterval: l ? e.get('maxInterval') : null }), s != null && r.setInterval && r.setInterval(s) } function lI(r, t) { if (((t = t || r.get('type')), t)) switch (t) { case 'category': return new F0({ ordinalMeta: r.getOrdinalMeta ? r.getOrdinalMeta() : r.getCategories(), extent: [1 / 0, -1 / 0] }) case 'time': return new j2({ locale: r.ecModel.getLocaleModel(), useUTC: r.ecModel.get('useUTC') }) default: return new (pr.getClass(t) || Va)() } } function uI(r) { var t = r.scale.getExtent(), e = t[0], n = t[1] return !((e > 0 && n > 0) || (e < 0 && n < 0)) } function Ha(r) { var t = r.getLabelModel().get('formatter'), e = r.type === 'category' ? r.scale.getExtent()[0] : null return r.scale.type === 'time' ? (function (n) { return function (i, a) { return r.scale.getFormattedLabel(i, a, n) } })(t) : W(t) ? (function (n) { return function (i) { var a = r.scale.getLabel(i), o = n.replace('{value}', a != null ? a : '') return o } })(t) : Q(t) ? (function (n) { return function (i, a) { return ( e != null && (a = i.value - e), n(Th(r, i), a, i.level != null ? { level: i.level } : null) ) } })(t) : function (n) { return r.scale.getLabel(n) } } function Th(r, t) { return r.type === 'category' ? r.scale.getLabel(t) : t.value } function fI(r) { var t = r.model, e = r.scale if (!(!t.get(['axisLabel', 'show']) || e.isBlank())) { var n, i, a = e.getExtent() e instanceof F0 ? (i = e.count()) : ((n = e.getTicks()), (i = n.length)) var o = r.getLabelModel(), s = Ha(r), l, u = 1 i > 40 && (u = Math.ceil(i / 40)) for (var f = 0; f < i; f += u) { var h = n ? n[f] : { value: a[0] + f }, c = s(h, f), v = o.getTextRect(c), d = hI(v, o.get('rotate') || 0) l ? l.union(d) : (l = d) } return l } } function hI(r, t) { var e = (t * Math.PI) / 180, n = r.width, i = r.height, a = n * Math.abs(Math.cos(e)) + Math.abs(i * Math.sin(e)), o = n * Math.abs(Math.sin(e)) + Math.abs(i * Math.cos(e)), s = new vt(r.x, r.y, a, o) return s } function Ch(r) { var t = r.get('interval') return t == null ? 'auto' : t } function J0(r) { return r.type === 'category' && Ch(r.getLabelModel()) === 0 } function j0(r, t) { var e = {} return ( A(r.mapDimensionsAll(t), function (n) { e[M2(r, n)] = !0 }), xt(e) ) } function vI(r, t, e) { t && A(j0(t, e), function (n) { var i = t.getApproximateExtent(n) i[0] < r[0] && (r[0] = i[0]), i[1] > r[1] && (r[1] = i[1]) }) } var cI = (function () { function r() {} return ( (r.prototype.getNeedCrossZero = function () { var t = this.option return !t.scale }), (r.prototype.getCoordSysModel = function () {}), r ) })(), ty = [], dI = { registerPreprocessor: S0, registerProcessor: x0, registerPostInit: t2, registerPostUpdate: e2, registerUpdateLifecycle: vh, registerAction: Je, registerCoordinateSystem: r2, registerLayout: n2, registerVisual: Tn, registerTransform: a2, registerLoading: b0, registerMap: i2, registerImpl: OD, PRIORITY: XD, ComponentModel: _t, ComponentView: xe, SeriesModel: Er, ChartView: Qe, registerComponentModel: function (r) { _t.registerClass(r) }, registerComponentView: function (r) { xe.registerClass(r) }, registerSeriesModel: function (r) { Er.registerClass(r) }, registerChartView: function (r) { Qe.registerClass(r) }, registerSubTypeDefaulter: function (r, t) { _t.registerSubTypeDefaulter(r, t) }, registerPainter: function (r, t) { qw(r, t) } } function Re(r) { if (z(r)) { A(r, function (t) { Re(t) }) return } ot(ty, r) >= 0 || (ty.push(r), Q(r) && (r = { install: r }), r.install(dI)) } var Wa = wt() function pI(r) { return r.type === 'category' ? mI(r) : _I(r) } function gI(r, t) { return r.type === 'category' ? yI(r, t) : { ticks: G(r.scale.getTicks(), function (e) { return e.value }) } } function mI(r) { var t = r.getLabelModel(), e = ey(r, t) return !t.get('show') || r.scale.isBlank() ? { labels: [], labelCategoryInterval: e.labelCategoryInterval } : e } function ey(r, t) { var e = ry(r, 'labels'), n = Ch(t), i = ny(e, n) if (i) return i var a, o return ( Q(n) ? (a = oy(r, n)) : ((o = n === 'auto' ? SI(r) : n), (a = ay(r, o))), iy(e, n, { labels: a, labelCategoryInterval: o }) ) } function yI(r, t) { var e = ry(r, 'ticks'), n = Ch(t), i = ny(e, n) if (i) return i var a, o if (((!t.get('show') || r.scale.isBlank()) && (a = []), Q(n))) a = oy(r, n, !0) else if (n === 'auto') { var s = ey(r, r.getLabelModel()) ;(o = s.labelCategoryInterval), (a = G(s.labels, function (l) { return l.tickValue })) } else (o = n), (a = ay(r, o, !0)) return iy(e, n, { ticks: a, tickCategoryInterval: o }) } function _I(r) { var t = r.scale.getTicks(), e = Ha(r) return { labels: G(t, function (n, i) { return { level: n.level, formattedLabel: e(n, i), rawLabel: r.scale.getLabel(n), tickValue: n.value } }) } } function ry(r, t) { return Wa(r)[t] || (Wa(r)[t] = []) } function ny(r, t) { for (var e = 0; e < r.length; e++) if (r[e].key === t) return r[e].value } function iy(r, t, e) { return r.push({ key: t, value: e }), e } function SI(r) { var t = Wa(r).autoInterval return t != null ? t : (Wa(r).autoInterval = r.calculateCategoryInterval()) } function xI(r) { var t = wI(r), e = Ha(r), n = ((t.axisRotate - t.labelRotate) / 180) * Math.PI, i = r.scale, a = i.getExtent(), o = i.count() if (a[1] - a[0] < 1) return 0 var s = 1 o > 40 && (s = Math.max(1, Math.floor(o / 40))) for ( var l = a[0], u = r.dataToCoord(l + 1) - r.dataToCoord(l), f = Math.abs(u * Math.cos(n)), h = Math.abs(u * Math.sin(n)), c = 0, v = 0; l <= a[1]; l += s ) { var d = 0, p = 0, g = Eo(e({ value: l }), t.font, 'center', 'top') ;(d = g.width * 1.3), (p = g.height * 1.3), (c = Math.max(c, d, 7)), (v = Math.max(v, p, 7)) } var m = c / f, y = v / h isNaN(m) && (m = 1 / 0), isNaN(y) && (y = 1 / 0) var _ = Math.max(0, Math.floor(Math.min(m, y))), S = Wa(r.model), w = r.getExtent(), x = S.lastAutoInterval, b = S.lastTickCount return ( x != null && b != null && Math.abs(x - _) <= 1 && Math.abs(b - o) <= 1 && x > _ && S.axisExtent0 === w[0] && S.axisExtent1 === w[1] ? (_ = x) : ((S.lastTickCount = o), (S.lastAutoInterval = _), (S.axisExtent0 = w[0]), (S.axisExtent1 = w[1])), _ ) } function wI(r) { var t = r.getLabelModel() return { axisRotate: r.getRotate ? r.getRotate() : r.isHorizontal && !r.isHorizontal() ? 90 : 0, labelRotate: t.get('rotate') || 0, font: t.getFont() } } function ay(r, t, e) { var n = Ha(r), i = r.scale, a = i.getExtent(), o = r.getLabelModel(), s = [], l = Math.max((t || 0) + 1, 1), u = a[0], f = i.count() u !== 0 && l > 1 && f / l > 2 && (u = Math.round(Math.ceil(u / l) * l)) var h = J0(r), c = o.get('showMinLabel') || h, v = o.get('showMaxLabel') || h c && u !== a[0] && p(a[0]) for (var d = u; d <= a[1]; d += l) p(d) v && d - l !== a[1] && p(a[1]) function p(g) { var m = { value: g } s.push( e ? g : { formattedLabel: n(m), rawLabel: i.getLabel(m), tickValue: g } ) } return s } function oy(r, t, e) { var n = r.scale, i = Ha(r), a = [] return ( A(n.getTicks(), function (o) { var s = n.getLabel(o), l = o.value t(o.value, s) && a.push(e ? l : { formattedLabel: i(o), rawLabel: s, tickValue: l }) }), a ) } var sy = [0, 1], bI = (function () { function r(t, e, n) { ;(this.onBand = !1), (this.inverse = !1), (this.dim = t), (this.scale = e), (this._extent = n || [0, 0]) } return ( (r.prototype.contain = function (t) { var e = this._extent, n = Math.min(e[0], e[1]), i = Math.max(e[0], e[1]) return t >= n && t <= i }), (r.prototype.containData = function (t) { return this.scale.contain(t) }), (r.prototype.getExtent = function () { return this._extent.slice() }), (r.prototype.getPixelPrecision = function (t) { return $c(t || this.scale.getExtent(), this._extent) }), (r.prototype.setExtent = function (t, e) { var n = this._extent ;(n[0] = t), (n[1] = e) }), (r.prototype.dataToCoord = function (t, e) { var n = this._extent, i = this.scale return ( (t = i.normalize(t)), this.onBand && i.type === 'ordinal' && ((n = n.slice()), ly(n, i.count())), Bt(t, sy, n, e) ) }), (r.prototype.coordToData = function (t, e) { var n = this._extent, i = this.scale this.onBand && i.type === 'ordinal' && ((n = n.slice()), ly(n, i.count())) var a = Bt(t, n, sy, e) return this.scale.scale(a) }), (r.prototype.pointToData = function (t, e) {}), (r.prototype.getTicksCoords = function (t) { t = t || {} var e = t.tickModel || this.getTickModel(), n = gI(this, e), i = n.ticks, a = G( i, function (s) { return { coord: this.dataToCoord( this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(s) : s ), tickValue: s } }, this ), o = e.get('alignWithLabel') return TI(this, a, o, t.clamp), a }), (r.prototype.getMinorTicksCoords = function () { if (this.scale.type === 'ordinal') return [] var t = this.model.getModel('minorTick'), e = t.get('splitNumber') ;(e > 0 && e < 100) || (e = 5) var n = this.scale.getMinorTicks(e), i = G( n, function (a) { return G( a, function (o) { return { coord: this.dataToCoord(o), tickValue: o } }, this ) }, this ) return i }), (r.prototype.getViewLabels = function () { return pI(this).labels }), (r.prototype.getLabelModel = function () { return this.model.getModel('axisLabel') }), (r.prototype.getTickModel = function () { return this.model.getModel('axisTick') }), (r.prototype.getBandWidth = function () { var t = this._extent, e = this.scale.getExtent(), n = e[1] - e[0] + (this.onBand ? 1 : 0) n === 0 && (n = 1) var i = Math.abs(t[1] - t[0]) return Math.abs(i) / n }), (r.prototype.calculateCategoryInterval = function () { return xI(this) }), r ) })() function ly(r, t) { var e = r[1] - r[0], n = t, i = e / n / 2 ;(r[0] += i), (r[1] -= i) } function TI(r, t, e, n) { var i = t.length if (!r.onBand || e || !i) return var a = r.getExtent(), o, s if (i === 1) (t[0].coord = a[0]), (o = t[1] = { coord: a[0] }) else { var l = t[i - 1].tickValue - t[0].tickValue, u = (t[i - 1].coord - t[0].coord) / l A(t, function (v) { v.coord -= u / 2 }) var f = r.scale.getExtent() ;(s = 1 + f[1] - t[i - 1].tickValue), (o = { coord: t[i - 1].coord + u * s }), t.push(o) } var h = a[0] > a[1] c(t[0].coord, a[0]) && (n ? (t[0].coord = a[0]) : t.shift()), n && c(a[0], t[0].coord) && t.unshift({ coord: a[0] }), c(a[1], o.coord) && (n ? (o.coord = a[1]) : t.pop()), n && c(o.coord, a[1]) && t.push({ coord: a[1] }) function c(v, d) { return (v = Pt(v)), (d = Pt(d)), h ? v > d : v < d } } var CI = bI, Ua = Math.PI * 2, An = ur.CMD, AI = ['top', 'right', 'bottom', 'left'] function MI(r, t, e, n, i) { var a = e.width, o = e.height switch (r) { case 'top': n.set(e.x + a / 2, e.y - t), i.set(0, -1) break case 'bottom': n.set(e.x + a / 2, e.y + o + t), i.set(0, 1) break case 'left': n.set(e.x - t, e.y + o / 2), i.set(-1, 0) break case 'right': n.set(e.x + a + t, e.y + o / 2), i.set(1, 0) break } } function DI(r, t, e, n, i, a, o, s, l) { ;(o -= r), (s -= t) var u = Math.sqrt(o * o + s * s) ;(o /= u), (s /= u) var f = o * e + r, h = s * e + t if (Math.abs(n - i) % Ua < 1e-4) return (l[0] = f), (l[1] = h), u - e if (a) { var c = n ;(n = Ir(i)), (i = Ir(c)) } else (n = Ir(n)), (i = Ir(i)) n > i && (i += Ua) var v = Math.atan2(s, o) if ((v < 0 && (v += Ua), (v >= n && v <= i) || (v + Ua >= n && v + Ua <= i))) return (l[0] = f), (l[1] = h), u - e var d = e * Math.cos(n) + r, p = e * Math.sin(n) + t, g = e * Math.cos(i) + r, m = e * Math.sin(i) + t, y = (d - o) * (d - o) + (p - s) * (p - s), _ = (g - o) * (g - o) + (m - s) * (m - s) return y < _ ? ((l[0] = d), (l[1] = p), Math.sqrt(y)) : ((l[0] = g), (l[1] = m), Math.sqrt(_)) } function al(r, t, e, n, i, a, o, s) { var l = i - r, u = a - t, f = e - r, h = n - t, c = Math.sqrt(f * f + h * h) ;(f /= c), (h /= c) var v = l * f + u * h, d = v / c s && (d = Math.min(Math.max(d, 0), 1)), (d *= c) var p = (o[0] = r + d * f), g = (o[1] = t + d * h) return Math.sqrt((p - i) * (p - i) + (g - a) * (g - a)) } function uy(r, t, e, n, i, a, o) { e < 0 && ((r = r + e), (e = -e)), n < 0 && ((t = t + n), (n = -n)) var s = r + e, l = t + n, u = (o[0] = Math.min(Math.max(i, r), s)), f = (o[1] = Math.min(Math.max(a, t), l)) return Math.sqrt((u - i) * (u - i) + (f - a) * (f - a)) } var Ee = [] function II(r, t, e) { var n = uy(t.x, t.y, t.width, t.height, r.x, r.y, Ee) return e.set(Ee[0], Ee[1]), n } function LI(r, t, e) { for ( var n = 0, i = 0, a = 0, o = 0, s, l, u = 1 / 0, f = t.data, h = r.x, c = r.y, v = 0; v < f.length; ) { var d = f[v++] v === 1 && ((n = f[v]), (i = f[v + 1]), (a = n), (o = i)) var p = u switch (d) { case An.M: ;(a = f[v++]), (o = f[v++]), (n = a), (i = o) break case An.L: ;(p = al(n, i, f[v], f[v + 1], h, c, Ee, !0)), (n = f[v++]), (i = f[v++]) break case An.C: ;(p = mc( n, i, f[v++], f[v++], f[v++], f[v++], f[v], f[v + 1], h, c, Ee )), (n = f[v++]), (i = f[v++]) break case An.Q: ;(p = Sc(n, i, f[v++], f[v++], f[v], f[v + 1], h, c, Ee)), (n = f[v++]), (i = f[v++]) break case An.A: var g = f[v++], m = f[v++], y = f[v++], _ = f[v++], S = f[v++], w = f[v++] v += 1 var x = !!(1 - f[v++]) ;(s = Math.cos(S) * y + g), (l = Math.sin(S) * _ + m), v <= 1 && ((a = s), (o = l)) var b = ((h - g) * _) / y + g ;(p = DI(g, m, _, S, S + w, x, b, c, Ee)), (n = Math.cos(S + w) * y + g), (i = Math.sin(S + w) * _ + m) break case An.R: ;(a = n = f[v++]), (o = i = f[v++]) var T = f[v++], C = f[v++] p = uy(a, o, T, C, h, c, Ee) break case An.Z: ;(p = al(n, i, a, o, h, c, Ee, !0)), (n = a), (i = o) break } p < u && ((u = p), e.set(Ee[0], Ee[1])) } return u } var Oe = new Z(), gt = new Z(), Tt = new Z(), je = new Z(), tr = new Z() function fy(r, t) { if (!!r) { var e = r.getTextGuideLine(), n = r.getTextContent() if (!!(n && e)) { var i = r.textGuideLineConfig || {}, a = [ [0, 0], [0, 0], [0, 0] ], o = i.candidates || AI, s = n.getBoundingRect().clone() s.applyTransform(n.getComputedTransform()) var l = 1 / 0, u = i.anchor, f = r.getComputedTransform(), h = f && Lo([], f), c = t.get('length2') || 0 u && Tt.copy(u) for (var v = 0; v < o.length; v++) { var d = o[v] MI(d, 0, s, Oe, je), Z.scaleAndAdd(gt, Oe, je, c), gt.transform(h) var p = r.getBoundingRect(), g = u ? u.distance(gt) : r instanceof st ? LI(gt, r.path, Tt) : II(gt, p, Tt) g < l && ((l = g), gt.transform(f), Tt.transform(f), Tt.toArray(a[0]), gt.toArray(a[1]), Oe.toArray(a[2])) } hy(a, t.get('minTurnAngle')), e.setShape({ points: a }) } } } var ol = [], Jt = new Z() function hy(r, t) { if (t <= 180 && t > 0) { ;(t = (t / 180) * Math.PI), Oe.fromArray(r[0]), gt.fromArray(r[1]), Tt.fromArray(r[2]), Z.sub(je, Oe, gt), Z.sub(tr, Tt, gt) var e = je.len(), n = tr.len() if (!(e < 0.001 || n < 0.001)) { je.scale(1 / e), tr.scale(1 / n) var i = je.dot(tr), a = Math.cos(t) if (a < i) { var o = al(gt.x, gt.y, Tt.x, Tt.y, Oe.x, Oe.y, ol, !1) Jt.fromArray(ol), Jt.scaleAndAdd(tr, o / Math.tan(Math.PI - t)) var s = Tt.x !== gt.x ? (Jt.x - gt.x) / (Tt.x - gt.x) : (Jt.y - gt.y) / (Tt.y - gt.y) if (isNaN(s)) return s < 0 ? Z.copy(Jt, gt) : s > 1 && Z.copy(Jt, Tt), Jt.toArray(r[1]) } } } } function PI(r, t, e) { if (e <= 180 && e > 0) { ;(e = (e / 180) * Math.PI), Oe.fromArray(r[0]), gt.fromArray(r[1]), Tt.fromArray(r[2]), Z.sub(je, gt, Oe), Z.sub(tr, Tt, gt) var n = je.len(), i = tr.len() if (!(n < 0.001 || i < 0.001)) { je.scale(1 / n), tr.scale(1 / i) var a = je.dot(t), o = Math.cos(e) if (a < o) { var s = al(gt.x, gt.y, Tt.x, Tt.y, Oe.x, Oe.y, ol, !1) Jt.fromArray(ol) var l = Math.PI / 2, u = Math.acos(tr.dot(t)), f = l + u - e if (f >= l) Z.copy(Jt, Tt) else { Jt.scaleAndAdd(tr, s / Math.tan(Math.PI / 2 - f)) var h = Tt.x !== gt.x ? (Jt.x - gt.x) / (Tt.x - gt.x) : (Jt.y - gt.y) / (Tt.y - gt.y) if (isNaN(h)) return h < 0 ? Z.copy(Jt, gt) : h > 1 && Z.copy(Jt, Tt) } Jt.toArray(r[1]) } } } } function vy(r, t, e, n) { var i = e === 'normal', a = i ? r : r.ensureState(e) a.ignore = t var o = n.get('smooth') o && o === !0 && (o = 0.3), (a.shape = a.shape || {}), o > 0 && (a.shape.smooth = o) var s = n.getModel('lineStyle').getLineStyle() i ? r.useStyle(s) : (a.style = s) } function RI(r, t) { var e = t.smooth, n = t.points if (!!n) if ((r.moveTo(n[0][0], n[0][1]), e > 0 && n.length >= 3)) { var i = Bl(n[0], n[1]), a = Bl(n[1], n[2]) if (!i || !a) { r.lineTo(n[1][0], n[1][1]), r.lineTo(n[2][0], n[2][1]) return } var o = Math.min(i, a) * e, s = lo([], n[1], n[0], o / i), l = lo([], n[1], n[2], o / a), u = lo([], s, l, 0.5) r.bezierCurveTo(s[0], s[1], s[0], s[1], u[0], u[1]), r.bezierCurveTo(l[0], l[1], l[0], l[1], n[2][0], n[2][1]) } else for (var f = 1; f < n.length; f++) r.lineTo(n[f][0], n[f][1]) } function cy(r, t, e) { var n = r.getTextGuideLine(), i = r.getTextContent() if (!i) { n && r.removeTextGuideLine() return } for ( var a = t.normal, o = a.get('show'), s = i.ignore, l = 0; l < Yo.length; l++ ) { var u = Yo[l], f = t[u], h = u === 'normal' if (f) { var c = f.get('show'), v = h ? s : ht(i.states[u] && i.states[u].ignore, s) if (v || !ht(c, o)) { var d = h ? n : n && n.states[u] d && (d.ignore = !0) continue } n || ((n = new ai()), r.setTextGuideLine(n), !h && (s || !o) && vy(n, !0, 'normal', t.normal), r.stateProxy && (n.stateProxy = r.stateProxy)), vy(n, !1, u, f) } } if (n) { j(n.style, e), (n.style.fill = null) var p = a.get('showAbove'), g = (r.textGuideLineConfig = r.textGuideLineConfig || {}) ;(g.showAbove = p || !1), (n.buildPath = RI) } } function dy(r, t) { t = t || 'labelLine' for (var e = { normal: r.getModel(t) }, n = 0; n < pe.length; n++) { var i = pe[n] e[i] = r.getModel([i, t]) } return e } function py(r) { for (var t = [], e = 0; e < r.length; e++) { var n = r[e] if (!n.defaultAttr.ignore) { var i = n.label, a = i.getComputedTransform(), o = i.getBoundingRect(), s = !a || (a[1] < 1e-5 && a[2] < 1e-5), l = i.style.margin || 0, u = o.clone() u.applyTransform(a), (u.x -= l / 2), (u.y -= l / 2), (u.width += l), (u.height += l) var f = s ? new rs(o, a) : null t.push({ label: i, labelLine: n.labelLine, rect: u, localRect: o, obb: f, priority: n.priority, defaultAttr: n.defaultAttr, layoutOption: n.computedLayoutOption, axisAligned: s, transform: a }) } } return t } function gy(r, t, e, n, i, a) { var o = r.length if (o < 2) return r.sort(function (T, C) { return T.rect[t] - C.rect[t] }) for (var s = 0, l, u = !1, f = 0, h = 0; h < o; h++) { var c = r[h], v = c.rect ;(l = v[t] - s), l < 0 && ((v[t] -= l), (c.label[t] -= l), (u = !0)) var d = Math.max(-l, 0) ;(f += d), (s = v[t] + v[e]) } f > 0 && a && w(-f / o, 0, o) var p = r[0], g = r[o - 1], m, y _(), m < 0 && x(-m, 0.8), y < 0 && x(y, 0.8), _(), S(m, y, 1), S(y, m, -1), _(), m < 0 && b(-m), y < 0 && b(y) function _() { ;(m = p.rect[t] - n), (y = i - g.rect[t] - g.rect[e]) } function S(T, C, M) { if (T < 0) { var D = Math.min(C, -T) if (D > 0) { w(D * M, 0, o) var I = D + T I < 0 && x(-I * M, 1) } else x(-T * M, 1) } } function w(T, C, M) { T !== 0 && (u = !0) for (var D = C; D < M; D++) { var I = r[D], L = I.rect ;(L[t] += T), (I.label[t] += T) } } function x(T, C) { for (var M = [], D = 0, I = 1; I < o; I++) { var L = r[I - 1].rect, P = Math.max(r[I].rect[t] - L[t] - L[e], 0) M.push(P), (D += P) } if (!!D) { var R = Math.min(Math.abs(T) / D, C) if (T > 0) for (var I = 0; I < o - 1; I++) { var O = M[I] * R w(O, 0, I + 1) } else for (var I = o - 1; I > 0; I--) { var O = M[I - 1] * R w(-O, I, o) } } } function b(T) { var C = T < 0 ? -1 : 1 T = Math.abs(T) for (var M = Math.ceil(T / (o - 1)), D = 0; D < o - 1; D++) if ((C > 0 ? w(M, 0, D + 1) : w(-M, o - D - 1, o), (T -= M), T <= 0)) return } return u } function EI(r, t, e, n) { return gy(r, 'x', 'width', t, e, n) } function my(r, t, e, n) { return gy(r, 'y', 'height', t, e, n) } function yy(r) { var t = [] r.sort(function (p, g) { return g.priority - p.priority }) var e = new vt(0, 0, 0, 0) function n(p) { if (!p.ignore) { var g = p.ensureState('emphasis') g.ignore == null && (g.ignore = !1) } p.ignore = !0 } for (var i = 0; i < r.length; i++) { var a = r[i], o = a.axisAligned, s = a.localRect, l = a.transform, u = a.label, f = a.labelLine e.copy(a.rect), (e.width -= 0.1), (e.height -= 0.1), (e.x += 0.05), (e.y += 0.05) for (var h = a.obb, c = !1, v = 0; v < t.length; v++) { var d = t[v] if (!!e.intersect(d.rect)) { if (o && d.axisAligned) { c = !0 break } if ( (d.obb || (d.obb = new rs(d.localRect, d.transform)), h || (h = new rs(s, l)), h.intersect(d.obb)) ) { c = !0 break } } } c ? (n(u), f && n(f)) : (u.attr('ignore', a.defaultAttr.ignore), f && f.attr('ignore', a.defaultAttr.labelGuideIgnore), t.push(a)) } } function OI(r) { if (r) { for (var t = [], e = 0; e < r.length; e++) t.push(r[e].slice()) return t } } function kI(r, t) { var e = r.label, n = t && t.getTextGuideLine() return { dataIndex: r.dataIndex, dataType: r.dataType, seriesIndex: r.seriesModel.seriesIndex, text: r.label.style.text, rect: r.hostRect, labelRect: r.rect, align: e.style.align, verticalAlign: e.style.verticalAlign, labelLinePoints: OI(n && n.shape.points) } } var _y = ['align', 'verticalAlign', 'width', 'height', 'fontSize'], le = new Wi(), Ah = wt(), BI = wt() function sl(r, t, e) { for (var n = 0; n < e.length; n++) { var i = e[n] t[i] != null && (r[i] = t[i]) } } var ll = ['x', 'y', 'rotation'], NI = (function () { function r() { ;(this._labelList = []), (this._chartViewList = []) } return ( (r.prototype.clearLabels = function () { ;(this._labelList = []), (this._chartViewList = []) }), (r.prototype._addLabel = function (t, e, n, i, a) { var o = i.style, s = i.__hostTarget, l = s.textConfig || {}, u = i.getComputedTransform(), f = i.getBoundingRect().plain() vt.applyTransform(f, f, u), u ? le.setLocalTransform(u) : ((le.x = le.y = le.rotation = le.originX = le.originY = 0), (le.scaleX = le.scaleY = 1)) var h = i.__hostTarget, c if (h) { c = h.getBoundingRect().plain() var v = h.getComputedTransform() vt.applyTransform(c, c, v) } var d = c && h.getTextGuideLine() this._labelList.push({ label: i, labelLine: d, seriesModel: n, dataIndex: t, dataType: e, layoutOption: a, computedLayoutOption: null, rect: f, hostRect: c, priority: c ? c.width * c.height : 0, defaultAttr: { ignore: i.ignore, labelGuideIgnore: d && d.ignore, x: le.x, y: le.y, scaleX: le.scaleX, scaleY: le.scaleY, rotation: le.rotation, style: { x: o.x, y: o.y, align: o.align, verticalAlign: o.verticalAlign, width: o.width, height: o.height, fontSize: o.fontSize }, cursor: i.cursor, attachedPos: l.position, attachedRot: l.rotation } }) }), (r.prototype.addLabelsOfSeries = function (t) { var e = this this._chartViewList.push(t) var n = t.__model, i = n.get('labelLayout') !(Q(i) || xt(i).length) || t.group.traverse(function (a) { if (a.ignore) return !0 var o = a.getTextContent(), s = ct(a) o && !o.disableLabelLayout && e._addLabel(s.dataIndex, s.dataType, n, o, i) }) }), (r.prototype.updateLayoutConfig = function (t) { var e = t.getWidth(), n = t.getHeight() function i(_, S) { return function () { fy(_, S) } } for (var a = 0; a < this._labelList.length; a++) { var o = this._labelList[a], s = o.label, l = s.__hostTarget, u = o.defaultAttr, f = void 0 Q(o.layoutOption) ? (f = o.layoutOption(kI(o, l))) : (f = o.layoutOption), (f = f || {}), (o.computedLayoutOption = f) var h = Math.PI / 180 l && l.setTextConfig({ local: !1, position: f.x != null || f.y != null ? null : u.attachedPos, rotation: f.rotate != null ? f.rotate * h : u.attachedRot, offset: [f.dx || 0, f.dy || 0] }) var c = !1 if ( (f.x != null ? ((s.x = yt(f.x, e)), s.setStyle('x', 0), (c = !0)) : ((s.x = u.x), s.setStyle('x', u.style.x)), f.y != null ? ((s.y = yt(f.y, n)), s.setStyle('y', 0), (c = !0)) : ((s.y = u.y), s.setStyle('y', u.style.y)), f.labelLinePoints) ) { var v = l.getTextGuideLine() v && (v.setShape({ points: f.labelLinePoints }), (c = !1)) } var d = Ah(s) ;(d.needsUpdateLabelLine = c), (s.rotation = f.rotate != null ? f.rotate * h : u.rotation), (s.scaleX = u.scaleX), (s.scaleY = u.scaleY) for (var p = 0; p < _y.length; p++) { var g = _y[p] s.setStyle(g, f[g] != null ? f[g] : u.style[g]) } if (f.draggable) { if (((s.draggable = !0), (s.cursor = 'move'), l)) { var m = o.seriesModel if (o.dataIndex != null) { var y = o.seriesModel.getData(o.dataType) m = y.getItemModel(o.dataIndex) } s.on('drag', i(l, m.getModel('labelLine'))) } } else s.off('drag'), (s.cursor = u.cursor) } }), (r.prototype.layout = function (t) { var e = t.getWidth(), n = t.getHeight(), i = py(this._labelList), a = Lt(i, function (l) { return l.layoutOption.moveOverlap === 'shiftX' }), o = Lt(i, function (l) { return l.layoutOption.moveOverlap === 'shiftY' }) EI(a, 0, e), my(o, 0, n) var s = Lt(i, function (l) { return l.layoutOption.hideOverlap }) yy(s) }), (r.prototype.processLabelsOverall = function () { var t = this A(this._chartViewList, function (e) { var n = e.__model, i = e.ignoreLabelLineUpdate, a = n.isAnimationEnabled() e.group.traverse(function (o) { if (o.ignore && !o.forceLabelAnimation) return !0 var s = !i, l = o.getTextContent() !s && l && (s = Ah(l).needsUpdateLabelLine), s && t._updateLabelLine(o, n), a && t._animateLabels(o, n) }) }) }), (r.prototype._updateLabelLine = function (t, e) { var n = t.getTextContent(), i = ct(t), a = i.dataIndex if (n && a != null) { var o = e.getData(i.dataType), s = o.getItemModel(a), l = {}, u = o.getItemVisual(a, 'style'), f = o.getVisual('drawType') l.stroke = u[f] var h = s.getModel('labelLine') cy(t, dy(s), l), fy(t, h) } }), (r.prototype._animateLabels = function (t, e) { var n = t.getTextContent(), i = t.getTextGuideLine() if ( n && (t.forceLabelAnimation || (!n.ignore && !n.invisible && !t.disableLabelAnimation && !oi(t))) ) { var a = Ah(n), o = a.oldLayout, s = ct(t), l = s.dataIndex, u = { x: n.x, y: n.y, rotation: n.rotation }, f = e.getData(s.dataType) if (o) { n.attr(o) var c = t.prevStates c && (ot(c, 'select') >= 0 && n.attr(a.oldLayoutSelect), ot(c, 'emphasis') >= 0 && n.attr(a.oldLayoutEmphasis)), kt(n, u, e, l) } else if ((n.attr(u), !si(n).valueAnimation)) { var h = ht(n.style.opacity, 1) ;(n.style.opacity = 0), Wt(n, { style: { opacity: h } }, e, l) } if (((a.oldLayout = u), n.states.select)) { var v = (a.oldLayoutSelect = {}) sl(v, u, ll), sl(v, n.states.select, ll) } if (n.states.emphasis) { var d = (a.oldLayoutEmphasis = {}) sl(d, u, ll), sl(d, n.states.emphasis, ll) } NC(n, l, f, e, e) } if (i && !i.ignore && !i.invisible) { var a = BI(i), o = a.oldLayout, p = { points: i.shape.points } o ? (i.attr({ shape: o }), kt(i, { shape: p }, e)) : (i.setShape(p), (i.style.strokePercent = 0), Wt(i, { style: { strokePercent: 1 } }, e)), (a.oldLayout = p) } }), r ) })(), FI = NI, Mh = wt() function zI(r) { r.registerUpdateLifecycle('series:beforeupdate', function (t, e, n) { var i = Mh(e).labelManager i || (i = Mh(e).labelManager = new FI()), i.clearLabels() }), r.registerUpdateLifecycle('series:layoutlabels', function (t, e, n) { var i = Mh(e).labelManager n.updatedSeries.forEach(function (a) { i.addLabelsOfSeries(e.getViewOfSeriesModel(a)) }), i.updateLayoutConfig(e), i.layout(e), i.processLabelsOverall() }) } var VI = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), (e.hasSymbolVisual = !0), e } return ( (t.prototype.getInitialData = function (e) { return mh(null, this, { useEncodeDefaulter: !0 }) }), (t.prototype.getLegendIcon = function (e) { var n = new At(), i = Or( 'line', 0, e.itemHeight / 2, e.itemWidth, 0, e.lineStyle.stroke, !1 ) n.add(i), i.setStyle(e.lineStyle) var a = this.getData().getVisual('symbol'), o = this.getData().getVisual('symbolRotate'), s = a === 'none' ? 'circle' : a, l = e.itemHeight * 0.8, u = Or( s, (e.itemWidth - l) / 2, (e.itemHeight - l) / 2, l, l, e.itemStyle.fill ) n.add(u), u.setStyle(e.itemStyle) var f = e.iconRotate === 'inherit' ? o : e.iconRotate || 0 return ( (u.rotation = (f * Math.PI) / 180), u.setOrigin([e.itemWidth / 2, e.itemHeight / 2]), s.indexOf('empty') > -1 && ((u.style.stroke = u.style.fill), (u.style.fill = '#fff'), (u.style.lineWidth = 2)), n ) }), (t.type = 'series.line'), (t.dependencies = ['grid', 'polar']), (t.defaultOption = { z: 3, coordinateSystem: 'cartesian2d', legendHoverLink: !0, clip: !0, label: { position: 'top' }, endLabel: { show: !1, valueAnimation: !0, distance: 8 }, lineStyle: { width: 2, type: 'solid' }, emphasis: { scale: !0 }, 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, universalTransition: { divideShape: 'clone' }, triggerLineEvent: !1 }), t ) })(Er), GI = VI function Dh(r, t) { var e = r.mapDimensionsAll('defaultedLabel'), n = e.length if (n === 1) { var i = pi(r, t, e[0]) return i != null ? i + '' : null } else if (n) { for (var a = [], o = 0; o < e.length; o++) a.push(pi(r, t, e[o])) return a.join(' ') } } function Sy(r, t) { var e = r.mapDimensionsAll('defaultedLabel') if (!z(t)) return t + '' for (var n = [], i = 0; i < e.length; i++) { var a = r.getDimensionIndex(e[i]) a >= 0 && n.push(t[a]) } return n.join(' ') } var HI = (function (r) { B(t, r) function t(e, n, i, a) { var o = r.call(this) || this return o.updateData(e, n, i, a), o } return ( (t.prototype._createSymbol = function (e, n, i, a, o) { this.removeAll() var s = Or(e, -1, -1, 2, 2, null, o) s.attr({ z2: 100, culling: !0, scaleX: a[0] / 2, scaleY: a[1] / 2 }), (s.drift = WI), (this._symbolType = e), this.add(s) }), (t.prototype.stopSymbolAnimation = function (e) { this.childAt(0).stopAnimation(null, e) }), (t.prototype.getSymbolType = function () { return this._symbolType }), (t.prototype.getSymbolPath = function () { return this.childAt(0) }), (t.prototype.highlight = function () { ei(this.childAt(0)) }), (t.prototype.downplay = function () { ri(this.childAt(0)) }), (t.prototype.setZ = function (e, n) { var i = this.childAt(0) ;(i.zlevel = e), (i.z = n) }), (t.prototype.setDraggable = function (e, n) { var i = this.childAt(0) ;(i.draggable = e), (i.cursor = !n && e ? 'move' : i.cursor) }), (t.prototype.updateData = function (e, n, i, a) { this.silent = !1 var o = e.getItemVisual(n, 'symbol') || 'circle', s = e.hostModel, l = t.getSymbolSize(e, n), u = o !== this._symbolType, f = a && a.disableAnimation if (u) { var h = e.getItemVisual(n, 'symbolKeepAspect') this._createSymbol(o, e, n, l, h) } else { var c = this.childAt(0) c.silent = !1 var v = { scaleX: l[0] / 2, scaleY: l[1] / 2 } f ? c.attr(v) : kt(c, v, s, n), lf(c) } if ((this._updateCommon(e, n, l, i, a), u)) { var c = this.childAt(0) if (!f) { var v = { scaleX: this._sizeX, scaleY: this._sizeY, style: { opacity: c.style.opacity } } ;(c.scaleX = c.scaleY = 0), (c.style.opacity = 0), Wt(c, v, s, n) } } f && this.childAt(0).stopAnimation('leave') }), (t.prototype._updateCommon = function (e, n, i, a, o) { var s = this.childAt(0), l = e.hostModel, u, f, h, c, v, d, p, g, m if ( (a && ((u = a.emphasisItemStyle), (f = a.blurItemStyle), (h = a.selectItemStyle), (c = a.focus), (v = a.blurScope), (p = a.labelStatesModels), (g = a.hoverScale), (m = a.cursorStyle), (d = a.emphasisDisabled)), !a || e.hasItemOption) ) { var y = a && a.itemModel ? a.itemModel : e.getItemModel(n), _ = y.getModel('emphasis') ;(u = _.getModel('itemStyle').getItemStyle()), (h = y.getModel(['select', 'itemStyle']).getItemStyle()), (f = y.getModel(['blur', 'itemStyle']).getItemStyle()), (c = _.get('focus')), (v = _.get('blurScope')), (d = _.get('disabled')), (p = va(y)), (g = _.getShallow('scale')), (m = y.getShallow('cursor')) } var S = e.getItemVisual(n, 'symbolRotate') s.attr('rotation', ((S || 0) * Math.PI) / 180 || 0) var w = Rm(e.getItemVisual(n, 'symbolOffset'), i) w && ((s.x = w[0]), (s.y = w[1])), m && s.attr('cursor', m) var x = e.getItemVisual(n, 'style'), b = x.fill if (s instanceof un) { var T = s.style s.useStyle( N( { image: T.image, x: T.x, y: T.y, width: T.width, height: T.height }, x ) ) } else s.__isEmptyBrush ? s.useStyle(N({}, x)) : s.useStyle(x), (s.style.decal = null), s.setColor(b, o && o.symbolInnerColor), (s.style.strokeNoScale = !0) var C = e.getItemVisual(n, 'liftZ'), M = this._z2 C != null ? M == null && ((this._z2 = s.z2), (s.z2 += C)) : M != null && ((s.z2 = M), (this._z2 = null)) var D = o && o.useNameLabel ha(s, p, { labelFetcher: l, labelDataIndex: n, defaultText: I, inheritColor: b, defaultOpacity: x.opacity }) function I(R) { return D ? e.getName(R) : Dh(e, R) } ;(this._sizeX = i[0] / 2), (this._sizeY = i[1] / 2) var L = s.ensureState('emphasis') if ( ((L.style = u), (s.ensureState('select').style = h), (s.ensureState('blur').style = f), g) ) { var P = Math.max(dt(g) ? g : 1.1, 3 / this._sizeY) ;(L.scaleX = this._sizeX * P), (L.scaleY = this._sizeY * P) } this.setSymbolScale(1), aa(this, c, v, d) }), (t.prototype.setSymbolScale = function (e) { this.scaleX = this.scaleY = e }), (t.prototype.fadeOut = function (e, n, i) { var a = this.childAt(0), o = ct(this).dataIndex, s = i && i.animation if (((this.silent = a.silent = !0), i && i.fadeLabel)) { var l = a.getTextContent() l && is(l, { style: { opacity: 0 } }, n, { dataIndex: o, removeOpt: s, cb: function () { a.removeTextContent() } }) } else a.removeTextContent() is(a, { style: { opacity: 0 }, scaleX: 0, scaleY: 0 }, n, { dataIndex: o, cb: e, removeOpt: s }) }), (t.getSymbolSize = function (e, n) { return gD(e.getItemVisual(n, 'symbolSize')) }), t ) })(At) function WI(r, t) { this.parent.drift(r, t) } var Ih = HI function Lh(r, t, e, n) { return ( t && !isNaN(t[0]) && !isNaN(t[1]) && !(n.isIgnore && n.isIgnore(e)) && !(n.clipShape && !n.clipShape.contain(t[0], t[1])) && r.getItemVisual(e, 'symbol') !== 'none' ) } function xy(r) { return r != null && !Y(r) && (r = { isIgnore: r }), r || {} } function wy(r) { var t = r.hostModel, e = t.getModel('emphasis') return { emphasisItemStyle: e.getModel('itemStyle').getItemStyle(), blurItemStyle: t.getModel(['blur', 'itemStyle']).getItemStyle(), selectItemStyle: t.getModel(['select', 'itemStyle']).getItemStyle(), focus: e.get('focus'), blurScope: e.get('blurScope'), emphasisDisabled: e.get('disabled'), hoverScale: e.get('scale'), labelStatesModels: va(t), cursorStyle: t.get('cursor') } } var UI = (function () { function r(t) { ;(this.group = new At()), (this._SymbolCtor = t || Ih) } return ( (r.prototype.updateData = function (t, e) { ;(this._progressiveEls = null), (e = xy(e)) var n = this.group, i = t.hostModel, a = this._data, o = this._SymbolCtor, s = e.disableAnimation, l = wy(t), u = { disableAnimation: s }, f = e.getSymbolPoint || function (h) { return t.getItemLayout(h) } a || n.removeAll(), t .diff(a) .add(function (h) { var c = f(h) if (Lh(t, c, h, e)) { var v = new o(t, h, l, u) v.setPosition(c), t.setItemGraphicEl(h, v), n.add(v) } }) .update(function (h, c) { var v = a.getItemGraphicEl(c), d = f(h) if (!Lh(t, d, h, e)) { n.remove(v) return } var p = t.getItemVisual(h, 'symbol') || 'circle', g = v && v.getSymbolType && v.getSymbolType() if (!v || (g && g !== p)) n.remove(v), (v = new o(t, h, l, u)), v.setPosition(d) else { v.updateData(t, h, l, u) var m = { x: d[0], y: d[1] } s ? v.attr(m) : kt(v, m, i) } n.add(v), t.setItemGraphicEl(h, v) }) .remove(function (h) { var c = a.getItemGraphicEl(h) c && c.fadeOut(function () { n.remove(c) }, i) }) .execute(), (this._getSymbolPoint = f), (this._data = t) }), (r.prototype.updateLayout = function () { var t = this, e = this._data e && e.eachItemGraphicEl(function (n, i) { var a = t._getSymbolPoint(i) n.setPosition(a), n.markRedraw() }) }), (r.prototype.incrementalPrepareUpdate = function (t) { ;(this._seriesScope = wy(t)), (this._data = null), this.group.removeAll() }), (r.prototype.incrementalUpdate = function (t, e, n) { ;(this._progressiveEls = []), (n = xy(n)) function i(l) { l.isGroup || ((l.incremental = !0), (l.ensureState('emphasis').hoverLayer = !0)) } for (var a = t.start; a < t.end; a++) { var o = e.getItemLayout(a) if (Lh(e, o, a, n)) { var s = new this._SymbolCtor(e, a, this._seriesScope) s.traverse(i), s.setPosition(o), this.group.add(s), e.setItemGraphicEl(a, s), this._progressiveEls.push(s) } } }), (r.prototype.eachRendered = function (t) { hs(this._progressiveEls || this.group, t) }), (r.prototype.remove = function (t) { var e = this.group, n = this._data n && t ? n.eachItemGraphicEl(function (i) { i.fadeOut(function () { e.remove(i) }, n.hostModel) }) : e.removeAll() }), r ) })(), YI = UI function by(r, t, e) { var n = r.getBaseAxis(), i = r.getOtherAxis(n), a = ZI(i, e), o = n.dim, s = i.dim, l = t.mapDimension(s), u = t.mapDimension(o), f = s === 'x' || s === 'radius' ? 1 : 0, h = G(r.dimensions, function (d) { return t.mapDimension(d) }), c = !1, v = t.getCalculationInfo('stackResultDimension') return ( Si(t, h[0]) && ((c = !0), (h[0] = v)), Si(t, h[1]) && ((c = !0), (h[1] = v)), { dataDimsForPoint: h, valueStart: a, valueAxisDim: s, baseAxisDim: o, stacked: !!c, valueDim: l, baseDim: u, baseDataOffset: f, stackedOverDimension: t.getCalculationInfo('stackedOverDimension') } ) } function ZI(r, t) { var e = 0, n = r.scale.getExtent() return ( t === 'start' ? (e = n[0]) : t === 'end' ? (e = n[1]) : dt(t) && !isNaN(t) ? (e = t) : n[0] > 0 ? (e = n[0]) : n[1] < 0 && (e = n[1]), e ) } function Ty(r, t, e, n) { var i = NaN r.stacked && (i = e.get(e.getCalculationInfo('stackedOverDimension'), n)), isNaN(i) && (i = r.valueStart) var a = r.baseDataOffset, o = [] return (o[a] = e.get(r.baseDim, n)), (o[1 - a] = i), t.dataToPoint(o) } function $I(r, t) { var e = [] return ( t .diff(r) .add(function (n) { e.push({ cmd: '+', idx: n }) }) .update(function (n, i) { e.push({ cmd: '=', idx: i, idx1: n }) }) .remove(function (n) { e.push({ cmd: '-', idx: n }) }) .execute(), e ) } function XI(r, t, e, n, i, a, o, s) { for ( var l = $I(r, t), u = [], f = [], h = [], c = [], v = [], d = [], p = [], g = by(i, t, o), m = r.getLayout('points') || [], y = t.getLayout('points') || [], _ = 0; _ < l.length; _++ ) { var S = l[_], w = !0, x = void 0, b = void 0 switch (S.cmd) { case '=': ;(x = S.idx * 2), (b = S.idx1 * 2) var T = m[x], C = m[x + 1], M = y[b], D = y[b + 1] ;(isNaN(T) || isNaN(C)) && ((T = M), (C = D)), u.push(T, C), f.push(M, D), h.push(e[x], e[x + 1]), c.push(n[b], n[b + 1]), p.push(t.getRawIndex(S.idx1)) break case '+': var I = S.idx, L = g.dataDimsForPoint, P = i.dataToPoint([t.get(L[0], I), t.get(L[1], I)]) ;(b = I * 2), u.push(P[0], P[1]), f.push(y[b], y[b + 1]) var R = Ty(g, i, t, I) h.push(R[0], R[1]), c.push(n[b], n[b + 1]), p.push(t.getRawIndex(I)) break case '-': w = !1 } w && (v.push(S), d.push(d.length)) } d.sort(function (Ct, mt) { return p[Ct] - p[mt] }) for ( var O = u.length, U = gr(O), k = gr(O), F = gr(O), H = gr(O), $ = [], _ = 0; _ < d.length; _++ ) { var J = d[_], et = _ * 2, ft = J * 2 ;(U[et] = u[ft]), (U[et + 1] = u[ft + 1]), (k[et] = f[ft]), (k[et + 1] = f[ft + 1]), (F[et] = h[ft]), (F[et + 1] = h[ft + 1]), (H[et] = c[ft]), (H[et + 1] = c[ft + 1]), ($[_] = v[J]) } return { current: U, next: k, stackedOnCurrent: F, stackedOnNext: H, status: $ } } var Nr = Math.min, Fr = Math.max function Mn(r, t) { return isNaN(r) || isNaN(t) } function Ph(r, t, e, n, i, a, o, s, l) { for (var u, f, h, c, v, d, p = e, g = 0; g < n; g++) { var m = t[p * 2], y = t[p * 2 + 1] if (p >= i || p < 0) break if (Mn(m, y)) { if (l) { p += a continue } break } if (p === e) r[a > 0 ? 'moveTo' : 'lineTo'](m, y), (h = m), (c = y) else { var _ = m - u, S = y - f if (_ * _ + S * S < 0.5) { p += a continue } if (o > 0) { for ( var w = p + a, x = t[w * 2], b = t[w * 2 + 1]; x === m && b === y && g < n; ) g++, (w += a), (p += a), (x = t[w * 2]), (b = t[w * 2 + 1]), (m = t[p * 2]), (y = t[p * 2 + 1]), (_ = m - u), (S = y - f) var T = g + 1 if (l) for (; Mn(x, b) && T < n; ) T++, (w += a), (x = t[w * 2]), (b = t[w * 2 + 1]) var C = 0.5, M = 0, D = 0, I = void 0, L = void 0 if (T >= n || Mn(x, b)) (v = m), (d = y) else { ;(M = x - u), (D = b - f) var P = m - u, R = x - m, O = y - f, U = b - y, k = void 0, F = void 0 if (s === 'x') { ;(k = Math.abs(P)), (F = Math.abs(R)) var H = M > 0 ? 1 : -1 ;(v = m - H * k * o), (d = y), (I = m + H * F * o), (L = y) } else if (s === 'y') { ;(k = Math.abs(O)), (F = Math.abs(U)) var $ = D > 0 ? 1 : -1 ;(v = m), (d = y - $ * k * o), (I = m), (L = y + $ * F * o) } else (k = Math.sqrt(P * P + O * O)), (F = Math.sqrt(R * R + U * U)), (C = F / (F + k)), (v = m - M * o * (1 - C)), (d = y - D * o * (1 - C)), (I = m + M * o * C), (L = y + D * o * C), (I = Nr(I, Fr(x, m))), (L = Nr(L, Fr(b, y))), (I = Fr(I, Nr(x, m))), (L = Fr(L, Nr(b, y))), (M = I - m), (D = L - y), (v = m - (M * k) / F), (d = y - (D * k) / F), (v = Nr(v, Fr(u, m))), (d = Nr(d, Fr(f, y))), (v = Fr(v, Nr(u, m))), (d = Fr(d, Nr(f, y))), (M = m - v), (D = y - d), (I = m + (M * F) / k), (L = y + (D * F) / k) } r.bezierCurveTo(h, c, v, d, m, y), (h = I), (c = L) } else r.lineTo(m, y) } ;(u = m), (f = y), (p += a) } return g } var Cy = (function () { function r() { ;(this.smooth = 0), (this.smoothConstraint = !0) } return r })(), qI = (function (r) { B(t, r) function t(e) { var n = r.call(this, e) || this return (n.type = 'ec-polyline'), n } return ( (t.prototype.getDefaultStyle = function () { return { stroke: '#000', fill: null } }), (t.prototype.getDefaultShape = function () { return new Cy() }), (t.prototype.buildPath = function (e, n) { var i = n.points, a = 0, o = i.length / 2 if (n.connectNulls) { for (; o > 0 && Mn(i[o * 2 - 2], i[o * 2 - 1]); o--); for (; a < o && Mn(i[a * 2], i[a * 2 + 1]); a++); } for (; a < o; ) a += Ph(e, i, a, o, o, 1, n.smooth, n.smoothMonotone, n.connectNulls) + 1 }), (t.prototype.getPointOn = function (e, n) { this.path || (this.createPathProxy(), this.buildPath(this.path, this.shape)) for ( var i = this.path, a = i.data, o = ur.CMD, s, l, u = n === 'x', f = [], h = 0; h < a.length; ) { var c = a[h++], v = void 0, d = void 0, p = void 0, g = void 0, m = void 0, y = void 0, _ = void 0 switch (c) { case o.M: ;(s = a[h++]), (l = a[h++]) break case o.L: if ( ((v = a[h++]), (d = a[h++]), (_ = u ? (e - s) / (v - s) : (e - l) / (d - l)), _ <= 1 && _ >= 0) ) { var S = u ? (d - l) * _ + l : (v - s) * _ + s return u ? [e, S] : [S, e] } ;(s = v), (l = d) break case o.C: ;(v = a[h++]), (d = a[h++]), (p = a[h++]), (g = a[h++]), (m = a[h++]), (y = a[h++]) var w = u ? po(s, v, p, m, e, f) : po(l, d, g, y, e, f) if (w > 0) for (var x = 0; x < w; x++) { var b = f[x] if (b <= 1 && b >= 0) { var S = u ? Rt(l, d, g, y, b) : Rt(s, v, p, m, b) return u ? [e, S] : [S, e] } } ;(s = m), (l = y) break } } }), t ) })(st), KI = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return t })(Cy), QI = (function (r) { B(t, r) function t(e) { var n = r.call(this, e) || this return (n.type = 'ec-polygon'), n } return ( (t.prototype.getDefaultShape = function () { return new KI() }), (t.prototype.buildPath = function (e, n) { var i = n.points, a = n.stackedOnPoints, o = 0, s = i.length / 2, l = n.smoothMonotone if (n.connectNulls) { for (; s > 0 && Mn(i[s * 2 - 2], i[s * 2 - 1]); s--); for (; o < s && Mn(i[o * 2], i[o * 2 + 1]); o++); } for (; o < s; ) { var u = Ph(e, i, o, s, s, 1, n.smooth, l, n.connectNulls) Ph(e, a, o + u - 1, u, s, -1, n.stackedOnSmooth, l, n.connectNulls), (o += u + 1), e.closePath() } }), t ) })(st) function Ay(r, t, e, n, i) { var a = r.getArea(), o = a.x, s = a.y, l = a.width, u = a.height, f = e.get(['lineStyle', 'width']) || 2 ;(o -= f / 2), (s -= f / 2), (l += f), (u += f), (o = Math.floor(o)), (l = Math.round(l)) var h = new St({ shape: { x: o, y: s, width: l, height: u } }) if (t) { var c = r.getBaseAxis(), v = c.isHorizontal(), d = c.inverse v ? (d && (h.shape.x += l), (h.shape.width = 0)) : (d || (h.shape.y += u), (h.shape.height = 0)) var p = Q(i) ? function (g) { i(g, h) } : null Wt(h, { shape: { width: l, height: u, x: o, y: s } }, e, null, n, p) } return h } function My(r, t, e) { var n = r.getArea(), i = Pt(n.r0, 1), a = Pt(n.r, 1), o = new hr({ shape: { cx: Pt(r.cx, 1), cy: Pt(r.cy, 1), r0: i, r: a, startAngle: n.startAngle, endAngle: n.endAngle, clockwise: n.clockwise } }) if (t) { var s = r.getBaseAxis().dim === 'angle' s ? (o.shape.endAngle = n.startAngle) : (o.shape.r = i), Wt(o, { shape: { endAngle: n.endAngle, r: a } }, e) } return o } function JI(r, t, e, n, i) { if (r) { if (r.type === 'polar') return My(r, t, e) if (r.type === 'cartesian2d') return Ay(r, t, e, n, i) } else return null return null } function Rh(r, t) { return r.type === t } function Dy(r, t) { if (r.length === t.length) { for (var e = 0; e < r.length; e++) if (r[e] !== t[e]) return return !0 } } function Iy(r) { for ( var t = 1 / 0, e = 1 / 0, n = -1 / 0, i = -1 / 0, a = 0; a < r.length; ) { var o = r[a++], s = r[a++] isNaN(o) || ((t = Math.min(o, t)), (n = Math.max(o, n))), isNaN(s) || ((e = Math.min(s, e)), (i = Math.max(s, i))) } return [ [t, e], [n, i] ] } function Ly(r, t) { var e = Iy(r), n = e[0], i = e[1], a = Iy(t), o = a[0], s = a[1] return Math.max( Math.abs(n[0] - o[0]), Math.abs(n[1] - o[1]), Math.abs(i[0] - s[0]), Math.abs(i[1] - s[1]) ) } function Py(r) { return dt(r) ? r : r ? 0.5 : 0 } function jI(r, t, e) { if (!e.valueDim) return [] for (var n = t.count(), i = gr(n * 2), a = 0; a < n; a++) { var o = Ty(e, r, t, a) ;(i[a * 2] = o[0]), (i[a * 2 + 1] = o[1]) } return i } function zr(r, t, e, n) { var i = t.getBaseAxis(), a = i.dim === 'x' || i.dim === 'radius' ? 0 : 1, o = [], s = 0, l = [], u = [], f = [], h = [] if (n) { for (s = 0; s < r.length; s += 2) !isNaN(r[s]) && !isNaN(r[s + 1]) && h.push(r[s], r[s + 1]) r = h } for (s = 0; s < r.length - 2; s += 2) switch ( ((f[0] = r[s + 2]), (f[1] = r[s + 3]), (u[0] = r[s]), (u[1] = r[s + 1]), o.push(u[0], u[1]), e) ) { case 'end': ;(l[a] = f[a]), (l[1 - a] = u[1 - a]), o.push(l[0], l[1]) break case 'middle': var c = (u[a] + f[a]) / 2, v = [] ;(l[a] = v[a] = c), (l[1 - a] = u[1 - a]), (v[1 - a] = f[1 - a]), o.push(l[0], l[1]), o.push(v[0], v[1]) break default: ;(l[a] = u[a]), (l[1 - a] = f[1 - a]), o.push(l[0], l[1]) } return o.push(r[s++], r[s++]), o } function tL(r, t) { var e = [], n = r.length, i, a function o(f, h, c) { var v = f.coord, d = (c - v) / (h.coord - v), p = pw(d, [f.color, h.color]) return { coord: c, color: p } } for (var s = 0; s < n; s++) { var l = r[s], u = l.coord if (u < 0) i = l else if (u > t) { a ? e.push(o(a, l, t)) : i && e.push(o(i, l, 0), o(i, l, t)) break } else i && (e.push(o(i, l, 0)), (i = null)), e.push(l), (a = l) } return e } function eL(r, t, e) { var n = r.getVisual('visualMeta') if (!(!n || !n.length || !r.count()) && t.type === 'cartesian2d') { for (var i, a, o = n.length - 1; o >= 0; o--) { var s = r.getDimensionInfo(n[o].dimension) if (((i = s && s.coordDim), i === 'x' || i === 'y')) { a = n[o] break } } if (!!a) { var l = t.getAxis(i), u = G(a.stops, function (_) { return { coord: l.toGlobalCoord(l.dataToCoord(_.value)), color: _.color } }), f = u.length, h = a.outerColors.slice() f && u[0].coord > u[f - 1].coord && (u.reverse(), h.reverse()) var c = tL(u, i === 'x' ? e.getWidth() : e.getHeight()), v = c.length if (!v && f) return u[0].coord < 0 ? h[1] ? h[1] : u[f - 1].color : h[0] ? h[0] : u[0].color var d = 10, p = c[0].coord - d, g = c[v - 1].coord + d, m = g - p if (m < 0.001) return 'transparent' A(c, function (_) { _.offset = (_.coord - p) / m }), c.push({ offset: v ? c[v - 1].offset : 0.5, color: h[1] || 'transparent' }), c.unshift({ offset: v ? c[0].offset : 0.5, color: h[0] || 'transparent' }) var y = new Ip(0, 0, 0, 0, c, !0) return (y[i] = p), (y[i + '2'] = g), y } } } function rL(r, t, e) { var n = r.get('showAllSymbol'), i = n === 'auto' if (!(n && !i)) { var a = e.getAxesByScale('ordinal')[0] if (!!a && !(i && nL(a, t))) { var o = t.mapDimension(a.dim), s = {} return ( A(a.getViewLabels(), function (l) { var u = a.scale.getRawOrdinalNumber(l.tickValue) s[u] = 1 }), function (l) { return !s.hasOwnProperty(t.get(o, l)) } ) } } } function nL(r, t) { var e = r.getExtent(), n = Math.abs(e[1] - e[0]) / r.scale.count() isNaN(n) && (n = 0) for ( var i = t.count(), a = Math.max(1, Math.round(i / 5)), o = 0; o < i; o += a ) if (Ih.getSymbolSize(t, o)[r.isHorizontal() ? 1 : 0] * 1.5 > n) return !1 return !0 } function iL(r, t) { return isNaN(r) || isNaN(t) } function aL(r) { for (var t = r.length / 2; t > 0 && iL(r[t * 2 - 2], r[t * 2 - 1]); t--); return t - 1 } function Ry(r, t) { return [r[t * 2], r[t * 2 + 1]] } function oL(r, t, e) { for ( var n = r.length / 2, i = e === 'x' ? 0 : 1, a, o, s = 0, l = -1, u = 0; u < n; u++ ) if (((o = r[u * 2 + i]), !(isNaN(o) || isNaN(r[u * 2 + 1 - i])))) { if (u === 0) { a = o continue } if ((a <= t && o >= t) || (a >= t && o <= t)) { l = u break } ;(s = u), (a = o) } return { range: [s, l], t: (t - a) / (o - a) } } function Ey(r) { if (r.get(['endLabel', 'show'])) return !0 for (var t = 0; t < pe.length; t++) if (r.get([pe[t], 'endLabel', 'show'])) return !0 return !1 } function Eh(r, t, e, n) { if (Rh(t, 'cartesian2d')) { var i = n.getModel('endLabel'), a = i.get('valueAnimation'), o = n.getData(), s = { lastFrameIndex: 0 }, l = Ey(n) ? function (v, d) { r._endLabelOnDuring(v, d, o, s, a, i, t) } : null, u = t.getBaseAxis().isHorizontal(), f = Ay( t, e, n, function () { var v = r._endLabel v && e && s.originalX != null && v.attr({ x: s.originalX, y: s.originalY }) }, l ) if (!n.get('clip', !0)) { var h = f.shape, c = Math.max(h.width, h.height) u ? ((h.y -= c), (h.height += c * 2)) : ((h.x -= c), (h.width += c * 2)) } return l && l(1, f), f } else return My(t, e, n) } function sL(r, t) { var e = t.getBaseAxis(), n = e.isHorizontal(), i = e.inverse, a = n ? (i ? 'right' : 'left') : 'center', o = n ? 'middle' : i ? 'top' : 'bottom' return { normal: { align: r.get('align') || a, verticalAlign: r.get('verticalAlign') || o } } } var lL = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.init = function () { var e = new At(), n = new YI() this.group.add(n.group), (this._symbolDraw = n), (this._lineGroup = e) }), (t.prototype.render = function (e, n, i) { var a = this, o = e.coordinateSystem, s = this.group, l = e.getData(), u = e.getModel('lineStyle'), f = e.getModel('areaStyle'), h = l.getLayout('points') || [], c = o.type === 'polar', v = this._coordSys, d = this._symbolDraw, p = this._polyline, g = this._polygon, m = this._lineGroup, y = e.get('animation'), _ = !f.isEmpty(), S = f.get('origin'), w = by(o, l, S), x = _ && jI(o, l, w), b = e.get('showSymbol'), T = e.get('connectNulls'), C = b && !c && rL(e, l, o), M = this._data M && M.eachItemGraphicEl(function (mt, zt) { mt.__temp && (s.remove(mt), M.setItemGraphicEl(zt, null)) }), b || d.remove(), s.add(m) var D = c ? !1 : e.get('step'), I o && o.getArea && e.get('clip', !0) && ((I = o.getArea()), I.width != null ? ((I.x -= 0.1), (I.y -= 0.1), (I.width += 0.2), (I.height += 0.2)) : I.r0 && ((I.r0 -= 0.5), (I.r += 0.5))), (this._clipShapeForSymbol = I) var L = eL(l, o, i) || l.getVisual('style')[l.getVisual('drawType')] if (!(p && v.type === o.type && D === this._step)) b && d.updateData(l, { isIgnore: C, clipShape: I, disableAnimation: !0, getSymbolPoint: function (mt) { return [h[mt * 2], h[mt * 2 + 1]] } }), y && this._initSymbolLabelAnimation(l, o, I), D && ((h = zr(h, o, D, T)), x && (x = zr(x, o, D, T))), (p = this._newPolyline(h)), _ ? (g = this._newPolygon(h, x)) : g && (m.remove(g), (g = this._polygon = null)), c || this._initOrUpdateEndLabel(e, o, yn(L)), m.setClipPath(Eh(this, o, !0, e)) else { _ && !g ? (g = this._newPolygon(h, x)) : g && !_ && (m.remove(g), (g = this._polygon = null)), c || this._initOrUpdateEndLabel(e, o, yn(L)) var P = m.getClipPath() if (P) { var R = Eh(this, o, !1, e) Wt(P, { shape: R.shape }, e) } else m.setClipPath(Eh(this, o, !0, e)) b && d.updateData(l, { isIgnore: C, clipShape: I, disableAnimation: !0, getSymbolPoint: function (mt) { return [h[mt * 2], h[mt * 2 + 1]] } }), (!Dy(this._stackedOnPoints, x) || !Dy(this._points, h)) && (y ? this._doUpdateAnimation(l, x, o, i, D, S, T) : (D && ((h = zr(h, o, D, T)), x && (x = zr(x, o, D, T))), p.setShape({ points: h }), g && g.setShape({ points: h, stackedOnPoints: x }))) } var O = e.getModel('emphasis'), U = O.get('focus'), k = O.get('blurScope'), F = O.get('disabled') if ( (p.useStyle( j(u.getLineStyle(), { fill: 'none', stroke: L, lineJoin: 'bevel' }) ), Ko(p, e, 'lineStyle'), p.style.lineWidth > 0 && e.get(['emphasis', 'lineStyle', 'width']) === 'bolder') ) { var H = p.getState('emphasis').style H.lineWidth = +p.style.lineWidth + 1 } ;(ct(p).seriesIndex = e.seriesIndex), aa(p, U, k, F) var $ = Py(e.get('smooth')), J = e.get('smoothMonotone') if ( (p.setShape({ smooth: $, smoothMonotone: J, connectNulls: T }), g) ) { var et = l.getCalculationInfo('stackedOnSeries'), ft = 0 g.useStyle( j(f.getAreaStyle(), { fill: L, opacity: 0.7, lineJoin: 'bevel', decal: l.getVisual('style').decal }) ), et && (ft = Py(et.get('smooth'))), g.setShape({ smooth: $, stackedOnSmooth: ft, smoothMonotone: J, connectNulls: T }), Ko(g, e, 'areaStyle'), (ct(g).seriesIndex = e.seriesIndex), aa(g, U, k, F) } var Ct = function (mt) { a._changePolyState(mt) } l.eachItemGraphicEl(function (mt) { mt && (mt.onHoverStateChange = Ct) }), (this._polyline.onHoverStateChange = Ct), (this._data = l), (this._coordSys = o), (this._stackedOnPoints = x), (this._points = h), (this._step = D), (this._valueOrigin = S), e.get('triggerLineEvent') && (this.packEventData(e, p), g && this.packEventData(e, g)) }), (t.prototype.packEventData = function (e, n) { ct(n).eventData = { componentType: 'series', componentSubType: 'line', componentIndex: e.componentIndex, seriesIndex: e.seriesIndex, seriesName: e.name, seriesType: 'line' } }), (t.prototype.highlight = function (e, n, i, a) { var o = e.getData(), s = Jr(o, a) if ( (this._changePolyState('emphasis'), !(s instanceof Array) && s != null && s >= 0) ) { var l = o.getLayout('points'), u = o.getItemGraphicEl(s) if (!u) { var f = l[s * 2], h = l[s * 2 + 1] if ( isNaN(f) || isNaN(h) || (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(f, h)) ) return var c = e.get('zlevel'), v = e.get('z') ;(u = new Ih(o, s)), (u.x = f), (u.y = h), u.setZ(c, v) var d = u.getSymbolPath().getTextContent() d && ((d.zlevel = c), (d.z = v), (d.z2 = this._polyline.z2 + 1)), (u.__temp = !0), o.setItemGraphicEl(s, u), u.stopSymbolAnimation(!0), this.group.add(u) } u.highlight() } else Qe.prototype.highlight.call(this, e, n, i, a) }), (t.prototype.downplay = function (e, n, i, a) { var o = e.getData(), s = Jr(o, a) if ((this._changePolyState('normal'), s != null && s >= 0)) { var l = o.getItemGraphicEl(s) l && (l.__temp ? (o.setItemGraphicEl(s, null), this.group.remove(l)) : l.downplay()) } else Qe.prototype.downplay.call(this, e, n, i, a) }), (t.prototype._changePolyState = function (e) { var n = this._polygon Zd(this._polyline, e), n && Zd(n, e) }), (t.prototype._newPolyline = function (e) { var n = this._polyline return ( n && this._lineGroup.remove(n), (n = new qI({ shape: { points: e }, segmentIgnoreThreshold: 2, z2: 10 })), this._lineGroup.add(n), (this._polyline = n), n ) }), (t.prototype._newPolygon = function (e, n) { var i = this._polygon return ( i && this._lineGroup.remove(i), (i = new QI({ shape: { points: e, stackedOnPoints: n }, segmentIgnoreThreshold: 2 })), this._lineGroup.add(i), (this._polygon = i), i ) }), (t.prototype._initSymbolLabelAnimation = function (e, n, i) { var a, o, s = n.getBaseAxis(), l = s.inverse n.type === 'cartesian2d' ? ((a = s.isHorizontal()), (o = !1)) : n.type === 'polar' && ((a = s.dim === 'angle'), (o = !0)) var u = e.hostModel, f = u.get('animationDuration') Q(f) && (f = f(null)) var h = u.get('animationDelay') || 0, c = Q(h) ? h(null) : h e.eachItemGraphicEl(function (v, d) { var p = v if (p) { var g = [v.x, v.y], m = void 0, y = void 0, _ = void 0 if (i) if (o) { var S = i, w = n.pointToCoord(g) a ? ((m = S.startAngle), (y = S.endAngle), (_ = (-w[1] / 180) * Math.PI)) : ((m = S.r0), (y = S.r), (_ = w[0])) } else { var x = i a ? ((m = x.x), (y = x.x + x.width), (_ = v.x)) : ((m = x.y + x.height), (y = x.y), (_ = v.y)) } var b = y === m ? 0 : (_ - m) / (y - m) l && (b = 1 - b) var T = Q(h) ? h(d) : f * b + c, C = p.getSymbolPath(), M = C.getTextContent() p.attr({ scaleX: 0, scaleY: 0 }), p.animateTo( { scaleX: 1, scaleY: 1 }, { duration: 200, setToFinal: !0, delay: T } ), M && M.animateFrom( { style: { opacity: 0 } }, { duration: 300, delay: T } ), (C.disableLabelAnimation = !0) } }) }), (t.prototype._initOrUpdateEndLabel = function (e, n, i) { var a = e.getModel('endLabel') if (Ey(e)) { var o = e.getData(), s = this._polyline, l = o.getLayout('points') if (!l) { s.removeTextContent(), (this._endLabel = null) return } var u = this._endLabel u || ((u = this._endLabel = new Et({ z2: 200 })), (u.ignoreClip = !0), s.setTextContent(this._endLabel), (s.disableLabelAnimation = !0)) var f = aL(l) f >= 0 && (ha( s, va(e, 'endLabel'), { inheritColor: i, labelFetcher: e, labelDataIndex: f, defaultText: function (h, c, v) { return v != null ? Sy(o, v) : Dh(o, h) }, enableTextSetter: !0 }, sL(a, n) ), (s.textConfig.position = null)) } else this._endLabel && (this._polyline.removeTextContent(), (this._endLabel = null)) }), (t.prototype._endLabelOnDuring = function (e, n, i, a, o, s, l) { var u = this._endLabel, f = this._polyline if (u) { e < 1 && a.originalX == null && ((a.originalX = u.x), (a.originalY = u.y)) var h = i.getLayout('points'), c = i.hostModel, v = c.get('connectNulls'), d = s.get('precision'), p = s.get('distance') || 0, g = l.getBaseAxis(), m = g.isHorizontal(), y = g.inverse, _ = n.shape, S = y ? (m ? _.x : _.y + _.height) : m ? _.x + _.width : _.y, w = (m ? p : 0) * (y ? -1 : 1), x = (m ? 0 : -p) * (y ? -1 : 1), b = m ? 'x' : 'y', T = oL(h, S, b), C = T.range, M = C[1] - C[0], D = void 0 if (M >= 1) { if (M > 1 && !v) { var I = Ry(h, C[0]) u.attr({ x: I[0] + w, y: I[1] + x }), o && (D = c.getRawValue(C[0])) } else { var I = f.getPointOn(S, b) I && u.attr({ x: I[0] + w, y: I[1] + x }) var L = c.getRawValue(C[0]), P = c.getRawValue(C[1]) o && (D = ad(i, d, L, P, T.t)) } a.lastFrameIndex = C[0] } else { var R = e === 1 || a.lastFrameIndex > 0 ? C[0] : 0, I = Ry(h, R) o && (D = c.getRawValue(R)), u.attr({ x: I[0] + w, y: I[1] + x }) } o && si(u).setLabelText(D) } }), (t.prototype._doUpdateAnimation = function (e, n, i, a, o, s, l) { var u = this._polyline, f = this._polygon, h = e.hostModel, c = XI( this._data, e, this._stackedOnPoints, n, this._coordSys, i, this._valueOrigin ), v = c.current, d = c.stackedOnCurrent, p = c.next, g = c.stackedOnNext if ( (o && ((v = zr(c.current, i, o, l)), (d = zr(c.stackedOnCurrent, i, o, l)), (p = zr(c.next, i, o, l)), (g = zr(c.stackedOnNext, i, o, l))), Ly(v, p) > 3e3 || (f && Ly(d, g) > 3e3)) ) { u.stopAnimation(), u.setShape({ points: p }), f && (f.stopAnimation(), f.setShape({ points: p, stackedOnPoints: g })) return } ;(u.shape.__points = c.current), (u.shape.points = v) var m = { shape: { points: p } } c.current !== v && (m.shape.__points = c.next), u.stopAnimation(), kt(u, m, h), f && (f.setShape({ points: v, stackedOnPoints: d }), f.stopAnimation(), kt(f, { shape: { stackedOnPoints: g } }, h), u.shape.points !== f.shape.points && (f.shape.points = u.shape.points)) for (var y = [], _ = c.status, S = 0; S < _.length; S++) { var w = _[S].cmd if (w === '=') { var x = e.getItemGraphicEl(_[S].idx1) x && y.push({ el: x, ptIdx: S }) } } u.animators && u.animators.length && u.animators[0].during(function () { f && f.dirtyShape() for (var b = u.shape.__points, T = 0; T < y.length; T++) { var C = y[T].el, M = y[T].ptIdx * 2 ;(C.x = b[M]), (C.y = b[M + 1]), C.markRedraw() } }) }), (t.prototype.remove = function (e) { var n = this.group, i = this._data this._lineGroup.removeAll(), this._symbolDraw.remove(!0), i && i.eachItemGraphicEl(function (a, o) { a.__temp && (n.remove(a), i.setItemGraphicEl(o, null)) }), (this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null) }), (t.type = 'line'), t ) })(Qe), uL = lL function fL(r, t) { return { seriesType: r, plan: Yf(), reset: function (e) { var n = e.getData(), i = e.coordinateSystem, a = e.pipelineContext, o = t || a.large if (!!i) { var s = G(i.dimensions, function (v) { return n.mapDimension(v) }).slice(0, 2), l = s.length, u = n.getCalculationInfo('stackResultDimension') Si(n, s[0]) && (s[0] = u), Si(n, s[1]) && (s[1] = u) var f = n.getStore(), h = n.getDimensionIndex(s[0]), c = n.getDimensionIndex(s[1]) return ( l && { progress: function (v, d) { for ( var p = v.end - v.start, g = o && gr(p * l), m = [], y = [], _ = v.start, S = 0; _ < v.end; _++ ) { var w = void 0 if (l === 1) { var x = f.get(h, _) w = i.dataToPoint(x, null, y) } else (m[0] = f.get(h, _)), (m[1] = f.get(c, _)), (w = i.dataToPoint(m, null, y)) o ? ((g[S++] = w[0]), (g[S++] = w[1])) : d.setItemLayout(_, w.slice()) } o && d.setLayout('points', g) } } ) } } } } var hL = { average: function (r) { for (var t = 0, e = 0, n = 0; n < r.length; n++) isNaN(r[n]) || ((t += r[n]), e++) return e === 0 ? NaN : t / e }, sum: function (r) { for (var t = 0, e = 0; e < r.length; e++) t += r[e] || 0 return t }, max: function (r) { for (var t = -1 / 0, e = 0; e < r.length; e++) r[e] > t && (t = r[e]) return isFinite(t) ? t : NaN }, min: function (r) { for (var t = 1 / 0, e = 0; e < r.length; e++) r[e] < t && (t = r[e]) return isFinite(t) ? t : NaN }, nearest: function (r) { return r[0] } }, vL = function (r) { return Math.round(r.length / 2) } function Oy(r) { return { seriesType: r, reset: function (t, e, n) { var i = t.getData(), a = t.get('sampling'), o = t.coordinateSystem, s = i.count() if (s > 10 && o.type === 'cartesian2d' && a) { var l = o.getBaseAxis(), u = o.getOtherAxis(l), f = l.getExtent(), h = n.getDevicePixelRatio(), c = Math.abs(f[1] - f[0]) * (h || 1), v = Math.round(s / c) if (isFinite(v) && v > 1) { a === 'lttb' && t.setData(i.lttbDownSample(i.mapDimension(u.dim), 1 / v)) var d = void 0 W(a) ? (d = hL[a]) : Q(a) && (d = a), d && t.setData(i.downSample(i.mapDimension(u.dim), 1 / v, d, vL)) } } } } } function cL(r) { r.registerChartView(uL), r.registerSeriesModel(GI), r.registerLayout(fL('line', !0)), r.registerVisual({ seriesType: 'line', reset: function (t) { var e = t.getData(), n = t.getModel('lineStyle').getLineStyle() n && !n.stroke && (n.stroke = e.getVisual('style').fill), e.setVisual('legendLineStyle', n) } }), r.registerProcessor(r.PRIORITY.PROCESSOR.STATISTIC, Oy('line')) } var ky = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.prototype.getInitialData = function (e, n) { return mh(null, this, { useEncodeDefaulter: !0 }) }), (t.prototype.getMarkerPosition = function (e) { var n = this.coordinateSystem if (n && n.clampData) { var i = n.dataToPoint(n.clampData(e)), a = this.getData(), o = a.getLayout('offset'), s = a.getLayout('size'), l = n.getBaseAxis().isHorizontal() ? 0 : 1 return (i[l] += o + s / 2), i } return [NaN, NaN] }), (t.type = 'series.__base_bar__'), (t.defaultOption = { z: 2, coordinateSystem: 'cartesian2d', legendHoverLink: !0, barMinHeight: 0, barMinAngle: 0, large: !1, largeThreshold: 400, progressive: 3e3, progressiveChunkMode: 'mod' }), t ) })(Er) Er.registerClass(ky) var By = ky, dL = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.prototype.getInitialData = function () { return mh(null, this, { useEncodeDefaulter: !0, createInvertedIndices: !!this.get('realtimeSort', !0) || null }) }), (t.prototype.getProgressive = function () { return this.get('large') ? this.get('progressive') : !1 }), (t.prototype.getProgressiveThreshold = function () { var e = this.get('progressiveThreshold'), n = this.get('largeThreshold') return n > e && (e = n), e }), (t.prototype.brushSelector = function (e, n, i) { return i.rect(n.getItemLayout(e)) }), (t.type = 'series.bar'), (t.dependencies = ['grid', 'polar']), (t.defaultOption = cs(By.defaultOption, { clip: !0, roundCap: !1, showBackground: !1, backgroundStyle: { color: 'rgba(180, 180, 180, 0.2)', borderColor: null, borderWidth: 0, borderType: 'solid', borderRadius: 0, shadowBlur: 0, shadowColor: null, shadowOffsetX: 0, shadowOffsetY: 0, opacity: 1 }, select: { itemStyle: { borderColor: '#212121' } }, realtimeSort: !1 })), t ) })(By), pL = dL, gL = (function () { function r() { ;(this.cx = 0), (this.cy = 0), (this.r0 = 0), (this.r = 0), (this.startAngle = 0), (this.endAngle = Math.PI * 2), (this.clockwise = !0) } return r })(), mL = (function (r) { B(t, r) function t(e) { var n = r.call(this, e) || this return (n.type = 'sausage'), n } return ( (t.prototype.getDefaultShape = function () { return new gL() }), (t.prototype.buildPath = function (e, n) { var i = n.cx, a = n.cy, o = Math.max(n.r0 || 0, 0), s = Math.max(n.r, 0), l = (s - o) * 0.5, u = o + l, f = n.startAngle, h = n.endAngle, c = n.clockwise, v = Math.PI * 2, d = c ? h - f < v : f - h < v d || (f = h - (c ? v : -v)) var p = Math.cos(f), g = Math.sin(f), m = Math.cos(h), y = Math.sin(h) d ? (e.moveTo(p * o + i, g * o + a), e.arc(p * u + i, g * u + a, l, -Math.PI + f, f, !c)) : e.moveTo(p * s + i, g * s + a), e.arc(i, a, s, f, h, !c), e.arc(m * u + i, y * u + a, l, h - Math.PI * 2, h - Math.PI, !c), o !== 0 && e.arc(i, a, o, h, f, c) }), t ) })(st), Ny = mL function yL(r, t) { t = t || {} var e = t.isRoundCap return function (n, i, a) { var o = i.position if (!o || o instanceof Array) return Oo(n, i, a) var s = r(o), l = i.distance != null ? i.distance : 5, u = this.shape, f = u.cx, h = u.cy, c = u.r, v = u.r0, d = (c + v) / 2, p = u.startAngle, g = u.endAngle, m = (p + g) / 2, y = e ? Math.abs(c - v) / 2 : 0, _ = Math.cos, S = Math.sin, w = f + c * _(p), x = h + c * S(p), b = 'left', T = 'top' switch (s) { case 'startArc': ;(w = f + (v - l) * _(m)), (x = h + (v - l) * S(m)), (b = 'center'), (T = 'top') break case 'insideStartArc': ;(w = f + (v + l) * _(m)), (x = h + (v + l) * S(m)), (b = 'center'), (T = 'bottom') break case 'startAngle': ;(w = f + d * _(p) + ul(p, l + y, !1)), (x = h + d * S(p) + fl(p, l + y, !1)), (b = 'right'), (T = 'middle') break case 'insideStartAngle': ;(w = f + d * _(p) + ul(p, -l + y, !1)), (x = h + d * S(p) + fl(p, -l + y, !1)), (b = 'left'), (T = 'middle') break case 'middle': ;(w = f + d * _(m)), (x = h + d * S(m)), (b = 'center'), (T = 'middle') break case 'endArc': ;(w = f + (c + l) * _(m)), (x = h + (c + l) * S(m)), (b = 'center'), (T = 'bottom') break case 'insideEndArc': ;(w = f + (c - l) * _(m)), (x = h + (c - l) * S(m)), (b = 'center'), (T = 'top') break case 'endAngle': ;(w = f + d * _(g) + ul(g, l + y, !0)), (x = h + d * S(g) + fl(g, l + y, !0)), (b = 'left'), (T = 'middle') break case 'insideEndAngle': ;(w = f + d * _(g) + ul(g, -l + y, !0)), (x = h + d * S(g) + fl(g, -l + y, !0)), (b = 'right'), (T = 'middle') break default: return Oo(n, i, a) } return ( (n = n || {}), (n.x = w), (n.y = x), (n.align = b), (n.verticalAlign = T), n ) } } function _L(r, t, e, n) { if (dt(n)) { r.setTextConfig({ rotation: n }) return } else if (z(t)) { r.setTextConfig({ rotation: 0 }) return } var i = r.shape, a = i.clockwise ? i.startAngle : i.endAngle, o = i.clockwise ? i.endAngle : i.startAngle, s = (a + o) / 2, l, u = e(t) switch (u) { case 'startArc': case 'insideStartArc': case 'middle': case 'insideEndArc': case 'endArc': l = s break case 'startAngle': case 'insideStartAngle': l = a break case 'endAngle': case 'insideEndAngle': l = o break default: r.setTextConfig({ rotation: 0 }) return } var f = Math.PI * 1.5 - l u === 'middle' && f > Math.PI / 2 && f < Math.PI * 1.5 && (f -= Math.PI), r.setTextConfig({ rotation: f }) } function ul(r, t, e) { return t * Math.sin(r) * (e ? -1 : 1) } function fl(r, t, e) { return t * Math.cos(r) * (e ? 1 : -1) } var Oh = Math.max, kh = Math.min function SL(r, t) { var e = r.getArea && r.getArea() if (Rh(r, 'cartesian2d')) { var n = r.getBaseAxis() if (n.type !== 'category' || !n.onBand) { var i = t.getLayout('bandWidth') n.isHorizontal() ? ((e.x -= i), (e.width += i * 2)) : ((e.y -= i), (e.height += i * 2)) } } return e } var xL = (function (r) { B(t, r) function t() { var e = r.call(this) || this return (e.type = t.type), (e._isFirstFrame = !0), e } return ( (t.prototype.render = function (e, n, i, a) { ;(this._model = e), this._removeOnRenderedListener(i), this._updateDrawMode(e) var o = e.get('coordinateSystem') ;(o === 'cartesian2d' || o === 'polar') && ((this._progressiveEls = null), this._isLargeDraw ? this._renderLarge(e, n, i) : this._renderNormal(e, n, i, a)) }), (t.prototype.incrementalPrepareRender = function (e) { this._clear(), this._updateDrawMode(e), this._updateLargeClip(e) }), (t.prototype.incrementalRender = function (e, n) { ;(this._progressiveEls = []), this._incrementalRenderLarge(e, n) }), (t.prototype.eachRendered = function (e) { hs(this._progressiveEls || this.group, e) }), (t.prototype._updateDrawMode = function (e) { var n = e.pipelineContext.large ;(this._isLargeDraw == null || n !== this._isLargeDraw) && ((this._isLargeDraw = n), this._clear()) }), (t.prototype._renderNormal = function (e, n, i, a) { var o = this.group, s = e.getData(), l = this._data, u = e.coordinateSystem, f = u.getBaseAxis(), h u.type === 'cartesian2d' ? (h = f.isHorizontal()) : u.type === 'polar' && (h = f.dim === 'angle') var c = e.isAnimationEnabled() ? e : null, v = wL(e, u) v && this._enableRealtimeSort(v, s, i) var d = e.get('clip', !0) || v, p = SL(u, s) o.removeClipPath() var g = e.get('roundCap', !0), m = e.get('showBackground', !0), y = e.getModel('backgroundStyle'), _ = y.get('borderRadius') || 0, S = [], w = this._backgroundEls, x = a && a.isInitSort, b = a && a.type === 'changeAxisOrder' function T(D) { var I = hl[u.type](s, D), L = IL(u, h, I) return ( L.useStyle(y.getItemStyle()), u.type === 'cartesian2d' && L.setShape('r', _), (S[D] = L), L ) } s.diff(l) .add(function (D) { var I = s.getItemModel(D), L = hl[u.type](s, D, I) if ((m && T(D), !(!s.hasValue(D) || !Hy[u.type](L)))) { var P = !1 d && (P = Fy[u.type](p, L)) var R = zy[u.type](e, s, D, L, h, c, f.model, !1, g) v && (R.forceLabelAnimation = !0), Uy(R, s, D, I, L, e, h, u.type === 'polar'), x ? R.attr({ shape: L }) : v ? Vy(v, c, R, L, D, h, !1, !1) : Wt(R, { shape: L }, e, D), s.setItemGraphicEl(D, R), o.add(R), (R.ignore = P) } }) .update(function (D, I) { var L = s.getItemModel(D), P = hl[u.type](s, D, L) if (m) { var R = void 0 w.length === 0 ? (R = T(I)) : ((R = w[I]), R.useStyle(y.getItemStyle()), u.type === 'cartesian2d' && R.setShape('r', _), (S[D] = R)) var O = hl[u.type](s, D), U = Xy(h, O, u) kt(R, { shape: U }, c, D) } var k = l.getItemGraphicEl(I) if (!s.hasValue(D) || !Hy[u.type](P)) { o.remove(k) return } var F = !1 if ( (d && ((F = Fy[u.type](p, P)), F && o.remove(k)), k ? lf(k) : (k = zy[u.type](e, s, D, P, h, c, f.model, !!k, g)), v && (k.forceLabelAnimation = !0), b) ) { var H = k.getTextContent() if (H) { var $ = si(H) $.prevValue != null && ($.prevValue = $.value) } } else Uy(k, s, D, L, P, e, h, u.type === 'polar') x ? k.attr({ shape: P }) : v ? Vy(v, c, k, P, D, h, !0, b) : kt(k, { shape: P }, e, D, null), s.setItemGraphicEl(D, k), (k.ignore = F), o.add(k) }) .remove(function (D) { var I = l.getItemGraphicEl(D) I && as(I, e, D) }) .execute() var C = this._backgroundGroup || (this._backgroundGroup = new At()) C.removeAll() for (var M = 0; M < S.length; ++M) C.add(S[M]) o.add(C), (this._backgroundEls = S), (this._data = s) }), (t.prototype._renderLarge = function (e, n, i) { this._clear(), Zy(e, this.group), this._updateLargeClip(e) }), (t.prototype._incrementalRenderLarge = function (e, n) { this._removeBackground(), Zy(n, this.group, this._progressiveEls, !0) }), (t.prototype._updateLargeClip = function (e) { var n = e.get('clip', !0) && JI(e.coordinateSystem, !1, e), i = this.group n ? i.setClipPath(n) : i.removeClipPath() }), (t.prototype._enableRealtimeSort = function (e, n, i) { var a = this if (!!n.count()) { var o = e.baseAxis if (this._isFirstFrame) this._dispatchInitSort(n, e, i), (this._isFirstFrame = !1) else { var s = function (l) { var u = n.getItemGraphicEl(l), f = u && u.shape return (f && Math.abs(o.isHorizontal() ? f.height : f.width)) || 0 } ;(this._onRendered = function () { a._updateSortWithinSameData(n, s, o, i) }), i.getZr().on('rendered', this._onRendered) } } }), (t.prototype._dataSort = function (e, n, i) { var a = [] return ( e.each(e.mapDimension(n.dim), function (o, s) { var l = i(s) ;(l = l == null ? NaN : l), a.push({ dataIndex: s, mappedValue: l, ordinalNumber: o }) }), a.sort(function (o, s) { return s.mappedValue - o.mappedValue }), { ordinalNumbers: G(a, function (o) { return o.ordinalNumber }) } ) }), (t.prototype._isOrderChangedWithinSameData = function (e, n, i) { for ( var a = i.scale, o = e.mapDimension(i.dim), s = Number.MAX_VALUE, l = 0, u = a.getOrdinalMeta().categories.length; l < u; ++l ) { var f = e.rawIndexOf(o, a.getRawOrdinalNumber(l)), h = f < 0 ? Number.MIN_VALUE : n(e.indexOfRawIndex(f)) if (h > s) return !0 s = h } return !1 }), (t.prototype._isOrderDifferentInView = function (e, n) { for ( var i = n.scale, a = i.getExtent(), o = Math.max(0, a[0]), s = Math.min(a[1], i.getOrdinalMeta().categories.length - 1); o <= s; ++o ) if (e.ordinalNumbers[o] !== i.getRawOrdinalNumber(o)) return !0 }), (t.prototype._updateSortWithinSameData = function (e, n, i, a) { if (!!this._isOrderChangedWithinSameData(e, n, i)) { var o = this._dataSort(e, i, n) this._isOrderDifferentInView(o, i) && (this._removeOnRenderedListener(a), a.dispatchAction({ type: 'changeAxisOrder', componentType: i.dim + 'Axis', axisId: i.index, sortInfo: o })) } }), (t.prototype._dispatchInitSort = function (e, n, i) { var a = n.baseAxis, o = this._dataSort(e, a, function (s) { return e.get(e.mapDimension(n.otherAxis.dim), s) }) i.dispatchAction({ type: 'changeAxisOrder', componentType: a.dim + 'Axis', isInitSort: !0, axisId: a.index, sortInfo: o }) }), (t.prototype.remove = function (e, n) { this._clear(this._model), this._removeOnRenderedListener(n) }), (t.prototype.dispose = function (e, n) { this._removeOnRenderedListener(n) }), (t.prototype._removeOnRenderedListener = function (e) { this._onRendered && (e.getZr().off('rendered', this._onRendered), (this._onRendered = null)) }), (t.prototype._clear = function (e) { var n = this.group, i = this._data e && e.isAnimationEnabled() && i && !this._isLargeDraw ? (this._removeBackground(), (this._backgroundEls = []), i.eachItemGraphicEl(function (a) { as(a, e, ct(a).dataIndex) })) : n.removeAll(), (this._data = null), (this._isFirstFrame = !0) }), (t.prototype._removeBackground = function () { this.group.remove(this._backgroundGroup), (this._backgroundGroup = null) }), (t.type = 'bar'), t ) })(Qe), Fy = { cartesian2d: function (r, t) { var e = t.width < 0 ? -1 : 1, n = t.height < 0 ? -1 : 1 e < 0 && ((t.x += t.width), (t.width = -t.width)), n < 0 && ((t.y += t.height), (t.height = -t.height)) var i = r.x + r.width, a = r.y + r.height, o = Oh(t.x, r.x), s = kh(t.x + t.width, i), l = Oh(t.y, r.y), u = kh(t.y + t.height, a), f = s < o, h = u < l return ( (t.x = f && o > i ? s : o), (t.y = h && l > a ? u : l), (t.width = f ? 0 : s - o), (t.height = h ? 0 : u - l), e < 0 && ((t.x += t.width), (t.width = -t.width)), n < 0 && ((t.y += t.height), (t.height = -t.height)), f || h ) }, polar: function (r, t) { var e = t.r0 <= t.r ? 1 : -1 if (e < 0) { var n = t.r ;(t.r = t.r0), (t.r0 = n) } var i = kh(t.r, r.r), a = Oh(t.r0, r.r0) ;(t.r = i), (t.r0 = a) var o = i - a < 0 if (e < 0) { var n = t.r ;(t.r = t.r0), (t.r0 = n) } return o } }, zy = { cartesian2d: function (r, t, e, n, i, a, o, s, l) { var u = new St({ shape: N({}, n), z2: 1 }) if (((u.__dataIndex = e), (u.name = 'item'), a)) { var f = u.shape, h = i ? 'height' : 'width' f[h] = 0 } return u }, polar: function (r, t, e, n, i, a, o, s, l) { var u = !i && l ? Ny : hr, f = new u({ shape: n, z2: 1 }) f.name = 'item' var h = Wy(i) if (((f.calculateTextPosition = yL(h, { isRoundCap: u === Ny })), a)) { var c = f.shape, v = i ? 'r' : 'endAngle', d = {} ;(c[v] = i ? 0 : n.startAngle), (d[v] = n[v]), (s ? kt : Wt)(f, { shape: d }, a) } return f } } function wL(r, t) { var e = r.get('realtimeSort', !0), n = t.getBaseAxis() if (e && n.type === 'category' && t.type === 'cartesian2d') return { baseAxis: n, otherAxis: t.getOtherAxis(n) } } function Vy(r, t, e, n, i, a, o, s) { var l, u a ? ((u = { x: n.x, width: n.width }), (l = { y: n.y, height: n.height })) : ((u = { y: n.y, height: n.height }), (l = { x: n.x, width: n.width })), s || (o ? kt : Wt)(e, { shape: l }, t, i, null) var f = t ? r.baseAxis.model : null ;(o ? kt : Wt)(e, { shape: u }, f, i) } function Gy(r, t) { for (var e = 0; e < t.length; e++) if (!isFinite(r[t[e]])) return !0 return !1 } var bL = ['x', 'y', 'width', 'height'], TL = ['cx', 'cy', 'r', 'startAngle', 'endAngle'], Hy = { cartesian2d: function (r) { return !Gy(r, bL) }, polar: function (r) { return !Gy(r, TL) } }, hl = { cartesian2d: function (r, t, e) { var n = r.getItemLayout(t), i = e ? AL(e, n) : 0, a = n.width > 0 ? 1 : -1, o = n.height > 0 ? 1 : -1 return { x: n.x + (a * i) / 2, y: n.y + (o * i) / 2, width: n.width - a * i, height: n.height - o * i } }, polar: function (r, t, e) { var n = r.getItemLayout(t) return { cx: n.cx, cy: n.cy, r0: n.r0, r: n.r, startAngle: n.startAngle, endAngle: n.endAngle, clockwise: n.clockwise } } } function CL(r) { return ( r.startAngle != null && r.endAngle != null && r.startAngle === r.endAngle ) } function Wy(r) { return (function (t) { var e = t ? 'Arc' : 'Angle' return function (n) { switch (n) { case 'start': case 'insideStart': case 'end': case 'insideEnd': return n + e default: return n } } })(r) } function Uy(r, t, e, n, i, a, o, s) { var l = t.getItemVisual(e, 'style') s || r.setShape('r', n.get(['itemStyle', 'borderRadius']) || 0), r.useStyle(l) var u = n.getShallow('cursor') u && r.attr('cursor', u) var f = s ? o ? i.r >= i.r0 ? 'endArc' : 'startArc' : i.endAngle >= i.startAngle ? 'endAngle' : 'startAngle' : o ? i.height >= 0 ? 'bottom' : 'top' : i.width >= 0 ? 'right' : 'left', h = va(n) ha(r, h, { labelFetcher: a, labelDataIndex: e, defaultText: Dh(a.getData(), e), inheritColor: l.fill, defaultOpacity: l.opacity, defaultOutsidePosition: f }) var c = r.getTextContent() if (s && c) { var v = n.get(['label', 'position']) ;(r.textConfig.inside = v === 'middle' ? !0 : null), _L(r, v === 'outside' ? f : v, Wy(o), n.get(['label', 'rotate'])) } BC(c, h, a.getRawValue(e), function (p) { return Sy(t, p) }) var d = n.getModel(['emphasis']) aa(r, d.get('focus'), d.get('blurScope'), d.get('disabled')), Ko(r, n), CL(i) && ((r.style.fill = 'none'), (r.style.stroke = 'none'), A(r.states, function (p) { p.style && (p.style.fill = p.style.stroke = 'none') })) } function AL(r, t) { var e = r.get(['itemStyle', 'borderColor']) if (!e || e === 'none') return 0 var n = r.get(['itemStyle', 'borderWidth']) || 0, i = isNaN(t.width) ? Number.MAX_VALUE : Math.abs(t.width), a = isNaN(t.height) ? Number.MAX_VALUE : Math.abs(t.height) return Math.min(n, i, a) } var ML = (function () { function r() {} return r })(), Yy = (function (r) { B(t, r) function t(e) { var n = r.call(this, e) || this return (n.type = 'largeBar'), n } return ( (t.prototype.getDefaultShape = function () { return new ML() }), (t.prototype.buildPath = function (e, n) { for ( var i = n.points, a = this.baseDimIdx, o = 1 - this.baseDimIdx, s = [], l = [], u = this.barWidth, f = 0; f < i.length; f += 3 ) (l[a] = u), (l[o] = i[f + 2]), (s[a] = i[f + a]), (s[o] = i[f + o]), e.rect(s[0], s[1], l[0], l[1]) }), t ) })(st) function Zy(r, t, e, n) { var i = r.getData(), a = i.getLayout('valueAxisHorizontal') ? 1 : 0, o = i.getLayout('largeDataIndices'), s = i.getLayout('size'), l = r.getModel('backgroundStyle'), u = i.getLayout('largeBackgroundPoints') if (u) { var f = new Yy({ shape: { points: u }, incremental: !!n, silent: !0, z2: 0 }) ;(f.baseDimIdx = a), (f.largeDataIndices = o), (f.barWidth = s), f.useStyle(l.getItemStyle()), t.add(f), e && e.push(f) } var h = new Yy({ shape: { points: i.getLayout('largePoints') }, incremental: !!n, z2: 1 }) ;(h.baseDimIdx = a), (h.largeDataIndices = o), (h.barWidth = s), t.add(h), h.useStyle(i.getVisual('style')), (ct(h).seriesIndex = r.seriesIndex), r.get('silent') || (h.on('mousedown', $y), h.on('mousemove', $y)), e && e.push(h) } var $y = $f( function (r) { var t = this, e = DL(t, r.offsetX, r.offsetY) ct(t).dataIndex = e >= 0 ? e : null }, 30, !1 ) function DL(r, t, e) { for ( var n = r.baseDimIdx, i = 1 - n, a = r.shape.points, o = r.largeDataIndices, s = [], l = [], u = r.barWidth, f = 0, h = a.length / 3; f < h; f++ ) { var c = f * 3 if ( ((l[n] = u), (l[i] = a[c + 2]), (s[n] = a[c + n]), (s[i] = a[c + i]), l[i] < 0 && ((s[i] += l[i]), (l[i] = -l[i])), t >= s[0] && t <= s[0] + l[0] && e >= s[1] && e <= s[1] + l[1]) ) return o[f] } return -1 } function Xy(r, t, e) { if (Rh(e, 'cartesian2d')) { var n = t, i = e.getArea() return { x: r ? n.x : i.x, y: r ? i.y : n.y, width: r ? n.width : i.width, height: r ? i.height : n.height } } else { var i = e.getArea(), a = t return { cx: i.cx, cy: i.cy, r0: r ? i.r0 : a.r0, r: r ? i.r : a.r, startAngle: r ? a.startAngle : 0, endAngle: r ? a.endAngle : Math.PI * 2 } } } function IL(r, t, e) { var n = r.type === 'polar' ? hr : St return new n({ shape: Xy(t, e, r), silent: !0, z2: 0 }) } var LL = xL function PL(r) { r.registerChartView(LL), r.registerSeriesModel(pL), r.registerLayout(r.PRIORITY.VISUAL.LAYOUT, lt(H2, 'bar')), r.registerLayout(r.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, W2('bar')), r.registerProcessor(r.PRIORITY.PROCESSOR.STATISTIC, Oy('bar')), r.registerAction( { type: 'changeAxisOrder', event: 'changeAxisOrder', update: 'update' }, function (t, e) { var n = t.componentType || 'series' e.eachComponent({ mainType: n, query: t }, function (i) { t.sortInfo && i.axis.setCategorySortInfo(t.sortInfo) }) } ) } var vl = Math.PI * 2, qy = Math.PI / 180 function Ky(r, t) { return cr(r.getBoxLayoutParams(), { width: t.getWidth(), height: t.getHeight() }) } function Qy(r, t) { var e = Ky(r, t), n = r.get('center'), i = r.get('radius') z(i) || (i = [0, i]), z(n) || (n = [n, n]) var a = yt(e.width, t.getWidth()), o = yt(e.height, t.getHeight()), s = Math.min(a, o), l = yt(n[0], a) + e.x, u = yt(n[1], o) + e.y, f = yt(i[0], s / 2), h = yt(i[1], s / 2) return { cx: l, cy: u, r0: f, r: h } } function RL(r, t, e) { t.eachSeriesByType(r, function (n) { var i = n.getData(), a = i.mapDimension('value'), o = Ky(n, e), s = Qy(n, e), l = s.cx, u = s.cy, f = s.r, h = s.r0, c = -n.get('startAngle') * qy, v = n.get('minAngle') * qy, d = 0 i.each(a, function (M) { !isNaN(M) && d++ }) var p = i.getSum(a), g = (Math.PI / (p || d)) * 2, m = n.get('clockwise'), y = n.get('roseType'), _ = n.get('stillShowZeroSum'), S = i.getDataExtent(a) S[0] = 0 var w = vl, x = 0, b = c, T = m ? 1 : -1 if ( (i.setLayout({ viewRect: o, r: f }), i.each(a, function (M, D) { var I if (isNaN(M)) { i.setItemLayout(D, { angle: NaN, startAngle: NaN, endAngle: NaN, clockwise: m, cx: l, cy: u, r0: h, r: y ? NaN : f }) return } y !== 'area' ? (I = p === 0 && _ ? g : M * g) : (I = vl / d), I < v ? ((I = v), (w -= v)) : (x += M) var L = b + T * I i.setItemLayout(D, { angle: I, startAngle: b, endAngle: L, clockwise: m, cx: l, cy: u, r0: h, r: y ? Bt(M, S, [h, f]) : f }), (b = L) }), w < vl && d) ) if (w <= 0.001) { var C = vl / d i.each(a, function (M, D) { if (!isNaN(M)) { var I = i.getItemLayout(D) ;(I.angle = C), (I.startAngle = c + T * D * C), (I.endAngle = c + T * (D + 1) * C) } }) } else (g = w / x), (b = c), i.each(a, function (M, D) { if (!isNaN(M)) { var I = i.getItemLayout(D), L = I.angle === v ? v : M * g ;(I.startAngle = b), (I.endAngle = b + T * L), (b += T * L) } }) }) } function EL(r) { return { seriesType: r, reset: function (t, e) { var n = e.findComponents({ mainType: 'legend' }) if (!(!n || !n.length)) { var i = t.getData() i.filterSelf(function (a) { for (var o = i.getName(a), s = 0; s < n.length; s++) if (!n[s].isSelected(o)) return !1 return !0 }) } } } } var OL = Math.PI / 180 function Jy(r, t, e, n, i, a, o, s, l, u) { if (r.length < 2) return function f(p) { for (var g = p.rB, m = g * g, y = 0; y < p.list.length; y++) { var _ = p.list[y], S = Math.abs(_.label.y - e), w = n + _.len, x = w * w, b = Math.sqrt((1 - Math.abs((S * S) / m)) * x), T = t + (b + _.len2) * i, C = T - _.label.x, M = _.targetTextWidth - C * i jy(_, M, !0), (_.label.x = T) } } function h(p) { for ( var g = { list: [], maxY: 0 }, m = { list: [], maxY: 0 }, y = 0; y < p.length; y++ ) if (p[y].labelAlignTo === 'none') { var _ = p[y], S = _.label.y > e ? m : g, w = Math.abs(_.label.y - e) if (w >= S.maxY) { var x = _.label.x - t - _.len2 * i, b = n + _.len, T = Math.abs(x) < b ? Math.sqrt((w * w) / (1 - (x * x) / b / b)) : b ;(S.rB = T), (S.maxY = w) } S.list.push(_) } f(g), f(m) } for (var c = r.length, v = 0; v < c; v++) if (r[v].position === 'outer' && r[v].labelAlignTo === 'labelLine') { var d = r[v].label.x - u ;(r[v].linePoints[1][0] += d), (r[v].label.x = u) } my(r, l, l + o) && h(r) } function kL(r, t, e, n, i, a, o, s) { for ( var l = [], u = [], f = Number.MAX_VALUE, h = -Number.MAX_VALUE, c = 0; c < r.length; c++ ) { var v = r[c].label Bh(r[c]) || (v.x < t ? ((f = Math.min(f, v.x)), l.push(r[c])) : ((h = Math.max(h, v.x)), u.push(r[c]))) } for (var c = 0; c < r.length; c++) { var d = r[c] if (!Bh(d) && d.linePoints) { if (d.labelStyleWidth != null) continue var v = d.label, p = d.linePoints, g = void 0 d.labelAlignTo === 'edge' ? v.x < t ? (g = p[2][0] - d.labelDistance - o - d.edgeDistance) : (g = o + i - d.edgeDistance - p[2][0] - d.labelDistance) : d.labelAlignTo === 'labelLine' ? v.x < t ? (g = f - o - d.bleedMargin) : (g = o + i - h - d.bleedMargin) : v.x < t ? (g = v.x - o - d.bleedMargin) : (g = o + i - v.x - d.bleedMargin), (d.targetTextWidth = g), jy(d, g) } } Jy(u, t, e, n, 1, i, a, o, s, h), Jy(l, t, e, n, -1, i, a, o, s, f) for (var c = 0; c < r.length; c++) { var d = r[c] if (!Bh(d) && d.linePoints) { var v = d.label, p = d.linePoints, m = d.labelAlignTo === 'edge', y = v.style.padding, _ = y ? y[1] + y[3] : 0, S = v.style.backgroundColor ? 0 : _, w = d.rect.width + S, x = p[1][0] - p[2][0] m ? v.x < t ? (p[2][0] = o + d.edgeDistance + w + d.labelDistance) : (p[2][0] = o + i - d.edgeDistance - w - d.labelDistance) : (v.x < t ? (p[2][0] = v.x + d.labelDistance) : (p[2][0] = v.x - d.labelDistance), (p[1][0] = p[2][0] + x)), (p[1][1] = p[2][1] = v.y) } } } function jy(r, t, e) { if ((e === void 0 && (e = !1), r.labelStyleWidth == null)) { var n = r.label, i = n.style, a = r.rect, o = i.backgroundColor, s = i.padding, l = s ? s[1] + s[3] : 0, u = i.overflow, f = a.width + (o ? 0 : l) if (t < f || e) { var h = a.height if (u && u.match('break')) { n.setStyle('backgroundColor', null), n.setStyle('width', t - l) var c = n.getBoundingRect() n.setStyle('width', Math.ceil(c.width)), n.setStyle('backgroundColor', o) } else { var v = t - l, d = t < f ? v : e ? (v > r.unconstrainedWidth ? null : v) : null n.setStyle('width', d) } var p = n.getBoundingRect() a.width = p.width var g = (n.style.margin || 0) + 2.1 ;(a.height = p.height + g), (a.y -= (a.height - h) / 2) } } } function Bh(r) { return r.position === 'center' } function BL(r) { var t = r.getData(), e = [], n, i, a = !1, o = (r.get('minShowLabelAngle') || 0) * OL, s = t.getLayout('viewRect'), l = t.getLayout('r'), u = s.width, f = s.x, h = s.y, c = s.height function v(x) { x.ignore = !0 } function d(x) { if (!x.ignore) return !0 for (var b in x.states) if (x.states[b].ignore === !1) return !0 return !1 } t.each(function (x) { var b = t.getItemGraphicEl(x), T = b.shape, C = b.getTextContent(), M = b.getTextGuideLine(), D = t.getItemModel(x), I = D.getModel('label'), L = I.get('position') || D.get(['emphasis', 'label', 'position']), P = I.get('distanceToLabelLine'), R = I.get('alignTo'), O = yt(I.get('edgeDistance'), u), U = I.get('bleedMargin'), k = D.getModel('labelLine'), F = k.get('length') F = yt(F, u) var H = k.get('length2') if (((H = yt(H, u)), Math.abs(T.endAngle - T.startAngle) < o)) { A(C.states, v), (C.ignore = !0) return } if (!!d(C)) { var $ = (T.startAngle + T.endAngle) / 2, J = Math.cos($), et = Math.sin($), ft, Ct, mt, zt ;(n = T.cx), (i = T.cy) var Vt = L === 'inside' || L === 'inner' if (L === 'center') (ft = T.cx), (Ct = T.cy), (zt = 'center') else { var It = (Vt ? ((T.r + T.r0) / 2) * J : T.r * J) + n, bt = (Vt ? ((T.r + T.r0) / 2) * et : T.r * et) + i if (((ft = It + J * 3), (Ct = bt + et * 3), !Vt)) { var K = It + J * (F + l - T.r), it = bt + et * (F + l - T.r), Ne = K + (J < 0 ? -1 : 1) * H, Ot = it R === 'edge' ? (ft = J < 0 ? f + O : f + u - O) : (ft = Ne + (J < 0 ? -P : P)), (Ct = Ot), (mt = [ [It, bt], [K, it], [Ne, Ot] ]) } zt = Vt ? 'center' : R === 'edge' ? J > 0 ? 'right' : 'left' : J > 0 ? 'left' : 'right' } var _r = Math.PI, rr = 0, Ii = I.get('rotate') if (dt(Ii)) rr = Ii * (_r / 180) else if (L === 'center') rr = 0 else if (Ii === 'radial' || Ii === !0) { var cS = J < 0 ? -$ + _r : -$ rr = cS } else if (Ii === 'tangential' && L !== 'outside' && L !== 'outer') { var On = Math.atan2(J, et) On < 0 && (On = _r * 2 + On) var dS = et > 0 dS && (On = _r + On), (rr = On - _r) } if ( ((a = !!rr), (C.x = ft), (C.y = Ct), (C.rotation = rr), C.setStyle({ verticalAlign: 'middle' }), Vt) ) { C.setStyle({ align: zt }) var Al = C.states.select Al && ((Al.x += C.x), (Al.y += C.y)) } else { var Li = C.getBoundingRect().clone() Li.applyTransform(C.getComputedTransform()) var zv = (C.style.margin || 0) + 2.1 ;(Li.y -= zv / 2), (Li.height += zv), e.push({ label: C, labelLine: M, position: L, len: F, len2: H, minTurnAngle: k.get('minTurnAngle'), maxSurfaceAngle: k.get('maxSurfaceAngle'), surfaceNormal: new Z(J, et), linePoints: mt, textAlign: zt, labelDistance: P, labelAlignTo: R, edgeDistance: O, bleedMargin: U, rect: Li, unconstrainedWidth: Li.width, labelStyleWidth: C.style.width }) } b.setTextConfig({ inside: Vt }) } }), !a && r.get('avoidLabelOverlap') && kL(e, n, i, l, u, c, f, h) for (var p = 0; p < e.length; p++) { var g = e[p], m = g.label, y = g.labelLine, _ = isNaN(m.x) || isNaN(m.y) if (m) { m.setStyle({ align: g.textAlign }), _ && (A(m.states, v), (m.ignore = !0)) var S = m.states.select S && ((S.x += m.x), (S.y += m.y)) } if (y) { var w = g.linePoints _ || !w ? (A(y.states, v), (y.ignore = !0)) : (hy(w, g.minTurnAngle), PI(w, g.surfaceNormal, g.maxSurfaceAngle), y.setShape({ points: w }), (m.__hostTarget.textGuideLineConfig = { anchor: new Z(w[0][0], w[0][1]) })) } } } function cl(r, t, e) { var n = r.get('borderRadius') if (n == null) return e ? { cornerRadius: 0 } : null z(n) || (n = [n, n, n, n]) var i = Math.abs(t.r || 0 - t.r0 || 0) return { cornerRadius: G(n, function (a) { return Cr(a, i) }) } } var NL = (function (r) { B(t, r) function t(e, n, i) { var a = r.call(this) || this a.z2 = 2 var o = new Et() return a.setTextContent(o), a.updateData(e, n, i, !0), a } return ( (t.prototype.updateData = function (e, n, i, a) { var o = this, s = e.hostModel, l = e.getItemModel(n), u = l.getModel('emphasis'), f = e.getItemLayout(n), h = N(cl(l.getModel('itemStyle'), f, !0), f) if (isNaN(h.startAngle)) { o.setShape(h) return } if (a) { o.setShape(h) var c = s.getShallow('animationType') s.ecModel.ssr ? (Wt(o, { scaleX: 0, scaleY: 0 }, s, { dataIndex: n, isFrom: !0 }), (o.originX = h.cx), (o.originY = h.cy)) : c === 'scale' ? ((o.shape.r = f.r0), Wt(o, { shape: { r: f.r } }, s, n)) : i != null ? (o.setShape({ startAngle: i, endAngle: i }), Wt( o, { shape: { startAngle: f.startAngle, endAngle: f.endAngle } }, s, n )) : ((o.shape.endAngle = f.startAngle), kt(o, { shape: { endAngle: f.endAngle } }, s, n)) } else lf(o), kt(o, { shape: h }, s, n) o.useStyle(e.getItemVisual(n, 'style')), Ko(o, l) var v = (f.startAngle + f.endAngle) / 2, d = s.get('selectedOffset'), p = Math.cos(v) * d, g = Math.sin(v) * d, m = l.getShallow('cursor') m && o.attr('cursor', m), this._updateLabel(s, e, n), (o.ensureState('emphasis').shape = N( { r: f.r + ((u.get('scale') && u.get('scaleSize')) || 0) }, cl(u.getModel('itemStyle'), f) )), N(o.ensureState('select'), { x: p, y: g, shape: cl(l.getModel(['select', 'itemStyle']), f) }), N(o.ensureState('blur'), { shape: cl(l.getModel(['blur', 'itemStyle']), f) }) var y = o.getTextGuideLine(), _ = o.getTextContent() y && N(y.ensureState('select'), { x: p, y: g }), N(_.ensureState('select'), { x: p, y: g }), aa(this, u.get('focus'), u.get('blurScope'), u.get('disabled')) }), (t.prototype._updateLabel = function (e, n, i) { var a = this, o = n.getItemModel(i), s = o.getModel('labelLine'), l = n.getItemVisual(i, 'style'), u = l && l.fill, f = l && l.opacity ha(a, va(o), { labelFetcher: n.hostModel, labelDataIndex: i, inheritColor: u, defaultOpacity: f, defaultText: e.getFormattedLabel(i, 'normal') || n.getName(i) }) var h = a.getTextContent() a.setTextConfig({ position: null, rotation: null }), h.attr({ z2: 10 }) var c = e.get(['label', 'position']) if (c !== 'outside' && c !== 'outer') a.removeTextGuideLine() else { var v = this.getTextGuideLine() v || ((v = new ai()), this.setTextGuideLine(v)), cy(this, dy(o), { stroke: u, opacity: Oi(s.get(['lineStyle', 'opacity']), f, 1) }) } }), t ) })(hr), FL = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.ignoreLabelLineUpdate = !0), e } return ( (t.prototype.render = function (e, n, i, a) { var o = e.getData(), s = this._data, l = this.group, u if (!s && o.count() > 0) { for ( var f = o.getItemLayout(0), h = 1; isNaN(f && f.startAngle) && h < o.count(); ++h ) f = o.getItemLayout(h) f && (u = f.startAngle) } if ( (this._emptyCircleSector && l.remove(this._emptyCircleSector), o.count() === 0 && e.get('showEmptyCircle')) ) { var c = new hr({ shape: Qy(e, i) }) c.useStyle(e.getModel('emptyCircleStyle').getItemStyle()), (this._emptyCircleSector = c), l.add(c) } o .diff(s) .add(function (v) { var d = new NL(o, v, u) o.setItemGraphicEl(v, d), l.add(d) }) .update(function (v, d) { var p = s.getItemGraphicEl(d) p.updateData(o, v, u), p.off('click'), l.add(p), o.setItemGraphicEl(v, p) }) .remove(function (v) { var d = s.getItemGraphicEl(v) as(d, e, v) }) .execute(), BL(e), e.get('animationTypeUpdate') !== 'expansion' && (this._data = o) }), (t.prototype.dispose = function () {}), (t.prototype.containPoint = function (e, n) { var i = n.getData(), a = i.getItemLayout(0) if (a) { var o = e[0] - a.cx, s = e[1] - a.cy, l = Math.sqrt(o * o + s * s) return l <= a.r && l >= a.r0 } }), (t.type = 'pie'), t ) })(Qe), zL = FL function VL(r, t, e) { t = (z(t) && { coordDimensions: t }) || N({ encodeDefine: r.getEncode() }, t) var n = r.getSource(), i = E0(n, t).dimensions, a = new R0(i, r) return a.initData(n, e), a } var GL = (function () { function r(t, e) { ;(this._getDataWithEncodedVisual = t), (this._getRawData = e) } return ( (r.prototype.getAllNames = function () { var t = this._getRawData() return t.mapArray(t.getName) }), (r.prototype.containName = function (t) { var e = this._getRawData() return e.indexOfName(t) >= 0 }), (r.prototype.indexOfName = function (t) { var e = this._getDataWithEncodedVisual() return e.indexOfName(t) }), (r.prototype.getItemVisual = function (t, e) { var n = this._getDataWithEncodedVisual() return n.getItemVisual(t, e) }), r ) })(), HL = GL, WL = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.init = function (e) { r.prototype.init.apply(this, arguments), (this.legendVisualProvider = new HL( X(this.getData, this), X(this.getRawData, this) )), this._defaultLabelLine(e) }), (t.prototype.mergeOption = function () { r.prototype.mergeOption.apply(this, arguments) }), (t.prototype.getInitialData = function () { return VL(this, { coordDimensions: ['value'], encodeDefaulter: lt(dA, this) }) }), (t.prototype.getDataParams = function (e) { var n = this.getData(), i = r.prototype.getDataParams.call(this, e), a = [] return ( n.each(n.mapDimension('value'), function (o) { a.push(o) }), (i.percent = Jw(a, e, n.hostModel.get('percentPrecision'))), i.$vars.push('percent'), i ) }), (t.prototype._defaultLabelLine = function (e) { Cu(e, 'labelLine', ['show']) var n = e.labelLine, i = e.emphasis.labelLine ;(n.show = n.show && e.label.show), (i.show = i.show && e.emphasis.label.show) }), (t.type = 'series.pie'), (t.defaultOption = { z: 2, legendHoverLink: !0, colorBy: 'data', center: ['50%', '50%'], radius: [0, '75%'], clockwise: !0, startAngle: 90, minAngle: 0, minShowLabelAngle: 0, selectedOffset: 10, percentPrecision: 2, stillShowZeroSum: !0, left: 0, top: 0, right: 0, bottom: 0, width: null, height: null, label: { rotate: 0, show: !0, overflow: 'truncate', position: 'outer', alignTo: 'none', edgeDistance: '25%', bleedMargin: 10, distanceToLabelLine: 5 }, labelLine: { show: !0, length: 15, length2: 15, smooth: !1, minTurnAngle: 90, maxSurfaceAngle: 90, lineStyle: { width: 1, type: 'solid' } }, itemStyle: { borderWidth: 1, borderJoin: 'round' }, showEmptyCircle: !0, emptyCircleStyle: { color: 'lightgray', opacity: 1 }, labelLayout: { hideOverlap: !0 }, emphasis: { scale: !0, scaleSize: 5 }, avoidLabelOverlap: !0, animationType: 'expansion', animationDuration: 1e3, animationTypeUpdate: 'transition', animationEasingUpdate: 'cubicInOut', animationDurationUpdate: 500, animationEasing: 'cubicInOut' }), t ) })(Er), UL = WL function YL(r) { return { seriesType: r, reset: function (t, e) { var n = t.getData() n.filterSelf(function (i) { var a = n.mapDimension('value'), o = n.get(a, i) return !(dt(o) && !isNaN(o) && o < 0) }) } } } function ZL(r) { r.registerChartView(zL), r.registerSeriesModel(UL), rD('pie', r.registerAction), r.registerLayout(lt(RL, 'pie')), r.registerProcessor(EL('pie')), r.registerProcessor(YL('pie')) } var $L = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.type = 'grid'), (t.dependencies = ['xAxis', 'yAxis']), (t.layoutMode = 'box'), (t.defaultOption = { show: !1, z: 0, left: '10%', top: 60, right: '10%', bottom: 70, containLabel: !1, backgroundColor: 'rgba(0,0,0,0)', borderWidth: 1, borderColor: '#ccc' }), t ) })(_t), XL = $L, Nh = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.getCoordSysModel = function () { return this.getReferringComponents('grid', Xt).models[0] }), (t.type = 'cartesian2dAxis'), t ) })(_t) ze(Nh, cI) var t_ = { show: !0, z: 0, inverse: !1, name: '', nameLocation: 'end', nameRotate: null, nameTruncate: { maxWidth: null, ellipsis: '...', placeholder: '.' }, nameTextStyle: {}, nameGap: 15, silent: !1, triggerEvent: !1, tooltip: { show: !1 }, axisPointer: {}, axisLine: { show: !0, onZero: !0, onZeroAxisIndex: null, lineStyle: { color: '#6E7079', width: 1, type: 'solid' }, symbol: ['none', 'none'], symbolSize: [10, 15] }, axisTick: { show: !0, inside: !1, length: 5, lineStyle: { width: 1 } }, axisLabel: { show: !0, inside: !1, rotate: 0, showMinLabel: null, showMaxLabel: null, margin: 8, fontSize: 12 }, splitLine: { show: !0, lineStyle: { color: ['#E0E6F1'], width: 1, type: 'solid' } }, splitArea: { show: !1, areaStyle: { color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)'] } } }, qL = nt( { boundaryGap: !0, deduplication: null, splitLine: { show: !1 }, axisTick: { alignWithLabel: !1, interval: 'auto' }, axisLabel: { interval: 'auto' } }, t_ ), Fh = nt( { boundaryGap: [0, 0], axisLine: { show: 'auto' }, axisTick: { show: 'auto' }, splitNumber: 5, minorTick: { show: !1, splitNumber: 5, length: 3, lineStyle: {} }, minorSplitLine: { show: !1, lineStyle: { color: '#F4F7FD', width: 1 } } }, t_ ), KL = nt( { splitNumber: 6, axisLabel: { showMinLabel: !1, showMaxLabel: !1, rich: { primary: { fontWeight: 'bold' } } }, splitLine: { show: !1 } }, Fh ), QL = j({ logBase: 10 }, Fh), JL = { category: qL, value: Fh, time: KL, log: QL }, jL = { value: 1, category: 1, time: 1, log: 1 } function e_(r, t, e, n) { A(jL, function (i, a) { var o = nt(nt({}, JL[a], !0), n, !0), s = (function (l) { B(u, l) function u() { var f = (l !== null && l.apply(this, arguments)) || this return (f.type = t + 'Axis.' + a), f } return ( (u.prototype.mergeDefaultAndTheme = function (f, h) { var c = ya(this), v = c ? _a(f) : {}, d = h.getTheme() nt(f, d.get(a + 'Axis')), nt(f, this.getDefaultOption()), (f.type = r_(f)), c && hi(f, v, c) }), (u.prototype.optionUpdated = function () { var f = this.option f.type === 'category' && (this.__ordinalMeta = yh.createByAxisModel(this)) }), (u.prototype.getCategories = function (f) { var h = this.option if (h.type === 'category') return f ? h.data : this.__ordinalMeta.categories }), (u.prototype.getOrdinalMeta = function () { return this.__ordinalMeta }), (u.type = t + 'Axis.' + a), (u.defaultOption = o), u ) })(e) r.registerComponentModel(s) }), r.registerSubTypeDefaulter(t + 'Axis', r_) } function r_(r) { return r.type || (r.data ? 'category' : 'value') } var tP = (function () { function r(t) { ;(this.type = 'cartesian'), (this._dimList = []), (this._axes = {}), (this.name = t || '') } return ( (r.prototype.getAxis = function (t) { return this._axes[t] }), (r.prototype.getAxes = function () { return G( this._dimList, function (t) { return this._axes[t] }, this ) }), (r.prototype.getAxesByScale = function (t) { return ( (t = t.toLowerCase()), Lt(this.getAxes(), function (e) { return e.scale.type === t }) ) }), (r.prototype.addAxis = function (t) { var e = t.dim ;(this._axes[e] = t), this._dimList.push(e) }), r ) })(), eP = tP, zh = ['x', 'y'] function n_(r) { return r.type === 'interval' || r.type === 'time' } var rP = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = 'cartesian2d'), (e.dimensions = zh), e } return ( (t.prototype.calcAffineTransform = function () { this._transform = this._invTransform = null var e = this.getAxis('x').scale, n = this.getAxis('y').scale if (!(!n_(e) || !n_(n))) { var i = e.getExtent(), a = n.getExtent(), o = this.dataToPoint([i[0], a[0]]), s = this.dataToPoint([i[1], a[1]]), l = i[1] - i[0], u = a[1] - a[0] if (!(!l || !u)) { var f = (s[0] - o[0]) / l, h = (s[1] - o[1]) / u, c = o[0] - i[0] * f, v = o[1] - a[0] * h, d = (this._transform = [f, 0, 0, h, c, v]) this._invTransform = Lo([], d) } } }), (t.prototype.getBaseAxis = function () { return ( this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x') ) }), (t.prototype.containPoint = function (e) { var n = this.getAxis('x'), i = this.getAxis('y') return ( n.contain(n.toLocalCoord(e[0])) && i.contain(i.toLocalCoord(e[1])) ) }), (t.prototype.containData = function (e) { return ( this.getAxis('x').containData(e[0]) && this.getAxis('y').containData(e[1]) ) }), (t.prototype.containZone = function (e, n) { var i = this.dataToPoint(e), a = this.dataToPoint(n), o = this.getArea(), s = new vt(i[0], i[1], a[0] - i[0], a[1] - i[1]) return o.intersect(s) }), (t.prototype.dataToPoint = function (e, n, i) { i = i || [] var a = e[0], o = e[1] if ( this._transform && a != null && isFinite(a) && o != null && isFinite(o) ) return ue(i, e, this._transform) var s = this.getAxis('x'), l = this.getAxis('y') return ( (i[0] = s.toGlobalCoord(s.dataToCoord(a, n))), (i[1] = l.toGlobalCoord(l.dataToCoord(o, n))), i ) }), (t.prototype.clampData = function (e, n) { var i = this.getAxis('x').scale, a = this.getAxis('y').scale, o = i.getExtent(), s = a.getExtent(), l = i.parse(e[0]), u = a.parse(e[1]) return ( (n = n || []), (n[0] = Math.min( Math.max(Math.min(o[0], o[1]), l), Math.max(o[0], o[1]) )), (n[1] = Math.min( Math.max(Math.min(s[0], s[1]), u), Math.max(s[0], s[1]) )), n ) }), (t.prototype.pointToData = function (e, n) { var i = [] if (this._invTransform) return ue(i, e, this._invTransform) var a = this.getAxis('x'), o = this.getAxis('y') return ( (i[0] = a.coordToData(a.toLocalCoord(e[0]), n)), (i[1] = o.coordToData(o.toLocalCoord(e[1]), n)), i ) }), (t.prototype.getOtherAxis = function (e) { return this.getAxis(e.dim === 'x' ? 'y' : 'x') }), (t.prototype.getArea = function () { var e = this.getAxis('x').getGlobalExtent(), n = this.getAxis('y').getGlobalExtent(), i = Math.min(e[0], e[1]), a = Math.min(n[0], n[1]), o = Math.max(e[0], e[1]) - i, s = Math.max(n[0], n[1]) - a return new vt(i, a, o, s) }), t ) })(eP), nP = rP, iP = (function (r) { B(t, r) function t(e, n, i, a, o) { var s = r.call(this, e, n, i) || this return ( (s.index = 0), (s.type = a || 'value'), (s.position = o || 'bottom'), s ) } return ( (t.prototype.isHorizontal = function () { var e = this.position return e === 'top' || e === 'bottom' }), (t.prototype.getGlobalExtent = function (e) { var n = this.getExtent() return ( (n[0] = this.toGlobalCoord(n[0])), (n[1] = this.toGlobalCoord(n[1])), e && n[0] > n[1] && n.reverse(), n ) }), (t.prototype.pointToData = function (e, n) { return this.coordToData( this.toLocalCoord(e[this.dim === 'x' ? 0 : 1]), n ) }), (t.prototype.setCategorySortInfo = function (e) { if (this.type !== 'category') return !1 ;(this.model.option.categorySortInfo = e), this.scale.setSortInfo(e) }), t ) })(CI), aP = iP function Vh(r, t, e) { e = e || {} var n = r.coordinateSystem, i = t.axis, a = {}, o = i.getAxesOnZeroOf()[0], s = i.position, l = o ? 'onZero' : s, u = i.dim, f = n.getRect(), h = [f.x, f.x + f.width, f.y, f.y + f.height], c = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 }, v = t.get('offset') || 0, d = u === 'x' ? [h[2] - v, h[3] + v] : [h[0] - v, h[1] + v] if (o) { var p = o.toGlobalCoord(o.dataToCoord(0)) d[c.onZero] = Math.max(Math.min(p, d[1]), d[0]) } ;(a.position = [u === 'y' ? d[c[l]] : h[0], u === 'x' ? d[c[l]] : h[3]]), (a.rotation = (Math.PI / 2) * (u === 'x' ? 0 : 1)) var g = { top: -1, bottom: 1, left: -1, right: 1 } ;(a.labelDirection = a.tickDirection = a.nameDirection = g[s]), (a.labelOffset = o ? d[c[s]] - d[c.onZero] : 0), t.get(['axisTick', 'inside']) && (a.tickDirection = -a.tickDirection), Ei(e.labelInside, t.get(['axisLabel', 'inside'])) && (a.labelDirection = -a.labelDirection) var m = t.get(['axisLabel', 'rotate']) return (a.labelRotate = l === 'top' ? -m : m), (a.z2 = 1), a } function i_(r) { return r.get('coordinateSystem') === 'cartesian2d' } function a_(r) { var t = { xAxisModel: null, yAxisModel: null } return ( A(t, function (e, n) { var i = n.replace(/Model$/, ''), a = r.getReferringComponents(i, Xt).models[0] t[n] = a }), t ) } var Gh = Math.log function oP(r, t, e) { var n = Va.prototype, i = n.getTicks.call(e), a = n.getTicks.call(e, !0), o = i.length - 1, s = n.getInterval.call(e), l = K0(r, t), u = l.extent, f = l.fixMin, h = l.fixMax if (r.type === 'log') { var c = Gh(r.base) u = [Gh(u[0]) / c, Gh(u[1]) / c] } r.setExtent(u[0], u[1]), r.calcNiceExtent({ splitNumber: o, fixMin: f, fixMax: h }) var v = n.getExtent.call(r) f && (u[0] = v[0]), h && (u[1] = v[1]) var d = n.getInterval.call(r), p = u[0], g = u[1] if (f && h) d = (g - p) / o else if (f) for (g = u[0] + d * o; g < u[1] && isFinite(g) && isFinite(u[1]); ) (d = Sh(d)), (g = u[0] + d * o) else if (h) for (p = u[1] - d * o; p > u[0] && isFinite(p) && isFinite(u[0]); ) (d = Sh(d)), (p = u[1] - d * o) else { var m = r.getTicks().length - 1 m > o && (d = Sh(d)) var y = d * o ;(g = Math.ceil(u[1] / d) * d), (p = Pt(g - y)), p < 0 && u[0] >= 0 ? ((p = 0), (g = Pt(y))) : g > 0 && u[1] <= 0 && ((g = 0), (p = -Pt(y))) } var _ = (i[0].value - a[0].value) / s, S = (i[o].value - a[o].value) / s n.setExtent.call(r, p + d * _, g + d * S), n.setInterval.call(r, d), (_ || S) && n.setNiceExtent.call(r, p + d, g - d) } var sP = (function () { function r(t, e, n) { ;(this.type = 'grid'), (this._coordsMap = {}), (this._coordsList = []), (this._axesMap = {}), (this._axesList = []), (this.axisPointerEnabled = !0), (this.dimensions = zh), this._initCartesian(t, e, n), (this.model = t) } return ( (r.prototype.getRect = function () { return this._rect }), (r.prototype.update = function (t, e) { var n = this._axesMap this._updateScale(t, this.model) function i(o) { var s, l = xt(o), u = l.length if (!!u) { for (var f = [], h = u - 1; h >= 0; h--) { var c = +l[h], v = o[c], d = v.model, p = v.scale _h(p) && d.get('alignTicks') && d.get('interval') == null ? f.push(v) : (Q0(p, d), _h(p) && (s = v)) } f.length && (s || ((s = f.pop()), Q0(s.scale, s.model)), A(f, function (g) { oP(g.scale, g.model, s.scale) })) } } i(n.x), i(n.y) var a = {} A(n.x, function (o) { o_(n, 'y', o, a) }), A(n.y, function (o) { o_(n, 'x', o, a) }), this.resize(this.model, e) }), (r.prototype.resize = function (t, e, n) { var i = t.getBoxLayoutParams(), a = !n && t.get('containLabel'), o = cr(i, { width: e.getWidth(), height: e.getHeight() }) this._rect = o var s = this._axesList l(), a && (A(s, function (u) { if (!u.model.get(['axisLabel', 'inside'])) { var f = fI(u) if (f) { var h = u.isHorizontal() ? 'height' : 'width', c = u.model.get(['axisLabel', 'margin']) ;(o[h] -= f[h] + c), u.position === 'top' ? (o.y += f.height + c) : u.position === 'left' && (o.x += f.width + c) } } }), l()), A(this._coordsList, function (u) { u.calcAffineTransform() }) function l() { A(s, function (u) { var f = u.isHorizontal(), h = f ? [0, o.width] : [0, o.height], c = u.inverse ? 1 : 0 u.setExtent(h[c], h[1 - c]), lP(u, f ? o.x : o.y) }) } }), (r.prototype.getAxis = function (t, e) { var n = this._axesMap[t] if (n != null) return n[e || 0] }), (r.prototype.getAxes = function () { return this._axesList.slice() }), (r.prototype.getCartesian = function (t, e) { if (t != null && e != null) { var n = 'x' + t + 'y' + e return this._coordsMap[n] } Y(t) && ((e = t.yAxisIndex), (t = t.xAxisIndex)) for (var i = 0, a = this._coordsList; i < a.length; i++) if (a[i].getAxis('x').index === t || a[i].getAxis('y').index === e) return a[i] }), (r.prototype.getCartesians = function () { return this._coordsList.slice() }), (r.prototype.convertToPixel = function (t, e, n) { var i = this._findConvertTarget(e) return i.cartesian ? i.cartesian.dataToPoint(n) : i.axis ? i.axis.toGlobalCoord(i.axis.dataToCoord(n)) : null }), (r.prototype.convertFromPixel = function (t, e, n) { var i = this._findConvertTarget(e) return i.cartesian ? i.cartesian.pointToData(n) : i.axis ? i.axis.coordToData(i.axis.toLocalCoord(n)) : null }), (r.prototype._findConvertTarget = function (t) { var e = t.seriesModel, n = t.xAxisModel || (e && e.getReferringComponents('xAxis', Xt).models[0]), i = t.yAxisModel || (e && e.getReferringComponents('yAxis', Xt).models[0]), a = t.gridModel, o = this._coordsList, s, l if (e) (s = e.coordinateSystem), ot(o, s) < 0 && (s = null) else if (n && i) s = this.getCartesian(n.componentIndex, i.componentIndex) else if (n) l = this.getAxis('x', n.componentIndex) else if (i) l = this.getAxis('y', i.componentIndex) else if (a) { var u = a.coordinateSystem u === this && (s = this._coordsList[0]) } return { cartesian: s, axis: l } }), (r.prototype.containPoint = function (t) { var e = this._coordsList[0] if (e) return e.containPoint(t) }), (r.prototype._initCartesian = function (t, e, n) { var i = this, a = this, o = { left: !1, right: !1, top: !1, bottom: !1 }, s = { x: {}, y: {} }, l = { x: 0, y: 0 } if ( (e.eachComponent('xAxis', u('x'), this), e.eachComponent('yAxis', u('y'), this), !l.x || !l.y) ) { ;(this._axesMap = {}), (this._axesList = []) return } ;(this._axesMap = s), A(s.x, function (f, h) { A(s.y, function (c, v) { var d = 'x' + h + 'y' + v, p = new nP(d) ;(p.master = i), (p.model = t), (i._coordsMap[d] = p), i._coordsList.push(p), p.addAxis(f), p.addAxis(c) }) }) function u(f) { return function (h, c) { if (!!Hh(h, t)) { var v = h.get('position') f === 'x' ? v !== 'top' && v !== 'bottom' && (v = o.bottom ? 'top' : 'bottom') : v !== 'left' && v !== 'right' && (v = o.left ? 'right' : 'left'), (o[v] = !0) var d = new aP(f, lI(h), [0, 0], h.get('type'), v), p = d.type === 'category' ;(d.onBand = p && h.get('boundaryGap')), (d.inverse = h.get('inverse')), (h.axis = d), (d.model = h), (d.grid = a), (d.index = c), a._axesList.push(d), (s[f][c] = d), l[f]++ } } } }), (r.prototype._updateScale = function (t, e) { A(this._axesList, function (i) { if ((i.scale.setExtent(1 / 0, -1 / 0), i.type === 'category')) { var a = i.model.get('categorySortInfo') i.scale.setSortInfo(a) } }), t.eachSeries(function (i) { if (i_(i)) { var a = a_(i), o = a.xAxisModel, s = a.yAxisModel if (!Hh(o, e) || !Hh(s, e)) return var l = this.getCartesian(o.componentIndex, s.componentIndex), u = i.getData(), f = l.getAxis('x'), h = l.getAxis('y') n(u, f), n(u, h) } }, this) function n(i, a) { A(j0(i, a.dim), function (o) { a.scale.unionExtentFromData(i, o) }) } }), (r.prototype.getTooltipAxes = function (t) { var e = [], n = [] return ( A(this.getCartesians(), function (i) { var a = t != null && t !== 'auto' ? i.getAxis(t) : i.getBaseAxis(), o = i.getOtherAxis(a) ot(e, a) < 0 && e.push(a), ot(n, o) < 0 && n.push(o) }), { baseAxes: e, otherAxes: n } ) }), (r.create = function (t, e) { var n = [] return ( t.eachComponent('grid', function (i, a) { var o = new r(i, t, e) ;(o.name = 'grid_' + a), o.resize(i, e, !0), (i.coordinateSystem = o), n.push(o) }), t.eachSeries(function (i) { if (!!i_(i)) { var a = a_(i), o = a.xAxisModel, s = a.yAxisModel, l = o.getCoordSysModel(), u = l.coordinateSystem i.coordinateSystem = u.getCartesian( o.componentIndex, s.componentIndex ) } }), n ) }), (r.dimensions = zh), r ) })() function Hh(r, t) { return r.getCoordSysModel() === t } function o_(r, t, e, n) { e.getAxesOnZeroOf = function () { return a ? [a] : [] } var i = r[t], a, o = e.model, s = o.get(['axisLine', 'onZero']), l = o.get(['axisLine', 'onZeroAxisIndex']) if (!s) return if (l != null) s_(i[l]) && (a = i[l]) else for (var u in i) if (i.hasOwnProperty(u) && s_(i[u]) && !n[f(i[u])]) { a = i[u] break } a && (n[f(a)] = !0) function f(h) { return h.dim + '_' + h.index } } function s_(r) { return r && r.type !== 'category' && r.type !== 'time' && uI(r) } function lP(r, t) { var e = r.getExtent(), n = e[0] + e[1] ;(r.toGlobalCoord = r.dim === 'x' ? function (i) { return i + t } : function (i) { return n - i + t }), (r.toLocalCoord = r.dim === 'x' ? function (i) { return i - t } : function (i) { return n - i + t }) } var uP = sP, Vr = Math.PI, Dn = (function () { function r(t, e) { ;(this.group = new At()), (this.opt = e), (this.axisModel = t), j(e, { labelOffset: 0, nameDirection: 1, tickDirection: 1, labelDirection: 1, silent: !0, handleAutoShown: function () { return !0 } }) var n = new At({ x: e.position[0], y: e.position[1], rotation: e.rotation }) n.updateTransform(), (this._transformGroup = n) } return ( (r.prototype.hasBuilder = function (t) { return !!l_[t] }), (r.prototype.add = function (t) { l_[t](this.opt, this.axisModel, this.group, this._transformGroup) }), (r.prototype.getGroup = function () { return this.group }), (r.innerTextLayout = function (t, e, n) { var i = Xc(e - t), a, o return ( Bo(i) ? ((o = n > 0 ? 'top' : 'bottom'), (a = 'center')) : Bo(i - Vr) ? ((o = n > 0 ? 'bottom' : 'top'), (a = 'center')) : ((o = 'middle'), i > 0 && i < Vr ? (a = n > 0 ? 'right' : 'left') : (a = n > 0 ? 'left' : 'right')), { rotation: i, textAlign: a, textVerticalAlign: o } ) }), (r.makeAxisEventDataBase = function (t) { var e = { componentType: t.mainType, componentIndex: t.componentIndex } return (e[t.mainType + 'Index'] = t.componentIndex), e }), (r.isLabelSilent = function (t) { var e = t.get('tooltip') return t.get('silent') || !(t.get('triggerEvent') || (e && e.show)) }), r ) })(), l_ = { axisLine: function (r, t, e, n) { var i = t.get(['axisLine', 'show']) if ( (i === 'auto' && r.handleAutoShown && (i = r.handleAutoShown('axisLine')), !!i) ) { var a = t.axis.getExtent(), o = n.transform, s = [a[0], 0], l = [a[1], 0] o && (ue(s, s, o), ue(l, l, o)) var u = N( { lineCap: 'round' }, t.getModel(['axisLine', 'lineStyle']).getLineStyle() ), f = new cn({ subPixelOptimize: !0, shape: { x1: s[0], y1: s[1], x2: l[0], y2: l[1] }, style: u, strokeContainThreshold: r.strokeContainThreshold || 5, silent: !0, z2: 1 }) ;(f.anid = 'line'), e.add(f) var h = t.get(['axisLine', 'symbol']) if (h != null) { var c = t.get(['axisLine', 'symbolSize']) W(h) && (h = [h, h]), (W(c) || dt(c)) && (c = [c, c]) var v = Rm(t.get(['axisLine', 'symbolOffset']) || 0, c), d = c[0], p = c[1] A( [ { rotate: r.rotation + Math.PI / 2, offset: v[0], r: 0 }, { rotate: r.rotation - Math.PI / 2, offset: v[1], r: Math.sqrt( (s[0] - l[0]) * (s[0] - l[0]) + (s[1] - l[1]) * (s[1] - l[1]) ) } ], function (g, m) { if (h[m] !== 'none' && h[m] != null) { var y = Or(h[m], -d / 2, -p / 2, d, p, u.stroke, !0), _ = g.r + g.offset y.attr({ rotation: g.rotate, x: s[0] + _ * Math.cos(r.rotation), y: s[1] - _ * Math.sin(r.rotation), silent: !0, z2: 11 }), e.add(y) } } ) } } }, axisTickLabel: function (r, t, e, n) { var i = vP(e, n, t, r), a = dP(e, n, t, r) if ( (hP(t, a, i), cP(e, n, t, r.tickDirection), t.get(['axisLabel', 'hideOverlap'])) ) { var o = py( G(a, function (s) { return { label: s, priority: s.z2, defaultAttr: { ignore: s.ignore } } }) ) yy(o) } }, axisName: function (r, t, e, n) { var i = Ei(r.axisName, t.get('name')) if (!!i) { var a = t.get('nameLocation'), o = r.nameDirection, s = t.getModel('nameTextStyle'), l = t.get('nameGap') || 0, u = t.axis.getExtent(), f = u[0] > u[1] ? -1 : 1, h = [ a === 'start' ? u[0] - f * l : a === 'end' ? u[1] + f * l : (u[0] + u[1]) / 2, f_(a) ? r.labelOffset + o * l : 0 ], c, v = t.get('nameRotate') v != null && (v = (v * Vr) / 180) var d f_(a) ? (c = Dn.innerTextLayout(r.rotation, v != null ? v : r.rotation, o)) : ((c = fP(r.rotation, a, v || 0, u)), (d = r.axisNameAvailableWidth), d != null && ((d = Math.abs(d / Math.sin(c.rotation))), !isFinite(d) && (d = null))) var p = s.getFont(), g = t.get('nameTruncate', !0) || {}, m = g.ellipsis, y = Ei(r.nameTruncateMaxWidth, g.maxWidth, d), _ = new Et({ x: h[0], y: h[1], rotation: c.rotation, silent: Dn.isLabelSilent(t), style: vr(s, { text: i, font: p, overflow: 'truncate', width: y, ellipsis: m, fill: s.getTextColor() || t.get(['axisLine', 'lineStyle', 'color']), align: s.get('align') || c.textAlign, verticalAlign: s.get('verticalAlign') || c.textVerticalAlign }), z2: 1 }) if ( (fs({ el: _, componentModel: t, itemName: i }), (_.__fullText = i), (_.anid = 'name'), t.get('triggerEvent')) ) { var S = Dn.makeAxisEventDataBase(t) ;(S.targetType = 'axisName'), (S.name = i), (ct(_).eventData = S) } n.add(_), _.updateTransform(), e.add(_), _.decomposeTransform() } } } function fP(r, t, e, n) { var i = Xc(e - r), a, o, s = n[0] > n[1], l = (t === 'start' && !s) || (t !== 'start' && s) return ( Bo(i - Vr / 2) ? ((o = l ? 'bottom' : 'top'), (a = 'center')) : Bo(i - Vr * 1.5) ? ((o = l ? 'top' : 'bottom'), (a = 'center')) : ((o = 'middle'), i < Vr * 1.5 && i > Vr / 2 ? (a = l ? 'left' : 'right') : (a = l ? 'right' : 'left')), { rotation: i, textAlign: a, textVerticalAlign: o } ) } function hP(r, t, e) { if (!J0(r.axis)) { var n = r.get(['axisLabel', 'showMinLabel']), i = r.get(['axisLabel', 'showMaxLabel']) ;(t = t || []), (e = e || []) var a = t[0], o = t[1], s = t[t.length - 1], l = t[t.length - 2], u = e[0], f = e[1], h = e[e.length - 1], c = e[e.length - 2] n === !1 ? (Te(a), Te(u)) : u_(a, o) && (n ? (Te(o), Te(f)) : (Te(a), Te(u))), i === !1 ? (Te(s), Te(h)) : u_(l, s) && (i ? (Te(l), Te(c)) : (Te(s), Te(h))) } } function Te(r) { r && (r.ignore = !0) } function u_(r, t) { var e = r && r.getBoundingRect().clone(), n = t && t.getBoundingRect().clone() if (!(!e || !n)) { var i = cu([]) return ( pu(i, i, -r.rotation), e.applyTransform($n([], i, r.getLocalTransform())), n.applyTransform($n([], i, t.getLocalTransform())), e.intersect(n) ) } } function f_(r) { return r === 'middle' || r === 'center' } function h_(r, t, e, n, i) { for (var a = [], o = [], s = [], l = 0; l < r.length; l++) { var u = r[l].coord ;(o[0] = u), (o[1] = 0), (s[0] = u), (s[1] = e), t && (ue(o, o, t), ue(s, s, t)) var f = new cn({ subPixelOptimize: !0, shape: { x1: o[0], y1: o[1], x2: s[0], y2: s[1] }, style: n, z2: 2, autoBatch: !0, silent: !0 }) ;(f.anid = i + '_' + r[l].tickValue), a.push(f) } return a } function vP(r, t, e, n) { var i = e.axis, a = e.getModel('axisTick'), o = a.get('show') if ( (o === 'auto' && n.handleAutoShown && (o = n.handleAutoShown('axisTick')), !(!o || i.scale.isBlank())) ) { for ( var s = a.getModel('lineStyle'), l = n.tickDirection * a.get('length'), u = i.getTicksCoords(), f = h_( u, t.transform, l, j(s.getLineStyle(), { stroke: e.get(['axisLine', 'lineStyle', 'color']) }), 'ticks' ), h = 0; h < f.length; h++ ) r.add(f[h]) return f } } function cP(r, t, e, n) { var i = e.axis, a = e.getModel('minorTick') if (!(!a.get('show') || i.scale.isBlank())) { var o = i.getMinorTicksCoords() if (!!o.length) for ( var s = a.getModel('lineStyle'), l = n * a.get('length'), u = j( s.getLineStyle(), j(e.getModel('axisTick').getLineStyle(), { stroke: e.get(['axisLine', 'lineStyle', 'color']) }) ), f = 0; f < o.length; f++ ) for ( var h = h_(o[f], t.transform, l, u, 'minorticks_' + f), c = 0; c < h.length; c++ ) r.add(h[c]) } } function dP(r, t, e, n) { var i = e.axis, a = Ei(n.axisLabelShow, e.get(['axisLabel', 'show'])) if (!(!a || i.scale.isBlank())) { var o = e.getModel('axisLabel'), s = o.get('margin'), l = i.getViewLabels(), u = ((Ei(n.labelRotate, o.get('rotate')) || 0) * Vr) / 180, f = Dn.innerTextLayout(n.rotation, u, n.labelDirection), h = e.getCategories && e.getCategories(!0), c = [], v = Dn.isLabelSilent(e), d = e.get('triggerEvent') return ( A(l, function (p, g) { var m = i.scale.type === 'ordinal' ? i.scale.getRawOrdinalNumber(p.tickValue) : p.tickValue, y = p.formattedLabel, _ = p.rawLabel, S = o if (h && h[m]) { var w = h[m] Y(w) && w.textStyle && (S = new Nt(w.textStyle, o, e.ecModel)) } var x = S.getTextColor() || e.get(['axisLine', 'lineStyle', 'color']), b = i.dataToCoord(m), T = new Et({ x: b, y: n.labelOffset + n.labelDirection * s, rotation: f.rotation, silent: v, z2: 10 + (p.level || 0), style: vr(S, { text: y, align: S.getShallow('align', !0) || f.textAlign, verticalAlign: S.getShallow('verticalAlign', !0) || S.getShallow('baseline', !0) || f.textVerticalAlign, fill: Q(x) ? x( i.type === 'category' ? _ : i.type === 'value' ? m + '' : m, g ) : x }) }) if (((T.anid = 'label_' + m), d)) { var C = Dn.makeAxisEventDataBase(e) ;(C.targetType = 'axisLabel'), (C.value = _), (C.tickIndex = g), i.type === 'category' && (C.dataIndex = m), (ct(T).eventData = C) } t.add(T), T.updateTransform(), c.push(T), r.add(T), T.decomposeTransform() }), c ) } } var v_ = Dn function pP(r, t) { var e = { axesInfo: {}, seriesInvolved: !1, coordSysAxesInfo: {}, coordSysMap: {} } return gP(e, r, t), e.seriesInvolved && yP(e, r), e } function gP(r, t, e) { var n = t.getComponent('tooltip'), i = t.getComponent('axisPointer'), a = i.get('link', !0) || [], o = [] A(e.getCoordinateSystems(), function (s) { if (!s.axisPointerEnabled) return var l = Ya(s.model), u = (r.coordSysAxesInfo[l] = {}) r.coordSysMap[l] = s var f = s.model, h = f.getModel('tooltip', n) if ( (A(s.getAxes(), lt(p, !1, null)), s.getTooltipAxes && n && h.get('show')) ) { var c = h.get('trigger') === 'axis', v = h.get(['axisPointer', 'type']) === 'cross', d = s.getTooltipAxes(h.get(['axisPointer', 'axis'])) ;(c || v) && A(d.baseAxes, lt(p, v ? 'cross' : !0, c)), v && A(d.otherAxes, lt(p, 'cross', !1)) } function p(g, m, y) { var _ = y.model.getModel('axisPointer', i), S = _.get('show') if (!(!S || (S === 'auto' && !g && !Yh(_)))) { m == null && (m = _.get('triggerTooltip')), (_ = g ? mP(y, h, i, t, g, m) : _) var w = _.get('snap'), x = Ya(y.model), b = m || w || y.type === 'category', T = (r.axesInfo[x] = { key: x, axis: y, coordSys: s, axisPointerModel: _, triggerTooltip: m, involveSeries: b, snap: w, useHandle: Yh(_), seriesModels: [], linkGroup: null }) ;(u[x] = T), (r.seriesInvolved = r.seriesInvolved || b) var C = _P(a, y) if (C != null) { var M = o[C] || (o[C] = { axesInfo: {} }) ;(M.axesInfo[x] = T), (M.mapper = a[C].mapper), (T.linkGroup = M) } } } }) } function mP(r, t, e, n, i, a) { var o = t.getModel('axisPointer'), s = [ 'type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z' ], l = {} A(s, function (c) { l[c] = tt(o.get(c)) }), (l.snap = r.type !== 'category' && !!a), o.get('type') === 'cross' && (l.type = 'line') var u = l.label || (l.label = {}) if ((u.show == null && (u.show = !1), i === 'cross')) { var f = o.get(['label', 'show']) if (((u.show = f != null ? f : !0), !a)) { var h = (l.lineStyle = o.get('crossStyle')) h && j(u, h.textStyle) } } return r.model.getModel('axisPointer', new Nt(l, e, n)) } function yP(r, t) { t.eachSeries(function (e) { var n = e.coordinateSystem, i = e.get(['tooltip', 'trigger'], !0), a = e.get(['tooltip', 'show'], !0) !n || i === 'none' || i === !1 || i === 'item' || a === !1 || e.get(['axisPointer', 'show'], !0) === !1 || A(r.coordSysAxesInfo[Ya(n.model)], function (o) { var s = o.axis n.getAxis(s.dim) === s && (o.seriesModels.push(e), o.seriesDataCount == null && (o.seriesDataCount = 0), (o.seriesDataCount += e.getData().count())) }) }) } function _P(r, t) { for (var e = t.model, n = t.dim, i = 0; i < r.length; i++) { var a = r[i] || {} if ( Wh(a[n + 'AxisId'], e.id) || Wh(a[n + 'AxisIndex'], e.componentIndex) || Wh(a[n + 'AxisName'], e.name) ) return i } } function Wh(r, t) { return r === 'all' || (z(r) && ot(r, t) >= 0) || r === t } function SP(r) { var t = Uh(r) if (!!t) { var e = t.axisPointerModel, n = t.axis.scale, i = e.option, a = e.get('status'), o = e.get('value') o != null && (o = n.parse(o)) var s = Yh(e) a == null && (i.status = s ? 'show' : 'hide') var l = n.getExtent().slice() l[0] > l[1] && l.reverse(), (o == null || o > l[1]) && (o = l[1]), o < l[0] && (o = l[0]), (i.value = o), s && (i.status = t.axis.scale.isBlank() ? 'hide' : 'show') } } function Uh(r) { var t = (r.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo return t && t.axesInfo[Ya(r)] } function xP(r) { var t = Uh(r) return t && t.axisPointerModel } function Yh(r) { return !!r.get(['handle', 'show']) } function Ya(r) { return r.type + '||' + r.id } var c_ = {}, wP = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.prototype.render = function (e, n, i, a) { this.axisPointerClass && SP(e), r.prototype.render.apply(this, arguments), this._doUpdateAxisPointerClass(e, i, !0) }), (t.prototype.updateAxisPointer = function (e, n, i, a) { this._doUpdateAxisPointerClass(e, i, !1) }), (t.prototype.remove = function (e, n) { var i = this._axisPointer i && i.remove(n) }), (t.prototype.dispose = function (e, n) { this._disposeAxisPointer(n), r.prototype.dispose.apply(this, arguments) }), (t.prototype._doUpdateAxisPointerClass = function (e, n, i) { var a = t.getAxisPointerClass(this.axisPointerClass) if (!!a) { var o = xP(e) o ? (this._axisPointer || (this._axisPointer = new a())).render( e, o, n, i ) : this._disposeAxisPointer(n) } }), (t.prototype._disposeAxisPointer = function (e) { this._axisPointer && this._axisPointer.dispose(e), (this._axisPointer = null) }), (t.registerAxisPointerClass = function (e, n) { c_[e] = n }), (t.getAxisPointerClass = function (e) { return e && c_[e] }), (t.type = 'axis'), t ) })(xe), d_ = wP, Zh = wt() function bP(r, t, e, n) { var i = e.axis if (!i.scale.isBlank()) { var a = e.getModel('splitArea'), o = a.getModel('areaStyle'), s = o.get('color'), l = n.coordinateSystem.getRect(), u = i.getTicksCoords({ tickModel: a, clamp: !0 }) if (!!u.length) { var f = s.length, h = Zh(r).splitAreaColors, c = q(), v = 0 if (h) for (var d = 0; d < u.length; d++) { var p = h.get(u[d].tickValue) if (p != null) { v = (p + (f - 1) * d) % f break } } var g = i.toGlobalCoord(u[0].coord), m = o.getAreaStyle() s = z(s) ? s : [s] for (var d = 1; d < u.length; d++) { var y = i.toGlobalCoord(u[d].coord), _ = void 0, S = void 0, w = void 0, x = void 0 i.isHorizontal() ? ((_ = g), (S = l.y), (w = y - _), (x = l.height), (g = _ + w)) : ((_ = l.x), (S = g), (w = l.width), (x = y - S), (g = S + x)) var b = u[d - 1].tickValue b != null && c.set(b, v), t.add( new St({ anid: b != null ? 'area_' + b : null, shape: { x: _, y: S, width: w, height: x }, style: j({ fill: s[v] }, m), autoBatch: !0, silent: !0 }) ), (v = (v + 1) % f) } Zh(r).splitAreaColors = c } } } function TP(r) { Zh(r).splitAreaColors = null } var CP = ['axisLine', 'axisTickLabel', 'axisName'], AP = ['splitArea', 'splitLine', 'minorSplitLine'], p_ = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), (e.axisPointerClass = 'CartesianAxisPointer'), e } return ( (t.prototype.render = function (e, n, i, a) { this.group.removeAll() var o = this._axisGroup if ( ((this._axisGroup = new At()), this.group.add(this._axisGroup), !!e.get('show')) ) { var s = e.getCoordSysModel(), l = Vh(s, e), u = new v_( e, N( { handleAutoShown: function (h) { for ( var c = s.coordinateSystem.getCartesians(), v = 0; v < c.length; v++ ) if (_h(c[v].getOtherAxis(e.axis).scale)) return !0 return !1 } }, l ) ) A(CP, u.add, u), this._axisGroup.add(u.getGroup()), A( AP, function (h) { e.get([h, 'show']) && MP[h](this, this._axisGroup, e, s) }, this ) var f = a && a.type === 'changeAxisOrder' && a.isInitSort f || Bp(o, this._axisGroup, e), r.prototype.render.call(this, e, n, i, a) } }), (t.prototype.remove = function () { TP(this) }), (t.type = 'cartesianAxis'), t ) })(d_), MP = { splitLine: function (r, t, e, n) { var i = e.axis if (!i.scale.isBlank()) { var a = e.getModel('splitLine'), o = a.getModel('lineStyle'), s = o.get('color') s = z(s) ? s : [s] for ( var l = n.coordinateSystem.getRect(), u = i.isHorizontal(), f = 0, h = i.getTicksCoords({ tickModel: a }), c = [], v = [], d = o.getLineStyle(), p = 0; p < h.length; p++ ) { var g = i.toGlobalCoord(h[p].coord) u ? ((c[0] = g), (c[1] = l.y), (v[0] = g), (v[1] = l.y + l.height)) : ((c[0] = l.x), (c[1] = g), (v[0] = l.x + l.width), (v[1] = g)) var m = f++ % s.length, y = h[p].tickValue t.add( new cn({ anid: y != null ? 'line_' + h[p].tickValue : null, subPixelOptimize: !0, autoBatch: !0, shape: { x1: c[0], y1: c[1], x2: v[0], y2: v[1] }, style: j({ stroke: s[m] }, d), silent: !0 }) ) } } }, minorSplitLine: function (r, t, e, n) { var i = e.axis, a = e.getModel('minorSplitLine'), o = a.getModel('lineStyle'), s = n.coordinateSystem.getRect(), l = i.isHorizontal(), u = i.getMinorTicksCoords() if (!!u.length) for (var f = [], h = [], c = o.getLineStyle(), v = 0; v < u.length; v++) for (var d = 0; d < u[v].length; d++) { var p = i.toGlobalCoord(u[v][d].coord) l ? ((f[0] = p), (f[1] = s.y), (h[0] = p), (h[1] = s.y + s.height)) : ((f[0] = s.x), (f[1] = p), (h[0] = s.x + s.width), (h[1] = p)), t.add( new cn({ anid: 'minor_line_' + u[v][d].tickValue, subPixelOptimize: !0, autoBatch: !0, shape: { x1: f[0], y1: f[1], x2: h[0], y2: h[1] }, style: c, silent: !0 }) ) } }, splitArea: function (r, t, e, n) { bP(r, t, e, n) } }, g_ = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return (t.type = 'xAxis'), t })(p_), DP = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = g_.type), e } return (t.type = 'yAxis'), t })(p_), IP = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = 'grid'), e } return ( (t.prototype.render = function (e, n) { this.group.removeAll(), e.get('show') && this.group.add( new St({ shape: e.coordinateSystem.getRect(), style: j({ fill: e.get('backgroundColor') }, e.getItemStyle()), silent: !0, z2: -1 }) ) }), (t.type = 'grid'), t ) })(xe), m_ = { offset: 0 } function LP(r) { r.registerComponentView(IP), r.registerComponentModel(XL), r.registerCoordinateSystem('cartesian2d', uP), e_(r, 'x', Nh, m_), e_(r, 'y', Nh, m_), r.registerComponentView(g_), r.registerComponentView(DP), r.registerPreprocessor(function (t) { t.xAxis && t.yAxis && !t.grid && (t.grid = {}) }) } var y_ = '\0_ec_interaction_mutex' function PP(r, t, e) { var n = $h(r) n[t] = e } function RP(r, t, e) { var n = $h(r), i = n[t] i === e && (n[t] = null) } function __(r, t) { return !!$h(r)[t] } function $h(r) { return r[y_] || (r[y_] = {}) } Je( { type: 'takeGlobalCursor', event: 'globalCursorTaken', update: 'update' }, $t ) var EP = (function (r) { B(t, r) function t(e) { var n = r.call(this) || this n._zr = e var i = X(n._mousedownHandler, n), a = X(n._mousemoveHandler, n), o = X(n._mouseupHandler, n), s = X(n._mousewheelHandler, n), l = X(n._pinchHandler, n) return ( (n.enable = function (u, f) { this.disable(), (this._opt = j(tt(f) || {}, { zoomOnMouseWheel: !0, moveOnMouseMove: !0, moveOnMouseWheel: !1, preventDefaultMouseMove: !0 })), u == null && (u = !0), (u === !0 || u === 'move' || u === 'pan') && (e.on('mousedown', i), e.on('mousemove', a), e.on('mouseup', o)), (u === !0 || u === 'scale' || u === 'zoom') && (e.on('mousewheel', s), e.on('pinch', l)) }), (n.disable = function () { e.off('mousedown', i), e.off('mousemove', a), e.off('mouseup', o), e.off('mousewheel', s), e.off('pinch', l) }), n ) } return ( (t.prototype.isDragging = function () { return this._dragging }), (t.prototype.isPinching = function () { return this._pinching }), (t.prototype.setPointerChecker = function (e) { this.pointerChecker = e }), (t.prototype.dispose = function () { this.disable() }), (t.prototype._mousedownHandler = function (e) { if (!(tc(e) || (e.target && e.target.draggable))) { var n = e.offsetX, i = e.offsetY this.pointerChecker && this.pointerChecker(e, n, i) && ((this._x = n), (this._y = i), (this._dragging = !0)) } }), (t.prototype._mousemoveHandler = function (e) { if ( !( !this._dragging || !dl('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || __(this._zr, 'globalPan') ) ) { var n = e.offsetX, i = e.offsetY, a = this._x, o = this._y, s = n - a, l = i - o ;(this._x = n), (this._y = i), this._opt.preventDefaultMouseMove && Hn(e.event), S_(this, 'pan', 'moveOnMouseMove', e, { dx: s, dy: l, oldX: a, oldY: o, newX: n, newY: i, isAvailableBehavior: null }) } }), (t.prototype._mouseupHandler = function (e) { tc(e) || (this._dragging = !1) }), (t.prototype._mousewheelHandler = function (e) { var n = dl('zoomOnMouseWheel', e, this._opt), i = dl('moveOnMouseWheel', e, this._opt), a = e.wheelDelta, o = Math.abs(a), s = e.offsetX, l = e.offsetY if (!(a === 0 || (!n && !i))) { if (n) { var u = o > 3 ? 1.4 : o > 1 ? 1.2 : 1.1, f = a > 0 ? u : 1 / u Xh(this, 'zoom', 'zoomOnMouseWheel', e, { scale: f, originX: s, originY: l, isAvailableBehavior: null }) } if (i) { var h = Math.abs(a), c = (a > 0 ? 1 : -1) * (h > 3 ? 0.4 : h > 1 ? 0.15 : 0.05) Xh(this, 'scrollMove', 'moveOnMouseWheel', e, { scrollDelta: c, originX: s, originY: l, isAvailableBehavior: null }) } } }), (t.prototype._pinchHandler = function (e) { if (!__(this._zr, 'globalPan')) { var n = e.pinchScale > 1 ? 1.1 : 1 / 1.1 Xh(this, 'zoom', null, e, { scale: n, originX: e.pinchX, originY: e.pinchY, isAvailableBehavior: null }) } }), t ) })(fe) function Xh(r, t, e, n, i) { r.pointerChecker && r.pointerChecker(n, i.originX, i.originY) && (Hn(n.event), S_(r, t, e, n, i)) } function S_(r, t, e, n, i) { ;(i.isAvailableBehavior = X(dl, null, e, n)), r.trigger(t, i) } function dl(r, t, e) { var n = e[r] return !r || (n && (!W(n) || t.event[n + 'Key'])) } var OP = EP, kP = { axisPointer: 1, tooltip: 1, brush: 1 } function BP(r, t, e) { var n = t.getComponentByElement(r.topTarget), i = n && n.coordinateSystem return n && n !== e && !kP.hasOwnProperty(n.mainType) && i && i.model !== e } function Za(r, t, e, n, i, a) { r = r || 0 var o = e[1] - e[0] if ( (i != null && (i = xi(i, [0, o])), a != null && (a = Math.max(a, i != null ? i : 0)), n === 'all') ) { var s = Math.abs(t[1] - t[0]) ;(s = xi(s, [0, o])), (i = a = xi(s, [i, a])), (n = 0) } ;(t[0] = xi(t[0], e)), (t[1] = xi(t[1], e)) var l = qh(t, n) t[n] += r var u = i || 0, f = e.slice() l.sign < 0 ? (f[0] += u) : (f[1] -= u), (t[n] = xi(t[n], f)) var h return ( (h = qh(t, n)), i != null && (h.sign !== l.sign || h.span < i) && (t[1 - n] = t[n] + l.sign * i), (h = qh(t, n)), a != null && h.span > a && (t[1 - n] = t[n] + h.sign * a), t ) } function qh(r, t) { var e = r[t] - r[1 - t] return { span: Math.abs(e), sign: e > 0 ? -1 : e < 0 ? 1 : t ? -1 : 1 } } function xi(r, t) { return Math.min( t[1] != null ? t[1] : 1 / 0, Math.max(t[0] != null ? t[0] : -1 / 0, r) ) } var In = !0, $a = Math.min, wi = Math.max, NP = Math.pow, FP = 1e4, zP = 6, VP = 6, x_ = 'globalPan', GP = { w: [0, 0], e: [0, 1], n: [1, 0], s: [1, 1] }, HP = { w: 'ew', e: 'ew', n: 'ns', s: 'ns', ne: 'nesw', sw: 'nesw', nw: 'nwse', se: 'nwse' }, w_ = { brushStyle: { lineWidth: 2, stroke: 'rgba(210,219,238,0.3)', fill: '#D2DBEE' }, transformable: !0, brushMode: 'single', removeOnClick: !1 }, WP = 0, UP = (function (r) { B(t, r) function t(e) { var n = r.call(this) || this return ( (n._track = []), (n._covers = []), (n._handlers = {}), (n._zr = e), (n.group = new At()), (n._uid = 'brushController_' + WP++), A( QP, function (i, a) { this._handlers[a] = X(i, this) }, n ), n ) } return ( (t.prototype.enableBrush = function (e) { return ( this._brushType && this._doDisableBrush(), e.brushType && this._doEnableBrush(e), this ) }), (t.prototype._doEnableBrush = function (e) { var n = this._zr this._enableGlobalPan || PP(n, x_, this._uid), A(this._handlers, function (i, a) { n.on(a, i) }), (this._brushType = e.brushType), (this._brushOption = nt(tt(w_), e, !0)) }), (t.prototype._doDisableBrush = function () { var e = this._zr RP(e, x_, this._uid), A(this._handlers, function (n, i) { e.off(i, n) }), (this._brushType = this._brushOption = null) }), (t.prototype.setPanels = function (e) { if (e && e.length) { var n = (this._panels = {}) A(e, function (i) { n[i.panelId] = tt(i) }) } else this._panels = null return this }), (t.prototype.mount = function (e) { ;(e = e || {}), (this._enableGlobalPan = e.enableGlobalPan) var n = this.group return ( this._zr.add(n), n.attr({ x: e.x || 0, y: e.y || 0, rotation: e.rotation || 0, scaleX: e.scaleX || 1, scaleY: e.scaleY || 1 }), (this._transform = n.getLocalTransform()), this ) }), (t.prototype.updateCovers = function (e) { e = G(e, function (c) { return nt(tt(w_), c, !0) }) var n = '\0-brush-index-', i = this._covers, a = (this._covers = []), o = this, s = this._creatingCover return new Ba(i, e, u, l).add(f).update(f).remove(h).execute(), this function l(c, v) { return (c.id != null ? c.id : n + v) + '-' + c.brushType } function u(c, v) { return l(c.__brushOption, v) } function f(c, v) { var d = e[c] if (v != null && i[v] === s) a[c] = i[v] else { var p = (a[c] = v != null ? ((i[v].__brushOption = d), i[v]) : T_(o, b_(o, d))) Kh(o, p) } } function h(c) { i[c] !== s && o.group.remove(i[c]) } }), (t.prototype.unmount = function () { return this.enableBrush(!1), jh(this), this._zr.remove(this.group), this }), (t.prototype.dispose = function () { this.unmount(), this.off() }), t ) })(fe) function b_(r, t) { var e = pl[t.brushType].createCover(r, t) return (e.__brushOption = t), A_(e, t), r.group.add(e), e } function T_(r, t) { var e = Qh(t) return e.endCreating && (e.endCreating(r, t), A_(t, t.__brushOption)), t } function C_(r, t) { var e = t.__brushOption Qh(t).updateCoverShape(r, t, e.range, e) } function A_(r, t) { var e = t.z e == null && (e = FP), r.traverse(function (n) { ;(n.z = e), (n.z2 = e) }) } function Kh(r, t) { Qh(t).updateCommon(r, t), C_(r, t) } function Qh(r) { return pl[r.__brushOption.brushType] } function Jh(r, t, e) { var n = r._panels if (!n) return In var i, a = r._transform return ( A(n, function (o) { o.isTargetByCursor(t, e, a) && (i = o) }), i ) } function M_(r, t) { var e = r._panels if (!e) return In var n = t.__brushOption.panelId return n != null ? e[n] : In } function jh(r) { var t = r._covers, e = t.length return ( A( t, function (n) { r.group.remove(n) }, r ), (t.length = 0), !!e ) } function Ln(r, t) { var e = G(r._covers, function (n) { var i = n.__brushOption, a = tt(i.range) return { brushType: i.brushType, panelId: i.panelId, range: a } }) r.trigger('brush', { areas: e, isEnd: !!t.isEnd, removeOnClick: !!t.removeOnClick }) } function YP(r) { var t = r._track if (!t.length) return !1 var e = t[t.length - 1], n = t[0], i = e[0] - n[0], a = e[1] - n[1], o = NP(i * i + a * a, 0.5) return o > zP } function D_(r) { var t = r.length - 1 return t < 0 && (t = 0), [r[0], r[t]] } function I_(r, t, e, n) { var i = new At() return ( i.add( new St({ name: 'main', style: ev(e), silent: !0, draggable: !0, cursor: 'move', drift: lt(R_, r, t, i, ['n', 's', 'w', 'e']), ondragend: lt(Ln, t, { isEnd: !0 }) }) ), A(n, function (a) { i.add( new St({ name: a.join(''), style: { opacity: 0 }, draggable: !0, silent: !0, invisible: !0, drift: lt(R_, r, t, i, a), ondragend: lt(Ln, t, { isEnd: !0 }) }) ) }), i ) } function L_(r, t, e, n) { var i = n.brushStyle.lineWidth || 0, a = wi(i, VP), o = e[0][0], s = e[1][0], l = o - i / 2, u = s - i / 2, f = e[0][1], h = e[1][1], c = f - a + i / 2, v = h - a + i / 2, d = f - o, p = h - s, g = d + i, m = p + i mr(r, t, 'main', o, s, d, p), n.transformable && (mr(r, t, 'w', l, u, a, m), mr(r, t, 'e', c, u, a, m), mr(r, t, 'n', l, u, g, a), mr(r, t, 's', l, v, g, a), mr(r, t, 'nw', l, u, a, a), mr(r, t, 'ne', c, u, a, a), mr(r, t, 'sw', l, v, a, a), mr(r, t, 'se', c, v, a, a)) } function tv(r, t) { var e = t.__brushOption, n = e.transformable, i = t.childAt(0) i.useStyle(ev(e)), i.attr({ silent: !n, cursor: n ? 'move' : 'default' }), A( [ ['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w'] ], function (a) { var o = t.childOfName(a.join('')), s = a.length === 1 ? rv(r, a[0]) : $P(r, a) o && o.attr({ silent: !n, invisible: !n, cursor: n ? HP[s] + '-resize' : null }) } ) } function mr(r, t, e, n, i, a, o) { var s = t.childOfName(e) s && s.setShape( qP( nv(r, t, [ [n, i], [n + a, i + o] ]) ) ) } function ev(r) { return j({ strokeNoScale: !0 }, r.brushStyle) } function P_(r, t, e, n) { var i = [$a(r, e), $a(t, n)], a = [wi(r, e), wi(t, n)] return [ [i[0], a[0]], [i[1], a[1]] ] } function ZP(r) { return ls(r.group) } function rv(r, t) { var e = { w: 'left', e: 'right', n: 'top', s: 'bottom' }, n = { left: 'w', right: 'e', top: 'n', bottom: 's' }, i = hf(e[t], ZP(r)) return n[i] } function $P(r, t) { var e = [rv(r, t[0]), rv(r, t[1])] return (e[0] === 'e' || e[0] === 'w') && e.reverse(), e.join('') } function R_(r, t, e, n, i, a) { var o = e.__brushOption, s = r.toRectRange(o.range), l = E_(t, i, a) A(n, function (u) { var f = GP[u] s[f[0]][f[1]] += l[f[0]] }), (o.range = r.fromRectRange(P_(s[0][0], s[1][0], s[0][1], s[1][1]))), Kh(t, e), Ln(t, { isEnd: !1 }) } function XP(r, t, e, n) { var i = t.__brushOption.range, a = E_(r, e, n) A(i, function (o) { ;(o[0] += a[0]), (o[1] += a[1]) }), Kh(r, t), Ln(r, { isEnd: !1 }) } function E_(r, t, e) { var n = r.group, i = n.transformCoordToLocal(t, e), a = n.transformCoordToLocal(0, 0) return [i[0] - a[0], i[1] - a[1]] } function nv(r, t, e) { var n = M_(r, t) return n && n !== In ? n.clipPath(e, r._transform) : tt(e) } function qP(r) { var t = $a(r[0][0], r[1][0]), e = $a(r[0][1], r[1][1]), n = wi(r[0][0], r[1][0]), i = wi(r[0][1], r[1][1]) return { x: t, y: e, width: n - t, height: i - e } } function KP(r, t, e) { if (!(!r._brushType || JP(r, t.offsetX, t.offsetY))) { var n = r._zr, i = r._covers, a = Jh(r, t, e) if (!r._dragging) for (var o = 0; o < i.length; o++) { var s = i[o].__brushOption if ( a && (a === In || s.panelId === a.panelId) && pl[s.brushType].contain(i[o], e[0], e[1]) ) return } a && n.setCursorStyle('crosshair') } } function iv(r) { var t = r.event t.preventDefault && t.preventDefault() } function av(r, t, e) { return r.childOfName('main').contain(t, e) } function O_(r, t, e, n) { var i = r._creatingCover, a = r._creatingPanel, o = r._brushOption, s if ((r._track.push(e.slice()), YP(r) || i)) { if (a && !i) { o.brushMode === 'single' && jh(r) var l = tt(o) ;(l.brushType = k_(l.brushType, a)), (l.panelId = a === In ? null : a.panelId), (i = r._creatingCover = b_(r, l)), r._covers.push(i) } if (i) { var u = pl[k_(r._brushType, a)], f = i.__brushOption ;(f.range = u.getCreatingRange(nv(r, i, r._track))), n && (T_(r, i), u.updateCommon(r, i)), C_(r, i), (s = { isEnd: n }) } } else n && o.brushMode === 'single' && o.removeOnClick && Jh(r, t, e) && jh(r) && (s = { isEnd: n, removeOnClick: !0 }) return s } function k_(r, t) { return r === 'auto' ? t.defaultBrushType : r } var QP = { mousedown: function (r) { if (this._dragging) B_(this, r) else if (!r.target || !r.target.draggable) { iv(r) var t = this.group.transformCoordToLocal(r.offsetX, r.offsetY) this._creatingCover = null var e = (this._creatingPanel = Jh(this, r, t)) e && ((this._dragging = !0), (this._track = [t.slice()])) } }, mousemove: function (r) { var t = r.offsetX, e = r.offsetY, n = this.group.transformCoordToLocal(t, e) if ((KP(this, r, n), this._dragging)) { iv(r) var i = O_(this, r, n, !1) i && Ln(this, i) } }, mouseup: function (r) { B_(this, r) } } function B_(r, t) { if (r._dragging) { iv(t) var e = t.offsetX, n = t.offsetY, i = r.group.transformCoordToLocal(e, n), a = O_(r, t, i, !0) ;(r._dragging = !1), (r._track = []), (r._creatingCover = null), a && Ln(r, a) } } function JP(r, t, e) { var n = r._zr return t < 0 || t > n.getWidth() || e < 0 || e > n.getHeight() } var pl = { lineX: N_(0), lineY: N_(1), rect: { createCover: function (r, t) { function e(n) { return n } return I_({ toRectRange: e, fromRectRange: e }, r, t, [ ['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w'] ]) }, getCreatingRange: function (r) { var t = D_(r) return P_(t[1][0], t[1][1], t[0][0], t[0][1]) }, updateCoverShape: function (r, t, e, n) { L_(r, t, e, n) }, updateCommon: tv, contain: av }, polygon: { createCover: function (r, t) { var e = new At() return e.add(new ai({ name: 'main', style: ev(t), silent: !0 })), e }, getCreatingRange: function (r) { return r }, endCreating: function (r, t) { t.remove(t.childAt(0)), t.add( new ua({ name: 'main', draggable: !0, drift: lt(XP, r, t), ondragend: lt(Ln, r, { isEnd: !0 }) }) ) }, updateCoverShape: function (r, t, e, n) { t.childAt(0).setShape({ points: nv(r, t, e) }) }, updateCommon: tv, contain: av } } function N_(r) { return { createCover: function (t, e) { return I_( { toRectRange: function (n) { var i = [n, [0, 100]] return r && i.reverse(), i }, fromRectRange: function (n) { return n[r] } }, t, e, [ [['w'], ['e']], [['n'], ['s']] ][r] ) }, getCreatingRange: function (t) { var e = D_(t), n = $a(e[0][r], e[1][r]), i = wi(e[0][r], e[1][r]) return [n, i] }, updateCoverShape: function (t, e, n, i) { var a, o = M_(t, e) if (o !== In && o.getLinearBrushOtherExtent) a = o.getLinearBrushOtherExtent(r) else { var s = t._zr a = [0, [s.getWidth(), s.getHeight()][1 - r]] } var l = [n, a] r && l.reverse(), L_(t, e, l, i) }, updateCommon: tv, contain: av } } var jP = UP function tR(r) { return ( (r = ov(r)), function (t) { return Np(t, r) } ) } function eR(r, t) { return ( (r = ov(r)), function (e) { var n = t != null ? t : e, i = n ? r.width : r.height, a = n ? r.x : r.y return [a, a + (i || 0)] } ) } function rR(r, t, e) { var n = ov(r) return function (i, a) { return n.contain(a[0], a[1]) && !BP(i, t, e) } } function ov(r) { return vt.create(r) } var Pn = wt(), F_ = tt, sv = X, nR = (function () { function r() { ;(this._dragging = !1), (this.animationThreshold = 15) } return ( (r.prototype.render = function (t, e, n, i) { var a = e.get('value'), o = e.get('status') if ( ((this._axisModel = t), (this._axisPointerModel = e), (this._api = n), !(!i && this._lastValue === a && this._lastStatus === o)) ) { ;(this._lastValue = a), (this._lastStatus = o) var s = this._group, l = this._handle if (!o || o === 'hide') { s && s.hide(), l && l.hide() return } s && s.show(), l && l.show() var u = {} this.makeElOption(u, a, t, e, n) var f = u.graphicKey f !== this._lastGraphicKey && this.clear(n), (this._lastGraphicKey = f) var h = (this._moveAnimation = this.determineAnimation(t, e)) if (!s) (s = this._group = new At()), this.createPointerEl(s, u, t, e), this.createLabelEl(s, u, t, e), n.getZr().add(s) else { var c = lt(z_, e, h) this.updatePointerEl(s, u, c), this.updateLabelEl(s, u, c, e) } H_(s, e, !0), this._renderHandle(a) } }), (r.prototype.remove = function (t) { this.clear(t) }), (r.prototype.dispose = function (t) { this.clear(t) }), (r.prototype.determineAnimation = function (t, e) { var n = e.get('animation'), i = t.axis, a = i.type === 'category', o = e.get('snap') if (!o && !a) return !1 if (n === 'auto' || n == null) { var s = this.animationThreshold if (a && i.getBandWidth() > s) return !0 if (o) { var l = Uh(t).seriesDataCount, u = i.getExtent() return Math.abs(u[0] - u[1]) / l > s } return !1 } return n === !0 }), (r.prototype.makeElOption = function (t, e, n, i, a) {}), (r.prototype.createPointerEl = function (t, e, n, i) { var a = e.pointer if (a) { var o = (Pn(t).pointerEl = new RC[a.type](F_(e.pointer))) t.add(o) } }), (r.prototype.createLabelEl = function (t, e, n, i) { if (e.label) { var a = (Pn(t).labelEl = new Et(F_(e.label))) t.add(a), G_(a, i) } }), (r.prototype.updatePointerEl = function (t, e, n) { var i = Pn(t).pointerEl i && e.pointer && (i.setStyle(e.pointer.style), n(i, { shape: e.pointer.shape })) }), (r.prototype.updateLabelEl = function (t, e, n, i) { var a = Pn(t).labelEl a && (a.setStyle(e.label.style), n(a, { x: e.label.x, y: e.label.y }), G_(a, i)) }), (r.prototype._renderHandle = function (t) { if (!(this._dragging || !this.updateHandleTransform)) { var e = this._axisPointerModel, n = this._api.getZr(), i = this._handle, a = e.getModel('handle'), o = e.get('status') if (!a.get('show') || !o || o === 'hide') { i && n.remove(i), (this._handle = null) return } var s this._handle || ((s = !0), (i = this._handle = us(a.get('icon'), { cursor: 'move', draggable: !0, onmousemove: function (u) { Hn(u.event) }, onmousedown: sv(this._onHandleDragMove, this, 0, 0), drift: sv(this._onHandleDragMove, this), ondragend: sv(this._onHandleDragEnd, this) })), n.add(i)), H_(i, e, !1), i.setStyle( a.getItemStyle(null, [ 'color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY' ]) ) var l = a.get('size') z(l) || (l = [l, l]), (i.scaleX = l[0] / 2), (i.scaleY = l[1] / 2), Os( this, '_doDispatchAxisPointer', a.get('throttle') || 0, 'fixRate' ), this._moveHandleToValue(t, s) } }), (r.prototype._moveHandleToValue = function (t, e) { z_( this._axisPointerModel, !e && this._moveAnimation, this._handle, lv( this.getHandleTransform(t, this._axisModel, this._axisPointerModel) ) ) }), (r.prototype._onHandleDragMove = function (t, e) { var n = this._handle if (!!n) { this._dragging = !0 var i = this.updateHandleTransform( lv(n), [t, e], this._axisModel, this._axisPointerModel ) ;(this._payloadInfo = i), n.stopAnimation(), n.attr(lv(i)), (Pn(n).lastProp = null), this._doDispatchAxisPointer() } }), (r.prototype._doDispatchAxisPointer = function () { var t = this._handle if (!!t) { var e = this._payloadInfo, n = this._axisModel this._api.dispatchAction({ type: 'updateAxisPointer', x: e.cursorPoint[0], y: e.cursorPoint[1], tooltipOption: e.tooltipOption, axesInfo: [{ axisDim: n.axis.dim, axisIndex: n.componentIndex }] }) } }), (r.prototype._onHandleDragEnd = function () { this._dragging = !1 var t = this._handle if (!!t) { var e = this._axisPointerModel.get('value') this._moveHandleToValue(e), this._api.dispatchAction({ type: 'hideTip' }) } }), (r.prototype.clear = function (t) { ;(this._lastValue = null), (this._lastStatus = null) var e = t.getZr(), n = this._group, i = this._handle e && n && ((this._lastGraphicKey = null), n && e.remove(n), i && e.remove(i), (this._group = null), (this._handle = null), (this._payloadInfo = null)), ks(this, '_doDispatchAxisPointer') }), (r.prototype.doClear = function () {}), (r.prototype.buildLabel = function (t, e, n) { return ( (n = n || 0), { x: t[n], y: t[1 - n], width: e[n], height: e[1 - n] } ) }), r ) })() function z_(r, t, e, n) { V_(Pn(e).lastProp, n) || ((Pn(e).lastProp = n), t ? kt(e, n, r) : (e.stopAnimation(), e.attr(n))) } function V_(r, t) { if (Y(r) && Y(t)) { var e = !0 return ( A(t, function (n, i) { e = e && V_(r[i], n) }), !!e ) } else return r === t } function G_(r, t) { r[t.get(['label', 'show']) ? 'show' : 'hide']() } function lv(r) { return { x: r.x || 0, y: r.y || 0, rotation: r.rotation || 0 } } function H_(r, t, e) { var n = t.get('z'), i = t.get('zlevel') r && r.traverse(function (a) { a.type !== 'group' && (n != null && (a.z = n), i != null && (a.zlevel = i), (a.silent = e)) }) } var iR = nR function aR(r) { var t = r.get('type'), e = r.getModel(t + 'Style'), n return ( t === 'line' ? ((n = e.getLineStyle()), (n.fill = null)) : t === 'shadow' && ((n = e.getAreaStyle()), (n.stroke = null)), n ) } function oR(r, t, e, n, i) { var a = e.get('value'), o = W_(a, t.axis, t.ecModel, e.get('seriesDataIndices'), { precision: e.get(['label', 'precision']), formatter: e.get(['label', 'formatter']) }), s = e.getModel('label'), l = ws(s.get('padding') || 0), u = s.getFont(), f = Eo(o, u), h = i.position, c = f.width + l[1] + l[3], v = f.height + l[0] + l[2], d = i.align d === 'right' && (h[0] -= c), d === 'center' && (h[0] -= c / 2) var p = i.verticalAlign p === 'bottom' && (h[1] -= v), p === 'middle' && (h[1] -= v / 2), sR(h, c, v, n) var g = s.get('backgroundColor') ;(!g || g === 'auto') && (g = t.get(['axisLine', 'lineStyle', 'color'])), (r.label = { x: h[0], y: h[1], style: vr(s, { text: o, font: u, fill: s.getTextColor(), padding: l, backgroundColor: g }), z2: 10 }) } function sR(r, t, e, n) { var i = n.getWidth(), a = n.getHeight() ;(r[0] = Math.min(r[0] + t, i) - t), (r[1] = Math.min(r[1] + e, a) - e), (r[0] = Math.max(r[0], 0)), (r[1] = Math.max(r[1], 0)) } function W_(r, t, e, n, i) { r = t.scale.parse(r) var a = t.scale.getLabel({ value: r }, { precision: i.precision }), o = i.formatter if (o) { var s = { value: Th(t, { value: r }), axisDimension: t.dim, axisIndex: t.index, seriesData: [] } A(n, function (l) { var u = e.getSeriesByIndex(l.seriesIndex), f = l.dataIndexInside, h = u && u.getDataParams(f) h && s.seriesData.push(h) }), W(o) ? (a = o.replace('{value}', a)) : Q(o) && (a = o(s)) } return a } function U_(r, t, e) { var n = Hi() return ( pu(n, n, e.rotation), du(n, n, e.position), fa( [ r.dataToCoord(t), (e.labelOffset || 0) + (e.labelDirection || 1) * (e.labelMargin || 0) ], n ) ) } function lR(r, t, e, n, i, a) { var o = v_.innerTextLayout(e.rotation, 0, e.labelDirection) ;(e.labelMargin = i.get(['label', 'margin'])), oR(t, n, i, a, { position: U_(n.axis, r, e), align: o.textAlign, verticalAlign: o.textVerticalAlign }) } function uR(r, t, e) { return (e = e || 0), { x1: r[e], y1: r[1 - e], x2: t[e], y2: t[1 - e] } } function fR(r, t, e) { return (e = e || 0), { x: r[e], y: r[1 - e], width: t[e], height: t[1 - e] } } var hR = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.makeElOption = function (e, n, i, a, o) { var s = i.axis, l = s.grid, u = a.get('type'), f = Y_(l, s).getOtherAxis(s).getGlobalExtent(), h = s.toGlobalCoord(s.dataToCoord(n, !0)) if (u && u !== 'none') { var c = aR(a), v = vR[u](s, h, f) ;(v.style = c), (e.graphicKey = v.type), (e.pointer = v) } var d = Vh(l.model, i) lR(n, e, d, i, a, o) }), (t.prototype.getHandleTransform = function (e, n, i) { var a = Vh(n.axis.grid.model, n, { labelInside: !1 }) a.labelMargin = i.get(['handle', 'margin']) var o = U_(n.axis, e, a) return { x: o[0], y: o[1], rotation: a.rotation + (a.labelDirection < 0 ? Math.PI : 0) } }), (t.prototype.updateHandleTransform = function (e, n, i, a) { var o = i.axis, s = o.grid, l = o.getGlobalExtent(!0), u = Y_(s, o).getOtherAxis(o).getGlobalExtent(), f = o.dim === 'x' ? 0 : 1, h = [e.x, e.y] ;(h[f] += n[f]), (h[f] = Math.min(l[1], h[f])), (h[f] = Math.max(l[0], h[f])) var c = (u[1] + u[0]) / 2, v = [c, c] v[f] = h[f] var d = [{ verticalAlign: 'middle' }, { align: 'center' }] return { x: h[0], y: h[1], rotation: e.rotation, cursorPoint: v, tooltipOption: d[f] } }), t ) })(iR) function Y_(r, t) { var e = {} return (e[t.dim + 'AxisIndex'] = t.index), r.getCartesian(e) } var vR = { line: function (r, t, e) { var n = uR([t, e[0]], [t, e[1]], Z_(r)) return { type: 'Line', subPixelOptimize: !0, shape: n } }, shadow: function (r, t, e) { var n = Math.max(1, r.getBandWidth()), i = e[1] - e[0] return { type: 'Rect', shape: fR([t - n / 2, e[0]], [n, i], Z_(r)) } } } function Z_(r) { return r.dim === 'x' ? 0 : 1 } var cR = hR, dR = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.type = 'axisPointer'), (t.defaultOption = { show: 'auto', z: 50, type: 'line', snap: !1, triggerTooltip: !0, value: null, status: null, link: [], animation: null, animationDurationUpdate: 200, lineStyle: { color: '#B9BEC9', width: 1, type: 'dashed' }, shadowStyle: { color: 'rgba(210,219,238,0.2)' }, label: { show: !0, formatter: null, precision: 'auto', margin: 3, color: '#fff', padding: [5, 7, 5, 7], backgroundColor: 'auto', borderColor: null, borderWidth: 0, borderRadius: 3 }, handle: { show: !1, icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z', size: 45, margin: 50, color: '#333', shadowBlur: 3, shadowColor: '#aaa', shadowOffsetX: 0, shadowOffsetY: 2, throttle: 40 } }), t ) })(_t), pR = dR, yr = wt(), gR = A function $_(r, t, e) { if (!at.node) { var n = t.getZr() yr(n).records || (yr(n).records = {}), mR(n, t) var i = yr(n).records[r] || (yr(n).records[r] = {}) i.handler = e } } function mR(r, t) { if (yr(r).initialized) return ;(yr(r).initialized = !0), e('click', lt(X_, 'click')), e('mousemove', lt(X_, 'mousemove')), e('globalout', _R) function e(n, i) { r.on(n, function (a) { var o = SR(t) gR(yr(r).records, function (s) { s && i(s, a, o.dispatchAction) }), yR(o.pendings, t) }) } } function yR(r, t) { var e = r.showTip.length, n = r.hideTip.length, i e ? (i = r.showTip[e - 1]) : n && (i = r.hideTip[n - 1]), i && ((i.dispatchAction = null), t.dispatchAction(i)) } function _R(r, t, e) { r.handler('leave', null, e) } function X_(r, t, e, n) { t.handler(r, e, n) } function SR(r) { var t = { showTip: [], hideTip: [] }, e = function (n) { var i = t[n.type] i ? i.push(n) : ((n.dispatchAction = e), r.dispatchAction(n)) } return { dispatchAction: e, pendings: t } } function uv(r, t) { if (!at.node) { var e = t.getZr(), n = (yr(e).records || {})[r] n && (yr(e).records[r] = null) } } var xR = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.prototype.render = function (e, n, i) { var a = n.getComponent('tooltip'), o = e.get('triggerOn') || (a && a.get('triggerOn')) || 'mousemove|click' $_('axisPointer', i, function (s, l, u) { o !== 'none' && (s === 'leave' || o.indexOf(s) >= 0) && u({ type: 'updateAxisPointer', currTrigger: s, x: l && l.offsetX, y: l && l.offsetY }) }) }), (t.prototype.remove = function (e, n) { uv('axisPointer', n) }), (t.prototype.dispose = function (e, n) { uv('axisPointer', n) }), (t.type = 'axisPointer'), t ) })(xe), wR = xR function q_(r, t) { var e = [], n = r.seriesIndex, i if (n == null || !(i = t.getSeriesByIndex(n))) return { point: [] } var a = i.getData(), o = Jr(a, r) if (o == null || o < 0 || z(o)) return { point: [] } var s = a.getItemGraphicEl(o), l = i.coordinateSystem if (i.getTooltipPosition) e = i.getTooltipPosition(o) || [] else if (l && l.dataToPoint) if (r.isStacked) { var u = l.getBaseAxis(), f = l.getOtherAxis(u), h = f.dim, c = u.dim, v = h === 'x' || h === 'radius' ? 1 : 0, d = a.mapDimension(c), p = [] ;(p[v] = a.get(d, o)), (p[1 - v] = a.get(a.getCalculationInfo('stackResultDimension'), o)), (e = l.dataToPoint(p) || []) } else e = l.dataToPoint( a.getValues( G(l.dimensions, function (m) { return a.mapDimension(m) }), o ) ) || [] else if (s) { var g = s.getBoundingRect().clone() g.applyTransform(s.transform), (e = [g.x + g.width / 2, g.y + g.height / 2]) } return { point: e, el: s } } var K_ = wt() function bR(r, t, e) { var n = r.currTrigger, i = [r.x, r.y], a = r, o = r.dispatchAction || X(e.dispatchAction, e), s = t.getComponent('axisPointer').coordSysAxesInfo if (!!s) { gl(i) && (i = q_({ seriesIndex: a.seriesIndex, dataIndex: a.dataIndex }, t).point) var l = gl(i), u = a.axesInfo, f = s.axesInfo, h = n === 'leave' || gl(i), c = {}, v = {}, d = { list: [], map: {} }, p = { showPointer: lt(CR, v), showTooltip: lt(AR, d) } A(s.coordSysMap, function (m, y) { var _ = l || m.containPoint(i) A(s.coordSysAxesInfo[y], function (S, w) { var x = S.axis, b = LR(u, S) if (!h && _ && (!u || b)) { var T = b && b.value T == null && !l && (T = x.pointToData(i)), T != null && Q_(S, T, p, !1, c) } }) }) var g = {} return ( A(f, function (m, y) { var _ = m.linkGroup _ && !v[y] && A(_.axesInfo, function (S, w) { var x = v[w] if (S !== m && x) { var b = x.value _.mapper && (b = m.axis.scale.parse(_.mapper(b, J_(S), J_(m)))), (g[m.key] = b) } }) }), A(g, function (m, y) { Q_(f[y], m, p, !0, c) }), MR(v, f, c), DR(d, i, r, o), IR(f, o, e), c ) } } function Q_(r, t, e, n, i) { var a = r.axis if (!(a.scale.isBlank() || !a.containData(t))) { if (!r.involveSeries) { e.showPointer(r, t) return } var o = TR(t, r), s = o.payloadBatch, l = o.snapToValue s[0] && i.seriesIndex == null && N(i, s[0]), !n && r.snap && a.containData(l) && l != null && (t = l), e.showPointer(r, t, s), e.showTooltip(r, o, l) } } function TR(r, t) { var e = t.axis, n = e.dim, i = r, a = [], o = Number.MAX_VALUE, s = -1 return ( A(t.seriesModels, function (l, u) { var f = l.getData().mapDimensionsAll(n), h, c if (l.getAxisTooltipData) { var v = l.getAxisTooltipData(f, r, e) ;(c = v.dataIndices), (h = v.nestestValue) } else { if ( ((c = l .getData() .indicesOfNearest(f[0], r, e.type === 'category' ? 0.5 : null)), !c.length) ) return h = l.getData().get(f[0], c[0]) } if (!(h == null || !isFinite(h))) { var d = r - h, p = Math.abs(d) p <= o && ((p < o || (d >= 0 && s < 0)) && ((o = p), (s = d), (i = h), (a.length = 0)), A(c, function (g) { a.push({ seriesIndex: l.seriesIndex, dataIndexInside: g, dataIndex: l.getData().getRawIndex(g) }) })) } }), { payloadBatch: a, snapToValue: i } ) } function CR(r, t, e, n) { r[t.key] = { value: e, payloadBatch: n } } function AR(r, t, e, n) { var i = e.payloadBatch, a = t.axis, o = a.model, s = t.axisPointerModel if (!(!t.triggerTooltip || !i.length)) { var l = t.coordSys.model, u = Ya(l), f = r.map[u] f || ((f = r.map[u] = { coordSysId: l.id, coordSysIndex: l.componentIndex, coordSysType: l.type, coordSysMainType: l.mainType, dataByAxis: [] }), r.list.push(f)), f.dataByAxis.push({ axisDim: a.dim, axisIndex: o.componentIndex, axisType: o.type, axisId: o.id, value: n, valueLabelOpt: { precision: s.get(['label', 'precision']), formatter: s.get(['label', 'formatter']) }, seriesDataIndices: i.slice() }) } } function MR(r, t, e) { var n = (e.axesInfo = []) A(t, function (i, a) { var o = i.axisPointerModel.option, s = r[a] s ? (!i.useHandle && (o.status = 'show'), (o.value = s.value), (o.seriesDataIndices = (s.payloadBatch || []).slice())) : !i.useHandle && (o.status = 'hide'), o.status === 'show' && n.push({ axisDim: i.axis.dim, axisIndex: i.axis.model.componentIndex, value: o.value }) }) } function DR(r, t, e, n) { if (gl(t) || !r.list.length) { n({ type: 'hideTip' }) return } var i = ((r.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {} n({ type: 'showTip', escapeConnect: !0, x: t[0], y: t[1], tooltipOption: e.tooltipOption, position: e.position, dataIndexInside: i.dataIndexInside, dataIndex: i.dataIndex, seriesIndex: i.seriesIndex, dataByCoordSys: r.list }) } function IR(r, t, e) { var n = e.getZr(), i = 'axisPointerLastHighlights', a = K_(n)[i] || {}, o = (K_(n)[i] = {}) A(r, function (u, f) { var h = u.axisPointerModel.option h.status === 'show' && A(h.seriesDataIndices, function (c) { var v = c.seriesIndex + ' | ' + c.dataIndex o[v] = c }) }) var s = [], l = [] A(a, function (u, f) { !o[f] && l.push(u) }), A(o, function (u, f) { !a[f] && s.push(u) }), l.length && e.dispatchAction({ type: 'downplay', escapeConnect: !0, notBlur: !0, batch: l }), s.length && e.dispatchAction({ type: 'highlight', escapeConnect: !0, notBlur: !0, batch: s }) } function LR(r, t) { for (var e = 0; e < (r || []).length; e++) { var n = r[e] if (t.axis.dim === n.axisDim && t.axis.model.componentIndex === n.axisIndex) return n } } function J_(r) { var t = r.axis.model, e = {}, n = (e.axisDim = r.axis.dim) return ( (e.axisIndex = e[n + 'AxisIndex'] = t.componentIndex), (e.axisName = e[n + 'AxisName'] = t.name), (e.axisId = e[n + 'AxisId'] = t.id), e ) } function gl(r) { return !r || r[0] == null || isNaN(r[0]) || r[1] == null || isNaN(r[1]) } function j_(r) { d_.registerAxisPointerClass('CartesianAxisPointer', cR), r.registerComponentModel(pR), r.registerComponentView(wR), r.registerPreprocessor(function (t) { if (t) { ;(!t.axisPointer || t.axisPointer.length === 0) && (t.axisPointer = {}) var e = t.axisPointer.link e && !z(e) && (t.axisPointer.link = [e]) } }), r.registerProcessor(r.PRIORITY.PROCESSOR.STATISTIC, function (t, e) { t.getComponent('axisPointer').coordSysAxesInfo = pP(t, e) }), r.registerAction( { type: 'updateAxisPointer', event: 'updateAxisPointer', update: ':updateAxisPointer' }, bR ) } function PR(r) { Re(LP), Re(j_) } var t1 = ['x', 'y', 'radius', 'angle', 'single'], RR = ['cartesian2d', 'polar', 'singleAxis'] function ER(r) { var t = r.get('coordinateSystem') return ot(RR, t) >= 0 } function Gr(r) { return r + 'Axis' } function OR(r, t) { var e = q(), n = [], i = q() r.eachComponent({ mainType: 'dataZoom', query: t }, function (f) { i.get(f.uid) || s(f) }) var a do (a = !1), r.eachComponent('dataZoom', o) while (a) function o(f) { !i.get(f.uid) && l(f) && (s(f), (a = !0)) } function s(f) { i.set(f.uid, !0), n.push(f), u(f) } function l(f) { var h = !1 return ( f.eachTargetAxis(function (c, v) { var d = e.get(c) d && d[v] && (h = !0) }), h ) } function u(f) { f.eachTargetAxis(function (h, c) { ;(e.get(h) || e.set(h, []))[c] = !0 }) } return n } function e1(r) { var t = r.ecModel, e = { infoList: [], infoMap: q() } return ( r.eachTargetAxis(function (n, i) { var a = t.getComponent(Gr(n), i) if (!!a) { var o = a.getCoordSysModel() if (!!o) { var s = o.uid, l = e.infoMap.get(s) l || ((l = { model: o, axisModels: [] }), e.infoList.push(l), e.infoMap.set(s, l)), l.axisModels.push(a) } } }), e ) } var fv = (function () { function r() { ;(this.indexList = []), (this.indexMap = []) } return ( (r.prototype.add = function (t) { this.indexMap[t] || (this.indexList.push(t), (this.indexMap[t] = !0)) }), r ) })(), kR = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return ( (e.type = t.type), (e._autoThrottle = !0), (e._noTarget = !0), (e._rangePropMode = ['percent', 'percent']), e ) } return ( (t.prototype.init = function (e, n, i) { var a = r1(e) ;(this.settledOption = a), this.mergeDefaultAndTheme(e, i), this._doInit(a) }), (t.prototype.mergeOption = function (e) { var n = r1(e) nt(this.option, e, !0), nt(this.settledOption, n, !0), this._doInit(n) }), (t.prototype._doInit = function (e) { var n = this.option this._setDefaultThrottle(e), this._updateRangeUse(e) var i = this.settledOption A( [ ['start', 'startValue'], ['end', 'endValue'] ], function (a, o) { this._rangePropMode[o] === 'value' && (n[a[0]] = i[a[0]] = null) }, this ), this._resetTarget() }), (t.prototype._resetTarget = function () { var e = this.get('orient', !0), n = (this._targetAxisInfoMap = q()), i = this._fillSpecifiedTargetAxis(n) i ? (this._orient = e || this._makeAutoOrientByTargetAxis()) : ((this._orient = e || 'horizontal'), this._fillAutoTargetAxisByOrient(n, this._orient)), (this._noTarget = !0), n.each(function (a) { a.indexList.length && (this._noTarget = !1) }, this) }), (t.prototype._fillSpecifiedTargetAxis = function (e) { var n = !1 return ( A( t1, function (i) { var a = this.getReferringComponents(Gr(i), pb) if (!!a.specified) { n = !0 var o = new fv() A(a.models, function (s) { o.add(s.componentIndex) }), e.set(i, o) } }, this ), n ) }), (t.prototype._fillAutoTargetAxisByOrient = function (e, n) { var i = this.ecModel, a = !0 if (a) { var o = n === 'vertical' ? 'y' : 'x', s = i.findComponents({ mainType: o + 'Axis' }) l(s, o) } if (a) { var s = i.findComponents({ mainType: 'singleAxis', filter: function (f) { return f.get('orient', !0) === n } }) l(s, 'single') } function l(u, f) { var h = u[0] if (!!h) { var c = new fv() if ( (c.add(h.componentIndex), e.set(f, c), (a = !1), f === 'x' || f === 'y') ) { var v = h.getReferringComponents('grid', Xt).models[0] v && A(u, function (d) { h.componentIndex !== d.componentIndex && v === d.getReferringComponents('grid', Xt).models[0] && c.add(d.componentIndex) }) } } } a && A( t1, function (u) { if (!!a) { var f = i.findComponents({ mainType: Gr(u), filter: function (c) { return c.get('type', !0) === 'category' } }) if (f[0]) { var h = new fv() h.add(f[0].componentIndex), e.set(u, h), (a = !1) } } }, this ) }), (t.prototype._makeAutoOrientByTargetAxis = function () { var e return ( this.eachTargetAxis(function (n) { !e && (e = n) }, this), e === 'y' ? 'vertical' : 'horizontal' ) }), (t.prototype._setDefaultThrottle = function (e) { if ( (e.hasOwnProperty('throttle') && (this._autoThrottle = !1), this._autoThrottle) ) { var n = this.ecModel.option this.option.throttle = n.animation && n.animationDurationUpdate > 0 ? 100 : 20 } }), (t.prototype._updateRangeUse = function (e) { var n = this._rangePropMode, i = this.get('rangeMode') A( [ ['start', 'startValue'], ['end', 'endValue'] ], function (a, o) { var s = e[a[0]] != null, l = e[a[1]] != null s && !l ? (n[o] = 'percent') : !s && l ? (n[o] = 'value') : i ? (n[o] = i[o]) : s && (n[o] = 'percent') } ) }), (t.prototype.noTarget = function () { return this._noTarget }), (t.prototype.getFirstTargetAxisModel = function () { var e return ( this.eachTargetAxis(function (n, i) { e == null && (e = this.ecModel.getComponent(Gr(n), i)) }, this), e ) }), (t.prototype.eachTargetAxis = function (e, n) { this._targetAxisInfoMap.each(function (i, a) { A(i.indexList, function (o) { e.call(n, a, o) }) }) }), (t.prototype.getAxisProxy = function (e, n) { var i = this.getAxisModel(e, n) if (i) return i.__dzAxisProxy }), (t.prototype.getAxisModel = function (e, n) { var i = this._targetAxisInfoMap.get(e) if (i && i.indexMap[n]) return this.ecModel.getComponent(Gr(e), n) }), (t.prototype.setRawRange = function (e) { var n = this.option, i = this.settledOption A( [ ['start', 'startValue'], ['end', 'endValue'] ], function (a) { ;(e[a[0]] != null || e[a[1]] != null) && ((n[a[0]] = i[a[0]] = e[a[0]]), (n[a[1]] = i[a[1]] = e[a[1]])) }, this ), this._updateRangeUse(e) }), (t.prototype.setCalculatedRange = function (e) { var n = this.option A(['start', 'startValue', 'end', 'endValue'], function (i) { n[i] = e[i] }) }), (t.prototype.getPercentRange = function () { var e = this.findRepresentativeAxisProxy() if (e) return e.getDataPercentWindow() }), (t.prototype.getValueRange = function (e, n) { if (e == null && n == null) { var i = this.findRepresentativeAxisProxy() if (i) return i.getDataValueWindow() } else return this.getAxisProxy(e, n).getDataValueWindow() }), (t.prototype.findRepresentativeAxisProxy = function (e) { if (e) return e.__dzAxisProxy for ( var n, i = this._targetAxisInfoMap.keys(), a = 0; a < i.length; a++ ) for ( var o = i[a], s = this._targetAxisInfoMap.get(o), l = 0; l < s.indexList.length; l++ ) { var u = this.getAxisProxy(o, s.indexList[l]) if (u.hostedBy(this)) return u n || (n = u) } return n }), (t.prototype.getRangePropMode = function () { return this._rangePropMode.slice() }), (t.prototype.getOrient = function () { return this._orient }), (t.type = 'dataZoom'), (t.dependencies = [ 'xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox' ]), (t.defaultOption = { z: 4, filterMode: 'filter', start: 0, end: 100 }), t ) })(_t) function r1(r) { var t = {} return ( A(['start', 'end', 'startValue', 'endValue', 'throttle'], function (e) { r.hasOwnProperty(e) && (t[e] = r[e]) }), t ) } var Xa = kR, BR = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return (t.type = 'dataZoom.select'), t })(Xa), NR = BR, FR = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.prototype.render = function (e, n, i, a) { ;(this.dataZoomModel = e), (this.ecModel = n), (this.api = i) }), (t.type = 'dataZoom'), t ) })(xe), hv = FR, zR = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return (t.type = 'dataZoom.select'), t })(hv), VR = zR, bi = A, n1 = Xi, GR = (function () { function r(t, e, n, i) { ;(this._dimName = t), (this._axisIndex = e), (this.ecModel = i), (this._dataZoomModel = n) } return ( (r.prototype.hostedBy = function (t) { return this._dataZoomModel === t }), (r.prototype.getDataValueWindow = function () { return this._valueWindow.slice() }), (r.prototype.getDataPercentWindow = function () { return this._percentWindow.slice() }), (r.prototype.getTargetSeriesModels = function () { var t = [] return ( this.ecModel.eachSeries(function (e) { if (ER(e)) { var n = Gr(this._dimName), i = e.getReferringComponents(n, Xt).models[0] i && this._axisIndex === i.componentIndex && t.push(e) } }, this), t ) }), (r.prototype.getAxisModel = function () { return this.ecModel.getComponent( this._dimName + 'Axis', this._axisIndex ) }), (r.prototype.getMinMaxSpan = function () { return tt(this._minMaxSpan) }), (r.prototype.calculateDataWindow = function (t) { var e = this._dataExtent, n = this.getAxisModel(), i = n.axis.scale, a = this._dataZoomModel.getRangePropMode(), o = [0, 100], s = [], l = [], u bi(['start', 'end'], function (c, v) { var d = t[c], p = t[c + 'Value'] a[v] === 'percent' ? (d == null && (d = o[v]), (p = i.parse(Bt(d, o, e)))) : ((u = !0), (p = p == null ? e[v] : i.parse(p)), (d = Bt(p, e, o))), (l[v] = p), (s[v] = d) }), n1(l), n1(s) var f = this._minMaxSpan u ? h(l, s, e, o, !1) : h(s, l, o, e, !0) function h(c, v, d, p, g) { var m = g ? 'Span' : 'ValueSpan' Za(0, c, d, 'all', f['min' + m], f['max' + m]) for (var y = 0; y < 2; y++) (v[y] = Bt(c[y], d, p, !0)), g && (v[y] = i.parse(v[y])) } return { valueWindow: l, percentWindow: s } }), (r.prototype.reset = function (t) { if (t === this._dataZoomModel) { var e = this.getTargetSeriesModels() ;(this._dataExtent = HR(this, this._dimName, e)), this._updateMinMaxSpan() var n = this.calculateDataWindow(t.settledOption) ;(this._valueWindow = n.valueWindow), (this._percentWindow = n.percentWindow), this._setAxisModel() } }), (r.prototype.filterData = function (t, e) { if (t !== this._dataZoomModel) return var n = this._dimName, i = this.getTargetSeriesModels(), a = t.get('filterMode'), o = this._valueWindow if (a === 'none') return bi(i, function (l) { var u = l.getData(), f = u.mapDimensionsAll(n) if (!!f.length) { if (a === 'weakFilter') { var h = u.getStore(), c = G( f, function (v) { return u.getDimensionIndex(v) }, u ) u.filterSelf(function (v) { for (var d, p, g, m = 0; m < f.length; m++) { var y = h.get(c[m], v), _ = !isNaN(y), S = y < o[0], w = y > o[1] if (_ && !S && !w) return !0 _ && (g = !0), S && (d = !0), w && (p = !0) } return g && d && p }) } else bi(f, function (v) { if (a === 'empty') l.setData( (u = u.map(v, function (p) { return s(p) ? p : NaN })) ) else { var d = {} ;(d[v] = o), u.selectRange(d) } }) bi(f, function (v) { u.setApproximateExtent(o, v) }) } }) function s(l) { return l >= o[0] && l <= o[1] } }), (r.prototype._updateMinMaxSpan = function () { var t = (this._minMaxSpan = {}), e = this._dataZoomModel, n = this._dataExtent bi( ['min', 'max'], function (i) { var a = e.get(i + 'Span'), o = e.get(i + 'ValueSpan') o != null && (o = this.getAxisModel().axis.scale.parse(o)), o != null ? (a = Bt(n[0] + o, n, [0, 100], !0)) : a != null && (o = Bt(a, [0, 100], n, !0) - n[0]), (t[i + 'Span'] = a), (t[i + 'ValueSpan'] = o) }, this ) }), (r.prototype._setAxisModel = function () { var t = this.getAxisModel(), e = this._percentWindow, n = this._valueWindow if (!!e) { var i = $c(n, [0, 500]) i = Math.min(i, 20) var a = t.axis.scale.rawExtentInfo e[0] !== 0 && a.setDeterminedMinMax('min', +n[0].toFixed(i)), e[1] !== 100 && a.setDeterminedMinMax('max', +n[1].toFixed(i)), a.freeze() } }), r ) })() function HR(r, t, e) { var n = [1 / 0, -1 / 0] bi(e, function (o) { vI(n, o.getData(), t) }) var i = r.getAxisModel(), a = q0(i.axis.scale, i, n).calculate() return [a.min, a.max] } var WR = GR, UR = { getTargetSeries: function (r) { function t(i) { r.eachComponent('dataZoom', function (a) { a.eachTargetAxis(function (o, s) { var l = r.getComponent(Gr(o), s) i(o, s, l, a) }) }) } t(function (i, a, o, s) { o.__dzAxisProxy = null }) var e = [] t(function (i, a, o, s) { o.__dzAxisProxy || ((o.__dzAxisProxy = new WR(i, a, s, r)), e.push(o.__dzAxisProxy)) }) var n = q() return ( A(e, function (i) { A(i.getTargetSeriesModels(), function (a) { n.set(a.uid, a) }) }), n ) }, overallReset: function (r, t) { r.eachComponent('dataZoom', function (e) { e.eachTargetAxis(function (n, i) { e.getAxisProxy(n, i).reset(e) }), e.eachTargetAxis(function (n, i) { e.getAxisProxy(n, i).filterData(e, t) }) }), r.eachComponent('dataZoom', function (e) { var n = e.findRepresentativeAxisProxy() if (n) { var i = n.getDataPercentWindow(), a = n.getDataValueWindow() e.setCalculatedRange({ start: i[0], end: i[1], startValue: a[0], endValue: a[1] }) } }) } }, YR = UR function ZR(r) { r.registerAction('dataZoom', function (t, e) { var n = OR(e, t) A(n, function (i) { i.setRawRange({ start: t.start, end: t.end, startValue: t.startValue, endValue: t.endValue }) }) }) } var i1 = !1 function vv(r) { i1 || ((i1 = !0), r.registerProcessor(r.PRIORITY.PROCESSOR.FILTER, YR), ZR(r), r.registerSubTypeDefaulter('dataZoom', function () { return 'slider' })) } function $R(r) { r.registerComponentModel(NR), r.registerComponentView(VR), vv(r) } var ke = (function () { function r() {} return r })(), a1 = {} function qa(r, t) { a1[r] = t } function o1(r) { return a1[r] } var XR = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.prototype.optionUpdated = function () { r.prototype.optionUpdated.apply(this, arguments) var e = this.ecModel A(this.option.feature, function (n, i) { var a = o1(i) a && (a.getDefaultOption && (a.defaultOption = a.getDefaultOption(e)), nt(n, a.defaultOption)) }) }), (t.type = 'toolbox'), (t.layoutMode = { type: 'box', ignoreSize: !0 }), (t.defaultOption = { show: !0, z: 6, orient: 'horizontal', left: 'right', top: 'top', backgroundColor: 'transparent', borderColor: '#ccc', borderRadius: 0, borderWidth: 0, padding: 5, itemSize: 15, itemGap: 8, showTitle: !0, iconStyle: { borderColor: '#666', color: 'none' }, emphasis: { iconStyle: { borderColor: '#3E98C5' } }, tooltip: { show: !1, position: 'bottom' } }), t ) })(_t), qR = XR function KR(r, t, e) { var n = t.getBoxLayoutParams(), i = t.get('padding'), a = { width: e.getWidth(), height: e.getHeight() }, o = cr(n, a, i) fi(t.get('orient'), r, t.get('itemGap'), o.width, o.height), sA(r, n, a, i) } function s1(r, t) { var e = ws(t.get('padding')), n = t.getItemStyle(['color', 'opacity']) return ( (n.fill = t.get('backgroundColor')), (r = new St({ shape: { x: r.x - e[3], y: r.y - e[0], width: r.width + e[1] + e[3], height: r.height + e[0] + e[2], r: t.get('borderRadius') }, style: n, silent: !0, z2: -1 })), r ) } var QR = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.render = function (e, n, i, a) { var o = this.group if ((o.removeAll(), !e.get('show'))) return var s = +e.get('itemSize'), l = e.get('orient') === 'vertical', u = e.get('feature') || {}, f = this._features || (this._features = {}), h = [] A(u, function (d, p) { h.push(p) }), new Ba(this._featureNames || [], h) .add(c) .update(c) .remove(lt(c, null)) .execute(), (this._featureNames = h) function c(d, p) { var g = h[d], m = h[p], y = u[g], _ = new Nt(y, e, e.ecModel), S if ( (a && a.newTitle != null && a.featureName === g && (y.title = a.newTitle), g && !m) ) { if (JR(g)) S = { onclick: _.option.onclick, featureName: g } else { var w = o1(g) if (!w) return S = new w() } f[g] = S } else if (((S = f[m]), !S)) return ;(S.uid = ca('toolbox-feature')), (S.model = _), (S.ecModel = n), (S.api = i) var x = S instanceof ke if (!g && m) { x && S.dispose && S.dispose(n, i) return } if (!_.get('show') || (x && S.unusable)) { x && S.remove && S.remove(n, i) return } v(_, S, g), (_.setIconStatus = function (b, T) { var C = this.option, M = this.iconPaths ;(C.iconStatus = C.iconStatus || {}), (C.iconStatus[b] = T), M[b] && (T === 'emphasis' ? ei : ri)(M[b]) }), S instanceof ke && S.render && S.render(_, n, i, a) } function v(d, p, g) { var m = d.getModel('iconStyle'), y = d.getModel(['emphasis', 'iconStyle']), _ = p instanceof ke && p.getIcons ? p.getIcons() : d.get('icon'), S = d.get('title') || {}, w, x W(_) ? ((w = {}), (w[g] = _)) : (w = _), W(S) ? ((x = {}), (x[g] = S)) : (x = S) var b = (d.iconPaths = {}) A(w, function (T, C) { var M = us(T, {}, { x: -s / 2, y: -s / 2, width: s, height: s }) M.setStyle(m.getItemStyle()) var D = M.ensureState('emphasis') D.style = y.getItemStyle() var I = new Et({ style: { text: x[C], align: y.get('textAlign'), borderRadius: y.get('textBorderRadius'), padding: y.get('textPadding'), fill: null }, ignore: !0 }) M.setTextContent(I), fs({ el: M, componentModel: e, itemName: C, formatterParamsExtra: { title: x[C] } }), (M.__title = x[C]), M.on('mouseover', function () { var L = y.getItemStyle(), P = l ? e.get('right') == null && e.get('left') !== 'right' ? 'right' : 'left' : e.get('bottom') == null && e.get('top') !== 'bottom' ? 'bottom' : 'top' I.setStyle({ fill: y.get('textFill') || L.fill || L.stroke || '#000', backgroundColor: y.get('textBackgroundColor') }), M.setTextConfig({ position: y.get('textPosition') || P }), (I.ignore = !e.get('showTitle')), i.enterEmphasis(this) }).on('mouseout', function () { d.get(['iconStatus', C]) !== 'emphasis' && i.leaveEmphasis(this), I.hide() }), (d.get(['iconStatus', C]) === 'emphasis' ? ei : ri)(M), o.add(M), M.on('click', X(p.onclick, p, n, i, C)), (b[C] = M) }) } KR(o, e, i), o.add(s1(o.getBoundingRect(), e)), l || o.eachChild(function (d) { var p = d.__title, g = d.ensureState('emphasis'), m = g.textConfig || (g.textConfig = {}), y = d.getTextContent(), _ = y && y.ensureState('emphasis') if (_ && !Q(_) && p) { var S = _.style || (_.style = {}), w = Eo(p, Et.makeFont(S)), x = d.x + o.x, b = d.y + o.y + s, T = !1 b + w.height > i.getHeight() && ((m.position = 'top'), (T = !0)) var C = T ? -5 - w.height : s + 10 x + w.width / 2 > i.getWidth() ? ((m.position = ['100%', C]), (S.align = 'right')) : x - w.width / 2 < 0 && ((m.position = [0, C]), (S.align = 'left')) } }) }), (t.prototype.updateView = function (e, n, i, a) { A(this._features, function (o) { o instanceof ke && o.updateView && o.updateView(o.model, n, i, a) }) }), (t.prototype.remove = function (e, n) { A(this._features, function (i) { i instanceof ke && i.remove && i.remove(e, n) }), this.group.removeAll() }), (t.prototype.dispose = function (e, n) { A(this._features, function (i) { i instanceof ke && i.dispose && i.dispose(e, n) }) }), (t.type = 'toolbox'), t ) })(xe) function JR(r) { return r.indexOf('my') === 0 } var jR = QR, tE = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.onclick = function (e, n) { var i = this.model, a = i.get('name') || e.get('title.0.text') || 'echarts', o = n.getZr().painter.getType() === 'svg', s = o ? 'svg' : i.get('type', !0) || 'png', l = n.getConnectedDataURL({ type: s, backgroundColor: i.get('backgroundColor', !0) || e.get('backgroundColor') || '#fff', connectedBackgroundColor: i.get('connectedBackgroundColor'), excludeComponents: i.get('excludeComponents'), pixelRatio: i.get('pixelRatio') }), u = at.browser if (Q(MouseEvent) && (u.newEdge || (!u.ie && !u.edge))) { var f = document.createElement('a') ;(f.download = a + '.' + s), (f.target = '_blank'), (f.href = l) var h = new MouseEvent('click', { view: document.defaultView, bubbles: !0, cancelable: !1 }) f.dispatchEvent(h) } else if (window.navigator.msSaveOrOpenBlob || o) { var c = l.split(','), v = c[0].indexOf('base64') > -1, d = o ? decodeURIComponent(c[1]) : c[1] v && (d = window.atob(d)) var p = a + '.' + s if (window.navigator.msSaveOrOpenBlob) { for (var g = d.length, m = new Uint8Array(g); g--; ) m[g] = d.charCodeAt(g) var y = new Blob([m]) window.navigator.msSaveOrOpenBlob(y, p) } else { var _ = document.createElement('iframe') document.body.appendChild(_) var S = _.contentWindow, w = S.document w.open('image/svg+xml', 'replace'), w.write(d), w.close(), S.focus(), w.execCommand('SaveAs', !0, p), document.body.removeChild(_) } } else { var x = i.get('lang'), b = '', T = window.open() T.document.write(b), (T.document.title = a) } }), (t.getDefaultOption = function (e) { var n = { 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: e.getLocaleModel().get(['toolbox', 'saveAsImage', 'title']), type: 'png', connectedBackgroundColor: '#fff', name: '', excludeComponents: ['toolbox'], lang: e.getLocaleModel().get(['toolbox', 'saveAsImage', 'lang']) } return n }), t ) })(ke), eE = tE, l1 = '__ec_magicType_stack__', rE = [['line', 'bar'], ['stack']], nE = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.getIcons = function () { var e = this.model, n = e.get('icon'), i = {} return ( A(e.get('type'), function (a) { n[a] && (i[a] = n[a]) }), i ) }), (t.getDefaultOption = function (e) { var n = { show: !0, type: [], icon: { line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4', bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7', stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z' }, title: e.getLocaleModel().get(['toolbox', 'magicType', 'title']), option: {}, seriesIndex: {} } return n }), (t.prototype.onclick = function (e, n, i) { var a = this.model, o = a.get(['seriesIndex', i]) if (!!u1[i]) { var s = { series: [] }, l = function (h) { var c = h.subType, v = h.id, d = u1[i](c, v, h, a) d && (j(d, h.option), s.series.push(d)) var p = h.coordinateSystem if ( p && p.type === 'cartesian2d' && (i === 'line' || i === 'bar') ) { var g = p.getAxesByScale('ordinal')[0] if (g) { var m = g.dim, y = m + 'Axis', _ = h.getReferringComponents(y, Xt).models[0], S = _.componentIndex s[y] = s[y] || [] for (var w = 0; w <= S; w++) s[y][S] = s[y][S] || {} s[y][S].boundaryGap = i === 'bar' } } } A(rE, function (h) { ot(h, i) >= 0 && A(h, function (c) { a.setIconStatus(c, 'normal') }) }), a.setIconStatus(i, 'emphasis'), e.eachComponent( { mainType: 'series', query: o == null ? null : { seriesIndex: o } }, l ) var u, f = i i === 'stack' && ((u = nt( { stack: a.option.title.tiled, tiled: a.option.title.stack }, a.option.title )), a.get(['iconStatus', i]) !== 'emphasis' && (f = 'tiled')), n.dispatchAction({ type: 'changeMagicType', currentType: f, newOption: s, newTitle: u, featureName: 'magicType' }) } }), t ) })(ke), u1 = { line: function (r, t, e, n) { if (r === 'bar') return nt( { id: t, type: 'line', data: e.get('data'), stack: e.get('stack'), markPoint: e.get('markPoint'), markLine: e.get('markLine') }, n.get(['option', 'line']) || {}, !0 ) }, bar: function (r, t, e, n) { if (r === 'line') return nt( { id: t, type: 'bar', data: e.get('data'), stack: e.get('stack'), markPoint: e.get('markPoint'), markLine: e.get('markLine') }, n.get(['option', 'bar']) || {}, !0 ) }, stack: function (r, t, e, n) { var i = e.get('stack') === l1 if (r === 'line' || r === 'bar') return ( n.setIconStatus('stack', i ? 'normal' : 'emphasis'), nt( { id: t, stack: i ? '' : l1 }, n.get(['option', 'stack']) || {}, !0 ) ) } } Je( { type: 'changeMagicType', event: 'magicTypeChanged', update: 'prepareAndUpdate' }, function (r, t) { t.mergeOption(r.newOption) } ) var iE = nE, ml = new Array(60).join('-'), Ti = ' ' function aE(r) { var t = {}, e = [], n = [] return ( r.eachRawSeries(function (i) { var a = i.coordinateSystem if (a && (a.type === 'cartesian2d' || a.type === 'polar')) { var o = a.getBaseAxis() if (o.type === 'category') { var s = o.dim + '_' + o.index t[s] || ((t[s] = { categoryAxis: o, valueAxis: a.getOtherAxis(o), series: [] }), n.push({ axisDim: o.dim, axisIndex: o.index })), t[s].series.push(i) } else e.push(i) } else e.push(i) }), { seriesGroupByCategoryAxis: t, other: e, meta: n } ) } function oE(r) { var t = [] return ( A(r, function (e, n) { var i = e.categoryAxis, a = e.valueAxis, o = a.dim, s = [' '].concat( G(e.series, function (v) { return v.name }) ), l = [i.model.getCategories()] A(e.series, function (v) { var d = v.getRawData() l.push( v.getRawData().mapArray(d.mapDimension(o), function (p) { return p }) ) }) for (var u = [s.join(Ti)], f = 0; f < l[0].length; f++) { for (var h = [], c = 0; c < l.length; c++) h.push(l[c][f]) u.push(h.join(Ti)) } t.push( u.join(` `) ) }), t.join( ` ` + ml + ` ` ) ) } function sE(r) { return G(r, function (t) { var e = t.getRawData(), n = [t.name], i = [] return ( e.each(e.dimensions, function () { for ( var a = arguments.length, o = arguments[a - 1], s = e.getName(o), l = 0; l < a - 1; l++ ) i[l] = arguments[l] n.push((s ? s + Ti : '') + i.join(Ti)) }), n.join(` `) ) }).join( ` ` + ml + ` ` ) } function lE(r) { var t = aE(r) return { value: Lt([oE(t.seriesGroupByCategoryAxis), sE(t.other)], function (e) { return !!e.replace(/[\n\t\s]/g, '') }).join( ` ` + ml + ` ` ), meta: t.meta } } function yl(r) { return r.replace(/^\s\s*/, '').replace(/\s\s*$/, '') } function uE(r) { var t = r.slice( 0, r.indexOf(` `) ) if (t.indexOf(Ti) >= 0) return !0 } var cv = new RegExp('[' + Ti + ']+', 'g') function fE(r) { for ( var t = r.split(/\n+/g), e = yl(t.shift()).split(cv), n = [], i = G(e, function (l) { return { name: l, data: [] } }), a = 0; a < t.length; a++ ) { var o = yl(t[a]).split(cv) n.push(o.shift()) for (var s = 0; s < o.length; s++) i[s] && (i[s].data[a] = o[s]) } return { series: i, categories: n } } function hE(r) { for ( var t = r.split(/\n+/g), e = yl(t.shift()), n = [], i = 0; i < t.length; i++ ) { var a = yl(t[i]) if (!!a) { var o = a.split(cv), s = '', l = void 0, u = !1 isNaN(o[0]) ? ((u = !0), (s = o[0]), (o = o.slice(1)), (n[i] = { name: s, value: [] }), (l = n[i].value)) : (l = n[i] = []) for (var f = 0; f < o.length; f++) l.push(+o[f]) l.length === 1 && (u ? (n[i].value = l[0]) : (n[i] = l[0])) } } return { name: e, data: n } } function vE(r, t) { var e = r.split( new RegExp( ` *` + ml + ` *`, 'g' ) ), n = { series: [] } return ( A(e, function (i, a) { if (uE(i)) { var o = fE(i), s = t[a], l = s.axisDim + 'Axis' s && ((n[l] = n[l] || []), (n[l][s.axisIndex] = { data: o.categories }), (n.series = n.series.concat(o.series))) } else { var o = hE(i) n.series.push(o) } }), n ) } var cE = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.onclick = function (e, n) { setTimeout(function () { n.dispatchAction({ type: 'hideTip' }) }) var i = n.getDom(), a = this.model this._dom && i.removeChild(this._dom) var o = document.createElement('div') ;(o.style.cssText = 'position:absolute;top:0;bottom:0;left:0;right:0;padding:5px'), (o.style.backgroundColor = a.get('backgroundColor') || '#fff') var s = document.createElement('h4'), l = a.get('lang') || [] ;(s.innerHTML = l[0] || a.get('title')), (s.style.cssText = 'margin:10px 20px'), (s.style.color = a.get('textColor')) var u = document.createElement('div'), f = document.createElement('textarea') u.style.cssText = 'overflow:auto' var h = a.get('optionToContent'), c = a.get('contentToOption'), v = lE(e) if (Q(h)) { var d = h(n.getOption()) W(d) ? (u.innerHTML = d) : Ri(d) && u.appendChild(d) } else { f.readOnly = a.get('readOnly') var p = f.style ;(p.cssText = 'display:block;width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;resize:none;box-sizing:border-box;outline:none'), (p.color = a.get('textColor')), (p.borderColor = a.get('textareaBorderColor')), (p.backgroundColor = a.get('textareaColor')), (f.value = v.value), u.appendChild(f) } var g = v.meta, m = document.createElement('div') m.style.cssText = 'position:absolute;bottom:5px;left:0;right:0' var y = 'float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px', _ = document.createElement('div'), S = document.createElement('div') ;(y += ';background-color:' + a.get('buttonColor')), (y += ';color:' + a.get('buttonTextColor')) var w = this function x() { i.removeChild(o), (w._dom = null) } Wl(_, 'click', x), Wl(S, 'click', function () { if ((c == null && h != null) || (c != null && h == null)) { x() return } var b try { Q(c) ? (b = c(u, n.getOption())) : (b = vE(f.value, g)) } catch (T) { throw (x(), new Error('Data view format error ' + T)) } b && n.dispatchAction({ type: 'changeDataView', newOption: b }), x() }), (_.innerHTML = l[1]), (S.innerHTML = l[2]), (S.style.cssText = _.style.cssText = y), !a.get('readOnly') && m.appendChild(S), m.appendChild(_), o.appendChild(s), o.appendChild(u), o.appendChild(m), (u.style.height = i.clientHeight - 80 + 'px'), i.appendChild(o), (this._dom = o) }), (t.prototype.remove = function (e, n) { this._dom && n.getDom().removeChild(this._dom) }), (t.prototype.dispose = function (e, n) { this.remove(e, n) }), (t.getDefaultOption = function (e) { var n = { 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: e.getLocaleModel().get(['toolbox', 'dataView', 'title']), lang: e.getLocaleModel().get(['toolbox', 'dataView', 'lang']), backgroundColor: '#fff', textColor: '#000', textareaColor: '#fff', textareaBorderColor: '#333', buttonColor: '#c23531', buttonTextColor: '#fff' } return n }), t ) })(ke) function dE(r, t) { return G(r, function (e, n) { var i = t && t[n] if (Y(i) && !z(i)) { var a = Y(e) && !z(e) a || (e = { value: e }) var o = i.name != null && e.name == null return (e = j(e, i)), o && delete e.name, e } else return e }) } Je( { type: 'changeDataView', event: 'dataViewChanged', update: 'prepareAndUpdate' }, function (r, t) { var e = [] A(r.newOption.series, function (n) { var i = t.getSeriesByName(n.name)[0] if (!i) e.push(N({ type: 'scatter' }, n)) else { var a = i.get('data') e.push({ name: n.name, data: dE(n.data, a) }) } }), t.mergeOption(j({ series: e }, r.newOption)) } ) var pE = cE, f1 = A, h1 = wt() function gE(r, t) { var e = dv(r) f1(t, function (n, i) { for (var a = e.length - 1; a >= 0; a--) { var o = e[a] if (o[i]) break } if (a < 0) { var s = r.queryComponents({ mainType: 'dataZoom', subType: 'select', id: i })[0] if (s) { var l = s.getPercentRange() e[0][i] = { dataZoomId: i, start: l[0], end: l[1] } } } }), e.push(t) } function mE(r) { var t = dv(r), e = t[t.length - 1] t.length > 1 && t.pop() var n = {} return ( f1(e, function (i, a) { for (var o = t.length - 1; o >= 0; o--) if (((i = t[o][a]), i)) { n[a] = i break } }), n ) } function yE(r) { h1(r).snapshots = null } function _E(r) { return dv(r).length } function dv(r) { var t = h1(r) return t.snapshots || (t.snapshots = [{}]), t.snapshots } var SE = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.onclick = function (e, n) { yE(e), n.dispatchAction({ type: 'restore', from: this.uid }) }), (t.getDefaultOption = function (e) { var n = { 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: e.getLocaleModel().get(['toolbox', 'restore', 'title']) } return n }), t ) })(ke) Je( { type: 'restore', event: 'restore', update: 'prepareAndUpdate' }, function (r, t) { t.resetOption('recreate') } ) var xE = SE, wE = [ 'grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap' ], bE = (function () { function r(t, e, n) { var i = this this._targetInfoList = [] var a = v1(e, t) A(TE, function (o, s) { ;(!n || !n.include || ot(n.include, s) >= 0) && o(a, i._targetInfoList) }) } return ( (r.prototype.setOutputRanges = function (t, e) { return ( this.matchOutputRanges(t, e, function (n, i, a) { if ( ((n.coordRanges || (n.coordRanges = [])).push(i), !n.coordRange) ) { n.coordRange = i var o = gv[n.brushType](0, a, i) n.__rangeOffset = { offset: g1[n.brushType](o.values, n.range, [1, 1]), xyMinMax: o.xyMinMax } } }), t ) }), (r.prototype.matchOutputRanges = function (t, e, n) { A( t, function (i) { var a = this.findTargetInfo(i, e) a && a !== !0 && A(a.coordSyses, function (o) { var s = gv[i.brushType](1, o, i.range, !0) n(i, s.values, o, e) }) }, this ) }), (r.prototype.setInputRanges = function (t, e) { A( t, function (n) { var i = this.findTargetInfo(n, e) if (((n.range = n.range || []), i && i !== !0)) { n.panelId = i.panelId var a = gv[n.brushType](0, i.coordSys, n.coordRange), o = n.__rangeOffset n.range = o ? g1[n.brushType]( a.values, o.offset, CE(a.xyMinMax, o.xyMinMax) ) : a.values } }, this ) }), (r.prototype.makePanelOpts = function (t, e) { return G(this._targetInfoList, function (n) { var i = n.getPanelRect() return { panelId: n.panelId, defaultBrushType: e ? e(n) : null, clipPath: tR(i), isTargetByCursor: rR(i, t, n.coordSysModel), getLinearBrushOtherExtent: eR(i) } }) }), (r.prototype.controlSeries = function (t, e, n) { var i = this.findTargetInfo(t, n) return i === !0 || (i && ot(i.coordSyses, e.coordinateSystem) >= 0) }), (r.prototype.findTargetInfo = function (t, e) { for ( var n = this._targetInfoList, i = v1(e, t), a = 0; a < n.length; a++ ) { var o = n[a], s = t.panelId if (s) { if (o.panelId === s) return o } else for (var l = 0; l < c1.length; l++) if (c1[l](i, o)) return o } return !0 }), r ) })() function pv(r) { return r[0] > r[1] && r.reverse(), r } function v1(r, t) { return Ji(r, t, { includeMainTypes: wE }) } var TE = { grid: function (r, t) { var e = r.xAxisModels, n = r.yAxisModels, i = r.gridModels, a = q(), o = {}, s = {} ;(!e && !n && !i) || (A(e, function (l) { var u = l.axis.grid.model a.set(u.id, u), (o[u.id] = !0) }), A(n, function (l) { var u = l.axis.grid.model a.set(u.id, u), (s[u.id] = !0) }), A(i, function (l) { a.set(l.id, l), (o[l.id] = !0), (s[l.id] = !0) }), a.each(function (l) { var u = l.coordinateSystem, f = [] A(u.getCartesians(), function (h, c) { ;(ot(e, h.getAxis('x').model) >= 0 || ot(n, h.getAxis('y').model) >= 0) && f.push(h) }), t.push({ panelId: 'grid--' + l.id, gridModel: l, coordSysModel: l, coordSys: f[0], coordSyses: f, getPanelRect: d1.grid, xAxisDeclared: o[l.id], yAxisDeclared: s[l.id] }) })) }, geo: function (r, t) { A(r.geoModels, function (e) { var n = e.coordinateSystem t.push({ panelId: 'geo--' + e.id, geoModel: e, coordSysModel: e, coordSys: n, coordSyses: [n], getPanelRect: d1.geo }) }) } }, c1 = [ function (r, t) { var e = r.xAxisModel, n = r.yAxisModel, i = r.gridModel return ( !i && e && (i = e.axis.grid.model), !i && n && (i = n.axis.grid.model), i && i === t.gridModel ) }, function (r, t) { var e = r.geoModel return e && e === t.geoModel } ], d1 = { grid: function () { return this.coordSys.master.getRect().clone() }, geo: function () { var r = this.coordSys, t = r.getBoundingRect().clone() return t.applyTransform(ls(r)), t } }, gv = { lineX: lt(p1, 0), lineY: lt(p1, 1), rect: function (r, t, e, n) { var i = r ? t.pointToData([e[0][0], e[1][0]], n) : t.dataToPoint([e[0][0], e[1][0]], n), a = r ? t.pointToData([e[0][1], e[1][1]], n) : t.dataToPoint([e[0][1], e[1][1]], n), o = [pv([i[0], a[0]]), pv([i[1], a[1]])] return { values: o, xyMinMax: o } }, polygon: function (r, t, e, n) { var i = [ [1 / 0, -1 / 0], [1 / 0, -1 / 0] ], a = G(e, function (o) { var s = r ? t.pointToData(o, n) : t.dataToPoint(o, n) return ( (i[0][0] = Math.min(i[0][0], s[0])), (i[1][0] = Math.min(i[1][0], s[1])), (i[0][1] = Math.max(i[0][1], s[0])), (i[1][1] = Math.max(i[1][1], s[1])), s ) }) return { values: a, xyMinMax: i } } } function p1(r, t, e, n) { var i = e.getAxis(['x', 'y'][r]), a = pv( G([0, 1], function (s) { return t ? i.coordToData(i.toLocalCoord(n[s]), !0) : i.toGlobalCoord(i.dataToCoord(n[s])) }) ), o = [] return (o[r] = a), (o[1 - r] = [NaN, NaN]), { values: a, xyMinMax: o } } var g1 = { lineX: lt(m1, 0), lineY: lt(m1, 1), rect: function (r, t, e) { return [ [r[0][0] - e[0] * t[0][0], r[0][1] - e[0] * t[0][1]], [r[1][0] - e[1] * t[1][0], r[1][1] - e[1] * t[1][1]] ] }, polygon: function (r, t, e) { return G(r, function (n, i) { return [n[0] - e[0] * t[i][0], n[1] - e[1] * t[i][1]] }) } } function m1(r, t, e, n) { return [t[0] - n[r] * e[0], t[1] - n[r] * e[1]] } function CE(r, t) { var e = y1(r), n = y1(t), i = [e[0] / n[0], e[1] / n[1]] return isNaN(i[0]) && (i[0] = 1), isNaN(i[1]) && (i[1] = 1), i } function y1(r) { return r ? [r[0][1] - r[0][0], r[1][1] - r[1][0]] : [NaN, NaN] } var _1 = bE, mv = A, AE = hb('toolbox-dataZoom_'), ME = (function (r) { B(t, r) function t() { return (r !== null && r.apply(this, arguments)) || this } return ( (t.prototype.render = function (e, n, i, a) { this._brushController || ((this._brushController = new jP(i.getZr())), this._brushController.on('brush', X(this._onBrush, this)).mount()), LE(e, n, this, a, i), IE(e, n) }), (t.prototype.onclick = function (e, n, i) { DE[i].call(this) }), (t.prototype.remove = function (e, n) { this._brushController && this._brushController.unmount() }), (t.prototype.dispose = function (e, n) { this._brushController && this._brushController.dispose() }), (t.prototype._onBrush = function (e) { var n = e.areas if (!e.isEnd || !n.length) return var i = {}, a = this.ecModel this._brushController.updateCovers([]) var o = new _1(yv(this.model), a, { include: ['grid'] }) o.matchOutputRanges(n, a, function (u, f, h) { if (h.type === 'cartesian2d') { var c = u.brushType c === 'rect' ? (s('x', h, f[0]), s('y', h, f[1])) : s({ lineX: 'x', lineY: 'y' }[c], h, f) } }), gE(a, i), this._dispatchZoomAction(i) function s(u, f, h) { var c = f.getAxis(u), v = c.model, d = l(u, v, a), p = d.findRepresentativeAxisProxy(v).getMinMaxSpan() ;(p.minValueSpan != null || p.maxValueSpan != null) && (h = Za( 0, h.slice(), c.scale.getExtent(), 0, p.minValueSpan, p.maxValueSpan )), d && (i[d.id] = { dataZoomId: d.id, startValue: h[0], endValue: h[1] }) } function l(u, f, h) { var c return ( h.eachComponent( { mainType: 'dataZoom', subType: 'select' }, function (v) { var d = v.getAxisModel(u, f.componentIndex) d && (c = v) } ), c ) } }), (t.prototype._dispatchZoomAction = function (e) { var n = [] mv(e, function (i, a) { n.push(tt(i)) }), n.length && this.api.dispatchAction({ type: 'dataZoom', from: this.uid, batch: n }) }), (t.getDefaultOption = function (e) { var n = { show: !0, filterMode: 'filter', icon: { zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1', back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26' }, title: e.getLocaleModel().get(['toolbox', 'dataZoom', 'title']), brushStyle: { borderWidth: 0, color: 'rgba(210,219,238,0.2)' } } return n }), t ) })(ke), DE = { zoom: function () { var r = !this._isZoomActive this.api.dispatchAction({ type: 'takeGlobalCursor', key: 'dataZoomSelect', dataZoomSelectActive: r }) }, back: function () { this._dispatchZoomAction(mE(this.ecModel)) } } function yv(r) { var t = { xAxisIndex: r.get('xAxisIndex', !0), yAxisIndex: r.get('yAxisIndex', !0), xAxisId: r.get('xAxisId', !0), yAxisId: r.get('yAxisId', !0) } return ( t.xAxisIndex == null && t.xAxisId == null && (t.xAxisIndex = 'all'), t.yAxisIndex == null && t.yAxisId == null && (t.yAxisIndex = 'all'), t ) } function IE(r, t) { r.setIconStatus('back', _E(t) > 1 ? 'emphasis' : 'normal') } function LE(r, t, e, n, i) { var a = e._isZoomActive n && n.type === 'takeGlobalCursor' && (a = n.key === 'dataZoomSelect' ? n.dataZoomSelectActive : !1), (e._isZoomActive = a), r.setIconStatus('zoom', a ? 'emphasis' : 'normal') var o = new _1(yv(r), t, { include: ['grid'] }), s = o.makePanelOpts(i, function (l) { return l.xAxisDeclared && !l.yAxisDeclared ? 'lineX' : !l.xAxisDeclared && l.yAxisDeclared ? 'lineY' : 'rect' }) e._brushController .setPanels(s) .enableBrush( a && s.length ? { brushType: 'auto', brushStyle: r.getModel('brushStyle').getItemStyle() } : !1 ) } gA('dataZoom', function (r) { var t = r.getComponent('toolbox', 0), e = ['feature', 'dataZoom'] if (!t || t.get(e) == null) return var n = t.getModel(e), i = [], a = yv(n), o = Ji(r, a) mv(o.xAxisModels, function (l) { return s(l, 'xAxis', 'xAxisIndex') }), mv(o.yAxisModels, function (l) { return s(l, 'yAxis', 'yAxisIndex') }) function s(l, u, f) { var h = l.componentIndex, c = { type: 'select', $fromToolbox: !0, filterMode: n.get('filterMode', !0) || 'filter', id: AE + u + h } ;(c[f] = h), i.push(c) } return i }) var PE = ME function RE(r) { r.registerComponentModel(qR), r.registerComponentView(jR), qa('saveAsImage', eE), qa('magicType', iE), qa('dataView', pE), qa('dataZoom', PE), qa('restore', xE), Re($R) } var EE = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.type = 'tooltip'), (t.dependencies = ['axisPointer']), (t.defaultOption = { z: 60, show: !0, showContent: !0, trigger: 'item', triggerOn: 'mousemove|click', alwaysShowContent: !1, displayMode: 'single', renderMode: 'auto', confine: null, showDelay: 0, hideDelay: 100, transitionDuration: 0.4, enterable: !1, backgroundColor: '#fff', shadowBlur: 10, shadowColor: 'rgba(0, 0, 0, .2)', shadowOffsetX: 1, shadowOffsetY: 2, borderRadius: 4, borderWidth: 1, padding: null, extraCssText: '', axisPointer: { type: 'line', axis: 'auto', animation: 'auto', animationDurationUpdate: 200, animationEasingUpdate: 'exponentialOut', crossStyle: { color: '#999', width: 1, type: 'dashed', textStyle: {} } }, textStyle: { color: '#666', fontSize: 14 } }), t ) })(_t), OE = EE function S1(r) { var t = r.get('confine') return t != null ? !!t : r.get('renderMode') === 'richText' } function x1(r) { if (!!at.domSupported) { for ( var t = document.documentElement.style, e = 0, n = r.length; e < n; e++ ) if (r[e] in t) return r[e] } } var w1 = x1([ 'transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform' ]), kE = x1([ 'webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition' ]) function b1(r, t) { if (!r) return t t = lg(t, !0) var e = r.indexOf(t) return (r = e === -1 ? t : '-' + r.slice(0, e) + '-' + t), r.toLowerCase() } function BE(r, t) { var e = r.currentStyle || (document.defaultView && document.defaultView.getComputedStyle(r)) return e ? (t ? e[t] : e) : null } var NE = b1(kE, 'transition'), _v = b1(w1, 'transform'), FE = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;' + (at.transform3dSupported ? 'will-change:transform;' : '') function zE(r) { return ( (r = r === 'left' ? 'right' : r === 'right' ? 'left' : r === 'top' ? 'bottom' : 'top'), r ) } function VE(r, t, e) { if (!W(e) || e === 'inside') return '' var n = r.get('backgroundColor'), i = r.get('borderWidth') t = yn(t) var a = zE(e), o = Math.max(Math.round(i) * 1.5, 6), s = '', l = _v + ':', u ot(['left', 'right'], a) > -1 ? ((s += 'top:50%'), (l += 'translateY(-50%) rotate(' + (u = a === 'left' ? -225 : -45) + 'deg)')) : ((s += 'left:50%'), (l += 'translateX(-50%) rotate(' + (u = a === 'top' ? 225 : 45) + 'deg)')) var f = (u * Math.PI) / 180, h = o + i, c = h * Math.abs(Math.cos(f)) + h * Math.abs(Math.sin(f)), v = Math.round( ((c - Math.SQRT2 * i) / 2 + Math.SQRT2 * i - (c - h) / 2) * 100 ) / 100 s += ';' + a + ':-' + v + 'px' var d = t + ' solid ' + i + 'px;', p = [ 'position:absolute;width:' + o + 'px;height:' + o + 'px;', s + ';' + l + ';', 'border-bottom:' + d, 'border-right:' + d, 'background-color:' + n + ';' ] return '
' } function GE(r, t) { var e = 'cubic-bezier(0.23,1,0.32,1)', n = ' ' + r / 2 + 's ' + e, i = 'opacity' + n + ',visibility' + n return ( t || ((n = ' ' + r + 's ' + e), (i += at.transformSupported ? ',' + _v + n : ',left' + n + ',top' + n)), NE + ':' + i ) } function T1(r, t, e) { var n = r.toFixed(0) + 'px', i = t.toFixed(0) + 'px' if (!at.transformSupported) return e ? 'top:' + i + ';left:' + n + ';' : [ ['top', i], ['left', n] ] var a = at.transform3dSupported, o = 'translate' + (a ? '3d' : '') + '(' + n + ',' + i + (a ? ',0' : '') + ')' return e ? 'top:0;left:0;' + _v + ':' + o + ';' : [ ['top', 0], ['left', 0], [w1, o] ] } function HE(r) { var t = [], e = r.get('fontSize'), n = r.getTextColor() n && t.push('color:' + n), t.push('font:' + r.getFont()), e && t.push('line-height:' + Math.round((e * 3) / 2) + 'px') var i = r.get('textShadowColor'), a = r.get('textShadowBlur') || 0, o = r.get('textShadowOffsetX') || 0, s = r.get('textShadowOffsetY') || 0 return ( i && a && t.push('text-shadow:' + o + 'px ' + s + 'px ' + a + 'px ' + i), A(['decoration', 'align'], function (l) { var u = r.get(l) u && t.push('text-' + l + ':' + u) }), t.join(';') ) } function WE(r, t, e) { var n = [], i = r.get('transitionDuration'), a = r.get('backgroundColor'), o = r.get('shadowBlur'), s = r.get('shadowColor'), l = r.get('shadowOffsetX'), u = r.get('shadowOffsetY'), f = r.getModel('textStyle'), h = hm(r, 'html'), c = l + 'px ' + u + 'px ' + o + 'px ' + s return ( n.push('box-shadow:' + c), t && i && n.push(GE(i, e)), a && n.push('background-color:' + a), A(['width', 'color', 'radius'], function (v) { var d = 'border-' + v, p = lg(d), g = r.get(p) g != null && n.push(d + ':' + g + (v === 'color' ? '' : 'px')) }), n.push(HE(f)), h != null && n.push('padding:' + ws(h).join('px ') + 'px'), n.join(';') + ';' ) } function C1(r, t, e, n, i) { var a = t && t.painter if (e) { var o = a && a.getViewportRoot() o && Gx(r, o, document.body, n, i) } else { ;(r[0] = n), (r[1] = i) var s = a && a.getViewportRootOffset() s && ((r[0] += s.offsetLeft), (r[1] += s.offsetTop)) } ;(r[2] = r[0] / t.getWidth()), (r[3] = r[1] / t.getHeight()) } var UE = (function () { function r(t, e, n) { if ( ((this._show = !1), (this._styleCoord = [0, 0, 0, 0]), (this._enterable = !0), (this._firstShow = !0), (this._longHide = !0), at.wxa) ) return null var i = document.createElement('div') ;(i.domBelongToZr = !0), (this.el = i) var a = (this._zr = e.getZr()), o = (this._appendToBody = n && n.appendToBody) C1(this._styleCoord, a, o, e.getWidth() / 2, e.getHeight() / 2), o ? document.body.appendChild(i) : t.appendChild(i), (this._container = t) var s = this ;(i.onmouseenter = function () { s._enterable && (clearTimeout(s._hideTimeout), (s._show = !0)), (s._inContent = !0) }), (i.onmousemove = function (l) { if (((l = l || window.event), !s._enterable)) { var u = a.handler, f = a.painter.getViewportRoot() he(f, l, !0), u.dispatch('mousemove', l) } }), (i.onmouseleave = function () { ;(s._inContent = !1), s._enterable && s._show && s.hideLater(s._hideDelay) }) } return ( (r.prototype.update = function (t) { var e = this._container, n = BE(e, 'position'), i = e.style i.position !== 'absolute' && n !== 'absolute' && (i.position = 'relative') var a = t.get('alwaysShowContent') a && this._moveIfResized(), (this.el.className = t.get('className') || '') }), (r.prototype.show = function (t, e) { clearTimeout(this._hideTimeout), clearTimeout(this._longHideTimeout) var n = this.el, i = n.style, a = this._styleCoord n.innerHTML ? (i.cssText = FE + WE(t, !this._firstShow, this._longHide) + T1(a[0], a[1], !0) + ('border-color:' + yn(e) + ';') + (t.get('extraCssText') || '') + (';pointer-events:' + (this._enterable ? 'auto' : 'none'))) : (i.display = 'none'), (this._show = !0), (this._firstShow = !1), (this._longHide = !1) }), (r.prototype.setContent = function (t, e, n, i, a) { var o = this.el if (t == null) { o.innerHTML = '' return } var s = '' if ( (W(a) && n.get('trigger') === 'item' && !S1(n) && (s = VE(n, i, a)), W(t)) ) o.innerHTML = t + s else if (t) { ;(o.innerHTML = ''), z(t) || (t = [t]) for (var l = 0; l < t.length; l++) Ri(t[l]) && t[l].parentNode !== o && o.appendChild(t[l]) if (s && o.childNodes.length) { var u = document.createElement('div') ;(u.innerHTML = s), o.appendChild(u) } } }), (r.prototype.setEnterable = function (t) { this._enterable = t }), (r.prototype.getSize = function () { var t = this.el return [t.offsetWidth, t.offsetHeight] }), (r.prototype.moveTo = function (t, e) { var n = this._styleCoord if ( (C1(n, this._zr, this._appendToBody, t, e), n[0] != null && n[1] != null) ) { var i = this.el.style, a = T1(n[0], n[1]) A(a, function (o) { i[o[0]] = o[1] }) } }), (r.prototype._moveIfResized = function () { var t = this._styleCoord[2], e = this._styleCoord[3] this.moveTo(t * this._zr.getWidth(), e * this._zr.getHeight()) }), (r.prototype.hide = function () { var t = this, e = this.el.style ;(e.visibility = 'hidden'), (e.opacity = '0'), at.transform3dSupported && (e.willChange = ''), (this._show = !1), (this._longHideTimeout = setTimeout(function () { return (t._longHide = !0) }, 500)) }), (r.prototype.hideLater = function (t) { this._show && !(this._inContent && this._enterable) && (t ? ((this._hideDelay = t), (this._show = !1), (this._hideTimeout = setTimeout(X(this.hide, this), t))) : this.hide()) }), (r.prototype.isShow = function () { return this._show }), (r.prototype.dispose = function () { this.el.parentNode.removeChild(this.el) }), r ) })(), YE = UE, ZE = (function () { function r(t) { ;(this._show = !1), (this._styleCoord = [0, 0, 0, 0]), (this._enterable = !0), (this._zr = t.getZr()), M1(this._styleCoord, this._zr, t.getWidth() / 2, t.getHeight() / 2) } return ( (r.prototype.update = function (t) { var e = t.get('alwaysShowContent') e && this._moveIfResized() }), (r.prototype.show = function () { this._hideTimeout && clearTimeout(this._hideTimeout), this.el.show(), (this._show = !0) }), (r.prototype.setContent = function (t, e, n, i, a) { var o = this Y(t) && ut(''), this.el && this._zr.remove(this.el) var s = n.getModel('textStyle') ;(this.el = new Et({ style: { rich: e.richTextStyles, text: t, lineHeight: 22, borderWidth: 1, borderColor: i, textShadowColor: s.get('textShadowColor'), fill: n.get(['textStyle', 'color']), padding: hm(n, 'richText'), verticalAlign: 'top', align: 'left' }, z: n.get('z') })), A( [ 'backgroundColor', 'borderRadius', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY' ], function (u) { o.el.style[u] = n.get(u) } ), A( ['textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'], function (u) { o.el.style[u] = s.get(u) || 0 } ), this._zr.add(this.el) var l = this this.el.on('mouseover', function () { l._enterable && (clearTimeout(l._hideTimeout), (l._show = !0)), (l._inContent = !0) }), this.el.on('mouseout', function () { l._enterable && l._show && l.hideLater(l._hideDelay), (l._inContent = !1) }) }), (r.prototype.setEnterable = function (t) { this._enterable = t }), (r.prototype.getSize = function () { var t = this.el, e = this.el.getBoundingRect(), n = A1(t.style) return [e.width + n.left + n.right, e.height + n.top + n.bottom] }), (r.prototype.moveTo = function (t, e) { var n = this.el if (n) { var i = this._styleCoord M1(i, this._zr, t, e), (t = i[0]), (e = i[1]) var a = n.style, o = Hr(a.borderWidth || 0), s = A1(a) ;(n.x = t + o + s.left), (n.y = e + o + s.top), n.markRedraw() } }), (r.prototype._moveIfResized = function () { var t = this._styleCoord[2], e = this._styleCoord[3] this.moveTo(t * this._zr.getWidth(), e * this._zr.getHeight()) }), (r.prototype.hide = function () { this.el && this.el.hide(), (this._show = !1) }), (r.prototype.hideLater = function (t) { this._show && !(this._inContent && this._enterable) && (t ? ((this._hideDelay = t), (this._show = !1), (this._hideTimeout = setTimeout(X(this.hide, this), t))) : this.hide()) }), (r.prototype.isShow = function () { return this._show }), (r.prototype.dispose = function () { this._zr.remove(this.el) }), r ) })() function Hr(r) { return Math.max(0, r) } function A1(r) { var t = Hr(r.shadowBlur || 0), e = Hr(r.shadowOffsetX || 0), n = Hr(r.shadowOffsetY || 0) return { left: Hr(t - e), right: Hr(t + e), top: Hr(t - n), bottom: Hr(t + n) } } function M1(r, t, e, n) { ;(r[0] = e), (r[1] = n), (r[2] = r[0] / t.getWidth()), (r[3] = r[1] / t.getHeight()) } var $E = ZE, XE = new St({ shape: { x: -1, y: -1, width: 2, height: 2 } }), qE = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.prototype.init = function (e, n) { if (!(at.node || !n.getDom())) { var i = e.getComponent('tooltip'), a = (this._renderMode = mb(i.get('renderMode'))) this._tooltipContent = a === 'richText' ? new $E(n) : new YE(n.getDom(), n, { appendToBody: i.get('appendToBody', !0) }) } }), (t.prototype.render = function (e, n, i) { if (!(at.node || !i.getDom())) { this.group.removeAll(), (this._tooltipModel = e), (this._ecModel = n), (this._api = i), (this._alwaysShowContent = e.get('alwaysShowContent')) var a = this._tooltipContent a.update(e), a.setEnterable(e.get('enterable')), this._initGlobalListener(), this._keepShow(), this._renderMode !== 'richText' && e.get('transitionDuration') ? Os(this, '_updatePosition', 50, 'fixRate') : ks(this, '_updatePosition') } }), (t.prototype._initGlobalListener = function () { var e = this._tooltipModel, n = e.get('triggerOn') $_( 'itemTooltip', this._api, X(function (i, a, o) { n !== 'none' && (n.indexOf(i) >= 0 ? this._tryShow(a, o) : i === 'leave' && this._hide(o)) }, this) ) }), (t.prototype._keepShow = function () { var e = this._tooltipModel, n = this._ecModel, i = this._api, a = e.get('triggerOn') if ( this._lastX != null && this._lastY != null && a !== 'none' && a !== 'click' ) { var o = this clearTimeout(this._refreshUpdateTimeout), (this._refreshUpdateTimeout = setTimeout(function () { !i.isDisposed() && o.manuallyShowTip(e, n, i, { x: o._lastX, y: o._lastY, dataByCoordSys: o._lastDataByCoordSys }) })) } }), (t.prototype.manuallyShowTip = function (e, n, i, a) { if (!(a.from === this.uid || at.node || !i.getDom())) { var o = D1(a, i) this._ticket = '' var s = a.dataByCoordSys, l = jE(a, n, i) if (l) { var u = l.el.getBoundingRect().clone() u.applyTransform(l.el.transform), this._tryShow( { offsetX: u.x + u.width / 2, offsetY: u.y + u.height / 2, target: l.el, position: a.position, positionDefault: 'bottom' }, o ) } else if (a.tooltip && a.x != null && a.y != null) { var f = XE ;(f.x = a.x), (f.y = a.y), f.update(), (ct(f).tooltipConfig = { name: null, option: a.tooltip }), this._tryShow({ offsetX: a.x, offsetY: a.y, target: f }, o) } else if (s) this._tryShow( { offsetX: a.x, offsetY: a.y, position: a.position, dataByCoordSys: s, tooltipOption: a.tooltipOption }, o ) else if (a.seriesIndex != null) { if (this._manuallyAxisShowTip(e, n, i, a)) return var h = q_(a, n), c = h.point[0], v = h.point[1] c != null && v != null && this._tryShow( { offsetX: c, offsetY: v, target: h.el, position: a.position, positionDefault: 'bottom' }, o ) } else a.x != null && a.y != null && (i.dispatchAction({ type: 'updateAxisPointer', x: a.x, y: a.y }), this._tryShow( { offsetX: a.x, offsetY: a.y, position: a.position, target: i.getZr().findHover(a.x, a.y).target }, o )) } }), (t.prototype.manuallyHideTip = function (e, n, i, a) { var o = this._tooltipContent !this._alwaysShowContent && this._tooltipModel && o.hideLater(this._tooltipModel.get('hideDelay')), (this._lastX = this._lastY = this._lastDataByCoordSys = null), a.from !== this.uid && this._hide(D1(a, i)) }), (t.prototype._manuallyAxisShowTip = function (e, n, i, a) { var o = a.seriesIndex, s = a.dataIndex, l = n.getComponent('axisPointer').coordSysAxesInfo if (!(o == null || s == null || l == null)) { var u = n.getSeriesByIndex(o) if (!!u) { var f = u.getData(), h = Ka( [f.getItemModel(s), u, (u.coordinateSystem || {}).model], this._tooltipModel ) if (h.get('trigger') === 'axis') return ( i.dispatchAction({ type: 'updateAxisPointer', seriesIndex: o, dataIndex: s, position: a.position }), !0 ) } } }), (t.prototype._tryShow = function (e, n) { var i = e.target, a = this._tooltipModel if (!!a) { ;(this._lastX = e.offsetX), (this._lastY = e.offsetY) var o = e.dataByCoordSys if (o && o.length) this._showAxisTooltip(o, e) else if (i) { this._lastDataByCoordSys = null var s, l Ia( i, function (u) { if (ct(u).dataIndex != null) return (s = u), !0 if (ct(u).tooltipConfig != null) return (l = u), !0 }, !0 ), s ? this._showSeriesItemTooltip(e, s, n) : l ? this._showComponentItemTooltip(e, l, n) : this._hide(n) } else (this._lastDataByCoordSys = null), this._hide(n) } }), (t.prototype._showOrMove = function (e, n) { var i = e.get('showDelay') ;(n = X(n, this)), clearTimeout(this._showTimout), i > 0 ? (this._showTimout = setTimeout(n, i)) : n() }), (t.prototype._showAxisTooltip = function (e, n) { var i = this._ecModel, a = this._tooltipModel, o = [n.offsetX, n.offsetY], s = Ka([n.tooltipOption], a), l = this._renderMode, u = [], f = Aa('section', { blocks: [], noHeader: !0 }), h = [], c = new Hf() A(e, function (y) { A(y.dataByAxis, function (_) { var S = i.getComponent(_.axisDim + 'Axis', _.axisIndex), w = _.value if (!(!S || w == null)) { var x = W_(w, S.axis, i, _.seriesDataIndices, _.valueLabelOpt), b = Aa('section', { header: x, noHeader: !Ge(x), sortBlocks: !0, blocks: [] }) f.blocks.push(b), A(_.seriesDataIndices, function (T) { var C = i.getSeriesByIndex(T.seriesIndex), M = T.dataIndexInside, D = C.getDataParams(M) if (!(D.dataIndex < 0)) { ;(D.axisDim = _.axisDim), (D.axisIndex = _.axisIndex), (D.axisType = _.axisType), (D.axisId = _.axisId), (D.axisValue = Th(S.axis, { value: w })), (D.axisValueLabel = x), (D.marker = c.makeTooltipMarker('item', yn(D.color), l)) var I = Zg(C.formatTooltip(M, !0, null)), L = I.frag if (L) { var P = Ka([C], a).get('valueFormatter') b.blocks.push(P ? N({ valueFormatter: P }, L) : L) } I.text && h.push(I.text), u.push(D) } }) } }) }), f.blocks.reverse(), h.reverse() var v = n.position, d = s.get('order'), p = um(f, c, l, d, i.get('useUTC'), s.get('textStyle')) p && h.unshift(p) var g = l === 'richText' ? ` ` : '
', m = h.join(g) this._showOrMove(s, function () { this._updateContentNotChangedOnAxis(e, u) ? this._updatePosition(s, v, o[0], o[1], this._tooltipContent, u) : this._showTooltipContent( s, m, u, Math.random() + '', o[0], o[1], v, null, c ) }) }), (t.prototype._showSeriesItemTooltip = function (e, n, i) { var a = this._ecModel, o = ct(n), s = o.seriesIndex, l = a.getSeriesByIndex(s), u = o.dataModel || l, f = o.dataIndex, h = o.dataType, c = u.getData(h), v = this._renderMode, d = e.positionDefault, p = Ka( [c.getItemModel(f), u, l && (l.coordinateSystem || {}).model], this._tooltipModel, d ? { position: d } : null ), g = p.get('trigger') if (!(g != null && g !== 'item')) { var m = u.getDataParams(f, h), y = new Hf() m.marker = y.makeTooltipMarker('item', yn(m.color), v) var _ = Zg(u.formatTooltip(f, !1, h)), S = p.get('order'), w = p.get('valueFormatter'), x = _.frag, b = x ? um( w ? N({ valueFormatter: w }, x) : x, y, v, S, a.get('useUTC'), p.get('textStyle') ) : _.text, T = 'item_' + u.name + '_' + f this._showOrMove(p, function () { this._showTooltipContent( p, b, m, T, e.offsetX, e.offsetY, e.position, e.target, y ) }), i({ type: 'showTip', dataIndexInside: f, dataIndex: c.getRawIndex(f), seriesIndex: s, from: this.uid }) } }), (t.prototype._showComponentItemTooltip = function (e, n, i) { var a = ct(n), o = a.tooltipConfig, s = o.option || {} if (W(s)) { var l = s s = { content: l, formatter: l } } var u = [s], f = this._ecModel.getComponent(a.componentMainType, a.componentIndex) f && u.push(f), u.push({ formatter: s.content }) var h = e.positionDefault, c = Ka(u, this._tooltipModel, h ? { position: h } : null), v = c.get('content'), d = Math.random() + '', p = new Hf() this._showOrMove(c, function () { var g = tt(c.get('formatterParams') || {}) this._showTooltipContent( c, v, g, d, e.offsetX, e.offsetY, e.position, n, p ) }), i({ type: 'showTip', from: this.uid }) }), (t.prototype._showTooltipContent = function (e, n, i, a, o, s, l, u, f) { if (((this._ticket = ''), !(!e.get('showContent') || !e.get('show')))) { var h = this._tooltipContent h.setEnterable(e.get('enterable')) var c = e.get('formatter') l = l || e.get('position') var v = n, d = this._getNearestPoint( [o, s], i, e.get('trigger'), e.get('borderColor') ), p = d.color if (c) if (W(c)) { var g = e.ecModel.get('useUTC'), m = z(i) ? i[0] : i, y = m && m.axisType && m.axisType.indexOf('time') >= 0 ;(v = c), y && (v = ms(m.axisValue, v, g)), (v = fg(v, i, !0)) } else if (Q(c)) { var _ = X(function (S, w) { S === this._ticket && (h.setContent(w, f, e, p, l), this._updatePosition(e, l, o, s, h, i, u)) }, this) ;(this._ticket = a), (v = c(i, a, _)) } else v = c h.setContent(v, f, e, p, l), h.show(e, p), this._updatePosition(e, l, o, s, h, i, u) } }), (t.prototype._getNearestPoint = function (e, n, i, a) { if (i === 'axis' || z(n)) return { color: a || (this._renderMode === 'html' ? '#fff' : 'none') } if (!z(n)) return { color: a || n.color || n.borderColor } }), (t.prototype._updatePosition = function (e, n, i, a, o, s, l) { var u = this._api.getWidth(), f = this._api.getHeight() n = n || e.get('position') var h = o.getSize(), c = e.get('align'), v = e.get('verticalAlign'), d = l && l.getBoundingRect().clone() if ( (l && d.applyTransform(l.transform), Q(n) && (n = n([i, a], s, o.el, d, { viewSize: [u, f], contentSize: h.slice() })), z(n)) ) (i = yt(n[0], u)), (a = yt(n[1], f)) else if (Y(n)) { var p = n ;(p.width = h[0]), (p.height = h[1]) var g = cr(p, { width: u, height: f }) ;(i = g.x), (a = g.y), (c = null), (v = null) } else if (W(n) && l) { var m = JE(n, d, h, e.get('borderWidth')) ;(i = m[0]), (a = m[1]) } else { var m = KE(i, a, o, u, f, c ? null : 20, v ? null : 20) ;(i = m[0]), (a = m[1]) } if ( (c && (i -= I1(c) ? h[0] / 2 : c === 'right' ? h[0] : 0), v && (a -= I1(v) ? h[1] / 2 : v === 'bottom' ? h[1] : 0), S1(e)) ) { var m = QE(i, a, o, u, f) ;(i = m[0]), (a = m[1]) } o.moveTo(i, a) }), (t.prototype._updateContentNotChangedOnAxis = function (e, n) { var i = this._lastDataByCoordSys, a = this._cbParamsList, o = !!i && i.length === e.length return ( o && A(i, function (s, l) { var u = s.dataByAxis || [], f = e[l] || {}, h = f.dataByAxis || [] ;(o = o && u.length === h.length), o && A(u, function (c, v) { var d = h[v] || {}, p = c.seriesDataIndices || [], g = d.seriesDataIndices || [] ;(o = o && c.value === d.value && c.axisType === d.axisType && c.axisId === d.axisId && p.length === g.length), o && A(p, function (m, y) { var _ = g[y] o = o && m.seriesIndex === _.seriesIndex && m.dataIndex === _.dataIndex }), a && A(c.seriesDataIndices, function (m) { var y = m.seriesIndex, _ = n[y], S = a[y] _ && S && S.data !== _.data && (o = !1) }) }) }), (this._lastDataByCoordSys = e), (this._cbParamsList = n), !!o ) }), (t.prototype._hide = function (e) { ;(this._lastDataByCoordSys = null), e({ type: 'hideTip', from: this.uid }) }), (t.prototype.dispose = function (e, n) { at.node || !n.getDom() || (ks(this, '_updatePosition'), this._tooltipContent.dispose(), uv('itemTooltip', n)) }), (t.type = 'tooltip'), t ) })(xe) function Ka(r, t, e) { var n = t.ecModel, i e ? ((i = new Nt(e, n, n)), (i = new Nt(t.option, i, n))) : (i = t) for (var a = r.length - 1; a >= 0; a--) { var o = r[a] o && (o instanceof Nt && (o = o.get('tooltip', !0)), W(o) && (o = { formatter: o }), o && (i = new Nt(o, i, n))) } return i } function D1(r, t) { return r.dispatchAction || X(t.dispatchAction, t) } function KE(r, t, e, n, i, a, o) { var s = e.getSize(), l = s[0], u = s[1] return ( a != null && (r + l + a + 2 > n ? (r -= l + a) : (r += a)), o != null && (t + u + o > i ? (t -= u + o) : (t += o)), [r, t] ) } function QE(r, t, e, n, i) { var a = e.getSize(), o = a[0], s = a[1] return ( (r = Math.min(r + o, n) - o), (t = Math.min(t + s, i) - s), (r = Math.max(r, 0)), (t = Math.max(t, 0)), [r, t] ) } function JE(r, t, e, n) { var i = e[0], a = e[1], o = Math.ceil(Math.SQRT2 * n) + 8, s = 0, l = 0, u = t.width, f = t.height switch (r) { case 'inside': ;(s = t.x + u / 2 - i / 2), (l = t.y + f / 2 - a / 2) break case 'top': ;(s = t.x + u / 2 - i / 2), (l = t.y - a - o) break case 'bottom': ;(s = t.x + u / 2 - i / 2), (l = t.y + f + o) break case 'left': ;(s = t.x - i - o), (l = t.y + f / 2 - a / 2) break case 'right': ;(s = t.x + u + o), (l = t.y + f / 2 - a / 2) } return [s, l] } function I1(r) { return r === 'center' || r === 'middle' } function jE(r, t, e) { var n = Mu(r).queryOptionMap, i = n.keys()[0] if (!(!i || i === 'series')) { var a = ji(t, i, n.get(i), { useDefault: !1, enableAll: !1, enableNone: !1 }), o = a.models[0] if (!!o) { var s = e.getViewOfComponentModel(o), l if ( (s.group.traverse(function (u) { var f = ct(u).tooltipConfig if (f && f.name === r.name) return (l = u), !0 }), l) ) return { componentMainType: i, componentIndex: o.componentIndex, el: l } } } } var tO = qE function eO(r) { Re(j_), r.registerComponentModel(OE), r.registerComponentView(tO), r.registerAction( { type: 'showTip', event: 'showTip', update: 'tooltip:manuallyShowTip' }, $t ), r.registerAction( { type: 'hideTip', event: 'hideTip', update: 'tooltip:manuallyHideTip' }, $t ) } var rO = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return ( (e.type = t.type), (e.layoutMode = { type: 'box', ignoreSize: !0 }), e ) } return ( (t.type = 'title'), (t.defaultOption = { z: 6, show: !0, text: '', target: 'blank', subtext: '', subtarget: 'blank', left: 0, top: 0, backgroundColor: 'rgba(0,0,0,0)', borderColor: '#ccc', borderWidth: 0, padding: 5, itemGap: 10, textStyle: { fontSize: 18, fontWeight: 'bold', color: '#464646' }, subtextStyle: { fontSize: 12, color: '#6E7079' } }), t ) })(_t), nO = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.prototype.render = function (e, n, i) { if ((this.group.removeAll(), !!e.get('show'))) { var a = this.group, o = e.getModel('textStyle'), s = e.getModel('subtextStyle'), l = e.get('textAlign'), u = ht(e.get('textBaseline'), e.get('textVerticalAlign')), f = new Et({ style: vr( o, { text: e.get('text'), fill: o.getTextColor() }, { disableBox: !0 } ), z2: 10 }), h = f.getBoundingRect(), c = e.get('subtext'), v = new Et({ style: vr( s, { text: c, fill: s.getTextColor(), y: h.height + e.get('itemGap'), verticalAlign: 'top' }, { disableBox: !0 } ), z2: 10 }), d = e.get('link'), p = e.get('sublink'), g = e.get('triggerEvent', !0) ;(f.silent = !d && !g), (v.silent = !p && !g), d && f.on('click', function () { hg(d, '_' + e.get('target')) }), p && v.on('click', function () { hg(p, '_' + e.get('subtarget')) }), (ct(f).eventData = ct(v).eventData = g ? { componentType: 'title', componentIndex: e.componentIndex } : null), a.add(f), c && a.add(v) var m = a.getBoundingRect(), y = e.getBoxLayoutParams() ;(y.width = m.width), (y.height = m.height) var _ = cr( y, { width: i.getWidth(), height: i.getHeight() }, e.get('padding') ) l || ((l = e.get('left') || e.get('right')), l === 'middle' && (l = 'center'), l === 'right' ? (_.x += _.width) : l === 'center' && (_.x += _.width / 2)), u || ((u = e.get('top') || e.get('bottom')), u === 'center' && (u = 'middle'), u === 'bottom' ? (_.y += _.height) : u === 'middle' && (_.y += _.height / 2), (u = u || 'top')), (a.x = _.x), (a.y = _.y), a.markRedraw() var S = { align: l, verticalAlign: u } f.setStyle(S), v.setStyle(S), (m = a.getBoundingRect()) var w = _.margin, x = e.getItemStyle(['color', 'opacity']) x.fill = e.get('backgroundColor') var b = new St({ shape: { x: m.x - w[3], y: m.y - w[0], width: m.width + w[1] + w[3], height: m.height + w[0] + w[2], r: e.get('borderRadius') }, style: x, subPixelOptimize: !0, silent: !0 }) a.add(b) } }), (t.type = 'title'), t ) })(xe) function iO(r) { r.registerComponentModel(rO), r.registerComponentView(nO) } var aO = function (r, t) { if (t === 'all') return { type: 'all', title: r.getLocaleModel().get(['legend', 'selector', 'all']) } if (t === 'inverse') return { type: 'inverse', title: r.getLocaleModel().get(['legend', 'selector', 'inverse']) } }, oO = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return ( (e.type = t.type), (e.layoutMode = { type: 'box', ignoreSize: !0 }), e ) } return ( (t.prototype.init = function (e, n, i) { this.mergeDefaultAndTheme(e, i), (e.selected = e.selected || {}), this._updateSelector(e) }), (t.prototype.mergeOption = function (e, n) { r.prototype.mergeOption.call(this, e, n), this._updateSelector(e) }), (t.prototype._updateSelector = function (e) { var n = e.selector, i = this.ecModel n === !0 && (n = e.selector = ['all', 'inverse']), z(n) && A(n, function (a, o) { W(a) && (a = { type: a }), (n[o] = nt(a, aO(i, a.type))) }) }), (t.prototype.optionUpdated = function () { this._updateData(this.ecModel) var e = this._data if (e[0] && this.get('selectedMode') === 'single') { for (var n = !1, i = 0; i < e.length; i++) { var a = e[i].get('name') if (this.isSelected(a)) { this.select(a), (n = !0) break } } !n && this.select(e[0].get('name')) } }), (t.prototype._updateData = function (e) { var n = [], i = [] e.eachRawSeries(function (s) { var l = s.name i.push(l) var u if (s.legendVisualProvider) { var f = s.legendVisualProvider, h = f.getAllNames() e.isSeriesFiltered(s) || (i = i.concat(h)), h.length ? (n = n.concat(h)) : (u = !0) } else u = !0 u && Au(s) && n.push(s.name) }), (this._availableNames = i) var a = this.get('data') || n, o = G( a, function (s) { return ( (W(s) || dt(s)) && (s = { name: s }), new Nt(s, this, this.ecModel) ) }, this ) this._data = o }), (t.prototype.getData = function () { return this._data }), (t.prototype.select = function (e) { var n = this.option.selected, i = this.get('selectedMode') if (i === 'single') { var a = this._data A(a, function (o) { n[o.get('name')] = !1 }) } n[e] = !0 }), (t.prototype.unSelect = function (e) { this.get('selectedMode') !== 'single' && (this.option.selected[e] = !1) }), (t.prototype.toggleSelected = function (e) { var n = this.option.selected n.hasOwnProperty(e) || (n[e] = !0), this[n[e] ? 'unSelect' : 'select'](e) }), (t.prototype.allSelect = function () { var e = this._data, n = this.option.selected A(e, function (i) { n[i.get('name', !0)] = !0 }) }), (t.prototype.inverseSelect = function () { var e = this._data, n = this.option.selected A(e, function (i) { var a = i.get('name', !0) n.hasOwnProperty(a) || (n[a] = !0), (n[a] = !n[a]) }) }), (t.prototype.isSelected = function (e) { var n = this.option.selected return ( !(n.hasOwnProperty(e) && !n[e]) && ot(this._availableNames, e) >= 0 ) }), (t.prototype.getOrient = function () { return this.get('orient') === 'vertical' ? { index: 1, name: 'vertical' } : { index: 0, name: 'horizontal' } }), (t.type = 'legend.plain'), (t.dependencies = ['series']), (t.defaultOption = { z: 4, show: !0, orient: 'horizontal', left: 'center', top: 0, align: 'auto', backgroundColor: 'rgba(0,0,0,0)', borderColor: '#ccc', borderRadius: 0, borderWidth: 0, padding: 5, itemGap: 10, itemWidth: 25, itemHeight: 14, symbolRotate: 'inherit', symbolKeepAspect: !0, inactiveColor: '#ccc', inactiveBorderColor: '#ccc', inactiveBorderWidth: 'auto', itemStyle: { color: 'inherit', opacity: 'inherit', borderColor: 'inherit', borderWidth: 'auto', borderCap: 'inherit', borderJoin: 'inherit', borderDashOffset: 'inherit', borderMiterLimit: 'inherit' }, lineStyle: { width: 'auto', color: 'inherit', inactiveColor: '#ccc', inactiveWidth: 2, opacity: 'inherit', type: 'inherit', cap: 'inherit', join: 'inherit', dashOffset: 'inherit', miterLimit: 'inherit' }, textStyle: { color: '#333' }, selectedMode: !0, selector: !1, selectorLabel: { show: !0, borderRadius: 10, padding: [3, 5, 3, 5], fontSize: 12, fontFamily: 'sans-serif', color: '#666', borderWidth: 1, borderColor: '#666' }, emphasis: { selectorLabel: { show: !0, color: '#eee', backgroundColor: '#666' } }, selectorPosition: 'auto', selectorItemGap: 7, selectorButtonGap: 10, tooltip: { show: !1 } }), t ) })(_t), Sv = oO, Ci = lt, xv = A, _l = At, sO = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), (e.newlineDisabled = !1), e } return ( (t.prototype.init = function () { this.group.add((this._contentGroup = new _l())), this.group.add((this._selectorGroup = new _l())), (this._isFirstRender = !0) }), (t.prototype.getContentGroup = function () { return this._contentGroup }), (t.prototype.getSelectorGroup = function () { return this._selectorGroup }), (t.prototype.render = function (e, n, i) { var a = this._isFirstRender if ( ((this._isFirstRender = !1), this.resetInner(), !!e.get('show', !0)) ) { var o = e.get('align'), s = e.get('orient') ;(!o || o === 'auto') && (o = e.get('left') === 'right' && s === 'vertical' ? 'right' : 'left') var l = e.get('selector', !0), u = e.get('selectorPosition', !0) l && (!u || u === 'auto') && (u = s === 'horizontal' ? 'end' : 'start'), this.renderInner(o, e, n, i, l, s, u) var f = e.getBoxLayoutParams(), h = { width: i.getWidth(), height: i.getHeight() }, c = e.get('padding'), v = cr(f, h, c), d = this.layoutInner(e, o, v, a, l, u), p = cr(j({ width: d.width, height: d.height }, f), h, c) ;(this.group.x = p.x - d.x), (this.group.y = p.y - d.y), this.group.markRedraw(), this.group.add((this._backgroundEl = s1(d, e))) } }), (t.prototype.resetInner = function () { this.getContentGroup().removeAll(), this._backgroundEl && this.group.remove(this._backgroundEl), this.getSelectorGroup().removeAll() }), (t.prototype.renderInner = function (e, n, i, a, o, s, l) { var u = this.getContentGroup(), f = q(), h = n.get('selectedMode'), c = [] i.eachRawSeries(function (v) { !v.get('legendHoverLink') && c.push(v.id) }), xv( n.getData(), function (v, d) { var p = v.get('name') if ( !this.newlineDisabled && (p === '' || p === ` `) ) { var g = new _l() ;(g.newline = !0), u.add(g) return } var m = i.getSeriesByName(p)[0] if (!f.get(p)) if (m) { var y = m.getData(), _ = y.getVisual('legendLineStyle') || {}, S = y.getVisual('legendIcon'), w = y.getVisual('style'), x = this._createItem(m, p, d, v, n, e, _, w, S, h, a) x .on('click', Ci(L1, p, null, a, c)) .on('mouseover', Ci(wv, m.name, null, a, c)) .on('mouseout', Ci(bv, m.name, null, a, c)), f.set(p, !0) } else i.eachRawSeries(function (b) { if (!f.get(p) && b.legendVisualProvider) { var T = b.legendVisualProvider if (!T.containName(p)) return var C = T.indexOfName(p), M = T.getItemVisual(C, 'style'), D = T.getItemVisual(C, 'legendIcon'), I = ir(M.fill) I && I[3] === 0 && ((I[3] = 0.2), (M = N(N({}, M), { fill: So(I, 'rgba') }))) var L = this._createItem(b, p, d, v, n, e, {}, M, D, h, a) L.on('click', Ci(L1, null, p, a, c)) .on('mouseover', Ci(wv, null, p, a, c)) .on('mouseout', Ci(bv, null, p, a, c)), f.set(p, !0) } }, this) }, this ), o && this._createSelector(o, n, a, s, l) }), (t.prototype._createSelector = function (e, n, i, a, o) { var s = this.getSelectorGroup() xv(e, function (u) { var f = u.type, h = new Et({ style: { x: 0, y: 0, align: 'center', verticalAlign: 'middle' }, onclick: function () { i.dispatchAction({ type: f === 'all' ? 'legendAllSelect' : 'legendInverseSelect' }) } }) s.add(h) var c = n.getModel('selectorLabel'), v = n.getModel(['emphasis', 'selectorLabel']) ha(h, { normal: c, emphasis: v }, { defaultText: u.title }), qo(h) }) }), (t.prototype._createItem = function (e, n, i, a, o, s, l, u, f, h, c) { var v = e.visualDrawType, d = o.get('itemWidth'), p = o.get('itemHeight'), g = o.isSelected(n), m = a.get('symbolRotate'), y = a.get('symbolKeepAspect'), _ = a.get('icon') f = _ || f || 'roundRect' var S = lO(f, a, l, u, v, g, c), w = new _l(), x = a.getModel('textStyle') if (Q(e.getLegendIcon) && (!_ || _ === 'inherit')) w.add( e.getLegendIcon({ itemWidth: d, itemHeight: p, icon: f, iconRotate: m, itemStyle: S.itemStyle, lineStyle: S.lineStyle, symbolKeepAspect: y }) ) else { var b = _ === 'inherit' && e.getData().getVisual('symbol') ? m === 'inherit' ? e.getData().getVisual('symbolRotate') : m : 0 w.add( uO({ itemWidth: d, itemHeight: p, icon: f, iconRotate: b, itemStyle: S.itemStyle, lineStyle: S.lineStyle, symbolKeepAspect: y }) ) } var T = s === 'left' ? d + 5 : -5, C = s, M = o.get('formatter'), D = n W(M) && M ? (D = M.replace('{name}', n != null ? n : '')) : Q(M) && (D = M(n)) var I = a.get('inactiveColor') w.add( new Et({ style: vr(x, { text: D, x: T, y: p / 2, fill: g ? x.getTextColor() : I, align: C, verticalAlign: 'middle' }) }) ) var L = new St({ shape: w.getBoundingRect(), invisible: !0 }), P = a.getModel('tooltip') return ( P.get('show') && fs({ el: L, componentModel: o, itemName: n, itemTooltipOption: P.option }), w.add(L), w.eachChild(function (R) { R.silent = !0 }), (L.silent = !h), this.getContentGroup().add(w), qo(w), (w.__legendDataIndex = i), w ) }), (t.prototype.layoutInner = function (e, n, i, a, o, s) { var l = this.getContentGroup(), u = this.getSelectorGroup() fi(e.get('orient'), l, e.get('itemGap'), i.width, i.height) var f = l.getBoundingRect(), h = [-f.x, -f.y] if ((u.markRedraw(), l.markRedraw(), o)) { fi('horizontal', u, e.get('selectorItemGap', !0)) var c = u.getBoundingRect(), v = [-c.x, -c.y], d = e.get('selectorButtonGap', !0), p = e.getOrient().index, g = p === 0 ? 'width' : 'height', m = p === 0 ? 'height' : 'width', y = p === 0 ? 'y' : 'x' s === 'end' ? (v[p] += f[g] + d) : (h[p] += c[g] + d), (v[1 - p] += f[m] / 2 - c[m] / 2), (u.x = v[0]), (u.y = v[1]), (l.x = h[0]), (l.y = h[1]) var _ = { x: 0, y: 0 } return ( (_[g] = f[g] + d + c[g]), (_[m] = Math.max(f[m], c[m])), (_[y] = Math.min(0, c[y] + v[1 - p])), _ ) } else return (l.x = h[0]), (l.y = h[1]), this.group.getBoundingRect() }), (t.prototype.remove = function () { this.getContentGroup().removeAll(), (this._isFirstRender = !0) }), (t.type = 'legend.plain'), t ) })(xe) function lO(r, t, e, n, i, a, o) { function s(g, m) { g.lineWidth === 'auto' && (g.lineWidth = m.lineWidth > 0 ? 2 : 0), xv(g, function (y, _) { g[_] === 'inherit' && (g[_] = m[_]) }) } var l = t.getModel('itemStyle'), u = l.getItemStyle(), f = r.lastIndexOf('empty', 0) === 0 ? 'fill' : 'stroke', h = l.getShallow('decal') ;(u.decal = !h || h === 'inherit' ? n.decal : Jf(h, o)), u.fill === 'inherit' && (u.fill = n[i]), u.stroke === 'inherit' && (u.stroke = n[f]), u.opacity === 'inherit' && (u.opacity = (i === 'fill' ? n : e).opacity), s(u, n) var c = t.getModel('lineStyle'), v = c.getLineStyle() if ( (s(v, e), u.fill === 'auto' && (u.fill = n.fill), u.stroke === 'auto' && (u.stroke = n.fill), v.stroke === 'auto' && (v.stroke = n.fill), !a) ) { var d = t.get('inactiveBorderWidth'), p = u[f] ;(u.lineWidth = d === 'auto' ? (n.lineWidth > 0 && p ? 2 : 0) : u.lineWidth), (u.fill = t.get('inactiveColor')), (u.stroke = t.get('inactiveBorderColor')), (v.stroke = c.get('inactiveColor')), (v.lineWidth = c.get('inactiveWidth')) } return { itemStyle: u, lineStyle: v } } function uO(r) { var t = r.icon || 'roundRect', e = Or( t, 0, 0, r.itemWidth, r.itemHeight, r.itemStyle.fill, r.symbolKeepAspect ) return ( e.setStyle(r.itemStyle), (e.rotation = ((r.iconRotate || 0) * Math.PI) / 180), e.setOrigin([r.itemWidth / 2, r.itemHeight / 2]), t.indexOf('empty') > -1 && ((e.style.stroke = e.style.fill), (e.style.fill = '#fff'), (e.style.lineWidth = 2)), e ) } function L1(r, t, e, n) { bv(r, t, e, n), e.dispatchAction({ type: 'legendToggleSelect', name: r != null ? r : t }), wv(r, t, e, n) } function P1(r) { for ( var t = r.getZr().storage.getDisplayList(), e, n = 0, i = t.length; n < i && !(e = t[n].states.emphasis); ) n++ return e && e.hoverLayer } function wv(r, t, e, n) { P1(e) || e.dispatchAction({ type: 'highlight', seriesName: r, name: t, excludeSeriesId: n }) } function bv(r, t, e, n) { P1(e) || e.dispatchAction({ type: 'downplay', seriesName: r, name: t, excludeSeriesId: n }) } var R1 = sO function fO(r) { var t = r.findComponents({ mainType: 'legend' }) t && t.length && r.filterSeries(function (e) { for (var n = 0; n < t.length; n++) if (!t[n].isSelected(e.name)) return !1 return !0 }) } function Qa(r, t, e) { var n = {}, i = r === 'toggleSelected', a return ( e.eachComponent('legend', function (o) { i && a != null ? o[a ? 'select' : 'unSelect'](t.name) : r === 'allSelect' || r === 'inverseSelect' ? o[r]() : (o[r](t.name), (a = o.isSelected(t.name))) var s = o.getData() A(s, function (l) { var u = l.get('name') if ( !( u === ` ` || u === '' ) ) { var f = o.isSelected(u) n.hasOwnProperty(u) ? (n[u] = n[u] && f) : (n[u] = f) } }) }), r === 'allSelect' || r === 'inverseSelect' ? { selected: n } : { name: t.name, selected: n } ) } function hO(r) { r.registerAction( 'legendToggleSelect', 'legendselectchanged', lt(Qa, 'toggleSelected') ), r.registerAction('legendAllSelect', 'legendselectall', lt(Qa, 'allSelect')), r.registerAction( 'legendInverseSelect', 'legendinverseselect', lt(Qa, 'inverseSelect') ), r.registerAction('legendSelect', 'legendselected', lt(Qa, 'select')), r.registerAction('legendUnSelect', 'legendunselected', lt(Qa, 'unSelect')) } function E1(r) { r.registerComponentModel(Sv), r.registerComponentView(R1), r.registerProcessor(r.PRIORITY.PROCESSOR.SERIES_FILTER, fO), r.registerSubTypeDefaulter('legend', function () { return 'plain' }), hO(r) } var vO = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.prototype.setScrollDataIndex = function (e) { this.option.scrollDataIndex = e }), (t.prototype.init = function (e, n, i) { var a = _a(e) r.prototype.init.call(this, e, n, i), O1(this, e, a) }), (t.prototype.mergeOption = function (e, n) { r.prototype.mergeOption.call(this, e, n), O1(this, this.option, e) }), (t.type = 'legend.scroll'), (t.defaultOption = cs(Sv.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 })), t ) })(Sv) function O1(r, t, e) { var n = r.getOrient(), i = [1, 1] ;(i[n.index] = 0), hi(t, e, { type: 'box', ignoreSize: !!i }) } var cO = vO, k1 = At, Tv = ['width', 'height'], Cv = ['x', 'y'], dO = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return ( (e.type = t.type), (e.newlineDisabled = !0), (e._currentIndex = 0), e ) } return ( (t.prototype.init = function () { r.prototype.init.call(this), this.group.add((this._containerGroup = new k1())), this._containerGroup.add(this.getContentGroup()), this.group.add((this._controllerGroup = new k1())) }), (t.prototype.resetInner = function () { r.prototype.resetInner.call(this), this._controllerGroup.removeAll(), this._containerGroup.removeClipPath(), (this._containerGroup.__rectSize = null) }), (t.prototype.renderInner = function (e, n, i, a, o, s, l) { var u = this r.prototype.renderInner.call(this, e, n, i, a, o, s, l) var f = this._controllerGroup, h = n.get('pageIconSize', !0), c = z(h) ? h : [h, h] d('pagePrev', 0) var v = n.getModel('pageTextStyle') f.add( new Et({ name: 'pageText', style: { text: 'xx/xx', fill: v.getTextColor(), font: v.getFont(), verticalAlign: 'middle', align: 'center' }, silent: !0 }) ), d('pageNext', 1) function d(p, g) { var m = p + 'DataIndex', y = us( n.get('pageIcons', !0)[n.getOrient().name][g], { onclick: X(u._pageGo, u, m, n, a) }, { x: -c[0] / 2, y: -c[1] / 2, width: c[0], height: c[1] } ) ;(y.name = p), f.add(y) } }), (t.prototype.layoutInner = function (e, n, i, a, o, s) { var l = this.getSelectorGroup(), u = e.getOrient().index, f = Tv[u], h = Cv[u], c = Tv[1 - u], v = Cv[1 - u] o && fi('horizontal', l, e.get('selectorItemGap', !0)) var d = e.get('selectorButtonGap', !0), p = l.getBoundingRect(), g = [-p.x, -p.y], m = tt(i) o && (m[f] = i[f] - p[f] - d) var y = this._layoutContentAndController(e, a, m, u, f, c, v, h) if (o) { if (s === 'end') g[u] += y[f] + d else { var _ = p[f] + d ;(g[u] -= _), (y[h] -= _) } ;(y[f] += p[f] + d), (g[1 - u] += y[v] + y[c] / 2 - p[c] / 2), (y[c] = Math.max(y[c], p[c])), (y[v] = Math.min(y[v], p[v] + g[1 - u])), (l.x = g[0]), (l.y = g[1]), l.markRedraw() } return y }), (t.prototype._layoutContentAndController = function ( e, n, i, a, o, s, l, u ) { var f = this.getContentGroup(), h = this._containerGroup, c = this._controllerGroup fi( e.get('orient'), f, e.get('itemGap'), a ? i.width : null, a ? null : i.height ), fi('horizontal', c, e.get('pageButtonItemGap', !0)) var v = f.getBoundingRect(), d = c.getBoundingRect(), p = (this._showController = v[o] > i[o]), g = [-v.x, -v.y] n || (g[a] = f[u]) var m = [0, 0], y = [-d.x, -d.y], _ = ht(e.get('pageButtonGap', !0), e.get('itemGap', !0)) if (p) { var S = e.get('pageButtonPosition', !0) S === 'end' ? (y[a] += i[o] - d[o]) : (m[a] += d[o] + _) } ;(y[1 - a] += v[s] / 2 - d[s] / 2), f.setPosition(g), h.setPosition(m), c.setPosition(y) var w = { x: 0, y: 0 } if ( ((w[o] = p ? i[o] : v[o]), (w[s] = Math.max(v[s], d[s])), (w[l] = Math.min(0, d[l] + y[1 - a])), (h.__rectSize = i[o]), p) ) { var x = { x: 0, y: 0 } ;(x[o] = Math.max(i[o] - d[o] - _, 0)), (x[s] = w[s]), h.setClipPath(new St({ shape: x })), (h.__rectSize = x[o]) } else c.eachChild(function (T) { T.attr({ invisible: !0, silent: !0 }) }) var b = this._getPageInfo(e) return ( b.pageIndex != null && kt( f, { x: b.contentPosition[0], y: b.contentPosition[1] }, p ? e : null ), this._updatePageInfoView(e, b), w ) }), (t.prototype._pageGo = function (e, n, i) { var a = this._getPageInfo(n)[e] a != null && i.dispatchAction({ type: 'legendScroll', scrollDataIndex: a, legendId: n.id }) }), (t.prototype._updatePageInfoView = function (e, n) { var i = this._controllerGroup A(['pagePrev', 'pageNext'], function (f) { var h = f + 'DataIndex', c = n[h] != null, v = i.childOfName(f) v && (v.setStyle( 'fill', c ? e.get('pageIconColor', !0) : e.get('pageIconInactiveColor', !0) ), (v.cursor = c ? 'pointer' : 'default')) }) var a = i.childOfName('pageText'), o = e.get('pageFormatter'), s = n.pageIndex, l = s != null ? s + 1 : 0, u = n.pageCount a && o && a.setStyle( 'text', W(o) ? o .replace('{current}', l == null ? '' : l + '') .replace('{total}', u == null ? '' : u + '') : o({ current: l, total: u }) ) }), (t.prototype._getPageInfo = function (e) { var n = e.get('scrollDataIndex', !0), i = this.getContentGroup(), a = this._containerGroup.__rectSize, o = e.getOrient().index, s = Tv[o], l = Cv[o], u = this._findTargetItemIndex(n), f = i.children(), h = f[u], c = f.length, v = c ? 1 : 0, d = { contentPosition: [i.x, i.y], pageCount: v, pageIndex: v - 1, pagePrevDataIndex: null, pageNextDataIndex: null } if (!h) return d var p = S(h) d.contentPosition[o] = -p.s for (var g = u + 1, m = p, y = p, _ = null; g <= c; ++g) (_ = S(f[g])), ((!_ && y.e > m.s + a) || (_ && !w(_, m.s))) && (y.i > m.i ? (m = y) : (m = _), m && (d.pageNextDataIndex == null && (d.pageNextDataIndex = m.i), ++d.pageCount)), (y = _) for (var g = u - 1, m = p, y = p, _ = null; g >= -1; --g) (_ = S(f[g])), (!_ || !w(y, _.s)) && m.i < y.i && ((y = m), d.pagePrevDataIndex == null && (d.pagePrevDataIndex = m.i), ++d.pageCount, ++d.pageIndex), (m = _) return d function S(x) { if (x) { var b = x.getBoundingRect(), T = b[l] + x[l] return { s: T, e: T + b[s], i: x.__legendDataIndex } } } function w(x, b) { return x.e >= b && x.s <= b + a } }), (t.prototype._findTargetItemIndex = function (e) { if (!this._showController) return 0 var n, i = this.getContentGroup(), a return ( i.eachChild(function (o, s) { var l = o.__legendDataIndex a == null && l != null && (a = s), l === e && (n = s) }), n != null ? n : a ) }), (t.type = 'legend.scroll'), t ) })(R1), pO = dO function gO(r) { r.registerAction('legendScroll', 'legendscroll', function (t, e) { var n = t.scrollDataIndex n != null && e.eachComponent( { mainType: 'legend', subType: 'scroll', query: t }, function (i) { i.setScrollDataIndex(n) } ) }) } function mO(r) { Re(E1), r.registerComponentModel(cO), r.registerComponentView(pO), gO(r) } function yO(r) { Re(E1), Re(mO) } var _O = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.type = 'dataZoom.inside'), (t.defaultOption = cs(Xa.defaultOption, { disabled: !1, zoomLock: !1, zoomOnMouseWheel: !0, moveOnMouseMove: !0, moveOnMouseWheel: !1, preventDefaultMouseMove: !0 })), t ) })(Xa), SO = _O, Av = wt() function xO(r, t, e) { Av(r).coordSysRecordMap.each(function (n) { var i = n.dataZoomInfoMap.get(t.uid) i && (i.getRange = e) }) } function wO(r, t) { for ( var e = Av(r).coordSysRecordMap, n = e.keys(), i = 0; i < n.length; i++ ) { var a = n[i], o = e.get(a), s = o.dataZoomInfoMap if (s) { var l = t.uid, u = s.get(l) u && (s.removeKey(l), s.keys().length || B1(e, o)) } } } function B1(r, t) { if (t) { r.removeKey(t.model.uid) var e = t.controller e && e.dispose() } } function bO(r, t) { var e = { model: t, containsPoint: lt(CO, t), dispatchAction: lt(TO, r), dataZoomInfoMap: null, controller: null }, n = (e.controller = new OP(r.getZr())) return ( A(['pan', 'zoom', 'scrollMove'], function (i) { n.on(i, function (a) { var o = [] e.dataZoomInfoMap.each(function (s) { if (!!a.isAvailableBehavior(s.model.option)) { var l = (s.getRange || {})[i], u = l && l(s.dzReferCoordSysInfo, e.model.mainType, e.controller, a) !s.model.get('disabled', !0) && u && o.push({ dataZoomId: s.model.id, start: u[0], end: u[1] }) } }), o.length && e.dispatchAction(o) }) }), e ) } function TO(r, t) { r.isDisposed() || r.dispatchAction({ type: 'dataZoom', animation: { easing: 'cubicOut', duration: 100 }, batch: t }) } function CO(r, t, e, n) { return r.coordinateSystem.containPoint([e, n]) } function AO(r) { var t, e = 'type_', n = { type_true: 2, type_move: 1, type_false: 0, type_undefined: -1 }, i = !0 return ( r.each(function (a) { var o = a.model, s = o.get('disabled', !0) ? !1 : o.get('zoomLock', !0) ? 'move' : !0 n[e + s] > n[e + t] && (t = s), (i = i && o.get('preventDefaultMouseMove', !0)) }), { controlType: t, opt: { zoomOnMouseWheel: !0, moveOnMouseMove: !0, moveOnMouseWheel: !0, preventDefaultMouseMove: !!i } } ) } function MO(r) { r.registerProcessor(r.PRIORITY.PROCESSOR.FILTER, function (t, e) { var n = Av(e), i = n.coordSysRecordMap || (n.coordSysRecordMap = q()) i.each(function (a) { a.dataZoomInfoMap = null }), t.eachComponent( { mainType: 'dataZoom', subType: 'inside' }, function (a) { var o = e1(a) A(o.infoList, function (s) { var l = s.model.uid, u = i.get(l) || i.set(l, bO(e, s.model)), f = u.dataZoomInfoMap || (u.dataZoomInfoMap = q()) f.set(a.uid, { dzReferCoordSysInfo: s, model: a, getRange: null }) }) } ), i.each(function (a) { var o = a.controller, s, l = a.dataZoomInfoMap if (l) { var u = l.keys()[0] u != null && (s = l.get(u)) } if (!s) { B1(i, a) return } var f = AO(l) o.enable(f.controlType, f.opt), o.setPointerChecker(a.containsPoint), Os(a, 'dispatchAction', s.model.get('throttle', !0), 'fixRate') }) }) } var DO = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = 'dataZoom.inside'), e } return ( (t.prototype.render = function (e, n, i) { if ((r.prototype.render.apply(this, arguments), e.noTarget())) { this._clear() return } ;(this.range = e.getPercentRange()), xO(i, e, { pan: X(Mv.pan, this), zoom: X(Mv.zoom, this), scrollMove: X(Mv.scrollMove, this) }) }), (t.prototype.dispose = function () { this._clear(), r.prototype.dispose.apply(this, arguments) }), (t.prototype._clear = function () { wO(this.api, this.dataZoomModel), (this.range = null) }), (t.type = 'dataZoom.inside'), t ) })(hv), Mv = { zoom: function (r, t, e, n) { var i = this.range, a = i.slice(), o = r.axisModels[0] if (!!o) { var s = Dv[t](null, [n.originX, n.originY], o, e, r), l = ((s.signal > 0 ? s.pixelStart + s.pixelLength - s.pixel : s.pixel - s.pixelStart) / s.pixelLength) * (a[1] - a[0]) + a[0], u = Math.max(1 / n.scale, 0) ;(a[0] = (a[0] - l) * u + l), (a[1] = (a[1] - l) * u + l) var f = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan() if ( (Za(0, a, [0, 100], 0, f.minSpan, f.maxSpan), (this.range = a), i[0] !== a[0] || i[1] !== a[1]) ) return a } }, pan: N1(function (r, t, e, n, i, a) { var o = Dv[n]([a.oldX, a.oldY], [a.newX, a.newY], t, i, e) return (o.signal * (r[1] - r[0]) * o.pixel) / o.pixelLength }), scrollMove: N1(function (r, t, e, n, i, a) { var o = Dv[n]([0, 0], [a.scrollDelta, a.scrollDelta], t, i, e) return o.signal * (r[1] - r[0]) * a.scrollDelta }) } function N1(r) { return function (t, e, n, i) { var a = this.range, o = a.slice(), s = t.axisModels[0] if (!!s) { var l = r(o, s, t, e, n, i) if ( (Za(l, o, [0, 100], 'all'), (this.range = o), a[0] !== o[0] || a[1] !== o[1]) ) return o } } } var Dv = { grid: function (r, t, e, n, i) { var a = e.axis, o = {}, s = i.model.coordinateSystem.getRect() return ( (r = r || [0, 0]), a.dim === 'x' ? ((o.pixel = t[0] - r[0]), (o.pixelLength = s.width), (o.pixelStart = s.x), (o.signal = a.inverse ? 1 : -1)) : ((o.pixel = t[1] - r[1]), (o.pixelLength = s.height), (o.pixelStart = s.y), (o.signal = a.inverse ? -1 : 1)), o ) }, polar: function (r, t, e, n, i) { var a = e.axis, o = {}, s = i.model.coordinateSystem, l = s.getRadiusAxis().getExtent(), u = s.getAngleAxis().getExtent() return ( (r = r ? s.pointToCoord(r) : [0, 0]), (t = s.pointToCoord(t)), e.mainType === 'radiusAxis' ? ((o.pixel = t[0] - r[0]), (o.pixelLength = l[1] - l[0]), (o.pixelStart = l[0]), (o.signal = a.inverse ? 1 : -1)) : ((o.pixel = t[1] - r[1]), (o.pixelLength = u[1] - u[0]), (o.pixelStart = u[0]), (o.signal = a.inverse ? -1 : 1)), o ) }, singleAxis: function (r, t, e, n, i) { var a = e.axis, o = i.model.coordinateSystem.getRect(), s = {} return ( (r = r || [0, 0]), a.orient === 'horizontal' ? ((s.pixel = t[0] - r[0]), (s.pixelLength = o.width), (s.pixelStart = o.x), (s.signal = a.inverse ? 1 : -1)) : ((s.pixel = t[1] - r[1]), (s.pixelLength = o.height), (s.pixelStart = o.y), (s.signal = a.inverse ? -1 : 1)), s ) } }, IO = DO function LO(r) { vv(r), r.registerComponentModel(SO), r.registerComponentView(IO), MO(r) } var PO = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), e } return ( (t.type = 'dataZoom.slider'), (t.layoutMode = 'box'), (t.defaultOption = cs(Xa.defaultOption, { show: !0, right: 'ph', top: 'ph', width: 'ph', height: 'ph', left: null, bottom: null, borderColor: '#d2dbee', borderRadius: 3, backgroundColor: 'rgba(47,69,84,0)', dataBackground: { lineStyle: { color: '#d2dbee', width: 0.5 }, areaStyle: { color: '#d2dbee', opacity: 0.2 } }, selectedDataBackground: { lineStyle: { color: '#8fb0f7', width: 0.5 }, areaStyle: { color: '#8fb0f7', opacity: 0.2 } }, fillerColor: 'rgba(135,175,274,0.2)', handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z', handleSize: '100%', handleStyle: { color: '#fff', borderColor: '#ACB8D1' }, moveHandleSize: 7, moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z', moveHandleStyle: { color: '#D2DBEE', opacity: 0.7 }, showDetail: !0, showDataShadow: 'auto', realtime: !0, zoomLock: !1, textStyle: { color: '#6E7079' }, brushSelect: !0, brushStyle: { color: 'rgba(135,175,274,0.15)' }, emphasis: { handleStyle: { borderColor: '#8FB0F7' }, moveHandleStyle: { color: '#8FB0F7' } } })), t ) })(Xa), RO = PO, Ja = St, F1 = 7, EO = 1, Iv = 30, OO = 7, ja = 'horizontal', z1 = 'vertical', kO = 5, BO = ['line', 'bar', 'candlestick', 'scatter'], NO = { easing: 'cubicOut', duration: 100, delay: 0 }, FO = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = t.type), (e._displayables = {}), e } return ( (t.prototype.init = function (e, n) { ;(this.api = n), (this._onBrush = X(this._onBrush, this)), (this._onBrushEnd = X(this._onBrushEnd, this)) }), (t.prototype.render = function (e, n, i, a) { if ( (r.prototype.render.apply(this, arguments), Os(this, '_dispatchZoomAction', e.get('throttle'), 'fixRate'), (this._orient = e.getOrient()), e.get('show') === !1) ) { this.group.removeAll() return } if (e.noTarget()) { this._clear(), this.group.removeAll() return } ;(!a || a.type !== 'dataZoom' || a.from !== this.uid) && this._buildView(), this._updateView() }), (t.prototype.dispose = function () { this._clear(), r.prototype.dispose.apply(this, arguments) }), (t.prototype._clear = function () { ks(this, '_dispatchZoomAction') var e = this.api.getZr() e.off('mousemove', this._onBrush), e.off('mouseup', this._onBrushEnd) }), (t.prototype._buildView = function () { var e = this.group e.removeAll(), (this._brushing = !1), (this._displayables.brushRect = null), this._resetLocation(), this._resetInterval() var n = (this._displayables.sliderGroup = new At()) this._renderBackground(), this._renderHandle(), this._renderDataShadow(), e.add(n), this._positionGroup() }), (t.prototype._resetLocation = function () { var e = this.dataZoomModel, n = this.api, i = e.get('brushSelect'), a = i ? OO : 0, o = this._findCoordRect(), s = { width: n.getWidth(), height: n.getHeight() }, l = this._orient === ja ? { right: s.width - o.x - o.width, top: s.height - Iv - F1 - a, width: o.width, height: Iv } : { right: F1, top: o.y, width: Iv, height: o.height }, u = _a(e.option) A(['right', 'top', 'width', 'height'], function (h) { u[h] === 'ph' && (u[h] = l[h]) }) var f = cr(u, s) ;(this._location = { x: f.x, y: f.y }), (this._size = [f.width, f.height]), this._orient === z1 && this._size.reverse() }), (t.prototype._positionGroup = function () { var e = this.group, n = this._location, i = this._orient, a = this.dataZoomModel.getFirstTargetAxisModel(), o = a && a.get('inverse'), s = this._displayables.sliderGroup, l = (this._dataShadowInfo || {}).otherAxisInverse s.attr( i === ja && !o ? { scaleY: l ? 1 : -1, scaleX: 1 } : i === ja && o ? { scaleY: l ? 1 : -1, scaleX: -1 } : i === z1 && !o ? { scaleY: l ? -1 : 1, scaleX: 1, rotation: Math.PI / 2 } : { scaleY: l ? -1 : 1, scaleX: -1, rotation: Math.PI / 2 } ) var u = e.getBoundingRect([s]) ;(e.x = n.x - u.x), (e.y = n.y - u.y), e.markRedraw() }), (t.prototype._getViewExtent = function () { return [0, this._size[0]] }), (t.prototype._renderBackground = function () { var e = this.dataZoomModel, n = this._size, i = this._displayables.sliderGroup, a = e.get('brushSelect') i.add( new Ja({ silent: !0, shape: { x: 0, y: 0, width: n[0], height: n[1] }, style: { fill: e.get('backgroundColor') }, z2: -40 }) ) var o = new Ja({ shape: { x: 0, y: 0, width: n[0], height: n[1] }, style: { fill: 'transparent' }, z2: 0, onclick: X(this._onClickPanel, this) }), s = this.api.getZr() a ? (o.on('mousedown', this._onBrushStart, this), (o.cursor = 'crosshair'), s.on('mousemove', this._onBrush), s.on('mouseup', this._onBrushEnd)) : (s.off('mousemove', this._onBrush), s.off('mouseup', this._onBrushEnd)), i.add(o) }), (t.prototype._renderDataShadow = function () { var e = (this._dataShadowInfo = this._prepareDataShadowInfo()) if (((this._displayables.dataShadowSegs = []), !e)) return var n = this._size, i = this._shadowSize || [], a = e.series, o = a.getRawData(), s = a.getShadowDim ? a.getShadowDim() : e.otherDim if (s == null) return var l = this._shadowPolygonPts, u = this._shadowPolylinePts if ( o !== this._shadowData || s !== this._shadowDim || n[0] !== i[0] || n[1] !== i[1] ) { var f = o.getDataExtent(s), h = (f[1] - f[0]) * 0.3 f = [f[0] - h, f[1] + h] var c = [0, n[1]], v = [0, n[0]], d = [ [n[0], 0], [0, 0] ], p = [], g = v[1] / (o.count() - 1), m = 0, y = Math.round(o.count() / n[0]), _ o.each([s], function (T, C) { if (y > 0 && C % y) { m += g return } var M = T == null || isNaN(T) || T === '', D = M ? 0 : Bt(T, f, c, !0) M && !_ && C ? (d.push([d[d.length - 1][0], 0]), p.push([p[p.length - 1][0], 0])) : !M && _ && (d.push([m, 0]), p.push([m, 0])), d.push([m, D]), p.push([m, D]), (m += g), (_ = M) }), (l = this._shadowPolygonPts = d), (u = this._shadowPolylinePts = p) } ;(this._shadowData = o), (this._shadowDim = s), (this._shadowSize = [n[0], n[1]]) var S = this.dataZoomModel function w(T) { var C = S.getModel(T ? 'selectedDataBackground' : 'dataBackground'), M = new At(), D = new ua({ shape: { points: l }, segmentIgnoreThreshold: 1, style: C.getModel('areaStyle').getAreaStyle(), silent: !0, z2: -20 }), I = new ai({ shape: { points: u }, segmentIgnoreThreshold: 1, style: C.getModel('lineStyle').getLineStyle(), silent: !0, z2: -19 }) return M.add(D), M.add(I), M } for (var x = 0; x < 3; x++) { var b = w(x === 1) this._displayables.sliderGroup.add(b), this._displayables.dataShadowSegs.push(b) } }), (t.prototype._prepareDataShadowInfo = function () { var e = this.dataZoomModel, n = e.get('showDataShadow') if (n !== !1) { var i, a = this.ecModel return ( e.eachTargetAxis(function (o, s) { var l = e.getAxisProxy(o, s).getTargetSeriesModels() A( l, function (u) { if (!i && !(n !== !0 && ot(BO, u.get('type')) < 0)) { var f = a.getComponent(Gr(o), s).axis, h = zO(o), c, v = u.coordinateSystem h != null && v.getOtherAxis && (c = v.getOtherAxis(f).inverse), (h = u.getData().mapDimension(h)), (i = { thisAxis: f, series: u, thisDim: o, otherDim: h, otherAxisInverse: c }) } }, this ) }, this), i ) } }), (t.prototype._renderHandle = function () { var e = this.group, n = this._displayables, i = (n.handles = [null, null]), a = (n.handleLabels = [null, null]), o = this._displayables.sliderGroup, s = this._size, l = this.dataZoomModel, u = this.api, f = l.get('borderRadius') || 0, h = l.get('brushSelect'), c = (n.filler = new Ja({ silent: h, style: { fill: l.get('fillerColor') }, textConfig: { position: 'inside' } })) o.add(c), o.add( new Ja({ silent: !0, subPixelOptimize: !0, shape: { x: 0, y: 0, width: s[0], height: s[1], r: f }, style: { stroke: l.get('dataBackgroundColor') || l.get('borderColor'), lineWidth: EO, fill: 'rgba(0,0,0,0)' } }) ), A( [0, 1], function (_) { var S = l.get('handleIcon') !zs[S] && S.indexOf('path://') < 0 && S.indexOf('image://') < 0 && (S = 'path://' + S) var w = Or(S, -1, 0, 2, 2, null, !0) w.attr({ cursor: V1(this._orient), draggable: !0, drift: X(this._onDragMove, this, _), ondragend: X(this._onDragEnd, this), onmouseover: X(this._showDataInfo, this, !0), onmouseout: X(this._showDataInfo, this, !1), z2: 5 }) var x = w.getBoundingRect(), b = l.get('handleSize') ;(this._handleHeight = yt(b, this._size[1])), (this._handleWidth = (x.width / x.height) * this._handleHeight), w.setStyle(l.getModel('handleStyle').getItemStyle()), (w.style.strokeNoScale = !0), (w.rectHover = !0), (w.ensureState('emphasis').style = l .getModel(['emphasis', 'handleStyle']) .getItemStyle()), qo(w) var T = l.get('handleColor') T != null && (w.style.fill = T), o.add((i[_] = w)) var C = l.getModel('textStyle') e.add( (a[_] = new Et({ silent: !0, invisible: !0, style: vr(C, { x: 0, y: 0, text: '', verticalAlign: 'middle', align: 'center', fill: C.getTextColor(), font: C.getFont() }), z2: 10 })) ) }, this ) var v = c if (h) { var d = yt(l.get('moveHandleSize'), s[1]), p = (n.moveHandle = new St({ style: l.getModel('moveHandleStyle').getItemStyle(), silent: !0, shape: { r: [0, 0, 2, 2], y: s[1] - 0.5, height: d } })), g = d * 0.8, m = (n.moveHandleIcon = Or( l.get('moveHandleIcon'), -g / 2, -g / 2, g, g, '#fff', !0 )) ;(m.silent = !0), (m.y = s[1] + d / 2 - 0.5), (p.ensureState('emphasis').style = l .getModel(['emphasis', 'moveHandleStyle']) .getItemStyle()) var y = Math.min(s[1] / 2, Math.max(d, 10)) ;(v = n.moveZone = new St({ invisible: !0, shape: { y: s[1] - y, height: d + y } })), v .on('mouseover', function () { u.enterEmphasis(p) }) .on('mouseout', function () { u.leaveEmphasis(p) }), o.add(p), o.add(m), o.add(v) } v.attr({ draggable: !0, cursor: V1(this._orient), drift: X(this._onDragMove, this, 'all'), ondragstart: X(this._showDataInfo, this, !0), ondragend: X(this._onDragEnd, this), onmouseover: X(this._showDataInfo, this, !0), onmouseout: X(this._showDataInfo, this, !1) }) }), (t.prototype._resetInterval = function () { var e = (this._range = this.dataZoomModel.getPercentRange()), n = this._getViewExtent() this._handleEnds = [ Bt(e[0], [0, 100], n, !0), Bt(e[1], [0, 100], n, !0) ] }), (t.prototype._updateInterval = function (e, n) { var i = this.dataZoomModel, a = this._handleEnds, o = this._getViewExtent(), s = i.findRepresentativeAxisProxy().getMinMaxSpan(), l = [0, 100] Za( n, a, o, i.get('zoomLock') ? 'all' : e, s.minSpan != null ? Bt(s.minSpan, l, o, !0) : null, s.maxSpan != null ? Bt(s.maxSpan, l, o, !0) : null ) var u = this._range, f = (this._range = Xi([Bt(a[0], o, l, !0), Bt(a[1], o, l, !0)])) return !u || u[0] !== f[0] || u[1] !== f[1] }), (t.prototype._updateView = function (e) { var n = this._displayables, i = this._handleEnds, a = Xi(i.slice()), o = this._size A( [0, 1], function (v) { var d = n.handles[v], p = this._handleHeight d.attr({ scaleX: p / 2, scaleY: p / 2, x: i[v] + (v ? -1 : 1), y: o[1] / 2 - p / 2 }) }, this ), n.filler.setShape({ x: a[0], y: 0, width: a[1] - a[0], height: o[1] }) var s = { x: a[0], width: a[1] - a[0] } n.moveHandle && (n.moveHandle.setShape(s), n.moveZone.setShape(s), n.moveZone.getBoundingRect(), n.moveHandleIcon && n.moveHandleIcon.attr('x', s.x + s.width / 2)) for ( var l = n.dataShadowSegs, u = [0, a[0], a[1], o[0]], f = 0; f < l.length; f++ ) { var h = l[f], c = h.getClipPath() c || ((c = new St()), h.setClipPath(c)), c.setShape({ x: u[f], y: 0, width: u[f + 1] - u[f], height: o[1] }) } this._updateDataInfo(e) }), (t.prototype._updateDataInfo = function (e) { var n = this.dataZoomModel, i = this._displayables, a = i.handleLabels, o = this._orient, s = ['', ''] if (n.get('showDetail')) { var l = n.findRepresentativeAxisProxy() if (l) { var u = l.getAxisModel().axis, f = this._range, h = e ? l.calculateDataWindow({ start: f[0], end: f[1] }).valueWindow : l.getDataValueWindow() s = [this._formatLabel(h[0], u), this._formatLabel(h[1], u)] } } var c = Xi(this._handleEnds.slice()) v.call(this, 0), v.call(this, 1) function v(d) { var p = ls(i.handles[d].parent, this.group), g = hf(d === 0 ? 'right' : 'left', p), m = this._handleWidth / 2 + kO, y = fa([c[d] + (d === 0 ? -m : m), this._size[1] / 2], p) a[d].setStyle({ x: y[0], y: y[1], verticalAlign: o === ja ? 'middle' : g, align: o === ja ? g : 'center', text: s[d] }) } }), (t.prototype._formatLabel = function (e, n) { var i = this.dataZoomModel, a = i.get('labelFormatter'), o = i.get('labelPrecision') ;(o == null || o === 'auto') && (o = n.getPixelPrecision()) var s = e == null || isNaN(e) ? '' : n.type === 'category' || n.type === 'time' ? n.scale.getLabel({ value: Math.round(e) }) : e.toFixed(Math.min(o, 20)) return Q(a) ? a(e, s) : W(a) ? a.replace('{value}', s) : s }), (t.prototype._showDataInfo = function (e) { e = this._dragging || e var n = this._displayables, i = n.handleLabels i[0].attr('invisible', !e), i[1].attr('invisible', !e), n.moveHandle && this.api[e ? 'enterEmphasis' : 'leaveEmphasis'](n.moveHandle, 1) }), (t.prototype._onDragMove = function (e, n, i, a) { ;(this._dragging = !0), Hn(a.event) var o = this._displayables.sliderGroup.getLocalTransform(), s = fa([n, i], o, !0), l = this._updateInterval(e, s[0]), u = this.dataZoomModel.get('realtime') this._updateView(!u), l && u && this._dispatchZoomAction(!0) }), (t.prototype._onDragEnd = function () { ;(this._dragging = !1), this._showDataInfo(!1) var e = this.dataZoomModel.get('realtime') !e && this._dispatchZoomAction(!1) }), (t.prototype._onClickPanel = function (e) { var n = this._size, i = this._displayables.sliderGroup.transformCoordToLocal( e.offsetX, e.offsetY ) if (!(i[0] < 0 || i[0] > n[0] || i[1] < 0 || i[1] > n[1])) { var a = this._handleEnds, o = (a[0] + a[1]) / 2, s = this._updateInterval('all', i[0] - o) this._updateView(), s && this._dispatchZoomAction(!1) } }), (t.prototype._onBrushStart = function (e) { var n = e.offsetX, i = e.offsetY ;(this._brushStart = new Z(n, i)), (this._brushing = !0), (this._brushStartTime = +new Date()) }), (t.prototype._onBrushEnd = function (e) { if (!!this._brushing) { var n = this._displayables.brushRect if (((this._brushing = !1), !!n)) { n.attr('ignore', !0) var i = n.shape, a = +new Date() if (!(a - this._brushStartTime < 200 && Math.abs(i.width) < 5)) { var o = this._getViewExtent(), s = [0, 100] ;(this._range = Xi([ Bt(i.x, o, s, !0), Bt(i.x + i.width, o, s, !0) ])), (this._handleEnds = [i.x, i.x + i.width]), this._updateView(), this._dispatchZoomAction(!1) } } } }), (t.prototype._onBrush = function (e) { this._brushing && (Hn(e.event), this._updateBrushRect(e.offsetX, e.offsetY)) }), (t.prototype._updateBrushRect = function (e, n) { var i = this._displayables, a = this.dataZoomModel, o = i.brushRect o || ((o = i.brushRect = new Ja({ silent: !0, style: a.getModel('brushStyle').getItemStyle() })), i.sliderGroup.add(o)), o.attr('ignore', !1) var s = this._brushStart, l = this._displayables.sliderGroup, u = l.transformCoordToLocal(e, n), f = l.transformCoordToLocal(s.x, s.y), h = this._size ;(u[0] = Math.max(Math.min(h[0], u[0]), 0)), o.setShape({ x: f[0], y: 0, width: u[0] - f[0], height: h[1] }) }), (t.prototype._dispatchZoomAction = function (e) { var n = this._range this.api.dispatchAction({ type: 'dataZoom', from: this.uid, dataZoomId: this.dataZoomModel.id, animation: e ? NO : null, start: n[0], end: n[1] }) }), (t.prototype._findCoordRect = function () { var e, n = e1(this.dataZoomModel).infoList if (!e && n.length) { var i = n[0].model.coordinateSystem e = i.getRect && i.getRect() } if (!e) { var a = this.api.getWidth(), o = this.api.getHeight() e = { x: a * 0.2, y: o * 0.2, width: a * 0.6, height: o * 0.6 } } return e }), (t.type = 'dataZoom.slider'), t ) })(hv) function zO(r) { var t = { x: 'y', y: 'x', radius: 'angle', angle: 'radius' } return t[r] } function V1(r) { return r === 'vertical' ? 'ns-resize' : 'ew-resize' } var VO = FO function GO(r) { r.registerComponentModel(RO), r.registerComponentView(VO), vv(r) } function HO(r) { Re(LO), Re(GO) } var G1 = { value: 'eq', '<': 'lt', '<=': 'lte', '>': 'gt', '>=': 'gte', '=': 'eq', '!=': 'ne', '<>': 'ne' }, WO = (function () { function r(t) { var e = (this._condVal = W(t) ? new RegExp(t) : Mx(t) ? t : null) if (e == null) { var n = '' ut(n) } } return ( (r.prototype.evaluate = function (t) { var e = typeof t return W(e) ? this._condVal.test(t) : dt(e) ? this._condVal.test(t + '') : !1 }), r ) })(), UO = (function () { function r() {} return ( (r.prototype.evaluate = function () { return this.value }), r ) })(), YO = (function () { function r() {} return ( (r.prototype.evaluate = function () { for (var t = this.children, e = 0; e < t.length; e++) if (!t[e].evaluate()) return !1 return !0 }), r ) })(), ZO = (function () { function r() {} return ( (r.prototype.evaluate = function () { for (var t = this.children, e = 0; e < t.length; e++) if (t[e].evaluate()) return !0 return !1 }), r ) })(), $O = (function () { function r() {} return ( (r.prototype.evaluate = function () { return !this.child.evaluate() }), r ) })(), XO = (function () { function r() {} return ( (r.prototype.evaluate = function () { for ( var t = !!this.valueParser, e = this.getValue, n = e(this.valueGetterParam), i = t ? this.valueParser(n) : null, a = 0; a < this.subCondList.length; a++ ) if (!this.subCondList[a].evaluate(t ? i : n)) return !1 return !0 }), r ) })() function Lv(r, t) { if (r === !0 || r === !1) { var e = new UO() return (e.value = r), e } var n = '' return ( W1(r) || ut(n), r.and ? H1('and', r, t) : r.or ? H1('or', r, t) : r.not ? qO(r, t) : KO(r, t) ) } function H1(r, t, e) { var n = t[r], i = '' z(n) || ut(i), n.length || ut(i) var a = r === 'and' ? new YO() : new ZO() return ( (a.children = G(n, function (o) { return Lv(o, e) })), a.children.length || ut(i), a ) } function qO(r, t) { var e = r.not, n = '' W1(e) || ut(n) var i = new $O() return (i.child = Lv(e, t)), i.child || ut(n), i } function KO(r, t) { for ( var e = '', n = t.prepareGetValue(r), i = [], a = xt(r), o = r.parser, s = o ? Xg(o) : null, l = 0; l < a.length; l++ ) { var u = a[l] if (!(u === 'parser' || t.valueGetterAttrMap.get(u))) { var f = nr(G1, u) ? G1[u] : u, h = r[u], c = s ? s(h) : h, v = eM(f, c) || (f === 'reg' && new WO(c)) v || ut(e), i.push(v) } } i.length || ut(e) var d = new XO() return ( (d.valueGetterParam = n), (d.valueParser = s), (d.getValue = t.getValue), (d.subCondList = i), d ) } function W1(r) { return Y(r) && !Zt(r) } var QO = (function () { function r(t, e) { this._cond = Lv(t, e) } return ( (r.prototype.evaluate = function () { return this._cond.evaluate() }), r ) })() function JO(r, t) { return new QO(r, t) } var jO = { type: 'echarts:filter', transform: function (r) { for ( var t = r.upstream, e, n = JO(r.config, { valueGetterAttrMap: q({ dimension: !0 }), prepareGetValue: function (s) { var l = '', u = s.dimension nr(s, 'dimension') || ut(l) var f = t.getDimensionInfo(u) return f || ut(l), { dimIdx: f.index } }, getValue: function (s) { return t.retrieveValueFromItem(e, s.dimIdx) } }), i = [], a = 0, o = t.count(); a < o; a++ ) (e = t.getRawDataItem(a)), n.evaluate() && i.push(e) return { data: i } } }, tk = { type: 'echarts:sort', transform: function (r) { var t = r.upstream, e = r.config, n = '', i = Mt(e) i.length || ut(n) var a = [] A(i, function (f) { var h = f.dimension, c = f.order, v = f.parser, d = f.incomparable if ( (h == null && ut(n), c !== 'asc' && c !== 'desc' && ut(n), d && d !== 'min' && d !== 'max') ) { var p = '' ut(p) } if (c !== 'asc' && c !== 'desc') { var g = '' ut(g) } var m = t.getDimensionInfo(h) m || ut(n) var y = v ? Xg(v) : null v && !y && ut(n), a.push({ dimIdx: m.index, parser: y, comparator: new Kg(c, d) }) }) var o = t.sourceFormat o !== Kt && o !== _e && ut(n) for (var s = [], l = 0, u = t.count(); l < u; l++) s.push(t.getRawDataItem(l)) return ( s.sort(function (f, h) { for (var c = 0; c < a.length; c++) { var v = a[c], d = t.retrieveValueFromItem(f, v.dimIdx), p = t.retrieveValueFromItem(h, v.dimIdx) v.parser && ((d = v.parser(d)), (p = v.parser(p))) var g = v.comparator.evaluate(d, p) if (g !== 0) return g } return 0 }), { data: s } ) } } function ek(r) { r.registerTransform(jO), r.registerTransform(tk) } var rk = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = 'dataset'), e } return ( (t.prototype.init = function (e, n, i) { r.prototype.init.call(this, e, n, i), (this._sourceManager = new rm(this)), nm(this) }), (t.prototype.mergeOption = function (e, n) { r.prototype.mergeOption.call(this, e, n), nm(this) }), (t.prototype.optionUpdated = function () { this._sourceManager.dirty() }), (t.prototype.getSourceManager = function () { return this._sourceManager }), (t.type = 'dataset'), (t.defaultOption = { seriesLayoutBy: Ke }), t ) })(_t), nk = (function (r) { B(t, r) function t() { var e = (r !== null && r.apply(this, arguments)) || this return (e.type = 'dataset'), e } return (t.type = 'dataset'), t })(xe) function ik(r) { r.registerComponentModel(rk), r.registerComponentView(nk) } var er = ur.CMD function Ai(r, t) { return Math.abs(r - t) < 1e-5 } function Pv(r) { var t = r.data, e = r.len(), n = [], i, a = 0, o = 0, s = 0, l = 0 function u(L, P) { i && i.length > 2 && n.push(i), (i = [L, P]) } function f(L, P, R, O) { ;(Ai(L, R) && Ai(P, O)) || i.push(L, P, R, O, R, O) } function h(L, P, R, O, U, k) { var F = Math.abs(P - L), H = (Math.tan(F / 4) * 4) / 3, $ = P < L ? -1 : 1, J = Math.cos(L), et = Math.sin(L), ft = Math.cos(P), Ct = Math.sin(P), mt = J * U + R, zt = et * k + O, Vt = ft * U + R, It = Ct * k + O, bt = U * H * $, K = k * H * $ i.push(mt - bt * et, zt + K * J, Vt + bt * Ct, It - K * ft, Vt, It) } for (var c, v, d, p, g = 0; g < e; ) { var m = t[g++], y = g === 1 switch ( (y && ((a = t[g]), (o = t[g + 1]), (s = a), (l = o), (m === er.L || m === er.C || m === er.Q) && (i = [s, l])), m) ) { case er.M: ;(a = s = t[g++]), (o = l = t[g++]), u(s, l) break case er.L: ;(c = t[g++]), (v = t[g++]), f(a, o, c, v), (a = c), (o = v) break case er.C: i.push(t[g++], t[g++], t[g++], t[g++], (a = t[g++]), (o = t[g++])) break case er.Q: ;(c = t[g++]), (v = t[g++]), (d = t[g++]), (p = t[g++]), i.push( a + (2 / 3) * (c - a), o + (2 / 3) * (v - o), d + (2 / 3) * (c - d), p + (2 / 3) * (v - p), d, p ), (a = d), (o = p) break case er.A: var _ = t[g++], S = t[g++], w = t[g++], x = t[g++], b = t[g++], T = t[g++] + b g += 1 var C = !t[g++] ;(c = Math.cos(b) * w + _), (v = Math.sin(b) * x + S), y ? ((s = c), (l = v), u(s, l)) : f(a, o, c, v), (a = Math.cos(T) * w + _), (o = Math.sin(T) * x + S) for ( var M = ((C ? -1 : 1) * Math.PI) / 2, D = b; C ? D > T : D < T; D += M ) { var I = C ? Math.max(D + M, T) : Math.min(D + M, T) h(D, I, _, S, w, x) } break case er.R: ;(s = a = t[g++]), (l = o = t[g++]), (c = s + t[g++]), (v = l + t[g++]), u(c, l), f(c, l, c, v), f(c, v, s, v), f(s, v, s, l), f(s, l, c, l) break case er.Z: i && f(a, o, s, l), (a = s), (o = l) break } } return i && i.length > 2 && n.push(i), n } function Rv(r, t, e, n, i, a, o, s, l, u) { if (Ai(r, e) && Ai(t, n) && Ai(i, o) && Ai(a, s)) { l.push(o, s) return } var f = 2 / u, h = f * f, c = o - r, v = s - t, d = Math.sqrt(c * c + v * v) ;(c /= d), (v /= d) var p = e - r, g = n - t, m = i - o, y = a - s, _ = p * p + g * g, S = m * m + y * y if (_ < h && S < h) { l.push(o, s) return } var w = c * p + v * g, x = -c * m - v * y, b = _ - w * w, T = S - x * x if (b < h && w >= 0 && T < h && x >= 0) { l.push(o, s) return } var C = [], M = [] br(r, e, i, o, 0.5, C), br(t, n, a, s, 0.5, M), Rv(C[0], M[0], C[1], M[1], C[2], M[2], C[3], M[3], l, u), Rv(C[4], M[4], C[5], M[5], C[6], M[6], C[7], M[7], l, u) } function ak(r, t) { var e = Pv(r), n = [] t = t || 1 for (var i = 0; i < e.length; i++) { var a = e[i], o = [], s = a[0], l = a[1] o.push(s, l) for (var u = 2; u < a.length; ) { var f = a[u++], h = a[u++], c = a[u++], v = a[u++], d = a[u++], p = a[u++] Rv(s, l, f, h, c, v, d, p, o, t), (s = d), (l = p) } n.push(o) } return n } function U1(r, t, e) { var n = r[t], i = r[1 - t], a = Math.abs(n / i), o = Math.ceil(Math.sqrt(a * e)), s = Math.floor(e / o) s === 0 && ((s = 1), (o = e)) for (var l = [], u = 0; u < o; u++) l.push(s) var f = o * s, h = e - f if (h > 0) for (var u = 0; u < h; u++) l[u % o] += 1 return l } function Y1(r, t, e) { for ( var n = r.r0, i = r.r, a = r.startAngle, o = r.endAngle, s = Math.abs(o - a), l = s * i, u = i - n, f = l > Math.abs(u), h = U1([l, u], f ? 0 : 1, t), c = (f ? s : u) / h.length, v = 0; v < h.length; v++ ) for (var d = (f ? u : s) / h[v], p = 0; p < h[v]; p++) { var g = {} f ? ((g.startAngle = a + c * v), (g.endAngle = a + c * (v + 1)), (g.r0 = n + d * p), (g.r = n + d * (p + 1))) : ((g.startAngle = a + d * p), (g.endAngle = a + d * (p + 1)), (g.r0 = n + c * v), (g.r = n + c * (v + 1))), (g.clockwise = r.clockwise), (g.cx = r.cx), (g.cy = r.cy), e.push(g) } } function ok(r, t, e) { for ( var n = r.width, i = r.height, a = n > i, o = U1([n, i], a ? 0 : 1, t), s = a ? 'width' : 'height', l = a ? 'height' : 'width', u = a ? 'x' : 'y', f = a ? 'y' : 'x', h = r[s] / o.length, c = 0; c < o.length; c++ ) for (var v = r[l] / o[c], d = 0; d < o[c]; d++) { var p = {} ;(p[u] = c * h), (p[f] = d * v), (p[s] = h), (p[l] = v), (p.x += r.x), (p.y += r.y), e.push(p) } } function Z1(r, t, e, n) { return r * n - e * t } function sk(r, t, e, n, i, a, o, s) { var l = e - r, u = n - t, f = o - i, h = s - a, c = Z1(f, h, l, u) if (Math.abs(c) < 1e-6) return null var v = r - i, d = t - a, p = Z1(v, d, f, h) / c return p < 0 || p > 1 ? null : new Z(p * l + r, p * u + t) } function lk(r, t, e) { var n = new Z() Z.sub(n, e, t), n.normalize() var i = new Z() Z.sub(i, r, t) var a = i.dot(n) return a } function Mi(r, t) { var e = r[r.length - 1] ;(e && e[0] === t[0] && e[1] === t[1]) || r.push(t) } function uk(r, t, e) { for (var n = r.length, i = [], a = 0; a < n; a++) { var o = r[a], s = r[(a + 1) % n], l = sk(o[0], o[1], s[0], s[1], t.x, t.y, e.x, e.y) l && i.push({ projPt: lk(l, t, e), pt: l, idx: a }) } if (i.length < 2) return [{ points: r }, { points: r }] i.sort(function (g, m) { return g.projPt - m.projPt }) var u = i[0], f = i[i.length - 1] if (f.idx < u.idx) { var h = u ;(u = f), (f = h) } for ( var c = [u.pt.x, u.pt.y], v = [f.pt.x, f.pt.y], d = [c], p = [v], a = u.idx + 1; a <= f.idx; a++ ) Mi(d, r[a].slice()) Mi(d, v), Mi(d, c) for (var a = f.idx + 1; a <= u.idx + n; a++) Mi(p, r[a % n].slice()) return Mi(p, c), Mi(p, v), [{ points: d }, { points: p }] } function $1(r) { var t = r.points, e = [], n = [] pd(t, e, n) var i = new vt(e[0], e[1], n[0] - e[0], n[1] - e[1]), a = i.width, o = i.height, s = i.x, l = i.y, u = new Z(), f = new Z() return ( a > o ? ((u.x = f.x = s + a / 2), (u.y = l), (f.y = l + o)) : ((u.y = f.y = l + o / 2), (u.x = s), (f.x = s + a)), uk(t, u, f) ) } function Sl(r, t, e, n) { if (e === 1) n.push(t) else { var i = Math.floor(e / 2), a = r(t) Sl(r, a[0], i, n), Sl(r, a[1], e - i, n) } return n } function fk(r, t) { for (var e = [], n = 0; n < t; n++) e.push(rf(r)) return e } function hk(r, t) { t.setStyle(r.style), (t.z = r.z), (t.z2 = r.z2), (t.zlevel = r.zlevel) } function vk(r) { for (var t = [], e = 0; e < r.length; ) t.push([r[e++], r[e++]]) return t } function ck(r, t) { var e = [], n = r.shape, i switch (r.type) { case 'rect': ok(n, t, e), (i = St) break case 'sector': Y1(n, t, e), (i = hr) break case 'circle': Y1( { r0: 0, r: n.r, startAngle: 0, endAngle: Math.PI * 2, cx: n.cx, cy: n.cy }, t, e ), (i = hr) break default: var a = r.getComputedTransform(), o = a ? Math.sqrt( Math.max(a[0] * a[0] + a[1] * a[1], a[2] * a[2] + a[3] * a[3]) ) : 1, s = G(ak(r.getUpdatedPathProxy(), o), function (m) { return vk(m) }), l = s.length if (l === 0) Sl($1, { points: s[0] }, t, e) else if (l === t) for (var u = 0; u < l; u++) e.push({ points: s[u] }) else { var f = 0, h = G(s, function (m) { var y = [], _ = [] pd(m, y, _) var S = (_[1] - y[1]) * (_[0] - y[0]) return (f += S), { poly: m, area: S } }) h.sort(function (m, y) { return y.area - m.area }) for (var c = t, u = 0; u < l; u++) { var v = h[u] if (c <= 0) break var d = u === l - 1 ? c : Math.ceil((v.area / f) * t) d < 0 || (Sl($1, { points: v.poly }, d, e), (c -= d)) } } i = ua break } if (!i) return fk(r, t) for (var p = [], u = 0; u < e.length; u++) { var g = new i() g.setShape(e[u]), hk(r, g), p.push(g) } return p } function dk(r, t) { var e = r.length, n = t.length if (e === n) return [r, t] for ( var i = [], a = [], o = e < n ? r : t, s = Math.min(e, n), l = Math.abs(n - e) / 6, u = (s - 2) / 6, f = Math.ceil(l / u) + 1, h = [o[0], o[1]], c = l, v = 2; v < s; ) { var d = o[v - 2], p = o[v - 1], g = o[v++], m = o[v++], y = o[v++], _ = o[v++], S = o[v++], w = o[v++] if (c <= 0) { h.push(g, m, y, _, S, w) continue } for (var x = Math.min(c, f - 1) + 1, b = 1; b <= x; b++) { var T = b / x br(d, g, y, S, T, i), br(p, m, _, w, T, a), (d = i[3]), (p = a[3]), h.push(i[1], a[1], i[2], a[2], d, p), (g = i[5]), (m = a[5]), (y = i[6]), (_ = a[6]) } c -= x - 1 } return o === r ? [h, t] : [r, h] } function X1(r, t) { for ( var e = r.length, n = r[e - 2], i = r[e - 1], a = [], o = 0; o < t.length; ) (a[o++] = n), (a[o++] = i) return a } function pk(r, t) { for ( var e, n, i, a = [], o = [], s = 0; s < Math.max(r.length, t.length); s++ ) { var l = r[s], u = t[s], f = void 0, h = void 0 l ? u ? ((e = dk(l, u)), (f = e[0]), (h = e[1]), (n = f), (i = h)) : ((h = X1(i || l, l)), (f = l)) : ((f = X1(n || u, u)), (h = u)), a.push(f), o.push(h) } return [a, o] } function q1(r) { for ( var t = 0, e = 0, n = 0, i = r.length, a = 0, o = i - 2; a < i; o = a, a += 2 ) { var s = r[o], l = r[o + 1], u = r[a], f = r[a + 1], h = s * f - u * l ;(t += h), (e += (s + u) * h), (n += (l + f) * h) } return t === 0 ? [r[0] || 0, r[1] || 0] : [e / t / 3, n / t / 3, t] } function gk(r, t, e, n) { for ( var i = (r.length - 2) / 6, a = 1 / 0, o = 0, s = r.length, l = s - 2, u = 0; u < i; u++ ) { for (var f = u * 6, h = 0, c = 0; c < s; c += 2) { var v = c === 0 ? f : ((f + c - 2) % l) + 2, d = r[v] - e[0], p = r[v + 1] - e[1], g = t[c] - n[0], m = t[c + 1] - n[1], y = g - d, _ = m - p h += y * y + _ * _ } h < a && ((a = h), (o = u)) } return o } function mk(r) { for (var t = [], e = r.length, n = 0; n < e; n += 2) (t[n] = r[e - n - 2]), (t[n + 1] = r[e - n - 1]) return t } function yk(r, t, e, n) { for (var i = [], a, o = 0; o < r.length; o++) { var s = r[o], l = t[o], u = q1(s), f = q1(l) a == null && (a = u[2] < 0 != f[2] < 0) var h = [], c = [], v = 0, d = 1 / 0, p = [], g = s.length a && (s = mk(s)) for (var m = gk(s, l, u, f) * 6, y = g - 2, _ = 0; _ < y; _ += 2) { var S = ((m + _) % y) + 2 ;(h[_ + 2] = s[S] - u[0]), (h[_ + 3] = s[S + 1] - u[1]) } if (((h[0] = s[m] - u[0]), (h[1] = s[m + 1] - u[1]), e > 0)) for (var w = n / e, x = -n / 2; x <= n / 2; x += w) { for ( var b = Math.sin(x), T = Math.cos(x), C = 0, _ = 0; _ < s.length; _ += 2 ) { var M = h[_], D = h[_ + 1], I = l[_] - f[0], L = l[_ + 1] - f[1], P = I * T - L * b, R = I * b + L * T ;(p[_] = P), (p[_ + 1] = R) var O = P - M, U = R - D C += O * O + U * U } if (C < d) { ;(d = C), (v = x) for (var k = 0; k < p.length; k++) c[k] = p[k] } } else for (var F = 0; F < g; F += 2) (c[F] = l[F] - f[0]), (c[F + 1] = l[F + 1] - f[1]) i.push({ from: h, to: c, fromCp: u, toCp: f, rotation: -v }) } return i } function xl(r) { return r.__isCombineMorphing } var K1 = '__mOriginal_' function wl(r, t, e) { var n = K1 + t, i = r[n] || r[t] r[n] || (r[n] = r[t]) var a = e.replace, o = e.after, s = e.before r[t] = function () { var l = arguments, u return ( s && s.apply(this, l), a ? (u = a.apply(this, l)) : (u = i.apply(this, l)), o && o.apply(this, l), u ) } } function to(r, t) { var e = K1 + t r[e] && ((r[t] = r[e]), (r[e] = null)) } function Q1(r, t) { for (var e = 0; e < r.length; e++) for (var n = r[e], i = 0; i < n.length; ) { var a = n[i], o = n[i + 1] ;(n[i++] = t[0] * a + t[2] * o + t[4]), (n[i++] = t[1] * a + t[3] * o + t[5]) } } function J1(r, t) { var e = r.getUpdatedPathProxy(), n = t.getUpdatedPathProxy(), i = pk(Pv(e), Pv(n)), a = i[0], o = i[1], s = r.getComputedTransform(), l = t.getComputedTransform() function u() { this.transform = null } s && Q1(a, s), l && Q1(o, l), wl(t, 'updateTransform', { replace: u }), (t.transform = null) var f = yk(a, o, 10, Math.PI), h = [] wl(t, 'buildPath', { replace: function (c) { for (var v = t.__morphT, d = 1 - v, p = [], g = 0; g < f.length; g++) { var m = f[g], y = m.from, _ = m.to, S = m.rotation * v, w = m.fromCp, x = m.toCp, b = Math.sin(S), T = Math.cos(S) lo(p, w, x, v) for (var C = 0; C < y.length; C += 2) { var M = y[C], D = y[C + 1], I = _[C], L = _[C + 1], P = M * d + I * v, R = D * d + L * v ;(h[C] = P * T - R * b + p[0]), (h[C + 1] = P * b + R * T + p[1]) } var O = h[0], U = h[1] c.moveTo(O, U) for (var C = 2; C < y.length; ) { var I = h[C++], L = h[C++], k = h[C++], F = h[C++], H = h[C++], $ = h[C++] O === I && U === L && k === H && F === $ ? c.lineTo(H, $) : c.bezierCurveTo(I, L, k, F, H, $), (O = H), (U = $) } } } }) } function Ev(r, t, e) { if (!r || !t) return t var n = e.done, i = e.during J1(r, t), (t.__morphT = 0) function a() { to(t, 'buildPath'), to(t, 'updateTransform'), (t.__morphT = -1), t.createPathProxy(), t.dirtyShape() } return ( t.animateTo( { __morphT: 1 }, j( { during: function (o) { t.dirtyShape(), i && i(o) }, done: function () { a(), n && n() } }, e ) ), t ) } function _k(r, t, e, n, i, a) { var o = 16 ;(r = i === e ? 0 : Math.round((32767 * (r - e)) / (i - e))), (t = a === n ? 0 : Math.round((32767 * (t - n)) / (a - n))) for (var s = 0, l, u = (1 << o) / 2; u > 0; u /= 2) { var f = 0, h = 0 ;(r & u) > 0 && (f = 1), (t & u) > 0 && (h = 1), (s += u * u * ((3 * f) ^ h)), h === 0 && (f === 1 && ((r = u - 1 - r), (t = u - 1 - t)), (l = r), (r = t), (t = l)) } return s } function bl(r) { var t = 1 / 0, e = 1 / 0, n = -1 / 0, i = -1 / 0, a = G(r, function (s) { var l = s.getBoundingRect(), u = s.getComputedTransform(), f = l.x + l.width / 2 + (u ? u[4] : 0), h = l.y + l.height / 2 + (u ? u[5] : 0) return ( (t = Math.min(f, t)), (e = Math.min(h, e)), (n = Math.max(f, n)), (i = Math.max(h, i)), [f, h] ) }), o = G(a, function (s, l) { return { cp: s, z: _k(s[0], s[1], t, e, n, i), path: r[l] } }) return o .sort(function (s, l) { return s.z - l.z }) .map(function (s) { return s.path }) } function j1(r) { return ck(r.path, r.count) } function Ov() { return { fromIndividuals: [], toIndividuals: [], count: 0 } } function Sk(r, t, e) { var n = [] function i(w) { for (var x = 0; x < w.length; x++) { var b = w[x] xl(b) ? i(b.childrenRef()) : b instanceof st && n.push(b) } } i(r) var a = n.length if (!a) return Ov() var o = e.dividePath || j1, s = o({ path: t, count: a }) if (s.length !== a) return console.error('Invalid morphing: unmatched splitted path'), Ov() ;(n = bl(n)), (s = bl(s)) for ( var l = e.done, u = e.during, f = e.individualDelay, h = new Wi(), c = 0; c < a; c++ ) { var v = n[c], d = s[c] ;(d.parent = t), d.copyTransform(h), f || J1(v, d) } ;(t.__isCombineMorphing = !0), (t.childrenRef = function () { return s }) function p(w) { for (var x = 0; x < s.length; x++) s[x].addSelfToZr(w) } wl(t, 'addSelfToZr', { after: function (w) { p(w) } }), wl(t, 'removeSelfFromZr', { after: function (w) { for (var x = 0; x < s.length; x++) s[x].removeSelfFromZr(w) } }) function g() { ;(t.__isCombineMorphing = !1), (t.__morphT = -1), (t.childrenRef = null), to(t, 'addSelfToZr'), to(t, 'removeSelfFromZr') } var m = s.length if (f) for ( var y = m, _ = function () { y--, y === 0 && (g(), l && l()) }, c = 0; c < m; c++ ) { var S = f ? j({ delay: (e.delay || 0) + f(c, m, n[c], s[c]), done: _ }, e) : e Ev(n[c], s[c], S) } else (t.__morphT = 0), t.animateTo( { __morphT: 1 }, j( { during: function (w) { for (var x = 0; x < m; x++) { var b = s[x] ;(b.__morphT = t.__morphT), b.dirtyShape() } u && u(w) }, done: function () { g() for (var w = 0; w < r.length; w++) to(r[w], 'updateTransform') l && l() } }, e ) ) return t.__zr && p(t.__zr), { fromIndividuals: n, toIndividuals: s, count: m } } function xk(r, t, e) { var n = t.length, i = [], a = e.dividePath || j1 function o(v) { for (var d = 0; d < v.length; d++) { var p = v[d] xl(p) ? o(p.childrenRef()) : p instanceof st && i.push(p) } } if (xl(r)) { o(r.childrenRef()) var s = i.length if (s < n) for (var l = 0, u = s; u < n; u++) i.push(rf(i[l++ % s])) i.length = n } else { i = a({ path: r, count: n }) for (var f = r.getComputedTransform(), u = 0; u < i.length; u++) i[u].setLocalTransform(f) if (i.length !== n) return console.error('Invalid morphing: unmatched splitted path'), Ov() } ;(i = bl(i)), (t = bl(t)) for (var h = e.individualDelay, u = 0; u < n; u++) { var c = h ? j({ delay: (e.delay || 0) + h(u, n, i[u], t[u]) }, e) : e Ev(i[u], t[u], c) } return { fromIndividuals: i, toIndividuals: t, count: t.length } } function tS(r) { return z(r[0]) } function eS(r, t) { for (var e = [], n = r.length, i = 0; i < n; i++) e.push({ one: r[i], many: [] }) for (var i = 0; i < t.length; i++) { var a = t[i].length, o = void 0 for (o = 0; o < a; o++) e[o % n].many.push(t[i][o]) } for (var s = 0, i = n - 1; i >= 0; i--) if (!e[i].many.length) { var l = e[s].many if (l.length <= 1) if (s) s = 0 else return e var a = l.length, u = Math.ceil(a / 2) ;(e[i].many = l.slice(u, a)), (e[s].many = l.slice(0, u)), s++ } return e } var wk = { clone: function (r) { for ( var t = [], e = 1 - Math.pow(1 - r.path.style.opacity, 1 / r.count), n = 0; n < r.count; n++ ) { var i = rf(r.path) i.setStyle('opacity', e), t.push(i) } return t }, split: null } function kv(r, t, e, n, i, a) { if (!r.length || !t.length) return var o = ns('update', n, i) if (!(o && o.duration > 0)) return var s = n.getModel('universalTransition').get('delay'), l = Object.assign({ setToFinal: !0 }, o), u, f tS(r) && ((u = r), (f = t)), tS(t) && ((u = t), (f = r)) function h(m, y, _, S, w) { var x = m.many, b = m.one if (x.length === 1 && !w) { var T = y ? x[0] : b, C = y ? b : x[0] if (xl(T)) h({ many: [T], one: C }, !0, _, S, !0) else { var M = s ? j({ delay: s(_, S) }, l) : l Ev(T, C, M), a(T, C, T, C, M) } } else for ( var D = j( { dividePath: wk[e], individualDelay: s && function (U, k, F, H) { return s(U + _, S) } }, l ), I = y ? Sk(x, b, D) : xk(b, x, D), L = I.fromIndividuals, P = I.toIndividuals, R = L.length, O = 0; O < R; O++ ) { var M = s ? j({ delay: s(O, R) }, l) : l a(L[O], P[O], y ? x[O] : m.one, y ? m.one : x[O], M) } } for ( var c = u ? u === r : r.length > t.length, v = u ? eS(f, u) : eS(c ? t : r, [c ? r : t]), d = 0, p = 0; p < v.length; p++ ) d += v[p].many.length for (var g = 0, p = 0; p < v.length; p++) h(v[p], c, g, d), (g += v[p].many.length) } function Rn(r) { if (!r) return [] if (z(r)) { for (var t = [], e = 0; e < r.length; e++) t.push(Rn(r[e])) return t } var n = [] return ( r.traverse(function (i) { i instanceof st && !i.disableMorphing && !i.invisible && !i.ignore && n.push(i) }), n ) } var rS = 1e4, bk = wt() function Tk(r) { for (var t = r.dimensions, e = 0; e < t.length; e++) { var n = r.getDimensionInfo(t[e]) if (n && n.otherDims.itemGroupId === 0) return t[e] } } function nS(r) { var t = [] return ( A(r, function (e) { var n = e.data if (!(n.count() > rS)) for (var i = n.getIndices(), a = Tk(n), o = 0; o < i.length; o++) t.push({ data: n, dim: e.dim || a, divide: e.divide, dataIndex: o }) }), t ) } function Bv(r, t, e) { r.traverse(function (n) { n instanceof st && Wt(n, { style: { opacity: 0 } }, t, { dataIndex: e, isFrom: !0 }) }) } function Nv(r) { if (r.parent) { var t = r.getComputedTransform() r.setLocalTransform(t), r.parent.remove(r) } } function Di(r) { r.stopAnimation(), r.isGroup && r.traverse(function (t) { t.stopAnimation() }) } function Ck(r, t, e) { var n = ns('update', e, t) n && r.traverse(function (i) { if (i instanceof Qn) { var a = _C(i) a && i.animateFrom({ style: a }, n) } }) } function Ak(r, t) { var e = r.length if (e !== t.length) return !1 for (var n = 0; n < e; n++) { var i = r[n], a = t[n] if (i.data.getId(i.dataIndex) !== a.data.getId(a.dataIndex)) return !1 } return !0 } function iS(r, t, e) { var n = nS(r), i = nS(t) function a(m, y, _, S, w) { ;(_ || m) && y.animateFrom( { style: _ && _ !== m ? N(N({}, _.style), m.style) : m.style }, w ) } function o(m) { for (var y = 0; y < m.length; y++) if (m[y].dim) return m[y].dim } var s = o(n), l = o(i), u = !1 function f(m, y) { return function (_) { var S = _.data, w = _.dataIndex if (y) return S.getId(w) var x = S.hostModel && S.hostModel.get('dataGroupId'), b = m ? s || l : l || s, T = b && S.getDimensionInfo(b), C = T && T.ordinalMeta if (T) { var M = S.get(T.name, w) return (C && C.categories[M]) || M + '' } var D = S.getRawDataItem(w) return D && D.groupId ? D.groupId + '' : x || S.getId(w) } } var h = Ak(n, i), c = {} if (!h) for (var v = 0; v < i.length; v++) { var d = i[v], p = d.data.getItemGraphicEl(d.dataIndex) p && (c[p.id] = !0) } function g(m, y) { var _ = n[y], S = i[m], w = S.data.hostModel, x = _.data.getItemGraphicEl(_.dataIndex), b = S.data.getItemGraphicEl(S.dataIndex) if (x === b) { b && Ck(b, S.dataIndex, w) return } ;(x && c[x.id]) || (b && (Di(b), x ? (Di(x), Nv(x), (u = !0), kv(Rn(x), Rn(b), S.divide, w, m, a)) : Bv(b, w, m))) } new Ba(n, i, f(!0, h), f(!1, h), null, 'multiple') .update(g) .updateManyToOne(function (m, y) { var _ = i[m], S = _.data, w = S.hostModel, x = S.getItemGraphicEl(_.dataIndex), b = Lt( G(y, function (T) { return n[T].data.getItemGraphicEl(n[T].dataIndex) }), function (T) { return T && T !== x && !c[T.id] } ) x && (Di(x), b.length ? (A(b, function (T) { Di(T), Nv(T) }), (u = !0), kv(Rn(b), Rn(x), _.divide, w, m, a)) : Bv(x, w, _.dataIndex)) }) .updateOneToMany(function (m, y) { var _ = n[y], S = _.data.getItemGraphicEl(_.dataIndex) if (!(S && c[S.id])) { var w = Lt( G(m, function (b) { return i[b].data.getItemGraphicEl(i[b].dataIndex) }), function (b) { return b && b !== S } ), x = i[m[0]].data.hostModel w.length && (A(w, function (b) { return Di(b) }), S ? (Di(S), Nv(S), (u = !0), kv(Rn(S), Rn(w), _.divide, x, m[0], a)) : A(w, function (b) { return Bv(b, x, m[0]) })) } }) .updateManyToMany(function (m, y) { new Ba( y, m, function (_) { return n[_].data.getId(n[_].dataIndex) }, function (_) { return i[_].data.getId(i[_].dataIndex) } ) .update(function (_, S) { g(m[_], y[S]) }) .execute() }) .execute(), u && A(t, function (m) { var y = m.data, _ = y.hostModel, S = _ && e.getViewOfSeriesModel(_), w = ns('update', _, 0) S && _.isAnimationEnabled() && w && w.duration > 0 && S.group.traverse(function (x) { x instanceof st && !x.animators.length && x.animateFrom({ style: { opacity: 0 } }, w) }) }) } function aS(r) { var t = r.getModel('universalTransition').get('seriesKey') return t || r.id } function oS(r) { return z(r) ? r.sort().join(',') : r } function Wr(r) { if (r.hostModel) return r.hostModel.getModel('universalTransition').get('divideShape') } function Mk(r, t) { var e = q(), n = q(), i = q() return ( A(r.oldSeries, function (a, o) { var s = r.oldData[o], l = aS(a), u = oS(l) n.set(u, s), z(l) && A(l, function (f) { i.set(f, { data: s, key: u }) }) }), A(t.updatedSeries, function (a) { if (a.isUniversalTransitionEnabled() && a.isAnimationEnabled()) { var o = a.getData(), s = aS(a), l = oS(s), u = n.get(l) if (u) e.set(l, { oldSeries: [{ divide: Wr(u), data: u }], newSeries: [{ divide: Wr(o), data: o }] }) else if (z(s)) { var f = [] A(s, function (v) { var d = n.get(v) d && f.push({ divide: Wr(d), data: d }) }), f.length && e.set(l, { oldSeries: f, newSeries: [{ data: o, divide: Wr(o) }] }) } else { var h = i.get(s) if (h) { var c = e.get(h.key) c || ((c = { oldSeries: [{ data: h.data, divide: Wr(h.data) }], newSeries: [] }), e.set(h.key, c)), c.newSeries.push({ data: o, divide: Wr(o) }) } } } }), e ) } function sS(r, t) { for (var e = 0; e < r.length; e++) { var n = (t.seriesIndex != null && t.seriesIndex === r[e].seriesIndex) || (t.seriesId != null && t.seriesId === r[e].id) if (n) return e } } function Dk(r, t, e, n) { var i = [], a = [] A(Mt(r.from), function (o) { var s = sS(t.oldSeries, o) s >= 0 && i.push({ data: t.oldData[s], divide: Wr(t.oldData[s]), dim: o.dimension }) }), A(Mt(r.to), function (o) { var s = sS(e.updatedSeries, o) if (s >= 0) { var l = e.updatedSeries[s].getData() a.push({ data: l, divide: Wr(l), dim: o.dimension }) } }), i.length > 0 && a.length > 0 && iS(i, a, n) } function Ik(r) { r.registerUpdateLifecycle('series:beforeupdate', function (t, e, n) { A(Mt(n.seriesTransition), function (i) { A(Mt(i.to), function (a) { for (var o = n.updatedSeries, s = 0; s < o.length; s++) ((a.seriesIndex != null && a.seriesIndex === o[s].seriesIndex) || (a.seriesId != null && a.seriesId === o[s].id)) && (o[s][Ps] = !0) }) }) }), r.registerUpdateLifecycle('series:transition', function (t, e, n) { var i = bk(e) if (i.oldSeries && n.updatedSeries && n.optionChanged) { var a = n.seriesTransition if (a) A(Mt(a), function (c) { Dk(c, i, n, e) }) else { var o = Mk(i, n) A(o.keys(), function (c) { var v = o.get(c) iS(v.oldSeries, v.newSeries, e) }) } A(n.updatedSeries, function (c) { c[Ps] && (c[Ps] = !1) }) } for ( var s = t.getSeries(), l = (i.oldSeries = []), u = (i.oldData = []), f = 0; f < s.length; f++ ) { var h = s[f].getData() h.count() < rS && (l.push(s[f]), u.push(h)) } }) } function lS(r, t, e) { var n = kn.createCanvas(), i = t.getWidth(), a = t.getHeight(), o = n.style return ( o && ((o.position = 'absolute'), (o.left = '0'), (o.top = '0'), (o.width = i + 'px'), (o.height = a + 'px'), n.setAttribute('data-zr-dom-id', r)), (n.width = i * e), (n.height = a * e), n ) } var Lk = (function (r) { B(t, r) function t(e, n, i) { var a = r.call(this) || this ;(a.motionBlur = !1), (a.lastFrameAlpha = 0.7), (a.dpr = 1), (a.virtual = !1), (a.config = {}), (a.incremental = !1), (a.zlevel = 0), (a.maxRepaintRectCount = 5), (a.__dirty = !0), (a.__firstTimePaint = !0), (a.__used = !1), (a.__drawIndex = 0), (a.__startIndex = 0), (a.__endIndex = 0), (a.__prevStartIndex = null), (a.__prevEndIndex = null) var o ;(i = i || Io), typeof e == 'string' ? (o = lS(e, n, i)) : Y(e) && ((o = e), (e = o.id)), (a.id = e), (a.dom = o) var s = o.style return ( s && (Xv(o), (o.onselectstart = function () { return !1 }), (s.padding = '0'), (s.margin = '0'), (s.borderWidth = '0')), (a.painter = n), (a.dpr = i), a ) } return ( (t.prototype.getElementCount = function () { return this.__endIndex - this.__startIndex }), (t.prototype.afterBrush = function () { ;(this.__prevStartIndex = this.__startIndex), (this.__prevEndIndex = this.__endIndex) }), (t.prototype.initContext = function () { ;(this.ctx = this.dom.getContext('2d')), (this.ctx.dpr = this.dpr) }), (t.prototype.setUnpainted = function () { this.__firstTimePaint = !0 }), (t.prototype.createBackBuffer = function () { var e = this.dpr ;(this.domBack = lS('back-' + this.id, this.painter, e)), (this.ctxBack = this.domBack.getContext('2d')), e !== 1 && this.ctxBack.scale(e, e) }), (t.prototype.createRepaintRects = function (e, n, i, a) { if (this.__firstTimePaint) return (this.__firstTimePaint = !1), null var o = [], s = this.maxRepaintRectCount, l = !1, u = new vt(0, 0, 0, 0) function f(y) { if (!(!y.isFinite() || y.isZero())) if (o.length === 0) { var _ = new vt(0, 0, 0, 0) _.copy(y), o.push(_) } else { for (var S = !1, w = 1 / 0, x = 0, b = 0; b < o.length; ++b) { var T = o[b] if (T.intersect(y)) { var C = new vt(0, 0, 0, 0) C.copy(T), C.union(y), (o[b] = C), (S = !0) break } else if (l) { u.copy(y), u.union(T) var M = y.width * y.height, D = T.width * T.height, I = u.width * u.height, L = I - M - D L < w && ((w = L), (x = b)) } } if ((l && (o[x].union(y), (S = !0)), !S)) { var _ = new vt(0, 0, 0, 0) _.copy(y), o.push(_) } l || (l = o.length >= s) } } for (var h = this.__startIndex; h < this.__endIndex; ++h) { var c = e[h] if (c) { var v = c.shouldBePainted(i, a, !0, !0), d = c.__isRendered && (c.__dirty & ae || !v) ? c.getPrevPaintRect() : null d && f(d) var p = v && (c.__dirty & ae || !c.__isRendered) ? c.getPaintRect() : null p && f(p) } } for (var h = this.__prevStartIndex; h < this.__prevEndIndex; ++h) { var c = n[h], v = c.shouldBePainted(i, a, !0, !0) if (c && (!v || !c.__zr) && c.__isRendered) { var d = c.getPrevPaintRect() d && f(d) } } var g do { g = !1 for (var h = 0; h < o.length; ) { if (o[h].isZero()) { o.splice(h, 1) continue } for (var m = h + 1; m < o.length; ) o[h].intersect(o[m]) ? ((g = !0), o[h].union(o[m]), o.splice(m, 1)) : m++ h++ } } while (g) return (this._paintRects = o), o }), (t.prototype.debugGetPaintRects = function () { return (this._paintRects || []).slice() }), (t.prototype.resize = function (e, n) { var i = this.dpr, a = this.dom, o = a.style, s = this.domBack o && ((o.width = e + 'px'), (o.height = n + 'px')), (a.width = e * i), (a.height = n * i), s && ((s.width = e * i), (s.height = n * i), i !== 1 && this.ctxBack.scale(i, i)) }), (t.prototype.clear = function (e, n, i) { var a = this.dom, o = this.ctx, s = a.width, l = a.height n = n || this.clearColor var u = this.motionBlur && !e, f = this.lastFrameAlpha, h = this.dpr, c = this u && (this.domBack || this.createBackBuffer(), (this.ctxBack.globalCompositeOperation = 'copy'), this.ctxBack.drawImage(a, 0, 0, s / h, l / h)) var v = this.domBack function d(p, g, m, y) { if ((o.clearRect(p, g, m, y), n && n !== 'transparent')) { var _ = void 0 io(n) ? ((_ = n.__canvasGradient || qf(o, n, { x: 0, y: 0, width: m, height: y })), (n.__canvasGradient = _)) : Ax(n) && (_ = Kf(o, n, { dirty: function () { c.setUnpainted(), c.__painter.refresh() } })), o.save(), (o.fillStyle = _ || n), o.fillRect(p, g, m, y), o.restore() } u && (o.save(), (o.globalAlpha = f), o.drawImage(v, p, g, m, y), o.restore()) } !i || u ? d(0, 0, s, l) : i.length && A(i, function (p) { d(p.x * h, p.y * h, p.width * h, p.height * h) }) }), t ) })(fe), Fv = Lk, uS = 1e5, En = 314159, Tl = 0.01, Pk = 0.001 function Rk(r) { return r ? r.__builtin__ ? !0 : !(typeof r.resize != 'function' || typeof r.refresh != 'function') : !1 } function Ek(r, t) { var e = document.createElement('div') return ( (e.style.cssText = [ 'position:relative', 'width:' + r + 'px', 'height:' + t + 'px', 'padding:0', 'margin:0', 'border-width:0' ].join(';') + ';'), e ) } var Ok = (function () { function r(t, e, n, i) { ;(this.type = 'canvas'), (this._zlevelList = []), (this._prevDisplayList = []), (this._layers = {}), (this._layerConfig = {}), (this._needsManuallyCompositing = !1), (this.type = 'canvas') var a = !t.nodeName || t.nodeName.toUpperCase() === 'CANVAS' ;(this._opts = n = N({}, n || {})), (this.dpr = n.devicePixelRatio || Io), (this._singleCanvas = a), (this.root = t) var o = t.style o && (Xv(t), (t.innerHTML = '')), (this.storage = e) var s = this._zlevelList this._prevDisplayList = [] var l = this._layers if (a) { var f = t, h = f.width, c = f.height n.width != null && (h = n.width), n.height != null && (c = n.height), (this.dpr = n.devicePixelRatio || 1), (f.width = h * this.dpr), (f.height = c * this.dpr), (this._width = h), (this._height = c) var v = new Fv(f, this, this.dpr) ;(v.__builtin__ = !0), v.initContext(), (l[En] = v), (v.zlevel = En), s.push(En), (this._domRoot = t) } else { ;(this._width = Gs(t, 0, n)), (this._height = Gs(t, 1, n)) var u = (this._domRoot = Ek(this._width, this._height)) t.appendChild(u) } } return ( (r.prototype.getType = function () { return 'canvas' }), (r.prototype.isSingleCanvas = function () { return this._singleCanvas }), (r.prototype.getViewportRoot = function () { return this._domRoot }), (r.prototype.getViewportRootOffset = function () { var t = this.getViewportRoot() if (t) return { offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0 } }), (r.prototype.refresh = function (t) { var e = this.storage.getDisplayList(!0), n = this._prevDisplayList, i = this._zlevelList ;(this._redrawId = Math.random()), this._paintList(e, n, t, this._redrawId) for (var a = 0; a < i.length; a++) { var o = i[a], s = this._layers[o] if (!s.__builtin__ && s.refresh) { var l = a === 0 ? this._backgroundColor : null s.refresh(l) } } return ( this._opts.useDirtyRect && (this._prevDisplayList = e.slice()), this ) }), (r.prototype.refreshHover = function () { this._paintHoverList(this.storage.getDisplayList(!1)) }), (r.prototype._paintHoverList = function (t) { var e = t.length, n = this._hoverlayer if ((n && n.clear(), !!e)) { for ( var i = { inHover: !0, viewWidth: this._width, viewHeight: this._height }, a, o = 0; o < e; o++ ) { var s = t[o] s.__inHover && (n || (n = this._hoverlayer = this.getLayer(uS)), a || ((a = n.ctx), a.save()), bn(a, s, i, o === e - 1)) } a && a.restore() } }), (r.prototype.getHoverLayer = function () { return this.getLayer(uS) }), (r.prototype.paintOne = function (t, e) { Zm(t, e) }), (r.prototype._paintList = function (t, e, n, i) { if (this._redrawId === i) { ;(n = n || !1), this._updateLayerStatus(t) var a = this._doPaintList(t, e, n), o = a.finished, s = a.needsRefreshHover if ( (this._needsManuallyCompositing && this._compositeManually(), s && this._paintHoverList(t), o) ) this.eachLayer(function (u) { u.afterBrush && u.afterBrush() }) else { var l = this Xl(function () { l._paintList(t, e, n, i) }) } } }), (r.prototype._compositeManually = function () { var t = this.getLayer(En).ctx, e = this._domRoot.width, n = this._domRoot.height t.clearRect(0, 0, e, n), this.eachBuiltinLayer(function (i) { i.virtual && t.drawImage(i.dom, 0, 0, e, n) }) }), (r.prototype._doPaintList = function (t, e, n) { for ( var i = this, a = [], o = this._opts.useDirtyRect, s = 0; s < this._zlevelList.length; s++ ) { var l = this._zlevelList[s], u = this._layers[l] u.__builtin__ && u !== this._hoverlayer && (u.__dirty || n) && a.push(u) } for ( var f = !0, h = !1, c = function (p) { var g = a[p], m = g.ctx, y = o && g.createRepaintRects(t, e, v._width, v._height), _ = n ? g.__startIndex : g.__drawIndex, S = !n && g.incremental && Date.now, w = S && Date.now(), x = g.zlevel === v._zlevelList[0] ? v._backgroundColor : null if (g.__startIndex === g.__endIndex) g.clear(!1, x, y) else if (_ === g.__startIndex) { var b = t[_] ;(!b.incremental || !b.notClear || n) && g.clear(!1, x, y) } _ === -1 && (console.error('For some unknown reason. drawIndex is -1'), (_ = g.__startIndex)) var T, C = function (L) { var P = { inHover: !1, allClipped: !1, prevEl: null, viewWidth: i._width, viewHeight: i._height } for (T = _; T < g.__endIndex; T++) { var R = t[T] if ( (R.__inHover && (h = !0), i._doPaintEl(R, g, o, L, P, T === g.__endIndex - 1), S) ) { var O = Date.now() - w if (O > 15) break } } P.prevElClipPaths && m.restore() } if (y) if (y.length === 0) T = g.__endIndex else for (var M = v.dpr, D = 0; D < y.length; ++D) { var I = y[D] m.save(), m.beginPath(), m.rect(I.x * M, I.y * M, I.width * M, I.height * M), m.clip(), C(I), m.restore() } else m.save(), C(), m.restore() ;(g.__drawIndex = T), g.__drawIndex < g.__endIndex && (f = !1) }, v = this, d = 0; d < a.length; d++ ) c(d) return ( at.wxa && A(this._layers, function (p) { p && p.ctx && p.ctx.draw && p.ctx.draw() }), { finished: f, needsRefreshHover: h } ) }), (r.prototype._doPaintEl = function (t, e, n, i, a, o) { var s = e.ctx if (n) { var l = t.getPaintRect() ;(!i || (l && l.intersect(i))) && (bn(s, t, a, o), t.setPrevPaintRect(l)) } else bn(s, t, a, o) }), (r.prototype.getLayer = function (t, e) { this._singleCanvas && !this._needsManuallyCompositing && (t = En) var n = this._layers[t] return ( n || ((n = new Fv('zr_' + t, this, this.dpr)), (n.zlevel = t), (n.__builtin__ = !0), this._layerConfig[t] ? nt(n, this._layerConfig[t], !0) : this._layerConfig[t - Tl] && nt(n, this._layerConfig[t - Tl], !0), e && (n.virtual = e), this.insertLayer(t, n), n.initContext()), n ) }), (r.prototype.insertLayer = function (t, e) { var n = this._layers, i = this._zlevelList, a = i.length, o = this._domRoot, s = null, l = -1 if (!n[t] && !!Rk(e)) { if (a > 0 && t > i[0]) { for (l = 0; l < a - 1 && !(i[l] < t && i[l + 1] > t); l++); s = n[i[l]] } if ((i.splice(l + 1, 0, t), (n[t] = e), !e.virtual)) if (s) { var u = s.dom u.nextSibling ? o.insertBefore(e.dom, u.nextSibling) : o.appendChild(e.dom) } else o.firstChild ? o.insertBefore(e.dom, o.firstChild) : o.appendChild(e.dom) e.__painter = this } }), (r.prototype.eachLayer = function (t, e) { for (var n = this._zlevelList, i = 0; i < n.length; i++) { var a = n[i] t.call(e, this._layers[a], a) } }), (r.prototype.eachBuiltinLayer = function (t, e) { for (var n = this._zlevelList, i = 0; i < n.length; i++) { var a = n[i], o = this._layers[a] o.__builtin__ && t.call(e, o, a) } }), (r.prototype.eachOtherLayer = function (t, e) { for (var n = this._zlevelList, i = 0; i < n.length; i++) { var a = n[i], o = this._layers[a] o.__builtin__ || t.call(e, o, a) } }), (r.prototype.getLayers = function () { return this._layers }), (r.prototype._updateLayerStatus = function (t) { this.eachBuiltinLayer(function (h, c) { h.__dirty = h.__used = !1 }) function e(h) { a && (a.__endIndex !== h && (a.__dirty = !0), (a.__endIndex = h)) } if (this._singleCanvas) for (var n = 1; n < t.length; n++) { var i = t[n] if (i.zlevel !== t[n - 1].zlevel || i.incremental) { this._needsManuallyCompositing = !0 break } } var a = null, o = 0, s, l for (l = 0; l < t.length; l++) { var i = t[l], u = i.zlevel, f = void 0 s !== u && ((s = u), (o = 0)), i.incremental ? ((f = this.getLayer(u + Pk, this._needsManuallyCompositing)), (f.incremental = !0), (o = 1)) : (f = this.getLayer( u + (o > 0 ? Tl : 0), this._needsManuallyCompositing )), f.__builtin__ || Pl('ZLevel ' + u + ' has been used by unkown layer ' + f.id), f !== a && ((f.__used = !0), f.__startIndex !== l && (f.__dirty = !0), (f.__startIndex = l), f.incremental ? (f.__drawIndex = -1) : (f.__drawIndex = l), e(l), (a = f)), i.__dirty & ae && !i.__inHover && ((f.__dirty = !0), f.incremental && f.__drawIndex < 0 && (f.__drawIndex = l)) } e(l), this.eachBuiltinLayer(function (h, c) { !h.__used && h.getElementCount() > 0 && ((h.__dirty = !0), (h.__startIndex = h.__endIndex = h.__drawIndex = 0)), h.__dirty && h.__drawIndex < 0 && (h.__drawIndex = h.__startIndex) }) }), (r.prototype.clear = function () { return this.eachBuiltinLayer(this._clearLayer), this }), (r.prototype._clearLayer = function (t) { t.clear() }), (r.prototype.setBackgroundColor = function (t) { ;(this._backgroundColor = t), A(this._layers, function (e) { e.setUnpainted() }) }), (r.prototype.configLayer = function (t, e) { if (e) { var n = this._layerConfig n[t] ? nt(n[t], e, !0) : (n[t] = e) for (var i = 0; i < this._zlevelList.length; i++) { var a = this._zlevelList[i] if (a === t || a === t + Tl) { var o = this._layers[a] nt(o, n[t], !0) } } } }), (r.prototype.delLayer = function (t) { var e = this._layers, n = this._zlevelList, i = e[t] !i || (i.dom.parentNode.removeChild(i.dom), delete e[t], n.splice(ot(n, t), 1)) }), (r.prototype.resize = function (t, e) { if (this._domRoot.style) { var n = this._domRoot n.style.display = 'none' var i = this._opts, a = this.root if ( (t != null && (i.width = t), e != null && (i.height = e), (t = Gs(a, 0, i)), (e = Gs(a, 1, i)), (n.style.display = ''), this._width !== t || e !== this._height) ) { ;(n.style.width = t + 'px'), (n.style.height = e + 'px') for (var o in this._layers) this._layers.hasOwnProperty(o) && this._layers[o].resize(t, e) this.refresh(!0) } ;(this._width = t), (this._height = e) } else { if (t == null || e == null) return ;(this._width = t), (this._height = e), this.getLayer(En).resize(t, e) } return this }), (r.prototype.clearLayer = function (t) { var e = this._layers[t] e && e.clear() }), (r.prototype.dispose = function () { ;(this.root.innerHTML = ''), (this.root = this.storage = this._domRoot = this._layers = null) }), (r.prototype.getRenderedCanvas = function (t) { if (((t = t || {}), this._singleCanvas && !this._compositeManually)) return this._layers[En].dom var e = new Fv('image', this, t.pixelRatio || this.dpr) e.initContext(), e.clear(!1, t.backgroundColor || this._backgroundColor) var n = e.ctx if (t.pixelRatio <= this.dpr) { this.refresh() var i = e.dom.width, a = e.dom.height this.eachLayer(function (h) { h.__builtin__ ? n.drawImage(h.dom, 0, 0, i, a) : h.renderToCanvas && (n.save(), h.renderToCanvas(n), n.restore()) }) } else for ( var o = { inHover: !1, viewWidth: this._width, viewHeight: this._height }, s = this.storage.getDisplayList(!0), l = 0, u = s.length; l < u; l++ ) { var f = s[l] bn(n, f, o, l === u - 1) } return e.dom }), (r.prototype.getWidth = function () { return this._width }), (r.prototype.getHeight = function () { return this._height }), r ) })(), kk = Ok function Bk(r) { r.registerPainter('canvas', kk) } const Ce = { legend: { show: !1 }, emphasis: { lineStyle: { width: 2 } }, xAxis: { boundaryGap: !1, data: [ '01\u6708', '02\u6708', '03\u6708', '04\u6708', '05\u6708', '06\u6708', '07\u6708', '08\u6708', '09\u6708', '10\u6708', '11\u6708', '12\u6708' ], type: 'category', axisLine: { lineStyle: { color: '#8C8C8C' } } }, color: [ '#5B8FF9', '#01C1B5', '#91DD1C', '#FFA92C', '#BE7E2E', '#1C96DD', '#D22CFF', '#FF3C3C', '#1AEE3E', '#7c47ff' ], series: [ { lineStyle: { width: 1 }, data: [ '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00' ], symbol: 'circle', name: '\u966A\u7EC3\u8BFE', type: 'line', emphasis: { lineStyle: { width: 1 } } }, { lineStyle: { width: 1 }, data: [ '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00' ], symbol: 'circle', name: '\u76F4\u64AD\u8BFE', type: 'line', emphasis: { lineStyle: { width: 1 } } }, { lineStyle: { width: 1 }, data: [ '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00' ], symbol: 'circle', name: '\u89C6\u9891\u8BFE', type: 'line', emphasis: { lineStyle: { width: 1 } } }, { lineStyle: { width: 1 }, data: [ '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00' ], symbol: 'circle', name: '\u4E50\u8C31', type: 'line', emphasis: { lineStyle: { width: 1 } } }, { lineStyle: { width: 1 }, data: [ '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00' ], symbol: 'circle', name: '\u5C0F\u9177Ai\u63A8\u5E7F', type: 'line', emphasis: { lineStyle: { width: 1 } } }, { lineStyle: { width: 1 }, data: [ '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00' ], symbol: 'circle', name: '\u76F4\u64AD\u8BFE\u63A8\u8350', type: 'line', emphasis: { lineStyle: { width: 1 } } }, { lineStyle: { width: 1 }, data: [ '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00' ], symbol: 'circle', name: '\u89C6\u9891\u8BFE\u63A8\u8350', type: 'line', emphasis: { lineStyle: { width: 1 } } }, { lineStyle: { width: 1 }, data: [ '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00' ], symbol: 'circle', name: '\u5546\u54C1\u63A8\u8350', type: 'line', emphasis: { lineStyle: { width: 1 } } }, { lineStyle: { width: 1 }, data: [ '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00' ], symbol: 'circle', name: '\u4E50\u8C31\u63A8\u8350', type: 'line', emphasis: { lineStyle: { width: 1 } } }, { lineStyle: { width: 1 }, data: [ '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00' ], symbol: 'circle', name: '\u6D3B\u52A8\u62A5\u540D', type: 'line', emphasis: { lineStyle: { width: 1 } } } ], title: { show: !1 }, grid: { bottom: '3%', containLabel: !0, left: '3%', right: '5%', top: '7%' }, tooltip: { trigger: 'axis', confine: !0 }, yAxis: { type: 'value', splitLine: { axisLine: { lineStyle: { color: '#8C8C8C' } }, lineStyle: { color: ['#E2E2E2'] } } }, dataZoom: [{ type: 'inside', throttle: 100 }], toolbox: { feature: { saveAsImage: { show: !1 } } } }, Be = { tooltip: { position: ['30%', '30%'], trigger: 'item', padding: 3, textStyle: { fontSize: 12 }, borderWidth: 0, formatter: '{b} : {c} ({d}%)' }, series: [ { avoidLabelOverlap: !1, label: { show: !1 }, data: [ { name: '\u966A\u7EC3\u8BFE', value: '0.00' }, { name: '\u76F4\u64AD\u8BFE', value: '0.00' }, { name: '\u89C6\u9891\u8BFE', value: '0.00' }, { name: '\u4E50\u8C31', value: '0.00' }, { name: '\u5C0F\u9177Ai\u63A8\u5E7F', value: '0.00' }, { name: '\u76F4\u64AD\u8BFE\u63A8\u8350', value: '0.00' }, { name: '\u89C6\u9891\u8BFE\u63A8\u8350', value: '0.00' }, { name: '\u5546\u54C1\u63A8\u8350', value: '0.00' }, { name: '\u4E50\u8C31\u63A8\u8350', value: '0.00' }, { name: '\u6D3B\u52A8\u62A5\u540D', value: '0.00' } ], type: 'pie', radius: ['50%', '80%'] } ], grid: { bottom: '0%', containLabel: !0, left: '0%', right: '0%', top: '0%' }, toolbox: { feature: { saveAsImage: { show: !1 } } }, color: [ '#5B8FF9', '#01C1B5', '#91DD1C', '#FFA92C', '#BE7E2E', '#1C96DD', '#D22CFF', '#FF3C3C', '#1AEE3E', '#7c47ff' ] } Re([iO, eO, PR, ik, ek, PL, zI, Ik, Bk, ZL, RE, yO, HO, cL]) const fS = r => { const t = `./images/${r}` return { './images/icon_fly.png': TS, './images/icon_user.png': AS }[t] .default }, hS = [], Cl = Pi().year() let vS = 10 for (let r = Cl - 10; r <= Cl + 10; r++) hS.push({ text: `${r}\u5E74`, value: r }) var Hk = pS({ name: 'IncomeConsus', data() { return { moneyInfo: { totalSingleRate: 0, totalShareRate: 0, totalInAmount: 0, practiceAmount: 0, practiceRate: 0, liveAmount: 0, liveRate: 0, videoAmount: 0, videoRate: 0, musicAmount: 0, musicRate: 0, vipShareAmount: 0, vipShareRate: 0, liveShareAmount: 0, liveShareRate: 0, videoShareAmount: 0, videoShareRate: 0, mallShareAmount: 0, mallShareRate: 0, musicShareAmount: 0, musicShareRate: 0, actiRegistShareAmount: 0, actiRegistShareRate: 0 }, params: { timeType: 'YEAR', dateTime: `${Cl}` }, dateTimeStr: `${Cl}\u5E74`, myChart: null, myChart2: null, timerStatus: !1, currentDate: new Date() } }, async mounted() { ;(this.myChart = Vv(y0(document.getElementById('incomeClass')))), (this.myChart2 = Vv(y0(document.getElementById('structrueClass')))), this.getList() }, methods: { async getList() { try { const r = this.params, e = ( await xS.post('/api-teacher/userAccount/accountTotal', { data: r }) ).data || {} this.moneyInfo = { totalSingleRate: e.practiceRate + e.liveRate + e.videoRate + e.musicRate, totalShareRate: e.vipShareRate + e.liveShareRate + e.videoShareRate + e.musicShareRate + e.mallShareRate + e.actiRegistShareRate, totalInAmount: e.totalInAmount || 0, practiceAmount: e.practiceAmount || 0, practiceRate: e.practiceRate || 0, liveAmount: e.liveAmount || 0, liveRate: e.liveRate || 0, videoAmount: e.videoAmount || 0, videoRate: e.videoRate || 0, musicAmount: e.musicAmount || 0, musicRate: e.musicRate || 0, vipShareAmount: e.vipShareAmount || 0, vipShareRate: e.vipShareRate || 0, liveShareAmount: e.liveShareAmount || 0, liveShareRate: e.liveShareRate || 0, videoShareAmount: e.videoShareAmount || 0, videoShareRate: e.videoShareRate || 0, mallShareAmount: e.mallShareAmount || 0, mallShareRate: e.mallShareRate || 0, musicShareAmount: e.musicShareAmount || 0, musicShareRate: e.musicShareRate || 0, actiRegistShareAmount: e.actiRegistShareAmount || 0, actiRegistShareRate: e.actiRegistShareRate || 0 } const n = { xAxis: [], practiceAmount: [], liveAmount: [], videoAmount: [], musicAmount: [], vipShareAmount: [], liveShareAmount: [], videoShareAmount: [], mallShareAmount: [], musicShareAmount: [], actiRegistShareAmount: [] } ;(e.infoList || []).forEach(i => { r.timeType === 'YEAR' ? n.xAxis.push(Pi(i.timeStr).format('MM\u6708')) : r.timeType === 'MONTH' && n.xAxis.push(Pi(i.timeStr).format('DD\u65E5')), n.practiceAmount.push(i.practiceAmount), n.liveAmount.push(i.liveAmount), n.videoAmount.push(i.videoAmount), n.musicAmount.push(i.musicAmount), n.vipShareAmount.push(i.vipShareAmount), n.liveShareAmount.push(i.liveShareAmount), n.videoShareAmount.push(i.videoShareAmount), n.mallShareAmount.push(i.mallShareAmount), n.musicShareAmount.push(i.musicShareAmount), n.actiRegistShareAmount.push(i.actiRegistShareAmount) }), (Ce.xAxis.data = n.xAxis), (Ce.series[0].data = n.practiceAmount), (Ce.series[1].data = n.liveAmount), (Ce.series[2].data = n.videoAmount), (Ce.series[3].data = n.musicAmount), (Ce.series[4].data = n.vipShareAmount), (Ce.series[5].data = n.liveShareAmount), (Ce.series[6].data = n.videoShareAmount), (Ce.series[7].data = n.mallShareAmount), (Ce.series[8].data = n.musicShareAmount), (Ce.series[9].data = n.actiRegistShareAmount), this.myChart.clear(), this.myChart.setOption(Ce), (Be.series[0].data[0].value = e.practiceAmount), (Be.series[0].data[1].value = e.liveAmount), (Be.series[0].data[2].value = e.videoAmount), (Be.series[0].data[3].value = e.musicAmount), (Be.series[0].data[4].value = e.vipShareAmount), (Be.series[0].data[5].value = e.liveShareAmount), (Be.series[0].data[6].value = e.videoShareAmount), (Be.series[0].data[7].value = e.mallShareAmount), (Be.series[0].data[8].value = e.musicShareAmount), (Be.series[0].data[9].value = e.actiRegistShareAmount), this.myChart2.clear(), this.myChart2.setOption(Be) } catch {} } }, render() { return E('div', { style: { overflow: 'hidden' } }, [ E('div', { class: V.incomeConsus }, [ E( gS, { class: V.income, title: '\u603B\u6536\u5165(\u5143)' }, { label: () => E('span', { class: V.countPrice }, [ Ae(this.moneyInfo.totalInAmount) ]), value: () => E( 'span', { class: V.searchTime, onClick: () => (this.timerStatus = !0) }, [this.dateTimeStr] ) } ), E('div', { class: V.section }, [ E( mS, { class: V.numberCount }, { default: () => [ E( Fe, { span: 6 }, { default: () => [ E('i', null, null), E('div', { class: V.type }, [ E('span', null, [rt('\u966A\u7EC3\u8BFE')]), E('span', { class: V.price }, [ Ae(this.moneyInfo.practiceAmount) ]) ]) ] } ), E( Fe, { span: 6 }, { default: () => [ E('i', { class: V.color1 }, null), E('div', { class: V.type }, [ E('span', null, [rt('\u76F4\u64AD\u8BFE')]), E('span', { class: V.price }, [ Ae(this.moneyInfo.liveAmount) ]) ]) ] } ), E( Fe, { span: 6 }, { default: () => [ E('i', { class: V.color2 }, null), E('div', { class: V.type }, [ E('span', null, [rt('\u89C6\u9891\u8BFE')]), E('span', { class: V.price }, [ Ae(this.moneyInfo.videoAmount) ]) ]) ] } ), E( Fe, { span: 6 }, { default: () => [ E('i', { class: V.color3 }, null), E('div', { class: V.type }, [ E('span', null, [rt('\u4E50\u8C31')]), E('span', { class: V.price }, [ Ae(this.moneyInfo.musicAmount) ]) ]) ] } ), E( Fe, { span: 6 }, { default: () => [ E('i', { class: V.color4 }, null), E('div', { class: V.type }, [ E('span', null, [rt('\u5C0F\u9177Ai\u63A8\u5E7F')]), E('span', { class: V.price }, [ Ae(this.moneyInfo.vipShareAmount) ]) ]) ] } ), E( Fe, { span: 6 }, { default: () => [ E('i', { class: V.color5 }, null), E('div', { class: V.type }, [ E('span', null, [rt('\u76F4\u64AD\u8BFE\u63A8\u8350')]), E('span', { class: V.price }, [ Ae(this.moneyInfo.liveShareAmount) ]) ]) ] } ), E( Fe, { span: 6 }, { default: () => [ E('i', { class: V.color6 }, null), E('div', { class: V.type }, [ E('span', null, [rt('\u89C6\u9891\u8BFE\u63A8\u8350')]), E('span', { class: V.price }, [ Ae(this.moneyInfo.videoShareAmount) ]) ]) ] } ), E( Fe, { span: 6 }, { default: () => [ E('i', { class: V.color7 }, null), E('div', { class: V.type }, [ E('span', null, [rt('\u5546\u54C1\u63A8\u8350')]), E('span', { class: V.price }, [ Ae(this.moneyInfo.mallShareAmount) ]) ]) ] } ), E( Fe, { span: 6 }, { default: () => [ E('i', { class: V.color8 }, null), E('div', { class: V.type }, [ E('span', null, [rt('\u4E50\u8C31\u63A8\u8350')]), E('span', { class: V.price }, [ Ae(this.moneyInfo.musicShareAmount) ]) ]) ] } ), E( Fe, { span: 6 }, { default: () => [ E('i', { class: V.color9 }, null), E('div', { class: V.type }, [ E('span', null, [rt('\u6D3B\u52A8\u62A5\u540D')]), E('span', { class: V.price }, [ Ae(this.moneyInfo.actiRegistShareAmount) ]) ]) ] } ) ] } ) ]), E('div', { id: 'incomeClass', class: V.incomeLine }, null), E('div', { class: V.incomeTitle }, [ E('i', null, null), rt('\u6536\u5165\u7ED3\u6784') ]), E('div', { class: [V.pieSection, 'van-hairline--bottom'] }, [ E('div', { id: 'structrueClass', class: V.pieIncome }, null), E('div', { class: V.rateAll }, [ E('div', null, [ E('img', { src: fS('icon_user.png') }, null), E('span', null, [ rt('\u4E2A\u4EBA\u6536\u5165\u603B\u5360\u6BD4') ]), E('span', { class: V.rate }, [ this.moneyInfo.totalSingleRate, rt('%') ]) ]), E('div', null, [ E('img', { src: fS('icon_fly.png') }, null), E('span', null, [ rt('\u63A8\u5E7F\u6536\u76CA\u603B\u5360\u6BD4') ]), E('span', { class: V.rate }, [ this.moneyInfo.totalShareRate, rt('%') ]) ]) ]) ]), E('div', { class: V.pieData }, [ E('div', null, [ E('i', { class: V.piePractice }, null), E('span', { class: V.pieTitle }, [rt('\u966A\u7EC3\u8BFE')]), E('span', null, [this.moneyInfo.practiceRate, rt('%')]) ]), E('div', null, [ E('i', { class: V.pie1 }, null), E('span', { class: V.pieTitle }, [ rt('\u5C0F\u9177Ai\u63A8\u5E7F') ]), E('span', null, [this.moneyInfo.vipShareRate, rt('%')]) ]), E('div', null, [ E('i', { class: V.pieLive }, null), E('span', { class: V.pieTitle }, [rt('\u76F4\u64AD\u8BFE')]), E('span', null, [this.moneyInfo.liveRate, rt('%')]) ]), E('div', null, [ E('i', { class: V.pie2 }, null), E('span', { class: V.pieTitle }, [ rt('\u76F4\u64AD\u8BFE\u63A8\u8350') ]), E('span', null, [this.moneyInfo.liveShareRate, rt('%')]) ]), E('div', null, [ E('i', { class: V.pieVideo }, null), E('span', { class: V.pieTitle }, [rt('\u89C6\u9891\u8BFE')]), E('span', null, [this.moneyInfo.videoRate, rt('%')]) ]), E('div', null, [ E('i', { class: V.pie3 }, null), E('span', { class: V.pieTitle }, [ rt('\u89C6\u9891\u8BFE\u63A8\u8350') ]), E('span', null, [this.moneyInfo.videoShareRate, rt('%')]) ]), E('div', null, [ E('i', { class: V.pieMusic }, null), E('span', { class: V.pieTitle }, [rt('\u4E50\u8C31')]), E('span', null, [this.moneyInfo.musicRate, rt('%')]) ]), E('div', null, [ E('i', { class: V.pie5 }, null), E('span', { class: V.pieTitle }, [rt('\u4E50\u8C31\u63A8\u8350')]), E('span', null, [this.moneyInfo.musicShareRate, rt('%')]) ]), E('div', null, [ E('i', { class: V.pie6 }, null), E('span', { class: V.pieTitle }, [rt('\u6D3B\u52A8\u62A5\u540D')]), E('span', null, [this.moneyInfo.actiRegistShareRate, rt('%')]) ]), E('div', null, [ E('i', { class: V.pie4 }, null), E('span', { class: V.pieTitle }, [rt('\u5546\u54C1\u63A8\u8350')]), E('span', null, [this.moneyInfo.mallShareRate, rt('%')]) ]) ]) ]), E( yS, { show: this.timerStatus, 'onUpdate:show': r => (this.timerStatus = r), position: 'bottom', round: !0, zIndex: 99999999 }, { default: () => [ this.params.timeType === 'MONTH' && E( _S, { modelValue: this.currentDate, 'onUpdate:modelValue': r => (this.currentDate = r), type: 'year-month', title: '\u9009\u62E9\u65F6\u95F4', formatter: wS, onCancle: () => (this.timerStatus = !1), onConfirm: r => { ;(this.params.dateTime = Pi(r).format('YYYY-MM')), (this.dateTimeStr = Pi(r).format('YYYY\u5E74MM\u6708')), (this.timerStatus = !1), this.getList() } }, { 'columns-top': () => E('div', { class: V.timePopup }, [ E( eo, { type: 'primary', plain: this.params.timeType !== 'MONTH', size: 'mini', class: V.timeMonth, onClick: () => (this.params.timeType = 'MONTH') }, { default: () => [rt('\u6309\u6708')] } ), E( eo, { type: 'primary', plain: this.params.timeType !== 'YEAR', size: 'mini', class: V.timeYear, onClick: () => (this.params.timeType = 'YEAR') }, { default: () => [rt('\u6309\u5E74')] } ) ]) } ), this.params.timeType === 'YEAR' && E( SS, { modelValue: this.currentDate, 'onUpdate:modelValue': r => (this.currentDate = r), title: '\u9009\u62E9\u65F6\u95F4', columns: hS, defaultIndex: vS, onCancel: () => (this.timerStatus = !1), onConfirm: (r, t) => { ;(this.params.dateTime = r.value), (vS = t), (this.dateTimeStr = r.text), (this.timerStatus = !1), this.getList() } }, { 'columns-top': () => E('div', { class: V.timePopup }, [ E( eo, { type: 'primary', plain: this.params.timeType !== 'MONTH', size: 'mini', class: V.timeMonth, onClick: () => (this.params.timeType = 'MONTH') }, { default: () => [rt('\u6309\u6708')] } ), E( eo, { type: 'primary', plain: this.params.timeType !== 'YEAR', onClick: () => (this.params.timeType = 'YEAR'), size: 'mini', class: V.timeYear }, { default: () => [rt('\u6309\u5E74')] } ) ]) } ) ] } ) ]) } }) export { Hk as default, fS as getAssetsHomeFile }