(window.webpackJsonp = window.webpackJsonp || []).push([ [0], { '4ASp': function(iu, Ci, Pi) { (function(wi) { (function(J, K) { K(Ci); })(this, function(J) { 'use strict'; var K = function(r) { return r !== null && typeof r != 'function' && isFinite(r.length); }, Mi = function(r, a) { return K(r) ? r.indexOf(a) > -1 : !1; }, de = function(r, a) { if (!K(r)) return r; for (var e = [], t = 0; t < r.length; t++) { var n = r[t]; a(n, t) && e.push(n); } return e; }, bi = {}.toString, St = function(r, a) { return bi.call(r) === '[object ' + a + ']'; }, F = function(r) { return St(r, 'Function'); }, w = function(r) { return r == null; }, k = function(r) { return Array.isArray ? Array.isArray(r) : St(r, 'Array'); }, j = function(r) { var a = typeof r; return (r !== null && a === 'object') || a === 'function'; }; function C(i, r) { if (!i) return; var a; if (k(i)) for (var e = 0, t = i.length; e < t && !((a = r(i[e], e)), a === !1); e++); else if (j(i)) { for (var n in i) if (i.hasOwnProperty(n) && ((a = r(i[n], n)), a === !1)) break; } } var Ti = Object.keys ? function(i) { return Object.keys(i); } : function(i) { var r = []; return ( C(i, function(a, e) { (F(i) && e === 'prototype') || r.push(e); }), r ); }; function Di(i, r) { var a = Ti(r), e = a.length; if (w(i)) return !e; for (var t = 0; t < e; t += 1) { var n = a[t]; if (r[n] !== i[n] || !(n in i)) return !1; } return !0; } var me = function(r) { return typeof r == 'object' && r !== null; }, Tt = function(r) { if (!me(r) || !St(r, 'Object')) return !1; if (Object.getPrototypeOf(r) === null) return !0; for (var a = r; Object.getPrototypeOf(a) !== null; ) a = Object.getPrototypeOf(a); return Object.getPrototypeOf(r) === a; }; function Ei(i, r) { if (!k(i)) return null; var a; if ( (F(r) && (a = r), Tt(r) && (a = function(n) { return Di(n, r); }), a) ) { for (var e = 0; e < i.length; e += 1) if (a(i[e])) return i[e]; } return null; } var Ai = function(r) { var a = r.filter(function(o) { return !isNaN(o); }); if (!a.length) return { min: 0, max: 0 }; if (k(r[0])) { for (var e = [], t = 0; t < r.length; t++) e = e.concat(r[t]); a = e; } var n = Math.max.apply(null, a), s = Math.min.apply(null, a); return { min: s, max: n }; }, B = function(r) { return St(r, 'String'); }, ur = function(r) { var a = []; return ( C(r, function(e) { Mi(a, e) || a.push(e); }), a ); }; function ot(i) { return K(i) ? i[0] : void 0; } function Q(i) { if (K(i)) { var r = i; return r[r.length - 1]; } return; } var ye = function(r, a) { var e = a.toString(), t = e.indexOf('.'); if (t === -1) return Math.round(r); var n = e.substr(t + 1).length; return n > 20 && (n = 20), parseFloat(r.toFixed(n)); }, X = function(r) { return St(r, 'Number'); }, cr = function(r) { return w(r) ? '' : r.toString(); }, fr = function(r) { var a = cr(r); return a.charAt(0).toLowerCase() + a.substring(1); }, lt = function(r) { var a = cr(r); return a.charAt(0).toUpperCase() + a.substring(1); }, ki = {}.toString, Ii = function(r) { return ki .call(r) .replace(/^\[object /, '') .replace(/]$/, ''); }, hr = function(r) { return St(r, 'Boolean'); }, Vt = function(r) { return St(r, 'Date'); }, Oi = Object.prototype, Ri = function(r) { var a = r && r.constructor, e = (typeof a == 'function' && a.prototype) || Oi; return r === e; }; function xe(i, r) { for (var a in r) r.hasOwnProperty(a) && a !== 'constructor' && r[a] !== void 0 && (i[a] = r[a]); } function _(i, r, a, e) { return r && xe(i, r), a && xe(i, a), e && xe(i, e), i; } var Ni = 5; function vr(i, r, a, e) { (a = a || 0), (e = e || Ni); for (var t in r) if (r.hasOwnProperty(t)) { var n = r[t]; n !== null && Tt(n) ? (Tt(i[t]) || (i[t] = {}), a < e ? vr(i[t], n, a + 1, e) : (i[t] = r[t])) : k(n) ? ((i[t] = []), (i[t] = i[t].concat(n))) : n !== void 0 && (i[t] = n); } } var z = function(r) { for (var a = [], e = 1; e < arguments.length; e++) a[e - 1] = arguments[e]; for (var t = 0; t < a.length; t += 1) vr(r, a[t]); return r; }, _e = function(r, a) { if (!K(r)) return -1; var e = Array.prototype.indexOf; if (e) return e.call(r, a); for (var t = -1, n = 0; n < r.length; n++) if (r[n] === a) { t = n; break; } return t; }, Yi = Object.prototype.hasOwnProperty; function Fi(i) { if (w(i)) return !0; if (K(i)) return !i.length; var r = Ii(i); if (r === 'Map' || r === 'Set') return !i.size; if (Ri(i)) return !Object.keys(i).length; for (var a in i) if (Yi.call(i, a)) return !1; return !0; } var Li = function i(r, a) { if (r === a) return !0; if (!r || !a) return !1; if (B(r) || B(a)) return !1; if (K(r) || K(a)) { if (r.length !== a.length) return !1; for (var e = !0, t = 0; t < r.length && !((e = i(r[t], a[t])), !e); t++); return e; } if (me(r) || me(a)) { var n = Object.keys(r), s = Object.keys(a); if (n.length !== s.length) return !1; for (var e = !0, t = 0; t < n.length && !((e = i(r[n[t]], a[n[t]])), !e); t++); return e; } return !1; }, gr = function(r, a) { if (!K(r)) return r; for (var e = [], t = 0; t < r.length; t++) { var n = r[t]; e.push(a(n, t)); } return e; }; function pr(i) { return w(i) ? 0 : K(i) ? i.length : Object.keys(i).length; } function dr(i) { for (var r = [], a = 0, e = i.length; a < e; a++) r = r.concat(i[a]); return r; } function mr(i, r) { for (var a = [], e = {}, t = 0, n = i.length; t < n; t++) { var s = i[t], o = s[r]; w(o) || (k(o) ? C(o, function(l) { e[l] || (a.push(l), (e[l] = !0)); }) : e[o] || (a.push(o), (e[o] = !0))); } return a; } function Se(i, r) { for (var a = null, e = 0, t = i.length; e < t; e++) { var n = i[e], s = n[r]; if (!w(s)) { k(s) ? (a = s[0]) : (a = s); break; } } return a; } function yr(i, r) { if (!r) return { 0: i }; for ( var a = function(u) { for (var c = '_', f = 0, h = r.length; f < h; f++) c += u[r[f]] && u[r[f]].toString(); return c; }, e = {}, t = 0, n = i.length; t < n; t++ ) { var s = i[t], o = a(s); e[o] ? e[o].push(s) : (e[o] = [s]); } return e; } function xr(i, r, a) { if ((a === void 0 && (a = {}), !r)) return [i]; var e = yr(i, r), t = []; if (r.length === 1 && a[r[0]]) { var n = a[r[0]]; C(n, function(o) { (o = '_' + o), t.push(e[o]); }); } else for (var s in e) t.push(e[s]); return t; } function Wt(i, r) { if (!i) return; var a = i.indexOf(r); a !== -1 && i.splice(a, 1); } function Ce(i) { if (!i.length) return { min: 0, max: 0 }; var r = Math.max.apply(null, i), a = Math.min.apply(null, i); return { min: a, max: r }; } var Bi = Object.freeze({ __proto__: null, merge: dr, values: mr, firstValue: Se, group: xr, groupToMap: yr, remove: Wt, getRange: Ce, }), zi = (function() { var i = !1; try { var r = Object.defineProperty({}, 'passive', { get: function() { i = !0; }, }); window.addEventListener('e', null, r); } catch (a) {} return i; })(), _r = zi ? { passive: !0 } : !1, Xi = typeof wx == 'object' && typeof wx.getSystemInfoSync == 'function', Gi = typeof my == 'object' && typeof my.getSystemInfoSync == 'function', Hi = typeof wi && !typeof window, Ui = typeof window != 'undefined' && typeof window.document != 'undefined' && typeof window.sessionStorage != 'undefined'; function Sr(i) { return !i || typeof i != 'object' ? !1 : i.nodeType === 1 && i.nodeName ? !0 : !!i.isCanvasElement; } function Cr() { return (window && window.devicePixelRatio) || 1; } function Ct(i, r) { return i.currentStyle ? i.currentStyle[r] : document.defaultView.getComputedStyle(i, null).getPropertyValue(r); } function Pe(i) { var r = Ct(i, 'width'); return r === 'auto' && (r = i.offsetWidth), parseFloat(r); } function we(i) { var r = Ct(i, 'height'); return r === 'auto' && (r = i.offsetHeight), parseFloat(r); } function Pr(i) { return i ? document.getElementById(i) : null; } function qt(i, r) { var a = r.get('el'); if (!a) return i; var e = a.getBoundingClientRect(), t = e.top, n = e.right, s = e.bottom, o = e.left, l = parseFloat(Ct(a, 'padding-left')), u = parseFloat(Ct(a, 'padding-top')), c = parseFloat(Ct(a, 'padding-right')), f = parseFloat(Ct(a, 'padding-bottom')), h = n - o - l - c, v = s - t - u - f, g = r.get('pixelRatio'), p = (((i.x - o - l) / h) * a.width) / g, m = (((i.y - t - u) / v) * a.height) / g; return { x: p, y: m }; } function wr(i, r, a) { i.addEventListener(r, a, _r); } function Mr(i, r, a) { i.removeEventListener(r, a, _r); } function br(i, r, a, e, t) { return { type: i, chart: r, native: t || null, x: a !== void 0 ? a : null, y: e !== void 0 ? e : null, }; } function Me(i, r) { var a = i.type, e; if (i.touches) { var t = i.changedTouches[0] || {}, n = t.x, s = t.y, o = t.clientX, l = t.clientY; if (n && s) return br(a, r, n, s, i); e = { x: o, y: l }; } else e = { x: i.clientX, y: i.clientY }; var u = r.get('canvas'), c = qt(e, u); return br(a, r, c.x, c.y, i); } function be(i, r, a) { return ( a || (a = document.createElement('canvas').getContext('2d')), (a.font = r || '12px sans-serif'), a.measureText(i) ); } function ji(i, r) { (i = Object.assign({}, i)), (r = Object.assign({}, r)); var a = Object.getOwnPropertyNames(i), e = Object.getOwnPropertyNames(r); if (a.length !== e.length) return !1; for (var t = 0, n = a.length; t < n; t++) { var s = a[t]; if (i[s] !== r[s]) return !1; } return !0; } function q(i) { var r, a, e, t; return ( X(i) || B(i) ? (r = e = t = a = i) : k(i) && ((r = i[0]), (a = w(i[1]) ? i[0] : i[1]), (e = w(i[2]) ? i[0] : i[2]), (t = w(i[3]) ? a : i[3])), [r, a, e, t] ); } function $t(i, r) { return i === void 0 ? !0 : typeof i == 'string' ? i.indexOf(r) !== -1 : !1; } function Yt(i) { return ( B(i) && (i.indexOf('T') > 0 ? (i = new Date(i).getTime()) : (i = new Date(i.replace(/-/gi, '/')).getTime())), Vt(i) && (i = i.getTime()), i ); } var Tr = Object.freeze({ __proto__: null, Array: Bi, upperFirst: lt, lowerFirst: fr, isString: B, isNumber: X, isBoolean: hr, isFunction: F, isDate: Vt, isArray: k, isNil: w, isObject: j, isPlainObject: Tt, isEqual: Li, deepMix: z, mix: _, each: C, uniq: ur, find: Ei, isObjectValueEqual: ji, parsePadding: q, directionEnabled: $t, toTimeStamp: Yt, isWx: Xi, isMy: Gi, isNode: Hi, isBrowser: Ui, isCanvasElement: Sr, getPixelRatio: Cr, getStyle: Ct, getWidth: Pe, getHeight: we, getDomById: Pr, getRelativePosition: qt, addEventListener: wr, removeEventListener: Mr, createEvent: Me, measureText: be, }), Dr = '#E8E8E8', Vi = '#808080', Pt = { label: { fill: Vi, fontSize: 10 }, line: { stroke: Dr, lineWidth: 1 }, grid: { type: 'line', stroke: Dr, lineWidth: 1, lineDash: [2] }, tickLine: null, labelOffset: 7.5, }, Wi = { fontFamily: '"Helvetica Neue", "San Francisco", Helvetica, Tahoma, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", sans-serif', defaultColor: '#1890FF', pixelRatio: 1, padding: 'auto', appendPadding: 15, colors: [ '#1890FF', '#2FC25B', '#FACC14', '#223273', '#8543E0', '#13C2C2', '#3436C7', '#F04864', ], shapes: { line: ['line', 'dash'], point: ['circle', 'hollowCircle'] }, sizes: [4, 10], axis: { common: Pt, bottom: _({}, Pt, { grid: null }), left: _({}, Pt, { line: null }), right: _({}, Pt, { line: null }), circle: _({}, Pt, { line: null }), radius: _({}, Pt, { labelOffset: 4 }), }, shape: { line: { lineWidth: 2, lineJoin: 'round', lineCap: 'round' }, point: { lineWidth: 0, size: 3 }, area: { fillOpacity: 0.1 }, }, _defaultAxis: Pt, }, D = { version: '3.7.7', scales: {}, widthRatio: { column: 1 / 2, rose: 0.999999, multiplePie: 3 / 4 }, lineDash: [4, 4], }; (D.setTheme = function(i) { z(this, i); }), D.setTheme(Wi); function N(i, r, a) { return ( r in i ? Object.defineProperty(i, r, { value: a, enumerable: !0, configurable: !0, writable: !0, }) : (i[r] = a), i ); } function Zt() { return ( (Zt = Object.assign || function(i) { for (var r = 1; r < arguments.length; r++) { var a = arguments[r]; for (var e in a) Object.prototype.hasOwnProperty.call(a, e) && (i[e] = a[e]); } return i; }), Zt.apply(this, arguments) ); } function E(i, r) { (i.prototype = Object.create(r.prototype)), (i.prototype.constructor = i), (i.__proto__ = r); } function Jt(i) { if (i === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return i; } var Te = 'afterinit', qi = 'beforerender', $i = 'afterrender', Zi = 'beforedatachange', Ft = 'afterdatachange', De = '_aftersizechange', Ji = '_aftergeominit', Ki = 'beforegeomdraw', Qi = 'aftergeomdraw', tn = 'clear', en = 'clearinner', rn = 'repaint', Ee = (function() { function i() { this.__events = {}; } var r = i.prototype; return ( (r.on = function(e, t) { if (!e || !t) return; var n = this.__events[e] || []; n.push(t), (this.__events[e] = n); }), (r.emit = function(e, t) { var n = this; if ((j(e) && ((t = e), (e = t && t.type)), !e)) return; var s = this.__events[e]; if (!s || !s.length) return; s.forEach(function(o) { o.call(n, t); }); }), (r.off = function(e, t) { var n = this.__events, s = n[e]; if (!s || !s.length) return; if (!t) { delete n[e]; return; } for (var o = 0, l = s.length; o < l; o++) s[o] === t && (s.splice(o, 1), o--); }), i ); })(), Er = (function(i) { E(a, i); var r = a.prototype; r.getDefaultCfg = function() { return {}; }; function a(e) { var t; t = i.call(this) || this; var n = {}, s = t.getDefaultCfg(); return (t._attrs = n), _(n, s, e), t; } return ( (r.get = function(t) { return this._attrs[t]; }), (r.set = function(t, n) { this._attrs[t] = n; }), (r.destroy = function() { (this._attrs = {}), (this.destroyed = !0); }), a ); })(Ee), an = (function() { function i(a) { _(this, a), this._init(); } var r = i.prototype; return ( (r._init = function() { var e = this, t = e.start, n = e.end, s = Math.min(t.x, n.x), o = Math.max(t.x, n.x), l = Math.min(t.y, n.y), u = Math.max(t.y, n.y); (this.tl = { x: s, y: l }), (this.tr = { x: o, y: l }), (this.bl = { x: s, y: u }), (this.br = { x: o, y: u }), (this.width = o - s), (this.height = u - l); }), (r.reset = function(e, t) { (this.start = e), (this.end = t), this._init(); }), (r.isInRange = function(e, t) { j(e) && ((t = e.y), (e = e.x)); var n = this.tl, s = this.br; return n.x <= e && e <= s.x && n.y <= t && t <= s.y; }), i ); })(), G = { generateDefault: function() { return [1, 0, 0, 1, 0, 0]; }, isChanged: function(r) { return ( r[0] !== 1 || r[1] !== 0 || r[2] !== 0 || r[3] !== 1 || r[4] !== 0 || r[5] !== 0 ); }, multiply: function(r, a) { var e = r[0] * a[0] + r[2] * a[1], t = r[1] * a[0] + r[3] * a[1], n = r[0] * a[2] + r[2] * a[3], s = r[1] * a[2] + r[3] * a[3], o = r[0] * a[4] + r[2] * a[5] + r[4], l = r[1] * a[4] + r[3] * a[5] + r[5]; return [e, t, n, s, o, l]; }, scale: function(r, a, e) { return ( (r[0] = a[0] * e[0]), (r[1] = a[1] * e[0]), (r[2] = a[2] * e[1]), (r[3] = a[3] * e[1]), (r[4] = a[4]), (r[5] = a[5]), r ); }, rotate: function(r, a, e) { var t = Math.cos(e), n = Math.sin(e), s = a[0] * t + a[2] * n, o = a[1] * t + a[3] * n, l = a[0] * -n + a[2] * t, u = a[1] * -n + a[3] * t; return ( (r[0] = s), (r[1] = o), (r[2] = l), (r[3] = u), (r[4] = a[4]), (r[5] = a[5]), r ); }, translate: function(r, a, e) { return ( (r[0] = a[0]), (r[1] = a[1]), (r[2] = a[2]), (r[3] = a[3]), (r[4] = a[4] + a[0] * e[0] + a[2] * e[1]), (r[5] = a[5] + a[1] * e[0] + a[3] * e[1]), r ); }, transform: function(r, a) { for (var e = [].concat(r), t = 0, n = a.length; t < n; t++) { var s = a[t]; switch (s[0]) { case 't': G.translate(e, e, [s[1], s[2]]); break; case 's': G.scale(e, e, [s[1], s[2]]); break; case 'r': G.rotate(e, e, s[1]); break; } } return e; }, }, A = { create: function() { return [0, 0]; }, length: function(r) { var a = r[0], e = r[1]; return Math.sqrt(a * a + e * e); }, normalize: function(r, a) { var e = this.length(a); return ( e === 0 ? ((r[0] = 0), (r[1] = 0)) : ((r[0] = a[0] / e), (r[1] = a[1] / e)), r ); }, add: function(r, a, e) { return (r[0] = a[0] + e[0]), (r[1] = a[1] + e[1]), r; }, sub: function(r, a, e) { return (r[0] = a[0] - e[0]), (r[1] = a[1] - e[1]), r; }, scale: function(r, a, e) { return (r[0] = a[0] * e), (r[1] = a[1] * e), r; }, dot: function(r, a) { return r[0] * a[0] + r[1] * a[1]; }, direction: function(r, a) { return r[0] * a[1] - a[0] * r[1]; }, angle: function(r, a) { var e = this.dot(r, a) / (this.length(r) * this.length(a)); return Math.acos(e); }, angleTo: function(r, a, e) { var t = this.angle(r, a), n = this.direction(r, a) >= 0; return e ? (n ? Math.PI * 2 - t : t) : n ? t : Math.PI * 2 - t; }, zero: function(r) { return r[0] === 0 && r[1] === 0; }, distance: function(r, a) { var e = a[0] - r[0], t = a[1] - r[1]; return Math.sqrt(e * e + t * t); }, clone: function(r) { return [r[0], r[1]]; }, min: function(r, a, e) { return (r[0] = Math.min(a[0], e[0])), (r[1] = Math.min(a[1], e[1])), r; }, max: function(r, a, e) { return (r[0] = Math.max(a[0], e[0])), (r[1] = Math.max(a[1], e[1])), r; }, transformMat2d: function(r, a, e) { var t = a[0], n = a[1]; return (r[0] = e[0] * t + e[2] * n + e[4]), (r[1] = e[1] * t + e[3] * n + e[5]), r; }, }, nn = [1, 0, 0, 1, 0, 0], Dt = (function() { var i = r.prototype; i._initDefaultCfg = function() {}; function r(a) { this._initDefaultCfg(), _(this, a); var e, t; this.plot ? ((e = this.plot.bl), (t = this.plot.tr), (this.start = e), (this.end = t)) : ((e = this.start), (t = this.end)), this.init(e, t); } return ( (i._scale = function(e, t) { var n = this.matrix, s = this.center; G.translate(n, n, [s.x, s.y]), G.scale(n, n, [e, t]), G.translate(n, n, [-s.x, -s.y]); }), (i.init = function(e, t) { (this.matrix = [].concat(nn)), (this.center = { x: (t.x - e.x) / 2 + e.x, y: (t.y - e.y) / 2 + e.y }), this.scale && this._scale(this.scale[0], this.scale[1]); }), (i.convertPoint = function(e) { var t = this._convertPoint(e), n = t.x, s = t.y; if (!G.isChanged(this.matrix)) return { x: n, y: s }; var o = [n, s]; return A.transformMat2d(o, o, this.matrix), { x: o[0], y: o[1] }; }), (i.invertPoint = function(e) { return this._invertPoint(e); }), (i._convertPoint = function(e) { return e; }), (i._invertPoint = function(e) { return e; }), (i.reset = function(e) { this.plot = e; var t = e.bl, n = e.tr; (this.start = t), (this.end = n), this.init(t, n); }), r ); })(), Ar = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.type = 'cartesian'), (this.transposed = !1), (this.isRect = !0); }), (a.init = function(t, n) { i.prototype.init.call(this, t, n), (this.x = { start: t.x, end: n.x }), (this.y = { start: t.y, end: n.y }); }), (a._convertPoint = function(t) { var n = this, s = n.transposed, o = s ? 'y' : 'x', l = s ? 'x' : 'y', u = n.x, c = n.y; return { x: u.start + (u.end - u.start) * t[o], y: c.start + (c.end - c.start) * t[l], }; }), (a._invertPoint = function(t) { var n = this, s = n.transposed, o = s ? 'y' : 'x', l = s ? 'x' : 'y', u = n.x, c = n.y, f = {}; return ( (f[o] = (t.x - u.start) / (u.end - u.start)), (f[l] = (t.y - c.start) / (c.end - c.start)), f ); }), r ); })(Dt); (Dt.Cartesian = Ar), (Dt.Rect = Ar); function kr(i, r) { return B(r) ? r : i.invert(i.scale(r)); } var Kt = (function() { function i(a) { var e = this; (this.type = 'base'), (this.name = null), (this.method = null), (this.values = []), (this.scales = []), (this.linear = null); var t = null, n = this.callback; if (a.callback) { var s = a.callback; t = function() { for (var l = arguments.length, u = new Array(l), c = 0; c < l; c++) u[c] = arguments[c]; var f = s.apply(void 0, u); return w(f) && (f = n.apply(e, u)), f; }; } _(this, a), t && _(this, { callback: t }); } var r = i.prototype; return ( (r._getAttrValue = function(e, t) { var n = this.values; if (e.isCategory && !this.linear) { var s = e.translate(t); return n[s % n.length]; } var o = e.scale(t); return this.getLinearValue(o); }), (r.getLinearValue = function(e) { var t = this.values, n = t.length - 1, s = Math.floor(n * e), o = n * e - s, l = t[s], u = s === n ? l : t[s + 1], c = l + (u - l) * o; return c; }), (r.callback = function(e) { var t = this, n = t.scales[0], s = null; return n.type === 'identity' ? (s = n.value) : (s = t._getAttrValue(n, e)), s; }), (r.getNames = function() { for ( var e = this.scales, t = this.names, n = Math.min(e.length, t.length), s = [], o = 0; o < n; o++ ) s.push(t[o]); return s; }), (r.getFields = function() { var e = this.scales, t = []; return ( C(e, function(n) { t.push(n.field); }), t ); }), (r.getScale = function(e) { var t = this.scales, n = this.names, s = n.indexOf(e); return t[s]; }), (r.mapping = function() { for ( var e = this.scales, t = this.callback, n = arguments.length, s = new Array(n), o = 0; o < n; o++ ) s[o] = arguments[o]; var l = s; if (t) { for (var u = 0, c = s.length; u < c; u++) s[u] = this._toOriginParam(s[u], e[u]); l = t.apply(this, s); } return (l = [].concat(l)), l; }), (r._toOriginParam = function(e, t) { var n = e; if (!t.isLinear) if (k(e)) { n = []; for (var s = 0, o = e.length; s < o; s++) n.push(kr(t, e[s])); } else n = kr(t, e); return n; }), i ); })(), sn = (function(i) { E(r, i); function r(e) { var t; return ( (t = i.call(this, e) || this), (t.names = ['x', 'y']), (t.type = 'position'), t ); } var a = r.prototype; return ( (a.mapping = function(t, n) { var s = this.scales, o = this.coord, l = s[0], u = s[1], c, f, h; if (w(t) || w(n)) return []; if (k(n) && k(t)) { (c = []), (f = []); for (var v = 0, g = 0, p = t.length, m = n.length; v < p && g < m; v++, g++) (h = o.convertPoint({ x: l.scale(t[v]), y: u.scale(n[g]) })), c.push(h.x), f.push(h.y); } else if (k(n)) (t = l.scale(t)), (f = []), C(n, function(y) { (y = u.scale(y)), (h = o.convertPoint({ x: t, y })), c && c !== h.x ? (k(c) || (c = [c]), c.push(h.x)) : (c = h.x), f.push(h.y); }); else if (k(t)) (n = u.scale(n)), (c = []), C(t, function(y) { (y = l.scale(y)), (h = o.convertPoint({ x: y, y: n })), f && f !== h.y ? (k(f) || (f = [f]), f.push(h.y)) : (f = h.y), c.push(h.x); }); else { (t = l.scale(t)), (n = u.scale(n)); var d = o.convertPoint({ x: t, y: n }); (c = d.x), (f = d.y); } return [c, f]; }), r ); })(Kt), on = (function(i) { E(r, i); function r(e) { var t; return ( (t = i.call(this, e) || this), (t.names = ['shape']), (t.type = 'shape'), (t.gradient = null), t ); } var a = r.prototype; return ( (a.getLinearValue = function(t) { var n = this.values, s = Math.round((n.length - 1) * t); return n[s]; }), r ); })(Kt), ln = (function(i) { E(r, i); function r(a) { var e; return ( (e = i.call(this, a) || this), (e.names = ['size']), (e.type = 'size'), (e.gradient = null), e ); } return r; })(Kt); function Ae(i, r, a, e) { var t = i[e] + (r[e] - i[e]) * a; return t; } function Ir(i) { return '#' + ke(i[0]) + ke(i[1]) + ke(i[2]); } function ke(i) { return (i = Math.round(i)), (i = i.toString(16)), i.length === 1 && (i = '0' + i), i; } function un(i, r) { var a = i.length - 1, e = Math.floor(a * r), t = a * r - e, n = i[e], s = e === a ? n : i[e + 1], o = Ir([Ae(n, s, t, 0), Ae(n, s, t, 1), Ae(n, s, t, 2)]); return o; } function cn(i) { var r = []; return ( r.push(parseInt(i.substr(1, 2), 16)), r.push(parseInt(i.substr(3, 2), 16)), r.push(parseInt(i.substr(5, 2), 16)), r ); } var Qt = { black: '#000000', blue: '#0000ff', grey: '#808080', green: '#008000', orange: '#ffa500', pink: '#ffc0cb', purple: '#800080', red: '#ff0000', white: '#ffffff', yellow: '#ffff00', }; function fn(i) { if (Qt[i]) return Qt[i]; if (i[0] === '#') { if (i.length === 7) return i; var r = i.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function(e, t, n, s) { return '#' + t + t + n + n + s + s; }); return (Qt[i] = r), r; } var a = i.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i); return a.shift(), (a = Ir(a)), (Qt[i] = a), a; } function hn(i) { var r = []; return ( B(i) && (i = i.split('-')), C(i, function(a) { a.indexOf('#') === -1 && (a = fn(a)), r.push(cn(a)); }), function(a) { return un(r, a); } ); } var vn = (function(i) { E(r, i); function r(e) { var t; return ( (t = i.call(this, e) || this), (t.names = ['color']), (t.type = 'color'), (t.gradient = null), B(t.values) && (t.linear = !0), t ); } var a = r.prototype; return ( (a.getLinearValue = function(t) { var n = this.gradient; if (!n) { var s = this.values; (n = hn(s)), (this.gradient = n); } return n(t); }), r ); })(Kt), gn = Object.freeze({ __proto__: null, Position: sn, Shape: on, Size: ln, Color: vn }), Y = {}, pn = { _coord: null, draw: function(r, a) { this.drawShape && this.drawShape(r, a); }, setCoord: function(r) { this._coord = r; }, parsePoint: function(r) { var a = this._coord; return ( a.isPolar && (r.x === 1 && (r.x = 0.9999999), r.y === 1 && (r.y = 0.9999999)), a.convertPoint(r) ); }, parsePoints: function(r) { if (!r) return !1; var a = this, e = []; return ( r.forEach(function(t) { e.push(a.parsePoint(t)); }), e ); }, }, dn = { defaultShapeType: null, setCoord: function(r) { this._coord = r; }, getShape: function(r) { var a = this; k(r) && (r = r[0]); var e = a[r] || a[a.defaultShapeType]; return (e._coord = a._coord), e; }, getShapePoints: function(r, a) { var e = this.getShape(r), t = e.getPoints || e.getShapePoints || this.getDefaultPoints, n = t(a); return n; }, getDefaultPoints: function() { return []; }, drawShape: function(r, a, e) { var t = this.getShape(r); return a.color || (a.color = D.colors[0]), t.draw(a, e); }, }; (Y.registerFactory = function(i, r) { var a = lt(i), e = _({}, dn, r); return (Y[a] = e), (e.name = i), e; }), (Y.registerShape = function(i, r, a) { var e = lt(i), t = Y[e], n = _({}, pn, a); return (t[r] = n), n; }), (Y.registShape = Y.registerShape), (Y.getShapeFactory = function(i) { var r = this; i = i || 'point'; var a = lt(i); return r[a]; }); function Ie(i, r) { for (var a in r) r.hasOwnProperty(a) && a !== 'constructor' && r[a] !== void 0 && (i[a] = r[a]); } var mn = function(r, a, e, t) { return a && Ie(r, a), e && Ie(r, e), t && Ie(r, t), r; }, yn = mn, xn = (function() { var i = r.prototype; i._initDefaultCfg = function() { this.adjustNames = ['x', 'y']; }; function r(a) { this._initDefaultCfg(), yn(this, a); } return (i.processAdjust = function() {}), r; })(), ft = xn, _n = ['color', 'size', 'shape'], it = '_origin', te = '_originY'; function Or(i) { return k(i) ? i : B(i) ? i.split('*') : [i]; } var V = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a.getDefaultCfg = function() { return { type: null, data: null, attrs: {}, scales: {}, container: null, styleOptions: null, chart: null, shapeType: '', generatePoints: !1, attrOptions: {}, sortable: !1, startOnZero: !0, visible: !0, connectNulls: !1, ignoreEmptyGroup: !1, isInit: !1, }; }), (a.init = function() { var t = this, n = t.get('isInit'); if (n) return; t._initAttrs(), t._processData(), t.set('isInit', !0); }), (a._getGroupScales = function() { var t = this, n = []; return ( C(_n, function(s) { var o = t.getAttr(s); if (o) { var l = o.scales; C(l, function(u) { u && u.isCategory && n.indexOf(u) === -1 && n.push(u); }); } }), n ); }), (a._groupData = function(t) { var n = this, s = n.get('colDefs'), o = n._getGroupScales(); if (o.length) { var l = {}, u = []; return ( C(o, function(c) { var f = c.field; u.push(f), s && s[f] && s[f].values && (l[c.field] = s[f].values); }), xr(t, u, l) ); } return [t]; }), (a._setAttrOptions = function(t, n) { var s = this.get('attrOptions'); s[t] = n; var o = this.get('attrs'); Object.keys(o).length && this._createAttr(t, n); }), (a._createAttrOption = function(t, n, s, o) { var l = {}; (l.field = n), s ? (F(s) ? (l.callback = s) : (l.values = s)) : (l.values = o), this._setAttrOptions(t, l); }), (a._createAttr = function(t, n) { var s = this, o = s.get('attrs'), l = s.get('coord'), u = lt(t), c = Or(n.field); t === 'position' && (n.coord = l); for (var f = [], h = 0, v = c.length; h < v; h++) { var g = c[h], p = s._createScale(g); f.push(p); } if (t === 'position') { var m = f[1]; l.type === 'polar' && l.transposed && s.hasAdjust('stack') && m.values.length && m.change({ nice: !1, min: 0, max: Math.max.apply(null, m.values) }); } n.scales = f; var d = new gn[u](n); return (o[t] = d), d; }), (a._initAttrs = function() { var t = this, n = t.get('attrOptions'); for (var s in n) n.hasOwnProperty(s) && this._createAttr(s, n[s]); }), (a._createScale = function(t) { var n = this.get('scales'), s = n[t]; return s || ((s = this.get('chart').createScale(t)), (n[t] = s)), s; }), (a._processData = function() { var t = this, n = this.get('data'), s = [], o = this._groupData(n); if (this.get('ignoreEmptyGroup')) { var l = this.getYScale(); o = o.filter(function(v) { return v.some(function(g) { return typeof g[l.field] != 'undefined'; }); }); } for (var u = 0, c = o.length; u < c; u++) { var f = o[u], h = t._saveOrigin(f); this.hasAdjust('dodge') && t._numberic(h), s.push(h); } return ( t.get('adjust') && t._adjustData(s), t.get('sortable') && t._sort(s), t.emit('afterprocessdata', { dataArray: s }), t.set('mappingData', s), t.set('dataArray', s), s ); }), (a._saveOrigin = function(t) { for (var n = [], s = 0, o = t.length; s < o; s++) { var l = t[s], u = {}; for (var c in l) u[c] = l[c]; (u[it] = l), n.push(u); } return n; }), (a._numberic = function(t) { for ( var n = this.getAttr('position'), s = n.scales, o = 0, l = t.length; o < l; o++ ) for (var u = t[o], c = Math.min(2, s.length), f = 0; f < c; f++) { var h = s[f]; if (h.isCategory) { var v = h.field; u[v] = h.translate(u[v]); } } }), (a._adjustData = function(t) { var n = this, s = n.get('adjust'); if (s) { var o = lt(s.type); if (!ft[o]) throw new Error('not support such adjust : ' + s); var l = n.getXScale(), u = n.getYScale(), c = _({ xField: l.field, yField: u.field }, s), f = new ft[o](c); f.processAdjust(t), o === 'Stack' && n._updateStackRange(u.field, u, t); } }), (a._updateStackRange = function(t, n, s) { for (var o = dr(s), l = n.min, u = n.max, c = 0, f = o.length; c < f; c++) { var h = o[c], v = Math.min.apply(null, h[t]), g = Math.max.apply(null, h[t]); v < l && (l = v), g > u && (u = g); } (l < n.min || u > n.max) && n.change({ min: l, max: u }); }), (a._sort = function(t) { var n = this, s = n.getXScale(), o = s.field, l = s.type; l !== 'identity' && s.values.length > 1 && C(t, function(u) { u.sort(function(c, f) { return l === 'timeCat' ? Yt(c[it][o]) - Yt(f[it][o]) : s.translate(c[it][o]) - s.translate(f[it][o]); }); }), n.set('hasSorted', !0), n.set('dataArray', t); }), (a.paint = function() { var t = this, n = t.get('mappingData'), s = [], o = t.getShapeFactory(); o.setCoord(t.get('coord')), t._beforeMapping(n); for (var l = 0, u = n.length; l < u; l++) { var c = n[l]; if (c.length) { var f = t._mapping(c); s.push(f), t.draw(f, o); } } t.set('dataArray', s); }), (a.getShapeFactory = function() { var t = this.get('shapeFactory'); if (!t) { var n = this.get('shapeType'); (t = Y.getShapeFactory(n)), this.set('shapeFactory', t); } return t; }), (a._mapping = function(t) { var n = this, s = n.get('attrs'), o = n.getYScale().field, l = {}, u = new Array(t.length); for (var c in s) if (s.hasOwnProperty(c)) for ( var f = s[c], h = f.names, v = f.scales, g = 0, p = t.length; g < p; g++ ) { var m = t[g], d = Zt({}, m, u[g]); if (((d[te] = m[o]), f.type === 'position')) for (var y = n._getAttrValues(f, m), x = 0, S = y.length; x < S; x++) { var P = y[x], b = h[x]; d[b] = k(P) && P.length === 1 ? P[0] : P; } else { var M = h[0], I = v[0].field, O = m[I], T = '' + M + O, L = l[T]; L || ((L = n._getAttrValues(f, m)), (l[T] = L)), (d[M] = L[0]); } u[g] = d; } return u; }), (a._getAttrValues = function(t, n) { for (var s = t.scales, o = [], l = 0, u = s.length; l < u; l++) { var c = s[l], f = c.field; c.type === 'identity' ? o.push(c.value) : o.push(n[f]); } var h = t.mapping.apply(t, o); return h; }), (a.getAttrValue = function(t, n) { var s = this.getAttr(t), o = null; if (s) { var l = this._getAttrValues(s, n); o = l[0]; } return o; }), (a._beforeMapping = function(t) { var n = this; n.get('generatePoints') && n._generatePoints(t); }), (a.isInCircle = function() { var t = this.get('coord'); return t && t.isPolar; }), (a.getCallbackCfg = function(t, n, s) { if (!t) return n; var o = {}, l = t.map(function(u) { return s[u]; }); return ( C(n, function(u, c) { F(u) ? (o[c] = u.apply(null, l)) : (o[c] = u); }), o ); }), (a.getDrawCfg = function(t) { var n = this, s = n.isInCircle(), o = { origin: t, x: t.x, y: t.y, color: t.color, size: t.size, shape: t.shape, isInCircle: s, opacity: t.opacity, }, l = n.get('styleOptions'); return ( l && l.style && (o.style = n.getCallbackCfg(l.fields, l.style, t[it])), n.get('generatePoints') && ((o.points = t.points), (o.nextPoints = t.nextPoints)), s && (o.center = n.get('coord').center), o ); }), (a.draw = function(t, n) { var s = this, o = s.get('container'), l = s.getYScale(); C(t, function(u, c) { if (l && w(u._origin[l.field])) return; u.index = c; var f = s.getDrawCfg(u), h = u.shape; s.drawShape(h, u, f, o, n); }); }), (a.drawShape = function(t, n, s, o, l) { var u = l.drawShape(t, s, o); u && C([].concat(u), function(c) { c.set('origin', n); }); }), (a._generatePoints = function(t) { var n = this, s = n.getShapeFactory(), o = n.getAttr('shape'); C(t, function(l) { for (var u = 0, c = l.length; u < c; u++) { var f = l[u], h = n.createShapePointsCfg(f), v = o ? n._getAttrValues(o, f) : null, g = s.getShapePoints(v, h); f.points = g; } }), C(t, function(l, u) { var c = t[u + 1]; c && (l[0].nextPoints = c[0].points); }); }), (a.createShapePointsCfg = function(t) { var n = this.getXScale(), s = this.getYScale(), o = this._normalizeValues(t[n.field], n), l; return ( s ? (l = this._normalizeValues(t[s.field], s)) : (l = t.y ? t.y : 0.1), { x: o, y: l, y0: s ? s.scale(this.getYMinValue()) : void 0 } ); }), (a.getYMinValue = function() { var t = this.getYScale(), n = t.min, s = t.max, o; return ( this.get('startOnZero') ? s <= 0 && n <= 0 ? (o = s) : (o = n >= 0 ? n : 0) : (o = n), o ); }), (a._normalizeValues = function(t, n) { var s = []; if (k(t)) for (var o = 0, l = t.length; o < l; o++) { var u = t[o]; s.push(n.scale(u)); } else s = n.scale(t); return s; }), (a.getAttr = function(t) { return this.get('attrs')[t]; }), (a.getXScale = function() { return this.getAttr('position').scales[0]; }), (a.getYScale = function() { return this.getAttr('position').scales[1]; }), (a.hasAdjust = function(t) { return this.get('adjust') && this.get('adjust').type === t; }), (a._getSnap = function(t, n, s) { var o = 0, l, u = this.getYScale().field; if (this.hasAdjust('stack') && t.field === u) { (l = []), s.forEach(function(v) { l.push(v[te]); }); for (var c = l.length; o < c && !(l[0][0] > n); o++) { if (l[l.length - 1][1] <= n) { o = l.length - 1; break; } if (l[o][0] <= n && l[o][1] > n) break; } } else { (l = t.values), l.sort(function(v, g) { return v - g; }); for (var f = l.length; o < f && !(f <= 1); o++) { if ((l[0] + l[1]) / 2 > n) break; if ((l[o - 1] + l[o]) / 2 <= n && (l[o + 1] + l[o]) / 2 > n) break; if ((l[l.length - 2] + l[l.length - 1]) / 2 <= n) { o = l.length - 1; break; } } } var h = l[o]; return h; }), (a.getSnapRecords = function(t) { var n = this, s = n.get('coord'), o = n.getXScale(), l = n.getYScale(), u = o.field, c = n.get('dataArray'); this.get('hasSorted') || this._sort(c); var f = [], h = s.invertPoint(t), v = h.x; n.isInCircle() && !s.transposed && v > (1 + o.rangeMax()) / 2 && (v = o.rangeMin()); var g = o.invert(v); o.isCategory || (g = n._getSnap(o, g)); var p = []; if ( (c.forEach(function(d) { d.forEach(function(y) { var x = w(y[it]) ? y[u] : y[it][u]; n._isEqual(x, g, o) && p.push(y); }); }), this.hasAdjust('stack') && s.isPolar && s.transposed) ) { if (v >= 0 && v <= 1) { var m = l.invert(h.y); (m = n._getSnap(l, m, p)), p.forEach(function(d) { (k(m) ? d[te].toString() === m.toString() : d[te] === m) && f.push(d); }); } } else f = p; return f; }), (a.getRecords = function(t) { var n = this, s = this.getXScale(), o = this.get('dataArray'), l = s.field; return o.map(function(u) { for (var c = u.length, f = c - 1; f >= 0; f--) { var h = u[f], v = w(h[it]) ? h[l] : h[it][l]; if (n._isEqual(v, t, s)) return h; } return null; }); }), (a._isEqual = function(t, n, s) { return s.type === 'timeCat' ? Yt(t) === n : n === t; }), (a.position = function(t) { return this._setAttrOptions('position', { field: t }), this; }), (a.color = function(t, n) { return this._createAttrOption('color', t, n, D.colors), this; }), (a.size = function(t, n) { return this._createAttrOption('size', t, n, D.sizes), this; }), (a.shape = function(t, n) { var s = this.get('type'), o = D.shapes[s] || []; return this._createAttrOption('shape', t, n, o), this; }), (a.style = function(t, n) { var s = this.get('styleOptions'); s || ((s = {}), this.set('styleOptions', s)), j(t) && ((n = t), (t = null)); var o; return t && (o = Or(t)), (s.fields = o), (s.style = n), this; }), (a.adjust = function(t) { return B(t) && (t = { type: t }), this.set('adjust', t), this; }), (a.animate = function(t) { return this.set('animateCfg', t), this; }), (a.changeData = function(t) { if ((this.set('data', t), this.set('scales', {}), !this.get('isInit'))) return; this.set('isInit', !1), this.init(); }), (a.clearInner = function() { var t = this.get('container'); t && t.clear(); }), (a.reset = function() { this.set('isInit', !1), this.set('attrs', {}), this.set('attrOptions', {}), this.set('adjust', null), this.clearInner(); }), (a.clear = function() { this.clearInner(); }), (a.destroy = function() { this.set('isInit', !1), this.clear(), i.prototype.destroy.call(this); }), (a._display = function(t) { this.set('visible', t); var n = this.get('container'), s = n.get('canvas'); n.set('visible', t), s.draw(); }), (a.show = function() { this._display(!0); }), (a.hide = function() { this._display(!1); }), r ); })(Er), Rr = {}; function Nr(i) { return Rr[i]; } function $(i, r) { Rr[i] = r; } var ht = (function() { function i(r) { (this.type = 'base'), (this.isCategory = !1), (this.isLinear = !1), (this.isContinuous = !1), (this.isIdentity = !1), (this.values = []), (this.range = [0, 1]), (this.ticks = []), (this.__cfg__ = r), this.initCfg(), this.init(); } return ( (i.prototype.translate = function(r) { return r; }), (i.prototype.change = function(r) { _(this.__cfg__, r), this.init(); }), (i.prototype.clone = function() { return this.constructor(this.__cfg__); }), (i.prototype.getTicks = function() { var r = this; return gr(this.ticks, function(a, e) { return j(a) ? a : { text: r.getText(a, e), tickValue: a, value: r.scale(a) }; }); }), (i.prototype.getText = function(r, a) { var e = this.formatter, t = e ? e(r, a) : r; return w(t) || !F(t.toString) ? '' : t.toString(); }), (i.prototype.getConfig = function(r) { return this.__cfg__[r]; }), (i.prototype.init = function() { _(this, this.__cfg__), this.setDomain(), Fi(this.getConfig('ticks')) && (this.ticks = this.calculateTicks()); }), (i.prototype.initCfg = function() {}), (i.prototype.setDomain = function() {}), (i.prototype.calculateTicks = function() { var r = this.tickMethod, a = []; if (B(r)) { var e = Nr(r); if (!e) throw new Error('There is no method to to calculate ticks!'); a = e(this); } else F(r) && (a = r(this)); return a; }), (i.prototype.rangeMin = function() { return ot(this.range); }), (i.prototype.rangeMax = function() { return Q(this.range); }), (i.prototype.calcPercent = function(r, a, e) { return X(r) ? (r - a) / (e - a) : NaN; }), (i.prototype.calcValue = function(r, a, e) { return a + r * (e - a); }), i ); })(); /*! ***************************************************************************** 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 Oe = function( r, a, ) { return ( (Oe = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function(e, t) { e.__proto__ = t; }) || function(e, t) { for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]); }), Oe(r, a) ); }; function nt(i, r) { Oe(i, r); function a() { this.constructor = i; } i.prototype = r === null ? Object.create(r) : ((a.prototype = r.prototype), new a()); } function Sn() { for (var i = 0, r = 0, a = arguments.length; r < a; r++) i += arguments[r].length; for (var e = Array(i), t = 0, r = 0; r < a; r++) for (var n = arguments[r], s = 0, o = n.length; s < o; s++, t++) e[t] = n[s]; return e; } var Re = (function(i) { nt(r, i); function r() { var a = (i !== null && i.apply(this, arguments)) || this; return (a.type = 'cat'), (a.isCategory = !0), a; } return ( (r.prototype.translate = function(a) { var e = _e(this.values, a); return e === -1 ? (X(a) ? a : NaN) : e; }), (r.prototype.scale = function(a) { var e = this.translate(a), t = this.calcPercent(e, this.min, this.max); return this.calcValue(t, this.rangeMin(), this.rangeMax()); }), (r.prototype.invert = function(a) { var e = this.max - this.min, t = this.calcPercent(a, this.rangeMin(), this.rangeMax()), n = Math.round(e * t) + this.min; return n < this.min || n > this.max ? NaN : this.values[n]; }), (r.prototype.getText = function(a) { for (var e = [], t = 1; t < arguments.length; t++) e[t - 1] = arguments[t]; var n = a; return ( X(a) && !this.values.includes(a) && (n = this.values[n]), i.prototype.getText.apply(this, Sn([n], e)) ); }), (r.prototype.initCfg = function() { this.tickMethod = 'cat'; }), (r.prototype.setDomain = function() { if ((w(this.getConfig('min')) && (this.min = 0), w(this.getConfig('max')))) { var a = this.values.length; this.max = a > 1 ? a - 1 : a; } }), r ); })(ht), Yr = /d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g, vt = '[1-9]\\d?', gt = '\\d\\d', Cn = '\\d{3}', Pn = '\\d{4}', Lt = '[^\\s]+', Fr = /\[([^]*?)\]/gm; function Lr(i, r) { for (var a = [], e = 0, t = i.length; e < t; e++) a.push(i[e].substr(0, r)); return a; } var Br = function(r) { return function(a, e) { var t = e[r].map(function(s) { return s.toLowerCase(); }), n = t.indexOf(a.toLowerCase()); return n > -1 ? n : null; }; }; function pt(i) { for (var r = [], a = 1; a < arguments.length; a++) r[a - 1] = arguments[a]; for (var e = 0, t = r; e < t.length; e++) { var n = t[e]; for (var s in n) i[s] = n[s]; } return i; } var zr = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], Xr = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', ], wn = Lr(Xr, 3), Mn = Lr(zr, 3), Ne = { dayNamesShort: Mn, dayNames: zr, monthNamesShort: wn, monthNames: Xr, amPm: ['am', 'pm'], DoFn: function(r) { return ( r + ['th', 'st', 'nd', 'rd'][ r % 10 > 3 ? 0 : ((r - (r % 10) !== 10 ? 1 : 0) * r) % 10 ] ); }, }, ee = pt({}, Ne), Gr = function(r) { return (ee = pt(ee, r)); }, Hr = function(r) { return r.replace(/[|\\{()[^$+*?.-]/g, '\\$&'); }, W = function(r, a) { for (a === void 0 && (a = 2), r = String(r); r.length < a; ) r = '0' + r; return r; }, bn = { D: function(r) { return String(r.getDate()); }, DD: function(r) { return W(r.getDate()); }, Do: function(r, a) { return a.DoFn(r.getDate()); }, d: function(r) { return String(r.getDay()); }, dd: function(r) { return W(r.getDay()); }, ddd: function(r, a) { return a.dayNamesShort[r.getDay()]; }, dddd: function(r, a) { return a.dayNames[r.getDay()]; }, M: function(r) { return String(r.getMonth() + 1); }, MM: function(r) { return W(r.getMonth() + 1); }, MMM: function(r, a) { return a.monthNamesShort[r.getMonth()]; }, MMMM: function(r, a) { return a.monthNames[r.getMonth()]; }, YY: function(r) { return W(String(r.getFullYear()), 4).substr(2); }, YYYY: function(r) { return W(r.getFullYear(), 4); }, h: function(r) { return String(r.getHours() % 12 || 12); }, hh: function(r) { return W(r.getHours() % 12 || 12); }, H: function(r) { return String(r.getHours()); }, HH: function(r) { return W(r.getHours()); }, m: function(r) { return String(r.getMinutes()); }, mm: function(r) { return W(r.getMinutes()); }, s: function(r) { return String(r.getSeconds()); }, ss: function(r) { return W(r.getSeconds()); }, S: function(r) { return String(Math.round(r.getMilliseconds() / 100)); }, SS: function(r) { return W(Math.round(r.getMilliseconds() / 10), 2); }, SSS: function(r) { return W(r.getMilliseconds(), 3); }, a: function(r, a) { return r.getHours() < 12 ? a.amPm[0] : a.amPm[1]; }, A: function(r, a) { return r.getHours() < 12 ? a.amPm[0].toUpperCase() : a.amPm[1].toUpperCase(); }, ZZ: function(r) { var a = r.getTimezoneOffset(); return ( (a > 0 ? '-' : '+') + W(Math.floor(Math.abs(a) / 60) * 100 + (Math.abs(a) % 60), 4) ); }, Z: function(r) { var a = r.getTimezoneOffset(); return ( (a > 0 ? '-' : '+') + W(Math.floor(Math.abs(a) / 60), 2) + ':' + W(Math.abs(a) % 60, 2) ); }, }, Ur = function(r) { return +r - 1; }, jr = [null, vt], Vr = [null, Lt], Wr = [ 'isPm', Lt, function(i, r) { var a = i.toLowerCase(); return a === r.amPm[0] ? 0 : a === r.amPm[1] ? 1 : null; }, ], qr = [ 'timezoneOffset', '[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?', function(i) { var r = (i + '').match(/([+-]|\d\d)/gi); if (r) { var a = +r[1] * 60 + parseInt(r[2], 10); return r[0] === '+' ? a : -a; } return 0; }, ], Tn = { D: ['day', vt], DD: ['day', gt], Do: [ 'day', vt + Lt, function(i) { return parseInt(i, 10); }, ], M: ['month', vt, Ur], MM: ['month', gt, Ur], YY: [ 'year', gt, function(i) { var r = new Date(), a = +('' + r.getFullYear()).substr(0, 2); return +('' + (+i > 68 ? a - 1 : a) + i); }, ], h: ['hour', vt, void 0, 'isPm'], hh: ['hour', gt, void 0, 'isPm'], H: ['hour', vt], HH: ['hour', gt], m: ['minute', vt], mm: ['minute', gt], s: ['second', vt], ss: ['second', gt], YYYY: ['year', Pn], S: [ 'millisecond', '\\d', function(i) { return +i * 100; }, ], SS: [ 'millisecond', gt, function(i) { return +i * 10; }, ], SSS: ['millisecond', Cn], d: jr, dd: jr, ddd: Vr, dddd: Vr, MMM: ['month', Lt, Br('monthNamesShort')], MMMM: ['month', Lt, Br('monthNames')], a: Wr, A: Wr, ZZ: qr, Z: qr, }, re = { default: 'ddd MMM DD YYYY HH:mm:ss', shortDate: 'M/D/YY', mediumDate: 'MMM D, YYYY', longDate: 'MMMM D, YYYY', fullDate: 'dddd, MMMM D, YYYY', isoDate: 'YYYY-MM-DD', isoDateTime: 'YYYY-MM-DDTHH:mm:ssZ', shortTime: 'HH:mm', mediumTime: 'HH:mm:ss', longTime: 'HH:mm:ss.SSS', }, $r = function(r) { return pt(re, r); }, Zr = function(r, a, e) { if ( (a === void 0 && (a = re.default), e === void 0 && (e = {}), typeof r == 'number' && (r = new Date(r)), Object.prototype.toString.call(r) !== '[object Date]' || isNaN(r.getTime())) ) throw new Error('Invalid Date pass to format'); a = re[a] || a; var t = []; a = a.replace(Fr, function(s, o) { return t.push(o), '@@@'; }); var n = pt(pt({}, ee), e); return ( (a = a.replace(Yr, function(s) { return bn[s](r, n); })), a.replace(/@@@/g, function() { return t.shift(); }) ); }; function Jr(i, r, a) { if ((a === void 0 && (a = {}), typeof r != 'string')) throw new Error('Invalid format in fecha parse'); if (((r = re[r] || r), i.length > 1e3)) return null; var e = new Date(), t = { year: e.getFullYear(), month: 0, day: 1, hour: 0, minute: 0, second: 0, millisecond: 0, isPm: null, timezoneOffset: null, }, n = [], s = [], o = r.replace(Fr, function(S, P) { return s.push(Hr(P)), '@@@'; }), l = {}, u = {}; (o = Hr(o).replace(Yr, function(S) { var P = Tn[S], b = P[0], M = P[1], I = P[3]; if (l[b]) throw new Error('Invalid format. ' + b + ' specified twice in format'); return (l[b] = !0), I && (u[I] = !0), n.push(P), '(' + M + ')'; })), Object.keys(u).forEach(function(S) { if (!l[S]) throw new Error('Invalid format. ' + S + ' is required in specified format'); }), (o = o.replace(/@@@/g, function() { return s.shift(); })); var c = i.match(new RegExp(o, 'i')); if (!c) return null; for (var f = pt(pt({}, ee), a), h = 1; h < c.length; h++) { var v = n[h - 1], g = v[0], p = v[2], m = p ? p(c[h], f) : +c[h]; if (m == null) return null; t[g] = m; } t.isPm === 1 && t.hour != null && +t.hour !== 12 ? (t.hour = +t.hour + 12) : t.isPm === 0 && +t.hour === 12 && (t.hour = 0); for ( var d = new Date(t.year, t.month, t.day, t.hour, t.minute, t.second, t.millisecond), y = [ ['month', 'getMonth'], ['day', 'getDate'], ['hour', 'getHours'], ['minute', 'getMinutes'], ['second', 'getSeconds'], ], h = 0, x = y.length; h < x; h++ ) if (l[y[h][0]] && t[y[h][0]] !== d[y[h][1]]()) return null; return t.timezoneOffset == null ? d : new Date( Date.UTC( t.year, t.month, t.day, t.hour, t.minute - t.timezoneOffset, t.second, t.millisecond, ), ); } var Kr = { format: Zr, parse: Jr, defaultI18n: Ne, setGlobalDateI18n: Gr, setGlobalDateMasks: $r, }, Dn = Object.freeze({ __proto__: null, default: Kr, assign: pt, format: Zr, parse: Jr, defaultI18n: Ne, setGlobalDateI18n: Gr, setGlobalDateMasks: $r, }); function En(i) { return function(r, a, e, t) { for (var n = w(e) ? 0 : e, s = w(t) ? r.length : t; n < s; ) { var o = (n + s) >>> 1; i(r[o]) > a ? (s = o) : (n = o + 1); } return n; }; } var Qr = 'format'; function ta(i, r) { var a = Dn[Qr] || Kr[Qr]; return a(i, r); } function ae(i) { return ( B(i) && (i.indexOf('T') > 0 ? (i = new Date(i).getTime()) : (i = new Date(i.replace(/-/gi, '/')).getTime())), Vt(i) && (i = i.getTime()), i ); } var rt = 1e3, wt = 60 * rt, Mt = 60 * wt, ut = 24 * Mt, Bt = ut * 31, ea = ut * 365, zt = [ ['HH:mm:ss', rt], ['HH:mm:ss', rt * 10], ['HH:mm:ss', rt * 30], ['HH:mm', wt], ['HH:mm', wt * 10], ['HH:mm', wt * 30], ['HH', Mt], ['HH', Mt * 6], ['HH', Mt * 12], ['YYYY-MM-DD', ut], ['YYYY-MM-DD', ut * 4], ['YYYY-WW', ut * 7], ['YYYY-MM', Bt], ['YYYY-MM', Bt * 4], ['YYYY-MM', Bt * 6], ['YYYY', ut * 380], ]; function An(i, r, a) { var e = (r - i) / a, t = En(function(s) { return s[1]; })(zt, e) - 1, n = zt[t]; return t < 0 ? (n = zt[0]) : t >= zt.length && (n = Q(zt)), n; } var kn = (function(i) { nt(r, i); function r() { var a = (i !== null && i.apply(this, arguments)) || this; return (a.type = 'timeCat'), a; } return ( (r.prototype.translate = function(a) { a = ae(a); var e = this.values.indexOf(a); return e === -1 && (X(a) && a < this.values.length ? (e = a) : (e = NaN)), e; }), (r.prototype.getText = function(a, e) { var t = this.translate(a); if (t > -1) { var n = this.values[t], s = this.formatter; return (n = s ? s(n, e) : ta(n, this.mask)), n; } return a; }), (r.prototype.initCfg = function() { (this.tickMethod = 'time-cat'), (this.mask = 'YYYY-MM-DD'), (this.tickCount = 7); }), (r.prototype.setDomain = function() { var a = this.values; C(a, function(e, t) { a[t] = ae(e); }), a.sort(function(e, t) { return e - t; }), i.prototype.setDomain.call(this); }), r ); })(Re), ie = (function(i) { nt(r, i); function r() { var a = (i !== null && i.apply(this, arguments)) || this; return (a.isContinuous = !0), a; } return ( (r.prototype.scale = function(a) { if (w(a)) return NaN; var e = this.rangeMin(), t = this.rangeMax(), n = this.max, s = this.min; if (n === s) return e; var o = this.getScalePercent(a); return e + o * (t - e); }), (r.prototype.init = function() { i.prototype.init.call(this); var a = this.ticks, e = ot(a), t = Q(a); e < this.min && (this.min = e), t > this.max && (this.max = t), w(this.minLimit) || (this.min = e), w(this.maxLimit) || (this.max = t); }), (r.prototype.setDomain = function() { var a = Ai(this.values), e = a.min, t = a.max; w(this.min) && (this.min = e), w(this.max) && (this.max = t), this.min > this.max && ((this.min = e), (this.max = t)); }), (r.prototype.calculateTicks = function() { var a = this, e = i.prototype.calculateTicks.call(this); return ( this.nice || (e = de(e, function(t) { return t >= a.min && t <= a.max; })), e ); }), (r.prototype.getScalePercent = function(a) { var e = this.max, t = this.min; return (a - t) / (e - t); }), (r.prototype.getInvertPercent = function(a) { return (a - this.rangeMin()) / (this.rangeMax() - this.rangeMin()); }), r ); })(ht), ra = (function(i) { nt(r, i); function r() { var a = (i !== null && i.apply(this, arguments)) || this; return (a.type = 'linear'), (a.isLinear = !0), a; } return ( (r.prototype.invert = function(a) { var e = this.getInvertPercent(a); return this.min + e * (this.max - this.min); }), (r.prototype.initCfg = function() { (this.tickMethod = 'wilkinson-extended'), (this.nice = !1); }), r ); })(ie); function dt(i, r) { var a = Math.E, e; return ( r >= 0 ? (e = Math.pow(a, Math.log(r) / i)) : (e = Math.pow(a, Math.log(-r) / i) * -1), e ); } function tt(i, r) { return i === 1 ? 1 : Math.log(r) / Math.log(i); } function aa(i, r, a) { w(a) && (a = Math.max.apply(null, i)); var e = a; return ( C(i, function(t) { t > 0 && t < e && (e = t); }), e === a && (e = a / r), e > 1 && (e = 1), e ); } var In = (function(i) { nt(r, i); function r() { var a = (i !== null && i.apply(this, arguments)) || this; return (a.type = 'log'), a; } return ( (r.prototype.invert = function(a) { var e = this.base, t = tt(e, this.max), n = this.rangeMin(), s = this.rangeMax() - n, o, l = this.positiveMin; if (l) { if (a === 0) return 0; o = tt(e, l / e); var u = (1 / (t - o)) * s; if (a < u) return (a / u) * l; } else o = tt(e, this.min); var c = (a - n) / s, f = c * (t - o) + o; return Math.pow(e, f); }), (r.prototype.initCfg = function() { (this.tickMethod = 'log'), (this.base = 10), (this.tickCount = 6), (this.nice = !0); }), (r.prototype.setDomain = function() { i.prototype.setDomain.call(this); var a = this.min; if (a < 0) throw new Error( 'When you use log scale, the minimum value must be greater than zero!', ); a === 0 && (this.positiveMin = aa(this.values, this.base, this.max)); }), (r.prototype.getScalePercent = function(a) { var e = this.max, t = this.min; if (e === t) return 0; if (a <= 0) return 0; var n = this.base, s = this.positiveMin; s && (t = (s * 1) / n); var o; return ( a < s ? (o = a / s / (tt(n, e) - tt(n, t))) : (o = (tt(n, a) - tt(n, t)) / (tt(n, e) - tt(n, t))), o ); }), r ); })(ie), On = (function(i) { nt(r, i); function r() { var a = (i !== null && i.apply(this, arguments)) || this; return (a.type = 'pow'), a; } return ( (r.prototype.invert = function(a) { var e = this.getInvertPercent(a), t = this.exponent, n = dt(t, this.max), s = dt(t, this.min), o = e * (n - s) + s, l = o >= 0 ? 1 : -1; return Math.pow(o, t) * l; }), (r.prototype.initCfg = function() { (this.tickMethod = 'pow'), (this.exponent = 2), (this.tickCount = 5), (this.nice = !0); }), (r.prototype.getScalePercent = function(a) { var e = this.max, t = this.min; if (e === t) return 0; var n = this.exponent, s = (dt(n, a) - dt(n, t)) / (dt(n, e) - dt(n, t)); return s; }), r ); })(ie), Rn = (function(i) { nt(r, i); function r() { var a = (i !== null && i.apply(this, arguments)) || this; return (a.type = 'time'), a; } return ( (r.prototype.getText = function(a, e) { var t = this.translate(a), n = this.formatter; return n ? n(t, e) : ta(t, this.mask); }), (r.prototype.scale = function(a) { var e = a; return ( (B(e) || Vt(e)) && (e = this.translate(e)), i.prototype.scale.call(this, e) ); }), (r.prototype.translate = function(a) { return ae(a); }), (r.prototype.initCfg = function() { (this.tickMethod = 'time-pretty'), (this.mask = 'YYYY-MM-DD'), (this.tickCount = 7), (this.nice = !1); }), (r.prototype.setDomain = function() { var a = this.values, e = this.getConfig('min'), t = this.getConfig('max'); if ( ((!w(e) || !X(e)) && (this.min = this.translate(this.min)), (!w(t) || !X(t)) && (this.max = this.translate(this.max)), a && a.length) ) { var n = [], s = Infinity, o = s, l = 0; C(a, function(u) { var c = ae(u); if (isNaN(c)) throw new TypeError('Invalid Time: ' + u + ' in time scale!'); s > c ? ((o = s), (s = c)) : o > c && (o = c), l < c && (l = c), n.push(c); }), a.length > 1 && (this.minTickInterval = o - s), w(e) && (this.min = s), w(t) && (this.max = l); } }), r ); })(ra), ia = (function(i) { nt(r, i); function r() { var a = (i !== null && i.apply(this, arguments)) || this; return (a.type = 'quantize'), a; } return ( (r.prototype.invert = function(a) { var e = this.ticks, t = e.length, n = this.getInvertPercent(a), s = Math.floor(n * (t - 1)); if (s >= t - 1) return Q(e); if (s < 0) return ot(e); var o = e[s], l = e[s + 1], u = s / (t - 1), c = (s + 1) / (t - 1); return o + ((n - u) / (c - u)) * (l - o); }), (r.prototype.initCfg = function() { (this.tickMethod = 'r-pretty'), (this.tickCount = 5), (this.nice = !0); }), (r.prototype.calculateTicks = function() { var a = i.prototype.calculateTicks.call(this); return ( this.nice || (Q(a) !== this.max && a.push(this.max), ot(a) !== this.min && a.unshift(this.min)), a ); }), (r.prototype.getScalePercent = function(a) { var e = this.ticks; if (a < ot(e)) return 0; if (a > Q(e)) return 1; var t = 0; return ( C(e, function(n, s) { if (a >= n) t = s; else return !1; }), t / (e.length - 1) ); }), r ); })(ie), Nn = (function(i) { nt(r, i); function r() { var a = (i !== null && i.apply(this, arguments)) || this; return (a.type = 'quantile'), a; } return ( (r.prototype.initCfg = function() { (this.tickMethod = 'quantile'), (this.tickCount = 5), (this.nice = !0); }), r ); })(ia), na = {}; function Et(i) { return na[i]; } function st(i, r) { if (Et(i)) throw new Error("type '" + i + "' existed."); na[i] = r; } var Yn = (function(i) { nt(r, i); function r() { var a = (i !== null && i.apply(this, arguments)) || this; return (a.type = 'identity'), (a.isIdentity = !0), a; } return ( (r.prototype.calculateTicks = function() { return this.values; }), (r.prototype.scale = function(a) { return this.values[0] !== a && X(a) ? a : this.range[0]; }), (r.prototype.invert = function(a) { var e = this.range; return a < e[0] || a > e[1] ? NaN : this.values[0]; }), r ); })(ht), Fn = [1, 5, 2, 2.5, 4, 3], sa = Number.EPSILON * 100; function Ln(i, r) { return ((i % r) + r) % r; } function Bn(i, r, a, e, t, n) { var s = pr(r), o = _e(r, i), l = 0, u = Ln(e, n); return (u < sa || n - u < sa) && e <= 0 && t >= 0 && (l = 1), 1 - o / (s - 1) - a + l; } function zn(i, r, a) { var e = pr(r), t = _e(r, i), n = 1; return 1 - t / (e - 1) - a + n; } function Xn(i, r, a, e, t, n) { var s = (i - 1) / (n - t), o = (r - 1) / (Math.max(n, e) - Math.min(a, t)); return 2 - Math.max(s / o, o / s); } function Gn(i, r) { return i >= r ? 2 - (i - 1) / (r - 1) : 1; } function Hn(i, r, a, e) { var t = r - i; return 1 - (0.5 * (Math.pow(r - e, 2) + Math.pow(i - a, 2))) / Math.pow(0.1 * t, 2); } function Un(i, r, a) { var e = r - i; if (a > e) { var t = (a - e) / 2; return 1 - Math.pow(t, 2) / Math.pow(0.1 * e, 2); } return 1; } function jn() { return 1; } function oa(i, r, a, e, t, n) { if ( (a === void 0 && (a = 5), e === void 0 && (e = !0), t === void 0 && (t = Fn), n === void 0 && (n = [0.25, 0.2, 0.5, 0.05]), i === r || a === 1) ) return { min: i, max: r, ticks: [i] }; for (var s = { score: -2, lmin: 0, lmax: 0, lstep: 0 }, o = 1; o < Infinity; ) { for (var l = 0, u = t; l < u.length; l++) { var c = u[l], f = zn(c, t, o); if (Number.isNaN(f)) throw new Error('NaN'); if (n[0] * f + n[1] + n[2] + n[3] < s.score) { o = Infinity; break; } for (var h = 2; h < Infinity; ) { var v = Gn(h, a); if (n[0] * f + n[1] + n[2] * v + n[3] < s.score) break; for ( var g = (r - i) / (h + 1) / o / c, p = Math.ceil(Math.log10(g)); p < Infinity; ) { var m = o * c * Math.pow(10, p), d = Un(i, r, m * (h - 1)); if (n[0] * f + n[1] * d + n[2] * v + n[3] < s.score) break; var y = Math.floor(r / m) * o - (h - 1) * o, x = Math.ceil(i / m) * o; if (y > x) { p = p + 1; continue; } for (var S = y; S <= x; S = S + 1) { var P = S * (m / o), b = P + m * (h - 1), M = m, I = Bn(c, t, o, P, b, M), O = Hn(i, r, P, b), T = Xn(h, a, i, r, P, b), L = jn(), at = n[0] * I + n[1] * O + n[2] * T + n[3] * L; at > s.score && (!e || (P <= i && b >= r)) && ((s.lmin = P), (s.lmax = b), (s.lstep = M), (s.score = at)); } p = p + 1; } h = h + 1; } } o = o + 1; } for ( var xt = Number.isInteger(s.lstep) ? 0 : Math.ceil(Math.abs(Math.log10(s.lstep))), _t = [], Z = s.lmin; Z <= s.lmax; Z += s.lstep ) _t.push(Z); var et = xt ? gr(_t, function(bt) { return Number.parseFloat(bt.toFixed(xt)); }) : _t; return { min: Math.min(i, ot(et)), max: Math.max(r, Q(et)), ticks: et }; } function la(i) { var r = i.values, a = i.tickInterval, e = i.tickCount, t = r; if (X(a)) return de(t, function(u, c) { return c % a === 0; }); var n = i.min, s = i.max; if ((w(n) && (n = 0), w(s) && (s = r.length - 1), X(e) && e < s - n)) { var o = oa(n, s, e, !1, [1, 2, 5, 3, 4, 7, 6, 8, 9]).ticks, l = de(o, function(u) { return u >= n && u <= s; }); return l.map(function(u) { return r[u]; }); } return r.slice(n, s + 1); } function Vn(i) { var r = i.min, a = i.max, e = i.nice, t = i.tickCount, n = new Wn(); return n.domain([r, a]), e && n.nice(t), n.ticks(t); } var Ye = 5, ua = Math.sqrt(50), ca = Math.sqrt(10), fa = Math.sqrt(2), Wn = (function() { function i() { this._domain = [0, 1]; } return ( (i.prototype.domain = function(r) { return r ? ((this._domain = Array.from(r, Number)), this) : this._domain.slice(); }), (i.prototype.nice = function(r) { var a, e; r === void 0 && (r = Ye); var t = this._domain.slice(), n = 0, s = this._domain.length - 1, o = this._domain[n], l = this._domain[s], u; return ( l < o && ((a = [l, o]), (o = a[0]), (l = a[1]), (e = [s, n]), (n = e[0]), (s = e[1])), (u = ne(o, l, r)), u > 0 ? ((o = Math.floor(o / u) * u), (l = Math.ceil(l / u) * u), (u = ne(o, l, r))) : u < 0 && ((o = Math.ceil(o * u) / u), (l = Math.floor(l * u) / u), (u = ne(o, l, r))), u > 0 ? ((t[n] = Math.floor(o / u) * u), (t[s] = Math.ceil(l / u) * u), this.domain(t)) : u < 0 && ((t[n] = Math.ceil(o * u) / u), (t[s] = Math.floor(l * u) / u), this.domain(t)), this ); }), (i.prototype.ticks = function(r) { return ( r === void 0 && (r = Ye), qn(this._domain[0], this._domain[this._domain.length - 1], r || Ye) ); }), i ); })(); function qn(i, r, a) { var e, t = -1, n, s, o; if (((r = +r), (i = +i), (a = +a), i === r && a > 0)) return [i]; if ( ((e = r < i) && ((n = i), (i = r), (r = n)), (o = ne(i, r, a)) === 0 || !isFinite(o)) ) return []; if (o > 0) for ( i = Math.ceil(i / o), r = Math.floor(r / o), s = new Array((n = Math.ceil(r - i + 1))); ++t < n; ) s[t] = (i + t) * o; else for ( i = Math.floor(i * o), r = Math.ceil(r * o), s = new Array((n = Math.ceil(i - r + 1))); ++t < n; ) s[t] = (i - t) / o; return e && s.reverse(), s; } function ne(i, r, a) { var e = (r - i) / Math.max(0, a), t = Math.floor(Math.log(e) / Math.LN10), n = e / Math.pow(10, t); return t >= 0 ? (n >= ua ? 10 : n >= ca ? 5 : n >= fa ? 2 : 1) * Math.pow(10, t) : -Math.pow(10, -t) / (n >= ua ? 10 : n >= ca ? 5 : n >= fa ? 2 : 1); } function ha(i, r, a) { var e; return ( a === 'ceil' ? (e = Math.ceil(i / r)) : a === 'floor' ? (e = Math.floor(i / r)) : (e = Math.round(i / r)), e * r ); } function Fe(i, r, a) { var e = ha(i, a, 'floor'), t = ha(r, a, 'ceil'); (e = ye(e, a)), (t = ye(t, a)); for (var n = [], s = e; s <= t; s = s + a) { var o = ye(s, a); n.push(o); } return { min: e, max: t, ticks: n }; } function Le(i, r, a) { var e, t = i.minLimit, n = i.maxLimit, s = i.min, o = i.max, l = i.tickCount, u = l === void 0 ? 5 : l, c = w(t) ? (w(r) ? s : r) : t, f = w(n) ? (w(a) ? o : a) : n; if ((c > f && ((e = [c, f]), (f = e[0]), (c = e[1])), u <= 2)) return [c, f]; for (var h = (f - c) / (u - 1), v = [], g = 0; g < u; g++) v.push(c + h * g); return v; } function $n(i) { var r = i.min, a = i.max, e = i.tickInterval, t = i.minLimit, n = i.maxLimit, s = Vn(i); return !w(t) || !w(n) ? Le(i, ot(s), Q(s)) : e ? Fe(r, a, e).ticks : s; } function Zn(i) { var r = i.min, a = i.max, e = i.tickCount, t = i.nice, n = i.tickInterval, s = i.minLimit, o = i.maxLimit, l = oa(r, a, e, t).ticks; return !w(s) || !w(o) ? Le(i, ot(l), Q(l)) : n ? Fe(r, a, n).ticks : l; } function Jn(i) { var r = i.base, a = i.tickCount, e = i.min, t = i.max, n = i.values, s, o = tt(r, t); if (e > 0) s = Math.floor(tt(r, e)); else { var l = aa(n, r, t); s = Math.floor(tt(r, l)); } for (var u = o - s, c = Math.ceil(u / a), f = [], h = s; h < o + c; h = h + c) f.push(Math.pow(r, h)); return e <= 0 && f.unshift(0), f; } function va(i, r, a) { a === void 0 && (a = 5); var e = { max: 0, min: 0, ticks: [] }, t = 1.5, n = 0.5 + 1.5 * t, s = r - i, o = s / a, l = Math.pow(10, Math.floor(Math.log10(o))), u = l < 1 ? Math.ceil(Math.abs(Math.log10(l))) : 0, c = l; 2 * l - o < t * (o - c) && ((c = 2 * l), 5 * l - o < n * (o - c) && ((c = 5 * l), 10 * l - o < t * (o - c) && (c = 10 * l))); var f = Math.ceil(r / c), h = Math.floor(i / c); (e.max = Math.max(f * c, r)), (e.min = Math.min(h * c, i)); for (var v = Number.parseFloat((h * c).toFixed(u)); v < r; ) e.ticks.push(v), (v += c), u && (v = Number.parseFloat(v.toFixed(u))); return e.ticks.push(v), e; } function Kn(i) { var r = i.exponent, a = i.tickCount, e = Math.ceil(dt(r, i.max)), t = Math.floor(dt(r, i.min)), n = va(t, e, a).ticks; return n.map(function(s) { var o = s >= 0 ? 1 : -1; return Math.pow(s, r) * o; }); } function Qn(i, r) { var a = i.length * r; return r === 1 ? i[i.length - 1] : r === 0 ? i[0] : a % 1 !== 0 ? i[Math.ceil(a) - 1] : i.length % 2 === 0 ? (i[a - 1] + i[a]) / 2 : i[a]; } function ts(i) { var r = i.tickCount, a = i.values; if (!a || !a.length) return []; for ( var e = a.slice().sort(function(o, l) { return o - l; }), t = [], n = 0; n < r; n++ ) { var s = n / (r - 1); t.push(Qn(e, s)); } return t; } function es(i) { var r = i.min, a = i.max, e = i.tickCount, t = i.tickInterval, n = i.minLimit, s = i.maxLimit, o = va(r, a, e).ticks; return !w(n) || !w(s) ? Le(i, ot(o), Q(o)) : t ? Fe(r, a, t).ticks : o; } function rs(i) { var r = i.min, a = i.max, e = i.minTickInterval, t = i.tickInterval, n = i.tickCount; if (t) n = Math.ceil((a - r) / t); else { t = An(r, a, n)[1]; var s = (a - r) / t, o = s / n; o > 1 && (t = t * Math.ceil(o)), e && t < e && (t = e); } for (var l = [], u = r; u < a + t; u += t) l.push(u); return l; } function as(i) { var r = la(i), a = Q(i.values); return a !== Q(r) && r.push(a), r; } function se(i) { return new Date(i).getFullYear(); } function is(i) { return new Date(i, 0, 1).getTime(); } function Be(i) { return new Date(i).getMonth(); } function ns(i, r) { var a = se(i), e = se(r), t = Be(i), n = Be(r); return (e - a) * 12 + ((n - t) % 12); } function ss(i, r) { return new Date(i, r, 1).getTime(); } function os(i, r) { return Math.ceil((r - i) / ut); } function ls(i, r) { return Math.ceil((r - i) / Mt); } function us(i, r) { return Math.ceil((r - i) / (60 * 1e3)); } function cs(i) { var r = i.min, a = i.max, e = i.minTickInterval, t = i.tickInterval, n = i.tickCount, s = []; t || ((t = (a - r) / n), e && t < e && (t = e)); var o = se(r); if (t > ea) for (var l = se(a), u = Math.ceil(t / ea), c = o; c <= l + u; c = c + u) s.push(is(c)); else if (t > Bt) for (var f = Math.ceil(t / Bt), h = Be(r), v = ns(r, a), c = 0; c <= v + f; c = c + f) s.push(ss(o, c + h)); else if (t > ut) for ( var g = new Date(r), p = g.getFullYear(), m = g.getMonth(), d = g.getDate(), y = Math.ceil(t / ut), x = os(r, a), c = 0; c < x + y; c = c + y ) s.push(new Date(p, m, d + c).getTime()); else if (t > Mt) for ( var g = new Date(r), p = g.getFullYear(), m = g.getMonth(), y = g.getDate(), S = g.getHours(), P = Math.ceil(t / Mt), b = ls(r, a), c = 0; c <= b + P; c = c + P ) s.push(new Date(p, m, y, S + c).getTime()); else if (t > wt) for (var M = us(r, a), I = Math.ceil(t / wt), c = 0; c <= M + I; c = c + I) s.push(r + c * wt); else { var O = t; O < rt && (O = rt); for ( var T = Math.floor(r / rt) * rt, L = Math.ceil((a - r) / rt), at = Math.ceil(O / rt), c = 0; c < L + at; c = c + at ) s.push(T + c * rt); } return s; } $('cat', la), $('time-cat', as), $('wilkinson-extended', Zn), $('r-pretty', es), $('time', rs), $('time-pretty', cs), $('log', Jn), $('pow', Kn), $('quantile', ts), $('d3-linear', $n), st('cat', Re), st('category', Re), st('identity', Yn), st('linear', ra), st('log', In), st('pow', On), st('time', Rn), st('timeCat', kn), st('quantize', ia), st('quantile', Nn); var ga = function(r) { var a = r.values, e = r.tickCount; if (!e) return a; if (a.length <= 1) return a; for ( var t = parseInt(a.length / (e - 1)) || 1, n = [], s = 0; s < a.length; s = s + t ) n.push(a[s]); var o = a[a.length - 1]; return ( n[n.length - 1] !== o && (n.length >= e ? (n[n.length - 1] = o) : n.push(o)), n ); }, At = [1, 1.2, 1.5, 2, 2.2, 2.4, 2.5, 3, 4, 5, 6, 7.5, 8, 10], fs = 5, hs = function(r) { var a = r || {}, e = a.tickCount, t = a.tickInterval, n = r || {}, s = n.min, o = n.max; (s = isNaN(s) ? 0 : s), (o = isNaN(o) ? 0 : o); var l = e && e >= 2 ? e : fs, u = t || gs({ tickCount: l, max: o, min: s }), c = Math.floor(s / u) * u; if (t) { var f = Math.abs(Math.ceil((o - c) / t)) + 1; l = Math.max(l, f); } for (var h = [], v = 0, g = ze(u); v < l; ) h.push(ma(c + v * u, g)), v++; return h; }, vs = 12; function pa(i) { i = Math.abs(i); var r = 1; if (i === 0) return r; if (i < 1) { for (var a = 0; i < 1; ) (r = r / 10), (i = i * 10), a++; return r.toString().length > vs && (r = parseFloat(r.toFixed(a))), r; } for (; i > 10; ) (r = r * 10), (i = i / 10); return r; } function gs(i) { var r = i.tickCount, a = i.min, e = i.max; if (a === e) return 1 * pa(e); for ( var t = (e - a) / (r - 1), n = pa(t), s = t / n, o = e / n, l = a / n, u = 0, c = 0; c < At.length; c++ ) { var f = At[c]; if (s <= f) { u = c; break; } } var h = da(u, r, l, o), v = ze(h) + ze(n); return ma(h * n, v); } function da(i, r, a, e) { for (var t = !1, n = At[i], s = i; s < At.length; s++) if (ps({ interval: At[s], tickCount: r, max: e, min: a })) { (n = At[s]), (t = !0); break; } return t ? n : 10 * da(0, r, a / 10, e / 10); } function ps(i) { var r = i.interval, a = i.tickCount, e = i.max, t = i.min, n = Math.floor(t / r) * r; return n + (a - 1) * r >= e; } function ze(i) { var r = i.toString(), a = r.indexOf('.'), e = r.indexOf('e-'), t = e >= 0 ? parseInt(r.substr(e + 2), 10) : r.substr(a + 1).length; return t > 20 && (t = 20), t; } function ma(i, r) { return parseFloat(i.toFixed(r)); } var ds = Et('linear'), ms = Et('identity'), ya = Et('category'), ys = Et('timeCat'); $('cat', ga), $('time-cat', ga), $('wilkinson-extended', hs), (ht.Linear = ds), (ht.Identity = ms), (ht.Category = ya), (ht.Cat = ya), (ht.TimeCat = ys); function xs(i) { if (!i.isPolar) return !1; var r = i.startAngle, a = i.endAngle; return !(!w(r) && !w(a) && a - r < Math.PI * 2); } function xa(i) { Object.keys(i).forEach(function(r) { delete i[r]; }); } var _s = (function() { function i(a) { (this.defs = {}), (this.scales = {}), _(this, a); } var r = i.prototype; return ( (r.setFieldDef = function(e, t) { var n = this.defs; j(e) ? _(n, e) : (n[e] = t), this.updateScales(); }), (r._getDef = function(e) { var t = this.defs, n = null; return ( (D.scales[e] || t[e]) && ((n = _({}, D.scales[e])), C(t[e], function(s, o) { w(s) ? delete n[o] : (n[o] = s); })), n ); }), (r._getDefaultType = function(e, t, n) { if (n && n.type) return n.type; var s = 'linear', o = Se(t, e); return k(o) && (o = o[0]), B(o) && (s = 'cat'), s; }), (r._getScaleDef = function(e, t, n, s) { var o; s && s.values ? (o = s.values) : (o = mr(n, t)); var l = { field: t, values: o }; if (e !== 'cat' && e !== 'timeCat') { if (!s || !(s.min && s.max)) { var u = Ce(o), c = u.min, f = u.max; (l.min = c), (l.max = f), (l.nice = !0); } } else l.isRounding = !1; return l; }), (r._adjustRange = function(e, t) { var n = t.range, s = t.values; if (e === 'linear' || n || !s) return t; var o = s.length; if (o === 1) t.range = [0.5, 1]; else { var l = this.chart, u = l.get('coord'), c = D.widthRatio.multiplePie, f = 0; xs(u) ? u.transposed ? ((f = (1 / o) * c), (t.range = [f / 2, 1 - f / 2])) : (t.range = [0, 1 - 1 / o]) : ((f = (1 / o) * 0.5), (t.range = [f, 1 - f])); } return t; }), (r._getScaleCfg = function(e, t) { var n = this, s = n._getDef(e); if (!t || !t.length) return s && s.type ? ((s.field = e), { type: s.type, cfg: s }) : { type: 'identity', cfg: { value: e, field: e.toString(), values: [e] } }; var o = t[0], l = o[e]; if ((l === null && (l = Se(t, e)), X(e) || (w(l) && !s))) return { type: 'identity', cfg: { value: e, field: e.toString(), values: [e] }, }; var u = n._getDefaultType(e, t, s), c = n._getScaleDef(u, e, t, s); return s && _(c, s), (c = this._adjustRange(u, c)), { type: u, cfg: c }; }), (r.createScale = function(e, t) { var n = this.scales, s = this._getScaleCfg(e, t), o = s.type, l = s.cfg, u = n[e]; if (u && u.type === o) return u.change(l), u; var c = Et(o), f = new c(l); return (n[e] = f), f; }), (r._updateScale = function(e) { var t = e.field, n = this.chart._getScaleData(t), s = this._getScaleCfg(t, n), o = s.cfg; e.change(o); }), (r.updateScales = function() { var e = this, t = this.scales; C(t, function(n) { e._updateScale(n); }); }), (r.adjustStartZero = function(e) { var t = this.defs, n = e.field, s = e.min, o = e.max; if (t[n] && t[n].min) return; s > 0 ? e.change({ min: 0 }) : o < 0 && e.change({ max: 0 }); }), (r.clear = function() { xa(this.defs), xa(this.scales), (this.data = null); }), i ); })(), Xt = (function() { var i = r.prototype; i._initDefaultCfg = function() { (this.ticks = []), (this.tickLine = {}), (this.offsetFactor = 1), (this.frontContainer = null), (this.backContainer = null), (this.gridPoints = []); }; function r(a) { this._initDefaultCfg(), _(this, a), this.draw(); } return ( (i.draw = function() { var e = this.line, t = this.tickLine, n = this.label, s = this.grid; s && this.drawGrid(s), t && this.drawTicks(t), e && this.drawLine(e), n && this.drawLabels(); }), (i.drawTicks = function(e) { var t = this, n = t.ticks, s = e.length, o = t.getContainer(e.top); C(n, function(l) { var u = t.getOffsetPoint(l.value), c = t.getSidePoint(u, s), f = o.addShape('line', { className: 'axis-tick', attrs: _({ x1: u.x, y1: u.y, x2: c.x, y2: c.y }, e), }); f._id = t._id + '-ticks'; }); }), (i.drawLabels = function() { var e = this, t = e.labelOffset, n = e.labels; C(n, function(s) { var o = e.getContainer(s.get('top')), l = e.getOffsetPoint(s.get('value')), u = e.getSidePoint(l, t), c = u.x, f = u.y; s.attr(_({ x: c, y: f }, e.getTextAlignInfo(l, t), s.get('textStyle'))), (s._id = e._id + '-' + s.attr('text')), o.add(s); }); }), (i.drawLine = function() {}), (i.drawGrid = function(e) { var t = this, n = t.gridPoints, s = t.ticks, o = e, l = n.length; C(n, function(u, c) { if (F(e)) { var f = s[c] || {}, h = e(f.text, c, l); o = h ? _({}, D._defaultAxis.grid, h) : null; } if (o) { var v = o.type, g = u.points, p = t.getContainer(o.top), m; if (v === 'arc') { var d = t.center, y = t.startAngle, x = t.endAngle, S = A.length([g[0].x - d.x, g[0].y - d.y]); m = p.addShape('Arc', { className: 'axis-grid', attrs: _({ x: d.x, y: d.y, startAngle: y, endAngle: x, r: S }, o), }); } else m = p.addShape('Polyline', { className: 'axis-grid', attrs: _({ points: g }, o), }); m._id = u._id; } }); }), (i.getOffsetPoint = function() {}), (i.getAxisVector = function() {}), (i.getOffsetVector = function(e, t) { var n = this, s = n.getAxisVector(e), o = A.normalize([], s), l = n.offsetFactor, u = [o[1] * -1 * l, o[0] * l]; return A.scale([], u, t); }), (i.getSidePoint = function(e, t) { var n = this, s = n.getOffsetVector(e, t); return { x: e.x + s[0], y: e.y + s[1] }; }), (i.getTextAlignInfo = function(e, t) { var n = this, s = n.getOffsetVector(e, t), o, l; return ( s[0] > 0 ? (o = 'left') : s[0] < 0 ? (o = 'right') : (o = 'center'), s[1] > 0 ? (l = 'top') : s[1] < 0 ? (l = 'bottom') : (l = 'middle'), { textAlign: o, textBaseline: l } ); }), (i.getContainer = function(e) { var t = this.frontContainer, n = this.backContainer; return e ? t : n; }), r ); })(), Ss = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { i.prototype._initDefaultCfg.call(this), (this.start = null), (this.end = null); }), (a.getOffsetPoint = function(t) { var n = this.start, s = this.end; return { x: n.x + (s.x - n.x) * t, y: n.y + (s.y - n.y) * t }; }), (a.getAxisVector = function() { var t = this.start, n = this.end; return [n.x - t.x, n.y - t.y]; }), (a.drawLine = function(t) { var n = this.getContainer(t.top), s = this.start, o = this.end; n.addShape('line', { className: 'axis-line', attrs: _({ x1: s.x, y1: s.y, x2: o.x, y2: o.y }, t), }); }), r ); })(Xt); Xt.Line = Ss; var _a = function(r, a) { var e = a.x - r.x, t = a.y - r.y; return Math.abs(e) > Math.abs(t) ? (e > 0 ? 'right' : 'left') : t > 0 ? 'down' : 'up'; }, oe = function(r, a) { var e = Math.abs(a.x - r.x), t = Math.abs(a.y - r.y); return Math.sqrt(e * e + t * t); }, Cs = function(r, a) { var e = r.x + (a.x - r.x) / 2, t = r.y + (a.y - r.y) / 2; return { x: e, y: t }; }, Xe = function(r, a) { var e = r.touches; if (!e) { var t = qt({ x: r.clientX, y: r.clientY }, a); return [t]; } for (var n = [], s = e.length, o = 0; o < s; o++) { var l = e[o], u = l.x, c = l.y, f = l.clientX, h = l.clientY, v = void 0; X(u) || X(c) ? (v = { x: u, y: c }) : (v = qt({ x: f, y: h }, a)), n.push(v); } return n; }, Sa = 250, Ps = (function() { function i(a) { var e = this, t = a.canvas, n = a.el; N(this, '_click', function(s) { var o = Xe(s, e.canvas); (s.points = o), e.emitEvent('click', s); }), N(this, '_start', function(s) { var o = Xe(s, e.canvas); if (!o) return; (s.points = o), e.emitEvent('touchstart', s), e.reset(), (e.startTime = Date.now()), (e.startPoints = o), o.length > 1 ? ((e.startDistance = oe(o[0], o[1])), (e.center = Cs(o[0], o[1]))) : (e.pressTimeout = setTimeout(function() { var l = 'press', u = 'none'; (s.direction = u), e.emitStart(l, s), e.emitEvent(l, s), (e.eventType = l), (e.direction = u); }, Sa)); }), N(this, '_move', function(s) { var o = Xe(s, e.canvas); if (!o) return; e.clearPressTimeout(), (s.points = o), e.emitEvent('touchmove', s); var l = e.startPoints; if (!l) return; if (o.length > 1) { var u = e.startDistance, c = oe(o[0], o[1]); (s.zoom = c / u), (s.center = e.center), e.emitStart('pinch', s), e.emitEvent('pinch', s); } else { var f = o[0].x - l[0].x, h = o[0].y - l[0].y, v = e.direction || _a(l[0], o[0]); e.direction = v; var g = e.getEventType(o); (s.direction = v), (s.deltaX = f), (s.deltaY = h), e.emitStart(g, s), e.emitEvent(g, s); var p = e.lastMoveTime, m = Date.now(); m - p > 0 && ((e.prevMoveTime = p), (e.prevMovePoints = e.lastMovePoints), (e.lastMoveTime = m), (e.lastMovePoints = o)); } }), N(this, '_end', function(s) { e.emitEnd(s), e.emitEvent('touchend', s); var o = e.lastMoveTime, l = Date.now(); if (l - o < 100) { var u = e.prevMoveTime || e.startTime, c = o - u; if (c > 0) { var f = e.prevMovePoints || e.startPoints, h = e.lastMovePoints, v = oe(f[0], h[0]) / c; v > 0.3 && ((s.velocity = v), (s.direction = _a(f[0], h[0])), e.emitEvent('swipe', s)); } } e.reset(); var g = s.touches; g && g.length > 0 && e._start(s); }), N(this, '_cancel', function(s) { e.emitEvent('touchcancel', s), e.reset(); }), (this.canvas = t), this.delegateEvent(n), (this.processEvent = {}); } var r = i.prototype; return ( (r.delegateEvent = function(e) { e.addEventListener('click', this._click), e.addEventListener('touchstart', this._start), e.addEventListener('touchmove', this._move), e.addEventListener('touchend', this._end), e.addEventListener('touchcancel', this._cancel); }), (r.emitEvent = function(e, t) { var n = this.canvas; n.emit(e, t); }), (r.getEventType = function(e) { var t = this.eventType, n = this.canvas, s = this.startTime, o = this.startPoints; if (t) return t; var l, u = n.__events.pan; if (!u || !u.length) l = 'press'; else { var c = Date.now(); c - s > Sa && oe(o[0], e[0]) < 10 ? (l = 'press') : (l = 'pan'); } return (this.eventType = l), l; }), (r.enable = function(e) { this.processEvent[e] = !0; }), (r.isProcess = function(e) { return this.processEvent[e]; }), (r.emitStart = function(e, t) { if (this.isProcess(e)) return; this.enable(e), this.emitEvent(e + 'start', t); }), (r.emitEnd = function(e) { var t = this, n = this.processEvent; Object.keys(n).forEach(function(s) { t.emitEvent(s + 'end', e), delete n[s]; }); }), (r.clearPressTimeout = function() { this.pressTimeout && (clearTimeout(this.pressTimeout), (this.pressTimeout = 0)); }), (r.reset = function() { this.clearPressTimeout(), (this.startTime = 0), (this.startPoints = null), (this.startDistance = 0), (this.direction = null), (this.eventType = null), (this.pinch = !1), (this.prevMoveTime = 0), (this.prevMovePoints = null), (this.lastMoveTime = 0), (this.lastMovePoints = null); }), i ); })(), ws = (function(i) { E(r, i); function r(e) { var t; return ( (t = i.call(this) || this), (t.context = e), (t.width = 0), (t.height = 0), (t.style = {}), (t.currentStyle = {}), (t.isCanvasElement = !0), t ); } var a = r.prototype; return ( (a.getContext = function() { return this.context; }), (a.getBoundingClientRect = function() { var t = this.width, n = this.height; return { top: 0, right: t, bottom: n, left: 0 }; }), (a.addEventListener = function(t, n) { this.on(t, n); }), (a.removeEventListener = function(t, n) { this.off(t, n); }), (a.dispatchEvent = function(t, n) { this.emit(t, n); }), r ); })(Ee); function Ms(i) { if (!i) return !1; if (i.nodeType !== 1 || !i.nodeName || i.nodeName.toLowerCase() !== 'canvas') return !1; var r = !1; try { i.addEventListener('eventTest', function() { r = !0; }), i.dispatchEvent(new Event('eventTest')); } catch (a) { r = !1; } return r; } var bs = { create: function(r) { return r ? (Ms(r.canvas) ? r.canvas : new ws(r)) : null; }, }; function Ts(i, r) { return ((i % r) + r) % r; } function Ca(i, r) { C(i, function(a) { (a = a.split(':')), r.addColorStop(Number(a[0]), a[1]); }); } function Ds(i, r, a) { var e = i.split(' '), t = e[0].slice(2, e[0].length - 1); t = Ts((parseFloat(t) * Math.PI) / 180, Math.PI * 2); var n = e.slice(1), s = r.getBBox(), o = s.minX, l = s.minY, u = s.maxX, c = s.maxY, f, h; t >= 0 && t < 0.5 * Math.PI ? ((f = { x: o, y: l }), (h = { x: u, y: c })) : 0.5 * Math.PI <= t && t < Math.PI ? ((f = { x: u, y: l }), (h = { x: o, y: c })) : Math.PI <= t && t < 1.5 * Math.PI ? ((f = { x: u, y: c }), (h = { x: o, y: l })) : ((f = { x: o, y: c }), (h = { x: u, y: l })); var v = Math.tan(t), g = v * v, p = (h.x - f.x + v * (h.y - f.y)) / (g + 1) + f.x, m = (v * (h.x - f.x + v * (h.y - f.y))) / (g + 1) + f.y, d = a.createLinearGradient(f.x, f.y, p, m); return Ca(n, d), d; } function Es(i, r, a) { var e = i.split(' '), t = e[0].slice(2, e[0].length - 1); t = t.split(','); var n = parseFloat(t[0]), s = parseFloat(t[1]), o = parseFloat(t[2]), l = e.slice(1); if (o === 0) { var u = l[l.length - 1]; return u.split(':')[1]; } var c = r.getBBox(), f = c.width, h = c.height, v = c.minX, g = c.minY, p = Math.sqrt(f * f + h * h) / 2, m = a.createRadialGradient(v + f * n, g + h * s, o * p, v + f / 2, g + h / 2, p); return Ca(l, m), m; } function As(i, r, a) { if (i[1] === '(') try { var e = i[0]; if (e === 'l') return Ds(i, r, a); if (e === 'r') return Es(i, r, a); } catch (t) { console.error( 'error in parsing gradient string, please check if there are any extra whitespaces.', ), console.error(t); } return i; } var ks = { stroke: 'strokeStyle', fill: 'fillStyle', opacity: 'globalAlpha' }, Is = [ 'fillStyle', 'font', 'globalAlpha', 'lineCap', 'lineWidth', 'lineJoin', 'miterLimit', 'shadowBlur', 'shadowColor', 'shadowOffsetX', 'shadowOffsetY', 'strokeStyle', 'textAlign', 'textBaseline', 'lineDash', 'shadow', ], Os = ['circle', 'sector', 'polygon', 'rect', 'polyline'], Ge = (function() { var i = r.prototype; i._initProperties = function() { this._attrs = { zIndex: 0, visible: !0, destroyed: !1 }; }; function r(a) { this._initProperties(), _(this._attrs, a); var e = this._attrs.attrs; e && this.initAttrs(e), this.initTransform(); } return ( (i.get = function(e) { return this._attrs[e]; }), (i.set = function(e, t) { this._attrs[e] = t; }), (i.isGroup = function() { return this.get('isGroup'); }), (i.isShape = function() { return this.get('isShape'); }), (i.initAttrs = function(e) { this.attr(_(this.getDefaultAttrs(), e)); }), (i.getDefaultAttrs = function() { return {}; }), (i._setAttr = function(e, t) { var n = this._attrs.attrs; if (e === 'clip') t = this._setAttrClip(t); else { var s = ks[e]; s && (n[s] = t); } n[e] = t; }), (i._getAttr = function(e) { return this._attrs.attrs[e]; }), (i._setAttrClip = function(e) { return e && Os.indexOf(e._attrs.type) > -1 ? (e.get('canvas') === null && (e = Object.assign({}, e)), e.set('parent', this.get('parent')), e.set('context', this.get('context')), e) : null; }), (i.attr = function(e, t) { var n = this; if (n.get('destroyed')) return null; var s = arguments.length; if (s === 0) return n._attrs.attrs; if (j(e)) { this._attrs.bbox = null; for (var o in e) n._setAttr(o, e[o]); return n._afterAttrsSet && n._afterAttrsSet(), n; } return s === 2 ? ((this._attrs.bbox = null), n._setAttr(e, t), n._afterAttrsSet && n._afterAttrsSet(), n) : n._getAttr(e); }), (i.getParent = function() { return this.get('parent'); }), (i.draw = function(e) { if (this.get('destroyed')) return; this.get('visible') && (this.setContext(e), this.drawInner(e), this.restoreContext(e)); }), (i.setContext = function(e) { var t = this._attrs.attrs.clip; e.save(), t && (t.resetTransform(e), t.createPath(e), e.clip()), this.resetContext(e), this.resetTransform(e); }), (i.restoreContext = function(e) { e.restore(); }), (i.resetContext = function(e) { var t = this._attrs.attrs; if (!this._attrs.isGroup) { for (var n in t) if (Is.indexOf(n) > -1) { var s = t[n]; (n === 'fillStyle' || n === 'strokeStyle') && (s = As(s, this, e)), n === 'lineDash' && e.setLineDash && k(s) ? e.setLineDash(s) : (e[n] = s); } } }), (i.hasFill = function() { return this.get('canFill') && this._attrs.attrs.fillStyle; }), (i.hasStroke = function() { return this.get('canStroke') && this._attrs.attrs.strokeStyle; }), (i.drawInner = function() {}), (i.show = function() { return this.set('visible', !0), this; }), (i.hide = function() { return this.set('visible', !1), this; }), (i.isVisible = function() { return this.get('visible'); }), (i._removeFromParent = function() { var e = this.get('parent'); if (e) { var t = e.get('children'); Wt(t, this); } return this; }), (i.remove = function(e) { e ? this.destroy() : this._removeFromParent(); }), (i.destroy = function() { var e = this.get('destroyed'); if (e) return null; this._removeFromParent(), (this._attrs = {}), this.set('destroyed', !0); }), (i.getBBox = function() { return { minX: 0, maxX: 0, minY: 0, maxY: 0, width: 0, height: 0 }; }), (i.initTransform = function() { var e = this._attrs.attrs || {}; e.matrix || (e.matrix = [1, 0, 0, 1, 0, 0]), (this._attrs.attrs = e); }), (i.getMatrix = function() { return this._attrs.attrs.matrix; }), (i.setMatrix = function(e) { this._attrs.attrs.matrix = [e[0], e[1], e[2], e[3], e[4], e[5]]; }), (i.transform = function(e) { var t = this._attrs.attrs.matrix; return (this._attrs.attrs.matrix = G.transform(t, e)), this; }), (i.setTransform = function(e) { return (this._attrs.attrs.matrix = [1, 0, 0, 1, 0, 0]), this.transform(e); }), (i.translate = function(e, t) { var n = this._attrs.attrs.matrix; G.translate(n, n, [e, t]); }), (i.rotate = function(e) { var t = this._attrs.attrs.matrix; G.rotate(t, t, e); }), (i.scale = function(e, t) { var n = this._attrs.attrs.matrix; G.scale(n, n, [e, t]); }), (i.moveTo = function(e, t) { var n = this._attrs.x || 0, s = this._attrs.y || 0; this.translate(e - n, t - s), this.set('x', e), this.set('y', t); }), (i.apply = function(e) { var t = this._attrs.attrs.matrix; return A.transformMat2d(e, e, t), this; }), (i.resetTransform = function(e) { var t = this._attrs.attrs.matrix; G.isChanged(t) && e.transform(t[0], t[1], t[2], t[3], t[4], t[5]); }), (i.isDestroyed = function() { return this.get('destroyed'); }), r ); })(), R = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { this._attrs = { zIndex: 0, visible: !0, destroyed: !1, isShape: !0, attrs: {} }; }), (a.getType = function() { return this._attrs.type; }), (a.drawInner = function(t) { var n = this, s = n.get('attrs'); n.createPath(t); var o = t.globalAlpha; if (n.hasFill()) { var l = s.fillOpacity; !w(l) && l !== 1 ? ((t.globalAlpha = l), t.fill(), (t.globalAlpha = o)) : t.fill(); } if (n.hasStroke()) { var u = s.lineWidth; if (u > 0) { var c = s.strokeOpacity; !w(c) && c !== 1 && (t.globalAlpha = c), t.stroke(); } } }), (a.getBBox = function() { var t = this._attrs.bbox; return ( t || ((t = this.calculateBox()), t && ((t.x = t.minX), (t.y = t.minY), (t.width = t.maxX - t.minX), (t.height = t.maxY - t.minY)), (this._attrs.bbox = t)), t ); }), (a.calculateBox = function() { return null; }), (a.createPath = function() {}), r ); })(Ge), Pa = {}, He = '_INDEX'; function Rs(i) { return function(r, a) { var e = i(r, a); return e === 0 ? r[He] - a[He] : e; }; } var wa = { getGroupClass: function() {}, getChildren: function() { return this.get('children'); }, addShape: function(r, a) { a === void 0 && (a = {}); var e = this.get('canvas'), t = Pa[r]; t || ((t = lt(r)), (Pa[r] = t)), (a.canvas = e), t === 'Text' && e && e.get('fontFamily') && (a.attrs.fontFamily = a.attrs.fontFamily || e.get('fontFamily')); var n = new R[t](a); return this.add(n), n; }, addGroup: function(r) { var a = this.get('canvas'), e = this.getGroupClass(); (r = _({}, r)), (r.canvas = a), (r.parent = this); var t = new e(r); return this.add(t), t; }, contain: function(r) { var a = this.get('children'); return a.indexOf(r) > -1; }, sort: function() { for (var r = this.get('children'), a = 0, e = r.length; a < e; a++) { var t = r[a]; t[He] = a; } return ( r.sort( Rs(function(n, s) { return n.get('zIndex') - s.get('zIndex'); }), ), this ); }, drawInner: function(r) { for (var a = this.get('children'), e = 0, t = a.length; e < t; e++) { var n = a[e]; n.draw(r); } return this; }, clear: function() { for (var r = this.get('children'); r.length !== 0; ) r[r.length - 1].remove(!0); return this; }, add: function(r) { var a = this, e = a.get('children'); k(r) || (r = [r]); for (var t = 0, n = r.length; t < n; t++) { var s = r[t], o = s.get('parent'); if (o) { var l = o.get('children'); Wt(l, s); } a._setEvn(s), e.push(s); } return a; }, _setEvn: function(r) { var a = this; (r._attrs.parent = a), (r._attrs.context = a._attrs.context), (r._attrs.canvas = a._attrs.canvas); var e = r._attrs.attrs.clip; if ( (e && (e.set('parent', a), e.set('context', a.get('context'))), r._attrs.isGroup) ) for (var t = r._attrs.children, n = 0, s = t.length; n < s; n++) r._setEvn(t[n]); }, }, kt = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { this._attrs = { zIndex: 0, visible: !0, destroyed: !1, isGroup: !0, children: [], }; }), (a.getBBox = function() { for ( var t = this, n = Infinity, s = -Infinity, o = Infinity, l = -Infinity, u = t.get('children'), c = 0, f = u.length; c < f; c++ ) { var h = u[c]; if (h.get('visible')) { var v = h.getBBox(); if (!v) continue; var g = [v.minX, v.minY], p = [v.minX, v.maxY], m = [v.maxX, v.minY], d = [v.maxX, v.maxY], y = h.attr('matrix'); A.transformMat2d(g, g, y), A.transformMat2d(p, p, y), A.transformMat2d(m, m, y), A.transformMat2d(d, d, y), (n = Math.min(g[0], p[0], m[0], d[0], n)), (s = Math.max(g[0], p[0], m[0], d[0], s)), (o = Math.min(g[1], p[1], m[1], d[1], o)), (l = Math.max(g[1], p[1], m[1], d[1], l)); } } return { minX: n, minY: o, maxX: s, maxY: l, x: n, y: o, width: s - n, height: l - o, }; }), (a.destroy = function() { if (this.get('destroyed')) return; this.clear(), i.prototype.destroy.call(this); }), r ); })(Ge); _(kt.prototype, wa, { getGroupClass: function() { return kt; }, }); var Ue = typeof window == 'object' && window.requestAnimationFrame ? window.requestAnimationFrame : function(i) { return setTimeout(i, 16); }, je = (function(i) { E(a, i); var r = a.prototype; (r.get = function(t) { return this._attrs[t]; }), (r.set = function(t, n) { this._attrs[t] = n; }); function a(e) { var t; return ( (t = i.call(this) || this), (t._attrs = _({ type: 'canvas', children: [] }, e)), t._initPixelRatio(), t._initCanvas(), t ); } return ( (r._initPixelRatio = function() { var t = this.get('pixelRatio'); t || this.set('pixelRatio', Cr()); }), (r.beforeDraw = function() { var t = this._attrs.context, n = this._attrs.el; t && t.clearRect && t.clearRect(0, 0, n.width, n.height); }), (r._initCanvas = function() { var t = this, n = t.get('el'), s = t.get('context'); if (!n && !s) throw new Error('Please specify the id, el or context of the chart!'); var o; n ? (o = B(n) ? Pr(n) : n) : (o = bs.create(s)), s && o && !o.getContext && (o.getContext = function() { return s; }); var l = t.get('width'); l || (l = Pe(o)); var u = t.get('height'); u || (u = we(o)), t.set('canvas', this), t.set('el', o), t.set('context', s || o.getContext('2d')), t.changeSize(l, u); var c = new Ps({ canvas: this, el: o }); t.set('eventController', c); }), (r.changeSize = function(t, n) { var s = this.get('pixelRatio'), o = this.get('el'); if ( (o.style && ((o.style.width = t + 'px'), (o.style.height = n + 'px')), Sr(o) && ((o.width = t * s), (o.height = n * s), s !== 1)) ) { var l = this.get('context'); l.scale(s, s); } this.set('width', t), this.set('height', n); }), (r.getWidth = function() { var t = this.get('pixelRatio'), n = this.get('width'); return n * t; }), (r.getHeight = function() { var t = this.get('pixelRatio'), n = this.get('height'); return n * t; }), (r.getPointByClient = function(t, n) { var s = this.get('el'), o = s.getBoundingClientRect(), l = o.right - o.left, u = o.bottom - o.top; return { x: (t - o.left) * (s.width / l), y: (n - o.top) * (s.height / u) }; }), (r._beginDraw = function() { this._attrs.toDraw = !0; }), (r._endDraw = function() { this._attrs.toDraw = !1; }), (r.draw = function() { var t = this; function n() { t.set( 'animateHandler', Ue(function() { t.set('animateHandler', void 0), t.get('toDraw') && n(); }), ), t.beforeDraw(); try { var s = t._attrs.context; t.drawInner(s), s.draw && s.draw(); } catch (o) { console.warn('error in draw canvas, detail as:'), console.warn(o), t._endDraw(); } t._endDraw(); } if (t.get('destroyed')) return; t.get('animateHandler') ? this._beginDraw() : n(); }), (r.destroy = function() { if (this.get('destroyed')) return; var t = this.get('el'); (t.width = 0), (t.height = 0), this.clear(), (this._attrs = {}), this.set('destroyed', !0); }), (r.isDestroyed = function() { return this.get('destroyed'); }), a ); })(Ee); _(je.prototype, wa, { getGroupClass: function() { return kt; }, }); function Ns(i, r, a) { if (((i = q(i)), !i[0] && !i[1] && !i[2] && !i[3])) return i; var e = Math.max(i[0] + i[1], i[2] + i[3]), t = Math.max(i[0] + i[3], i[1] + i[2]), n = Math.min(r / e, a / t); return n < 1 ? i.map(function(s) { return s * n; }) : i; } var Ys = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { i.prototype._initProperties.call(this), (this._attrs.canFill = !0), (this._attrs.canStroke = !0), (this._attrs.type = 'rect'); }), (a.getDefaultAttrs = function() { return { x: 0, y: 0, width: 0, height: 0, radius: 0, lineWidth: 0 }; }), (a.createPath = function(t) { var n = this, s = n.get('attrs'), o = s.x, l = s.y, u = s.width, c = s.height, f = s.radius; t.beginPath(), !f || !(u * c) ? t.rect(o, l, u, c) : ((f = Ns(f, u, c)), t.moveTo(o + f[0], l), t.lineTo(o + u - f[1], l), t.arc(o + u - f[1], l + f[1], f[1], -Math.PI / 2, 0, !1), t.lineTo(o + u, l + c - f[2]), t.arc(o + u - f[2], l + c - f[2], f[2], 0, Math.PI / 2, !1), t.lineTo(o + f[3], l + c), t.arc(o + f[3], l + c - f[3], f[3], Math.PI / 2, Math.PI, !1), t.lineTo(o, l + f[0]), t.arc(o + f[0], l + f[0], f[0], Math.PI, (Math.PI * 3) / 2, !1), t.closePath()); }), (a.calculateBox = function() { var t = this.get('attrs'), n = t.x, s = t.y, o = t.width, l = t.height; return { minX: n, minY: s, maxX: n + o, maxY: s + l }; }), r ); })(R); R.Rect = Ys; var Fs = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { i.prototype._initProperties.call(this), (this._attrs.canFill = !1), (this._attrs.canStroke = !1), (this._attrs.loading = !1), (this._attrs.image = null), (this._attrs.type = 'image'); }), (a.getDefaultAttrs = function() { return { x: 0, y: 0, width: 0, height: 0 }; }), (a.createPath = function(t) { var n = this, s = this.get('attrs'), o = s.src; if (this.get('loading')) return; var l = this.get('image'); if (l) this.drawImage(t, l); else if (o && Image) { this.set('loading', !0); var u = new Image(); (u.src = o), (u.crossOrigin = 'Anonymous'), (u.onload = function() { n.set('loading', !1), n.set('image', u), n.drawImage(t, u); }); } }), (a.drawImage = function(t, n) { var s = this.get('attrs'), o = s.x, l = s.y, u = s.width, c = s.height, f = s.sx, h = s.sy, v = s.swidth, g = s.sheight; !w(f) && !w(h) && !w(v) && !w(g) ? t.drawImage(n, f, h, v, g, o, l, u, c) : t.drawImage(n, o, l, u, c); }), (a.calculateBox = function() { var t = this.get('attrs'), n = t.x, s = t.y, o = t.width, l = t.height; return { minX: n, minY: s, maxX: n + o, maxY: s + l }; }), r ); })(R); R.Image = Fs; var Ls = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { i.prototype._initProperties.call(this), (this._attrs.canFill = !0), (this._attrs.canStroke = !0), (this._attrs.type = 'circle'); }), (a.getDefaultAttrs = function() { return { x: 0, y: 0, r: 0, lineWidth: 0 }; }), (a.createPath = function(t) { var n = this.get('attrs'), s = n.x, o = n.y, l = n.r; t.beginPath(), t.arc(s, o, l, 0, Math.PI * 2, !1), t.closePath(); }), (a.calculateBox = function() { var t = this.get('attrs'), n = t.x, s = t.y, o = t.r; return { minX: n - o, maxX: n + o, minY: s - o, maxY: s + o }; }), r ); })(R); R.Circle = Ls; var le = A.create(), ue = A.create(), ce = A.create(); function Bs(i, r, a, e, t) { var n = Ma(t, i.x, r.x, a.x, e.x), s = Ma(t, i.y, r.y, a.y, e.y); return { x: n, y: s }; } function Ma(i, r, a, e, t) { var n = i * i, s = n * i; return ( r + (-r * 3 + i * (3 * r - r * i)) * i + (3 * a + i * (-6 * a + a * 3 * i)) * i + (e * 3 - e * 3 * i) * n + t * s ); } function zs(i) { for ( var r = Infinity, a = -Infinity, e = Infinity, t = -Infinity, n = { x: i[0], y: i[1] }, s = { x: i[2], y: i[3] }, o = { x: i[4], y: i[5] }, l = { x: i[6], y: i[7] }, u = 0; u < 100; u++ ) { var c = Bs(n, s, o, l, u / 100); c.x < r && (r = c.x), c.x > a && (a = c.x), c.y < e && (e = c.y), c.y > t && (t = c.y); } return { minX: r, minY: e, maxX: a, maxY: t }; } function Ve(i, r) { if (i.length === 0) return; for (var a = i[0], e = a.x, t = a.x, n = a.y, s = a.y, o = i.length, l = 1; l < o; l++) (a = i[l]), (e = Math.min(e, a.x)), (t = Math.max(t, a.x)), (n = Math.min(n, a.y)), (s = Math.max(s, a.y)); return (r = r / 2 || 0), { minX: e - r, minY: n - r, maxX: t + r, maxY: s + r }; } function Xs(i, r, a, e, t) { return ( (t = t / 2 || 0), { minX: Math.min(i, a) - t, minY: Math.min(r, e) - t, maxX: Math.max(i, a) + t, maxY: Math.max(r, e) + t, } ); } function We(i, r, a, e, t, n) { var s = Math.abs(e - t); if (s % (Math.PI * 2) < 1e-4 && s > 1e-4) return { minX: i - a, minY: r - a, maxX: i + a, maxY: r + a }; (le[0] = Math.cos(e) * a + i), (le[1] = Math.sin(e) * a + r), (ue[0] = Math.cos(t) * a + i), (ue[1] = Math.sin(t) * a + r); var o = [0, 0], l = [0, 0]; if ( (A.min(o, le, ue), A.max(l, le, ue), (e = e % (Math.PI * 2)), e < 0 && (e = e + Math.PI * 2), (t = t % (Math.PI * 2)), t < 0 && (t = t + Math.PI * 2), e > t && !n ? (t += Math.PI * 2) : e < t && n && (e += Math.PI * 2), n) ) { var u = t; (t = e), (e = u); } for (var c = 0; c < t; c += Math.PI / 2) c > e && ((ce[0] = Math.cos(c) * a + i), (ce[1] = Math.sin(c) * a + r), A.min(o, ce, o), A.max(l, ce, l)); return { minX: o[0], minY: o[1], maxX: l[0], maxY: l[1] }; } function Gs(i, r) { for ( var a = Infinity, e = -Infinity, t = Infinity, n = -Infinity, s = 0, o = i.length; s < o; s++ ) { var l = zs(i[s]); l.minX < a && (a = l.minX), l.maxX > e && (e = l.maxX), l.minY < t && (t = l.minY), l.maxY > n && (n = l.maxY); } return (r = r / 2 || 0), { minX: a - r, minY: t - r, maxX: e + r, maxY: n + r }; } var Hs = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { i.prototype._initProperties.call(this), (this._attrs.canStroke = !0), (this._attrs.type = 'line'); }), (a.getDefaultAttrs = function() { return { x1: 0, y1: 0, x2: 0, y2: 0, lineWidth: 1 }; }), (a.createPath = function(t) { var n = this.get('attrs'), s = n.x1, o = n.y1, l = n.x2, u = n.y2; t.beginPath(), t.moveTo(s, o), t.lineTo(l, u); }), (a.calculateBox = function() { var t = this.get('attrs'), n = t.x1, s = t.y1, o = t.x2, l = t.y2, u = t.lineWidth; return Xs(n, s, o, l, u); }), r ); })(R); R.Line = Hs; var Us = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { i.prototype._initProperties.call(this), (this._attrs.canFill = !0), (this._attrs.canStroke = !0), (this._attrs.type = 'polygon'); }), (a.getDefaultAttrs = function() { return { points: null, lineWidth: 0 }; }), (a.createPath = function(t) { var n = this, s = n.get('attrs'), o = s.points; t.beginPath(); for (var l = 0, u = o.length; l < u; l++) { var c = o[l]; l === 0 ? t.moveTo(c.x, c.y) : t.lineTo(c.x, c.y); } t.closePath(); }), (a.calculateBox = function() { var t = this.get('attrs'), n = t.points; return Ve(n); }), r ); })(R); R.Polygon = Us; function It(i) { return [i.x, i.y]; } function js(i, r, a, e) { var t = [], n, s, o = !!e, l, u, c, f, h, v; if (o) { for ( l = [Infinity, Infinity], u = [-Infinity, -Infinity], v = 0, h = i.length; v < h; v++ ) (c = It(i[v])), A.min(l, l, c), A.max(u, u, c); A.min(l, l, e[0]), A.max(u, u, e[1]); } for (v = 0, f = i.length; v < f; v++) { if (((c = It(i[v])), a)) (n = It(i[v ? v - 1 : f - 1])), (s = It(i[(v + 1) % f])); else if (v === 0 || v === f - 1) { t.push([c[0], c[1]]); continue; } else (n = It(i[v - 1])), (s = It(i[v + 1])); var g = A.sub([], s, n); A.scale(g, g, r); var p = A.distance(c, n), m = A.distance(c, s), d = p + m; d !== 0 && ((p /= d), (m /= d)); var y = A.scale([], g, -p), x = A.scale([], g, m), S = A.add([], c, y), P = A.add([], c, x); o && (A.max(S, S, l), A.min(S, S, u), A.max(P, P, l), A.min(P, P, u)), t.push([S[0], S[1]]), t.push([P[0], P[1]]); } return a && t.push(t.shift()), t; } function fe(i, r, a) { for ( var e = !!r, t = js(i, 0.4, e, a), n = i.length, s = [], o, l, u, c = 0; c < n - 1; c++ ) (o = t[c * 2]), (l = t[c * 2 + 1]), (u = i[c + 1]), s.push(['C', o[0], o[1], l[0], l[1], u.x, u.y]); return ( e && ((o = t[n]), (l = t[n + 1]), (u = i[0]), s.push(['C', o[0], o[1], l[0], l[1], u.x, u.y])), s ); } function ba(i) { for (var r = [], a = 0, e = i.length; a < e; a++) { var t = i[a]; !isNaN(t.x) && !isNaN(t.y) && r.push(t); } return r; } var Vs = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { i.prototype._initProperties.call(this), (this._attrs.canFill = !0), (this._attrs.canStroke = !0), (this._attrs.type = 'polyline'); }), (a.getDefaultAttrs = function() { return { points: null, lineWidth: 1, smooth: !1 }; }), (a.createPath = function(t) { var n = this, s = n.get('attrs'), o = s.points, l = s.smooth, u = ba(o); if ((t.beginPath(), u.length)) if ((t.moveTo(u[0].x, u[0].y), l)) for ( var c = [ [0, 0], [1, 1], ], f = fe(u, !1, c), h = 0, v = f.length; h < v; h++ ) { var g = f[h]; t.bezierCurveTo(g[1], g[2], g[3], g[4], g[5], g[6]); } else { var p, m; for (p = 1, m = u.length - 1; p < m; p++) t.lineTo(u[p].x, u[p].y); t.lineTo(u[m].x, u[m].y); } }), (a.calculateBox = function() { var t = this.get('attrs'), n = t.points, s = t.smooth, o = t.lineWidth, l = ba(n); if (s) { for ( var u = [], c = [ [0, 0], [1, 1], ], f = fe(l, !1, c), h = 0, v = f.length; h < v; h++ ) { var g = f[h]; if (h === 0) u.push([l[0].x, l[0].y, g[1], g[2], g[3], g[4], g[5], g[6]]); else { var p = f[h - 1]; u.push([p[5], p[6], g[1], g[2], g[3], g[4], g[5], g[6]]); } } return Gs(u, o); } return Ve(l, o); }), r ); })(R); R.Polyline = Vs; var Ws = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { i.prototype._initProperties.call(this), (this._attrs.canStroke = !0), (this._attrs.canFill = !0), (this._attrs.type = 'arc'); }), (a.getDefaultAttrs = function() { return { x: 0, y: 0, r: 0, startAngle: 0, endAngle: Math.PI * 2, anticlockwise: !1, lineWidth: 1, }; }), (a.createPath = function(t) { var n = this.get('attrs'), s = n.x, o = n.y, l = n.r, u = n.startAngle, c = n.endAngle, f = n.anticlockwise; t.beginPath(), u !== c && t.arc(s, o, l, u, c, f); }), (a.calculateBox = function() { var t = this.get('attrs'), n = t.x, s = t.y, o = t.r, l = t.startAngle, u = t.endAngle, c = t.anticlockwise; return We(n, s, o, l, u, c); }), r ); })(R); R.Arc = Ws; var qs = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { i.prototype._initProperties.call(this), (this._attrs.canFill = !0), (this._attrs.canStroke = !0), (this._attrs.type = 'sector'); }), (a.getDefaultAttrs = function() { return { x: 0, y: 0, lineWidth: 0, r: 0, r0: 0, startAngle: 0, endAngle: Math.PI * 2, anticlockwise: !1, }; }), (a.createPath = function(t) { var n = this.get('attrs'), s = n.x, o = n.y, l = n.startAngle, u = n.endAngle, c = n.r, f = n.r0, h = n.anticlockwise; t.beginPath(); var v = Math.cos(l), g = Math.sin(l); t.moveTo(v * f + s, g * f + o), t.lineTo(v * c + s, g * c + o), (Math.abs(u - l) > 1e-4 || (l === 0 && u < 0)) && (t.arc(s, o, c, l, u, h), t.lineTo(Math.cos(u) * f + s, Math.sin(u) * f + o), f !== 0 && t.arc(s, o, f, u, l, !h)), t.closePath(); }), (a.calculateBox = function() { var t = this.get('attrs'), n = t.x, s = t.y, o = t.r, l = t.r0, u = t.startAngle, c = t.endAngle, f = t.anticlockwise, h = We(n, s, o, u, c, f), v = We(n, s, l, u, c, f); return { minX: Math.min(h.minX, v.minX), minY: Math.min(h.minY, v.minY), maxX: Math.max(h.maxX, v.maxX), maxY: Math.max(h.maxY, v.maxY), }; }), r ); })(R); R.Sector = qs; var $s = { calcRotatedBox: function(r) { var a = r.width, e = r.height, t = r.rotate, n = Math.abs(t); return { width: Math.abs(a * Math.cos(n) + e * Math.sin(n)), height: Math.abs(e * Math.cos(n) + a * Math.sin(n)), }; }, }, qe = 0, he = {}, Zs = 5e3, Js = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { i.prototype._initProperties.call(this), (this._attrs.canFill = !0), (this._attrs.canStroke = !0), (this._attrs.type = 'text'); }), (a.getDefaultAttrs = function() { return { lineWidth: 0, lineCount: 1, fontSize: 12, fontFamily: 'sans-serif', fontStyle: 'normal', fontWeight: 'normal', fontVariant: 'normal', textAlign: 'start', textBaseline: 'bottom', lineHeight: null, textArr: null, }; }), (a._getFontStyle = function() { var t = this._attrs.attrs, n = t.fontSize, s = t.fontFamily, o = t.fontWeight, l = t.fontStyle, u = t.fontVariant; return l + ' ' + u + ' ' + o + ' ' + n + 'px ' + s; }), (a._afterAttrsSet = function() { var t = this._attrs.attrs; if (((t.font = this._getFontStyle()), t.text)) { var n = t.text, s = null, o = 1; B(n) && n.indexOf(` `) !== -1 && ((s = n.split(` `)), (o = s.length)), (t.lineCount = o), (t.textArr = s); } this.set('attrs', t); }), (a._getTextHeight = function() { var t = this._attrs.attrs; if (t.height) return t.height; var n = t.lineCount, s = t.fontSize * 1; if (n > 1) { var o = this._getSpaceingY(); return s * n + o * (n - 1); } return s; }), (a._getSpaceingY = function() { var t = this._attrs.attrs, n = t.lineHeight, s = t.fontSize * 1; return n ? n - s : s * 0.14; }), (a.drawInner = function(t) { var n = this, s = n._attrs.attrs, o = s.text, l = s.x, u = s.y; if (w(o) || isNaN(l) || isNaN(u)) return; var c = s.textArr, f = s.fontSize * 1, h = n._getSpaceingY(); s.rotate && (t.translate(l, u), t.rotate(s.rotate), (l = 0), (u = 0)); var v = s.textBaseline, g; c && (g = n._getTextHeight()); var p; if (n.hasFill()) { var m = s.fillOpacity; if ((!w(m) && m !== 1 && (t.globalAlpha = m), c)) for (var d = 0, y = c.length; d < y; d++) { var x = c[d]; (p = u + d * (h + f) - g + f), v === 'middle' && (p += g - f - (g - f) / 2), v === 'top' && (p += g - f), t.fillText(x, l, p); } else t.fillText(o, l, u); } if (n.hasStroke()) if (c) for (var S = 0, P = c.length; S < P; S++) { var b = c[S]; (p = u + S * (h + f) - g + f), v === 'middle' && (p += g - f - (g - f) / 2), v === 'top' && (p += g - f), t.strokeText(b, l, p); } else t.strokeText(o, l, u); }), (a.calculateBox = function() { var t = this, n = t._attrs.attrs, s = n.x, o = n.y, l = n.textAlign, u = n.textBaseline, c = t._getTextWidth(); if (!c) return { minX: s, minY: o, maxX: s, maxY: o }; var f = t._getTextHeight(); if (n.rotate) { var h = $s.calcRotatedBox({ width: c, height: f, rotate: n.rotate }); (c = h.width), (f = h.height); } var v = { x: s, y: o - f }; return ( l && (l === 'end' || l === 'right' ? (v.x -= c) : l === 'center' && (v.x -= c / 2)), u && (u === 'top' ? (v.y += f) : u === 'middle' && (v.y += f / 2)), { minX: v.x, minY: v.y, maxX: v.x + c, maxY: v.y + f } ); }), (a._getTextWidth = function() { var t = this._attrs.attrs; if (t.width) return t.width; var n = t.text, s = this.get('context'); if (w(n)) return; var o = t.font, l = t.textArr, u = n + '' + o; if (he[u]) return he[u]; var c = 0; if (l) for (var f = 0, h = l.length; f < h; f++) { var v = l[f]; c = Math.max(c, be(v, o, s).width); } else c = be(n, o, s).width; return qe > Zs && ((qe = 0), (he = {})), qe++, (he[u] = c), c; }), r ); })(R); R.Text = Js; var Ks = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { i.prototype._initProperties.call(this), (this._attrs.canFill = !0), (this._attrs.canStroke = !0), (this._attrs.createPath = null), (this._attrs.type = 'custom'); }), (a.createPath = function(t) { var n = this.get('createPath'); n && n.call(this, t); }), (a.calculateBox = function() { var t = this.get('calculateBox'); return t && t.call(this); }), r ); })(R); R.Custom = Ks; var Ta = Object.freeze({ __proto__: null, Canvas: je, Group: kt, Shape: R, Matrix: G, Vector2: A, }); function Qs(i) { var r = i.slice(0); if (r.length > 0) { var a = r[0], e = r[r.length - 1]; a.value !== 0 && r.unshift({ value: 0 }), e.value !== 1 && r.push({ value: 1 }); } return r; } var to = (function() { function i(a) { (this.axisCfg = {}), (this.frontPlot = null), (this.backPlot = null), (this.axes = {}), _(this, a); } var r = i.prototype; return ( (r._isHide = function(e) { var t = this.axisCfg; return !t || t[e] === !1; }), (r._getLinePosition = function(e, t, n, s) { var o = '', l = e.field, u = this.axisCfg; return ( u[l] && u[l].position ? (o = u[l].position) : t === 'x' ? (o = s ? 'left' : 'bottom') : t === 'y' && ((o = n ? 'right' : 'left'), s && (o = 'bottom')), o ); }), (r._getLineCfg = function(e, t, n) { var s, o, l = 1; return ( t === 'x' ? ((s = { x: 0, y: 0 }), (o = { x: 1, y: 0 })) : n === 'right' ? ((s = { x: 1, y: 0 }), (o = { x: 1, y: 1 })) : ((s = { x: 0, y: 0 }), (o = { x: 0, y: 1 }), (l = -1)), e.transposed && (l *= -1), { offsetFactor: l, start: e.convertPoint(s), end: e.convertPoint(o) } ); }), (r._getCircleCfg = function(e) { return { startAngle: e.startAngle, endAngle: e.endAngle, center: e.center, radius: e.circleRadius, }; }), (r._getRadiusCfg = function(e) { var t = e.transposed, n, s; return ( t ? ((n = { x: 0, y: 0 }), (s = { x: 1, y: 0 })) : ((n = { x: 0, y: 0 }), (s = { x: 0, y: 1 })), { offsetFactor: -1, start: e.convertPoint(n), end: e.convertPoint(s) } ); }), (r._getAxisCfg = function(e, t, n, s, o) { var l = this, u = this.axisCfg, c = t.getTicks(), f = z( { ticks: c, frontContainer: this.frontPlot, backContainer: this.backPlot }, o, u[t.field], ), h = [], v = f.label, g = c.length, p = 0, m = 0, d = v; return ( C(c, function(y, x) { if (F(v)) { var S = v(y.text, x, g); d = S ? _({}, D._defaultAxis.label, S) : null; } if (d) { var P = {}; d.textAlign && (P.textAlign = d.textAlign), d.textBaseline && (P.textBaseline = d.textBaseline); var b = new R.Text({ className: 'axis-label', attrs: _( { x: 0, y: 0, text: y.text, fontFamily: l.chart.get('canvas').get('fontFamily'), }, d, ), value: y.value, textStyle: P, top: d.top, context: l.chart.get('canvas').get('context'), }); h.push(b); var M = b.getBBox(), I = M.width, O = M.height; (p = Math.max(p, I)), (m = Math.max(m, O)); } }), (f.labels = h), (f.maxWidth = p), (f.maxHeight = m), f ); }), (r._createAxis = function(e, t, n, s, o) { o === void 0 && (o = ''); var l = this, u = e.type, c = e.transposed, f, h, v; if (u === 'cartesian' || u === 'rect') { var g = l._getLinePosition(t, s, o, c); (v = D.axis[g]), (v.position = g), (f = 'Line'), (h = g); } else (s === 'x' && !c) || (s === 'y' && c) ? ((v = D.axis.circle), (f = 'Circle'), (h = 'circle')) : ((v = D.axis.radius), (f = 'Line'), (h = 'radius')); var p = l._getAxisCfg(e, t, n, s, v); (p.type = f), (p.dimType = s), (p.verticalScale = n), (p.index = o), (this.axes[h] = p); }), (r.createAxis = function(e, t, n) { var s = this; t && !s._isHide(t.field) && s._createAxis(e, t, n[0], 'x'), C(n, function(T, L) { s._isHide(T.field) || s._createAxis(e, T, t, 'y', L); }); var o = this.axes, l = s.chart; if (l._isAutoPadding()) { var u = q(l.get('padding')), c = q(l.get('appendPadding')), f = l.get('legendRange') || { top: 0, right: 0, bottom: 0, left: 0 }, h = [ u[0] === 'auto' ? f.top + c[0] * 2 : u[0], u[1] === 'auto' ? f.right + c[1] : u[1], u[2] === 'auto' ? f.bottom + c[2] : u[2], u[3] === 'auto' ? f.left + c[3] : u[3], ]; if (e.isPolar) { var v = o.circle; if (v) { var g = v.maxHeight, p = v.maxWidth, m = v.labelOffset; (h[0] += g + m), (h[1] += p + m), (h[2] += g + m), (h[3] += p + m); } } else { if (o.right && u[1] === 'auto') { var d = o.right, y = d.maxWidth, x = d.labelOffset; h[1] += y + x; } if (o.left && u[3] === 'auto') { var S = o.left, P = S.maxWidth, b = S.labelOffset; h[3] += P + b; } if (o.bottom && u[2] === 'auto') { var M = o.bottom, I = M.maxHeight, O = M.labelOffset; h[2] += I + O; } } l.set('_padding', h), l._updateLayout(h); } C(o, function(T) { var L = T.type, at = T.grid, xt = T.verticalScale, _t = T.ticks, Z = T.dimType, et = T.position, bt = T.index, Nt; if ( (e.isPolar ? L === 'Line' ? (Nt = s._getRadiusCfg(e)) : L === 'Circle' && (Nt = s._getCircleCfg(e)) : (Nt = s._getLineCfg(e, Z, et)), at && xt) ) { var xi = [], ru = Qs(xt.getTicks()); C(_t, function(sr) { var _i = []; C(ru, function(Si) { var or = Z === 'x' ? sr.value : Si.value, lr = Z === 'x' ? Si.value : sr.value; if (or >= 0 && or <= 1 && lr >= 0 && lr <= 1) { var au = e.convertPoint({ x: or, y: lr }); _i.push(au); } }), xi.push({ points: _i, _id: 'axis-' + Z + bt + '-grid-' + sr.tickValue }); }), (T.gridPoints = xi), e.isPolar && ((T.center = e.center), (T.startAngle = e.startAngle), (T.endAngle = e.endAngle)); } (Nt._id = 'axis-' + Z), w(bt) || (Nt._id = 'axis-' + Z + bt), new Xt[L](_(T, Nt)); }); }), (r.clear = function() { (this.axes = {}), this.frontPlot.clear(), this.backPlot.clear(); }), i ); })(); function $e(i) { var r = i.start, a = i.end, e = a.x - r.x, t = Math.abs(a.y - r.y), n = 10, s; if (i.isPolar) { var o = i.circleRadius, l = i.center, u = i.startAngle, c = i.endAngle; s = new R.Sector({ attrs: { x: l.x, y: l.y, r: o, r0: 0, startAngle: u, endAngle: c }, }); } else s = new R.Rect({ attrs: { x: r.x, y: a.y - n, width: e, height: t + 2 * n } }); return (s.isClip = !0), s; } function Ze(i, r) { var a = i.x, e = i.y, t = r.tl, n = r.tr, s = r.br; return a >= t.x && a <= n.x && e >= t.y && e <= s.y; } var Da = Object.freeze({ __proto__: null, getClip: $e, isPointInPlot: Ze }); function Ea(i, r) { return i - r; } function eo(i, r) { var a = !1; return ( C(i, function(e) { var t = [].concat(e.values), n = [].concat(r.values); if ( e.type === r.type && e.field === r.field && t.sort(Ea).toString() === n.sort(Ea).toString() ) { a = !0; return; } }), a ); } var H = (function(i) { E(a, i), (a.initPlugins = function() { return { _plugins: [], _cacheId: 0, register: function(n) { var s = this._plugins; [].concat(n).forEach(function(o) { s.indexOf(o) === -1 && s.push(o); }), this._cacheId++; }, unregister: function(n) { var s = this._plugins; [].concat(n).forEach(function(o) { var l = s.indexOf(o); l !== -1 && s.splice(l, 1); }), this._cacheId++; }, clear: function() { (this._plugins = []), this._cacheId++; }, count: function() { return this._plugins.length; }, getAll: function() { return this._plugins; }, notify: function(n, s, o) { var l = this.descriptors(n), u = l.length, c, f, h, v, g; for (c = 0; c < u; ++c) if ( ((f = l[c]), (h = f.plugin), (g = h[s]), typeof g == 'function' && ((v = [n].concat(o || [])), g.apply(h, v) === !1)) ) return !1; return !0; }, descriptors: function(n) { var s = n._plugins || (n._plugins = {}); if (s.id === this._cacheId) return s.descriptors; var o = [], l = []; return ( this._plugins.concat((n && n.get('plugins')) || []).forEach(function(u) { var c = o.indexOf(u); if (c !== -1) return; o.push(u), l.push({ plugin: u }); }), (s.descriptors = l), (s.id = this._cacheId), l ); }, }; }); var r = a.prototype; (r.getDefaultCfg = function() { return { id: null, rendered: !1, padding: D.padding, data: null, scales: {}, geoms: [], colDefs: null, pixelRatio: D.pixelRatio, filters: null, appendPadding: D.appendPadding, }; }), (r._syncYScales = function() { var t = this.get('syncY'); if (!t) return; var n = this.get('geoms'), s = [], o = [], l = []; C(n, function(u) { var c = u.getYScale(); c.isLinear && (s.push(c), o.push(c.min), l.push(c.max)); }), (o = Math.min.apply(null, o)), (l = Math.max.apply(null, l)), C(s, function(u) { u.change({ min: o }), u.change({ max: l }); }); }), (r._getFieldsForLegend = function() { var t = [], n = this.get('geoms'); return ( C(n, function(s) { var o = s.get('attrOptions'), l = o.color; if (l && l.field && B(l.field)) { var u = l.field.split('*'); C(u, function(c) { t.indexOf(c) === -1 && t.push(c); }); } }), t ); }), (r._getScaleData = function(t) { var n = this.get('data'), s = this.get('filteredData'); if (s.length) { var o = this._getFieldsForLegend(); o.indexOf(t) === -1 && (n = s); } return n; }), (r._adjustScale = function() { for ( var t = this, n = t.get('scaleController'), s = this.get('geoms'), o = 0; o < s.length; o++ ) { var l = s[o]; if (l.get('type') === 'interval') { var u = l.getYScale(); n.adjustStartZero(u); } } }), (r._removeGeoms = function() { for (var t = this.get('geoms'); t.length > 0; ) { var n = t.shift(); n.destroy(); } }), (r._clearGeoms = function() { for (var t = this.get('geoms'), n = 0, s = t.length; n < s; n++) { var o = t[n]; o.clear(); } }), (r._clearInner = function() { this._clearGeoms(), a.plugins.notify(this, 'clearInner'), this.emit(en), this.get('axisController') && this.get('axisController').clear(); }), (r._initFilteredData = function() { var t = this.get('filters'), n = this.get('data') || []; t && (n = n.filter(function(s) { var o = !0; return ( C(t, function(l, u) { if (l && ((o = l(s[u], s)), !o)) return !1; }), o ); })), this.set('filteredData', n); }), (r._changeGeomsData = function() { for ( var t = this.get('geoms'), n = this.get('filteredData'), s = 0, o = t.length; s < o; s++ ) { var l = t[s]; l.changeData(n); } }), (r._initGeom = function(t) { if (t.get('isInit')) return; var n = this.get('coord'), s = this.get('filteredData'), o = this.get('colDefs'), l = this.get('middlePlot'); t.set('chart', this), t.set('container', l.addGroup()), t.set('data', s), t.set('coord', n), t.set('colDefs', o), t.init(), this.emit(Ji, t); }), (r._initGeoms = function() { for (var t = this.get('geoms'), n = 0, s = t.length; n < s; n++) this._initGeom(t[n]); }), (r._initCoord = function() { var t = this.get('plotRange'), n = _({ type: 'cartesian' }, this.get('coordCfg'), { plot: t }), s = n.type, o = Dt[lt(s)], l = new o(n); this.set('coord', l); }), (r._initLayout = function() { var t = this.get('_padding'); t || ((t = this.get('margin') || this.get('padding')), (t = q(t))); var n = t[0] === 'auto' ? 0 : t[0], s = t[1] === 'auto' ? 0 : t[1], o = t[2] === 'auto' ? 0 : t[2], l = t[3] === 'auto' ? 0 : t[3], u = this.get('width'), c = this.get('height'), f = { x: l, y: n }, h = { x: u - s, y: c - o }, v = this.get('plot'); if (v) { v.reset(f, h); return; } var g = new an({ start: f, end: h }); this.set('plotRange', g), this.set('plot', g); }), (r._initCanvas = function() { var t = this; try { var n = new je({ el: t.get('el') || t.get('id'), context: t.get('context'), pixelRatio: t.get('pixelRatio'), width: t.get('width'), height: t.get('height'), fontFamily: D.fontFamily, }); t.set('canvas', n), t.set('el', n.get('el')), t.set('width', n.get('width')), t.set('height', n.get('height')); } catch (s) { throw s; } a.plugins.notify(t, 'afterCanvasInit'); }), (r._initLayers = function() { var t = this.get('canvas'); this.set('backPlot', t.addGroup()), this.set('middlePlot', t.addGroup({ zIndex: 10 })), this.set('frontPlot', t.addGroup({ zIndex: 20 })); }), (r._initEvents = function() { var t = this; this.on(Ft, function() { t._initFilteredData(), t._changeGeomsData(); }), this.on(De, function() { t._initLayout(); var n = t.get('coord'); n && n.reset(t.get('plot')); }); }), (r._initScaleController = function() { var t = new _s({ chart: this }); this.set('colDefs', t.defs), this.set('scales', t.scales), this.set('scaleController', t); }), (r._clearScaleController = function() { var t = this.get('scaleController'); t.clear(); }), (r._init = function() { var t = this; t._initCanvas(), t._initLayout(), t._initLayers(), t._initEvents(), t._initScaleController(), t.set( 'axisController', new to({ frontPlot: t.get('frontPlot').addGroup({ className: 'axisContainer' }), backPlot: t.get('backPlot').addGroup({ className: 'axisContainer' }), chart: t, }), ), a.plugins.notify(t, 'init'); }); function a(e) { var t; t = i.call(this, e) || this; var n = Jt(t); return ( C(V, function(s, o) { var l = fr(o); n[l] = function(u) { var c = new s(u); return n.addGeom(c), c; }; }), n._init(), t ); } return ( (r.init = function() { this._initFilteredData(), this._initCoord(), a.plugins.notify(this, 'beforeGeomInit'), this._initGeoms(), this._syncYScales(), this._adjustScale(), this.emit(Te); }), (r.source = function(t, n) { return this.set('data', t), n && this.scale(n), this; }), (r.scale = function(t, n) { var s = this.get('scaleController'); return s.setFieldDef(t, n), this; }), (r.axis = function(t, n) { var s = this.get('axisController'); return ( t ? ((s.axisCfg = s.axisCfg || {}), (s.axisCfg[t] = n)) : (s.axisCfg = null), this ); }), (r.coord = function(t, n) { var s; return ( j(t) ? (s = t) : ((s = n || {}), (s.type = t || 'cartesian')), this.set('coordCfg', s), this ); }), (r.filter = function(t, n) { var s = this.get('filters') || {}; (s[t] = n), this.set('filters', s), this.get('rendered') && this.emit(Ft, this.get('data')); }), (r.render = function() { var t = this.get('rendered'), n = this.get('canvas'), s = this.get('geoms'); t ? (this._initGeoms(), this._adjustScale()) : (this.init(), this.set('rendered', !0)), this.emit(qi), a.plugins.notify(this, 'beforeGeomDraw'), this._renderAxis(); var o = this.get('middlePlot'); if (this.get('limitInPlot') && !o.attr('clip')) { var l = this.get('coord'), u = $e(l); u.set('canvas', o.get('canvas')), o.attr('clip', u); } this.emit(Ki); for (var c = 0, f = s.length; c < f; c++) { var h = s[c]; h.paint(); } return ( this.emit(Qi), a.plugins.notify(this, 'afterGeomDraw'), n.sort(), this.get('frontPlot').sort(), a.plugins.notify(this, 'beforeCanvasDraw'), n.draw(), this.emit($i), this ); }), (r.clear = function() { a.plugins.notify(this, 'clear'), this.emit(tn), this._clearInner(), this._removeGeoms(), this._clearScaleController(), this.set('legendItems', null), this.set('filters', null), this.set('isUpdate', !1), this.set('_padding', null), this.set('rendered', !1); var t = this.get('canvas'); return t.draw(), this; }), (r.repaint = function() { var t = this.get('rendered'); if (!t) return; this.set('isUpdate', !0), this.set('legendItems', null), a.plugins.notify(this, 'repaint'), this._clearInner(), this.emit(rn), this.render(); }), (r.changeData = function(t) { this.emit(Zi, t), this.set('data', t), a.plugins.notify(this, 'changeData'), this.emit(Ft, t), this.set('_padding', null), this.repaint(); }), (r.changeSize = function(t, n) { t ? this.set('width', t) : (t = this.get('width')), n ? this.set('height', n) : (n = this.get('height')); var s = this.get('canvas'); return ( s.changeSize(t, n), this.emit(De, { width: t, height: n }), this.repaint(), this ); }), (r.destroy = function() { this.clear(); var t = this.get('canvas'); t.destroy(), a.plugins.notify(this, 'afterCanvasDestroyed'), this._interactions && C(this._interactions, function(n) { n.destroy(); }), i.prototype.destroy.call(this); }), (r.getPosition = function(t) { for ( var n = this, s = n.get('coord'), o = n.getXScale(), l = o.field, u = n.getYScales(), c = u[0], f = c.field, h = 0, v = u.length; h < v; h++ ) { var g = u[h], p = g.field; if (t[p]) { (c = g), (f = p); break; } } var m = o.scale(t[l]), d = c.scale(t[f]); return s.convertPoint({ x: m, y: d }); }), (r.getRecord = function(t) { var n = this, s = n.get('coord'), o = n.getXScale(), l = n.getYScales()[0], u = s.invertPoint(t), c = {}; return (c[o.field] = o.invert(u.x)), (c[l.field] = l.invert(u.y)), c; }), (r.getSnapRecords = function(t) { var n = this.get('geoms')[0], s = []; return n && (s = n.getSnapRecords(t)), s; }), (r.createScale = function(t) { var n = this._getScaleData(t), s = this.get('scaleController'); return s.createScale(t, n); }), (r.addGeom = function(t) { var n = this.get('geoms'); n.push(t); }), (r.getXScale = function() { var t = this, n = t.get('geoms'), s = n[0].getXScale(); return s; }), (r.getYScales = function() { var t = this.get('geoms'), n = []; return ( C(t, function(s) { var o = s.getYScale(); n.indexOf(o) === -1 && n.push(o); }), n ); }), (r.getLegendItems = function() { if (this.get('legendItems')) return this.get('legendItems'); var t = {}, n = [], s = this.get('geoms'); return ( C(s, function(o) { var l = o.getAttr('color'); if (l) { var u = l.getScale('color'); if (u.isCategory && !eo(n, u)) { n.push(u); var c = u.field, f = u.getTicks(), h = []; C(f, function(v) { var g = v.text, p = g, m = v.value, d = u.invert(m), y = l.mapping(d).join('') || D.defaultColor, x = { fill: y, radius: 3, symbol: 'circle', stroke: '#fff' }; h.push({ name: p, dataValue: d, checked: !0, marker: x }); }), (t[c] = h); } } }), this.set('legendItems', t), t ); }), (r.registerPlugins = function(t) { var n = this, s = n.get('plugins') || []; k(s) || (s = [s]), [].concat(t).forEach(function(o) { s.indexOf(o) === -1 && (o.init && o.init(n), s.push(o)); }), a.plugins._cacheId++, n.set('plugins', s); }), (r._renderAxis = function() { var t = this.get('axisController'), n = this.getXScale(), s = this.getYScales(), o = this.get('coord'); a.plugins.notify(this, 'beforeRenderAxis'), t.createAxis(o, n, s); }), (r._isAutoPadding = function() { if (this.get('_padding')) return !1; var t = this.get('padding'); return k(t) ? t.indexOf('auto') !== -1 : t === 'auto'; }), (r._updateLayout = function(t) { var n = this.get('width'), s = this.get('height'), o = { x: t[3], y: t[0] }, l = { x: n - t[1], y: s - t[2] }, u = this.get('plot'), c = this.get('coord'); u.reset(o, l), c.reset(u); }), a ); })(Er); H.plugins = H.initPlugins(); var Aa = function() { return null; }; function ka(i) { var r = [], a = i.x, e = i.y; return ( (e = k(e) ? e : [e]), e.forEach(function(t, n) { var s = { x: k(a) ? a[n] : a, y: t }; r.push(s); }), r ); } function Ia(i, r, a) { if (!i.length) return []; var e = [], t = [], n; return ( C(i, function(s) { (n = s._origin ? s._origin[r] : s[r]), a ? w(n) || t.push(s) : (k(n) && w(n[0])) || w(n) ? t.length && (e.push(t), (t = [])) : t.push(s); }), t.length && e.push(t), e ); } var ro = ['circle', 'hollowCircle', 'rect'], nu = Y.registerFactory('point', { defaultShapeType: 'circle', getDefaultPoints: function(r) { return ka(r); }, }); function ao(i) { var r = { lineWidth: 0, stroke: i.color, fill: i.color }; return i.size && (r.size = i.size), _(r, i.style), _({}, D.shape.point, r); } function io(i, r, a) { if (i.size === 0) return; var e = ao(i), t = e.r || e.size, n = i.x, s = k(i.y) ? i.y : [i.y]; a === 'hollowCircle' && ((e.lineWidth = 1), (e.fill = null)); for (var o = 0, l = s.length; o < l; o++) return a === 'rect' ? r.addShape('Rect', { className: 'point', attrs: _({ x: n - t, y: s[o] - t, width: t * 2, height: t * 2 }, e), }) : r.addShape('Circle', { className: 'point', attrs: _({ x: n, y: s[o], r: t }, e), }); } C(ro, function(i) { Y.registerShape('point', i, { draw: function(a, e) { return io(a, e, i); }, }); }); var no = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a.getDefaultCfg = function() { var t = i.prototype.getDefaultCfg.call(this); return (t.type = 'point'), (t.shapeType = 'point'), (t.generatePoints = !1), t; }), (a.draw = function(t, n) { var s = this, o = s.get('container'); C(t, function(l) { var u = l.shape, c = s.getDrawCfg(l); if (k(l.y)) { var f = s.hasAdjust('stack'); C(l.y, function(h, v) { (c.y = h), (!f || v !== 0) && s.drawShape(u, l, c, o, n); }); } else w(l.y) || s.drawShape(u, l, c, o, n); }); }), r ); })(V); V.Point = no; var su = Y.registerFactory('line', { defaultShapeType: 'line' }); function so(i) { var r = { strokeStyle: i.color }; return i.size >= 0 && (r.lineWidth = i.size), _(r, i.style), _({}, D.shape.line, r); } function oo(i, r, a, e) { var t = i.points; if (t.length && k(t[0].y)) { for (var n = [], s = [], o = 0, l = t.length; o < l; o++) { var u = t[o], c = ka(u); s.push(c[0]), n.push(c[1]); } if ((i.isInCircle && (n.push(n[0]), s.push(s[0])), i.isStack)) return r.addShape('Polyline', { className: 'line', attrs: _({ points: n, smooth: e }, a), }); var f = r.addShape('Polyline', { className: 'line', attrs: _({ points: n, smooth: e }, a), }), h = r.addShape('Polyline', { className: 'line', attrs: _({ points: s, smooth: e }, a), }); return [f, h]; } return ( i.isInCircle && t.push(t[0]), r.addShape('Polyline', { className: 'line', attrs: _({ points: t, smooth: e }, a) }) ); } var lo = ['line', 'smooth', 'dash']; C(lo, function(i) { Y.registerShape('line', i, { draw: function(a, e) { var t = i === 'smooth', n = so(a); return i === 'dash' && (n.lineDash = D.lineDash), oo(a, e, n, t); }, }); }); var Oa = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a.getDefaultCfg = function() { var t = i.prototype.getDefaultCfg.call(this); return (t.type = 'path'), (t.shapeType = 'line'), t; }), (a.getDrawCfg = function(t) { var n = i.prototype.getDrawCfg.call(this, t); return (n.isStack = this.hasAdjust('stack')), n; }), (a.draw = function(t, n) { var s = this, o = s.get('container'), l = s.getYScale(), u = s.get('connectNulls'), c = Ia(t, l.field, u), f = this.getDrawCfg(t[0]); (f.origin = t), C(c, function(h, v) { (f.splitedIndex = v), (f.points = h), s.drawShape(f.shape, t[0], f, o, n); }); }), r ); })(V); V.Path = Oa; var uo = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a.getDefaultCfg = function() { var t = i.prototype.getDefaultCfg.call(this); return (t.type = 'line'), (t.sortable = !0), t; }), r ); })(Oa); V.Line = uo; function Ra(i, r) { return Math.abs(i - r) < 1e-5; } function Na(i) { return !isNaN(i) && !w(i); } function Ya(i) { for (var r = [], a = 0, e = i.length; a < e; a++) { var t = i[a]; Na(t.x) && Na(t.y) && r.push(t); } return r; } function co(i, r) { var a = !0; return ( C(i, function(e) { if (!Ra(e.x, r.x) || !Ra(e.y, r.y)) return (a = !1), !1; }), a ); } function fo(i, r, a, e, t) { var n, s = i.concat(r); return ( t ? (n = a.addShape('Custom', { className: 'area', attrs: _({ points: s }, e), createPath: function(l) { var u = [ [0, 0], [1, 1], ], c = Ya(this._attrs.attrs.points), f = c.length, h = c.slice(0, f / 2), v = c.slice(f / 2, f), g = fe(h, !1, u); l.beginPath(), l.moveTo(h[0].x, h[0].y); for (var p = 0, m = g.length; p < m; p++) { var d = g[p]; l.bezierCurveTo(d[1], d[2], d[3], d[4], d[5], d[6]); } if (v.length) { var y = fe(v, !1, u); l.lineTo(v[0].x, v[0].y); for (var x = 0, S = y.length; x < S; x++) { var P = y[x]; l.bezierCurveTo(P[1], P[2], P[3], P[4], P[5], P[6]); } } l.closePath(); }, calculateBox: function() { var l = Ya(this._attrs.attrs.points); return Ve(l); }, })) : (n = a.addShape('Polyline', { className: 'area', attrs: _({ points: s }, e) })), n ); } function ho(i, r, a) { var e = this, t = i.points, n = [], s = []; C(t, function(l) { s.push(l[0]), n.push(l[1]); }); var o = _({ fillStyle: i.color }, D.shape.area, i.style); return ( s.reverse(), (n = e.parsePoints(n)), (s = e.parsePoints(s)), i.isInCircle && (n.push(n[0]), s.unshift(s[s.length - 1]), co(s, i.center) && (s = [])), fo(n, s, r, o, a) ); } var ou = Y.registerFactory('area', { defaultShapeType: 'area', getDefaultPoints: function(r) { var a = r.x, e = r.y, t = r.y0; e = k(e) ? e : [t, e]; var n = []; return n.push({ x: a, y: e[0] }, { x: a, y: e[1] }), n; }, }), vo = ['area', 'smooth']; C(vo, function(i) { Y.registerShape('area', i, { draw: function(a, e) { var t = i === 'smooth'; return ho.call(this, a, e, t); }, }); }); var go = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a.getDefaultCfg = function() { var t = i.prototype.getDefaultCfg.call(this); return ( (t.type = 'area'), (t.shapeType = 'area'), (t.generatePoints = !0), (t.sortable = !0), t ); }), (a.draw = function(t, n) { var s = this, o = s.get('container'), l = this.getDrawCfg(t[0]), u = s.getYScale(), c = s.get('connectNulls'), f = Ia(t, u.field, c); (l.origin = t), C(f, function(h, v) { l.splitedIndex = v; var g = h.map(function(p) { return p.points; }); (l.points = g), s.drawShape(l.shape, t[0], l, o, n); }); }), r ); })(V); V.Area = go; var Fa = { initEvent: function() { var r = this, a = this.get('chart'); if (!a) return; a.on(De, function() { r.set('_width', null); }); }, getDefaultSize: function() { var r = this.get('defaultSize'); if (!r) { var a = this.get('coord'), e = this.getXScale(), t = this.get('dataArray'), n = ur(e.values), s = n.length, o = e.range, l = 1 / s, u = 1; a && a.isPolar ? a.transposed && s > 1 ? (u = D.widthRatio.multiplePie) : (u = D.widthRatio.rose) : (e.isLinear && (l *= o[1] - o[0]), (u = D.widthRatio.column)), (l *= u), this.hasAdjust('dodge') && (l = l / t.length), (r = l), this.set('defaultSize', r); } return r; }, getDimWidth: function(r) { var a = this.get('coord'), e = a.convertPoint({ x: 0, y: 0 }), t = a.convertPoint({ x: r === 'x' ? 1 : 0, y: r === 'x' ? 0 : 1 }), n = 0; return e && t && (n = Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2))), n; }, _getWidth: function() { var r = this.get('_width'); if (!r) { var a = this.get('coord'); a && a.isPolar && !a.transposed ? (r = (a.endAngle - a.startAngle) * a.circleRadius) : (r = this.getDimWidth('x')), this.set('_width', r); } return r; }, _toNormalizedSize: function(r) { var a = this._getWidth(); return r / a; }, _toCoordSize: function(r) { var a = this._getWidth(); return a * r; }, getNormalizedSize: function(r) { var a = this.getAttrValue('size', r); return w(a) ? (a = this.getDefaultSize()) : (a = this._toNormalizedSize(a)), a; }, getSize: function(r) { var a = this.getAttrValue('size', r); if (w(a)) { var e = this.getDefaultSize(); a = this._toCoordSize(e); } return a; }, }; function La(i) { var r = i.x, a = i.y, e = i.y0, t = i.size, n = e, s = a; k(a) && ((s = a[1]), (n = a[0])); var o, l; return ( k(r) ? ((o = r[0]), (l = r[1])) : ((o = r - t / 2), (l = r + t / 2)), [ { x: o, y: n }, { x: o, y: s }, { x: l, y: s }, { x: l, y: n }, ] ); } function po(i) { for (var r = [], a = [], e = 0, t = i.length; e < t; e++) { var n = i[e]; r.push(n.x), a.push(n.y); } var s = Math.min.apply(null, r), o = Math.min.apply(null, a), l = Math.max.apply(null, r), u = Math.max.apply(null, a); return { x: s, y: o, width: l - s, height: u - o }; } function mo(i, r) { var a = (i.x - r.x) / 2 + r.x, e = (i.y - r.y) / 2 + r.y; return { x: a, y: e }; } var lu = Y.registerFactory('interval', { defaultShapeType: 'rect', getDefaultPoints: function(r) { return La(r); }, }); Y.registerShape('interval', 'rect', { draw: function(r, a) { var e = this.parsePoints(r.points), t = _({ fill: r.color }, D.shape.interval, r.style); if (r.isInCircle) { var n = e.slice(0); this._coord.transposed && (n = [e[0], e[3], e[2], e[1]]); var s = r.center, o = s.x, l = s.y, u = [1, 0], c = [n[0].x - o, n[0].y - l], f = [n[1].x - o, n[1].y - l], h = [n[2].x - o, n[2].y - l], v = A.angleTo(u, f), g = A.angleTo(u, h), p = A.length(c), m = A.length(f); return ( v >= 1.5 * Math.PI && (v = v - 2 * Math.PI), g >= 1.5 * Math.PI && (g = g - 2 * Math.PI), a.addShape('Sector', { className: 'interval', attrs: _({ x: o, y: l, r: m, r0: p, startAngle: v, endAngle: g }, t), }) ); } var d = po(e); return a.addShape('rect', { className: 'interval', attrs: _(d, t) }); }, }), ['pyramid', 'funnel'].forEach(function(i) { Y.registerShape('interval', i, { getPoints: function(a) { return (a.size = a.size * 2), La(a); }, draw: function(a, e) { var t = this.parsePoints(a.points), n = this.parsePoints(a.nextPoints), s = null; n ? (s = [t[0], t[1], n[1], n[0]]) : ((s = [t[0], t[1]]), i === 'pyramid' ? s.push(mo(t[2], t[3])) : s.push(t[2], t[3])); var o = _({ fill: a.color, points: s }, D.shape.interval, a.style); return e.addShape('polygon', { className: 'interval', attrs: o }); }, }); }); var yo = (function(i) { E(a, i); var r = a.prototype; r.getDefaultCfg = function() { var t = i.prototype.getDefaultCfg.call(this); return (t.type = 'interval'), (t.shapeType = 'interval'), (t.generatePoints = !0), t; }; function a(e) { var t; return (t = i.call(this, e) || this), _(Jt(t), Fa), t; } return ( (r.init = function() { i.prototype.init.call(this), this.initEvent(); }), (r.createShapePointsCfg = function(t) { var n = i.prototype.createShapePointsCfg.call(this, t); return (n.size = this.getNormalizedSize(t)), n; }), (r.clearInner = function() { i.prototype.clearInner.call(this), this.set('defaultSize', null); }), a ); })(V); V.Interval = yo; var uu = Y.registerFactory('polygon', { defaultShapeType: 'polygon', getDefaultPoints: function(r) { for (var a = [], e = r.x, t = r.y, n = 0, s = e.length; n < s; n++) a.push({ x: e[n], y: t[n] }); return a; }, }); Y.registerShape('polygon', 'polygon', { draw: function(r, a) { var e = this.parsePoints(r.points), t = _({ fill: r.color, points: e }, r.style); return a.addShape('Polygon', { className: 'polygon', attrs: t }); }, }); var xo = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a.getDefaultCfg = function() { var t = i.prototype.getDefaultCfg.call(this); return (t.type = 'polygon'), (t.shapeType = 'polygon'), (t.generatePoints = !0), t; }), (a.createShapePointsCfg = function(t) { var n = i.prototype.createShapePointsCfg.call(this, t), s = this, o = n.x, l = n.y, u; if (!(k(o) && k(l))) { var c = s.getXScale(), f = s.getYScale(), h = c.values ? c.values.length : c.ticks.length, v = f.values ? f.values.length : f.ticks.length, g = (0.5 * 1) / h, p = (0.5 * 1) / v; c.isCategory && f.isCategory ? ((o = [o - g, o - g, o + g, o + g]), (l = [l - p, l + p, l + p, l - p])) : k(o) ? ((u = o), (o = [u[0], u[0], u[1], u[1]]), (l = [l - p / 2, l + p / 2, l + p / 2, l - p / 2])) : k(l) && ((u = l), (l = [u[0], u[1], u[1], u[0]]), (o = [o - g / 2, o - g / 2, o + g / 2, o + g / 2])), (n.x = o), (n.y = l); } return n; }), r ); })(V); V.Polygon = xo; function _o(i) { var r = i.sort(function(n, s) { return n < s ? 1 : -1; }), a = r.length; if (a < 4) for (var e = r[a - 1], t = 0; t < 4 - a; t++) r.push(e); return r; } function So(i, r, a) { var e = _o(r), t = [ { x: i, y: e[0] }, { x: i, y: e[1] }, { x: i - a / 2, y: e[2] }, { x: i - a / 2, y: e[1] }, { x: i + a / 2, y: e[1] }, { x: i + a / 2, y: e[2] }, { x: i, y: e[2] }, { x: i, y: e[3] }, ]; return t; } var cu = Y.registerFactory('schema', {}); Y.registerShape('schema', 'candle', { getPoints: function(r) { return So(r.x, r.y, r.size); }, draw: function(r, a) { var e = this.parsePoints(r.points), t = _({ stroke: r.color, fill: r.color, lineWidth: 1 }, r.style); return a.addShape('Custom', { className: 'schema', attrs: t, createPath: function(s) { s.beginPath(), s.moveTo(e[0].x, e[0].y), s.lineTo(e[1].x, e[1].y), s.moveTo(e[2].x, e[2].y); for (var o = 3; o < 6; o++) s.lineTo(e[o].x, e[o].y); s.closePath(), s.moveTo(e[6].x, e[6].y), s.lineTo(e[7].x, e[7].y); }, }); }, }); var Co = (function(i) { E(a, i); var r = a.prototype; r.getDefaultCfg = function() { var t = i.prototype.getDefaultCfg.call(this); return (t.type = 'schema'), (t.shapeType = 'schema'), (t.generatePoints = !0), t; }; function a(e) { var t; return (t = i.call(this, e) || this), _(Jt(t), Fa), t; } return ( (r.init = function() { i.prototype.init.call(this), this.initEvent(); }), (r.createShapePointsCfg = function(t) { var n = i.prototype.createShapePointsCfg.call(this, t); return (n.size = this.getNormalizedSize(t)), n; }), (r.clearInner = function() { i.prototype.clearInner.call(this), this.set('defaultSize', null); }), a ); })(V); V.Schema = Co; var Po = {}.toString, wo = function(r, a) { return Po.call(r) === '[object ' + a + ']'; }, Ba = wo, Mo = Array.isArray ? Array.isArray : function(i) { return Ba(i, 'Array'); }, mt = Mo, bo = function(r) { return r == null; }, To = bo; function Do(i, r) { (i.prototype = Object.create(r.prototype)), (i.prototype.constructor = i), (i.__proto__ = r); } var Eo = (function(i) { Do(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.xField = null), (this.yField = null); }), (a.processAdjust = function(t) { this.processStack(t); }), (a.processStack = function(t) { var n = this, s = n.xField, o = n.yField, l = t.length, u = { positive: {}, negative: {} }; n.reverseOrder && (t = t.slice(0).reverse()); for (var c = 0; c < l; c++) for (var f = t[c], h = 0, v = f.length; h < v; h++) { var g = f[h], p = g[s] || 0, m = g[o], d = p.toString(); if (((m = mt(m) ? m[1] : m), !To(m))) { var y = m >= 0 ? 'positive' : 'negative'; u[y][d] || (u[y][d] = 0), (g[o] = [u[y][d], m + u[y][d]]), (u[y][d] += m); } } }), r ); })(ft); ft.Stack = Eo; var Ao = typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol' ? function(i) { return typeof i; } : function(i) { return i && typeof Symbol == 'function' && i.constructor === Symbol && i !== Symbol.prototype ? 'symbol' : typeof i; }, ko = function(r) { var a = typeof r == 'undefined' ? 'undefined' : Ao(r); return (r !== null && a === 'object') || a === 'function'; }, Io = ko, Oo = function(r, a) { if (!r) return; var e = void 0; if (mt(r)) for (var t = 0, n = r.length; t < n && !((e = a(r[t], t)), e === !1); t++); else if (Io(r)) { for (var s in r) if (r.hasOwnProperty(s) && ((e = a(r[s], s)), e === !1)) break; } }, Ot = Oo; function Ro(i, r) { (i.prototype = Object.create(r.prototype)), (i.prototype.constructor = i), (i.__proto__ = r); } var No = 1 / 2, Yo = 1 / 2, Fo = (function(i) { Ro(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.marginRatio = No), (this.dodgeRatio = Yo), (this.adjustNames = ['x', 'y']); }), (a.getDodgeOffset = function(t, n, s) { var o = this, l = t.pre, u = t.next, c = u - l, f = (c * o.dodgeRatio) / s, h = o.marginRatio * f, v = (1 / 2) * (c - s * f - (s - 1) * h) + ((n + 1) * f + n * h) - (1 / 2) * f - (1 / 2) * c; return (l + u) / 2 + v; }), (a.processAdjust = function(t) { var n = this, s = t.length, o = n.xField; Ot(t, function(l, u) { for (var c = 0, f = l.length; c < f; c++) { var h = l[c], v = h[o], g = { pre: f === 1 ? v - 1 : v - 0.5, next: f === 1 ? v + 1 : v + 0.5 }, p = n.getDodgeOffset(g, u, s); h[o] = p; } }); }), r ); })(ft); ft.Dodge = Fo; var Lo = function(r) { return Ba(r, 'Function'); }, za = Lo, Bo = function(r, a) { if (!mt(r)) return; var e = r[0], t = void 0; za(a) ? (t = a(r[0])) : (t = r[0][a]); var n = void 0; return ( Ot(r, function(s) { za(a) ? (n = a(s)) : (n = s[a]), n > t && ((e = s), (t = n)); }), e ); }, zo = Bo, Xo = function(r) { for (var a = [], e = 0; e < r.length; e++) a = a.concat(r[e]); return a; }, Go = Xo; function Ho(i, r) { (i.prototype = Object.create(r.prototype)), (i.prototype.constructor = i), (i.__proto__ = r); } var Uo = { merge: Go }, jo = (function(i) { Ho(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.xField = null), (this.yField = null), (this.cacheMax = null), (this.adjustNames = ['y']), (this.groupFields = null); }), (a._getMax = function(t) { var n = this, s = n.mergeData, o = zo(s, function(c) { var f = c[t]; return mt(f) ? Math.max.apply(null, f) : f; }), l = o[t], u = mt(l) ? Math.max.apply(null, l) : l; return u; }), (a._getXValuesMax = function() { var t = this, n = t.yField, s = t.xField, o = {}, l = t.mergeData; return ( Ot(l, function(u) { var c = u[s], f = u[n], h = mt(f) ? Math.max.apply(null, f) : f; (o[c] = o[c] || 0), o[c] < h && (o[c] = h); }), o ); }), (a.processAdjust = function(t) { var n = this, s = Uo.merge(t); (n.mergeData = s), n._processSymmetric(t), (n.mergeData = null); }), (a._processSymmetric = function(t) { var n = this, s = n.xField, o = n.yField, l = n._getMax(o), u = t[0][0], c; u && mt(u[o]) && (c = n._getXValuesMax()), Ot(t, function(f) { Ot(f, function(h) { var v = h[o], g; if (mt(v)) { var p = h[s], m = c[p]; g = (l - m) / 2; var d = []; Ot(v, function(y) { d.push(g + y); }), (h[o] = d); } else (g = (l - v) / 2), (h[o] = [g, v + g]); }); }); }), r ); })(ft); ft.Symmetric = jo; var Vo = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.type = 'polar'), (this.startAngle = -Math.PI / 2), (this.endAngle = (Math.PI * 3) / 2), (this.inner = 0), (this.innerRadius = 0), (this.isPolar = !0), (this.transposed = !1), (this.center = null), (this.radius = null); }), (a.init = function(t, n) { i.prototype.init.call(this, t, n); var s = this, o = s.inner || s.innerRadius, l = Math.abs(n.x - t.x), u = Math.abs(n.y - t.y), c, f; s.startAngle === -Math.PI && s.endAngle === 0 ? ((c = Math.min(l / 2, u)), (f = { x: (t.x + n.x) / 2, y: t.y })) : ((c = Math.min(l, u) / 2), (f = { x: (t.x + n.x) / 2, y: (t.y + n.y) / 2 })); var h = s.radius; h > 0 && h <= 1 && (c = c * h), (this.x = { start: s.startAngle, end: s.endAngle }), (this.y = { start: c * o, end: c }), (this.center = f), (this.circleRadius = c); }), (a._convertPoint = function(t) { var n = this, s = n.center, o = n.transposed, l = o ? 'y' : 'x', u = o ? 'x' : 'y', c = n.x, f = n.y, h = c.start + (c.end - c.start) * t[l], v = f.start + (f.end - f.start) * t[u]; return { x: s.x + Math.cos(h) * v, y: s.y + Math.sin(h) * v }; }), (a._invertPoint = function(t) { var n = this, s = n.center, o = n.transposed, l = n.x, u = n.y, c = o ? 'y' : 'x', f = o ? 'x' : 'y', h = [1, 0, 0, 1, 0, 0]; G.rotate(h, h, l.start); var v = [1, 0]; A.transformMat2d(v, v, h), (v = [v[0], v[1]]); var g = [t.x - s.x, t.y - s.y]; if (A.zero(g)) return { x: 0, y: 0 }; var p = A.angleTo(v, g, l.end < l.start); Math.abs(p - Math.PI * 2) < 0.001 && (p = 0); var m = A.length(g), d = p / (l.end - l.start); d = l.end - l.start > 0 ? d : -d; var y = (m - u.start) / (u.end - u.start), x = {}; return (x[c] = d), (x[f] = y), x; }), r ); })(Dt); Dt.Polar = Vo; var Wo = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { i.prototype._initDefaultCfg.call(this), (this.startAngle = -Math.PI / 2), (this.endAngle = (Math.PI * 3) / 2), (this.radius = null), (this.center = null); }), (a.getOffsetPoint = function(t) { var n = this.startAngle, s = this.endAngle, o = n + (s - n) * t; return this._getCirclePoint(o); }), (a._getCirclePoint = function(t, n) { var s = this, o = s.center; return (n = n || s.radius), { x: o.x + Math.cos(t) * n, y: o.y + Math.sin(t) * n }; }), (a.getTextAlignInfo = function(t, n) { var s = this, o = s.getOffsetVector(t, n), l, u = 'middle'; return ( o[0] > 0 ? (l = 'left') : o[0] < 0 ? (l = 'right') : ((l = 'center'), o[1] > 0 ? (u = 'top') : o[1] < 0 && (u = 'bottom')), { textAlign: l, textBaseline: u } ); }), (a.getAxisVector = function(t) { var n = this.center, s = this.offsetFactor; return [(t.y - n.y) * s, (t.x - n.x) * -1 * s]; }), (a.drawLine = function(t) { var n = this.center, s = this.radius, o = this.startAngle, l = this.endAngle, u = this.getContainer(t.top); u.addShape('arc', { className: 'axis-line', attrs: _({ x: n.x, y: n.y, r: s, startAngle: o, endAngle: l }, t), }); }), r ); })(Xt); Xt.Circle = Wo; var Xa = { min: 0, median: 0.5, max: 1 }, U = (function() { var i = r.prototype; i._initDefaultCfg = function() {}; function r(a) { this._initDefaultCfg(), z(this, a); } return ( (i._getNormalizedValue = function(e, t) { var n; return w(Xa[e]) ? (n = t.scale(e)) : (n = Xa[e]), n; }), (i.parsePercentPoint = function(e, t) { var n = parseFloat(t[0]) / 100, s = parseFloat(t[1]) / 100, o = e.start, l = e.end, u = Math.abs(o.x - l.x), c = Math.abs(o.y - l.y), f = u * n + Math.min(o.x, l.x), h = c * s + Math.min(o.y, l.y); return { x: f, y: h }; }), (i.parsePoint = function(e, t) { var n = this, s = n.xScale, o = n.yScales; if ( (F(t) && (t = t(s, o)), B(t[0]) && t[0].indexOf('%') !== -1 && !isNaN(t[0].slice(0, -1))) ) return this.parsePercentPoint(e, t); var l = n._getNormalizedValue(t[0], s), u = n._getNormalizedValue(t[1], o[0]), c = e.convertPoint({ x: l, y: u }); return n.limitInPlot ? (l >= 0 && l <= 1 && u >= 0 && u <= 1 ? c : null) : c; }), (i.render = function() {}), (i.repaint = function() { this.remove(); var e = this.coord, t = this.container, n = this.canvas; t && !t.isDestroyed() && (this.render(e, t), n.draw()); }), (i.remove = function() { var e = this.element; e && e.remove(!0); }), (i.changeVisible = function(e) { var t = this; t.visible = e; var n = t.element; if (!n) return; n.set ? n.set('visible', e) : (n.style.display = e ? '' : 'none'); }), r ); })(), qo = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.type = 'arc'), (this.start = []), (this.end = []), (this.style = { stroke: '#999', lineWidth: 1 }); }), (a.render = function(t, n) { var s = this, o = s.parsePoint(t, s.start), l = s.parsePoint(t, s.end); if (!o || !l) return; var u = t.center, c = Math.sqrt((o.x - u.x) * (o.x - u.x) + (o.y - u.y) * (o.y - u.y)), f = Math.atan2(o.y - u.y, o.x - u.x), h = Math.atan2(l.y - u.y, l.x - u.x), v = n.addShape('arc', { className: 'guide-arc', attrs: _({ x: u.x, y: u.y, r: c, startAngle: f, endAngle: h }, s.style), }); return (s.element = v), v; }), r ); })(U); U.Arc = qo; function $o(i, r, a, e) { var t = []; return ( i === 'left' && r === 'top' ? ((t[0] = 0), (t[1] = 0)) : i === 'right' && r === 'top' ? ((t[0] = -a), (t[1] = 0)) : i === 'left' && r === 'bottom' ? ((t[0] = 0), (t[1] = Math.floor(-e))) : i === 'right' && r === 'bottom' ? ((t[0] = Math.floor(-a)), (t[1] = Math.floor(-e))) : i === 'right' && r === 'middle' ? ((t[0] = Math.floor(-a)), (t[1] = Math.floor(-e / 2))) : i === 'left' && r === 'middle' ? ((t[0] = 0), (t[1] = Math.floor(-e / 2))) : i === 'center' && r === 'bottom' ? ((t[0] = Math.floor(-a / 2)), (t[1] = Math.floor(-e))) : i === 'center' && r === 'top' ? ((t[0] = Math.floor(-a / 2)), (t[1] = 0)) : ((t[0] = Math.floor(-a / 2)), (t[1] = Math.floor(-e / 2))), t ); } function Je(i, r) { for (var a in r) r.hasOwnProperty(a) && (i.style[a] = r[a]); return i; } function Ga(i) { var r = document.createElement('div'); return (i = i.replace(/(^\s*)|(\s*$)/g, '')), (r.innerHTML = '' + i), r.childNodes[0]; } var Zo = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.type = 'html'), (this.position = null), (this.alignX = 'center'), (this.alignY = 'middle'), (this.offsetX = null), (this.offsetY = null), (this.html = null); }), (a.render = function(t, n) { var s = this, o = s.parsePoint(t, s.position); if (!o) return; var l = Ga(s.html); l = Je(l, { position: 'absolute', top: Math.floor(o.y) + 'px', left: Math.floor(o.x) + 'px', visibility: 'hidden', }); var u = n.get('canvas').get('el'), c = u.parentNode; c = Je(c, { position: 'relative' }); var f = Ga( '
', ); c.appendChild(f), f.appendChild(l); var h = u.offsetTop, v = u.offsetLeft, g = s.alignX, p = s.alignY, m = s.offsetX, d = s.offsetY, y = Pe(l), x = we(l), S = $o(g, p, y, x); (o.x = o.x + S[0] + v), (o.y = o.y + S[1] + h), m && (o.x += m), d && (o.y += d), Je(l, { top: Math.floor(o.y) + 'px', left: Math.floor(o.x) + 'px', visibility: 'visible', }), (s.element = f); }), (a.remove = function() { var t = this.element; t && t.parentNode && t.parentNode.removeChild(t); }), r ); })(U); U.Html = Zo; var Jo = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.type = 'line'), (this.start = []), (this.end = []), (this.style = { stroke: '#000', lineWidth: 1 }); }), (a.render = function(t, n) { var s = []; if ( ((s[0] = this.parsePoint(t, this.start)), (s[1] = this.parsePoint(t, this.end)), !s[0] || !s[1]) ) return; var o = n.addShape('Line', { className: 'guide-line', attrs: _({ x1: s[0].x, y1: s[0].y, x2: s[1].x, y2: s[1].y }, this.style), }); return (this.element = o), o; }), r ); })(U); U.Line = Jo; var Ko = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.type = 'rect'), (this.start = []), (this.end = []), (this.style = { fill: '#CCD7EB', opacity: 0.4 }); }), (a.render = function(t, n) { var s = this.parsePoint(t, this.start), o = this.parsePoint(t, this.end); if (!s || !o) return; var l = n.addShape('rect', { className: 'guide-rect', attrs: _( { x: Math.min(s.x, o.x), y: Math.min(s.y, o.y), width: Math.abs(o.x - s.x), height: Math.abs(s.y - o.y), }, this.style, ), }); return (this.element = l), l; }), r ); })(U); U.Rect = Ko; var Qo = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.type = 'text'), (this.position = null), (this.content = null), (this.style = { fill: '#000' }), (this.offsetX = 0), (this.offsetY = 0); }), (a.render = function(t, n) { var s = this.position, o = this.parsePoint(t, s); if (!o) return; var l = this.content, u = this.style, c = this.offsetX, f = this.offsetY; c && (o.x += c), f && (o.y += f); var h = n.addShape('text', { className: 'guide-text', attrs: _({ x: o.x, y: o.y, text: l }, u), }); return (this.element = h), h; }), r ); })(U); U.Text = Qo; var tl = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.type = 'tag'), (this.position = null), (this.content = null), (this.direct = 'tl'), (this.autoAdjust = !0), (this.offsetX = 0), (this.offsetY = 0), (this.side = 4), (this.background = { padding: 5, radius: 2, fill: '#1890FF' }), (this.textStyle = { fontSize: 12, fill: '#fff', textAlign: 'center', textBaseline: 'middle', }), (this.withPoint = !0), (this.pointStyle = { fill: '#1890FF', r: 3, lineWidth: 1, stroke: '#fff' }); }), (a._getDirect = function(t, n, s, o) { var l = this.direct, u = this.side, c = t.get('canvas'), f = c.get('width'), h = c.get('height'), v = n.x, g = n.y, p = l[0], m = l[1]; p === 't' && g - u - o < 0 ? (p = 'b') : p === 'b' && g + u + o > h && (p = 't'); var d = p === 'c' ? u : 0; return ( m === 'l' && v - d - s < 0 ? (m = 'r') : m === 'r' && v + d + s > f ? (m = 'l') : m === 'c' && (s / 2 + v + d > f ? (m = 'l') : v - s / 2 - d < 0 && (m = 'r')), (l = p + m), l ); }), (a.render = function(t, n) { var s = this.parsePoint(t, this.position); if (!s) return; if (isNaN(s.x) || isNaN(s.y)) return; var o = this.content, l = this.background, u = this.textStyle, c = [], f = n.addGroup({ className: 'guide-tag' }); if (this.withPoint) { var h = f.addShape('Circle', { className: 'guide-tag-point', attrs: _({ x: s.x, y: s.y }, this.pointStyle), }); c.push(h); } var v = f.addGroup(), g = v.addShape('text', { className: 'guide-tag-text', zIndex: 1, attrs: _({ x: 0, y: 0, text: o }, u), }); c.push(g); var p = g.getBBox(), m = q(l.padding), d = p.width + m[1] + m[3], y = p.height + m[0] + m[2], x = p.minY - m[0], S = p.minX - m[3], P = v.addShape('rect', { className: 'guide-tag-bg', zIndex: -1, attrs: _({ x: S, y: x, width: d, height: y }, l), }); c.push(P); var b = this.autoAdjust ? this._getDirect(n, s, d, y) : this.direct, M = this.side, I = s.x + this.offsetX, O = s.y + this.offsetY, T, L = q(l.radius); b === 'tl' ? ((T = [ { x: d + S - M - 1, y: y + x - 1 }, { x: d + S, y: y + x - 1 }, { x: d + S, y: y + M + x }, ]), (L[2] = 0), (I = I - d), (O = O - M - y)) : b === 'cl' ? ((T = [ { x: d + S - 1, y: (y - M) / 2 + x - 1 }, { x: d + S - 1, y: (y + M) / 2 + x + 1 }, { x: d + M + S, y: y / 2 + x }, ]), (I = I - d - M), (O = O - y / 2)) : b === 'bl' ? ((T = [ { x: d + S, y: -M + x }, { x: d + S - M - 1, y: x + 1 }, { x: d + S, y: x + 1 }, ]), (L[1] = 0), (I = I - d), (O = O + M)) : b === 'bc' ? ((T = [ { x: d / 2 + S, y: -M + x }, { x: (d - M) / 2 + S - 1, y: x + 1 }, { x: (d + M) / 2 + S + 1, y: x + 1 }, ]), (I = I - d / 2), (O = O + M)) : b === 'br' ? ((T = [ { x: S, y: x - M }, { x: S, y: x + 1 }, { x: S + M + 1, y: x + 1 }, ]), (L[0] = 0), (O = O + M)) : b === 'cr' ? ((T = [ { x: S - M, y: y / 2 + x }, { x: S + 1, y: (y - M) / 2 + x - 1 }, { x: S + 1, y: (y + M) / 2 + x + 1 }, ]), (I = I + M), (O = O - y / 2)) : b === 'tr' ? ((T = [ { x: S, y: y + M + x }, { x: S, y: y + x - 1 }, { x: M + S + 1, y: y + x - 1 }, ]), (L[3] = 0), (O = O - y - M)) : b === 'tc' && ((T = [ { x: (d - M) / 2 + S - 1, y: y + x - 1 }, { x: (d + M) / 2 + S + 1, y: y + x - 1 }, { x: d / 2 + S, y: y + M + x }, ]), (I = I - d / 2), (O = O - y - M)); var at = v.addShape('Polygon', { className: 'guide-tag-side', zIndex: 0, attrs: { points: T, fill: l.fill }, }); return ( c.push(at), P.attr('radius', L), v.moveTo(I - S, O - x), v.sort(), (this.element = f), c ); }), r ); })(U); U.Tag = tl; var el = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initDefaultCfg = function() { (this.type = 'point'), (this.position = null), (this.offsetX = 0), (this.offsetY = 0), (this.style = { fill: '#1890FF', r: 3, lineWidth: 1, stroke: '#fff' }); }), (a.render = function(t, n) { var s = this.parsePoint(t, this.position); if (!s) return null; var o = n.addShape('Circle', { className: 'guide-point', attrs: _({ x: s.x + this.offsetX, y: s.y + this.offsetY }, this.style), }); return (this.element = o), o; }), r ); })(U); U.Point = el; var rl = { circle: function(r, a, e, t) { t.arc(r, a, e, 0, Math.PI * 2, !1); }, square: function(r, a, e, t) { t.moveTo(r - e, a - e), t.lineTo(r + e, a - e), t.lineTo(r + e, a + e), t.lineTo(r - e, a + e), t.closePath(); }, }, Ke = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a._initProperties = function() { i.prototype._initProperties.call(this), (this._attrs.canFill = !0), (this._attrs.canStroke = !0), (this._attrs.type = 'marker'); }), (a.getDefaultAttrs = function() { return { x: 0, y: 0, lineWidth: 0 }; }), (a.createPath = function(t) { var n = this.get('attrs'), s = n.x, o = n.y, l = n.radius, u = n.symbol || 'circle', c; F(u) ? (c = u) : (c = rl[u]), t.beginPath(), c(s, o, l, t, this); }), (a.calculateBox = function() { var t = this.get('attrs'), n = t.x, s = t.y, o = t.radius; return { minX: n - o, minY: s - o, maxX: n + o, maxY: s + o }; }), r ); })(R), al = 3, Qe = (function() { var i = r.prototype; i.getDefaultCfg = function() { return { showTitle: !1, title: null, items: null, titleGap: 12, itemGap: 10, itemMarginBottom: 12, itemFormatter: null, itemWidth: null, wordSpace: 6, x: 0, y: 0, layout: 'horizontal', joinString: ': ', }; }; function r(a) { z(this, this.getDefaultCfg(), a), this._init(), this._renderTitle(), this._renderItems(); } return ( (i._init = function() { var e = new kt({ zIndex: this.zIndex || 0 }); this.container = e; var t = e.addGroup(); this.wrapper = t; var n = t.addGroup({ className: 'itemsGroup' }); (this.itemsGroup = n), this.parent && this.parent.add(e); }), (i._renderTitle = function(e) { e = e || this.title; var t = this.titleShape, n = 0; if (this.showTitle && e) { if (t && !t.get('destroyed')) t.attr('text', e); else { var s = this.wrapper, o = this.titleStyle; (t = s.addShape('text', { className: 'title', attrs: _({ x: 0, y: 0, text: e }, o), })), (this.titleShape = t); } n = t.getBBox().height + this.titleGap; } this._titleHeight = n; }), (i._renderItems = function(e) { var t = this; if (((e = e || t.items), !e)) return; t.reversed && e.reverse(), C(e, function(n, s) { t._addItem(n, s); }), e.length > 1 && this._adjustItems(), this._renderBackground(); }), (i._renderBackground = function() { var e = this.background; if (e) { var t = this.container, n = this.wrapper, s = n.getBBox(), o = s.minX, l = s.minY, u = s.width, c = s.height, f = e.padding || [0, 0, 0, 0]; f = q(f); var h = _( { x: o - f[3], y: l - f[0], width: u + f[1] + f[3], height: c + f[0] + f[2], }, e, ), v = this.backShape; v ? v.attr(h) : (v = t.addShape('Rect', { zIndex: -1, attrs: h })), (this.backShape = v), t.sort(); } }), (i._addItem = function(e) { var t = this.itemsGroup, n = t.addGroup({ name: e.name, value: e.value, dataValue: e.dataValue, checked: e.checked, }), s = this.unCheckStyle, o = this.unCheckColor, l = this.nameStyle, u = this.valueStyle, c = this.wordSpace, f = e.marker, h = e.value, v = 0; if ((o && (s.fill = o), f)) { var g = f.radius || al, p = _({ x: g, y: this._titleHeight }, f); e.checked === !1 && _(p, s); var m = new Ke({ className: 'item-marker', attrs: p }); n.add(m), (v += m.getBBox().width + c); } var d, y = e.name; if (y) { var x = this.joinString || ''; (y = h ? y + x : y), (d = n.addShape('text', { className: 'name', attrs: _( { x: v, y: this._titleHeight, text: this._formatItemValue(y) }, l, e.checked === !1 ? s : null, ), })); } if (h) { var S = v; d && (S += d.getBBox().width), n.addShape('text', { className: 'value', attrs: _( { x: S, y: this._titleHeight, text: h }, u, e.checked === !1 ? s : null, ), }); } return n; }), (i._formatItemValue = function(e) { var t = this.itemFormatter; return t && (e = t.call(this, e)), e; }), (i._getMaxItemWidth = function() { var e, t = this.itemWidth; if (X(t) || w(t)) return t; if (t === 'auto') { for ( var n = this.itemsGroup, s = n.get('children'), o = s.length, l = 0, u = 0; u < o; u++ ) { var c = s[u].getBBox(), f = c.width; l = Math.max(l, f); } var h = this.maxLength, v = this.itemGap, g = (h - v) / 2, p = (h - v * 2) / 3; return ( o === 2 ? (e = Math.max(l, g)) : l <= p ? (e = p) : l <= g ? (e = g) : (e = l), e ); } }), (i._adjustHorizontal = function() { for ( var e = this.maxLength, t = this.itemsGroup, n = t.get('children'), s = this.itemGap, o = this.itemMarginBottom, l = this._titleHeight, u = 0, c = 0, f, h, v = this._getMaxItemWidth(), g = [], p = 0, m = n.length; p < m; p++ ) { var d = n[p], y = d.getBBox(), x = y.height, S = y.width; (f = v || S), (h = x + o), f - (e - c) > 1e-4 && (u++, (c = 0)), d.moveTo(c, u * h), g.push({ x: c, y: u * h + l - x / 2, width: S * 1.375, height: x * 1.375 }), (c += f + s); } this.legendHitBoxes = g; return; }), (i._adjustVertical = function() { for ( var e = this.maxLength, t = this.itemsGroup, n = this.itemGap, s = this.itemMarginBottom, o = this.itemWidth, l = this._titleHeight, u = t.get('children'), c = 0, f, h, v = 0, g = 0, p = [], m = 0, d = u.length; m < d; m++ ) { var y = u[m], x = y.getBBox(); (f = x.width), (h = x.height), X(o) ? (v = o + n) : f > v && (v = f + n), e - c < h ? ((c = 0), (g += v), y.moveTo(g, 0), p.push({ x: g, y: l - h / 2, width: f * 1.375, height: h * 1.375 })) : (y.moveTo(g, c), p.push({ x: g, y: c - h / 2 + l, width: f * 1.375, height: h * 1.375 })), (c += h + s); } this.legendHitBoxes = p; return; }), (i._adjustItems = function() { var e = this.layout; e === 'horizontal' ? this._adjustHorizontal() : this._adjustVertical(); }), (i.moveTo = function(e, t) { (this.x = e), (this.y = t); var n = this.container; return n && n.moveTo(e, t), this; }), (i.setItems = function(e) { this.clearItems(), this._renderItems(e); }), (i.setTitle = function(e) { this._renderTitle(e); }), (i.clearItems = function() { var e = this.itemsGroup; e.clear(); }), (i.getWidth = function() { var e = this.container, t = e.getBBox(); return t.width; }), (i.getHeight = function() { var e = this.container, t = e.getBBox(); return t.height; }), (i.show = function() { var e = this.container; e.show(); }), (i.hide = function() { var e = this.container; e.hide(); }), (i.clear = function() { var e = this.container; e.clear(), e.remove(!0); }), r ); })(), Ha = (function() { var i = r.prototype; i.getDefaultCfg = function() { return { x: 0, y: 0, content: '', textStyle: { fontSize: 12, fill: '#fff', textAlign: 'center', textBaseline: 'middle', fontFamily: 'Arial', }, background: { radius: 1, fill: 'rgba(0, 0, 0, 0.65)', padding: [3, 5] }, width: 0, height: 0, className: '', }; }; function r(a) { z(this, this.getDefaultCfg(), a), this._init(); var e = this.content, t = this.x, n = this.y; w(e) || this.updateContent(e), this.updatePosition(t, n); } return ( (i._init = function() { var e = this.content, t = this.textStyle, n = this.background, s = this.className, o = this.visible, l = this.context, u = new kt({ context: l, className: s, zIndex: 0, visible: o }), c = u.addShape('Text', { className: s + '-text', zIndex: 1, attrs: _({ text: e, x: 0, y: 0 }, t), }), f = u.addShape('Rect', { className: s + '-bg', zIndex: -1, attrs: _({ x: 0, y: 0, width: 0, height: 0 }, n), }); u.sort(), (this.container = u), (this.textShape = c), (this.backgroundShape = f); }), (i._getBBox = function() { var e = this.textShape, t = this.background, n = e.getBBox(), s = q(t.padding), o = n.width + s[1] + s[3], l = n.height + s[0] + s[2], u = n.minX - s[3], c = n.minY - s[0]; return { x: u, y: c, width: o, height: l }; }), (i.updateContent = function(e) { var t = this.textShape, n = this.backgroundShape; if (!w(e)) { j(e) || (e = { text: e }), t.attr(e); var s = this._getBBox(), o = s.x, l = s.y, u = s.width, c = s.height, f = this.width || u, h = this.height || c; n.attr({ x: o, y: l, width: f, height: h }), (this._width = f), (this._height = h), (this.content = e.text); } }), (i.updatePosition = function(e, t) { var n = this.container, s = this._getBBox(), o = s.x, l = s.y; n.moveTo(e - o, t - l), (this.x = e - o), (this.y = t - l); }), (i.getWidth = function() { return this._width; }), (i.getHeight = function() { return this._height; }), (i.show = function() { this.container.show(); }), (i.hide = function() { this.container.hide(); }), (i.clear = function() { var e = this.container; e.clear(), e.remove(!0), (this.container = null), (this.textShape = null), (this.backgroundShape = null); }), r ); })(), ct = 4, il = (function() { var i = r.prototype; i.getDefaultCfg = function() { return { showCrosshairs: !1, crosshairsStyle: { stroke: 'rgba(0, 0, 0, 0.25)', lineWidth: 1 }, crosshairsType: 'y', showXTip: !1, showYTip: !1, xTip: null, xTipBackground: { radius: 1, fill: 'rgba(0, 0, 0, 0.65)', padding: [3, 5] }, xTipTextStyle: { fontSize: 12, fill: '#fff', textAlign: 'center', textBaseline: 'middle', }, yTip: null, yTipBackground: { radius: 1, fill: 'rgba(0, 0, 0, 0.65)', padding: [3, 5] }, yTipTextStyle: { fontSize: 12, fill: '#fff', textAlign: 'center', textBaseline: 'middle', }, background: null, layout: 'horizontal', offsetX: 0, offsetY: 0, }; }; function r(a) { z(this, this.getDefaultCfg(), a); var e = this.frontPlot, t = this.custom; if (!t) { var n = new Qe(_({ parent: e, zIndex: 3 }, a)); this.container = n; var s = this.fixed, o = this.background; s || (this.tooltipArrow = e.addShape('Polygon', { className: 'tooltip-arrow', visible: !1, zIndex: 2, attrs: _({ points: [] }, o), })); } if (this.showXTip) { var l = this.xTipBackground, u = this.xTipTextStyle, c = new Ha({ context: e.get('context'), className: 'xTip', background: l, textStyle: u, visible: !1, }); e.add(c.container), (this.xTipBox = c); } if (this.showYTip) { var f = this.yTipBackground, h = this.yTipTextStyle, v = new Ha({ context: e.get('context'), className: 'yTip', background: f, textStyle: h, visible: !1, }); e.add(v.container), (this.yTipBox = v); } this.showCrosshairs && this._renderCrosshairs(), e.sort(); } return ( (i.setContent = function(e, t) { if (((this.title = e), (this.items = t), !this.custom)) { var n = this.container; n.setTitle(e), n.setItems(t); } }), (i.setYTipContent = function(e) { var t = this.yTip; F(t) ? (e = t(e)) : (e = _({ text: e }, t)), this.yTipBox && this.yTipBox.updateContent(e); }), (i.setYTipPosition = function(e) { var t = this.plotRange, n = this.crosshairsShapeX; if (this.showYTip) { var s = this.yTipBox, o = s.getHeight(), l = s.getWidth(), u = t.tl.x - l, c = e - o / 2; c <= t.tl.y && (c = t.tl.y), c + o >= t.br.y && (c = t.br.y - o), u < 0 && ((u = t.tl.x), n && n.attr('x1', t.tl.x + l)), s.updatePosition(u, c); } }), (i.setXTipContent = function(e) { var t = this.xTip; F(t) ? (e = t(e)) : (e = _({ text: e }, t)), this.xTipBox && this.xTipBox.updateContent(e); }), (i.setXTipPosition = function(e) { var t = this.showXTip, n = this.canvas, s = this.plotRange, o = this.xTipBox, l = this.crosshairsShapeY; if (t) { var u = n.get('height'), c = o.getWidth(), f = o.getHeight(), h = e - c / 2, v = s.br.y; h <= s.tl.x && (h = s.tl.x), h + c >= s.tr.x && (h = s.tr.x - c), u - v < f && (v -= f), o.updatePosition(h, v), l && l.attr('y1', v); } }), (i.setXCrosshairPosition = function(e) { this.crosshairsShapeX && this.crosshairsShapeX.moveTo(0, e); }), (i.setYCrosshairPosition = function(e) { this.crosshairsShapeY && this.crosshairsShapeY.moveTo(e, 0); }), (i.setPosition = function(e) { var t = this.container, n = this.plotRange, s = this.offsetX, o = this.offsetY, l = this.fixed, u = this.tooltipArrow; if (!t) return; var c = t.container.getBBox(), f = c.minX, h = c.minY, v = c.width, g = c.height, p = n.tl, m = n.tr, d = 0, y = p.y - g - ct + o; if (l) { var x = (p.x + m.x) / 2; d = x - v / 2 + s; } else { var S; if ( (e.length > 1 ? (S = (e[0].x + e[e.length - 1].x) / 2) : (S = e[0].x), (d = S - v / 2 + s), d < p.x && (d = p.x), d + v > m.x && (d = m.x - v), u) ) { u.attr('points', [ { x: S - 3, y: p.y - ct + o }, { x: S + 3, y: p.y - ct + o }, { x: S, y: p.y + o }, ]); var P = t.backShape, b = q(P.attr('radius')); S === p.x ? ((b[3] = 0), u.attr('points', [ { x: p.x, y: p.y + o }, { x: p.x, y: p.y - ct + o }, { x: p.x + ct, y: p.y - ct + o }, ])) : S === m.x && ((b[2] = 0), u.attr('points', [ { x: m.x, y: p.y + o }, { x: m.x - ct, y: p.y - ct + o }, { x: m.x, y: p.y - ct + o }, ])), P.attr('radius', b); } } t.moveTo(d - f, y - h); }), (i.setMarkers = function(e) { e === void 0 && (e = {}); var t = this, n = e, s = n.items, o = n.style, l = n.type, u = t._getMarkerGroup(l); if (l === 'circle') for (var c = 0, f = s.length; c < f; c++) { var h = s[c], v = new Ke({ className: 'tooltip-circle-marker', attrs: _({ x: h.x, y: h.y, stroke: h.color }, o), }); u.add(v); } else u.addShape('rect', { className: 'tooltip-rect-marker', attrs: o }); }), (i.clearMarkers = function() { var e = this.markerGroup; e && e.clear(); }), (i.show = function() { var e = this.crosshairsShapeX, t = this.crosshairsShapeY, n = this.markerGroup, s = this.container, o = this.tooltipArrow, l = this.xTipBox, u = this.yTipBox, c = this.canvas; e && e.show(), t && t.show(), n && n.show(), s && s.show(), o && o.show(), l && l.show(), u && u.show(), c.draw(); }), (i.hide = function() { var e = this.crosshairsShapeX, t = this.crosshairsShapeY, n = this.markerGroup, s = this.container, o = this.tooltipArrow, l = this.xTipBox, u = this.yTipBox; e && e.hide(), t && t.hide(), n && n.hide(), s && s.hide(), o && o.hide(), l && l.hide(), u && u.hide(); }), (i.destroy = function() { var e = this.crosshairsShapeX, t = this.crosshairsShapeY, n = this.markerGroup, s = this.container, o = this.tooltipArrow, l = this.xTipBox, u = this.yTipBox; e && e.remove(!0), t && t.remove(!0), n && n.remove(!0), o && o.remove(!0), s && s.clear(), l && l.clear(), u && u.clear(), (this.destroyed = !0); }), (i._getMarkerGroup = function(e) { var t = this.markerGroup; return ( t ? t.clear() : (e === 'circle' ? ((t = this.frontPlot.addGroup({ zIndex: 1 })), this.frontPlot.sort()) : (t = this.backPlot.addGroup()), (this.markerGroup = t)), t ); }), (i._renderCrosshairs = function() { var e = this.crosshairsType, t = this.crosshairsStyle, n = this.frontPlot, s = this.plotRange, o = s.tl, l = s.br; $t(e, 'x') && (this.crosshairsShapeX = n.addShape('Line', { className: 'tooltip-crosshairs-x', zIndex: 0, visible: !1, attrs: _({ x1: o.x, y1: 0, x2: l.x, y2: 0 }, t), })), $t(e, 'y') && (this.crosshairsShapeY = n.addShape('Line', { className: 'tooltip-crosshairs-y', zIndex: 0, visible: !1, attrs: _({ x1: 0, y1: l.y, x2: 0, y2: o.y }, t), })); }), r ); })(); D.tooltip = z( { triggerOn: 'press', triggerOff: 'pressend', alwaysShow: !1, showTitle: !1, showCrosshairs: !1, crosshairsStyle: { stroke: 'rgba(0, 0, 0, 0.25)', lineWidth: 1 }, showTooltipMarker: !0, background: { radius: 1, fill: 'rgba(0, 0, 0, 0.65)', padding: [3, 5] }, titleStyle: { fontSize: 12, fill: '#fff', textAlign: 'start', textBaseline: 'top' }, nameStyle: { fontSize: 12, fill: 'rgba(255, 255, 255, 0.65)', textAlign: 'start', textBaseline: 'middle', }, valueStyle: { fontSize: 12, fill: '#fff', textAlign: 'start', textBaseline: 'middle', }, showItemMarker: !0, itemMarkerStyle: { radius: 3, symbol: 'circle', lineWidth: 1, stroke: '#fff' }, layout: 'horizontal', snap: !1, }, D.tooltip || {}, ); function Ua(i) { var r = i.getAttr('color'); if (r) { var a = r.getScale(r.type); if (a.isLinear) return a; } var e = i.getXScale(), t = i.getYScale(); return t || e; } function nl(i, r) { var a, e, t = i._getGroupScales(); if ( (t.length && C(t, function(o) { return (e = o), !1; }), e) ) { var n = e.field; a = e.getText(r[n]); } else { var s = Ua(i); a = s.alias || s.field; } return a; } function sl(i, r) { var a = Ua(i); return a.getText(r[a.field]); } function ol(i, r) { var a = i.getAttr('position'), e = a.getFields()[0], t = i.get('scales')[e]; return t.getText(r[t.field]); } function ll(i, r) { var a = -1; return ( C(i, function(e, t) { if ( e.title === r.title && e.name === r.name && e.value === r.value && e.color === r.color ) return (a = t), !1; }), a ); } function ul(i) { var r = []; return ( C(i, function(a) { var e = ll(r, a); e === -1 ? r.push(a) : (r[e] = a); }), r ); } function cl(i, r) { return JSON.stringify(i) === JSON.stringify(r); } var fl = (function() { function i(a) { var e = this; N(this, 'handleShowEvent', function(s) { var o = e.chart; if (!e.enable) return; var l = o.get('plotRange'), u = Me(s, o); if (!Ze(u, l) && !e._tooltipCfg.alwaysShow) { e.hideTooltip(); return; } var c = e.timeStamp, f = +new Date(); f - c > 16 && (e.showTooltip(u), (e.timeStamp = f)); }), N(this, 'handleHideEvent', function() { if (!e.enable) return; e.hideTooltip(); }), (this.enable = !0), (this.cfg = {}), (this.tooltip = null), (this.chart = null), (this.timeStamp = 0), _(this, a); var t = this.chart, n = t.get('canvas'); (this.canvas = n), (this.canvasDom = n.get('el')); } var r = i.prototype; return ( (r._setCrosshairsCfg = function() { var e = this, t = e.chart, n = _({}, D.tooltip), s = t.get('geoms'), o = []; C(s, function(u) { var c = u.get('type'); o.indexOf(c) === -1 && o.push(c); }); var l = t.get('coord').type; return ( s.length && (l === 'cartesian' || l === 'rect') && o.length === 1 && ['line', 'area', 'path', 'point'].indexOf(o[0]) !== -1 && _(n, { showCrosshairs: !0 }), n ); }), (r._getMaxLength = function(e) { e === void 0 && (e = {}); var t = e, n = t.layout, s = t.plotRange; return n === 'horizontal' ? s.br.x - s.bl.x : s.bl.y - s.tr.y; }), (r.render = function() { var e = this; if (e.tooltip) return; var t = e.chart, n = t.get('canvas'), s = t.get('frontPlot').addGroup({ className: 'tooltipContainer', zIndex: 10 }), o = t.get('backPlot').addGroup({ className: 'tooltipContainer' }), l = t.get('plotRange'), u = t.get('coord'), c = e._setCrosshairsCfg(), f = e.cfg, h = z( { plotRange: l, frontPlot: s, backPlot: o, canvas: n, fixed: u.transposed || u.isPolar, }, c, f, ); (h.maxLength = e._getMaxLength(h)), (this._tooltipCfg = h); var v = new il(h); (e.tooltip = v), h.alwaysShow && e.prePoint && this.showTooltip(e.prePoint), e.bindEvents(); }), (r.clear = function() { var e = this.tooltip; e && (e.destroy(), this.unBindEvents()), (this.tooltip = null), (this._lastActive = null); }), (r._getTooltipMarkerStyle = function(e) { e === void 0 && (e = {}); var t = e, n = t.type, s = t.items, o = this._tooltipCfg; if (n === 'rect') { var l, u, c, f, h = this.chart, v = h.get('plotRange'), g = v.tl, p = v.br, m = h.get('coord'), d = s[0], y = s[s.length - 1], x = d.width; m.transposed ? ((l = g.x), (u = y.y - x * 0.75), (c = p.x - g.x), (f = d.y - y.y + 1.5 * x)) : ((l = d.x - x * 0.75), (u = g.y), (c = y.x - d.x + 1.5 * x), (f = p.y - g.y)), (e.style = _( { x: l, y: u, width: c, height: f, fill: '#CCD6EC', opacity: 0.3 }, o.tooltipMarkerStyle, )); } else e.style = _({ radius: 4, fill: '#fff', lineWidth: 2 }, o.tooltipMarkerStyle); return e; }), (r._setTooltip = function(e, t, n) { n === void 0 && (n = {}), (this.prePoint = e); var s = this._lastActive, o = this.tooltip, l = this._tooltipCfg; t = ul(t); var u = this.chart, c = u.get('coord'), f = u.getYScales()[0], h = l.snap; if (h === !1 && f.isLinear) { var v = c.invertPoint(e), g = u.get('plotRange'), p, m; Ze(e, g) && (c.transposed ? ((p = f.invert(v.x)), (m = e.x), o.setXTipContent(p), o.setXTipPosition(m), o.setYCrosshairPosition(m)) : ((p = f.invert(v.y)), (m = e.y), o.setYTipContent(p), o.setYTipPosition(m), o.setXCrosshairPosition(m))); } if ( (l.onShow && l.onShow({ x: e.x, y: e.y, tooltip: o, items: t, tooltipMarkerCfg: n }), cl(s, t)) ) { if (h === !1 && ($t(l.crosshairsType, 'y') || l.showYTip)) { var d = this.chart.get('canvas'); d.draw(); } return; } this._lastActive = t; var y = l.onChange; y && y({ x: e.x, y: e.y, tooltip: o, items: t, tooltipMarkerCfg: n }); var x = t[0], S = x.title || x.name, P = x.x; if ( (t.length > 1 && (P = (t[0].x + t[t.length - 1].x) / 2), o.setContent(S, t, c.transposed), o.setPosition(t, e), c.transposed) ) { var b = x.y; t.length > 1 && (b = (t[0].y + t[t.length - 1].y) / 2), o.setYTipContent(S), o.setYTipPosition(b), o.setXCrosshairPosition(b), h && (o.setXTipContent(x.value), o.setXTipPosition(P), o.setYCrosshairPosition(P)); } else o.setXTipContent(S), o.setXTipPosition(P), o.setYCrosshairPosition(P), h && (o.setYTipContent(x.value), o.setYTipPosition(x.y), o.setXCrosshairPosition(x.y)); var M = n.items; l.showTooltipMarker && M.length ? ((n = this._getTooltipMarkerStyle(n)), o.setMarkers(n)) : o.clearMarkers(), o.show(); }), (r.showTooltip = function(e) { var t = this, n = t.chart, s, o = [], l = [], u = t._tooltipCfg, c = u.showItemMarker, f = u.itemMarkerStyle, h = u.alwaysShow, v; c && (v = f); var g = n.get('geoms'), p = n.get('coord'); if ( (C(g, function(d) { if (d.get('visible')) { var y = d.get('type'), x = d.getSnapRecords(e), S = d.get('adjust'); if (y === 'interval' && S && S.type === 'symmetric') return; C(x, function(P) { if (P.x && P.y) { var b = P.x, M = P.y, I = P._origin, O = P.color, T = { x: b, y: k(M) ? M[1] : M, color: O || D.defaultColor, origin: I, name: nl(d, I), value: sl(d, I), title: ol(d, I), }; v && (T.marker = _({ fill: O || D.defaultColor }, v)), l.push(T), ['line', 'area', 'path'].indexOf(y) !== -1 ? ((s = 'circle'), o.push(T)) : y === 'interval' && (p.type === 'cartesian' || p.type === 'rect') && ((s = 'rect'), (T.width = d.getSize(P._origin)), o.push(T)); } }); } }), l.length) ) { var m = { items: o, type: s }; t._setTooltip(e, l, m); return; } h || t.hideTooltip(); }), (r.hideTooltip = function() { var e = this._tooltipCfg; this._lastActive = null; var t = this.tooltip; if (t) { t.hide(), e.onHide && e.onHide({ tooltip: t }); var n = this.chart.get('canvas'); n.draw(); } }), (r._handleEvent = function(e, t, n) { var s = this.canvas; C([].concat(e), function(o) { n === 'bind' ? s.on(o, t) : s.off(o, t); }); }), (r.bindEvents = function() { var e = this._tooltipCfg, t = e.triggerOn, n = e.triggerOff, s = e.alwaysShow; t && this._handleEvent(t, this.handleShowEvent, 'bind'), s || this._handleEvent(n, this.handleHideEvent, 'bind'); }), (r.unBindEvents = function() { var e = this._tooltipCfg, t = e.triggerOn, n = e.triggerOff, s = e.alwaysShow; t && this._handleEvent(t, this.handleShowEvent, 'unBind'), s || this._handleEvent(n, this.handleHideEvent, 'unBind'); }), i ); })(); function ja(i) { var r = new fl({ chart: i }); i.set('tooltipController', r), (i.tooltip = function(a, e) { return j(a) && ((e = a), (a = !0)), (r.enable = a), e && (r.cfg = e), this; }); } function Va(i) { var r = i.get('tooltipController'); r.render(), (i.showTooltip = function(a) { return r.showTooltip(a), this; }), (i.hideTooltip = function() { return r.hideTooltip(), this; }); } function Wa(i) { var r = i.get('tooltipController'); r.clear(); } var hl = { init: ja, afterGeomDraw: Va, clearInner: Wa }, vl = Object.freeze({ __proto__: null, init: ja, afterGeomDraw: Va, clearInner: Wa, default: hl, }); D.guide = z( { line: { style: { stroke: '#a3a3a3', lineWidth: 1 }, top: !0 }, text: { style: { fill: '#787878', textAlign: 'center', textBaseline: 'middle' }, offsetX: 0, offsetY: 0, top: !0, }, rect: { style: { fill: '#fafafa' }, top: !1 }, arc: { style: { stroke: '#a3a3a3' }, top: !0 }, html: { offsetX: 0, offsetY: 0, alignX: 'center', alignY: 'middle' }, tag: { top: !0, offsetX: 0, offsetY: 0, side: 4, background: { padding: 5, radius: 2, fill: '#1890FF' }, textStyle: { fontSize: 12, fill: '#fff', textAlign: 'center', textBaseline: 'middle', }, }, point: { top: !0, offsetX: 0, offsetY: 0, style: { fill: '#fff', r: 3, lineWidth: 2, stroke: '#1890ff' }, }, }, D.guide || {}, ); var gl = (function() { function i(a) { (this.guides = []), (this.xScale = null), (this.yScales = null), (this.guideShapes = []), _(this, a); } var r = i.prototype; return ( (r._toString = function(e) { return F(e) && (e = e(this.xScale, this.yScales)), (e = e.toString()), e; }), (r._getId = function(e, t) { var n = t.id; if (!n) { var s = t.type; s === 'arc' || s === 'line' || s === 'rect' ? (n = this._toString(t.start) + '-' + this._toString(t.end)) : (n = this._toString(t.position)); } return n; }), (r.paint = function(e) { var t = this, n = t.chart, s = t.guides, o = t.xScale, l = t.yScales, u = []; C(s, function(c, f) { (c.xScale = o), (c.yScales = l); var h; c.type === 'regionFilter' ? (c.chart = n) : (h = c.top ? t.frontPlot : t.backPlot), (c.coord = e), (c.container = h), (c.canvas = n.get('canvas')); var v = c.render(e, h); if (v) { var g = t._getId(v, c); [].concat(v).forEach(function(p) { (p._id = p.get('className') + '-' + g), p.set('index', f), u.push(p); }); } }), (t.guideShapes = u); }), (r.clear = function() { return this.reset(), (this.guides = []), this; }), (r.reset = function() { var e = this.guides; C(e, function(t) { t.remove(); }); }), (r._createGuide = function(e, t) { var n = lt(e), s = new U[n](z({}, D.guide[e], t)); return this.guides.push(s), s; }), (r.line = function(e) { return e === void 0 && (e = {}), this._createGuide('line', e); }), (r.text = function(e) { return e === void 0 && (e = {}), this._createGuide('text', e); }), (r.arc = function(e) { return e === void 0 && (e = {}), this._createGuide('arc', e); }), (r.html = function(e) { return e === void 0 && (e = {}), this._createGuide('html', e); }), (r.rect = function(e) { return e === void 0 && (e = {}), this._createGuide('rect', e); }), (r.tag = function(e) { return e === void 0 && (e = {}), this._createGuide('tag', e); }), (r.point = function(e) { return e === void 0 && (e = {}), this._createGuide('point', e); }), (r.regionFilter = function(e) { return e === void 0 && (e = {}), this._createGuide('regionFilter', e); }), i ); })(); function qa(i) { var r = new gl({ frontPlot: i.get('frontPlot').addGroup({ zIndex: 20, className: 'guideContainer' }), backPlot: i.get('backPlot').addGroup({ className: 'guideContainer' }), }); i.set('guideController', r), (i.guide = function() { return r; }); } function $a(i) { var r = i.get('guideController'); if (!r.guides.length) return; var a = i.getXScale(), e = i.getYScales(), t = i.get('coord'); (r.xScale = a), (r.yScales = e), (r.chart = i), r.paint(t); } function Za(i) { i.get('guideController').clear(); } function Ja(i) { i.get('guideController').reset(); } var pl = { init: qa, afterGeomDraw: $a, clear: Za, repaint: Ja }, dl = Object.freeze({ __proto__: null, init: qa, afterGeomDraw: $a, clear: Za, repaint: Ja, default: pl, }), Ka = 12, Qa = 3, Gt = { itemMarginBottom: 12, itemGap: 10, showTitle: !1, titleStyle: { fontSize: 12, fill: '#808080', textAlign: 'start', textBaseline: 'top', }, nameStyle: { fill: '#808080', fontSize: 12, textAlign: 'start', textBaseline: 'middle', }, valueStyle: { fill: '#000000', fontSize: 12, textAlign: 'start', textBaseline: 'middle', }, unCheckStyle: { fill: '#bfbfbf' }, itemWidth: 'auto', wordSpace: 6, selectedMode: 'multiple', }; D.legend = z( { common: Gt, right: _({ position: 'right', layout: 'vertical' }, Gt), left: _({ position: 'left', layout: 'vertical' }, Gt), top: _({ position: 'top', layout: 'horizontal' }, Gt), bottom: _({ position: 'bottom', layout: 'horizontal' }, Gt), }, D.legend || {}, ); function ml(i, r) { var a = 0; r = q(r); switch (i) { case 'top': a = r[0]; break; case 'right': a = r[1]; break; case 'bottom': a = r[2]; break; case 'left': a = r[3]; break; } return a; } var yl = (function() { function i(a) { var e = this; N(this, 'handleEvent', function(n) { var s = e; function o(P, b) { var M = null, I = s.legends; return ( C(I, function(O) { C(O, function(T) { var L = T.itemsGroup, at = T.legendHitBoxes, xt = L.get('children'); if (xt.length) { var _t = T.x, Z = T.y; C(at, function(et, bt) { if ( P >= et.x + _t && P <= et.x + et.width + _t && b >= et.y + Z && b <= et.height + et.y + Z ) return (M = { clickedItem: xt[bt], clickedLegend: T }), !1; }); } }); }), M ); } var l = s.chart, u = Me(n, l), c = u.x, f = u.y, h = o(c, f); if (h && h.clickedLegend.clickable !== !1) { var v = h.clickedItem, g = h.clickedLegend; if (g.onClick) (n.clickedItem = v), g.onClick(n); else if (!g.custom) { var p = v.get('checked'), m = v.get('dataValue'), d = g.filteredVals, y = g.field, x = g.selectedMode, S = x === 'single'; S ? l.filter(y, function(P) { return P === m; }) : (p ? d.push(m) : Wt(d, m), l.filter(y, function(P) { return d.indexOf(P) === -1; })), l.repaint(); } } }), (this.legendCfg = {}), (this.enable = !0), (this.position = 'top'), _(this, a); var t = this.chart; (this.canvasDom = t.get('canvas').get('el')), this.clear(); } var r = i.prototype; return ( (r.addLegend = function(e, t, n) { var s = this, o = s.legendCfg, l = e.field, u = o[l]; if (u === !1) return null; if (u && u.custom) s.addCustomLegend(l); else { var c = o.position || s.position; u && u.position && (c = u.position), e.isCategory && s._addCategoryLegend(e, t, c, n); } }), (r.addCustomLegend = function(e) { var t = this, n = t.legendCfg; e && n[e] && (n = n[e]); var s = n.position || t.position, o = t.legends; o[s] = o[s] || []; var l = n.items; if (!l) return null; var u = t.container; C(l, function(f) { Tt(f.marker) ? (f.marker.radius = f.marker.radius || Qa) : (f.marker = { symbol: f.marker || 'circle', fill: f.fill, radius: Qa }), (f.checked = w(f.checked) ? !0 : f.checked), (f.name = f.name || f.value); }); var c = new Qe( z({}, D.legend[s], n, { maxLength: t._getMaxLength(s), items: l, parent: u }), ); o[s].push(c); }), (r.clear = function() { var e = this.legends; C(e, function(t) { C(t, function(n) { n.clear(); }); }), (this.legends = {}), this.unBindEvents(); }), (r._isFiltered = function(e, t, n) { var s = !1; return ( C(t, function(o) { if (((s = s || e.getText(o) === e.getText(n)), s)) return !1; }), s ); }), (r._getMaxLength = function(e) { var t = this.chart, n = q(t.get('appendPadding')); return e === 'right' || e === 'left' ? t.get('height') - (n[0] + n[2]) : t.get('width') - (n[1] + n[3]); }), (r._addCategoryLegend = function(e, t, n, s) { var o = this, l = o.legendCfg, u = o.legends, c = o.container, f = o.chart, h = e.field; u[n] = u[n] || []; var v = 'circle'; l[h] && l[h].marker ? (v = l[h].marker) : l.marker && (v = l.marker), C(t, function(d) { Tt(v) ? _(d.marker, v) : (d.marker.symbol = v), s && (d.checked = !o._isFiltered(e, s, d.dataValue)); }); var g = f.get('legendItems'); g[h] = t; var p = z({}, D.legend[n], l[h] || l, { maxLength: o._getMaxLength(n), items: t, field: h, filteredVals: s, parent: c, }); p.showTitle && z(p, { title: e.alias || e.field }); var m = new Qe(p); return u[n].push(m), m; }), (r._alignLegend = function(e, t, n) { var s = this, o = s.plotRange, l = o.tl, u = o.bl, c = s.chart, f = e.offsetX || 0, h = e.offsetY || 0, v = c.get('width'), g = c.get('height'), p = q(c.get('appendPadding')), m = e.getHeight(), d = e.getWidth(), y = 0, x = 0; if (n === 'left' || n === 'right') { var S = e.verticalAlign || 'middle', P = Math.abs(l.y - u.y); (y = n === 'left' ? p[3] : v - d - p[1]), (x = (P - m) / 2 + l.y), S === 'top' ? (x = l.y) : S === 'bottom' && (x = u.y - m), t && (x = t.get('y') - m - Ka); } else { var b = e.align || 'left'; if ( ((y = p[3]), b === 'center' ? (y = v / 2 - d / 2) : b === 'right' && (y = v - (d + p[1])), (x = n === 'top' ? p[0] + Math.abs(e.container.getBBox().minY) : g - m), t) ) { var M = t.getWidth(); y = t.x + M + Ka; } } n === 'bottom' && h > 0 && (h = 0), n === 'right' && f > 0 && (f = 0), e.moveTo(y + f, x + h); }), (r.alignLegends = function() { var e = this, t = e.legends; return ( C(t, function(n, s) { C(n, function(o, l) { var u = n[l - 1]; e._alignLegend(o, u, s); }); }), e ); }), (r.bindEvents = function() { var e = this.legendCfg, t = e.triggerOn || 'touchstart'; wr(this.canvasDom, t, this.handleEvent); }), (r.unBindEvents = function() { var e = this.legendCfg, t = e.triggerOn || 'touchstart'; Mr(this.canvasDom, t, this.handleEvent); }), i ); })(); function ti(i) { var r = new yl({ container: i.get('backPlot'), plotRange: i.get('plotRange'), chart: i, }); i.set('legendController', r), (i.legend = function(a, e) { var t = r.legendCfg; return ( (r.enable = !0), hr(a) ? ((r.enable = a), (t = e || {})) : j(a) ? (t = a) : (t[a] = e), (r.legendCfg = t), this ); }); } function ei(i) { var r = i.get('legendController'); if (!r.enable) return null; var a = r.legendCfg; if (a && a.custom) r.addCustomLegend(); else { var e = i.getLegendItems(), t = i.get('scales'), n = i.get('filters'); C(e, function(l, u) { var c = t[u], f = c.values, h; n && n[u] ? (h = f.filter(function(v) { return !n[u](v); })) : (h = []), r.addLegend(c, l, h); }); } a && a.clickable !== !1 && r.bindEvents(); var s = r.legends, o = { top: 0, right: 0, bottom: 0, left: 0 }; C(s, function(l, u) { var c = 0; C(l, function(f) { var h = f.getWidth(), v = f.getHeight(); u === 'top' || u === 'bottom' ? ((c = Math.max(c, v)), f.offsetY > 0 && (c += f.offsetY)) : ((c = Math.max(c, h)), f.offsetX > 0 && (c += f.offsetX)); }), (o[u] = c + ml(u, i.get('appendPadding'))); }), i.set('legendRange', o); } function ri(i) { var r = i.get('legendController'); r.alignLegends(); } function ai(i) { var r = i.get('legendController'); r.clear(), i.set('legendRange', null); } var xl = { init: ti, beforeGeomDraw: ei, afterGeomDraw: ri, clearInner: ai }, _l = Object.freeze({ __proto__: null, init: ti, beforeGeomDraw: ei, afterGeomDraw: ri, clearInner: ai, default: xl, }), tr = typeof performance == 'object' && performance.now ? performance : Date, Sl = (function() { function i() { (this.anims = []), (this.time = null), (this.playing = !1), (this.canvas = []); } var r = i.prototype; return ( (r.play = function() { var e = this; (e.time = tr.now()), (e.playing = !0); function t() { e.playing && (Ue(t), e.update()); } Ue(t); }), (r.stop = function() { (this.playing = !1), (this.time = null), (this.canvas = []); }), (r.pushAnim = function(e) { if ((this.anims.push(e), this.playing)) return; this.play(); }), (r.update = function() { var e = tr.now(); if (((this.canvas = []), !this.anims.length)) { this.stop(); return; } for (var t = 0; t < this.anims.length; t++) { var n = this.anims[t]; if (e < n.startTime || n.hasEnded) continue; var s = n.shape; if (s.get('destroyed')) { this.anims.splice(t, 1), t--; continue; } var o = n.startState, l = n.endState, u = n.interpolate, c = n.duration; e >= n.startTime && !n.hasStarted && ((n.hasStarted = !0), n.onStart && n.onStart()); var f = (e - n.startTime) / c; if (((f = Math.max(0, Math.min(f, 1))), (f = n.easing(f)), n.onFrame)) n.onFrame(f); else for (var h in u) { var v = u[h], g = v(f), p = void 0; if (h === 'points') { p = []; for ( var m = Math.max(o.points.length, l.points.length), d = 0; d < m; d += 2 ) p.push({ x: g[d], y: g[d + 1] }); } else p = g; (s._attrs.attrs[h] = p), (s._attrs.bbox = null); } var y = s.get('canvas'); this.canvas.indexOf(y) === -1 && this.canvas.push(y), n.onUpdate && n.onUpdate(f), e >= n.endTime && !n.hasEnded && ((n.hasEnded = !0), n.onEnd && n.onEnd()), f === 1 && (this.anims.splice(t, 1), t--); } this.canvas.map(function(x) { return x.draw(), x; }), (this.time = tr.now()); }), i ); })(); function ii(i) { return i; } function Cl(i) { return i * i; } function Pl(i) { return i * (2 - i); } function wl(i) { return (i *= 2) < 1 ? 0.5 * i * i : -0.5 * (--i * (i - 2) - 1); } function Ml(i) { return i * i * i; } function bl(i) { return --i * i * i + 1; } function Tl(i) { return (i *= 2) < 1 ? 0.5 * i * i * i : 0.5 * ((i -= 2) * i * i + 2); } function Dl(i) { var r, a = 0.1, e = 0.4; return i === 0 ? 0 : i === 1 ? 1 : (!a || a < 1 ? ((a = 1), (r = e / 4)) : (r = (e / (2 * Math.PI)) * Math.asin(1 / a)), -(a * Math.pow(2, 10 * (i -= 1)) * Math.sin(((i - r) * (2 * Math.PI)) / e))); } function El(i) { var r, a = 0.1, e = 0.4; return i === 0 ? 0 : i === 1 ? 1 : (!a || a < 1 ? ((a = 1), (r = e / 4)) : (r = (e / (2 * Math.PI)) * Math.asin(1 / a)), a * Math.pow(2, -10 * i) * Math.sin(((i - r) * (2 * Math.PI)) / e) + 1); } function Al(i) { var r, a = 0.1, e = 0.4; return i === 0 ? 0 : i === 1 ? 1 : (!a || a < 1 ? ((a = 1), (r = e / 4)) : (r = (e / (2 * Math.PI)) * Math.asin(1 / a)), (i *= 2) < 1 ? -0.5 * (a * Math.pow(2, 10 * (i -= 1)) * Math.sin(((i - r) * (2 * Math.PI)) / e)) : a * Math.pow(2, -10 * (i -= 1)) * Math.sin(((i - r) * (2 * Math.PI)) / e) * 0.5 + 1); } function kl(i) { var r = 1.70158; return i * i * ((r + 1) * i - r); } function Il(i) { var r = 1.70158; return (i = i - 1) * i * ((r + 1) * i + r) + 1; } function Ol(i) { var r = 1.70158 * 1.525; return (i *= 2) < 1 ? 0.5 * (i * i * ((r + 1) * i - r)) : 0.5 * ((i -= 2) * i * ((r + 1) * i + r) + 2); } function ni(i) { return 1 - er(1 - i); } function er(i) { return (i /= 1) < 1 / 2.75 ? 7.5625 * i * i : i < 2 / 2.75 ? 7.5625 * (i -= 1.5 / 2.75) * i + 0.75 : i < 2.5 / 2.75 ? 7.5625 * (i -= 2.25 / 2.75) * i + 0.9375 : 7.5625 * (i -= 2.625 / 2.75) * i + 0.984375; } function Rl(i) { return i < 0.5 ? ni(i * 2) * 0.5 : er(i * 2 - 1) * 0.5 + 0.5; } var Nl = Object.freeze({ __proto__: null, linear: ii, quadraticIn: Cl, quadraticOut: Pl, quadraticInOut: wl, cubicIn: Ml, cubicOut: bl, cubicInOut: Tl, elasticIn: Dl, elasticOut: El, elasticInOut: Al, backIn: kl, backOut: Il, backInOut: Ol, bounceIn: ni, bounceOut: er, bounceInOut: Rl, }); function si(i) { for (var r = [], a = 0, e = i.length; a < e; a++) i[a] && (r.push(i[a].x), r.push(i[a].y)); return r; } function oi(i, r) { return ( (i = +i), (r -= i), function(a) { return i + r * a; } ); } function li(i, r) { var a = r ? r.length : 0, e = i ? Math.min(a, i.length) : 0, t = new Array(e), n = new Array(a), s; for (s = 0; s < e; ++s) t[s] = oi(i[s], r[s]); for (; s < a; ++s) n[s] = r[s]; return function(o) { for (s = 0; s < e; ++s) n[s] = t[s](o); return n; }; } var Yl = (function() { function i(a, e, t) { (this.hasStarted = !1), (this.hasEnded = !1), (this.shape = a), (this.source = e), (this.timeline = t), (this.animate = null); } var r = i.prototype; return ( (r.to = function(e) { e === void 0 && (e = {}); var t = e.delay || 0, n = e.attrs || {}, s = e.duration || 1e3, o; typeof e.easing == 'function' ? (o = e.easing) : (o = Nl[e.easing] || ii); var l = { shape: this.shape, startTime: this.timeline.time + t, duration: s, easing: o, }, u = {}; for (var c in n) { var f = this.source[c], h = n[c]; c === 'points' ? ((f = si(f)), (h = si(h)), (u.points = li(f, h)), (this.source.points = f), (n.points = h)) : c === 'matrix' ? (u.matrix = li(f, h)) : (u[c] = oi(f, h)); } return ( (l.interpolate = u), (l.startState = this.source), (l.endState = n), (l.endTime = l.startTime + s), this.timeline.pushAnim(l), (this.animate = l), this ); }), (r.onFrame = function(e) { return ( this.animate && (this.animate.onFrame = function(t) { e(t); }), this ); }), (r.onStart = function(e) { return ( this.animate && (this.animate.onStart = function() { e(); }), this ); }), (r.onUpdate = function(e) { return ( this.animate && (this.animate.onUpdate = function(t) { e(t); }), this ); }), (r.onEnd = function(e) { return ( this.animate && (this.animate.onEnd = function() { e(); }), this ); }), i ); })(), Fl = { appear: { duration: 450, easing: 'quadraticOut' }, update: { duration: 300, easing: 'quadraticOut' }, enter: { duration: 300, easing: 'quadraticOut' }, leave: { duration: 350, easing: 'quadraticIn' }, }, yt = { defaultCfg: {}, Action: {}, getAnimation: function(r, a, e) { var t = this.defaultCfg[r]; if (t) { var n = t[e]; if (F(n)) return n(a); } return !1; }, getAnimateCfg: function(r, a) { var e = Fl[a], t = this.defaultCfg[r]; return t && t.cfg && t.cfg[a] ? z({}, e, t.cfg[a]) : e; }, registerAnimation: function(r, a) { var e; this.Action || (this.Action = {}), (this.Action = Zt({}, this.Action, ((e = {}), (e[r] = a), e))); }, }; function Ll(i) { var r = i.start, a = i.end; return { start: r, end: a, width: a.x - r.x, height: Math.abs(a.y - r.y) }; } function ui(i, r, a) { var e; i.apply(r); var t = r[0], n = r[1]; if (a === 'x') { i.transform([ ['t', t, n], ['s', 0.01, 1], ['t', -t, -n], ]); var s = i.getMatrix(); e = G.transform(s, [ ['t', t, n], ['s', 100, 1], ['t', -t, -n], ]); } else if (a === 'y') { i.transform([ ['t', t, n], ['s', 1, 0.01], ['t', -t, -n], ]); var o = i.getMatrix(); e = G.transform(o, [ ['t', t, n], ['s', 1, 100], ['t', -t, -n], ]); } else if (a === 'xy') { i.transform([ ['t', t, n], ['s', 0.01, 0.01], ['t', -t, -n], ]); var l = i.getMatrix(); e = G.transform(l, [ ['t', t, n], ['s', 100, 100], ['t', -t, -n], ]); } return e; } function Bl(i, r, a) { var e = {}; return ( i.delay && (e.delay = F(i.delay) ? i.delay(r, a) : i.delay), (e.easing = i.easing), (e.duration = i.duration), (e.delay = i.delay), e ); } function ve(i, r, a, e) { var t = i._id, n = i.get('index'), s = Bl(a, n, t), o = s.easing, l = s.delay, u = s.duration, c = i.animate().to({ attrs: r, duration: u, delay: l, easing: o }); e && c.onEnd(function() { e(); }); } function Ht(i, r) { var a = w(i.attr('fillOpacity')) ? 1 : i.attr('fillOpacity'), e = w(i.attr('strokeOpacity')) ? 1 : i.attr('strokeOpacity'); i.attr('fillOpacity', 0), i.attr('strokeOpacity', 0); var t = { fillOpacity: a, strokeOpacity: e }; ve(i, t, r); } var zl = Object.freeze({ __proto__: null, fadeIn: Ht }); function rr(i, r, a, e, t) { var n = Ll(a), s = n.start, o = n.end, l = n.width, u = n.height, c, f, h = new R.Rect({ attrs: { x: s.x, y: o.y, width: l, height: u } }); t === 'y' ? ((c = s.x + l / 2), (f = e.y < s.y ? e.y : s.y)) : t === 'x' ? ((c = e.x > s.x ? e.x : s.x), (f = s.y + u / 2)) : t === 'xy' && (a.isPolar ? ((c = a.center.x), (f = a.center.y)) : ((c = (s.x + o.x) / 2), (f = (s.y + o.y) / 2))); var v = ui(h, [c, f], t); (h.isClip = !0), (h.endState = { matrix: v }), h.set('canvas', i.get('canvas')), i.attr('clip', h); var g = function() { i.attr('clip', null), h.remove(!0); }; ve(h, h.endState, r, g); } function ar(i, r, a) { for (var e = i.get('children'), t, n, s, o = 0, l = e.length; o < l; o++) { var u = e[o], c = u.getBBox(); (t = (c.minX + c.maxX) / 2), (n = (c.minY + c.maxY) / 2), (s = ui(u, [t, n], a)), ve(u, { matrix: s }, r); } } function ci(i, r, a, e) { rr(i, r, a, e, 'x'); } function fi(i, r, a, e) { rr(i, r, a, e, 'y'); } function Ut(i, r, a, e) { rr(i, r, a, e, 'xy'); } function Xl(i, r) { ar(i, r, 'x'); } function Gl(i, r) { ar(i, r, 'y'); } function hi(i, r) { ar(i, r, 'xy'); } function Rt(i, r, a) { var e = $e(a); e.set('canvas', i.get('canvas')), i.attr('clip', e); var t = function() { i.attr('clip', null), e.remove(!0); }, n = {}; if (a.isPolar) { var s = a.startAngle, o = a.endAngle; (n.endAngle = o), e.attr('endAngle', s); } else { var l = a.start, u = a.end, c = Math.abs(l.x - u.x), f = Math.abs(l.y - u.y); a.isTransposed ? (e.attr('height', 0), (n.height = f)) : (e.attr('width', 0), (n.width = c)); } ve(e, n, r, t); } var Hl = Object.freeze({ __proto__: null, groupWaveIn: Rt, groupScaleInX: ci, groupScaleInY: fi, groupScaleInXY: Ut, shapesScaleInX: Xl, shapesScaleInY: Gl, shapesScaleInXY: hi, }), ge; (Ge.prototype.animate = function() { var i = _({}, this.get('attrs')); return new Yl(this, i, ge); }), (H.prototype.animate = function(i) { return this.set('animate', i), this; }), (yt.Action = zl), (yt.defaultCfg = { interval: { enter: function(r) { return r.isPolar && r.transposed ? function(a) { a.set('zIndex', -1); var e = a.get('parent'); e.sort(); } : Ht; }, }, area: { enter: function(r) { return r.isPolar ? null : Ht; }, }, line: { enter: function(r) { return r.isPolar ? null : Ht; }, }, path: { enter: function(r) { return r.isPolar ? null : Ht; }, }, }); var vi = { line: function(r) { return r.isPolar ? Ut : Rt; }, area: function(r) { return r.isPolar ? Ut : Rt; }, path: function(r) { return r.isPolar ? Ut : Rt; }, point: function() { return hi; }, interval: function(r) { var a; return ( r.isPolar ? ((a = Ut), r.transposed && (a = Rt)) : (a = r.transposed ? ci : fi), a ); }, schema: function() { return Rt; }, }; function Ul(i, r) { var a = {}; for (var e in r) ((X(i[e]) && i[e] !== r[e]) || (k(i[e]) && JSON.stringify(i[e]) !== JSON.stringify(r[e]))) && (a[e] = r[e]); return a; } function jl(i, r, a) { var e = i.get('type'), t = 'geom' + a + '-' + e, n = i.getXScale(), s = i.getYScale(), o = n.field || 'x', l = s.field || 'y', u = r[l], c; n.isIdentity ? (c = n.value) : (c = r[o]), e === 'interval' || e === 'schema' ? (t += '-' + c) : e === 'line' || e === 'area' || e === 'path' ? (t += '-' + e) : (t += n.isCategory ? '-' + c : '-' + c + '-' + u); var f = i._getGroupScales(); return ( C(f, function(h) { var v = h.field; h.type !== 'identity' && (t += '-' + r[v]); }), t ); } function Vl(i, r, a) { var e = []; return ( C(i, function(t, n) { var s = t.get('container'), o = s.get('children'), l = t.get('type'), u = w(t.get('animateCfg')) ? ir(l, r) : t.get('animateCfg'); u !== !1 && C(o, function(c, f) { c.get('className') === l && ((c._id = jl(t, c.get('origin')._origin, n)), c.set('coord', a), c.set('animateCfg', u), c.set('index', f), e.push(c)); }), t.set('shapes', o); }), e ); } function Wl(i) { for (var r = {}, a = 0, e = i.length; a < e; a++) { var t = i[a]; if (!t._id || t.isClip) continue; var n = t._id; r[n] = { _id: n, type: t.get('type'), attrs: _({}, t._attrs.attrs), className: t.get('className'), geomType: t.get('className'), index: t.get('index'), coord: t.get('coord'), animateCfg: t.get('animateCfg'), }; } return r; } function jt(i, r, a, e) { var t; return F(e) ? (t = e) : B(e) ? (t = yt.Action[e]) : (t = yt.getAnimation(i, r, a)), t; } function pe(i, r, a) { if (a === !1 || (j(a) && a[r] === !1)) return !1; var e = yt.getAnimateCfg(i, r); return a && a[r] ? z({}, e, a[r]) : e; } function ql(i, r, a) { var e, t, n = [], s = []; C(r, function(o) { var l = i[o._id]; l ? (o.set('cacheShape', l), n.push(o), delete i[o._id]) : s.push(o); }), C(i, function(o) { var l = o.className, u = o.coord, c = o._id, f = o.attrs, h = o.index, v = o.type; if (((t = pe(l, 'leave', o.animateCfg)), t === !1)) return !0; if (((e = jt(l, u, 'leave', t.animation)), F(e))) { var g = a.addShape(v, { attrs: f, index: h, canvas: a, className: l }); (g._id = c), e(g, t, u); } }), C(n, function(o) { var l = o.get('className'); if (((t = pe(l, 'update', o.get('animateCfg'))), t === !1)) return !0; var u = o.get('coord'), c = o.get('cacheShape').attrs, f = Ul(c, o._attrs.attrs); Object.keys(f).length && ((e = jt(l, u, 'update', t.animation)), F(e) ? e(o, t, u) : (o.attr(c), o .animate() .to({ attrs: f, duration: t.duration, easing: t.easing, delay: t.delay }) .onEnd(function() { o.set('cacheShape', null); }))); }), C(s, function(o) { var l = o.get('className'), u = o.get('coord'); if (((t = pe(l, 'enter', o.get('animateCfg'))), t === !1)) return !0; if (((e = jt(l, u, 'enter', t.animation)), F(e))) if (l === 'interval' && u.isPolar && u.transposed) { var c = o.get('index'), f = n[c - 1]; e(o, t, f); } else e(o, t, u); }); } function ir(i, r) { if (!i) return null; var a = r.get('animate'); return ( i.indexOf('guide-tag') > -1 && (i = 'guide-tag'), j(a) ? a[i] : a === !1 ? !1 : null ); } function gi() { (ge = new Sl()), ge.play(); } function pi(i) { if (i.get('animate') === !1) return; var r = i.get('isUpdate'), a = i.get('canvas'), e = i.get('coord'), t = i.get('geoms'), n = a.get('caches') || []; n.length === 0 && (r = !1); var s = Vl(t, i, e), o = i.get('axisController'), l = o.frontPlot, u = o.backPlot, c = l.get('children').concat(u.get('children')), f = []; i.get('guideController') && (f = i.get('guideController').guideShapes); var h = []; if ( (c.concat(f).forEach(function(p) { var m = p.get('className'), d = ir(m, i); p.set('coord', e), p.set('animateCfg', d), h.push(p), s.push(p); }), a.set('caches', Wl(s)), r) ) ql(n, s, a); else { var v, g; C(t, function(p) { var m = p.get('type'), d = w(p.get('animateCfg')) ? ir(m, i) : p.get('animateCfg'); if (d !== !1) { if (((v = pe(m, 'appear', d)), (g = jt(m, e, 'appear', v.animation)), F(g))) { var y = p.get('shapes'); C(y, function(b) { g(b, v, e); }); } else if (vi[m]) { g = Hl[v.animation] || vi[m](e); var x = p.getYScale(), S = e.convertPoint({ x: 0, y: x.scale(p.getYMinValue()) }), P = p.get('container'); g && g(P, v, e, S); } } }), C(h, function(p) { var m = p.get('animateCfg'), d = p.get('className'); if (m && m.appear) { var y = yt.getAnimateCfg(d, 'appear'), x = z({}, y, m.appear), S = jt(d, e, 'appear', x.animation); F(S) && S(p, x, e); } }); } } function di() { ge.stop(); } var $l = { afterCanvasInit: gi, beforeCanvasDraw: pi, afterCanvasDestroyed: di }, Zl = Object.freeze({ __proto__: null, afterCanvasInit: gi, beforeCanvasDraw: pi, afterCanvasDestroyed: di, default: $l, }); (H._Interactions = {}), (H.registerInteraction = function(i, r) { H._Interactions[i] = r; }), (H.getInteraction = function(i) { return H._Interactions[i]; }), (H.prototype.interaction = function(i, r) { var a = this._interactions || {}; a[i] && a[i].destroy(); var e = H.getInteraction(i), t = new e(r, this); return (a[i] = t), (this._interactions = a), this; }), (H.prototype.clearInteraction = function(i) { var r = this._interactions; return r ? (i ? (r[i] && r[i].destroy(), delete r[i]) : C(r, function(a, e) { a.destroy(), delete r[e]; }), this) : void 0; }); function Jl(i, r) { if (i.length !== r.length) return !1; var a = i.length - 1; return i[0] === r[0] && i[a] === r[a]; } var nr = [0, 1], Kl = (function() { function i(a) { var e = this; N(this, 'chart', null), N(this, 'values', null), N(this, 'range', nr), N(this, 'startRange', nr), N(this, 'minCount', 10), N(this, '_afterinit', function() { var t = e.getPinchScale(), n = [].concat(t.values); (e.values = n), e.minScale || (e.minScale = e.minCount / n.length), e.range !== nr && (e.updateRange(e.range), e.updateTicks()); }), N(this, '_afterdatachange', function() { e.updateRange(e.range); }), (this.chart = a), this._initEvent(a); } var r = i.prototype; return ( (r._initEvent = function(e) { e.on(Te, this._afterinit), e.on(Ft, this._afterdatachange); }), (r.getPinchScale = function() { var e = this.chart, t = e.getXScale(); return t; }), (r.getFollowScale = function() { var e = this.chart, t = e.getYScales() || []; return t[0]; }), (r.start = function() { var e = this.range, t = this.getPinchScale(), n = e[0], s = e[1]; (this.startRange = [n, s]), (this.lastTickCount = t.tickCount); }), (r.doZoom = function(e, t, n) { var s = this.startRange, o = this.minScale, l = s[0], u = s[1], c = 1 - n, f = u - l, h = f * c, v = h * e, g = h * t, p = Math.max(0, l - v), m = Math.min(1, u + g), d = [p, m]; if (m - p < o) return; this.updateRange(d); }), (r.doMove = function(e) { if (!e) return; var t = this.startRange, n = t[0], s = t[1], o = s - n, l = o * e, u = n - l, c = s - l, f; u < 0 ? (f = [0, o]) : c > 1 ? (f = [1 - o, 1]) : (f = [u, c]), this.updateRange(f); }), (r.updateRange = function(e) { var t = this.values, n = e[0], s = e[1]; (n = Math.max(0, n)), (s = Math.min(1, s)), (this.range = [n, s]); var o = t.length, l = n * o, u = s * o, c = t.slice(l, u); this.repaint(c); }), (r.repaint = function(e) { var t = this.chart, n = this.getPinchScale(), s = n.values, o = n.ticks; if (Jl(s, e)) return; this.updateScale(n, { ticks: o, values: e }), this.updateFollowScale(n, e), t.repaint(); }), (r.updateFollowScale = function(e, t) { var n = this.chart, s = this.getFollowScale(), o = e.field, l = e.type, u = s.field, c = [], f = {}; t.forEach(function(m) { f[m] = !0; }); var h = n.get('data'); h.forEach(function(m) { if (l === 'timeCat') { var d = Yt(m[o]); f[d] && c.push(m[u]); } }); var v = Ce(c), g = v.min, p = v.max; this.updateScale(s, { min: g, max: p, nice: !0 }); }), (r.updateScale = function(e, t) { if (!e) return; e.change(t); }), (r.updateTicks = function() { var e = this.chart, t = this.values, n = this.getPinchScale(), s = n.values, o = n.tickCount, l = Math.round((o * t.length) / s.length), u = Nr('cat'), c = u({ tickCount: l, values: t }); this.updateScale(n, { ticks: c, values: s }), e.repaint(); }), (r.destroy = function() { var e = this.chart; e.off(Te, this._afterinit), e.off(Ft, this._afterdatachange); }), i ); })(), mi = (function() { var i = r.prototype; (i.getDefaultCfg = function() { return {}; }), (i.getInteractionContext = function(e) { var t = e.get('interactionContext'); return t || ((t = new Kl(e)), e.set('interactionContext', t), t); }); function r(a, e) { var t = this; N(this, 'type', ''), N(this, 'startEvent', 'touchstart'), N(this, 'processEvent', 'touchmove'), N(this, 'endEvent', 'touchend'), N(this, 'resetEvent', null), N(this, 'context', null), N(this, '_start', function(s) { t.preStart && t.preStart(s), t.start(s), t.onStart && t.onStart(s); }), N(this, '_process', function(s) { t.preProcess && t.preProcess(s), t.process(s), t.onProcess && t.onProcess(s); }), N(this, '_end', function(s) { t.preEnd && t.preEnd(s), t.end(s), t.onEnd && t.onEnd(s); }), N(this, '_reset', function(s) { t.preReset && t.preReset(s), t.reset(s), t.onReset && t.onReset(s); }), _(this, this.getDefaultCfg(), a), (this.context = this.getInteractionContext(e)), (this.chart = e); var n = this.range; n && (this.context.range = n), this._bindEvents(e); } return ( (i._bindEvents = function(e) { var t = this.startEvent, n = this.processEvent, s = this.endEvent, o = this.resetEvent, l = e.get('canvas'); l.on(t, this._start), l.on(n, this._process), l.on(s, this._end), l.on(o, this._reset); }), (i._clearEvents = function() { var e = this.chart, t = this.startEvent, n = this.processEvent, s = this.endEvent, o = this.resetEvent, l = e.get('canvas'); l.off(t, this._start), l.off(n, this._process), l.off(s, this._end), l.off(o, this._start); }), (i.start = function() {}), (i.process = function() {}), (i.end = function() {}), (i.reset = function() {}), (i.destroy = function() { this.context.destroy(), this._clearEvents(); }), r ); })(), Ql = (function(i) { E(r, i); function r() { return i.apply(this, arguments) || this; } var a = r.prototype; return ( (a.getDefaultCfg = function() { return { type: 'pan', startEvent: 'panstart', processEvent: 'pan', endEvent: 'panend', }; }), (a.start = function() { var t = this.context; t.start(); }), (a.process = function(t) { var n = t.direction, s = t.deltaX; if (n === 'up' || n === 'down') return; t.preventDefault && t.preventDefault(); var o = this.context, l = o.chart, u = l.get('coord'), c = u.start, f = u.end, h = f.x - c.x, v = s / h; o.doMove(v); }), r ); })(mi), tu = (function(i) { E(a, i); var r = a.prototype; r.getDefaultCfg = function() { return { type: 'pinch', startEvent: 'pinchstart', processEvent: 'pinch', endEvent: 'pinchend', }; }; function a(e, t) { var n; n = i.call(this, e, t) || this; var s = Jt(n), o = s.context; return _(o, e), n; } return ( (r.start = function() { var t = this.context; t.start(); }), (r.process = function(t) { t.preventDefault && t.preventDefault(); var n = t.zoom, s = t.center, o = this.context, l = o.chart, u = l.get('coord'), c = u.start, f = u.end, h = f.x - c.x, v = Math.abs(s.x - c.x), g = Math.abs(f.x - s.x), p = v / h, m = g / h; o.doZoom(p, m, n); }), (r.end = function() { var t = this.context; t.updateTicks(); }), a ); })(mi); H.registerInteraction('pan', Ql), H.registerInteraction('pinch', tu); var yi = { Marker: Ke }; H.plugins.register([vl, _l, dl, Zl]); var eu = { Component: yi, Global: D, Chart: H, Shape: Y, G: Ta, Util: Tr, Helper: Da, track: Aa, Animate: yt, }; (J.Animate = yt), (J.Chart = H), (J.Component = yi), (J.G = Ta), (J.Global = D), (J.Helper = Da), (J.Shape = Y), (J.Util = Tr), (J.default = eu), (J.track = Aa), Object.defineProperty(J, '__esModule', { value: !0 }); }); }.call(this, Pi('yLpj'))); }, }, ]); //# sourceMappingURL=0.js.map