34860 lines
1.4 MiB
34860 lines
1.4 MiB
/*
|
|
* jscharting.js v3.0.2.20210127
|
|
* (c) 2009-2021 Corporate Web Solutions Ltd.
|
|
* All client side / JavaScript code may not be used in any way without a valid JSCharting license.
|
|
* License holder usage is governed by the license.txt terms included with the distribution.
|
|
* To license JSCharting for your own use, please visit jscharting.com
|
|
*/
|
|
"use strict";
|
|
(function (aa, K) {
|
|
"object" === typeof exports && "undefined" !== typeof module ? K(exports) : "function" === typeof define && define.amd ? define(["exports"], K) : ((aa = aa || self), K((aa.JSC = {})));
|
|
})(this, function (aa) {
|
|
function K(a, c) {
|
|
function b() {
|
|
this.constructor = a;
|
|
}
|
|
nj(a, c);
|
|
a.prototype = null === c ? Object.create(c) : ((b.prototype = c.prototype), new b());
|
|
}
|
|
function Eb(a, c, b, d) {
|
|
var e = arguments.length,
|
|
f = 3 > e ? c : null === d ? (d = Object.getOwnPropertyDescriptor(c, b)) : d,
|
|
g;
|
|
if ("object" === typeof Reflect && "function" === typeof Reflect.decorate) f = Reflect.decorate(a, c, b, d);
|
|
else for (var h = a.length - 1; 0 <= h; h--) if ((g = a[h])) f = (3 > e ? g(f) : 3 < e ? g(c, b, f) : g(c, b)) || f;
|
|
return 3 < e && f && Object.defineProperty(c, b, f), f;
|
|
}
|
|
function ya(a) {
|
|
var c = "function" === typeof Symbol && a[Symbol.iterator],
|
|
b = 0;
|
|
return c
|
|
? c.call(a)
|
|
: {
|
|
next: function () {
|
|
a && b >= a.length && (a = void 0);
|
|
return { value: a && a[b++], done: !a };
|
|
},
|
|
};
|
|
}
|
|
function G(a, c) {
|
|
var b = "function" === typeof Symbol && a[Symbol.iterator];
|
|
if (!b) return a;
|
|
a = b.call(a);
|
|
var d,
|
|
e = [];
|
|
try {
|
|
for (; (void 0 === c || 0 < c--) && !(d = a.next()).done; ) e.push(d.value);
|
|
} catch (g) {
|
|
var f = { error: g };
|
|
} finally {
|
|
try {
|
|
d && !d.done && (b = a["return"]) && b.call(a);
|
|
} finally {
|
|
if (f) throw f.error;
|
|
}
|
|
}
|
|
return e;
|
|
}
|
|
function H() {
|
|
for (var a = [], c = 0; c < arguments.length; c++) a = a.concat(G(arguments[c]));
|
|
return a;
|
|
}
|
|
function t(a) {
|
|
return void 0 !== a;
|
|
}
|
|
function J(a, c) {
|
|
return ou.call(a, c);
|
|
}
|
|
function pb(a, c) {
|
|
c = a && a.indexOf(c);
|
|
-1 < c && a.splice(c, 1);
|
|
return c;
|
|
}
|
|
function C(a, c) {
|
|
if (c) {
|
|
c = c.split(".");
|
|
for (var b = 0; void 0 !== a && b < c.length; b++) a = a[c[b]];
|
|
}
|
|
return a;
|
|
}
|
|
function N(a, c) {
|
|
if (c) for (var b = 0; void 0 !== a && b < c.length; b++) a = a[c[b]];
|
|
return a;
|
|
}
|
|
function an(a) {
|
|
return null === a;
|
|
}
|
|
function I(a) {
|
|
var c = typeof a;
|
|
if ("undefined" !== c) {
|
|
if ("boolean" === c) return "boolean";
|
|
if ("number" === c) return "number";
|
|
if ("function" === c) return "function";
|
|
if (a && a.pop) return "array";
|
|
if ("string" === c) return "string";
|
|
if (null === a) return "null";
|
|
if ("object" === c) return a && a.getUTCMilliseconds ? "date" : "object";
|
|
}
|
|
return "undefined";
|
|
}
|
|
function ud(a) {
|
|
return null == a ? (void 0 === a ? "[object Undefined]" : "[object Null]") : pu.call(a);
|
|
}
|
|
function bn(a, c) {
|
|
return function (b) {
|
|
return a(c(b));
|
|
};
|
|
}
|
|
function Pc(a) {
|
|
return null != a && "object" == typeof a;
|
|
}
|
|
function Ke(a) {
|
|
return null == a ? "" : Mf(a);
|
|
}
|
|
function Wg(a) {
|
|
if (!Pc(a) || "[object Object]" != ud(a)) return !1;
|
|
a = oj(a);
|
|
if (null === a) return !0;
|
|
a = qb.call(a, "constructor") && a.constructor;
|
|
return "function" == typeof a && a instanceof a && Xg.call(a) == qu;
|
|
}
|
|
function pj(a, c) {
|
|
for (var b = -1, d = null == a ? 0 : a.length, e = 0, f = []; ++b < d; ) {
|
|
var g = a[b];
|
|
c(g, b, a) && (f[e++] = g);
|
|
}
|
|
return f;
|
|
}
|
|
function qj(a, c) {
|
|
for (var b = -1, d = Array(a); ++b < a; ) d[b] = c(b);
|
|
return d;
|
|
}
|
|
function cn(a) {
|
|
return Pc(a) && "[object Arguments]" == ud(a);
|
|
}
|
|
function ru() {
|
|
return !1;
|
|
}
|
|
function Yg(a, c) {
|
|
c = null == c ? 9007199254740991 : c;
|
|
return !!c && ("number" == typeof a || su.test(a)) && -1 < a && 0 == a % 1 && a < c;
|
|
}
|
|
function rj(a) {
|
|
return "number" == typeof a && -1 < a && 0 == a % 1 && 9007199254740991 >= a;
|
|
}
|
|
function tu(a) {
|
|
return Pc(a) && rj(a.length) && !!Ca[ud(a)];
|
|
}
|
|
function dn(a) {
|
|
return function (c) {
|
|
return a(c);
|
|
};
|
|
}
|
|
function en(a, c) {
|
|
var b = Za(a),
|
|
d = !b && Le(a),
|
|
e = !b && !d && Me(a),
|
|
f = !b && !d && !e && Zg(a);
|
|
d = (b = b || d || e || f) ? qj(a.length, String) : [];
|
|
var g = d.length,
|
|
h;
|
|
for (h in a) (!c && !qb.call(a, h)) || (b && ("length" == h || (e && ("offset" == h || "parent" == h)) || (f && ("buffer" == h || "byteLength" == h || "byteOffset" == h)) || Yg(h, g))) || d.push(h);
|
|
return d;
|
|
}
|
|
function $g(a) {
|
|
var c = a && a.constructor;
|
|
return a === (("function" == typeof c && c.prototype) || Nf);
|
|
}
|
|
function fn(a) {
|
|
if (!$g(a)) return uu(a);
|
|
var c = [],
|
|
b;
|
|
for (b in Object(a)) qb.call(a, b) && "constructor" != b && c.push(b);
|
|
return c;
|
|
}
|
|
function xb(a) {
|
|
var c = typeof a;
|
|
return null != a && ("object" == c || "function" == c);
|
|
}
|
|
function Fb(a) {
|
|
if (!xb(a)) return !1;
|
|
a = ud(a);
|
|
return "[object Function]" == a || "[object GeneratorFunction]" == a || "[object AsyncFunction]" == a || "[object Proxy]" == a;
|
|
}
|
|
function vd(a) {
|
|
return null != a && rj(a.length) && !Fb(a);
|
|
}
|
|
function Ne(a) {
|
|
return vd(a) ? en(a) : fn(a);
|
|
}
|
|
function vu(a, c) {
|
|
var b = [];
|
|
ah(a, function (a, e, f) {
|
|
c(a, e, f) && b.push(a);
|
|
});
|
|
return b;
|
|
}
|
|
function Pd(a, c) {
|
|
return a === c || (a !== a && c !== c);
|
|
}
|
|
function bh(a, c) {
|
|
for (var b = a.length; b--; ) if (Pd(a[b][0], c)) return b;
|
|
return -1;
|
|
}
|
|
function Qc(a) {
|
|
var c = -1,
|
|
b = null == a ? 0 : a.length;
|
|
for (this.clear(); ++c < b; ) {
|
|
var d = a[c];
|
|
this.set(d[0], d[1]);
|
|
}
|
|
}
|
|
function Qd(a) {
|
|
if (null != a) {
|
|
try {
|
|
return Xg.call(a);
|
|
} catch (c) {}
|
|
return a + "";
|
|
}
|
|
return "";
|
|
}
|
|
function Rd(a, c) {
|
|
a = null == a ? void 0 : a[c];
|
|
return (c = !xb(a) || (gn && gn in a) ? !1 : (Fb(a) ? wu : xu).test(Qd(a))) ? a : void 0;
|
|
}
|
|
function Sd(a) {
|
|
var c = -1,
|
|
b = null == a ? 0 : a.length;
|
|
for (this.clear(); ++c < b; ) {
|
|
var d = a[c];
|
|
this.set(d[0], d[1]);
|
|
}
|
|
}
|
|
function ch(a, c) {
|
|
a = a.__data__;
|
|
var b = typeof c;
|
|
return ("string" == b || "number" == b || "symbol" == b || "boolean" == b ? "__proto__" !== c : null === c) ? a["string" == typeof c ? "string" : "hash"] : a.map;
|
|
}
|
|
function Rc(a) {
|
|
var c = -1,
|
|
b = null == a ? 0 : a.length;
|
|
for (this.clear(); ++c < b; ) {
|
|
var d = a[c];
|
|
this.set(d[0], d[1]);
|
|
}
|
|
}
|
|
function kc(a) {
|
|
this.size = (this.__data__ = new Qc(a)).size;
|
|
}
|
|
function Td(a) {
|
|
var c = -1,
|
|
b = null == a ? 0 : a.length;
|
|
for (this.__data__ = new Rc(); ++c < b; ) this.add(a[c]);
|
|
}
|
|
function yu(a, c) {
|
|
for (var b = -1, d = null == a ? 0 : a.length; ++b < d; ) if (c(a[b], b, a)) return !0;
|
|
return !1;
|
|
}
|
|
function hn(a, c) {
|
|
return a.has(c);
|
|
}
|
|
function jn(a, c, b, d, e, f) {
|
|
var g = b & 1,
|
|
h = a.length,
|
|
k = c.length;
|
|
if (h != k && !(g && k > h)) return !1;
|
|
if ((k = f.get(a)) && f.get(c)) return k == c;
|
|
k = -1;
|
|
var l = !0,
|
|
m = b & 2 ? new Td() : void 0;
|
|
f.set(a, c);
|
|
for (f.set(c, a); ++k < h; ) {
|
|
var n = a[k],
|
|
p = c[k];
|
|
if (d) var q = g ? d(p, n, k, c, a, f) : d(n, p, k, a, c, f);
|
|
if (void 0 !== q) {
|
|
if (q) continue;
|
|
l = !1;
|
|
break;
|
|
}
|
|
if (m) {
|
|
if (
|
|
!yu(c, function (c, a) {
|
|
if (!m.has(a) && (n === c || e(n, c, b, d, f))) return m.push(a);
|
|
})
|
|
) {
|
|
l = !1;
|
|
break;
|
|
}
|
|
} else if (n !== p && !e(n, p, b, d, f)) {
|
|
l = !1;
|
|
break;
|
|
}
|
|
}
|
|
f["delete"](a);
|
|
f["delete"](c);
|
|
return l;
|
|
}
|
|
function sj(a) {
|
|
var c = -1,
|
|
b = Array(a.size);
|
|
a.forEach(function (a, e) {
|
|
b[++c] = [e, a];
|
|
});
|
|
return b;
|
|
}
|
|
function Of(a) {
|
|
var c = -1,
|
|
b = Array(a.size);
|
|
a.forEach(function (a) {
|
|
b[++c] = a;
|
|
});
|
|
return b;
|
|
}
|
|
function zu(a, c, b, d, e, f, g) {
|
|
switch (b) {
|
|
case "[object DataView]":
|
|
if (a.byteLength != c.byteLength || a.byteOffset != c.byteOffset) break;
|
|
a = a.buffer;
|
|
c = c.buffer;
|
|
case "[object ArrayBuffer]":
|
|
if (a.byteLength != c.byteLength || !f(new dh(a), new dh(c))) break;
|
|
return !0;
|
|
case "[object Boolean]":
|
|
case "[object Date]":
|
|
case "[object Number]":
|
|
return Pd(+a, +c);
|
|
case "[object Error]":
|
|
return a.name == c.name && a.message == c.message;
|
|
case "[object RegExp]":
|
|
case "[object String]":
|
|
return a == c + "";
|
|
case "[object Map]":
|
|
var h = sj;
|
|
case "[object Set]":
|
|
h || (h = Of);
|
|
if (a.size != c.size && !(d & 1)) break;
|
|
if ((b = g.get(a))) return b == c;
|
|
d |= 2;
|
|
g.set(a, c);
|
|
c = jn(h(a), h(c), d, e, f, g);
|
|
g["delete"](a);
|
|
return c;
|
|
case "[object Symbol]":
|
|
if (Pf) return Pf.call(a) == Pf.call(c);
|
|
}
|
|
return !1;
|
|
}
|
|
function tj(a, c) {
|
|
for (var b = -1, d = c.length, e = a.length; ++b < d; ) a[e + b] = c[b];
|
|
return a;
|
|
}
|
|
function kn(a, c, b) {
|
|
c = c(a);
|
|
return Za(a) ? c : tj(c, b(a));
|
|
}
|
|
function ln() {
|
|
return [];
|
|
}
|
|
function uj(a) {
|
|
return kn(a, Ne, vj);
|
|
}
|
|
function vc(a, c, b, d, e) {
|
|
if (a === c) return !0;
|
|
if (null == a || null == c || (!Pc(a) && !Pc(c))) return a !== a && c !== c;
|
|
a: {
|
|
var f = Za(a),
|
|
g = Za(c),
|
|
h = f ? "[object Array]" : wc(a),
|
|
k = g ? "[object Array]" : wc(c);
|
|
h = "[object Arguments]" == h ? "[object Object]" : h;
|
|
k = "[object Arguments]" == k ? "[object Object]" : k;
|
|
var l = "[object Object]" == h;
|
|
g = "[object Object]" == k;
|
|
if ((k = h == k) && Me(a)) {
|
|
if (!Me(c)) {
|
|
c = !1;
|
|
break a;
|
|
}
|
|
f = !0;
|
|
l = !1;
|
|
}
|
|
if (k && !l) e || (e = new kc()), (c = f || Zg(a) ? jn(a, c, b, d, vc, e) : zu(a, c, h, b, d, vc, e));
|
|
else if (b & 1 || ((f = l && qb.call(a, "__wrapped__")), (h = g && qb.call(c, "__wrapped__")), !f && !h))
|
|
if (k)
|
|
b: if ((e || (e = new kc()), (f = b & 1), (h = uj(a)), (g = h.length), (k = uj(c).length), g == k || f)) {
|
|
for (l = g; l--; ) {
|
|
var m = h[l];
|
|
if (!(f ? m in c : qb.call(c, m))) {
|
|
c = !1;
|
|
break b;
|
|
}
|
|
}
|
|
if ((k = e.get(a)) && e.get(c)) c = k == c;
|
|
else {
|
|
k = !0;
|
|
e.set(a, c);
|
|
e.set(c, a);
|
|
for (var n = f; ++l < g; ) {
|
|
m = h[l];
|
|
var p = a[m],
|
|
q = c[m];
|
|
if (d) var r = f ? d(q, p, m, c, a, e) : d(p, q, m, a, c, e);
|
|
if (void 0 === r ? p !== q && !vc(p, q, b, d, e) : !r) {
|
|
k = !1;
|
|
break;
|
|
}
|
|
n || (n = "constructor" == m);
|
|
}
|
|
k && !n && ((b = a.constructor), (d = c.constructor), b != d && "constructor" in a && "constructor" in c && !("function" == typeof b && b instanceof b && "function" == typeof d && d instanceof d) && (k = !1));
|
|
e["delete"](a);
|
|
e["delete"](c);
|
|
c = k;
|
|
}
|
|
} else c = !1;
|
|
else c = !1;
|
|
else (a = f ? a.value() : a), (c = h ? c.value() : c), e || (e = new kc()), (c = vc(a, c, b, d, e));
|
|
}
|
|
return c;
|
|
}
|
|
function Au(a, c, b, d) {
|
|
var e = b.length,
|
|
f = e,
|
|
g = !d;
|
|
if (null == a) return !f;
|
|
for (a = Object(a); e--; ) {
|
|
var h = b[e];
|
|
if (g && h[2] ? h[1] !== a[h[0]] : !(h[0] in a)) return !1;
|
|
}
|
|
for (; ++e < f; ) {
|
|
h = b[e];
|
|
var k = h[0],
|
|
l = a[k],
|
|
m = h[1];
|
|
if (g && h[2]) {
|
|
if (void 0 === l && !(k in a)) return !1;
|
|
} else {
|
|
h = new kc();
|
|
if (d) var n = d(l, m, k, a, c, h);
|
|
if (void 0 === n ? !vc(m, l, 3, d, h) : !n) return !1;
|
|
}
|
|
}
|
|
return !0;
|
|
}
|
|
function Bu(a) {
|
|
for (var c = Ne(a), b = c.length; b--; ) {
|
|
var d = c[b],
|
|
e = a[d];
|
|
c[b] = [d, e, e === e && !xb(e)];
|
|
}
|
|
return c;
|
|
}
|
|
function mn(a, c) {
|
|
return function (b) {
|
|
return null == b ? !1 : b[a] === c && (void 0 !== c || a in Object(b));
|
|
};
|
|
}
|
|
function Cu(a) {
|
|
var c = Bu(a);
|
|
return 1 == c.length && c[0][2]
|
|
? mn(c[0][0], c[0][1])
|
|
: function (b) {
|
|
return b === a || Au(b, a, c);
|
|
};
|
|
}
|
|
function Ud(a) {
|
|
return "symbol" == typeof a || (Pc(a) && "[object Symbol]" == ud(a));
|
|
}
|
|
function wj(a, c) {
|
|
if (Za(a)) return !1;
|
|
var b = typeof a;
|
|
return "number" == b || "symbol" == b || "boolean" == b || null == a || Ud(a) ? !0 : Du.test(a) || !Eu.test(a) || (null != c && a in Object(c));
|
|
}
|
|
function Vd(a, c) {
|
|
for (var b = -1, d = null == a ? 0 : a.length, e = Array(d); ++b < d; ) e[b] = c(a[b], b, a);
|
|
return e;
|
|
}
|
|
function Mf(a) {
|
|
if ("string" == typeof a) return a;
|
|
if (Za(a)) return Vd(a, Mf) + "";
|
|
if (Ud(a)) return nn ? nn.call(a) : "";
|
|
var c = a + "";
|
|
return "0" == c && 1 / a == -Qf ? "-0" : c;
|
|
}
|
|
function eh(a, c) {
|
|
return Za(a) ? a : wj(a, c) ? [a] : Fu(Ke(a));
|
|
}
|
|
function Rf(a) {
|
|
if ("string" == typeof a || Ud(a)) return a;
|
|
var c = a + "";
|
|
return "0" == c && 1 / a == -Qf ? "-0" : c;
|
|
}
|
|
function xj(a, c) {
|
|
c = eh(c, a);
|
|
for (var b = 0, d = c.length; null != a && b < d; ) a = a[Rf(c[b++])];
|
|
return b && b == d ? a : void 0;
|
|
}
|
|
function Gu(a, c) {
|
|
return wj(a) && c === c && !xb(c)
|
|
? mn(Rf(a), c)
|
|
: function (b) {
|
|
var d = null == b ? void 0 : xj(b, a);
|
|
d = void 0 === d ? void 0 : d;
|
|
if (void 0 === d && d === c) {
|
|
if ((d = null != b)) {
|
|
d = a;
|
|
d = eh(d, b);
|
|
for (var e = -1, f = d.length, g = !1; ++e < f; ) {
|
|
var h = Rf(d[e]);
|
|
if (!(g = null != b && null != b && h in Object(b))) break;
|
|
b = b[h];
|
|
}
|
|
g || ++e != f ? (d = g) : ((f = null == b ? 0 : b.length), (d = !!f && rj(f) && Yg(h, f) && (Za(b) || Le(b))));
|
|
}
|
|
h = d;
|
|
} else h = vc(c, d, 3);
|
|
return h;
|
|
};
|
|
}
|
|
function Wd(a) {
|
|
return a;
|
|
}
|
|
function on(a) {
|
|
return function (c) {
|
|
return null == c ? void 0 : c[a];
|
|
};
|
|
}
|
|
function Hu(a) {
|
|
return function (c) {
|
|
return xj(c, a);
|
|
};
|
|
}
|
|
function Xd(a, c) {
|
|
return "function" == typeof a ? a : null == a ? Wd : "object" == typeof a ? (Za(a) ? Gu(a[0], a[1]) : Cu(a)) : wj(a) ? on(Rf(a)) : Hu(a);
|
|
}
|
|
function pn(a, c, b, d) {
|
|
var e = a.length;
|
|
for (b += d ? 1 : -1; d ? b-- : ++b < e; ) if (c(a[b], b, a)) return b;
|
|
return -1;
|
|
}
|
|
function fh(a) {
|
|
if ("number" == typeof a) return a;
|
|
if (Ud(a)) return yj;
|
|
xb(a) && ((a = "function" == typeof a.valueOf ? a.valueOf() : a), (a = xb(a) ? a + "" : a));
|
|
if ("string" != typeof a) return 0 === a ? a : +a;
|
|
a = a.replace(qn, "");
|
|
var c = Iu.test(a);
|
|
return c || Ju.test(a) ? Ku(a.slice(2), c ? 2 : 8) : Lu.test(a) ? yj : +a;
|
|
}
|
|
function Oe(a) {
|
|
a ? ((a = fh(a)), (a = a === Qf || a === -Qf ? 1.7976931348623157e308 * (0 > a ? -1 : 1) : a === a ? a : 0)) : (a = 0 === a ? a : 0);
|
|
var c = a % 1;
|
|
return a === a ? (c ? a - c : a) : 0;
|
|
}
|
|
function Sf(a, c, b) {
|
|
var d = null == a ? 0 : a.length;
|
|
if (!d) return -1;
|
|
b = null == b ? 0 : Oe(b);
|
|
0 > b && (b = gh(d + b, 0));
|
|
return pn(a, Xd(c), b);
|
|
}
|
|
function zj(a, c, b) {
|
|
switch (b.length) {
|
|
case 0:
|
|
return a.call(c);
|
|
case 1:
|
|
return a.call(c, b[0]);
|
|
case 2:
|
|
return a.call(c, b[0], b[1]);
|
|
case 3:
|
|
return a.call(c, b[0], b[1], b[2]);
|
|
}
|
|
return a.apply(c, b);
|
|
}
|
|
function Aj(a, c, b) {
|
|
"__proto__" == c && hh ? hh(a, c, { configurable: !0, enumerable: !0, value: b, writable: !0 }) : (a[c] = b);
|
|
}
|
|
function rn(a, c, b) {
|
|
var d = a[c];
|
|
(qb.call(a, c) && Pd(d, b) && (void 0 !== b || c in a)) || Aj(a, c, b);
|
|
}
|
|
function Yd(a, c, b, d) {
|
|
var e = !b;
|
|
b || (b = {});
|
|
for (var f = -1, g = c.length; ++f < g; ) {
|
|
var h = c[f],
|
|
k = d ? d(b[h], a[h], h, b, a) : void 0;
|
|
void 0 === k && (k = a[h]);
|
|
e ? Aj(b, h, k) : rn(b, h, k);
|
|
}
|
|
return b;
|
|
}
|
|
function sn(a, c, b) {
|
|
c = gh(void 0 === c ? a.length - 1 : c, 0);
|
|
return function () {
|
|
for (var d = arguments, e = -1, f = gh(d.length - c, 0), g = Array(f); ++e < f; ) g[e] = d[c + e];
|
|
e = -1;
|
|
for (f = Array(c + 1); ++e < c; ) f[e] = d[e];
|
|
f[c] = b(g);
|
|
return zj(a, this, f);
|
|
};
|
|
}
|
|
function Mu(a) {
|
|
return function () {
|
|
return a;
|
|
};
|
|
}
|
|
function Zd(a, c) {
|
|
return tn(sn(a, c, Wd), a + "");
|
|
}
|
|
function ih(a, c, b) {
|
|
if (!xb(b)) return !1;
|
|
var d = typeof c;
|
|
return ("number" == d ? vd(b) && Yg(c, b.length) : "string" == d && c in b) ? Pd(b[c], a) : !1;
|
|
}
|
|
function Bj(a) {
|
|
return Zd(function (c, b) {
|
|
var d = -1,
|
|
e = b.length,
|
|
f = 1 < e ? b[e - 1] : void 0,
|
|
g = 2 < e ? b[2] : void 0;
|
|
f = 3 < a.length && "function" == typeof f ? (e--, f) : void 0;
|
|
g && ih(b[0], b[1], g) && ((f = 3 > e ? void 0 : f), (e = 1));
|
|
for (c = Object(c); ++d < e; ) (g = b[d]) && a(c, g, d, f);
|
|
return c;
|
|
});
|
|
}
|
|
function $d(a) {
|
|
if (vd(a)) a = en(a, !0);
|
|
else if (xb(a)) {
|
|
var c = $g(a),
|
|
b = [];
|
|
for (d in a) ("constructor" != d || (!c && qb.call(a, d))) && b.push(d);
|
|
a = b;
|
|
} else {
|
|
var d = [];
|
|
if (null != a) for (c in Object(a)) d.push(c);
|
|
a = d;
|
|
}
|
|
return a;
|
|
}
|
|
function Nu(a, c, b, d) {
|
|
return void 0 === a || (Pd(a, Nf[b]) && !qb.call(d, b)) ? c : a;
|
|
}
|
|
function un(a, c, b) {
|
|
((void 0 === b || Pd(a[c], b)) && (void 0 !== b || c in a)) || Aj(a, c, b);
|
|
}
|
|
function vn(a, c) {
|
|
if (c) return a.slice();
|
|
c = a.length;
|
|
c = wn ? wn(c) : new a.constructor(c);
|
|
a.copy(c);
|
|
return c;
|
|
}
|
|
function Cj(a) {
|
|
var c = new a.constructor(a.byteLength);
|
|
new dh(c).set(new dh(a));
|
|
return c;
|
|
}
|
|
function xn(a, c) {
|
|
c = c ? Cj(a.buffer) : a.buffer;
|
|
return new a.constructor(c, a.byteOffset, a.length);
|
|
}
|
|
function yn(a, c) {
|
|
var b = -1,
|
|
d = a.length;
|
|
for (c || (c = Array(d)); ++b < d; ) c[b] = a[b];
|
|
return c;
|
|
}
|
|
function zn(a) {
|
|
return "function" != typeof a.constructor || $g(a) ? {} : Ou(oj(a));
|
|
}
|
|
function Tf(a) {
|
|
return Pc(a) && vd(a);
|
|
}
|
|
function jh(a, c, b, d, e) {
|
|
a !== c &&
|
|
Dj(
|
|
c,
|
|
function (f, g) {
|
|
if (xb(f)) {
|
|
e || (e = new kc());
|
|
f = e;
|
|
var h = a[g],
|
|
k = c[g],
|
|
l = f.get(k);
|
|
if (!l) {
|
|
l = d ? d(h, k, g + "", a, c, f) : void 0;
|
|
var m = void 0 === l;
|
|
if (m) {
|
|
var n = Za(k),
|
|
p = !n && Me(k),
|
|
q = !n && !p && Zg(k);
|
|
l = k;
|
|
if (n || p || q) Za(h) ? (l = h) : Tf(h) ? (l = yn(h)) : p ? ((m = !1), (l = vn(k, !0))) : q ? ((m = !1), (l = xn(k, !0))) : (l = []);
|
|
else if (Wg(k) || Le(k))
|
|
if (((l = h), Le(h))) l = Yd(h, $d(h));
|
|
else {
|
|
if (!xb(h) || (b && Fb(h))) l = zn(k);
|
|
}
|
|
else m = !1;
|
|
}
|
|
m && (f.set(k, l), jh(l, k, b, d, f), f["delete"](k));
|
|
}
|
|
un(a, g, l);
|
|
} else (h = d ? d(a[g], f, g + "", a, c, e) : void 0), void 0 === h && (h = f), un(a, g, h);
|
|
},
|
|
$d
|
|
);
|
|
}
|
|
function An(a, c, b, d, e, f) {
|
|
xb(a) && xb(c) && (f.set(c, a), jh(a, c, void 0, An, f), f["delete"](c));
|
|
return a;
|
|
}
|
|
function Bn(a, c) {
|
|
for (var b = -1, d = null == a ? 0 : a.length; ++b < d && !1 !== c(a[b], b, a); );
|
|
return a;
|
|
}
|
|
function Pu(a, c) {
|
|
return a && Yd(c, Ne(c), a);
|
|
}
|
|
function Qu(a, c) {
|
|
return a && Yd(c, $d(c), a);
|
|
}
|
|
function Ru(a, c) {
|
|
return Yd(a, vj(a), c);
|
|
}
|
|
function Su(a, c) {
|
|
return Yd(a, Cn(a), c);
|
|
}
|
|
function Dn(a) {
|
|
return kn(a, $d, Cn);
|
|
}
|
|
function Tu(a) {
|
|
var c = a.length,
|
|
b = a.constructor(c);
|
|
c && "string" == typeof a[0] && qb.call(a, "index") && ((b.index = a.index), (b.input = a.input));
|
|
return b;
|
|
}
|
|
function Uu(a, c) {
|
|
a.set(c[0], c[1]);
|
|
return a;
|
|
}
|
|
function Ej(a, c, b, d) {
|
|
var e = -1,
|
|
f = null == a ? 0 : a.length;
|
|
for (d && f && (b = a[++e]); ++e < f; ) b = c(b, a[e], e, a);
|
|
return b;
|
|
}
|
|
function Vu(a, c) {
|
|
a.add(c);
|
|
return a;
|
|
}
|
|
function Wu(a, c, b, d) {
|
|
var e = a.constructor;
|
|
switch (c) {
|
|
case "[object ArrayBuffer]":
|
|
return Cj(a);
|
|
case "[object Boolean]":
|
|
case "[object Date]":
|
|
return new e(+a);
|
|
case "[object DataView]":
|
|
return (c = d ? Cj(a.buffer) : a.buffer), new a.constructor(c, a.byteOffset, a.byteLength);
|
|
case "[object Float32Array]":
|
|
case "[object Float64Array]":
|
|
case "[object Int8Array]":
|
|
case "[object Int16Array]":
|
|
case "[object Int32Array]":
|
|
case "[object Uint8Array]":
|
|
case "[object Uint8ClampedArray]":
|
|
case "[object Uint16Array]":
|
|
case "[object Uint32Array]":
|
|
return xn(a, d);
|
|
case "[object Map]":
|
|
return (c = d ? b(sj(a), 1) : sj(a)), Ej(c, Uu, new a.constructor());
|
|
case "[object Number]":
|
|
case "[object String]":
|
|
return new e(a);
|
|
case "[object RegExp]":
|
|
return (c = new a.constructor(a.source, Xu.exec(a))), (c.lastIndex = a.lastIndex), c;
|
|
case "[object Set]":
|
|
return (c = d ? b(Of(a), 1) : Of(a)), Ej(c, Vu, new a.constructor());
|
|
case "[object Symbol]":
|
|
return Pf ? Object(Pf.call(a)) : {};
|
|
}
|
|
}
|
|
function Uf(a, c, b, d, e, f) {
|
|
var g,
|
|
h = c & 1,
|
|
k = c & 2,
|
|
l = c & 4;
|
|
b && (g = e ? b(a, d, e, f) : b(a));
|
|
if (void 0 !== g) return g;
|
|
if (!xb(a)) return a;
|
|
if ((d = Za(a))) {
|
|
if (((g = Tu(a)), !h)) return yn(a, g);
|
|
} else {
|
|
var m = wc(a),
|
|
n = "[object Function]" == m || "[object GeneratorFunction]" == m;
|
|
if (Me(a)) return vn(a, h);
|
|
if ("[object Object]" == m || "[object Arguments]" == m || (n && !e)) {
|
|
if (((g = k || n ? {} : zn(a)), !h)) return k ? Su(a, Qu(g, a)) : Ru(a, Pu(g, a));
|
|
} else {
|
|
if (!za[m]) return e ? a : {};
|
|
g = Wu(a, m, Uf, h);
|
|
}
|
|
}
|
|
f || (f = new kc());
|
|
if ((e = f.get(a))) return e;
|
|
f.set(a, g);
|
|
k = l ? (k ? Dn : uj) : k ? $d : Ne;
|
|
var p = d ? void 0 : k(a);
|
|
Bn(p || a, function (d, e) {
|
|
p && ((e = d), (d = a[e]));
|
|
rn(g, e, Uf(d, c, b, e, a, f));
|
|
});
|
|
return g;
|
|
}
|
|
function Fj(a) {
|
|
return "function" == typeof a ? a : Wd;
|
|
}
|
|
function En(a, c) {
|
|
var b = -1,
|
|
d = vd(a) ? Array(a.length) : [];
|
|
ah(a, function (a, f, g) {
|
|
d[++b] = c(a, f, g);
|
|
});
|
|
return d;
|
|
}
|
|
function Yu(a, c, b, d, e) {
|
|
e(a, function (a, e, h) {
|
|
b = d ? ((d = !1), a) : c(b, a, e, h);
|
|
});
|
|
return b;
|
|
}
|
|
function Zu(a) {
|
|
return a !== a;
|
|
}
|
|
function Gj(a, c, b) {
|
|
if (c === c)
|
|
a: {
|
|
--b;
|
|
for (var d = a.length; ++b < d; )
|
|
if (a[b] === c) {
|
|
a = b;
|
|
break a;
|
|
}
|
|
a = -1;
|
|
}
|
|
else a = pn(a, Zu, b);
|
|
return a;
|
|
}
|
|
function kh(a, c) {
|
|
return !(null == a || !a.length) && -1 < Gj(a, c, 0);
|
|
}
|
|
function $u() {}
|
|
function av(a) {
|
|
return Za(a) || Le(a) || !!(Fn && a && a[Fn]);
|
|
}
|
|
function lh(a, c, b, d, e) {
|
|
var f = -1,
|
|
g = a.length;
|
|
b || (b = av);
|
|
for (e || (e = []); ++f < g; ) {
|
|
var h = a[f];
|
|
0 < c && b(h) ? (1 < c ? lh(h, c - 1, b, d, e) : tj(e, h)) : d || (e[e.length] = h);
|
|
}
|
|
return e;
|
|
}
|
|
function bv(a, c) {
|
|
var b = a.length;
|
|
for (a.sort(c); b--; ) a[b] = a[b].value;
|
|
return a;
|
|
}
|
|
function cv(a, c, b) {
|
|
var d = -1;
|
|
c = Vd(c.length ? c : [Wd], dn(Xd));
|
|
a = En(a, function (b, a, g) {
|
|
return {
|
|
criteria: Vd(c, function (a) {
|
|
return a(b);
|
|
}),
|
|
index: ++d,
|
|
value: b,
|
|
};
|
|
});
|
|
return bv(a, function (a, c) {
|
|
a: {
|
|
for (var d = -1, e = a.criteria, f = c.criteria, l = e.length, m = b.length; ++d < l; ) {
|
|
b: {
|
|
var n = e[d],
|
|
p = f[d];
|
|
if (n !== p) {
|
|
var q = void 0 !== n,
|
|
r = null === n,
|
|
u = n === n,
|
|
x = Ud(n),
|
|
v = void 0 !== p,
|
|
y = null === p,
|
|
D = p === p,
|
|
E = Ud(p);
|
|
if ((!y && !E && !x && n > p) || (x && v && D && !y && !E) || (r && v && D) || (!q && D) || !u) {
|
|
n = 1;
|
|
break b;
|
|
}
|
|
if ((!r && !x && !E && n < p) || (E && q && u && !r && !x) || (y && q && u) || (!v && u) || !D) {
|
|
n = -1;
|
|
break b;
|
|
}
|
|
}
|
|
n = 0;
|
|
}
|
|
if (n) {
|
|
if (d >= m) {
|
|
a = n;
|
|
break a;
|
|
}
|
|
a = n * ("desc" == b[d] ? -1 : 1);
|
|
break a;
|
|
}
|
|
}
|
|
a = a.index - c.index;
|
|
}
|
|
return a;
|
|
});
|
|
}
|
|
function Hj(a, c, b) {
|
|
var d = -1,
|
|
e = a.length;
|
|
0 > c && (c = -c > e ? 0 : e + c);
|
|
b = b > e ? e : b;
|
|
0 > b && (b += e);
|
|
e = c > b ? 0 : (b - c) >>> 0;
|
|
c >>>= 0;
|
|
for (b = Array(e); ++d < e; ) b[d] = a[d + c];
|
|
return b;
|
|
}
|
|
function Gn(a, c) {
|
|
c = eh(c, a);
|
|
a = 2 > c.length ? a : xj(a, Hj(c, 0, -1));
|
|
var b;
|
|
(b = null == a) || ((b = null == c ? 0 : c.length), (b = delete a[Rf(b ? c[b - 1] : void 0)]));
|
|
return b;
|
|
}
|
|
function dv(a) {
|
|
return Tf(a) ? a : [];
|
|
}
|
|
function ev(a) {
|
|
return Wg(a) ? void 0 : a;
|
|
}
|
|
function fv(a) {
|
|
return (null == a ? 0 : a.length) ? lh(a, 1) : [];
|
|
}
|
|
function Ij(a, c, b) {
|
|
a === a && (void 0 !== b && (a = a <= b ? a : b), void 0 !== c && (a = a >= c ? a : c));
|
|
return a;
|
|
}
|
|
function Hn(a, c) {
|
|
for (var b, d = -1, e = a.length; ++d < e; ) {
|
|
var f = c(a[d]);
|
|
void 0 !== f && (b = void 0 === b ? f : b + f);
|
|
}
|
|
return b;
|
|
}
|
|
function In(a, c) {
|
|
for (var b = {}, d = 0; d < a.length; d++) {
|
|
var e = a[d],
|
|
f = c(e, d);
|
|
t(f) && (b[f] = e);
|
|
}
|
|
return b;
|
|
}
|
|
function Ub(a, c, b, d, e, f, g) {
|
|
if (b && (a.length || c.length)) {
|
|
var h = function (a) {
|
|
(a = b(a)) && c.push(a);
|
|
},
|
|
k = function (b) {
|
|
pb(c, b);
|
|
e && e(b);
|
|
b.destroy && b.destroy();
|
|
};
|
|
if (!c.length) return w(a, h), c;
|
|
a = In(a, f || Jn);
|
|
g = In(c, g || Jn);
|
|
for (var l in a) J(g, l) ? d && d(a[l], g[l]) : h(a[l]);
|
|
for (l in g) !J(a, l) && k(g[l]);
|
|
return c;
|
|
}
|
|
}
|
|
function gv(a) {
|
|
return "number" === typeof a && isNaN(a);
|
|
}
|
|
function xc(a, c, b) {}
|
|
function Gb(a, c, b) {
|
|
return a;
|
|
}
|
|
function ae(a, c) {
|
|
return a.indexOf ? -1 < a.indexOf(c) : J(a, c);
|
|
}
|
|
function mh(a, c) {
|
|
var b;
|
|
if (a) {
|
|
if (J(a, c)) return c;
|
|
a = pa(a);
|
|
c = c.toLowerCase();
|
|
try {
|
|
for (var d = ya(a), e = d.next(); !e.done; e = d.next()) {
|
|
var f = e.value;
|
|
if (f.toLowerCase() === c) return f;
|
|
}
|
|
} catch (h) {
|
|
var g = { error: h };
|
|
} finally {
|
|
try {
|
|
e && !e.done && (b = d.return) && b.call(d);
|
|
} finally {
|
|
if (g) throw g.error;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function Da(a, c) {
|
|
for (var b in a) c(b);
|
|
}
|
|
function L(a, c) {
|
|
for (var b in c) a[b] = c[b];
|
|
return a;
|
|
}
|
|
function W(a, c) {
|
|
return L(L({}, a), c);
|
|
}
|
|
function Oa(a, c) {
|
|
return Na({}, a, c);
|
|
}
|
|
function Na(a, c, b) {
|
|
if (!b) return L(a, c);
|
|
for (var d in c) wd.call(b, d) && (a[d] = c[d]);
|
|
return a;
|
|
}
|
|
function Sc(a, c, b) {
|
|
if (!b) return L(a, c);
|
|
for (var d in c) wd.call(b, d) || (a[d] = c[d]);
|
|
return a;
|
|
}
|
|
function be(a, c, b) {
|
|
return Sc(L({}, a), c, b);
|
|
}
|
|
function Pe(a, c, b) {
|
|
return Na(L({}, a), c, b);
|
|
}
|
|
function Hb(a, c) {
|
|
var b = {},
|
|
d;
|
|
for (d in a) wd.call(c, d) || (b[d] = a[d]);
|
|
return b;
|
|
}
|
|
function fa(a) {
|
|
for (var c = {}, b = 0; b < a.length; b++) c[a[b]] = void 0;
|
|
return c;
|
|
}
|
|
function Tc(a) {
|
|
return a.length ? (1 === a.length ? a[0] : hv.apply([], a)) : [];
|
|
}
|
|
function Jj(a) {
|
|
return fa(a.split(","));
|
|
}
|
|
function Kj(a, c) {
|
|
return B(a, function (b, a) {
|
|
return b + c[a];
|
|
});
|
|
}
|
|
function P(a) {
|
|
return a[a.length - 1];
|
|
}
|
|
function Lj(a, c, b, d, e) {
|
|
var f = null,
|
|
g;
|
|
for (g in c) {
|
|
var h = null;
|
|
if (!wd.call(a, g) || (b && wd.call(b, g) ? (h = !vc(a[g], c[g])) : a[g] !== c[g])) (f = f || {}), (f[g] = h ? qa(c[g]) : c[g]), d || (a[g] = f[g]);
|
|
}
|
|
if (e) for (g in a) wd.call(c, g) || ((f = f || {}), (f[g] = null), d || delete a[g]);
|
|
return f;
|
|
}
|
|
function z(a, c, b, d, e) {
|
|
a = arguments;
|
|
var f,
|
|
g = a.length;
|
|
for (f = 0; f < g; f++) {
|
|
var h = a[f];
|
|
if (t(h) && null !== h) return h;
|
|
}
|
|
}
|
|
function O(a) {
|
|
return "string" === typeof a;
|
|
}
|
|
function Pa(a) {
|
|
return a && "object" === typeof a;
|
|
}
|
|
function Q(a) {
|
|
return void 0 === a;
|
|
}
|
|
function lc(a) {
|
|
return null === a || Q(a);
|
|
}
|
|
function pa(a) {
|
|
return Object.keys(a);
|
|
}
|
|
function Kn(a, c) {
|
|
void 0 === c && (c = ".");
|
|
var b = function (a, e, f) {
|
|
void 0 === f && (f = []);
|
|
if ("object" !== typeof a) return e && f.push(e), f;
|
|
for (var d = Object.keys(a), h = 0, k = d.length; h < k; h++) {
|
|
var l = d[h];
|
|
b(a[l], (e ? e + c : "") + l, f);
|
|
}
|
|
return f;
|
|
};
|
|
return b(a);
|
|
}
|
|
function yc(a, c) {
|
|
return S(a, function (b) {
|
|
return t(c[b]);
|
|
})
|
|
? !0
|
|
: !1;
|
|
}
|
|
function Ln(a, c) {
|
|
for (var b in a) if (wd.call(c, b)) return !0;
|
|
return !1;
|
|
}
|
|
function Mj(a, c) {
|
|
var b = {},
|
|
d;
|
|
w(c, function (c) {
|
|
if ((d = C(a, c))) b[c] = d;
|
|
});
|
|
return b;
|
|
}
|
|
function Z(a, c, b) {
|
|
if (a && c && "undefined" !== typeof b) {
|
|
c = c.split(".");
|
|
var d = c.length - 1,
|
|
e;
|
|
for (e = 0; e < d; e++) {
|
|
var f = c[e];
|
|
a = void 0 === a[f] ? (a[f] = {}) : a[f];
|
|
}
|
|
return (a[c[d]] = b);
|
|
}
|
|
}
|
|
function Vf(a, c, b) {
|
|
if (a && c && "undefined" !== typeof b) {
|
|
var d = c.length - 1,
|
|
e;
|
|
for (e = 0; e < d; e++) {
|
|
var f = c[e];
|
|
a = void 0 === a[f] ? (a[f] = {}) : a[f];
|
|
}
|
|
return (a[c[d]] = b);
|
|
}
|
|
}
|
|
function zc(a, c, b, d, e, f) {
|
|
c = C(c, d);
|
|
if (t(c)) return (c = e ? e(c) : c), "function" === typeof b ? b(a, c) : Z(a, b, c), !0;
|
|
}
|
|
function Mn(a, c, b, d) {
|
|
c = N(c, d);
|
|
if (t(c)) return Vf(a, b, c), !0;
|
|
}
|
|
function nh(a, c, b) {
|
|
for (var d = 0, e = a.length; d < e; d++) if (a[d][c] === b) return a[d];
|
|
}
|
|
function Qe(a, c) {
|
|
if (!a || c.length !== a.length) return !1;
|
|
for (var b = 0, d = c.length; b < d; b++)
|
|
if (c[b] instanceof Array && a[b] instanceof Array) {
|
|
if (!c[b].equals(a[b])) return !1;
|
|
} else if (c[b] != a[b]) return !1;
|
|
return !0;
|
|
}
|
|
function Nn(a) {
|
|
var c = a.name;
|
|
c || (c = (a = a.toString().match(iv)) && a[1]);
|
|
return c;
|
|
}
|
|
function Nj(a) {
|
|
return window.eval(a);
|
|
}
|
|
function On(a) {
|
|
if (!a) return a;
|
|
for (var c = [], b = 0; b < a.length; b++) {
|
|
var d = a[b],
|
|
e = d.toLowerCase(),
|
|
f = " " === d;
|
|
0 < b && (f || d !== e) && c.push("-");
|
|
!f && c.push(e);
|
|
}
|
|
return c.join("");
|
|
}
|
|
function Re(a, c, b) {
|
|
a = oh(a);
|
|
return a.split(c, b);
|
|
}
|
|
function Ib(a, c) {
|
|
return w(Re(a, ","), c);
|
|
}
|
|
function Ac(a) {
|
|
if (!a) return [0, 0, 0, 0];
|
|
if (4 === a.length && a.push) return a;
|
|
switch (I(a)) {
|
|
case "number":
|
|
return [a, a, a, a];
|
|
case "object":
|
|
return [a.top || 0, a.right || 0, a.bottom || 0, a.left || 0];
|
|
case "array":
|
|
return jv(a);
|
|
case "string":
|
|
return Ac(Oj(a));
|
|
}
|
|
return a;
|
|
}
|
|
function jv(a) {
|
|
switch (a.length) {
|
|
case 1:
|
|
var c = a[0] || 0;
|
|
return [c, c, c, c];
|
|
case 2:
|
|
return (c = a[0]), (a = a[1]), [c, a, c, a];
|
|
case 3:
|
|
return (c = a[1]), [a[0], c, a[2], c];
|
|
}
|
|
return a;
|
|
}
|
|
function Oj(a) {
|
|
return B(a.match(kv), function (a) {
|
|
return Number(a);
|
|
});
|
|
}
|
|
function Pn(a, c) {
|
|
for (var b = [], d = 0; d < a; d++) b.push(c(d));
|
|
return b;
|
|
}
|
|
function Sa(a, c, b) {
|
|
var d;
|
|
(d = c) && O(d) && (d = d.split(","));
|
|
var e = d
|
|
? function (b) {
|
|
if (-1 < d.indexOf(b)) return !0;
|
|
}
|
|
: function (b) {
|
|
return !1;
|
|
};
|
|
Qn(a, function (a, c, h) {
|
|
if (!e(c)) {
|
|
var f = -1 < c.indexOf("_") ? c.replace(lv, "$1.") : c,
|
|
g = I(a);
|
|
if (-1 < f.indexOf(".")) {
|
|
var m = C(h, f);
|
|
Q(m) ? Z(h, f, a) : "object" === g && Pa(m) && (a = A(m, a));
|
|
delete h[c];
|
|
}
|
|
"object" === g
|
|
? Sa(a, b && d)
|
|
: "array" === g &&
|
|
w(a, function (a) {
|
|
return Sa(a, b && d);
|
|
});
|
|
}
|
|
});
|
|
return a;
|
|
}
|
|
function ce(a) {
|
|
return 0 < a ? 1 : 0 > a ? -1 : 0;
|
|
}
|
|
function na(a, c) {
|
|
void 0 === c && (c = 0);
|
|
return Math.round(a * Math.pow(10, c)) / Math.pow(10, c);
|
|
}
|
|
function ph(a) {
|
|
a = a.slice();
|
|
var c = ea;
|
|
return a
|
|
.sort(function (b, d) {
|
|
return (
|
|
c(a, function (a) {
|
|
return a === b;
|
|
}).length -
|
|
c(a, function (b) {
|
|
return b === d;
|
|
}).length
|
|
);
|
|
})
|
|
.pop();
|
|
}
|
|
function qh(a) {
|
|
a = a.slice();
|
|
a.sort(function (b, a) {
|
|
return b - a;
|
|
});
|
|
var c = Vb.floor(a.length / 2);
|
|
return a.length % 2 ? a[c] : (a[c - 1] + a[c]) / 2;
|
|
}
|
|
function mv(a, c) {
|
|
var b,
|
|
d = c.length;
|
|
if (0 === d) return 0;
|
|
a.pop && (a = Ta(a) / a.length);
|
|
c = c.slice();
|
|
c.sort(function (b, a) {
|
|
return b - a;
|
|
});
|
|
for (b = 0; b < d && !(c[b] > a); b++);
|
|
return (b / d) * 100;
|
|
}
|
|
function Wf(a) {
|
|
return a.length && Ta(a) / a.length;
|
|
}
|
|
function Pj(a, c) {
|
|
return Math.round(a * Math.pow(10, c)) / Math.pow(10, c);
|
|
}
|
|
function Y(a, c, b, d, e) {
|
|
return Qj(b, d) ? a : a + ((e - b) / (d - b)) * (c - a);
|
|
}
|
|
function Rj(a) {
|
|
if (null === a) return "00";
|
|
a = parseInt(a);
|
|
if (0 === a || Ha(a)) return "00";
|
|
a = Math.round(a);
|
|
return "0123456789ABCDEF".charAt((a - (a % 16)) / 16) + "0123456789ABCDEF".charAt(a % 16);
|
|
}
|
|
function Rn(a) {
|
|
var c = function (b) {
|
|
return !Ha(b) && t(b) && null !== b;
|
|
};
|
|
if (a.pop) {
|
|
for (var b = 0, d = a.length; b < d; b++) if (!c(a[b])) return !1;
|
|
return !0;
|
|
}
|
|
return c(a);
|
|
}
|
|
function Sj(a, c) {
|
|
return a < c ? -1 : a > c ? 1 : 0;
|
|
}
|
|
function la(a, c) {
|
|
return a > c ? a - c : c - a;
|
|
}
|
|
function Sn(a) {
|
|
return a * a * Math.PI;
|
|
}
|
|
function Xf(a) {
|
|
return Vb.max.apply(
|
|
Vb,
|
|
H(
|
|
B(a, function (a) {
|
|
return Yf(a);
|
|
})
|
|
)
|
|
);
|
|
}
|
|
function Tn(a, c) {
|
|
var b = a,
|
|
d = [],
|
|
e = function () {
|
|
b = (9301 * b + 49297) % 233280;
|
|
return b / 233280;
|
|
};
|
|
-1 === a &&
|
|
(e = function () {
|
|
return Math.random();
|
|
});
|
|
for (a = 0; a < c; a++) d[a] = e();
|
|
return d;
|
|
}
|
|
function Qj(a, c, b) {
|
|
void 0 === b && (b = Tj);
|
|
return la(a, c) < b;
|
|
}
|
|
function Se(a) {
|
|
var c = a.charCodeAt(0);
|
|
return 64 < c && 91 > c ? String.fromCharCode(c + 32).concat(a.substr(1)) : a;
|
|
}
|
|
function de(a) {
|
|
void 0 === a && (a = 7);
|
|
for (var c = ""; a--; ) c += "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[Math.floor(51 * Math.random())];
|
|
return c;
|
|
}
|
|
function Un(a) {
|
|
return !Ha(parseFloat(a)) && isFinite(parseFloat(a));
|
|
}
|
|
function Vn(a) {
|
|
return (180 * a) / Math.PI;
|
|
}
|
|
function yb(a) {
|
|
return (a * Math.PI) / 180;
|
|
}
|
|
function rh(a) {
|
|
return 360 === a ? a : (a + 36e3) % 360;
|
|
}
|
|
function ee(a, c, b, d) {
|
|
return { x: a + d * Math.cos(b), y: c + d * Math.sin(b) };
|
|
}
|
|
function Uc(a, c, b, d) {
|
|
return ee(a, c, yb(b), d);
|
|
}
|
|
function ra(a, c, b) {
|
|
return Jb(a, yb(c), b);
|
|
}
|
|
function Jb(a, c, b) {
|
|
return [a[0] + b * Math.cos(c), a[1] + b * Math.sin(c)];
|
|
}
|
|
function Uj(a, c) {
|
|
return [(a[0] + c[0]) / 2, (a[1] + c[1]) / 2];
|
|
}
|
|
function Vj(a, c, b) {
|
|
void 0 === b && (b = 0.5);
|
|
return [a[0] + (c[0] - a[0]) * b, a[1] + (c[1] - a[1]) * b];
|
|
}
|
|
function Ia(a, c) {
|
|
a = Wb(a);
|
|
c = Wb(c);
|
|
return ((180 * Math.atan2(c.y - a.y, c.x - a.x)) / Math.PI + 360) % 360;
|
|
}
|
|
function Xb(a, c) {
|
|
a = Wb(a);
|
|
c = Wb(c);
|
|
var b = c.x - a.x;
|
|
a = c.y - a.y;
|
|
return Math.sqrt(b * b + a * a);
|
|
}
|
|
function mc(a, c) {
|
|
var b = c[0] - a[0];
|
|
a = c[1] - a[1];
|
|
return Math.sqrt(b * b + a * a);
|
|
}
|
|
function Te(a, c, b, d) {
|
|
a = Wb(a);
|
|
c = Wb(c);
|
|
b = Wb(b);
|
|
d = Wb(d);
|
|
var e = a.x;
|
|
a = a.y;
|
|
var f = b.x,
|
|
g = b.y;
|
|
b = { x: null, y: null, onLine1: !1, onLine2: !1 };
|
|
var h = d.x - f;
|
|
d = d.y - g;
|
|
var k = c.x - e,
|
|
l = c.y - a;
|
|
c = d * k - h * l;
|
|
if (0 == c)
|
|
return !Bc(d) || !Bc(h) || (Bc(k) && Bc(l)) || !Bc((f - e) * l - (g - a) * k)
|
|
? !Bc(l) || !Bc(k) || (Bc(h) && Bc(d)) || !Bc((e - f) * d - (a - g) * h)
|
|
? b
|
|
: { x: e, y: a, onLine1: !0, onLine2: !0 }
|
|
: { x: f, y: g, onLine1: !0, onLine2: !0 };
|
|
g = a - g;
|
|
f = e - f;
|
|
var m = k * g - l * f;
|
|
g = (h * g - d * f) / c;
|
|
f = m / c;
|
|
b.x = e + g * k;
|
|
b.y = a + g * l;
|
|
0 < g && 1 > g && (b.onLine1 = !0);
|
|
0 < f && 1 > f && (b.onLine2 = !0);
|
|
return b;
|
|
}
|
|
function Wn(a, c, b) {
|
|
var d = Ia(a, c);
|
|
b = Wb(b);
|
|
d = ee(b.x, b.y, yb(d + 90), 5);
|
|
d = Te(a, c, b, d);
|
|
return Xb(b, d);
|
|
}
|
|
function Zf(a, c) {
|
|
var b = a[0];
|
|
a = a[1];
|
|
for (var d = !1, e = 0, f = c.length - 1; e < c.length; f = e++) {
|
|
var g = c[e][0],
|
|
h = c[e][1],
|
|
k = c[f][0];
|
|
f = c[f][1];
|
|
h > a != f > a && b < ((k - g) * (a - h)) / (f - h) + g && (d = !d);
|
|
}
|
|
return d;
|
|
}
|
|
function nv(a, c) {
|
|
var b;
|
|
try {
|
|
for (var d = ya(a), e = d.next(); !e.done; e = d.next()) if (Zf(e.value, c)) return !0;
|
|
} catch (g) {
|
|
var f = { error: g };
|
|
} finally {
|
|
try {
|
|
e && !e.done && (b = d.return) && b.call(d);
|
|
} finally {
|
|
if (f) throw f.error;
|
|
}
|
|
}
|
|
}
|
|
function Xn(a, c, b) {
|
|
a = Wb(a);
|
|
c = Wb(c);
|
|
b = Wb(b);
|
|
a = (c.x - a.x) * (b.y - a.y) - (c.y - a.y) * (b.x - a.x);
|
|
return -1e-11 > a ? -1 : 1e-11 < a ? 1 : 0;
|
|
}
|
|
function $f(a, c, b, d) {
|
|
return function (e) {
|
|
if (0 >= e) {
|
|
var f = 0;
|
|
0 < a ? (f = c / a) : !c && 0 < b && (f = d / b);
|
|
return f * e;
|
|
}
|
|
if (1 <= e) return (f = 0), 1 > b ? (f = (d - 1) / (b - 1)) : 1 === b && 1 > a && (f = (c - 1) / (a - 1)), 1 + f * (e - 1);
|
|
f = 0;
|
|
for (var g = 1, h = 0; f < g; ) {
|
|
h = (f + g) / 2;
|
|
var k = 3 * a * (1 - h) * (1 - h) * h + 3 * b * (1 - h) * h * h + h * h * h;
|
|
if (1e-5 > Math.abs(e - k)) break;
|
|
k < e ? (f = h) : (g = h);
|
|
}
|
|
return 3 * c * (1 - h) * (1 - h) * h + 3 * d * (1 - h) * h * h + h * h * h;
|
|
};
|
|
}
|
|
function Wj(a, c) {
|
|
void 0 === c && (c = 1);
|
|
var b = G(a[0], 2),
|
|
d = b[0];
|
|
b = b[1];
|
|
var e = G(a[1], 2),
|
|
f = e[0];
|
|
e = e[1];
|
|
var g = G(a[2], 2),
|
|
h = g[0];
|
|
g = g[1];
|
|
var k = G(a[3], 2);
|
|
a = k[0];
|
|
k = k[1];
|
|
c /= 2;
|
|
for (
|
|
var l = [-0.1252, 0.1252, -0.3678, 0.3678, -0.5873, 0.5873, -0.7699, 0.7699, -0.9041, 0.9041, -0.9816, 0.9816], m = [0.2491, 0.2491, 0.2335, 0.2335, 0.2032, 0.2032, 0.1601, 0.1601, 0.1069, 0.1069, 0.0472, 0.0472], n = 0, p = 0;
|
|
12 > p;
|
|
p++
|
|
) {
|
|
var q = c * l[p] + c,
|
|
r = q * (q * (-3 * d + 9 * f - 9 * h + 3 * a) + 6 * d - 12 * f + 6 * h) - 3 * d + 3 * f;
|
|
q = q * (q * (-3 * b + 9 * e - 9 * g + 3 * k) + 6 * b - 12 * e + 6 * g) - 3 * b + 3 * e;
|
|
n += m[p] * Math.sqrt(r * r + q * q);
|
|
}
|
|
return c * n;
|
|
}
|
|
function Xj(a, c) {
|
|
var b = G(a[0], 2),
|
|
d = b[0];
|
|
b = b[1];
|
|
var e = G(a[1], 2),
|
|
f = e[0],
|
|
g = e[1];
|
|
e = G(a[2], 2);
|
|
var h = e[0],
|
|
k = e[1];
|
|
e = G(a[3], 2);
|
|
a = e[0];
|
|
e = e[1];
|
|
var l = (f - d) * c + d,
|
|
m = (g - b) * c + b;
|
|
f = (h - f) * c + f;
|
|
g = (k - g) * c + g;
|
|
h = (a - h) * c + h;
|
|
k = (e - k) * c + k;
|
|
var n = (f - l) * c + l,
|
|
p = (g - m) * c + m;
|
|
f = (h - f) * c + f;
|
|
g = (k - g) * c + g;
|
|
return [
|
|
[d, b],
|
|
[l, m],
|
|
[n, p],
|
|
[(f - n) * c + n, (g - p) * c + p],
|
|
[f, g],
|
|
[h, k],
|
|
[a, e],
|
|
];
|
|
}
|
|
function ov(a, c, b, d, e, f) {
|
|
var g = [];
|
|
a: {
|
|
var h = a[0];
|
|
a = a[1];
|
|
var k = c[0];
|
|
c = c[1];
|
|
var l = b[0];
|
|
b = b[1];
|
|
var m = d[0];
|
|
d = d[1];
|
|
var n = e[0];
|
|
e = e[1];
|
|
var p = f[0];
|
|
f = f[1];
|
|
var q = Math.min(n, p),
|
|
r = Math.min(e, f),
|
|
u = Math.max(n, p),
|
|
x = Math.max(e, f),
|
|
v,
|
|
y = e - f,
|
|
D = p - n;
|
|
y = [y * (-1 * h + 3 * k + -3 * l + m) + D * (-1 * a + 3 * c + -3 * b + d), y * (3 * h + -6 * k + 3 * l) + D * (3 * a + -6 * c + 3 * b), y * (-3 * h + 3 * k) + D * (-3 * a + 3 * c), y * h + D * a + (n * f - p * e)];
|
|
D = v = y.length - 1;
|
|
var E = [];
|
|
for (var F = 0; F <= v; F++)
|
|
if (1e-8 >= Math.abs(y[F])) v--;
|
|
else break;
|
|
switch (v) {
|
|
case 1:
|
|
v = y[D - 1];
|
|
F = E;
|
|
void 0 === F && (F = []);
|
|
0 !== v && F.push(-y[D] / v);
|
|
break;
|
|
case 2:
|
|
var t = y[D - 2];
|
|
v = E;
|
|
void 0 === v && (v = []);
|
|
F = y[D - 1] / t;
|
|
y = F * F - (y[D] / t) * 4;
|
|
0 < y ? ((y = Math.sqrt(y)), v.push(0.5 * (-F + y)), v.push(0.5 * (-F - y))) : 0 === y && v.push(0.5 * -F);
|
|
break;
|
|
case 3:
|
|
var w = y[D - 3];
|
|
v = E;
|
|
void 0 === v && (v = []);
|
|
t = y[D - 2] / w;
|
|
var wa = y[D - 1] / w;
|
|
F = (3 * wa - t * t) / 3;
|
|
D = (2 * t * t * t - 9 * wa * t + (y[D] / w) * 27) / 27;
|
|
y = t / 3;
|
|
t = (D * D) / 4 + (F * F * F) / 27;
|
|
D /= 2;
|
|
1e-6 >= Math.abs(t) && (t = 0);
|
|
0 < t
|
|
? ((w = Math.sqrt(t)), (F = -D + w), (t = 0 <= F ? Math.pow(F, 1 / 3) : -Math.pow(-F, 1 / 3)), (F = -D - w), (t = 0 <= F ? t + Math.pow(F, 1 / 3) : t - Math.pow(-F, 1 / 3)), v.push(t - y))
|
|
: 0 > t
|
|
? ((F = Math.sqrt(-F / 3)), (t = Math.atan2(Math.sqrt(-t), -D) / 3), (D = Math.cos(t)), (t = Math.sin(t)), (w = Math.sqrt(3)), v.push(2 * F * D - y), v.push(-F * (D + w * t) - y), v.push(-F * (D - w * t) - y))
|
|
: ((F = 0 <= D ? -Math.pow(D, 1 / 3) : Math.pow(-D, 1 / 3)), v.push(2 * F - y), v.push(-F - y));
|
|
}
|
|
for (v = 0; v < E.length; v++)
|
|
if (((y = E[v]), 0 <= y && 1 >= y))
|
|
if (
|
|
((w = h + (k - h) * y),
|
|
(t = a + (c - a) * y),
|
|
(F = k + (l - k) * y),
|
|
(D = c + (b - c) * y),
|
|
(w += (F - w) * y),
|
|
(t += (D - t) * y),
|
|
(F = w + (F + (l + (m - l) * y - F) * y - w) * y),
|
|
(y = t + (D + (b + (d - b) * y - D) * y - t) * y),
|
|
1e-7 > Math.abs(n - p))
|
|
) {
|
|
if (r <= y && y <= x)
|
|
if (g) g.push([F, y]);
|
|
else break a;
|
|
} else if (1e-7 > Math.abs(e - f)) {
|
|
if (q <= F && F <= u)
|
|
if (g) g.push([F, y]);
|
|
else break a;
|
|
} else if (F >= q && y >= r && F <= u && y <= x)
|
|
if (g) g.push([F, y]);
|
|
else break a;
|
|
}
|
|
return g;
|
|
}
|
|
function pv() {
|
|
for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c];
|
|
var b = G(a[0], 2);
|
|
c = b[0];
|
|
b = b[1];
|
|
var d = G(a[1], 2),
|
|
e = d[0];
|
|
d = d[1];
|
|
var f = G(a[2], 2),
|
|
g = f[0];
|
|
f = f[1];
|
|
a = G(a[3], 2);
|
|
var h = a[0],
|
|
k = a[1],
|
|
l,
|
|
m,
|
|
n = (l = Number.POSITIVE_INFINITY),
|
|
p = (m = Number.NEGATIVE_INFINITY);
|
|
a = e - c;
|
|
var q = d - b,
|
|
r = g - e,
|
|
u = f - d;
|
|
h -= g;
|
|
k -= f;
|
|
for (var x = 0; 1.001 > x; x += 0.025) {
|
|
var v = c + x * a,
|
|
y = b + x * q,
|
|
D = e + x * r,
|
|
E = d + x * u,
|
|
F = g + x * h,
|
|
t = f + x * k,
|
|
w = D - v,
|
|
wa = E - y;
|
|
F -= D;
|
|
t -= E;
|
|
v += x * w;
|
|
y += x * wa;
|
|
D += x * F;
|
|
E += x * t;
|
|
D -= v;
|
|
E -= y;
|
|
D = v + x * D;
|
|
E = y + x * E;
|
|
n = Math.min(n, D);
|
|
l = Math.min(l, E);
|
|
p = Math.max(p, D);
|
|
m = Math.max(m, E);
|
|
}
|
|
return [n, l, p - n, m - l];
|
|
}
|
|
function Wb(a) {
|
|
a.pop && (a = { x: a[0], y: a[1] });
|
|
return a;
|
|
}
|
|
function qv(a, c, b, d, e, f) {
|
|
void 0 === f && (f = 0);
|
|
f = ((0 > e ? b : d)[1] - f) / Math.abs(Math.sin(yb(e)));
|
|
f = Math.min(f, (0 <= e ? b : d)[0]);
|
|
return c - a < f;
|
|
}
|
|
function Yn(a) {
|
|
var c = rh(a);
|
|
return 90 < c && 270 > c ? rh(c + 180) : a;
|
|
}
|
|
function Bc(a) {
|
|
return 1e-7 > Math.abs(a);
|
|
}
|
|
function ag(a, c) {
|
|
return S(a, function (b) {
|
|
return Kb(b, c);
|
|
});
|
|
}
|
|
function Ue(a, c) {
|
|
c = G(Zn([Ve(a), Ve(c)]), 2);
|
|
a = c[0];
|
|
c = c[1];
|
|
if ($n(a, c)) return c;
|
|
if ($n(c, a)) return a;
|
|
if (c[0] < a[1]) return [c[0], a[1]];
|
|
}
|
|
function bg(a, c) {
|
|
var b = [];
|
|
We(a, function (a) {
|
|
return Xe(b, Ue(a, c));
|
|
});
|
|
return b;
|
|
}
|
|
function Yj(a, c) {
|
|
var b = 0,
|
|
d = c[0] - a[0],
|
|
e = a[1] - c[1],
|
|
f = (a[1] + a[0]) / 2,
|
|
g = (c[1] + c[0]) / 2;
|
|
c[1] - c[0] > a[1] - a[0] ? (b = f - g) : 0 > d ? (b = -d) : 0 > e && (b = e);
|
|
c[0] += b;
|
|
c[1] += b;
|
|
return c;
|
|
}
|
|
function ao(a, c) {
|
|
for (var b = 0; b < a.length; b++) if (Kb(Ve(a[b]), c)) return b;
|
|
return -1;
|
|
}
|
|
function rv(a, c) {
|
|
We(c, function (b) {
|
|
var c;
|
|
try {
|
|
for (var e = ya(a), f = e.next(); !f.done; f = e.next()) {
|
|
var g = f.value,
|
|
h = g,
|
|
k = b;
|
|
if (fe(h, k[0]) || fe(h, k[1])) {
|
|
h = g;
|
|
k = b;
|
|
if (fe(h, k[0]) && fe(h, k[1]))
|
|
var l = g,
|
|
m = [
|
|
[g[0], b[0]],
|
|
[b[1], g[1]],
|
|
];
|
|
else var n = g;
|
|
break;
|
|
}
|
|
}
|
|
} catch (q) {
|
|
var p = { error: q };
|
|
} finally {
|
|
try {
|
|
f && !f.done && (c = e.return) && c.call(e);
|
|
} finally {
|
|
if (p) throw p.error;
|
|
}
|
|
}
|
|
l && ((p = a.indexOf(l)), a.splice.apply(a, H([p, 1], m)));
|
|
n && ((m = a.indexOf(n)), (b = fe(n, b[0]) ? [n[0], b[0]] : fe(n, b[1]) ? [b[1], n[1]] : void 0), (a[m] = b));
|
|
return a;
|
|
});
|
|
return a;
|
|
}
|
|
function Zj(a, c, b) {
|
|
var d;
|
|
b /= 2;
|
|
var e = [];
|
|
try {
|
|
for (var f = ya(a), g = f.next(); !g.done; g = f.next()) {
|
|
var h = g.value;
|
|
e.push([ua(h - b, c[0], c[1]), ua(h + b, c[0], c[1])]);
|
|
}
|
|
} catch (l) {
|
|
var k = { error: l };
|
|
} finally {
|
|
try {
|
|
g && !g.done && (d = f.return) && d.call(f);
|
|
} finally {
|
|
if (k) throw k.error;
|
|
}
|
|
}
|
|
return e;
|
|
}
|
|
function cg(a, c) {
|
|
var b = [],
|
|
d;
|
|
a = bo(a) ? a : Zn(a.slice(0));
|
|
if (bo(a))
|
|
return (
|
|
(c = c || sv(a)),
|
|
We(a, function (a, f, g) {
|
|
!f && a[0] > c[0] ? b.push([c[0], Math.min(a[0], c[1])]) : f && a[0] > c[0] && d[1] !== a[0] && b.push([Math.max(d[1], c[0]), Math.min(a[0], c[1])]);
|
|
g && a[1] < c[1] && b.push([Math.max(c[0], a[1]), c[1]]);
|
|
d = a;
|
|
}),
|
|
b
|
|
);
|
|
}
|
|
function sv(a) {
|
|
a = co(a);
|
|
return [Math.min.apply(Math, H(a)), Math.max.apply(Math, H(a))];
|
|
}
|
|
function tv(a) {
|
|
var c;
|
|
We(a, function (b) {
|
|
return (c = c && la(c[0], c[1]) > la(b[0], b[1]) ? c : b);
|
|
});
|
|
return c;
|
|
}
|
|
function co(a) {
|
|
var c = [];
|
|
We(a, function (b) {
|
|
return c.push.apply(c, H(b));
|
|
});
|
|
return c;
|
|
}
|
|
function eo(a) {
|
|
var c = 0;
|
|
We(a, function (b) {
|
|
return (c += b[1] - b[0]);
|
|
});
|
|
return c;
|
|
}
|
|
function Zn(a, c) {
|
|
void 0 === c && (c = !1);
|
|
return a.sort(function (b, a) {
|
|
return c ? a[0] - b[0] : b[0] - a[0];
|
|
});
|
|
}
|
|
function We(a, c) {
|
|
for (var b = 0, d = a.length; b < d && !1 !== c(a[b], b, b === a.length - 1, b ? a[b - 1] : void 0); b++);
|
|
}
|
|
function bo(a) {
|
|
for (var c = 0, b = a.length; c < b; c++) if (c && a[c][0] < a[c - 1][0]) return !1;
|
|
return !0;
|
|
}
|
|
function fo(a, c, b) {
|
|
b && ((a = go(a, b)), (c = go(c, b)));
|
|
b = a;
|
|
var d = c;
|
|
b = b[2] * b[3] === d[2] * d[3] && b[2] === d[2] ? 0 : b < d ? -1 : b > d ? 1 : 0;
|
|
return 0 === b && a[0] === c[0] && a[1] === c[1] ? 0 : 0 === b ? -1 : b;
|
|
}
|
|
function go(a, c) {
|
|
return B(a, function (b) {
|
|
return na(b, c);
|
|
});
|
|
}
|
|
function rb(a, c) {
|
|
return [a[0] + c, a[1] + c, a[2] - 2 * c, a[3] - 2 * c];
|
|
}
|
|
function Ye(a, c) {
|
|
return mb(va(a), c);
|
|
}
|
|
function Ea(a) {
|
|
var c = [],
|
|
b;
|
|
if (a && a.length) {
|
|
for (var d = 0, e = a.length; d < e; d++) if ((b = a[d])) c.push([b[0], b[1]]), c.push([b[0] + b[2], b[1] + b[3]]);
|
|
return Ua(c);
|
|
}
|
|
}
|
|
function ho(a) {
|
|
for (var c = a[0], b = 1, d = a.length; b < d; b++)
|
|
if (((c = sh(c, a[b])), 0 >= c[2] || 0 >= c[3])) {
|
|
c = null;
|
|
break;
|
|
}
|
|
return c;
|
|
}
|
|
function Ua(a) {
|
|
if (!a.length) return [0, 0, 0, 0];
|
|
var c = a[0],
|
|
b = c[0],
|
|
d = c[0],
|
|
e = c[1];
|
|
c = c[1];
|
|
for (var f, g, h = 0, k = a.length; h < k; h++) {
|
|
var l = a[h];
|
|
(f = l[0]) > d && (d = f);
|
|
f < b && (b = f);
|
|
(g = l[1]) > c && (c = g);
|
|
g < e && (e = g);
|
|
}
|
|
return [b, e, d - b, c - e];
|
|
}
|
|
function uv(a, c) {
|
|
return Ea([a, Ua(c)]);
|
|
}
|
|
function th(a, c) {
|
|
return mb(va(a), [Math.max(a[2], c[0]), Math.max(a[3], c[1])]);
|
|
}
|
|
function vv(a, c) {
|
|
var b = G(a, 4);
|
|
a = b[2];
|
|
b = b[3];
|
|
c = G(c, 4);
|
|
c = Math.min(c[3] / b, c[2] / a);
|
|
return [a * c, b * c];
|
|
}
|
|
function va(a) {
|
|
return [Vc(a), Wc(a)];
|
|
}
|
|
function sh(a, c) {
|
|
a = a.slice(0);
|
|
c = Yb(c);
|
|
a = ak(a, c[0]);
|
|
a = bk(a, c[1]);
|
|
a = ck(a, c[2]);
|
|
return dk(a, c[3]);
|
|
}
|
|
function ak(a, c) {
|
|
var b = Va(a);
|
|
a[0] = a[0] < c ? c : a[0];
|
|
a[2] = b < c ? c - a[0] : b - a[0];
|
|
return a;
|
|
}
|
|
function bk(a, c) {
|
|
var b = Wa(a);
|
|
a[1] = a[1] < c ? c : a[1];
|
|
a[3] = b < c ? c - a[1] : b - a[1];
|
|
return a;
|
|
}
|
|
function ck(a, c) {
|
|
var b = Va(a);
|
|
a[0] = a[0] > c ? c : a[0];
|
|
a[2] = b > c ? c - a[0] : b - a[0];
|
|
return a;
|
|
}
|
|
function dk(a, c) {
|
|
var b = Wa(a);
|
|
a[1] = a[1] > c ? c : a[1];
|
|
a[3] = b > c ? c - a[1] : b - a[1];
|
|
return a;
|
|
}
|
|
function io(a, c) {
|
|
return Ye(a, [a[2] + c[0] + c[2], a[3] + c[1] + c[3]]);
|
|
}
|
|
function jo(a, c) {
|
|
return io(
|
|
a,
|
|
c.map(function (b) {
|
|
return -b;
|
|
})
|
|
);
|
|
}
|
|
function ha(a) {
|
|
return [a.x, a.y, a.width, a.height];
|
|
}
|
|
function mb(a, c) {
|
|
return [a[0] - c[0] / 2, a[1] - c[1] / 2, c[0], c[1]];
|
|
}
|
|
function Cc(a) {
|
|
var c;
|
|
a.length &&
|
|
(c = a[0].pop
|
|
? B(a, function (b) {
|
|
return ko(b);
|
|
}).join(" ")
|
|
: ko(a));
|
|
return c;
|
|
}
|
|
function wv(a, c) {
|
|
var b = c[0][1] == c[1][1];
|
|
if (c[0][0] > c[1][0] || c[0][1] > c[1][1]) c = [c[1], c[0]];
|
|
var d = [],
|
|
e,
|
|
f;
|
|
b ? (c[0][0] < a[0] && (e = [c[0], [a[0], c[0][1]]]), c[1][0] > a[0] + a[2] && (f = [[a[0] + a[2], c[1][1]], c[1]])) : (c[0][1] < a[1] && (e = [c[0], [c[0][0], a[1]]]), c[1][1] > a[1] + a[3] && (f = [[c[1][0], a[1] + a[3]], c[1]]));
|
|
e && d.push(e);
|
|
f && d.push(f);
|
|
return d;
|
|
}
|
|
function lo(a, c, b, d, e, f) {
|
|
c = ek(a, c, [ge.x(b), ge.x(d), ge.y(e), ge.y(f)]);
|
|
return Xc(a, c);
|
|
}
|
|
function he(a, c, b, d) {
|
|
b = nc.x(b);
|
|
d = nc.y(d);
|
|
return { box: Xc(a, ek(a, c, [b[0], b[1], d[0], d[1]])), contentAlignment: [b[2], d[2]] };
|
|
}
|
|
function ek(a, c, b) {
|
|
var d = b[0];
|
|
d = (0, b[1])(c) - d(a);
|
|
var e = b[2];
|
|
a = (0, b[3])(c) - e(a);
|
|
return [d, a];
|
|
}
|
|
function fk(a, c) {
|
|
return [a[0] - c[0], a[1] - c[1]];
|
|
}
|
|
function mo(a, c) {
|
|
a = uh(a.slice(0), c);
|
|
for (var b = [], d = 0, e = a.length; d < e; d++) {
|
|
var f = a[d];
|
|
if (d) {
|
|
var g = vh(f, b, c);
|
|
f[0] = g[0];
|
|
f[1] = g[1];
|
|
}
|
|
b.push(f);
|
|
}
|
|
return b;
|
|
}
|
|
function vh(a, c, b) {
|
|
if (!Yc(c, a)) return a;
|
|
var d = [],
|
|
e = !1,
|
|
f = "v" === { u: "v", d: "v", l: "h", r: "h" }[b],
|
|
g = f ? xd : yd;
|
|
f = f ? Va : Wa;
|
|
for (var h = g(a), k = f(a), l = 0, m = c.length; l < m; l++) {
|
|
var n = c[l];
|
|
g(n) > k || f(n) < h || d.push(n);
|
|
}
|
|
d = uh(d, b);
|
|
c = 0;
|
|
for (a = a.slice(0); !e; ) {
|
|
g = d[c++];
|
|
if (zd(a, g) && ((e = a), (g = [g]), (f = b), (h = 1 < g.length ? Ea(g) : g[0]), Yc(g, e)))
|
|
switch (f) {
|
|
case "u":
|
|
e[1] = h[1] - e[3];
|
|
break;
|
|
case "l":
|
|
e[0] = h[0] - e[2];
|
|
break;
|
|
case "d":
|
|
e[1] = Wa(h);
|
|
break;
|
|
case "r":
|
|
e[0] = Va(h);
|
|
}
|
|
e = !Yc(d.slice(c), a) || c >= d.length;
|
|
}
|
|
return a;
|
|
}
|
|
function gk(a, c) {
|
|
var b = va(a),
|
|
d = Yb(a);
|
|
w(c, function (a) {
|
|
if (zd(Ze(d), a)) {
|
|
var c = va(a);
|
|
c = fk(b, c);
|
|
1 < Math.abs(c[1]) ? (0 < c[1] ? (d[1] = Wa(a)) : (d[3] = a[1])) : 1 < Math.abs(c[0]) && (0 > c[0] ? (d[2] = a[0]) : (d[0] = Va(a)));
|
|
}
|
|
});
|
|
return Ze(d);
|
|
}
|
|
function uh(a, c) {
|
|
c = { u: { getter: Wa, dir: "desc" }, d: { getter: yd }, l: { getter: Va, dir: "desc" }, r: { getter: xd } }[c];
|
|
var b = c.getter,
|
|
d = function (a, c) {
|
|
a = b(a);
|
|
c = b(c);
|
|
return a < c ? -1 : a > c ? 1 : 0;
|
|
};
|
|
a.sort(
|
|
"desc" === c.dir
|
|
? function (b, a) {
|
|
return d(a, b);
|
|
}
|
|
: d
|
|
);
|
|
return a;
|
|
}
|
|
function Zc(a, c) {
|
|
a = no(a, c);
|
|
return oo(a, c);
|
|
}
|
|
function no(a, c) {
|
|
c = Yj([c[0], Va(c)], [a[0], Va(a)]);
|
|
return [c[0], a[1], c[1] - c[0], a[3]];
|
|
}
|
|
function oo(a, c) {
|
|
c = Yj([c[1], Wa(c)], [a[1], Wa(a)]);
|
|
return [a[0], c[0], a[2], c[1] - c[0]];
|
|
}
|
|
function $c(a, c) {
|
|
var b = a[0],
|
|
d = c[0];
|
|
if ((b = !(d < b || d + c[2] > b + a[2]))) (b = a[1]), (d = c[1]), (b = !(d < b || d + c[3] > b + a[3]));
|
|
return b;
|
|
}
|
|
function Ad(a, c) {
|
|
return c[0] > a[0] && c[0] < a[0] + a[2] && c[1] > a[1] && c[1] < a[1] + a[3];
|
|
}
|
|
function po(a, c, b) {
|
|
return c[0] - a[0] > b && a[0] + a[2] - c[0] > b && c[1] - a[1] > b && a[1] + a[3] - c[1] > b;
|
|
}
|
|
function zd(a, c) {
|
|
var b = a[0],
|
|
d = c[0];
|
|
return b + 0.01 < d + c[2] && b + a[2] > d + 0.01 && a[1] + 0.01 < c[1] + c[3] && a[1] + a[3] > c[1] + 0.01;
|
|
}
|
|
function xv(a, c) {
|
|
if (!zd(a, c)) return 0;
|
|
var b = Math.max(a[0], c[0]) - Math.min(Va(a), Va(c)),
|
|
d = Math.max(a[1], c[1]) - Math.min(Wa(a), Wa(c));
|
|
b *= d;
|
|
return b / (a[2] * a[3] + c[2] * c[3] - b);
|
|
}
|
|
function Yc(a, c, b) {
|
|
for (var d = 0, e = a.length; d < e; d++) if ((!b || a[d].id !== b) && zd(a[d], c)) return !0;
|
|
}
|
|
function qo(a) {
|
|
for (var c = 0, b = a.length; c < b; c++) for (var d = c; d < b; d++) if (d !== c && zd(a[c], a[d])) return !0;
|
|
}
|
|
function ro(a, c) {
|
|
var b = [],
|
|
d = function (a) {
|
|
a = Te(a[0], a[1], c[0], c[1]);
|
|
a.onLine1 && a.onLine2 && b.push([a.x, a.y]);
|
|
},
|
|
e = ie(a, "bl,br"),
|
|
f = ie(a, "tl,tr"),
|
|
g = ie(a, "tr,br");
|
|
a = ie(a, "tl,bl");
|
|
d(f);
|
|
d(g);
|
|
d(e);
|
|
d(a);
|
|
return b.length ? b : void 0;
|
|
}
|
|
function hk(a, c, b) {
|
|
return Ua(ik(a, c, b));
|
|
}
|
|
function ik(a, c, b) {
|
|
var d = c[0],
|
|
e = G(a, 4);
|
|
a = e[0];
|
|
var f = e[1],
|
|
g = a + e[2];
|
|
e = f + e[3];
|
|
var h = [a + c[1], f + c[2]];
|
|
c = [a, f];
|
|
f = [g, f];
|
|
g = [g, e];
|
|
a = [a, e];
|
|
b = B(b ? [c, a] : [c, f, g, a], function (b) {
|
|
return { x: b[0], y: b[1], angle: Ia(h, b), len: Xb(h, b) };
|
|
});
|
|
return (b = B(b, function (b) {
|
|
b = Uc(h[0], h[1], b.angle + d, b.len);
|
|
return [b.x, b.y];
|
|
}));
|
|
}
|
|
function yv(a, c) {
|
|
w(a, function (b) {
|
|
sa(b, function (b) {
|
|
return b[3];
|
|
});
|
|
b.reverse();
|
|
});
|
|
return zv(a, c);
|
|
}
|
|
function zv(a, c) {
|
|
var b = c.limitBox,
|
|
d,
|
|
e,
|
|
f = Math.max.apply(
|
|
Math,
|
|
H(
|
|
B(a, function (b) {
|
|
return P(b)[2];
|
|
})
|
|
)
|
|
);
|
|
if (t(c.masterSet))
|
|
var g = B(a[c.masterSet], function (b) {
|
|
return [2];
|
|
});
|
|
else
|
|
(g = []),
|
|
w(a, function (b) {
|
|
g.push.apply(
|
|
g,
|
|
H(
|
|
B(b, function (b) {
|
|
return b[2];
|
|
})
|
|
)
|
|
);
|
|
});
|
|
g = ad(
|
|
ea(g, function (b) {
|
|
return b >= f;
|
|
}).sort(function (b, a) {
|
|
return b > a ? 1 : -1;
|
|
})
|
|
);
|
|
var h = function (b) {
|
|
var c = [],
|
|
d = B(a, function (a) {
|
|
a = a.slice(0);
|
|
a = S(a, function (a) {
|
|
return a[2] <= b;
|
|
});
|
|
c.push(a[2]);
|
|
return a;
|
|
}),
|
|
e = 0;
|
|
w(d, function (b) {
|
|
return (e += b[3]);
|
|
});
|
|
var f = [0, 0, Math.max.apply(Math, H(c)), e];
|
|
f.ids = B(d, function (b) {
|
|
return b.id;
|
|
});
|
|
return f;
|
|
};
|
|
w(g, function (a) {
|
|
a = h(a);
|
|
if (a[3] < b[3]) return (d = a), !1;
|
|
e = a;
|
|
});
|
|
return d || e;
|
|
}
|
|
function Av(a) {
|
|
for (var c = [], b = 1, d = Math.round(Math.sqrt(a)); b <= d; b++) c.push([b, Math.ceil(a / b)]);
|
|
a = B(c, function (b) {
|
|
return [b[1], b[0]];
|
|
}).reverse();
|
|
c.push.apply(c, H(a));
|
|
return c;
|
|
}
|
|
function Bv(a) {
|
|
return B(Av(a), function (a) {
|
|
return a[0];
|
|
});
|
|
}
|
|
function so() {
|
|
if (jk) return jk;
|
|
for (var a = ba.getElementsByTagName("script"), c = 0; c < a.length; c++) {
|
|
var b = a[c],
|
|
d = b.getAttribute("src");
|
|
if (d && 0 !== b.src.indexOf("file://") && ((b = d.split("?")[0]), (d = b.split("/").slice(-1)[0].toLowerCase()), "jscharting.js" === d || (0 === d.indexOf("jscharting") && d.indexOf(".js") === d.length - 3)))
|
|
return (jk = b.split("/").slice(0, -1).join("/"));
|
|
}
|
|
}
|
|
function je() {
|
|
return kk ? kk : (kk = so() || "https://code.jscharting.com/3.0.2");
|
|
}
|
|
function to() {
|
|
var a = T.JSC;
|
|
return !so() && (!a || !a.chart);
|
|
}
|
|
function lk(a, c, b, d) {
|
|
wh(a, c, b, d, Cv);
|
|
}
|
|
function Dv(a, c, b, d) {
|
|
wh(a, c, b, d, function (b) {
|
|
return b;
|
|
});
|
|
}
|
|
function wh(a, c, b, d, e) {
|
|
Ev(a, {
|
|
success: function (d) {
|
|
var f = d.responseText;
|
|
if (f)
|
|
try {
|
|
f = e(f);
|
|
} catch (h) {
|
|
b && b({ path: a, data: f, status: d.status, state: "parsererror", error: h });
|
|
}
|
|
c && c({ path: a, status: d.status, data: f });
|
|
},
|
|
error: function (c) {
|
|
b && b({ path: a, status: c.status });
|
|
},
|
|
async: !d,
|
|
});
|
|
}
|
|
function Fv(a) {
|
|
return "object" === typeof HTMLElement ? a instanceof HTMLElement : a && "object" === typeof a && null !== a && 1 === a.nodeType && "string" === typeof a.nodeName;
|
|
}
|
|
function Cv(a) {
|
|
var c = ba.createElement("script");
|
|
c.type = "text/javascript";
|
|
c.text = a;
|
|
ba.head.appendChild(c).parentNode.removeChild(c);
|
|
}
|
|
function Ev(a, c) {
|
|
var b = new XMLHttpRequest(),
|
|
d = c || {};
|
|
c = d.data;
|
|
var e = d.success,
|
|
f = d.error,
|
|
g = I(c);
|
|
d = !1 !== d.async;
|
|
if (b) {
|
|
if ("function" === g) (e = c), (c = null);
|
|
else if ("object" === g) {
|
|
g = [];
|
|
for (var h in c) c.hasOwnProperty(h) && g.push(encodeURIComponent(h) + "=" + encodeURIComponent(c[h]));
|
|
c = g.join("&");
|
|
}
|
|
b.open(c ? "POST" : "GET", a, d);
|
|
c && (b.setRequestHeader("X-Requested-With", "XMLHttpRequest"), b.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), b.setRequestHeader("Api-Key", "foobar"));
|
|
b.onreadystatechange = function () {
|
|
if (4 === b.readyState) {
|
|
var a = b.status;
|
|
a = (200 <= a && 300 > a) || 304 === a;
|
|
e && a && e(b);
|
|
if (f && !a) return f(b);
|
|
}
|
|
};
|
|
if (4 === b.readyState) return b;
|
|
b.send(c);
|
|
return b;
|
|
}
|
|
}
|
|
function Gv(a, c) {
|
|
function b() {
|
|
new Date().getTime() - d >= c ? a.call() : (e.value = T.requestAnimationFrame(b));
|
|
}
|
|
var d = new Date().getTime(),
|
|
e = {};
|
|
e.value = T.requestAnimationFrame(b);
|
|
return e;
|
|
}
|
|
function Hv(a) {
|
|
a && a.value && T.cancelAnimationFrame(a.value);
|
|
}
|
|
function uo(a, c) {
|
|
void 0 === c && (c = 1);
|
|
var b = c,
|
|
d = function () {
|
|
1 > b ? setTimeout(a, 0) : (b--, T.requestAnimationFrame(d));
|
|
};
|
|
d();
|
|
}
|
|
function Iv(a, c) {
|
|
return new T.Intl.DateTimeFormat(a, c);
|
|
}
|
|
function Jv(a, c) {
|
|
return new T.Intl.NumberFormat(a, c);
|
|
}
|
|
function Kv(a, c) {
|
|
var b = T.Intl.Collator;
|
|
return b ? new b(a, c) : null;
|
|
}
|
|
function Lv(a, c, b) {
|
|
var d = b._getNumberFormat(b.locale, b.options);
|
|
if (d) {
|
|
if (c || b.formatString) {
|
|
var e = c || b.formatString;
|
|
c = Ka.None;
|
|
var f = Mv.exec(e)[0];
|
|
switch (f.toLowerCase()) {
|
|
case "c":
|
|
c = Ka.Currency;
|
|
break;
|
|
case "n":
|
|
c = Ka.Number;
|
|
break;
|
|
case "p":
|
|
c = Ka.Percent;
|
|
break;
|
|
case "f":
|
|
c = Ka.Float;
|
|
break;
|
|
case "d":
|
|
c = Ka.Decimal;
|
|
break;
|
|
case "e":
|
|
c = Ka.Exponential;
|
|
break;
|
|
case "g":
|
|
c = Ka.General;
|
|
break;
|
|
case "a":
|
|
c = Ka.NumericSymbol;
|
|
break;
|
|
case "t":
|
|
c = Ka.PowersOfTen;
|
|
break;
|
|
case "x":
|
|
c = Ka.Hexadecimal;
|
|
var g = f === f.toLowerCase() ? "lower" : "upper";
|
|
}
|
|
e = Nv.exec(e);
|
|
e = null === e ? null : parseInt(e[0]);
|
|
g = { type: c, specifier: e, charCase: g };
|
|
if (g.type) return Ov(g, a, b);
|
|
}
|
|
return d.format(a);
|
|
}
|
|
return null !== a ? a.toLocaleString() : "";
|
|
}
|
|
function Pv(a, c, b) {
|
|
void 0 === c && (c = {});
|
|
if (!a) return "";
|
|
var d = O(c),
|
|
e = d ? c : c.formatString || b.formatString,
|
|
f = Qv[e];
|
|
if (f) {
|
|
var g = f.options;
|
|
if (!g && f.formatString) return vo(a, f.formatString, b);
|
|
if (!g && f.handler) return f.handler(a);
|
|
c = W(d ? {} : c, g || {});
|
|
c = b._getDateTimeFormat(b.locale, c);
|
|
} else c = b._getDateTimeFormat(b.locale, b.options);
|
|
return c ? (e && !f ? vo(a, e, b) : c.format(a)) : a.toLocaleDateString();
|
|
}
|
|
function Ov(a, c, b) {
|
|
var d = function (b, a) {
|
|
return function (c) {
|
|
return Math.min(Math.max(parseInt(c || 0), b), a);
|
|
};
|
|
},
|
|
e = function (b) {
|
|
return d(0, 20)(b);
|
|
},
|
|
f = function (b) {
|
|
return d(1, 21)(b);
|
|
},
|
|
g = W({ minimumFractionDigits: 0, maximumFractionDigits: 2 }, b.options),
|
|
h = !0,
|
|
k = T.Intl.NumberFormat;
|
|
if (!k) return c;
|
|
switch (a.type) {
|
|
case Ka.Number:
|
|
case Ka.Float:
|
|
g.style = "decimal";
|
|
null !== a.specifier && ((g.maximumFractionDigits = e(a.specifier)), (g.minimumFractionDigits = e(a.specifier)));
|
|
break;
|
|
case Ka.Currency:
|
|
g.style = "currency";
|
|
g.currency = Rv(b.locale);
|
|
a = lc(a.specifier) ? 2 : a.specifier;
|
|
g.minimumFractionDigits = e(a);
|
|
g.maximumFractionDigits = e(a);
|
|
break;
|
|
case Ka.Percent:
|
|
g.style = "percent";
|
|
a.specifier && (g.minimumFractionDigits = e(a.specifier));
|
|
break;
|
|
case Ka.Decimal:
|
|
g.style = "decimal";
|
|
g.useGrouping = g.useGrouping || !1;
|
|
null !== a.specifier && ((g.maximumFractionDigits = e(a.specifier)), (g.minimumFractionDigits = e(a.specifier)));
|
|
break;
|
|
case Ka.Exponential:
|
|
c = c.toExponential(a.specifier);
|
|
h = !1;
|
|
break;
|
|
case Ka.General:
|
|
g.style = "decimal";
|
|
a.specifier && (g.maximumSignificantDigits = f(a.specifier));
|
|
break;
|
|
case Ka.Hexadecimal:
|
|
c = c.toString(16);
|
|
a.specifier && (c = Zb(c, a.specifier));
|
|
"upper" === a.charCase && (c = c.toUpperCase());
|
|
h = !1;
|
|
break;
|
|
case Ka.NumericSymbol:
|
|
c = Sv(c, a.specifier);
|
|
h = !1;
|
|
break;
|
|
case Ka.PowersOfTen:
|
|
if (c) {
|
|
h = Math.floor(Pj(Math.log(Math.abs(c)) / Math.log(10), 6));
|
|
e = c / Math.pow(10, h);
|
|
var l = a.specifier || 0;
|
|
a = 1e-5 > Math.abs(Math.abs(e) - 1);
|
|
f = e % 1 ? 2 : 0;
|
|
if (Math.abs(c) >= Math.pow(10, l) || Math.abs(c) <= Math.pow(10, -l)) (c = "10<sup>" + h + "</sup>"), (c = (a ? (0 > e ? "-" : "") : e.toFixed(f) + "\u22c5") + c);
|
|
}
|
|
h = !1;
|
|
}
|
|
if (!h) return c.toString();
|
|
delete g.specifier;
|
|
return new k(b.locale, g).format(c);
|
|
}
|
|
function vo(a, c, b) {
|
|
var d = function (a, c) {
|
|
b.dateTimeFormatters[c] || (b.dateTimeFormatters[c] = b._getDateTimeFormat(b.locale, a));
|
|
};
|
|
return c.replace(Tv, function (c) {
|
|
if (!c) return "";
|
|
switch (c) {
|
|
case "h":
|
|
case "hh":
|
|
case "t":
|
|
case "tt":
|
|
d({ hour12: !0, hour: "numeric" }, c);
|
|
break;
|
|
case "MMM":
|
|
d({ month: "short" }, c);
|
|
break;
|
|
case "MMMM":
|
|
d({ month: "long" }, c);
|
|
break;
|
|
case "g":
|
|
d({ era: "short" }, c);
|
|
break;
|
|
case "gg":
|
|
d({ era: "long" }, c);
|
|
break;
|
|
case "ddd":
|
|
d({ weekday: "short" }, c);
|
|
break;
|
|
case "dddd":
|
|
d({ weekday: "long" }, c);
|
|
}
|
|
return $b[c](a, b.dateTimeFormatters[c]);
|
|
});
|
|
}
|
|
function Uv(a, c, b) {
|
|
var d = c.reverse(),
|
|
e = function () {
|
|
if (0 === d.length) b();
|
|
else {
|
|
var c = d.pop();
|
|
a(function () {
|
|
c();
|
|
e();
|
|
});
|
|
}
|
|
};
|
|
e();
|
|
}
|
|
function Xa(a, c, b, d) {
|
|
function e(a) {
|
|
var d = I(a),
|
|
e = c();
|
|
if ("undefined" === d) return f();
|
|
if ("array" === d) b && b(a);
|
|
else {
|
|
if ("number" === d) return 0 > a && e.length ? e[e.length + a] : e[a];
|
|
if ("string" === d)
|
|
return S(e, function (b) {
|
|
return (b.currentOptions && (b.currentOptions.name === a || b.currentOptions.id === a || b.currentOptions.key === a)) || b.id === a || b.key === a || b.prefix === a;
|
|
});
|
|
if ("object" === d || "function" === d) return f().filter(a);
|
|
}
|
|
}
|
|
var f = function () {
|
|
return new a(c(), d);
|
|
};
|
|
e.add = d
|
|
? function () {
|
|
for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a];
|
|
d.push.apply(d, H(b));
|
|
return f();
|
|
}
|
|
: f;
|
|
e.splice = d
|
|
? function () {
|
|
for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a];
|
|
d.splice.apply(d, H(b));
|
|
return f();
|
|
}
|
|
: f;
|
|
e.remove = d
|
|
? function () {
|
|
for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a];
|
|
d.remove.apply(d, H(b));
|
|
return f();
|
|
}
|
|
: f;
|
|
return e;
|
|
}
|
|
function wo(a, c) {
|
|
return function () {
|
|
var b = [];
|
|
a.each(function (a) {
|
|
b.push.apply(b, H(c(a)));
|
|
});
|
|
return b;
|
|
};
|
|
}
|
|
function mk(a, c) {
|
|
return function (b) {
|
|
c(a, b);
|
|
};
|
|
}
|
|
function Vv(a) {
|
|
if (!$e) {
|
|
var c = dg ? dg + "icons/" : void 0;
|
|
c || ((c = je()) ? ("/" !== c[c.length - 1] && (c += "/"), (c += "icons/")) : (c = null));
|
|
$e = c || "/dist/icons/";
|
|
}
|
|
"/" !== $e[$e.length - 1] && ($e += "/");
|
|
return $e + a + ".js";
|
|
}
|
|
function xo(a, c, b) {
|
|
void 0 === c && (c = null);
|
|
void 0 === b && (b = null);
|
|
if (a && "none" !== a) {
|
|
var d = a.replace("{os}", Wv),
|
|
e = af[d];
|
|
if (t(e)) return e;
|
|
af[d] = null;
|
|
void 0 === e &&
|
|
lk(
|
|
Vv(a),
|
|
function (b) {
|
|
if (c) {
|
|
var a = !dg && to();
|
|
b.displayCdnWarning = a;
|
|
c(b);
|
|
}
|
|
},
|
|
function (a) {
|
|
af[d] = null;
|
|
b && b(a);
|
|
},
|
|
!0
|
|
);
|
|
return af[d];
|
|
}
|
|
}
|
|
function nk(a, c) {
|
|
void 0 === c && (c = !1);
|
|
if (a)
|
|
for (var b = pa(a), d = 0; d < b.length; d++) {
|
|
var e = b[d];
|
|
if (!af[e] || c) af[e] = a[e];
|
|
}
|
|
}
|
|
function eg(a, c) {
|
|
return L(fa(a), c);
|
|
}
|
|
function Xv(a, c, b, d) {
|
|
var e = d ? d.noKerning : !1,
|
|
f = d ? d.delimiter : " ";
|
|
d = new RegExp("([^" + f + "]+)");
|
|
var g = c.fontSize || b.fontSize,
|
|
h = Yv(c, b);
|
|
O(g) && (g = parseInt(g));
|
|
var k = g * h.height;
|
|
g = { descent: h.descent * k, leading: (h.height - h.descent) * k, height: k, fontSize: g };
|
|
h = fg(a, c, b, e);
|
|
k = String.fromCharCode(8230);
|
|
f = { width: h, metrics: g, text: a, style: c, delimiter: { text: f, width: fg(f, c, b, e) }, ellipsis: { text: k, width: fg(k, c, b, e) } };
|
|
a = a.split(d);
|
|
if ((d = a.length)) for (f.parts = [], g = 0; g < d; g++) (h = a[g]), void 0 !== h && f.parts.push({ text: h, width: fg(h, c, b, e) });
|
|
return f;
|
|
}
|
|
function yo(a, c) {
|
|
var b = { font: a.fontFamily },
|
|
d = [].concat(xh).concat(ok);
|
|
d.push(". .");
|
|
d = pk(d, a, c);
|
|
for (var e = {}, f = {}, g = 0, h = xh.length; g < h; g++) e[xh[g]] = d[xh[g]];
|
|
e[" "] = d[". ."] - 2 * d["."];
|
|
var k = !1;
|
|
g = 0;
|
|
for (h = ok.length; g < h; g++) {
|
|
var l = ok[g],
|
|
m = d[l[0]] + d[l[1]];
|
|
m -= d[l];
|
|
0.001 < m && (k = !0);
|
|
}
|
|
if (k) for (a = pk(qk, a, c), g = 0, h = qk.length; g < h; g++) (l = qk[g]), (m = d[l[0]] + d[l[1]]), (m -= a[l]), 0.001 < m && (f[l] = m);
|
|
b.stringWidths = e;
|
|
b.kerning = f;
|
|
return b;
|
|
}
|
|
function yh(a) {
|
|
return a.getComputedTextLength ? a.getComputedTextLength() : 0;
|
|
}
|
|
function pk(a, c, b) {
|
|
var d = {},
|
|
e = ba.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
b.fontFamily && e.setAttribute("font-family", b.fontFamily);
|
|
b.fontWeight && e.setAttribute("font-weight", b.fontWeight);
|
|
b.textRendering && e.setAttribute("text-rendering", b.textRendering);
|
|
b = ba.createDocumentFragment();
|
|
var f = ba.createElementNS("http://www.w3.org/2000/svg", "g");
|
|
f.setAttribute("font-size", "100px");
|
|
c.fontFamily && f.setAttribute("font-family", c.fontFamily);
|
|
c.fontWeight && f.setAttribute("font-weight", c.fontWeight);
|
|
b.appendChild(f);
|
|
c = 0;
|
|
for (var g = a.length; c < g; c++) f.appendChild(rk(a[c]));
|
|
e.appendChild(b);
|
|
ba.body.appendChild(e);
|
|
b = e.childNodes[0].childNodes;
|
|
c = 0;
|
|
for (g = b.length; c < g; c++) d[a[c]] = yh(b[c]);
|
|
e.parentNode.removeChild(e);
|
|
return d;
|
|
}
|
|
function rk(a) {
|
|
var c = ba.createElementNS("http://www.w3.org/2000/svg", "text");
|
|
c.textContent = a;
|
|
return c;
|
|
}
|
|
function sk(a, c) {
|
|
if (!tk) {
|
|
uk || (uk = Zv());
|
|
var b = uk,
|
|
d =
|
|
"fontSize" === b.roundTarget
|
|
? function (a) {
|
|
return Math.round(a / b.roundStep) * b.roundStep;
|
|
}
|
|
: function (b) {
|
|
return b;
|
|
};
|
|
tk = function (a, c) {
|
|
c = d(c);
|
|
a *= c / 100;
|
|
return "width" === b.roundTarget && (!b.roundThreshold || c < b.roundThreshold) ? Math.round(a / b.roundStep) * b.roundStep : a;
|
|
};
|
|
}
|
|
return tk(a, c);
|
|
}
|
|
function Zv() {
|
|
var a = 1,
|
|
c = 0,
|
|
b = ba.createElementNS("http://www.w3.org/2000/svg", "svg"),
|
|
d = ba.createDocumentFragment(),
|
|
e = function (b) {
|
|
var a = rk("m");
|
|
a.setAttribute("font-size", b + "px");
|
|
d.appendChild(a);
|
|
};
|
|
b.setAttribute("text-rendering", "geometricPrecision");
|
|
e(100);
|
|
for (var f = [100], g = 10; 11 >= g; ) e(g), f.push(g), (g += 0.25);
|
|
for (g = 13; 20 > g; ) e(g), f.push(g), (g += 1);
|
|
b.appendChild(d);
|
|
ba.body.appendChild(b);
|
|
e = !0;
|
|
var h = !1;
|
|
h = 0;
|
|
g = b.childNodes;
|
|
for (var k = [], l = [], m = yh(g[0]), n = 1; 6 > n; n++) {
|
|
var p = yh(g[n]),
|
|
q = (f[n] * m) / 100,
|
|
r = k.length ? +!(0.01 >= Math.abs(k[k.length - 1] - p)) : 0;
|
|
0.1 >= Math.abs(q - p) || (e = !1);
|
|
0.01 >= Math.abs(q - p) && h++;
|
|
k.push(p);
|
|
l.push(r);
|
|
}
|
|
h = 2 <= h;
|
|
if (!e)
|
|
if (h) {
|
|
var u = "fontSize";
|
|
f = l.join("");
|
|
"01010" === f ? (a = 0.5) : "00100" === f && (a = 1);
|
|
} else
|
|
for (c = f[6], u = "width", a = 1, n = 6; 13 > n; n++)
|
|
if (((p = yh(g[n])), (q = (f[n] * m) / 100), 0.1 >= Math.abs(q - p))) {
|
|
c = f[n];
|
|
break;
|
|
}
|
|
b.parentNode.removeChild(b);
|
|
return { roundTarget: u, roundStep: a, roundThreshold: c };
|
|
}
|
|
function ke(a) {
|
|
a = {
|
|
chartType: {
|
|
type: "enum",
|
|
members: {
|
|
vertical: { isDefault: !0, chain: "enum_seriesType" },
|
|
horizontal: { chain: "enum_seriesType" },
|
|
pie: { chain: "enum_pieType", enumAttributes: { seriesLayout: "visualShape", behavior: "colorByPoint,labelConnector,noNameGrouping" } },
|
|
gauge: { chain: "enum_gaugeType", enumAttributes: { seriesLayout: "visualShape", behavior: "colorByPoint,noNameGrouping,snapToZero" } },
|
|
radar: { chain: "enum_radarType", enumAttributes: { seriesLayout: "visualShape" } },
|
|
funnel: { chain: "enum_funnelShapeType", enumAttributes: { seriesLayout: "visualShape", funnelNozzleType: "nozzle", behavior: "colorByPoint,labelConnector,noNameGrouping" } },
|
|
pyramid: { chain: "enum_funnelOrientationType", enumAttributes: { funnelShapeType: "square", seriesLayout: "visualShape", behavior: "colorByPoint,labelConnector,noNameGrouping" } },
|
|
cone: { chain: "enum_funnelOrientationType", enumAttributes: { funnelShapeType: "round", seriesLayout: "visualShape", behavior: "colorByPoint,labelConnector,noNameGrouping" } },
|
|
heatmap: { chain: "enum_columnType", enumAttributes: { behavior: "colorByPoint" } },
|
|
calendar: { chain: "enum_calendarType", enumAttributes: {} },
|
|
treemap: { chain: "enum_treemapMode", enumAttributes: { behavior: "noNameGrouping,tree" } },
|
|
map: { chain: "enum_columnType", enumAttributes: { behavior: "noNameGrouping" } },
|
|
organization: { chain: "enum_organizationType", enumAttributes: { behavior: "annotation,tree,noNameGrouping,noLegend" } },
|
|
venn: { chain: "enum_vennType", enumAttributes: { seriesLayout: "visualShape", behavior: "colorByPoint,noLegend" } },
|
|
},
|
|
terminateAt: "enum_seriesType",
|
|
},
|
|
treemapMode: { members: { squarify: { isDefault: !0, chain: "enum_treemapDirection" }, sliceanddice: { chain: "enum_treemapDirection" }, stripes: { chain: "enum_treemapDirection" } } },
|
|
treemapDirection: { members: { horizontal: { isDefault: !0, chain: "enum_columnType" }, vertical: { chain: "enum_columnType" } } },
|
|
radarType: { type: "enum", members: { auto: { isDefault: !0, chain: "enum_seriesType" }, polar: { chain: "enum_seriesType" }, spider: { chain: "enum_seriesType" } } },
|
|
gaugeType: { type: "enum", members: { circular: { isDefault: !0, chain: "enum_circularGaugeType" }, linear: { chain: "enum_linearGaugeType" } } },
|
|
linearGaugeType: { type: "enum", members: { vertical: { isDefault: !0, chain: "enum_seriesType" }, horizontal: { chain: "enum_seriesType" } } },
|
|
seriesType: {
|
|
type: "enum",
|
|
members: {
|
|
column: { chain: "enum_columnType", enumAttributes: { behavior: "snapToZero,clusters,drawRect" } },
|
|
line: { isDefault: !0, chain: "enum_lineSeriesType", enumAttributes: { behavior: "drawMarker,drawLine" } },
|
|
area: { chain: "enum_areaShadingType", enumAttributes: { behavior: "drawMarker,drawLine,drawArea,snapToZero" } },
|
|
marker: { enumAttributes: { behavior: "drawMarker" } },
|
|
bubble: { chain: "enum_bubbleSizingType", enumAttributes: { behavior: "" } },
|
|
ohlc: { enumAttributes: { behavior: "clusters" } },
|
|
candlestick: { chain: "enum_columnType", enumAttributes: { behavior: "clusters,drawRect" } },
|
|
map: { chain: "enum_columnType", enumAttributes: { behavior: "varyPalette" } },
|
|
heatmap: { chain: "enum_columnType", enumAttributes: {} },
|
|
calendar: { chain: "enum_calendarType", enumAttributes: {} },
|
|
variwide: { chain: "enum_variwideType", enumAttributes: { behavior: "snapToZero,clusters,drawRect" } },
|
|
},
|
|
},
|
|
bubbleSizingType: { type: "enum", members: { area: { isDefault: !0 }, width: {} } },
|
|
areaShadingType: { type: "enum", members: { subtle: { isDefault: !0, chain: "enum_lineSeriesType" }, none: { chain: "enum_lineSeriesType" } } },
|
|
lineSeriesType: { type: "enum", members: { normal: { isDefault: !0 }, spline: {}, step: {} } },
|
|
circularGaugeType: { type: "enum", members: { clip: { isDefault: !0, chain: "enum_seriesType" }, circle: { chain: "enum_seriesType" }, arc: { chain: "enum_seriesType" } } },
|
|
columnType: { type: "enum", members: { subtle: { isDefault: !0 }, solid: {}, aqua: {}, rounded: {}, roundCaps: {}, cushion: {} } },
|
|
pieType: { type: "enum", members: { normal: { isDefault: !0 }, donut: {} } },
|
|
vennType: { type: "enum", members: { normal: { isDefault: !0 }, colorbypoint: {} } },
|
|
funnelOrientationType: { type: "enum", members: { normal: { isDefault: !0 }, inverted: {} } },
|
|
funnelShapeType: { type: "enum", members: { round: { isDefault: !0, chain: "enum_funnelOrientationType" }, square: { chain: "enum_funnelOrientationType" } } },
|
|
organizationType: { type: "enum", members: { down: { isDefault: !0 }, left: {}, up: {}, right: {} } },
|
|
calendarType: {
|
|
type: "enum",
|
|
members: {
|
|
auto: { isDefault: !0, chain: "enum_columnType" },
|
|
decade: { chain: "enum_columnType" },
|
|
years: { chain: "enum_columnType" },
|
|
year: { chain: "enum_columnType" },
|
|
quarter: { chain: "enum_columnType" },
|
|
month: { chain: "enum_columnType" },
|
|
week30min: { chain: "enum_columnType" },
|
|
week: { chain: "enum_columnType" },
|
|
dayminutes: { chain: "enum_columnType" },
|
|
dayhours: { chain: "enum_columnType" },
|
|
day30min: { chain: "enum_columnType" },
|
|
day15min: { chain: "enum_columnType" },
|
|
day5min: { chain: "enum_columnType" },
|
|
day: { chain: "enum_columnType" },
|
|
hourseconds: { chain: "enum_columnType" },
|
|
hour30sec: { chain: "enum_columnType" },
|
|
hour10sec: { chain: "enum_columnType" },
|
|
hourminutes: { chain: "enum_columnType" },
|
|
hour: { chain: "enum_columnType" },
|
|
minute: { chain: "enum_columnType" },
|
|
},
|
|
},
|
|
variwideType: { type: "enum", members: { subtle: { isDefault: !0 }, solid: {}, aqua: {}, rounded: {}, roundCaps: {}, cushion: {} } },
|
|
nanoChartTypes: { type: "enum", members: "sparkline|arealine|bar|bullet|column|progress|pie|heatmap|scale|chart|barfull" },
|
|
markerTypes: { type: "enum", members: "none|diamond|circle|arrow-down|arrow-up|five-point-star|four-point-star|merger|split-reverse|seven-point-star|six-point-star|spinoff|split|square|triangle|triangle-down" },
|
|
emptyPointMode: { type: "enum", members: "default|ignore|treatAsZero" },
|
|
projection: { type: "enum", members: "none|mercator|lambertConformalConic|lambertAzimuthalEqualArea|stereographic|orthographic" },
|
|
scaleBreakType: { type: "enum", updated: "2.7", members: { zigzag: { isDefault: !0 }, gap: "", line: "", hidden: "" } },
|
|
scale: { type: "enum", updated: "2.6", members: { auto: { isDefault: !0 }, time: "", stacked: "", stackedFull: "", stackedLogarithmic: {}, logarithmic: {}, variwide: {} } },
|
|
rangeMode: { type: "enum", updated: "2.8", members: { auto: { isDefault: !0 }, curly: "", measure: "" } },
|
|
colors: {
|
|
type: "enum",
|
|
caseInsensitive: !0,
|
|
members: {
|
|
aliceblue: "#f0f8ff",
|
|
antiquewhite: "#faebd7",
|
|
aqua: "#00ffff",
|
|
aquamarine: "#7fffd4",
|
|
azure: "#f0ffff",
|
|
beige: "#f5f5dc",
|
|
bisque: "#ffe4c4",
|
|
black: "#000000",
|
|
blanchedalmond: "#ffebcd",
|
|
blue: "#0000ff",
|
|
blueviolet: "#8a2be2",
|
|
brown: "#a52a2a",
|
|
burlywood: "#deb887",
|
|
cadetblue: "#5f9ea0",
|
|
chartreuse: "#7fff00",
|
|
chocolate: "#d2691e",
|
|
coral: "#ff7f50",
|
|
cornflowerblue: "#6495ed",
|
|
cornsilk: "#fff8dc",
|
|
crimson: "#dc143c",
|
|
cyan: "#00ffff",
|
|
darkblue: "#00008b",
|
|
darkcyan: "#008b8b",
|
|
darkgoldenrod: "#b8860b",
|
|
darkgray: "#a9a9a9",
|
|
darkgreen: "#006400",
|
|
darkkhaki: "#bdb76b",
|
|
darkmagenta: "#8b008b",
|
|
darkolivegreen: "#556b2f",
|
|
darkorange: "#ff8c00",
|
|
darkorchid: "#9932cc",
|
|
darkred: "#8b0000",
|
|
darksalmon: "#e9967a",
|
|
darkseagreen: "#8fbc8f",
|
|
darkslateblue: "#483d8b",
|
|
darkslategray: "#2f4f4f",
|
|
darkturquoise: "#00ced1",
|
|
darkviolet: "#9400d3",
|
|
deeppink: "#ff1493",
|
|
deepskyblue: "#00bfff",
|
|
dimgray: "#696969",
|
|
dodgerblue: "#1e90ff",
|
|
firebrick: "#b22222",
|
|
floralwhite: "#fffaf0",
|
|
forestgreen: "#228b22",
|
|
fuchsia: "#ff00ff",
|
|
gainsboro: "#dcdcdc",
|
|
ghostwhite: "#f8f8ff",
|
|
gold: "#ffd700",
|
|
goldenrod: "#daa520",
|
|
gray: "#808080",
|
|
green: "#008000",
|
|
greenyellow: "#adff2f",
|
|
honeydew: "#f0fff0",
|
|
hotpink: "#ff69b4",
|
|
"indianred ": "#cd5c5c",
|
|
"indigo ": "#4b0082",
|
|
ivory: "#fffff0",
|
|
khaki: "#f0e68c",
|
|
lavender: "#e6e6fa",
|
|
lavenderblush: "#fff0f5",
|
|
lawngreen: "#7cfc00",
|
|
lemonchiffon: "#fffacd",
|
|
lightblue: "#add8e6",
|
|
lightcoral: "#f08080",
|
|
lightcyan: "#e0ffff",
|
|
lightgoldenrodyellow: "#fafad2",
|
|
lightgray: "#d3d3d3",
|
|
lightgreen: "#90ee90",
|
|
lightpink: "#ffb6c1",
|
|
lightsalmon: "#ffa07a",
|
|
lightseagreen: "#20b2aa",
|
|
lightskyblue: "#87cefa",
|
|
lightslategray: "#778899",
|
|
lightsteelblue: "#b0c4de",
|
|
lightyellow: "#ffffe0",
|
|
lime: "#00ff00",
|
|
limegreen: "#32cd32",
|
|
linen: "#faf0e6",
|
|
magenta: "#ff00ff",
|
|
maroon: "#800000",
|
|
mediumaquamarine: "#66cdaa",
|
|
mediumblue: "#0000cd",
|
|
mediumorchid: "#ba55d3",
|
|
mediumpurple: "#9370d8",
|
|
mediumseagreen: "#3cb371",
|
|
mediumslateblue: "#7b68ee",
|
|
mediumspringgreen: "#00fa9a",
|
|
mediumturquoise: "#48d1cc",
|
|
mediumvioletred: "#c71585",
|
|
midnightblue: "#191970",
|
|
mintcream: "#f5fffa",
|
|
mistyrose: "#ffe4e1",
|
|
moccasin: "#ffe4b5",
|
|
navajowhite: "#ffdead",
|
|
navy: "#000080",
|
|
oldlace: "#fdf5e6",
|
|
olive: "#808000",
|
|
olivedrab: "#6b8e23",
|
|
orange: "#ffa500",
|
|
orangered: "#ff4500",
|
|
orchid: "#da70d6",
|
|
palegoldenrod: "#eee8aa",
|
|
palegreen: "#98fb98",
|
|
paleturquoise: "#afeeee",
|
|
palevioletred: "#d87093",
|
|
papayawhip: "#ffefd5",
|
|
peachpuff: "#ffdab9",
|
|
peru: "#cd853f",
|
|
pink: "#ffc0cb",
|
|
plum: "#dda0dd",
|
|
powderblue: "#b0e0e6",
|
|
purple: "#800080",
|
|
red: "#ff0000",
|
|
rosybrown: "#bc8f8f",
|
|
royalblue: "#4169e1",
|
|
saddlebrown: "#8b4513",
|
|
salmon: "#fa8072",
|
|
sandybrown: "#f4a460",
|
|
seagreen: "#2e8b57",
|
|
seashell: "#fff5ee",
|
|
sienna: "#a0522d",
|
|
silver: "#c0c0c0",
|
|
skyblue: "#87ceeb",
|
|
slateblue: "#6a5acd",
|
|
slategray: "#708090",
|
|
snow: "#fffafa",
|
|
springgreen: "#00ff7f",
|
|
steelblue: "#4682b4",
|
|
tan: "#d2b48c",
|
|
teal: "#008080",
|
|
thistle: "#d8bfd8",
|
|
tomato: "#ff6347",
|
|
turquoise: "#40e0d0",
|
|
violet: "#ee82ee",
|
|
wheat: "#f5deb3",
|
|
white: "#ffffff",
|
|
whitesmoke: "#f5f5f5",
|
|
yellow: "#ffff00",
|
|
yellowgreen: "#9acd32",
|
|
},
|
|
},
|
|
palette: {
|
|
type: "enum",
|
|
members:
|
|
"default|spreadsheet|oceanMidtones|mutedRainbow|pastelContrast|rainforest|random|autumn|bright|lavender|midTones|mixed|pastel|poppies|spring|warmEarth|waterMeadow|darkRainbow|midRange|vividDark|fiveColor1|fiveColor2|fiveColor3|fiveColor4|fiveColor5|fiveColor6|fiveColor7|fiveColor8|fiveColor9|fiveColor10|fiveColor11|fiveColor12|fiveColor13|fiveColor14|fiveColor15|fiveColor16|fiveColor17|fiveColor18|fiveColor19|fiveColor20|fiveColor21|fiveColor22|fiveColor23|fiveColor24|fiveColor25|fiveColor26|fiveColor27|fiveColor28|fiveColor29|fiveColor30|fiveColor31|fiveColor32|fiveColor33|fiveColor34|fiveColor35|fiveColor36|fiveColor37|fiveColor38|fiveColor39|fiveColor40|fiveColor41|fiveColor42|fiveColor43|fiveColor44|fiveColor45|fiveColor46|colorVision1|colorVision2|colorVision3|colorVision4",
|
|
},
|
|
hatchStyle: {
|
|
type: "enum",
|
|
members:
|
|
"none|horizontal|vertical|light-downward-diagonal|light-upward-diagonal|percent05|percent10|percent20|percent25|dashed-downward-diagonal|dashed-upward-diagonal|dashed-horizontal|dashed-vertical|forward-diagonal|backward-diagonal|large-horizontal|dark-downward-diagonal|dark-upward-diagonal|dark-horizontal|dark-vertical|wide-downward-diagonal|wide-upward-diagonal|narrow-horizontal|narrow-vertical|small-grid|large-grid|dotted-grid|cross-diagonal|outlined-diamond|dotted|dotted-diamond|solid-diamond|large-checker-board|small-checker-board|wave|zig-zag|diagonal-brick|horizontal-brick|weave",
|
|
},
|
|
cultures: {
|
|
type: "enum",
|
|
members:
|
|
"af|af-ZA|ar|ar-AE|ar-BH|ar-DZ|ar-EG|ar-IQ|ar-JO|ar-KW|ar-LB|ar-LY|ar-MA|ar-OM|ar-QA|ar-SA|ar-SY|ar-TN|ar-YE|az|az-Cyrl-AZ|az-Latn-AZ|be|be-BY|bg|bg-BG|bs-Latn-BA|ca|ca-ES|cs|cs-CZ|cy-GB|da|da-DK|de|de-AT|de-DE|de-CH|de-LI|de-LU|dv|dv-MV|el|el-GR|en|en-029|en-AU|en-BZ|en-CA|en-GB|en-IE|en-JM|en-NZ|en-PH|en-TT|en-US|en-ZA|en-ZW|es|es-AR|es-BO|es-CL|es-CO|es-CR|es-DO|es-EC|es-ES|es-GT|es-HN|es-MX|es-NI|es-PA|es-PE|es-PR|es-PY|es-SV|es-UY|es-VE|et|et-EE|eu|eu-ES|fa|fa-IR|fi|fi-FI|fo|fo-FO|fr|fr-BE|fr-CA|fr-FR|fr-CH|fr-LU|fr-MC|gl|gl-ES|gu|gu-IN|he|he-IL|hi|hi-IN|hr|hr-BA|hr-HR|hu|hu-HU|hy|hy-AM|id|id-ID|is|is-IS|it|it-CH|it-IT|ja|ja-JP|ka|ka-GE|kk|kk-KZ|kn|kn-IN|ko|kok|kok-IN|ko-KR|ky|ky-KG|lt|lt-LT|lv|lv-LV|mi-NZ|mk|mk-MK|mn|mn-MN|mr|mr-IN|ms|ms-BN|ms-MY|mt-MT|nb-NO|nl|nl-BE|nl-NL|nn-NO|no|ns-ZA|pa|pa-IN|pl|pl-PL|pt|pt-BR|pt-PT|quz-BO|quz-EC|quz-PE|ro|ro-RO|ru|ru-RU|sa|sa-IN|se-FI|se-NO|se-SE|sk|sk-SK|sl|sl-SI|sma-NO|sma-SE|smj-NO|smj-SE|smn-FI|sms-FI|sq|sq-AL|sr|sr-Cyrl-BA|sr-Cyrl-CS|sr-Latn-BA|sr-Latn-CS|sv|sv-FI|sv-SE|sw|sw-KE|syr|syr-SY|ta|ta-IN|te|te-IN|th|th-TH|tn-ZA|tr|tr-TR|tt|tt-RU|uk|uk-UA|ur|ur-PK|uz|uz-Cyrl-UZ|uz-Latn-UZ|vi|vi-VN|xh-ZA|zh-CN|zh-HK|zh-CHS|zh-CHT|zh-MO|zh-SG|zh-TW|zu-ZA",
|
|
},
|
|
timeUnit: { type: "enum", members: "second|minute|hour|day|week|month|year" },
|
|
zoomAxis: { type: "enum", members: "x|y|xy|none" },
|
|
alignHorizontal: { type: "enum", members: "center|left|right" },
|
|
alignVertical: { type: "enum", members: "top|middle|bottom" },
|
|
directionalLayout: { type: "enum", members: "auto|vertical|horizontal" },
|
|
orientation: { type: "enum", members: "none|left|right|top|bottom|topLeft|topRight|bottomRight|bottomLeft|opposite" },
|
|
titlePosition: { type: "enum", members: "left|center|right|full" },
|
|
placement: { type: "enum", members: "auto|inside|outside" },
|
|
uiItemType: { type: "enum", updated: "2.7", members: { auto: { isDefault: !0 }, option: "", checkbox: "", toggle: "", radio: "", select: "", selectMultiple: "", range: "", file: "" } },
|
|
pointSelectionMode: { type: "enum", members: "auto|single|multiple" },
|
|
hoverAction: { type: "enum", members: "highlightPoint|highlightSeries|highlightPointGroup" },
|
|
fontWeight: { type: "enum", members: "normal|bold" },
|
|
fontStyle: { type: "enum", members: "normal|italic" },
|
|
fontFamily: {
|
|
type: "enum",
|
|
caseInsensitive: !0,
|
|
members:
|
|
"Tahoma|Arial|Verdana|Helvetica|Trebuchet MS|Arial Black|Comic Sans MS|Courier New|Georgia|Impact|Lucida Console|Lucida Sans Unicode|Lucida Grande|Geneva|Times New Roman|MS Sans Serif|MS Serif|Arial, Helvetica, sans-serif|Arial Black, Gadget, sans-serif|Comic Sans MS, cursive|Courier New, monospace|Georgia, serif|Impact, Charcoal, sans-serif|Lucida Console, Monaco, monospace|Lucida Sans Unicode, Lucida Grande, sans-serif|Palatino Linotype, Book Antiqua, Palatino, serif|Tahoma, Geneva, sans-serif|Times New Roman, Times, serif|Trebuchet MS, sans-serif|Verdana, Geneva, sans-serif|MS Sans Serif, Geneva, sans-serif|MS Serif, New York, serif",
|
|
},
|
|
textDecoration: { type: "enum", members: "overline|line-through|underline|underline overline" },
|
|
cursor: { type: "enum", members: "none|default|pointer|help|crosshair|wait|progress|text|n-resize|ne-resize|nw-resize|e-resize|s-resize|se-resize|sw-resize|w-resize" },
|
|
dashStyle: { type: "enum", caseInsensitive: !0, members: "Solid|ShortDash|ShortDot|ShortDashDot|ShortDashDotDot|Dot|Dash|LongDash|DashDot|DashDotDot|LongDashDot|LongDashDotDot" },
|
|
boxCornerType: { type: "enum", members: "square|cut|round" },
|
|
mimeType: { type: "enum", members: "image/png|image/jpeg|application/pdf|image/svg+xml" },
|
|
animationEasing: {
|
|
type: "enum",
|
|
members:
|
|
"easeInQuad|easeOutQuad|easeInCubic|easeOutCubic|easeInOutCubic|easeInQuart|easeOutQuart|easeInOutQuart|easeInQuint|easeOutQuint|easeInOutQuint|easeInSine|easeOutSine|easeInOutSine|easeInExpo|easeOutExpo|easeInOutExpo|easeInCirc|easeOutCirc|easeInOutCirc|easeInElastic|easeOutElastic|easeInOutElastic|easeInBack|easeOutBack|easeInOutBack|easeInBounce|easeOutBounce|easeInOutBounce",
|
|
},
|
|
calculation: { type: "enum", members: "sum|average|min|max" },
|
|
funnelNozzleType: { type: "enum", members: { nozzle: { isDefault: !0 }, noNozzle: {} } },
|
|
seriesLayout: { type: "enum", members: { XY: { isDefault: !0, chain: "enum_funnelOrientationType" }, visualShape: { chain: "enum_funnelOrientationType" } } },
|
|
}[a];
|
|
if ("string" === typeof a.members) {
|
|
var c = a.members;
|
|
c = c.split("|");
|
|
for (var b = {}, d = 0, e = c.length; d < e; d++) b[c[d]] = "";
|
|
a.members = b;
|
|
}
|
|
return a;
|
|
}
|
|
function ma(a, c) {
|
|
if (a && a.pop) {
|
|
c = c || a.kind;
|
|
if ("rgba" === c && !Ha(a[3])) return "rgba(" + parseInt(a[0]) + "," + parseInt(a[1]) + "," + parseInt(a[2]) + "," + na(a[3], 5) + ")";
|
|
if (2 < a.length || "rgb" === c) return "rgb(" + parseInt(a[0]) + "," + parseInt(a[1]) + "," + parseInt(a[2]) + ")";
|
|
}
|
|
return a;
|
|
}
|
|
function Dc(a, c) {
|
|
c.kind = a;
|
|
return c;
|
|
}
|
|
function bd(a, c, b) {
|
|
function d(b, a, c) {
|
|
0 > c && (c += 1);
|
|
1 < c && --c;
|
|
return c < 1 / 6 ? b + 6 * (a - b) * c : 0.5 > c ? a : c < 2 / 3 ? b + (a - b) * (2 / 3 - c) * 6 : b;
|
|
}
|
|
var e,
|
|
f,
|
|
g = 1;
|
|
if (a && a.pop) {
|
|
var h = G(a, 4);
|
|
a = h[0];
|
|
c = h[1];
|
|
b = h[2];
|
|
g = h[3];
|
|
t(g) || (g = 1);
|
|
}
|
|
if (0 === c) h = e = f = b;
|
|
else {
|
|
f = 0.5 > b ? b * (1 + c) : b + c - b * c;
|
|
var k = 2 * b - f;
|
|
h = d(k, f, a + 1 / 3);
|
|
e = d(k, f, a);
|
|
f = d(k, f, a - 1 / 3);
|
|
}
|
|
h = Dc("rgba", zo([h, e, f, g]));
|
|
h.hsl = [a, c, b];
|
|
return h;
|
|
}
|
|
function bf(a, c, b) {
|
|
a /= 255;
|
|
c /= 255;
|
|
b /= 255;
|
|
var d = Math.max(a, c, b),
|
|
e = Math.min(a, c, b),
|
|
f = (d + e) / 2;
|
|
if (d === e) var g = (e = 0);
|
|
else {
|
|
var h = d - e;
|
|
e = 0.5 < f ? h / (2 - d - e) : h / (d + e);
|
|
switch (d) {
|
|
case a:
|
|
g = (c - b) / h + (c < b ? 6 : 0);
|
|
break;
|
|
case c:
|
|
g = (b - a) / h + 2;
|
|
break;
|
|
case b:
|
|
g = (a - c) / h + 4;
|
|
}
|
|
g /= 6;
|
|
}
|
|
return Dc("hsl", [g, e, f]);
|
|
}
|
|
function $v(a, c, b, d) {
|
|
a && a.pop && ((d = G(a, 4)), (a = d[0]), (c = d[1]), (b = d[2]), (d = d[3]));
|
|
a /= 255;
|
|
c /= 255;
|
|
b /= 255;
|
|
var e = Math.max(a, c, b),
|
|
f = Math.min(a, c, b),
|
|
g = e - f;
|
|
if (e === f) var h = 0;
|
|
else {
|
|
switch (e) {
|
|
case a:
|
|
h = (c - b) / g + (c < b ? 6 : 0);
|
|
break;
|
|
case c:
|
|
h = (b - a) / g + 2;
|
|
break;
|
|
case b:
|
|
h = (a - c) / g + 4;
|
|
}
|
|
h /= 6;
|
|
}
|
|
return Dc("hsv", [h, 0 === e ? 0 : g / e, e, d]);
|
|
}
|
|
function aw(a, c, b, d) {
|
|
a && a.pop && ((d = G(a, 4)), (a = d[0]), (c = d[1]), (b = d[2]), (d = d[3]));
|
|
var e = Math.floor(6 * a),
|
|
f = 6 * a - e;
|
|
a = b * (1 - c);
|
|
var g = b * (1 - f * c);
|
|
c = b * (1 - (1 - f) * c);
|
|
e = G(
|
|
[
|
|
[b, c, a],
|
|
[g, b, a],
|
|
[a, b, c],
|
|
[a, g, b],
|
|
[c, a, b],
|
|
[b, a, g],
|
|
][e % 6],
|
|
3
|
|
);
|
|
b = e[0];
|
|
c = e[1];
|
|
e = e[2];
|
|
1 < b && (b = 1);
|
|
1 < c && (c = 1);
|
|
1 < e && (e = 1);
|
|
return Dc("rgba", zo([b, c, e, d]));
|
|
}
|
|
function ca(a, c) {
|
|
var b, d, e, f;
|
|
if (a) {
|
|
if ((b = a.kind)) {
|
|
if ("rgba" === b) return a;
|
|
if ("rgb" === b) return 4 > a.length && (a[3] = 1), (a.kind = "rgba"), a;
|
|
}
|
|
b = I(a);
|
|
if ("array" === b) return (a.kind = 4 === a.length ? "rgba" : "rgb"), a;
|
|
if ("string" === b) {
|
|
var g = Ao[a];
|
|
if (!g) {
|
|
if ("#" === a[0]) g = vk(a);
|
|
else if ((b = bw[a.toLowerCase()])) g = vk(b);
|
|
Ao[a] = g;
|
|
}
|
|
if (!g)
|
|
if ("h" === a[0]) "a" === a[3] ? (e = cf.hsla.exec(a)) : (d = cf.hsl.exec(a));
|
|
else {
|
|
var h = Bo[a];
|
|
!h && (h = cf.rgba.exec(a)) && ((h = [parseInt(h[1]), parseInt(h[2]), parseInt(h[3]), parseFloat(h[4])]), (Bo[a] = h));
|
|
if (!h) {
|
|
var k = cf.rgb.exec(a);
|
|
k || (g = vk(a)) || (f = cf.hexShort.exec(a));
|
|
}
|
|
}
|
|
}
|
|
b = "rgba";
|
|
if (h) var l = h.slice(0);
|
|
else if (g) (l = g.slice(0)), "rgb" !== c ? l.push(1) : (b = "rgb");
|
|
else if (k) (l = [parseInt(k[1]), parseInt(k[2]), parseInt(k[3])]), "rgb" !== c ? l.push(1) : (b = "rgb");
|
|
else if (f) (l = [17 * parseInt(f[1], 16), 17 * parseInt(f[2], 16), 17 * parseInt(f[3], 16)]), "rgb" !== c ? l.push(1) : (b = "rgb");
|
|
else {
|
|
if (e) var m = [parseInt(e[1]) / 360, parseInt(e[2]) / 100, parseInt(e[3]) / 100, parseFloat(e[4])];
|
|
else d ? ((m = [parseInt(d[1]) / 360, parseInt(d[2]) / 100, parseInt(d[3]) / 100, 1]), (l = bd(m))) : (l = "transparent" === a ? [255, 255, 255, 0] : [0, 0, 0, 0]);
|
|
m && (l = bd(m));
|
|
}
|
|
l.kind = b;
|
|
}
|
|
return l;
|
|
}
|
|
function ka(a, c, b, d) {
|
|
var e = function (a) {
|
|
return Math.round(Y(f[a], g[a], 0, 100, b));
|
|
};
|
|
if (a && c) {
|
|
var f = ca(a),
|
|
g = ca(c);
|
|
a = e(0);
|
|
c = e(1);
|
|
e = e(2);
|
|
d || (d = Y(f[3], g[3], 0, 100, b));
|
|
e = [a, c, e, d];
|
|
if (t(d)) return Dc(t(d) ? "rgba" : "rgb", e);
|
|
} else {
|
|
if (a) return a;
|
|
if (c) return c;
|
|
}
|
|
}
|
|
function zh(a) {
|
|
var c = [];
|
|
if ("object" === typeof a && a.stops) {
|
|
for (var b = 0, d = a.stops.length; b < d; b++) c[b] = a.stops[b][1];
|
|
return wk(c);
|
|
}
|
|
return "function" === typeof a.pop ? wk(a) : a;
|
|
}
|
|
function wk(a) {
|
|
a = B(Co.apply(null, B(a, ca)), function (a) {
|
|
return Do(a);
|
|
});
|
|
return ma(a);
|
|
}
|
|
function le(a, c, b) {
|
|
var d = {};
|
|
d.tweenID = b && b.id ? b.id : de(5);
|
|
d.from = Eo(a, d.tweenID);
|
|
d.to = Eo(c, d.tweenID);
|
|
if (d.from.isComplex || d.to.isComplex) {
|
|
if (d.from.isComplex)
|
|
if (d.to.isComplex) d.stepFn = "linear" === d.from.type ? Fo(d) : Go(d);
|
|
else
|
|
var e = d.to,
|
|
f = d.from;
|
|
else (e = d.from), (f = d.to);
|
|
f
|
|
? ((d.stepFn = "linear" === f.type ? Fo(d) : Go(d)), e && cw(e, f))
|
|
: d.from.type !== d.to.type && ((a = zh(d.to.input)), (c = zh(d.from.input)), (a = wk([a, c])), (d.animations = [le(d.from.input, a), le(a, d.to.input)]), (d.stepFn = dw(d)));
|
|
d.from.stops.length != d.to.stops.length &&
|
|
((a = d.from),
|
|
(c = d.to),
|
|
a.stops.length !== c.stops.length &&
|
|
(a.stops.length < c.stops.length && ((c = G([c, a], 2)), (a = c[0]), (c = c[1])), (e = Ho(a)), (f = Ho(c)), (b = me(e, f)), (e = me(f, e)), Io(c, b), a.stops.length !== c.stops.length && Io(a, e)));
|
|
}
|
|
return d.stepFn || ew(d);
|
|
}
|
|
function Fo(a) {
|
|
return function (c) {
|
|
if (1 == c) return a.to.input;
|
|
var b = a.from.linearGradient,
|
|
d = a.to.linearGradient;
|
|
b = { linearGradient: [ac(b[0], d[0], c), ac(b[1], d[1], c), ac(b[2], d[2], c), ac(b[3], d[3], c)], stops: [] };
|
|
Jo(a, b.stops, c);
|
|
b.tweenId = a.tweenID;
|
|
return b;
|
|
};
|
|
}
|
|
function Go(a) {
|
|
return function (c) {
|
|
if (1 == c) return a.to.input;
|
|
var b = a.from.radialGradient,
|
|
d = a.to.radialGradient,
|
|
e = { radialGradient: { cx: ac(b.cx, d.cx, c), cy: ac(b.cy, d.cy, c), r: ac(b.r, d.r, c) }, stops: [] };
|
|
t(d.fx) && (e.radialGradient.fx = ac(z(b.fx, 0.5), d.fx, c));
|
|
t(d.fy) && (e.radialGradient.fx = ac(z(b.fy, 0.5), d.fy, c));
|
|
Jo(a, e.stops, c);
|
|
e.tweenId = a.tweenID;
|
|
return e;
|
|
};
|
|
}
|
|
function Jo(a, c, b) {
|
|
for (
|
|
var d = function (b, a) {
|
|
"rgb" === b.kind && ((a = t(a) ? a : 1), 3 < b.length ? (b[3] = a) : b.push(a), (b.kind = "rgba"));
|
|
return b;
|
|
},
|
|
e = 0,
|
|
f = a.from.stops.length;
|
|
e < f;
|
|
e++
|
|
) {
|
|
var g = a.from.stops[e],
|
|
h = a.to.stops[e],
|
|
k = ka(d(g.color, g.opacity), d(h.color, h.opacity), 100 * b),
|
|
l = void 0;
|
|
"rgba" === k.kind && (l = "rgb");
|
|
c.push([100 * ac(g.x, h.x, b) + "%", ma(k, l), l ? k[3] : ac(g.opacity, h.opacity, b)]);
|
|
}
|
|
}
|
|
function dw(a) {
|
|
return function (c) {
|
|
if (1 == c) return a.to.input;
|
|
c = Y(0, a.animations.length, 0, 1, c);
|
|
return a.animations[Math.floor(c)](c % 1);
|
|
};
|
|
}
|
|
function ew(a) {
|
|
return function (c) {
|
|
return 1 == c ? a.to.input : ma(ka(a.from.stops[0].color, a.to.stops[0].color, 100 * c));
|
|
};
|
|
}
|
|
function Eo(a, c) {
|
|
var b = { input: a, stops: [], id: c };
|
|
c = function (a, c, d) {
|
|
a = ca(a, "rgb");
|
|
"rgba" === a.kind && ((a.kind = "rgb"), (d = a[3]));
|
|
b.stops.push({ color: a, x: c, opacity: d });
|
|
};
|
|
if ("string" == I(a)) c(a, 0, 1), (b.type = "color");
|
|
else {
|
|
for (var d = 0, e = a.stops.length; d < e; d++) {
|
|
var f = a.stops[d],
|
|
g = 1;
|
|
"string" == I(f[0]) && -1 < f[0].indexOf("%") && (g = 100);
|
|
c(f[1], parseFloat(f[0]) / g, f[2]);
|
|
}
|
|
b.isComplex = !0;
|
|
a.linearGradient ? ((b.type = "linear"), (b.linearGradient = Ko(b, a.linearGradient))) : a.radialGradient && ((b.type = "radial"), (b.radialGradient = Ko(b, a.radialGradient)));
|
|
}
|
|
return b;
|
|
}
|
|
function Ko(a, c) {
|
|
var b = "radial" == a.type ? {} : [];
|
|
w(c, function (a, c) {
|
|
var d = ["x1", "y1", "x2", "y2"].indexOf(c);
|
|
a = "number" === I(a) ? a : parseFloat(a) / (-1 < a.indexOf("%") ? 100 : 1);
|
|
b[-1 === d ? c : d] = a;
|
|
});
|
|
return b;
|
|
}
|
|
function Ho(a) {
|
|
for (var c = [], b = 0, d = a.stops.length; b < d; b++) c.push(a.stops[b].x);
|
|
return c;
|
|
}
|
|
function Io(a, c) {
|
|
for (var b = 0, d = c.length; b < d; b++) {
|
|
var e = a,
|
|
f = c[b],
|
|
g = e.stops;
|
|
if (1 < g.length)
|
|
for (var h = 1, k = g.length; h < k; h++) {
|
|
var l = g[h],
|
|
m = g[h - 1];
|
|
if (l.x > f && m.x < f) {
|
|
var n = Y(0, 1, m.x, l.x, f);
|
|
l = { color: ka(m.color, l.color, 100 * n), x: f, opacity: ac(m.opacity, l.opacity, n) };
|
|
e.stops.splice(h, 0, l);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function cw(a, c) {
|
|
if ("color" !== a.type) throw "matchStops called on a " + a.type;
|
|
var b = a.stops[0].color,
|
|
d = t(a.stops[0].opacity) ? a.stops[0].opacity : 1;
|
|
a.stops = c.stops.slice(0);
|
|
"linear" == c.type && (a.linearGradient = qa(c.linearGradient));
|
|
"radial" == c.type && (a.radialGradient = qa(c.radialGradient));
|
|
w(a.stops, function (e, f) {
|
|
a.stops[f] = { x: c.stops[f].x, color: b, opacity: d };
|
|
});
|
|
}
|
|
function fw(a, c, b) {
|
|
var d = {};
|
|
c = c.meta;
|
|
var e = a && a.meta && a.meta.pattern;
|
|
d.pattern = c.pattern;
|
|
d.colorAnim = le(e ? a.meta.color : c.color, c.color, b);
|
|
d.bgAnim = le(e ? a.meta.backgroundColor : a, c.backgroundColor, b);
|
|
return function (b) {
|
|
return { pattern: d.pattern, color: d.colorAnim(b), backgroundColor: d.bgAnim(b) };
|
|
};
|
|
}
|
|
function Ec(a) {
|
|
if (a) return a.pop ? (2 === a.length && a[1].toFixed ? V(Ec(a[0]), 1 - a[1]) : !1) : a;
|
|
}
|
|
function gw(a) {
|
|
a = ca(a);
|
|
return "#" + xk(a[0], a[1], a[2]);
|
|
}
|
|
function xk(a, c, b) {
|
|
return Rj(ua(a, 0, 255)) + Rj(ua(c, 0, 255)) + Rj(ua(b, 0, 255));
|
|
}
|
|
function yk(a) {
|
|
if (a) {
|
|
var c = a.pop ? a : ca(a);
|
|
a = "#" + xk(c[0], c[1], c[2]);
|
|
c = parseFloat(z(c[3], 1));
|
|
return { hex: a, opacity: c };
|
|
}
|
|
return { hex: "none", opacity: 1 };
|
|
}
|
|
function Lo(a) {
|
|
a = ca(a);
|
|
var c = G(Ah(a), 3);
|
|
a = c[0];
|
|
var b = c[1];
|
|
c = c[2];
|
|
return 0.2126 * (0.03928 >= a ? a / 12.92 : Math.pow((a + 0.055) / 1.055, 2.4)) + 0.7152 * (0.03928 >= b ? b / 12.92 : Math.pow((b + 0.055) / 1.055, 2.4)) + 0.0722 * (0.03928 >= c ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4));
|
|
}
|
|
function df(a) {
|
|
a = ca(a);
|
|
return Mo(Ah(a));
|
|
}
|
|
function zk(a, c) {
|
|
a = ca(a);
|
|
var b = No(Ah(a));
|
|
b[0] = c;
|
|
c = Oo(b);
|
|
a[0] = 255 * c[0];
|
|
a[1] = 255 * c[1];
|
|
a[2] = 255 * c[2];
|
|
return a;
|
|
}
|
|
function Ak(a, c) {
|
|
var b = df(a);
|
|
return zk(a, ua(b + c, 0, 1));
|
|
}
|
|
function cd(a, c) {
|
|
c = ua(c, -100, 100);
|
|
var b = function (b) {
|
|
return Math.floor(ua(b, 0, 255));
|
|
},
|
|
d = function (a) {
|
|
return b(f[a] + (255 - f[a]) * e);
|
|
},
|
|
e = c / 100,
|
|
f = ca(a);
|
|
0 < c ? ((a = d(0)), (c = d(1)), (d = d(2))) : ((e *= -1), (e = 1 - e), (a = b(f[0] * e)), (c = b(f[1] * e)), (d = b(f[2] * e)));
|
|
return Dc("rgba", [a, c, d, f[3]]);
|
|
}
|
|
function ne(a, c, b) {
|
|
b = 0 < b ? "+" + b : b;
|
|
return gg(a, "hsv(" + { h: b + ",,", s: "," + b + ",", v: ",," + b }[c] + ")");
|
|
}
|
|
function Bh(a) {
|
|
a = ca(a);
|
|
var c = bf(a[0], a[1], a[2]);
|
|
c[2] += (0.007 * Math.pow(100 * c[2] - 100, 2)) / 200;
|
|
c = bd(c[0], c[1], c[2]);
|
|
c[3] = a[3];
|
|
return c;
|
|
}
|
|
function oe(a, c) {
|
|
void 0 === c && (c = 0.7);
|
|
a = ca(a);
|
|
var b = bf(a[0], a[1], a[2]);
|
|
b[2] += Math.pow(b[2] - 1, 2) * c;
|
|
c = bd(b[0], b[1], b[2]);
|
|
c[3] = a[3];
|
|
return c;
|
|
}
|
|
function pe(a) {
|
|
a = ca(a);
|
|
var c = bf(a[0], a[1], a[2]);
|
|
c[2] -= (0.007 * Math.pow(100 * c[2], 2)) / 100;
|
|
c = bd(c);
|
|
c[3] = a[3];
|
|
return c;
|
|
}
|
|
function Bd(a, c) {
|
|
a = ca(a);
|
|
1 < c && (c = Y(0, 1, 0, 255, c));
|
|
return [a[0], a[1], a[2], c];
|
|
}
|
|
function V(a, c) {
|
|
if (!c || !c.toFixed) return a;
|
|
1 >= c && (c *= 100);
|
|
a = ca(a);
|
|
return Dc("rgba", [a[0], a[1], a[2], ((100 - c) / 100) * a[3]]);
|
|
}
|
|
function Fc(a, c) {
|
|
return c && c.toFixed ? (1 >= c && (c *= 100), (a = ca(a)), Dc("rgba", [a[0], a[1], a[2], 1 - c / 100])) : a;
|
|
}
|
|
function Po(a, c) {
|
|
return hg(a, function (b) {
|
|
return Fc(b, c);
|
|
});
|
|
}
|
|
function Ja(a) {
|
|
var c = yb(((a + 360) % 360) + 180),
|
|
b = Math.cos(Math.abs((0.5 * (Math.floor((c / Math.PI) * 2) + 2) + 0.25) * Math.PI - c)) * Math.sqrt(2);
|
|
a = b * Math.cos(c);
|
|
var d = b * Math.sin(c);
|
|
c = 0 > d ? 1 : 0;
|
|
b = 0 <= a ? a : a + 1;
|
|
d = 0 <= d ? d : d + 1;
|
|
return [(0 > a ? 1 : 0).toFixed(4), c.toFixed(4), b.toFixed(4), d.toFixed(4)];
|
|
}
|
|
function jb(a, c, b, d) {
|
|
c.length && c[0][1].pop && w(c, Bk);
|
|
d && (a.hash = d);
|
|
return { linearGradient: a, stops: c };
|
|
}
|
|
function Bk(a) {
|
|
var c = yk(a[1]);
|
|
a[1] = c.hex;
|
|
a[2] = c.opacity;
|
|
return a;
|
|
}
|
|
function Qo(a, c, b, d) {
|
|
var e = c.length,
|
|
f = jb(Ja(a), []);
|
|
for (a = 0; a < e; a++) {
|
|
var g = ca(Ec(b[a]) || b[a]),
|
|
h = ma(g);
|
|
f.stops.push([c[a] / 100, gw(h), g[3]]);
|
|
}
|
|
f.linearGradient.hash = d || "";
|
|
return f;
|
|
}
|
|
function ig(a, c, b, d) {
|
|
void 0 === c && (c = [0, 0]);
|
|
void 0 === b && (b = 2);
|
|
c = { cx: 0.5 + 2 * c[0], cy: 0.5 + 2 * c[1], r: 2.75 - b };
|
|
b = ca(a);
|
|
a = oe(b);
|
|
b = pe(b);
|
|
a = [
|
|
["0%", a],
|
|
["100%", b],
|
|
];
|
|
a.length && a[0][1].pop && w(a, Bk);
|
|
return { radialGradient: c, stops: a };
|
|
}
|
|
function jg(a, c, b, d) {
|
|
void 0 === c && (c = !1);
|
|
void 0 === b && (b = !1);
|
|
void 0 === d && (d = !1);
|
|
var e = ["aqua", a, c, b, d].join(""),
|
|
f = 0;
|
|
if ("object" === typeof c && null !== c)
|
|
var g = !0,
|
|
h = c;
|
|
else {
|
|
f = c ? 90 : 0;
|
|
var k = Ja(f);
|
|
h = c ? 0 : 90;
|
|
}
|
|
a = ca(a);
|
|
b && ((k = Ja(f + 180)), (h = 0));
|
|
var l = d ? ka(pe(a), "#ffffff", 10) : pe(a),
|
|
m = d ? ka(Bh(a), "#ffffff", 10) : oe(a);
|
|
b = ka(l, m, 0.8, a[3]);
|
|
f = ka(l, m, 40, a[3]);
|
|
var n = ka(l, "#fefefe", 70.5, a[3]),
|
|
p = ka(l, b, 50, a[3]);
|
|
p = ka(p, "#fefefe", 39.2, a[3]);
|
|
l = ka(l, b, 60, a[3]);
|
|
l = ka(l, "#fefefe", 39.2, a[3]);
|
|
var q = ka(b, "#fefefe", 39.2, a[3]);
|
|
d && ((m = ka(m, "#f7ffe0", 60, 1)), (f = ka(f, "#f7ffe0", 40, 1)));
|
|
d = [
|
|
["0%", n],
|
|
["25%", p],
|
|
["30%", l],
|
|
["49.99%", q],
|
|
["50%", b],
|
|
["70%", f],
|
|
["100%", m],
|
|
];
|
|
return g
|
|
? ((c = c.gradientDistance), 25 > c ? ((d[3][0] = "47%"), (d[4][0] = "53%")) : 50 > c ? ((d[3][0] = "48%"), (d[4][0] = "52%")) : ((d[3][0] = "49.5%"), (d[4][0] = "50.5%")), jb(k, d, [h, "100%", a[3], a[3]]))
|
|
: jb(k, d, [h, "100%", a[3], a[3]], e);
|
|
}
|
|
function ef(a, c, b, d) {
|
|
void 0 === c && (c = !1);
|
|
void 0 === b && (b = !1);
|
|
void 0 === d && (d = !1);
|
|
var e = ["rounded", a, c, b, d].join(""),
|
|
f = 0;
|
|
if ("object" === typeof c && null !== c) var g = !0;
|
|
else {
|
|
f = c ? 90 : 0;
|
|
var h = Ja(f);
|
|
c = c ? 0 : 90;
|
|
}
|
|
a = ca(a);
|
|
b && ((h = Ja(f + 180)), (c = 0));
|
|
b = d ? ka(pe(a), "#ffffff", 5) : pe(a);
|
|
f = d ? ka(Bh(a), "#ffffff", 50) : oe(a);
|
|
var k = ka(b, "#fefefe", 25, a[3]),
|
|
l = ka(b, f, 18.75, a[3]),
|
|
m = ka(l, "#fefefe", 62.745, a[3]);
|
|
l = ka(l, "#fefefe", 54.90196, a[3]);
|
|
var n = ka(b, f, 31.25, a[3]);
|
|
a = ka(n, "#fefefe", 11.764705, a[3]);
|
|
var p = b;
|
|
g && ((p = k = m), (b = f));
|
|
d && ((b = ka(b, "#f7ffe0", 50, 1)), (p = ka(p, "#f7ffe0", 60, 1)));
|
|
d = [
|
|
["0%", p],
|
|
["5%", k],
|
|
["20%", m],
|
|
["20%", l],
|
|
["30%", a],
|
|
["30%", n],
|
|
["85%", f],
|
|
["100%", b],
|
|
];
|
|
return g ? jb(h, d) : jb(h, d, [c, "100%", 1, 1], e);
|
|
}
|
|
function Ck(a, c, b, d) {
|
|
void 0 === c && (c = !1);
|
|
void 0 === b && (b = !1);
|
|
void 0 === d && (d = !1);
|
|
var e = c ? Ja(90) : Ja(0),
|
|
f = c ? 0 : 90;
|
|
c = "subtl" + a + c + b;
|
|
var g = 0.03,
|
|
h = (a = ca(a)),
|
|
k = df(h),
|
|
l = a[3];
|
|
b && ((e = Ja(180)), (f = 0));
|
|
b = gg;
|
|
a = Ch("hsv(,,+" + g + ")");
|
|
var m = Ch("hsv(,,-" + g + ")");
|
|
g = Ch("hsv(,,-" + 2 * g + ")");
|
|
var n = a(h),
|
|
p = m(h);
|
|
a = g(h);
|
|
n === h && ((a = "#" + xk(p[0], p[1], p[2])), (n = m(a)), (a = g(a)));
|
|
d && (0.85 < k ? ((g = 1.4 * -(k - 0.8)), (n = b(n, "hsv(,," + (0 > g ? "-" : "+") + Math.abs(g) + ")"))) : ((h = ka(h, "#f7ffe0", 20, 1)), (n = ka(n, "#f7ffe0", 50, 1)), (a = ka(a, "#f7ffe0", 70, 1))));
|
|
d = [
|
|
["0%", Fc(n, 1 - l)],
|
|
["50%", Fc(ma(h), 1 - l)],
|
|
["90%", Fc(p, 1 - l)],
|
|
["100%", Fc(a, 1 - l)],
|
|
];
|
|
return jb(e, d, [f, "100%", h[3], h[3]], c);
|
|
}
|
|
function Dk(a, c, b, d) {
|
|
void 0 === c && (c = !1);
|
|
void 0 === b && (b = !1);
|
|
void 0 === d && (d = !1);
|
|
var e = c ? Ja(90) : Ja(0);
|
|
c = c ? 0 : 90;
|
|
var f = "squ" + a + b + d,
|
|
g = (a = ca(a));
|
|
a = a[3];
|
|
b && ((e = Ja(180)), (c = 0));
|
|
b = ka(g, d ? "white" : "black", 20);
|
|
b = [
|
|
["0%", Fc(b, 1 - a)],
|
|
["49.99%", Fc(b, 1 - a)],
|
|
["50%", Fc(g, 1 - a)],
|
|
["100%", Fc(g, 1 - a)],
|
|
];
|
|
return jb(e, b, [c, "100%", g[3], g[3]], f);
|
|
}
|
|
function hg(a, c, b) {
|
|
void 0 === b && (b = ["val"]);
|
|
for (var d, e = 0, f = 0, g = b.length; f < g; f++)
|
|
if ("val" === b[f]) {
|
|
e = f;
|
|
break;
|
|
}
|
|
a.pop && a.kind && (a = ma(a));
|
|
var h = [];
|
|
if ("object" === typeof a) {
|
|
if (a.stops) {
|
|
d = Object.create(a);
|
|
var k = [];
|
|
f = 0;
|
|
for (g = d.stops.length; f < g; f++) {
|
|
var l = d.stops[f];
|
|
b[e] = 3 === l.length ? ma(Fc(l[1], 1 - l[2])) : l[1];
|
|
l = Bk([l[0], c.apply(null, b)]);
|
|
h.push(l[1]);
|
|
k.push(l);
|
|
}
|
|
d.stops = k;
|
|
(c = J(a, "linearGradient") ? "linearGradient" : J(a, "radialGradient") ? "radialGradient" : void 0) && ((d[c] = a[c].slice()).hash = k.join(""));
|
|
return d;
|
|
}
|
|
if (a.image) return "url('" + a.image + "')";
|
|
} else return (b[e] = a), c.apply(null, b);
|
|
}
|
|
function hw(a, c) {
|
|
function b(b) {
|
|
return Math.sqrt(b[0] * b[0] * 0.284 + b[1] * b[1] * 0.72 + b[2] * b[2] * 0.068) / 255;
|
|
}
|
|
void 0 === c && (c = 0.3);
|
|
var d = (a = ca(a));
|
|
d[0] || d[1] || d[2] || (d[0] = d[1] = d[2] = 5);
|
|
a = b(d);
|
|
var e = 4.2 * c;
|
|
c *= 9;
|
|
c = 0.49 >= a ? Y(0.008 * e, 0.115 * e, 0, 0.49, a) : Y(-0.08 * c, -0.09 * c, 0.49, 1, a);
|
|
return Ro(
|
|
(function (a, c) {
|
|
var d = b(a);
|
|
d = ua(d + c, 0, 1);
|
|
c = b(a);
|
|
d -= c;
|
|
var e = b(cd(a, -10));
|
|
return cd(a, (d / (e - c)) * -10);
|
|
})(d, c)
|
|
);
|
|
}
|
|
function Lb(a, c) {
|
|
if ("none" === a) return "rgba(0,0,0,0)";
|
|
a = Ec(a);
|
|
t(c) && (a = Po(a, c));
|
|
return ma(a);
|
|
}
|
|
function Dh(a) {
|
|
a = ca(Ec(a));
|
|
return yk(a);
|
|
}
|
|
function oc(a, c, b, d) {
|
|
if (!t(a)) return a;
|
|
var e,
|
|
f = a.length,
|
|
g = [],
|
|
h = [];
|
|
if (a.pop) {
|
|
if ((e = Ec(a))) return b ? dd(b, V(e, c), d) : ma(V(e, c));
|
|
if (2 === f) return !0 === a[1] ? dd(b, V(Ec(a[0]), c), d) : V(Ec(a[0]), c);
|
|
if (2 < f) {
|
|
var k = a.join("");
|
|
d = a[f - 1];
|
|
var l = 100 / (f - 2);
|
|
for (b = 0; b < f - 1; b++) (e = V(Ec(a[b]), c)), h.push(ma(e)), g.push(l * b);
|
|
return Qo(d, g, h, k);
|
|
}
|
|
} else {
|
|
if (a.linearGradient && a.linearGradient.pop) return t(c) ? Eh(a, 1 - c) : a;
|
|
if (a.stops) {
|
|
if (a.hasOwnProperty("angle") && a.stops) {
|
|
f = a.stops.length;
|
|
d = a.stops;
|
|
for (b = 0; b < f; b++) (e = d[b]), "undefined" !== typeof e[0] ? g.push(100 * e[0]) : g.push(0), h.push(V(Ec(e[1]), c));
|
|
return Qo(a.angle, g, h);
|
|
}
|
|
} else {
|
|
if (a.image) return "url('" + a.image + "')";
|
|
if (a.charAt) return b ? dd(b, V(a, c), d) : V(a, c);
|
|
}
|
|
}
|
|
}
|
|
function ia(a, c) {
|
|
return hg(c, function (b) {
|
|
a: if (b) {
|
|
if ("currentColor" !== a) {
|
|
if (Ek(a)) var c = gg(b, a);
|
|
else if (La[a])
|
|
switch (a) {
|
|
case La.crysDark:
|
|
c = pe(b);
|
|
break;
|
|
case La.crysBright:
|
|
case La.select:
|
|
c = oe(b);
|
|
break;
|
|
case La.hover:
|
|
var e = b ? 1 - ca(b)[3] : void 0;
|
|
c = df(b);
|
|
c = 0.59 > c ? zk(b, c + 0.15) : zk(b, c - 0.15);
|
|
c = Po(c, 100 * e);
|
|
break;
|
|
case La.outline:
|
|
c = hw(b, 0.07);
|
|
case La.outlineContrast:
|
|
break;
|
|
case La.label:
|
|
c = cd(b, -40);
|
|
break;
|
|
case La.labelContrast:
|
|
var f = (c = gg(b, "contrast"));
|
|
e = Lo(b);
|
|
f = Lo(f);
|
|
e = (Math.max(e, f) + 0.05) / (Math.min(e, f) + 0.05);
|
|
7 > e && ((b = So(ca(b))), (c = ka(c, 0.5 > b[0] ? "#fff" : "#000", ((8 - e) / 8) * 100)));
|
|
break;
|
|
case La.seriesLine:
|
|
c = Ak(b, -0.095);
|
|
break;
|
|
case La.hueEffect:
|
|
c = ne(b, "h", -23.4);
|
|
break;
|
|
case La.lightenDark:
|
|
c = df(b);
|
|
c = Ak(b, 0.5 > c ? 0.095 : -0.125);
|
|
break;
|
|
default:
|
|
c = b;
|
|
}
|
|
else {
|
|
b = a;
|
|
break a;
|
|
}
|
|
b = ma(c);
|
|
}
|
|
} else b = void 0;
|
|
return b;
|
|
});
|
|
}
|
|
function dd(a, c, b) {
|
|
if (!c || "undefined" === typeof c) return c;
|
|
"none" === c && (c = "rgba(0,0,0,0)");
|
|
if (c.linearGradient) return c;
|
|
if (!1 === c[1]) return c[0];
|
|
c.length && !c.kind && (c = Lb(c));
|
|
var d = a,
|
|
e = ca(c)[3],
|
|
f = 1 - e,
|
|
g = V(c, f);
|
|
d += c + (b || 0);
|
|
var h = c;
|
|
switch (a) {
|
|
case Fa.gaugePolarBack:
|
|
b = V(ka(c, "#ffffff", 20), f);
|
|
h = g;
|
|
var k = V(ne(c, "v", -0.02), f);
|
|
h = jb(
|
|
Ja(90),
|
|
[
|
|
["0%", b],
|
|
["40%", h],
|
|
["100%", k],
|
|
],
|
|
[180, "0%", 1, 1],
|
|
d
|
|
);
|
|
break;
|
|
case Fa.titleBox:
|
|
b = V(ka(c, "#ffffff", 20), f);
|
|
h = g;
|
|
k = V(ne(c, "v", -0.06), f);
|
|
h = jb(
|
|
Ja(90),
|
|
[
|
|
["0%", b],
|
|
["40%", h],
|
|
["100%", k],
|
|
],
|
|
[180, "0%", 1, 1],
|
|
d
|
|
);
|
|
break;
|
|
case Fa.box:
|
|
b = V(ka(c, "#ffffff", 20), f);
|
|
k = h = g;
|
|
h = jb(
|
|
Ja(90),
|
|
[
|
|
["0%", b],
|
|
["40%", h],
|
|
["100%", k],
|
|
],
|
|
[180, "0%", 1, 1],
|
|
d
|
|
);
|
|
break;
|
|
case Fa.chartArea:
|
|
b = V(ka(c, "#ffffff", 20), f);
|
|
e = k = h = g;
|
|
var l = V(cd(c, -5), f);
|
|
h = jb(
|
|
Ja(90),
|
|
[
|
|
["0%", b],
|
|
["25%", h],
|
|
["30%", k],
|
|
["80%", e],
|
|
["100%", l],
|
|
],
|
|
[180, "0%", 1, 1],
|
|
d
|
|
);
|
|
break;
|
|
case Fa.altGridFillRad:
|
|
h = ma(V(Bd(c, 105), f), "rgba");
|
|
break;
|
|
case Fa.altGridFillY:
|
|
case Fa.altGridFillX:
|
|
g = 0.04;
|
|
0 < b && (g = Math.min(1.7 / b, 0.34));
|
|
if (0 === e) return Lb(c, 100);
|
|
b = V(Bd("#ffffff", 180), f);
|
|
h = V(Bd("#ffffff", 180), f);
|
|
k = V(Bd(c, 105), f);
|
|
e = V(Bd(c, 30), f);
|
|
l = V(Bd(cd(c, 60), 7.5), f);
|
|
c = V(Bd(c, 82.5), f);
|
|
h = jb(
|
|
"altGridFillY" === a ? Ja(90) : Ja(0),
|
|
[
|
|
["0%", b],
|
|
[g + "%", h],
|
|
[g + "%", k],
|
|
["35%", e],
|
|
["60%", l],
|
|
["100%", c],
|
|
],
|
|
["altGridFillY" === a ? 180 : 90, "50%", 0.35, 0.1],
|
|
d
|
|
);
|
|
break;
|
|
case Fa.axisMarkerY:
|
|
case Fa.axisMarkerX:
|
|
g = ca(c);
|
|
e = Math.min(255 * g[3] + 20, 255);
|
|
b = V(V(Bd(ne(c, "v", -0.04), e), 7), f);
|
|
h = V(V(c, 7), f);
|
|
h = jb(
|
|
"axisMarkerY" === a ? Ja(90) : Ja(0),
|
|
[
|
|
["0%", b],
|
|
["20%", h],
|
|
["80%", h],
|
|
["100%", b],
|
|
],
|
|
["axisMarkerY" === a ? 180 : 90, "0%", e / 255, e / 255],
|
|
d
|
|
);
|
|
break;
|
|
case Fa.jsButton:
|
|
b = V(cd(c, -10), f);
|
|
h = V(oe(c), f);
|
|
k = V(cd(c, -20), f);
|
|
h = jb(
|
|
Ja(90),
|
|
[
|
|
["0%", b],
|
|
["20%", h],
|
|
["70%", c],
|
|
["85%", c],
|
|
["100%", k],
|
|
],
|
|
[180, "0%", 1, 1],
|
|
d
|
|
);
|
|
break;
|
|
case Fa.jumpButton:
|
|
b = V(cd(c, -10), f);
|
|
h = V(oe(c), f);
|
|
k = V(cd(c, -20), f);
|
|
h = jb(
|
|
Ja(90),
|
|
[
|
|
["0%", b],
|
|
["20%", c],
|
|
["70%", h],
|
|
["85%", c],
|
|
["100%", k],
|
|
],
|
|
[180, "0%", 1, 1],
|
|
d
|
|
);
|
|
break;
|
|
case Fa.areaFill:
|
|
b = V(c, f);
|
|
k = ne(c, "v", 0.1);
|
|
h = jb(
|
|
Ja(90),
|
|
[
|
|
["0%", k],
|
|
["70%", b],
|
|
["80%", b],
|
|
["100%", b],
|
|
],
|
|
[180, "0%", e, e],
|
|
d
|
|
);
|
|
break;
|
|
case Fa.aqua:
|
|
h = jg(c);
|
|
break;
|
|
case Fa.rounded:
|
|
h = ef(c);
|
|
break;
|
|
case Fa.subtle:
|
|
h = Ck(c);
|
|
break;
|
|
case Fa.cushion:
|
|
h = ig(c);
|
|
break;
|
|
case Fa.navBar:
|
|
h = c;
|
|
}
|
|
return h;
|
|
}
|
|
function Eh(a, c) {
|
|
return a
|
|
? hg(a, function (b) {
|
|
t(c) && c.toFixed && ((b = ca(b)), (b = Dc("rgba", [b[0], b[1], b[2], b[3] * c])));
|
|
return ma(b);
|
|
})
|
|
: a;
|
|
}
|
|
function qe(a, c, b, d) {
|
|
a = ka(a, c, b, d);
|
|
return ma(a);
|
|
}
|
|
function Fk(a) {
|
|
a = Ec(a);
|
|
return ca(a);
|
|
}
|
|
function Ro(a, c) {
|
|
return ma(a, c);
|
|
}
|
|
function iw(a, c, b) {
|
|
function d(b, a, c, d) {
|
|
b && (a && 0 !== b["stroke-width"] && (b.stroke = a), c && (b.fill = c), d && (b["stoke-width"] = d));
|
|
}
|
|
var e = b.horizontal,
|
|
f = b.inverted,
|
|
g = b.offsets,
|
|
h = b.share,
|
|
k = b.isRadial ? b : e,
|
|
l = "lighterOnDark" === b.strokeMode ? oe : pe,
|
|
m,
|
|
n = !0;
|
|
if ("aqua" === a) d(c[""], c[""].stroke, jg(c[""].fill, k, f)), (m = c.hover) && d(m, m.stroke || qe(l(m.fill), m.fill, 50), jg(m.fill, k, f, !0), 2), (m = c.select) && d(m, m.stroke || ma(l(m.fill)), jg(m.fill, k, f, !0));
|
|
else if ("cushion" === a)
|
|
d(c[""], c[""].stroke, ig(c[""].fill, g, h)), (m = c.hover) && d(m, m.stroke || qe(l(m.fill), m.fill, 50), ig(m.fill, g, h), 2), (m = c.select) && d(m, m.stroke || ma(l(m.fill)), ig(m.fill, g, h)), (n = !1);
|
|
else if ("rounded" === a) {
|
|
m = c[""];
|
|
m.stroke = m.stroke || ma(l(m.fill));
|
|
m.fill = ef(m.fill, k, f);
|
|
if ((m = c.hover)) (m.stroke = m.stroke || m.fill), (m.fill = ef(m.fill, k, f, !0)), (m["stoke-width"] = 2);
|
|
if ((m = c.select)) (m.stroke = m.stroke || ma(l(m.fill))), (m.fill = ef(m.fill, k, f, !0));
|
|
} else if ("subtle" === a) {
|
|
m = c[""];
|
|
0 !== m["stroke-width"] && (m.stroke = m.stroke || ma(l(m.fill)));
|
|
m.fill = Ck(m.fill, k, f);
|
|
if ((m = c.hover)) 0 !== m["stroke-width"] && (m.stroke = m.stroke || m.fill), C(k, "isRadial") ? ((m.fill = qe(Bh(m.fill), "#ffffff", 20)), (n = !1)) : (m.fill = Ck(m.fill, k, f, !0));
|
|
if ((m = c.select)) 0 !== m["stroke-width"] && (m.stroke = m.stroke || ma(l(m.fill))), (m.fill = ef(m.fill, k, f, !0));
|
|
} else if ("square" === a) {
|
|
m = c[""];
|
|
m.stroke = m.stroke || ma(l(m.fill));
|
|
m.fill = Dk(m.fill, e, f);
|
|
if ((m = c.hover)) (m.stroke = m.stroke || m.fill), (m.fill = Dk(m.fill, e, f, !0));
|
|
if ((m = c.select)) (m.stroke = m.stroke || ma(l(m.fill))), (m.fill = Dk(m.fill, e, f, !0));
|
|
} else {
|
|
m = c[""];
|
|
m.stroke = ma(m.stroke || ma(l(m.fill)));
|
|
if ((m = c.hover)) (m.stroke = m.stroke || m.fill), (m.fill = qe(Bh(m.fill), "#ffffff", 20));
|
|
(m = c.select) && (m.stroke = ma(m.stroke || ma(l(m.fill))));
|
|
n = !1;
|
|
}
|
|
n &&
|
|
b.lgCoords &&
|
|
((a = function (a) {
|
|
a.linearGradient = b.lgCoords;
|
|
}),
|
|
a(c[""].fill),
|
|
c.hover && a(c.hover.fill),
|
|
c.select && a(c.select.fill));
|
|
}
|
|
function To(a, c) {
|
|
void 0 === c && (c = 1);
|
|
if ("none" === a) return a;
|
|
(a = hg(a, function (b) {
|
|
b = Fk(b);
|
|
b = ne(b, "s", -c);
|
|
return ma(b);
|
|
})) &&
|
|
a.linearGradient &&
|
|
(a.linearGradient.hash = a.linearGradient.hash + "DS" + c);
|
|
return a;
|
|
}
|
|
function Uo(a, c, b, d) {
|
|
function e(a) {
|
|
var d = [],
|
|
e = f(a),
|
|
h = e[1];
|
|
e = e[0];
|
|
e = g(e, c[a], [0, h]);
|
|
a = (e[1] - e[0]) / b;
|
|
for (h = 0; h < b; h++) d[h] = e[0] + a * h;
|
|
return d;
|
|
}
|
|
function f(b) {
|
|
switch (b) {
|
|
case "hue":
|
|
return [l[0], 1];
|
|
case "saturation":
|
|
return [l[1], 1];
|
|
case "lightness":
|
|
return [l[2], 1];
|
|
case "r":
|
|
return [k[0], 255];
|
|
case "g":
|
|
return [k[1], 255];
|
|
case "b":
|
|
return [k[2], 255];
|
|
}
|
|
}
|
|
function g(b, a, c) {
|
|
function d() {
|
|
f = c[1] - e[1];
|
|
g = e[0] - c[0];
|
|
}
|
|
var e = [b - a / 2, b + a / 2],
|
|
f,
|
|
g;
|
|
d();
|
|
0 > f ? ((e[0] += f), (e[1] += f), d(), 0 > g && (e[0] = c[0])) : 0 > g && ((e[0] -= g), (e[1] -= g), d(), 0 > f && (e[1] = c[1]));
|
|
return e;
|
|
}
|
|
d = t(d) ? d : 1;
|
|
var h = 0 === d,
|
|
k = ca(a),
|
|
l = bf(k[0], k[1], k[2]);
|
|
a = {};
|
|
for (p in c) c.hasOwnProperty(p) && (a[p] = e(p));
|
|
for (var m = [], n = 0; n < b; n++) {
|
|
var p = [l[0], l[1], l[2]];
|
|
a.hue && (p[0] = a.hue[n]);
|
|
a.saturation && (p[1] = a.saturation[n]);
|
|
a.lightness && (p[2] = a.lightness[n]);
|
|
m[n] = yk(bd(p[0], p[1], p[2])).hex;
|
|
}
|
|
return h ? m : jw(m, d);
|
|
}
|
|
function jw(a, c) {
|
|
c = t(c) ? c : -1;
|
|
var b = a.length,
|
|
d;
|
|
for (t(c) && (d = Tn(c, a.length + 2)); 0 !== b; ) {
|
|
var e = Math.floor(d[b] * b);
|
|
--b;
|
|
c = a[b];
|
|
a[b] = a[e];
|
|
a[e] = c;
|
|
}
|
|
return a;
|
|
}
|
|
function Gk() {
|
|
return { x: 0, y: 0, width: 0, height: 0 };
|
|
}
|
|
function Hk(a, c, b) {
|
|
c && ((a.x -= (c - a.width) / 2), (a.width = c));
|
|
b && ((a.y -= (b - a.height) / 2), (a.height = b));
|
|
return a;
|
|
}
|
|
function Cd(a, c) {
|
|
return Hk(a, a.width * c, a.height * c);
|
|
}
|
|
function Ik(a, c) {
|
|
return { x: a.x + c, y: a.y + c, width: a.width - 2 * c, height: a.height - 2 * c, borderWidth: 2 * c };
|
|
}
|
|
function Vo(a, c) {
|
|
return [a[0] + c[3], a[1] + c[0], a[2] - c[3] - c[1], a[3] - c[0] - c[2]];
|
|
}
|
|
function Wo(a, c, b) {
|
|
return { x: a.x + c, y: a.y + b, width: a.width, height: a.height };
|
|
}
|
|
function Xo(a, c) {
|
|
return Ik(a, (c * Math.min(a.width, a.height)) / 2);
|
|
}
|
|
function kg(a, c, b, d) {
|
|
return { x: a - b / 2, y: c - d / 2, width: b, height: d };
|
|
}
|
|
function Yo(a) {
|
|
0 > a.width && ((a.x += a.width), (a.width = -a.width));
|
|
0 > a.height && ((a.y += a.height), (a.height = -a.height));
|
|
a.right = a.x + a.width;
|
|
a.bottom = a.y + a.height;
|
|
a.cx = a.x + a.width / 2;
|
|
a.cy = a.y + a.height / 2;
|
|
return a;
|
|
}
|
|
function Zo(a) {
|
|
return [a.x, a.y, a.x + a.width, a.y + a.height];
|
|
}
|
|
function $o(a) {
|
|
return { x: a[0], y: a[1], width: a[2] - a[0], height: a[3] - a[1] };
|
|
}
|
|
function Gc(a) {
|
|
return { x: a[0], y: a[1], width: a[2], height: a[3] };
|
|
}
|
|
function ap(a, c) {
|
|
var b = a.width * a.height,
|
|
d = c.width * c.height;
|
|
b = b === d && a.width === c.width ? 0 : Sj(b, d);
|
|
return 0 === b && a.x === c.x && a.y === c.y ? 0 : 0 === b ? -1 : b;
|
|
}
|
|
function Fh(a) {
|
|
"undefined" === typeof a && (a = 0);
|
|
a.toFixed ? (a = Jk[a]) : a.charAt ? ((a = a.toLowerCase()), (a = Jk[kw.indexOf(a)])) : (a = Jk[0]);
|
|
return a ? ("#" + a.match(/.{1,6}/g).join("#")).match(/.{1,7}/g) : a;
|
|
}
|
|
function bp(a, c, b, d) {
|
|
void 0 === d && (d = {});
|
|
var e = (ff[a] = ff[a] || {});
|
|
e.loaded && c();
|
|
var f = (e.callbacks = e.callbacks || []);
|
|
e.loading
|
|
? f.push(c)
|
|
: ((e.loading = !0),
|
|
f.push(c),
|
|
lw(
|
|
a,
|
|
function () {
|
|
w(f, function (b) {
|
|
return b();
|
|
});
|
|
e.loading = !1;
|
|
e.loaded = !0;
|
|
},
|
|
b,
|
|
d
|
|
));
|
|
}
|
|
function mw(a, c) {
|
|
if (!a) return null;
|
|
c || je();
|
|
return -1 < a.indexOf("http:") || -1 < a.indexOf("https:") ? a + ".js" : (c || je()) + "/" + a + ".js";
|
|
}
|
|
function lw(a, c, b, d) {
|
|
var e = d.baseUrl,
|
|
f = d.notificationContainer,
|
|
g = mw(a, e);
|
|
lk(g, c, function () {
|
|
b && b.emit("warning", "moduleLoader", "libNotFound", { data: [g], container: f });
|
|
c();
|
|
});
|
|
nw(b, e, g, f);
|
|
}
|
|
function nw(a, c, b, d) {
|
|
c = !c && to();
|
|
a && (c ? a.emit("warning", "moduleLoader", "cdnLoad", { data: [b], container: d }) : (je() && "https://code.jscharting.com/3.0.2" === je()) || !ow(b) || a.emit("warning", "moduleLoader", "scriptLoad", { data: [b], container: d }));
|
|
}
|
|
function ow(a) {
|
|
return S(["maps", "toolbar", "types"], function (c) {
|
|
return ~a.indexOf("modules/" + c);
|
|
});
|
|
}
|
|
function zb(a) {
|
|
return (a.id = a.id || de());
|
|
}
|
|
function Gh(a, c) {
|
|
var b = a[c],
|
|
d;
|
|
"object" === I(b) && (d = a[c] = [b]);
|
|
return d || a[c];
|
|
}
|
|
function pw(a, c, b) {
|
|
var d, e;
|
|
if ("undefined" !== (e = I((d = C(a, c)))) && "array" === e) {
|
|
var f = {};
|
|
w(d, function (a, c) {
|
|
f[b[c]] = a;
|
|
});
|
|
Z(a, c, f);
|
|
}
|
|
}
|
|
function cp(a, c) {
|
|
var b, d;
|
|
"undefined" !== (d = I((b = C(a, c)))) && "string" === d && Z(a, c, b.toLowerCase());
|
|
}
|
|
function qw(a) {
|
|
Da(rw, function (c) {
|
|
var b = a[c];
|
|
b && nb(b) && 1 > Math.abs(b) && (a[c] = 100 * b + "%");
|
|
});
|
|
}
|
|
function dp(a, c) {
|
|
var b;
|
|
"undefined" !== I((b = C(a, c))) && Lb(b) && Z(a, c, Lb(b));
|
|
}
|
|
function sw(a) {
|
|
if ("object" == typeof a) {
|
|
var c = [];
|
|
w(["topLeft", "topRight", "bottomRight", "bottomLeft"], function (b, d) {
|
|
c[d] = a[b];
|
|
});
|
|
return c;
|
|
}
|
|
}
|
|
function db(a, c) {
|
|
return t(a) && a.charAt ? (-1 < a.indexOf("%") ? ((a = parseInt(a.match("-?[0-9]+"))), (a / 100) * c) : parseInt(a)) : a;
|
|
}
|
|
function gf(a, c) {
|
|
Hh || (Hh = T.Promise || tw);
|
|
return new Hh(a, c);
|
|
}
|
|
function uw(a, c) {
|
|
var b = [],
|
|
d = function () {
|
|
return (
|
|
0 ===
|
|
b.filter(function (b) {
|
|
return !b;
|
|
}).length
|
|
);
|
|
},
|
|
e;
|
|
a.forEach(function (f) {
|
|
f.then(
|
|
function (f) {
|
|
b.push(f ? f.ok : !0);
|
|
f && f.error && (e = f.error);
|
|
f = { ok: d() };
|
|
e && (f.error = e);
|
|
b.length === a.length && c(f);
|
|
},
|
|
function () {
|
|
b.push(!1);
|
|
b.length === a.length && c({ ok: !1 });
|
|
}
|
|
);
|
|
});
|
|
}
|
|
function tw(a) {
|
|
return new ep("polyfill/promise", function () {
|
|
return new (Hh = T.Promise)(a);
|
|
});
|
|
}
|
|
function vw(a, c) {
|
|
return new ep(["polyfill/promise", "polyfill/fetch"], function () {
|
|
return (Ih = T.fetch)(a, c);
|
|
});
|
|
}
|
|
function lg(a) {
|
|
if (a && a.unit) {
|
|
var c = z(a.multiplier, a.count);
|
|
void 0 === c && (a.multiplier = 1);
|
|
c = z(c, 1);
|
|
return (Jh[a.unit] / 1) * c;
|
|
}
|
|
return 0;
|
|
}
|
|
function bc(a, c) {
|
|
var b = c.unit,
|
|
d = z(c.multiplier, c.count, 1);
|
|
"quarter" === b && ((b = "month"), (d *= 3));
|
|
a.getMonth || (a = new Date(a));
|
|
a = new Date(a.getTime());
|
|
if (c && b)
|
|
if ("decade" === b) a.setFullYear(a.getFullYear() + 10 * d);
|
|
else
|
|
return "month" === b
|
|
? new Date(a.getFullYear(), a.getMonth() + d, a.getDate())
|
|
: "year" === b
|
|
? (a.setFullYear(a.getFullYear() + d), new Date(a.getTime()))
|
|
: "day" === b
|
|
? (a.setDate(a.getDate() + d), new Date(a.getTime()))
|
|
: new Date(a.getTime() + lg(c));
|
|
return a;
|
|
}
|
|
function Kk(a, c, b) {
|
|
b.getMonth || (b = new Date(b));
|
|
b = new Date(b.getTime());
|
|
var d = a.unit ? a.unit : a;
|
|
c = a.multiplier ? a.multiplier : 1;
|
|
"minute" === d && 1 < c && (d = "hour");
|
|
switch (d) {
|
|
case "decade":
|
|
b.setFullYear(10 * Math.floor(0.1 * b.getFullYear()));
|
|
case "year":
|
|
b.setMonth(0);
|
|
case "month":
|
|
b.setDate(1);
|
|
case "week":
|
|
if ("week" === d) {
|
|
b.setDate(b.getDate() - b.getDay() + ww);
|
|
break;
|
|
}
|
|
case "day":
|
|
b.setHours(0);
|
|
case "hour":
|
|
b.setMinutes(0);
|
|
case "minute":
|
|
b.setSeconds(0);
|
|
}
|
|
b.setMilliseconds(0);
|
|
return b;
|
|
}
|
|
function hf(a, c) {
|
|
return {
|
|
year: { year: c ? "2-digit" : "numeric" },
|
|
month: { month: c ? "numeric" : "short" },
|
|
day: { day: "numeric" },
|
|
weekday: { weekday: "short" },
|
|
hour: { hour: "numeric" },
|
|
minute: c ? { minute: "2-digit" } : { hour: "numeric", minute: "2-digit" },
|
|
second: c ? { second: "2-digit" } : { hour: "numeric", minute: "2-digit", second: "2-digit" },
|
|
millisecond: "fff",
|
|
}[a];
|
|
}
|
|
function Kh(a) {
|
|
var c = B(a, Lk);
|
|
a = Math.min.apply(Math, H(c));
|
|
c = Math.max.apply(Math, H(c));
|
|
for (var b = []; a < c + 1; a++) b.push(hf(Lh[a]));
|
|
return b;
|
|
}
|
|
function fp(a) {
|
|
var c = a.pair,
|
|
b = c.major,
|
|
d = c.minor,
|
|
e = a.sigUnits,
|
|
f = a.intervals;
|
|
c = hf(b.unit);
|
|
d = hf(d.unit);
|
|
var g = c,
|
|
h = d;
|
|
e.major.length && e.minor.length
|
|
? 1 === a.intervals[0].length
|
|
? ((b = Math.min.apply(Math, H(B(e.major, Lk)))), (e = Math.min.apply(Math, H(B(e.minor, Lk)))), e--, 3 <= e && e--, e > b && (g = A.apply(null, Kh([Lh[b], Lh[e]]))))
|
|
: ((a = Kh(e.major)),
|
|
(e = Kh(e.minor)),
|
|
3 < a.length && a.pop(),
|
|
"day" === b.unit && f[1].length >= f[0].length && A(c, hf("month")),
|
|
a.length && f[1][0] > f[0][0] && (g = A.apply(null, a)),
|
|
e.length && (h = d = A.apply(null, e)))
|
|
: !e.major.length && e.minor.length && 1 === e.minor.length && "day" === e.minor[0] && (h = A(hf("month"), h));
|
|
return { major: c, minor: d, majorFirst: g, minorFirst: h };
|
|
}
|
|
function gp(a) {
|
|
var c = G(a, 2);
|
|
a = c[1];
|
|
c = $a(B(c[0], Mk));
|
|
a = $a(B(a, Mk));
|
|
return { major: c, minor: a };
|
|
}
|
|
function Mh(a, c, b, d) {
|
|
var e = [],
|
|
f = [],
|
|
g = [];
|
|
d = d.getTime();
|
|
var h = b.getTime();
|
|
h = d - h;
|
|
var k = { exists: 0, close: 0 },
|
|
l = b;
|
|
l.getMonth || (l = new Date(l));
|
|
var m = a.unit ? a.unit : a,
|
|
n = a.multiplier ? a.multiplier : 1,
|
|
p = Kk(a, 1, l);
|
|
if (p.getTime() !== l.getTime()) for (; p.getTime() < l.getTime(); ) p = bc(p, { unit: m, multiplier: n });
|
|
for (l = m = p; l.getTime() <= d; ) f.push(l.getTime()), (l = bc(l, a));
|
|
e.push(f);
|
|
if (c) {
|
|
var q;
|
|
l = m;
|
|
l.getMonth || (l = new Date(l));
|
|
for ("week" === c.unit && (l = Kk(c, 1, l)); l > b; ) l = bc(l, { unit: c.unit, multiplier: -z(c.multiplier, 1) });
|
|
b = bc(l, c);
|
|
b.setMilliseconds(0);
|
|
for (l = b; l.getTime() <= d; ) {
|
|
n = m = a = void 0;
|
|
p = l.getTime();
|
|
var r = f;
|
|
b = h / 20;
|
|
if (0 > r.indexOf(p)) {
|
|
if (r.length) {
|
|
try {
|
|
for (var u = ya(r), x = u.next(); !x.done; x = u.next()) {
|
|
var v = x.value;
|
|
if (void 0 === a || la(v, p) < la(a, p)) a = v;
|
|
}
|
|
} catch (y) {
|
|
n = { error: y };
|
|
} finally {
|
|
try {
|
|
x && !x.done && (m = u.return) && m.call(u);
|
|
} finally {
|
|
if (n) throw n.error;
|
|
}
|
|
}
|
|
a = la(a, p);
|
|
} else a = void 0;
|
|
b = t(a) && (a >= b ? void 0 : "close");
|
|
} else b = "exists";
|
|
(q = b) ? k[q]++ : g.push(l.getTime());
|
|
l = bc(l, c);
|
|
}
|
|
1 < g.length && e.push(g);
|
|
e.minorRemoval = k;
|
|
}
|
|
return e;
|
|
}
|
|
function Nh(a, c) {
|
|
c = c || [
|
|
["millisecond", [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]],
|
|
["second", [1, 2, 5, 10, 15, 30]],
|
|
["minute", [1, 2, 5, 10, 15, 30]],
|
|
["hour", [1, 2, 3, 4, 6, 8, 12]],
|
|
["day", [1, 2]],
|
|
["week", [1, 2]],
|
|
["month", [1, 2, 3, 4, 6]],
|
|
["year", null],
|
|
];
|
|
var b = c[c.length - 1],
|
|
d = Jh[b[0]],
|
|
e;
|
|
a.unit && (a = lg(a));
|
|
for (e = 0; e < c.length; e++) {
|
|
b = c[e];
|
|
d = Jh[b[0]];
|
|
var f = b[1];
|
|
if (c[e + 1] && a <= (d * f[f.length - 1] + Jh[c[e + 1][0]]) / 2) break;
|
|
}
|
|
return { unitRange: d, count: Math.max(1, Math.round(a / d)), unit: b[0] };
|
|
}
|
|
function xw(a, c, b, d) {
|
|
var e = yw(),
|
|
f,
|
|
g = function (b) {
|
|
f = b = Mh(b.major, b.minor, a, c);
|
|
return b[0].length + (b[1] ? b[1].length : 0);
|
|
},
|
|
h,
|
|
k = 0,
|
|
l = 0;
|
|
if (d)
|
|
var m = (h = d.pair),
|
|
n = g(d.pair),
|
|
p = f;
|
|
else
|
|
for (; l < b; )
|
|
if ((h = e[k])) {
|
|
l = g(h);
|
|
if (l > b || 3 < f.minorRemoval.close) break;
|
|
k++;
|
|
m = h;
|
|
n = l;
|
|
p = f;
|
|
} else break;
|
|
return { pair: m, count: n, intervals: p, sigUnits: gp(p) };
|
|
}
|
|
function Nk(a, c, b, d) {
|
|
void 0 === d && (d = !0);
|
|
a = new Ok(a);
|
|
c = a.isInterval ? (d ? a.setRangeSnap(c, b) : a.setRange(c, b)) : a.getRanges(c, b);
|
|
return B(c, function (b) {
|
|
return B(b, function (b) {
|
|
return b.getTime();
|
|
});
|
|
});
|
|
}
|
|
function hp(a, c) {
|
|
var b;
|
|
return (b = a.offset)
|
|
? c.map(function (a) {
|
|
return a.map(function (a) {
|
|
return X(a.getTime() + b);
|
|
});
|
|
})
|
|
: c;
|
|
}
|
|
function Pk(a, c, b) {
|
|
void 0 === c && (c = "sum");
|
|
if ((!a || !a.length) && t(b)) return b;
|
|
switch (c) {
|
|
case "sum":
|
|
return Ta(a);
|
|
case "average":
|
|
return (c = Ta(a)), null === c ? NaN : c / a.length;
|
|
case "min":
|
|
return Math.min.apply(Math, H(a));
|
|
case "max":
|
|
return Math.max.apply(Math, H(a));
|
|
}
|
|
}
|
|
function zw(a, c) {
|
|
if ("function" === typeof a.pop)
|
|
return ip(function (b) {
|
|
a.forEach(function (a) {
|
|
return b(a.values);
|
|
});
|
|
})
|
|
? [{ points: jf(a, c) }]
|
|
: a.map(function (b) {
|
|
return { name: b.key, points: jf(b.values, c) };
|
|
});
|
|
var b = Object.keys(a);
|
|
if (Qk(C(a, b[0]))) return [{ points: jf(a, c) }];
|
|
var d = [];
|
|
b.forEach(function (b) {
|
|
return d.push({ name: b, points: jf(a[b], c) });
|
|
});
|
|
return d;
|
|
}
|
|
function jf(a, c) {
|
|
var b = "function" === typeof c,
|
|
d = b
|
|
? function (b, a) {
|
|
return c(a, b);
|
|
}
|
|
: Gb,
|
|
e = function () {
|
|
d = function (b) {
|
|
return Pk(b, c);
|
|
};
|
|
};
|
|
if ("function" === typeof a.pop)
|
|
return (
|
|
!b &&
|
|
ip(function (b) {
|
|
a.forEach(function (a) {
|
|
return b(a.values);
|
|
});
|
|
}) &&
|
|
e(),
|
|
a.map(function (a) {
|
|
if (b) a = d(a.values, a.key);
|
|
else {
|
|
var c = a.key;
|
|
a = { x: "string" === typeof c && c.match(Rk) ? parseFloat(c) : c, y: d(a.values, a.key) };
|
|
}
|
|
return a;
|
|
})
|
|
);
|
|
var f = Object.keys(a);
|
|
!b && Qk(C(a, f[0])) && e();
|
|
var g = [];
|
|
f.forEach(function (c) {
|
|
return g.push(b ? d(a[c], c) : { x: c, y: d(a[c], c) });
|
|
});
|
|
return g;
|
|
}
|
|
function jp(a, c, b) {
|
|
return "object" === typeof c && c.pattern ? Aw(a, c, b) : kp(lp(a, c, void 0, b));
|
|
}
|
|
function lp(a, c, b, d) {
|
|
c = Sk(c);
|
|
var e = {};
|
|
b &&
|
|
b.forEach(function (b) {
|
|
e[b] = [];
|
|
});
|
|
b = 0;
|
|
for (var f = a.length; b < f; b++) {
|
|
var g = a[b],
|
|
h = c(g);
|
|
null !== h && Bw(e, h, g);
|
|
}
|
|
d &&
|
|
w(e, function (b, a) {
|
|
b = Cw(d);
|
|
return (e[a] = b(e[a]));
|
|
});
|
|
return e;
|
|
}
|
|
function Aw(a, c, b) {
|
|
a = Dw(a, c, b);
|
|
c = a.notDates
|
|
? parseInt
|
|
: function (b) {
|
|
return X(parseInt(b));
|
|
};
|
|
delete a.notDates;
|
|
return kp(a, c);
|
|
}
|
|
function Dw(a, c, b) {
|
|
var d,
|
|
e = c.pattern,
|
|
f = c.range,
|
|
g = Sk(c.key);
|
|
c = [];
|
|
if (!e) throw "CalendarPattern Required";
|
|
var h = new Ok(e),
|
|
k =
|
|
"numeric" === h.intervalType
|
|
? Gb
|
|
: function (b) {
|
|
return b.getTime();
|
|
};
|
|
if (f)
|
|
var l = [X(f[0]), X(f[1])],
|
|
m = h.setRange(X(f[0]), X(f[1]));
|
|
else {
|
|
try {
|
|
for (var n = ya(a), p = n.next(); !p.done; p = n.next()) {
|
|
var q = ed(g(p.value));
|
|
Ha(q) || c.push(q);
|
|
}
|
|
} catch (u) {
|
|
var r = { error: u };
|
|
} finally {
|
|
try {
|
|
p && !p.done && (d = n.return) && d.call(n);
|
|
} finally {
|
|
if (r) throw r.error;
|
|
}
|
|
}
|
|
r = Math.min.apply(Math, H(c));
|
|
d = Math.max.apply(Math, H(c));
|
|
l = [X(r), X(d)];
|
|
m = h.setRangeSnap(X(r), X(d));
|
|
}
|
|
r = m.map(function (b) {
|
|
return k(b[0]);
|
|
});
|
|
a = lp(
|
|
a,
|
|
function (b, a) {
|
|
b = ed((a || g)(b));
|
|
a = h.isInside(b);
|
|
if (-1 === a) {
|
|
if (!Kb(l, b)) return null;
|
|
Ha(ed(b)) || (a = m.length - 1);
|
|
}
|
|
return k(m[a][0]);
|
|
},
|
|
r,
|
|
b
|
|
);
|
|
"numeric" === h.intervalType && (a.notDates = !0);
|
|
return a;
|
|
}
|
|
function Tk(a) {
|
|
var c,
|
|
b,
|
|
d,
|
|
e = function (a, e) {
|
|
if ("key" === a[0]) {
|
|
var f = void 0;
|
|
!b && c
|
|
? ((b = !0),
|
|
(f = function (b) {
|
|
return jp(b, a[1], c[1]);
|
|
}))
|
|
: (f = function (b) {
|
|
return jp(b, a[1], e);
|
|
});
|
|
b = !0;
|
|
if (d) {
|
|
var g = f,
|
|
h = d[1];
|
|
f = function (b) {
|
|
b = sa(g(b), function (b) {
|
|
return b.key;
|
|
});
|
|
!0 === h && b.reverse();
|
|
return b;
|
|
};
|
|
d = void 0;
|
|
}
|
|
return f;
|
|
}
|
|
if ("rollup" === a[0]) return (c = a), Gb;
|
|
if ("sortKey" === a[0]) return (d = a), Gb;
|
|
if ("reverse" === a[0])
|
|
return function (b) {
|
|
return b.reverse();
|
|
};
|
|
};
|
|
a = a.calls.slice(0);
|
|
for (var f = a.length - 1, g = Gb; -1 < f; ) g = e(a[f--], g);
|
|
return g;
|
|
}
|
|
function Ew(a, c, b, d) {
|
|
wh(a, c, b, d, Oh);
|
|
}
|
|
function Ph(a) {
|
|
return B(a, function (a) {
|
|
return a.match(Rk) ? "number" : Ha(new Date(a).getTime()) ? "string" : "date";
|
|
});
|
|
}
|
|
function Uk(a) {
|
|
if (1 < a.length) {
|
|
var c = Ph(a[0]),
|
|
b = Ph(a[1]);
|
|
if (
|
|
(function (b, a) {
|
|
return !S(b, function (b) {
|
|
return b !== a;
|
|
});
|
|
})(c, "string")
|
|
) {
|
|
if (3 > a.length) return !Qe(c, b);
|
|
if (2 < a.length) return (a = Ph(a[2])), !Qe(c, a);
|
|
}
|
|
}
|
|
}
|
|
function Vk(a) {
|
|
var c = Math.min(3, a.length),
|
|
b = [];
|
|
ob(c, function (c) {
|
|
return (b[c] = Ph(a[c]));
|
|
});
|
|
if (
|
|
!S(b, function (b) {
|
|
return S(b, function (b) {});
|
|
})
|
|
) {
|
|
for (var d = void 0, e = 0; e < b.length - 1 && !(d = !Qe(b[e], b[e + 1])); e++);
|
|
var f = ["date", "number", "string", "undefined"];
|
|
if (d) {
|
|
var g = [];
|
|
ob(b[0].length, function (a) {
|
|
var d = [];
|
|
ob(c, function (c) {
|
|
d.push(b[c][a]);
|
|
});
|
|
d.sort(function (b, a) {
|
|
return Sj(f.indexOf(b), f.indexOf(a));
|
|
});
|
|
g.push(d);
|
|
});
|
|
return B(g, function (b) {
|
|
return b[0];
|
|
});
|
|
}
|
|
return b[0];
|
|
}
|
|
return [];
|
|
}
|
|
function Oh(a, c, b) {
|
|
void 0 === c && (c = ",");
|
|
var d = [],
|
|
e,
|
|
f,
|
|
g,
|
|
h = !1;
|
|
for (e = f = g = 0; g < a.length; g++) {
|
|
var k = a[g],
|
|
l = a[g + 1];
|
|
d[e] = d[e] || [];
|
|
d[e][f] = d[e][f] || "";
|
|
'"' === k && h && '"' === l
|
|
? ((d[e][f] += k), ++g)
|
|
: '"' === k
|
|
? (h = !h)
|
|
: k !== c || h
|
|
? "\r" !== k || "\n" !== l || h
|
|
? "\n" !== k || h
|
|
? "\r" !== k || h
|
|
? (d[e][f] += k)
|
|
: (++e, (f = 0))
|
|
: (++e, (f = 0))
|
|
: (++e, (f = 0), ++g)
|
|
: ++f;
|
|
}
|
|
!b && Uk(d) && (d.shift(), Uk(d) && d.shift());
|
|
return d;
|
|
}
|
|
function mp(a, c) {
|
|
var b = {
|
|
number: function (b) {
|
|
b = parseFloat(b);
|
|
return Ha(b) ? null : b;
|
|
},
|
|
string: function (b) {
|
|
return b;
|
|
},
|
|
date: function (b) {
|
|
return new Date(b).getTime();
|
|
},
|
|
"": function (b) {
|
|
return b;
|
|
},
|
|
},
|
|
d = function (a) {
|
|
return B(a, function (a, d) {
|
|
return b[c[d]](a);
|
|
});
|
|
},
|
|
e = function (b) {
|
|
w(a[b], function (b) {
|
|
b = I(b);
|
|
if ("number" === b || "date" === b || "object" === b) return (f = !0), !1;
|
|
});
|
|
},
|
|
f = !1;
|
|
if (a.length) {
|
|
ob(3, function (b) {
|
|
return e(b);
|
|
});
|
|
if (f) return a;
|
|
c = c || Vk(a);
|
|
return B(a, d);
|
|
}
|
|
}
|
|
function np(a, c) {
|
|
"string" === I(a) && c && (a = { mapTo: a, data: c });
|
|
var b = {
|
|
number: function (b) {
|
|
return parseFloat(b);
|
|
},
|
|
string: function (b) {
|
|
return b;
|
|
},
|
|
dateNumber: function (b) {
|
|
return new Date(parseInt(b));
|
|
},
|
|
date: function (b) {
|
|
return new Date(b);
|
|
},
|
|
"": function (b) {
|
|
return b;
|
|
},
|
|
},
|
|
d,
|
|
e = a.csv,
|
|
f = a.data;
|
|
c = a.intervals;
|
|
var g = I(f),
|
|
h = a.types,
|
|
k = a.newline || Fw,
|
|
l = a.mapTo || "x,y,z",
|
|
m = a.delimiter || ",";
|
|
h && (h = h.split(","));
|
|
var n = function (b) {
|
|
return Un(b) ? "number" : "string";
|
|
},
|
|
p = function (b, a) {
|
|
return "date" === h[a] ? { number: "dateNumber", string: "date" }[n(b)] : h[a];
|
|
},
|
|
q = function (b) {
|
|
return h ? B(b, p) : B(b, n);
|
|
},
|
|
r = function (b) {
|
|
return B(b.split(m), function (b, a) {
|
|
return u[a](b);
|
|
});
|
|
};
|
|
e || "string" !== g || (e = f);
|
|
if (e) {
|
|
e = e.split(k);
|
|
a.header && (e = e.splice(0, 1));
|
|
h = q(e[Math.min(1, e.length - 1)].split(m));
|
|
var u = B(h, function (a) {
|
|
return b[a];
|
|
});
|
|
f = B(e, r);
|
|
}
|
|
f && (d = op(l, f));
|
|
c &&
|
|
w(c, function (a, c) {
|
|
var e = a.start,
|
|
f = a.step,
|
|
g = b[a.type || ""];
|
|
w(d, function (b, a) {
|
|
return (b[c] = g(e + f * a));
|
|
});
|
|
});
|
|
return d;
|
|
}
|
|
function op(a, c) {
|
|
function b(b, a, c) {
|
|
b[a] = c;
|
|
}
|
|
function d(b, a, c) {
|
|
Z(b, a, c);
|
|
}
|
|
a = a.split(",");
|
|
var e = [],
|
|
f = [],
|
|
g,
|
|
h,
|
|
k,
|
|
l = 0;
|
|
for (g = a.length; l < g; l++) (a[l] = a[l].trim()), (f[l] = -1 < a[l].indexOf(".") ? d : b);
|
|
var m = 0;
|
|
for (h = c.length; m < h; m++) {
|
|
g = c[m];
|
|
l = {};
|
|
var n = 0;
|
|
for (k = g.length; n < k; n++) f[n](l, a[n], g[n]);
|
|
e[m] = l;
|
|
}
|
|
return e;
|
|
}
|
|
function pp(a, c) {
|
|
void 0 === c && (c = {});
|
|
var b = [],
|
|
d = Oh(a, c.delimiter, !0);
|
|
ob(2, function (a) {
|
|
return Uk(d) && b.push(d.shift());
|
|
});
|
|
var e = Vk(d);
|
|
a = { raw: a, headers: b, types: e, split: d };
|
|
c.skipCoerce || (a.data = mp(d, e));
|
|
return a;
|
|
}
|
|
function Wk(a, c, b) {
|
|
void 0 === b && (b = {});
|
|
a = pp(a, { delimiter: c, skipCoerce: !!b.coerce });
|
|
var d = b;
|
|
void 0 === d && (d = {});
|
|
b = d.map;
|
|
c = d.coerce;
|
|
var e = a.data,
|
|
f = a.headers,
|
|
g = a.types;
|
|
d.columns && (f = [d.columns]);
|
|
e = e || a.split;
|
|
if (0 < f.length && f[0].length && e[0].length === f[0].length) {
|
|
var h = f[0];
|
|
d = [];
|
|
for (var k = 0; k < e.length; k++) {
|
|
for (var l = e[k], m = {}, n = 0; n < l.length; n++) m[h[n]] = l[n];
|
|
l = b ? b(m) : m;
|
|
d.push(c ? c(l, k, g) : l);
|
|
}
|
|
d.columns = h;
|
|
1 < f.length && (d.headers = f);
|
|
} else d = a.data;
|
|
d && (d.types = a.types);
|
|
return d;
|
|
}
|
|
function Xk(a, c, b) {
|
|
void 0 === b && (b = {});
|
|
(b = b.map) && (a = a.map(b));
|
|
var d = pa(a[0]),
|
|
e = function (b, a) {
|
|
return a.map(function (a) {
|
|
return b[a];
|
|
});
|
|
};
|
|
a = a.map(function (b, a) {
|
|
return e(b, d).join(c);
|
|
});
|
|
a.splice(0, 0, d.join(c));
|
|
return a.join("\n");
|
|
}
|
|
function Gw(a, c) {
|
|
var b = ba.body,
|
|
d = 1e3,
|
|
e = ba.createElement("span");
|
|
e.innerHTML = "QW@HhsXJ";
|
|
e.style.position = "absolute";
|
|
e.style.top = e.style.left = "-9999px";
|
|
e.style.visibility = "hidden";
|
|
e.style.fontFamily = "Courier New";
|
|
e.style.fontSize = "250px";
|
|
b.appendChild(e);
|
|
var f = e.offsetWidth;
|
|
e.style.fontFamily = a + ",Courier New";
|
|
var g = function () {
|
|
f !== e.offsetWidth ? (b.removeChild(e), c(!0)) : 0 > d ? (b.removeChild(e), c(!1)) : (setTimeout(g, 50), (d -= 50));
|
|
};
|
|
g();
|
|
}
|
|
function Dd(a) {
|
|
return a ? (Yk[a] || (Yk[a] = 0), "_jsc_" + a + Yk[a]++) : "_jsc" + Hw++;
|
|
}
|
|
function qp(a) {
|
|
return (a || "") + Math.random().toFixed(5).slice(2);
|
|
}
|
|
function Iw(a) {
|
|
return a ? -1 < a.indexOf("_jsc") : !1;
|
|
}
|
|
function kf(a, c) {
|
|
c = c || 1;
|
|
return a && a.pop ? [na(a[0], c), na(a[1], c)] : t(a.x) ? { x: na(a.x, c), y: na(a.y, c) } : a;
|
|
}
|
|
function ab(a, c, b) {
|
|
a = kf(a.slice(0), b);
|
|
c = kf(c.slice(0), b);
|
|
if (a[0] === c[0] && a[1] === c[1]) return !0;
|
|
}
|
|
function rp(a, c, b, d, e) {
|
|
e = Math.min((a - c) / 2, e);
|
|
(e / (Zk * c)) * sp > Math.abs(b - d) && (e = ((d - b) / sp) * c * Zk);
|
|
return { cornerR: e, oCornerR: ((a + c) / 2 / c) * e };
|
|
}
|
|
function cc(a, c) {
|
|
var b = c[0] - a[0];
|
|
a = c[1] - a[1];
|
|
return Math.sqrt(b * b + a * a);
|
|
}
|
|
function tp(a, c, b, d, e, f, g, h, k, l) {
|
|
var m = Math.PI,
|
|
n = (120 * m) / 180,
|
|
p = (m / 180) * (+e || 0),
|
|
q = [],
|
|
r = function (b, a, c) {
|
|
var d = b * sb.cos(c) - a * sb.sin(c);
|
|
b = b * sb.sin(c) + a * sb.cos(c);
|
|
return { x: d, y: b };
|
|
};
|
|
if (l) {
|
|
y = l[0];
|
|
var u = l[1];
|
|
f = l[2];
|
|
v = l[3];
|
|
} else {
|
|
u = r(a, c, -p);
|
|
a = u.x;
|
|
c = u.y;
|
|
u = r(h, k, -p);
|
|
h = u.x;
|
|
k = u.y;
|
|
u = (a - h) / 2;
|
|
y = (c - k) / 2;
|
|
v = (u * u) / (b * b) + (y * y) / (d * d);
|
|
1 < v && ((v = sb.sqrt(v)), (b *= v), (d *= v));
|
|
v = b * b;
|
|
var x = d * d;
|
|
v = (f == g ? -1 : 1) * sb.sqrt(up((v * x - v * y * y - x * u * u) / (v * y * y + x * u * u)));
|
|
f = (v * b * y) / d + (a + h) / 2;
|
|
var v = (v * -d * u) / b + (c + k) / 2,
|
|
y = sb.asin(((c - v) / d).toFixed(9));
|
|
u = sb.asin(((k - v) / d).toFixed(9));
|
|
y = a < f ? m - y : y;
|
|
u = h < f ? m - u : u;
|
|
0 > y && (y = 2 * m + y);
|
|
0 > u && (u = 2 * m + u);
|
|
g && y > u && (y -= 2 * m);
|
|
!g && u > y && (u -= 2 * m);
|
|
}
|
|
up(u - y) > n && ((q = u), (m = h), (x = k), (u = y + n * (g && u > y ? 1 : -1)), (h = f + b * sb.cos(u)), (k = v + d * sb.sin(u)), (q = tp(h, k, b, d, e, 0, g, m, x, [u, q, f, v])));
|
|
f = u - y;
|
|
e = sb.cos(y);
|
|
n = sb.sin(y);
|
|
g = sb.cos(u);
|
|
m = sb.sin(u);
|
|
u = sb.tan(f / 4);
|
|
b = (4 / 3) * b * u;
|
|
u *= (4 / 3) * d;
|
|
d = [a, c];
|
|
a = [a + b * n, c - u * e];
|
|
c = [h + b * m, k - u * g];
|
|
h = [h, k];
|
|
a[0] = 2 * d[0] - a[0];
|
|
a[1] = 2 * d[1] - a[1];
|
|
if (l) return [a, c, h].concat(q);
|
|
q = [a, c, h].concat(q).join().split(",");
|
|
l = [];
|
|
h = 0;
|
|
for (k = q.length; h < k; h++) l[h] = h % 2 ? r(q[h - 1], q[h], p).y : r(q[h], q[h + 1], p).x;
|
|
return l;
|
|
}
|
|
function mg(a) {
|
|
return B(a, function (a) {
|
|
return [a.x, a.y];
|
|
});
|
|
}
|
|
function $k(a, c, b) {
|
|
if (t(C(a, "0.0"))) for (var d = [], e = 0, f = a.length; e < f; e++) d.push($k[(a[e], c[e], b)]);
|
|
else for (d = [], e = 0, f = a.length; e < f; e++) d.push(Y(a[e], c[e], 0, 1, b));
|
|
return d;
|
|
}
|
|
function xa(a) {
|
|
return a.join ? a.join(" ").replace(/,/g, " ") : a;
|
|
}
|
|
function vp(a, c, b) {
|
|
var d = 0;
|
|
for (a = a.shapes; d < a.length; d++) {
|
|
for (var e = a[d], f = 0, g = e.items; f < g.length; f++) c(g[f], f, d);
|
|
b && b(e, d);
|
|
}
|
|
}
|
|
function al(a, c) {
|
|
var b = "",
|
|
d;
|
|
vp(a, function (a, f, g) {
|
|
var e = a[0];
|
|
b += d !== e ? re[e] : " ";
|
|
d = e;
|
|
if (1 !== d)
|
|
for (e = 2; e < a.length; e++) {
|
|
var k = c ? c(a[e], e, f, g) : a[e];
|
|
b += (2 < e ? " " : "") + (k[0] + " " + k[1]);
|
|
}
|
|
});
|
|
return b;
|
|
}
|
|
function Mb(a) {
|
|
if (a.bboxValue) return a.bboxValue;
|
|
var c = {};
|
|
w(a.items, function (b) {
|
|
wp[b[0]] && wp[b[0]](c, b);
|
|
});
|
|
a.bboxValue = [c.xMin, c.yMin, c.xMax - c.xMin, c.yMax - c.yMin];
|
|
a.minMaxResult = c;
|
|
return a.bboxValue;
|
|
}
|
|
function bl(a, c) {
|
|
var b = G(c, 2);
|
|
c = b[0];
|
|
b = b[1];
|
|
var d = Q(a.xMax);
|
|
if (c > a.xMax || d) a.xMax = c;
|
|
if (c < a.xMin || d) a.xMin = c;
|
|
if (b > a.yMax || d) a.yMax = b;
|
|
if (b < a.yMin || d) a.yMin = b;
|
|
return a;
|
|
}
|
|
function xp(a, c) {
|
|
return bl(a, c[2]);
|
|
}
|
|
function Jw(a, c) {
|
|
var b = a.bbox(),
|
|
d = vv(b, c);
|
|
c = Hk(Gc(c), d[0], d[1]);
|
|
var e = ha(c);
|
|
return al(a, function (a) {
|
|
return Qh(e, b, a);
|
|
});
|
|
}
|
|
function yp(a, c, b) {
|
|
var d = 0;
|
|
b && a.clearCache(!0);
|
|
b = 0;
|
|
for (a = a.shapes; b < a.length; b++) d += se(a[b], c);
|
|
return d;
|
|
}
|
|
function se(a, c) {
|
|
if (t(a.lengthValue)) return a.lengthValue;
|
|
for (var b = 0, d = 0, e = a.items; d < e.length; d++) {
|
|
var f = e[d],
|
|
g = f;
|
|
if (t(f.lengthValue)) f = f.lengthValue;
|
|
else
|
|
a: {
|
|
var h = c;
|
|
switch (f[0]) {
|
|
case 1:
|
|
case 2:
|
|
f = cc(f[1], f[2]);
|
|
break a;
|
|
case 3:
|
|
f = h ? Wj(f.slice(1)) : (cc(f[1], f[2]) + cc(f[4], f[3]) + cc(f[3], f[2]) + cc(f[1], f[4])) / 2;
|
|
break a;
|
|
default:
|
|
f = 0;
|
|
}
|
|
}
|
|
g = g.lengthValue = f;
|
|
b += g;
|
|
}
|
|
return (a.lengthValue = b);
|
|
}
|
|
function lf(a, c) {
|
|
if (3 === a[0]) {
|
|
var b = a[1],
|
|
d = a[4];
|
|
if (0 === c) c = b;
|
|
else if (1 === c) c = d;
|
|
else {
|
|
a = G([b, a[2], a[3], d], 4);
|
|
var e = a[1],
|
|
f = a[2];
|
|
d = a[3];
|
|
b = G(a[0], 2);
|
|
a = b[0];
|
|
b = b[1];
|
|
var g = G(d, 2);
|
|
d = g[0];
|
|
g = g[1];
|
|
var h = G(e, 2);
|
|
e = h[0];
|
|
h = h[1];
|
|
var k = G(f, 2);
|
|
f = k[0];
|
|
k = k[1];
|
|
var l = 1 - c,
|
|
m = cl(l, 3),
|
|
n = cl(l, 2),
|
|
p = c * c * c;
|
|
c = [m * a + 3 * n * c * e + 3 * l * c * c * f + p * d, m * b + 3 * n * c * h + 3 * l * c * c * k + p * g];
|
|
}
|
|
return c;
|
|
}
|
|
return $k(a[1], a[2], c);
|
|
}
|
|
function zp(a) {
|
|
a.length();
|
|
var c = [],
|
|
b = 0;
|
|
for (a = a.shapes; b < a.length; b++) c.push.apply(c, Ap(a[b]));
|
|
return c;
|
|
}
|
|
function Ap(a) {
|
|
if (a.flatPoints) return a.flatPoints;
|
|
var c = [];
|
|
se(a);
|
|
for (var b, d = 0, e = a.items; d < e.length; d++) {
|
|
var f = e[d];
|
|
if (3 === f[0]) {
|
|
b = Math.max(2, Math.floor(f.lengthValue / 10));
|
|
var g = f.lengthValue / (b + 1);
|
|
g = Y(0, 1, 0, f.lengthValue, g);
|
|
for (var h = 1; h <= b; h++) c.push(lf(f, h * g));
|
|
c.push(f[4]);
|
|
} else c.push(f[2]);
|
|
}
|
|
return (a.flatPoints = c);
|
|
}
|
|
function Hc(a, c) {
|
|
void 0 === c && (c = 6);
|
|
if (a.positions) return a.positions;
|
|
for (var b = [], d = se(a), e = 0, f = 0, g = a.items; f < g.length; f++) {
|
|
var h = g[f];
|
|
e += h.lengthValue;
|
|
h = h.position = t(h.position) ? h.position : na(e / d, c);
|
|
b.push(h);
|
|
}
|
|
return (a.positions = b);
|
|
}
|
|
function Bp(a, c, b) {
|
|
var d = [];
|
|
if (3 === a[0]) {
|
|
if (((a = ov(a[1], a[2], a[3], a[4], c, b)), a.length))
|
|
return (
|
|
w(a, function (b) {
|
|
Ha(b[0]) || d.push({ x: b[0], y: b[1], onLine1: !0, onLine2: !0 });
|
|
}),
|
|
d
|
|
);
|
|
} else return d.push(Te(a[1], a[2], c, b)), d;
|
|
d.push({ x: 0, y: 0, onLine1: !1, onLine2: !1, isNaN: !0 });
|
|
return d;
|
|
}
|
|
function Rh(a, c, b, d) {
|
|
var e, f;
|
|
void 0 === d && (d = 6);
|
|
var g = Hc(a, d),
|
|
h = se(a),
|
|
k = [],
|
|
l = [];
|
|
a = a.items;
|
|
for (var m = 1, n = a.length; m < n; m++) {
|
|
var p = a[m],
|
|
q = p.lengthValue,
|
|
r = Bp(p, c, b),
|
|
u = g[m - 1];
|
|
try {
|
|
for (var x = ((e = void 0), ya(r)), v = x.next(); !v.done; v = x.next()) {
|
|
var y = v.value;
|
|
if (!y.isNaN)
|
|
if (y.onLine1 && y.onLine2) {
|
|
var D = cc(p[1], [y.x, y.y]),
|
|
E = na(D / q, d);
|
|
Cp(m, y, E, na(u + D / h, d), l, k);
|
|
} else {
|
|
var F = P(p);
|
|
r = b;
|
|
0 === Xn(kf(c), kf(F), kf(r)) && Cp(m, y, 1, na(u + q / h, d), l, k);
|
|
}
|
|
}
|
|
} catch (R) {
|
|
e = { error: R };
|
|
} finally {
|
|
try {
|
|
v && !v.done && (f = x.return) && f.call(x);
|
|
} finally {
|
|
if (e) throw e.error;
|
|
}
|
|
}
|
|
}
|
|
return l;
|
|
}
|
|
function Cp(a, c, b, d, e, f) {
|
|
var g = kf([c.x, c.y]).join(" ");
|
|
e.push({ i: a, intersect: c, percOfSegment: b, percOfShape: d });
|
|
f.push(g);
|
|
}
|
|
function dl(a) {
|
|
if (a.vertices) return a.vertices;
|
|
var c = [],
|
|
b = a.items,
|
|
d = b.length - 1;
|
|
w(b, function (a, f) {
|
|
var e = P(a);
|
|
f === d ? 1 === a[0] || ab(e, P(b[0])) || c.push(e) : (f && ab(a[1], e)) || c.push(e);
|
|
});
|
|
return (a.vertices = c);
|
|
}
|
|
function Kw(a) {
|
|
if (a.centroid) return a.centroid;
|
|
var c = dl(a),
|
|
b = c.length,
|
|
d = 0,
|
|
e = 0;
|
|
w(c, function (b) {
|
|
d += b[0];
|
|
e += b[1];
|
|
});
|
|
a.centroid = [d / b, e / b];
|
|
return a.centroid;
|
|
}
|
|
function ng(a) {
|
|
if (a.center) return a.center;
|
|
a.center = va(Mb(a));
|
|
return a.center;
|
|
}
|
|
function el(a, c, b) {
|
|
b = b || Mb(a);
|
|
a = ng(a);
|
|
return Qh(c, b, a);
|
|
}
|
|
function og(a, c) {
|
|
if (c) return ng(a);
|
|
c = Kw(a);
|
|
return Zf(c, dl(a)) ? c : ng(a);
|
|
}
|
|
function Dp(a) {
|
|
if (t(a.direction)) return a.direction;
|
|
for (var c = dl(a), b = 0, d = 0, e = c.length; d < e; d++) {
|
|
var f = c[d],
|
|
g = c[(d + 1) % c.length];
|
|
b += (g[0] - f[0]) * (g[1] + f[1]);
|
|
}
|
|
a.direction = 0 < b ? "cw" : "ccw";
|
|
return a.direction;
|
|
}
|
|
function Ep(a, c) {
|
|
if (t(a.orientation)) return a.orientation;
|
|
c = og(a, c);
|
|
a.orientation = Ia(c, P(a.items[0]));
|
|
return a.orientation;
|
|
}
|
|
function Sh(a, c, b, d) {
|
|
var e = a[0];
|
|
return 0 === e
|
|
? []
|
|
: 3 === e || (1 === e && 3 === c[0])
|
|
? ((a = 3 === e ? [a[1], a[2], a[3], a[4]] : [a[1], a[1], a[2], a[2]]), 0 < b && ((b = Xj(a, b)), (a = b.slice(3, b.length))), 1 > d && ((d = Xj(a, d)), (a = d.slice(0, 4))), a)
|
|
: [lf(a, b), lf(a, d)];
|
|
}
|
|
function Lw(a) {
|
|
a.lengthValue = void 0;
|
|
}
|
|
function Mw(a) {
|
|
a.lengthValue = void 0;
|
|
a.flatPoints = void 0;
|
|
}
|
|
function Nw(a) {
|
|
var c,
|
|
b = [];
|
|
if ((a = a.match(Ow)))
|
|
try {
|
|
for (var d = ya(a), e = d.next(); !e.done; e = d.next()) {
|
|
var f = e.value,
|
|
g = f.match(Pw);
|
|
g = g
|
|
? g.map(function (b) {
|
|
return Number(b);
|
|
})
|
|
: [];
|
|
b.push([f[0], g]);
|
|
}
|
|
} catch (k) {
|
|
var h = { error: k };
|
|
} finally {
|
|
try {
|
|
e && !e.done && (c = d.return) && c.call(d);
|
|
} finally {
|
|
if (h) throw h.error;
|
|
}
|
|
}
|
|
return b;
|
|
}
|
|
function Fp(a, c) {
|
|
return [2 * c[0] - a[0], 2 * c[1] - a[1]];
|
|
}
|
|
function pg() {
|
|
return new mf({ hasErrors: !0 });
|
|
}
|
|
function Gp(a, c, b, d) {
|
|
var e = a.args;
|
|
c = c || 0;
|
|
for (var f = e.length; f - c > b - 1; c += b) d(a, c, e);
|
|
}
|
|
function nf(a, c, b, d) {
|
|
Gp(a, d, 2 * c, function (a, d) {
|
|
b(
|
|
a,
|
|
1 === c
|
|
? Th(a, d)
|
|
: Pn(c, function (b) {
|
|
return Th(a, d + 2 * b);
|
|
})
|
|
);
|
|
});
|
|
}
|
|
function Th(a, c) {
|
|
return a.isRelative ? [a.args[c] + (a.endPoint ? a.endPoint[0] : 0), a.args[c + 1] + (a.endPoint ? a.endPoint[1] : 0)] : [a.args[c], a.args[c + 1]];
|
|
}
|
|
function Qw(a) {
|
|
var c;
|
|
a = Nw(a);
|
|
if (!a.length) return pg();
|
|
var b = Uh();
|
|
try {
|
|
for (var d = ya(a), e = d.next(); !e.done; e = d.next()) {
|
|
var f = e.value,
|
|
g = fl[f[0]];
|
|
b.args = f[1];
|
|
b.isRelative = g.isRelative;
|
|
b.cIsClosed && "M" !== g.command && Hp(b);
|
|
if (b.args.length < g.argsCount) return pg();
|
|
Rw[g.command](b);
|
|
if (b.firstCommand && !b.startPoint) return pg();
|
|
b.lastCommand = f;
|
|
b.firstCommand = !1;
|
|
}
|
|
} catch (k) {
|
|
var h = { error: k };
|
|
} finally {
|
|
try {
|
|
e && !e.done && (c = d.return) && c.call(d);
|
|
} finally {
|
|
if (h) throw h.error;
|
|
}
|
|
}
|
|
return Vh(b);
|
|
}
|
|
function gl(a, c, b) {
|
|
if (!c || 1 === b || 0 === b || 3 !== a[0]) return b;
|
|
a = a.slice(1);
|
|
var d = void 0;
|
|
b = void 0;
|
|
void 0 === d && (d = 1);
|
|
void 0 === b && (b = 0.01);
|
|
var e = d / 2;
|
|
d -= e;
|
|
var f;
|
|
for (f = Wj(a, d); Math.abs(f - c) > b; ) (e /= 2), (d += (f < c ? 1 : -1) * e), (f = Wj(a, d));
|
|
return d;
|
|
}
|
|
function Ip(a, c) {
|
|
switch (c[0]) {
|
|
case 0:
|
|
qg(a, c[2]);
|
|
break;
|
|
case 1:
|
|
hl(a);
|
|
break;
|
|
case 2:
|
|
fd(a, c[2]);
|
|
break;
|
|
case 3:
|
|
te(a, c.slice(2));
|
|
}
|
|
}
|
|
function Uh() {
|
|
return { firstCommand: !0, shapes: [] };
|
|
}
|
|
function Vh(a) {
|
|
il(a);
|
|
var c = a.startPoint,
|
|
b = a.endPoint;
|
|
return new mf({ hasCurves: a.hasCurves, hasLines: a.hasLines, isClosed: c[0] === b[0] && c[1] === b[1], shapes: a.shapes });
|
|
}
|
|
function Jp(a, c, b) {
|
|
if (c[0][0].length) for (var d = 0; d < c.length; d++) Jp(a, c[d], b);
|
|
else {
|
|
qg(a, c[0]);
|
|
for (d = 1; d < c.length; d++) fd(a, c[d]);
|
|
!0 !== b && hl(a);
|
|
}
|
|
}
|
|
function il(a) {
|
|
a.cShape.hasLines = a.cHasLines;
|
|
a.cShape.hasCurves = a.cHasCurves;
|
|
a.cShape.isClosed = a.cIsClosed;
|
|
a.cHasLines = a.cHasCurves = a.cStartPoint = a.cIsClosed = void 0;
|
|
}
|
|
function fd(a, c) {
|
|
Wh(a, 2, [c]);
|
|
a.hasLines = a.cHasLines = !0;
|
|
}
|
|
function te(a, c) {
|
|
Wh(a, 3, c);
|
|
a.hasCurves = a.cHasCurves = !0;
|
|
a.lastCurve = c;
|
|
}
|
|
function Sw(a, c) {
|
|
var b = a.lastCurve && 3 === P(a.cShape.items)[0] ? Fp(a.lastCurve[1], a.endPoint) : a.endPoint;
|
|
c.unshift(b);
|
|
te(a, c);
|
|
}
|
|
function Kp(a, c) {
|
|
var b = a.endPoint[0],
|
|
d = a.endPoint[1],
|
|
e = c[0][0],
|
|
f = c[0][1],
|
|
g = c[1][0],
|
|
h = c[1][1];
|
|
a.lastQ = c[0];
|
|
te(a, [[b + (2 * (e - b)) / 3, d + (2 * (f - d)) / 3], [g + (2 * (e - g)) / 3, h + (2 * (f - h)) / 3], c[1]]);
|
|
}
|
|
function Tw(a, c) {
|
|
Kp(a, [Fp(a.lastQ, a.endPoint), c]);
|
|
}
|
|
function Wh(a, c, b) {
|
|
c = [c, a.endPoint];
|
|
c.push.apply(c, b);
|
|
a.endPoint = P(b);
|
|
a.cShape && a.cShape.items.push(c);
|
|
}
|
|
function Hp(a, c) {
|
|
a.cShape && il(a);
|
|
c && (a.endPoint = c);
|
|
a.cStartPoint = a.endPoint;
|
|
a.lastCurve = null;
|
|
a.cShape = { cStartPoint: a.cStartPoint, items: [] };
|
|
a.shapes.push(a.cShape);
|
|
}
|
|
function qg(a, c) {
|
|
Hp(a, c || Th(a, 0));
|
|
a.firstCommand && (a.startPoint = a.cStartPoint);
|
|
Wh(a, 0, [a.endPoint]);
|
|
c || nf(a, 1, fd, 2);
|
|
}
|
|
function hl(a) {
|
|
Wh(a, 1, [a.cStartPoint]);
|
|
a.cIsClosed = !0;
|
|
}
|
|
function Uw(a, c, b) {
|
|
c = Th(a, c + 5);
|
|
var d = a.endPoint;
|
|
if (d[0] === c[0] && d[1] === c[1]) return !0;
|
|
var e = tp(d[0], d[1], b[0], b[1], b[2], b[3], b[4], c[0], c[1]);
|
|
b = function (b) {
|
|
return [e[b], e[b + 1]];
|
|
};
|
|
d = e.length;
|
|
e[d - 2] = c[0];
|
|
e[d - 1] = c[1];
|
|
for (c = 0; 5 < d - c; c += 6) te(a, [b(c), b(c + 2), b(c + 4)]);
|
|
}
|
|
function Aa(a) {
|
|
return a ? Qw(a.join ? a.join(" ") : a) : new mf();
|
|
}
|
|
function Ic(a) {
|
|
if (a) {
|
|
var c;
|
|
if (a.length && a[0].push) {
|
|
var b = Uh();
|
|
try {
|
|
for (var d = ya(a), e = d.next(); !e.done; e = d.next()) Ip(b, e.value);
|
|
} catch (g) {
|
|
var f = { error: g };
|
|
} finally {
|
|
try {
|
|
e && !e.done && (c = d.return) && c.call(d);
|
|
} finally {
|
|
if (f) throw f.error;
|
|
}
|
|
}
|
|
a = Vh(b);
|
|
} else a = pg();
|
|
} else a = new mf();
|
|
return a;
|
|
}
|
|
function Ed(a, c, b) {
|
|
if (1 < b) {
|
|
var d = 1 > c ? Ed(a, c, 1) : "",
|
|
e = 0 < b % 1 ? Ed(a, 0, b % 1) : "";
|
|
b = P(a.shapes).isClosed;
|
|
if (d)
|
|
if (e) {
|
|
a = Aa(d);
|
|
d = Aa(e);
|
|
a = a.items();
|
|
e = d.items();
|
|
var f = P(a);
|
|
d = "";
|
|
c = 0;
|
|
for (var g = e.length; c < g; c++) {
|
|
var h = e[c];
|
|
b && c === g - 1 ? ((d = "Z"), (3 !== h[0] && (ab(P(a[0]), P(h)) || ab(P(h), P(k)))) || a.push(h)) : c ? ab(P(h), P(k)) || a.push(h) : ab(P(h), P(f)) || a.push(h);
|
|
var k = h;
|
|
}
|
|
b = [];
|
|
k = 0;
|
|
for (e = a.length; k < e; k++) {
|
|
f = a[k];
|
|
k === a.length - 1 ? (3 !== f[0] && ab(P(f), P(a[0]))) || b.push(f) : k ? ab(P(f), P(l)) || b.push(f) : b.push(f);
|
|
var l = f;
|
|
}
|
|
l = Ic(b).toString() + d;
|
|
} else l = d;
|
|
else l = e;
|
|
return l;
|
|
}
|
|
l = a.items();
|
|
k = a.length();
|
|
g = Lp(l, k, c);
|
|
k = Lp(l, k, b);
|
|
h = l[g.i];
|
|
e = l[k.i];
|
|
f = g.i;
|
|
d = [];
|
|
if (0 < c) {
|
|
if (
|
|
((c = Sh(l[g.i], l[g.i - 1], g.percOfSegment, 1)),
|
|
d.push("M", c[0].join(" ")),
|
|
c.shift(),
|
|
1 === h[0] ? ((h = l[g.i - 1]), d.push(re[h[0]])) : d.push(re[h[0]]),
|
|
d.push(c.join(" ").replace(/,/g, " ")),
|
|
f++,
|
|
k.i === g.i && 1 === k.percOfSegment)
|
|
)
|
|
return d.join(" ");
|
|
} else d = ["M", g.xy.join(" ")];
|
|
c = f;
|
|
for (g = k.i; c < g; c++) d.push(Mp(l[c])), f++;
|
|
1 > b
|
|
? ((c = Sh(l[k.i], l[k.i - 1], 0, k.percOfSegment)), c.shift(), 1 === e[0] ? ((h = l[k.i - 1]), d.push(re[h[0]])) : d.push(re[e[0]]), d.push(c.join(" ").replace(/,/g, " ")))
|
|
: ((f = k.i), (b = l[f]), 1 === b[0] ? (a.hasCurves ? ((a = P(b)), d.push("C", P(l[k.i - 1]).join(" "), a.join(" "), a.join(" "))) : d.push("L", P(b).join(" "))) : d.push(Mp(b)));
|
|
return d.join(" ");
|
|
}
|
|
function Vw(a, c, b, d) {
|
|
var e = a.items();
|
|
if (0 === c && 0 === b) return Ic(e);
|
|
d = "caps" === (d && d.mode);
|
|
var f = yp(a, !0, !0);
|
|
a = jl(e, f, c / f);
|
|
b = jl(e, f, (f - b) / f);
|
|
c = Uh();
|
|
var g = !1;
|
|
f = !1;
|
|
var h = a.i,
|
|
k = b.i;
|
|
d && (1 < h && ((a.i = 2), (a.percOfSegment = 0), (g = !0)), k < e.length - 1 && ((b.i = e.length - 2), (b.percOfSegment = 1), (f = !0)));
|
|
d = a.i === b.i;
|
|
var l = e[a.i];
|
|
g ? (0 !== l[0] && qg(c, l[1]), (h = 1)) : ((a = Sh(l, e[a.i - 1], gl(l, a.toLen, a.percOfSegment), d ? gl(l, b.toLen, b.percOfSegment) : 1)), qg(c, a[0]), 3 === l[0] ? te(c, a.slice(1)) : fd(c, a[1]));
|
|
f && (k = 3 === e[e.length - 1][0] ? e.length : e.length - 1);
|
|
for (a = h + 1; a < k; a++) Ip(c, e[a]);
|
|
f || d || ((d = Sh(e[b.i], e[b.i - 1], 0, gl(e[b.i], b.toLen, b.percOfSegment))), 3 === e[b.i][0] ? te(c, d.slice(1)) : fd(c, d[1]));
|
|
return Vh(c);
|
|
}
|
|
function Lp(a, c, b) {
|
|
c = jl(a, c, b);
|
|
c.xy = lf(a[c.i], c.percOfSegment);
|
|
return c;
|
|
}
|
|
function jl(a, c, b) {
|
|
if (0 === b) return { i: 1, percOfSegment: b };
|
|
if (1 === b) return { i: a.length - 1, percOfSegment: b };
|
|
c *= b;
|
|
b = 0;
|
|
for (var d, e = 1, f = a.length; e < f; e++) {
|
|
var g = a[e];
|
|
if (g.lengthValue) {
|
|
var h = void 0;
|
|
void 0 === h && (h = Tj);
|
|
if ((h = b < c || Qj(b, c, h))) {
|
|
h = b + g.lengthValue;
|
|
var k = void 0;
|
|
void 0 === k && (k = Tj);
|
|
h = h > c || Qj(h, c, k);
|
|
}
|
|
if (h) {
|
|
var l = na(Y(0, 1, b, b + g.lengthValue, c), 6),
|
|
m = e;
|
|
d = c - b;
|
|
break;
|
|
}
|
|
b += g.lengthValue;
|
|
}
|
|
}
|
|
1 === l && m < a.length - 1 && ((d = l = 0), m++);
|
|
return { i: m, percOfSegment: l, toLen: d };
|
|
}
|
|
function Mp(a) {
|
|
return 1 === a[0] ? "Z" : xa([re[a[0]], a.slice(2).join(" ")]);
|
|
}
|
|
function eb(a, c) {
|
|
if (a)
|
|
if ((void 0 === c && (c = {}), a.length && a[0].push)) {
|
|
var b = Uh();
|
|
Jp(b, a, c.isOpen);
|
|
il(b);
|
|
a = Vh(b);
|
|
} else a = pg();
|
|
else a = new mf();
|
|
return a;
|
|
}
|
|
function Np(a) {
|
|
var c = function (b) {
|
|
return 0 === b[2] && 0 === b[3];
|
|
},
|
|
b = "string" === typeof a;
|
|
return !a || a.hasErrors ? !0 : !b && a.bbox ? c(a.bbox()) : a.arcShape ? 0 === a.arcShape.r : b || a.push ? c(kl(a)) : !0;
|
|
}
|
|
function Ww(a) {
|
|
var c = [],
|
|
b = 0;
|
|
for (a = a.shapes; b < a.length; b++) c.push(Ic(a[b].items));
|
|
return c;
|
|
}
|
|
function Op(a) {
|
|
if (Q(a.isClose)) {
|
|
var c = P(a.items),
|
|
b = a.items[0],
|
|
d;
|
|
!(d = 1 === c[0]) && (d = 2 < a.items.length) && ((b = b[1]), (c = P(c)), (d = b[0] === c[0] && b[1] === c[1]));
|
|
a.isClose = d;
|
|
}
|
|
return a.isClose;
|
|
}
|
|
function ll(a, c, b, d, e) {
|
|
var f = e.start,
|
|
g = e.skipEndFix ? e.end : e.end - 0.001,
|
|
h = e.caps || {},
|
|
k = e.r || b || d;
|
|
b = e.innerR;
|
|
d = e.open;
|
|
var l = (h.start || h.left || "").toLowerCase();
|
|
h = (h.end || h.right || "").toLowerCase();
|
|
var m = e.end - f < Xh ? 0 : 1,
|
|
n = e.cornerR,
|
|
p = n && "gap" !== l && "flat" !== l,
|
|
q = n && "gap" !== h && "flat" !== h;
|
|
if (n && (p || q)) {
|
|
var r = [a, c],
|
|
u = rp(k, b, f, g, n),
|
|
x = u.cornerR,
|
|
v = u.oCornerR;
|
|
u = k - v;
|
|
var y = b + x,
|
|
D = yb((x / (Pp * b)) * 360),
|
|
E = yb((v / (Pp * k)) * 360);
|
|
x = Jb(r, f, u);
|
|
v = Jb(r, g, u);
|
|
u = Jb(r, f, y);
|
|
y = Jb(r, g, y);
|
|
var F = Jb(r, f + D, b),
|
|
w = Jb(r, g - D, b);
|
|
D = Jb(r, f + E, k);
|
|
r = Jb(r, g - E, k);
|
|
}
|
|
var cb = Math.cos(f),
|
|
wa = Math.sin(f),
|
|
U = Math.cos(g),
|
|
M = Math.sin(g);
|
|
e = e.ccw;
|
|
var Jc = q ? r : [a + k * U, c + k * M];
|
|
r = p ? D : [a + k * cb, c + k * wa];
|
|
E = ["M", r[0], r[1], "A", k, k, 0, m, e ? 0 : 1, Jc[0], Jc[1]];
|
|
var gd = "insideround" === h;
|
|
t(b) &&
|
|
((k -= b),
|
|
(U = q ? w : [a + b * U, c + b * M]),
|
|
(a = p ? F : [a + b * cb, c + b * wa]),
|
|
"round" === h || gd
|
|
? ((c = Uj(Jc, U)), (g = Kc(c[0], c[1], k / 2, g, g + Xh, gd)), E.push.apply(E, H(g)))
|
|
: "gap" === h
|
|
? E.push.apply(E, H(["M", U[0], U[1]]))
|
|
: q
|
|
? E.push.apply(E, H(["A", n, n, 0, 0, 1, v[0], v[1], "L", y[0], y[1], "A", n, n, 0, 0, 1, w[0], w[1]]))
|
|
: E.push.apply(E, H([d ? "M" : "L", U[0], U[1]])),
|
|
E.push.apply(E, H(["A", b, b, 0, m, e ? 1 : 0, a[0], a[1]])),
|
|
(gd = "insideround" === l),
|
|
"round" === l || gd
|
|
? ((c = Uj(r, a)), (g = Kc(c[0], c[1], k / 2, f + Xh, f, gd)), E.push.apply(E, H(g)))
|
|
: p
|
|
? E.push("A", n, n, 0, 0, 1, u[0], u[1], "L", x[0], x[1], "A", n, n, 0, 0, 1, D[0], D[1])
|
|
: "gap" !== l && "gap" === h && E.push.apply(E, H(["L"], r)),
|
|
"gap" === h || "gap" === l) &&
|
|
(d = !0);
|
|
E.push(d ? "" : "Z");
|
|
return E;
|
|
}
|
|
function Kc(a, c, b, d, e, f) {
|
|
return ll(a, c, b, b, { start: d, end: e, open: !0, ccw: f }).slice(3, 11);
|
|
}
|
|
function Yh(a, c, b, d, e) {
|
|
return eb(
|
|
[
|
|
[a, c],
|
|
[a + b, c],
|
|
[a + b, c + d],
|
|
[a, c + d],
|
|
],
|
|
e
|
|
);
|
|
}
|
|
function Qp(a, c, b, d, e) {
|
|
void 0 === e && (e = {});
|
|
var f = G(Rp(b, d, e), 2);
|
|
return Xw(a, c, b, d, f[0], f[1], e.callout);
|
|
}
|
|
function Yw(a, c, b) {
|
|
void 0 === b && (b = {});
|
|
a = G(Rp(a, c, b), 2);
|
|
var d = a[0];
|
|
a = a[1];
|
|
c = Math.max;
|
|
b = function (b) {
|
|
d = b.radius || d;
|
|
return { round: d - Math.cos(Math.PI / 4) * d, cut: d / 2, square: 0, callout: 0 }[b.type || b];
|
|
};
|
|
return [c(b(a[0]), b(a[3])), c(b(a[0]), b(a[1])), c(b(a[1]), b(a[2])), c(b(a[2]), b(a[3]))];
|
|
}
|
|
function Rp(a, c, b) {
|
|
a = Math.min(a / 2, c / 2);
|
|
var d = Math.min(z(b.r, b.radius, 5), a);
|
|
c = Q(z(b.r, b.radius)) ? "square" : "round";
|
|
b = B(b.corners || [c, c, c, c], function (b) {
|
|
return b.r ? ((d = b.r), b.type) : b;
|
|
});
|
|
return [Math.min(d, a), b];
|
|
}
|
|
function Xw(a, c, b, d, e, f, g) {
|
|
var h = Math.PI;
|
|
a = G(Yb([a, c, b, d]), 4);
|
|
var k = a[0],
|
|
l = a[1],
|
|
m = a[2],
|
|
n = a[3],
|
|
p = [],
|
|
q,
|
|
r = "",
|
|
u,
|
|
x,
|
|
v,
|
|
y,
|
|
D,
|
|
E,
|
|
F;
|
|
g &&
|
|
(g.pop || (g = [g]),
|
|
w(g, function (b) {
|
|
var a = b.position;
|
|
b = b.size;
|
|
u = ra([0, 0], 45, b[0])[0];
|
|
var c = G([Tp(a[0]), Tp(a[1])], 2),
|
|
d = c[0];
|
|
c = c[1];
|
|
r += (c ? (0 === a[1] ? "T" : "B") : "") + (d ? (0 === a[0] ? "L" : "R") : "");
|
|
t((F = Zw[r])) ? (f[F] = { type: "callout", size: b, radius: u }) : (q = c ? a[0] : d ? a[1] : void 0);
|
|
p.push({ name: r, pos: q, size: b });
|
|
}));
|
|
g = function (b) {
|
|
v = n - b;
|
|
y = k + b;
|
|
D = m - b;
|
|
E = l + b;
|
|
x = b;
|
|
};
|
|
var R = [],
|
|
cb,
|
|
wa,
|
|
U,
|
|
M,
|
|
Jc = [];
|
|
a = function (b, a, c, d, e, f, g) {
|
|
R.push(R.length ? "L" : "M", a);
|
|
switch (b.type || b) {
|
|
case "square":
|
|
R.push("L", c, "L", d);
|
|
break;
|
|
case "round":
|
|
R.push.apply(R, H(Kc(e[0], e[1], x, f, g)));
|
|
break;
|
|
case "cut":
|
|
R.push("L", d);
|
|
break;
|
|
case "callout":
|
|
Jc.push((M = Jb(e, (f + g) / 2, b.size[1]))), R.push("L", M, "L", d);
|
|
}
|
|
};
|
|
c = function (b, a, c) {
|
|
cb = b.size[0] / 2;
|
|
wa = Y(a + cb, c - cb, 0, 1, b.pos);
|
|
U = Y(a, c, 0, 1, b.pos);
|
|
};
|
|
b = function (b, a, c) {
|
|
Jc.push(a);
|
|
R.push("L", b, "L", a, "L", c);
|
|
};
|
|
d = f[0];
|
|
g(d.radius || e);
|
|
a(d, [k, E], [k, l], [y, l], [y, E], h, (3 * h) / 2);
|
|
if ((d = S(p, { name: "T" }))) c(d, y, D), b([wa - cb, l], [U, l - d.size[1]], [wa + cb, l]);
|
|
d = f[1];
|
|
g(d.radius || e);
|
|
a(d, [D, l], [m, l], [m, E], [D, E], -h / 2, 0);
|
|
if ((d = S(p, { name: "R" }))) c(d, E, v), b([m, wa - cb], [m + d.size[1], U], [m, wa + cb]);
|
|
d = f[2];
|
|
g(d.radius || e);
|
|
a(d, [m, v], [m, n], [D, n], [D, v], 0, h / 2);
|
|
if ((d = S(p, { name: "B" }))) c(d, y, D), b([wa + cb, n], [U, n + d.size[1]], [wa - cb, n]);
|
|
d = f[3];
|
|
g(d.radius || e);
|
|
a(d, [y, n], [k, n], [k, v], [y, v], h / 2, h);
|
|
if ((d = S(p, { name: "L" }))) c(d, E, v), b([k, wa + cb], [k - d.size[1], U], [k, wa - cb]);
|
|
R.length && R.push("Z");
|
|
return xa(R);
|
|
}
|
|
function Up(a) {
|
|
void 0 === a && (a = {});
|
|
var c = a.type;
|
|
if (Vp[c]) return Vp[c](a);
|
|
var b = z(a.lineWidth, 1),
|
|
d = db(z(a.size, 10 * b), b);
|
|
c = z(a.overflow, !1);
|
|
var e = db(z(a.width, d), b);
|
|
b = db(z(a.height, d), b);
|
|
d = !1 === c ? z(a.centerWidth, e / 2) : 0;
|
|
return L(Na({}, a, Wp), { width: e, height: b, overflow: 0 < d ? !0 : c, centerWidth: d });
|
|
}
|
|
function Xp(a) {
|
|
return a && "none" !== a ? (O(a) ? { shape: a } : Oa(a)) : null;
|
|
}
|
|
function $w(a, c, b, d) {
|
|
var e = L({ size: d, x: c, y: b }, O(a) ? { name: a } : a);
|
|
return (c =
|
|
(a = e.path) ||
|
|
(e.name
|
|
? xo(
|
|
e.name,
|
|
function (b) {
|
|
Ma.emit("warning", "dom", "scriptLoad", { data: [b.path] });
|
|
},
|
|
function (b) {
|
|
Ma.emit("warning", "dom", "iconNotFound", { data: [e.name] });
|
|
}
|
|
)
|
|
: null))
|
|
? Yp(c, [e.x || 0, e.y || 0, e.width || 0, e.height || 0, e.size], Xp(e.outerShape), e.padding, !!a)[0]
|
|
: null;
|
|
}
|
|
function fb(a, c) {
|
|
c = c || [];
|
|
c.push(sg(a[0]));
|
|
1 < a.length && c.push("L");
|
|
for (var b = 1, d = a.length; b < d; b++) c.push(a[b][0] + " " + a[b][1]);
|
|
return c;
|
|
}
|
|
function ax(a, c, b) {
|
|
void 0 === c && (c = !0);
|
|
var d = [];
|
|
d.push("M", a[0].join(" "), "L");
|
|
c = c
|
|
? function (c) {
|
|
d.push(a[b ? c : c - 1][0] + " " + a[b ? c - 1 : c][1]);
|
|
}
|
|
: function (c) {
|
|
d.push(a[b ? c - 1 : c][0] + " " + a[b ? c : c - 1][1]);
|
|
};
|
|
for (var e = 1, f = a.length; e < f; e++) c(e), d.push(a[e][0] + " " + a[e][1]);
|
|
return d;
|
|
}
|
|
function tg(a) {
|
|
var c = [];
|
|
w(a, function (b) {
|
|
fb(b, c);
|
|
});
|
|
return c;
|
|
}
|
|
function bx(a, c) {
|
|
void 0 === c && (c = 0.8);
|
|
var b = function (b) {
|
|
return b.join(" ");
|
|
},
|
|
d = ["M", b(a[0])],
|
|
e = [];
|
|
if (3 > a.length) e = a.slice(0);
|
|
else for (var f = 1, g = a.length - 1; f < g; f++) e[f] = cx(a, f, c);
|
|
if (2 === a.length) d.push("C", a[0], a[1], a[1]);
|
|
else for (f = 0, g = a.length - 1; f < g; f++) f ? (f === g - 1 ? d.push("C", b(e[f][1]), b(a[f + 1]), b(a[f + 1])) : d.push("C", b(e[f][1]), b(e[f + 1][0]), a[f + 1])) : d.push("C", b(a[f]), b(e[f + 1][0]), b(a[f + 1]));
|
|
return xa(d);
|
|
}
|
|
function cx(a, c, b) {
|
|
void 0 === b && (b = 0.8);
|
|
var d = a[c - 1],
|
|
e = a[c],
|
|
f = a[c + 1];
|
|
b = 1 - b;
|
|
c = Ia(e, d);
|
|
a = Ia(e, f);
|
|
d = cc(d, e);
|
|
f = cc(e, f);
|
|
f = Math.min(d, f);
|
|
d = ee(e[0], e[1], yb(c), f);
|
|
a = ee(e[0], e[1], yb(a), f);
|
|
b *= cc([d.x, d.y], [a.x, a.y]);
|
|
d = Ia(d, a);
|
|
a = mg([ee(e[0], e[1], yb(d - 180), b)])[0];
|
|
e = mg([ee(e[0], e[1], yb(d), b)])[0];
|
|
return [a, e];
|
|
}
|
|
function dx(a) {
|
|
var c = G(a.points, 3),
|
|
b = a.angles,
|
|
d = a.cxy,
|
|
e = a.radius;
|
|
c = 0 > Xn(c[0], c[1], c[2]);
|
|
a = a.angles.map(function (b) {
|
|
return yb(b);
|
|
});
|
|
a[0] = c && "0270" === b.join("") ? 2 * Math.PI : a[0];
|
|
return Kc(d[0], d[1], e, a[0], a[1], c);
|
|
}
|
|
function ex(a, c) {
|
|
var b = a.length;
|
|
if (2 < b) for (var d = 1; d < a.length - 1; d++) c(a[d - 1], a[d], a[d + 1], 1 === d, d === b - 2);
|
|
}
|
|
function hd(a, c) {
|
|
var b = [];
|
|
ex(a, function (a, e, f, g, h) {
|
|
var d = c,
|
|
l = mc(a, e),
|
|
m = mc(e, f);
|
|
m = Math.min(g ? l : l / 2, h ? m : m / 2);
|
|
l = [Ia(f, e), Ia(a, e)];
|
|
d = t(d) ? Math.min(d, m) : m;
|
|
e = [ra(e, l[1] + 180, d), e, ra(e, l[0] + 180, d)];
|
|
d = { points: e, radius: d, angles: l, cxy: ra(e[0], l[0] + 180, d) };
|
|
g && b.push(sg(a));
|
|
b.push(Fd(d.points[0]));
|
|
b.push.apply(b, H(dx(d)));
|
|
h && !ab(d.points[2], f) && b.push(Fd(f));
|
|
});
|
|
return b.join(" ");
|
|
}
|
|
function fx(a, c) {
|
|
c = id(c, { width: 1.5 });
|
|
var b = c.gapLength,
|
|
d = c.width,
|
|
e = c.lineLength,
|
|
f = c.midPoint,
|
|
g = c.lineAngle,
|
|
h = c.noStart,
|
|
k = c.noEnd,
|
|
l = c.tipPos * e - b / 2,
|
|
m = e - l - b,
|
|
n = [],
|
|
p = a.slice(0);
|
|
if (0 === b) n.push(sg(a[1]), Fd(a[2]));
|
|
else {
|
|
var q = Math.min(b, e - 4);
|
|
n.push(sg(a[1]), Fd(ra(f, g + 180, q / 2)));
|
|
n.push(sg(ra(f, g, q / 2)), Fd(a[2]));
|
|
}
|
|
b = { type: "arrow", overflow: !1, width: "400%", length: "600%" };
|
|
h = { start: h ? {} : b, end: k ? {} : b };
|
|
a = [a[1], a[2]];
|
|
return { d: n.join(" "), pathOptions: { caps: h, "stroke-width": d, stroke: c.color, fill: "none" }, startLen: l, endLen: m, gapLength: q, bbox: Ua(p), endPoints: a, mode: "measure" };
|
|
}
|
|
function gx(a, c) {
|
|
c = id(c, { width: 3, radius: 100, tipLength: 5 });
|
|
var b = c.gapLength,
|
|
d = c.tipLength,
|
|
e = c.radius,
|
|
f = c.tipPos,
|
|
g = c.lineLength,
|
|
h = c.midPoint,
|
|
k = c.sideLength,
|
|
l = c.lineAngle,
|
|
m = c.tipAngle,
|
|
n = function (b, a) {
|
|
return [b[0] + a[0], b[1] + a[1]];
|
|
},
|
|
p = function (b, a, c) {
|
|
return b.map(function (b) {
|
|
return [b[0] + a, b[1] + c];
|
|
});
|
|
},
|
|
q = ra([0, 0], m, c.width),
|
|
r = function (b) {
|
|
return p(b, q[0], q[1]);
|
|
},
|
|
u = function () {
|
|
for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a];
|
|
return t.push.apply(t, H(b));
|
|
},
|
|
x = Gb,
|
|
v = Gb;
|
|
f = f * g - b / 2;
|
|
var y = g - f - b,
|
|
D = Math.min(e, f) < k;
|
|
k = Math.min(e, y) < k;
|
|
if (D || k) {
|
|
var E = ra([0, 0], l, 1),
|
|
F = ra([0, 0], l + 180, 1);
|
|
x = function (b, a, c) {
|
|
b[a] = n(b[a], E);
|
|
b[c] = n(b[c], E);
|
|
};
|
|
v = function (b, a, c) {
|
|
b[a] = n(b[a], F);
|
|
b[c] = n(b[c], F);
|
|
};
|
|
}
|
|
var t = [],
|
|
w = a.slice(0),
|
|
wa = [],
|
|
U = 0;
|
|
0 === b
|
|
? ((b = a.slice(0, 2)),
|
|
D && x(b, 0, 1),
|
|
(d = ra(h, m, d)),
|
|
w.push(d),
|
|
b.push(h, d),
|
|
(h = [b[3], b[2], a[2], a[3]]),
|
|
k && v(h, 2, 3),
|
|
u(hd(b, e)),
|
|
u(hd(h, e).replace("M", "L")),
|
|
u(Fd(a[3])),
|
|
D && v(b, 0, 1),
|
|
k && x(h, 2, 3),
|
|
(b = r(b).reverse()),
|
|
(h = r(h).reverse()),
|
|
u(hd(h, e).replace("M", "L")),
|
|
u(hd(b, e).replace("M", "L"), Fd(a[0]), "Z"))
|
|
: ((U = Math.min(b, g - 4)),
|
|
(b = a.slice(0, 2)),
|
|
D && x(b, 0, 1),
|
|
b.push(ra(h, l + 180, U / 2)),
|
|
(h = [ra(h, l, U / 2), a[2], a[3]]),
|
|
u(hd(b, e)),
|
|
D && v(b, 0, 1),
|
|
(b = r(b).reverse()),
|
|
u(hd(b, e).replace("M", "L"), Fd(a[0]), "Z"),
|
|
k && v(h, 1, 2),
|
|
u(hd(h, e)),
|
|
k && x(h, 1, 2),
|
|
(h = r(h).reverse()),
|
|
u(hd(h, e).replace("M", "L"), "Z"));
|
|
wa.push(a[3]);
|
|
wa.push(a[0]);
|
|
return { d: t.join(" "), pathOptions: { "stroke-width": 0, fill: c.color }, startLen: f, endLen: y, gapLength: U, bbox: Ua(w), endPoints: wa, mode: "curly" };
|
|
}
|
|
function Zp(a, c, b, d, e) {
|
|
function f(b) {
|
|
return b && b.join ? b.join(" ").replace(/,/g, " ") : b;
|
|
}
|
|
function g(a) {
|
|
switch (a) {
|
|
case "b":
|
|
var c = [[u, x], ["L"], [h - 1.1 * n, x], ["L"], [h - 0.35 * n, x - 1.25 * n], ["L"], [h + 0.45 * n, x + 0.65 * n], ["L"], [h + 0.8 * n, x], ["L"], [u + b, x]];
|
|
c = c.reverse();
|
|
break;
|
|
case "r":
|
|
c = [[u, x], ["L"], [u, k - 1.12 * p], ["L"], [u - 1.25 * p, k - 0.35 * p], ["L"], [u + 0.65 * p, k + 0.45 * p], ["L"], [u, k + 0.8 * p], ["L"], [u, x + d]];
|
|
break;
|
|
case "t":
|
|
c = [[u + b, x], ["L"], [h + 1.15 * n, x], ["L"], [h + 0.35 * n, x + 1.25 * n], ["L"], [h - 0.45 * n, x - 0.65 * n], ["L"], [h - 0.85 * n, x], ["L"], [u, x]];
|
|
c = c.reverse();
|
|
break;
|
|
case "l":
|
|
c = [[u, x + d], ["L"], [u, k + 1.15 * p], ["L"], [u + 1.25 * p, k + 0.35 * p], ["L"], [u - 0.65 * p, k - 0.45 * p], ["L"], [u, k - 0.85 * p], ["L"], [u, x]];
|
|
}
|
|
c.splice(0, 0, "M");
|
|
return c;
|
|
}
|
|
e = e || {};
|
|
var h = a + b / 2,
|
|
k = c + d / 2,
|
|
l = e.zigWidth || 0,
|
|
m = 1.6 * (l || 10),
|
|
n = Math.min(m, b / 2),
|
|
p = Math.min(m, d / 2);
|
|
l /= 2;
|
|
m = e.lines;
|
|
var q = a + b,
|
|
r = c + d,
|
|
u = a,
|
|
x = c,
|
|
v = !e.open,
|
|
y = [];
|
|
switch (e.zigSides) {
|
|
case "t":
|
|
x = c + l;
|
|
y = e = g("t");
|
|
m.push(f(e));
|
|
v && y.push(["L", q, r, "L", a, r]);
|
|
break;
|
|
case "b":
|
|
x = r - l;
|
|
v && y.push(["M", a, c, "L", q, c]);
|
|
e = f(g("b"));
|
|
m.push(f(e));
|
|
y.push(v ? e.replace("M", "L") : e);
|
|
break;
|
|
case "m":
|
|
x = c + l;
|
|
y = e = g("t");
|
|
m.push(f(e));
|
|
x = r - l;
|
|
e = f(g("b"));
|
|
m.push(e);
|
|
y.push(v ? e.replace("M", "L") : e);
|
|
break;
|
|
case "r":
|
|
u = q - l;
|
|
y = e = g("r");
|
|
m.push(f(e));
|
|
v && y.push(["L", a, r, "L", a, c]);
|
|
break;
|
|
case "l":
|
|
u = a + l;
|
|
v && y.push(["M", q, c, "L", q, r]);
|
|
e = f(g("l"));
|
|
m.push(f(e));
|
|
y.push(v ? e.replace("M", "L") : e);
|
|
break;
|
|
case "c":
|
|
(u = q - l), (y = e = g("r")), m.push(f(e)), (u = a + l), (e = f(g("l"))), m.push(e), y.push(v ? e.replace("M", "L") : e);
|
|
}
|
|
return f(y).split(" ");
|
|
}
|
|
function $p(a, c, b, d, e, f) {
|
|
return dc[a] || "needle" === a ? dc["needle" === a ? "square" : a](c, b, d, e, f) : $w(a, c, b, d);
|
|
}
|
|
function hx(a, c, b) {
|
|
ml[c]
|
|
? b(ml[c])
|
|
: (b({ width: 0, height: 0 }, !1),
|
|
ug[c]
|
|
? ug[c].push(b)
|
|
: ((ug[c] = [b]),
|
|
a.calculateImageSize(c, function (b, a) {
|
|
var d = (ml[c] = { width: b, height: a });
|
|
w(ug[c], function (b) {
|
|
return b(d, !1);
|
|
});
|
|
ug[c] = void 0;
|
|
})));
|
|
}
|
|
function aq(a, c, b) {
|
|
var d = a.pointerType;
|
|
d || (d = (d = a.type.match(/^mouse|touch/i)) ? d[0] : null);
|
|
return { el: c, eventArgs: a, eventName: b, device: d ? d : "other", pointers: a.pointers };
|
|
}
|
|
function ix(a) {
|
|
a._s0 = {};
|
|
a._s1 = {};
|
|
a._s2 = {};
|
|
a._s3 = {};
|
|
}
|
|
function Zh(a, c) {
|
|
t(c) && (a._s4 = c);
|
|
return a._s4;
|
|
}
|
|
function bq(a) {
|
|
return a ? ((a = /url\(#(.*)\)/g.exec(a)) ? a[1] : null) : null;
|
|
}
|
|
function nl(a, c, b) {
|
|
c &&
|
|
(w(c.childNodes, function (c) {
|
|
return nl(a, c, b);
|
|
}),
|
|
c.refNodes.length &&
|
|
w(c.refNodes, function (c) {
|
|
return nl(a, c, b);
|
|
}),
|
|
Da(cq, function (d) {
|
|
return dq(a, d, c.attr(d), null, b);
|
|
}));
|
|
}
|
|
function dq(a, c, b, d, e) {
|
|
J(cq, c) && ((c = bq(b)), (d = bq(d)), (a = a._s0), null !== d && (J(a, d) ? a[d]++ : (a[d] = 1)), null !== c && (J(a, c) && a[c]--, J(a, c) && 1 > a[c] && (delete a[c], e(c))));
|
|
}
|
|
function ol(a, c) {
|
|
a = a._s1;
|
|
return J(a, c) ? a[c] : null;
|
|
}
|
|
function pl(a, c) {
|
|
var b = a._s1;
|
|
J(b, c) && delete b[c];
|
|
b = a._s2;
|
|
a = a._s3;
|
|
J(a, c) && (delete b[a[c]], delete a[c]);
|
|
}
|
|
function vg(a, c, b) {
|
|
var d = eq(a);
|
|
c = jx(a, c, b);
|
|
c.updateAttr = function (b) {
|
|
b.el ? b.el.attr(b.attr) : (b.el = a.element(b).add(d));
|
|
return b;
|
|
};
|
|
return c;
|
|
}
|
|
function eq(a) {
|
|
var c;
|
|
(c = Zh(a)) || ((c = a.element("defs")), !a._noRender && c.add(), (c = Zh(a, c)));
|
|
return c;
|
|
}
|
|
function jx(a, c, b) {
|
|
b = b || {};
|
|
var d = b.id && ol(a, b.id);
|
|
return d ? d : fq(a, c, b, b.hash);
|
|
}
|
|
function fq(a, c, b, d, e) {
|
|
var f = Q(b.id),
|
|
g = a._s1,
|
|
h = a._s2;
|
|
if ((g = J(h, d) ? g[h[d]] : null)) return g;
|
|
g = b;
|
|
f ? (g = L(qa(b), { id: Dd() })) : ql(a, b.id);
|
|
c = { tag: c, attr: Ga(g, ["hash", "meta"]), isDef: !0, hash: d, val: e };
|
|
b = g.id;
|
|
e = c;
|
|
a._s1[b] = e;
|
|
d && ((e = a._s3), (a._s2[d] = b), (e[b] = d));
|
|
return c;
|
|
}
|
|
function ql(a, c) {
|
|
var b = ol(a, c);
|
|
if (b) {
|
|
var d = b.isDef ? b.el : b;
|
|
d && d.destroy();
|
|
delete b.el;
|
|
pl(a, c);
|
|
} else (a = a.query("#" + c)) && a.destroy();
|
|
}
|
|
function wg(a) {
|
|
var c = a || {};
|
|
c.color = c.color || "black";
|
|
c.backgroundColor = c.backgroundColor || "none";
|
|
c.strokeWidth = t(c.strokeWidth) ? c.strokeWidth : 1;
|
|
c.granualWidth = a.granualWidth || a.size || 5;
|
|
c.granualHeight = a.granualHeight || a.size || 5;
|
|
return c;
|
|
}
|
|
function gq(a, c, b) {
|
|
a = { hash: "#" + a + ":" + b.color + ", " + b.backgroundColor + ", " + b.strokeWidth, width: b.granualWidth, height: b.granualHeight, patternUnits: "userSpaceOnUse", x: 0, y: 0, childNodes: c };
|
|
b.patternTransform && (a.patternTransform = b.patternTransform);
|
|
b.transform && (a.transform = b.transform);
|
|
return a;
|
|
}
|
|
function $h(a, c, b) {
|
|
c.unshift({ tag: "rect", attr: { width: b.granualWidth, height: b.granualHeight, fill: b.backgroundColor || "none" } });
|
|
return gq(a, c, b);
|
|
}
|
|
function hq(a) {
|
|
a = L(a, iq[a.pattern]);
|
|
a.omit = ["childNodes"];
|
|
var c = a.template;
|
|
c || (J(a, "c") ? (c = "line") : J(a, "d") ? (c = "path") : J(a, "p") && (c = "point"));
|
|
return kx[c](a);
|
|
}
|
|
function lx(a, c, b, d) {
|
|
if (!J(iq, a.pattern)) return null;
|
|
var e = L({}, a);
|
|
if (a.backgroundColor && !O(a.backgroundColor)) {
|
|
var f = void 0;
|
|
d && d.d && ((d = d.d), (d = d.isPath ? d : Aa(d)), (f = Gc(d.bbox())));
|
|
f = f || c.box();
|
|
e.width = a.width = f.width;
|
|
e.height = a.height = f.height;
|
|
var g = a.backgroundColor;
|
|
d = a.width;
|
|
f = a.height;
|
|
a = Oa(a);
|
|
a.backgroundColor = "none";
|
|
a = hq(a);
|
|
c = vg(c.renderer, "pattern", a);
|
|
b = b(g);
|
|
c.val = a;
|
|
a = b.isDef ? b.attr.id : b.attr("id");
|
|
b = {
|
|
hash: "#complexPattern:" + c.attr.id + ", " + a + ", " + d + ", " + f,
|
|
x: 0,
|
|
y: 0,
|
|
width: "100%",
|
|
height: "100%",
|
|
childNodes: [
|
|
{ tag: "rect", attr: { x: 0, y: 0, width: d, height: f, fill: b } },
|
|
{ tag: "rect", attr: { x: 0, y: 0, width: "100%", height: "100%", fill: c } },
|
|
],
|
|
};
|
|
} else b = hq(a);
|
|
e.hash = b.hash;
|
|
b.meta = e;
|
|
return b;
|
|
}
|
|
function jq(a, c) {
|
|
var b = a.items,
|
|
d = og(a, a.hasCurves),
|
|
e = Mb(a),
|
|
f = se(a);
|
|
e = Math.max(e[2], e[3]);
|
|
Hc(a);
|
|
a = [d, mg([Uc(d[0], d[1], c, e)])[0]];
|
|
e = 1;
|
|
for (var g = b.length; e < g; e++) {
|
|
var h = b[e],
|
|
k = P(h),
|
|
l = b[e - 1];
|
|
if (!ab(k, h[1])) {
|
|
var m = Ia(d, h[1]);
|
|
k = Bp(h, a[0], a[1]);
|
|
for (var n = 0; n < k.length; n++) {
|
|
var p = k[n];
|
|
if ((p.onLine2 && p.onLine1) || m === c) {
|
|
var q = m === c && p.isNaN ? 0 : cc(h[1], [p.x, p.y]);
|
|
q = 0 === q ? l.position : q == h.lengthValue ? h.position : q / f + l.position;
|
|
break;
|
|
}
|
|
}
|
|
if (t(q)) break;
|
|
}
|
|
}
|
|
c = Ic(b);
|
|
if (!t(q)) return c.toString();
|
|
q %= 1;
|
|
return Ed(c, q, 1 + q);
|
|
}
|
|
function mx(a, c, b) {
|
|
b = Rh(a, c, b);
|
|
1 < b.length && 0 === na(b[0].percOfShape + 1 - b[b.length - 1].percOfShape, 2) && b.pop();
|
|
if (1 < b.length) (c = b[0].percOfShape), (b = P(b).percOfShape);
|
|
else if (1 === b.length) {
|
|
c = b[0].percOfShape;
|
|
if (1 !== P(a.items)[0]) {
|
|
var d = Ic(a.items);
|
|
return [Ed(d, 0, c), Ed(d, c, 1)];
|
|
}
|
|
c = 0.5 < c ? 1 - c : c;
|
|
b = (c + 0.5) % 1;
|
|
} else {
|
|
c = 0;
|
|
b = 0.5;
|
|
var e = 3 !== P(P(a.items))[0];
|
|
}
|
|
d = Ic(a.items);
|
|
a = function (b, a) {
|
|
b = Ed(d, b, a);
|
|
e || (b = -1 === b.indexOf("Z") ? b + "Z" : b);
|
|
return b;
|
|
};
|
|
return [a(c, b), a(b, 1 + c)];
|
|
}
|
|
function jd(a, c, b) {
|
|
for (var d = 0, e = c.length; d < e; d++) {
|
|
var f = a,
|
|
g = c[d],
|
|
h = f.items,
|
|
k = se(f),
|
|
l = Hc(f),
|
|
m = 0;
|
|
if (!(0 === g || 1 === g || -1 < l.indexOf(g))) {
|
|
var n = !1;
|
|
l = 1;
|
|
for (var p = h.length; l < p; l++) {
|
|
var q = h[l],
|
|
r = h[l - 1],
|
|
u = m + q.lengthValue / k;
|
|
if (n) (q[1] = P(r)), (q.lengthValue = void 0), (q.position = void 0);
|
|
else {
|
|
if (m < g && g < u) {
|
|
n = Y(0, 1, m, u, g);
|
|
var x = q[0];
|
|
m = 1 === x;
|
|
3 === x || (m && 3 === r[0])
|
|
? ((n = Xj(m ? [q[1], q[1], q[2], q[2]] : [q[1], q[2], q[3], q[4]], n)), n.slice(0, 4), n.slice(4), (r = [3, q[1], n[1], n[2], n[3]]), (q = m ? [1, r[4], q[2]] : [3, r[4], n[4], n[5], n[6]]))
|
|
: ((r = [2, q[1], lf(q, n)]), (q = m ? [1, r[2], q[2]] : [2, r[2], lf(q, 1)]));
|
|
h.splice(l, 1, r, q);
|
|
l++;
|
|
p++;
|
|
n = !0;
|
|
}
|
|
m = u;
|
|
}
|
|
}
|
|
f.lengthValue = void 0;
|
|
f.positions = void 0;
|
|
}
|
|
if (b && a.items.length === b) break;
|
|
}
|
|
}
|
|
function kq(a) {
|
|
for (var c = [], b = a.items.length - 1; 0 <= b; b--) {
|
|
var d = a.items[b];
|
|
(0 !== b && 1 !== d[0] && ab(d[1], P(d))) || c.unshift(d);
|
|
}
|
|
return { items: c };
|
|
}
|
|
function lq(a, c) {
|
|
var b = Op(a),
|
|
d = Op(c);
|
|
a.items.length !== c.items.length && b !== d && ((b = b ? c : a), b.items.push([1, P(P(b.items)), b.items[0][2]]));
|
|
if (a.items.length !== c.items.length && ((a = kq(a)), (c = kq(c)), a.items.length !== c.items.length)) {
|
|
if (a.items.length < c.items.length) {
|
|
c = G([c, a], 2);
|
|
a = c[0];
|
|
c = c[1];
|
|
var e = !0;
|
|
}
|
|
d = Hc(a);
|
|
var f = Hc(c);
|
|
b = me(d, f);
|
|
d = me(f, d);
|
|
jd(c, b, a.items.length + d.length);
|
|
a.items.length !== c.items.length && jd(a, d, c.items.length);
|
|
}
|
|
return { from: e ? c : a, to: e ? a : c };
|
|
}
|
|
function ai(a) {
|
|
if (a.hasCurves && !a.hasLines) return a;
|
|
a = a.items();
|
|
for (var c = 0, b = a.length; c < b; c++) {
|
|
var d = a[c],
|
|
e = d[0];
|
|
if (2 === e || 1 === e) a[c] = [3, d[1], d[1], d[2], d[2]];
|
|
1 === e && (a.splice(c + 1, 0, [1, d[2], d[2]]), b++, c++);
|
|
}
|
|
return Ic(a);
|
|
}
|
|
function nx(a, c) {
|
|
var b,
|
|
d,
|
|
e = a.length(),
|
|
f = c.length();
|
|
if (!e || !f) return null;
|
|
if (a.hasCurves || c.hasCurves) {
|
|
var g = !a.hasCurves || a.hasLines,
|
|
h = !c.hasCurves || c.hasLines;
|
|
a = ai(a);
|
|
c = ai(c);
|
|
}
|
|
f = a.shapes.length;
|
|
var k = c.shapes.length;
|
|
if (f === k) return 1 === f ? (a.isClosed || c.isClosed ? mq(a.shapes[0], c.shapes[0], g, h) : ((a = { items: a.items() }), (c = { items: c.items() }), lq(a, c))) : nq(a, c);
|
|
var l;
|
|
f < k && (l = !0);
|
|
g = f > k ? c : a;
|
|
h = Math.abs(f - k);
|
|
e = 0;
|
|
for (f = f > k ? a : c; 0 < h--; ) {
|
|
var m = f;
|
|
k = g.bbox();
|
|
var n = m.shapes[0],
|
|
p = m.shapes[1],
|
|
q = [ng(n), ng(p)],
|
|
r = Ia(q[0], q[1]),
|
|
u = Ea([Mb(n), Mb(p)]);
|
|
u = Math.max(u[2], u[3]);
|
|
p = oq(p.items, q[0], r);
|
|
var x = oq(n.items, q[1], r);
|
|
x = Te(q[0], q[1], x, Uc(x[0], x[1], r + 90, 10));
|
|
q = Te(q[0], q[1], p, Uc(p[0], p[1], r + 90, 10));
|
|
null === x.x && null === x.y && null === q.x && null === q.y ? (n = n.center) : ((n = mg([x, q])), (n = $k(n[0], n[1], 0.5)));
|
|
r = [Uc(n[0], n[1], r - 90, 2 * u), Uc(n[0], n[1], r + 90, 2 * u)];
|
|
r = mg(r);
|
|
u = m.bbox();
|
|
m = Qh(k, u, r[0]);
|
|
k = Qh(k, u, r[1]);
|
|
k = ab(m, k) ? r : [m, k];
|
|
m = g.shapes.splice(2 * e, 1)[0];
|
|
k = mx(m, k[0], k[1]);
|
|
l
|
|
? ((a = Aa(k.join(""))), (b = g.shapes).splice.apply(b, H([2 * e, 0], a.shapes)), (a.shapes = g.shapes), (g = a))
|
|
: ((c = Aa(k.join(""))), (d = g.shapes).splice.apply(d, H([2 * e, 0], c.shapes)), (c.shapes = g.shapes), (g = c));
|
|
e = 2 * (e + 1) > g.shapes.length - 1 ? 0 : e + 1;
|
|
}
|
|
return nq(a, c);
|
|
}
|
|
function nq(a, c) {
|
|
var b = [0, 0, 1, 1],
|
|
d = el(a.shapes[0], b, a.bbox()),
|
|
e = cc(d, el(c.shapes[0], b, c.bbox()));
|
|
b = cc(d, el(c.shapes[c.shapes.length - 1], b, c.bbox()));
|
|
c = c.shapes.slice(0);
|
|
e > b && (c = c.reverse());
|
|
e = [];
|
|
b = [];
|
|
d = 0;
|
|
for (var f = c.length; d < f; d++) {
|
|
var g = mq(a.shapes[d], c[d], !1, !1);
|
|
e = e.concat(g.from.items);
|
|
b = b.concat(g.to.items);
|
|
}
|
|
return { from: { items: e }, to: { items: b } };
|
|
}
|
|
function mq(a, c, b, d) {
|
|
if (Dp(a) !== Dp(c)) {
|
|
var e = [],
|
|
f = { hasCurves: a.hasCurves, hasLines: a.hasLines, isClosed: a.isClosed, items: e },
|
|
g = P(a.items),
|
|
h = 1 === g[0],
|
|
k = h ? g[1] : P(g),
|
|
l = a.items.length - (h ? 2 : 1);
|
|
e.push([0, k, k]);
|
|
for (k = l; 0 < k; k--)
|
|
switch (((l = a.items[k]), l[0])) {
|
|
case 2:
|
|
e.push([l[0], l[2], l[1]]);
|
|
break;
|
|
case 3:
|
|
e.push([3, l[4], l[3], l[2], l[1]]);
|
|
}
|
|
h && e.push([1, g[2], g[1]]);
|
|
a = f;
|
|
}
|
|
var m;
|
|
e = na(Ep(a, a.hasCurves));
|
|
f = na(Ep(c, c.hasCurves));
|
|
f !== e && (a.items.length === c.items.length && 45 > Math.abs(e - f) && (m = !0), m || (b && !d ? (a = Aa(jq(a, f)).shapes[0]) : ((b = Aa(jq(c, e))), (c = 1 == b.shapes.length ? b.shapes[0] : c))));
|
|
b = lq(a, c);
|
|
c = b.from;
|
|
b = b.to;
|
|
c.items.length !== b.items.length && c.items.length !== b.items.length && ((m = Hc(c)), (a = Hc(b)), (d = me(m, a)), (m = me(a, m)), m.length < d.length ? jd(b, d, c.items.length) : jd(c, m, b.items.length));
|
|
if (c.items.length !== b.items.length) {
|
|
if (c.items.length > b.items.length) {
|
|
c.items.splice(Math.floor(c.items.length / 2), 1);
|
|
var n = c,
|
|
p = b.items.length;
|
|
} else c.items.length < b.items.length && (b.items.splice(Math.floor(b.items.length / 2), 1), (n = b), (p = c.items.length));
|
|
for (; n.items.length > p; ) n.items.splice(Math.floor(n.items.length / 2), 1);
|
|
}
|
|
return { from: c, to: b };
|
|
}
|
|
function oq(a, c, b) {
|
|
for (var d, e = Number.MAX_VALUE, f = 0, g = a.length; f < g; f++) {
|
|
var h = P(a[f]),
|
|
k = Uc(h[0], h[1], b + 90, 10);
|
|
k = Wn(h, k, c);
|
|
k < e && ((d = h), (e = k));
|
|
}
|
|
return d;
|
|
}
|
|
function pq(a, c, b) {
|
|
var d = b.count - b.del,
|
|
e = "step" === b.type ? 2 : 1,
|
|
f = G(a.items.length < c.items.length ? [a, c] : [c, a], 2),
|
|
g = f[0],
|
|
h = f[1];
|
|
Hc(g);
|
|
se(g);
|
|
f = function (b, a) {
|
|
--a;
|
|
a = (-1 < a ? a : 0) * e;
|
|
return [a, b.length - 2 - a];
|
|
};
|
|
var k = f(g.items, b.at),
|
|
l = [],
|
|
m = function (b, a, c) {
|
|
void 0 === c && (c = -1);
|
|
var d = 1e-4 * c;
|
|
ob(a, function (a) {
|
|
l.push(b + (a + 1) * d);
|
|
});
|
|
};
|
|
a.items.length !== c.items.length
|
|
? 0 > d
|
|
? pq(c, a, { action: "splice", at: b.at, count: -d, del: 0, type: b.type, shapeName: b.shapeName })
|
|
: ("area" == b.shapeName ? (m(g.items[k[0]].position, e, -1), m(g.items[k[1]].position, e, 1)) : m(g.items[k[0]].position, e, -1), jd(g, l), (l = []))
|
|
: b.shift &&
|
|
("area" === b.shapeName
|
|
? (Hc(h), (d = c.items), (g = f(d, 1)), m(d[g[0]].position, e, 1), m(d[g[1]].position, e, -1), jd(c, l), (l = []), (d = a.items), (g = f(d, b.pointsLen)), m(d[g[0]].position, e, 1), m(d[g[1]].position, e, -1), jd(a, l))
|
|
: (m(1, e, -1), jd(a, l), (l = []), m(0, e, 1), jd(c, l)),
|
|
(l = []));
|
|
return { from: a, to: c };
|
|
}
|
|
function ox(a, c, b) {
|
|
void 0 === b && (b = {});
|
|
var d = {};
|
|
if (a && c && b.simple) return (d.final = c), (d.from = a.items(!0)), (d.to = c.items(!0)), qq(d);
|
|
d.final = Ic(c.items());
|
|
if (a.hasErrors) return rq(d);
|
|
if (c.hasErrors) return (d.final = a), rq(d);
|
|
var e;
|
|
if ((e = b.slice) && e.from && e.to) (d.slice = e), (d.stepFn = px(d));
|
|
else if ((e = b.needle) && e.from && e.to) (d.needle = e), (d.stepFn = qx(d));
|
|
else if (!b.simple)
|
|
if (b.action) {
|
|
var f = a;
|
|
e = c;
|
|
if (f.hasCurves || e.hasCurves) (f = ai(f)), (e = ai(e));
|
|
f = f.items();
|
|
e = e.items();
|
|
f = b.at > Math.min(f.length, e.length) - 1 ? null : pq({ items: f }, { items: e }, b);
|
|
} else f = sq(d, a, c);
|
|
d.from = f ? f.from.items : a.items();
|
|
d.to = f ? f.to.items : c.items();
|
|
return d.stepFn || qq(d);
|
|
}
|
|
function rq(a) {
|
|
return function () {
|
|
return a.final.toString();
|
|
};
|
|
}
|
|
function qq(a) {
|
|
return function (c) {
|
|
if (1 === c) return a.final.toString();
|
|
for (var b = a.invertStep ? rx : sx, d = "", e, f, g, h = 0; h < a.from.length; h++) {
|
|
var k = a.from[h],
|
|
l = (f = a.to[h] || f),
|
|
m = k[0];
|
|
d += e !== m ? re[m] : " ";
|
|
e = m;
|
|
if (1 !== e) for (m = 2; m < k.length; m++) (g = l[m] || g), (d += (2 < m ? " " : "") + (b(k[m][0], g[0], c) + " " + b(k[m][1], g[1], c)));
|
|
}
|
|
return d;
|
|
};
|
|
}
|
|
function tq(a) {
|
|
return function (c) {
|
|
if (1 === c) return a.final.toString();
|
|
a.invertStep && (c = 1 - c);
|
|
return Ed(a.final, 0, c);
|
|
};
|
|
}
|
|
function px(a) {
|
|
return function (c) {
|
|
if (1 === c) return a.final.toString();
|
|
var b = a.slice.from,
|
|
d = a.slice.to;
|
|
c = { cxy: uq(b.cxy, d.cxy, c), start: kd(b.start, d.start, c), end: kd(b.end, d.end, c), open: d.open, r: kd(b.r, d.r, c), innerR: kd(b.innerR, d.innerR, c), caps: d.caps };
|
|
b = c.cxy;
|
|
return xa(ll(b[0], b[1], c.r, c.r, c));
|
|
};
|
|
}
|
|
function qx(a) {
|
|
return function (c) {
|
|
if (1 === c) return a.final.toString();
|
|
var b = a.needle.from,
|
|
d = a.needle.to;
|
|
c = { arc: { cxy: uq(b.arc.cxy, d.arc.cxy, c), angle: kd(b.arc.angle, d.arc.angle, c) }, xyz: [0, 0, kd(b.xyz[2], d.xyz[2], c)], xyzs: [0, 0, kd(b.xyzs[2], d.xyzs[2], c)] };
|
|
return xa(a.needle.gen(c));
|
|
};
|
|
}
|
|
function sq(a, c, b) {
|
|
if (!c || 0 === c.shapes.length) {
|
|
c = { items: b.items() };
|
|
var d = og(c, b.hasCurves);
|
|
c = b.items();
|
|
var e = [],
|
|
f = G(d, 2);
|
|
d = f[0];
|
|
f = f[1];
|
|
for (var g = 0; g < c.length; g++) {
|
|
for (var h = c[g].slice(0), k = 1; k < h.length; k++) h[k] = [d, f];
|
|
e.push(h);
|
|
}
|
|
c = Ic(e);
|
|
return (a = sq(a, c, b)) ? a : { from: { items: c.items() }, to: { items: b.items() } };
|
|
}
|
|
if (vq(c, b)) a.stepFn = tq(a);
|
|
else if (vq(b, c)) (a.stepFn = tq(a)), (a.invertStep = !0);
|
|
else return nx(c, b);
|
|
}
|
|
function vq(a, c) {
|
|
return 1 === a.shapes.length && 1 === a.shapes[0].items.length && (1 < c.shapes.length || 1 < c.shapes[0].items.length);
|
|
}
|
|
function tx(a) {
|
|
if ("linear" === a) return null;
|
|
var c = ux.exec(a);
|
|
return c
|
|
? $f.apply(this, c.slice(1).map(Number))
|
|
: (c = vx.exec(a))
|
|
? bi(Number(c[1]), { start: 1, middle: 0.5, end: 0 }[c[2]])
|
|
: (a = { ease: $f(0.25, 0.1, 0.25, 1), "ease-in": $f(0.42, 0, 1, 1), "ease-out": $f(0, 0, 0.58, 1), "ease-in-out": $f(0.42, 0, 0.58, 1), "step-start": bi(1, 1), "step-middle": bi(1, 0.5), "step-end": bi(1, 0) }[a])
|
|
? a
|
|
: null;
|
|
}
|
|
function wq(a) {
|
|
var c = a ? W(xq, nb(a) ? { duration: a } : a) : xq;
|
|
"linear" !== c.easing && (c.easingFunction = tx(c.easing) || yq);
|
|
c.activeDuration = Math.abs((0 === c.duration || 0 === c.iterations ? 0 : c.duration * c.iterations) / c.playbackRate);
|
|
c.totalDuration = c.delay + c.activeDuration + c.endDelay;
|
|
a = function (b) {
|
|
if (null == b) var a = 0;
|
|
else (a = c.delay + c.activeDuration + c.endDelay), (a = b < Math.min(c.delay, a) ? 1 : b >= Math.min(c.delay + c.activeDuration, a) ? 2 : 3);
|
|
a: {
|
|
switch (a) {
|
|
case 1:
|
|
if ("backwards" === c.fill || "both" === c.fill) {
|
|
b = 0;
|
|
break a;
|
|
}
|
|
break;
|
|
case 3:
|
|
b -= c.delay;
|
|
break a;
|
|
case 2:
|
|
if ("forwards" === c.fill || "both" === c.fill) {
|
|
b = c.activeDuration;
|
|
break a;
|
|
}
|
|
}
|
|
b = null;
|
|
}
|
|
if (null === b) a = null;
|
|
else {
|
|
var e = c.iterationStart;
|
|
0 === c.duration ? 1 !== a && (e += c.iterations) : (e += b / c.duration);
|
|
var f = Infinity === e ? c.iterationStart % 1 : e % 1;
|
|
0 !== f || 2 !== a || 0 === c.iterations || (0 === b && 0 !== c.duration) || (f = 1);
|
|
b = f;
|
|
e = 2 === a && Infinity === c.iterations ? Infinity : 1 === b ? Math.floor(e) - 1 : Math.floor(e);
|
|
a = c.direction;
|
|
"normal" !== a && "reverse" !== a && ("alternate-reverse" === a && (e += 1), (a = "normal"), Infinity !== e && 0 !== e % 2 && (a = "reverse"));
|
|
a = c.easingFunction("normal" === a ? b : 1 - b);
|
|
}
|
|
return a;
|
|
};
|
|
a.options = c;
|
|
return a;
|
|
}
|
|
function rl(a) {
|
|
return ja(a)
|
|
? B(a, function (a) {
|
|
return rl(a);
|
|
})
|
|
: parseFloat(zq(a, "px", ""));
|
|
}
|
|
function wx(a, c, b) {
|
|
var d = wq({ duration: 100, easing: b });
|
|
return function (b) {
|
|
b = d(b);
|
|
return { current: of(a, c, b), timeFraction: b };
|
|
};
|
|
}
|
|
function sl(a, c) {
|
|
if (c.linearGradient) var b = "linearGradient";
|
|
else if (c.radialGradient) b = "radialGradient";
|
|
else return;
|
|
var d = Aq[b],
|
|
e = d.argsToAttrs(c),
|
|
f = e.attrs;
|
|
e = e.stops;
|
|
var g = [];
|
|
f.hash || g.push(d.toString(f));
|
|
e = B(e, function (b) {
|
|
if (ja(b)) {
|
|
b = G(b, 3);
|
|
var a = b[0],
|
|
c = b[1];
|
|
b = b[2];
|
|
} else (a = b.offset), (c = b.color), (b = b.opacity);
|
|
a = { offset: Q(a) ? "0%" : a, color: Q(c) ? "black" : c, opacity: Q(b) ? "1" : b };
|
|
f.hash || g.push(Aq.stopToString(a));
|
|
return a;
|
|
});
|
|
d = f.hash || d.keyPrefix + "(" + pc(g, ", ") + ")";
|
|
a = fq(a, b, f, d, c);
|
|
a.attr.childNodes = B(e, function (b) {
|
|
var a = { offset: b.offset, "stop-color": b.color };
|
|
b = b.opacity;
|
|
0 <= b && 1 > b && (a["stop-opacity"] = b);
|
|
return { tag: "stop", attr: a };
|
|
});
|
|
a.updateAttr = xx;
|
|
return a;
|
|
}
|
|
function xx(a, c, b) {
|
|
var d = a.el,
|
|
e = b.renderer;
|
|
if (a.isDestroyed || (d && d.isDestroyed)) a = sl(e, a.val);
|
|
else if (d) return a;
|
|
if ((c = b.data.vals[c]) && c.attr && a.tag === c.tag && ((b = c.el), (d = e._s0[c.attr.id] || 0), b && 1 === d)) {
|
|
d = a.attr;
|
|
var f = b.data.attrs.id;
|
|
if (f === d.id) return (a.el = b), a;
|
|
c.isDestroyed = !0;
|
|
pl(e, d.id);
|
|
pl(e, f);
|
|
c = a;
|
|
var g = a.hash;
|
|
e._s1[f] = c;
|
|
g && ((c = e._s3), (e._s2[g] = f), (c[f] = g));
|
|
d.id = f;
|
|
yx(b, d);
|
|
a.el = b;
|
|
return a;
|
|
}
|
|
a.el = e.element(a).add(eq(e));
|
|
return a;
|
|
}
|
|
function yx(a, c) {
|
|
var b = c.childNodes,
|
|
d = a.childNodes;
|
|
a.attr(Ga(c, ["childNodes"]));
|
|
Ub(
|
|
b,
|
|
d,
|
|
function (b) {
|
|
return a.renderer.element(b).add(a);
|
|
},
|
|
function (b, a) {
|
|
return a.attr(b.attr);
|
|
},
|
|
function (b) {
|
|
return b.destroy();
|
|
}
|
|
);
|
|
}
|
|
function Ab(a, c) {
|
|
w(a, function (b) {
|
|
return (xg[b] = c);
|
|
});
|
|
}
|
|
function zx(a, c, b, d, e) {
|
|
if (J(ci, a)) {
|
|
if (!d) return ci[a];
|
|
d[ci[a]] = b;
|
|
}
|
|
}
|
|
function Ax(a, c, b, d, e) {
|
|
if (!d) return "attr";
|
|
L(d, b);
|
|
}
|
|
function Bx(a, c, b, d, e) {
|
|
if (!d) return "d";
|
|
a = b && c && Pa(b) && !0 !== b.isElement ? (ja(b) ? pc(b, " ") : b) : b;
|
|
d.d = a;
|
|
}
|
|
function Cx(a, c, b, d, e) {
|
|
"overflow" === a && d && c && b && ((a = c.data.vals["clip-path"]), "visible" === b ? a && (d["clip-path"] = null) : "hidden" === b && (a || (a = vg(c.renderer, "clipRect")), (d["clip-path"] = a)));
|
|
}
|
|
function Bq(a, c, b, d, e) {
|
|
"clipPath" === a &&
|
|
d &&
|
|
c &&
|
|
!J(d, "clip-path") &&
|
|
((a = c.data.vals["clip-path"]),
|
|
b ? ((b = Pe(e, O(b) || b.isPath ? { d: b } : b, Dx)), a ? (a.attr = L(a.attr, b)) : (a = vg(c.renderer, "clipPath", b)), (d["clip-path"] = a), c.shadowEl && Ex(c.shadowEl, b)) : a && (d["clip-path"] = null));
|
|
}
|
|
function tl(a, c) {
|
|
var b = a.shadowTranslate,
|
|
d = b[0],
|
|
e = b[1];
|
|
b = Aa(c).translate(function (b) {
|
|
return [b[0] + d, b[1] + e];
|
|
});
|
|
a.attr({ d: c + b });
|
|
if ((a = a.data.vals["clip-path"])) (a.attr = L(a.attr, { d: b })), a.updateAttr(a);
|
|
}
|
|
function Ex(a, c) {
|
|
var b = c.d;
|
|
a.childNodes.length
|
|
? w(a.childNodes, function (a) {
|
|
return tl(a, b);
|
|
})
|
|
: tl(a, b);
|
|
}
|
|
function Fx(a, c, b, d, e) {
|
|
if ("shadow" === a && d && c) {
|
|
e && J(e, "clipPath") && !J(d, "clip-path") && Bq("clipPath", c, e.clipPath, d, e);
|
|
var f = c.shadowEl;
|
|
!b && f
|
|
? Cq(c)
|
|
: b &&
|
|
(!0 === b && (b = Oa({ mode: "interpolation", x: 5, y: 5, color: "rgba(0,0,0,.075)", toColor: "rgba(0,0,0,.025)", interpolationSteps: 2, interpolationFunc: "linear" })),
|
|
(b.mode = b.mode || "simple"),
|
|
(a =
|
|
b.mode +
|
|
" " +
|
|
(b.x || 0) +
|
|
" " +
|
|
(b.y || 0) +
|
|
" " +
|
|
(b.blur || 0) +
|
|
" " +
|
|
(b.color || "black") +
|
|
" " +
|
|
(b.toColor || "white") +
|
|
" " +
|
|
(b.interpolationSteps || 0) +
|
|
" " +
|
|
(b.interpolationFunc || "linear") +
|
|
" " +
|
|
(b.inset ? "inset" : "")),
|
|
(f && f.data.shadowConfig.val === a) ||
|
|
((f && f.data.shadowConfig.mode === b.mode) ||
|
|
(f && Cq(c),
|
|
(c.shadowEl = f = Gx(b, c, d)),
|
|
c.isPatched && c.renderer.addBefore(f, c),
|
|
c.refNodes.push(f),
|
|
(f.ownerAttrsChanged = function (b) {
|
|
return Hx(f, b, c);
|
|
}),
|
|
(f.alignBeforeOwner = !0)),
|
|
(f.data.shadowConfig = W(b, { val: a })),
|
|
Ix(b, f, c, d)));
|
|
}
|
|
}
|
|
function Hx(a, c, b) {
|
|
if (!b.data.vals["clip-path"]) {
|
|
var d = be({}, Hb(c, Dq), { fill: void 0, stroke: void 0 });
|
|
a.childNodes.length
|
|
? w(a.childNodes, function (b) {
|
|
return b.attr(d);
|
|
})
|
|
: a.attr(d);
|
|
}
|
|
}
|
|
function Gx(a, c, b) {
|
|
return "interpolation" === a.mode ? c.renderer.element("g") : Eq(c, b["clip-path"]);
|
|
}
|
|
function Eq(a, c) {
|
|
if ((c = c || a.data.vals["clip-path"])) return (c = c.attr.d), a.renderer.element("path", { d: c, "fill-rule": "evenodd", clipPath: c, stroke: "none" });
|
|
c = W(Hb(a.data.attrs, Dq), { fill: "none", stroke: "none" });
|
|
return a.renderer.element(a.nodeName, c);
|
|
}
|
|
function Ix(a, c, b, d) {
|
|
if ("radial" === a.mode && a.blur)
|
|
c.renderer.attr(c, {
|
|
translate: [a.x, a.y],
|
|
fill: {
|
|
radialGradient: {},
|
|
stops: [
|
|
["0%", a.color],
|
|
[100 - a.blur + "%", a.color],
|
|
["100%", a.toColor || "white"],
|
|
],
|
|
},
|
|
});
|
|
else if ("interpolation" === a.mode) {
|
|
var e = a.interpolationSteps || 1,
|
|
f = a.interpolationFunc || "linear",
|
|
g = le(a.color || "black", a.toColor || "white");
|
|
f = wx([0, 0], [a.x, a.y], f);
|
|
var h = 100 / e,
|
|
k = !1;
|
|
c.childNodes.length !== e &&
|
|
(c.childNodes.length &&
|
|
w(yg(c.childNodes), function (b) {
|
|
return b.destroy();
|
|
}),
|
|
(k = !0));
|
|
for (var l = (d = b.data.vals["clip-path"] || d["clip-path"]) ? d.attr.d : null, m = 0; m < e; m++) {
|
|
var n = k ? Eq(b, d).add(c) : c.childNodes[m],
|
|
p = 0 === m ? { timeFraction: 1, current: [a.x, a.y] } : f(h * (e - m)),
|
|
q = p.current;
|
|
p = g(p.timeFraction);
|
|
l ? ((n.shadowTranslate = q), n.attr({ fill: p }), tl(n, l)) : n.attr({ translate: q, fill: p });
|
|
}
|
|
} else c.renderer.attr(c, { translate: [a.x, a.y], fill: a.color });
|
|
}
|
|
function Cq(a) {
|
|
var c = a.shadowEl,
|
|
b = a.refNodes;
|
|
if (b.length) {
|
|
var d = b.indexOf(c);
|
|
-1 < d && b.splice(d, 1);
|
|
}
|
|
c.destroy();
|
|
delete a.shadowEl;
|
|
}
|
|
function Jx(a, c, b, d, e) {
|
|
if (J(ul, a)) {
|
|
a = ul[a];
|
|
c && c.isHtml && (a = Kx[a]);
|
|
if (!d) return a;
|
|
J(d, a) || (d[a] = di(a, b, e, c));
|
|
}
|
|
}
|
|
function di(a, c, b, d) {
|
|
if (!c || !d || (!O(c) && !Pa(c)) || c.isElement) return c;
|
|
a: if (b && "fill" === a && !c.pattern && !N(c, ["meta", "pattern"]) && !N(c, ["val", "meta", "pattern"])) {
|
|
a = d.data;
|
|
if (!yc(["hatch", "hatchPattern"], b)) {
|
|
if (!J(a, "hatch")) break a;
|
|
b.hatchPattern = a.hatchPattern;
|
|
b.hatch = a.hatch;
|
|
}
|
|
var e = b.hatch || "black";
|
|
a.hatchPattern = "" + (b.hatchPattern || "horizontal");
|
|
a.hatch = e;
|
|
c = "none" === b.hatchPattern || "none" === b.hatch ? c : { pattern: "" + (b.hatchPattern || "horizontal"), color: b.hatch || "black", backgroundColor: b.fill };
|
|
}
|
|
return O(c) ? Lx(c, d) : Pa(c) ? ((b = c.linearGradient || c.radialGradient ? sl(d.renderer, c) : c.pattern ? Mx(c, d, b) : c), b) : c;
|
|
}
|
|
function Fq(a, c) {
|
|
a = vg(a.renderer, "pattern", c);
|
|
a.val = c;
|
|
return a;
|
|
}
|
|
function Mx(a, c, b) {
|
|
return (b = lx(
|
|
a,
|
|
c,
|
|
function (b) {
|
|
return di("fill", b, null, c);
|
|
},
|
|
b
|
|
))
|
|
? Fq(c, b)
|
|
: a;
|
|
}
|
|
function Nx(a, c) {
|
|
var b = c.renderer;
|
|
a = Gd(a, "'\"");
|
|
return Fq(c, { hash: "#image:" + a, width: "100%", height: "100%", patternContentUnits: "objectBoundingBox", childNodes: [b.image({ src: a, width: 1, height: 1, preserveAspectRatio: "none" })] });
|
|
}
|
|
function Lx(a, c) {
|
|
var b = /(.*)\((.*)\)/g.exec(a);
|
|
if (!b) return a;
|
|
var d = G(b, 3);
|
|
b = d[1];
|
|
d = d[2];
|
|
if (!b || !d) return a;
|
|
var e = Re(d, ", "),
|
|
f = function () {
|
|
return B(yg(e, 1), function (b) {
|
|
return Gq(Re(b, " "));
|
|
});
|
|
};
|
|
d = function (b) {
|
|
var a = f();
|
|
a[b] = Re(e[0], " ");
|
|
return sl(c.renderer, a);
|
|
};
|
|
return "linear-gradient" === b ? d("linearGradient") : "radial-gradient" === b ? d("radialGradient") : "url" === b && "#" !== e[0].charAt(0) ? Nx(e[0], c) : a;
|
|
}
|
|
function Ox(a, c, b, d, e) {
|
|
a = c && c.isHtml ? "border-width" : "stroke-width";
|
|
if (!d) return a;
|
|
J(d, a) || (d[a] = di(a, b, e, c));
|
|
}
|
|
function Px(a, c, b, d, e) {
|
|
if (!d || !c) return a;
|
|
if ("text" !== c.nodeName && "tspan" !== c.nodeName) d[a] = di("stroke", b, e, c);
|
|
else {
|
|
var f = c.strokeEl;
|
|
!b && f
|
|
? Hq(c)
|
|
: b &&
|
|
!1 !== b.visible &&
|
|
((a = O(b) ? { stroke: b } : b),
|
|
(b = JSON.stringify(a)),
|
|
(f && f.data.strokeHash === b) ||
|
|
(f && Hq(c),
|
|
(c.strokeEl = f = c.renderer.element(c.nodeName, c.data.vals)),
|
|
c.isPatched &&
|
|
(c.renderer.addBefore(f, c),
|
|
(f.el.style.stroke = Qx(a.stroke, c)),
|
|
(f.el.style.strokeWidth = a["stroke-width"] || e.strokeWidth),
|
|
(f.el.style.strokeDasharray = a["stroke-dasharray"]),
|
|
(f.el.style.strokeOpacity = a["stroke-opacity"]),
|
|
(f.el.style.strokeLinejoin = "round"),
|
|
(f.el.innerHTML = c.el.innerHTML)),
|
|
c.refNodes.push(f),
|
|
(f.ownerAttrsChanged = function (b) {
|
|
f.el.innerHTML = c.el.innerHTML;
|
|
}),
|
|
(f.alignBeforeOwner = !0),
|
|
(f.data.strokeHash = b)));
|
|
}
|
|
}
|
|
function Hq(a) {
|
|
var c = a.strokeEl;
|
|
c.destroy();
|
|
delete c.ownerAttrsChanged;
|
|
delete a.strokeEl;
|
|
}
|
|
function Qx(a, c) {
|
|
return Ek(a) ? gg(N(c, ["parentNode", "data", "attrs", "fill"]) || "black", a) : a;
|
|
}
|
|
function Rx(a, c, b, d, e) {
|
|
if (J(ei, a)) {
|
|
if (!d) return ei[a];
|
|
if (e && !J(d, "transform"))
|
|
if (O(e.transform) || null === e.transform) d.transform = e.transform;
|
|
else {
|
|
var f;
|
|
c && (a = c.attr("transform")) && J(a, "val") && (f = a);
|
|
f = f || {};
|
|
e.transform && L(f, e.transform);
|
|
Da(ec, function (b) {
|
|
J(e, b) && (f[b] = e[b]);
|
|
});
|
|
var g = [];
|
|
Da(ec, function (b) {
|
|
if (J(f, b) && null !== f[b]) {
|
|
var a = ec[b][1](f[b]);
|
|
null != a && g.push(b + "(" + pc(a, ",") + ")");
|
|
f[b] = a;
|
|
}
|
|
});
|
|
if ((a = g.length ? pc(g, " ") : null)) f.val = a;
|
|
d.transform = a ? f : null;
|
|
}
|
|
}
|
|
}
|
|
function Sx(a, c, b, d, e) {
|
|
if (J(fi, a)) {
|
|
if (!d) return fi[a];
|
|
a = fi[a];
|
|
b && c && (c.data.zIndex = b);
|
|
d[a] = b;
|
|
}
|
|
}
|
|
function Tx(a, c, b, d, e) {
|
|
if (!d) return "easing";
|
|
a = b && O(b) ? (J(Iq, b) ? Iq[b] : b) : b;
|
|
d.easing = a;
|
|
}
|
|
function Ux(a, c, b, d, e) {
|
|
if ("mask" === a) {
|
|
if (!d) return a;
|
|
c && !J(d, "mask") && (b ? ((a = c.data.vals.mask), (b = Pe(e, O(b) ? { d: b } : b, Vx)), a ? (a.attr = L(a.attr, b)) : (a = vg(c.renderer, "mask", b)), (d.mask = a)) : (d.mask = null));
|
|
}
|
|
}
|
|
function Wx(a, c, b, d, e) {
|
|
if (!d) return "text";
|
|
d.text = c.isHtml ? b : b.replace(Xx, " ");
|
|
}
|
|
function Ob(a) {
|
|
return function (c) {
|
|
vl[a] = c;
|
|
};
|
|
}
|
|
function Jq(a) {
|
|
if (a.type && 0 === a.type.indexOf("touch")) return !0;
|
|
a = a || window.event;
|
|
return "buttons" in a && 1 === a.buttons ? !0 : 1 === (a.which || a.button);
|
|
}
|
|
function pf(a, c) {
|
|
function b() {
|
|
return (d = c.getBoundingClientRect());
|
|
}
|
|
if (void 0 === a.eventData.clientX || void 0 === a.eventData.clientY) (a.eventData.clientX = a.clientX), (a.eventData.clientY = a.clientY);
|
|
var d = null,
|
|
e = null;
|
|
a.eventData.coordinates = {
|
|
getPageXY: function () {
|
|
var f = a.eventData.pageX,
|
|
g = a.eventData.pageY;
|
|
if (void 0 === f || void 0 === g) d || (d = b()), e || (e = c.getBBox ? c.getBBox() : null), (f = a.eventData.clientX - d.left + (e ? e.x : 0)), (g = a.eventData.clientY - d.top + (e ? e.y : 0));
|
|
return { x: f, y: g };
|
|
},
|
|
getOuterBox: b,
|
|
};
|
|
}
|
|
function gi(a, c) {
|
|
return c ? c.querySelector(a) : ba.querySelector(a);
|
|
}
|
|
function Kq(a, c, b) {
|
|
wl(a, c, { reorder: b });
|
|
a.el.appendChild(c.el);
|
|
c.refNodes.length &&
|
|
w(c.refNodes, function (b) {
|
|
return b.alignBeforeOwner && zg(b, c);
|
|
});
|
|
}
|
|
function zg(a, c, b) {
|
|
var d = c.parentNode;
|
|
wl(d, a, { index: d.childNodes.indexOf(c), reorder: b });
|
|
c.el.parentNode.insertBefore(a.el, c.el);
|
|
a.refNodes.length &&
|
|
w(a.refNodes, function (b) {
|
|
return b.alignBeforeOwner && zg(b, a);
|
|
});
|
|
}
|
|
function Lq(a, c, b) {
|
|
var d = c.parentNode,
|
|
e = d.childNodes,
|
|
f = e.indexOf(c) + 1;
|
|
wl(d, a, { index: f === e.length ? null : f, reorder: b });
|
|
c.el.parentNode.insertBefore(a.el, c.el.nextSibling);
|
|
a.refNodes.length &&
|
|
w(a.refNodes, function (b) {
|
|
return b.alignBeforeOwner && zg(b, a);
|
|
});
|
|
}
|
|
function Yx(a) {
|
|
Zx(a.el);
|
|
Mq(a);
|
|
a.childNodes = [];
|
|
a.refNodes.length &&
|
|
(w(a.refNodes, function (a) {
|
|
return a.destroy();
|
|
}),
|
|
(a.refNodes = []));
|
|
delete a.el;
|
|
}
|
|
function wl(a, c, b) {
|
|
b = b || { reorder: !1, index: null };
|
|
var d = b.reorder;
|
|
b = b.index;
|
|
c && (a !== c.parentNode || d) && ((d = Mq(c)), -1 < d && d < b && b--, a && ((d = a.childNodes), 0 === b ? d.unshift(c) : b ? d.splice(b, 0, c) : d.push(c), (c.parentNode = a)));
|
|
}
|
|
function Mq(a) {
|
|
if (!a.parentNode) return -1;
|
|
var c = a.parentNode.zIndexHash,
|
|
b = a.data.zIndex || 0;
|
|
c[b] && delete c[b];
|
|
c = a.parentNode.childNodes;
|
|
b = c.indexOf(a);
|
|
if (0 > b) return -1;
|
|
c.splice(b, 1);
|
|
a.parentNode = null;
|
|
return b;
|
|
}
|
|
function Ag(a, c, b) {
|
|
if (!a || a instanceof tb) return a;
|
|
b = new tb(a, c, b);
|
|
var d = b.data.attrs,
|
|
e,
|
|
f = {};
|
|
if (a.hasAttributes()) {
|
|
var g = a.attributes;
|
|
try {
|
|
for (var h = ya(g), k = h.next(); !k.done; k = h.next()) {
|
|
var l = k.value;
|
|
f[l.name] = l.value;
|
|
}
|
|
} catch (x) {
|
|
var m = { error: x };
|
|
} finally {
|
|
try {
|
|
k && !k.done && (e = h.return) && e.call(h);
|
|
} finally {
|
|
if (m) throw m.error;
|
|
}
|
|
}
|
|
}
|
|
L(d, f);
|
|
a.parentNode && (b.parentNode = new tb(a.parentNode, c, void 0));
|
|
var n;
|
|
a = [];
|
|
c = b.el.childNodes;
|
|
try {
|
|
for (var p = ya(c), q = p.next(); !q.done; q = p.next()) {
|
|
var r = q.value;
|
|
1 === r.nodeType && a.push(Ag(r, b.renderer));
|
|
}
|
|
} catch (x) {
|
|
var u = { error: x };
|
|
} finally {
|
|
try {
|
|
q && !q.done && (n = p.return) && n.call(p);
|
|
} finally {
|
|
if (u) throw u.error;
|
|
}
|
|
}
|
|
b.childNodes = a;
|
|
return b;
|
|
}
|
|
function $x(a, c, b) {
|
|
c.omit && ((c = Ga(c, c.omit)), delete c.omit);
|
|
for (var d in c) {
|
|
var e = c[d],
|
|
f = e;
|
|
if (e && e.isDef) e.updateAttr && (e = e.updateAttr(e, d, a)), (f = "url(#" + e.attr.id + ")");
|
|
else if (e instanceof tb) e.el ? ((f = e.el.id), lc(f) && ((f = Dd()), xl(e, "id", f)), (f = "url(#" + f + ")")) : (f = Nq(a, d));
|
|
else if ("transform" === d)
|
|
if (e) {
|
|
if (O(e)) throw Error("String transform is not support. val:" + e);
|
|
a.data.transform = e;
|
|
f = e.val;
|
|
} else a.data.transform = e;
|
|
f = lc(f) ? f : oh(f);
|
|
a.data.vals[d] = e;
|
|
xl(a, d, f, b);
|
|
}
|
|
a.refNodes.length &&
|
|
w(a.refNodes, function (b) {
|
|
return b.ownerAttrsChanged && b.ownerAttrsChanged(c);
|
|
});
|
|
}
|
|
function ay(a, c) {
|
|
if (t(c)) {
|
|
if (c) {
|
|
var b = G(ja(c) ? c : [c.x, c.y, c.width, c.height], 4);
|
|
b = qf(b[0], b[1], b[2], b[3]);
|
|
return (a.data.box = b);
|
|
}
|
|
delete a.data.box;
|
|
}
|
|
if (a.data.box) return a.data.box;
|
|
a = a.el;
|
|
if (!a) return qf();
|
|
c = a.nodeName.toLowerCase();
|
|
if ("svg" === c || "div" === c) return a.parentNode ? ((a = a.getBoundingClientRect()), qf(0, 0, a.width, a.height)) : qf(0, 0, 0, 0);
|
|
try {
|
|
return (b = a.getBBox()), qf(b.x, b.y, b.width, b.height);
|
|
} catch (d) {
|
|
return qf();
|
|
}
|
|
}
|
|
function qf(a, c, b, d) {
|
|
void 0 === a && (a = 0);
|
|
void 0 === c && (c = 0);
|
|
void 0 === b && (b = 0);
|
|
void 0 === d && (d = 0);
|
|
return { x: a, y: c, width: b, height: d };
|
|
}
|
|
function Oq(a, c, b) {
|
|
var d,
|
|
e = a.childNodes,
|
|
f = parseFloat(c.attr("z-index"));
|
|
b > a.zIndexMax
|
|
? (a.zIndexMax = b)
|
|
: ((d = a.zIndexHash[b])
|
|
? Lq(c, d, !0)
|
|
: (d = S(e, function (a) {
|
|
return (a.data.zIndex || 0) > b;
|
|
})) && zg(c, d, !0),
|
|
d && (a.zIndexMax = e[e.length - 1].data.zIndex));
|
|
f !== b && a.zIndexHash[f] === c && delete a.zIndexHash[f];
|
|
a.zIndexHash[b] = c;
|
|
d || Kq(a, c, !0);
|
|
}
|
|
function xl(a, c, b, d) {
|
|
var e = a.el,
|
|
f = a.data.attrs,
|
|
g = f[c];
|
|
Pq[c] === b && (b = null);
|
|
if (g != b) {
|
|
if ("z-index" === c) (e = parseFloat(b)), a.parentNode && Oq(a.parentNode, a, e);
|
|
else if ("text" === c) e.textContent = b;
|
|
else if ("value" === c) e.value = b;
|
|
else if ("innerHTML" === c) e.innerHTML = b;
|
|
else if (hi(e.tagName) && "type" === c) e.type = b;
|
|
else if (hi(e.tagName) && "accept" === c) e.accept = b;
|
|
else if (((a = b), null == a)) yl(e, c) ? e.style && (e.style[c] = "") : e.removeAttribute(c);
|
|
else if (yl(e, c)) e.style && (e.style[c] = a);
|
|
else {
|
|
var h = Qq(c);
|
|
h ? e.setAttributeNS(h, c, a) : e.setAttribute(c, a);
|
|
}
|
|
f[c] = b;
|
|
d && d(c, g, b);
|
|
}
|
|
}
|
|
function Rq(a, c) {
|
|
var b = L({}, a.data.attrs),
|
|
d = "path" === a.nodeName,
|
|
e = function (b, d) {
|
|
(c && J(c, b)) || xl(a, b, d);
|
|
};
|
|
Da(b, function (b) {
|
|
(!d || ("fill" !== b && "stroke" !== b)) && e(b, null);
|
|
});
|
|
d && (e("fill", "none"), e("stroke", "none"));
|
|
}
|
|
function Nq(a, c) {
|
|
var b = a.data.attrs,
|
|
d = a.el,
|
|
e = void 0;
|
|
if ("transform" === c) return L({}, a.data[c]) || null;
|
|
"path" !== a.nodeName || ("fill" !== c && "stroke" !== c) || (e = "none");
|
|
(a = b[c] || e || Pq[c]) ||
|
|
("text" === c ? (c = d.firstChild ? d.firstChild.nodeValue : "") : yl(d, c) ? ((d = d.style), (c = !d || ub(d[c]) ? null : d[c])) : (c = (a = Qq(c)) ? d.getAttributeNS(a, c) : d.getAttribute(c)), (a = c));
|
|
return a;
|
|
}
|
|
function Sq(a) {
|
|
return a && ((a.start && a.start.type) || (a.end && a.end.type));
|
|
}
|
|
function by(a) {
|
|
var c = a.caps || {};
|
|
c.lineWidth = z(c.lineWidth, a.lineWidth, a["stroke-width"]);
|
|
return { lineWidth: c.lineWidth, start: (c.start && c.start.type) || c.type ? Up(be(c, c.start || {}, Tq)) : {}, end: (c.end && c.end.type) || c.type ? Up(be(c, c.end || {}, Tq)) : {}, eachShape: c.eachShape };
|
|
}
|
|
function cy(a, c) {
|
|
var b = function (a, c) {
|
|
return 2 > c || !ab(a[c], a[c + 1]) ? c : b(a, c - 1);
|
|
},
|
|
d = function (b) {
|
|
b = b.shapes[0].items[1] || b.shapes[0].items[0];
|
|
return Ia(b[2], b[1]);
|
|
},
|
|
e = function (a) {
|
|
a = P(P(a.shapes).items);
|
|
var c = b(a, a.length - 2);
|
|
return Ia(a[c], a[c + 1]);
|
|
};
|
|
a = dy(a);
|
|
var f = a.length(),
|
|
g = function (b) {
|
|
return ii(b) ? z(b.centerWidth, 0) : 0;
|
|
},
|
|
h = function (b) {
|
|
return ii(b) ? z(b.centerWidth && b.width, 0) : 0;
|
|
},
|
|
k = h(c.start),
|
|
l = h(c.end);
|
|
h = g(c.start);
|
|
c = g(c.end);
|
|
var m = h / f,
|
|
n = c / f;
|
|
if ((g = m || n) && k + l > f) return null;
|
|
f = g ? Vw(a, h, c, { mode: "caps" }) : a;
|
|
var p = f.shapes[0].items[0][2],
|
|
q = P(P(P(f.shapes).items));
|
|
k = a.shapes[0].items[0][2];
|
|
l = P(P(P(a.shapes).items));
|
|
d = m && !ab(p, k) ? Ia(p, k) : d(f);
|
|
e = n && !ab(q, l) ? Ia(q, l) : e(f);
|
|
n = [p, q];
|
|
h && (n[0] = ra(k, d - 180, h));
|
|
c && (n[1] = ra(l, e - 180, c));
|
|
return { clipLen: [h, c], points: n, angles: [d, e], d: g ? f : a };
|
|
}
|
|
function dy(a) {
|
|
if (1 > a.shapes.length || (1 === a.shapes.length && 2 > a.shapes[0].items.length)) return a;
|
|
a: for (var c = [0, 0], b = 0; b < a.shapes.length; b++)
|
|
for (var d = a.shapes[b], e = 0 === b ? 1 : 0; e < d.items.length; e++) {
|
|
var f = d.items[e];
|
|
c = [b, e];
|
|
if (!ab(f[1], P(f))) break a;
|
|
}
|
|
b = a.shapes.length - 1;
|
|
a: for (; 0 <= b; b--)
|
|
for (d = a.shapes[b], e = d.items.length - 1; 0 <= e; e--) {
|
|
var g = [b, e];
|
|
f = d.items[e];
|
|
if (!ab(f[1], P(f))) break a;
|
|
}
|
|
b = [a.shapes[0].items[0]];
|
|
for (d = c[0]; d <= g[0]; d++) for (e = a.shapes[d], f = d == c[0] ? c[1] : 0; f <= (d == g[0] ? g[1] : e.items.length - 1); f++) b.push(e.items[f]);
|
|
return Ic(b);
|
|
}
|
|
function ey(a, c) {
|
|
var b,
|
|
d,
|
|
e = function (b, a) {
|
|
var c = a.cxy;
|
|
a = a.angle;
|
|
var d = b.concavity,
|
|
e = b.width,
|
|
f = b.height;
|
|
c = !0 === b.overflow ? c : ra(c, a, -e / 2);
|
|
c = mb(c, [e, f]);
|
|
d = { angle: a, concavity: d };
|
|
b = $p(b.type, c[0], c[1], c[2], c[3], d);
|
|
if (d.skipTransform) return b;
|
|
b = b.isPath ? b : Aa(b);
|
|
return b.rotate(a + 90);
|
|
},
|
|
f = a.start || {};
|
|
a = a.end || {};
|
|
ii(f) && (b = e(f, { cxy: c.points[0], angle: c.angles[0] }));
|
|
ii(a) && (d = e(a, { cxy: c.points[1], angle: c.angles[1] }));
|
|
return { start: b, end: d };
|
|
}
|
|
function ii(a) {
|
|
return a && a.type && "none" !== a.type;
|
|
}
|
|
function Uq(a) {
|
|
var c = {},
|
|
b = fy;
|
|
Da(a, function (d) {
|
|
if (J(b, d)) {
|
|
var e = b[d];
|
|
2 < e.length ? (c[e] = a[d]) : (c[e[0]] = e[1](a[d]));
|
|
} else c[d] = a[d];
|
|
});
|
|
return c;
|
|
}
|
|
function gy(a, c, b) {
|
|
a[c] = b;
|
|
}
|
|
function hy(a, c, b) {
|
|
return zl(a, c, b) && { updateGlobalCoordinates: !0 };
|
|
}
|
|
function iy(a, c, b) {
|
|
return zl(a, c, b) && { updateSharedAttrs: !0 };
|
|
}
|
|
function jy(a, c, b) {
|
|
return ji(a, c, parseFloat(b) || Infinity);
|
|
}
|
|
function ji(a, c, b) {
|
|
return zl(a, c, b) && { needRecalc: !0 };
|
|
}
|
|
function zl(a, c, b) {
|
|
if (!vc(a[c], b)) return (a[c] = b), !0;
|
|
}
|
|
function ky(a, c, b) {
|
|
b = "auto" === b || null === b || Ha(b) ? ld() : Qa(b, { isMutable: !1 });
|
|
return ji(a, ly[c], b);
|
|
}
|
|
function my(a, c, b) {
|
|
b = rf(b, a.width ? a.width.px : 0);
|
|
return ji(a, c, b);
|
|
}
|
|
function ny(a, c, b, d) {
|
|
var e = "string" === typeof a;
|
|
a = e ? [{ val: a }] : a;
|
|
for (var f = [], g = 0, h = a.length; g < h; g++) {
|
|
var k = a[g];
|
|
k.textVariants || (k.textVariants = oy(k.val, d.ignoreCategories));
|
|
var l = k.textVariants,
|
|
m = e ? c.personal : k,
|
|
n = e ? c.own : W(c.own, m),
|
|
p = [];
|
|
k = function (a, f) {
|
|
var h = l[a].completeString;
|
|
d.preserveStartSpaces || 0 !== g || (h = h.replace(Hd.startSpaces, ""));
|
|
d.preserveSpaces || (h = h.replace(Hd.spaces, " "));
|
|
a = py(n, e ? c.parent : c.own, b);
|
|
h = Xv(h, a, b);
|
|
if (1 === f && t(a.width)) {
|
|
var k;
|
|
if ((k = parseFloat(a.width)))
|
|
delete a.width,
|
|
w(h.parts, function (b) {
|
|
b.text && ((b.width = k), (k = 0));
|
|
});
|
|
}
|
|
h.style = e ? c.personal : W(c.personal, m);
|
|
p.push(h);
|
|
};
|
|
for (var q = 0, r = l.length; q < r; q++) k(q, r);
|
|
f.push(p);
|
|
}
|
|
return f;
|
|
}
|
|
function oy(a, c) {
|
|
if (-1 < a.indexOf("&ors;")) {
|
|
var b = [{ completeString: "", variantsUsed: [] }],
|
|
d = [],
|
|
e = {},
|
|
f = [],
|
|
g = qy(a).split(Hd.variants);
|
|
a = [];
|
|
for (var h = 0, k = g.length; h < k; h++) h % 2 ? a.push(g[h]) : (a = a.concat(g[h].split(Hd.space)));
|
|
h = 0;
|
|
for (k = a.length; h < k; h++)
|
|
if ((g = a[h])) {
|
|
g = g.split(Vq.orc);
|
|
var l = g[1];
|
|
l = l ? l.split(":") : [];
|
|
g = g[0].split(Vq.or);
|
|
f.push(1 < g.length && !c ? { versions: g, category: { variantsNumber: g.length, name: l[0] || "", priority: l[1] || 0 } } : g[0]);
|
|
}
|
|
a = 0;
|
|
for (h = f.length; a < h; a++)
|
|
if (((k = f[a]), (g = k.versions))) {
|
|
k = k.category;
|
|
l = e[k.name];
|
|
var m = 1;
|
|
l || ((l = b.length), k.name && !c && (e[k.name] = l), (m = g.length));
|
|
for (var n = [], p = 0; p < m; p++) n = n.concat(ry(b));
|
|
b = n;
|
|
for (m = 0; m < b.length; m++) (n = Math.floor(m / l) % g.length), (b[m].completeString += g[n]), b[m].variantsUsed.push(n);
|
|
d.push(k.priority);
|
|
} else for (g = 0, l = b.length; g < l; g++) b[g].completeString += k;
|
|
return sy(b, d);
|
|
}
|
|
return [{ completeString: a, variantsUsed: [] }];
|
|
}
|
|
function Wq(a) {
|
|
for (var c = [], b = 0, d = a.length; b < d; b++) {
|
|
var e = a[b];
|
|
e && void 0 != e.length ? c.push(Wq(e)) : c.push(L({}, e));
|
|
}
|
|
return c;
|
|
}
|
|
function qy(a) {
|
|
var c = new String(a);
|
|
-1 < a.indexOf("&ors;") &&
|
|
Da(Xq, function (b) {
|
|
var a = Xq[b],
|
|
e = parseInt(b);
|
|
Hd["char_" + b] || (Hd["char_" + b] = new RegExp("&#" + b + ";?" + (a ? "|&" + a + ";?" : ""), "ig"));
|
|
c = c.replace(Hd["char_" + b], String.fromCharCode(e));
|
|
});
|
|
return c;
|
|
}
|
|
function sy(a, c) {
|
|
for (var b = [], d = 0, e = c.length; d < e; d++) {
|
|
var f = c[d];
|
|
f && (b[parseInt(f) - 1] = d);
|
|
}
|
|
c = function () {
|
|
var c = b[g];
|
|
a.sort(function (b, a) {
|
|
return b.variantsUsed[c] > a.variantsUsed[c];
|
|
});
|
|
};
|
|
var g = 0;
|
|
for (d = b.length; g < d; g++) c();
|
|
return a;
|
|
}
|
|
function ry(a) {
|
|
for (var c = [], b = 0, d = a.length; b < d; b++) {
|
|
var e = a[b];
|
|
c.push({ completeString: e.completeString, variantsUsed: e.variantsUsed.slice() });
|
|
}
|
|
return c;
|
|
}
|
|
function py(a, c, b) {
|
|
c = c.fontSize;
|
|
var d = b.fontSize;
|
|
b = a.fontSize || c;
|
|
if ("number" == typeof b) c = b;
|
|
else {
|
|
if (Hd.fontSize.test(b) && (d = parseFloat(b)))
|
|
switch (b.replace(d, "")) {
|
|
case "em":
|
|
if (!c) {
|
|
d = 0;
|
|
break;
|
|
}
|
|
d *= parseFloat(c);
|
|
break;
|
|
case "pt":
|
|
d = (4 * d) / 3;
|
|
}
|
|
c = d;
|
|
}
|
|
a.fontSize = c;
|
|
a.fontFamily = a.fontFamily;
|
|
return a;
|
|
}
|
|
function ty(a) {
|
|
a = a.split("|");
|
|
var c = ["left", "center", "right"],
|
|
b = ["top", "middle", "bottom"],
|
|
d = {};
|
|
w(a, function (a) {
|
|
c[a] && (d.x = a);
|
|
b[a] && (d.y = a);
|
|
});
|
|
return d;
|
|
}
|
|
function uy(a) {
|
|
if (!a || a.push) return a;
|
|
switch (I(a)) {
|
|
case "number":
|
|
return [a];
|
|
case "string":
|
|
return Oj(a);
|
|
}
|
|
return a;
|
|
}
|
|
function vy(a, c) {
|
|
var b = a.length - 1;
|
|
if (c < a[b].minSize.width.px) return a[b];
|
|
if (c > a[0].minSize.width.px) return a[0];
|
|
for (var d = 0; d <= b; ) {
|
|
var e = Math.floor((d + b) / 2);
|
|
if (c > a[e].minSize.width.px) b = e - 1;
|
|
else if (c < a[e].minSize.width.px) d = e + 1;
|
|
else return a[e].minSize.width.px;
|
|
}
|
|
return a[d];
|
|
}
|
|
function Yq(a, c, b) {
|
|
var d = O(a),
|
|
e = d ? ba.getElementById(a) : a;
|
|
a = d ? a : a.getAttribute && a.getAttribute("id");
|
|
d = b && b.preserve;
|
|
var f = !a || !ki[a];
|
|
if (f || !d) var g = new Al({ container: e, staticSize: !0, skipDomDestroy: !d });
|
|
f ? ((e = g.textStack(c)), e.attr(L(Zq, b)), e.add().refresh(), a && d && (ki[a] = e)) : ((e = ki[a]), e.attr(L(Zq, b)).val(c).refresh());
|
|
c = e.setPreliminarySize().getBbox();
|
|
b = e.renderer.root.el;
|
|
b.setAttribute("width", c.width + 1);
|
|
b.setAttribute("height", c.height + 1);
|
|
d || (e.destroy(), g.destroyChildren(), g.destroy(), a && delete ki[a]);
|
|
return b;
|
|
}
|
|
function $q(a) {
|
|
if (a.type) {
|
|
var c = G(a.type.split(":"), 2),
|
|
b = c[1];
|
|
a.type = c[0];
|
|
a.subType = b;
|
|
} else a.type = "panel";
|
|
}
|
|
function sf(a, c, b) {
|
|
li = li || {};
|
|
var d = c.split(",");
|
|
c = a + c + b;
|
|
var e, f;
|
|
if ((e = li[c])) return e;
|
|
var g = 0;
|
|
for (f = d.length; g < f; g++) {
|
|
var h = void 0;
|
|
e = a;
|
|
var k = Gd(d[g]).replace("enum_", ""),
|
|
l = !1,
|
|
m = { sequence: [], explicit: [] };
|
|
m.setting = e;
|
|
for (e = e.toLowerCase(); !l; ) {
|
|
var n = void 0;
|
|
h = void 0;
|
|
var p,
|
|
q = void 0,
|
|
r = void 0,
|
|
u = void 0,
|
|
x = e,
|
|
v = ke(k),
|
|
y = pa(v.members);
|
|
x = Gd(x);
|
|
var D = 0;
|
|
for (p = y.length; D < p; D++)
|
|
if (0 !== x.indexOf(y[D].toLowerCase()) || (x.length !== y[D].length && !v.members[y[D]].chain))
|
|
0 !== x.indexOf(y[D].toLowerCase()) || x.length === y[D].length || v.members[y[D]].chain ? v.members[y[D]].isDefault && (r = y[D]) : (n = y[D]);
|
|
else {
|
|
q = y[D];
|
|
break;
|
|
}
|
|
!q && n && (q = n);
|
|
q ? (u = !0) : ((q = r), (h = !0));
|
|
q
|
|
? ((n = 0 === x.indexOf(q.toLowerCase()) ? x.replace(q.toLowerCase(), "") : x), (h = { match: q, isDefault: h, explicit: u, chain: v.members[q].chain, value: n, attributes: v.members[q].enumAttributes }))
|
|
: (h = { invalid: x });
|
|
if (t(h.invalid)) (h.value = h.invalid), (l = !0);
|
|
else {
|
|
if (!h.isDefault || !b) if (((m[k] = h.match), m.sequence.push(k), h.attributes)) for (var E in h.attributes) m[E] = h.attributes[E];
|
|
h.explicit && m.explicit.push(k);
|
|
k = h.chain;
|
|
e = h.value;
|
|
k || 0 !== e.length ? (k ? (k = k.replace("enum_", "")) : k || (l = !0)) : (l = !0);
|
|
}
|
|
}
|
|
m.sequence = m.sequence.join(",");
|
|
m.explicit = m.explicit.join(",");
|
|
0 < h.value.length && (m.invalid = h.value);
|
|
e = m;
|
|
if (!e.invalid) break;
|
|
}
|
|
return (li[c] = e);
|
|
}
|
|
function wy(a, c) {
|
|
var b = I(c);
|
|
switch (a) {
|
|
case "palette":
|
|
if ("array" !== b && "object" !== b) return Fh(c);
|
|
}
|
|
return c;
|
|
}
|
|
function Bl(a, c) {
|
|
c = Ac(c).slice(0);
|
|
c.unshift(c.pop());
|
|
a = Yb(a);
|
|
a[0] += c[0];
|
|
a[1] += c[1];
|
|
a[2] -= c[2];
|
|
a[3] -= c[3];
|
|
return Ze(a);
|
|
}
|
|
function Bb(a, c) {
|
|
var b = {},
|
|
d = z(a.visible, !0),
|
|
e = z(a.width, 1),
|
|
f = z(a.opacity, 1) * z(c, 1),
|
|
g = Dh(a.color || "black");
|
|
c = z(a.caps, "butt");
|
|
f *= g.opacity;
|
|
d && !Q(a.color) ? ((b.stroke = g.hex), (b["stroke-opacity"] = f)) : ((b.stroke = "none"), (e = 0));
|
|
if (!Q((d = a.dashStyle))) {
|
|
a = e;
|
|
d = d.toLowerCase();
|
|
if ((d = xy[d].split(","))) {
|
|
f = 0;
|
|
for (g = d.length; f < g; f++) d[f] *= a;
|
|
a = d.join(",");
|
|
} else a = "none";
|
|
b["stroke-dasharray"] = a;
|
|
}
|
|
b.fill = "none";
|
|
b["stroke-width"] = e;
|
|
b["stroke-linejoin"] = "round";
|
|
O(c) ? (b["stroke-linecap"] = c) : (b.caps = c);
|
|
return b;
|
|
}
|
|
function mi(a) {
|
|
0 === a["stroke-width"] && (delete a["stroke-linejoin"], delete a["stroke-linecap"], delete a.stroke, delete a["stroke-opacity"]);
|
|
return a;
|
|
}
|
|
function fc(a, c) {
|
|
var b = {},
|
|
d;
|
|
c = z(a.opacity, 1) * z(c, 1);
|
|
Q((d = a.outline)) || (b = Bb(d, c));
|
|
Q((d = a.fill || a.color)) || ni(b, d, c);
|
|
b["fill-rule"] = "evenodd";
|
|
ar(b, a.hatch, b.stroke || "rgb(50,50,50)");
|
|
!1 === a.visible && (b.opacity = 0);
|
|
Q((d = a.d || a.path)) || (b.d = d);
|
|
Q((d = a.size)) ? Q((d = a.radius)) || (b.r = d) : (b.r = (parseInt(d) || 0) / 2);
|
|
return b;
|
|
}
|
|
function Bg(a, c, b) {
|
|
var d,
|
|
e = z(a.opacity, 1) * z(c, 1),
|
|
f = {},
|
|
g = {},
|
|
h = {},
|
|
k = {};
|
|
!1 === a.boxVisible
|
|
? ((f.fill = !1 === a.boxPointerEvents ? "transparent" : "none"), (f.stroke = "none"), (f.shadow = !1))
|
|
: (Q((d = a.outline)) || ((c = Bb(d, e)), A(f, c), A(h, c)), Q((d = a.fill)) || ni([k, f], d, e, b), kb(a, f, "radius", "r", void 0), kb(a, f, "shadow", void 0, void 0));
|
|
kb(a, g, "margin", "margin", Ac);
|
|
kb(a, g, "padding", "padding", Ac);
|
|
kb(a, g, "width", void 0, void 0);
|
|
kb(a, g, "height", void 0, void 0);
|
|
Q((d = a.height)) ? (g.height = void 0) : (g.height = d);
|
|
Q((d = a.style)) || A(g, d);
|
|
kb(a, g, "zIndex", void 0, void 0);
|
|
return { bg: f, root: g, stroke: h, fill: k };
|
|
}
|
|
function br(a) {
|
|
var c = a.animation,
|
|
b = C(a, "label.style"),
|
|
d = C(a, "label.align"),
|
|
e = a.outline,
|
|
f = function (b, c, d) {
|
|
kb(a, h, b, c, d);
|
|
},
|
|
g = function (b) {
|
|
return b + "px";
|
|
},
|
|
h = { position: "absolute", whiteSpace: "nowrap" };
|
|
f("radius", "radius", g);
|
|
f("padding", "padding", g);
|
|
f("fill", "background");
|
|
f("offsetX", "left", g);
|
|
f("offsetY", "top", g);
|
|
f("width", "width", g);
|
|
f("height", "height", g);
|
|
f("radius", "borderRadius", g);
|
|
f("text-align", "text-align");
|
|
f("background-color", "background-color");
|
|
f("border", "border");
|
|
f("click", "onclick");
|
|
f("visibility", "visibility");
|
|
f("left", "left");
|
|
f("top", "top");
|
|
f("zIndex", "zIndex");
|
|
d && (h.textAlign = d);
|
|
t(b) && (kb(b, h, "color", "color"), kb(b, h, "fontSize", "fontSize"), kb(b, h, "fontFamily", "fontFamily"), kb(b, h, "fontWeight", "fontWeight"), kb(b, h, "textDecoration", "textDecoration"), kb(b, h, "fontStyle", "fontStyle"));
|
|
t(e) && (h.border = e.color + " solid " + e.width + "px");
|
|
t(c) && ((h.transitionProperty = c ? "left, top" : null), (h.transitionDuration = c ? (c.duration || 0) / 1e3 + "s" : null), (h.transitionTimingFunction = c ? c.easing : null));
|
|
!1 === a.boxVisible && ((h.background = "none"), (h.border = "none"));
|
|
return h;
|
|
}
|
|
function Cg(a, c) {
|
|
var b = Bg(a, void 0, c);
|
|
b = A(b.bg, b.root);
|
|
var d,
|
|
e = [];
|
|
if (Q((d = a.corners)))
|
|
Q((d = a.radius)) ||
|
|
(ob(4, function () {
|
|
e.push({ type: "round", r: d });
|
|
}),
|
|
(f = { corners: e }));
|
|
else var f = { corners: yy(d, a) };
|
|
b.shape = L(a.shape || {}, f);
|
|
"titleBox" === c &&
|
|
b.shape &&
|
|
w(b.shape.corners, function (b, a) {
|
|
1 < a && (b.type = "square");
|
|
});
|
|
return b;
|
|
}
|
|
function yy(a, c) {
|
|
var b = a,
|
|
d = [];
|
|
switch (I(a)) {
|
|
case "string":
|
|
ob(4, function () {
|
|
d.push({ type: b, r: c.radius });
|
|
});
|
|
break;
|
|
case "array":
|
|
if (4 !== b.length) for (b = b.slice(0); 4 > b.length; ) b.push("round");
|
|
d = B(b, function (b) {
|
|
return { type: b, r: c.radius };
|
|
});
|
|
break;
|
|
case "object":
|
|
d = [
|
|
{ type: b.topleft || "round", r: c.radius || 3 },
|
|
{ type: b.topright || "round", r: c.radius || 3 },
|
|
{ type: b.bottomright || "round", r: c.radius || 3 },
|
|
{ type: b.bottomleft || "round", r: c.radius || 3 },
|
|
];
|
|
}
|
|
return d;
|
|
}
|
|
function qc(a, c, b) {
|
|
var d,
|
|
e = {};
|
|
a = c ? Ga(a, c) : a;
|
|
c = function (b, c, d) {
|
|
kb(a, e, b, c, d);
|
|
};
|
|
var f;
|
|
Q((d = a.color)) ? Q((d = N(a, ["style", "color"]))) || (f = d) : (f = d);
|
|
f && (e.fill = ia(f, (b && b.color) || f));
|
|
c("margin", "margin", Ac);
|
|
c("padding", "padding", Ac);
|
|
c("visible", "display", function (b) {
|
|
return b ? "block" : "none";
|
|
});
|
|
c("align", "xAlignment");
|
|
c("align", "xContentAlignment");
|
|
c("verticalAlign", "yAlignment", function (b) {
|
|
return b.replace("middle", "center");
|
|
});
|
|
c("cssClass", "className");
|
|
c("rotate", "rotate");
|
|
c("width");
|
|
c("height");
|
|
c("textOverflow");
|
|
c("maxWidth");
|
|
c("strategy");
|
|
c("autoWrap");
|
|
c("opacity");
|
|
!Q((d = a.offset)) && (d = cr(d)) && ((e.offsetX = d[0]), (e.offsetY = d[1]));
|
|
Q((d = a.outline)) || Sc(e, Bb(d), { fill: !0 });
|
|
Q((d = a.style)) || A(e, d);
|
|
return e;
|
|
}
|
|
function cr(a) {
|
|
var c = I(a);
|
|
if ("string" === c) {
|
|
if (((a = a.split(",")), 2 === a.length)) return [parseInt(a[0]), parseInt(a[1])];
|
|
} else {
|
|
if ("number" === c) return [a, a];
|
|
if ("array" === c) return a;
|
|
}
|
|
}
|
|
function ar(a, c, b) {
|
|
c && (kb(c, a, "style", "hatchPattern"), b && (c = A({ color: ia("contrast", b) }, c)), kb(c, a, "color", "hatch", Lb), "none" === a.hatchPattern && (delete a.hatchPattern, delete a.hatch, (a.stroke = "none")));
|
|
return a;
|
|
}
|
|
function ni(a, c, b, d) {
|
|
void 0 === b && (b = 1);
|
|
var e = I(c);
|
|
if ("undefined" !== e) {
|
|
if ("object" !== e)
|
|
if ("none" !== c) {
|
|
var f = Eh(oc(c), b);
|
|
d && "string" === typeof f && (f = dd(d, f));
|
|
} else f = "transparent";
|
|
else f = oc(c, 1 - b);
|
|
a.pop
|
|
? w(a, function (b) {
|
|
return (b.fill = f);
|
|
})
|
|
: (a.fill = f);
|
|
}
|
|
}
|
|
function tf(a) {
|
|
var c = "none" !== a.color,
|
|
b;
|
|
if ((b = !1 === a.visible)) (b = a && a.caps), (b = !(b && (b.end || b.start || b.type)));
|
|
var d = 0 !== a.width;
|
|
return (b && !a.color) || !d ? !1 : c;
|
|
}
|
|
function dr(a) {
|
|
var c = a.outline;
|
|
return (a.fill && "none" !== a.fill) || (c && "none" !== c && 0 !== c.width);
|
|
}
|
|
function Id(a) {
|
|
var c = 0 !== N(a, ["text", "length"]);
|
|
return !1 === a.visible ? !1 : !!c;
|
|
}
|
|
function Dg(a, c, b, d) {
|
|
void 0 === d && (d = {});
|
|
var e,
|
|
f = (d.minIntervalGap = z(d.minIntervalGap, 0.3)),
|
|
g = d.axOptions || {},
|
|
h = g.scale || {};
|
|
if (b.length) {
|
|
var k = b[0];
|
|
b = b[1];
|
|
}
|
|
var l = h.type && 0 === h.type.toLowerCase().indexOf("log");
|
|
h = h.logBase || 10;
|
|
var m = { interval: 0, min: 0, max: 0, range: 0 },
|
|
n = oi(d.userMax) ? d.userMax : d.snapZero && 0 > c ? 0 : c,
|
|
p = oi(d.userMin) ? d.userMin : d.snapZero && 0 <= a ? 0 : a,
|
|
q = Xf([n, p]),
|
|
r = Math.abs(n - p);
|
|
if ((e = d.breaks)) (r = rv([[p, n]], e)), (r = eo(r));
|
|
m.range = r = na(r, q);
|
|
(q = d.minInterval || (k && r / k)) && (q.unit || O(q)) && ((q = Nh(q.unit ? q : { unit: q })), (q = q.count * q.unitRange));
|
|
k = er(r, zy, q, b).best.interval;
|
|
"auto" === d.userMinorInterval && ((q = Id(C(g, "defaultMinorTick.label"))), (g = tf(C(g, "defaultMinorTick.gridLine"))), (m.minorInterval = C(er(k, Ay, d.minInterval, q || g ? 2 : b), "best.interval")));
|
|
q = Xf([a, c, r, k]);
|
|
e = Math.log(Math.abs(c)) / Math.log(h);
|
|
b = Math.log(Math.abs(a)) / Math.log(h);
|
|
g = function (b) {
|
|
var a = Math.floor(b);
|
|
return b - a < f ? a - 1 : a;
|
|
};
|
|
r = function (b) {
|
|
var a = Math.ceil(b);
|
|
return a - b < f ? a + 1 : a;
|
|
};
|
|
e = 0 > c ? g(e) : r(e);
|
|
b = 0 > a ? r(b) : g(b);
|
|
oi(d.userMax)
|
|
? (d.userMax < a && (m.error = fr.badMax), (m.max = d.userMax))
|
|
: l
|
|
? (m.max = Math.pow(h, e) * ce(c))
|
|
: d.snapZero && 0 >= c
|
|
? (m.max = 0)
|
|
: ((m.max = Math.ceil(c / k) * k), 0 !== m.max && c > m.max - k * f && (m.max += k));
|
|
oi(d.userMin)
|
|
? (d.userMin > c && (m.error = fr.badMin), (m.min = d.userMin))
|
|
: l
|
|
? (m.min = Math.pow(h, b) * ce(a))
|
|
: d.snapZero && 0 <= a
|
|
? (m.min = 0)
|
|
: ((m.min = Math.floor(a / k) * k), 0 !== m.min && a < m.min + k * f && (m.min -= k));
|
|
l ? (m.log = [b, e]) : ((m.min = na(m.min, q)), (m.max = na(m.max, q)));
|
|
m.range = m.max - m.min;
|
|
m.interval = k;
|
|
return m;
|
|
}
|
|
function er(a, c, b, d) {
|
|
var e = -1,
|
|
f = [],
|
|
g = Math.pow(10, Math.floor(Math.log(a) / Math.LN10)),
|
|
h,
|
|
k = 0;
|
|
for (h = c.length; k < h; k++) {
|
|
var l = g / c[k],
|
|
m = a / l + 1;
|
|
f[k] = { interval: l, tickCount: m };
|
|
m = m < d;
|
|
l = Q(b) || l >= b;
|
|
var n = k === h - 1;
|
|
if (-1 === e && ((m && l) || n)) {
|
|
e = k;
|
|
break;
|
|
}
|
|
}
|
|
return { prev: 0 < e ? f[e - 1] : void 0, best: f[e], next: e < h - 1 ? f[e - 1] : void 0 };
|
|
}
|
|
function By(a) {
|
|
function c(b) {
|
|
return 0 < b.length ? b[0] : "!@!@!";
|
|
}
|
|
function b(b, a) {
|
|
return b[a] ? b[a] : 0;
|
|
}
|
|
function d(b) {
|
|
for (var a = 0; a < f; a++) e[a].propNames[0] === b && e[a].propNames.shift();
|
|
}
|
|
var e = [],
|
|
f = a.length,
|
|
g = !1,
|
|
h = "!@!@!",
|
|
k = 0,
|
|
l = "",
|
|
m = [],
|
|
n,
|
|
p = !1;
|
|
for (
|
|
(function () {
|
|
for (var b = 0; b < f; b++) {
|
|
var c = { propNames: [], nCounts: {} },
|
|
d = a[b],
|
|
g = d.length;
|
|
g > k && (k = g);
|
|
for (var h = 0; h < g; h++) c.propNames.push(d[h]), c.nCounts[d[h]] ? c.nCounts[d[h]]++ : (c.nCounts[d[h]] = 1);
|
|
e.push(c);
|
|
}
|
|
})();
|
|
!g;
|
|
|
|
) {
|
|
h = "!@!@!";
|
|
for (n = 0; n < f; n++) (l = c(e[n].propNames)), "!@!@!" === h ? (h = l) : h !== l && 0 < b(e[n].nCounts, h) && (h = l);
|
|
if ("!@!@!" === h || m.length >= k * f) g = !0;
|
|
else if (m.length >= k) {
|
|
p = !0;
|
|
for (n = 0; n < f; n++)
|
|
if (((l = c(e[n].propNames)), "!@!@!" !== h)) {
|
|
p = !1;
|
|
break;
|
|
}
|
|
g = p;
|
|
}
|
|
g || (m.push(h), d(h));
|
|
}
|
|
return m;
|
|
}
|
|
function Jd(a, c, b, d) {
|
|
return Cl.abs(((a - c[d]) / (c[b] - c[d])) * 100);
|
|
}
|
|
function rc(a, c, b) {
|
|
c = c[b];
|
|
return a && c ? Cl.abs((a / c) * 100) : 0;
|
|
}
|
|
function Eg(a) {
|
|
return J(a, "ye") && !J(a, "y");
|
|
}
|
|
function Fg(a) {
|
|
return Eg(a) ? la(a.ye, a.ys) : a.y;
|
|
}
|
|
function Dl(a, c) {
|
|
var b = "y" === c,
|
|
d = a.pOptions,
|
|
e = a.scCache,
|
|
f = a.yVal,
|
|
g;
|
|
if ((g = a.series[c + "Axis"]) && a.chart.chartItemManager.exists(g.id))
|
|
return (a = t(g.min) ? g.range : Dg(e[b ? "min" : c + "Min"], e[b ? "max" : c + "Max"], 10)), Cl.abs((((b ? d[f] - (d.low || 0) : d[c]) - a.min) / (a.max - a.min)) * 100);
|
|
}
|
|
function pi(a, c) {
|
|
var b = "y" === c;
|
|
return rc(b ? Fg(a.indexedData) : a.pOptions[c], a.cache, b ? "yRangeSumAbs" : c + "SumAbs");
|
|
}
|
|
function qi(a, c) {
|
|
var b = "y" === c,
|
|
d = b ? "yRangeSumAbs" : c + "SumAbs";
|
|
return rc(a.pOptions ? (b ? Fg(a.indexedData) : a.pOptions[c]) : a.cache[d], a.scCache, d);
|
|
}
|
|
function ri(a, c) {
|
|
var b = "y" === c,
|
|
d = b ? "yRangeSumAbs" : c + "SumAbs",
|
|
e = a.pgCache;
|
|
return e[d] ? rc(b ? Fg(a.indexedData) : a.pOptions[c], e, d) : a.pOptions[c] ? 100 : 0;
|
|
}
|
|
function si(a, c) {
|
|
var b = "y" === c,
|
|
d = a.pOptions[b ? a.yVal : c];
|
|
return t(d) ? mv(d, a.cache[b ? "averList" : c + "AverList"]) : 0;
|
|
}
|
|
function gr(a) {
|
|
var c = a.pOptions.y;
|
|
return t(c) && "string" === typeof c && !a.fOptions.yIsTime ? c : Eg(a.indexedData) ? a.indexedData.ye : a.indexedData.y;
|
|
}
|
|
function El(a, c) {
|
|
return (a.val.pop ? a.val[1] - a.val[0] : 0) / c;
|
|
}
|
|
function Cy(a) {
|
|
var c = a.indexer;
|
|
c.reset();
|
|
a.chart.series().each(function (b) {
|
|
var c = b.getCalcCache();
|
|
a.indexer.indexObject(c, b._i);
|
|
});
|
|
var b = Math.abs,
|
|
d = function (b) {
|
|
return Tc(Pb(c, "concat")(b));
|
|
},
|
|
e = Pb(c, "getItem"),
|
|
f = Pb(c, "min_i"),
|
|
g = Pb(c, "max_i"),
|
|
h = Pb(c, "min"),
|
|
k = Pb(c, "max"),
|
|
l = Pb(c, "sum"),
|
|
m = d("list"),
|
|
n = d("average"),
|
|
p = d("xList");
|
|
d = d("zList");
|
|
var q = e(f("min")),
|
|
r = e(g("max")),
|
|
u = e(f("xMin")),
|
|
x = e(g("xMax"));
|
|
f = e(f("zMin"));
|
|
e = e(g("zMax"));
|
|
g = c.getKey("type");
|
|
var v = k("zMax"),
|
|
y = h("zMin"),
|
|
D = {
|
|
list: m,
|
|
typeList: g,
|
|
type: g[0],
|
|
sumList: c.getKey("sum"),
|
|
max: k("max"),
|
|
min: h("min"),
|
|
sum: l("sum"),
|
|
average: n.length ? l("average") / n.length : n,
|
|
range: m.length ? k("max") - h("min") : void 0,
|
|
zList: d,
|
|
xList: p,
|
|
zSumList: c.getKey("zSum"),
|
|
xSumList: c.getKey("xSum"),
|
|
zMax: v,
|
|
zMin: y,
|
|
zAbsmax: Math.max(b(v), b(y)),
|
|
xMax: k("xMax"),
|
|
xMin: h("xMin"),
|
|
zSum: l("zSum"),
|
|
xSum: l("xSum"),
|
|
sumAbs: l("sumAbs"),
|
|
zSumAbs: l("zSumAbs"),
|
|
xSumAbs: l("xSumAbs"),
|
|
zAverage: d.length ? l("zSum") / m.length : void 0,
|
|
xAverage: p.length ? l("xSum") / m.length : void 0,
|
|
zRange: d.length ? k("zMax") - h("zMin") : void 0,
|
|
yRangeSum: l("yRangeSum"),
|
|
yRangeSumAbs: l("yRangeSumAbs"),
|
|
nMin: q.nMin,
|
|
nMax: r.nMax,
|
|
nZMax: e.nZMax,
|
|
nZMin: f.nZMin,
|
|
nXMax: x.nXMax,
|
|
nXMin: u.nXMin,
|
|
snMax: r.name,
|
|
snMin: q.name,
|
|
snZMax: e.name,
|
|
snZMin: f.name,
|
|
snXMax: x.name,
|
|
snXMin: u.name,
|
|
},
|
|
E = { Min: h, Max: k };
|
|
Ib("Sum,Average", function (b) {
|
|
Ib("Min,Max", function (a) {
|
|
Ib("y,x,z", function (c) {
|
|
var d = "y" === c;
|
|
D[(d ? Se(a) : c + a) + b] = E[a](d ? Se(b) : c + b);
|
|
});
|
|
});
|
|
});
|
|
return D;
|
|
}
|
|
function Dy(a) {
|
|
var c = a[0],
|
|
b = function (b) {
|
|
return a.map(function (a) {
|
|
return a.tokenValue(b);
|
|
});
|
|
},
|
|
d = b("%yValue"),
|
|
e = Math.min.apply(Math, H(d)),
|
|
f = Math.max.apply(Math, H(d)),
|
|
g = Ta(d),
|
|
h = a.length;
|
|
d = d.join(",");
|
|
return {
|
|
xvalue: c.replaceTokens("%xValue"),
|
|
ysum: g,
|
|
sum: g,
|
|
ylist: d,
|
|
ymin: e,
|
|
min: e,
|
|
ymax: f,
|
|
count: h,
|
|
pointcount: h,
|
|
max: f,
|
|
colors: b("%color")
|
|
.map(function (b) {
|
|
return Dh(b).hex;
|
|
})
|
|
.join(","),
|
|
};
|
|
}
|
|
function Ey(a, c, b) {
|
|
void 0 === b && (b = "x");
|
|
var d = a.chartArea.chartAreaSet.series(),
|
|
e = a.indexer.getValue(b, c._i),
|
|
f = new Fl(),
|
|
g = 0;
|
|
w(d, function (a) {
|
|
var c = a.indexer.findValue_i(b, e);
|
|
a = a.indexer.getItem(c);
|
|
f.indexObject(a, g);
|
|
g++;
|
|
});
|
|
a = f.getKey("y");
|
|
c = f.getKey("z");
|
|
d = f.hasKey("yr") ? "yr" : "y";
|
|
var h = Pb(f, "sum"),
|
|
k = Pb(f, "sumAbs");
|
|
return {
|
|
list: a,
|
|
sum: h("y"),
|
|
sumAbs: k("y"),
|
|
yRangeSum: h(d),
|
|
yRangeSumAbs: k(d),
|
|
zList: c,
|
|
zSum: h("z"),
|
|
xSum: h("x"),
|
|
zSumAbs: k("z"),
|
|
xSumAbs: k("x"),
|
|
average: a.length ? h("y") / a.length : void 0,
|
|
zAverage: c.length ? h("z") / c.length : void 0,
|
|
};
|
|
}
|
|
function hr(a, c, b) {
|
|
var d = b.atribs;
|
|
if (d)
|
|
if ("function" === typeof d.pop)
|
|
for (var e = 0, f = d.length; e < f; e++) {
|
|
if (a === d[e][0].toLowerCase()) return ti(d[e][1]);
|
|
}
|
|
else {
|
|
f = e = void 0;
|
|
for (
|
|
var g = a.split("."),
|
|
h = function (b, a) {
|
|
for (var c = pa(b), d = 0, e = c.length; d < e; d++) {
|
|
var f = c[d];
|
|
if (a === f.toLowerCase()) return b[f];
|
|
}
|
|
},
|
|
k = void 0;
|
|
(f = g.shift()) && t((k = h(e || d, f)));
|
|
|
|
)
|
|
e = k;
|
|
if (t(e)) return ti(e);
|
|
}
|
|
a = c[a];
|
|
if (!a) return "INVALID TOKEN";
|
|
c = a.val ? a.val(b) : a(b);
|
|
c !== c && (c = 0);
|
|
if (!t(c)) return "-";
|
|
C(b.fOptions, "y.isTime") && a.yVal && (c = new Date(c));
|
|
return ti(c);
|
|
}
|
|
function Fy(a, c, b) {
|
|
var d = b.fOptions || {},
|
|
e = "," + a + ",",
|
|
f = { fStr: d.fStr, culture: d.culture, isTime: d.isTime };
|
|
return -1 < ",min,max,average,rangesum,lasty,sum,median,mode,value,ysum,yaverage,ymedian,ymode,ymin,ymax,ymaxsum,maxsum,yminsum,minsum,yrangesum,yvalue,ystart,yrange,open,high,low,close,".indexOf(e)
|
|
? d.y || f
|
|
: -1 < ",xvalue,xsum,xmin,xmax,xmaxsum,xminsum,xaverage,lastx,xrange,lastx,xmode,xmedian".indexOf(e)
|
|
? d.x || f
|
|
: -1 < ",complete,".indexOf(e)
|
|
? { fStr: "p", culture: d.y.culture }
|
|
: -1 < ",zvalue,zsum,zmin,zmax,zmaxsum,zminsum,zaverage,lastz,zrange,zmode,zmedian,".indexOf(e)
|
|
? d.z || f
|
|
: (a = c[a]) && a.axis
|
|
? { fStr: a.fStr || "n", culture: d[a.axis] ? d[a.axis].culture : b.chart ? b.chart.currentOptions.defaultCultureName : "en-US" }
|
|
: b.gOptions
|
|
? { culture: b.gOptions.cultureName }
|
|
: f;
|
|
}
|
|
function uf(a) {
|
|
a = a.token || a.attr || a;
|
|
return { text: a, result: a && 0 < a.length && (0 <= a.indexOf("%") || 0 <= a.indexOf("{")) };
|
|
}
|
|
function ir(a, c, b, d) {
|
|
var e = uf(a);
|
|
if (!e.result) return e.text;
|
|
a = ui(a, [c, b], d, ir);
|
|
return vf(a, Gy, {
|
|
fOptions: d,
|
|
chart: c.chart,
|
|
series: c,
|
|
point: b,
|
|
sOptions: c.currentOptions,
|
|
pOptions: b.currentOptions,
|
|
atribs: b.currentOptions.attributes,
|
|
yVal: c.ctManager.isType("treemap") ? "value" : "y",
|
|
pgCache: Ey(c, b),
|
|
cache: c.getCalcCache(),
|
|
scCache: c.chartArea.chartAreaSet.getCalcCache(),
|
|
indexedData: c.indexer.getItem(b._i),
|
|
});
|
|
}
|
|
function jr(a, c, b) {
|
|
var d = uf(a);
|
|
if (!d.result) return d.text;
|
|
a = ui(a, c, b, jr);
|
|
return vf(a, Hy, {
|
|
fOptions: b,
|
|
chart: c.chart,
|
|
series: c,
|
|
sOptions: c.currentOptions,
|
|
atribs: c.currentOptions.attributes,
|
|
yVal: c.ctManager.isType("treemap") ? "value" : "y",
|
|
cache: c.getCalcCache(),
|
|
scCache: c.chartArea.chartAreaSet.getCalcCache(),
|
|
});
|
|
}
|
|
function vi(a, c, b) {
|
|
var d = uf(a);
|
|
if (!d.result) return d.text;
|
|
a = ui(a, c, b, vi);
|
|
return vf(a, Iy, { fOptions: b, chart: c.chart, cache: c.getCalcCache() });
|
|
}
|
|
function Gg(a, c, b) {
|
|
var d = uf(a);
|
|
if (!d.result) return d.text;
|
|
a = ui(a, c, b, Gg);
|
|
d = C(c, "value");
|
|
var e = c.currentOptions || {},
|
|
f = C(e, "value");
|
|
f = z(f, e.max, e.min);
|
|
return vf(a, Jy, { fOptions: b, val: f, item: c, atribs: c.currentOptions.attributes, cache: e, evaluedValue: "function" === typeof d ? c.value() : [] });
|
|
}
|
|
function wi(a, c, b) {
|
|
void 0 === b && (b = {});
|
|
var d = uf(a);
|
|
return d.result ? vf(a, {}, { fOptions: b, item: c, atribs: c }) : d.text;
|
|
}
|
|
function kr(a, c, b, d) {
|
|
for (var e, f, g, h = pa(c), k, l, m = 0, n = h.length; m < n; m++) {
|
|
g = h[m];
|
|
if (-1 === (l = a.indexOf("%")) || l === a.length - 1 || !g) break;
|
|
e = "%" + g;
|
|
-1 < a.toLowerCase().indexOf(e) &&
|
|
(a = a.replace(new RegExp(e, "gi"), function (a) {
|
|
k = ti(hr(g, c, b));
|
|
b.formatApplied = f = Fy(g, c, b);
|
|
d && (f = null);
|
|
a = I(k);
|
|
var e = k;
|
|
"array" === a ? (e = k[0]) : (k = [k]);
|
|
b.formatApplied &&
|
|
b.formatApplied.isTime &&
|
|
((k = B(k, function (b) {
|
|
return new Date(b);
|
|
})),
|
|
(e = k[0]));
|
|
f || "date" !== I(e) || (f = { fStr: "yyyy-MM-ddTHH:mm:ss.fffffffzzz", culture: "en-US" });
|
|
return B(k, function (b) {
|
|
return f ? lr(b, f.fStr, f) : b;
|
|
}).join(3 > k.length ? "\u2014" : " ");
|
|
}));
|
|
}
|
|
return a;
|
|
}
|
|
function ti(a) {
|
|
return a || t(a) ? a : "";
|
|
}
|
|
function lr(a, c, b) {
|
|
var d = b ? b.culture || "en-US" : "en-US",
|
|
e = I(a);
|
|
return "date" === e
|
|
? ((b = new mr(d, { formatString: c || "" })), Ha(a.getTime()) ? "Invalid Date" : b.formatDate(a, c))
|
|
: "number" === e
|
|
? (b && c && "c" !== c.toLowerCase() && !0 !== b.fStrStrict && t(b.precision) && b.precision && ((c = Yf(a)), (c = "n" + Math.min(c, b.precision))), (b = new mr(d, { formatString: c || "" })), b.formatNumber(a, c))
|
|
: a;
|
|
}
|
|
function Ky(a, c, b) {
|
|
var d = /\{ *[\w\-\(%0-9][^\}\{]+ *: *[^\}\{]+ *\}/,
|
|
e = /\{ *[\w\-\(%0-9][^\}\{]+ *\}/,
|
|
f,
|
|
g;
|
|
if (!a) return a;
|
|
for (; !k && null !== (g = d.exec(a) || e.exec(a)); ) {
|
|
var h = 0;
|
|
for (f = g.length; h < f; h++) {
|
|
var k = g[h].toString(),
|
|
l = Ly(k, c, b);
|
|
a = a.replace(k, l);
|
|
k = l && O(l) && Hg(l, "{");
|
|
}
|
|
}
|
|
return a;
|
|
}
|
|
function Ly(a, c, b) {
|
|
var d,
|
|
e = Gd(a),
|
|
f = e.indexOf(":"),
|
|
g = -1 < f;
|
|
if (g) {
|
|
a = e.substring(1, f);
|
|
var h = Gd(
|
|
e.substring(f + 1, e.length - 1).replace(/^(date)*(number)*/gi, function (b) {
|
|
d = b.toLowerCase();
|
|
return "";
|
|
})
|
|
);
|
|
} else a = e.substring(1, e.length - 1);
|
|
a = kr(Gd(a), c, b, !0);
|
|
e = a.match(Gl);
|
|
c = !1;
|
|
if (e && (e = e.length)) {
|
|
c = !0;
|
|
var k = 1 === e ? "date" : "number";
|
|
}
|
|
h || (h = C(b, "formatApplied.fStr"));
|
|
e = a;
|
|
c &&
|
|
(e = a.replace(Gl, function (b) {
|
|
return Date.parse(b);
|
|
}));
|
|
c = !0;
|
|
if (/[\+-\/\*\^%]+/.test(e))
|
|
try {
|
|
a = Nj(
|
|
'"strict mode";(f{r/**/;f days{rn/86400000;}f weeks{rn/604800000;}f years{rn/31536000000;}f hours{rn/3600000;}f minutes{rn/60000;}f seconds{rn/(1000);}}())'
|
|
.replace(/f/g, "function")
|
|
.replace(/\{r/g, "(n){return ")
|
|
.replace("/**/", e)
|
|
);
|
|
} catch (l) {
|
|
c = !1;
|
|
}
|
|
(k = d || k)
|
|
? "date" === k
|
|
? (a = Ha(new Date(a).getTime()) ? new Date(parseFloat(a)) : new Date(Date.parse(a)))
|
|
: "number" === k && (a.valueOf && (a = a.valueOf()), (a = parseFloat(a)))
|
|
: "string" === typeof a
|
|
? Un(a)
|
|
? (a = parseFloat(a))
|
|
: Gl.test(a) && (a = new Date(Date.parse(a)))
|
|
: "number" !== typeof a || h || (h = "n:" + Math.min(Yf(a), 3));
|
|
return c ? (h ? lr(a, h, b.formatApplied) : a) : "{" + a + (g ? ":" + h : "") + "}";
|
|
}
|
|
function vf(a, c, b) {
|
|
var d = a && a.attr,
|
|
e = b.atribs,
|
|
f = c;
|
|
if (a.token) return hr(a.token.slice(1).toLowerCase(), f, b);
|
|
d && (a = a.attr);
|
|
a = a.replace(/\\\\/g, "##@@@!@##").replace(/\\\{/g, "!!@@#@#@@!").replace(/\\\}/g, "###@!@!#@").replace(/\\%/g, "#@@!@##@");
|
|
if (e) {
|
|
f = e.pop ? e : ~a.indexOf(".") ? Kn(e, ".") : pa(e);
|
|
var g = !!e.pop,
|
|
h = {};
|
|
w(f, function (b) {
|
|
h[(g ? b[0] : b).toLowerCase()] = void 0;
|
|
});
|
|
f = d ? h : L(h, c);
|
|
}
|
|
a = Ky(a, f, b);
|
|
a = kr(a, f, b);
|
|
return a
|
|
.replace(/##@@@!@##/g, "\\")
|
|
.replace(/!!@@#@#@@!/g, "{")
|
|
.replace(/###@!@!#@/g, "}")
|
|
.replace(/#@@!@##@/g, "%");
|
|
}
|
|
function ui(a, c, b, d) {
|
|
var e;
|
|
if ("string" === typeof a && -1 < a.indexOf("<")) {
|
|
var f = a.match(nr);
|
|
if (f) {
|
|
b = (function (b) {
|
|
b = A({}, b);
|
|
var a = function (b) {
|
|
b && !b.isTime && (b.fStr = "d");
|
|
};
|
|
a(b.x);
|
|
a(b.y);
|
|
a(b.z);
|
|
return b;
|
|
})(b);
|
|
try {
|
|
for (var g = ya(f), h = g.next(); !h.done; h = g.next()) {
|
|
var k = h.value;
|
|
a = c.pop ? a.replace(k, "<" + d(k.replace("<", ""), c[0], c[1], b)) : a.replace(k, "<" + d(k.replace("<", ""), c, b));
|
|
}
|
|
} catch (m) {
|
|
var l = { error: m };
|
|
} finally {
|
|
try {
|
|
h && !h.done && (e = g.return) && e.call(g);
|
|
} finally {
|
|
if (l) throw l.error;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return a;
|
|
}
|
|
function or(a, c, b) {
|
|
var d = pr(a),
|
|
e = c[1],
|
|
f = xi(a);
|
|
a = Mb(f);
|
|
b || (b = og(f, f.hasCurves));
|
|
f = Math.max(a[2], a[3]);
|
|
var g = [],
|
|
h = a[1] + 1;
|
|
try {
|
|
for (; h + e < a[1] + a[3] - 2; ) {
|
|
var k = qr(d, h, e);
|
|
k && k[2] >= c[0] && g.push([f - Xb(va(k), b), k]);
|
|
h += 1;
|
|
}
|
|
} catch (m) {}
|
|
if (g.length) {
|
|
g.sort(function (b, a) {
|
|
return b[0] < a[0] ? -1 : b[0] > a[0] ? 1 : 0;
|
|
}).reverse();
|
|
var l = g[0][1];
|
|
}
|
|
l && (l = mb(va(l), c));
|
|
return l;
|
|
}
|
|
function pr(a) {
|
|
var c = xi(a);
|
|
c = Mb(c);
|
|
c = Math.floor(c[3] / 3);
|
|
a = xi(a);
|
|
return My(a, c);
|
|
}
|
|
function xi(a) {
|
|
var c,
|
|
b = 0;
|
|
w(a.shapes, function (a) {
|
|
var d = Mb(a);
|
|
d = d[2] * d[3];
|
|
d >= b && ((b = d), (c = a));
|
|
});
|
|
return c;
|
|
}
|
|
function My(a, c) {
|
|
var b = [],
|
|
d = Mb(a),
|
|
e = d[0] - 50,
|
|
f = d[0] + d[2] + 50,
|
|
g = d[1],
|
|
h = d[3];
|
|
d = function (b) {
|
|
b = g + b * h;
|
|
return [
|
|
[e, b],
|
|
[f, b],
|
|
];
|
|
};
|
|
var k = function (b) {
|
|
for (
|
|
var a = [],
|
|
c = function (b) {
|
|
for (var c = 0, d = a.length; c < d; c++) if (ab(a[c], b)) return !1;
|
|
return !0;
|
|
},
|
|
d = 0,
|
|
g = b.length;
|
|
d < g;
|
|
d++
|
|
) {
|
|
var h = b[d];
|
|
h = [Math.round(h.intersect.x), Math.round(h.intersect.y)];
|
|
c(h) && h[0] > e && h[0] < f && a.push(h);
|
|
}
|
|
a.sort(function (b, a) {
|
|
return b[0] < a[0] ? -1 : b[0] > a[0] ? 1 : 0;
|
|
});
|
|
2 < a.length && (a = [a[0], a[a.length - 1]]);
|
|
1 === a.length && a.push(a[0]);
|
|
return a;
|
|
};
|
|
c = Math.abs(0.9998 / (c - 1));
|
|
for (var l = 1e-4; 1 > l; l += c) {
|
|
var m = d(l);
|
|
m = Rh(a, m[0], m[1]);
|
|
b.push(k(m));
|
|
}
|
|
return b;
|
|
}
|
|
function Ny(a, c) {
|
|
return {
|
|
scans: rr(a.scans, function (b) {
|
|
return [Y(c[0], c[0] + c[2], 0, 1, b[0]), Y(c[1], c[1] + c[3], 0, 1, b[1])];
|
|
}),
|
|
pathBBox: c,
|
|
};
|
|
}
|
|
function rr(a, c) {
|
|
for (var b = [], d = 0, e = a.length; d < e; d++) {
|
|
for (var f = a[d], g = [], h = 0, k = f.length; h < k; h++) g.push(c(f[h]));
|
|
b.push(g);
|
|
}
|
|
return b;
|
|
}
|
|
function qr(a, c, b) {
|
|
b = c + b;
|
|
for (
|
|
var d,
|
|
e,
|
|
f = function (b) {
|
|
return [
|
|
[Y(d[0][0], e[0][0], d[0][1], e[0][1], b), b],
|
|
[Y(d[1][0], e[1][0], d[1][1], e[1][1], b), b],
|
|
];
|
|
},
|
|
g,
|
|
h,
|
|
k = 0,
|
|
l = a.length - 1;
|
|
k < l;
|
|
k++
|
|
) {
|
|
d = a[k];
|
|
e = a[k + 1];
|
|
var m = d[0][1],
|
|
n = e[0][1];
|
|
!g && c >= m && c <= n && (g = f(c));
|
|
!h && b >= m && b <= n && (h = f(b));
|
|
if (g && h) break;
|
|
}
|
|
if (h && g) return (a = Math.max(g[0][0], h[0][0])), [a, c, Math.min(g[1][0], h[1][0]) - a, b - c];
|
|
}
|
|
function Oy(a) {
|
|
var c = sa(a.chartItems(), function (b) {
|
|
return z(b.currentOptions.sortOrder, b.currentOptions.order, 0);
|
|
}),
|
|
b = [[], [], [], []],
|
|
d = {},
|
|
e = { casMargin: [0, 0, 0, 0], overflows: [0, 0, 0, 0], max: [0, 0, 0, 0], itemsToTune: c, aggr: d },
|
|
f = a.chart.rootVisuals.itemsBox.getGlobalBboxArray(),
|
|
g = !0;
|
|
w(c, function (a) {
|
|
if (!a.currentOptions.asHTML) {
|
|
var c = G(Ig(a), 3),
|
|
e = c[0],
|
|
h = c[1];
|
|
c = c[2];
|
|
a.isMeasured = !1;
|
|
if (!e && !c.isIn) {
|
|
var k = sr(a, h, c, d, f);
|
|
k &&
|
|
w(c.pos, function (a, c) {
|
|
a && b[c].push(k) && (g = !1);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
if (g) return e;
|
|
var h = a.items,
|
|
k = B(h, function (b) {
|
|
return b.overflows;
|
|
}),
|
|
l = [
|
|
function () {
|
|
var b = h[0].rootVisuals.titleBox.rootPanel.setPreliminarySize().getGlobalBboxArray();
|
|
return b[2] && b[3] ? 0 : k[0][0];
|
|
},
|
|
function () {
|
|
return oa(
|
|
B(k, function (b) {
|
|
return b[1];
|
|
})
|
|
);
|
|
},
|
|
function () {
|
|
return P(k)[2];
|
|
},
|
|
function () {
|
|
return oa(
|
|
B(k, function (b) {
|
|
return b[3];
|
|
})
|
|
);
|
|
},
|
|
];
|
|
a = function (a) {
|
|
var c = b[a];
|
|
if (!c.length) return 0;
|
|
var d = 0;
|
|
w(c, function (b) {
|
|
return (d = Math.max(d, b[Py[a]]));
|
|
});
|
|
c = l[a]();
|
|
d = c > d ? c : d;
|
|
e.overflows[a] = c;
|
|
return (e.max[a] = d) && Math.max(d - c, 0);
|
|
};
|
|
e.casMargin = [a(0), a(1), a(2), a(3)];
|
|
return e;
|
|
}
|
|
function Qy(a, c) {
|
|
var b = {},
|
|
d = a.items,
|
|
e = d[0],
|
|
f = a.chart.rootVisuals.itemsBox,
|
|
g = f.getGlobalBboxArray(),
|
|
h = function () {
|
|
var b = B(d, function (b) {
|
|
return b.getContentGlobalBbox();
|
|
});
|
|
return Ea(b);
|
|
};
|
|
h = 1 < d.length ? h() : e.getContentGlobalBbox();
|
|
a = a.measureResult;
|
|
var k = [g[0] + a.max[3], g[1] + a.max[0], g[2] - a.max[1] - a.max[3], g[3] - a.max[2] - a.max[0]];
|
|
e = e.getContentGlobalBbox();
|
|
var l = a.aggr,
|
|
m = [g, k, h, e, [k[0], h[1], k[2], h[3]], [h[0], k[1], h[2], k[3]]];
|
|
w(a.itemsToTune, function (b) {
|
|
if (!b.isMeasured) {
|
|
var a = G(Ig(b), 3),
|
|
c = a[2];
|
|
sr(b, a[1], c, l, m[c.alignBoxIndex]);
|
|
}
|
|
});
|
|
var n = {};
|
|
l.tltl && l.tltl.total[0] > e[2] ? (n.tltl = { direction: 1, align: [-1, 0] }) : l.blbl && l.blbl.total[0] > e[2] && (n.blbl = { direction: 1, align: [-1, 0] });
|
|
f.update();
|
|
w(a.itemsToTune, function (a) {
|
|
var d = a.rootPanel,
|
|
e = d.getGlobalBboxArray ? d.getGlobalBboxArray(!0) : a.bbox(!0);
|
|
if (e[2] || e[3]) {
|
|
d.isHtml ? ((e[0] -= parseFloat(d.attr("left"))), (e[1] -= parseFloat(d.attr("top")))) : ((e[0] -= d.offsetX), (e[1] -= d.offsetY));
|
|
var f = G(Ig(a), 3),
|
|
g = f[0],
|
|
h = f[1];
|
|
f = f[2];
|
|
!g && n[h] && (f = W(f, n[h]));
|
|
e = Ry(e, m, g, h, f, b, l[h]);
|
|
if ((g = a.options("offset"))) (g = g.split(",")), (e[0] += parseInt(g[0]) || 0), (e[1] += parseInt(g[1]) || 0);
|
|
g = c && c.animation;
|
|
d.attr(d.isHtml ? { left: e[0] + "px", top: e[1] + "px" } : { offsetX: e[0], offsetY: e[1], animation: g });
|
|
a.positionUpdated(m[nb(f) ? f : f.alignBoxIndex]);
|
|
}
|
|
});
|
|
}
|
|
function Ry(a, c, b, d, e, f, g) {
|
|
void 0 === g && (g = { total: [0, 0], max: [0, 0] });
|
|
if (b) return [d[0] + c[e][0] - a[0], d[1] + c[e][1] - a[1]];
|
|
b = G(c, 3);
|
|
var h = b[0],
|
|
k = b[2],
|
|
l = [],
|
|
m = [],
|
|
n = f[d],
|
|
p = e.direction,
|
|
q = e.align,
|
|
r = e.stackAlign;
|
|
b = function (b, c) {
|
|
c = c(b);
|
|
var e = f[d];
|
|
if (!e[b]) {
|
|
e[b] = [];
|
|
var g = 0 === p ? 1 : 0;
|
|
e[b][g] = m[b][g] + 1 * (a[b] + a[b + 2] * (0 < (b === g ? 1 : 0) ? 1 : b !== g ? 0.5 + q[b] / 2 : 0)) - (0.5 + r[b] / 2) * a[b + 2] * (b === g ? 1 : 0);
|
|
}
|
|
e[b][p] = c + 1 * (a[b] + a[b + 2] * (0 < (b === p ? 1 : 0) ? 1 : b !== p ? 0.5 + q[b] / 2 : 0));
|
|
return c;
|
|
};
|
|
var u = function (b) {
|
|
return n[b][p] + -1 * (a[b] + a[b + 2] * (0 < -1 * (b === p ? 1 : 0) ? 1 : b !== p ? 0.5 + q[b] / 2 : 0));
|
|
},
|
|
x = function (b) {
|
|
var c = l[b];
|
|
m[b] = [v(b, c, 0), v(b, c, 1)];
|
|
c = m[b][p];
|
|
var d = m[b];
|
|
if (!e.checkBorder[b] && a[b + 2] <= k[b + 2]) b = c;
|
|
else {
|
|
var f = a[b + 2],
|
|
g = h[b],
|
|
n = k[b];
|
|
c = a[b] + c;
|
|
var q = g + h[b + 2];
|
|
c < g && (c = n);
|
|
c + f > q && ((c = n + k[b + 2] - f), c < g && (c = q / 2 - f / 2));
|
|
b = c - a[b];
|
|
}
|
|
return (d[p] = b);
|
|
},
|
|
v = function (b, c, d) {
|
|
d = b !== d ? 1 : -1;
|
|
var e = 0.5 + r[b] / 2;
|
|
return c + ((0 < d ? g.max[b] || a[b + 2] : g.total[b]) - a[b + 2]) * d * (0 < d ? 0.5 + q[b] / 2 - e : e);
|
|
};
|
|
n || ((l = ek(a, c[e.alignBoxIndex], nc.default(d, "tltr"))), (f[d] = []));
|
|
return [b(0, n ? u : x), b(1, n ? u : x)];
|
|
}
|
|
function Ig(a) {
|
|
return (a._posInfo_ = a._posInfo_ || tr(a.currentOptions));
|
|
}
|
|
function tr(a) {
|
|
var c = a.position || "bltl";
|
|
if (c.push) return [1, c, 0];
|
|
var b = function (b) {
|
|
return parseFloat(b);
|
|
},
|
|
d = function (b, c) {
|
|
var d = G(b, 4),
|
|
e = d[0],
|
|
f = d[1],
|
|
g = d[2];
|
|
d = d[3];
|
|
var h = e === g && f === d,
|
|
q = ["t" === g && ("b" === e || "m" === e || h) && 1, "r" === d && ("l" === f || "c" === f || h) && 1, "b" === g && ("t" === e || "m" === e || h) && 1, "l" === d && ("r" === f || "c" === f || h) && 1],
|
|
r = h ? 3 : 1 < Ta(q) ? 1 : q[0] || q[2] ? 5 : 4;
|
|
e = {
|
|
isIn: h,
|
|
pos: q,
|
|
alignBoxIndex: r,
|
|
checkBorder: [f === d && "c" === f, e === g && "m" === e],
|
|
direction: h ? ("m" === g ? 1 : 0) : 5 !== r ? 1 : 0,
|
|
align: ["l" === f ? -1 : "r" === f ? 1 : 0, 0],
|
|
stackAlign: ["l" === f ? -1 : "r" === f ? 1 : 0, "t" === e ? -1 : "b" === e ? 1 : 0],
|
|
};
|
|
e.direction = z(a.direction, c, e.direction);
|
|
e.align = z(a.alignment, e.align);
|
|
J(a, "fixed") && (e.stackAlign = [-1, -1]);
|
|
return [0, b, e];
|
|
};
|
|
c = c.toLowerCase().trim();
|
|
if (4 === c.length && "left" !== c && !Sy.test(c)) return d(c);
|
|
c = c.replace("ca:", "inside ").replace("ca", "inside top left").trim();
|
|
var e = c.split(",");
|
|
if (1 < e.length) return (d = e[0]), (c = 0 === d.indexOf("inside")) && (e[0] = d.substring(6)), [1, e.map(b), c ? 3 : 0];
|
|
if ("center" === c) return (d = d("mcmc")), (d[2].isIn = !1), (d[2].alignBoxIndex = 2), d;
|
|
b = c.split(" ");
|
|
e = "inside" === b[0] ? 1 : 0;
|
|
var f = b.join("");
|
|
f = f.length === c.length ? Ty[f] || f : f;
|
|
return d(Uy[f] || "bltl", Vy[b[e]]);
|
|
}
|
|
function sr(a, c, b, d, e) {
|
|
e = a.measure(e);
|
|
b = b.direction;
|
|
var f = !d[c];
|
|
c = d[c] = d[c] || { total: [0, 0], max: [0, 0] };
|
|
if (!e[2] && !e[3]) return null;
|
|
(!f && b) || (c.total[0] += e[2]);
|
|
(f || b) && (c.total[1] += e[3]);
|
|
(f || b) && a.isVisible && c.max[0] < e[2] && (c.max[0] = e[2]);
|
|
(f || !b) && a.isVisible && c.max[1] < e[3] && (c.max[1] = e[3]);
|
|
return e;
|
|
}
|
|
function ur(a) {
|
|
return vr[
|
|
S((a || "topRight").toLowerCase().split(" "), function (a) {
|
|
return vr[a];
|
|
})
|
|
];
|
|
}
|
|
function wr(a) {
|
|
var c = a.trim().toLowerCase();
|
|
return 0 === c.indexOf("ca") || 0 === c.indexOf("inside") ? (c.match(Wy) ? "caAlign" : "caOffset") : Xy.test(a) ? "absolute" : "position";
|
|
}
|
|
function Yy(a) {
|
|
var c = a.chart,
|
|
b = a.collisionManager,
|
|
d = ha(a.rootVisuals.content.getGlobalBbox());
|
|
d = [-d[0], -d[1]];
|
|
var e = function (a) {
|
|
a.isVisible && b.addLabelBox(Xc(a.getBounds(), d));
|
|
};
|
|
b.reset();
|
|
c.uiItems && c.uiItems().each(e);
|
|
c.annotations().each(e);
|
|
wr(a.legend.currentOptions.position).match("caOffset|caAlign|absolute") && ((a = a.legend.getBounds()), b.addLabelBox(Xc(a, d)));
|
|
}
|
|
function yi(a) {
|
|
var c = new Function("getter", "return " + JSON.stringify(a) + ";"),
|
|
b = Zy(a);
|
|
return b.length
|
|
? function () {
|
|
var a = c(),
|
|
e;
|
|
try {
|
|
for (var f = ya(b), g = f.next(); !g.done; g = f.next()) {
|
|
var h = g.value;
|
|
Z(a, h[0], h[1]);
|
|
}
|
|
} catch (l) {
|
|
var k = { error: l };
|
|
} finally {
|
|
try {
|
|
g && !g.done && (e = f.return) && e.call(f);
|
|
} finally {
|
|
if (k) throw k.error;
|
|
}
|
|
}
|
|
return a;
|
|
}
|
|
: c;
|
|
}
|
|
function xr(a, c) {
|
|
var b = I(c);
|
|
a = a.currentOptions;
|
|
return "undefined" === b ? a : "string" === b ? C(a, c.replace(/_/g, ".")) : "NotGetter";
|
|
}
|
|
function yr(a) {
|
|
if (!a.currentOptions.colorsValueRange)
|
|
var c = 1 >= a.stopRange && 0 <= a.stopExtremes[0] && 1 >= a.stopExtremes[1],
|
|
b = 1 >= a.dataRange && 0 <= a.extremes[0] && 1 >= a.extremes[1];
|
|
return { stopPerc: c, dataPerc: b };
|
|
}
|
|
function md(a, c, b) {
|
|
return a && a.pixelCorrection ? a.snap(c, b) : c;
|
|
}
|
|
function nd(a, c, b) {
|
|
if (!a || !a.pixelCorrection) return c;
|
|
a = md(a, [c[0], c[1], b, b], b);
|
|
return [a[0], a[1]];
|
|
}
|
|
function ue(a, c, b) {
|
|
return a && a.pixelCorrection
|
|
? B(c, function (c) {
|
|
return nd(a, c, b);
|
|
})
|
|
: c;
|
|
}
|
|
function zr(a, c, b, d) {
|
|
if (!a || !a.pixelCorrection) return c;
|
|
d = t(d) ? d : b / 2;
|
|
var e = c[0],
|
|
f = c[1],
|
|
g = G(e, 2);
|
|
e = g[0];
|
|
g = g[1];
|
|
var h = G(f, 2);
|
|
f = h[0];
|
|
h = h[1];
|
|
return e === f
|
|
? ((c = !1), g > h && ((c = g), (g = h), (h = c), (c = !0)), (g += d), (e = [e, g, 0, h - d - g]), (a = md(a, e, b)), (e = [a[0], a[1] - d]), (f = [a[0], a[1] + a[3] + d]), c ? [f, e] : [e, f])
|
|
: g === h
|
|
? ((c = !1), e > f && ((c = e), (e = f), (f = c), (c = !0)), (e += d), (e = [e, g, f - d - e, 0]), (a = md(a, e, b)), (e = [a[0] - d, a[1]]), (f = [a[0] + a[2] + d, a[1]]), c ? [f, e] : [e, f])
|
|
: c;
|
|
}
|
|
function Hl(a) {
|
|
return new $y(a);
|
|
}
|
|
function Kd(a) {
|
|
a.type = "panel";
|
|
return a;
|
|
}
|
|
function ve(a) {
|
|
a.width = "*";
|
|
a.height = "*";
|
|
return a;
|
|
}
|
|
function zi(a, c, b, d) {
|
|
return { xAlignment: a, yAlignment: c, offsetX: b, offsetY: d };
|
|
}
|
|
function Il(a, c) {
|
|
a = a.rootVisuals;
|
|
var b;
|
|
(b = c[3]) && a.leftOverflow.attr({ width: b });
|
|
(b = c[0]) && a.topOverflow.attr({ height: b });
|
|
(b = c[1]) && a.rightOverflow.attr({ width: b });
|
|
(b = c[2]) && a.bottomOverflow.attr({ height: b });
|
|
}
|
|
function Ar(a) {
|
|
var c = function () {
|
|
var b = [0, 0],
|
|
c = [0, 0];
|
|
a.axes().each(function (a) {
|
|
var d = a.overflowSize.tL;
|
|
a = a.overflowSize.bR;
|
|
b[0] = Math.max(b[0], d[0]);
|
|
b[1] = Math.max(b[1], d[1]);
|
|
c[0] = Math.max(c[0], a[0]);
|
|
c[1] = Math.max(c[1], a[1]);
|
|
});
|
|
return [b[1], c[0], c[1], b[0]];
|
|
},
|
|
b = function () {
|
|
var b = [0, 0, 0, 0];
|
|
a.axes().each(function (a) {
|
|
b[a.sideIndex()] += a.sideDepth();
|
|
});
|
|
return b;
|
|
},
|
|
d,
|
|
e = (function () {
|
|
var e = [0, 0, 0, 0],
|
|
g = c(),
|
|
h = a.chart.currentOptions.extraOverflows || [0, 0, 0, 0],
|
|
k = (a.currentOptions.extraOverflows || [0, 0, 0, 0]).map(function (b, a) {
|
|
return b + h[a];
|
|
});
|
|
d = b();
|
|
w(g, function (b, a) {
|
|
e[a] = Math.max(g[a] + k[a] - d[a], 0);
|
|
});
|
|
return e;
|
|
})();
|
|
a.overflows = e;
|
|
a.axSizes = d;
|
|
return e;
|
|
}
|
|
function Br(a) {
|
|
var c = (a.overflows = Ar(a));
|
|
Il(a, c);
|
|
return c;
|
|
}
|
|
function Jl(a, c, b) {
|
|
function d(b, a, c) {
|
|
var d,
|
|
e = b.series;
|
|
c = null === (d = e.currentOptions.pointSelection) || void 0 === d ? void 0 : d.max;
|
|
if (nb(c))
|
|
if (((d = e.chart), (e = d._sMaxList), a)) {
|
|
if (e && e.length + 1 > c) for (; e.length + 1 > c; ) f(e.shift());
|
|
else d._sMaxList = e = e || [];
|
|
e.push(b);
|
|
} else pb(e, b);
|
|
}
|
|
function e(b, a) {
|
|
b.currentOptions.selected = a;
|
|
b.userOptions.selected = a;
|
|
}
|
|
function f(b) {
|
|
b.legendEntry && b.legendEntry.updateCheckbox(!1);
|
|
e(b, !1);
|
|
b.setState("");
|
|
}
|
|
var g = a.chart,
|
|
h = a.series.currentOptions.pointSelection,
|
|
k = t(h) ? h : !1;
|
|
k && d(a, c);
|
|
g.isRendered
|
|
? (a.setState(c ? "select" : ""),
|
|
k &&
|
|
(c &&
|
|
a.series.chartArea
|
|
.series()
|
|
.points()
|
|
.items.forEach(function (c) {
|
|
var d;
|
|
if ((d = c.selected))
|
|
a: {
|
|
if (c.selected) {
|
|
if (c._i === a._i && c === a) {
|
|
d = void 0;
|
|
break a;
|
|
}
|
|
"multiple" === k || nb(k.max) || ("single" === k ? f(c) : !b && f(c));
|
|
}
|
|
d = void 0;
|
|
}
|
|
return d;
|
|
}),
|
|
a.legendEntry && a.legendEntry.updateCheckbox(c),
|
|
e(a, c)))
|
|
: c && (a.selected = !0);
|
|
}
|
|
function Kl(a, c, b) {
|
|
var d, e, f;
|
|
b = t(b) ? b : a.userPoints.length;
|
|
0 === c && (d = a.currentOptions.firstPoint) ? (f = d) : c === b - 1 && (e = a.currentOptions.lastPoint) && (f = A({}, f || {}, e));
|
|
a._defPointGen || (a._defPointGen = yi(A({ label: { placement: "auto", style: { fontFamily: "tahoma, geneva, sans-serif", fontSize: "12px" } } }, a.currentOptions.defaultPoint)));
|
|
a = a._defPointGen();
|
|
return f ? A(a, f) : a;
|
|
}
|
|
function Ll(a) {
|
|
a = a.currentOptions;
|
|
!0 === a.muted && !1 === C(a, "states.mute.enabled") && (a.muted = !1);
|
|
!0 === a.selected && !1 === C(a, "states.select.enabled") && (a.selected = !1);
|
|
}
|
|
function Ml(a, c) {
|
|
var b, d;
|
|
!1 === (null === (d = null === (b = a.currentOptions.states) || void 0 === b ? void 0 : b[c]) || void 0 === d ? void 0 : d.enabled) && (c = t(a.state) && a.state !== c ? a.state : "");
|
|
return c;
|
|
}
|
|
function Ai(a, c, b, d) {
|
|
function e(b, c) {
|
|
if (void 0 !== (g = I((f = c))) && "undefined" !== g)
|
|
if (((b = "c" === b[0] ? b.replace("complete.y", "complete").replace("complete.x", "completeX") : b), (c = "" + b), "array" === g)) {
|
|
if (2 !== f.length) throw "value array can only have 2 items.";
|
|
I(f[0]);
|
|
b = f[0];
|
|
I(f[1]);
|
|
var d = f[1];
|
|
h[c + "e"] = d;
|
|
h[c + "s"] = b;
|
|
h[c + "r"] = d - b;
|
|
h[c + "a"] = (d + b) / 2;
|
|
} else "null" === g && "y" === b ? ("treataszero" === a.currentOptions.emptyPointMode ? (h.y = 0) : (h.isEmpty = !0)) : (h[c] = f);
|
|
}
|
|
for (var f, g, h = {}, k = c.name, l = 0, m = b.length; l < m; l++) {
|
|
var n = b[l];
|
|
-1 < n.indexOf(".") ? e(n, C(c, n)) : e(n, c[n]);
|
|
}
|
|
!0 !== d && A(h, az(c, h));
|
|
Z(h, "cpbIndex", c.cpbIndex);
|
|
w(Cr, function (b) {
|
|
return Z(h, b, c[b]);
|
|
});
|
|
h.x = z(h.x, k);
|
|
t(h.x) || t(h.xr) || (h.x = c._i);
|
|
return h;
|
|
}
|
|
function az(a, c) {
|
|
function b(b, a, e) {
|
|
var l = {};
|
|
e = "sv" + e;
|
|
p = c[a];
|
|
t(p) || (p = c[a + "e"]);
|
|
n = Q((m = c[a + "s"])) ? (m = p) : p - m;
|
|
(f = b.range) && d(l, (e + "s," + e).split(","), f);
|
|
(h = b.offset) && d(l, (e + "s," + e).split(","), [m - h, p + h]);
|
|
if ((g = b.percent)) (h = (g / 100) * n), d(l, (e + "s," + e).split(","), [m - h, p + h]);
|
|
if ((k = b.values)) l[e + "v"] = k;
|
|
return l;
|
|
}
|
|
function d(b, a, c) {
|
|
for (var d = 0, e = a.length; d < e; d++) b[a[d]] = c[d];
|
|
}
|
|
var e,
|
|
f,
|
|
g,
|
|
h,
|
|
k,
|
|
l = {},
|
|
m,
|
|
n,
|
|
p;
|
|
(e = a.subvalue) && A(l, b(e, "y", ""));
|
|
(e = a.subvalueX) && A(l, b(e, "x", "x"));
|
|
return l;
|
|
}
|
|
function Dr(a, c) {
|
|
return a.map(function (b) {
|
|
return Bi(b, c);
|
|
});
|
|
}
|
|
function Bi(a, c) {
|
|
return { _i: a.indexer.findValue_i("x", c.value), series: a };
|
|
}
|
|
function bz(a) {
|
|
return (a = a && a.info.type) && (a.isShape || a.isPie || a.colorByPoint) ? "point" : "series";
|
|
}
|
|
function Nl(a) {
|
|
if ((a = a.currentOptions.hoverAction) && "none" !== a) return a.toLowerCase().replace("highlight", "").replace("pointgroup", "group");
|
|
}
|
|
function Ol(a, c, b) {
|
|
var d = "Point" === a.kind,
|
|
e = d ? a.series : a,
|
|
f = d ? a : void 0,
|
|
g = e.chart;
|
|
b = b && "auto" !== b ? b : bz(e);
|
|
d || "point" !== b || (b = "series");
|
|
b && "none" !== b && (g.highlighted = a);
|
|
g.series().items.forEach(function (a) {
|
|
a.isVisible && (a !== e && "group" !== b ? Jg(a, "mute") : "point" === b ? Jg(a, "mute", f) : "group" === b ? Jg(a, "mute", cz(f)) : Jg(a, z(c, ""), f));
|
|
});
|
|
}
|
|
function Qb(a, c) {
|
|
a.renderer.renderer.isRootDestroyed() ||
|
|
(a.series().items.forEach(function (b) {
|
|
b.isVisible && Jg(b, "", c, !0);
|
|
}),
|
|
(a.highlighted = void 0));
|
|
}
|
|
function Jg(a, c, b, d) {
|
|
if (a.isVisible) {
|
|
if (d) {
|
|
var e = a.getAnimationConfig();
|
|
e && 0 !== e.duration && (e.duration = Math.min(230, e.duration));
|
|
var f = { animation: e };
|
|
} else f = { continueAnimation: !1 };
|
|
if (b && b.pop)
|
|
a.points().each(function (a) {
|
|
"select" !== a._state && (ae(b, a) ? a.setState("", f) : a.setState(c, f));
|
|
});
|
|
else {
|
|
var g = "" === c;
|
|
(b && b.series === a && a.state === c) || "select" === a.state || (a.visualizer.debounce.clear("unhoverline"), a.setState(c, f));
|
|
a.points().each(function (a) {
|
|
(a !== b || ("mute" === a._state && g)) && "select" !== a._state && a.setState(c, f);
|
|
});
|
|
}
|
|
d && a.chartArea.ignoreAnimationFor(f.animation.duration);
|
|
}
|
|
}
|
|
function cz(a) {
|
|
var c = a.series,
|
|
b = c.chartArea.series().items;
|
|
return Dr(b, { value: c.indexer.getValue("x", a._i) }).map(function (b) {
|
|
return b.series._points[b._i];
|
|
});
|
|
}
|
|
function Er(a, c) {
|
|
var b = a.series,
|
|
d = b.rootVisuals,
|
|
e = b.info.type,
|
|
f = b.info.style,
|
|
g = {},
|
|
h = !0 !== b.xAxis.options("crosshair.enabled") && !0 !== b.yAxis.options("crosshair.enabled") && !1 !== b.options("mouseTracking.enabled") && !1 !== b.options("states.hover.enabled");
|
|
f = f.attr.line;
|
|
if (e.drawLine && a.coordinates.line) {
|
|
var k = a.paths.lines ? a.paths.lines.join(" ").replace(/,/g, " ") : tg(a.coordinates.line).join(" ");
|
|
g.pathAnimation = { type: "line", shift: null === c || void 0 === c ? void 0 : c.shift };
|
|
}
|
|
"" !== b.state && (f = b.getStateAttrs(b.state).line);
|
|
return {
|
|
d: k,
|
|
state: f,
|
|
shapeName: "line",
|
|
target: d.line,
|
|
zIndex: b.zIndex + gb.series,
|
|
visGetter: function () {
|
|
return b.visuals.line;
|
|
},
|
|
visSetter: function (a) {
|
|
return (b.visuals.line = a);
|
|
},
|
|
animation: g,
|
|
events: h
|
|
? {
|
|
mouseover: function (a) {
|
|
b.visualizer.debounce.run("unhoverline");
|
|
"select" !== b.state && b.setState("hover");
|
|
},
|
|
mouseout: function (a) {
|
|
b.visualizer.debounce.defer(
|
|
"unhoverline",
|
|
function () {
|
|
"select" !== b.state && "mute" !== b.state && b.setState("");
|
|
},
|
|
150
|
|
);
|
|
},
|
|
}
|
|
: {},
|
|
};
|
|
}
|
|
function Ci(a, c, b, d) {
|
|
var e = c[0],
|
|
f = c[1];
|
|
c = Math.min.apply(Math, H(c));
|
|
e = kg(e / 2, f / 2, c, c);
|
|
b = d || a.series.getPointMarkerType(b && b.currentOptions ? b.currentOptions : b);
|
|
0 === a.series.getPointAttr().pointAttr[""].r && (b = "none");
|
|
return { base: 0 === b.indexOf("url") ? b : Ld(b, e.x, e.y, c, c) };
|
|
}
|
|
function Ld(a, c, b, d, e, f) {
|
|
return $p(a.name ? a.name : a, c, b, d, e, f);
|
|
}
|
|
function Fr(a, c, b) {
|
|
var d = a.series,
|
|
e = c[0],
|
|
f = c[1];
|
|
d = d.ctManager.settingVal("lineSeriesType", d.currentOptions);
|
|
a = Ci(a, c, b);
|
|
switch (d) {
|
|
case "spline":
|
|
e = "M0 " + f + " C " + 0.2 * e + " 0 " + 0.8 * e + " " + 1 * f + " " + e + " 0";
|
|
break;
|
|
case "step":
|
|
e = "M0 " + f + " L " + 0.5 * e + " " + f + " " + 0.5 * e + " 0 " + e + " 0";
|
|
break;
|
|
default:
|
|
e = "M0 " + f + " L " + e + " 0";
|
|
}
|
|
a.extra = e;
|
|
return a;
|
|
}
|
|
function Pl(a, c, b) {
|
|
var d = { base: dc.rectangle(0, 0, c[0], c[1], { r: 2, corners: ["round", "round", "round", "round"] }) };
|
|
b && (a.series.options("forceMarker") || !0 === N(b.currentOptions, ["marker", "visible"])) && ((d.extra = a.getBodyShapeName(b, !0)), O(d.extra) && -1 === d.extra.indexOf("url") && (d.extra = Ld(d.extra, 0, 0, c[0], c[1])));
|
|
return d;
|
|
}
|
|
function Ql(a, c, b, d) {
|
|
var e = b.rect;
|
|
if (!e) return "";
|
|
a = a.series;
|
|
var f = a.ctManager;
|
|
e = ha(e);
|
|
var g = c.currentOptions.marker || {};
|
|
if ((0 === e[2] || 0 === e[3]) && !0 === g.visible) return (d = b.styleSet.markerSize), (b.meta.shape = mb(b.xyz, [d, d])), "";
|
|
g = f.isHoriz() ? 2 : 3;
|
|
1 > e[g] && 0 < e[g] && ((e[g] = 1), 2 === g && --e[0]);
|
|
g = z(N(c.currentOptions, ["outline", "width"]), 1);
|
|
d = md(d, e, g);
|
|
d.id = c.id;
|
|
g = (c = f.isType("gauge", a)) ? a.pane.isHoriz : a.chartArea.isHoriz;
|
|
if (c && "roundcaps" === f.settingVal("columnType", a)) {
|
|
a = d[0];
|
|
f = d[1];
|
|
c = d[2];
|
|
e = d[3];
|
|
g = { caps: g ? { left: "round", right: "round" } : { top: "round", bottom: "round" } };
|
|
void 0 === g && (g = {});
|
|
g = g.caps;
|
|
var h = Math.PI / 2;
|
|
if (g) {
|
|
var k = c / 2,
|
|
l = e / 2,
|
|
m = ["M", a, f];
|
|
g.top ? m.push.apply(m, H(Kc(a + k, f, k, 2 * h, 0))) : m.push.apply(m, H(["L", a + c, f]));
|
|
g.right ? m.push.apply(m, H(Kc(a + c, f + l, l, -h, h))) : m.push.apply(m, H(["L", a + c, f + e]));
|
|
g.bottom ? m.push.apply(m, H(Kc(a + k, f + e, k, 0, 2 * h))) : m.push.apply(m, H(["L", a, f + e]));
|
|
g.left ? m.push.apply(m, H(Kc(a, f + l, l, h, -h))) : m.push("Z");
|
|
a = m;
|
|
} else a = Yh(a, f, c, e);
|
|
} else a = d[2] && d[3] ? dc.square(d[0], d[1], d[2], d[3]) : dc.none(d[0], d[1]);
|
|
Z(b, "collision.body", d);
|
|
return xa(a);
|
|
}
|
|
function Gr(a, c, b) {
|
|
var d,
|
|
e = [];
|
|
if (!a) return { cxy: g, size: e, innerSize: h, offset: k, innerPadding: l };
|
|
b = ha(c);
|
|
c = Math.min(c.width, c.height);
|
|
var f;
|
|
if ((d = a.center)) {
|
|
var g = G(d.split(","), 2);
|
|
d = g[1];
|
|
g = [db(g[0], b[2]), db(d, b[3])];
|
|
}
|
|
if ("undefined" !== (f = I((d = a.size))))
|
|
switch (f) {
|
|
case "string":
|
|
d = G(d.split(","), 2);
|
|
e = d[0];
|
|
d = d[1];
|
|
e = [db(e, c), db(d, c)];
|
|
break;
|
|
case "array":
|
|
c = G(d, 2);
|
|
e = c[0];
|
|
d = c[1];
|
|
e = [db(e, b[2]), db(d, b[3])];
|
|
break;
|
|
default:
|
|
(e = db(d, c)), (e = [e, e]);
|
|
}
|
|
if ((d = a.innerSize)) var h = db(d, 1);
|
|
if ((d = a.offset)) {
|
|
var k = G(d.split(","), 2);
|
|
c = k[1];
|
|
k = [db(k[0], b[2]), db(c, b[3])];
|
|
}
|
|
if ((d = a.innerPadding)) var l = db(d, 1);
|
|
return { cxy: g, size: e, innerSize: h, offset: k, innerPadding: l };
|
|
}
|
|
function Hr(a, c, b) {
|
|
var d = b.xAlignment;
|
|
b = b.yAlignment;
|
|
return lo(a, c, d, d, b, b);
|
|
}
|
|
function dz(a, c, b, d, e, f) {
|
|
var g = a.series,
|
|
h = d.meta,
|
|
k = c.visuals,
|
|
l,
|
|
m = g.pane || g.chartArea;
|
|
c.labelAutoHidden = !1;
|
|
var n = m.collisionManager,
|
|
p = function (b, d) {
|
|
var e = a.collidePointBoxes ? b : Hr(h.labelTextBox, b, h.labelAttr);
|
|
if (d ? !n.collideLabels(e) : !n.collideAll(e, c.id)) return h.shape && Ad(h.shape, va(b)) && !$c(h.shape, b) ? !1 : !0;
|
|
},
|
|
q = function (b) {
|
|
return p(b, !0);
|
|
};
|
|
a.initPointLabel(c, d, b);
|
|
k = a.getLabelWrapper(k.label, b);
|
|
m = h.labelSize.slice(0);
|
|
var r = a.possibleLabelPositions(c, "", b, d, e);
|
|
e = h.labelAttr;
|
|
d.meta.label = void 0;
|
|
d.meta.labelPossible = r;
|
|
q =
|
|
S(r, function (b) {
|
|
return p(b, !1);
|
|
}) || S(r, q);
|
|
d.meta.isVertical && (l = !0);
|
|
q || !1 !== b.label.autoHide || (r.length ? (q = r[0]) : ((q = h.xy), h.shape && (q = va(h.shape)), (q = [q[0] - m[0] / 2, q[1] - m[1] / 2, m[0], m[1]]), (r = [q])));
|
|
r[0] && (q || a.isRadial)
|
|
? ((d = d.meta.label = q || r[0]) && d.rotate && !t(e.rotate) && (e.rotate = d.rotate),
|
|
t(e.rotate) && nb(e.rotate)
|
|
? ((q = va(d)), A(e, { x: q[0] - m[0] / 2, y: q[1] - m[1] / 2 }), (e.rotate = [e.rotate, m[0] / 2, m[1] / 2]))
|
|
: l
|
|
? ((q = va(d)), A(e, { x: q[0] - m[0] / 2, y: q[1] - m[1] / 2 }), (e.rotate = [-90, m[0] / 2, m[1] / 2]))
|
|
: (A(e, { x: d[0], y: d[1] }), (e.rotate = [0, 0, 0])),
|
|
(e = a.render_applyDynamicAttrVals([e, { zIndex: g.zIndex + gb.label }], f)),
|
|
(e.zIndex = g.zIndex + gb.label),
|
|
(a.hcLabelsOnly || d.isInside) && b.label.hcColor && (e.fill = b.label.hcColor),
|
|
k.attr(e))
|
|
: (r.length && ((b = r[0]), k.attr({ x: b[0], y: b[1] })),
|
|
a.hideVisual(k),
|
|
(h.autoHidden = !0),
|
|
(c.labelAutoHidden = !0),
|
|
Ma.emit("tip", g.name || "", "pLabelHidden", { data: [g.name || g.currentOptions.id || " ", Ir(h.labelText, 10)], container: g.chartArea.chart.getWrapper() }));
|
|
}
|
|
function ez(a, c, b, d, e, f) {
|
|
var g = a.series;
|
|
b = g.isVisible;
|
|
d = !1 === (c.currentOptions.label || {}).autoHide;
|
|
var h = e.meta,
|
|
k = ha(a.series.contentRect()),
|
|
l = 0,
|
|
m = h.labelSize,
|
|
n = h.labelObstacles;
|
|
h.marker && (l = e.meta.marker[2]);
|
|
h = fz;
|
|
("line" === a.kind || "area" === a.kind) && g.ctSvIs("lineSeriesType", "step") && (h = gz);
|
|
e = mb(e.xyz, [l, l]);
|
|
var p = h(a, e, n, c._i, f);
|
|
e = hz(a, c);
|
|
w(e, function (b) {
|
|
var a = "o" === b.align[0],
|
|
c = "o" === b.vAlign[0];
|
|
a = (-1 < b.align.indexOf("left") || -1 < b.align.indexOf("right")) && (-1 < b.vAlign.indexOf("top") || -1 < b.vAlign.indexOf("bottom")) && p.outCorner ? p.outCorner : a || c ? p.out : p.in;
|
|
b.box = he(H([0, 0], m), a, b.align, b.vAlign).box;
|
|
});
|
|
e =
|
|
b && d
|
|
? sa(e, function (b) {
|
|
return !$c(k, b.box);
|
|
})
|
|
: b
|
|
? ea(e, function (b) {
|
|
return $c(k, b.box);
|
|
})
|
|
: e;
|
|
g = g.info.type.drawArea && !a.isRadial ? iz : g.info.type.drawLine && 0 === n.length ? jz : kz;
|
|
e.length && (e = g(e, a, c, p, f));
|
|
b &&
|
|
d &&
|
|
(e = sa(e, function (b) {
|
|
return !$c(k, b.box);
|
|
}));
|
|
return B(e, function (b) {
|
|
return b.box;
|
|
});
|
|
}
|
|
function Jr(a, c) {
|
|
var b = a.series;
|
|
a = b.info.style.base;
|
|
c = b.info.type.drawMarker;
|
|
var d = b.getUniqueColors(3);
|
|
1 < d.length ? (d.push(0), (a = oc(d))) : (a = a.color);
|
|
b = b.currentOptions.defaultPoint || {};
|
|
d = b.marker || {};
|
|
c = c ? A({}, b, d) : b;
|
|
b = z(c.fill, c.color, "currentColor");
|
|
d = z(N(c, ["outline", "color"]), c.color, "outline");
|
|
var e = z(N(c, ["outline", "width"]), 1);
|
|
b = { fill: ia(b, a), stroke: ia(d, a), "stroke-width": ua(e, 0, 3) };
|
|
c.hatch && ((b.hatch = ia(c.hatch, a)), (b.hatchPattern = c.hatchPattern));
|
|
return { base: b };
|
|
}
|
|
function lz(a, c, b, d, e, f) {
|
|
var g = b.xyz,
|
|
h = a.series,
|
|
k;
|
|
a = a.getBodyShapeName(c);
|
|
var l = b.rect;
|
|
if ("string" === typeof a && vb(a, "url(")) return a;
|
|
if (!(k = b.path)) {
|
|
k = z(e, 5);
|
|
e = c.currentOptions.marker || {};
|
|
l || (l = kg(g[0], g[1], 2 * k, 2 * k));
|
|
if ((k = Kr(e.offset))) l = Wo(Oa(l), k[0], k[1]);
|
|
g = b.meta.snappedBox = [l.x, l.y, l.width, l.height];
|
|
a && !~mz.indexOf(a) && ((k = N(e, ["outline", "width"]) || 1), (g = b.meta.snappedBox = md(d, g, k)));
|
|
b.path
|
|
? (k = b.path)
|
|
: ((d = h.pointBodyDGenerator),
|
|
0 === l.width && 0 === l.height && (a = "none"),
|
|
(k = d && d(a, b)),
|
|
k ||
|
|
((k = Ld(a, g[0], g[1], g[2], g[3])) || (k = Ld("none", g[0], g[1], g[2], g[3])),
|
|
"none" !== a &&
|
|
((d = e.rotate), O(d) && -1 < d.indexOf("%") && (d = parseFloat(c.replaceTokens(d))), d && ((c = "auto" === d ? N(b, ["arc", "angle"]) : d), "circle" !== a && (k = (k.isPath ? k : Aa(k)).rotate(c + 90))))));
|
|
f && (b.meta.marker = ha(l));
|
|
}
|
|
return xa(k);
|
|
}
|
|
function nz(a, c, b, d, e) {
|
|
var f = b.xyz,
|
|
g = b.xyzs;
|
|
d = z(d, 5);
|
|
var h = a.series.xAxis;
|
|
f = [h && h.isStackedFull() ? (f[0] + g[0]) / 2 : f[0], f[1]];
|
|
if ("string" === typeof c && vb(c, "url(")) return c;
|
|
e = nd(e, f, 1);
|
|
e = kg(e[0], e[1], 2 * d, 2 * d);
|
|
e = (e = Ld(c, e.x, e.y, e.width, e.height)) ? (e.pop ? xa(e) : e) : "M0 0";
|
|
d = N(a.currentOptions, ["marker", "rotate"]);
|
|
O(d) && -1 < d.indexOf("%") && (d = parseFloat(a.replaceTokens(d)));
|
|
d && "circle" !== c && ((a = "auto" === d ? N(b, ["arc", "angle"]) : d), (e = Aa(e).rotate(a + 90)));
|
|
return e;
|
|
}
|
|
function Lr(a) {
|
|
var c = (a.pane || a.chartArea).rootVisuals,
|
|
b = c.dataContent;
|
|
a.rootVisuals = { area: b, line: b, points: b, pointHalo: c.axisMarkersFront };
|
|
}
|
|
function Ra(a) {
|
|
a && a.attr({ opacity: 0 });
|
|
}
|
|
function oz(a, c) {
|
|
var b = a.series;
|
|
c = b.rootVisuals;
|
|
var d,
|
|
e = b.info.style.attr.area;
|
|
a.coordinates.area && (d = a.paths.areas ? a.paths.areas.join(" ").replace(/[,Z]/g, " ") + "Z" : tg(a.coordinates.area).join(" "));
|
|
"" !== b.state && (e = b.getStateAttrs(b.state).area);
|
|
return {
|
|
d: d,
|
|
state: e,
|
|
shapeName: "area",
|
|
target: c.area,
|
|
zIndex: b.zIndex + gb.series,
|
|
visGetter: function () {
|
|
return b.visuals.area;
|
|
},
|
|
visSetter: function (a) {
|
|
return (b.visuals.area = a);
|
|
},
|
|
};
|
|
}
|
|
function pz(a, c, b, d, e, f, g) {
|
|
var h = a.series,
|
|
k = h.info.type.roundCaps,
|
|
l = a.isHoriz(),
|
|
m = c.meta;
|
|
g = m.labelObstacles;
|
|
var n = c.meta.shape.slice(0);
|
|
k && (n = Bl(n, l ? [0, -n[3] / 2] : [-n[2] / 2, 0]));
|
|
k = 0;
|
|
m.marker && (k = c.meta.marker[2]);
|
|
m = { u: 0, r: 0, d: 0, l: 0 };
|
|
m[b] = k;
|
|
var p = qz(a, n, b, g, m, c);
|
|
c = B(f, function (b) {
|
|
var a = !Mr(b),
|
|
c = a ? p.out : p.in;
|
|
b = he(H([0, 0], e), c, b.align, b.vAlign).box;
|
|
b.isInside = !a;
|
|
return b;
|
|
});
|
|
w(c, function (b, a) {});
|
|
var q = [];
|
|
w(c, function (b) {
|
|
(h.pane || !a.series.isVisible || $c(d, b)) && q.push(b);
|
|
});
|
|
return q;
|
|
}
|
|
function rz(a, c, b) {
|
|
var d = a.series,
|
|
e = d.pane;
|
|
b = e && e.getCompleteVisInfo ? e.getCompleteVisInfo(b) : Cc(ha(b.rectComplete));
|
|
a = sz(a, c);
|
|
return {
|
|
d: b,
|
|
state: a,
|
|
target: d.rootVisuals.points,
|
|
zIndex: d.zIndex + gb.complete,
|
|
visGetter: function () {
|
|
return c.visuals.rectComplete;
|
|
},
|
|
visSetter: function (b) {
|
|
return (c.visuals.rectComplete = b);
|
|
},
|
|
};
|
|
}
|
|
function sz(a, c) {
|
|
a = { hatch: "rgba(0,0,0,.8)", stroke: "#000", "stroke-opacity": 0.3, "stroke-width": 1, hatchPattern: "light-upward-diagonal", zIndex: a.series.zIndex + gb.complete };
|
|
var b = c.currentOptions.complete || {},
|
|
d = c.series.currentOptions.defaultPoint || {};
|
|
c = function (a) {
|
|
return b[a] || C(d, "complete." + a);
|
|
};
|
|
ni(a, c("fill"));
|
|
ar(a, c("hatch"));
|
|
return a;
|
|
}
|
|
function tz(a, c) {
|
|
return Ai(a, { x: c.x, y: [c.open, c.close], subvalue: { range: [c.low, c.high] } }, ["x", "y", "subvalue"]);
|
|
}
|
|
function uz(a, c) {
|
|
var b = { x: c.x, y: [c.low, c.high], subvalue: { range: [c.open, c.close] } };
|
|
c.name && (b.name = c.name);
|
|
return Ai(a, b, ["x", "y", "subvalue"]);
|
|
}
|
|
function vz(a, c, b, d) {
|
|
var e = b.xyz,
|
|
f = b.xyzs,
|
|
g = b.sv,
|
|
h = b.svs;
|
|
a = a.isHoriz();
|
|
var k = b.rect;
|
|
b = a ? 0 : k.width / 2;
|
|
a = a ? k.height / 2 : 0;
|
|
c = z(N(c.currentOptions, ["outline", "width"]), 1);
|
|
d = ue(d, [f, e, [h[0] - b, h[1] - a], h, [g[0] + b, g[1] + a], g], c);
|
|
return xa(["M", d[0], "L", d[1], "M", d[2], "L", d[3], "M", d[4], "L", d[5]]);
|
|
}
|
|
function wz(a, c, b, d, e) {
|
|
d = Nr(a, c, d);
|
|
return [Nr(a, c, b), "Z", d, "z"];
|
|
}
|
|
function Nr(a, c, b, d) {
|
|
void 0 === d && (d = !0);
|
|
var e = [];
|
|
a -= b;
|
|
c -= b;
|
|
var f = 2 * b,
|
|
g = 2 * b;
|
|
b *= 0.3318;
|
|
d && e.push("M", a + f / 2, c);
|
|
e.push("C", a + f + b, c, a + f + b, c + g, a + f / 2, c + g, "C", a - b, c + g, a - b, c, a + f / 2, c);
|
|
return xa(e);
|
|
}
|
|
function xz(a, c, b, d) {
|
|
var e = a.series;
|
|
c = b.xyz;
|
|
var f = b.xyzs,
|
|
g = "M" + c[0] + " " + c[1],
|
|
h = Ha(c[2]),
|
|
k = f[2] !== c[2];
|
|
e = e.options("shape.type") || "circle";
|
|
d = nd(d, c, 1);
|
|
if (h) (b.pathD = b.meta.bodyD = g), (b.hitTest = xc);
|
|
else {
|
|
k ? (g = wz(d[0], d[1], c[2], f[2]).join(" ")) : ((d = kg(d[0], d[1], f[2], f[2])), (g = Ld(e, d.x, d.y, d.width, d.height)));
|
|
b.pathD = b.meta.bodyD = g;
|
|
var l = b.xyz,
|
|
m = Math.max(b.xyz[2] / 2, 5),
|
|
n = a.getLabelHitTest();
|
|
b.hitTest = function (b, a) {
|
|
return Xb(l, [b, a]) <= m || n(this, b, a);
|
|
};
|
|
}
|
|
return xa(g);
|
|
}
|
|
function yz(a) {
|
|
a = pa(a);
|
|
return !(1 === a.length && gc(a, Or).length);
|
|
}
|
|
function zz(a) {
|
|
return function () {
|
|
var c = [];
|
|
a.each(function (b) {
|
|
c = c.concat(b._points);
|
|
});
|
|
return c;
|
|
};
|
|
}
|
|
function Az(a) {
|
|
return function (a) {};
|
|
}
|
|
function Bz(a, c, b, d) {
|
|
w(c.dataPositions.items, function (b) {
|
|
b = Dr(a, b);
|
|
var c = 0,
|
|
d = 0,
|
|
e = {},
|
|
k = b[0].series.yAxis.isStackedFull(),
|
|
l = 0;
|
|
k &&
|
|
w(b, function (b) {
|
|
b = b.series.indexer.getItem(b._i).y;
|
|
l += b;
|
|
});
|
|
w(b, function (b) {
|
|
var a = b.series.indexer.getItem(b._i).y,
|
|
f = k ? a / l : a;
|
|
0 <= f ? ((e.ys = c), (e.yr = a), (c = e.ye = f + c)) : ((e.ys = d), (e.yr = f), (d = e.ye = d + f));
|
|
b.series.indexer.indexObject(e, b._i);
|
|
});
|
|
});
|
|
a.reverse();
|
|
w(a, function (a) {
|
|
a.zIndex = b += 8;
|
|
a.seriesDirty.pos(!0);
|
|
});
|
|
return b;
|
|
}
|
|
function Cz(a, c, b) {
|
|
var d = c.dataPositions.items,
|
|
e = function (b) {
|
|
return t(b.z) ? b.z : t(b.y) ? b.y : 1;
|
|
},
|
|
f = [],
|
|
g = [],
|
|
h = a.length,
|
|
k = c.range.max - c.range.min,
|
|
l = function (b, a) {
|
|
b = Bi(b, a);
|
|
return e(b.series.indexer.getItem(b._i));
|
|
},
|
|
m = b
|
|
? B(a, function (b) {
|
|
return Ta(
|
|
B(d, function (a) {
|
|
return l(b, a);
|
|
})
|
|
);
|
|
})
|
|
: B(d, function (b) {
|
|
return Ta(
|
|
B(a, function (a) {
|
|
return l(a, b);
|
|
})
|
|
);
|
|
}),
|
|
n = function (b, a, c, d, e, h) {
|
|
var k = {};
|
|
f.push([e, c]);
|
|
f.push([c, h + e]);
|
|
g.push([a - d, a]);
|
|
g.push([a, a + d]);
|
|
k.xs = a - d;
|
|
k.xe = a + d;
|
|
b.series.indexer.indexObject(k, b._i);
|
|
};
|
|
if (b)
|
|
w(a, function (b, a) {
|
|
var f = c.range.min;
|
|
w(d, function (c, d) {
|
|
c = Bi(b, c);
|
|
var g = c.series.indexer.getItem(c._i);
|
|
g = (e(g) * k) / m[a];
|
|
n(c, d, f + g / 2, 0.5, f, g);
|
|
f += g;
|
|
});
|
|
});
|
|
else {
|
|
var p = Ta(m),
|
|
q = c.range.min;
|
|
w(d, function (b, c) {
|
|
w(a, function (a, d) {
|
|
a = Bi(a, b);
|
|
var e = (m[c] * k) / (p * h),
|
|
f = 0.5 / h;
|
|
n(a, c + d / h - 0.5 + f, q + e / 2, f, q, e);
|
|
q += e;
|
|
});
|
|
});
|
|
}
|
|
var r = function (b, a, c) {
|
|
for (var d, e = 0, f = b.length; e < f; e++) {
|
|
var g = b[e],
|
|
h = g,
|
|
k = Math.round(100 * c) / 100;
|
|
if (k >= Math.round(100 * h[0]) / 100 && k <= Math.round(100 * h[1]) / 100) {
|
|
b = a[e];
|
|
d = Y(b[0], b[1], g[0], g[1], c);
|
|
break;
|
|
}
|
|
}
|
|
return d;
|
|
};
|
|
c._stackTranslators = {
|
|
backward: function (b) {
|
|
return r(f, g, b);
|
|
},
|
|
forward: function (b) {
|
|
return r(g, f, b);
|
|
},
|
|
};
|
|
}
|
|
function Dz(a, c) {
|
|
for (
|
|
var b = { points: [] },
|
|
d,
|
|
e,
|
|
f,
|
|
g = function (b) {
|
|
return zc(e, f, b, b);
|
|
},
|
|
h = function (b) {
|
|
return B(b, function (b) {
|
|
return b.pop ? { x: b[0], y: b[1], z: b[2] } : b;
|
|
});
|
|
},
|
|
k = function (b, a) {
|
|
var c,
|
|
d = 0;
|
|
w(b, function (b) {
|
|
t((c = b[a])) && (d += c);
|
|
});
|
|
return d;
|
|
},
|
|
l = function (l, m) {
|
|
f = a[l];
|
|
d = h(f.points);
|
|
c
|
|
? w(d, function (a) {
|
|
b.points.push(A({ cpbIndex: l }, a));
|
|
})
|
|
: ((m = B(d, function (b) {
|
|
return b.y;
|
|
})),
|
|
(e = { y: Ta(m), x: k(d, "x") }),
|
|
(e.subvalue = { values: m }),
|
|
w(["id", "name"], g),
|
|
(b.points[l] = A(e, f.defaultPoint || {})));
|
|
},
|
|
m = 0,
|
|
n = a.length;
|
|
m < n;
|
|
m++
|
|
)
|
|
l(m);
|
|
b.isMerged = !0;
|
|
return b;
|
|
}
|
|
function Pr(a) {
|
|
var c = a.indexer,
|
|
b = a.info,
|
|
d = a.options(),
|
|
e = d.xAxis,
|
|
f = a.chart.chartItemManager.exists(d.yAxis) || {};
|
|
e = a.chart.chartItemManager.exists(e) || {};
|
|
var g,
|
|
h = b.type.seriesType,
|
|
k = function (b) {
|
|
b = a.replaceTokens({ token: b });
|
|
return "-" === b ? "" : b;
|
|
},
|
|
l = k("%xAxisLabel"),
|
|
m = k("%yAxisLabel");
|
|
k = k("%zAxisLabel");
|
|
b.type.isMapLayer && (g = a.chart.geoParser.findFeatureProps(a, a.chart.internal.mappingInfo));
|
|
return {
|
|
vScale: N(f.currentOptions, ["scale", "type"]) || f.type || f.dataType,
|
|
xScale: e.type || e.dataType,
|
|
ct: a.ctManager.settingVal("chartType", d),
|
|
st: h,
|
|
mapInfo: g,
|
|
xNotSorted: !b.xIsSorted,
|
|
yAxisLabel: m,
|
|
xAxisLabel: l,
|
|
zAxisLabel: k,
|
|
sName: d.name,
|
|
hasZ: c.hasKey("z"),
|
|
hasX: c.hasKey("x"),
|
|
hasRange: c.hasAllKeys(["ys", "ye"]) && !c.hasKey("y"),
|
|
};
|
|
}
|
|
function Di(a, c, b) {
|
|
a.push(we(a[a.length - 1], c, b));
|
|
}
|
|
function we(a, c, b) {
|
|
return [a[0] + c[0] * b, a[1] + c[1] * b];
|
|
}
|
|
function Qr(a, c) {
|
|
var b;
|
|
void 0 === c && (c = Gb);
|
|
var d = [];
|
|
try {
|
|
for (var e = ya(a), f = e.next(); !f.done; f = e.next()) {
|
|
var g = f.value,
|
|
h = c(g);
|
|
t(h) && !h.pop && d.push(g);
|
|
}
|
|
} catch (l) {
|
|
var k = { error: l };
|
|
} finally {
|
|
try {
|
|
f && !f.done && (b = e.return) && b.call(e);
|
|
} finally {
|
|
if (k) throw k.error;
|
|
}
|
|
}
|
|
return d;
|
|
}
|
|
function xe(a, c) {
|
|
var b = function (b) {
|
|
return c[0] === b[0] && c[1] === b[1];
|
|
},
|
|
d = function (b) {
|
|
return c === b;
|
|
};
|
|
b = c.pop ? b : d;
|
|
for (d = 0; d < a.length; d++) if (b(a[d])) return d;
|
|
return -1;
|
|
}
|
|
function Rr(a) {
|
|
var c = [[], [], [], []];
|
|
a.each(function (b) {
|
|
return c[b.sideIndex()].push(b);
|
|
});
|
|
c[0].reverse();
|
|
c[3].reverse();
|
|
return c;
|
|
}
|
|
function Ei(a) {
|
|
var c = a.isTransitioning
|
|
? a._ticks
|
|
: ea(a._ticks, function (b) {
|
|
return !b.invalid;
|
|
});
|
|
a = Qr(c, function (b) {
|
|
return b.value();
|
|
});
|
|
c = Ez(c, function (b) {
|
|
return b.value();
|
|
});
|
|
var b = a.length;
|
|
c = sa(c, function (b) {
|
|
return t(b.currentOptions._lI) ? b.currentOptions._lI : -1;
|
|
});
|
|
var d = function (a) {
|
|
return !b && a._rngData && 0 === a._rngData.level && (!a.currentOptions.rangeMode || "auto" === a.currentOptions.rangeMode);
|
|
},
|
|
e = [],
|
|
f = a.slice(0);
|
|
w(c, function (b) {
|
|
b._isBaseRange = d(b);
|
|
});
|
|
var g = ea(c, function (b) {
|
|
return b._isBaseRange;
|
|
});
|
|
f.push.apply(f, H(g));
|
|
e.push.apply(
|
|
e,
|
|
H(
|
|
ea(c, function (b) {
|
|
return !d(b);
|
|
})
|
|
)
|
|
);
|
|
var h = 1;
|
|
b ||
|
|
w(e, function (b) {
|
|
b._rngData && b._rngData.level < h && (h = b._rngData.level);
|
|
});
|
|
var k;
|
|
g.length && 0 === h && (k = !0);
|
|
return { valTicks: a, rngTicks: c, valArrange: f, rngArrange: e, fullRangesLevel: h, sharesBase: k };
|
|
}
|
|
function Ez(a, c) {
|
|
var b;
|
|
void 0 === c && (c = Gb);
|
|
var d = [];
|
|
try {
|
|
for (var e = ya(a), f = e.next(); !f.done; f = e.next()) {
|
|
var g = f.value,
|
|
h = c(g);
|
|
t(h) && 2 === h.length && d.push(g);
|
|
}
|
|
} catch (l) {
|
|
var k = { error: l };
|
|
} finally {
|
|
try {
|
|
f && !f.done && (b = e.return) && b.call(e);
|
|
} finally {
|
|
if (k) throw k.error;
|
|
}
|
|
}
|
|
return d;
|
|
}
|
|
function Sr(a, c) {
|
|
var b = a.isHoriz,
|
|
d = S(a._ticks, function (b) {
|
|
return !b._isRange;
|
|
}),
|
|
e = Ei(a),
|
|
f = a._rngData,
|
|
g = f.levels,
|
|
h = f.duV;
|
|
f = function (b) {
|
|
for (var a = 0; a < c.length; a++) b(c[a], a);
|
|
};
|
|
f(function (b) {
|
|
var a = b._rngData;
|
|
b = b._metrics.textSize.slice(0);
|
|
a.labelSize = a.rotate ? [b[1], b[0]] : b;
|
|
});
|
|
var k = a.tickMetricsData,
|
|
l = a.sideIndex(),
|
|
m = k.getMaxLength(),
|
|
n = 0 === l || 1 === l,
|
|
p = 0 === l || 3 === l,
|
|
q = 0,
|
|
r = [0, 0],
|
|
u = 0;
|
|
k = e.sharesBase ? 0 : k.maxLength;
|
|
r[h.vc] = p ? m - k : k;
|
|
var x = function (b) {
|
|
var a = !1;
|
|
b._rngData.rotate && (a = !a);
|
|
return a;
|
|
},
|
|
v = function (b) {
|
|
var a = b._metrics.textSize;
|
|
return x(b) ? [a[1], a[0]] : a.slice(0);
|
|
},
|
|
y = function (b) {
|
|
return ea(c, function (a) {
|
|
return a._rngData.visible && a._rngData.level === b;
|
|
});
|
|
};
|
|
k = function (c) {
|
|
c = y(c);
|
|
if (c.length) {
|
|
var f = Math.max.apply(
|
|
Math,
|
|
H(
|
|
c.map(function (b) {
|
|
return b._rngData.labelOnTop ? 0 : v(b)[1];
|
|
})
|
|
)
|
|
),
|
|
g = 0,
|
|
k = function (b, a, c) {
|
|
var d = we(r, h.o, q);
|
|
d[h.hc] = b._metrics.px[0];
|
|
d = [d];
|
|
Di(d, h.o, a);
|
|
Di(d, h.f, la(b._metrics.px[0], b._metrics.px[1]));
|
|
Di(d, h.i, a);
|
|
return { points: d, options: A({}, c) };
|
|
},
|
|
m,
|
|
p = function (b, a) {
|
|
b = y(b + 1) || [];
|
|
if (b.length) {
|
|
b = b.map(function (b) {
|
|
return b._metrics.px;
|
|
});
|
|
for (var c = !1; !c && b.length; )
|
|
if (0 < bg(b, a).length) c = !0;
|
|
else break;
|
|
return c;
|
|
}
|
|
return !0;
|
|
},
|
|
D = [];
|
|
w(c, function (b, a) {
|
|
a = b._rngData;
|
|
var c = v(b),
|
|
e = b.currentOptions.rangeMode;
|
|
e = !d && 0 === a.level && (!e || "auto" === e) && !b._rngData.visPartial;
|
|
var f = a.labelSize;
|
|
a.labelOnTop || ((b = e ? f[1] / 2 + b.currentOptions.padding : Math.max(14, c[1] / 2)), D.push(b));
|
|
});
|
|
w(c, function (c) {
|
|
m = [];
|
|
var u = c._rngData,
|
|
y = c._metrics.px,
|
|
t = Wf(u.labelRange),
|
|
F = v(c),
|
|
E = c.currentOptions.rangeMode;
|
|
E = !d && 0 === u.level && (!E || "auto" === E) && !c._rngData.visPartial;
|
|
var w = u.labelSize,
|
|
R = Math.max.apply(Math, H(D));
|
|
if (u.labelOnTop) {
|
|
var M = we(r, h.o, q + 20 + F[1] / 2);
|
|
M[h.hc] = t;
|
|
u.labelBbox = mb(M, F);
|
|
u.shapeOptions = k(c, 14, { gapLength: 0, tipLength: 20 * (1 - 0.7), tipPos: Y(0, 1, y[0], y[1], M[h.hc]) });
|
|
y = p(u.level, u.labelRange);
|
|
g = Math.max(g, u.autoLabelOnTop && !y ? 20 : u.labelOnTop ? F[1] + 20 : F[1]);
|
|
} else (M = we(r, h.o, q + R)), (M[h.hc] = t), (u.labelBbox = mb(M, F)), (u.shapeOptions = k(c, R, { gapLength: w[0], tipPos: Y(0, 1, y[0], y[1], M[h.hc]) })), (g = Math.max(g, f));
|
|
0 === u.level && e.sharesBase && (g = Math.max(g, a.tickMetricsData.maxLength));
|
|
u.labelCxy = M;
|
|
if ((u = !E)) (u = x(c)), b || (u = !u);
|
|
c._cxyRotate = u ? (0 === l ? -90 : n ? 90 : -90) : void 0;
|
|
m.push(c.currentOptions.padding);
|
|
});
|
|
c = g + Math.max.apply(Math, H(m));
|
|
q += c;
|
|
u += c;
|
|
}
|
|
};
|
|
for (var D = 0; D < g.length; D++) k(D);
|
|
f(function (b) {
|
|
if (b._rngData.visible) {
|
|
var a = b._rngData,
|
|
c = Ua(a.shapeOptions.points);
|
|
b._positionData = { tickPoints: a.shapeOptions.points, textBBox: mb(a.labelCxy, b._metrics.textSize), bbox: Ea([a.labelBbox, c]) };
|
|
}
|
|
});
|
|
r[h.vc] = p ? m : 0;
|
|
return { ticks: a._rngData.ticks, levels: g, edges: a._rngData.edges, origin: r, depth: u, duV: h };
|
|
}
|
|
function Rl(a) {
|
|
a = a.currentOptions.hoverAction;
|
|
return t(a) ? "none" !== a && !1 !== a : !0;
|
|
}
|
|
function Tr(a) {
|
|
var c = a.axis.tickPositions,
|
|
b = a._value;
|
|
c.custom.slice(0);
|
|
var d = c.minor || [];
|
|
c = xe(c, b);
|
|
return "custom" === a.type ? (a.rank = 1) : 0 === c ? ((a.isFirst = !0), (a.rank = 2)) : -1 === xe(d, b) ? (a.rank = 3) : (a.rank = 5);
|
|
}
|
|
function Fz(a) {
|
|
for (
|
|
var c = Ei(a).valArrange,
|
|
b = function (b) {
|
|
if (-1 < b)
|
|
for (var d = c.length; b < d; b++) {
|
|
var e = c[b];
|
|
if (a.tickVisible(e.value()) && !e._isSquished) return b;
|
|
}
|
|
return -1;
|
|
},
|
|
d = 0,
|
|
e = c.length - 1;
|
|
d < e;
|
|
d++
|
|
) {
|
|
var f = c[d];
|
|
f._isSquished = !1;
|
|
a.tickVisible(f.value()) ? (f._age = 0) : f._age++;
|
|
}
|
|
d = 0;
|
|
f = !1;
|
|
for (var g, h, k, l; !f; ) {
|
|
var m = b(d);
|
|
e = b(m + 1);
|
|
if (-1 < m && -1 < e) {
|
|
m = c[m];
|
|
g = c[e];
|
|
h = l = !1;
|
|
var n = m.angledAttr();
|
|
"angled" === a.labelMode && 0 !== n.rotate[0]
|
|
? ((h = m._metrics), (k = g._metrics), (h = qv(z(h.px[0], h.px), z(k.px[0], k.px), h.textSize, k.textSize, n.rotate[0], z(m.currentOptions.padding, 0) + z(g.currentOptions.padding, 0))))
|
|
: m._cxyRotate
|
|
? ((h = [va(m._bboxClipped), va(g._bboxClipped)]), (h = [ik(m._bboxClipped, H([m._cxyRotate], h[0])), ik(g._bboxClipped, H([g._cxyRotate], h[1]))]), (h = nv(h[0], h[1])))
|
|
: (h = zd(m._bboxClipped, g._bboxClipped));
|
|
h && (g.rank > m.rank ? (l = g._isSquished = !0) : g.rank < m.rank ? (m._isSquished = !0) : (l = g._isSquished = !0));
|
|
d = l ? d : e;
|
|
} else f = !0;
|
|
}
|
|
}
|
|
function wf(a, c, b) {
|
|
void 0 === b && (b = {});
|
|
var d = c.metrics(b),
|
|
e = d.px,
|
|
f = d.textSize,
|
|
g = d.tickLength,
|
|
h = a.sideIndex(),
|
|
k = 0 === h || 1 === h,
|
|
l = a.tickMetricsData;
|
|
h = "inside" === c.currentOptions.placement;
|
|
var m = c.options("padding") || 0,
|
|
n = h ? 0 : l.getMaxLength(),
|
|
p = 2 === e.length;
|
|
e = c._metrics.px = a.getCaLen(c.value());
|
|
e.pop && e.length && (e = (e[0] + e[1]) / 2);
|
|
Ha(e) && (e = 0);
|
|
var q = 0 === a.currentOptions.anchorWidth ? 0.5 : 0,
|
|
r = a.viewState.caRect,
|
|
u = r.x,
|
|
x = u + r.width,
|
|
v = r.y;
|
|
r = v + r.height;
|
|
a.isHoriz
|
|
? (p && (q - e > u && (e = u + q), q + e > x && (e = x - q)),
|
|
(p = h ? 0 : 1),
|
|
k
|
|
? ((k = h ? 1 : -1),
|
|
(g = [
|
|
[e, n],
|
|
[e, n + k * d.tickLength],
|
|
]),
|
|
(e = [e - f[0] / 2, g[1][1] + k * m + k * (h ? 0 : f[1]), f[0], p * f[1]]))
|
|
: ((k = h ? -1 : 1),
|
|
(g = [
|
|
[e, 0],
|
|
[e, k * g],
|
|
]),
|
|
(e = [e - f[0] / 2, g[1][1] + k * m + f[1] * (p - 1), f[0], p * f[1]])),
|
|
(f = e[3] + (h ? 0 : d.tickLength + d.tickPadding || 0)))
|
|
: (p && (q - e > v && (e = v + q), q + e > r && (e = r - q)),
|
|
(q = C(c.currentOptions, "label.align") || k ? "left" : "right"),
|
|
(p = h ? 0 : 1),
|
|
k
|
|
? ((k = h ? -1 : 1),
|
|
(g = [
|
|
[0, e],
|
|
[k * d.tickLength, e],
|
|
]),
|
|
(e = ["right" === q ? g[1][0] + k * m + p * l.maxTextSize[0] - f[0] : g[1][0] + k * m + f[0] * (p - 1), e - f[1] / 2, p * f[0], f[1]]))
|
|
: ((k = h ? 1 : -1),
|
|
(g = [
|
|
[n, e],
|
|
[n + k * d.tickLength, e],
|
|
]),
|
|
(e = ["right" === q ? g[1][0] + k * m - p * f[0] : g[1][0] + k * m - p * l.maxTextSize[0], e - f[1] / 2, p * f[0], f[1]])),
|
|
(f = e[2] + (h ? 0 : d.tickLength + d.tickPadding || 0)));
|
|
l = g.slice(0);
|
|
"angled" === a.labelMode ? (c._positionData || (c._positionData = { tickPoints: g, textBBox: e }), (m = c.angledBounds())) : (m = e.slice(0));
|
|
l.push.apply(l, H(ie(m, "tl,br")));
|
|
l = c._bbox = Ua(l);
|
|
h && ((l[a.isHoriz ? 3 : 2] = 0), (l[a.isHoriz ? 1 : 0] = 0));
|
|
if (b.tickPointsOnly) return (c._positionData.tickPoints = g), c._positionData;
|
|
a = c._bboxClipped = e.slice(0);
|
|
a[2] = d.textSize[0];
|
|
a[3] = d.textSize[1];
|
|
return (c._positionData = { tickPoints: g, textBBox: e, bbox: l, textLength: f });
|
|
}
|
|
function Gz(a) {
|
|
var c,
|
|
b = Ei(a),
|
|
d = b.rngTicks,
|
|
e = b.rngArrange;
|
|
b = a.duV();
|
|
var f = !1;
|
|
if (d && d.length) {
|
|
a.isZoomed || "category" !== a.type || (f = !0);
|
|
var g = d[0].getVisualTargets({}, !0).tick,
|
|
h = b.hc;
|
|
d = rb(ha(a.viewState.caRect), -8);
|
|
var k = we(d, b.i, d[h + 2]);
|
|
k.push(0, 0);
|
|
d = Ea([d, k]);
|
|
var l = Yb(d);
|
|
k = hb([l[h], l[h] + 8, l[h + 2] - 8, l[h + 2]], function (b) {
|
|
return na(Y(0, 1, l[h], l[h + 2], b), 2);
|
|
});
|
|
var m = f ? [1, 1, 1, 1] : [0, 1, 1, 0];
|
|
d = {
|
|
d: Cc(d),
|
|
fill: {
|
|
linearGradient: a.isHoriz ? [0, 0, 1, 0] : [0, 0, 0, 1],
|
|
stops: B(k, function (b, a) {
|
|
return [b, "white", m[a]];
|
|
}),
|
|
},
|
|
};
|
|
!f && g.attr({ mask: d });
|
|
}
|
|
if (e.length) {
|
|
a._rngData = Sr(a, e);
|
|
for (f = 0; f < e.length; f++) {
|
|
d = e[f];
|
|
k = d._rngData.shapeOptions;
|
|
var n = A({}, d.currentOptions.line);
|
|
"#e2e2e2" === n.color && (n.color = "#a8a8a8");
|
|
k && (d._rngData.renderData = Hz(d, C(k, "points"), A(k.options, n), g));
|
|
}
|
|
d = a._rngData;
|
|
g = d.levels;
|
|
var p = d.edges;
|
|
d = d.origin;
|
|
k = [];
|
|
n = function (b, a) {
|
|
return S(e, function (c) {
|
|
return c._metrics.px[0] === b[0] && c._metrics.px[1] === b[1] && c._rngData.level === a;
|
|
});
|
|
};
|
|
var q = function (b, a) {
|
|
return S(b, function (b) {
|
|
return b[0] === a || b[1] === a;
|
|
});
|
|
};
|
|
try {
|
|
for (var r = ya(p), u = r.next(); !u.done; u = r.next()) {
|
|
var x = u.value;
|
|
for (f = g.length - 1; 0 <= f; f--)
|
|
if (((p = void 0), (p = q(g[f], x)))) {
|
|
var v = n(p, f);
|
|
if (v) {
|
|
var y = v._rngData.renderData.endPoints,
|
|
D = y[0][b.hc] === x ? y[0] : y[1];
|
|
a.valVisible(a.linToVal(D[b.hc])) && ((p = []), (p[b.hc] = D[b.hc]), (p[b.vc] = d[b.vc]), k.push([D, p]));
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
} catch (F) {
|
|
var t = { error: F };
|
|
} finally {
|
|
try {
|
|
u && !u.done && (c = r.return) && c.call(r);
|
|
} finally {
|
|
if (t) throw t.error;
|
|
}
|
|
}
|
|
k.length && (a._rngData.connectorLines = k);
|
|
}
|
|
}
|
|
function Hz(a, c, b, d) {
|
|
var e = a.axis,
|
|
f = "category" === e.type,
|
|
g = a.currentOptions.rangeMode;
|
|
a = a._rngData;
|
|
var h = S(e._ticks, function (b) {
|
|
return !b._isRange;
|
|
});
|
|
b = id(qa(b), { type: f ? "curly" : "measure", gapLength: 0, tipPos: 0.5, color: "#000" });
|
|
f = h || 0 !== a.level || a.visPartial ? ("curly" === b.type ? "curly" : "measure") : "min";
|
|
g = g && "auto" !== g ? g : f;
|
|
var k = z(b.width, Ur[g]);
|
|
f = function (b) {
|
|
var a = nd(d, b, k);
|
|
return e.isHoriz ? [b[0], a[1]] : [a[0], b[1]];
|
|
};
|
|
var l = Ia(c[0], c[1]);
|
|
c = c.slice(0);
|
|
"curly" === b.type && ((c[1] = ra(c[1], l + 180, k / 2)), (c[2] = ra(c[2], l + 180, k / 2)));
|
|
a = b.tipPos;
|
|
h = mc(c[1], c[2]);
|
|
a = ua(1 < a ? a / h : a, 0, 1);
|
|
A(b, { lineLength: h, midPoint: Vj(c[1], c[2], a), sideLength: mc(c[0], c[1]), lineAngle: Ia(c[1], c[2]), tipAngle: l, tipPos: a });
|
|
var m = h - 12;
|
|
l = b.gapLength;
|
|
var n = b.midPoint,
|
|
p = b.lineAngle;
|
|
if (0 < l)
|
|
if (l > h - 12) A(b, { gapLength: m, tipPos: 0.5, midPoint: Vj(c[1], c[2], 0.5) });
|
|
else if (0.5 !== a) {
|
|
a = 1 > a ? a * h : a;
|
|
m = mc(n, c[1]);
|
|
var q = mc(n, c[2]),
|
|
r = mc(n, ra(n, p + 180, l / 2));
|
|
l = mc(n, ra(n, p, l / 2));
|
|
r > m - 6 && (a += r - (m - 6));
|
|
l > q - 6 && (a -= l - (q - 6));
|
|
A(b, { tipPos: a / h, midPoint: Vj(c[1], c[2], a / h) });
|
|
}
|
|
var u;
|
|
"min" !== g && (u = "curly" === g ? gx(c, b) : fx(c.map(f), b));
|
|
return u;
|
|
}
|
|
function Iz(a) {
|
|
var c = Date.now();
|
|
if (a && a.length) {
|
|
var b = a[0].axis;
|
|
w(a, function (b) {
|
|
return 0 !== C(b.currentOptions, "value.length") && Jz(b);
|
|
});
|
|
var d = function (b) {
|
|
if ((b = b._arrangeInfo.used)) return ((c - b.time) / 1e3) * 10;
|
|
},
|
|
e = function (b, a, c) {
|
|
var e = 0,
|
|
f = 0,
|
|
g = !0;
|
|
w(c, function (b, d) {
|
|
e += c[d][a[d]] || 0;
|
|
});
|
|
for (var h = 0, k = b.length; h < k; h++) {
|
|
var l = void 0,
|
|
m = S(b[h]._arrangeInfo.possible, a);
|
|
if (m) {
|
|
if (t((l = d(b[h]))) && Xb(m.cxy, b[h]._arrangeInfo.used.cxy) > l) {
|
|
g = !1;
|
|
break;
|
|
}
|
|
if (m.collide) {
|
|
g = !1;
|
|
break;
|
|
} else f++;
|
|
} else {
|
|
g = !1;
|
|
break;
|
|
}
|
|
}
|
|
if (g) return e + f / b.length;
|
|
},
|
|
f = function (b, a) {
|
|
for (var c = {}, d = 0, e = b.length; d < e; d++) {
|
|
var f = ea(b[d]._arrangeInfo.possible, a);
|
|
w(f, function (b) {
|
|
c["" + b.xAlignment + b.yAlignment + b.rotation] = { xAlignment: b.xAlignment, yAlignment: b.yAlignment, rotation: b.rotation };
|
|
});
|
|
}
|
|
var g = [];
|
|
w(c, function (b) {
|
|
return g.push(b);
|
|
});
|
|
return g;
|
|
},
|
|
g = function (b, a) {
|
|
var c = [];
|
|
w(b, function (b) {
|
|
return c.push(a(b));
|
|
});
|
|
return $a(c);
|
|
},
|
|
h = ea(a, function (b) {
|
|
return b.isRange();
|
|
});
|
|
a = ea(a, function (b) {
|
|
return !b.isRange();
|
|
});
|
|
var k = function (a, c, h) {
|
|
if (a.length) {
|
|
for (var k = f(a, {}), l = g(k, c), m, n = 0, x = l.length; n < x; n++)
|
|
for (var v = l[n], y = 0, D = k.length; y < D; y++) {
|
|
var t = k[y];
|
|
if (c(t) === v) {
|
|
var F = e(a, t, h);
|
|
F && (!m || m[0] < F) && (m = [F, t]);
|
|
}
|
|
}
|
|
var R = 1 < a.length;
|
|
w(a, function (a) {
|
|
var c = b.chartArea.collisionManager,
|
|
e = a._arrangeInfo.possible,
|
|
f = ea(e, function (b) {
|
|
return R ? !c.collideLabels(b.box, a.id) : !c.collideAll(b.box, a.id);
|
|
}),
|
|
g = a._arrangeInfo.used,
|
|
h,
|
|
k,
|
|
l = g ? { xAlignment: g.xAlignment, yAlignment: g.yAlignment, rotation: g.rotation } : {};
|
|
!f.length && e.length && (f = e);
|
|
f.length &&
|
|
(g && (R || (k = h = S(f, l)), k || (k = S(e, l)), k && (k.time = g.time)),
|
|
!h && m && (h = S(f, m[1])),
|
|
h || (h = f[0]),
|
|
g && h && !R && "" + g.xAlignment + g.yAlignment + g.rotation !== "" + h.xAlignment + h.yAlignment + h.rotation && ((e = Xb(g.cxy, h.cxy)), (f = d(a)), e > f && k && (h = k)),
|
|
(a._arrangeInfo.used = h),
|
|
c.addLabelBox(h.box, h.marker.id));
|
|
});
|
|
}
|
|
};
|
|
k(
|
|
h,
|
|
b.isHoriz
|
|
? function (b) {
|
|
return b.yAlignment;
|
|
}
|
|
: function (b) {
|
|
return b.xAlignment;
|
|
},
|
|
{
|
|
yAlignment: b.isHoriz ? { inmiddle: 0.1, intop: 0.3, inbottom: 0.2 } : { inmiddle: 0.3, intop: 0.2, inbottom: 0.1 },
|
|
xAlignment: b.isHoriz ? { inleft: 0.2, incenter: 0.3, inright: 0.1 } : { inleft: 0.3, incenter: 0.2, inright: 0.1 },
|
|
}
|
|
);
|
|
k(
|
|
a,
|
|
b.isHoriz
|
|
? function (b) {
|
|
return b.yAlignment;
|
|
}
|
|
: function (b) {
|
|
return b.xAlignment;
|
|
},
|
|
{ yAlignment: { outtop: 0.2, outbottom: 0.1 }, xAlignment: { outright: 0.3, outleft: 0.1 } }
|
|
);
|
|
}
|
|
}
|
|
function Jz(a) {
|
|
var c = a.axis,
|
|
b = a.currentOptions,
|
|
d = a.options("label");
|
|
b = b.value;
|
|
var e = a.isHoriz,
|
|
f = c.chartArea.collisionManager,
|
|
g = [];
|
|
if (d) {
|
|
var h = function (b) {
|
|
b.push([b[0][0] + (e ? 1 : 0), b[0][1] + (e ? 0 : 1)]);
|
|
return Ea(b);
|
|
};
|
|
d = ja(b[0]) ? b[0] : b;
|
|
hb(d, function (b) {
|
|
return g.push(h(c.getCaPoints(b, void 0)));
|
|
});
|
|
w(g, function (b) {
|
|
return f.addBox(b);
|
|
});
|
|
d = Ea(g);
|
|
a._arrangeInfo.edgeBoxes = g;
|
|
a._arrangeInfo.box = d;
|
|
Kz(a);
|
|
Lz(a);
|
|
}
|
|
}
|
|
function Kz(a) {
|
|
var c = a.rootVisuals,
|
|
b = a.currentOptions,
|
|
d = b.labelPadding || 0,
|
|
e = b.label || {};
|
|
a.getText() &&
|
|
a.axis.valVisible(a.value()) &&
|
|
((b = c.label = c.label || new Fi(a.chart, e)),
|
|
(e = a.attrBuilder(qc(e), {}, {})),
|
|
(e.val = a.getText()),
|
|
(e.padding = d),
|
|
b.options({ text: a.getText() }),
|
|
c.label.attr(e),
|
|
b.rootVisuals.text.attr({ autoWrap: "auto" }),
|
|
c.label.rootPanel.attr({ maxWidth: 0, autoWrap: "auto" }),
|
|
(a._arrangeInfo.labelSizes = b.getSizes()),
|
|
c.label.rootPanel.attr({ autoWrap: "none" }).setPreliminarySize(!0));
|
|
}
|
|
function Lz(a) {
|
|
var c = a.axis;
|
|
a._arrangeInfo.visible = !0;
|
|
var b = a.options("label");
|
|
if (b && Id(b)) {
|
|
var d = b.align,
|
|
e = b.verticalAlign;
|
|
b = b.rotate;
|
|
var f = function (b) {
|
|
var c = a._arrangeInfo.labelSizes[0];
|
|
return (
|
|
S(a._arrangeInfo.labelSizes, function (a) {
|
|
a[0] < c[0] && (c = a);
|
|
return a[0] <= b;
|
|
}) || c
|
|
);
|
|
},
|
|
g = ha(a.axis.chartArea.contentRect),
|
|
h = a._arrangeInfo.labelSizes[0],
|
|
k = ho([a._arrangeInfo.box, g]) || a._arrangeInfo.box,
|
|
l = a.isRange(),
|
|
m = a.isHoriz;
|
|
g = a.axis.chartArea;
|
|
var n = Date.now(),
|
|
p = g.collisionManager,
|
|
q = rb(ha(g.contentRect), -1);
|
|
a._arrangeInfo.possible = [];
|
|
if (c.valVisible(a.value())) {
|
|
h = f(m ? q[2] : q[3]) || h;
|
|
var r = f(k[2]),
|
|
u = f(k[3]);
|
|
f = [k[0], k[1], h[0], h[1]];
|
|
h = function (b, c, d) {
|
|
w(c, function (c) {
|
|
var e,
|
|
f = b.slice(0),
|
|
g = 0 !== d,
|
|
h = c[0];
|
|
c = c[1];
|
|
var v = 0 === h.indexOf("in"),
|
|
x = v && 0 < d && (("inleft" === h && "intop" === c) || ("inright" === h && "inbottom" === c));
|
|
l && v && ((f = [0, 0]), g ? f.push.apply(f, H(u)) : f.push.apply(f, H(r)));
|
|
g && (f = [f[0] - f[3], f[1], f[3], f[2]]);
|
|
f = he(f, k, h, c);
|
|
g = f.box;
|
|
$c(q, g) &&
|
|
!x &&
|
|
(!m && l && v && ($c(k, g) || (e = !0)),
|
|
!e && a._arrangeInfo.possible.push({ xAlignment: h, yAlignment: c, box: g, cxy: va(g), collide: !0 === p.collideAll(g), rotation: d, textAlignment: f.contentAlignment, marker: a, time: n }));
|
|
});
|
|
};
|
|
g = function (b, a, c) {
|
|
void 0 === c && (c = !1);
|
|
var d = [];
|
|
w(b, function (b) {
|
|
w(a, function (a) {
|
|
c ? d.push([b, a]) : d.push(b + a);
|
|
});
|
|
});
|
|
return d;
|
|
};
|
|
var x = [],
|
|
v = [];
|
|
c = "sp" === c.prefix;
|
|
(t(b) && 0 !== b) ||
|
|
(m && !c
|
|
? (d ? (x = g(["in"], [d])) : ((x = g(["in"], ["left", "right"])), x.push("incenter")),
|
|
e ? (v = g([l ? "in" : "out"], [e])) : l ? ((v = g(["in", "out"], ["top", "bottom"])), v.push("inmiddle")) : (v = g(["out"], ["top", "bottom"])))
|
|
: (e ? (v = g(["in"], [e])) : ((v = g(["in", "out"], ["top", "bottom"])), v.push("inmiddle")),
|
|
d ? (x = g([l ? "in" : "out"], [d])) : l ? ((x = g(["in"], ["left", "right"])), x.push("incenter")) : (x = c ? g(["out"], ["left", "right"]) : g([], [""]))),
|
|
(c = g(x, v, !0)),
|
|
h(f, c, 0));
|
|
(t(b) && 90 !== b && -90 !== b) ||
|
|
(m
|
|
? ((x = d ? g(["in"], [d]) : g(["in"], ["left", "right"])), (v = e ? g([l ? "in" : "out"], [e]) : l ? g(["in"], ["top", "bottom", "middle"]) : g([], [""])))
|
|
: ((v = e ? g(["in"], [e]) : g(["in"], ["top", "bottom", "middle"])), d ? (x = g([l ? "in" : "out"], [d])) : l ? ((x = g(["in", "out"], ["left", "right"])), x.push("incenter")) : (x = g(["out"], ["left", "right"]))),
|
|
(c = g(x, v, !0)),
|
|
h(f, c, 90));
|
|
} else a._arrangeInfo.visible = !1;
|
|
}
|
|
}
|
|
function Mz(a, c) {
|
|
if (!c.items.length && !N(a.currentOptions, ["scale", "range"])) return (c = a.chartArea.chartAreaSet.freeAxes[a.prefix].id), c !== a.id && c;
|
|
}
|
|
function Sl(a) {
|
|
var c = [];
|
|
t(a) && (a.pop ? ((c = a.length), (c = (2 === c ? a : 1 === c ? [a[0], null] : []) || [])) : (c = [a.min, a.max]));
|
|
a = c;
|
|
return nb(a[0]) && nb(a[1]);
|
|
}
|
|
function Vr(a, c) {
|
|
return (a = C(a.currentOptions, "scale.type")) && c(a);
|
|
}
|
|
function Tl(a, c) {
|
|
return Vr(a, c) || (a.syncAxis && Vr(a.syncAxis, c));
|
|
}
|
|
function Wr(a, c) {
|
|
var b,
|
|
d = function (b) {
|
|
return [b[0], b[1], b[1] - b[0]];
|
|
},
|
|
e = function (c) {
|
|
return "object" === I(c)
|
|
? ((b = !0), Nk(c, a.range ? a.range.min : a.min, a.range ? a.range.max : a.max))
|
|
: c.map(function (b) {
|
|
return a.toPosition(b);
|
|
});
|
|
};
|
|
if (ja(c) && c.length) {
|
|
var f = [];
|
|
w(c, function (b) {
|
|
"array" === I(b) ? f.push(e(b)) : f.push.apply(f, H(e(b)));
|
|
});
|
|
a.hasCalPatBreaks = b;
|
|
return B(f, d);
|
|
}
|
|
a.hasCalPatBreaks = b;
|
|
return c;
|
|
}
|
|
function Nz(a) {
|
|
var c = [];
|
|
hb(a, function (b) {
|
|
return c.push(b);
|
|
});
|
|
return ad(sa(c));
|
|
}
|
|
function Oz(a, c) {
|
|
var b = [0, a._sizeMetrics.length],
|
|
d = 0 < la(b[0], b[1]);
|
|
S(a._ticks, function (b) {
|
|
return !b._isRange;
|
|
});
|
|
var e = [],
|
|
f = function (b) {
|
|
for (var a = 0; a < c.length; a++) b(c[a], a);
|
|
},
|
|
g = function (a) {
|
|
return d ? Ue(b, a) : Ve(a);
|
|
};
|
|
f(function (b) {
|
|
b.metrics();
|
|
b._cxyRotate = void 0;
|
|
b._rngData = { visRange: g(Ve(b._metrics.px)) };
|
|
var a = b._rngData,
|
|
c = (c = b._rngData.visRange) && 0 < c.length,
|
|
d = sa(b._metrics.px),
|
|
e = b._rngData.visRange;
|
|
e && e.length ? ((b = la(d[0], e[0])), (d = la(d[1], e[1])), (d = 10 < b || 10 < d)) : (d = void 0);
|
|
A(a, { visible: c, visPartial: d });
|
|
});
|
|
f(function (b) {
|
|
var a = b._rngData;
|
|
if (b._rngData.visible) {
|
|
b = b._metrics.px;
|
|
for (var c = 0; !f; ) {
|
|
var d = (e[c] = e[c] || []);
|
|
if (!bg(d, b).length) {
|
|
d.push(b);
|
|
var f = !0;
|
|
}
|
|
c++;
|
|
}
|
|
f = c - 1;
|
|
} else f = 0;
|
|
return (a.level = f);
|
|
});
|
|
f(function (b) {
|
|
b = b._rngData;
|
|
var a = b.visRange,
|
|
c = (b.obstacles = []),
|
|
d = function (b) {
|
|
return fe(Ve(a), b) && c.push(b);
|
|
};
|
|
b.higherIntersects = [];
|
|
if (b.visible)
|
|
for (var f = b.level + 1; f < e.length; f++) {
|
|
var g = bg(e[f], a);
|
|
Xe.apply(null, [b.higherIntersects].concat(g));
|
|
hb(g, d);
|
|
}
|
|
});
|
|
var h = a.tickMetricsData,
|
|
k = a.sideIndex();
|
|
h = h.getMaxLength();
|
|
k = 0 === k || 3 === k;
|
|
var l = [0, 0];
|
|
a = a.duV("inside" === C(a.currentOptions, "defaultTick.placement"));
|
|
l[a.vc] = k ? h : 0;
|
|
f(function (b) {
|
|
var a = b._metrics.px;
|
|
b._rngData.rotate = !t(C(b.currentOptions, "label.rotate")) && b._metrics.textSize[0] > la(a[0], a[1]);
|
|
});
|
|
f(function (b) {
|
|
var a = g(b._metrics.px);
|
|
if (b._rngData.visible) {
|
|
var c = void 0,
|
|
d = b.currentOptions,
|
|
f = b._rngData,
|
|
h = cg(Zj(sa(f.obstacles), a, 0), a),
|
|
k = b._metrics.textSize,
|
|
l = !1;
|
|
b._rngData.rotate && (l = !l);
|
|
k = l ? [k[1], k[0]] : k.slice(0);
|
|
k[0] += d.padding;
|
|
f.labelSize = k;
|
|
k = k[0];
|
|
h = h.length ? tv(h) : xf(a, 5);
|
|
var m = 5 * z(b.currentOptions.line.width, Ur.measure);
|
|
l = xf(a, m);
|
|
b = xf(b._metrics.px, m);
|
|
h = Ue(h, l);
|
|
h[1] - h[0] < k ? (!f.visPartial && la(l[0], l[1]) < k && (c = !0), (a = (a[0] + a[1]) / 2), (f.labelRange = [a - k / 2, a + k / 2])) : ((a = (h[0] + h[1]) / 2), (f.labelRange = [a - k / 2, a + k / 2]));
|
|
a = f.labelRange.slice(0);
|
|
f.labelRange = Yj(b, f.labelRange);
|
|
Qe(a, f.labelRange);
|
|
d = d.label && d.label.placement;
|
|
0 !== f.level || c || (d && "auto" !== d)
|
|
? (c
|
|
? (f.autoLabelOnTop = !0)
|
|
: 1 === e.length
|
|
? (f.autoLabelOnTop = !0)
|
|
: ((c = f.higherIntersects && 0 < bg(f.higherIntersects, f.labelRange).length), (f.autoLabelOnTop = !f.visPartial && !c && f.level < e.length - 1)),
|
|
(f.labelOnTop = t(f.labelOnTop) ? f.labelOnTop : f.autoLabelOnTop),
|
|
(c = z(d, "auto")),
|
|
(c && "auto" === c) || (f.labelOnTop = "outside" === c ? !0 : !1))
|
|
: (f.labelOnTop = f.autoLabelOnTop = !1);
|
|
}
|
|
});
|
|
var m = [];
|
|
w(e, function (b) {
|
|
b.length && m.push.apply(m, H(co(b)));
|
|
});
|
|
m = ad(sa(m));
|
|
return { ticks: c, levels: e, edges: m, origin: l, duV: a };
|
|
}
|
|
function Pz(a) {
|
|
var c = "sv" + ("x" === a ? "x" : "");
|
|
return ["" + a, a + "s", a + "e", "" + c, c + "s", c + "v"];
|
|
}
|
|
function Qz(a, c, b) {
|
|
var d,
|
|
e = a.childAxes.length ? a.childAxes.splice(0) : [a];
|
|
w(e, function (e) {
|
|
e.currentOptions.markers = e.currentOptions.markers || [];
|
|
e.currentOptions.markers.push(c);
|
|
e._markers.push(new Xr(e, c));
|
|
d = !0;
|
|
e.syncLegend();
|
|
a.chart.isRendered && !1 !== b && a.chart.renderer.refresh();
|
|
!1 !== b && e.renderOnCa(b);
|
|
});
|
|
d && a.chart.isRendered && !1 !== b && a.chart._legends[0].isVisible && (a.chart.chartAreaSet.reflow(b), a.chart.renderer.refresh());
|
|
}
|
|
function Gi(a) {
|
|
return new Date(a).getTime() || new Date().getTime();
|
|
}
|
|
function Rz(a) {
|
|
return function () {
|
|
var c = [];
|
|
a.each(function (b) {
|
|
c = c.concat(b._ticks);
|
|
});
|
|
return c;
|
|
};
|
|
}
|
|
function Sz(a) {
|
|
return function () {
|
|
var c = [];
|
|
a.each(function (b) {
|
|
c = c.concat(b._markers);
|
|
});
|
|
return c;
|
|
};
|
|
}
|
|
function Tz(a) {
|
|
return !a.chart.ctManager.isType("map") && (ye(a) || (ze(a) && a.series.currentOptions.pointSelection)) ? !0 : !1;
|
|
}
|
|
function Yr(a) {
|
|
return ze(a) && ((a = a.series.currentOptions.pointSelection), "single" === a || 1 === a.max) ? "system/default/radio-button" : "system/default/checkbox";
|
|
}
|
|
function Zr(a) {
|
|
if (ye(a)) return a.isVisible;
|
|
if (ze(a)) return a.selected;
|
|
}
|
|
function Ul(a) {
|
|
a = a.currentOptions.hoverAction;
|
|
return t(a) ? "highlight" === a || "mute" === a : !0;
|
|
}
|
|
function Vl(a, c) {
|
|
void 0 === c && (c = !0);
|
|
var b = I(a);
|
|
if ("array" === b) return a;
|
|
if ("string" === b)
|
|
return (
|
|
(b = -1 < a.indexOf(",") ? /[,]/g : /[ ]/g),
|
|
(c ? a.toLowerCase() : a).split(b).map(function (b) {
|
|
return b.trim();
|
|
})
|
|
);
|
|
}
|
|
function $r(a, c, b) {
|
|
var d = [],
|
|
e = [],
|
|
f = [];
|
|
c.each(function (c) {
|
|
c.breaks.length && Uz(a, c, b, d, e, f);
|
|
});
|
|
return { clipPath: d.length ? xa(d) : null, paths: e, outlines: f };
|
|
}
|
|
function Uz(a, c, b, d, e, f) {
|
|
void 0 === d && (d = []);
|
|
void 0 === e && (e = []);
|
|
void 0 === f && (f = []);
|
|
var g = c.getBreakRects(),
|
|
h = C(c.currentOptions, "scale.defaultBreak.line.width"),
|
|
k = C(c.currentOptions, "scale.defaultBreak.line.color"),
|
|
l = C(c.currentOptions, "scale.defaultBreak.type").toLowerCase();
|
|
c = c.isHoriz;
|
|
var m = function (c) {
|
|
return md(a, c, b);
|
|
};
|
|
g.sort(
|
|
c
|
|
? function (b, a) {
|
|
return b[0] - a[0];
|
|
}
|
|
: function (b, a) {
|
|
return b[1] - a[1];
|
|
}
|
|
);
|
|
var n = g.length;
|
|
if (1 != n)
|
|
for (var p = 0; p < n; p++) {
|
|
var q = g[p];
|
|
q[0] += b / 2;
|
|
q[1] += b / 2;
|
|
if (!q) break;
|
|
var r = void 0;
|
|
r = 0 === p ? (c ? "r" : "b") : p === n - 1 ? (c ? "l" : "t") : c ? "c" : "m";
|
|
if ((q = (Vz[l] || as)(r, h, q, m))) q.clipPath && d.push(q.clipPath), q.path && e.push({ path: q.path, color: k }), q.outlinePath && f.push({ path: q.outlinePath, stroke: k });
|
|
}
|
|
}
|
|
function as(a, c, b, d) {
|
|
b = d(b);
|
|
d = { clipPath: Zp(b[0], b[1], b[2], b[3], { zigSides: a, zigWidth: c, lines: [] }) };
|
|
var e = "m" === a || "t" === a || "b" === a ? 1 : 0;
|
|
b[e] += 0.5;
|
|
--b[e + 2];
|
|
d.outlinePath = Zp(b[0], b[1], b[2], b[3], { zigWidth: c, zigSides: a, open: !0, lines: [] });
|
|
return d;
|
|
}
|
|
function Wz(a, c, b, d) {
|
|
var e = a.isHoriz,
|
|
f = a.tooltip.currentOptions.combined,
|
|
g = a.chart.axes("x"),
|
|
h = [],
|
|
k = [],
|
|
l = [],
|
|
m = !1;
|
|
a.axes()
|
|
.filter(function (b) {
|
|
b = b.options("crosshair") || {};
|
|
return b.enabled && !b.snapToData;
|
|
})
|
|
.each(function (b) {
|
|
return b.crosshairXy(c);
|
|
});
|
|
a.axes()
|
|
.filter(function (b) {
|
|
if ("x" === b.prefix) return ((b.options("crosshair") || {}).enabled || f) && !b.options("scale.syncWith");
|
|
})
|
|
.each(function (b) {
|
|
var a = [b, b.crosshairXy(c, void 0, d)];
|
|
w(b.serList, function (b) {
|
|
if (b.isVisible && !1 !== b.options("mouseTracking_enabled")) {
|
|
var c = b.showHaloAtX(a[1]);
|
|
c && h.push(c);
|
|
b.haloPath && (k.push(b.haloPath), l.push(b));
|
|
}
|
|
});
|
|
});
|
|
var n = Cc(ha(a.contentRect)) + " " + k.join(" ");
|
|
w(l, function (b) {
|
|
var a;
|
|
(a = b.visuals.pointHalo) &&
|
|
w(a, function (b) {
|
|
return b.attr({ clipPath: { d: n, "clip-rule": "evenodd" } });
|
|
});
|
|
});
|
|
h = h.map(function (b) {
|
|
return { axId: b[0].id, point: b[1], yVal: b[2] };
|
|
});
|
|
if (h.length) {
|
|
var p = new Wl().key("axId").entries(h),
|
|
q = [];
|
|
w(p, function (b) {
|
|
var c = a.axes(b.key);
|
|
if (c) {
|
|
a.tooltip.cttEnabled(c, g) &&
|
|
(q.push.apply(
|
|
q,
|
|
H(
|
|
b.values.map(function (b) {
|
|
return b.point;
|
|
})
|
|
)
|
|
),
|
|
(m = !0));
|
|
var d = c.options("crosshair");
|
|
d.enabled && d.snapToData && Xz(a, c, Yz(b.values));
|
|
}
|
|
});
|
|
q = ea(q, function (b) {
|
|
return !b.series.indexer.getValue("isEmpty", b._i) && !1 !== b.series.options("mouseTracking_enabled");
|
|
});
|
|
q = sa(q, function (b) {
|
|
return b.series.indexer.getValue("pos", b._i).xyz[e ? 0 : 1];
|
|
});
|
|
q.length && a.tooltip.show(q, b, c);
|
|
} else
|
|
a.axes()
|
|
.filter(function (b) {
|
|
if ("y" === b.prefix) return (b.options("crosshair") || {}).enabled;
|
|
})
|
|
.each(function (b) {
|
|
return b.crosshairXy(c);
|
|
});
|
|
return m;
|
|
}
|
|
function Zz(a) {
|
|
a.axes().each(function (a) {
|
|
a.crosshair();
|
|
});
|
|
}
|
|
function $z(a) {
|
|
var c = Gh({ chartArea: a.chartArea || [{}] }, "chartArea"),
|
|
b = Mj(a, ["title", "series", "legend", "events"]);
|
|
Mj(a, ["xAxis", "yAxis", "zAxis"]);
|
|
var d = { xAxis: a.xAxis || [{}], yAxis: a.yAxis || [{}], zAxis: a.zAxis || [{}] };
|
|
A(c[0], Ga(b, "series"));
|
|
c.rootItems = b;
|
|
c.rootAx = d;
|
|
a.series.length && ((c[0].series = c[0].series || []), (c[0].series = (c[0].series || []).concat(b.series)));
|
|
return c;
|
|
}
|
|
function aA(a) {
|
|
return function () {
|
|
var c = [];
|
|
a.each(function (b) {
|
|
return c.push.apply(c, H(b.items));
|
|
});
|
|
return c;
|
|
};
|
|
}
|
|
function bA(a, c, b) {
|
|
if (c.data) {
|
|
c = c.data;
|
|
var d = (a.data = a.data || {}),
|
|
e = I(c),
|
|
f = t(c.transformer) ? c.transformer : a.ctManager.isType("calendar") ? cA : null,
|
|
g = function (c) {
|
|
if (!d.val || (d.val && d.fileName !== c))
|
|
return (
|
|
Ew(c, function (e) {
|
|
d.val = f ? f(e.data) : e.data;
|
|
d.types = !f && Vk(d.val);
|
|
w(d.types, function (b, c) {
|
|
return "date" === b && Z(a, "typeContextOptions.axes." + ["x", "y", "z"][c] + ".scale.type", "time");
|
|
});
|
|
d.fileName = c;
|
|
b(e);
|
|
}),
|
|
c
|
|
);
|
|
};
|
|
switch (e) {
|
|
case "array":
|
|
d.val = c;
|
|
break;
|
|
case "string":
|
|
if (256 > c.length && c.indexOf(".csv") === c.length - 4) return g(c);
|
|
d.val = Oh(c);
|
|
break;
|
|
case "object":
|
|
if (c.data) d.val = Oh(c.data, c.delimiter, c.header);
|
|
else if (c.file) return g(c.file);
|
|
}
|
|
}
|
|
}
|
|
function cA(a) {
|
|
return B(a, function (a) {
|
|
return [a[0], parseFloat(a[1])];
|
|
});
|
|
}
|
|
function Xl(a, c, b) {
|
|
var d = ff[a];
|
|
!d && Yl[a].checker(c, !1, {}) ? bs(a, c || {}, b) : !d || d.loaded ? b() : d.loading && d.callbacks.push(b);
|
|
}
|
|
function cs(a, c, b, d) {
|
|
void 0 === d && (d = !1);
|
|
c || b();
|
|
var e = [],
|
|
f = ff,
|
|
g = function (a) {
|
|
e.splice(e.indexOf(a), 1);
|
|
e.length || dA(b);
|
|
},
|
|
h = eA(c),
|
|
k = h ? W(Yl, h) : Yl,
|
|
l = c.modules ? fa(c.modules) : {};
|
|
Da(k, function (b) {
|
|
var h = f[b],
|
|
m = function () {
|
|
h && h.afterLoad && h.afterLoad(a, c);
|
|
!h && -1 < b.indexOf("locale") && f[b] && ((f[b].loading = !1), (f[b].loaded = !0));
|
|
};
|
|
(h && h.loaded) || !k[b].checker(c, d, l, a.ctManager)
|
|
? m()
|
|
: (e.push(b),
|
|
bs(b, L({ notificationContainer: a.getWrapper() }, c), function () {
|
|
m();
|
|
g(b);
|
|
}));
|
|
});
|
|
var m = bA(a, c, function () {
|
|
g(m);
|
|
});
|
|
m && e.push(m);
|
|
e.length || b();
|
|
}
|
|
function ds(a, c) {
|
|
for (var b in fA) if (a.isType(b, c)) return !0;
|
|
}
|
|
function bs(a, c, b) {
|
|
bp(a, b, Ma, c);
|
|
}
|
|
function eA(a) {
|
|
var c = T.Intl;
|
|
a = a.defaultCultureName || "en-US";
|
|
if (c && 0 < c.NumberFormat.supportedLocalesOf([a]).length) return null;
|
|
gA();
|
|
c = {};
|
|
c["https://code.jscharting.com/polyfill/locales/" + a] = {
|
|
checker: function () {
|
|
return !0;
|
|
},
|
|
};
|
|
return c;
|
|
}
|
|
function gA() {
|
|
T.IntlPolyfill ||
|
|
(T.IntlPolyfill = {
|
|
__addLocaleData: function (a) {
|
|
return Hi.push(a);
|
|
},
|
|
});
|
|
}
|
|
function dA(a) {
|
|
var c = T.IntlPolyfill;
|
|
Hi.length &&
|
|
c &&
|
|
(w(Hi, function (b) {
|
|
return c.__addLocaleData(b);
|
|
}),
|
|
(Hi = []));
|
|
a();
|
|
}
|
|
function hA(a, c, b) {
|
|
var d,
|
|
e = {},
|
|
f = a.calIndexer,
|
|
g = { layoutAttr: e, boxAttr: {}, needRefresh: !1, needRedraw: !1, updateCalendar: !1 };
|
|
t(c.margin) && Z(c, "box.margin", c.margin);
|
|
w(c, function (b, d) {
|
|
if (Zl[d]) Zl[d](b, a, g, c);
|
|
});
|
|
if (g.updateCalendar) {
|
|
var h = a.userOptions,
|
|
k = a.currentOptions;
|
|
k.series = void 0;
|
|
k.x = yf(h.x);
|
|
k.y = yf(h.y);
|
|
f.updateChart(k);
|
|
var l = k.series;
|
|
w(a.chartAreaSet.items, function (b) {
|
|
b.options({ series: l });
|
|
});
|
|
}
|
|
Object.keys(e).length && a.renderer.attr(e).refresh();
|
|
e = t(null === (d = null === c || void 0 === c ? void 0 : c.box) || void 0 === d ? void 0 : d.padding);
|
|
(!a.isRendered || e) && a.isColorized && 100 < a.renderer.getRootBox().height && ((g.boxAttr.padding = g.boxAttr.padding || [0, 0, 0, 0]), (g.boxAttr.padding[2] += 20));
|
|
if ((d = g.boxAttr) && Object.keys(d).length) {
|
|
if ((e = d.margin)) (f = Ac(a.rootVisuals.box.margin.initial)), (d.margin = Kj(f, e));
|
|
a.rootVisuals.box.attr(d);
|
|
g.needRefresh = a.isRendered;
|
|
}
|
|
g.needRedraw ? a.redraw(b) : g.needRefresh && a.rootPanel.refresh();
|
|
}
|
|
function iA(a, c, b) {
|
|
Da($l, function (d) {
|
|
c = $l[d](a, c, b);
|
|
});
|
|
return c;
|
|
}
|
|
function es(a, c, b) {
|
|
return gf(function (d, e) {
|
|
e = { text: c };
|
|
b && ((e.baseUrl = b.baseUrl), (e.notificationContainer = b.notificationContainer));
|
|
Xl("modules/types", e, function () {
|
|
return d(Yq(a, c, b));
|
|
});
|
|
});
|
|
}
|
|
function jA(a, c, b) {
|
|
fs = b;
|
|
"undefined" != typeof a &&
|
|
(a.fn.JSC = function () {
|
|
function b(b) {
|
|
for (var a = 0, d = c.length; a < d; a++) if (b[0] == c[a][0]) return c[a][1];
|
|
}
|
|
var a = arguments,
|
|
f;
|
|
if (this[0]) {
|
|
"string" === typeof a[0] && (a = Array.prototype.slice.call(a, 1));
|
|
var g = a[0];
|
|
t(g) ? ((f = b(this)) && f.dispose(), (g.targetElement = this[0]), (a = new fs(g, a[1])), (a.globalChartIndex = c.length), c.push([this[0], a]), (g = this)) : (g = b(this));
|
|
}
|
|
return g;
|
|
});
|
|
}
|
|
function gs() {
|
|
return "3.0.2.20210127";
|
|
}
|
|
function kA() {
|
|
return gf(function (a) {
|
|
"loading" === ba.readyState ? ba.addEventListener("DOMContentLoaded", a) : a();
|
|
});
|
|
}
|
|
function hs(a, c) {
|
|
var b = Ii(c),
|
|
d = { grid_enabled: !0 };
|
|
b && ((d.baseUrl = b.baseUrl), (d.notificationContainer = b.notificationContainer));
|
|
return gf(function (c, f) {
|
|
Xl("modules/datagrid", d, function () {
|
|
c(sc.gridConstructor && sc.gridConstructor(a, b, void 0));
|
|
});
|
|
});
|
|
}
|
|
function is(a, c) {
|
|
if (!(this instanceof is)) return hs(a, c);
|
|
var b = sc.gridConstructor && sc.gridConstructor(a, c, void 0);
|
|
return b
|
|
? ((b.then = function (a) {
|
|
return a && a(b);
|
|
}),
|
|
b)
|
|
: hs(a, c);
|
|
}
|
|
function Ii(a) {
|
|
var c;
|
|
od && (c = od ? od() : {});
|
|
return a && c ? A(c, a) : a || c;
|
|
}
|
|
var nj = function (a, c) {
|
|
nj =
|
|
Object.setPrototypeOf ||
|
|
({ __proto__: [] } instanceof Array &&
|
|
function (b, a) {
|
|
b.__proto__ = a;
|
|
}) ||
|
|
function (b, a) {
|
|
for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]);
|
|
};
|
|
return nj(a, c);
|
|
},
|
|
lA = { exportButtonTooltip: "Export to raster or vector image", printButtonTooltip: "Print the chart", resetZoomText: "Zoom Out", resetZoomTooltip: "Reset Zoom" },
|
|
Jk = "4285F4fE4C14DBCB1815AC20D150B1d9AeeC8C2808ED7C1F1eFEdAF2955B6eA738F5424378BE3CA87A893B3F84E154F5CD992D8C2903B9B09DC9F9F95F035FCACBFA0381830202FE9CCEFEFBCC9BdD7311A3340E7E4957B823E6BC0DE8BFC70D5987BD5C923|9C9Ad9C3063cCECEc63e63d8284e65CECECdFee84dbcebd84e8484a8284ebeCdFCEcCEdCEc9C9CCcF9ACECE9AcCF9C3165d31CFCE9CCFbCFb9Ab65e63659C949694e3063319A63e3e0313e09C3e09C306331309C313031accadacdbbbd84a82a848482e84e84e8284C6C3C6848284|4B649A88E2D869838eD93FA5EE4034088B2FAEB8E9ED266666FA7CD992C85203D4804FAFC7DD57F9EEFC335BA63D2F81C238683D996FEAB90342172309AE9538772BC16DF07420ADC7A4D9ED99DAA029BAEB076A40145A6485769C85B624F030670AD47A6BC1814E07CA65E495FD0F2881ED681E873AE862D16CC889C78AE792B499869EE625BDE959C952859E55CE88675403C8BCC|B2213DBAC01464AF4ADA5B8AEE971F989EDDB7D3E68B44D7DDC9870157E10EA61EEE6B07B9CFB4B24B420C78B02E5302CE296DF22889FD27DB64DCF58C635867CCB46CFE2C17DDCD290587A37ECB27AF7685322D741B7E94F0442B54F2BD25E7E9A3AAFBC054D4B64A9EC8220159A70F3D2D7F07302AF2B035D60DE7EB89DA6ADE9FB9D9202AED22AF7BE2D4515B93979B1B16C53E1E|E68E423F5C79E5D5ADEC6CBBE66457F9E2D796A6A28121DB6D38E9C36845D6CA2199DED1532E506469D45014C4203AFB07CE2E94B32C06656D65D0238E216D6715A1994C8485A6B487313CCC310C174DFDEDBB99164216F3937963EC5D2DD54867E7FD2285EC778128790D82EE3834604D8325A064D350D28AA5B70A21B8575A5AF365480DF3C610753A709C3492045A45039ED80834|3D88419BE23923AAC40154C4141CE1507A0314A091B380FC677487E15195AD6E9B8C285ACF5735E1DF6C4FEC798AC2D30DE68CCFDF87DA890744336DB040582E53E52887F3867F22CD32C024649382DCB1B2D46909DC8E14B09D538A23C6309E13209892613ADF85666902ADC6B62473C056BBFD6AEE25765714D55532F4FD0701211044F9EF7A76D24F029ED9E04CF978DEC9CC0A32|9ADB5E61F34C0C8DEFC21EC7737198D5D73F6085AE67C358B0C0BA2FE63093EF6B377F4DB066102F3B8CCA0F7ACA720AA4D70F6E875B33331805AF3390DCA5BF2E2D5B3CF14A24702E304A229BB4DCE54EB0890E2024681e44B35ABB6DC9E5EE50BDF4D6E35175AB29D3F561011966327C9E4DE52979E09C44A37A51478B95191EB3B90D38F7618992E5B81E411eF2B4D184EBF6BE|860104dD62E583410c6dF7e0551314FEdAF7F4D1Ccb4502830B0CF6FCDAaFDdB1d9D02EE1413AE6A29DE56eE4A711BB1313D195e61140DBCB037402E13B8C267B86D163F1815C2C8955E4520A7B817B851175F1A13C4CAB4aC1C898B88918AD3122815F2DA05813A68D2089291E977E12|181161D14524F9F72B83EA282BFBCDA395DEDC2ECE4133F5DA011D01A468837EB8EA917CC3B9F0C972E8958DFAF8717754D6A67B1D2CD14524E18514AC7F1384875DBA5965D42A5D8E2C6F6059A9A4A0D4F4F226A8F96072FEDFCCC2F6F69AEEAFA9FCFB94996BE6B98E569B9EA89E5FB8E9D97C7ACAC7E6AA6F9E9DB0A0AA56BE817BCACACF63CFCEEBE86F69D0FDCCE5E89C12FEe|4A2123D52E06B38D95dDBC5C2644482B2B8AE7EA1dE19C8D8A7E553C15DCD2D5dCA95DAC5E4DB9F62dDBD9BC9F95E49291484C50FAB36C9A6343E57B63BED7DA92392FD7CEC2d95eD0BBC1759980ADC0DFE5BFD2E0CC84C0D0C5CDD25EdC7C3C1dF1C69658F1F98E61693CA86567FB4C2688A259cC5A5C18ACAEBdC6A5D1A4845C5D531ADDCFA2D67F45AA3B33dC667|8A98DB3C59BA16265173A278B7F5Dd8F7A05CC3A192973C5D64488B775BA64E1B44475F714B96646DC4D02154F171A46F1842ECA991F8C12FED8F11F1CFC4D8BEF3F8FA2C3248862E0A1CA18BB670A3DD0A0D460A0D4655D3EBCDdD579DAC734879694E3A719686D18A56418775A47BD9A36773D98BC8EB4B73A7DC96B52A0951184B0D8BEF31E4AB3B1B7A1848BD4AAB5D2B1B7A14A67C5|BF2D305E8D34855E26a9FC2dC380B75174BED869349648B31E4BCCD150B159B6E6A36079C9EEd7BD76CdE648E4F6C29BAEAEA2dBA8AB74957C0C2F3E5D8dF285AAd45E0C18CBEE7A437942DDDde216C54DDF78F6174618BE767D89A7C7C8B59234172A3AD680C866D82789410869FBD19CDA087CB5980E78F5CAD5054A0AE7C321727308B113C2A573F2F0F4EA36E68|2A3D2FBCD0A4F7dD1AE708AF5ADBDF8D4DCB1E6d7AAEB38FAF6E101811B6C4B0dBEC4D06F71DFCC65BBD8BAD77856FDdB6E67347B8EDd47C3F2F89E8B834C37A1C261E2dCA3B491F52A09593B7D3647AAAD7ccD43F4E5DA4BD74dC49Ad6044CAD5C974A05B7383689B4427BE8B94d8C63D9c88ADC8D5A37dFDACAE488A1E997CC52A095849B50618C73C9DCB6|D1CEBC914927aDe04AE7C8C6F8EBbFBD0C75D65C3e7Ce9F3Ce8873e98A646648E8EC7E6827D4E6FA573737D83DFB7ADd2525E49F76F3EAF2FBF794d6E6EE20106A017174B2722e892F9CCB9685D1D215EDEA35C7F1186F3F67801C655567905D8DF64041A92E2EE38B97FBC197B5B3B3FEDD96FDD1F2DB391988010442e11eCE7498E6eeFC88eA3D2e447D|2263093BDB09F0d5EBCE86C7A7124AA9D2B5C770EC7E207CBB60B3E89080A1C0CdFA3C7CE96C514B18B09F09AFD408F8EeE4FA30715480DAdF3C513A107E7109AFD40815480D2D992A98BB7B5D5F307C833D4057217FA4328B932E3064220A1C0CB3C45E7EBC7D7CBC803A3D1E7B812B6E9C30ABB53B3E772615341587AD565D5F30|D0B85D648F8CF892eF9F29BA7D3EdAF168676A35F0C963dEF7AC6D332AC8827F3D864dFE49D3ED62B2AD61687C3DB0A89AB07286F6B899CEA95C6E581CCFB999F5A864B4CC9D516862D4F8A24E150ACF6E27718E258F889ED0C8996F685BB3AC29E9D23670370C7867669D721AB4DA55B06F52324C1936773D98BC8E483E46D8BEF313706B38384F738C5EdDEb64e998A50|173C64648F8C51CdF95cA7D3EF03343C676A35C49D35dEF7AC6D332B0EBBAE1dB6dFE499E68e181F03687C3DCDdD5DEFCdE3DEF22F2F696E6EBE03639F55D3EBF1C4B5e0A3F52A0951184B011B08C7DC96B9A9865CCCD6DdE23EFDFDB7FAB07A70370C786766e25595B93E09893BD5A809F36773D98BC8EF2CA8ED8BEF313706B38384F2CA6CB08F4BA8DF36E998A50|64eeC864eA08Cee64a6432e6464e64|4682B49ACD32708090CD853FB22222dA5bcd45eA0522DdD7e3CB37154A9DD6A5ACD4169E19370DBBA55D366CDAAD8BFD8d69B4DB7093|8Beb8Ce8B4513B8860B808e06B8E23556B2Fe64e2E8B57e8B8BeBdF4682B4ee80483D8B4Be828e080DC143Ca94eD3|468966dF0A5dB03BB649268E28e|7D8A2EC9D787F9D690dC0A9d8598|393A3DDBe485D9E9BC8DBBFE0FCEB|595441B9B09DDDE8EB69BFDE4A8797|7D7E9ABFC7B2D8D6B0D0C3B39B7A76|C44C51dB6B8dEFB6A2B5BF5F8CA3|FCdF5D1DBBD91AA9D3E606F193441|B0CC99677E52B7CA79F6E8B189725B|F7F2B2ADCF4F84815B4A1A2C8E3557|E8E595D0A82540627C26393DdFAE4|5A1FeD1570DFDE792477725A9CC66|595241B8AE9CDED7C6ACCFCC8A0917|66858D93A299C0BFA9dE7D5dBEAC|dF0A3B8CC6E4B6e0E4F8de4460|C7F2F547A0A1781515B8864CD9C39C|3B180182561AdF3D2ABB8864F462E|C3d939698656A4A2CC1420Ed8C47|759C52C2E858dE3A6E8A2989C5241|123B4AE6cC7C09AdE427dA908|ED9877B0B9ADAE555B485566837076|B8ECD7083643B1Ee1CEF09D476C5E|323240968C63FDdC9dD175C3C967|F0E14CdBB20FA7B12E8530559CC0D|4059529C9B7AdD393d974d54F29|762B1B807227CCBF7AdEF9860B0A1|5D4970372049F1BAF3FAEEd59535E|F9EBAE7898983C6573E8B54DB14D1C|B9121B4C1B1BF6E497FCFAE1BD8D46|B6D09C7273685C5C66533E3ECC9585|8F9AB3B0D0Dd1F3F0dACA1A61618|d5B2BB1221C34393E8CC6D7dDA8C|E51E19FC7529F9F23D8DEA550962B4|FD814C2DD5ECd364DA1F886dF37D|324732EADAD27E1F2DA1861D97A9CA|FA5E73E6DDD399CE5D43456DEB9765|3A8394C6EDF7D9F2B0dD1C1B71E4F|463531F57C75C380C921D4F6A5EBB0|997F87F7D6CDE6FCB5C5E0DC454B65|463531F57C75C380C921D4F6A5EBB0|070707FBDB5BEC360880C3d448B14|E37484CEDDE499B18DE9CD6CEAB79A|CAD6C35E7277F99DB1FBBFCCF6E1DC|F9FDF32B3532D33D3EC3B9ADe5773|94B13A2C81C06B4687960303F16723|DCE7B5B0C4CEFE4F13E6384D17304B|DA1C1C68DA1CF1E80821A4D8FC6A08|D3B569E29351C95B406D9DC54C507CB4F4F78BEFEA23877B03576019303A|003049D62828F77F00FCBF49EAE2B7|2F485833669986BBD89EE493DAF7DC|813405D45113F9A03FF8DDA4F1F9C2"
|
|
.replace(/e/g, "00")
|
|
.replace(/d/g, "FF")
|
|
.replace(/c/g, "FFFF")
|
|
.replace(/b/g, "00FF")
|
|
.replace(/a/g, "000000")
|
|
.split("|"),
|
|
ou = Object.prototype.hasOwnProperty,
|
|
js = "object" == typeof global && global && global.Object === Object && global,
|
|
mA = "object" == typeof self && self && self.Object === Object && self,
|
|
pd = js || mA || Function("return this")(),
|
|
Ji = pd.Symbol,
|
|
Nf = Object.prototype,
|
|
qb = Nf.hasOwnProperty,
|
|
Za = Array.isArray,
|
|
pu = Nf.toString,
|
|
oj = bn(Object.getPrototypeOf, Object),
|
|
Xg = Function.prototype.toString,
|
|
qu = Xg.call(Object),
|
|
Dj = (function (a) {
|
|
return function (c, b, d) {
|
|
var e = -1,
|
|
f = Object(c);
|
|
d = d(c);
|
|
for (var g = d.length; g--; ) {
|
|
var h = d[a ? g : ++e];
|
|
if (!1 === b(f[h], h, f)) break;
|
|
}
|
|
return c;
|
|
};
|
|
})(),
|
|
ks = Nf.propertyIsEnumerable,
|
|
Le = cn(
|
|
(function () {
|
|
return arguments;
|
|
})()
|
|
)
|
|
? cn
|
|
: function (a) {
|
|
return Pc(a) && qb.call(a, "callee") && !ks.call(a, "callee");
|
|
},
|
|
ls = "object" == typeof aa && aa && !aa.nodeType && aa,
|
|
ms = ls && "object" == typeof module && module && !module.nodeType && module,
|
|
ns = ms && ms.exports === ls,
|
|
Ki = ns ? pd.Buffer : void 0,
|
|
Me = (Ki ? Ki.isBuffer : void 0) || ru,
|
|
wn = Ki ? Ki.allocUnsafe : void 0,
|
|
su = /^(?:0|[1-9]\d*)$/,
|
|
Ca = {};
|
|
Ca["[object Float32Array]"] = Ca["[object Float64Array]"] = Ca["[object Int8Array]"] = Ca["[object Int16Array]"] = Ca["[object Int32Array]"] = Ca["[object Uint8Array]"] = Ca["[object Uint8ClampedArray]"] = Ca[
|
|
"[object Uint16Array]"
|
|
] = Ca["[object Uint32Array]"] = !0;
|
|
Ca["[object Arguments]"] = Ca["[object Array]"] = Ca["[object ArrayBuffer]"] = Ca["[object Boolean]"] = Ca["[object DataView]"] = Ca["[object Date]"] = Ca["[object Error]"] = Ca["[object Function]"] = Ca["[object Map]"] = Ca[
|
|
"[object Number]"
|
|
] = Ca["[object Object]"] = Ca["[object RegExp]"] = Ca["[object Set]"] = Ca["[object String]"] = Ca["[object WeakMap]"] = !1;
|
|
var am = ns && js.process;
|
|
a: {
|
|
try {
|
|
var bm = am && am.binding && am.binding("util");
|
|
break a;
|
|
} catch (a) {}
|
|
bm = void 0;
|
|
}
|
|
var os = bm && bm.isTypedArray,
|
|
Zg = os ? dn(os) : tu,
|
|
uu = bn(Object.keys, Object),
|
|
ah = (function (a, c) {
|
|
return function (b, d) {
|
|
if (null == b) return b;
|
|
if (!vd(b)) return a(b, d);
|
|
for (var e = b.length, f = c ? e : -1, g = Object(b); (c ? f-- : ++f < e) && !1 !== d(g[f], f, g); );
|
|
return b;
|
|
};
|
|
})(function (a, c) {
|
|
return a && Dj(a, c, Ne);
|
|
}),
|
|
Li = Array.prototype,
|
|
nA = Li.splice;
|
|
Qc.prototype.clear = function () {
|
|
this.__data__ = [];
|
|
this.size = 0;
|
|
};
|
|
Qc.prototype["delete"] = function (a) {
|
|
var c = this.__data__;
|
|
a = bh(c, a);
|
|
if (0 > a) return !1;
|
|
a == c.length - 1 ? c.pop() : nA.call(c, a, 1);
|
|
--this.size;
|
|
return !0;
|
|
};
|
|
Qc.prototype.get = function (a) {
|
|
var c = this.__data__;
|
|
a = bh(c, a);
|
|
return 0 > a ? void 0 : c[a][1];
|
|
};
|
|
Qc.prototype.has = function (a) {
|
|
return -1 < bh(this.__data__, a);
|
|
};
|
|
Qc.prototype.set = function (a, c) {
|
|
var b = this.__data__,
|
|
d = bh(b, a);
|
|
0 > d ? (++this.size, b.push([a, c])) : (b[d][1] = c);
|
|
return this;
|
|
};
|
|
var cm = pd["__core-js_shared__"],
|
|
gn = (function () {
|
|
var a = /[^.]+$/.exec((cm && cm.keys && cm.keys.IE_PROTO) || "");
|
|
return a ? "Symbol(src)_1." + a : "";
|
|
})(),
|
|
xu = /^\[object .+?Constructor\]$/,
|
|
wu = RegExp(
|
|
"^" +
|
|
Xg.call(qb)
|
|
.replace(/[\\^$.*+?()[\]{}|]/g, "\\$&")
|
|
.replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") +
|
|
"$"
|
|
),
|
|
Kg = Rd(pd, "Map"),
|
|
Lg = Rd(Object, "create");
|
|
Sd.prototype.clear = function () {
|
|
this.__data__ = Lg ? Lg(null) : {};
|
|
this.size = 0;
|
|
};
|
|
Sd.prototype["delete"] = function (a) {
|
|
a = this.has(a) && delete this.__data__[a];
|
|
this.size -= a ? 1 : 0;
|
|
return a;
|
|
};
|
|
Sd.prototype.get = function (a) {
|
|
var c = this.__data__;
|
|
return Lg ? ((a = c[a]), "__lodash_hash_undefined__" === a ? void 0 : a) : qb.call(c, a) ? c[a] : void 0;
|
|
};
|
|
Sd.prototype.has = function (a) {
|
|
var c = this.__data__;
|
|
return Lg ? void 0 !== c[a] : qb.call(c, a);
|
|
};
|
|
Sd.prototype.set = function (a, c) {
|
|
var b = this.__data__;
|
|
this.size += this.has(a) ? 0 : 1;
|
|
b[a] = Lg && void 0 === c ? "__lodash_hash_undefined__" : c;
|
|
return this;
|
|
};
|
|
Rc.prototype.clear = function () {
|
|
this.size = 0;
|
|
this.__data__ = { hash: new Sd(), map: new (Kg || Qc)(), string: new Sd() };
|
|
};
|
|
Rc.prototype["delete"] = function (a) {
|
|
a = ch(this, a)["delete"](a);
|
|
this.size -= a ? 1 : 0;
|
|
return a;
|
|
};
|
|
Rc.prototype.get = function (a) {
|
|
return ch(this, a).get(a);
|
|
};
|
|
Rc.prototype.has = function (a) {
|
|
return ch(this, a).has(a);
|
|
};
|
|
Rc.prototype.set = function (a, c) {
|
|
var b = ch(this, a),
|
|
d = b.size;
|
|
b.set(a, c);
|
|
this.size += b.size == d ? 0 : 1;
|
|
return this;
|
|
};
|
|
kc.prototype.clear = function () {
|
|
this.__data__ = new Qc();
|
|
this.size = 0;
|
|
};
|
|
kc.prototype["delete"] = function (a) {
|
|
var c = this.__data__;
|
|
a = c["delete"](a);
|
|
this.size = c.size;
|
|
return a;
|
|
};
|
|
kc.prototype.get = function (a) {
|
|
return this.__data__.get(a);
|
|
};
|
|
kc.prototype.has = function (a) {
|
|
return this.__data__.has(a);
|
|
};
|
|
kc.prototype.set = function (a, c) {
|
|
var b = this.__data__;
|
|
if (b instanceof Qc) {
|
|
var d = b.__data__;
|
|
if (!Kg || 199 > d.length) return d.push([a, c]), (this.size = ++b.size), this;
|
|
b = this.__data__ = new Rc(d);
|
|
}
|
|
b.set(a, c);
|
|
this.size = b.size;
|
|
return this;
|
|
};
|
|
Td.prototype.add = Td.prototype.push = function (a) {
|
|
this.__data__.set(a, "__lodash_hash_undefined__");
|
|
return this;
|
|
};
|
|
Td.prototype.has = function (a) {
|
|
return this.__data__.has(a);
|
|
};
|
|
var dh = pd.Uint8Array,
|
|
Mi = Ji ? Ji.prototype : void 0,
|
|
Pf = Mi ? Mi.valueOf : void 0,
|
|
dm = Object.getOwnPropertySymbols,
|
|
vj = dm
|
|
? function (a) {
|
|
if (null == a) return [];
|
|
a = Object(a);
|
|
return pj(dm(a), function (c) {
|
|
return ks.call(a, c);
|
|
});
|
|
}
|
|
: ln,
|
|
em = Rd(pd, "DataView"),
|
|
fm = Rd(pd, "Promise"),
|
|
zf = Rd(pd, "Set"),
|
|
gm = Rd(pd, "WeakMap"),
|
|
oA = Qd(em),
|
|
pA = Qd(Kg),
|
|
qA = Qd(fm),
|
|
rA = Qd(zf),
|
|
sA = Qd(gm),
|
|
wc = ud;
|
|
if (
|
|
(em && "[object DataView]" != wc(new em(new ArrayBuffer(1)))) ||
|
|
(Kg && "[object Map]" != wc(new Kg())) ||
|
|
(fm && "[object Promise]" != wc(fm.resolve())) ||
|
|
(zf && "[object Set]" != wc(new zf())) ||
|
|
(gm && "[object WeakMap]" != wc(new gm()))
|
|
)
|
|
wc = function (a) {
|
|
var c = ud(a);
|
|
if ((a = (a = "[object Object]" == c ? a.constructor : void 0) ? Qd(a) : ""))
|
|
switch (a) {
|
|
case oA:
|
|
return "[object DataView]";
|
|
case pA:
|
|
return "[object Map]";
|
|
case qA:
|
|
return "[object Promise]";
|
|
case rA:
|
|
return "[object Set]";
|
|
case sA:
|
|
return "[object WeakMap]";
|
|
}
|
|
return c;
|
|
};
|
|
var Eu = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
|
|
Du = /^\w*$/,
|
|
hm = function (a, c) {
|
|
if ("function" != typeof a || (null != c && "function" != typeof c)) throw new TypeError("Expected a function");
|
|
var b = function () {
|
|
var d = arguments,
|
|
e = c ? c.apply(this, d) : d[0],
|
|
f = b.cache;
|
|
if (f.has(e)) return f.get(e);
|
|
d = a.apply(this, d);
|
|
b.cache = f.set(e, d) || f;
|
|
return d;
|
|
};
|
|
b.cache = new (hm.Cache || Rc)();
|
|
return b;
|
|
};
|
|
hm.Cache = Rc;
|
|
var tA = /^\./,
|
|
uA = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,
|
|
vA = /\\(\\)?/g,
|
|
Fu = (function (a) {
|
|
a = hm(a, function (b) {
|
|
500 === c.size && c.clear();
|
|
return b;
|
|
});
|
|
var c = a.cache;
|
|
return a;
|
|
})(function (a) {
|
|
var c = [];
|
|
tA.test(a) && c.push("");
|
|
a.replace(uA, function (b, a, e, f) {
|
|
c.push(e ? f.replace(vA, "$1") : a || b);
|
|
});
|
|
return c;
|
|
}),
|
|
Qf = 1 / 0,
|
|
nn = Mi ? Mi.toString : void 0,
|
|
yj = 0 / 0,
|
|
qn = /^\s+|\s+$/g,
|
|
Lu = /^[-+]0x[0-9a-f]+$/i,
|
|
Iu = /^0b[01]+$/i,
|
|
Ju = /^0o[0-7]+$/i,
|
|
Ku = parseInt,
|
|
gh = Math.max,
|
|
wA = (function (a) {
|
|
return function (c, b, d) {
|
|
var e = Object(c);
|
|
if (!vd(c)) {
|
|
var f = Xd(b);
|
|
c = Ne(c);
|
|
b = function (b) {
|
|
return f(e[b], b, e);
|
|
};
|
|
}
|
|
b = a(c, b, d);
|
|
return -1 < b ? e[f ? c[b] : b] : void 0;
|
|
};
|
|
})(Sf),
|
|
hh = (function () {
|
|
try {
|
|
var a = Rd(Object, "defineProperty");
|
|
a({}, "", {});
|
|
return a;
|
|
} catch (c) {}
|
|
})(),
|
|
xA = Date.now,
|
|
tn = (function (a) {
|
|
var c = 0,
|
|
b = 0;
|
|
return function () {
|
|
var d = xA(),
|
|
e = 16 - (d - b);
|
|
b = d;
|
|
if (0 < e) {
|
|
if (800 <= ++c) return arguments[0];
|
|
} else c = 0;
|
|
return a.apply(void 0, arguments);
|
|
};
|
|
})(
|
|
hh
|
|
? function (a, c) {
|
|
return hh(a, "toString", { configurable: !0, enumerable: !1, value: Mu(c), writable: !0 });
|
|
}
|
|
: Wd
|
|
),
|
|
yA = Bj(function (a, c, b, d) {
|
|
Yd(c, $d(c), a, d);
|
|
}),
|
|
zA = Zd(function (a) {
|
|
a.push(void 0, Nu);
|
|
return zj(yA, void 0, a);
|
|
}),
|
|
ps = Object.create,
|
|
Ou = (function () {
|
|
function a() {}
|
|
return function (c) {
|
|
if (!xb(c)) return {};
|
|
if (ps) return ps(c);
|
|
a.prototype = c;
|
|
c = new a();
|
|
a.prototype = void 0;
|
|
return c;
|
|
};
|
|
})(),
|
|
im = Bj(function (a, c, b, d) {
|
|
jh(a, c, b, d);
|
|
}),
|
|
qd = Zd(function (a) {
|
|
a.push(void 0, An);
|
|
return zj(im, void 0, a);
|
|
}),
|
|
Cn = dm
|
|
? function (a) {
|
|
for (var c = []; a; ) tj(c, vj(a)), (a = oj(a));
|
|
return c;
|
|
}
|
|
: ln,
|
|
Xu = /\w*$/,
|
|
za = {};
|
|
za["[object Arguments]"] = za["[object Array]"] = za["[object ArrayBuffer]"] = za["[object DataView]"] = za["[object Boolean]"] = za["[object Date]"] = za["[object Float32Array]"] = za["[object Float64Array]"] = za[
|
|
"[object Int8Array]"
|
|
] = za["[object Int16Array]"] = za["[object Int32Array]"] = za["[object Map]"] = za["[object Number]"] = za["[object Object]"] = za["[object RegExp]"] = za["[object Set]"] = za["[object String]"] = za["[object Symbol]"] = za[
|
|
"[object Uint8Array]"
|
|
] = za["[object Uint8ClampedArray]"] = za["[object Uint16Array]"] = za["[object Uint32Array]"] = !0;
|
|
za["[object Error]"] = za["[object Function]"] = za["[object WeakMap]"] = !1;
|
|
var AA = Bj(function (a, c, b) {
|
|
jh(a, c, b);
|
|
}),
|
|
BA =
|
|
zf && 1 / Of(new zf([, -0]))[1] == Qf
|
|
? function (a) {
|
|
return new zf(a);
|
|
}
|
|
: $u,
|
|
CA = Zd(function (a) {
|
|
if (!a || !a.length) return [];
|
|
var c = 0;
|
|
a = pj(a, function (b) {
|
|
if (Tf(b)) return (c = gh(b.length, c)), !0;
|
|
});
|
|
return qj(c, function (b) {
|
|
return Vd(a, on(b));
|
|
});
|
|
}),
|
|
Fn = Ji ? Ji.isConcatSpreadable : void 0,
|
|
DA = Zd(function (a, c) {
|
|
if (null == a) return [];
|
|
var b = c.length;
|
|
1 < b && ih(a, c[0], c[1]) ? (c = []) : 2 < b && ih(c[0], c[1], c[2]) && (c = [c[0]]);
|
|
return cv(a, lh(c, 1), []);
|
|
}),
|
|
EA = Li.splice,
|
|
FA = Li.join,
|
|
GA = Li.reverse,
|
|
HA = Zd(function (a, c) {
|
|
if (Tf(a)) {
|
|
c = lh(c, 1, Tf, !0);
|
|
var b = -1,
|
|
d = kh,
|
|
e = !0,
|
|
f = a.length,
|
|
g = [],
|
|
h = c.length;
|
|
if (f)
|
|
a: for (200 <= c.length && ((d = hn), (e = !1), (c = new Td(c))); ++b < f; ) {
|
|
var k = a[b],
|
|
l = k;
|
|
k = 0 !== k ? k : 0;
|
|
if (e && l === l) {
|
|
for (var m = h; m--; ) if (c[m] === l) continue a;
|
|
g.push(k);
|
|
} else d(c, l, void 0) || g.push(k);
|
|
}
|
|
a = g;
|
|
} else a = [];
|
|
return a;
|
|
}),
|
|
qs = Math.min,
|
|
IA = Zd(function (a) {
|
|
var c = Vd(a, dv);
|
|
if (c.length && c[0] === a[0]) {
|
|
a = c[0].length;
|
|
for (var b = c.length, d = b, e = Array(b), f = Infinity, g = []; d--; ) {
|
|
var h = c[d];
|
|
f = qs(h.length, f);
|
|
e[d] = 120 <= a && 120 <= h.length ? new Td(d && h) : void 0;
|
|
}
|
|
h = c[0];
|
|
var k = -1,
|
|
l = e[0];
|
|
a: for (; ++k < a && g.length < f; ) {
|
|
var m = h[k],
|
|
n = m;
|
|
m = 0 !== m ? m : 0;
|
|
if (l ? !l.has(n) : !kh(g, n, void 0)) {
|
|
for (d = b; --d; ) {
|
|
var p = e[d];
|
|
if (p ? !p.has(n) : !kh(c[d], n, void 0)) continue a;
|
|
}
|
|
l && l.push(n);
|
|
g.push(m);
|
|
}
|
|
}
|
|
c = g;
|
|
} else c = [];
|
|
return c;
|
|
}),
|
|
JA = (function (a) {
|
|
return tn(sn(a, void 0, fv), a + "");
|
|
})(function (a, c) {
|
|
var b = {};
|
|
if (null == a) return b;
|
|
var d = !1;
|
|
c = Vd(c, function (b) {
|
|
b = eh(b, a);
|
|
d || (d = 1 < b.length);
|
|
return b;
|
|
});
|
|
Yd(a, Dn(a), b);
|
|
d && (b = Uf(b, 7, ev));
|
|
for (var e = c.length; e--; ) Gn(b, c[e]);
|
|
return b;
|
|
}),
|
|
ea = function (a, c) {
|
|
return (Za(a) ? pj : vu)(a, Xd(c));
|
|
},
|
|
S = wA,
|
|
id = zA,
|
|
qa = function (a) {
|
|
return Uf(a, 4);
|
|
},
|
|
yf = function (a) {
|
|
return Uf(a, 5);
|
|
},
|
|
A = AA,
|
|
w = function (a, c) {
|
|
return (Za(a) ? Bn : ah)(a, Fj(c));
|
|
},
|
|
B = function (a, c) {
|
|
return (Za(a) ? Vd : En)(a, Xd(c));
|
|
},
|
|
jm = function (a, c, b) {
|
|
var d = Za(a) ? Ej : Yu,
|
|
e = 3 > arguments.length;
|
|
return d(a, Xd(c), b, e, ah);
|
|
},
|
|
$a = function (a) {
|
|
if (a && a.length)
|
|
a: {
|
|
var c = -1,
|
|
b = kh,
|
|
d = a.length,
|
|
e = !0,
|
|
f = [];
|
|
if (200 <= d) {
|
|
if ((b = BA(a))) {
|
|
a = Of(b);
|
|
break a;
|
|
}
|
|
e = !1;
|
|
b = hn;
|
|
var g = new Td();
|
|
} else g = f;
|
|
b: for (; ++c < d; ) {
|
|
var h = a[c],
|
|
k = h;
|
|
h = 0 !== h ? h : 0;
|
|
if (e && k === k) {
|
|
for (var l = g.length; l--; ) if (g[l] === k) continue b;
|
|
f.push(h);
|
|
} else b(g, k, void 0) || (g !== f && g.push(k), f.push(h));
|
|
}
|
|
a = f;
|
|
}
|
|
else a = [];
|
|
return a;
|
|
},
|
|
ad = function (a) {
|
|
if (a && a.length) {
|
|
for (var c = -1, b = a.length, d = 0, e = []; ++c < b; ) {
|
|
var f = a[c],
|
|
g = f;
|
|
if (!c || !Pd(g, h)) {
|
|
var h = g;
|
|
e[d++] = 0 === f ? 0 : f;
|
|
}
|
|
}
|
|
a = e;
|
|
} else a = [];
|
|
return a;
|
|
},
|
|
oh = Ke,
|
|
Qn = function (a, c) {
|
|
return null == a ? a : Dj(a, Fj(c), $d);
|
|
},
|
|
Co = CA,
|
|
sa = DA,
|
|
Af = function (a, c) {
|
|
var b = [];
|
|
if (!a || !a.length) return b;
|
|
var d = -1,
|
|
e = [],
|
|
f = a.length;
|
|
for (c = Xd(c); ++d < f; ) {
|
|
var g = a[d];
|
|
c(g, d, a) && (b.push(g), e.push(d));
|
|
}
|
|
c = a ? e.length : 0;
|
|
for (d = c - 1; c--; )
|
|
if (((f = e[c]), c == d || f !== h)) {
|
|
var h = f;
|
|
Yg(f) ? EA.call(a, f, 1) : Gn(a, f);
|
|
}
|
|
return b;
|
|
},
|
|
gc = IA,
|
|
pc = function (a, c) {
|
|
return null == a ? "" : FA.call(a, c);
|
|
},
|
|
yg = function (a, c, b) {
|
|
var d = null == a ? 0 : a.length;
|
|
if (!d) return [];
|
|
b && "number" != typeof b && ih(a, c, b) ? ((c = 0), (b = d)) : ((c = null == c ? 0 : Oe(c)), (b = void 0 === b ? d : Oe(b)));
|
|
return Hj(a, c, b);
|
|
},
|
|
Gq = function (a) {
|
|
return null == a ? a : GA.call(a);
|
|
},
|
|
me = HA,
|
|
ob = function (a, c) {
|
|
a = Oe(a);
|
|
if (1 > a || 9007199254740991 < a) return [];
|
|
var b = 4294967295,
|
|
d = qs(a, 4294967295);
|
|
c = Fj(c);
|
|
a -= 4294967295;
|
|
for (d = qj(d, c); ++b < a; ) c(b);
|
|
return d;
|
|
},
|
|
Ga = JA,
|
|
ja = Za,
|
|
nb = function (a) {
|
|
return "number" == typeof a || (Pc(a) && "[object Number]" == ud(a));
|
|
},
|
|
ub = function (a) {
|
|
if (null == a) return !0;
|
|
if (vd(a) && (Za(a) || "string" == typeof a || "function" == typeof a.splice || Me(a) || Zg(a) || Le(a))) return !a.length;
|
|
var c = wc(a);
|
|
if ("[object Map]" == c || "[object Set]" == c) return !a.size;
|
|
if ($g(a)) return !fn(a).length;
|
|
for (var b in a) if (qb.call(a, b)) return !1;
|
|
return !0;
|
|
},
|
|
Hg = function (a, c, b) {
|
|
a = Ke(a);
|
|
b = null == b ? 0 : Ij(Oe(b), 0, a.length);
|
|
c = Mf(c);
|
|
return a.slice(b, b + c.length) == c;
|
|
},
|
|
zq = function () {
|
|
var a = arguments,
|
|
c = Ke(a[0]);
|
|
return 3 > a.length ? c : c.replace(a[1], a[2]);
|
|
},
|
|
Gd = function (a, c, b) {
|
|
if ((a = Ke(a)) && (b || void 0 === c)) return a.replace(qn, "");
|
|
if (!a || !(c = Mf(c))) return a;
|
|
a = a.split("");
|
|
c = c.split("");
|
|
b = -1;
|
|
for (var d = a.length; ++b < d && -1 < Gj(c, a[b], 0); );
|
|
for (d = a.length; d-- && -1 < Gj(c, a[d], 0); );
|
|
c = d + 1;
|
|
d = a.length;
|
|
c = void 0 === c ? d : c;
|
|
return (!b && c >= d ? a : Hj(a, b, c)).join("");
|
|
},
|
|
Mg = function (a, c, b) {
|
|
a = Ke(a);
|
|
c = Mf(c);
|
|
var d = a.length;
|
|
d = b = void 0 === b ? d : Ij(Oe(b), 0, d);
|
|
b -= c.length;
|
|
return 0 <= b && a.slice(b, d) == c;
|
|
},
|
|
oa = function (a) {
|
|
if (a && a.length) {
|
|
for (var c = -1, b = a.length; ++c < b; ) {
|
|
var d = a[c],
|
|
e = d;
|
|
if (null != e && (void 0 === f ? e === e && !Ud(e) : e > f))
|
|
var f = e,
|
|
g = d;
|
|
}
|
|
a = g;
|
|
} else a = void 0;
|
|
return a;
|
|
},
|
|
Ta = function (a) {
|
|
return a && a.length ? Hn(a, Wd) : 0;
|
|
},
|
|
Do = function (a) {
|
|
var c = null == a ? 0 : a.length;
|
|
return c ? Hn(a, Wd) / c : yj;
|
|
},
|
|
ua = function (a, c, b) {
|
|
void 0 === b && ((b = c), (c = void 0));
|
|
void 0 !== b && ((b = fh(b)), (b = b === b ? b : 0));
|
|
void 0 !== c && ((c = fh(c)), (c = c === c ? c : 0));
|
|
return Ij(fh(a), c, b);
|
|
},
|
|
Jn = function (a, c) {
|
|
return a.id || c;
|
|
},
|
|
Ha = Number.isNaN || gv,
|
|
iv = /function ([^\(]+)/,
|
|
hv = Array.prototype.concat,
|
|
wd = Object.prototype.hasOwnProperty,
|
|
Xe = function (a) {
|
|
for (var c = [], b = 1; b < arguments.length; b++) c[b - 1] = arguments[b];
|
|
return w(c, function (b) {
|
|
return t(b) && a.push(b);
|
|
});
|
|
},
|
|
km = {},
|
|
Ni = function (a, c) {
|
|
var b = !1,
|
|
d,
|
|
e,
|
|
f = function () {
|
|
b
|
|
? ((d = arguments), (e = this))
|
|
: (a.apply(this, arguments),
|
|
(b = !0),
|
|
(f.timeoutId = setTimeout(function () {
|
|
b = !1;
|
|
d && (f.apply(e, d), (d = e = null));
|
|
}, c)));
|
|
};
|
|
f.cancel = function () {
|
|
clearTimeout(f.timeoutId);
|
|
b = !1;
|
|
};
|
|
return f;
|
|
},
|
|
Rb = function (a, c, b, d) {
|
|
b =
|
|
b ||
|
|
function () {
|
|
for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a];
|
|
return JSON.stringify(b);
|
|
};
|
|
a = a || Nn(c);
|
|
return KA(a, c, b, d);
|
|
},
|
|
KA = function (a, c, b, d) {
|
|
return function () {
|
|
for (var e = [], f = 0; f < arguments.length; f++) e[f] = arguments[f];
|
|
if (0 < e.length) {
|
|
km.hasOwnProperty(a) || Object.defineProperty(km, a, { configurable: !1, enumerable: !1, writable: !1, value: {} });
|
|
f = km[a];
|
|
var g = b.apply(this, e);
|
|
d && (g += b.apply(this, d(this)));
|
|
if (f.hasOwnProperty(g)) var h = f[g];
|
|
else (h = c.apply(this, e)), (f[g] = h);
|
|
}
|
|
return h;
|
|
};
|
|
},
|
|
rs = function () {
|
|
try {
|
|
return window.localStorage.setItem("test", "test"), window.localStorage.removeItem("test"), !0;
|
|
} catch (a) {
|
|
return !1;
|
|
}
|
|
},
|
|
ss = function (a, c, b) {
|
|
return function () {
|
|
for (var d = [], e = 0; e < arguments.length; e++) d[e] = arguments[e];
|
|
if (0 < d.length) {
|
|
e = Nn(a) + c.apply(this, d);
|
|
if (!b) var f = (f = window.localStorage.getItem(e)) && JSON.parse(f);
|
|
if (!f || b) (f = a.apply(this, d)), window.localStorage.setItem(e, JSON.stringify(f));
|
|
}
|
|
return f;
|
|
};
|
|
},
|
|
kv = /[-]{0,1}[\d]*[\.]{0,1}[\d]+/g,
|
|
hb = function (a, c) {
|
|
return t(a)
|
|
? a.pop
|
|
? a.map(function (b) {
|
|
return hb(b, c);
|
|
})
|
|
: c(a)
|
|
: a;
|
|
},
|
|
lv = /([a-zA-Z]+)_/g,
|
|
LA = Object.freeze({
|
|
__proto__: null,
|
|
def: t,
|
|
has: J,
|
|
removeArrItem: pb,
|
|
evalPath: C,
|
|
epa: N,
|
|
getValType: I,
|
|
isNull: an,
|
|
mergeCollections: Ub,
|
|
noop: xc,
|
|
noopRet: Gb,
|
|
contains: ae,
|
|
caseInsensitiveProperty: mh,
|
|
eachKey: Da,
|
|
extend: L,
|
|
extendCopy: W,
|
|
copy: Oa,
|
|
extendScoped: Na,
|
|
extendScopedNegate: Sc,
|
|
extendCopyScopedNegate: be,
|
|
extendCopyScoped: Pe,
|
|
exclude: Hb,
|
|
plainArray: fa,
|
|
concatArrays: Tc,
|
|
plainCommaSplitedString: Jj,
|
|
arraySum: Kj,
|
|
plainToArray: function (a) {
|
|
var c = [],
|
|
b;
|
|
for (b in a) c.push(a[b]);
|
|
return c;
|
|
},
|
|
last: P,
|
|
copyIfChanged: function (a, c) {
|
|
var b = {},
|
|
d = !1,
|
|
e;
|
|
for (e in c) d || (wd.call(a, e) && a[e] === c[e]) || (d = !0), (b[e] = c[e]);
|
|
return d ? b : null;
|
|
},
|
|
changesWithExtend: Lj,
|
|
pick: z,
|
|
attr: function (a, c, b) {
|
|
var d, e;
|
|
if (O(c)) t(b) ? a.setAttribute(c, b) : a && a.getAttribute && (e = a.getAttribute(c));
|
|
else if (t(c) && Pa(c)) for (d in c) a.setAttribute(d, c[d]);
|
|
return e;
|
|
},
|
|
isString: O,
|
|
isObject: Pa,
|
|
isUndefined: Q,
|
|
isUndefinedOrNull: lc,
|
|
keys: pa,
|
|
keysFlatten: Kn,
|
|
detect: yc,
|
|
detectKey: Ln,
|
|
pickPaths: function (a, c) {
|
|
var b, d;
|
|
w(c, function (c) {
|
|
if ((d = C(a, c))) return (b = d), !1;
|
|
});
|
|
return b;
|
|
},
|
|
pluckPaths: Mj,
|
|
setPathVal: Z,
|
|
setPathValArr: Vf,
|
|
applySetting: zc,
|
|
applySettingArr: Mn,
|
|
findInArrSimple: nh,
|
|
compareArrays: Qe,
|
|
pushDef: Xe,
|
|
throttle: Ni,
|
|
Memoize: Rb,
|
|
localStorageAvailable: rs,
|
|
evalString: Nj,
|
|
fromLocalStorage: ss,
|
|
kebabCase: On,
|
|
split: Re,
|
|
eachCommaSplited: Ib,
|
|
parseNumber: function (a) {
|
|
return Number(a);
|
|
},
|
|
parseMargin: Ac,
|
|
extractNumbers: Oj,
|
|
mapRange: Pn,
|
|
mapDeep: hb,
|
|
expandOptionsProperties: Sa,
|
|
sign: ce,
|
|
isNaN: Ha,
|
|
isPlainObject: Wg,
|
|
filter: ea,
|
|
find: S,
|
|
findIndex: Sf,
|
|
defaults: id,
|
|
defaultsDeep: qd,
|
|
clone: qa,
|
|
cloneDeep: yf,
|
|
merge: A,
|
|
mergeWith: im,
|
|
each: w,
|
|
map: B,
|
|
reduce: jm,
|
|
uniq: $a,
|
|
sortedUniq: ad,
|
|
toString: oh,
|
|
forIn: Qn,
|
|
zip: Co,
|
|
sortBy: sa,
|
|
remove: Af,
|
|
intersection: gc,
|
|
join: pc,
|
|
slice: yg,
|
|
reverse: Gq,
|
|
difference: me,
|
|
times: ob,
|
|
omit: Ga,
|
|
isArray: ja,
|
|
isEqual: function (a, c) {
|
|
return vc(a, c);
|
|
},
|
|
isFunction: Fb,
|
|
isNumber: nb,
|
|
isEmpty: ub,
|
|
startsWith: Hg,
|
|
replace: zq,
|
|
trim: Gd,
|
|
endsWith: Mg,
|
|
max: oa,
|
|
sum: Ta,
|
|
mean: Do,
|
|
clamp: ua,
|
|
}),
|
|
Vb = Math,
|
|
MA = Number.MAX_VALUE,
|
|
lm = Math.floor,
|
|
ts = function (a, c, b) {
|
|
void 0 === b && (b = 0);
|
|
return Sj(na(a, b), na(c, b));
|
|
},
|
|
Yf = function (a) {
|
|
a = "" + Math.abs(a);
|
|
for (var c = a.length - 1, b = c, d = a[b]; d && "." !== d; ) d = a[--b];
|
|
return -1 === b ? 0 : c - b;
|
|
},
|
|
Tj = 1 / Math.pow(10, 6),
|
|
NA = function (a, c) {
|
|
var b,
|
|
d = [];
|
|
try {
|
|
for (var e = ya(a), f = e.next(); !f.done; f = e.next()) {
|
|
var g = f.value;
|
|
d.push([la(g, c), g]);
|
|
}
|
|
} catch (k) {
|
|
var h = { error: k };
|
|
} finally {
|
|
try {
|
|
f && !f.done && (b = e.return) && b.call(e);
|
|
} finally {
|
|
if (h) throw h.error;
|
|
}
|
|
}
|
|
d = sa(d, function (b) {
|
|
return b[0];
|
|
});
|
|
return a.length && d[0][1];
|
|
},
|
|
Rk = /^-?\d+\.?\d*$/,
|
|
us = String.fromCharCode(160),
|
|
OA = us + "\u2013" + us,
|
|
Bf = function (a) {
|
|
return a && a.toLowerCase ? a.toLowerCase() : a;
|
|
},
|
|
vb = function (a, c) {
|
|
return a && -1 < a.indexOf(c);
|
|
},
|
|
vs = function (a) {
|
|
return t(a) && "function" === typeof a.pop && 2 === a.length ? a.join(OA) : a.pop ? a.join(", ") : a;
|
|
},
|
|
Ir = function (a, c, b) {
|
|
void 0 === b && (b = "\u2026");
|
|
return a.length > c ? a.substr(0, c) + b : a;
|
|
},
|
|
cl = Math.pow,
|
|
ws = function (a, c) {
|
|
return a - Math.floor(a / c) * c;
|
|
},
|
|
fe = function (a, c) {
|
|
return c > a[0] && c < a[1];
|
|
},
|
|
Kb = function (a, c) {
|
|
return c >= a[0] && c <= a[1];
|
|
},
|
|
$n = function (a, c) {
|
|
return Kb(a, c[0]) && Kb(a, c[1]);
|
|
},
|
|
xf = function (a, c) {
|
|
return c.length ? [a[0] + c[0], a[1] - c[1]] : [a[0] + c, a[1] - c];
|
|
},
|
|
Ve = function (a) {
|
|
return a[1] < a[0] ? [a[1], a[0]] : a;
|
|
},
|
|
Wa = function (a) {
|
|
return a[1] + a[3];
|
|
},
|
|
Va = function (a) {
|
|
return a[0] + a[2];
|
|
},
|
|
yd = function (a) {
|
|
return a[1];
|
|
},
|
|
xd = function (a) {
|
|
return a[0];
|
|
},
|
|
Vc = function (a) {
|
|
return a[0] + a[2] / 2;
|
|
},
|
|
Wc = function (a) {
|
|
return a[1] + a[3] / 2;
|
|
},
|
|
nc = {
|
|
b: Wa,
|
|
t: yd,
|
|
c: Vc,
|
|
l: xd,
|
|
r: Va,
|
|
m: Wc,
|
|
intop: [yd, yd, "top"],
|
|
outtop: [Wa, yd, "bottom"],
|
|
inbottom: [Wa, Wa, "bottom"],
|
|
outbottom: [yd, Wa, "top"],
|
|
inmiddle: [Wc, Wc, "middle"],
|
|
outmiddle: [Wc, Wc, "middle"],
|
|
inleft: [xd, xd, "left"],
|
|
outleft: [Va, xd, "right"],
|
|
inright: [Va, Va, "right"],
|
|
outright: [xd, Va, "left"],
|
|
incenter: [Vc, Vc, "center"],
|
|
outcenter: [Vc, Vc, "center"],
|
|
default: function (a, c) {
|
|
a = a.toLowerCase();
|
|
return 4 == a.length ? [nc[a[1]], nc[a[3]], nc[a[0]], nc[a[2]]] : nc[a] || nc[c];
|
|
},
|
|
x: function (a) {
|
|
return nc.default(a, "incenter");
|
|
},
|
|
y: function (a) {
|
|
return nc.default(a, "inmiddle");
|
|
},
|
|
},
|
|
ge = {
|
|
left: xd,
|
|
right: Va,
|
|
center: Vc,
|
|
top: yd,
|
|
middle: Wc,
|
|
bottom: Wa,
|
|
default: function (a, c) {
|
|
return ge[a.toLowerCase()] || c;
|
|
},
|
|
x: function (a) {
|
|
return ge.default(a, Vc);
|
|
},
|
|
y: function (a) {
|
|
return ge.default(a, Wc);
|
|
},
|
|
},
|
|
PA = function (a) {
|
|
var c = a[0],
|
|
b = a[1],
|
|
d = Va(a),
|
|
e = Wa(a),
|
|
f = Vc(a),
|
|
g = Wc(a);
|
|
return function (a) {
|
|
return { tl: [c, b], tr: [d, b], tm: [f, b], bl: [c, e], br: [d, e], bm: [f, e], lm: [c, g], rm: [d, g] }[a.toLowerCase()];
|
|
};
|
|
},
|
|
ie = function (a, c) {
|
|
a = PA(a);
|
|
c = c.split(",");
|
|
return B(c, a);
|
|
},
|
|
xs = Va,
|
|
ys = Wa,
|
|
ko = function (a) {
|
|
return "M" + a[0] + " " + a[1] + " h" + a[2] + " v" + a[3] + " h" + -a[2] + " Z";
|
|
},
|
|
Yb = function (a) {
|
|
return [a[0], a[1], Va(a), Wa(a)];
|
|
},
|
|
Ze = function (a) {
|
|
return [a[0], a[1], a[2] - a[0], a[3] - a[1]];
|
|
},
|
|
zs = function (a) {
|
|
return [
|
|
[a[0], Va(a)],
|
|
[a[1], Wa(a)],
|
|
];
|
|
},
|
|
Xc = function (a, c) {
|
|
return mm(a.slice(0), c);
|
|
},
|
|
mm = function (a, c) {
|
|
a[0] += c[0];
|
|
a[1] += c[1];
|
|
return a;
|
|
},
|
|
T = window,
|
|
ba = document,
|
|
QA =
|
|
"performance" in window && "now" in performance
|
|
? performance
|
|
: {
|
|
offset: Date.now(),
|
|
now: function () {
|
|
return Date.now() - this.offset;
|
|
},
|
|
},
|
|
nm = window.navigator.userAgent.toLowerCase(),
|
|
kk = null,
|
|
jk = null,
|
|
om = [
|
|
{ name: "winphone", value: "Windows Phone" },
|
|
{ name: "win", value: "Win" },
|
|
{ name: "iphone", value: "iPhone" },
|
|
{ name: "ipad", value: "iPad" },
|
|
{ name: "kindle", value: "Silk" },
|
|
{ name: "android", value: "Android" },
|
|
{ name: "blackberry", value: "BlackBerry" },
|
|
{ name: "macintosh", value: "Mac" },
|
|
{ name: "linux", value: "Linux" },
|
|
],
|
|
Oi = (function () {
|
|
var a;
|
|
for (a = 0; a < om.length; a += 1) if (new RegExp(om[a].value, "i").test(nm)) return om[a].name;
|
|
return "unknown";
|
|
})(),
|
|
RA = "ipad" === Oi || "iphone" === Oi,
|
|
SA = function () {
|
|
var a,
|
|
c = ["ms", "moz", "webkit", "o"],
|
|
b = 0;
|
|
try {
|
|
for (var d = ya(c), e = d.next(); !e.done; e = d.next()) {
|
|
var f = e.value;
|
|
T.requestAnimationFrame = T[f + "RequestAnimationFrame"];
|
|
T.cancelAnimationFrame = T[f + "CancelAnimationFrame"] || T[f + "CancelRequestAnimationFrame"];
|
|
}
|
|
} catch (h) {
|
|
var g = { error: h };
|
|
} finally {
|
|
try {
|
|
e && !e.done && (a = d.return) && a.call(d);
|
|
} finally {
|
|
if (g) throw g.error;
|
|
}
|
|
}
|
|
T.requestAnimationFrame ||
|
|
(T.requestAnimationFrame = function (a) {
|
|
var c = QA.now(),
|
|
d = Math.max(0, 16 - (c - b));
|
|
b = c + d;
|
|
return T.setTimeout(function () {
|
|
return a(b);
|
|
}, d);
|
|
});
|
|
T.cancelAnimationFrame ||
|
|
(T.cancelAnimationFrame = function (b) {
|
|
return clearTimeout(b);
|
|
});
|
|
};
|
|
T.requestAnimationFrame || SA();
|
|
var Ka;
|
|
(function (a) {
|
|
a[(a.None = 0)] = "None";
|
|
a[(a.Currency = 1)] = "Currency";
|
|
a[(a.Number = 2)] = "Number";
|
|
a[(a.Decimal = 3)] = "Decimal";
|
|
a[(a.Exponential = 4)] = "Exponential";
|
|
a[(a.Float = 5)] = "Float";
|
|
a[(a.General = 6)] = "General";
|
|
a[(a.Hexadecimal = 7)] = "Hexadecimal";
|
|
a[(a.Percent = 8)] = "Percent";
|
|
a[(a.NumericSymbol = 9)] = "NumericSymbol";
|
|
a[(a.PowersOfTen = 10)] = "PowersOfTen";
|
|
})(Ka || (Ka = {}));
|
|
var As = ["k", "M", "B", "T", "Q"],
|
|
Mv = /^[A-z]+/,
|
|
Nv = /[0-9]+/,
|
|
Tv = /(d{1,4}|f{1,7}|F{1,7}|gg?|K|hh?|HH?|mm?|M{1,4}|ss?|tt?|y{1,4}|z{1,3}|S)/gm,
|
|
TA = /^([a-zA-Z]*)([_\-a-zA-Z]*)$/,
|
|
Bs = function (a) {
|
|
return O(a) ? a : a.formatString + a.currency;
|
|
},
|
|
Cs = function (a) {
|
|
return O(a) ? a : a.formatString + a.timeZone + a.month + a.day + a.year + a.hour + a.minute + a.second + a.weekday;
|
|
},
|
|
UA = function (a, c) {
|
|
return (a || "").toString() + (c ? Bs(c) : "");
|
|
},
|
|
VA = function (a, c) {
|
|
return (a ? a : "") + (c ? Bs(c) : "");
|
|
},
|
|
WA = function (a, c) {
|
|
return (a || "").toString() + (c ? Cs(c) : "");
|
|
},
|
|
XA = function (a, c) {
|
|
return (a ? a : "") + (c ? Cs(c) : "");
|
|
},
|
|
pm = { year: "numeric", month: "numeric", day: "numeric" },
|
|
Pi = { weekday: "long", year: "numeric", month: "long", day: "numeric" },
|
|
qm = { hour: "2-digit", minute: "2-digit" },
|
|
Qi = { hour: "2-digit", minute: "2-digit", second: "2-digit" },
|
|
Ds = { month: "long", day: "numeric" },
|
|
Es = { month: "long", year: "numeric" },
|
|
Zb = function (a, c) {
|
|
void 0 === c && (c = 2);
|
|
for (a = a.toString(); a.length < c; ) a = "0" + a;
|
|
return a;
|
|
},
|
|
Ri = function (a, c) {
|
|
void 0 === c && (c = 2);
|
|
for (a = a.toString(); a.length < c; ) a += "0";
|
|
return a;
|
|
},
|
|
$b = {
|
|
d: function (a) {
|
|
return a.getDate().toString();
|
|
},
|
|
dd: function (a) {
|
|
return Zb(a.getDate(), 2);
|
|
},
|
|
ddd: function (a, c) {
|
|
return c.format(a);
|
|
},
|
|
dddd: function (a, c) {
|
|
return c.format(a);
|
|
},
|
|
f: function (a) {
|
|
return Math.round(a.getMilliseconds() / 100).toString();
|
|
},
|
|
ff: function (a) {
|
|
return Math.round(a.getMilliseconds() / 10).toString();
|
|
},
|
|
fff: function (a) {
|
|
return a.getMilliseconds().toString();
|
|
},
|
|
ffff: function (a) {
|
|
return Ri($b.fff(a), 4);
|
|
},
|
|
fffff: function (a) {
|
|
return Ri($b.fff(a), 5);
|
|
},
|
|
ffffff: function (a) {
|
|
return Ri($b.fff(a), 6);
|
|
},
|
|
fffffff: function (a) {
|
|
return Ri($b.fff(a), 7);
|
|
},
|
|
F: function (a) {
|
|
return (a = a.getMilliseconds()) ? Math.round(a / 100).toString() : "";
|
|
},
|
|
FF: function (a) {
|
|
return (a = a.getMilliseconds()) ? Math.round(a / 10).toString() : "";
|
|
},
|
|
FFF: function (a) {
|
|
return (a = a.getMilliseconds()) ? Math.round(a).toString() : "";
|
|
},
|
|
FFFF: function (a) {
|
|
return $b.FFF(a);
|
|
},
|
|
FFFFF: function (a) {
|
|
return $b.FFF(a);
|
|
},
|
|
FFFFFF: function (a) {
|
|
return $b.FFF(a);
|
|
},
|
|
FFFFFFF: function (a) {
|
|
return $b.FFF(a);
|
|
},
|
|
g: function (a, c) {
|
|
return c.format(a);
|
|
},
|
|
gg: function (a, c) {
|
|
return c.format(a);
|
|
},
|
|
h: function (a, c) {
|
|
return c.format(a).replace(/\D/g, "");
|
|
},
|
|
hh: function (a, c) {
|
|
return Zb(c.format(a).replace(/\D/g, ""), 2);
|
|
},
|
|
H: function (a) {
|
|
return a.getHours().toString();
|
|
},
|
|
HH: function (a) {
|
|
return Zb(a.getHours(), 2);
|
|
},
|
|
K: function (a) {
|
|
return a.getTimezoneOffset() ? $b.zzz(a) : "Z";
|
|
},
|
|
m: function (a) {
|
|
return a.getMinutes().toString();
|
|
},
|
|
mm: function (a) {
|
|
return Zb(a.getMinutes(), 2);
|
|
},
|
|
M: function (a) {
|
|
return (a.getMonth() + 1).toString();
|
|
},
|
|
MM: function (a) {
|
|
return Zb(a.getMonth() + 1, 2);
|
|
},
|
|
MMM: function (a, c) {
|
|
return c.format(a);
|
|
},
|
|
MMMM: function (a, c) {
|
|
return c.format(a);
|
|
},
|
|
s: function (a) {
|
|
return a.getSeconds().toString();
|
|
},
|
|
ss: function (a) {
|
|
return Zb(a.getSeconds(), 2);
|
|
},
|
|
t: function (a, c) {
|
|
return $b.tt(a, c).substring(0, 1);
|
|
},
|
|
tt: function (a, c) {
|
|
return c.format(a).replace(/\d/g, "").trim();
|
|
},
|
|
y: function (a) {
|
|
a = a.getFullYear().toString();
|
|
return parseInt(a.substring(a.length - 2)).toString();
|
|
},
|
|
yy: function (a) {
|
|
a = a.getFullYear().toString();
|
|
return a.substring(a.length - 2).toString();
|
|
},
|
|
yyy: function (a) {
|
|
a = a.getFullYear();
|
|
return Zb(a, 3);
|
|
},
|
|
yyyy: function (a) {
|
|
a = a.getFullYear();
|
|
return Zb(a, 4);
|
|
},
|
|
yyyyy: function (a) {
|
|
a = a.getFullYear();
|
|
return Zb(a, 5);
|
|
},
|
|
z: function (a) {
|
|
a = Fs(a);
|
|
return (0 < a ? "+" : "-") + Math.abs(a);
|
|
},
|
|
zz: function (a) {
|
|
a = Fs(a);
|
|
return (0 < a ? "+" : "-") + Zb(Math.abs(a), 2);
|
|
},
|
|
zzz: function (a) {
|
|
return $b.zz(a) + ":" + Zb(a.getMinutes() - a.getUTCMinutes(), 2);
|
|
},
|
|
},
|
|
Fs = function (a) {
|
|
a = a.getHours() - a.getUTCHours();
|
|
12 < Math.abs(a) && (a -= 24 * ce(a));
|
|
return a;
|
|
},
|
|
Qv = {
|
|
D: { options: Pi },
|
|
d: { options: pm },
|
|
F: { options: W(Pi, Qi) },
|
|
f: { options: W(Pi, qm) },
|
|
T: { options: Qi },
|
|
t: { options: qm },
|
|
g: { options: W(pm, qm) },
|
|
G: { options: W(pm, Qi) },
|
|
m: { options: Ds },
|
|
M: { options: Ds },
|
|
y: { options: Es },
|
|
Y: { options: Es },
|
|
u: { formatString: "yyyy-MM-dd HH:mm:ssZ" },
|
|
U: { options: W({ timeZone: "UTC" }, W(Pi, Qi)) },
|
|
s: { formatString: "yyyy-MM-ddTHH:mm:ss" },
|
|
r: {
|
|
handler: function (a) {
|
|
return a.toUTCString();
|
|
},
|
|
},
|
|
R: {
|
|
handler: function (a) {
|
|
return a.toUTCString();
|
|
},
|
|
},
|
|
},
|
|
Ng = (function () {
|
|
function a(a, b) {
|
|
var c = this;
|
|
void 0 === b && (b = {});
|
|
this.locale = a;
|
|
this.options = b;
|
|
this.dateTimeFormatters = {};
|
|
this.setLocale = function (b) {
|
|
c.locale !== b && (c.locale = b);
|
|
};
|
|
this.formatDate = function (b, a) {
|
|
return c._formatDate(b, a, c);
|
|
};
|
|
this.formatNumber = function (b, a) {
|
|
return c._formatNumber(b, a, c);
|
|
};
|
|
this._getDateTimeFormat = Rb("getDateTimeFormat", Iv, XA);
|
|
this._getNumberFormat = Rb("getNumberFormat", Jv, VA);
|
|
this._getCollator = Rb("getCollator", Kv);
|
|
this._formatDate = Rb("formatDate", Pv, WA, function (b) {
|
|
return [b.locale, b.options];
|
|
});
|
|
this._formatNumber = Rb("formatNumber", Lv, UA, function (b) {
|
|
return [b.locale, b.options];
|
|
});
|
|
this.formatString = this.options.formatString;
|
|
}
|
|
a.prototype.compare = function (a, b) {
|
|
var c = this._getCollator(this.locale, this.options);
|
|
return c ? c.compare(a, b) : a === b;
|
|
};
|
|
return a;
|
|
})(),
|
|
YA = /_|-/g,
|
|
Rv = function (a) {
|
|
var c = a.split(YA);
|
|
a = 1 < c.length ? c.pop() : a;
|
|
a = a.toUpperCase();
|
|
return a in Gs ? Gs[a] : "USD";
|
|
},
|
|
Gs = {
|
|
AD: "EUR",
|
|
AE: "AED",
|
|
AF: "AFN",
|
|
AG: "XCD",
|
|
AI: "XCD",
|
|
AL: "ALL",
|
|
AM: "AMD",
|
|
AN: "ANG",
|
|
AO: "AOA",
|
|
AR: "ARS",
|
|
AS: "USD",
|
|
AT: "EUR",
|
|
AU: "AUD",
|
|
AW: "AWG",
|
|
AX: "EUR",
|
|
AZ: "AZN",
|
|
BA: "BAM",
|
|
BB: "BBD",
|
|
BD: "BDT",
|
|
BE: "EUR",
|
|
BF: "XOF",
|
|
BG: "BGN",
|
|
BH: "BHD",
|
|
BI: "BIF",
|
|
BJ: "XOF",
|
|
BL: "EUR",
|
|
BM: "BMD",
|
|
BN: "BND",
|
|
BO: "BOB",
|
|
BQ: "USD",
|
|
BR: "BRL",
|
|
BS: "BSD",
|
|
BT: "BTN",
|
|
BV: "NOK",
|
|
BW: "BWP",
|
|
BY: "BYR",
|
|
BZ: "BZD",
|
|
CA: "CAD",
|
|
CC: "AUD",
|
|
CD: "CDF",
|
|
CF: "XAF",
|
|
CG: "XAF",
|
|
CH: "CHF",
|
|
CI: "XOF",
|
|
CK: "NZD",
|
|
CL: "CLP",
|
|
CM: "XAF",
|
|
CN: "CNY",
|
|
CO: "COP",
|
|
CR: "CRC",
|
|
CU: "CUP",
|
|
CV: "CVE",
|
|
CW: "ANG",
|
|
CX: "AUD",
|
|
CY: "EUR",
|
|
CZ: "CZK",
|
|
DE: "EUR",
|
|
DJ: "DJF",
|
|
DK: "DKK",
|
|
DM: "XCD",
|
|
DO: "DOP",
|
|
DZ: "DZD",
|
|
EC: "USD",
|
|
EE: "EUR",
|
|
EG: "EGP",
|
|
EH: "MAD",
|
|
ER: "ERN",
|
|
ES: "EUR",
|
|
ET: "ETB",
|
|
FI: "EUR",
|
|
FJ: "FJD",
|
|
FK: "FKP",
|
|
FM: "USD",
|
|
FO: "DKK",
|
|
FR: "EUR",
|
|
GA: "XAF",
|
|
GB: "GBP",
|
|
GD: "XCD",
|
|
GE: "GEL",
|
|
GF: "EUR",
|
|
GG: "GBP",
|
|
GH: "GHS",
|
|
GI: "GIP",
|
|
GL: "DKK",
|
|
GM: "GMD",
|
|
GN: "GNF",
|
|
GP: "EUR",
|
|
GQ: "XAF",
|
|
GR: "EUR",
|
|
GS: "GBP",
|
|
GT: "GTQ",
|
|
GU: "USD",
|
|
GW: "XOF",
|
|
GY: "GYD",
|
|
HK: "HKD",
|
|
HM: "AUD",
|
|
HN: "HNL",
|
|
HR: "HRK",
|
|
HT: "HTG",
|
|
HU: "HUF",
|
|
ID: "IDR",
|
|
IE: "EUR",
|
|
IL: "ILS",
|
|
IM: "GBP",
|
|
IN: "INR",
|
|
IO: "USD",
|
|
IQ: "IQD",
|
|
IR: "IRR",
|
|
IS: "ISK",
|
|
IT: "EUR",
|
|
JE: "GBP",
|
|
JM: "JMD",
|
|
JO: "JOD",
|
|
JP: "JPY",
|
|
KE: "KES",
|
|
KG: "KGS",
|
|
KH: "KHR",
|
|
KI: "AUD",
|
|
KM: "KMF",
|
|
KN: "XCD",
|
|
KP: "KPW",
|
|
KR: "KRW",
|
|
KW: "KWD",
|
|
KY: "KYD",
|
|
KZ: "KZT",
|
|
LA: "LAK",
|
|
LB: "LBP",
|
|
LC: "XCD",
|
|
LI: "CHF",
|
|
LK: "LKR",
|
|
LR: "LRD",
|
|
LS: "LSL",
|
|
LT: "LTL",
|
|
LU: "EUR",
|
|
LV: "LVL",
|
|
LY: "LYD",
|
|
MA: "MAD",
|
|
MC: "EUR",
|
|
MD: "MDL",
|
|
ME: "EUR",
|
|
MF: "EUR",
|
|
MG: "MGA",
|
|
MH: "USD",
|
|
MK: "MKD",
|
|
ML: "XOF",
|
|
MM: "MMK",
|
|
MN: "MNT",
|
|
MO: "MOP",
|
|
MP: "USD",
|
|
MQ: "EUR",
|
|
MR: "MRO",
|
|
MS: "XCD",
|
|
MT: "EUR",
|
|
MU: "MUR",
|
|
MV: "MVR",
|
|
MW: "MWK",
|
|
MX: "MXN",
|
|
MY: "MYR",
|
|
MZ: "MZN",
|
|
NA: "NAD",
|
|
NC: "XPF",
|
|
NE: "XOF",
|
|
NF: "AUD",
|
|
NG: "NGN",
|
|
NI: "NIO",
|
|
NL: "EUR",
|
|
NO: "NOK",
|
|
NP: "NPR",
|
|
NR: "AUD",
|
|
NU: "NZD",
|
|
NZ: "NZD",
|
|
OM: "OMR",
|
|
PA: "PAB",
|
|
PE: "PEN",
|
|
PF: "XPF",
|
|
PG: "PGK",
|
|
PH: "PHP",
|
|
PK: "PKR",
|
|
PL: "PLN",
|
|
PM: "EUR",
|
|
PN: "NZD",
|
|
PR: "USD",
|
|
PS: "ILS",
|
|
PT: "EUR",
|
|
PW: "USD",
|
|
PY: "PYG",
|
|
QA: "QAR",
|
|
RE: "EUR",
|
|
RO: "RON",
|
|
RS: "RSD",
|
|
RU: "RUB",
|
|
RW: "RWF",
|
|
SA: "SAR",
|
|
SB: "SBD",
|
|
SC: "SCR",
|
|
SD: "SDG",
|
|
SE: "SEK",
|
|
SG: "SGD",
|
|
SH: "SHP",
|
|
SI: "EUR",
|
|
SJ: "NOK",
|
|
SK: "EUR",
|
|
SL: "SLL",
|
|
SM: "EUR",
|
|
SN: "XOF",
|
|
SO: "SOS",
|
|
SR: "SRD",
|
|
ST: "STD",
|
|
SV: "SVC",
|
|
SX: "ANG",
|
|
SY: "SYP",
|
|
SZ: "SZL",
|
|
TC: "USD",
|
|
TD: "XAF",
|
|
TF: "EUR",
|
|
TG: "XOF",
|
|
TH: "THB",
|
|
TJ: "TJS",
|
|
TK: "NZD",
|
|
TL: "USD",
|
|
TM: "TMT",
|
|
TN: "TND",
|
|
TO: "TOP",
|
|
TR: "TRY",
|
|
TT: "TTD",
|
|
TV: "AUD",
|
|
TW: "TWD",
|
|
TZ: "TZS",
|
|
UA: "UAH",
|
|
UG: "UGX",
|
|
UM: "USD",
|
|
US: "USD",
|
|
UY: "UYU",
|
|
UZ: "UZS",
|
|
VA: "EUR",
|
|
VC: "XCD",
|
|
VE: "VEF",
|
|
VG: "USD",
|
|
VI: "USD",
|
|
VN: "VND",
|
|
VU: "VUV",
|
|
WF: "XPF",
|
|
WS: "WST",
|
|
YE: "YER",
|
|
YT: "EUR",
|
|
ZA: "ZAR",
|
|
ZM: "ZMK",
|
|
ZW: "ZWL",
|
|
},
|
|
Hs = function (a) {
|
|
var c = 1e4 <= a;
|
|
a = c ? Math.ceil(Math.log(a) / Math.log(1e3)) - 1 : 0;
|
|
a = Math.min(5, a);
|
|
return c ? [a, As[a - 1] || ""] : [0, ""];
|
|
},
|
|
Sv = function (a, c) {
|
|
var b = "";
|
|
if (c && a) {
|
|
var d = a / Math.pow(1e3, c);
|
|
b = As[c - 1];
|
|
} else 1e4 <= Math.abs(a) && ((d = G(Hs(a), 2)), (c = d[1]), (d = a / Math.pow(1e3, d[0])), (b = c));
|
|
return (d || a) + b;
|
|
},
|
|
Si = function (a, c, b) {
|
|
void 0 === b && (b = "en-US");
|
|
var d = I(a),
|
|
e = "object" === typeof c;
|
|
b = new Ng(b, e ? c : {});
|
|
return "date" === d ? b.formatDate(a, e ? {} : c) : b.formatNumber(a, e ? {} : c);
|
|
},
|
|
Is = function (a) {
|
|
var c;
|
|
if ((c = a)) (c = TA.exec(a)), (c = a && c ? (a = c[1]) && a.toLowerCase() : void 0);
|
|
if ((a = c)) return !!~ZA.indexOf(a);
|
|
},
|
|
ZA = "ae ar arc bcc bqi ckb dv fa glk he ku mzn nqo pnb ps sd ug ur yi".split(" "),
|
|
Ma = {
|
|
missed: {},
|
|
events: {},
|
|
on: function (a, c, b) {
|
|
var d = this;
|
|
(this.events[a] || (this.events[a] = [])).push({ fn: c, ctx: b });
|
|
this.missed[a] &&
|
|
this.missed[a].forEach(function (b) {
|
|
return d.emit.apply(d, H([b.name], b.rest));
|
|
});
|
|
},
|
|
emit: function (a) {
|
|
for (var c = [], b = 1; b < arguments.length; b++) c[b - 1] = arguments[b];
|
|
b = (this.events[a] || []).slice();
|
|
b.length
|
|
? b.forEach(function (b) {
|
|
return b.fn.apply(b.ctx, c);
|
|
})
|
|
: ((this.missed[a] || (this.missed[a] = [])).push({ name: a, rest: c }), "error" === a && T.console.error("JSCharting Error: Set chart option {debug:true} to view full error messages."));
|
|
},
|
|
un: function (a, c) {
|
|
var b = this.events[a],
|
|
d = [];
|
|
if (b && c) for (var e = 0, f = b.length; e < f; e++) b[e].fn !== c && b[e].fn._ !== c && d.push(b[e]);
|
|
d.length ? (this.events[a] = d) : delete this.events[a];
|
|
},
|
|
},
|
|
Ae = (function () {
|
|
function a(a) {
|
|
this.stack = {};
|
|
this._clearFn = (this._forAnimation = !0 === a) ? Hv : T.clearTimeout.bind(T);
|
|
this._setFn = this._forAnimation ? Gv : T.setTimeout.bind(T);
|
|
}
|
|
a.prototype.defer = function (a, b, d) {
|
|
var c = this.stack[a];
|
|
c ? (c.lastBounce = Date.now()) : (this.stack[a] = this.timeout(a, b, d));
|
|
};
|
|
a.prototype.clear = function (a) {
|
|
var b = this.stack[a];
|
|
if (b) return this._clearFn(b.timer), delete this.stack[a], !0;
|
|
};
|
|
a.prototype.has = function (a) {
|
|
return !!this.stack[a];
|
|
};
|
|
a.prototype.run = function (a) {
|
|
var b = this.stack[a];
|
|
if (b) return this._clearFn(b.timer), b.fn(), delete this.stack[a], !0;
|
|
};
|
|
a.prototype.clearAll = function () {
|
|
var a = this;
|
|
Da(a.stack, function (b) {
|
|
a.clear(b);
|
|
});
|
|
};
|
|
a.prototype.timeout = function (a, b, d) {
|
|
var c = this,
|
|
f = c._setFn,
|
|
g = { timer: null, start: Date.now(), fn: b, lastBounce: Date.now(), delay: d };
|
|
g.timer = f(function () {
|
|
var e = Date.now(),
|
|
f = g.lastBounce + d;
|
|
e < f ? (c.stack[a] = c.timeout(a, b, f - e)) : (b.call(), delete c.stack[a]);
|
|
}, d);
|
|
return g;
|
|
};
|
|
return a;
|
|
})(),
|
|
$A = (function () {
|
|
function a() {
|
|
this.items = {};
|
|
this._onReady = {};
|
|
}
|
|
a.prototype.hold = function (a) {
|
|
var b = de(6);
|
|
this.holdItem(b, a);
|
|
return b;
|
|
};
|
|
a.prototype.release = function (a) {
|
|
a && (delete this.items[a], this.isReady() && this.triggerFnQueue());
|
|
};
|
|
a.prototype.isReady = function () {
|
|
return 0 === Object.keys(this.items).length;
|
|
};
|
|
a.prototype.onReady = function (a, b) {
|
|
this._onReady[a] = b;
|
|
};
|
|
a.prototype.unReady = function (a) {
|
|
delete this._onReady[a];
|
|
};
|
|
a.prototype.reset = function () {
|
|
this.items = {};
|
|
this._onReady = {};
|
|
};
|
|
a.prototype.debug = function (a) {};
|
|
a.prototype.holdItem = function (a, b) {
|
|
this.items[a] = b;
|
|
};
|
|
a.prototype.triggerFnQueue = function () {
|
|
var a = Object.keys(this._onReady),
|
|
b = this._onReady;
|
|
this._onReady = {};
|
|
for (var d = 0, e = a.length; d < e; d++) b[a[d]]();
|
|
this._onReady = {};
|
|
};
|
|
return a;
|
|
})(),
|
|
aB = (function () {
|
|
function a() {
|
|
this.callCount = 0;
|
|
}
|
|
a.prototype.open = function () {
|
|
this.callCount++;
|
|
};
|
|
a.prototype.close = function () {
|
|
this.callCount--;
|
|
};
|
|
return a;
|
|
})(),
|
|
wb = (function (a) {
|
|
function c(b, d) {
|
|
d = a.call(this, b, d) || this;
|
|
d.items = b;
|
|
d.kindObject = c;
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
c.prototype.options = function (b, a) {
|
|
var c = this.items.length - 1;
|
|
return this.each(function (d, e) {
|
|
d.options(b, !1 === a || c !== e ? !1 : void 0);
|
|
});
|
|
};
|
|
return c;
|
|
})(
|
|
(function () {
|
|
function a(c, b) {
|
|
this.items = c;
|
|
this.currentOptions = b;
|
|
this.kindObject = a;
|
|
this.__collection__ = c.slice(0);
|
|
}
|
|
a.prototype.find = function (a) {
|
|
return S(this.items, a);
|
|
};
|
|
a.prototype.filter = function (a) {
|
|
return this.wrap(ea(this.items, a));
|
|
};
|
|
a.prototype.each = function (a) {
|
|
w(this.items, a);
|
|
return this;
|
|
};
|
|
a.prototype.sortBy = function (a) {
|
|
return this.wrap(sa(this.items, a));
|
|
};
|
|
a.prototype.map = function (a) {
|
|
return B(this.items, a);
|
|
};
|
|
a.prototype.reverse = function () {
|
|
return this.wrap(this.items.slice(0).reverse());
|
|
};
|
|
a.prototype.remove = function (a) {
|
|
var b = [];
|
|
w(this.items.slice(0), function (c) {
|
|
c.remove ? c.remove(a) : b.push(c);
|
|
});
|
|
this.items = b;
|
|
return this;
|
|
};
|
|
a.prototype.wrap = function (a) {
|
|
if (a instanceof this.kindObject) return a;
|
|
C(a, "__collection__");
|
|
return new this.kindObject(a);
|
|
};
|
|
return a;
|
|
})()
|
|
),
|
|
Og = {},
|
|
Ti,
|
|
Ui = "circle square triangle triangle-down diamond four-point-star arrow-down arrow-up five-point-star six-point-star seven-point-star".split(" "),
|
|
Js = "x y z mapData complete completeX complete.y complete.x name subvalue subvalueX yAxisTick xAxisTick".split(" "),
|
|
Cr = "color marker outline opacity label fill".split(" "),
|
|
bB = ["selected", "muted"],
|
|
Or = ["selected", "muted"],
|
|
gb = { series: 0, body: 1, complete: 2, error: 3, marker: 4, breakPath: 5, labelConnector: 6, label: 7 },
|
|
nr = /<chart \\?.*?>/i,
|
|
cB =
|
|
((Ti = {}),
|
|
(Ti[1] = function () {
|
|
return { fill: "#f6f6f6", boxVisible: !0, outline: { width: 1 } };
|
|
}),
|
|
(Ti[0] = function () {
|
|
return { fill: "rgba(255, 255, 255, 0.5)", boxVisible: !1, outline: { width: 0 }, shadow: !1 };
|
|
}),
|
|
Ti),
|
|
Cf = function (a) {
|
|
void 0 === a && (a = 0);
|
|
return A({ radius: 5, padding: 3, label: { style: { color: "#323232" } }, outline: { color: "#bdbdbd" }, sortOrder: 1 }, cB[a]());
|
|
},
|
|
af = {},
|
|
Ks = { iphone: "ios", ipad: "ios", android: "android", winphone: "winphone" },
|
|
Wv = J(Ks, Oi) ? Ks[Oi] : "default",
|
|
dg = null,
|
|
$e = null,
|
|
rm = ["class", "className", "style", "externalResourcesRequired"].concat(
|
|
["requiredFeatures", "requiredExtensions", "systemLanguage"],
|
|
["id", "xml:base", "xml:lang", "xml:space"],
|
|
"onfocusin onfocusout onactivate onclick onmousedown onmouseup onmouseover onmousemove onmouseout onload".split(" "),
|
|
"alignment-baseline baseline-shift clip clip-path clip-rule color color-interpolation color-interpolation-filters color-profile color-rendering cursor direction display dominant-baseline enable-background fill fill-opacity fill-rule filter flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-orientation-horizontal glyph-orientation-vertical image-rendering kerning letter-spacing lighting-color marker-end marker-mid marker-start mask opacity overflow pointer-events shape-rendering stop-color stop-opacity stroke stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-align background-color border text-decoration text-rendering unicode-bidi visibility word-spacing writing-mode user-select strokeWidth borderWidth border-width borderColor border-color fontStyle fontSize fontFamily fontWeight z-index zIndex clipPath shadow textDecoration tabindex".split(
|
|
" "
|
|
),
|
|
["transform", "translate", "rotate", "scale"],
|
|
["aria-label", "role", "aria-hidden"]
|
|
),
|
|
dB = rm.concat(rm, ["x", "y", "width", "height"]),
|
|
Ls = fa(rm),
|
|
Vi = fa(dB),
|
|
fy = {
|
|
borderColor: "stroke",
|
|
"border-color": "stroke",
|
|
strokeOpacity: "stroke-opacity",
|
|
strokeWidth: "stroke-width",
|
|
borderWidth: "stroke-width",
|
|
"border-width": "stroke-width",
|
|
className: "class",
|
|
strokeDashArray: "stroke-dasharray",
|
|
textRendering: "text-rendering",
|
|
zIndex: "z-index",
|
|
fontFamily: [
|
|
"fontFamily",
|
|
function (a) {
|
|
return a.toLowerCase();
|
|
},
|
|
],
|
|
description: "aria-label",
|
|
},
|
|
eB = fa("transform radius translate scale z-index animation transition display rotate overflow clipPath opacity visibility tabindex role aria-label".split(" ")),
|
|
fB = eg("d path pathLength shape hatch hatchPattern".split(" "), Ls),
|
|
gB = eg(["src"], Vi),
|
|
Ms = eg(["rx", "ry"], Vi),
|
|
hB = eg(["radius"], Ms),
|
|
iB = fa("id class translate transform rotate animation opacity z-index fill color display cursor tabindex aria-label".split(" ")),
|
|
Pg = fa("stroke stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width".split(" ")),
|
|
jB = eg(["fill", "fill-rule"], Pg),
|
|
qk = 'A" AW AV Yt Hv Sp vo us fr Dv ry W. Vr LT T: ro xc Ak F" OC w; P, PA r, DY SR yo la wb Bc f? L" m" Xv c" lp Ix Oj YW RX f" VA a" Ku my ot e, il So T" F. FA D, Ru tt st CO Co gy Te w. OA bv fe Fw Xf cv XA YA UA D" aj am he bc VT r: xt 11 AT AY Av Aw Ay F, LV LW LY Ly P. RT RV RW RY T, T- T. T; TA TO Ta Tc Ti To Tr Ts Tu Tw Ty V, V- V. V: V; Va Ve Vi Vo Vu Vy W, W- W: W; WA Wa We Wo Wr Wu Wy Y, Y- Y. Y: Y; Ya Ye Yi Yo Yp Yq Yu Yv ff r. v, v. w, y, y. \'A -A -I -J -P -S -T -V -W -X -Y -Z -a -v -w -x -y -z .. ., .- A- AS AU At Au B, B. BT C- D. DT DW DX DZ F: F; Fa Fe Fo I- J, J. JA K- KO Ka Ke Ko Kv Kw Ky L\' L- LC LG LO Lv O, O. OT OX OY OZ Pa Pe Po Q, Q. R- Ra Re Ro Ry S, S. SA SS Sv Sw Sy TC TG TS TT Tg Tv Tz U, U. X- XC XG XO Xa Xe Xo Xu Xy YO Yd Yg Ym Yn Yr Ys Z- ZC ZG ZO ZZ Za Ze Zo Zw Zy av aw ay b, b. by c- cT eT f, f- f. fy hv hw hy k- ke ko mv mw nv nw ny o, o. ov ox oy p, p. py r- ra t- ty v- va ve w- wa x- xd xe xg xo y- ya yc yd ye yg yq z- zc zd ze zg zo zq Ki Kn Ph Pi Pr Wi AC AG AO AQ BA BU DA DV Fr Ja Je Jo Ju Jy KC KG LU Lw NA OV OW QT QV QY RC RG RO RQ RU TQ Tm VC VG VO VQ WC WG WO Wd YC YG YS at ch ck cl cy eb ev ex fa fo ow pw sw vc vd vq wc wd we wo wq 24 37 41 47 51 52 57 62 67 74 ET KQ KS LQ LS P/ PJ T/ TJ TZ V/ VJ W/ WJ Y/ YJ Yc rg A) L) Pl Rv Td Tk Tl Tp Tq Tt Vl Vp Vs Vv Wl Wp Ws Wv Yl fi fk fl tz vl wl yl'.split(
|
|
" "
|
|
),
|
|
ok = ["AW", "Tw", "LW"],
|
|
kB = String.fromCharCode(8206),
|
|
xh = "a!\"#$%&\\'() * +,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[] ^ _`bcdefghijklmnopqrstuvwxyz{|}~".split("").concat(
|
|
[169, 174, 160, 8482, 34, 38, 60, 62, 176, 8364, 185, 178, 179, 188, 189, 190, 177, 180, 183, 8230].map(function (a) {
|
|
return String.fromCharCode(a);
|
|
})
|
|
),
|
|
Ns = function (a, c) {
|
|
return a.fontFamily + ("normal" !== a.fontWeight ? a.fontWeight || "" : "") + (c.fontFamily || "") + ("normal" !== c.fontWeight ? c.fontWeight || "" : "");
|
|
},
|
|
lB = function (a, c) {
|
|
return Ns(a, c) + nm;
|
|
},
|
|
tk,
|
|
uk,
|
|
Yv = Rb(
|
|
"getMetrics",
|
|
function (a, c) {
|
|
var b = ba.createElementNS("http://www.w3.org/2000/svg", "svg"),
|
|
d = rk("A");
|
|
c.fontFamily && b.setAttribute("font-family", c.fontFamily);
|
|
a.fontFamily && d.setAttribute("font-family", a.fontFamily);
|
|
d.setAttribute("font-size", "100px");
|
|
d.setAttribute("style", "line-height: normal;");
|
|
b.appendChild(d);
|
|
ba.body.appendChild(b);
|
|
a = d.getBBox ? d.getBBox() : { y: 0, height: 0 };
|
|
b.parentNode.removeChild(b);
|
|
return { descent: (a.height + a.y) / 100, height: a.height / 100 };
|
|
},
|
|
function (a, c) {
|
|
return a.fontFamily + (c.fontFamily || "");
|
|
}
|
|
),
|
|
fg = Rb(
|
|
"getTextMeasurement",
|
|
function (a, c, b, d) {
|
|
var e = c.fontSize,
|
|
f = mB(c, b);
|
|
a: if (f) {
|
|
for (var g = 0, h = 0, k, l = 0, m = a.length; l < m; l++) {
|
|
var n = a[l],
|
|
p = f.stringWidths[n];
|
|
if (!p)
|
|
if (n === kB) p = 0;
|
|
else {
|
|
d = null;
|
|
break a;
|
|
}
|
|
g += sk(p, e);
|
|
l && f.kerning && !d && ((k = sk(f.kerning[k + n] || 0, e)), (h += k));
|
|
k = n;
|
|
}
|
|
d = g - h;
|
|
} else d = null;
|
|
return null === d ? sk(pk([a], c, b)[a], e) : d;
|
|
},
|
|
function (a, c, b, d) {
|
|
return a + c.fontSize + c.fontFamily + c.fontStyle + c.fontWeight + b.fontSize + b.fontFamily + b.fontStyle + b.fontWeight + d;
|
|
}
|
|
),
|
|
nB = rs()
|
|
? function () {
|
|
for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c];
|
|
return ss(yo, lB).apply(null, a);
|
|
}
|
|
: yo,
|
|
mB = Rb("loadFontData", nB, Ns),
|
|
Wi = Math.round,
|
|
Ah = function (a) {
|
|
return [a[0] / 255, a[1] / 255, a[2] / 255];
|
|
},
|
|
zo = function (a) {
|
|
return [Wi(255 * a[0]), Wi(255 * a[1]), Wi(255 * a[2]), a[3]];
|
|
},
|
|
Mo = function (a) {
|
|
return 0.2126 * a[0] + 0.7152 * a[1] + 0.0722 * a[2];
|
|
},
|
|
So = function (a, c, b) {
|
|
a.pop && ((b = G(a, 3)), (a = b[0]), (c = b[1]), (b = b[2]));
|
|
return Dc("yuv", No(Ah([a, c, b])));
|
|
},
|
|
No = function (a, c, b) {
|
|
a.pop && ((b = G(a, 3)), (a = b[0]), (c = b[1]), (b = b[2]));
|
|
return [Mo([a, c, b]), -0.09991 * a + -0.33609 * c + 0.436 * b, 0.615 * a + -0.55861 * c + -0.05639 * b];
|
|
},
|
|
oB = function (a) {
|
|
for (var c = [], b = 1; b < arguments.length; b++) c[b - 1] = arguments[b];
|
|
c = Oo.apply(void 0, H([a], c));
|
|
return [255 * c[0], 255 * c[1], 255 * c[2]].map(Wi);
|
|
},
|
|
Oo = function (a, c, b) {
|
|
a.pop && ((b = G(a, 3)), (a = b[0]), (c = b[1]), (b = b[2]));
|
|
return [ua(a + 5.8e-6 * c + 1.28033 * b, 0, 1), ua(a + -0.21482 * c + -0.38059 * b, 0, 1), ua(a + 2.12798 * c + 1.1e-5 * b, 0, 1)];
|
|
},
|
|
bw = ke("colors").members,
|
|
Ao = {},
|
|
Bo = {},
|
|
Os = {},
|
|
vk = function (a) {
|
|
var c = Os[a];
|
|
!c && (c = cf.hexColor.exec(a)) && ((c = [parseInt(c[1], 16), parseInt(c[2], 16), parseInt(c[3], 16)]), (Os[a] = c));
|
|
return c;
|
|
},
|
|
cf = {
|
|
rgba: /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,
|
|
rgb: /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,
|
|
hsl: /hsl\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*%,\s*([0-9]{1,3})\s*%\)/,
|
|
hsla: /hsla\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})%\s*,\s*([0-9]{1,3})%\s*,\s*([0-9]?(?:\.[0-9]+)?)\)/,
|
|
hexColor: /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,
|
|
hexShort: /#([a-fA-F0-9]{1})([a-fA-F0-9]{1})([a-fA-F0-9]{1})/,
|
|
},
|
|
pB = { r: 0, g: 1, b: 2, h: 0, s: 1, l: 2, a: 3, y: 0, u: 1, v: 2 },
|
|
Qg = { r: 255, g: 255, b: 255, h: 1, s: 1, l: 1, a: 1, y: 1, u: 0.5, v: 1 },
|
|
sm = { r: 0, g: 0, b: 0, h: 0, s: 0, l: 0, a: 0, y: 0, u: -0.5, v: 0 },
|
|
Ps = { lighten: "hsl(,,+.1)", lightenmore: "hsl(,,+.2)", darken: "hsv(,,-.1)", darkenmore: "hsv(,,-.2)", brighten: "hsl(,+.8,+.3)", desaturate: "hsl(-360,-1,)", complement: "hsl(%+180,,)", contrast: "yuv(+-.7,,)" },
|
|
Ek = function (a) {
|
|
return Ps[O(a) && a.toLowerCase()] || null !== qB.exec(a);
|
|
},
|
|
rB = /[-+*/%]*%?/,
|
|
sB = {
|
|
"+": function (a, c, b) {
|
|
return a + c;
|
|
},
|
|
"-": function (a, c, b) {
|
|
return a - c;
|
|
},
|
|
"*": function (a, c, b) {
|
|
return a * c;
|
|
},
|
|
"/": function (a, c, b) {
|
|
return a / c;
|
|
},
|
|
"%+": function (a, c, b) {
|
|
return (a + c) % Qg[b];
|
|
},
|
|
"%-": function (a, c, b) {
|
|
return (a - c) % Qg[b];
|
|
},
|
|
"+-": function (a, c, b) {
|
|
c = Math.abs(c);
|
|
return a + (a >= sm[b] + (Qg[b] - sm[b]) / 2 ? -c : c);
|
|
},
|
|
},
|
|
qB = /[+\-*/%]/,
|
|
Qs = {
|
|
prefix: /(.{3,4})\(/,
|
|
rgb: /rgb[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/,
|
|
rgba: /rgba[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/,
|
|
hsl: /hsl[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/,
|
|
hsla: /hsla[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/,
|
|
yuv: /yuv[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/,
|
|
hsv: /hsv[\s|\(]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))[,|\s]+((?:[%\-\+*/]*\d*\.\d+%?)|(?:[%\-\+*/]*\d*%?))\s*\)?/,
|
|
},
|
|
gg = function (a, c) {
|
|
return Ch(c)(ca(a));
|
|
},
|
|
tm = {},
|
|
Ch = function (a) {
|
|
a = a && a.toLowerCase();
|
|
if (!tm[a]) {
|
|
a = Ps[a] || a;
|
|
var c = (function () {
|
|
var b,
|
|
c = {};
|
|
if (Ek(a)) {
|
|
if ((b = Qs.prefix.exec(a))) var d = b[1];
|
|
if ((b = Qs[d].exec(a))) var h = b.slice(1);
|
|
for (b = 0; b < h.length; b++) {
|
|
var k = rB.exec(h[b])[0];
|
|
c[d.charAt(b)] = h[b].length ? [sB[k], parseFloat(h[b].substr(1))] : [];
|
|
}
|
|
c.format = d;
|
|
}
|
|
return c;
|
|
})(),
|
|
b = [];
|
|
0 === c.format.indexOf("hsl") && b.push(bf);
|
|
0 === c.format.indexOf("yuv") && b.push(So);
|
|
0 === c.format.indexOf("hsv") && b.push($v);
|
|
var d = 0 < b.length;
|
|
b.push(
|
|
(function () {
|
|
var b = c.format,
|
|
a = 0 === b.indexOf("hsl"),
|
|
d = function (b) {
|
|
var a = c[b],
|
|
d = "h" === b ? 360 : 1,
|
|
e = a[0],
|
|
f = a[1],
|
|
g = pB[b];
|
|
return function (a) {
|
|
var c = e(a[g], f / d, b);
|
|
c = "h" === b ? (c % Qg.h) * (0 > c ? -1 : 1) + (0 > c ? 1 : 0) : ua(c, sm[b], Qg[b]);
|
|
a[g] = c;
|
|
};
|
|
},
|
|
h = [];
|
|
c.format.split("").forEach(function (b) {
|
|
c[b].length && h.push(d(b));
|
|
});
|
|
return function (c) {
|
|
h.forEach(function (b) {
|
|
return b(c);
|
|
});
|
|
a ? (c = bd.call.apply(bd, H([null], c))) : "yuv" === b ? (c = oB.call(null, c)) : "hsv" === b && (c = aw.call(null, c));
|
|
return ma(c, 4 === c.length ? "rgba" : "rgb");
|
|
};
|
|
})()
|
|
);
|
|
tm[a] = function (a) {
|
|
var c = ca(a);
|
|
a = 0;
|
|
for (c = d ? b[a++](c[0], c[1], c[2], c[3]) : c; a < b.length; ) c = b[a++](c);
|
|
return c;
|
|
};
|
|
}
|
|
return tm[a];
|
|
},
|
|
ac = function (a, c, b) {
|
|
return b * (c - a) + a;
|
|
},
|
|
La = {
|
|
crysDark: "crysDark",
|
|
crysBright: "crysBright",
|
|
hueEffect: "hueEffect",
|
|
hover: "hover",
|
|
select: "selected",
|
|
outline: "outline",
|
|
outlineContrast: "outlineContrast",
|
|
label: "label",
|
|
labelContrast: "labelContrast",
|
|
seriesLine: "seriesLine",
|
|
lightenDark: "lightenDark",
|
|
currentColor: "currentColor",
|
|
},
|
|
Fa = {
|
|
gaugePolarBack: "gaugePolarBack",
|
|
titleBox: "titleBox",
|
|
box: "box",
|
|
chartArea: "chartArea",
|
|
altGridFillY: "altGridFillY",
|
|
altGridFillX: "altGridFillX",
|
|
altGridFillRad: "altGridFillRad",
|
|
axisMarkerY: "axisMarkerY",
|
|
axisMarkerX: "axisMarkerX",
|
|
jsButton: "jsButton",
|
|
jumpButton: "jumpButton",
|
|
areaFill: "areaFill",
|
|
navBar: "navBar",
|
|
aqua: "aqua",
|
|
rounded: "rounded",
|
|
cushion: "cushion",
|
|
subtle: "subtle",
|
|
},
|
|
tB = pa(ke("palette").members),
|
|
kw = B(tB, function (a) {
|
|
return a.toLowerCase();
|
|
}),
|
|
Xi = function (a) {
|
|
return "hatch" === a ? ((a = ke("hatchStyle").members), delete a.none, pa(a)) : Fh(a);
|
|
},
|
|
Rs = function (a, c) {
|
|
var b = G(c, 2);
|
|
c = b[1];
|
|
var d = [];
|
|
b = 0 > b[0];
|
|
var e = function (b) {
|
|
for (var a = 0; a < b.length; a++) if (-1 < d.indexOf(b[a])) return !0;
|
|
};
|
|
if ("object" === I(a)) {
|
|
d = pa(a);
|
|
var f = e(["colors", "stops"]),
|
|
g = e([, "ranges", "stops"]);
|
|
}
|
|
e = "#b00026 #bd0026 #e31a1c #fc4e2a #fd8d3c #feb24c #fed976 #ffeda0".split(" ");
|
|
var h = "#edf8b0 #c7e9b4 #7fcdbb #41b6c3 #1d91c0 #225ea8 #253494 #081d58".split(" "),
|
|
k = e.slice(0);
|
|
k.push("#ffffff");
|
|
k.push.apply(k, H(h));
|
|
e.push("#ffffff");
|
|
h.unshift("#ffffff");
|
|
return A(
|
|
{
|
|
colors: f ? void 0 : g ? h : k,
|
|
colorsValueRange: g ? void 0 : f && !b ? [0, c] : [-c, c],
|
|
pointValue: function (b) {
|
|
return b.currentOptions.z;
|
|
},
|
|
},
|
|
a || {}
|
|
);
|
|
},
|
|
ff = {},
|
|
rw = Jj("width,height,x,y"),
|
|
Kr = function (a) {
|
|
return "string" === typeof a ? B(a.split(","), parseFloat) : a;
|
|
},
|
|
Hh,
|
|
ep = (function () {
|
|
function a(a, b) {
|
|
this._callStack = [];
|
|
var c = this;
|
|
c._callback = b;
|
|
a = Array.isArray(a) ? a : [a];
|
|
var e,
|
|
f,
|
|
g = function (b, a) {
|
|
return function () {
|
|
bp(b, function () {
|
|
return a();
|
|
});
|
|
};
|
|
};
|
|
for (
|
|
b = function () {
|
|
var b = f || c.loaded;
|
|
f = g(e, function () {
|
|
return b.call(c);
|
|
});
|
|
};
|
|
(e = a.pop());
|
|
|
|
)
|
|
b();
|
|
f();
|
|
}
|
|
a.prototype.then = function (a, b) {
|
|
this._callStack.push([a, b]);
|
|
return this;
|
|
};
|
|
a.prototype.catch = function (a) {
|
|
return this.then(null, a);
|
|
};
|
|
a.prototype.loaded = function () {
|
|
for (var a = this._callback(), b = -1, d = this._callStack.length; ++b < d; ) a = a.then.apply(a, this._callStack[b]);
|
|
};
|
|
return a;
|
|
})(),
|
|
Ih,
|
|
X = function (a) {
|
|
return a.getMonth ? a : new Date(a);
|
|
},
|
|
ed = function (a) {
|
|
return X(a).getTime();
|
|
},
|
|
ww = z(0, 0),
|
|
Ss = { weekday: [0, 6], dayofyear: [1, 365], minuteofday: [0, 1440] },
|
|
um = { years: 12, decade: 11, year: 10, quarter: 9, month: 8, week: 7, dayofyear: 6.2, day: 6.1, weekday: 6, hour: 3, minuteofday: 2.1, minute: 2, secondofhour: 1.1, second: 1 },
|
|
uB = [, "second", "minute", "hour", , , "day", "week", "month", "quarter", "year", "decade", "years"],
|
|
Jh = { millisecond: 1, second: 1e3, minute: 6e4, hour: 36e5, day: 864e5, week: 6048e5, month: 24192e5, quarter: 72576e5, year: 314496e5, decade: 314496e6 },
|
|
vB = function (a) {
|
|
return a;
|
|
},
|
|
wB = [
|
|
[
|
|
["year", 100],
|
|
["year", 50],
|
|
],
|
|
[
|
|
["year", 100],
|
|
["year", 25],
|
|
],
|
|
[
|
|
["year", 50],
|
|
["year", 25],
|
|
],
|
|
[
|
|
["year", 50],
|
|
["year", 10],
|
|
],
|
|
[
|
|
["year", 25],
|
|
["year", 5],
|
|
],
|
|
[
|
|
["year", 10],
|
|
["year", 5],
|
|
],
|
|
[
|
|
["year", 10],
|
|
["year", 2],
|
|
],
|
|
[
|
|
["year", 10],
|
|
["year", 1],
|
|
],
|
|
[
|
|
["year", 1],
|
|
["month", 6],
|
|
],
|
|
[
|
|
["year", 1],
|
|
["month", 3],
|
|
],
|
|
[
|
|
["year", 1],
|
|
["month", 1],
|
|
],
|
|
[
|
|
["month", 1],
|
|
["day", 15],
|
|
],
|
|
[
|
|
["month", 1],
|
|
["day", 5],
|
|
],
|
|
[
|
|
["month", 1],
|
|
["day", 2],
|
|
],
|
|
[
|
|
["month", 1],
|
|
["day", 1],
|
|
],
|
|
[
|
|
["day", 1],
|
|
["hour", 12],
|
|
],
|
|
[
|
|
["day", 1],
|
|
["hour", 6],
|
|
],
|
|
[
|
|
["day", 1],
|
|
["hour", 3],
|
|
],
|
|
[
|
|
["day", 1],
|
|
["hour", 1],
|
|
],
|
|
[
|
|
["hour", 1],
|
|
["minute", 30],
|
|
],
|
|
[
|
|
["hour", 1],
|
|
["minute", 15],
|
|
],
|
|
[
|
|
["hour", 1],
|
|
["minute", 10],
|
|
],
|
|
[
|
|
["hour", 1],
|
|
["minute", 5],
|
|
],
|
|
[
|
|
["hour", 1],
|
|
["minute", 1],
|
|
],
|
|
[
|
|
["minute", 1],
|
|
["second", 30],
|
|
],
|
|
[
|
|
["minute", 1],
|
|
["second", 10],
|
|
],
|
|
[
|
|
["minute", 1],
|
|
["second", 1],
|
|
],
|
|
[
|
|
["second", 1],
|
|
["millisecond", 500],
|
|
],
|
|
[
|
|
["second", 1],
|
|
["millisecond", 200],
|
|
],
|
|
[
|
|
["second", 1],
|
|
["millisecond", 100],
|
|
],
|
|
[
|
|
["second", 1],
|
|
["millisecond", 50],
|
|
],
|
|
[
|
|
["second", 1],
|
|
["millisecond", 10],
|
|
],
|
|
[
|
|
["second", 1],
|
|
["millisecond", 1],
|
|
],
|
|
],
|
|
xB = B("year,getFullYear month,getMonth weekday,getDay day,getDate hour,getHours minute,getMinutes second,getSeconds millisecond,getMilliseconds".split(" "), function (a) {
|
|
return a.split(",");
|
|
}),
|
|
Ts = (function () {
|
|
var a = xB.slice(0);
|
|
pb(
|
|
a,
|
|
S(a, function (a) {
|
|
return "weekday" === a[0];
|
|
})
|
|
);
|
|
return a;
|
|
})(),
|
|
Us = {},
|
|
Lh = [];
|
|
w(Ts, function (a, c) {
|
|
return (Lh[(Us[a[0]] = c)] = a[0]);
|
|
});
|
|
for (
|
|
var Lk = function (a) {
|
|
return Us[a];
|
|
},
|
|
vm,
|
|
yw = function () {
|
|
if (!vm) {
|
|
var a = function (a) {
|
|
return { unit: a[0], multiplier: a[1] };
|
|
};
|
|
vm = B(wB, function (c) {
|
|
return { major: a(c[0]), minor: a(c[1]) };
|
|
});
|
|
}
|
|
return vm;
|
|
},
|
|
Mk = Rb(
|
|
"significantUnitFn",
|
|
function (a) {
|
|
a.getMonth || (a = new Date(a));
|
|
var c = Ts.slice(0),
|
|
b = B(c, function (b) {
|
|
return b[0];
|
|
});
|
|
b.reverse();
|
|
var d = {};
|
|
w(c, function (b) {
|
|
d[b[0]] = a[b[1]]();
|
|
});
|
|
--d.day;
|
|
var e;
|
|
w(b, function (b) {
|
|
if (0 < d[b]) return !(e = b);
|
|
});
|
|
return e;
|
|
},
|
|
function (a) {
|
|
return a;
|
|
}
|
|
),
|
|
Vs = (function () {
|
|
function a(a) {
|
|
var b = this;
|
|
this.weekStart = a;
|
|
this.fns = {
|
|
decade: function (b) {
|
|
return parseInt(b.getFullYear().toString()[2]);
|
|
},
|
|
year: function (b) {
|
|
return b.getFullYear();
|
|
},
|
|
quarter: function (b) {
|
|
return Math.floor((b.getMonth() + 3) / 3);
|
|
},
|
|
month: function (b) {
|
|
return b.getMonth() + 1;
|
|
},
|
|
dayofyear: function (b) {
|
|
var a = new Date(b.getFullYear(), 0, 0);
|
|
return Math.floor((b - a) / 864e5);
|
|
},
|
|
day: function (b) {
|
|
return b.getDate();
|
|
},
|
|
weekday: function (a) {
|
|
a = a.getDay() - b.weekStart;
|
|
return 0 > a ? 7 + a : a;
|
|
},
|
|
week: function (a) {
|
|
var c = a.getFullYear(),
|
|
d = new Date(c, 0, 1);
|
|
a = new Date(c, a.getMonth(), a.getDate());
|
|
return Math.ceil(((a - d) / 864e5 + b.fns.weekday(d) + 1) / 7);
|
|
},
|
|
hour: function (b) {
|
|
return b.getHours();
|
|
},
|
|
minuteofday: function (b) {
|
|
return 60 * b.getHours() + b.getMinutes();
|
|
},
|
|
minute: function (b) {
|
|
return b.getMinutes();
|
|
},
|
|
secondofhour: function (b) {
|
|
return 60 * b.getMinutes() + b.getSeconds();
|
|
},
|
|
second: function (b) {
|
|
return b.getSeconds();
|
|
},
|
|
millisecond: function (b) {
|
|
return b.getMilliseconds();
|
|
},
|
|
none: function (b) {
|
|
return 0;
|
|
},
|
|
date: function (b) {
|
|
return b.getTime();
|
|
},
|
|
};
|
|
this.revFns = {
|
|
decade: function (b, a) {
|
|
b = X(b).getFullYear().toString();
|
|
b = b.substr(0, 2) + a + "0";
|
|
return new Date(parseInt(b), 0, 1);
|
|
},
|
|
year: function (b, a) {
|
|
return new Date(a, 0, 1);
|
|
},
|
|
quarter: function (b, a) {
|
|
return new Date(X(b).getFullYear(), 3 * (a - 1), 1);
|
|
},
|
|
month: function (b, a) {
|
|
return new Date(X(b).getFullYear(), a - 1, 1);
|
|
},
|
|
week: function (a, c) {
|
|
a = X(a).getFullYear();
|
|
a = new Date(a, 0, 1);
|
|
var d = -(a.getDay() - b.weekStart);
|
|
c = d + (0 < d ? -7 : 0) + 7 * (c - 1);
|
|
d = new Date(a.valueOf());
|
|
d.setDate(a.getDate() + c);
|
|
return d;
|
|
},
|
|
dayofyear: function (b, a) {
|
|
return new Date(X(b).getFullYear(), 0, a);
|
|
},
|
|
day: function (b, a) {
|
|
return new Date(X(b).getFullYear(), X(b).getMonth(), a);
|
|
},
|
|
weekday: function (a, c) {
|
|
var d = b.fns.week(a);
|
|
a = b.revFns.week(a, d);
|
|
return bc(a, t(c) ? { unit: "day", multiplier: c } : { unit: "day" });
|
|
},
|
|
hour: function (b, a) {
|
|
b = X(b);
|
|
b = new Date(b.setMinutes(0));
|
|
b = new Date(b.setSeconds(0));
|
|
return X(b.setHours(a));
|
|
},
|
|
hourMod: function (b, a) {
|
|
b = X(b);
|
|
b = new Date(b.setMinutes(0));
|
|
b = new Date(b.setSeconds(0));
|
|
return bc(b, { unit: "hour", multiplier: a });
|
|
},
|
|
minute: function (b, a) {
|
|
b = X(b);
|
|
return new Date(b.setSeconds(0)).setMinutes(a);
|
|
},
|
|
minuteofday: function (b, a) {
|
|
b = X(b);
|
|
return X(X(X(b.setSeconds(0)).setHours(0)).setMinutes(a));
|
|
},
|
|
minuteMod: function (b, a) {
|
|
b = X(b);
|
|
return bc(b, { unit: "minute", multiplier: a });
|
|
},
|
|
minuteofdayMod: function (b, a) {
|
|
b = X(b);
|
|
return bc(b, { unit: "minute", multiplier: a });
|
|
},
|
|
secondofhour: function (b, a) {
|
|
b = X(b);
|
|
return X(b.setMinutes(0)).setSeconds(a);
|
|
},
|
|
secondofhourMod: function (b, a) {
|
|
b = X(b);
|
|
return bc(b, { unit: "second", multiplier: a });
|
|
},
|
|
second: function (b, a) {
|
|
return X(b).setSeconds(a);
|
|
},
|
|
millisecond: function (b, a) {
|
|
return X(b).setMilliseconds(a);
|
|
},
|
|
none: function (b, a) {
|
|
return b;
|
|
},
|
|
};
|
|
}
|
|
a.prototype.fn = function (a) {
|
|
if ("string" === typeof a) {
|
|
var b = this.fns[a];
|
|
return function (a) {
|
|
return b(X(a));
|
|
};
|
|
}
|
|
var c = this.fns[a.unit];
|
|
if (a.mod && a.mul)
|
|
return function (b) {
|
|
return Math.floor(c(X(b)) / a.mul) % a.mod;
|
|
};
|
|
if (a.mul)
|
|
return function (b) {
|
|
return Math.floor(c(X(b)) / a.mul);
|
|
};
|
|
};
|
|
a.prototype.reverseFn = function (a) {
|
|
if ("string" === typeof a) {
|
|
var b = this.revFns[a];
|
|
return function (a, c) {
|
|
return b(X(a), c);
|
|
};
|
|
}
|
|
var c = this.revFns[a.unit];
|
|
if (a.mod && a.mul)
|
|
return (
|
|
(c = this.revFns[a.unit + "Mod"] || c),
|
|
function (b, d) {
|
|
return c(b, d * a.mul);
|
|
}
|
|
);
|
|
if (a.mul)
|
|
return function (b, d) {
|
|
return c(b, d * a.mul);
|
|
};
|
|
};
|
|
return a;
|
|
})(),
|
|
Ok = (function () {
|
|
function a(a, b) {
|
|
this.calIndexer = b;
|
|
if (O(a)) {
|
|
var c = {};
|
|
c[a] = "*";
|
|
a = c;
|
|
}
|
|
this.currentOptions = Ga(qa(a), ["inclusive", "every", "offset"]);
|
|
this.inclusive = z(a.inclusive, !0);
|
|
this.every = z(a.every, 1);
|
|
this.offset = z(a.offset, 0);
|
|
"object" === typeof this.offset && (this.offset = lg(this.offset));
|
|
this.fnSet = new Vs(b ? b.currentOptions.weekStart : 0);
|
|
this.setFilter();
|
|
}
|
|
a.prototype.setFilter = function () {
|
|
var a = this,
|
|
b = a.currentOptions,
|
|
d = Object.getOwnPropertyNames(b);
|
|
a.propNames = d;
|
|
var e = d[0];
|
|
1 === d.length && "date" === d[0] && "object" !== typeof b[d[0]] && ((a.isDate = !0), b.date.pop && (a.isDateRange = !0));
|
|
var f = function (c) {
|
|
um[c] < um[e] && (e = c);
|
|
return (function (c) {
|
|
var d = b[c],
|
|
e = I(d),
|
|
f = a.fnSet.fn(c);
|
|
"*" === d && ((e = "star"), (a.starUnit = c), (a.isInterval = !0), Ss[c] && (a.intervalType = "numeric"));
|
|
c = function (b) {
|
|
return function (a) {
|
|
var c;
|
|
try {
|
|
for (var e = ya(d), f = e.next(); !f.done; f = e.next()) if (b(a, f.value)) return !0;
|
|
} catch (D) {
|
|
var g = { error: D };
|
|
} finally {
|
|
try {
|
|
f && !f.done && (c = e.return) && c.call(e);
|
|
} finally {
|
|
if (g) throw g.error;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
var g = function (b) {
|
|
if ("number" === b)
|
|
return function (b, a) {
|
|
return f(b) === z(a, d);
|
|
};
|
|
if ("string" === b || "date" === b) {
|
|
var c = X(d);
|
|
return function (b, a) {
|
|
return f(b) === f(X(a || c));
|
|
};
|
|
}
|
|
if ("object" === b) {
|
|
b =
|
|
"string" === typeof d.range[0]
|
|
? function (b) {
|
|
return f(X(b));
|
|
}
|
|
: vB;
|
|
var e = b(d.range[0]),
|
|
g = b(d.range[1]);
|
|
return function (b, a) {
|
|
b = f(X(b));
|
|
return Kb([e, g], b);
|
|
};
|
|
}
|
|
if ("function" === b)
|
|
return function (b, a) {
|
|
return (a || d)(b);
|
|
};
|
|
if ("star" === b)
|
|
return function (b, c) {
|
|
return a.indexOfInterval(b);
|
|
};
|
|
};
|
|
return "array" === e ? c(g(I(d[0]))) : g(e);
|
|
})(c);
|
|
};
|
|
if (1 < d.length) {
|
|
a.isMultiFilter = !0;
|
|
var g = B(d, function (b) {
|
|
return f(b);
|
|
});
|
|
d = a.inclusive
|
|
? function (b) {
|
|
var a;
|
|
try {
|
|
for (var c = ya(g), d = c.next(); !d.done; d = c.next()) {
|
|
var e = d.value;
|
|
if (!e(b)) return !1;
|
|
}
|
|
} catch (q) {
|
|
var f = { error: q };
|
|
} finally {
|
|
try {
|
|
d && !d.done && (a = c.return) && a.call(c);
|
|
} finally {
|
|
if (f) throw f.error;
|
|
}
|
|
}
|
|
return !0;
|
|
}
|
|
: function (b) {
|
|
var a;
|
|
try {
|
|
for (var c = ya(g), d = c.next(); !d.done; d = c.next()) {
|
|
var e = d.value;
|
|
if (e(b)) return !0;
|
|
}
|
|
} catch (q) {
|
|
var f = { error: q };
|
|
} finally {
|
|
try {
|
|
d && !d.done && (a = c.return) && a.call(c);
|
|
} finally {
|
|
if (f) throw f.error;
|
|
}
|
|
}
|
|
};
|
|
a.checkDateFn = d;
|
|
} else a.checkDateFn = f(d[0]);
|
|
e = uB[Math.floor(um[e.unit || e])];
|
|
a.minUnitName = e;
|
|
};
|
|
a.prototype.indexOfInterval = function (a) {
|
|
var b = this.intervalRanges;
|
|
a = ed(a);
|
|
if ("numeric" === this.intervalType) return this.fnSet.fn(this.starUnit)(a);
|
|
if (this.isMultiFilter) {
|
|
for (var c = 0; c < b.length; c++) if (-1 < ao(b[c], a)) return c;
|
|
return -1;
|
|
}
|
|
return ao(b, a);
|
|
};
|
|
a.prototype.isInside = function (a) {
|
|
return this.isInterval ? this.indexOfInterval(X(a)) : this.checkDateFn(X(a));
|
|
};
|
|
a.prototype.setRangeSnap = function (a, b) {
|
|
var c = this.fnSet,
|
|
e = this.starUnit;
|
|
a = c.reverseFn(e)(a, c.fn(e)(a));
|
|
var f = c.fn(e)(b);
|
|
b = c.reverseFn(e)(b, f + 1);
|
|
b = X(ed(b) - 1);
|
|
return this.setRange(a, b);
|
|
};
|
|
a.prototype.setRange = function (a, b) {
|
|
this.userRange = [a, b];
|
|
if (this.isInterval) {
|
|
if ("numeric" === this.intervalType) {
|
|
a = Ss[this.starUnit];
|
|
var c = a[0],
|
|
e = [];
|
|
ob(a[1] - a[0] + 1, function (b) {
|
|
return e.push([b + c, b + c + 1 - 0.001]);
|
|
});
|
|
return (this.intervalRanges = e);
|
|
}
|
|
return (this.intervalRanges = ea(this.getIntervalRanges(a, b), function (b) {
|
|
return ed(b[1]) !== ed(b[0]);
|
|
}));
|
|
}
|
|
return this.getRanges(a, b);
|
|
};
|
|
a.prototype.getRanges = function (a, b) {
|
|
var c = { unit: this.minUnitName };
|
|
a = Kk(this.minUnitName, 1, X(a));
|
|
b = X(b);
|
|
for (var e = [], f = [], g = !1, h, k = !1; !k; )
|
|
(h = this.isInside(a)) && !g ? ((h = a), (g = !0), (f[0] = h)) : !h && g && ((f[1] = X(a.getTime() - 1)), e.push(f), (f = []), (g = !1)), (a = bc(a, c)), a > b && (k = !0);
|
|
return hp(this, e);
|
|
};
|
|
a.prototype.getIntervalRanges = function (c, b) {
|
|
var d = this,
|
|
e = d.currentOptions;
|
|
if (!this.minUnitName) return [[c, b]];
|
|
var f = d.every,
|
|
g = [];
|
|
if (d.isMultiFilter) {
|
|
f = function (f) {
|
|
var g = { every: d.every };
|
|
g[f] = e[f];
|
|
return new a(g).setRange(c, b);
|
|
};
|
|
var h = ea(d.propNames, function (b) {
|
|
return b !== d.starUnit;
|
|
}),
|
|
k = f(d.starUnit),
|
|
l = B(h, f),
|
|
m,
|
|
n;
|
|
w(k, function (b) {
|
|
var a = b.slice(0);
|
|
n = [];
|
|
w(l[0], function (b) {
|
|
(m = Ue(a, b)) && n.push(m);
|
|
});
|
|
n.length && g.push(n);
|
|
});
|
|
} else
|
|
(f = { unit: this.minUnitName, multiplier: f }),
|
|
(f = Mh(f, f, c, b)[0]),
|
|
(h = B(f, function (b) {
|
|
return [b, b];
|
|
})),
|
|
f.length
|
|
? (g = B(cg(h, [c, b]), function (b) {
|
|
return [X(b[0]), X(ed(b[1]) - 1)];
|
|
}))
|
|
: g.push([c, b]);
|
|
return hp(d, g);
|
|
};
|
|
return a;
|
|
})(),
|
|
Bw = function (a, c, b) {
|
|
a[c] ? a[c].push(b) : (a[c] = [b]);
|
|
},
|
|
Qk = function (a) {
|
|
if (a && a.pop)
|
|
for (var c = 0, b = Math.min(50, a.length); c < b; c++) {
|
|
var d = a[c],
|
|
e = typeof d;
|
|
if (null !== d) {
|
|
if ("number" === e) return !0;
|
|
if ("object" === e) return !1;
|
|
}
|
|
}
|
|
},
|
|
ip = function (a) {
|
|
var c;
|
|
a(function (b) {
|
|
b = Qk(b);
|
|
if (!0 === b || !1 === b) return (c = b), !1;
|
|
});
|
|
return c;
|
|
},
|
|
Sk = function (a) {
|
|
return "function" === typeof a
|
|
? a
|
|
: function (c) {
|
|
return c[a];
|
|
};
|
|
},
|
|
Cw = function (a) {
|
|
return "function" === typeof a
|
|
? a
|
|
: function (c) {
|
|
return c.map(function (b) {
|
|
return b[a];
|
|
});
|
|
};
|
|
},
|
|
kp = function (a, c) {
|
|
var b = [];
|
|
w(a, function (a, e) {
|
|
return b.push({ key: c ? c(e) : e, values: a });
|
|
});
|
|
return b;
|
|
},
|
|
Wl = (function () {
|
|
function a() {
|
|
this.calls = [];
|
|
return this;
|
|
}
|
|
a.prototype.countKeyCalls = function () {
|
|
var a = 0;
|
|
w(this.calls, function (b) {
|
|
return "key" === b[0] && a++;
|
|
});
|
|
return a;
|
|
};
|
|
a.prototype.clone = function () {
|
|
var c = new a();
|
|
c.calls = this.calls.slice(0);
|
|
c.pointRollupFn = this.pointRollupFn;
|
|
return c;
|
|
};
|
|
a.prototype.key = function (a) {
|
|
var b = this.clone();
|
|
b.calls.push(["key", a]);
|
|
return b;
|
|
};
|
|
a.prototype.rollup = function (a, b) {
|
|
var c = this.clone();
|
|
c.calc = b;
|
|
c.calls.push(["rollup", a]);
|
|
return c;
|
|
};
|
|
a.prototype.sortKey = function (a) {
|
|
var b = this.clone();
|
|
b.calls.push(["sortKey", a]);
|
|
return b;
|
|
};
|
|
a.prototype.pointRollup = function (a) {
|
|
var b = this.clone();
|
|
b.pointRollupFn = a;
|
|
return b;
|
|
};
|
|
a.prototype.series = function (a) {
|
|
a = Tk(this)(a);
|
|
var b = this.countKeyCalls();
|
|
if (1 === b) return [{ points: jf(a, this.pointRollupFn || this.calc) }];
|
|
if (2 === b) return zw(a, this.pointRollupFn || this.calc);
|
|
throw "Nest: One or two key() calls are required.";
|
|
};
|
|
a.prototype.points = function (a) {
|
|
a = Tk(this)(a);
|
|
return jf(a, this.pointRollupFn);
|
|
};
|
|
a.prototype.entries = function (a) {
|
|
return Tk(this)(a);
|
|
};
|
|
return a;
|
|
})(),
|
|
Fw = /\r?\n/,
|
|
Ws = function (a) {
|
|
return gf(function (c) {
|
|
var b = Array.isArray(a) ? a : [a],
|
|
d = !0,
|
|
e = b.length;
|
|
if (!a.length) {
|
|
var f = Error("Fonts list is empty");
|
|
c({ ok: d, error: f });
|
|
}
|
|
b.forEach(function (b) {
|
|
return Gw(b, function (a) {
|
|
a || ((d = !1), (f = Error("Loading " + b + " 1000ms timeout exceeded")));
|
|
0 === --e && c({ ok: d, error: f });
|
|
});
|
|
});
|
|
});
|
|
},
|
|
Hw = 0,
|
|
Yk = {},
|
|
Zk = Math.PI,
|
|
sp = 2 * Zk,
|
|
sb = Math,
|
|
up = Math.abs,
|
|
Qh = function (a, c, b) {
|
|
return [Y(a[0], a[0] + a[2], c[0], c[0] + c[2], b[0]), Y(a[1], a[1] + a[3], c[1], c[1] + c[3], b[1])];
|
|
},
|
|
re = ["M", "Z", "L", "C"],
|
|
wp = [
|
|
xp,
|
|
null,
|
|
xp,
|
|
function (a, c) {
|
|
c = pv.apply(null, c.slice(1));
|
|
return bl(bl(a, c), [c[0] + c[2], c[1] + c[3]]);
|
|
},
|
|
],
|
|
Xs = {
|
|
stringValue: [al, ""],
|
|
bbox: [
|
|
function (a) {
|
|
a = a.shapes;
|
|
1 === a.length && Mb(a[0]);
|
|
var c;
|
|
w(a, function (b, a) {
|
|
Mb(b);
|
|
b = b.minMaxResult;
|
|
a ? ((c.xMin = Math.min(c.xMin, b.xMin)), (c.yMin = Math.min(c.yMin, b.yMin)), (c.xMax = Math.max(c.xMax, b.xMax)), (c.yMax = Math.max(c.yMax, b.yMax))) : (c = b);
|
|
});
|
|
return [c.xMin, c.yMin, c.xMax - c.xMin, c.yMax - c.yMin];
|
|
},
|
|
"",
|
|
],
|
|
lengthValue: [yp, 0],
|
|
flatPoints: [zp, []],
|
|
positions: [
|
|
function (a, c) {
|
|
void 0 === c && (c = 6);
|
|
a.length();
|
|
var b = [],
|
|
d = 0;
|
|
for (a = a.shapes; d < a.length; d++) b.push(Hc(a[d], c));
|
|
return b;
|
|
},
|
|
[],
|
|
],
|
|
},
|
|
mf = (function () {
|
|
function a(a) {
|
|
this.isPath = !0;
|
|
this.shapes = [];
|
|
this._cache = {};
|
|
a && L(this, a);
|
|
}
|
|
a.prototype.fromCache = function (a) {
|
|
var b = this._cache;
|
|
b[a] = t(b[a]) ? b[a] : this.hasErrors ? Xs[a][1] : Xs[a][0](this);
|
|
return b[a];
|
|
};
|
|
a.prototype.toString = function () {
|
|
return this.fromCache("stringValue");
|
|
};
|
|
a.prototype.bbox = function () {
|
|
return this.fromCache("bbox");
|
|
};
|
|
a.prototype.scaleTo = function (a) {
|
|
return Jw(this, a);
|
|
};
|
|
a.prototype.translate = function (a) {
|
|
return al(this, a);
|
|
};
|
|
a.prototype.rotate = function (a, b) {
|
|
var c = this.bbox();
|
|
b = b || va(c);
|
|
return this.translate(function (c) {
|
|
return ra(b, Ia(b, c) + a, Xb(b, c));
|
|
});
|
|
};
|
|
a.prototype.hitTest = function (a, b) {
|
|
var c = this.bbox();
|
|
a = [a, b];
|
|
if (Ad(c, a)) {
|
|
c = void 0;
|
|
b = 0;
|
|
for (var e = this.shapes; b < e.length; b++)
|
|
if (1 === P(e[b].items)[0]) {
|
|
c = !0;
|
|
break;
|
|
}
|
|
if (!c) return Zf(a, zp(this));
|
|
b = 0;
|
|
for (e = this.shapes; b < e.length; b++) if (Zf(a, Ap(e[b]))) return !0;
|
|
}
|
|
return !1;
|
|
};
|
|
a.prototype.length = function () {
|
|
return this.fromCache("lengthValue");
|
|
};
|
|
a.prototype.flatPoints = function () {
|
|
return this.fromCache("flatPoints");
|
|
};
|
|
a.prototype.positions = function () {
|
|
return this.fromCache("positions");
|
|
};
|
|
a.prototype.clearCache = function (a) {
|
|
this._cache = {};
|
|
a && vp(this, Lw, Mw);
|
|
};
|
|
a.prototype.items = function (a) {
|
|
var b = this.shapes;
|
|
if (1 === b.length) return a ? b[0].items : b[0].items.slice(0);
|
|
var c = [];
|
|
w(b, function (b) {
|
|
return w(b.items, function (b) {
|
|
return c.push(b);
|
|
});
|
|
});
|
|
return c;
|
|
};
|
|
a.prototype.isEqual = function (a) {
|
|
var b = a ? a.toString() : "";
|
|
return this === a || this.toString() === b;
|
|
};
|
|
return a;
|
|
})(),
|
|
Ow = /([astvzqmhlc])([^astvzqmhlc]*)/gi,
|
|
Pw = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi,
|
|
wm = ["c", 6, "a", 7, "l", 2, "z", 0, "m", 2, "h", 1, "v", 1, "s", 4, "t", 2, "q", 4],
|
|
fl = {},
|
|
Rw = {
|
|
M: qg,
|
|
H: function (a) {
|
|
fd(a, [a.isRelative ? Ta(a.args) + a.endPoint[0] : P(a.args), a.endPoint[1]]);
|
|
},
|
|
V: function (a) {
|
|
fd(a, [a.endPoint[0], a.isRelative ? Ta(a.args) + a.endPoint[1] : P(a.args)]);
|
|
},
|
|
Z: hl,
|
|
L: function (a) {
|
|
nf(a, 1, fd);
|
|
},
|
|
C: function (a) {
|
|
nf(a, 3, te);
|
|
},
|
|
S: function (a) {
|
|
nf(a, 2, Sw);
|
|
},
|
|
Q: function (a) {
|
|
nf(a, 2, Kp);
|
|
},
|
|
T: function (a) {
|
|
var c = a.lastCommand[0];
|
|
nf(a, 1, "T" === c || "Q" === c ? Tw : fd);
|
|
},
|
|
A: function (a) {
|
|
Gp(a, 0, 7, Uw);
|
|
},
|
|
},
|
|
yB = function (a, c) {
|
|
var b = a.toLocaleUpperCase();
|
|
fl[a] = { command: b, argsCount: c, isRelative: !0 };
|
|
fl[b] = { command: b, argsCount: c, isRelative: !1 };
|
|
},
|
|
Yi = 0;
|
|
Yi < wm.length;
|
|
Yi += 2
|
|
)
|
|
yB(wm[Yi], wm[Yi + 1]);
|
|
var kl = Rb("pathLibBbox", function (a) {
|
|
return Aa(a).bbox();
|
|
}),
|
|
Xh = Math.PI,
|
|
Pp = 2 * Xh,
|
|
Tp = function (a) {
|
|
return Math.round(a) === a;
|
|
},
|
|
Zw = { TL: 0, TR: 1, BR: 2, BL: 3 },
|
|
Wp = fa("type fill stroke stroke-width stroke-opacity overflow centerWidth eachShape".split(" ")),
|
|
Ys = Vb.PI,
|
|
zB = 2 * Ys,
|
|
dc = {
|
|
none: function (a, c) {
|
|
return eb([[a, c]]);
|
|
},
|
|
circle: function (a, c, b, d) {
|
|
b = Math.min(b, d) / 2;
|
|
return H(["M", a + b, c], Kc(a + b, c + b, b, -Ys / 2, 0.75 * zB - 0.05), ["Z"]);
|
|
},
|
|
square: Yh,
|
|
arrow: function (a, c, b, d, e) {
|
|
void 0 === e && (e = {});
|
|
var f = va([a, c, b, d]);
|
|
c = e.angle || 0;
|
|
var g = e.concavity || 0.15,
|
|
h = ra(f, c, b / 2),
|
|
k = ra(f, c + 180, b / 2);
|
|
a = ra(k, c - 90, d / 2);
|
|
d = ra(k, c + 90, d / 2);
|
|
c = ra(k, c, b * g);
|
|
k = function (b, a) {
|
|
var c = Uj(h, b);
|
|
b = Ia(h, b);
|
|
var d = Xb(f, c);
|
|
return ra(c, b + a, g * d);
|
|
};
|
|
b = [f[0] - c[0], f[1] - c[1]];
|
|
a = [h, k(a, -90), a, c, d, k(d, 90)];
|
|
e.skipTransform = !0;
|
|
return eb(
|
|
(function (b, a) {
|
|
return b.map(function (b) {
|
|
return [b[0] + a[0], b[1] + a[1]];
|
|
});
|
|
})(a, b)
|
|
);
|
|
},
|
|
triangle: function (a, c, b, d) {
|
|
return eb([
|
|
[a + b / 2, c],
|
|
[a + b, c + d],
|
|
[a, c + d],
|
|
]);
|
|
},
|
|
"triangle-down": function (a, c, b, d) {
|
|
return eb([
|
|
[a, c],
|
|
[a + b, c],
|
|
[a + b / 2, c + d],
|
|
]);
|
|
},
|
|
diamond: function (a, c, b, d) {
|
|
d = Cd({ x: a, y: c, width: b, height: d }, 1.1);
|
|
a = d.x;
|
|
c = d.y;
|
|
b = d.width;
|
|
d = d.height;
|
|
return eb([
|
|
[a + b / 2, c],
|
|
[a + b, c + d / 2],
|
|
[a + b / 2, c + d],
|
|
[a, c + d / 2],
|
|
]);
|
|
},
|
|
"four-point-star": function (a, c, b, d) {
|
|
d = Cd({ x: a, y: c, width: b, height: d }, 1.15);
|
|
a = d.x;
|
|
c = d.y;
|
|
b = d.width;
|
|
d = d.height;
|
|
b /= 2;
|
|
var e = 0.32 * b;
|
|
a += b;
|
|
c += d / 2;
|
|
return eb([
|
|
[a, c - b],
|
|
[a + e, c - e],
|
|
[a + b, c],
|
|
[a + e, c + e],
|
|
[a, c + b],
|
|
[a - e, c + e],
|
|
[a - b, c],
|
|
[a - e, c - e],
|
|
]);
|
|
},
|
|
"five-point-star": function (a, c, b, d) {
|
|
d = Cd({ x: a, y: c, width: b, height: d }, 1.15);
|
|
a = d.x + 1;
|
|
c = d.y;
|
|
b = d.width;
|
|
d = d.height;
|
|
b /= 2;
|
|
a += b;
|
|
c += d / 2;
|
|
return eb([
|
|
[a, c - 0.96 * b],
|
|
[a + 0.36 * b, c - 0.4 * b],
|
|
[a + b, c - 0.24 * b],
|
|
[a + 0.56 * b, c + 0.26 * b],
|
|
[a + 0.6 * b, c + 0.94 * b],
|
|
[a, c + 0.65 * b],
|
|
[a - 0.6 * b, c + 0.94 * b],
|
|
[a - 0.56 * b, c + 0.26 * b],
|
|
[a - b, c - 0.24 * b],
|
|
[a - 0.36 * b, c - 0.4 * b],
|
|
]);
|
|
},
|
|
"six-point-star": function (a, c, b, d) {
|
|
d = Cd({ x: a, y: c, width: b, height: d }, 1.15);
|
|
a = d.x + 1;
|
|
c = d.y;
|
|
b = d.width;
|
|
d = d.height;
|
|
b /= 2;
|
|
a += b;
|
|
c += d / 2;
|
|
return eb([
|
|
[a, c - b],
|
|
[a + 0.3 * b, c - 0.54 * b],
|
|
[a + 0.88 * b, c - 0.5 * b],
|
|
[a + 0.6 * b, c],
|
|
[a + 0.86 * b, c + 0.5 * b],
|
|
[a + 0.3 * b, c + 0.52 * b],
|
|
[a, c + b],
|
|
[a - 0.3 * b, c + 0.52 * b],
|
|
[a - 0.86 * b, c + 0.5 * b],
|
|
[a - 0.6 * b, c],
|
|
[a - 0.88 * b, c - 0.5 * b],
|
|
[a - 0.3 * b, c - 0.54 * b],
|
|
]);
|
|
},
|
|
"seven-point-star": function (a, c, b, d) {
|
|
d = Cd({ x: a, y: c, width: b, height: d }, 1.15);
|
|
a = d.x + 1;
|
|
c = d.y;
|
|
b = d.width;
|
|
d = d.height;
|
|
b /= 2;
|
|
a += b;
|
|
c += d / 2;
|
|
return eb([
|
|
[a, c - 0.98 * b],
|
|
[a + 0.28 * b, c - 0.54 * b],
|
|
[a + 0.8 * b, c - 0.6 * b],
|
|
[a + 0.62 * b, c - 0.12 * b],
|
|
[a + b, c + 0.16 * b],
|
|
[a + 0.5 * b, c + 0.44 * b],
|
|
[a + 0.44 * b, c + 0.96 * b],
|
|
[a, c + 0.68 * b],
|
|
[a - 0.44 * b, c + 0.96 * b],
|
|
[a - 0.5 * b, c + 0.44 * b],
|
|
[a - b, c + 0.16 * b],
|
|
[a - 0.62 * b, c - 0.12 * b],
|
|
[a - 0.8 * b, c - 0.6 * b],
|
|
[a - 0.28 * b, c - 0.54 * b],
|
|
]);
|
|
},
|
|
"arrow-up": function (a, c, b, d) {
|
|
d = Cd({ x: a, y: c, width: b, height: d }, 1.15);
|
|
a = d.x + 1;
|
|
c = d.y;
|
|
b = d.width;
|
|
d = d.height;
|
|
b /= 2;
|
|
a += b;
|
|
c += d / 2;
|
|
return eb([
|
|
[a, c - b],
|
|
[a + 0.9 * b, c - 0.08 * b],
|
|
[a + 0.36 * b, c - 0.08 * b],
|
|
[a + 0.36 * b, c + b],
|
|
[a - 0.36 * b, c + b],
|
|
[a - 0.36 * b, c - 0.08 * b],
|
|
[a - 0.9 * b, c - 0.08 * b],
|
|
]);
|
|
},
|
|
"arrow-down": function (a, c, b, d) {
|
|
d = Cd({ x: a, y: c, width: b, height: d }, 1.15);
|
|
a = d.x + 1;
|
|
c = d.y;
|
|
b = d.width;
|
|
d = d.height;
|
|
b /= 2;
|
|
a += b;
|
|
c += d / 2;
|
|
return eb([
|
|
[a, c + b],
|
|
[a + 0.9 * b, c + 0.08 * b],
|
|
[a + 0.36 * b, c + 0.08 * b],
|
|
[a + 0.36 * b, c - b],
|
|
[a - 0.36 * b, c - b],
|
|
[a - 0.36 * b, c + 0.08 * b],
|
|
[a - 0.9 * b, c + 0.08 * b],
|
|
]);
|
|
},
|
|
split: function (a, c, b, d) {
|
|
b /= 2;
|
|
a += b;
|
|
c += d / 2;
|
|
return eb([
|
|
[
|
|
[a + 0.2 * b, c - b],
|
|
[a + b, c],
|
|
[a + 0.2 * b, c + b],
|
|
],
|
|
[
|
|
[a - 0.2 * b, c + b],
|
|
[a - b, c],
|
|
[a - 0.2 * b, c - b],
|
|
],
|
|
]);
|
|
},
|
|
"split-reverse": function (a, c, b, d) {
|
|
b /= 2;
|
|
a += b;
|
|
c += d / 2;
|
|
return eb([
|
|
[
|
|
[a + b, c - b],
|
|
[a + b, c + b],
|
|
[a + 0.16 * b, c],
|
|
],
|
|
[
|
|
[a - b, c - b],
|
|
[a - b, c + b],
|
|
[a - 0.16 * b, c],
|
|
],
|
|
]);
|
|
},
|
|
spinoff: function (a, c, b, d) {
|
|
b /= 2;
|
|
a += b;
|
|
c += d / 2;
|
|
return eb([
|
|
[
|
|
[a - b, c - b],
|
|
[a + 0.72 * b, c - b],
|
|
[a + 0.72 * b, c],
|
|
[a, c],
|
|
[a, c + 0.72 * b],
|
|
[a - b, c + 0.72 * b],
|
|
],
|
|
[
|
|
[a + 0.24 * b, c + 0.24 * b],
|
|
[a + b, c + 0.24 * b],
|
|
[a + b, c + b],
|
|
[a + 0.24 * b, c + b],
|
|
],
|
|
]);
|
|
},
|
|
merger: function (a, c, b, d) {
|
|
b /= 2;
|
|
a += b;
|
|
c += d / 2;
|
|
return eb([
|
|
[a - 0.38 * b, c - b],
|
|
[a + 0.73 * b, c - b],
|
|
[a + 0.73 * b, c + b],
|
|
[a + 0.16 * b, c + b],
|
|
[a + 0.16 * b, c + 0.22 * b],
|
|
[a - 0.58 * b, c + b],
|
|
[a - 0.94 * b, c + 0.6 * b],
|
|
[a - 0.38 * b, c + 0.02 * b],
|
|
]);
|
|
},
|
|
path: function (a, c, b, d, e) {
|
|
return e.d;
|
|
},
|
|
rectangle: function (a, c, b, d, e) {
|
|
return Qp(a, c, b, d, e);
|
|
},
|
|
},
|
|
Vp = {
|
|
arrow: function (a) {
|
|
void 0 === a && (a = {});
|
|
var c = z(a.lineWidth, 1),
|
|
b = z(a.overflow, !1),
|
|
d = db(z(a.size, 10 * c), c),
|
|
e = t(a.length),
|
|
f = db(z(e ? a.length : a.width, 1.6 * d), c);
|
|
c = db(z(e ? a.width : a.height, d), c);
|
|
d = ua(z(a.concavity, 0.2), -0.5, 0.5);
|
|
e = f - f * d;
|
|
return L(Na({}, a, Wp), { width: f, height: c, concavity: d, overflow: !0, centerWidth: !1 === b ? e : 0 });
|
|
},
|
|
},
|
|
Yp = Rb(
|
|
"drawIconFunction",
|
|
function (a, c, b, d, e) {
|
|
var f = Aa(a),
|
|
g = c[4],
|
|
h = d ? (t(d.initial) ? [d.top.px, d.right.px, d.bottom.px, d.left.px] : 0 < d.length ? d : [d.top, d.right, d.bottom, d.left]) : [0, 0, 0, 0],
|
|
k = !0;
|
|
if (!(e || (0 !== c[2] && 0 !== c[3]) || g)) return ["", 0, 0, 0];
|
|
if (g || 0 === c[2] || 0 === c[3]) (e = f.bbox()), (c[2] = g || e[2]), (c[3] = g || e[3]), g || (k = !1);
|
|
g = Math.max(c[2], c[3]);
|
|
e = b ? [c[0], c[1], g, g] : c;
|
|
if ((d = !b && d && 0 === d.initial) && !k) return [a, g, c[2], c[3]];
|
|
a = d ? e : Vo(e, h);
|
|
f = f.scaleTo(a);
|
|
if (!b) return [f, g, c[2], c[3]];
|
|
b = dc[b.shape || "square"](e[0], e[1], e[2], e[3]);
|
|
return [xa([f, b]), g, c[2], c[3]];
|
|
},
|
|
function (a, c, b, d, e) {
|
|
return a + c[0] + c[1] + c[2] + c[3] + c[4] + (b && b.shape) + (d && d.initial) + e;
|
|
}
|
|
),
|
|
sg = function (a) {
|
|
return "M" + a[0] + " " + a[1];
|
|
},
|
|
Fd = function (a) {
|
|
return "L" + a[0] + " " + a[1];
|
|
},
|
|
AB = [-9999, 9999],
|
|
BB = fa(["div"]),
|
|
tb = (function () {
|
|
function a(a, b, d) {
|
|
this.renderer = b;
|
|
this.init(a, d);
|
|
}
|
|
a.prototype.init = function (a, b) {
|
|
this.el = a;
|
|
this.data = { attrs: {}, vals: {}, id: Dd() };
|
|
this.childNodes = [];
|
|
this.refNodes = [];
|
|
this.isElement = !0;
|
|
this.isDestroyed = this.isPatched = !1;
|
|
this.zIndexHash = {};
|
|
this.zIndexMax = AB[0];
|
|
this.nodeName = b || a.nodeName.toLowerCase();
|
|
this.isHtml = J(BB, this.nodeName);
|
|
};
|
|
a.prototype.attr = function (a, b) {
|
|
return this.renderer.attr(this, a, b);
|
|
};
|
|
a.prototype.add = function (a) {
|
|
return this.renderer.add(this, a);
|
|
};
|
|
a.prototype.addBefore = function (a) {
|
|
return this.renderer.addBefore(this, a);
|
|
};
|
|
a.prototype.addAfter = function (a) {
|
|
return this.renderer.addAfter(this, a);
|
|
};
|
|
a.prototype.destroy = function () {
|
|
return this.renderer.destroy(this);
|
|
};
|
|
a.prototype.on = function (a, b) {
|
|
return this.renderer.on(this, a, b);
|
|
};
|
|
a.prototype.un = function (a, b) {
|
|
return this.renderer.un(this, a, b);
|
|
};
|
|
a.prototype.box = function (a) {
|
|
return this.renderer.box(this, a);
|
|
};
|
|
a.prototype.getBbox = function () {
|
|
return this.box();
|
|
};
|
|
a.prototype.animate = function (a, b) {
|
|
var c = G(a, 2);
|
|
a = c[0];
|
|
c = c[1];
|
|
this.getTransition().options({ animation: b, middle: { from: a, to: c }, end: c });
|
|
};
|
|
a.prototype.getAnimations = function () {
|
|
return this.getTransition().getAnimations();
|
|
};
|
|
a.prototype.isAnimating = function () {
|
|
return 0 < this.getAnimations().length;
|
|
};
|
|
a.prototype.finishAnimation = function (a) {
|
|
this._transition && !this._transition.attrApllying && this._transition.finishAnimation(!0, a);
|
|
};
|
|
a.prototype.show = function () {
|
|
return this.renderer.show(this);
|
|
};
|
|
a.prototype.hide = function () {
|
|
return this.renderer.hide(this);
|
|
};
|
|
a.prototype.visible = function (a) {
|
|
return this.renderer.visible(this, a);
|
|
};
|
|
a.prototype.query = function (a) {
|
|
return this.renderer.query(a, this);
|
|
};
|
|
a.prototype.transition = function (a) {
|
|
this.getTransition().options(a);
|
|
return this.getTransition();
|
|
};
|
|
a.prototype.tryAutoTransition = function (a) {
|
|
var b = this;
|
|
return b.getTransition().tryAutoTransition(a, function () {
|
|
var a = b.data,
|
|
c = L({}, a.attrs);
|
|
a.transform && (c.transform = a.transform);
|
|
a.vals.d && (c.d = a.vals.d);
|
|
return c;
|
|
});
|
|
};
|
|
a.prototype.normalizeAttrs = function (a) {
|
|
return a && a.omit ? Ga(a, a.omit.concat("omit")) : a;
|
|
};
|
|
a.prototype.getTransition = function () {
|
|
if (!this._transition) {
|
|
var a = L({}, this.renderer.defaultOptions().transition);
|
|
"path" === this.nodeName && (a.generator = "path");
|
|
this._transition = Og[0].create(this, a);
|
|
}
|
|
return this._transition;
|
|
};
|
|
return a;
|
|
})(),
|
|
Zs = W(dc, { rectangle: Qp }),
|
|
CB = (function (a) {
|
|
function c(b, c) {
|
|
b = a.call(this, b, c) || this;
|
|
b.x = 0;
|
|
b.y = 0;
|
|
b.width = 0;
|
|
b.height = 0;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.attr = function (b, a) {
|
|
if (!b || !Pa(b)) return J(this, b) ? this[b] : this.renderer.attr(this, b, a);
|
|
b = this.collectAttributes(b);
|
|
if (!b) return null;
|
|
a = G([b.shapeName, b.relativeSize], 2);
|
|
this.shapeName = a[0];
|
|
this.relativeSize = a[1];
|
|
b.relativeSize && ((a = G([b.cx, b.cy, b.r], 3)), (this.cx = a[0]), (this.cy = a[1]), (this.r = a[2]));
|
|
a = this.renderer.attr(this, b);
|
|
b = G([b.x, b.y, b.width, b.height, b.shapeOptions, b.d], 6);
|
|
this.x = b[0];
|
|
this.y = b[1];
|
|
this.width = b[2];
|
|
this.height = b[3];
|
|
this.shapeOptions = b[4];
|
|
this.d = b[5];
|
|
return a;
|
|
};
|
|
c.prototype.normalizeAttrs = function (b) {
|
|
b = this.collectAttributes(b);
|
|
return a.prototype.normalizeAttrs.call(this, b);
|
|
};
|
|
c.prototype.collectAttributes = function (b) {
|
|
var a = this.default,
|
|
c = G([this.shapeName, this.relativeSize], 2),
|
|
f = c[0];
|
|
c = c[1];
|
|
if (b.shapeConfig || b.shapeName) f = b.shapeName || b.shapeConfig.name;
|
|
if (!f || !J(Zs, f)) return null;
|
|
b = b.shapeConfig ? b.shapeConfig.config || {} : L({}, b);
|
|
L(b, b.attr);
|
|
b.shapeName = f;
|
|
Q(c) && (yc(["x", "y", "width", "height"], b) && (c = !1), yc(["cx", "cy", "r"], b) && (c = !0));
|
|
c &&
|
|
((a = G([a(b.cx, this.cx || 0), a(b.cy, this.cy || 0), a(b.r, this.r || 0), b.cx - b.r, b.cy - b.r, this.calculateFromRadius(b.r), this.calculateFromRadius(b.r)], 7)),
|
|
(b.cx = a[0]),
|
|
(b.cy = a[1]),
|
|
(b.r = a[2]),
|
|
(b.x = a[3]),
|
|
(b.y = a[4]),
|
|
(b.width = a[5]),
|
|
(b.height = a[6]));
|
|
b.relativeSize = c;
|
|
a = G([this.default(b.x, this.x), this.default(b.y, this.y), this.default(b.width, this.width), this.default(b.height, this.height), b.shape || this.shapeOptions], 5);
|
|
b.x = a[0];
|
|
b.y = a[1];
|
|
b.width = a[2];
|
|
b.height = a[3];
|
|
b.shapeOptions = a[4];
|
|
b.d = this.dToString(Zs[f](b.x, b.y, b.width, b.height, b.shapeOptions));
|
|
b.omit = "x y width height cx cy r shapeName shape path attr relativeSize shapeOptions".split(" ");
|
|
b.d === this.d && b.omit.push("d");
|
|
return b;
|
|
};
|
|
c.prototype.default = function (b, a) {
|
|
return lc(b) ? a : b;
|
|
};
|
|
c.prototype.calculateFromRadius = function (b) {
|
|
return t(b) ? 2 * b : null;
|
|
};
|
|
c.prototype.dToString = function (b) {
|
|
return ja(b) ? pc(b, " ") : b;
|
|
};
|
|
return c;
|
|
})(tb),
|
|
DB = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.attrApplier = b.defaultAttrApplier;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.attr = function (b, a) {
|
|
var c = this.morphType || this.nodeName;
|
|
if (Zi[c])
|
|
a: {
|
|
var d;
|
|
try {
|
|
for (var g = ya(Zi[c]), h = g.next(); !h.done; h = g.next()) {
|
|
var k = h.value;
|
|
if (k(this, b, a)) break a;
|
|
}
|
|
} catch (m) {
|
|
var l = { error: m };
|
|
} finally {
|
|
try {
|
|
h && !h.done && (d = g.return) && d.call(g);
|
|
} finally {
|
|
if (l) throw l.error;
|
|
}
|
|
}
|
|
}
|
|
return this.attrApplier(b, a);
|
|
};
|
|
c.prototype.defaultAttrApplier = function (b, a) {
|
|
return this.renderer.attr(this, b, a);
|
|
};
|
|
return c;
|
|
})(tb),
|
|
Zi = {},
|
|
EB = (function () {
|
|
function a(a, b, d, e, f) {
|
|
this.root = a;
|
|
this.width = b;
|
|
this.height = d;
|
|
this.defaultWidth = e;
|
|
this.defaultHeight = f;
|
|
}
|
|
a.prototype.path = function (a) {
|
|
return this.pathInner(DB, a);
|
|
};
|
|
a.prototype.shape = function (a, b) {
|
|
return this.pathInner(CB, { shapeConfig: { name: a, config: b } });
|
|
};
|
|
a.prototype.newId = function () {
|
|
return Dd();
|
|
};
|
|
return a;
|
|
})(),
|
|
$s = (function (a) {
|
|
function c(b, c) {
|
|
b = a.call(this, b, c) || this;
|
|
b.x = 0;
|
|
b.y = 0;
|
|
b.width = 0;
|
|
b.height = 0;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.attr = function (b, a) {
|
|
var c = this;
|
|
if (!b || !Pa(b)) return this.renderer.attr(this, b, a);
|
|
Q(this.relativeSize) && this.setSizeType(b);
|
|
this.checkSizeRecalculated(b, function (a) {
|
|
var d = G([c.default(b.width, c.width), c.default(b.height, c.height), c.default(b.cx, c.cx || 0), c.default(b.cy, c.cy || 0)], 4),
|
|
e = d[0],
|
|
f = d[1],
|
|
l = d[2];
|
|
d = d[3];
|
|
var m = G([c.relativeSize ? l - e / 2 : c.default(b.x, c.x || 0), c.relativeSize ? d - f / 2 : c.default(b.y, c.y || 0)], 2),
|
|
n = m[0];
|
|
m = m[1];
|
|
L(a, { x: n, y: m, width: e, height: f });
|
|
a.omit = ["cx", "cy"];
|
|
c.renderer.attr(c, a);
|
|
a = G([n, m, e, f, l, d], 6);
|
|
c.x = a[0];
|
|
c.y = a[1];
|
|
c.width = a[2];
|
|
c.height = a[3];
|
|
c.cx = a[4];
|
|
c.cy = a[5];
|
|
});
|
|
return this;
|
|
};
|
|
c.prototype.default = function (b, a) {
|
|
return lc(b) ? a : b;
|
|
};
|
|
c.prototype.setSizeType = function (b) {
|
|
yc(["x", "y"], b) ? (this.relativeSize = !1) : yc(["cx", "cy"], b) && (this.relativeSize = !0);
|
|
};
|
|
c.prototype.checkSizeRecalculated = function (b, a) {
|
|
Q(this.sizeRecalculated) && (this.sizeRecalculated = Q(b.width) || Q(b.height));
|
|
b.src && this.sizeRecalculated
|
|
? hx(this.renderer, b.src, function (c, d) {
|
|
b.width = c.width;
|
|
b.height = c.height;
|
|
!1 === d && (b.animation = !1);
|
|
a(b);
|
|
})
|
|
: a(b);
|
|
};
|
|
return c;
|
|
})(tb),
|
|
ml = {},
|
|
ug = {},
|
|
rd = (function () {
|
|
function a() {
|
|
this.callbacks = [];
|
|
this.idleDefer = new Ae();
|
|
this.id = 0;
|
|
}
|
|
a.prototype.on = function (a, b) {
|
|
var c = this,
|
|
e = {
|
|
callback: a,
|
|
event: this,
|
|
un: function () {
|
|
c.un(a);
|
|
},
|
|
};
|
|
this.callbacks.push({ callback: a, subscriber: b });
|
|
return e;
|
|
};
|
|
a.prototype.onDefer = function (a, b, d) {
|
|
var c = this,
|
|
f = this.id++;
|
|
return this.on(function (d, e) {
|
|
return c.idleDefer.defer(
|
|
"event" + f,
|
|
function () {
|
|
return a.apply(c, [d, e]);
|
|
},
|
|
b
|
|
);
|
|
}, d);
|
|
};
|
|
a.prototype.un = function (a) {
|
|
this.callbacks = a
|
|
? ea(this.callbacks, function (b) {
|
|
return b.callback !== a;
|
|
})
|
|
: [];
|
|
};
|
|
a.prototype.trigger = function (a, b) {
|
|
w(this.callbacks, function (c) {
|
|
return c.callback.apply(c.subscriber, [a, b]);
|
|
});
|
|
};
|
|
return a;
|
|
})(),
|
|
sd = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.on = function (b, c) {
|
|
var d = this,
|
|
f = S(this.callbacks, function (a) {
|
|
return a.callback === b;
|
|
});
|
|
return f
|
|
? {
|
|
callback: f,
|
|
event: this,
|
|
un: function () {
|
|
d.un(f);
|
|
},
|
|
}
|
|
: a.prototype.on.call(this, b, c);
|
|
};
|
|
return c;
|
|
})(rd),
|
|
xm = (function (a) {
|
|
function c(b) {
|
|
var c = a.call(this) || this;
|
|
c.domEventName = b;
|
|
c.hasSubscription = !1;
|
|
c.element = null;
|
|
return c;
|
|
}
|
|
K(c, a);
|
|
c.prototype.setElement = function (b) {
|
|
this.element !== b && (this.unsubscribeDomEvent(), (this.element = b), this.subsribeDomEvent());
|
|
};
|
|
c.prototype.on = function (b, c) {
|
|
b = a.prototype.on.call(this, b, c);
|
|
this.subsribeDomEvent();
|
|
return b;
|
|
};
|
|
c.prototype.un = function (b) {
|
|
a.prototype.un.call(this, b);
|
|
0 === this.callbacks.length && this.unsubscribeDomEvent();
|
|
};
|
|
c.prototype.subsribeDomEvent = function () {
|
|
var b = this;
|
|
this.hasSubscription ||
|
|
(this.element
|
|
? this.callbacks.length &&
|
|
(this.element.on(this.domEventName, function (a) {
|
|
b.trigger(aq(a, b.element, b.domEventName));
|
|
}),
|
|
(this.hasSubscription = !0))
|
|
: (this.hasSubscription = !1));
|
|
};
|
|
c.prototype.unsubscribeDomEvent = function () {
|
|
this.hasSubscription && (this.element && this.element.un(this.domEventName), (this.hasSubscription = !1));
|
|
};
|
|
return c;
|
|
})(rd),
|
|
ym = new rd(),
|
|
FB = fa(["width", "height"]),
|
|
at = fa(["d", "animation", "transition", "clip-rule"]),
|
|
GB = W(at, fa(["fill"])),
|
|
zm = (function (a) {
|
|
function c(b, c) {
|
|
b = a.call(this, b, c) || this;
|
|
b.path = b.renderElement().add(b);
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.attr = function (b, a) {
|
|
if (!b || !Pa(b)) return this.renderer.attr(this, b, a);
|
|
b.id && this.renderer.attr(this, "id", b.id);
|
|
b["clip-rule"] && this.renderer.attr(this, "clip-rule", b["clip-rule"]);
|
|
b = Pe({}, b, this.availableAttrs());
|
|
return this.renderer.attr(this.path, b);
|
|
};
|
|
c.prototype.destroy = function () {
|
|
this.path && (this.path.destroy(), delete this.path);
|
|
return this.renderer.destroy(this);
|
|
};
|
|
c.prototype.renderElement = function () {
|
|
return this.renderer.path();
|
|
};
|
|
c.prototype.availableAttrs = function () {
|
|
return at;
|
|
};
|
|
return c;
|
|
})(tb),
|
|
HB = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.renderElement = function () {
|
|
return this.renderer.rect();
|
|
};
|
|
c.prototype.availableAttrs = function () {
|
|
return FB;
|
|
};
|
|
return c;
|
|
})(zm),
|
|
IB = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.availableAttrs = function () {
|
|
return GB;
|
|
};
|
|
return c;
|
|
})(zm),
|
|
cq = fa(["fill", "stroke", "mask", "clip-path"]),
|
|
Am = {},
|
|
iq = {
|
|
horizontal: { c: [0, 0, 5, 0] },
|
|
"large-horizontal": { c: [0, 0, 10, 0], size: 10 },
|
|
"narrow-horizontal": { c: [0, 0, 2.5, 0], size: 2.5 },
|
|
"dark-horizontal": { c: [0, 0, 5, 0], strokeWidth: 4 },
|
|
vertical: { c: [0, 0, 0, 5] },
|
|
"large-vertical": { c: [0, 0, 0, 10], size: 10 },
|
|
"narrow-vertical": { c: [0, 0, 0, 2.5], size: 2.5 },
|
|
"dark-vertical": { c: [0, 0, 0, 5], strokeWidth: 4 },
|
|
"backward-diagonal": { c: [0, 0, 0, 10], size: 10, patternTransform: "rotate(45)" },
|
|
"light-upward-diagonal": { c: [0, 0, 0, 5], patternTransform: "rotate(45)" },
|
|
"dark-upward-diagonal": { c: [0, 0, 0, 5], strokeWidth: 4, patternTransform: "rotate(45)" },
|
|
"wide-upward-diagonal": { c: [0, 0, 0, 10], strokeWidth: 5, patternTransform: "rotate(45)", size: 10 },
|
|
"forward-diagonal": { c: [0, 0, 0, 10], size: 10, patternTransform: "rotate(-45)" },
|
|
"light-downward-diagonal": { c: [0, 0, 0, 5], patternTransform: "rotate(-45)" },
|
|
"dark-downward-diagonal": { c: [0, 0, 0, 5], strokeWidth: 4, patternTransform: "rotate(-45)" },
|
|
"wide-downward-diagonal": { c: [0, 0, 0, 10], strokeWidth: 5, patternTransform: "rotate(-45)", size: 10 },
|
|
"dashed-downward-diagonal": { c: [0, 2.5, 5, 7.5], granualHeight: 10 },
|
|
"dashed-upward-diagonal": { c: [5, 2.5, 0, 7.5], granualHeight: 10 },
|
|
"horizontal-brick": { d: "M0,0L0,5M0,5L10,5M5,5L5,10M10,5L10,0M0,10L10,10M0,0L10,0", size: 10 },
|
|
"large-checker-board": { d: "M0,5L5,5 5,0 0,0ZM5,10L5,5 10,5 10,10Z", size: 10, borderColor: "transparent", inside: !0 },
|
|
"small-checker-board": { d: "M0,2.5L2.5,2.5 2.5,0 0,0ZM2.5,5L2.5,2.5 5,2.5 5,5Z", borderColor: "transparent", inside: !0 },
|
|
"cross-diagonal": { d: "M0,0l10,10M10,0l-10,10", size: 10 },
|
|
"dashed-horizontal": { d: "M0 1 L5 1M 5 6L10 6", size: 10 },
|
|
"dashed-vertical": { d: "M1,0L1,5M6,5L6,10", size: 10 },
|
|
"diagonal-brick": { d: "M5,0L0,5M0,5L5,10M5,10L10,5", size: 10 },
|
|
"large-grid": { d: "M0,0L10,0M10,0L10,10", size: 10 },
|
|
"small-grid": { d: "M0,0L5,0M5,0L5,5" },
|
|
"solid-diamond": { d: "M0,1L4,5 0,9M10,1L6,5 10,9", size: 10, inside: !0, borderColor: "transparent" },
|
|
"outlined-diamond": { d: "M0,0L10,10M10,0L0,10", size: 10, strokeWidth: 1 },
|
|
wave: { d: "M1,2.5C2,5 4,5 5,2.5S8,0 9,2.5", granualWidth: 10, insideBack: !0 },
|
|
weave: { d: "M3,0L0,3M0,3L7,10M7,10L10,7M10,7L3,0M2, 5L0, 7M5, 8L3, 10M8, 5L10, 3", size: 10 },
|
|
"zig-zag": { d: "M0,5L5,0M5,0L10,5", granualWidth: 10 },
|
|
percent05: {
|
|
p: [
|
|
[2.5, 7.5],
|
|
[7.5, 2.5],
|
|
],
|
|
size: 10,
|
|
},
|
|
percent10: {
|
|
p: [
|
|
[1.5, 4],
|
|
[6.5, 1.5],
|
|
],
|
|
granualWidth: 10,
|
|
},
|
|
percent20: {
|
|
p: [
|
|
[1, 3.5],
|
|
[3.5, 1],
|
|
],
|
|
},
|
|
percent25: {
|
|
p: [
|
|
[1, 1.75],
|
|
[3.5, 0.5],
|
|
],
|
|
granualHeight: 2.5,
|
|
},
|
|
"dotted-grid": {
|
|
p: [
|
|
[1, 8.5],
|
|
[3.5, 8.5],
|
|
[6, 8.5],
|
|
[8.5, 8.5],
|
|
[8.5, 1],
|
|
[8.5, 3.5],
|
|
[8.5, 6],
|
|
],
|
|
size: 10,
|
|
},
|
|
"dotted-diamond": {
|
|
p: [
|
|
[4, 1],
|
|
[1.5, 3.5],
|
|
[6.5, 3.5],
|
|
[9, 6],
|
|
[1.5, 8.5],
|
|
[6.5, 8.5],
|
|
],
|
|
size: 10,
|
|
},
|
|
dotted: { template: "circle" },
|
|
image: { template: "image" },
|
|
"image-large": { template: "image", size: 10 },
|
|
},
|
|
kx = {
|
|
line: function (a) {
|
|
a = wg(a);
|
|
var c = G(a.c, 4);
|
|
return $h(a.pattern, [{ tag: "line", attr: { x1: c[0], y1: c[1], x2: c[2], y2: c[3], stroke: a.color, "stroke-width": a.strokeWidth, strokeDashArray: a.dashArray } }], a);
|
|
},
|
|
path: function (a) {
|
|
a = wg(a);
|
|
var c = a.pattern,
|
|
b = [{ tag: "path", attr: { d: a.d, fill: a.inside ? a.color : a.insideBack ? a.backgroundColor : void 0, "stroke-width": a.strokeWidth || 1, "border-color": a.borderColor, strokeDashArray: a.dashArray } }];
|
|
b.unshift({ tag: "rect", attr: { width: a.granualWidth, height: a.granualHeight, fill: a.backgroundColor || "none", "stroke-width": 0 } });
|
|
return gq(c, [{ tag: "g", attr: { stroke: a.color || "black", "stroke-width": a.strokeWidth || 1, childNodes: b } }], a);
|
|
},
|
|
point: function (a) {
|
|
a = wg(a);
|
|
return $h(
|
|
a.pattern,
|
|
B(a.p, function (c) {
|
|
return { tag: "circle", attr: { cx: c[0], cy: c[1], r: 0.5, fill: a.color } };
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
circle: function (a) {
|
|
a = wg(a);
|
|
return $h(a.pattern, [{ tag: "circle", attr: { cx: a.granualWidth / 2, cy: a.granualHeight / 2, r: 0.5, fill: a.color, transform: a.transform } }], a);
|
|
},
|
|
image: function (a) {
|
|
var c = /(.*)\((.*)\)/g.exec(a.color);
|
|
if (!c) return null;
|
|
c = G(c, 3);
|
|
var b = c[2];
|
|
if (!c[1] || !b) return null;
|
|
c = Re(b, ", ");
|
|
a.color = Gd(c[0], "'\"");
|
|
a = wg(a);
|
|
return $h(a.pattern, [{ tag: "image", attr: { width: a.granualWidth, height: a.granualHeight, src: a.color } }], a);
|
|
},
|
|
},
|
|
ec = {
|
|
translate: [
|
|
[0, 0],
|
|
function (a) {
|
|
a = ja(a) ? a : [a.x, a.y];
|
|
return 0 === a[0] && 0 === a[1] ? null : a;
|
|
},
|
|
],
|
|
rotate: [
|
|
[0, 0, 0],
|
|
function (a) {
|
|
a = ja(a) ? a : [a, 0, 0];
|
|
return 0 === a[0] && 0 === a[1] && 0 === a[2] ? null : a;
|
|
},
|
|
],
|
|
scale: (function (a) {
|
|
return [
|
|
[a],
|
|
function (c) {
|
|
c = ja(c) ? c : [c];
|
|
return c[0] === a ? null : c;
|
|
},
|
|
];
|
|
})(1),
|
|
},
|
|
JB = (function () {
|
|
return function () {};
|
|
})(),
|
|
KB = (function () {
|
|
return function () {};
|
|
})(),
|
|
uq = function (a, c, b) {
|
|
return [kd(a[0], c[0], b), kd(a[1], c[1], b)];
|
|
},
|
|
kd = function (a, c, b) {
|
|
return a + (c - a) * b;
|
|
},
|
|
sx = function (a, c, b) {
|
|
return a + (c - a) * b;
|
|
},
|
|
rx = function (a, c, b) {
|
|
return a + (c - a) * (1 - b);
|
|
},
|
|
Bm = function (a) {
|
|
return a && a.val ? a.val : a;
|
|
},
|
|
Be = function (a) {
|
|
return a + "";
|
|
},
|
|
Cm = function (a) {
|
|
return lc(a) ? 1 : a;
|
|
},
|
|
Dm = function (a) {
|
|
return lc(a) ? 0 : a;
|
|
},
|
|
bt = function (a, c, b) {
|
|
a = a || "black";
|
|
c = c || "black";
|
|
b = b.colorAnimation;
|
|
var d = c && c.meta && c.meta.pattern;
|
|
return !d && a && a.meta && a.meta.pattern ? le(a.meta.backgroundColor, c, b) : (d ? fw : le)(a, c, b);
|
|
},
|
|
Em = {
|
|
x: [Be, null, !0],
|
|
y: [Be, null, !0],
|
|
start: [Be, null, !0],
|
|
end: [Be, null, !0],
|
|
width: [Be, null, !0],
|
|
height: [Be, null, !0],
|
|
opacity: [Cm, null, !1],
|
|
rotate: [Dm, null, !1],
|
|
offsetX: [Dm, null, !1],
|
|
offsetY: [Dm, null, !1],
|
|
display: [Be, null, !1],
|
|
transform: [
|
|
function (a) {
|
|
return a;
|
|
},
|
|
null,
|
|
!1,
|
|
],
|
|
fill: [Bm, bt, !0],
|
|
stroke: [Bm, bt, !0],
|
|
"stroke-opacity": [Cm, null, !1],
|
|
"stroke-width": [Cm, null, !1],
|
|
d: [
|
|
Bm,
|
|
function (a, c, b) {
|
|
return ox(a && a.isPath ? a : Aa(a), c && c.isPath ? c : Aa(c), b.pathAnimation);
|
|
},
|
|
!1,
|
|
],
|
|
},
|
|
ux = /cubic-bezier\(\s*(-?\d+\.?\d*|-?\.\d+)\s*,\s*(-?\d+\.?\d*|-?\.\d+)\s*,\s*(-?\d+\.?\d*|-?\.\d+)\s*,\s*(-?\d+\.?\d*|-?\.\d+)\s*\)/,
|
|
vx = /steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/,
|
|
bi = function (a, c) {
|
|
return function (b) {
|
|
if (1 <= b) return 1;
|
|
var d = 1 / a;
|
|
b += c * d;
|
|
return b - (b % d);
|
|
};
|
|
},
|
|
yq = function (a) {
|
|
return a;
|
|
},
|
|
xq = { activeDuration: 0, totalDuration: 0, delay: 0, endDelay: 0, fill: "none", iterationStart: 0, iterations: 1, duration: 0, playbackRate: 1, direction: "normal", easing: "linear", easingFunction: yq },
|
|
ct = function (a) {
|
|
return a;
|
|
},
|
|
of = function (a, c, b) {
|
|
if ("number" == typeof c) return (a = a || 0), Math.round(1e4 * (b * (c - a) + a)) / 1e4;
|
|
if ("boolean" == typeof a && "boolean" == typeof c) return 1 > b && !c ? a : c;
|
|
if (Wg(c)) {
|
|
var d = {};
|
|
Da(c, function (e) {
|
|
return (d[e] = of(a[e], c[e], b));
|
|
});
|
|
return d;
|
|
}
|
|
if (a.length == c.length) {
|
|
for (var e = [], f = 0; f < a.length; f++) e.push(of(a[f], c[f], b));
|
|
return e;
|
|
}
|
|
throw Error("Wrong interpolation arguments " + a + ":" + c);
|
|
};
|
|
Am.lineargradient = Am.radialgradient = function (a, c) {
|
|
var b = a.nodeName.toLowerCase(),
|
|
d = function (b, a) {
|
|
return lc(b) ? a : b;
|
|
},
|
|
e = null;
|
|
if ("lineargradient" === b) {
|
|
var f = {};
|
|
w(["x1", "y1", "x2", "y2"], function (b) {
|
|
return (f[b] = d(a.attr(b), 0));
|
|
});
|
|
e = { linearGradient: f };
|
|
e.id = e.linearGradient.id = c;
|
|
} else if ("radialgradient" === b) {
|
|
var g = {};
|
|
w(["cx", "cy", "r", "fx", "fy"], function (b) {
|
|
return (g[b] = d(a.attr(b), 0));
|
|
});
|
|
e = { radialGradient: g };
|
|
e.id = e.radialGradient.id = c;
|
|
}
|
|
e &&
|
|
((e.stops = B(a.childNodes, function (b) {
|
|
return [d(b.attr("offset"), "0%"), d(b.attr("stop-color"), "black"), d(b.attr("stop-opacity"), "1")];
|
|
})),
|
|
(a.val = e));
|
|
};
|
|
var hc = function (a, c) {
|
|
return Q(a) ? c : O(a) && Mg(a, "%") ? a : 100 * a + "%";
|
|
},
|
|
Aq = {
|
|
linearGradient: {
|
|
keyPrefix: "linear-gradient",
|
|
argsToAttrs: function (a) {
|
|
var c = a.linearGradient;
|
|
if (ja(c)) {
|
|
var b = G(c, 6),
|
|
d = b[0],
|
|
e = b[1],
|
|
f = b[2],
|
|
g = b[3],
|
|
h = b[4];
|
|
b = b[5];
|
|
h = h || c.hash || a.hash;
|
|
b = b || c.id || a.id;
|
|
} else (d = c.x1), (f = c.x2), (e = c.y1), (g = c.y2), (h = c.hash), (b = c.id);
|
|
return { attrs: { x1: d, x2: f, y1: e, y2: g, id: b, hash: h }, stops: a.stops };
|
|
},
|
|
toString: function (a) {
|
|
return hc(a.x1, "0%") + " " + hc(a.y1, "0%") + " " + hc(a.x2, "100%") + " " + hc(a.y2, "0%");
|
|
},
|
|
},
|
|
radialGradient: {
|
|
keyPrefix: "radial-gradient",
|
|
argsToAttrs: function (a) {
|
|
var c = a.radialGradient;
|
|
if (ja(c)) {
|
|
var b = G(c, 7),
|
|
d = b[0],
|
|
e = b[1],
|
|
f = b[2],
|
|
g = b[3],
|
|
h = b[4],
|
|
k = b[5];
|
|
b = b[6];
|
|
k = k || c.hash || a.hash;
|
|
b = b || c.id || a.id;
|
|
} else (d = c.cx), (e = c.cy), (f = c.r), (g = c.fx), (h = c.fy), (k = c.hash), (b = c.id);
|
|
return { attrs: { cx: d, cy: e, r: f, fx: g, fy: h, id: b, hash: k }, stops: a.stops };
|
|
},
|
|
toString: function (a) {
|
|
return hc(a.cx, "50%") + " " + hc(a.cy, "50%") + " " + hc(a.r, "50%") + " " + hc(a.fx, hc(a.cx, "50%")) + " " + hc(a.fy, hc(a.cy, "50%"));
|
|
},
|
|
},
|
|
stopToString: function (a) {
|
|
return hc(a.offset) + " " + a.color + " " + a.opacity;
|
|
},
|
|
},
|
|
xg = {},
|
|
Fm = function (a, c) {
|
|
if (!a) return a;
|
|
if (O(a)) return J(xg, a) ? xg[a](a, c) : a;
|
|
var b = {},
|
|
d;
|
|
for (d in a)
|
|
if (J(a, d)) {
|
|
var e = a[d];
|
|
if (J(xg, d)) xg[d](d, c, e, b, a);
|
|
else b[d] = e;
|
|
}
|
|
return b;
|
|
},
|
|
LB = (function () {
|
|
function a() {}
|
|
a.prototype.resolve = function (a, b) {
|
|
return Fm(a, b);
|
|
};
|
|
return a;
|
|
})();
|
|
Og[1] = new LB();
|
|
var ci = {
|
|
src: "xlink:href",
|
|
fontWeight: "font-weight",
|
|
fontStyle: "font-style",
|
|
fontSize: "font-size",
|
|
fontFamily: "font-family",
|
|
textDecoration: "text-decoration",
|
|
className: "class",
|
|
strokeDashArray: "stroke-dasharray",
|
|
textRendering: "text-rendering",
|
|
textAnchor: "text-anchor",
|
|
whiteSpace: "white-space",
|
|
textAlign: "text-align",
|
|
borderRadius: "border-radius",
|
|
},
|
|
Dx = fa(["d", "animation", "transition", "clip-rule"]),
|
|
Dq = fa(["class", "id", "translate", "opacity"]),
|
|
ul = { color: "fill", fill: "fill", stroke: "stroke", borderColor: "stroke", "border-color": "stroke", hatch: "fill", hatchPattern: "fill" },
|
|
Kx = { fill: "color", stroke: "border-color" },
|
|
MB = ["stroke-width", "strokeWidth", "border-width", "borderWidth"],
|
|
NB = ["strokeAttrs", "stroke"],
|
|
ei = { transform: "transform" };
|
|
Da(ec, function (a) {
|
|
return (ei[a] = "transform");
|
|
});
|
|
var fi = { zIndex: "z-index", "z-index": "z-index" },
|
|
Iq = {
|
|
"ease-out-cubic": "cubic-bezier(.215, .61, .355, 1)",
|
|
"ease-in-out-cubic": "cubic-bezier(.645, .045, .355, 1)",
|
|
"ease-in-circ": "cubic-bezier(.6, .04, .98, .335)",
|
|
"ease-out-circ": "cubic-bezier(.075, .82, .165, 1)",
|
|
"ease-in-out-circ": "cubic-bezier(.785, .135, .15, .86)",
|
|
"ease-in-expo": "cubic-bezier(.95, .05, .795, .035)",
|
|
"ease-out-expo": "cubic-bezier(.19, 1, .22, 1)",
|
|
"ease-in-out-expo": "cubic-bezier(1, 0, 0, 1)",
|
|
"ease-in-quad": "cubic-bezier(.55, .085, .68, .53)",
|
|
"ease-out-quad": "cubic-bezier(.25, .46, .45, .94)",
|
|
"ease-in-out-quad": "cubic-bezier(.455, .03, .515, .955)",
|
|
"ease-in-quart": "cubic-bezier(.895, .03, .685, .22)",
|
|
"ease-out-quart": "cubic-bezier(.165, .84, .44, 1)",
|
|
"ease-in-out-quart": "cubic-bezier(.77, 0, .175, 1)",
|
|
"ease-in-quint": "cubic-bezier(.755, .05, .855, .06)",
|
|
"ease-out-quint": "cubic-bezier(.23, 1, .32, 1)",
|
|
"ease-in-out-quint": "cubic-bezier(.86, 0, .07, 1)",
|
|
"ease-in-sine": "cubic-bezier(.47, 0, .745, .715)",
|
|
"ease-out-sine": "cubic-bezier(.39, .575, .565, 1)",
|
|
"ease-in-out-sine": "cubic-bezier(.445, .05, .55, .95)",
|
|
"ease-in-back": "cubic-bezier(.6, -.28, .735, .045)",
|
|
"ease-out-back": "cubic-bezier(.175, .885, .32, 1.275)",
|
|
"ease-in-out-back": "cubic-bezier(.68, -.55, .265, 1.55)",
|
|
},
|
|
Vx = fa(["d", "animation", "transition", "fill", "display"]),
|
|
Xx = new RegExp(String.fromCharCode(160), "gm");
|
|
w(
|
|
[
|
|
function () {
|
|
Ab(pa(ci), zx);
|
|
},
|
|
function () {
|
|
Ab(["attr"], Ax);
|
|
},
|
|
function () {
|
|
Ab(["d"], Bx);
|
|
},
|
|
function () {
|
|
Ab(["overflow"], Cx);
|
|
},
|
|
function () {
|
|
Ab(["clipPath"], Bq);
|
|
},
|
|
function () {
|
|
Ab(["shadow"], Fx);
|
|
},
|
|
function () {
|
|
Ab(pa(ul), Jx);
|
|
},
|
|
function () {
|
|
Ab(MB, Ox);
|
|
Ab(NB, Px);
|
|
},
|
|
function () {
|
|
Ab(pa(ei), Rx);
|
|
},
|
|
function () {
|
|
Ab(pa(fi), Sx);
|
|
},
|
|
function () {
|
|
Ab(["easing"], Tx);
|
|
},
|
|
function () {
|
|
Ab(["mask"], Ux);
|
|
},
|
|
function () {
|
|
Ab(["text"], Wx);
|
|
},
|
|
],
|
|
function (a) {
|
|
return a();
|
|
}
|
|
);
|
|
var OB = function (a, c, b) {
|
|
var d = {},
|
|
e = [];
|
|
Da(ec, function (f) {
|
|
var g = ec[f][1](of(c[f], b[f], a));
|
|
if (null != g || c[f]) g && e.push(f + "(" + pc(g, ",") + ")"), (d[f] = g);
|
|
});
|
|
var f = e.length ? pc(e, " ") : null;
|
|
f && (d.val = f);
|
|
return f ? d : null;
|
|
},
|
|
$i = {
|
|
transform: function (a, c) {
|
|
var b = { translate: [0, 0], scale: [1], rotate: [0, 0, 0] },
|
|
d = a ? Pe(b, a, ec) : b,
|
|
e = c ? Pe(b, c, ec) : b;
|
|
a = {};
|
|
Da(ec, function (b) {
|
|
null === d[b] && (d[b] = ec[b][0]);
|
|
null === e[b] && (e[b] = ec[b][0]);
|
|
"rotate" === b && ((d[b][1] = e[b][1]), (d[b][2] = e[b][2]));
|
|
});
|
|
a.transform = {
|
|
interpolate: function (b) {
|
|
return OB(b, d, e);
|
|
},
|
|
};
|
|
return { complex: !0, props: a };
|
|
},
|
|
display: function (a, c) {
|
|
return {
|
|
from: "block" == a,
|
|
to: "block" == c,
|
|
convert: function (b) {
|
|
return b ? "block" : "none";
|
|
},
|
|
};
|
|
},
|
|
},
|
|
PB = function (a, c) {
|
|
return { from: parseFloat(a), to: parseFloat(c), convert: ct };
|
|
},
|
|
QB = function (a, c) {
|
|
return { from: rl(a), to: rl(c), convert: ct };
|
|
};
|
|
w("opacity rotate offsetX offsetY start end stroke-width stroke-opacity".split(" "), function (a) {
|
|
return ($i[a] = PB);
|
|
});
|
|
w(["x", "y", "width", "height"], function (a) {
|
|
return ($i[a] = QB);
|
|
});
|
|
var Gm = (function () {
|
|
return function () {};
|
|
})(),
|
|
RB = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.update = function (b) {};
|
|
return c;
|
|
})(Gm),
|
|
SB = (function (a) {
|
|
function c(b) {
|
|
var c = a.call(this) || this;
|
|
c.frameHandler = b;
|
|
return c;
|
|
}
|
|
K(c, a);
|
|
c.prototype.update = function (b) {
|
|
this.frameHandler(b);
|
|
};
|
|
return c;
|
|
})(Gm),
|
|
TB = (function (a) {
|
|
function c(b, c) {
|
|
var d = a.call(this) || this;
|
|
d.frames = b;
|
|
d.parseFrames();
|
|
c && c.onFrame && (d.onFrame = c.onFrame);
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
c.prototype.update = function (b) {
|
|
var a = {},
|
|
c = this.interpolations;
|
|
Da(c, function (d) {
|
|
var e = c[d];
|
|
a[d] = e.interpolate ? e.interpolate(b) : e.convert(of(e.from, e.to, b));
|
|
});
|
|
if (this.onFrame) this.onFrame(b, a, of);
|
|
};
|
|
c.prototype.parseFrames = function () {
|
|
var b = this.frames[0],
|
|
a = this.frames[this.frames.length - 1],
|
|
c = {};
|
|
Da(a, function (d) {
|
|
if (J($i, d)) {
|
|
var e = $i[d](b[d], a[d]);
|
|
e && (e.complex ? L(c, e.props) : (c[d] = e));
|
|
}
|
|
});
|
|
this.interpolations = c;
|
|
};
|
|
return c;
|
|
})(Gm),
|
|
UB = (function (a) {
|
|
function c(b, c, e) {
|
|
var d = a.call(this) || this;
|
|
d.timeLine = e;
|
|
d.idle = !0;
|
|
d.paused = !1;
|
|
d.currentTimePending = !1;
|
|
d.finishedFlag = !0;
|
|
d._startTime = null;
|
|
d._currentTime = 0;
|
|
d.playbackRate = 1;
|
|
d.inEffect = !1;
|
|
d.effectTime = wq(c);
|
|
b = Fb(b) ? new SB(b) : ja(b) && 1 < b.length ? new TB(b, c) : new RB();
|
|
d.effect = b;
|
|
d.onFinishAnimation = c.onFinishAnimation;
|
|
d._final = c.final;
|
|
d.scope = c.scope;
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
c.prototype.play = function () {
|
|
this.paused = !1;
|
|
if (this.isFinished() || this.idle) this.rewind(), (this._startTime = null);
|
|
this.idle = this.finishedFlag = !1;
|
|
};
|
|
c.prototype.pause = function () {
|
|
this.isFinished() || this.paused || this.idle ? this.idle && (this.rewind(), (this.idle = !1)) : (this.currentTimePending = !0);
|
|
this._startTime = null;
|
|
this.paused = !0;
|
|
};
|
|
c.prototype.finish = function () {
|
|
if (!this.idle) {
|
|
var b = this.effectTime.options;
|
|
this._currentTime = 0 < this.playbackRate ? b.totalDuration : 0;
|
|
this._startTime = b.totalDuration - this._currentTime;
|
|
this.currentTimePending = !1;
|
|
}
|
|
};
|
|
c.prototype.cancel = function () {
|
|
this.inEffect && ((this.inEffect = !1), (this.idle = !0), (this.paused = !1), (this.finishedFlag = !0), (this._currentTime = 0), (this._startTime = null), this.updateEffect(null));
|
|
};
|
|
c.prototype.reverse = function () {
|
|
this.playbackRate *= -1;
|
|
this.play();
|
|
};
|
|
c.prototype.playState = function () {
|
|
return this.idle ? "idle" : (null == this._startTime && !this.paused && 0 !== this.playbackRate) || this.currentTimePending ? "pending" : this.paused ? "paused" : this.isFinished() ? "finished" : "running";
|
|
};
|
|
c.prototype.isFinished = function () {
|
|
var b = this.effectTime.options.totalDuration;
|
|
return !this.idle && ((0 < this.playbackRate && (this._currentTime > b || (this._currentTime === b && 0 !== b))) || (0 > this.playbackRate && 0 >= this._currentTime));
|
|
};
|
|
c.prototype.frame = function () {
|
|
var b = this;
|
|
this.idle ||
|
|
this.paused ||
|
|
(null == this._startTime
|
|
? (this._startTime = this.timeLine.currentTime - this._currentTime / this.playbackRate)
|
|
: this.isFinished() || this.tickCurrentTime((this.timeLine.currentTime - this._startTime) * this.playbackRate));
|
|
this.currentTimePending = !1;
|
|
this.isFinished()
|
|
? this.finishedFlag ||
|
|
(this.onFinish &&
|
|
T.setTimeout(function () {
|
|
b.onFinish();
|
|
}, 0),
|
|
(this.finishedFlag = !0))
|
|
: (this.finishedFlag = !1);
|
|
};
|
|
c.prototype.startTime = function () {
|
|
return this._startTime;
|
|
};
|
|
c.prototype.currentTime = function () {
|
|
return this._currentTime;
|
|
};
|
|
c.prototype.rewind = function () {
|
|
var b = this.effectTime.options;
|
|
if (0 <= this.playbackRate) this._currentTime = 0;
|
|
else if (Infinity > b.totalDuration) this._currentTime = b.totalDuration;
|
|
else throw Error("Unable to rewind negative playback rate animation with infinite duration");
|
|
};
|
|
c.prototype.tickCurrentTime = function (b) {
|
|
b !== this._currentTime && ((this._currentTime = b), this.updateEffect(0 > this.playbackRate && 0 === this._currentTime ? -1 : this._currentTime));
|
|
};
|
|
c.prototype.updateEffect = function (b) {
|
|
b = this.effectTime(b);
|
|
this.inEffect = null !== b;
|
|
this.effect.update(null === b ? 1 : b);
|
|
};
|
|
c.prototype.finishAnimation = function (b) {
|
|
this.finish();
|
|
b && (this.updateEffect(null), this.finishedFlag || ((this.finishedFlag = !0), this.onFinish && this.onFinish()));
|
|
this.onFinish = null;
|
|
if (this.onFinishAnimation) this.onFinishAnimation();
|
|
this._final && this._final();
|
|
};
|
|
return c;
|
|
})(JB),
|
|
VB = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.ticking = !1;
|
|
b.animations = [];
|
|
b._awaitCallbacks = [];
|
|
b._framesCount = 0;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.animate = function (b, a) {
|
|
b = new UB(b, a, this);
|
|
this.animations.push(b);
|
|
b.play();
|
|
this.startAnimationsFrame();
|
|
return b;
|
|
};
|
|
c.prototype.getAnimations = function (b) {
|
|
this.discardAnimations();
|
|
return b
|
|
? ea(this.animations, function (a) {
|
|
return a.scope === b;
|
|
})
|
|
: this.animations;
|
|
};
|
|
c.prototype.await = function (b) {
|
|
this.ticking ? this._awaitCallbacks.push(b) : b(0);
|
|
};
|
|
c.prototype.startAnimationsFrame = function () {
|
|
var b = this;
|
|
b.ticking ||
|
|
((b.ticking = !0),
|
|
(b._framesCount = 0),
|
|
T.requestAnimationFrame(function (a) {
|
|
return b.frame(a);
|
|
}));
|
|
};
|
|
c.prototype.frame = function (b) {
|
|
var a = this;
|
|
a.currentTime = b;
|
|
a._framesCount++;
|
|
w(a.animations, function (b) {
|
|
return b.frame();
|
|
});
|
|
a.discardAnimations();
|
|
0 === a.animations.length
|
|
? a.final()
|
|
: T.requestAnimationFrame(function (b) {
|
|
return a.frame(b);
|
|
});
|
|
};
|
|
c.prototype.discardAnimations = function () {
|
|
this.animations = ea(this.animations, function (b) {
|
|
b = b.playState();
|
|
return "finished" !== b && "idle" !== b;
|
|
});
|
|
};
|
|
c.prototype.final = function () {
|
|
var b = this._awaitCallbacks.slice(),
|
|
a = this._framesCount;
|
|
this.ticking = !1;
|
|
this._awaitCallbacks = [];
|
|
setTimeout(function () {
|
|
w(b, function (b) {
|
|
return b(a);
|
|
});
|
|
});
|
|
};
|
|
return c;
|
|
})(KB),
|
|
Ce = new ((function () {
|
|
function a() {}
|
|
a.prototype.create = function () {
|
|
return new VB();
|
|
};
|
|
return a;
|
|
})())().create(),
|
|
vl = {},
|
|
ZB = (function () {
|
|
function a() {}
|
|
a.prototype.createEventsProcessorType = function () {
|
|
return "ontouchstart" in T ? WB : "PointerEvent" in T ? XB : YB;
|
|
};
|
|
return a;
|
|
})(),
|
|
$B = (function () {
|
|
function a() {
|
|
this.subscribedEvents = {};
|
|
}
|
|
a.prototype.isStoreEvent = function (a) {
|
|
return null != vl[a];
|
|
};
|
|
a.prototype.addEvent = function (a, b, d) {
|
|
var c = vl[b];
|
|
if (!c) return !1;
|
|
this.subscribedEvents[b] || (this.subscribedEvents[b] = []);
|
|
a = new c(a, d);
|
|
a.on();
|
|
this.subscribedEvents[b].push(a);
|
|
return !0;
|
|
};
|
|
a.prototype.removeEvent = function (a, b, d) {
|
|
if (!this.isStoreEvent(b)) return !1;
|
|
if (!this.subscribedEvents[b]) return !0;
|
|
for (var c = this.subscribedEvents[b].length, f = 0; f < c; f++) {
|
|
var g = this.subscribedEvents[b][f];
|
|
g.eventTarget !== a || (d && g.fn !== d) || (this.subscribedEvents[b].splice(f, 1), g.un(), c--);
|
|
}
|
|
return !0;
|
|
};
|
|
return a;
|
|
})(),
|
|
Df = {},
|
|
Sb = (function () {
|
|
function a(a, b) {
|
|
var c = this;
|
|
this.eventTarget = a;
|
|
this.fn = b;
|
|
this.pointers = {};
|
|
this.pointerEvents = ["pointerdown", "pointerenter", "pointerout"];
|
|
this.publicPointerEvents = ["pointermove", "pointerup", "pointercancel", "pointerout"];
|
|
this.touchEvents = ["touchstart", "touchend", "touchmove", "touchcancel"];
|
|
this.publicTouchEvents = [];
|
|
this.mouseEvents = ["mousedown", "mousemove", "mouseover", "mouseout", "mouseup"];
|
|
this.publicMouseEvents = [];
|
|
this.innerEventsHandler = function (b) {
|
|
b.type === da.Down && (c.pointers[b.id] = b);
|
|
c.processEventDescription(b);
|
|
b.eventData.pointers = c.pointersToArray();
|
|
c.eventsHandler(b);
|
|
b.type === da.Move && c.pointers[b.id] && (c.pointers[b.id] = b);
|
|
if (b.type === da.Up || b.type === da.Leave) delete c.pointers[b.id], delete Df[b.id];
|
|
};
|
|
}
|
|
a.prototype.on = function () {
|
|
this.hasSubscription || (this.subscribe(), (this.hasSubscription = !0));
|
|
};
|
|
a.prototype.un = function () {
|
|
this.hasSubscription && (this.unsubscribe(), (this.hasSubscription = !1));
|
|
};
|
|
a.prototype.clearPointers = function () {
|
|
for (var a in Df) delete Df[a];
|
|
};
|
|
a.prototype.pointersToArray = function () {
|
|
var a = [],
|
|
b;
|
|
for (b in Df) a.push(Df[b]);
|
|
return a;
|
|
};
|
|
a.prototype.subscribe = function () {
|
|
this.eventsProcessor = new (new ZB().createEventsProcessorType())(this.eventTarget, this.innerEventsHandler, {
|
|
pointerEvents: this.pointerEvents,
|
|
publicPointerEvents: this.publicPointerEvents,
|
|
touchEvents: this.touchEvents,
|
|
publicTouchEvents: this.publicTouchEvents,
|
|
mouseEvents: this.mouseEvents,
|
|
publicMouseEvents: this.publicMouseEvents,
|
|
});
|
|
this.eventsProcessor.subscribe();
|
|
};
|
|
a.prototype.unsubscribe = function () {
|
|
this.eventsProcessor.unsubscribe();
|
|
};
|
|
a.prototype.processEventDescription = function (a) {
|
|
Df[a.id] = new aC(a.id, a.pageX, a.pageY, a.clientX, a.clientY);
|
|
};
|
|
return a;
|
|
})();
|
|
(function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.pointerEvents = ["pointerdown"];
|
|
b.publicPointerEvents = ["pointerup", "pointercancel"];
|
|
b.touchEvents = ["touchstart"];
|
|
b.publicTouchEvents = ["touchend", "touchcancel"];
|
|
b.mouseEvents = ["mousedown"];
|
|
b.publicMouseEvents = ["mouseup", "mouseout"];
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.eventsHandler = function (b) {
|
|
switch (b.type) {
|
|
case da.Down:
|
|
(b.eventData.customEventType = "vdown"), pf(b, this.eventTarget), this.fn(b.eventData);
|
|
}
|
|
};
|
|
return (c = Eb([Ob("vdown")], c));
|
|
})(Sb);
|
|
(function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.subscribe = function () {
|
|
var b = this;
|
|
b.eventsProcessor = new dt(
|
|
b.eventTarget,
|
|
function (a) {
|
|
return b.eventsHandler(a);
|
|
},
|
|
{ events: ["keyup"] }
|
|
);
|
|
b.eventsProcessor.subscribe();
|
|
};
|
|
c.prototype.eventsHandler = function (b) {
|
|
13 == b.keyCode && this.fn(b);
|
|
};
|
|
return (c = Eb([Ob("vkeyenter")], c));
|
|
})(Sb);
|
|
(function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.subscribe = function () {
|
|
var b = this;
|
|
b.eventsProcessor = new dt(
|
|
b.eventTarget,
|
|
function (a) {
|
|
return b.eventsHandler(a);
|
|
},
|
|
{ events: ["focus", "blur"] }
|
|
);
|
|
b.eventsProcessor.subscribe();
|
|
};
|
|
c.prototype.eventsHandler = function (b) {
|
|
"focus" === b.type ? (b.hasFocus = !0) : "blur" === b.type && (b.hasFocus = !1);
|
|
this.fn(b);
|
|
};
|
|
return (c = Eb([Ob("vchangefocus")], c));
|
|
})(Sb);
|
|
(function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.pointerEvents = ["pointerup", "pointercancel"];
|
|
b.publicPointerEvents = [];
|
|
b.touchEvents = ["touchend", "touchcancel"];
|
|
b.mouseEvents = ["mouseup", "mouseout"];
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.eventsHandler = function (b) {
|
|
switch (b.type) {
|
|
case da.Up:
|
|
(b.eventData.customEventType = "vup"), pf(b, this.eventTarget), this.fn(b.eventData);
|
|
}
|
|
};
|
|
return (c = Eb([Ob("vup")], c));
|
|
})(Sb);
|
|
(function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.pointerEvents = ["pointermove", "pointerdown", "pointerout", "pointerleave"];
|
|
b.publicPointerEvents = ["pointerup", "pointercancel"];
|
|
b.touchEvents = ["touchmove", "touchstart", "touchend", "touchcancel"];
|
|
b.mouseEvents = ["mousemove", "mousedown", "mouseup"];
|
|
b.downArgs = [];
|
|
b._resetDiff = 4;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.subscribe = function () {
|
|
a.prototype.subscribe.call(this);
|
|
};
|
|
c.prototype.eventsHandler = function (b) {
|
|
var a = nh(this.downArgs, "id", b.id);
|
|
switch (b.type) {
|
|
case da.Down:
|
|
if (!Jq(b.eventData)) break;
|
|
this.downArgs.push(b);
|
|
break;
|
|
case da.Move:
|
|
if (!a) break;
|
|
var c = a.clientX - b.clientX;
|
|
b = a.clientY - b.clientY;
|
|
c * c + b * b > this._resetDiff && this.downArgs.splice(this.downArgs.indexOf(a), 1);
|
|
break;
|
|
case da.Up:
|
|
a && a.id === b.id && a.eventData.target === b.eventData.target && ((b.eventData.customEventType = "vclick"), pf(b, this.eventTarget), this.fn(b.eventData), this.downArgs.splice(this.downArgs.indexOf(a), 1));
|
|
}
|
|
};
|
|
return (c = Eb([Ob("vclick")], c));
|
|
})(Sb);
|
|
(function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.pointerEvents = ["pointerenter", "pointerleave", "pointercancel"];
|
|
b.publicPointerEvents = [];
|
|
b.touchEvents = ["touchstart", "touchend", "touchcancel"];
|
|
b.mouseEvents = ["mouseover", "mouseout"];
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.eventsHandler = function (b) {
|
|
switch (b.type) {
|
|
case da.Down:
|
|
case da.Enter:
|
|
(b.eventData.customEventType = "venter"), pf(b, this.eventTarget), this.fn(b.eventData);
|
|
}
|
|
};
|
|
return (c = Eb([Ob("venter")], c));
|
|
})(Sb);
|
|
(function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.pointerEvents = ["pointerout", "pointercancel"];
|
|
b.publicPointerEvents = [];
|
|
b.touchEvents = ["touchend", "touchcancel"];
|
|
b.mouseEvents = ["mouseout"];
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.eventsHandler = function (b) {
|
|
switch (b.type) {
|
|
case da.Up:
|
|
case da.Leave:
|
|
(b.eventData.customEventType = "vleave"), this.fn(b.eventData);
|
|
}
|
|
};
|
|
return (c = Eb([Ob("vleave")], c));
|
|
})(Sb);
|
|
(function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.pointerEvents = ["pointermove"];
|
|
b.touchEvents = ["touchmove"];
|
|
b.mouseEvents = ["mousemove"];
|
|
b.publicPointerEvents = ["pointerup", "pointercancel"];
|
|
b.publicTouchEvents = ["touchend", "touchcancel"];
|
|
b.publicMouseEvents = ["mouseup", "mouseout"];
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.eventsHandler = function (b) {
|
|
switch (b.type) {
|
|
case da.Move:
|
|
(b.eventData.customEventType = "vmove"), pf(b, this.eventTarget), this.fn(b.eventData);
|
|
}
|
|
};
|
|
return (c = Eb([Ob("vmove")], c));
|
|
})(Sb);
|
|
(function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.timeoutId = null;
|
|
b.timeout = 750;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.eventsHandler = function (b) {
|
|
var a = this;
|
|
switch (b.type) {
|
|
case da.Down:
|
|
this.timeoutId = setTimeout(function () {
|
|
a.fn({ type: "taphold", clientX: b.clientX, clientY: b.clientY });
|
|
a.timeoutId = null;
|
|
}, this.timeout);
|
|
break;
|
|
case da.Move:
|
|
case da.Up:
|
|
this.reset();
|
|
}
|
|
};
|
|
c.prototype.reset = function () {
|
|
this.timeoutId && (clearTimeout(this.timeoutId), (this.timeoutId = null));
|
|
};
|
|
return (c = Eb([Ob("taphold")], c));
|
|
})(Sb);
|
|
(function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.distance = 0;
|
|
b.distanceX = 0;
|
|
b.distanceY = 0;
|
|
b.threshold = 0.3;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.eventsHandler = function (b) {
|
|
switch (b.type) {
|
|
case da.Move:
|
|
this.callPinchEvent(b);
|
|
break;
|
|
case da.Up:
|
|
2 === Object.keys(this.pointers).length && (this.distance = 0);
|
|
}
|
|
};
|
|
c.prototype.callPinchEvent = function (b) {
|
|
var a = Object.keys(this.pointers);
|
|
if (2 !== a.length) this.distance = 0;
|
|
else {
|
|
var c = this.pointers[a[0]],
|
|
f = this.pointers[a[1]],
|
|
g = !1,
|
|
h = !1;
|
|
c.id === b.id ? ((c = b), (g = c.clientX < f.clientX), (h = c.clientY < f.clientY)) : f.id === b.id && ((f = b), (g = f.clientX < c.clientX), (h = f.clientY < c.clientY));
|
|
var k = this.calculateDistance(c, f),
|
|
l = this.calculateAxisDistance(c, f, { x: 1, y: 0 }),
|
|
m = this.calculateAxisDistance(c, f, { x: 0, y: 1 });
|
|
if (0 === this.distance) (this.distance = k), (this.distanceX = l), (this.distanceY = m);
|
|
else {
|
|
var n = k - this.distance;
|
|
if (!(Math.abs(n) < this.threshold)) {
|
|
var p = l - this.distanceX,
|
|
q = m - this.distanceY;
|
|
this.distance = k;
|
|
this.distanceX = l;
|
|
this.distanceY = m;
|
|
this.fn({
|
|
type: "pinch",
|
|
distance: this.distance,
|
|
offset: n,
|
|
offsetX: p,
|
|
offsetY: q,
|
|
isLeftPointer: g,
|
|
isTopPointer: h,
|
|
pointersCount: a.length,
|
|
eventData: b.eventData,
|
|
firstClientX: c.clientX,
|
|
firstClientY: c.clientY,
|
|
secondClientX: f.clientX,
|
|
secondClientY: f.clientY,
|
|
});
|
|
}
|
|
}
|
|
}
|
|
};
|
|
c.prototype.calculateDistance = function (b, a) {
|
|
var c = a.clientX - b.clientX;
|
|
b = a.clientY - b.clientY;
|
|
return Math.sqrt(c * c + b * b);
|
|
};
|
|
c.prototype.calculateAxisDistance = function (b, a, c) {
|
|
return Math.abs(c.x * a.clientX + c.y * a.clientY - (c.x * b.clientX + c.y * b.clientY));
|
|
};
|
|
return (c = Eb([Ob("pinch")], c));
|
|
})(Sb);
|
|
(function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.eventsHandler = function (b) {
|
|
switch (b.type) {
|
|
case da.Move:
|
|
this.callMoveEvent(b);
|
|
}
|
|
};
|
|
c.prototype.callMoveEvent = function (b) {
|
|
var a = b.id;
|
|
this.pointers[a] && this.fn({ type: "move", offsetX: b.clientX - this.pointers[a].clientX, offsetY: b.clientY - this.pointers[a].clientY, pointersCount: Object.keys(this.pointers).length });
|
|
};
|
|
return (c = Eb([Ob("move")], c));
|
|
})(Sb);
|
|
(function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.timeoutInterval = function () {
|
|
return 500;
|
|
};
|
|
c.prototype.resetTimeoutInterval = function () {
|
|
return 300;
|
|
};
|
|
c.prototype.getName = function () {
|
|
return "DoubleTapEvent";
|
|
};
|
|
c.prototype.tapCount = function () {
|
|
return 2;
|
|
};
|
|
return (c = Eb([Ob("doubletap")], c));
|
|
})(
|
|
(function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.timeoutId = null;
|
|
b.resetTimeoutId = null;
|
|
b.currentTapCount = 0;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.eventsHandler = function (b) {
|
|
var a = this;
|
|
switch (b.type) {
|
|
case da.Down:
|
|
clearTimeout(this.timeoutId);
|
|
clearTimeout(this.resetTimeoutId);
|
|
this.currentTapCount++;
|
|
this.timeoutId = setTimeout(function () {
|
|
a.currentTapCount === a.tapCount() && ((b.eventData.customEventType = a.getName()), pf(b, a.eventTarget), a.fn(b.eventData));
|
|
a.currentTapCount = 0;
|
|
}, this.timeoutInterval());
|
|
break;
|
|
case da.Up:
|
|
this.resetTimeoutId = setTimeout(function () {
|
|
a.currentTapCount = 0;
|
|
}, this.resetTimeoutInterval());
|
|
}
|
|
};
|
|
return c;
|
|
})(Sb)
|
|
);
|
|
(function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.getName = function () {
|
|
return "vdblclick";
|
|
};
|
|
c.prototype.clicksCount = function () {
|
|
return 2;
|
|
};
|
|
c.prototype.timeout = function () {
|
|
return 300;
|
|
};
|
|
return (c = Eb([Ob("vdblclick")], c));
|
|
})(
|
|
(function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.downArgs = [];
|
|
b.currentClicksCount = 0;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.eventsHandler = function (b) {
|
|
var a = this,
|
|
c = nh(this.downArgs, "id", b.id);
|
|
switch (b.type) {
|
|
case da.Down:
|
|
if (!Jq(b.eventData)) break;
|
|
clearTimeout(this.timeoutId);
|
|
this.downArgs.push(b);
|
|
break;
|
|
case da.Up:
|
|
c &&
|
|
c.id === b.id &&
|
|
c.eventData.target === b.eventData.target &&
|
|
(clearTimeout(this.timeoutId),
|
|
this.currentClicksCount++,
|
|
(b.eventData.customEventType = this.getName()),
|
|
this.currentClicksCount === this.clicksCount()
|
|
? (this.fn(b.eventData), (this.currentClicksCount = 0))
|
|
: (this.timeoutId = setTimeout(function () {
|
|
a.currentClicksCount = 0;
|
|
}, this.timeout())),
|
|
this.downArgs.splice(this.downArgs.indexOf(c), 1));
|
|
}
|
|
};
|
|
return c;
|
|
})(Sb)
|
|
);
|
|
var da;
|
|
(function (a) {
|
|
a[(a.None = 0)] = "None";
|
|
a[(a.Down = 1)] = "Down";
|
|
a[(a.Move = 2)] = "Move";
|
|
a[(a.Enter = 3)] = "Enter";
|
|
a[(a.Leave = 4)] = "Leave";
|
|
a[(a.Up = 5)] = "Up";
|
|
})(da || (da = {}));
|
|
var Hm = (function () {
|
|
return function (a, c, b, d, e, f, g) {
|
|
this.type = a;
|
|
this.id = c;
|
|
this.pageX = b;
|
|
this.pageY = d;
|
|
this.clientX = e;
|
|
this.clientY = f;
|
|
this.eventData = g;
|
|
};
|
|
})(),
|
|
aj = (function () {
|
|
function a(a, b, d) {
|
|
void 0 === d && (d = {});
|
|
this.el = a;
|
|
this.eventsHandler = b;
|
|
this.options = d;
|
|
}
|
|
a.prototype.getWindowForElement = function () {
|
|
var a = this.el;
|
|
a = a.ownerDocument || a;
|
|
return a.defaultView || a.parentWindow || T;
|
|
};
|
|
a.prototype.triggerEventsHandler = function (a) {
|
|
this.eventsHandler && this.eventsHandler(a);
|
|
};
|
|
a.prototype.handleEvents = function (a, b, d, e) {
|
|
var c;
|
|
if (a && a.length) {
|
|
try {
|
|
for (var g = ya(a), h = g.next(); !h.done; h = g.next()) this.el[b](h.value, d, e);
|
|
} catch (l) {
|
|
var k = { error: l };
|
|
} finally {
|
|
try {
|
|
h && !h.done && (c = g.return) && c.call(g);
|
|
} finally {
|
|
if (k) throw k.error;
|
|
}
|
|
}
|
|
return !0;
|
|
}
|
|
return !1;
|
|
};
|
|
a.prototype.handlePublicEvents = function (a, b, d, e) {
|
|
var c,
|
|
g = this.getWindowForElement();
|
|
if (a && a.length) {
|
|
try {
|
|
for (var h = ya(a), k = h.next(); !k.done; k = h.next()) g[b](k.value, d, e);
|
|
} catch (m) {
|
|
var l = { error: m };
|
|
} finally {
|
|
try {
|
|
k && !k.done && (c = h.return) && c.call(h);
|
|
} finally {
|
|
if (l) throw l.error;
|
|
}
|
|
}
|
|
return !0;
|
|
}
|
|
return !1;
|
|
};
|
|
return a;
|
|
})(),
|
|
dt = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.handler = function (a) {
|
|
b.triggerEventsHandler(a);
|
|
};
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.subscribe = function () {
|
|
this.handleEvents(this.options.events, "addEventListener", this.handler);
|
|
this.handlePublicEvents(this.options.publicEvents, "addEventListener", this.handler);
|
|
};
|
|
c.prototype.unsubscribe = function () {
|
|
this.handleEvents(this.options.events, "removeEventListener", this.handler);
|
|
this.handlePublicEvents(this.options.publicEvents, "removeEventListener", this.handler);
|
|
};
|
|
return c;
|
|
})(aj),
|
|
YB = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.handler = function (a) {
|
|
switch (a.type.toLowerCase()) {
|
|
case "mousedown":
|
|
var c = da.Down;
|
|
break;
|
|
case "mousemove":
|
|
c = da.Move;
|
|
break;
|
|
case "mouseover":
|
|
c = da.Enter;
|
|
break;
|
|
case "mouseout":
|
|
c = da.Leave;
|
|
break;
|
|
case "mouseup":
|
|
c = da.Up;
|
|
}
|
|
b.triggerEventsHandler(new Hm(c, "1", a.pageX, a.pageY, a.clientX, a.clientY, a));
|
|
};
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.subscribe = function () {
|
|
this.handleEvents(this.options.mouseEvents, "addEventListener", this.handler);
|
|
this.handlePublicEvents(this.options.publicMouseEvents, "addEventListener", this.handler);
|
|
};
|
|
c.prototype.unsubscribe = function () {
|
|
this.handleEvents(this.options.mouseEvents, "removeEventListener", this.handler);
|
|
this.handlePublicEvents(this.options.publicMouseEvents, "removeEventListener", this.handler);
|
|
};
|
|
return c;
|
|
})(aj),
|
|
WB = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.handler = function (a) {
|
|
switch (a.type.toLowerCase()) {
|
|
case "touchstart":
|
|
b.triggerTouchEvent(da.Down, a);
|
|
break;
|
|
case "touchmove":
|
|
b.triggerTouchEvent(da.Move, a);
|
|
break;
|
|
case "touchend":
|
|
case "touchcancel":
|
|
b.triggerTouchEvent(da.Up, a);
|
|
}
|
|
};
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.subscribe = function () {
|
|
this.handleEvents(this.options.touchEvents, "addEventListener", this.handler, { passive: !1 });
|
|
this.handlePublicEvents(this.options.publicTouchEvents, "addEventListener", this.handler, { passive: !1 });
|
|
};
|
|
c.prototype.unsubscribe = function () {
|
|
this.handleEvents(this.options.touchEvents, "removeEventListener", this.handler);
|
|
this.handlePublicEvents(this.options.publicTouchEvents, "removeEventListener", this.handler);
|
|
};
|
|
c.prototype.triggerTouchEvent = function (b, a) {
|
|
for (var c = 0; c < a.changedTouches.length; c++) {
|
|
var d = a.changedTouches[c];
|
|
this.triggerEventsHandler(new Hm(b, d.identifier, d.pageX, d.pageY, d.clientX, d.clientY, a));
|
|
}
|
|
};
|
|
return c;
|
|
})(aj),
|
|
XB = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.handler = function (a) {
|
|
var c = a.type,
|
|
d = b.getIdFromEvent(a);
|
|
switch (c.toLowerCase()) {
|
|
case "pointerdown":
|
|
var g = da.Down;
|
|
break;
|
|
case "pointermove":
|
|
g = da.Move;
|
|
break;
|
|
case "pointerenter":
|
|
g = da.Enter;
|
|
break;
|
|
case "pointerout":
|
|
g = da.Leave;
|
|
break;
|
|
case "pointerup":
|
|
case "pointercancel":
|
|
case "pointerleave":
|
|
g = da.Up;
|
|
}
|
|
b.triggerEventsHandler(new Hm(g, d, a.pageX, a.pageY, a.clientX, a.clientY, a));
|
|
};
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.subscribe = function () {
|
|
this.handleEvents(this.options.pointerEvents, "addEventListener", this.handler);
|
|
this.handlePublicEvents(this.options.publicPointerEvents, "addEventListener", this.handler);
|
|
};
|
|
c.prototype.unsubscribe = function () {
|
|
this.handleEvents(this.options.pointerEvents, "removeEventListener", this.handler);
|
|
this.handlePublicEvents(this.options.publicPointerEvents, "removeEventListener", this.handler);
|
|
};
|
|
c.prototype.getIdFromEvent = function (b) {
|
|
return b.pointerId.toString();
|
|
};
|
|
return c;
|
|
})(aj),
|
|
aC = (function () {
|
|
return function (a, c, b, d, e) {
|
|
this.id = a;
|
|
this.pageX = c;
|
|
this.pageY = b;
|
|
this.clientX = d;
|
|
this.clientY = e;
|
|
};
|
|
})(),
|
|
bC = fa(["div", "input", "button"]),
|
|
hi = function (a) {
|
|
return a ? J(bC, a.toLowerCase()) : !1;
|
|
},
|
|
bj = function (a, c, b) {
|
|
c = b || "svg";
|
|
return (c = hi(a) ? "http://www.w3.org/1999/xhtml" : "svg" === c ? "http://www.w3.org/2000/svg" : "html" === c ? "http://www.w3.org/1999/xhtml" : void 0) ? ba.createElementNS(c, a) : ba.createElement(a);
|
|
},
|
|
Zx = function (a) {
|
|
if (a) {
|
|
var c = a.parentNode;
|
|
c && c.removeChild(a);
|
|
}
|
|
},
|
|
cC = "alt disabled href id src style title class onclick tabindex role aria-label".split(" "),
|
|
dC = ["user-select", "outline"],
|
|
Qq = function (a) {
|
|
if (0 === a.lastIndexOf("xml:", 0)) return "http://www.w3.org/XML/1998/namespace";
|
|
if (0 === a.lastIndexOf("xlink:", 0)) return "http://www.w3.org/1999/xlink";
|
|
},
|
|
yl = function (a, c) {
|
|
a = a.tagName.toLowerCase();
|
|
return (hi(a) && -1 === cC.indexOf(c)) || -1 < dC.indexOf(c);
|
|
},
|
|
Pq = { width: "0", height: "0", x: "0", y: "0", "z-index": "0", fill: "black", stroke: "none", opacity: "1", "stroke-width": "1", display: "inline", visibility: "visible", transform: "none", "clip-path": "none" },
|
|
eC = Jj("width,height,font-size,font-family"),
|
|
Im = {
|
|
image: function (a, c) {
|
|
return a.createElement($s, "image", c);
|
|
},
|
|
clipRect: function (a, c) {
|
|
return a.createElement(HB, "clipPath", c);
|
|
},
|
|
clipPath: function (a, c) {
|
|
return a.createElement(zm, "clipPath", c);
|
|
},
|
|
mask: function (a, c) {
|
|
return a.createElement(IB, "mask", c);
|
|
},
|
|
},
|
|
et = function (a, c) {
|
|
var b = ba.createElement("div"),
|
|
d = function (b) {
|
|
return (
|
|
'<div style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;' +
|
|
(b || "") +
|
|
'"></div></div>'
|
|
);
|
|
};
|
|
b.style.cssText = "position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";
|
|
b.innerHTML = d() + d(" width: 200%; height: 200%");
|
|
a.appendChild(b);
|
|
var e,
|
|
f,
|
|
g,
|
|
h,
|
|
k = a.offsetWidth,
|
|
l = a.offsetHeight,
|
|
m = b.childNodes[0],
|
|
n = m.childNodes[0],
|
|
p = b.childNodes[1],
|
|
q = function () {
|
|
n.style.width = "100000px";
|
|
n.style.height = "100000px";
|
|
m.scrollLeft = 1e5;
|
|
m.scrollTop = 1e5;
|
|
p.scrollLeft = 1e5;
|
|
p.scrollTop = 1e5;
|
|
};
|
|
q();
|
|
var r = function () {
|
|
f = 0;
|
|
e && ((k = g), (l = h), c.call());
|
|
},
|
|
u = function () {
|
|
g = a.offsetWidth;
|
|
h = a.offsetHeight;
|
|
(e = g !== k || h !== l) && !f && (f = T.requestAnimationFrame(r));
|
|
q();
|
|
};
|
|
d = function (b) {
|
|
b.attachEvent ? b.attachEvent("onscroll", u) : b.addEventListener("scroll", u);
|
|
};
|
|
d(m);
|
|
d(p);
|
|
return b;
|
|
},
|
|
fC = (function (a) {
|
|
function c(b) {
|
|
var c = this;
|
|
b = b || {};
|
|
var e = b.container,
|
|
f = b.textRendering,
|
|
g = (c = a.call(this, e, b.width, b.height, b.defaultWidth, b.defaultHeight) || this);
|
|
ix(g);
|
|
g.disableAnimation = !1;
|
|
g.eventsStore = new $B();
|
|
g._noRender = b.noRender;
|
|
g._staticSize = b.staticSize;
|
|
g._skipDomDestroy = b.skipDomDestroy;
|
|
g._defaultOptions = { transition: { animation: { duration: 500, easing: "ease-in-out-circ" }, generator: "default" } };
|
|
g._measuringImages = {};
|
|
if (!g._noRender) {
|
|
g.initContainer(e);
|
|
e = g.root && g.root.el;
|
|
var h = g.getSvgSize(),
|
|
k = g.width || "100%",
|
|
l = g.height || "100%";
|
|
g.documentElement = new tb(ba.documentElement, g);
|
|
g.root = e ? g.root : g.svg({ width: h.width, height: h.height, textRendering: f });
|
|
g.overlay = g.htmlElement("", { id: Dd("overlay"), position: "absolute", left: 0, top: 0 });
|
|
g.wrapper = g.htmlElement("", { id: qp("JSCharting_") });
|
|
g.wrapper.attr({ width: k, height: l, "-webkit-tap-highlight-color": "rgba(0, 0, 0, 0)", position: "relative" });
|
|
g.container.el.appendChild(g.wrapper.el);
|
|
g.wrapper.el.appendChild(g.root.el);
|
|
g.wrapper.el.appendChild(g.overlay.el);
|
|
!b.staticSize &&
|
|
(g._resizeSensor = et(g.wrapper.el, function () {
|
|
return g.rootResize();
|
|
}));
|
|
}
|
|
return c;
|
|
}
|
|
K(c, a);
|
|
c.prototype.resubscribeResize = function () {
|
|
var b = this;
|
|
b._resizeSensor &&
|
|
(b._resizeSensor.parentNode.removeChild(b._resizeSensor),
|
|
(b._resizeSensor = et(b.wrapper.el, function () {
|
|
return b.rootResize();
|
|
})));
|
|
};
|
|
c.prototype.setCursor = function (b) {
|
|
this._setCursor !== b && this.processAttributes(this.wrapper, { cursor: b });
|
|
this._setCursor = b;
|
|
};
|
|
c.prototype.getCursor = function () {
|
|
return this._setCursor;
|
|
};
|
|
c.prototype.element = function (b, a, c) {
|
|
var d = this;
|
|
if (!Q(b)) {
|
|
if (b instanceof tb) return b;
|
|
if (J(Im, b)) return Im[b](this, a);
|
|
if (!O(b)) return this.element(b.tag, b.attr, c);
|
|
var e = a ? a.childNodes : null;
|
|
e && (a = Ga(a, ["childNodes"]));
|
|
var h = this.createElement(tb, b, a, c);
|
|
h &&
|
|
e &&
|
|
w(e, function (b) {
|
|
d.element(b).add(h);
|
|
});
|
|
return h;
|
|
}
|
|
};
|
|
c.prototype.isRootHidden = function () {
|
|
var b = this.root && this.root.el;
|
|
if (!b) return !0;
|
|
b = T.getComputedStyle(b);
|
|
return "hidden" === b.visibility || "none" === b.display;
|
|
};
|
|
c.prototype.isRootDestroyed = function () {
|
|
var b = this.root;
|
|
return b ? b.isDestroyed : !0;
|
|
};
|
|
c.prototype.add = function (b, a) {
|
|
var c = b.el instanceof HTMLElement,
|
|
d = a && a.el && a.el instanceof HTMLElement;
|
|
if (a && a.addElementToParent && !c) return a.addElementToParent(b), b;
|
|
a = c ? (d ? a : this.overlay) : a || this.root;
|
|
if (b.data.zIndex || a.data.ordered) return (c = b.data.zIndex || 0), (a.data.ordered = !0), Oq(a, b, c), b;
|
|
Kq(a, b);
|
|
return b;
|
|
};
|
|
c.prototype.addBefore = function (b, a) {
|
|
zg(b, a);
|
|
return b;
|
|
};
|
|
c.prototype.addAfter = function (b, a) {
|
|
Lq(b, a);
|
|
return b;
|
|
};
|
|
c.prototype.attr = function (b, a, c) {
|
|
var d;
|
|
if (Q(a)) return Rq(b), b;
|
|
if (!a) return b;
|
|
var e = O(a),
|
|
h = t(c),
|
|
k = e && !h,
|
|
l = a;
|
|
e && h && (l = ((d = {}), (d[a] = c), d));
|
|
if (!b) return this.rootAttr(l, k);
|
|
if (l.transition) return b.transition(l.transition), b;
|
|
a = this.processAttributes(b, Fm(l, b));
|
|
return k ? a : b;
|
|
};
|
|
c.prototype.rect = function (b, a, c, f, g, h) {
|
|
if (Q(b)) return this.element("rect");
|
|
b = Pa(b) ? b : { x: b, y: a, width: c, height: f, rx: g, ry: h };
|
|
return this.element("rect", b);
|
|
};
|
|
c.prototype.circle = function (b, a, c) {
|
|
if (Q(b)) return this.element("circle");
|
|
b = Pa(b) ? b : { cx: b, cy: a, r: c };
|
|
return this.element("circle", b);
|
|
};
|
|
c.prototype.image = function (b, a, c, f, g) {
|
|
if (Q(b)) return this.element("image");
|
|
b = Pa(b) ? b : { src: b, x: a, y: c, width: f, height: g };
|
|
return this.createElement($s, "image", b);
|
|
};
|
|
c.prototype.query = function (b, a) {
|
|
return a ? this.wrap(gi(b, a.el)) : this.wrap(gi(b));
|
|
};
|
|
c.prototype.queryAll = function (b) {
|
|
var a = this;
|
|
b = ba.querySelectorAll(b);
|
|
return B(b, function (b) {
|
|
return a.wrap(b);
|
|
});
|
|
};
|
|
c.prototype.svg = function (b) {
|
|
b = this.createElement(tb, "svg", b);
|
|
b.el.setAttribute("xmlns", "http://www.w3.org/2000/svg");
|
|
b.el.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
|
|
this.element("desc", { text: "Created with JSCharting" }).add(b);
|
|
return b;
|
|
};
|
|
c.prototype.reCreateElement = function (b, a) {
|
|
var c = b.parentNode,
|
|
d = bj(a);
|
|
b.destroy();
|
|
b.init(d, a);
|
|
b.isPatched = !0;
|
|
c && b.add(c);
|
|
return b;
|
|
};
|
|
c.prototype.destroy = function (b, a) {
|
|
var c = this;
|
|
a = a || c._skipDomDestroy;
|
|
if (b) {
|
|
var d = Zh(c);
|
|
nl(c, b, function (b) {
|
|
return d && ql(c, b);
|
|
});
|
|
var g = b.data.events;
|
|
g &&
|
|
g.length &&
|
|
w(g.slice(0), function (a) {
|
|
return c.un(b, a.type, a.fn);
|
|
});
|
|
!a && Yx(b);
|
|
b.isDestroyed = !0;
|
|
return b;
|
|
}
|
|
d && d.destroy();
|
|
Zh(c, null);
|
|
T.removeEventListener("resize", void 0, !1);
|
|
Iw(c.container.attr("id")) && c.destroy(c.container);
|
|
c.destroy(c.wrapper);
|
|
c.destroy(c.overlay);
|
|
c.destroy(c.documentElement, !0);
|
|
return c.destroy(c.root);
|
|
};
|
|
c.prototype.on = function (b, a, c) {
|
|
var d = function (a) {
|
|
return c.call(b, a);
|
|
};
|
|
this.eventsStore.addEvent(b.el, a, d) || b.el.addEventListener(a, d, !1);
|
|
(b.data.events = b.data.events || []).push({ type: a, fn: c, f: d });
|
|
return b;
|
|
};
|
|
c.prototype.un = function (b, a, c) {
|
|
if (!b.data.events) return b;
|
|
for (var d = (b.data.events = b.data.events || []), e = d.length - 1; -1 < e; e--) {
|
|
var h = d[e];
|
|
(h.type !== a && a) || (h.fn !== c && c) || (this.eventsStore.removeEvent(b.el, h.type, h.f) || b.el.removeEventListener(h.type, h.f, !1), d.splice(e, 1));
|
|
}
|
|
return b;
|
|
};
|
|
c.prototype.box = function (b, a) {
|
|
var c = this,
|
|
d;
|
|
if (b && (d = b.el)) {
|
|
var g = T.getComputedStyle(d);
|
|
d = g.width;
|
|
g = g.height;
|
|
if (0 < d.indexOf("px") && 0 < g.indexOf("px") && ((d = parseInt(d)), (g = parseInt(g)), 0 <= d && 0 <= g)) return { x: 0, y: 0, width: d, height: g };
|
|
}
|
|
a = ay(b || this.root, a);
|
|
d = t(this.width) && nb(this.width);
|
|
g = t(this.height) && nb(this.height);
|
|
var h = function (b) {
|
|
var a;
|
|
return !(null === (a = c.root) || void 0 === a ? 0 : a.attr) || "100%" !== c.root.attr(b);
|
|
},
|
|
k = !a.width && !d,
|
|
l = !a.height && !g,
|
|
m = k && h("width");
|
|
h = l && h("height");
|
|
b || (!m && !h) || this._staticSize
|
|
? (b || (!k && !l) || ((k = this.container.getBbox()), (a.width = a.width || k.width), (a.height = a.height || k.height)), (this._defaultSizeIsSet = !1))
|
|
: ((a.width = a.width || this.defaultWidth), (a.height = a.height || this.defaultHeight), (k = this.wrapper) && Ma.emit("warning", k.attr("id"), "defaultSizeIsSet", { container: k.el }), (this._defaultSizeIsSet = !0));
|
|
b || (d && (a.width = this.width), g && (a.height = this.height));
|
|
return a;
|
|
};
|
|
c.prototype.isDefaultSizeSet = function () {
|
|
return this._defaultSizeIsSet;
|
|
};
|
|
c.prototype.pathInner = function (b, a) {
|
|
if (Q(a)) return this.createElement(b, "path");
|
|
var c = ja(a);
|
|
a = O(a) || c ? { d: c ? pc(a, " ") : a } : a;
|
|
ja(a.d) && (a.d = pc(a.d, " "));
|
|
a.d && a.d.path && (a.d = a.d.path);
|
|
return this.createElement(b, "path", a);
|
|
};
|
|
c.prototype.rootResize = function () {
|
|
if (!this.width || !this.height) {
|
|
var b = this.root.attr("display"),
|
|
a = this.getSvgSize();
|
|
this.root.attr({ width: a.width, height: a.height, display: b });
|
|
}
|
|
ym && ym.trigger();
|
|
};
|
|
c.prototype.getSvgSize = function () {
|
|
var b = this.container.getBbox();
|
|
return { width: this.width || (b.width ? "100%" : this.defaultWidth), height: this.height || (b.height ? "100%" : this.defaultHeight) };
|
|
};
|
|
c.prototype.wrap = function (b) {
|
|
return Ag(b, this);
|
|
};
|
|
c.prototype.createElement = function (b, a, c, f) {
|
|
f = bj(a, null, f);
|
|
b = new b(f, this, a);
|
|
"path" === b.nodeName && ((c = c || {}), c.fill || (c.fill = "none"), c.stroke || (c.stroke = "none"));
|
|
c && b.attr(c);
|
|
b.isPatched = !0;
|
|
return b;
|
|
};
|
|
c.prototype.processAttributes = function (b, a) {
|
|
var c = this;
|
|
if (a && (a.beforeAttr && (a.beforeAttr(a), delete a.beforeAttr), a.reset && (Rq(b, a), delete a.reset), b.el)) {
|
|
if (O(a)) return Nq(b, a);
|
|
var d = this.isAnimationDisabled();
|
|
if (d || !b.isPatched || (!a.autoTransition && !a.animation) || !b.tryAutoTransition(a)) {
|
|
J(a, "animation") && (a.animation = void 0);
|
|
if (a.continueAnimation) {
|
|
if (((a.continueAnimation = void 0), b._transition && b._transition.attachToEnd(a))) return;
|
|
} else b.finishAnimation(d ? null : a);
|
|
return $x(b, a, function (b, a, d) {
|
|
dq(c, b, a, d, function (b) {
|
|
return ql(c, b);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
};
|
|
c.prototype.isAnimationDisabled = function (b) {
|
|
return this.disableAnimation || !1 === this._defaultOptions.transition.animation || (b && !1 === b.animation);
|
|
};
|
|
c.prototype.showHide = function (b, a) {
|
|
var c = b.attr("display");
|
|
a !== ("none" !== c) && b.attr("display", a ? null : "none");
|
|
return b;
|
|
};
|
|
c.prototype.show = function (b) {
|
|
return this.showHide(b, !0);
|
|
};
|
|
c.prototype.hide = function (b) {
|
|
return this.showHide(b, !1);
|
|
};
|
|
c.prototype.visible = function (b, a) {
|
|
return this.showHide(b, t(a) ? a : "none" === b.attr("display"));
|
|
};
|
|
c.prototype.calculateImageSize = function (b, a) {
|
|
Mg(b, ".svg") ? this.calculateSvgImageSize(b, a) : this.calculateRasterImageSize(b, a);
|
|
};
|
|
c.prototype.load = function (b, a) {
|
|
var c = this;
|
|
Dv(b, function (b) {
|
|
var d = b.data,
|
|
e = bj("div", null, "html");
|
|
b = !0;
|
|
/^\s*<\s*svg(?:\s|>)/m.test(d) || ((d = '<svg xmlns="http://www.w3.org/2000/svg">' + d + "</svg>"), (b = !1));
|
|
e.innerHTML = d;
|
|
if ((d = e.getElementsByTagName("svg")[0]))
|
|
if (b) b = Ag(d, c);
|
|
else {
|
|
for (b = ba.createDocumentFragment(); d.firstChild; ) b.appendChild(d.firstChild);
|
|
b = Ag(b, c);
|
|
}
|
|
else b = null;
|
|
return a(b);
|
|
});
|
|
};
|
|
c.prototype.htmlElement = function (b, a) {
|
|
b = b || "";
|
|
var c = bj("div", null, "html");
|
|
c.innerHTML = b;
|
|
b = Ag(c, this, "div");
|
|
a && b.attr(a);
|
|
return b;
|
|
};
|
|
c.prototype.relativeToRoot = function (b, a) {
|
|
var c = this.getRootBoundingClientRect();
|
|
return { x: b - c.left, y: a - c.top };
|
|
};
|
|
c.prototype.getClientXY = function (b) {
|
|
var a = this.getRootBoundingClientRect(),
|
|
c = b.getBbox(),
|
|
f = 0,
|
|
g = 0;
|
|
do {
|
|
var h = (h = b.attr("transform").translate) ? [h[0], h[1]] : [0, 0];
|
|
f += h[0];
|
|
g += h[1];
|
|
b = b.parentNode;
|
|
} while (b && "svg" !== b.el.tagName);
|
|
return { x: c.x + a.left + f, y: c.y + a.top + g };
|
|
};
|
|
c.prototype.isAnimating = function () {
|
|
return 0 < Ce.getAnimations().length;
|
|
};
|
|
c.prototype.getOffsetsFromVisualViewport = function (b) {
|
|
var a = ba.documentElement.getBoundingClientRect();
|
|
b = b.parentNode ? b.getBoundingClientRect() : { top: 0, left: 0 };
|
|
return { top: b.top - a.top - window.pageYOffset, left: b.left - a.left - window.pageXOffset };
|
|
};
|
|
c.prototype.getRootBoundingClientRect = function () {
|
|
var b = this;
|
|
if (b._rootBoundingClientRect) return b._rootBoundingClientRect;
|
|
b._rootBoundingClientRect = b.getOffsetsFromVisualViewport(b.root.el);
|
|
T.setTimeout(function () {
|
|
b._rootBoundingClientRect = null;
|
|
}, 1e3);
|
|
return b._rootBoundingClientRect;
|
|
};
|
|
c.prototype.cssText = function (b, a) {
|
|
var c = ba,
|
|
d = c.head || c.getElementsByTagName("head")[0],
|
|
g = c.createElement("style");
|
|
a && g.setAttribute("id", a);
|
|
g.type = "text/css";
|
|
g.styleSheet ? (g.styleSheet.cssText = b) : g.appendChild(c.createTextNode(b));
|
|
d.appendChild(g);
|
|
};
|
|
c.prototype.calculateRasterImageSize = function (b, a) {
|
|
var c = function (b) {
|
|
return b.addEventListener("load", function () {
|
|
return a(b.width, b.height);
|
|
});
|
|
};
|
|
if (this._measuringImages[b]) (d = this._measuringImages[b]), d.width ? a(d.width, d.height) : c(d);
|
|
else {
|
|
this._measuringImages[b] = new Image();
|
|
var d = this._measuringImages[b];
|
|
c(d);
|
|
d.src = b;
|
|
}
|
|
};
|
|
c.prototype.calculateSvgImageSize = function (b, a) {
|
|
this.load(b, function (b) {
|
|
return a(b.attr("width") || 0, b.attr("height") || 0);
|
|
});
|
|
};
|
|
c.prototype.rootAttr = function (b, a) {
|
|
var c = this.wrapper,
|
|
d = this.root;
|
|
if (a) return "disableAnimation" === b ? this.disableAnimation : this.processAttributes(d, b);
|
|
b.transition && (L(this._defaultOptions.transition, b.transition), delete b.transition);
|
|
J(b, "disableAnimation") && ((this.disableAnimation = b.disableAnimation), delete b.disableAnimation);
|
|
b.container && (this.replaceContainer(b.container), delete b.container);
|
|
ub(b) || ((a = Fm(b, d)), (b = Oa(a, eC)), (a = Oa(a)), b && this.processAttributes(c, b), a && this.processAttributes(d, a));
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
return this._defaultOptions;
|
|
};
|
|
c.prototype.replaceContainer = function (b) {
|
|
this.initContainer(b);
|
|
this.container.el.appendChild(this.wrapper.el);
|
|
this.wrapper.el.appendChild(this.root.el);
|
|
this.wrapper.el.appendChild(this.overlay.el);
|
|
};
|
|
c.prototype.initContainer = function (b) {
|
|
if (b && (O(b) || b.tagName))
|
|
if (((b = b.tagName ? b : gi(b)), "svg" === b.tagName.toLowerCase())) {
|
|
this.root = this.wrap(b);
|
|
var a = b.getElementsByTagName("desc")[0];
|
|
b = b.getElementsByTagName("defs")[0];
|
|
a || this.element("desc", { text: "Created with JSCharting" }).add(this.root);
|
|
b && new tb(b, this).add(this.root);
|
|
} else if ("div" === b.tagName.toLowerCase()) {
|
|
for (; b.lastChild; ) b.removeChild(b.lastChild);
|
|
this.container = this.wrap(b);
|
|
}
|
|
this.container || ((this.container = this.htmlElement("", { id: Dd("container") })), gi("body").appendChild(this.container.el));
|
|
};
|
|
return c;
|
|
})(EB),
|
|
ft = new ((function () {
|
|
function a() {}
|
|
a.prototype.create = function (a) {
|
|
return new fC(a);
|
|
};
|
|
return a;
|
|
})())(),
|
|
gt = (function () {
|
|
function a() {}
|
|
a.prototype.generate = function (a, b, d) {
|
|
var c = {},
|
|
f;
|
|
Da(a, function (b) {
|
|
t(a[b]) && ("z-index" === b ? ((f = f || {}), (f[b] = a[b])) : J(Em, b) && (c[b] = a[b]));
|
|
});
|
|
a.animation && (c.animation = a.animation);
|
|
b = { middle: { from: b, to: c }, end: a };
|
|
f && (b.start = f);
|
|
return b;
|
|
};
|
|
return a;
|
|
})(),
|
|
gC = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.generate = function (b, c, e) {
|
|
e = a.prototype.generate.call(this, b, c, e);
|
|
var d = A({}, c, b),
|
|
g = !c.d || Mg(c.d, "Z");
|
|
b = !b.d || Mg(b.d, "Z");
|
|
e.middle.to.fill && !c.fill && (e.middle.from.fill = "none");
|
|
if (g && b) return e;
|
|
e.middle.from.fill = g ? c.fill || "none" : "none";
|
|
if (e.middle.to.fill || d.fill) e.middle.to.fill = b ? d.fill || "none" : "none";
|
|
return e;
|
|
};
|
|
return c;
|
|
})(gt),
|
|
hC = { default: new gt().generate, path: new gC().generate },
|
|
iC = (function () {
|
|
function a(a) {
|
|
this._el = a;
|
|
this.scope = this._el.data.id;
|
|
this._renderer = this._el.renderer;
|
|
}
|
|
a.prototype.attr = function (a) {
|
|
var b = this._el;
|
|
return b.isComposite ? b.attr(a) : this._renderer.attr(b, a);
|
|
};
|
|
a.prototype.attrEnd = function (a) {
|
|
var b = this._el;
|
|
Da(a, function (b) {
|
|
var c = a[b];
|
|
c && !c.el && !c.isDef && c.val && (a[b] = c.val);
|
|
});
|
|
b.isComposite ? b.attr(a) : this._renderer.attr(b, a);
|
|
};
|
|
a.prototype.normalize = function (a) {
|
|
return this._el.normalizeAttrs(a);
|
|
};
|
|
a.prototype.parse = function (a, b) {
|
|
return "u" === b[0] ? this.parseUrl(b) : "%" === b[b.length - 1] ? this.parseDemesion(a, b) : b;
|
|
};
|
|
a.prototype.parseUrl = function (a) {
|
|
var b = /url\(#(.*)\)/g.exec(a);
|
|
if (!b) return a;
|
|
var c = this._renderer;
|
|
b = b[1];
|
|
var e = ol(c, b);
|
|
e ? (b = e) : (c = c.query("#" + b)) ? ((e = c.nodeName.toLowerCase()), (e = Am[e]) && e(c, b), (b = c)) : (b = void 0);
|
|
return b && b.val ? b.val : a;
|
|
};
|
|
a.prototype.parseDemesion = function (a, b) {
|
|
var c = parseFloat(b),
|
|
e = !!this._el.parentNode,
|
|
f = e ? this._el.parentNode.box() : this._el.box();
|
|
return J(f, a) ? (e ? (c * f[a]) / 100 : f[a]) : b;
|
|
};
|
|
return a;
|
|
})(),
|
|
ht = (function () {
|
|
function a(a, b) {
|
|
this._animation = {};
|
|
this._defaults = {};
|
|
this._activeAnimatingAttrs = this._animatingAttrs = null;
|
|
this._skipEnd = !1;
|
|
this._processors = {};
|
|
this._updater = a;
|
|
this.scope = this._updater.scope;
|
|
b && this.options(b);
|
|
}
|
|
a.prototype.options = function (a) {
|
|
if (a) {
|
|
a.animation && L(this._animation, Og[1].resolve(a.animation));
|
|
a.defaults && L(this._defaults, this.normalize(a.defaults));
|
|
a.processors && this.registerProcessors(a.processors);
|
|
a.generator && (this._generator = hC[a.generator]);
|
|
var b = a.start,
|
|
c = a.middle;
|
|
a = a.end;
|
|
(!c && !a) ||
|
|
this.checkForSameAnimation(c) ||
|
|
((this._skipEnd = !0),
|
|
this.finishAnimation(),
|
|
(this._skipEnd = !1),
|
|
b && ((b = this.normalize(b)), this._animatingAttrs && (b = Ga(b, pa(this._animatingAttrs))), this.attr(b)),
|
|
a && ((this._endAttrs = this._endAttrs || {}), L(this._endAttrs, Ga(a, ["animation", "autoTransition", "attrTransition"]))),
|
|
(b = this._appliedAnimation = c.to && c.to.animation ? W(this._animation, Og[1].resolve(c.to.animation)) : L({}, this._animation)),
|
|
c && c.to ? (this.applyAnimation(c.from, c.to, b), this.waitFinish(b)) : this.applyEnd(b));
|
|
}
|
|
};
|
|
a.prototype.getAnimationOptions = function () {
|
|
return this._animation;
|
|
};
|
|
a.prototype.getAnimations = function () {
|
|
return Ce.getAnimations(this.scope);
|
|
};
|
|
a.prototype.finishAnimation = function (a, b) {
|
|
void 0 === a && (a = !1);
|
|
var c = this.getAnimations() || [];
|
|
if (c.length) {
|
|
if (b) {
|
|
var e = this._activeAnimatingAttrs;
|
|
if (e) {
|
|
var f = !0,
|
|
g;
|
|
for (g in b)
|
|
if (J(e, g) && e[g] !== b[g]) {
|
|
f = !1;
|
|
break;
|
|
}
|
|
if (f) return;
|
|
}
|
|
}
|
|
w(c, function (b) {
|
|
return b.finishAnimation(a);
|
|
});
|
|
}
|
|
};
|
|
a.prototype.tryAutoTransition = function (a, b, d) {
|
|
if (this._generator && !1 !== a.animation && (!a.animation || 0 !== a.animation.duration)) return this.options(this._generator(a, b(), d)), this;
|
|
};
|
|
a.prototype.attachToEnd = function (a) {
|
|
if (!(this.getAnimations() || []).length || !a) return !1;
|
|
var b = (this._endAttrs = this._endAttrs || {});
|
|
L(b, a);
|
|
return !0;
|
|
};
|
|
a.prototype.checkForSameAnimation = function (a) {
|
|
if (!(a && a.to && a.to.animation && this._animatingAttrs)) return !1;
|
|
for (var b in a.to) if ("animation" !== b && a.to[b] !== this._animatingAttrs[b]) return !1;
|
|
return !0;
|
|
};
|
|
a.prototype.applyEnd = function (a) {
|
|
var b = this;
|
|
if (!b._skipEnd && ((b._animatingAttrs = null), (b._activeAnimatingAttrs = null), b._endAttrs && !ub(b._endAttrs))) {
|
|
if (a.beforeAttr || b._beforeAttr)
|
|
b._endAttrs.beforeAttr = function (c) {
|
|
return b.checkForBeforeAttr(c, a, null);
|
|
};
|
|
b.attrApllying = !0;
|
|
b._updater.attrEnd(b._endAttrs);
|
|
b.attrApllying = !1;
|
|
b._endAttrs = null;
|
|
}
|
|
};
|
|
a.prototype.applyAnimation = function (a, b, d) {
|
|
var c = this;
|
|
a = this.normalize(a);
|
|
b = this.normalize(b);
|
|
var f = this,
|
|
g = {},
|
|
h = {},
|
|
k = {},
|
|
l = this._animatingAttrs,
|
|
m = null !== l,
|
|
n = this._defaults,
|
|
p = [],
|
|
q = {},
|
|
r = {},
|
|
u = !0;
|
|
m && (b = L(l, b));
|
|
(function (b) {
|
|
Da(b, function (e) {
|
|
var v = b[e];
|
|
if (J(Em, e)) {
|
|
var x = m && J(l, e) ? c.attr(e) : a && J(a, e) ? a[e] : J(n, e) ? n[e] : c.attr(e),
|
|
E = Em[e];
|
|
E[2] && O(x) && (x = c._updater.parse(e, x));
|
|
v && v.isElement && !J(v, "val")
|
|
? (q[e] = t(v[e]) ? v[e] : v)
|
|
: ((x = E[0](x)),
|
|
(v = E[2] && O(v) ? f._updater.parse(e, v) : v),
|
|
(v = E[0](v)),
|
|
(k[e] = v),
|
|
c._endAttrs && J(c._endAttrs, e) && v === c._endAttrs[e] && delete c._endAttrs[e],
|
|
x == v || (v && v.isEqual && v.isEqual(x)) || ((r[e] = v), (u = !1), E[1] ? p.push({ key: e, animator: E[1](x, v, d) }) : ((g[e] = x), (h[e] = v))));
|
|
} else q[e] = v;
|
|
});
|
|
})(b);
|
|
this._animatingAttrs = this._curAttrs = this._prevAttrs = k;
|
|
this._activeAnimatingAttrs = r;
|
|
this._offset = 0;
|
|
b = L(
|
|
{
|
|
onFrame: function (b, a) {
|
|
c._offset = b = null === b ? 1 : b;
|
|
p.length &&
|
|
w(p, function (c) {
|
|
a[c.key] = c.animator(b);
|
|
});
|
|
c._prevAttrs = c._curAttrs;
|
|
c._curAttrs = a;
|
|
c.checkForBeforeAttr(a, d, b);
|
|
c.attr(a);
|
|
},
|
|
scope: this.scope,
|
|
},
|
|
d
|
|
);
|
|
ub(q) || this.attr(q);
|
|
u || Ce.animate([g, h], b);
|
|
};
|
|
a.prototype.waitFinish = function (a) {
|
|
var b = this,
|
|
c = this.getAnimations(),
|
|
e = a.onFinish,
|
|
f = a.final,
|
|
g = function () {
|
|
b.applyEnd(a);
|
|
e && e();
|
|
f && f();
|
|
},
|
|
h = function () {
|
|
S(c, function (b) {
|
|
return "finished" !== b.playState();
|
|
}) || g();
|
|
};
|
|
c && 0 < c.length
|
|
? (w(c, function (b) {
|
|
b.onFinish = function () {
|
|
h();
|
|
};
|
|
}),
|
|
h())
|
|
: g();
|
|
};
|
|
a.prototype.normalize = function (a) {
|
|
if (!a) return null;
|
|
a = Ga(a, ["animation", "autoTransition", "attrTransition"]);
|
|
return this._updater.normalize(a);
|
|
};
|
|
a.prototype.attr = function (a) {
|
|
this.attrApllying = !0;
|
|
a = this._updater.attr(a);
|
|
this.attrApllying = !1;
|
|
return a;
|
|
};
|
|
a.prototype.registerProcessors = function (a) {
|
|
var b = this;
|
|
ja(a)
|
|
? w(a, function (a) {
|
|
return b.registerProcessor(a);
|
|
})
|
|
: this.registerProcessor(a);
|
|
};
|
|
a.prototype.registerProcessor = function (a) {
|
|
a.name && (a.beforeAttr && ((this._beforeAttr = this._beforeAttr || []), this._beforeAttr.push(a.beforeAttr)), (this._processors[a.name] = a));
|
|
};
|
|
a.prototype.checkForBeforeAttr = function (a, b, d) {
|
|
var c = this;
|
|
b.beforeAttr
|
|
? b.beforeAttr(a, this._prevAttrs, d)
|
|
: this._beforeAttr &&
|
|
w(this._beforeAttr, function (b) {
|
|
return b(a, c._prevAttrs, d);
|
|
});
|
|
};
|
|
return a;
|
|
})(),
|
|
jC = (function () {
|
|
function a() {}
|
|
a.prototype.create = function (a, b) {
|
|
return new ht(new iC(a), b);
|
|
};
|
|
return a;
|
|
})();
|
|
Og[0] = new jC();
|
|
var Jm = fa("transform clipPath clip-path opacity display zIndex".split(" ")),
|
|
it = W(Jm, fa(["animation", "fill", "stroke"])),
|
|
kC = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.attr = function (b, a) {
|
|
return (this.attrApplier = this.attrApplier || new (this.applierType())(this)).attr(b, a);
|
|
};
|
|
return c;
|
|
})(tb),
|
|
jt = (function () {
|
|
function a(a) {
|
|
this._attrsToApply = {};
|
|
this._firstAttrApplied = !1;
|
|
this._childElements = [];
|
|
this.renderer = a.renderer;
|
|
this.virtualElement = a;
|
|
this.virtualElement.isComposite = !0;
|
|
}
|
|
a.prototype.attr = function (a, b) {
|
|
if (!a || !Pa(a)) {
|
|
var c = this.virtualElement.data.vals;
|
|
return J(c, a) ? c[a] : this.renderer.attr(this.virtualElement, a, b);
|
|
}
|
|
this._firstAttrApplied && a.animation && a.animation.duration && this.virtualElement.isPatched && !this.renderer.disableAnimation
|
|
? ((this._attrsToApply = a), this.renderer.attr(this.virtualElement, this.startAnimationAttrs(a)))
|
|
: ((this._firstAttrApplied = !0), L(this._attrsToApply, a), this.applyAttrs());
|
|
return this.virtualElement;
|
|
};
|
|
a.prototype.startAnimationAttrs = function (a) {
|
|
return Na({}, a, this.animAttrs());
|
|
};
|
|
a.prototype.animAttrs = function () {
|
|
return it;
|
|
};
|
|
a.prototype.groupAttrs = function () {
|
|
return Jm;
|
|
};
|
|
a.prototype.applyAttrs = function () {
|
|
var a = this.attrsToApply(),
|
|
b = Hb(a, Jm);
|
|
L(this.virtualElement.data.vals, b);
|
|
this.constructChildren(a, b);
|
|
this.renderer.attr(this.virtualElement, Na({}, a, this.groupAttrs()));
|
|
};
|
|
a.prototype.attrsToApply = function () {
|
|
return be(this.virtualElement.data.vals, this._attrsToApply, { animation: void 0 });
|
|
};
|
|
a.prototype.addElement = function (a) {
|
|
var b = "circle" === a.elType ? this.renderer.circle(a).add(this.virtualElement) : this.renderer.path(a).add(this.virtualElement);
|
|
b.data.key = a.key;
|
|
return b;
|
|
};
|
|
a.prototype.removeElement = function (a) {
|
|
this.virtualElement.el.removeChild(a.el);
|
|
};
|
|
a.prototype.bindConfig = function (a) {
|
|
var b = this;
|
|
Ub(
|
|
a,
|
|
b._childElements,
|
|
function (a) {
|
|
return b.addElement(a);
|
|
},
|
|
function (b, a) {
|
|
return a.attr(b);
|
|
},
|
|
function (a) {
|
|
return b.removeElement(a);
|
|
},
|
|
function (b) {
|
|
return b.key;
|
|
},
|
|
function (b) {
|
|
return b.data.key;
|
|
}
|
|
);
|
|
};
|
|
return a;
|
|
})(),
|
|
lC = W(it, fa(["d"])),
|
|
mC = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.animAttrs = function () {
|
|
return lC;
|
|
};
|
|
c.prototype.constructChildren = function (b, a) {
|
|
var c = [];
|
|
if (b.d) {
|
|
var d = function (b) {
|
|
b.omit = ["key", "caps"];
|
|
c.push(b);
|
|
},
|
|
g = function (b, a, c, e) {
|
|
b = {
|
|
key: b,
|
|
d: a,
|
|
stroke: z(c.stroke, "none"),
|
|
fill: z(c.fill, e.stroke, "rgba(0,0,0,.5)"),
|
|
opacity: z(c.opacity, c["stroke-opacity"], e.opacity, e["stroke-opacity"], 1),
|
|
zIndex: z(c["z-index"], e["z-index"]),
|
|
display: z(c.display, e.display),
|
|
};
|
|
d(b);
|
|
},
|
|
h = function (b, c, e) {
|
|
var f = cy(c, e),
|
|
h = f ? ey(e, f) : {};
|
|
c = W(a, { d: f ? f.d : c, caps: void 0 });
|
|
c.key = "l-" + b;
|
|
d(c);
|
|
h.start && g("c-start-" + b, h.start, e.start, a);
|
|
h.end && g("c-end-" + b, h.end, e.end, a);
|
|
},
|
|
k = (this._caps = by(b));
|
|
b = this._originalPath = b.d && b.d.isPath ? b.d : Aa(b.d);
|
|
if (k.eachShape) {
|
|
b = Ww(b);
|
|
for (var l = 0; l < b.length; l++) h(l, b[l], k);
|
|
} else h(0, b, k);
|
|
this.bindConfig(c);
|
|
}
|
|
};
|
|
c.prototype.startAnimationAttrs = function (b) {
|
|
var a = Na({}, b, this.animAttrs());
|
|
a.d && (a.d = a.d && a.d.isPath ? a.d : Aa(a.d));
|
|
this._skipCapsDuringAnimation = this._originalPath && this._originalPath.hasCurves && !Sq(this._caps) && Sq(b.caps);
|
|
return a;
|
|
};
|
|
c.prototype.attrsToApply = function () {
|
|
this._attrsToApply.caps || (this._attrsToApply.caps = {});
|
|
var b = a.prototype.attrsToApply.call(this);
|
|
this._skipCapsDuringAnimation && this.virtualElement.isAnimating() && (b.caps = {});
|
|
return b;
|
|
};
|
|
return c;
|
|
})(jt),
|
|
Tq = fa(["start", "end"]);
|
|
(function (a, c) {
|
|
(Zi[a] = Zi[a] || []).push(c);
|
|
})("path", function (a, c) {
|
|
if (!c || !c.caps) return !1;
|
|
c = a.data.vals;
|
|
a.renderer.reCreateElement(a, "g");
|
|
a.morphType = "lineShape";
|
|
var b = new mC(a);
|
|
b.attr(c);
|
|
a.attrApplier = b.attr.bind(b);
|
|
});
|
|
var De;
|
|
(function (a) {
|
|
a[(a.x = 0)] = "x";
|
|
a[(a.y = 1)] = "y";
|
|
a[(a.xy = 2)] = "xy";
|
|
})(De || (De = {}));
|
|
var kt;
|
|
(function (a) {
|
|
a[(a.Width = 0)] = "Width";
|
|
a[(a.Height = 1)] = "Height";
|
|
a[(a.Whitespace = 2)] = "Whitespace";
|
|
a[(a.None = 3)] = "None";
|
|
})(kt || (kt = {}));
|
|
var Ya = function (a) {
|
|
return a && "*" === a.valueType;
|
|
},
|
|
tc = function (a) {
|
|
return a && !a.isMutable && "px" === a.valueType;
|
|
},
|
|
ib = function (a) {
|
|
return a && "%" === a.valueType;
|
|
},
|
|
Ee = function (a) {
|
|
return a && "px" === a.valueType;
|
|
},
|
|
Cb = function (a) {
|
|
return a && !a.isMutable;
|
|
},
|
|
ic = function (a) {
|
|
return a ? a.px : 0;
|
|
},
|
|
nC = /[0123456789]+|.+/g,
|
|
Qa = function (a, c) {
|
|
var b = typeof a;
|
|
if ("object" === b && a.valueType) return L({}, a);
|
|
if (0 === a && !c) return ld();
|
|
var d = 0,
|
|
e = 0,
|
|
f = -Infinity,
|
|
g = !1,
|
|
h = 0,
|
|
k = 0,
|
|
l = !0;
|
|
c && ((f = z(c.minPx, -Infinity)), (g = z(c.stretch, !1)), (l = z(c.isMutable, !0)));
|
|
var m = g ? "*" : "px";
|
|
if ("number" === b) (e = a || 0), (d = g ? 1 : a);
|
|
else if ("string" === b && a.length)
|
|
switch ((c && ((h = z(c.allSpace, 0)), (k = z(c.freeSpace, 0))), (a = a.match(nC)), (d = parseFloat(a[0])), (d = (c = Ha(d)) || g ? 1 : d), (m = (c ? a[0] : a[1]) || m), (k = g ? e : k), m)) {
|
|
case "*":
|
|
e = (k || 0) * (d || 1);
|
|
break;
|
|
case "%":
|
|
e = ((h || 0) * d) / 100;
|
|
break;
|
|
case "px":
|
|
e = d;
|
|
}
|
|
e = Pj(oa([e, f]), 6);
|
|
return { val: d, px: e, valueType: m, isMutable: l };
|
|
},
|
|
ld = function () {
|
|
return { val: 0, px: 0, valueType: "px", isMutable: !0, minPx: 0 };
|
|
},
|
|
rf = function (a, c) {
|
|
var b, d;
|
|
c = c || 0;
|
|
var e = { val: 0, px: 0, valueType: "px" };
|
|
if ("number" === typeof a) c = b = d = e = { val: a, px: a, valueType: "px" };
|
|
else if (a.length) {
|
|
e = "string" === typeof a ? a.split(/ +/g) : "object" === typeof a ? a : [0];
|
|
var f = { allSpace: c };
|
|
c = Qa(e[0], f);
|
|
b = t(e[1]) ? Qa(e[1], f) : c;
|
|
d = t(e[2]) ? Qa(e[2], f) : c;
|
|
e = t(e[3]) ? Qa(e[3], f) : b;
|
|
} else "object" === typeof a ? ((f = { allSpace: c }), (c = a.top ? Qa(a.top, f) : e), (b = a.right ? Qa(a.right, f) : e), (d = a.bottom ? Qa(a.bottom, f) : e), (e = a.left ? Qa(a.left, f) : e)) : (c = b = d = e);
|
|
var g = 0,
|
|
h = 0,
|
|
k = 0;
|
|
f = 0 + ((Ee(e) ? e.val : 0) + (Ee(b) ? b.val : 0));
|
|
g += (Ee(c) ? c.val : 0) + (Ee(d) ? d.val : 0);
|
|
h += (ib(e) ? e.val : 0) + (ib(b) ? b.val : 0);
|
|
k += (ib(c) ? c.val : 0) + (ib(d) ? d.val : 0);
|
|
return { initial: a, top: c, right: b, bottom: d, left: e, horizontal: { absolute: f, relative: h, px: e.px + b.px }, vertical: { absolute: g, relative: k, px: c.px + d.px } };
|
|
},
|
|
lt = function (a, c, b) {
|
|
if (b) {
|
|
var d = b.padding,
|
|
e = b.offset,
|
|
f = d ? d.horizontal.relative : 0;
|
|
d = d ? d.horizontal.absolute : 0;
|
|
e = e ? Fe(e.left) + Fe(e.right) : 0;
|
|
f /= 100;
|
|
f = 1 + f / (1 - f);
|
|
d = (Fe(a) + d + e) * f;
|
|
"px" === a.valueType ? (a = Qa(d)) : a.valueType ? ((a = L({}, a)), (a.px = d)) : (a = d);
|
|
}
|
|
d = a;
|
|
b &&
|
|
0 !== c.px &&
|
|
((f = b.padding),
|
|
(e = b.offset),
|
|
(b = f ? f.vertical.relative : 0),
|
|
(f = f ? f.vertical.absolute : 0),
|
|
(e = e ? Fe(e.top) + Fe(e.bottom) : 0),
|
|
(b = Fe(c) + f + e + (b / 100) * Fe(d)),
|
|
"px" === c.valueType ? (c = Qa(b)) : c.valueType ? ((c = L({}, c)), (c.px = b)) : (c = b));
|
|
return { width: a, height: c };
|
|
},
|
|
Fe = function (a) {
|
|
return a.valueType ? a.px : a;
|
|
},
|
|
mt = function (a, c, b, d, e) {
|
|
function f(b, a) {
|
|
if (ja(b)) {
|
|
var c = b[0];
|
|
b = b[1];
|
|
} else (c = b.x), (b = b.y);
|
|
t(c) && (a.x = c);
|
|
t(b) && (a.y = b);
|
|
}
|
|
var g = { x: 0, y: 0, width: 0, height: 0 },
|
|
h = { x: 0, y: 0 },
|
|
k = { x: 0, y: 0 };
|
|
e = e || [0, 0];
|
|
c.getBbox ? ((g = void 0 !== c.toGlobal ? c.getGlobalBbox() : void 0 !== a.toGlobal ? a.toGlobal(c.getBbox()) : c.getBbox()), O(b) && (h = cj(b, g)), Fb(b) && ((c = b(g)), f(c, g))) : (f(c, g), O(b) && (h = cj(b, c)));
|
|
b = d || b;
|
|
O(b) && (k = cj(b, a.getBbox()));
|
|
b = void 0 !== a.toGlobal ? a.globalX : 0;
|
|
d = void 0 !== a.toGlobal ? a.globalY : 0;
|
|
c = void 0 !== a.toGlobal ? a.offsetX : 0;
|
|
a = void 0 !== a.toGlobal ? a.offsetY : 0;
|
|
return { offsetX: t(h.x) ? g.x - b + c + (h.x || 0) - (k.x || 0) + (e[0] || 0) : 0 + (e[0] || 0), offsetY: t(h.y) ? g.y - d + a + (h.y || 0) - (k.y || 0) + (e[1] || 0) : 0 + (e[1] || 0) };
|
|
},
|
|
nt = function (a, c, b) {
|
|
var d = b ? b.globalX : 0;
|
|
b = b ? b.globalY : 0;
|
|
c = "toLocal" === c ? -1 : 1;
|
|
return ja(a) ? [a[0] + d * c, a[1] + b * c, a[2], a[3]] : { x: a.x + d * c, y: a.y + b * c, width: a.width, height: a.height };
|
|
},
|
|
cj = function (a, c) {
|
|
a = a.split("|");
|
|
var b = { left: 0, center: 0.5, right: 1 },
|
|
d = { top: 0, middle: 0.5, bottom: 1 },
|
|
e = (J(c, "width") ? c.width : c[2]) || 0,
|
|
f = (J(c, "height") ? c.height : c[3]) || 0,
|
|
g = {};
|
|
w(a, function (a) {
|
|
t(b[a]) && (g.x = (g.x || 0) + b[a] * e);
|
|
t(d[a]) && (g.y = (g.y || 0) + d[a] * f);
|
|
});
|
|
return g;
|
|
},
|
|
Ff = function (a, c, b) {
|
|
void 0 === c && (c = 0);
|
|
var d = ja(a);
|
|
if (d) {
|
|
var e = G(a, 4),
|
|
f = e[0],
|
|
g = e[1],
|
|
h = e[2];
|
|
e = e[3];
|
|
} else (f = a.x), (g = a.y), (h = a.width), (e = a.height);
|
|
var k = Q(h) || Q(e);
|
|
if (Q(f) || Q(g)) return a;
|
|
a = (c / 2) % 1 || 1;
|
|
c = b ? b.globalX : 0;
|
|
b = b ? b.globalY : 0;
|
|
k || ((h = Ef(h + f, c, a) - Ef(f, c, a)), (e = Ef(e + g, b, a) - Ef(g, b, a)));
|
|
f = Ef(f, c, a);
|
|
g = Ef(g, b, a);
|
|
return d ? (k ? [f, g] : [f, g, h, e]) : k ? { x: f, y: g } : { x: f, y: g, width: h, height: e };
|
|
},
|
|
Ef = function (a, c, b) {
|
|
c = b - ((c + a) % 1);
|
|
0.5 < Math.abs(c) && (c -= 0 < c ? 1 : -1);
|
|
return a + c;
|
|
},
|
|
oC = function (a) {
|
|
function c(e, f) {
|
|
for (var g = 0, h = a[f].length; g < h; g++) {
|
|
var k = e.slice(0);
|
|
k.push(a[f][g]);
|
|
f === d ? b.push(k) : c(k, f + 1);
|
|
}
|
|
}
|
|
var b = [],
|
|
d = a.length - 1;
|
|
c([], 0);
|
|
return b;
|
|
},
|
|
Ge = { left: 0, top: 0, center: 0.5, middle: 0.5, right: 1, bottom: 1 },
|
|
ly = { x: "userX", y: "userY", width: "width", height: "height" },
|
|
ot = "fontFamily fontStyle fontWeight fontSize whiteSpace strategy textOverflow".split(" "),
|
|
td = {};
|
|
w("variant visibility cellSpacing cellPadding pixelCorrection preserveStartSpaces title".split(" "), function (a) {
|
|
td[a] = gy;
|
|
});
|
|
w(["margin", "padding"], function (a) {
|
|
td[a] = my;
|
|
});
|
|
w("maxWidth maxHeight fitWidth fitHeight ignoreCategories orientation autoWrap suspend xContentAlignment yContentAlignment xAlignment yAlignment".split(" "), function (a) {
|
|
td[a] = ji;
|
|
});
|
|
w(ot, function (a) {
|
|
td[a] = iy;
|
|
});
|
|
w(["width", "height", "x", "y", "strokeWidth"], function (a) {
|
|
td[a] = ky;
|
|
});
|
|
w(["offsetX", "offsetY"], function (a) {
|
|
td[a] = hy;
|
|
});
|
|
w(["maxWidth", "maxHeight", "fitWidth", "fitHeight"], function (a) {
|
|
td[a] = jy;
|
|
});
|
|
var dj = (function () {
|
|
function a(a, b) {
|
|
this.widths = [];
|
|
this.heights = [];
|
|
this.lefts = [];
|
|
this.rights = [];
|
|
this.bottoms = [];
|
|
this.tops = [];
|
|
a = this.rectangles = a;
|
|
this.scoreDirection = b;
|
|
for (var c = 0, e = this.rectangles.length; c < e; c++)
|
|
(b = a[c]), this.lefts.push(b.x), this.tops.push(b.y), this.rights.push(b.x + b.width), this.widths.push(b.width), this.heights.push(b.height), this.bottoms.push(b.y + b.height);
|
|
this.minX = Math.min.apply(null, this.lefts);
|
|
this.minY = Math.min.apply(null, this.tops);
|
|
this.maxX = Math.max.apply(null, this.rights);
|
|
this.maxY = Math.max.apply(null, this.bottoms);
|
|
this.minWidth = Math.min.apply(null, this.widths);
|
|
this.minHeight = Math.min.apply(null, this.heights);
|
|
this.maxWidth = this.maxX - this.minX;
|
|
this.maxHeight = this.maxY - this.minY;
|
|
}
|
|
a.prototype.getScore = function (a, b) {
|
|
var c = 0,
|
|
e = [];
|
|
if (a === De.xy && b) {
|
|
var f = (c = 0);
|
|
for (a = 0; a < b[0]; a++) {
|
|
for (var g = 0, h = 0; h < b[1]; h++) {
|
|
var k = this.widths[a * b[1] + h],
|
|
l = this.heights[a * b[1] + h];
|
|
g += k;
|
|
e.push(k * l);
|
|
}
|
|
c = g > c ? g : c;
|
|
}
|
|
for (h = 0; h < b[1]; h++) {
|
|
for (a = g = 0; a < b[0]; a++) g += this.heights[a * b[1] + h];
|
|
f = g > f ? g : f;
|
|
}
|
|
c *= f;
|
|
} else for (b = (a = a === De.y) ? this.widths : this.heights, f = a ? this.heights : this.widths, h = a ? this.maxWidth : this.maxHeight, a = 0, g = b.length; a < g; a++) e.push(b[a] * f[a]), (c += h * f[a]);
|
|
return { whitespace: 1 - Ta(e) / c, magnitude: c };
|
|
};
|
|
return a;
|
|
})(),
|
|
pC = (function () {
|
|
function a() {}
|
|
a.prototype.compareScores = function (a, b, d) {
|
|
a = this.quantifyScore(a, d);
|
|
b = this.quantifyScore(b, d);
|
|
return a < b ? -1 : a > b ? 1 : 0;
|
|
};
|
|
a.prototype.comparer = function (a) {
|
|
var b = this;
|
|
return function (c, e) {
|
|
return b.compareScores(c, e, a);
|
|
};
|
|
};
|
|
a.prototype.mergeScores = function (a) {
|
|
for (var b = 0, c = 0, e = 0, f = 0, g = a.length; f < g; f++) {
|
|
var h = a[f];
|
|
h.magnitude && ((b += h.whitespace * h.magnitude), c < h.magnitude && (c = h.magnitude), e++);
|
|
}
|
|
return b ? b / (e * c) : 0;
|
|
};
|
|
a.prototype.quantifyScore = function (a, b) {
|
|
return a.whitespace.toFixed(6);
|
|
};
|
|
a.prototype.sort = function (a, b) {
|
|
a.sort(this.comparer(b));
|
|
};
|
|
return a;
|
|
})(),
|
|
pt = /style\s*=\s*["']([^"]*)["']/,
|
|
qt = /([\S_]+)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))*.)["']?/g,
|
|
rt = /['"]/g,
|
|
qC = /[\u0590-\u05ff\u0600-\u06ff]/,
|
|
rC = /[-_]([a-z])/,
|
|
sC = / /gm,
|
|
tC = /\s\w+(?=[\s|>])/g,
|
|
st = { disk: "\u25cf\u00a0", circle: "\u25cb\u00a0", square: "\u25a0\u00a0", none: "" },
|
|
uC = ["antialias"],
|
|
Km = function (a) {
|
|
var c = "";
|
|
if (a) {
|
|
var b = a.length;
|
|
if (O(a)) c = a;
|
|
else {
|
|
if (1 === b && O(a[0].val)) return (a = a[0]), (a.type = "text"), a;
|
|
if (b) {
|
|
c = [];
|
|
for (var d = [], e = 0; e < b; e++) {
|
|
var f = a[e];
|
|
"visual" === f.kind || "panel" === f.type ? (d.length && (c.push({ type: "text", val: d.slice(0) }), (d = [])), c.push(f)) : d.push(f);
|
|
}
|
|
d.length && c.push({ type: "text", val: d.slice(0) });
|
|
return 1 === c.length ? c[0] : { type: "stack", val: c };
|
|
}
|
|
}
|
|
}
|
|
return { type: "text", val: c };
|
|
},
|
|
vC = function (a) {
|
|
a = a.split(";");
|
|
var c = {};
|
|
w(a, function (b) {
|
|
if (b) {
|
|
var a = b.split(":");
|
|
2 === a.length && ((b = tt(a[0].trim())), (a = a[1].trim()), (c[b] = a));
|
|
}
|
|
});
|
|
return c;
|
|
},
|
|
Rg = function (a, c) {
|
|
c = c || {};
|
|
c.val = a || "";
|
|
return c;
|
|
},
|
|
Tb = function (a, c, b) {
|
|
return a.substring(c, c + b.length).toLowerCase() === b;
|
|
},
|
|
wC = function (a) {
|
|
var c = [],
|
|
b = [],
|
|
d = [],
|
|
e = Rg(),
|
|
f = {},
|
|
g = [],
|
|
h = [],
|
|
k = 0,
|
|
l = [],
|
|
m = [],
|
|
n = [],
|
|
p = function (b) {
|
|
if (b) {
|
|
b = ja(b) ? b : b.split(";");
|
|
var a = [],
|
|
c = {};
|
|
w(b, function (b) {
|
|
if (b) {
|
|
var d = b.split(":");
|
|
1 === d.length && (d = b.split("="));
|
|
2 === d.length && ((b = d[0].trim()), (b = 0 === b.indexOf("data-") ? b : tt(b)), (d = d[1].trim()), (f[b] = d), a.push(b), (c[b] = d));
|
|
}
|
|
});
|
|
t(c.description) && !t(c.tabindex) && ((f.tabindex = 100), (c.tabindex = 100), a.push("tabindex"));
|
|
a.length && (g.push(a), (b = h.length) ? h.push(W(h[b - 1], c)) : h.push(c));
|
|
} else g.push([]), h.push([]);
|
|
},
|
|
q = function () {
|
|
var b = g.pop();
|
|
h.pop();
|
|
b &&
|
|
(w(b, function (b) {
|
|
delete f[b];
|
|
}),
|
|
(b = h.length) && L(f, h[b - 1]));
|
|
},
|
|
r = function () {
|
|
e && "" !== e.val && b.push(e);
|
|
var a = l[l.length - 1];
|
|
if (l.length && a > k) {
|
|
var d = c[c.length - 1];
|
|
d.margin || (d.margin = [0, 0, 0, 0]);
|
|
d.margin[2] = Math.floor(m[k] / 2);
|
|
}
|
|
if (b.length) {
|
|
d = Km(b);
|
|
a = l.length ? (k > a ? Math.floor(m[k - 1] / 2) : 0) : 0;
|
|
var g = Ta(n) || 0,
|
|
h;
|
|
if (d.margin) {
|
|
var p = (h = d.margin);
|
|
nb(h) ? (p = [h, h, h, h]) : O(h) && ((h = parseInt(h) || 0), (p = [h, h, h, h]));
|
|
h = p;
|
|
} else h = [0, 0, 0, 0];
|
|
h[0] += a;
|
|
h[3] += g;
|
|
d.margin = h;
|
|
l.push(k);
|
|
c.push(d);
|
|
b = [];
|
|
e = Rg("", Oa(f));
|
|
}
|
|
},
|
|
u = function () {
|
|
if (e.val)
|
|
if (e.width && O(e.val)) {
|
|
var a = { type: "panel", width: e.width };
|
|
e.verticalAlign && (a.verticalAlign = e.verticalAlign);
|
|
e.align && (a.xContentAlignment = e.align);
|
|
e.type = "text";
|
|
a.val = [Ga(e, ["width", "align", "verticalAlign"])];
|
|
b.push(a);
|
|
} else b.push(W(e, f));
|
|
e = Rg("", Oa(f));
|
|
};
|
|
a = a.replace(sC, String.fromCharCode(160));
|
|
var x = 0,
|
|
v = a.length;
|
|
for (x = 0; x < v; x++) {
|
|
var y = a[x];
|
|
if ("<" === y) {
|
|
if (Tb(a, x + 1, "br")) {
|
|
x += Tb(a, x + 3, "/") ? 4 : 3;
|
|
e.val || b.length || b.push({ val: " " });
|
|
r();
|
|
continue;
|
|
}
|
|
if (Tb(a, x + 1, "hr")) {
|
|
x += Tb(a, x + 3, "/") ? 4 : 3;
|
|
r();
|
|
c.push({
|
|
type: "panel",
|
|
width: "100%",
|
|
yContentAlignment: "middle",
|
|
val: [
|
|
{ type: "text", val: " " },
|
|
{ type: "panel", width: "100%", val: [{ type: "icon", d: "M 0 0 L 10 0", width: "100%", height: "1px", stroke: "darkgray", fill: "none" }] },
|
|
],
|
|
});
|
|
continue;
|
|
}
|
|
for (var D = !1, E = 0, F = ut.length; E < F; E++) {
|
|
var R = ut[E];
|
|
if (Tb(a, x, R.start)) {
|
|
x += R.start.length - 1;
|
|
u();
|
|
L(f, R.attrs);
|
|
D = !0;
|
|
break;
|
|
} else {
|
|
for (var z = 0, wa = R.stops.length; z < wa; z++) {
|
|
var U = R.stops[z];
|
|
if (Tb(a, x, U)) {
|
|
x += U.length - 1;
|
|
w(R.attrs, function (b, a) {
|
|
return delete f[a];
|
|
});
|
|
D = !0;
|
|
break;
|
|
}
|
|
}
|
|
if (D) break;
|
|
}
|
|
}
|
|
if (D) {
|
|
u();
|
|
continue;
|
|
}
|
|
E = 0;
|
|
for (F = vt.length; E < F; E++)
|
|
if (((R = vt[E]), Tb(a, x + 1, R.start))) {
|
|
for (F = x += R.start.length + 1; ">" !== a[x]; ) x++;
|
|
"ul" === R.key && ((E = null), 10 < x - F && (E = (F = a.substring(F, x).match(pt)) ? F[1] : E), p(E), r(), k++, (E = f.listPadding), (E = t(E) ? parseInt(E) : 10), m.push(E), n.push(E));
|
|
"li" === R.key && ((R = st[f.listStyleType]), b.unshift(A({ type: "text", val: t(R) ? R : st.disk }, f)));
|
|
D = !0;
|
|
break;
|
|
} else {
|
|
z = 0;
|
|
for (wa = R.stops.length; z < wa; z++)
|
|
if (((U = R.stops[z]), Tb(a, x + 1, U))) {
|
|
for (x += U.length + 1; ">" !== a[x]; ) x++;
|
|
"li" === R.key && r();
|
|
"ul" === R.key && (q(), k--, r(), n.pop());
|
|
D = !0;
|
|
break;
|
|
}
|
|
if (D) break;
|
|
}
|
|
if (D) {
|
|
u();
|
|
continue;
|
|
}
|
|
R = function (c, d) {
|
|
c = wt[c];
|
|
if (Tb(a, x + 1, c.tag)) {
|
|
x += c.tag.length;
|
|
d = "";
|
|
for (var g = a[x], h = { kind: "visual" }; ">" !== g && x++ < v; ) (g = a[x]), (d += g);
|
|
g = d.match(qt);
|
|
w(g, function (b) {
|
|
b = b.split("=");
|
|
2 === b.length && (h[b[0]] = b[1].replace(rt, ""));
|
|
});
|
|
h.style && (h = L(vC(h.style), h));
|
|
"chart" === c.tag
|
|
? ((c = d.match(tC)) &&
|
|
B(c, function (b) {
|
|
b = b.trim();
|
|
~uC.indexOf(b) ? (h[b] = !0) : (h.type = b);
|
|
}),
|
|
(h.type = h.type || "chart"),
|
|
(h.isNanoChart = !0))
|
|
: ((h.type = c.val), (h.fill = h.fill || "black"));
|
|
e.val && b.push(Oa(e));
|
|
e = Rg("", Oa(f));
|
|
h = Sa(h);
|
|
e.width ? b.push(W(e, { type: "panel", yAlignment: h.verticalAlign, val: [h] })) : b.push(h);
|
|
D = !0;
|
|
}
|
|
};
|
|
E = 0;
|
|
for (F = wt.length; E < F; E++) R(E, F);
|
|
if (D) {
|
|
u();
|
|
continue;
|
|
}
|
|
if (Tb(a, x + 1, "absolute")) {
|
|
x += 9;
|
|
u();
|
|
d = b.slice(0);
|
|
b = [];
|
|
continue;
|
|
} else if (Tb(a, x + 1, "/absolute")) {
|
|
x += 10;
|
|
u();
|
|
b = d.concat({ type: "panel", val: b });
|
|
d = [];
|
|
continue;
|
|
}
|
|
if (Tb(a, x + 1, "span")) {
|
|
x += 5;
|
|
R = "";
|
|
for (E = a[x]; ">" !== E && x++ < v; ) (E = a[x]), (R += E);
|
|
(E = (F = R.match(pt)) ? F[1] : null) ||
|
|
((R = R.match(qt)),
|
|
(E = B(R, function (b) {
|
|
return b.replace(rt, "");
|
|
})));
|
|
p(E);
|
|
D = !0;
|
|
} else Tb(a, x + 1, "/span") && ((x += 6), u(), q(), (D = !0));
|
|
if (D) {
|
|
e.val && b.push(Oa(e));
|
|
e = Rg("", Oa(f));
|
|
continue;
|
|
}
|
|
}
|
|
e.val += y;
|
|
}
|
|
e.val && b.push(e);
|
|
c.length ? (c.push(Km(b)), (d = { type: "stack:y", val: c })) : (d = Km(b));
|
|
return { value: d, isRtl: !!a.match(qC) };
|
|
},
|
|
ut = [
|
|
{ start: "<b>", stops: ["</b>", "<b/>"], attrs: { fontWeight: "bold" } },
|
|
{ start: "<strong>", stops: ["</strong>", "<strong/>"], attrs: { fontWeight: "bold" } },
|
|
{ start: "<i>", stops: ["</i>", "<i/>"], attrs: { fontStyle: "italic" } },
|
|
{ start: "<sup>", stops: ["</sup>", "<sup/>"], attrs: { fontSize: "0.7em", verticalAlign: "sup" } },
|
|
{ start: "<sub>", stops: ["</sub>", "<sub/>"], attrs: { fontSize: "0.7em", verticalAlign: "sub" } },
|
|
],
|
|
wt = [
|
|
{ tag: "icon", val: "icon" },
|
|
{ tag: "img", val: "image" },
|
|
{ tag: "chart", val: "nanoChart" },
|
|
],
|
|
vt = [
|
|
{ start: "ul", stops: ["/ul", "ul/"], key: "ul" },
|
|
{ start: "li", stops: ["/li", "<li/"], key: "li" },
|
|
],
|
|
tt = function (a) {
|
|
return 0 < a.indexOf("-")
|
|
? a.replace(rC, function (a) {
|
|
return a[1].toUpperCase();
|
|
})
|
|
: a;
|
|
},
|
|
xC = function (a, c) {
|
|
function b(b) {
|
|
for (var c = 0, f = 0, g, h, k = 0, l = [], m = 0, n = 0, p = e.length; n < p; n++) {
|
|
var q = e[n];
|
|
if ((h = q.length)) {
|
|
h = d(q, 0 === n, p === h);
|
|
g = h.width;
|
|
for (h = h.height; g > b; ) {
|
|
var r;
|
|
a: {
|
|
for (var u = (r = q.length); 2 < u; u--) {
|
|
var v = q[u - 1],
|
|
x = q[u - 2],
|
|
y = q[u - 3];
|
|
if (2 < r && (y.isSpace ? !v.isSpace : x.isSpace)) {
|
|
r = 2 + r - u;
|
|
break a;
|
|
}
|
|
}
|
|
r = 0;
|
|
}
|
|
if (!r) break;
|
|
g = n;
|
|
void 0 === r && (r = 1);
|
|
for (u = 0; u < r; u++) (v = e[g].pop()), e[g + 1].unshift(v);
|
|
g = d(q, 0 == n).width;
|
|
}
|
|
l.push({ x: 0, y: m, width: g, height: h, info: { itemCount: q.length } });
|
|
m += h;
|
|
f = f < g ? g : f;
|
|
c = c < g || !c ? g : c;
|
|
k++;
|
|
}
|
|
}
|
|
b = e;
|
|
n = [];
|
|
p = 0;
|
|
for (q = b.length; p < q; p++) n.push(yg(b[p]));
|
|
return { lines: n, linesUsed: k, width: f, height: m, maxLineWidth: c || g, score: new dj(l).getScore(De.y), parts: a };
|
|
}
|
|
function d(b, a, c) {
|
|
void 0 === c && (c = !1);
|
|
for (var d = 0, e = 0, f = 0, g = b.length; f < g; f++) {
|
|
var h = b[f],
|
|
k = h.width,
|
|
l = h.height;
|
|
e = e > l ? e : l;
|
|
if (!h.isSpace || ((f != g - 1 || c) && (0 < f || a))) d += k;
|
|
}
|
|
return { height: e, width: d };
|
|
}
|
|
var e = [],
|
|
f = c.step;
|
|
f = void 0 === f ? 0.1 : f;
|
|
var g = c.width;
|
|
g = void 0 === g ? 0 : g;
|
|
var h = c.height;
|
|
h = void 0 === h ? 0 : h;
|
|
c = c.wrapText;
|
|
c = void 0 === c ? !0 : c;
|
|
for (var k = f, l, m = [], n = 0, p = a.length; n < p; n++) {
|
|
for (var q = a[n], r = q.metrics, u = q.parts, x = [], v = 0, y = u.length; v < y; v++) {
|
|
var t = u[v],
|
|
E = t.width;
|
|
t = -1 < t.text.indexOf(q.delimiter.text);
|
|
e.push([]);
|
|
var F = { width: E, isSpace: t };
|
|
r && r.height && (F.height = r.height);
|
|
x.push(F);
|
|
t || (l && !(l > E)) || (l = E);
|
|
k += E;
|
|
}
|
|
e[0] = e[0].concat(x);
|
|
}
|
|
for (g && (k = g); k >= l + f; ) {
|
|
g = b(k);
|
|
if (g.maxLineWidth > k) break;
|
|
(!h || g.height <= h) && m.push(g);
|
|
if (!c && m.length) break;
|
|
k = g.maxLineWidth - f;
|
|
}
|
|
m.length || m.push(b(l));
|
|
return m;
|
|
},
|
|
Hd = { space: /(\s)/, variants: /&ore;|&ors;/g, startSpaces: /^ +/g, spaces: / +/g, quotes: /'|"/g, fontSize: /^[\d\.]+(px|pt|em)?$/ },
|
|
Xq = {
|
|
169: "copy",
|
|
174: "reg",
|
|
160: "nbsp",
|
|
8482: "trade",
|
|
34: "quot",
|
|
38: "amp",
|
|
60: "lt",
|
|
62: "gt",
|
|
176: "deg",
|
|
8364: "euro",
|
|
185: "sup1",
|
|
178: "sup2",
|
|
179: "sup3",
|
|
188: "frac14",
|
|
189: "frac12",
|
|
190: "frac34",
|
|
177: "plusmn",
|
|
180: "acute",
|
|
183: "middot",
|
|
},
|
|
Vq = { ore: "&ore;", ors: "&ors;", orc: "&orc;", or: "&||;" },
|
|
yC = fa("x y width height rotate opacity fill stroke offsetX offsetY".split(" ")),
|
|
Lm = fa(["animation", "transition"]),
|
|
zC = { initialize: !1, reposition: !0, destroy: !0, animatable: yC },
|
|
AC = (function () {
|
|
function a(a) {
|
|
this._li = a;
|
|
this.scope = Dd();
|
|
}
|
|
a.prototype.attr = function (a) {
|
|
var b = this._li;
|
|
if (O(a)) return this._li.attr(a);
|
|
b.updateAttrs(a, !0);
|
|
b.root.refresh();
|
|
};
|
|
a.prototype.attrEnd = function (a) {
|
|
return this.attr(a);
|
|
};
|
|
a.prototype.normalize = function (a) {
|
|
return a;
|
|
};
|
|
a.prototype.parse = function (a, b) {
|
|
return b;
|
|
};
|
|
return a;
|
|
})(),
|
|
BC = (function () {
|
|
function a(a, b) {
|
|
this._visual = a;
|
|
this._options = { auto: !1, mode: "simple", behaviour: L({}, zC) };
|
|
this._renderer = a.renderer;
|
|
var c = L({}, this._renderer.defaultOptions().transition);
|
|
this._attrTransition = new ht(new AC(a), c);
|
|
b && this.options(b);
|
|
}
|
|
a.prototype.options = function (a) {
|
|
a &&
|
|
(J(a, "auto") && (this._options.auto = a.auto || !1),
|
|
J(a, "mode") && (this._options.mode = a.mode || "simple"),
|
|
a.behaviour && L(this._options.behaviour, a.behaviour),
|
|
a.animation && this._attrTransition.options({ animation: a.animation }));
|
|
};
|
|
a.prototype.applyAttrs = function (a, b) {
|
|
var c = this._visual,
|
|
e = a.transition,
|
|
f = !1;
|
|
!1 === e ? ((e = { auto: !1 }), (f = !0)) : "auto" === e && ((e = { auto: !0 }), (f = !0));
|
|
e && yc(["auto", "mode", "behaviour"], e) && (this.options(e), (e = f ? null : Ga(a.transition, ["auto", "mode", "animation", "behaviour"])), ub(e) && ((e = null), delete a.transition));
|
|
if (this._renderer.disableAnimation || (!a.animation && !e && !this._options.auto)) c.updateAttrs(Hb(a, Lm), b);
|
|
else if (!ub(a)) {
|
|
var g = "simple" === this._options.mode;
|
|
if (c.isPatched || g)
|
|
if (((f = this._options.behaviour.animatable), g)) t(a.animation) || e || !Ln(f, a) || ((a.transition = null), (a.animation = this._attrTransition.getAnimationOptions())), c.updateAttrs(a, b);
|
|
else {
|
|
if (!e) {
|
|
e = Na({}, a, f);
|
|
g = Hb(a, f);
|
|
if (ub(e)) {
|
|
c.updateAttrs(Hb(a, Lm), b);
|
|
return;
|
|
}
|
|
b = Na({}, c.attrs, f);
|
|
a.animation && (e.animation = a.animation);
|
|
e = { start: g, middle: { from: b, to: e } };
|
|
}
|
|
this._attrTransition.options(e);
|
|
}
|
|
else c.updateAttrs(a, b);
|
|
}
|
|
};
|
|
a.prototype.applyPatch = function (a) {
|
|
var b = this._visual,
|
|
c = this._options;
|
|
this._renderer.disableAnimation || !c.auto || !c.behaviour.initialize || b.isPatched
|
|
? b.applyPatch(a)
|
|
: "layout" === c.mode
|
|
? (b.applyPatch(a), this.layoutInitializeTransition())
|
|
: ((a.transition = this.getSimpleInitializeTransition()), b.applyPatch(a));
|
|
};
|
|
a.prototype.applyDestroy = function () {
|
|
var a = this._visual,
|
|
b = this._options;
|
|
!this._renderer.disableAnimation && b.auto && b.behaviour.destroy ? ("simple" === b.mode ? a.updateAttrs({ transition: this.getSimpleDestroyTransition() }, !0) : this.layoutDestroy()) : a.applyDestroy();
|
|
};
|
|
a.prototype.applyAdd = function (a, b) {
|
|
var c = this._visual,
|
|
e = this._options;
|
|
!this._renderer.disableAnimation && e.auto && c.isPatched && e.behaviour.reposition ? ("simple" === e.mode ? this.simpleAdd(a) : this.layoutAdd(a)) : c.applyAdd(a, b);
|
|
};
|
|
a.prototype.getSimpleInitializeTransition = function () {
|
|
var a = this._visual.getBbox(),
|
|
b = 0 === a.x && 0 === a.y ? null : { translate: [a.x, a.y], scale: [1], val: "translate(" + a.x + ", " + a.y + ")" };
|
|
return {
|
|
start: { transform: { translate: [a.x + a.width / 2, a.y + a.height / 2], scale: [0], val: "translate(" + (a.x + a.width / 2) + ", " + (a.y + a.height / 2) + ") scale(0)" } },
|
|
middle: { to: { transform: b } },
|
|
end: { transform: b },
|
|
};
|
|
};
|
|
a.prototype.getSimpleDestroyTransition = function () {
|
|
var a = this._visual,
|
|
b = a.getBbox();
|
|
return {
|
|
middle: {
|
|
from: { transform: a.el.data.transform },
|
|
to: {
|
|
animation: {
|
|
final: function () {
|
|
var b = a.root;
|
|
a.applyDestroy();
|
|
b.refresh();
|
|
},
|
|
},
|
|
transform: { translate: [b.x + b.width / 2, b.y + b.height / 2], scale: [0], val: "translate(" + (b.x + b.width / 2) + ", " + (b.y + b.height / 2) + ") scale(0)" },
|
|
},
|
|
},
|
|
};
|
|
};
|
|
a.prototype.layoutInitializeTransition = function () {
|
|
this._attrTransition.finishAnimation();
|
|
var a = this._visual,
|
|
b = a.root,
|
|
d = a.getBbox(),
|
|
e = a.getGlobalBbox(),
|
|
f = e.width,
|
|
g = a.layout.panel({ width: 0, height: 0, x: d.x, y: d.y }).applyAdd(a.parent),
|
|
h = a.layout.panel().add();
|
|
a.updateAttrs({ scale: 0 }, !0).applyAdd(h);
|
|
b.refresh();
|
|
h.refresh();
|
|
this._attrTransition.options({
|
|
middle: {
|
|
from: { width: 0, height: 0 },
|
|
to: {
|
|
animation: {
|
|
final: function () {
|
|
a.updateAttrs({ scale: 1 }, !0).applyAdd(g.parent);
|
|
g.applyDestroy();
|
|
h.applyDestroy();
|
|
a.refresh();
|
|
},
|
|
onFrame: function (c, d) {
|
|
g.updateAttrs(d);
|
|
b.refresh();
|
|
c = g.getGlobalBbox();
|
|
a.applyPatch({ translate: [c.x, c.y], scale: [c.width / f] });
|
|
},
|
|
},
|
|
width: e.width,
|
|
height: e.height,
|
|
},
|
|
},
|
|
});
|
|
};
|
|
a.prototype.layoutDestroy = function () {
|
|
this._attrTransition.finishAnimation();
|
|
var a = this._visual,
|
|
b = a.getBbox(),
|
|
d = a.getGlobalBbox(),
|
|
e = d.width,
|
|
f = a.root,
|
|
g = a.layout.panel({ width: b.width, height: b.height, x: b.x, y: b.y }).applyAdd(a.parent),
|
|
h = a.layout.panel().add();
|
|
a.updateAttrs(d, !0).applyAdd(h);
|
|
f.refresh();
|
|
h.refresh();
|
|
this._attrTransition.options({
|
|
middle: {
|
|
from: { width: b.width, height: b.height },
|
|
to: {
|
|
animation: {
|
|
final: function () {
|
|
g.applyDestroy();
|
|
a.applyDestroy();
|
|
h.applyDestroy();
|
|
f.refresh();
|
|
},
|
|
onFrame: function (b, c) {
|
|
g.updateAttrs(c);
|
|
f.refresh();
|
|
b = g.getGlobalBbox();
|
|
a.applyPatch({ translate: [b.x, b.y], scale: [b.width / e] });
|
|
},
|
|
},
|
|
width: 0,
|
|
height: 0,
|
|
},
|
|
},
|
|
});
|
|
};
|
|
a.prototype.simpleAdd = function (a) {
|
|
this._attrTransition.finishAnimation();
|
|
this._visual.el.finishAnimation();
|
|
var b = this._visual,
|
|
c = b.getBbox(),
|
|
e = b.getGlobalBbox(),
|
|
f = b.layout.panel().add(),
|
|
g = b.layout.panel({ width: c.width, height: c.height }).add(a);
|
|
b.updateAttrs(e, !0).applyAdd(f);
|
|
g.refresh();
|
|
f.refresh();
|
|
var h = g.getGlobalBbox();
|
|
this._attrTransition.options({
|
|
middle: {
|
|
to: {
|
|
animation: {
|
|
final: function () {
|
|
var c = g.getBbox();
|
|
g.applyDestroy();
|
|
b.applyAdd(a);
|
|
b.updateAttrs(c, !0);
|
|
f.applyDestroy();
|
|
g.refresh();
|
|
b.refresh();
|
|
},
|
|
onFrame: function (a, c, d) {
|
|
b.applyPatch({ translate: [d(e.x, h.x, a), d(e.y, h.y, a)] });
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|
|
};
|
|
a.prototype.layoutAdd = function (a) {
|
|
this._attrTransition.finishAnimation();
|
|
var b = this._visual,
|
|
c = b.getGlobalBbox(),
|
|
e = b.getBbox(),
|
|
f = b.layout.panel({ width: 0, height: 0, x: e.x, y: e.y }).applyAdd(a),
|
|
g = b.layout.panel(b.getBbox()).applyAdd(b.parent),
|
|
h = a.root,
|
|
k = g.root,
|
|
l = b.layout.panel().add();
|
|
b.updateAttrs(c, !0).applyAdd(l);
|
|
h.refresh();
|
|
h !== k && k.refresh();
|
|
l.refresh();
|
|
var m = e.width,
|
|
n = e.height,
|
|
p = c.x,
|
|
q = c.y;
|
|
this._attrTransition.options({
|
|
middle: {
|
|
to: {
|
|
animation: {
|
|
final: function () {
|
|
b.updateAttrs(e, !0).applyAdd(a);
|
|
f.applyDestroy();
|
|
g.applyDestroy();
|
|
h.refresh();
|
|
h !== k && k.refresh();
|
|
l.applyDestroy();
|
|
b.refresh();
|
|
},
|
|
onFrame: function (a, c, d) {
|
|
f.updateAttrs({ width: d(0, m, a), height: d(0, n, a) });
|
|
g.updateAttrs({ width: d(m, 0, a), height: d(n, 0, a) });
|
|
h.refresh();
|
|
h !== k && k.refresh();
|
|
c = f.getGlobalBbox();
|
|
b.applyPatch({ translate: [d(p, c.x, a), d(q, c.y, a)] });
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|
|
};
|
|
return a;
|
|
})(),
|
|
CC = fa(["setSize", "finalSize", "renderSize", "pixelCorrection"]),
|
|
DC = function (a) {
|
|
return a.px;
|
|
},
|
|
Mm = {},
|
|
EC = fa(["translate", "rotate"]);
|
|
w(["width", "height", "x", "y"], function (a) {
|
|
return (Mm[a] = DC);
|
|
});
|
|
var Lc;
|
|
(function (a) {
|
|
a[(a.WriteIfChanged = 0)] = "WriteIfChanged";
|
|
a[(a.ReadOnly = 1)] = "ReadOnly";
|
|
a[(a.WriteOnly = 2)] = "WriteOnly";
|
|
})(Lc || (Lc = {}));
|
|
var Gf = (function () {
|
|
function a(a, b) {
|
|
this.layout = a;
|
|
this.forcePixelCorrection = !1;
|
|
this.init();
|
|
this.applyConfig(b);
|
|
}
|
|
a.prototype.init = function () {
|
|
this.combinations = [];
|
|
this.events = {};
|
|
this.subscriptions = [];
|
|
this.attrs = {};
|
|
this._awaitHandlers = [];
|
|
this.autoWrap = "auto";
|
|
this.renderer = this.layout.renderer;
|
|
this.root = this;
|
|
this.margin = rf(0);
|
|
this.isPatched = !1;
|
|
this.offsetY = this.offsetX = this.globalY = this.globalX = 0;
|
|
this.wasAdded = !1;
|
|
this.pixelCorrection = this.layout.pixelCorrection;
|
|
this.state = { needPatching: !0, needRecalculation: !0, needAttachPatching: !0, needDestroy: !1, destroyed: !1 };
|
|
this._availableAttrs = this.availableAttributes();
|
|
};
|
|
a.prototype.updateSize = function (a, b) {};
|
|
a.prototype.val = function (a) {
|
|
return this;
|
|
};
|
|
a.prototype.calculateMargin = function () {
|
|
return this.margin;
|
|
};
|
|
a.prototype.arrToBox = function (a) {
|
|
return { x: a[0], y: a[1], width: a[2], height: a[3] };
|
|
};
|
|
a.prototype.getBbox = function (a) {
|
|
return this.arrToBox(this.getBboxArray(a));
|
|
};
|
|
a.prototype.getGlobalBbox = function () {
|
|
return this.arrToBox(this.getGlobalBboxArray());
|
|
};
|
|
a.prototype.getBboxArray = function (a, b) {
|
|
return this.bboxArrayBased(ic(this.x), ic(this.y), a, b);
|
|
};
|
|
a.prototype.getGlobalBboxArray = function (a) {
|
|
return this.bboxArrayBased(this.globalX, this.globalY, !1, a);
|
|
};
|
|
a.prototype.bboxArrayBased = function (a, b, d, e) {
|
|
return [
|
|
a + (d ? this.offsetX : 0) - (e ? ic(this.margin.left) : 0),
|
|
b + (d ? this.offsetY : 0) - (e ? ic(this.margin.top) : 0),
|
|
ic(this.width) + (e ? ic(this.margin.horizontal) : 0),
|
|
ic(this.height) + (e ? ic(this.margin.vertical) : 0),
|
|
];
|
|
};
|
|
a.prototype.setSize = function (a) {
|
|
this.suspend ||
|
|
(this.setSizeValue("width", a.width, this.maxWidth),
|
|
this.setSizeValue("height", a.height, this.maxHeight),
|
|
this.setSizeValue("x", a.x),
|
|
this.setSizeValue("y", a.y),
|
|
this.needPatch(!0),
|
|
this.finalSizeCalled(),
|
|
this.triggerEvent("setSize"));
|
|
};
|
|
a.prototype.getTypeEvents = function () {
|
|
return CC;
|
|
};
|
|
a.prototype.setSizeValue = function (a, b, d) {
|
|
var c = this[a],
|
|
f = !c || c.isMutable;
|
|
nb(b) && c && !Ee(c) ? (this[a].px = t(d) && b > d ? d : b) : t(b) && f && (this[a] = Qa(b));
|
|
};
|
|
a.prototype.handleEvent = function (a, b, d, e) {
|
|
if (t(b) && (b = this.getEventByName(b, "un" !== a))) return b[a](b instanceof xm ? this.wrapEventCallback(d) : d, e);
|
|
};
|
|
a.prototype.getEventByName = function (a, b) {
|
|
!this.events[a] && b && (J(this.getTypeEvents(), a) ? (this.events[a] = new rd()) : this.subscribeDomEvents(a));
|
|
return this.events[a];
|
|
};
|
|
a.prototype.subscribeDomEvents = function (a) {
|
|
throw Error("Methods doesn't implemented");
|
|
};
|
|
a.prototype.triggerEvent = function (a) {
|
|
(a = this.events[a]) && a.trigger(this.getBbox());
|
|
};
|
|
a.prototype.on = function (a, b, d) {
|
|
(a = this.handleEvent(d ? "onDefer" : "on", a, b, d)) && this.subscriptions.push(a);
|
|
return this;
|
|
};
|
|
a.prototype.un = function (a, b) {
|
|
this.handleEvent("un", a, b);
|
|
return this;
|
|
};
|
|
a.prototype.isRelative = function () {
|
|
return (this.width && "px" !== this.width.valueType) || (this.height && "px" !== this.height.valueType);
|
|
};
|
|
a.prototype.add = function (a, b) {
|
|
return !this.wasAdded || (a && a !== this.parent) ? (this.transitionAnimator ? (this.transitionAnimator.applyAdd(a, b), this) : this.applyAdd(a, b)) : this;
|
|
};
|
|
a.prototype.await = function (a) {
|
|
this.root._awaitHandlers.push(a);
|
|
return this;
|
|
};
|
|
a.prototype.applyAdd = function (a, b) {
|
|
return this.insert({ parent: a, position: b });
|
|
};
|
|
a.prototype.alignTo = function (a, b, d, e) {
|
|
return this.attr(mt(this, a, b, d, e));
|
|
};
|
|
a.prototype.alignIn = function (a, b, d) {
|
|
this.insert({ parent: a });
|
|
a = {};
|
|
var c = this.getBbox();
|
|
if (O(b)) {
|
|
var f = ty(b);
|
|
f.x && (a.xAlignment = f.x);
|
|
f.y && (a.yAlignment = f.y);
|
|
this.attr(a);
|
|
}
|
|
b = d || b;
|
|
O(b) && ((b = cj(b, c)), (a.offsetX = 0 - b.x), (a.offsetY = 0 - b.y));
|
|
return this.attr(a);
|
|
};
|
|
a.prototype.insertFirst = function (a) {
|
|
return this.insert({ parent: a, position: 0 });
|
|
};
|
|
a.prototype.insert = function (a) {
|
|
var b = a.parent;
|
|
a = a.position;
|
|
Q(b) && (b = this.parent);
|
|
b &&
|
|
b !== this.parent &&
|
|
(this.parent && ((this.forcePixelCorrection = !0), this.parent.removeChild(this), this.updateAttrs({ offsetX: 0, offsetY: 0 })),
|
|
b === this.layout ? ((this.parent = b = null), this.notifyParentChanged()) : (0 === a ? b.prependChild : b.appendChild).call(b, this, a) && ((this.parent = b), this.notifyParentChanged()));
|
|
this.parent || this.layout.addChild(this);
|
|
this.wasAdded = !0;
|
|
this.setRenewComplete(!b || this.parent.wasAdded);
|
|
return this;
|
|
};
|
|
a.prototype.refresh = function (a) {
|
|
if (this.parent) return this.root.refresh(a), this;
|
|
this.wasAdded || this.add();
|
|
this.setRenewComplete(!0);
|
|
this.applyRefresh(a);
|
|
!a && this.endRefresh();
|
|
return this;
|
|
};
|
|
a.prototype.applyRefresh = function (a) {
|
|
this.parent || (this.update(), a || this.layout.destroyChildren());
|
|
a || this.patch();
|
|
};
|
|
a.prototype.endRefresh = function () {
|
|
this._awaitHandlers.length &&
|
|
(w(this._awaitHandlers, function (a) {
|
|
return a();
|
|
}),
|
|
(this._awaitHandlers = []));
|
|
this.triggerEvent("renderSize");
|
|
};
|
|
a.prototype.updateGlobalCoordinates = function () {
|
|
this.setGlobalCoordinates();
|
|
};
|
|
a.prototype.needPatch = function (a) {
|
|
this.state.needPatching = !0;
|
|
};
|
|
a.prototype.setGlobalCoordinates = function (a) {
|
|
var b = this.parent,
|
|
c = this.x.px + (b ? b.globalX : 0) + (this.offsetX || 0);
|
|
b = this.y.px + (b ? b.globalY : 0) + (this.offsetY || 0);
|
|
if (this.globalX !== c || this.globalY !== b || a) (this.globalX = c), (this.globalY = b), this.triggerEvent("pixelCorrection");
|
|
};
|
|
a.prototype.collectAttrs = function (a) {
|
|
return this.attrs;
|
|
};
|
|
a.prototype.correctPixelValues = function (a, b) {
|
|
a.rotate && 1 === (Math.abs(a.rotate[0]) / 90) % 2 && (a.rotate[0] += 0.1);
|
|
};
|
|
a.prototype.patch = function () {
|
|
var a = this.state,
|
|
b = this.collectAttrs();
|
|
if (!a.destroyed && a.needPatching && this.isComplete())
|
|
if (a.needDestroy) this.patchDestroy();
|
|
else {
|
|
this.pixelCorrection && this.correctPixelValues(b, this.parent);
|
|
a = this.parentChanged;
|
|
var d = this.cached(b, Lc.ReadOnly),
|
|
e = ub(d);
|
|
this._transition && (e && ((d = {}), (e = !1)), (d.transition = this._transition), (this._transition = null));
|
|
e && !a
|
|
? this.emptyPatch()
|
|
: (t(this._animation) && !e && ((d.animation = this._animation), Na(d, b, ec), (this._animation = void 0)), this.transitionAnimator ? this.transitionAnimator.applyPatch(d) : this.applyPatch(d));
|
|
}
|
|
};
|
|
a.prototype.emptyPatch = function () {
|
|
this.state.needPatching = !1;
|
|
this.isPatched = !0;
|
|
};
|
|
a.prototype.applyPatch = function (a) {
|
|
this.applyPatchState(a);
|
|
};
|
|
a.prototype.applyPatchState = function (a) {
|
|
this.cached(a, Lc.WriteOnly);
|
|
this.state.needPatching = !1;
|
|
this.isPatched = !0;
|
|
};
|
|
a.prototype.parentAttrsChanged = function (a) {};
|
|
a.prototype.sharedAttrsUpdated = function (a) {};
|
|
a.prototype.fillProperties = function (a) {
|
|
var b = this,
|
|
c = {},
|
|
e;
|
|
Da(a, function (d) {
|
|
var f = a[d];
|
|
if (J(td, d) && t(f)) {
|
|
var h = td[d](b, d, f);
|
|
h && (L(c, h), (e = e || {}), (e[d] = f));
|
|
}
|
|
});
|
|
c.updateSharedAttrs && this.sharedAttrsUpdated(e);
|
|
c.needRecalc && this.setRenewComplete();
|
|
c.updateGlobalCoordinates && this.updateGlobalCoordinates();
|
|
t(a.animation) && (this._animation = a.animation);
|
|
a.transition && (this._transition = a.transition);
|
|
};
|
|
a.prototype.addEvent = function (a) {
|
|
this.events[a] = new rd();
|
|
};
|
|
a.prototype.cached = function (a, b, d, e, f) {
|
|
void 0 === b && (b = Lc.WriteIfChanged);
|
|
void 0 === d && (d = "_cache_");
|
|
void 0 === e && (e = this);
|
|
var c = J(e, d);
|
|
a = Sc({}, a, Lm);
|
|
var h = c ? e[d] : a;
|
|
return c ? (b === Lc.WriteOnly ? (L(h, a), {}) : (b = Lj(h, a, EC, b === Lc.ReadOnly, f)) ? b : null) : ((e[d] = h), L({}, h));
|
|
};
|
|
a.prototype.notifyParentChanged = function () {
|
|
this.updateRoot();
|
|
};
|
|
a.prototype.updateRoot = function () {
|
|
var a = this.parent ? this.parent.root : this,
|
|
b = this.root;
|
|
a !== b && (0 < b._awaitHandlers.length && ((a._awaitHandlers = a._awaitHandlers.concat(b._awaitHandlers)), b.parent && (b._awaitHandlers = [])), (this.root = a));
|
|
};
|
|
a.prototype.availableAttributes = function () {
|
|
return null;
|
|
};
|
|
a.prototype.defaultConfig = function () {
|
|
return null;
|
|
};
|
|
a.prototype.applyConfig = function (a) {
|
|
var b = !a,
|
|
c = this.defaultConfig();
|
|
b && null === c ? (this.config = {}) : (b && (a = {}), (this.config = this.extendDefault(c || {}, a)), this.checkForAttrAnimation(Uq(this.config)));
|
|
};
|
|
a.prototype.extendDefault = function (a, b) {
|
|
return L(a, b);
|
|
};
|
|
a.prototype.checkForAttrAnimation = function (a, b) {
|
|
if (this.transitionAnimator || J(a, "animation") || J(a, "transition")) return this.transitionAnimator || (this.transitionAnimator = new BC(this)), this.transitionAnimator.applyAttrs(a, b), this;
|
|
this.updateAttrs(a, b);
|
|
};
|
|
a.prototype.updateAttrs = function (a, b) {
|
|
this.applyAttrs(a);
|
|
b && this.isPatched && this.needPatch();
|
|
return this;
|
|
};
|
|
a.prototype.applyAttrs = function (a) {
|
|
this.fillProperties(a);
|
|
var b = this.attrs,
|
|
c = this._availableAttrs;
|
|
if (c) {
|
|
for (var e in a) if (Object.hasOwnProperty.call(c, e) || 0 === e.indexOf("data-")) b[e] = a[e];
|
|
a = b;
|
|
} else a = L(b, a);
|
|
this.attrs = a;
|
|
};
|
|
a.prototype.setRenewComplete = function (a) {
|
|
var b = this.state,
|
|
c = b.needRecalculation;
|
|
if (a || !c) !this.parent || (!a && c) ? (b.needRecalculation = !0) : ((b.needRecalculation = !0), this.parent.setRenewComplete(a));
|
|
};
|
|
a.prototype.updateCombinations = function () {
|
|
this.state.needRecalculation && this.isComplete() && ((this.combinations = this.composeCombinations()), (this.state.needRecalculation = !1), (this.variant = null));
|
|
};
|
|
a.prototype.attr = function (a, b) {
|
|
if (O(a)) {
|
|
if (Q(b)) return J(this, a) ? ((b = this[a]), J(Mm, a) ? Mm[a](b) : b) : this.attrs[a];
|
|
var c = a;
|
|
a = {};
|
|
a[c] = b;
|
|
}
|
|
a = Uq(a);
|
|
this.checkForAttrAnimation(a, this.isPatched);
|
|
return this;
|
|
};
|
|
a.prototype.update = function () {
|
|
this.updateCombinations();
|
|
this.updateSize(this.wasAdded && !this.parent ? this.layout.getRootBox() : void 0);
|
|
this.triggerEvent("finalSize");
|
|
return this;
|
|
};
|
|
a.prototype.isComplete = function () {
|
|
return !0;
|
|
};
|
|
a.prototype.composeCombinations = function () {
|
|
return [];
|
|
};
|
|
a.prototype.finalSizeCalled = function () {};
|
|
a.prototype.getContentSize = function () {
|
|
return this.getBbox();
|
|
};
|
|
a.prototype.visible = function (a, b) {
|
|
var c = "none" !== this.attr("display");
|
|
t(a) || (a = !c);
|
|
if (a === c) return this;
|
|
this.attr({ display: a ? null : "none" });
|
|
!0 !== b && (this.suspend = !a);
|
|
this.setRenewComplete(!0);
|
|
return this;
|
|
};
|
|
a.prototype.destroy = function () {
|
|
if (this.transitionAnimator) return this.transitionAnimator.applyDestroy(), this;
|
|
this.applyDestroy();
|
|
return this;
|
|
};
|
|
a.prototype.applyDestroy = function () {
|
|
w(this.subscriptions, function (a) {
|
|
return a.un();
|
|
});
|
|
this.subscriptions = [];
|
|
this.isPatched = !1;
|
|
this.parent ? (this.parent.removeChild(this), this.layout.needToDestroy(this)) : this.layout.removeChild(this);
|
|
this.state.needDestroy = !0;
|
|
this.state.needPatching = !0;
|
|
};
|
|
a.prototype.patchDestroy = function () {
|
|
this.state.destroyed = !0;
|
|
};
|
|
a.prototype.setDomEventsElement = function (a) {
|
|
for (var b in this.events) this.events[b] instanceof xm && this.events[b].setElement(a);
|
|
};
|
|
a.prototype.toLocal = function (a) {
|
|
return nt(a, "toLocal", this.parent);
|
|
};
|
|
a.prototype.toGlobal = function (a) {
|
|
return nt(a, "toGlobal", this.parent);
|
|
};
|
|
a.prototype.setPreliminarySize = function (a) {
|
|
var b = this.variant ? this.variant.index : 0;
|
|
(this.combinations.length && !a) || this.updateCombinations();
|
|
b >= this.combinations.length && (b = 0);
|
|
this.combinations.length && this.setSize(this.combinations[b].minSize);
|
|
this.parent && this.updateGlobalCoordinates();
|
|
return this;
|
|
};
|
|
a.prototype.externalOn = function (a, b, d) {
|
|
if (a) {
|
|
var c = this.wrapEventCallback(d),
|
|
f = function (d) {
|
|
d = aq(d, a, b);
|
|
c(d);
|
|
};
|
|
a.on(b, f);
|
|
return {
|
|
un: function () {
|
|
a.un(b, f);
|
|
},
|
|
};
|
|
}
|
|
};
|
|
a.prototype.wrapEventCallback = function (a) {
|
|
var b = this;
|
|
return t(a)
|
|
? function (c) {
|
|
c.bbox = b.getBbox();
|
|
var d = (c.pointers = c.pointers
|
|
? B(c.pointers, function (a) {
|
|
return b.toRelativeXY(a);
|
|
})
|
|
: [b.toRelativeXY(c.eventArgs)]);
|
|
c.x = d[0][0];
|
|
c.y = d[0][1];
|
|
a && a(c);
|
|
}
|
|
: void 0;
|
|
};
|
|
a.prototype.toRelativeXY = function (a) {
|
|
if (!a) return [0, 0];
|
|
var b = t(a.clientX) ? this.renderer.relativeToRoot(a.clientX - this.globalX, a.clientY - this.globalY) : { x: 0, y: 0 };
|
|
return [b.x, b.y, a.id];
|
|
};
|
|
return a;
|
|
})(),
|
|
Hf = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function () {
|
|
a.prototype.init.call(this);
|
|
this.width = this.width || ld();
|
|
this.height = this.height || ld();
|
|
this.x = this.x || ld();
|
|
this.y = this.y || ld();
|
|
};
|
|
c.prototype.availableAttributes = function () {
|
|
return Ls;
|
|
};
|
|
c.prototype.updateSize = function (b, a) {
|
|
a && (this.variant = a);
|
|
b && this.setSize(b);
|
|
this.setGlobalCoordinates();
|
|
this.updateVisual();
|
|
return this;
|
|
};
|
|
c.prototype.updateVisual = function () {
|
|
this.setPosition(this.x, this.y);
|
|
};
|
|
c.prototype.setPosition = function (b, a) {
|
|
var c = !this.x || this.x.isMutable,
|
|
d = !this.y || this.y.isMutable;
|
|
this.x = b && c ? b : this.x;
|
|
this.y = a && d ? a : this.y;
|
|
};
|
|
c.prototype.getZeroSize = function (b) {
|
|
var a = ld();
|
|
Ya(b) && (a.valueType = "*");
|
|
return a;
|
|
};
|
|
c.prototype.composeCombinations = function () {
|
|
var b = this,
|
|
a = function (a) {
|
|
return tc(a) ? a : b.getZeroSize(a);
|
|
},
|
|
c = a(this.width);
|
|
a = a(this.height);
|
|
return [{ score: { whitespace: 0, magnitude: c.px * a.px }, minSize: { width: c, height: a }, index: 0 }];
|
|
};
|
|
c.prototype.patchDestroy = function () {
|
|
a.prototype.patchDestroy.call(this);
|
|
this.el && (this.el.destroy(), delete this.el);
|
|
};
|
|
c.prototype.below = function (b) {
|
|
this.belowItem = b;
|
|
return this.add();
|
|
};
|
|
c.prototype.useMainElementForEvents = function (b) {
|
|
this._useMainElementForEvents = b;
|
|
};
|
|
c.prototype.subscribeDomEvents = function (b) {
|
|
var a = new xm(b),
|
|
c = this.getLowermostElement();
|
|
this._useMainElementForEvents && (c = this.el);
|
|
a.setElement(c);
|
|
this.events[b] = a;
|
|
};
|
|
c.prototype.getLowermostElement = function () {
|
|
return this.el;
|
|
};
|
|
c.prototype.collectAttrs = function (b) {
|
|
void 0 === b && (b = !1);
|
|
return b ? L(L({}, this.attrs), this.getBbox(!0)) : this.attrs || {};
|
|
};
|
|
c.prototype.getParentGroup = function () {
|
|
return this.parent ? this.parent.getElement() : null;
|
|
};
|
|
c.prototype.notifyParentChanged = function () {
|
|
a.prototype.notifyParentChanged.call(this);
|
|
this.parentChanged = !0;
|
|
};
|
|
c.prototype.applyPatch = function (b) {
|
|
if (!this.el || this.parentChanged) {
|
|
var c = null != this.el,
|
|
e = this.getParentGroup();
|
|
this.el = c ? this.el.attr(b) : this.createElement(b);
|
|
this.belowItem ? ((c = this.belowItem.getLowermostElement() || this.belowItem.el) ? this.el.addBefore(c) : this.el.add(e)) : this.el.add(e);
|
|
this.setDomEventsElement(this.el);
|
|
} else this.el.attr(b);
|
|
this.parentChanged = !1;
|
|
a.prototype.applyPatch.call(this, b);
|
|
};
|
|
c.prototype.transition = function (b) {
|
|
this.el && this.el.transition(b);
|
|
};
|
|
return c;
|
|
})(Gf),
|
|
xt = ld(),
|
|
FC = [
|
|
{
|
|
score: { whitespace: 0, magnitude: 0 },
|
|
minSize: { width: xt, height: xt },
|
|
maxlineWidth: 0,
|
|
lineUsed: 1,
|
|
lines: [[{ width: 0, height: 0, isSpace: !1 }]],
|
|
parts: [{ text: "", width: 0, parts: [{ text: "", width: 0 }] }],
|
|
index: 0,
|
|
},
|
|
],
|
|
GC = fa(["width", "height", "x", "y"]),
|
|
yt = ["val", "textVariants", "verticalAlign"],
|
|
zt = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.preserveStartSpaces = !0;
|
|
b._cachedCombinations = {};
|
|
b.textElements = [];
|
|
b._maxDescent = 0;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.val = function (b) {
|
|
if (t(b)) {
|
|
var a = Pa(b),
|
|
c = a ? b.val || "" : b;
|
|
this.text !== c && this.attr(a ? b : { val: c });
|
|
return this;
|
|
}
|
|
return this.text;
|
|
};
|
|
c.prototype.createElement = function (b) {
|
|
return this.renderer.element("text", b);
|
|
};
|
|
c.prototype.getMaxDescent = function () {
|
|
return this._maxDescent;
|
|
};
|
|
c.prototype.updateVisual = function () {
|
|
var b = this,
|
|
a = this._parentAttributes && this._parentAttributes.textOverflow;
|
|
a = "ellipsis" === (this._textOverflow || a);
|
|
var c = this.variant,
|
|
f = this.width ? this.width.px : void 0,
|
|
g = this.height ? this.height.px : void 0,
|
|
h = this.maxWidth || f,
|
|
k = this.xAlignment || this.xContentAlignment || "left";
|
|
if (!c) {
|
|
for (var l = this.combinations, m = l.length, n = 0; n < m; n++) {
|
|
var p = l[n];
|
|
if (p && (!f || p.minSize.width.px < f) && (!g || p.minSize.height.px < g)) {
|
|
c = p;
|
|
break;
|
|
}
|
|
}
|
|
c || (c = l[m - 1]);
|
|
}
|
|
w(c.parts, function (a) {
|
|
return a.metrics && (b._maxDescent = Math.max(a.metrics.descent, b._maxDescent));
|
|
});
|
|
this.wrappedLayout = (function (b, a, c) {
|
|
for (var d = b.lines, e = b.parts, f = b.maxLineWidth, g = [], k = 0, l = 0, m = 0, n = e[m], p = n.parts, q = 0, r = d.length; q < r; q++) {
|
|
var u = d[q],
|
|
t = u.length,
|
|
w = { text: "", x: 0, y: 0, styles: {} },
|
|
z = 0,
|
|
A = [],
|
|
C = 0,
|
|
H = 0,
|
|
B = 0,
|
|
N = 0;
|
|
if (t) {
|
|
for (var J = 0; J <= t; J++) {
|
|
var Ba = h - z;
|
|
if (!p[k] || J === t) {
|
|
var G = n.metrics || { height: 0, descent: 0 },
|
|
K = G.height,
|
|
I = G.descent;
|
|
G = G.leading - G.fontSize;
|
|
var O = K - I;
|
|
w.text && ((w.styles = n.style || {}), A.push(L({}, w)), (C = C < K ? K : C), (H = H < O ? O : H), (B = B < I ? I : B), (N = N < G ? G : N));
|
|
if (J < t) {
|
|
for (; n && !(k < n.parts.length); ) (k -= n.parts.length), (n = e[++m]);
|
|
p = n.parts;
|
|
w = { text: "", x: z, y: 0, styles: {} };
|
|
}
|
|
}
|
|
if ((K = u[J])) {
|
|
G = K.width;
|
|
K = !K.isSpace;
|
|
if (0 !== J || K || 0 === q) {
|
|
I = J !== t - 1;
|
|
O = u.length === p.length;
|
|
if (K || I || O) z += G;
|
|
I = p[k].text;
|
|
if (a) {
|
|
Ba = I.substring(0, Math.round(I.length * (Ba && G ? Ba / G : 0) - 1) - Math.ceil(n.ellipsis.width / (G / I.length)));
|
|
G = K && J === t - 2;
|
|
var Q = (O = J === t - 1) ? !1 : !u[J + 1].isSpace;
|
|
G = b.width > (h || 0) && ((!G && !O) || Q) ? n.ellipsis.width : 0;
|
|
h && 0.01 < z - h + G && (K || J < t - 1) && ((I = Ba + n.ellipsis.text), (k += t - J - 1), (J = t - 1));
|
|
}
|
|
w.text += I;
|
|
}
|
|
k++;
|
|
}
|
|
}
|
|
u = 0;
|
|
for (t = A.length; u < t; u++)
|
|
(w = A[u]), (J = w.styles && w.styles.verticalAlign), (Ba = n.metrics.fontSize / 2), (w.y = l + ("sup" === J ? N + Ba : "sub" === J ? H + Ba - B : H)), (w.x += Ge[c] * (f - z)), g.push(w);
|
|
l += C;
|
|
}
|
|
}
|
|
return { parts: g, score: b.score };
|
|
})(c, a, k);
|
|
};
|
|
c.prototype.composeCombinations = function () {
|
|
if (!this.text) return FC;
|
|
var b = Ga(this._ownAttributes, ["x", "y"]),
|
|
a = W(this.layout.svgStyles, this._parentAttributes),
|
|
c = W(a, b),
|
|
f = c.whiteSpace || "normal",
|
|
g = this.preserveStartSpaces,
|
|
h = "pre" !== f && "nowrap" !== f && "auto" === this.autoWrap,
|
|
k = (!this.width || ("*" !== this.width.valueType && this.width.isMutable)) && c.strategy ? c.strategy : "none",
|
|
l = this.ignoreCategories,
|
|
m = c.fontFamily,
|
|
n = c.fontStyle,
|
|
p = c.fontWeight,
|
|
q = c.fontSize;
|
|
if (this._cachedCombinations.filter) {
|
|
var r = this._cachedCombinations,
|
|
u = r.filter;
|
|
if (u.whiteSpace === f && u.text === this.text && u.strategy === k && u.fontFamily === m && u.fontStyle === n && u.fontWeight === p && u.fontSize === q) return r.result;
|
|
}
|
|
this._cachedCombinations.filter = { whiteSpace: f, text: this.text, strategy: k, fontFamily: m, fontStyle: n, fontWeight: p, fontSize: q };
|
|
b = { own: c, personal: b, parent: a };
|
|
h = {
|
|
ignoreCategories: l,
|
|
preserveSpaces: "pre" === f || "pre-wrap" === f,
|
|
preserveStartSpaces: g,
|
|
wrapText: h,
|
|
wrappingStrategy: k,
|
|
width: tc(this.width) ? this.width.px : 0,
|
|
height: tc(this.height) ? this.height.px : 0,
|
|
maxWidth: this.maxWidth,
|
|
maxHeight: this.maxHeight,
|
|
};
|
|
k = ny(this.text, b, this.layout.svgStyles, h);
|
|
f = h.width;
|
|
g = h.height;
|
|
h = { wrapText: h.wrapText, strategy: h.wrappingStrategy, width: f, height: g, maxWidth: h.maxWidth, maxHeight: h.maxHeight };
|
|
l = [[]];
|
|
b = 0;
|
|
for (a = k.length; b < a; b++)
|
|
if (((c = k[b]), (m = c.length))) {
|
|
m = [];
|
|
n = 0;
|
|
for (p = c.length; n < p; n++) {
|
|
q = Wq(l);
|
|
r = 0;
|
|
for (u = l.length; r < u; r++) q[r].push(c[n]);
|
|
m = m.concat(q);
|
|
}
|
|
l = m;
|
|
} else for (n = 0, p = l.length; n < p; n++) l[n].push(void 0 == m ? c : c[0]);
|
|
k = l;
|
|
l = [];
|
|
b = 0;
|
|
for (a = k.length; b < a; b++) {
|
|
m = xC(k[b], h);
|
|
if (h) {
|
|
var x = void 0;
|
|
c = void 0;
|
|
n = m.length;
|
|
p = h.wrapText;
|
|
q = h.strategy;
|
|
r = h.maxWidth;
|
|
u = h.maxHeight;
|
|
var v = "none" === q,
|
|
y = [],
|
|
D = 0;
|
|
if (n) {
|
|
for (var w = 0; w < n; w++) {
|
|
var F = m[w],
|
|
R = F.score;
|
|
x = x && x !== F.linesUsed;
|
|
var z = (!t(r) || F.width < r) && (!t(u) || F.height < u);
|
|
p && z && (v || !c || x || F[q] < c[q] || R.whitespace < c.score.whitespace) && ((D += (v && D) || x ? 1 : 0), (c = y[D] = F));
|
|
x = F.linesUsed;
|
|
}
|
|
y.length || y.push(m[p ? n - 1 : 0]);
|
|
}
|
|
c = y;
|
|
} else c = m;
|
|
l = l.concat(c);
|
|
}
|
|
h = l;
|
|
k = 0;
|
|
for (l = h.length; k < l; k++) (b = h[k]), (a = g), b && ((b.minSize = { width: Qa(f || b.width), height: Qa(a || b.height) }), delete b.width, delete b.height), (h[k].index = k);
|
|
return (this._cachedCombinations.result = h);
|
|
};
|
|
c.prototype.fillProperties = function (b) {
|
|
b &&
|
|
(t(b.val) && (this.text !== b.val && this.setRenewComplete(), (this.text = b.val)),
|
|
t(b.stroke) && (this._strokeAttrs = Na({}, b, Pg)),
|
|
t(b.textOverflow) && (this._textOverflow = b.textOverflow),
|
|
a.prototype.fillProperties.call(this, b));
|
|
};
|
|
c.prototype.getLowermostElement = function () {
|
|
return this.textElements[0];
|
|
};
|
|
c.prototype.patchDestroy = function () {
|
|
var b = this.textElements;
|
|
if (b) {
|
|
for (var c = 0, e = b.length; c < e; c++) b[c] && b[c].destroy();
|
|
this.textElements = [];
|
|
}
|
|
a.prototype.patchDestroy.call(this);
|
|
};
|
|
c.prototype.availableAttributes = function () {
|
|
return iB;
|
|
};
|
|
c.prototype.collectAttrs = function () {
|
|
var b = a.prototype.collectAttrs.call(this, !0);
|
|
b.translate = { x: b.x, y: b.y };
|
|
return Sc({}, b, GC);
|
|
};
|
|
c.prototype.applyPatch = function (b) {
|
|
var a = this.wrappedLayout || {},
|
|
c = this.textElements,
|
|
f = a.parts,
|
|
g = f ? f.length : 1,
|
|
h = c.length,
|
|
k = this.getParentGroup(),
|
|
l = (this.el || k ? b : W(this.layout.svgStyles, b)) || {},
|
|
m = !!this.el;
|
|
m || (this.el = this.createElement(l).add(k));
|
|
for (k = 0; k < g; k++) {
|
|
var n = f ? f[k] : a,
|
|
p = { text: n.text, x: n.x || 0, y: n.y || 0 };
|
|
p = W(p, n.styles);
|
|
this.preserveStartSpaces && (p.style = "white-space: pre");
|
|
p.x = 0 === p.x ? "0px" : p.x;
|
|
if (k < h) (n = c[k]), (p = Ga(p, yt)), (p = this.cached(p, Lc.WriteIfChanged, "_cache_", n, !0)) && n.attr(p);
|
|
else {
|
|
p = be(Ga(n, ["styles"]), p, fa(yt));
|
|
n = this.renderer.element("tspan");
|
|
this.cached(p, Lc.WriteOnly, "_cache_", n);
|
|
if (!n) return this;
|
|
n.prev = p;
|
|
c.push(n);
|
|
n.add(this.el);
|
|
n.attr(p);
|
|
}
|
|
}
|
|
for (k = h - 1; k >= g; k--) c.pop().destroy();
|
|
m && this.el.attr(l);
|
|
this._strokeAttrs && this.el.attr({ strokeAttrs: this._strokeAttrs });
|
|
this.applyPatchState(b);
|
|
};
|
|
c.prototype.sharedAttrsUpdated = function (b) {
|
|
this._ownAttributes = this._ownAttributes || {};
|
|
L(this._ownAttributes, b);
|
|
this.setRenewComplete();
|
|
};
|
|
c.prototype.parentAttrsChanged = function (b) {
|
|
var a = this;
|
|
a._parentAttributes || (a._parentAttributes = {});
|
|
L(a._parentAttributes, b);
|
|
var c = !1;
|
|
Da(b, function (d) {
|
|
a[d] !== b[d] && (c = !0);
|
|
});
|
|
c && a.setRenewComplete();
|
|
};
|
|
return c;
|
|
})(Hf),
|
|
HC = (function (a) {
|
|
function c(b, c) {
|
|
return (a.call(this, b, c) || this).updateSize();
|
|
}
|
|
K(c, a);
|
|
c.prototype.availableAttributes = function () {
|
|
return gB;
|
|
};
|
|
c.prototype.createElement = function (b) {
|
|
var a = this.renderer.image(b);
|
|
b.width ^ b.height &&
|
|
~nm.indexOf("Safari") &&
|
|
(a.el.onload = function () {
|
|
var c = a.el.getBBox();
|
|
!b.width && a.el.setAttribute("width", c.width);
|
|
!b.height && a.el.setAttribute("height", c.height);
|
|
});
|
|
return a;
|
|
};
|
|
c.prototype.collectAttrs = function () {
|
|
var b = a.prototype.collectAttrs.call(this, !0);
|
|
return W(b, { src: this.src });
|
|
};
|
|
c.prototype.fillProperties = function (b) {
|
|
b && ((this.src = t(b.src) ? b.src : this.src || ""), a.prototype.fillProperties.call(this, b));
|
|
};
|
|
return c;
|
|
})(Hf),
|
|
IC = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.availableAttributes = function () {
|
|
return Ms;
|
|
};
|
|
c.prototype.collectAttrs = function () {
|
|
var b = a.prototype.collectAttrs.call(this, !0),
|
|
c = { rx: this.rx, ry: this.ry },
|
|
e = parseInt(b["stroke-width"]) || 0;
|
|
e && ((c.x = b.x + e / 2), (c.y = b.y + e / 2), (c.width = b.width - e), (c.height = b.height - e));
|
|
return W(b, c);
|
|
};
|
|
c.prototype.fillProperties = function (b) {
|
|
if (b) {
|
|
var c = t(b.radius) ? b.radius : b.cornerRadius;
|
|
this.rx = t(b.rx) ? b.rx : t(c) ? c : this.rx || 0;
|
|
this.ry = t(b.ry) ? b.ry : t(c) ? c : this.ry || 0;
|
|
J(b, "stroke-width") && (this.strokeWidth = parseInt(b["stroke-width"]) || 0);
|
|
a.prototype.fillProperties.call(this, b);
|
|
}
|
|
};
|
|
c.prototype.createElement = function (b) {
|
|
return this.renderer.rect(b);
|
|
};
|
|
c.prototype.correctPixelValues = function (b, c) {
|
|
a.prototype.correctPixelValues.call(this, b, c);
|
|
c = Ff(b, this.strokeWidth, c);
|
|
L(b, c);
|
|
};
|
|
return c;
|
|
})(Hf),
|
|
At = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.availableAttributes = function () {
|
|
return fB;
|
|
};
|
|
c.prototype.collectAttrs = function () {
|
|
var b = Ga(a.prototype.collectAttrs.call(this, !0), ["cx", "cy", "r"]);
|
|
L(b, this.getShapeBox());
|
|
return b;
|
|
};
|
|
c.prototype.getShapeBox = function (b) {
|
|
b = b || this.getBbox(!0);
|
|
return {
|
|
x: this.relativeSize ? (t(this.cx) ? this.cx - this.r : null) : b.x,
|
|
y: this.relativeSize ? (t(this.cy) ? this.cy - this.r : null) : b.y,
|
|
width: this.relativeSize ? this.calculateFromRadius(this.r) : b.width,
|
|
height: this.relativeSize ? this.calculateFromRadius(this.r) : b.height,
|
|
shapeName: this.mode,
|
|
};
|
|
};
|
|
c.prototype.fillProperties = function (b) {
|
|
b && ((this.mode = b.mode || b.subType || this.mode), Q(this.relativeSize) && this.setSizeType(b), (this.cx = b.cx), (this.cy = b.cy), (this.r = b.r), a.prototype.fillProperties.call(this, b));
|
|
};
|
|
c.prototype.createElement = function (b) {
|
|
return this.renderer.shape(this.mode, b);
|
|
};
|
|
c.prototype.setSizeType = function (b) {
|
|
yc(["x", "y", "width", "height"], b) ? (this.relativeSize = !1) : yc(["cx", "cy", "r"], b) && (this.relativeSize = !0);
|
|
};
|
|
c.prototype.calculateFromRadius = function (b) {
|
|
return t(b) ? 2 * b : null;
|
|
};
|
|
c.prototype.default = function (b, a) {
|
|
return lc(b) ? a : b;
|
|
};
|
|
return c;
|
|
})(Hf),
|
|
Bt = {},
|
|
Ct = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function () {
|
|
a.prototype.init.call(this);
|
|
this.padding = this.padding || rf(0);
|
|
};
|
|
c.prototype.extendDefault = function (b, c) {
|
|
c.name && Q(c.size) && (b.width = b.height = 16);
|
|
return a.prototype.extendDefault.call(this, b, c);
|
|
};
|
|
c.prototype.collectAttrs = function () {
|
|
var b = a.prototype.collectAttrs.call(this);
|
|
this.updateIconState();
|
|
b.d = this._iconD;
|
|
t(this._rotate) && (1 === this._rotate.length && (this._rotate.push(this._iconWidth ? b.x + this._iconWidth / 2 : 0), this._rotate.push(this._iconHeight ? b.y + this._iconHeight / 2 : 0)), (b.rotate = this._rotate));
|
|
return b;
|
|
};
|
|
c.prototype.getFromStoreOrShapes = function (b) {
|
|
var a = this;
|
|
if (b && "none" !== b) {
|
|
var c, f;
|
|
return (f = Bt[b])
|
|
? f
|
|
: (c = dc[b])
|
|
? (Bt[b] = c(0, 0, 10, 10, { r: 2 }).toString())
|
|
: xo(
|
|
b,
|
|
function (b) {
|
|
b.displayCdnWarning && Ma.emit("warning", "dom", "cdnLoad", { container: a.renderer.wrapper.el });
|
|
},
|
|
function () {
|
|
Ma.emit("warning", "dom", "iconNotFound", { data: [b], container: a.renderer.wrapper.el });
|
|
}
|
|
);
|
|
}
|
|
};
|
|
c.prototype.updateIconState = function (b) {
|
|
b = (b && (b.d || b.path)) || this.attrs.d || this.attrs.path;
|
|
var a = this.getShapeBox();
|
|
this.pixelCorrection && (a = Ff(a, 1 === a.height || 1 === a.width ? 1 : 0, this.parent));
|
|
var c = b || (this._icon ? this.getFromStoreOrShapes(this._icon) : null);
|
|
c && ((b = Yp(c, [a.x, a.y, a.width, a.height, this._userSize], this._outerShape, this.padding, !!b)), (this._iconD = b[0]), (this._iconSize = b[1]), (this._iconWidth = b[2]), (this._iconHeight = b[3]));
|
|
};
|
|
c.prototype.val = function (b) {
|
|
t(b) && this.attr(b);
|
|
return this;
|
|
};
|
|
c.prototype.getIconSize = function () {
|
|
this.updateIconState();
|
|
return this._iconSize;
|
|
};
|
|
c.prototype.createElement = function (b) {
|
|
return this.renderer.path(b);
|
|
};
|
|
c.prototype.fillProperties = function (b) {
|
|
if (b) {
|
|
var c = b.outline,
|
|
e = b.hatch;
|
|
this._icon = J(b, "name") ? b.name : this._icon;
|
|
this._userSize = J(b, "size") ? parseInt(b.size) : this._userSize;
|
|
this._outerShape = t(b.outerShape) ? Xp(b.outerShape) : this._outerShape;
|
|
if (b.size || ((b.d || b.path) && !b.width && !b.height)) this.updateIconState(b), (b.width = this._iconWidth), (b.height = this._iconHeight);
|
|
t(b.rotate) && ((this._rotate = uy(b.rotate)), (b.rotate = void 0));
|
|
t(c) && (c.color && (b.stroke = c.color), c.width && (b.borderWidth = c.width));
|
|
t(e) && (e.style && (b.hatchPattern = e.style), e.color && (b.hatch = e.color));
|
|
a.prototype.fillProperties.call(this, b);
|
|
}
|
|
};
|
|
return c;
|
|
})(At),
|
|
JC = fa(ot),
|
|
KC = fa(["width", "height", "x", "y"]),
|
|
Sg = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function () {
|
|
a.prototype.init.call(this);
|
|
this.childElements = [];
|
|
this.attachedElements = [];
|
|
this.itemsCount = 0;
|
|
this.padding = this.padding || rf(0, this.width ? this.width.px : 0);
|
|
this.stretchSum = { width: 1, height: 1 };
|
|
this.scoring = new pC();
|
|
};
|
|
c.prototype.sameChildren = function (b) {
|
|
b = B(b, function (b) {
|
|
return b.type;
|
|
}).join();
|
|
if (this.childrenHash === b) return !0;
|
|
this.childrenHash = b;
|
|
return !1;
|
|
};
|
|
c.prototype.val = function (b) {
|
|
if (!b) return this.childElements;
|
|
ja(b) || (b = [b]);
|
|
if (this.sameChildren(b))
|
|
for (var a = 0, c = b.length; a < c; a++) {
|
|
var f = b[a];
|
|
f instanceof Gf && (this.childElements[a].destroy(), f.insert({ parent: this, position: a }));
|
|
this.childElements[a].val(f.val || f);
|
|
}
|
|
else
|
|
for (this.destroyChildren(), this.destroyAttachedElements(), delete this.childrenHash, a = 0, c = b.length; a < c; a++)
|
|
(f = b[a]), f instanceof Gf || (O(f) && (f = { type: "text", text: f }), ja(f) && (f = { type: "stack", val: f }), f.add || (f = this.layout.item(f))), f.add(this);
|
|
return this;
|
|
};
|
|
c.prototype.addElementToParent = function (b) {
|
|
this.attach(b, { setSize: null });
|
|
};
|
|
c.prototype.attach = function (b, a) {
|
|
a =
|
|
a && t(a.setSize)
|
|
? a.setSize
|
|
: function (a) {
|
|
return b.attr({ x: 0, y: 0, width: a.width, height: a.height });
|
|
};
|
|
this.attachedElements.push({ el: b, domAttached: !1, setSize: a });
|
|
this.state.needAttachPatching = !0;
|
|
this.isPatched && this.patchAttachedElements();
|
|
};
|
|
c.prototype.updateSize = function (b, a) {
|
|
var c = !this.variant || (a && this.variant !== a),
|
|
d = b && (b.width !== this.width.px || b.height !== this.height.px || b.x !== this.x.px || b.y !== this.y.px);
|
|
d && this.setSize(b);
|
|
this.setGlobalCoordinates();
|
|
this.variant = a || this.variant || this.selectVariant();
|
|
b || this.setSize(this.variant.minSize);
|
|
(c || d) && this.arrange();
|
|
return this;
|
|
};
|
|
c.prototype.calculatePadding = function (b, a) {
|
|
a = this.padding;
|
|
var c = a.right,
|
|
d = a.top,
|
|
g = a.bottom,
|
|
h = function (a) {
|
|
return "%" === a.valueType ? (a.val * b) / 100 : a.px;
|
|
};
|
|
return { left: h(a.left), right: h(c), top: h(d), bottom: h(g) };
|
|
};
|
|
c.prototype.getContentSize = function () {
|
|
var b = this.getBbox(),
|
|
a = this.calculatePadding(b.width, b.height);
|
|
return { width: Math.max(b.width - a.left - a.right, 0), height: Math.max(b.height - a.top - a.bottom, 0), x: b.x + a.left, y: b.y + a.top };
|
|
};
|
|
c.prototype.getStretchingArea = function () {
|
|
var b = this.stretchSum,
|
|
a = this.getReservedSpace(),
|
|
c = this.getContentSize();
|
|
return { width: Math.max(c.width - a.width, 0) / (b.width || 1), height: Math.max(c.height - a.height, 0) / (b.height || 1) };
|
|
};
|
|
c.prototype.getReservedSpace = function () {
|
|
return { width: 0, height: 0 };
|
|
};
|
|
c.prototype.selectVariant = function () {
|
|
var b = this.combinations,
|
|
a = null,
|
|
c = b.length,
|
|
f = this.strategy || this.layout.svgStyles.strategy,
|
|
g = null,
|
|
h = function (b) {
|
|
return b && "*" !== b.valueType;
|
|
};
|
|
if (c) {
|
|
for (var k = 0; k < c; k++) {
|
|
var l = b[k],
|
|
m = l.score,
|
|
n = this.fitsSize(l.minSize),
|
|
p = h(this.width),
|
|
q = h(this.height),
|
|
r = g && 1 === this.scoring.compareScores(g, m, f);
|
|
p = !g || (p && q && r);
|
|
n.width && n.height && p && ((a = l), (g = m));
|
|
}
|
|
g = null;
|
|
if (!a) {
|
|
for (k = c - 1; 0 <= k; k--) {
|
|
c = b[k];
|
|
h = "height" === f ? f : "width";
|
|
if ((g && g.minSize[h].px < c.minSize[h].px && !a) || (g && a && g.minSize[h].px === a.minSize[h].px)) a = g;
|
|
g = b[k];
|
|
}
|
|
a = a || g;
|
|
}
|
|
return a;
|
|
}
|
|
};
|
|
c.prototype.fitsSize = function (b) {
|
|
var a = ic(this.width),
|
|
c = ic(this.height);
|
|
return { width: !a || 1 > b.width.px - a, height: !c || 1 > b.height.px - c };
|
|
};
|
|
c.prototype.composeCombinations = function () {
|
|
var b = this,
|
|
a = [],
|
|
c = this.childElements,
|
|
f = !c || !c.length,
|
|
g = this.suspend,
|
|
h = this.width,
|
|
k = this.height;
|
|
if (f || g) {
|
|
a = [];
|
|
if (g)
|
|
for (var l = 0; l < c.length; l++) {
|
|
var m = c[l];
|
|
m.combinations.length || m.updateCombinations();
|
|
m = m.combinations;
|
|
a.push(m.length ? m[0] : null);
|
|
}
|
|
c = function (b) {
|
|
return g || !b || (f && b.isMutable) ? ld() : b;
|
|
};
|
|
return [{ components: a, score: { whitespace: 0, magnitude: h && k ? h.px * k.px : 0 }, minSize: { width: c(h), height: c(k) }, index: 0 }];
|
|
}
|
|
h = 1;
|
|
for (l = 0; l < c.length; l++) (m = c[l]), m.combinations.length || m.updateCombinations(), (m = m.combinations.slice()), (k = m.length), (h *= k), k || m.push(null), a.push(m);
|
|
1e3 < h &&
|
|
(a = B(a, function (a) {
|
|
a = b.maxWidth ? vy(a, b.maxWidth) : a[0];
|
|
return [a];
|
|
}));
|
|
c = this.mixCombinations(a);
|
|
return this.filterCombinations(c);
|
|
};
|
|
c.prototype.mixCombinations = function (b) {
|
|
return this.getCombinations(b);
|
|
};
|
|
c.prototype.getCombinations = function (b, a) {
|
|
a = a || { codes: [], result: [], counter: 0 };
|
|
if (0 < b.length)
|
|
for (var c = b[0].length, d = 0; d < c; d++) {
|
|
var g = b.slice(0);
|
|
a.codes[a.counter] = b[0][d];
|
|
g.shift();
|
|
a.counter++;
|
|
this.getCombinations(g, a);
|
|
}
|
|
else (b = a.codes.slice(0)), a.result.push(b);
|
|
a.counter--;
|
|
return a.result;
|
|
};
|
|
c.prototype.filterCombinations = function (b) {
|
|
var a = this.width,
|
|
c = this.height,
|
|
f = tc(a),
|
|
g = tc(c),
|
|
h = "none" === this.autoWrap,
|
|
k = !f && !g && "golden" === this.autoWrap,
|
|
l = function (b) {
|
|
return t(b) ? b : Infinity;
|
|
},
|
|
m = l(this.maxWidth);
|
|
l = l(this.maxHeight);
|
|
if (1 === b.length) return (b = this.measure(b[0])), f && (b.minSize.width = Oa(a)), g && (b.minSize.height = Oa(c)), (b.index = 0), [b];
|
|
if (!(f || g || h || k)) {
|
|
a = [];
|
|
c = 0;
|
|
g = f = void 0;
|
|
for (var n = 0, p = b.length; n < p; n++) {
|
|
var q = this.measure(b[n]),
|
|
r = q.minSize;
|
|
h = m - r.width.px;
|
|
k = l - r.height.px;
|
|
var u = Math.max(Math.abs(Math.min(0, h)), Math.abs(Math.min(0, k)));
|
|
if (0 <= h && 0 <= k) a.push(q), (q.index = c++);
|
|
else if (!f || Q(g) || g > u) (g = u), (f = q);
|
|
}
|
|
!a.length && f && a.push(f);
|
|
return a;
|
|
}
|
|
var x = null,
|
|
v = 0,
|
|
y = b.length - 1;
|
|
n = 0;
|
|
for (p = b.length; n < p; n++) {
|
|
q = this.measure(b[n]);
|
|
r = q.minSize;
|
|
var D = r.width.px;
|
|
r = r.height.px;
|
|
var w = D / r,
|
|
F = !f || q.minSize.width.px <= a.px,
|
|
R = !g || q.minSize.height.px <= c.px,
|
|
z = !k || !x || (Math.abs(1.618 - w) < Math.abs(1.618 - v) && 0.1 > q.score.whitespace);
|
|
if (((D <= m && r <= l) || f || g) && F && R && z && (f && (q.minSize.width = Oa(a)), g && (q.minSize.height = Oa(c)), (u = q), k && ((x = q), (v = w)), f || h || (k && 1.618 > w))) break;
|
|
n === p - 1 && !u && F && (y = 0);
|
|
}
|
|
b = u || this.measure(b[y]);
|
|
b.index = 0;
|
|
return [b];
|
|
};
|
|
c.prototype.selectClosest = function (b, a, c) {
|
|
function d(b, a, c) {
|
|
b = b.minSize;
|
|
a = a.minSize;
|
|
return c ? Math.abs(b[c].px - a[c].px) : Math.abs(b.width.px - a.width.px) + Math.abs(b.height.px - a.height.px);
|
|
}
|
|
for (var e = b[0], h = e ? d(a, e, c) : null, k = 1, l = b.length; k < l; k++) {
|
|
var m = b[k];
|
|
if (null !== m) {
|
|
var n = d(a, m, c);
|
|
if (null === h || h > n) (h = n), (e = m);
|
|
}
|
|
}
|
|
return e;
|
|
};
|
|
c.prototype.applyFitSize = function (b, a) {
|
|
var c = this.fitWidth,
|
|
d = this.fitHeight,
|
|
g = 1,
|
|
h = 1;
|
|
c && c < b && (g = c / b);
|
|
d && d < a && (h = d / a);
|
|
(c || d) && this.attr({ transform: { scale: Math.min(g, h) } });
|
|
};
|
|
c.prototype.arrange = function () {
|
|
var b = this.variant;
|
|
if (b) {
|
|
var a = this.childElements,
|
|
c = b.components,
|
|
f = this.getContentSize(),
|
|
g = this.width.isMutable ? b.minSize.width : this.width,
|
|
h = this.height.isMutable ? b.minSize.height : this.height;
|
|
b = this.calculatePadding(g.px, h.px);
|
|
if (c)
|
|
for (this.applyFitSize(g.px, h.px), g = 0, h = a.length; g < h; g++) {
|
|
var k = a[g],
|
|
l = c[g],
|
|
m = k.width,
|
|
n = k.height;
|
|
if (l) {
|
|
var p = k.calculateMargin(),
|
|
q = ic(k.userX),
|
|
r = ic(k.userY);
|
|
q = f.width - p.horizontal.px - (q ? q - b.left : 0);
|
|
r = f.height - p.vertical.px - (r ? r - b.top : 0);
|
|
m = Cb(m) ? m : l.minSize.width;
|
|
n = Cb(n) ? n : l.minSize.height;
|
|
var u = function (b, a) {
|
|
return Ya(a) ? b : ib(a) ? (a.val * b) / 100 : a.px;
|
|
};
|
|
q = u(q, m);
|
|
r = u(r, n);
|
|
m = f.width - q - p.horizontal.px;
|
|
n = f.height - r - p.vertical.px;
|
|
m = (Ge[k.xAlignment || this.xContentAlignment] || 0) * (0 < m ? m : 0);
|
|
n = (Ge[k.yAlignment || this.yContentAlignment] || 0) * (0 < n ? n : 0);
|
|
k.updateSize({ width: q, height: r, x: k.userX ? k.userX.px : m + b.left + p.left.px, y: k.userY ? k.userY.px : n + b.top + p.top.px }, l);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
c.prototype.measure = function (b) {
|
|
for (var a = [], c = 0, f = 0, g = !1, h = !1, k = [], l = this.childElements, m = 0, n = b.length; m < n; m++) {
|
|
var p = b[m],
|
|
q = l[m];
|
|
if (p) {
|
|
var r = tc(q.width) ? q.width : p.minSize.width,
|
|
u = tc(q.height) ? q.height : p.minSize.height,
|
|
x = q.calculateMargin(),
|
|
v = Cb(q.userX) ? q.userX.px : 0;
|
|
q = Cb(q.userY) ? q.userY.px : 0;
|
|
var y = x.horizontal.relative / 100;
|
|
r = (r.px + v + x.horizontal.absolute) * (1 + y / (1 - y));
|
|
u = u.px + q + x.vertical.absolute + (x.vertical.relative / 100) * r;
|
|
x = Ya(p.minSize.width);
|
|
v = Ya(p.minSize.height);
|
|
g = g || x;
|
|
h = h || v;
|
|
c = r > c ? r : c;
|
|
f = u > f ? u : f;
|
|
k.push(p.score);
|
|
a.push({ x: 0, y: 0, width: p.minSize.width.px, height: p.minSize.height.px });
|
|
}
|
|
}
|
|
return { components: b, minSize: this.completeSize(Qa(c, { stretch: g }), Qa(f, { stretch: h })), score: { whitespace: this.combineScores(k, a), magnitude: c * f }, index: 0 };
|
|
};
|
|
c.prototype.completeSize = function (b, a) {
|
|
return lt(b, a, { padding: this.padding });
|
|
};
|
|
c.prototype.createElement = function (b) {
|
|
return this.renderer.element("g", b);
|
|
};
|
|
c.prototype.updateRoot = function () {
|
|
a.prototype.updateRoot.call(this);
|
|
w(this.childElements, function (b) {
|
|
return b.updateRoot();
|
|
});
|
|
};
|
|
c.prototype.updateCombinations = function () {
|
|
w(this.childElements, function (b) {
|
|
return b.updateCombinations();
|
|
});
|
|
a.prototype.updateCombinations.call(this);
|
|
};
|
|
c.prototype.updateGlobalCoordinates = function () {
|
|
a.prototype.updateGlobalCoordinates.call(this);
|
|
w(this.childElements, function (b) {
|
|
return b.updateGlobalCoordinates();
|
|
});
|
|
};
|
|
c.prototype.applyDestroy = function () {
|
|
for (var b = this.childElements; b.length; ) b[0].applyDestroy();
|
|
a.prototype.applyDestroy.call(this);
|
|
};
|
|
c.prototype.applyRefresh = function (b) {
|
|
a.prototype.applyRefresh.call(this, b);
|
|
if (this.isPatched && !b) {
|
|
w(this.childElements, function (b) {
|
|
return b.applyRefresh();
|
|
});
|
|
if ((b = this.el && this.el.data.vals["clip-path"]) && b.isDef) {
|
|
var c = this.getBbox();
|
|
b.attr = L(b.attr || {}, { width: c.width, height: c.height });
|
|
b.updateAttr && b.updateAttr(b);
|
|
}
|
|
this.state.needAttachPatching && this.patchAttachedElements();
|
|
}
|
|
};
|
|
c.prototype.applyPatch = function (b) {
|
|
a.prototype.applyPatch.call(this, b);
|
|
this.patchTitle(b);
|
|
b = (b = b && b.translate) && (b.x || b.y);
|
|
(this.forcePixelCorrection || b) && this.pixelCorrection && (this.updateGlobalCoordinates(), this.correctPixelValuesDown());
|
|
};
|
|
c.prototype.correctPixelValuesDown = function () {
|
|
w(this.childElements, function (b) {
|
|
b.pixelCorrection && b.isPatched && (b.needPatch(), b.patch(), b instanceof c && b.correctPixelValuesDown());
|
|
});
|
|
};
|
|
c.prototype.patchAttachedElements = function () {
|
|
var b = this,
|
|
a = b.el,
|
|
c = [];
|
|
w(b.attachedElements, function (b) {
|
|
b.el.isDestroyed ? c.push(b) : b.domAttached || (b.el.add(a), (b.domAttached = !0));
|
|
});
|
|
c.length &&
|
|
w(c, function (a) {
|
|
b.attachedElements.splice(b.attachedElements.indexOf(a), 1);
|
|
});
|
|
b.state.needAttachPatching = !1;
|
|
};
|
|
c.prototype.destroyAttachedElements = function () {
|
|
w(this.attachedElements, function (b) {
|
|
return b.el && b.el.destroy();
|
|
});
|
|
};
|
|
c.prototype.patchTitle = function (b) {
|
|
b = this.title;
|
|
var a = this._titleVisual;
|
|
t(b) && (b ? (a || (a = this._titleVisual = this.renderer.element("title").add(this.el)), a.attr({ text: b })) : a && (a.destroy(), (this._titleVisual = null)));
|
|
};
|
|
c.prototype.availableAttributes = function () {
|
|
return Vi;
|
|
};
|
|
c.prototype.collectAttrs = function () {
|
|
var b = a.prototype.collectAttrs.call(this, !0);
|
|
b.translate = { x: b.x, y: b.y };
|
|
J(b, "shadow") && !J(b, "clipPath") && delete b.shadow;
|
|
return Sc({}, b, KC);
|
|
};
|
|
c.prototype.appendChild = function (b, a) {
|
|
return 0 < a ? this.insertChild(b, a) : this.addChild(b, "push");
|
|
};
|
|
c.prototype.prependChild = function (b) {
|
|
return this.addChild(b, "unshift");
|
|
};
|
|
c.prototype.addChild = function (b, a) {
|
|
return this.childElements && 0 > this.childElements.indexOf(b)
|
|
? (this.childElements[a](b), (a = this.childElements.length), this.itemsCount < a && (this.itemsCount = a), this._sharedAttributes && b.parentAttrsChanged(this._sharedAttributes), !0)
|
|
: !1;
|
|
};
|
|
c.prototype.removeChild = function (b) {
|
|
b.parent = null;
|
|
b = this.childElements.indexOf(b);
|
|
0 > b || (this.childElements.splice(b, 1), (this.itemsCount = this.childElements.length), this.setRenewComplete());
|
|
};
|
|
c.prototype.insertChild = function (b, a) {
|
|
var c = this.childElements,
|
|
d = c.indexOf(b),
|
|
g = 0 > d;
|
|
g || c.splice(d, 1);
|
|
c.splice(a, 0, b);
|
|
if (g) return (this.itemsCount = c.length), this._sharedAttributes && b.parentAttrsChanged(this._sharedAttributes), !0;
|
|
this.setRenewComplete();
|
|
return !1;
|
|
};
|
|
c.prototype.isNotEmpty = function () {
|
|
return 0 < this.childElements.length;
|
|
};
|
|
c.prototype.clear = function (b) {
|
|
for (var a = this.childElements, c = 0, f = a.length; c < f; c++) {
|
|
var g = a[c];
|
|
g && ((g.parent = null), -1 === b.indexOf(g) && g.patchDestroy());
|
|
}
|
|
this.childElements = [];
|
|
this.combinations = [];
|
|
this.variant = null;
|
|
this.itemsCount = 0;
|
|
return this;
|
|
};
|
|
c.prototype.destroyChildren = function () {
|
|
var b = this.childElements;
|
|
if (b) {
|
|
for (var a = 0, c = b.length; a < c; a++) {
|
|
var f = b[a];
|
|
f && ((f.parent = null), f.patchDestroy());
|
|
}
|
|
this.childElements = [];
|
|
}
|
|
};
|
|
c.prototype.patchDestroy = function () {
|
|
this.destroyChildren();
|
|
a.prototype.patchDestroy.call(this);
|
|
};
|
|
c.prototype.combineScores = function (b, a) {
|
|
if (!a || 2 > a.length) return b[0].whitespace;
|
|
b = this.scoring.mergeScores(b);
|
|
a = this.scoreCombination(a);
|
|
return (b + a.whitespace) / 2;
|
|
};
|
|
c.prototype.isComplete = function () {
|
|
var b = (0 === this.itemsCount && 0 < this.childElements.length) || this.childElements.length === this.itemsCount,
|
|
a = 0 === this.itemsCount && (tc(this.width) || tc(this.height));
|
|
return b || a;
|
|
};
|
|
c.prototype.scoreCombination = function (b) {
|
|
return new dj(b).getScore();
|
|
};
|
|
c.prototype.finalSizeCalled = function () {
|
|
if (this.attachedElements) {
|
|
var b = this.getBbox();
|
|
w(this.attachedElements, function (a) {
|
|
a.setSize && a.setSize(b);
|
|
});
|
|
}
|
|
};
|
|
c.prototype.snap = function (b, a) {
|
|
void 0 === a && (a = 1);
|
|
return Ff(b, a, this);
|
|
};
|
|
c.prototype.getElement = function () {
|
|
return this.el;
|
|
};
|
|
c.prototype.getLowermostElement = function () {
|
|
var b = this.el;
|
|
return b ? b.childNodes[0] : null;
|
|
};
|
|
c.prototype.sharedAttrsUpdated = function (b) {
|
|
var a = (this._sharedAttributes = this._sharedAttributes || {});
|
|
Na(a, b, JC);
|
|
w(this.childElements, function (b) {
|
|
return b.parentAttrsChanged(a);
|
|
});
|
|
};
|
|
c.prototype.parentAttrsChanged = function (b) {
|
|
var a = this,
|
|
c;
|
|
Da(b, function (d) {
|
|
a[d] !== b[d] && ((c = c || {}), (c[d] = b[d]));
|
|
});
|
|
c && ((this._sharedAttributes = c), this.sharedAttrsUpdated(c));
|
|
};
|
|
return c;
|
|
})(Hf),
|
|
Tg = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function () {
|
|
a.prototype.init.call(this);
|
|
this.orientation = "x";
|
|
};
|
|
c.prototype.fillProperties = function (b) {
|
|
b && ((this.orientation = b.subType || b.orientation || this.orientation), a.prototype.fillProperties.call(this, b));
|
|
};
|
|
c.prototype.arrange = function () {
|
|
var b = this.variant;
|
|
if (b) {
|
|
var a = this.childElements,
|
|
c = b.components,
|
|
f = b.extra || {},
|
|
g = this.getContentSize(),
|
|
h = this.width.isMutable ? b.minSize.width : this.width,
|
|
k = this.height.isMutable ? b.minSize.height : this.height;
|
|
b = this.calculatePadding(h.px, k.px);
|
|
var l = "y" === this.orientation;
|
|
this.applyFitSize(h.px, k.px);
|
|
var m = 0,
|
|
n = 0,
|
|
p = 0;
|
|
h = 0;
|
|
this.stretchSum = f.stretchSum || this.stretchSum;
|
|
f = 0;
|
|
for (k = a.length; f < k; f++) {
|
|
var q = a[f],
|
|
r = c[f];
|
|
if (r) {
|
|
var u = q.calculateMargin(),
|
|
x = Cb(q.width) ? q.width : r.minSize.width,
|
|
v = Cb(q.height) ? q.height : r.minSize.height,
|
|
y = Ya(x) ? u.horizontal.px : (ib(x) ? (x.val * g.width) / 100 : x.px) + u.horizontal.px,
|
|
t = Ya(v) ? u.vertical.px : (ib(v) ? (v.val * g.height) / 100 : v.px) + u.vertical.px;
|
|
q = Ya(x) ? (g.width * x.val) / this.stretchSum.width : y;
|
|
v = Ya(v) ? (g.height * v.val) / this.stretchSum.height : t;
|
|
l ? ((m = m > y ? m : y), (n += t), (p = p > q ? p : q), (h += v)) : ((m += y), (n = n > t ? n : t), (p += q), (h = h > v ? h : v));
|
|
}
|
|
}
|
|
var w = 0,
|
|
F = 0,
|
|
R = 0,
|
|
z = 0;
|
|
m = l ? g.width : oa([0, g.width - m]);
|
|
n = l ? oa([0, g.height - n]) : g.height;
|
|
p = oa([0, g.width - p]);
|
|
h = oa([0, g.height - h]);
|
|
f = 0;
|
|
for (k = a.length; f < k; f++)
|
|
if (((q = a[f]), (r = c[f])))
|
|
(u = q.calculateMargin()),
|
|
(x = q.width && !q.width.isMutable ? q.width : r.minSize.width),
|
|
(v = q.height && !q.height.isMutable ? q.height : r.minSize.height),
|
|
(y = Ya(x) ? (m * x.val) / this.stretchSum.width : ib(x) ? (x.val * g.width) / 100 : x.px),
|
|
(t = Ya(v) ? (n * v.val) / this.stretchSum.height : ib(v) ? (v.val * g.height) / 100 : v.px),
|
|
q.updateSize(
|
|
{
|
|
width: y,
|
|
height: t,
|
|
x: w + (Ge[q.xAlignment || this.xContentAlignment] || 0) * (l ? g.width - y - u.horizontal.px : p) + b.left + u.left.px,
|
|
y: F + (Ge[q.yAlignment || this.yContentAlignment] || 0) * (l ? h : g.height - t - u.vertical.px) + b.top + u.top.px,
|
|
},
|
|
r
|
|
),
|
|
l ? ((R = R > y ? R : y), (F = z += t + u.vertical.px)) : ((R += y + u.horizontal.px), (z = z > t ? z : t), (w = R));
|
|
}
|
|
};
|
|
c.prototype.reverse = function () {
|
|
this.childElements.reverse();
|
|
this.state.needRecalculation = !0;
|
|
};
|
|
c.prototype.getReservedSpace = function () {
|
|
var b = this.variant ? { width: this.variant.minSize.width.px, height: this.variant.minSize.height.px } : a.prototype.getReservedSpace.call(this),
|
|
c = "y" === this.orientation;
|
|
return { width: c ? 0 : b.width, height: c ? b.height : 0 };
|
|
};
|
|
c.prototype.selectClosest = function (b, c) {
|
|
return a.prototype.selectClosest.call(this, b, c, "y" === this.orientation ? "width" : "height");
|
|
};
|
|
c.prototype.measure = function (b) {
|
|
for (var a = [], c = [], f = 0, g = 0, h = 0, k = 0, l = !1, m = !1, n = 0, p = 0, q = 0, r = this.childElements, u = 0, x = b.length; u < x; u++) {
|
|
var v = b[u],
|
|
y = r[u];
|
|
if (v) {
|
|
var t = v.minSize.width,
|
|
w = v.minSize.height,
|
|
F = Cb(y.width) ? y.width : t,
|
|
R = Cb(y.height) ? y.height : w;
|
|
y = r[u].calculateMargin();
|
|
l = l || Ya(F);
|
|
m = m || Ya(R);
|
|
c.push(v.score);
|
|
a.push({ x: 0, y: 0, width: t.px, height: w.px });
|
|
"x" === this.orientation
|
|
? ((f += (ib(F) ? 0 : F.px) + y.horizontal.absolute),
|
|
(h += (ib(F) ? F.val : 0) + y.horizontal.relative),
|
|
(v = Math.max(Ee(R) ? R.px : 0, w.px) + y.vertical.absolute),
|
|
(g = g > v ? g : v),
|
|
(n += Ya(F) ? F.val : 0))
|
|
: ((g += (ib(R) ? 0 : R.px) + y.vertical.absolute),
|
|
(k += (ib(R) ? R.val : 0) + y.vertical.relative),
|
|
(F = Math.max(Ee(F) ? F.px : 0, t.px) + y.horizontal.absolute),
|
|
(f = f > F ? f : F),
|
|
(p += Ya(R) ? R.val : 0));
|
|
q += y.vertical.relative;
|
|
}
|
|
}
|
|
f = 100 > h ? (100 * f) / (100 - h) : 0;
|
|
g = (100 * g) / (100 - k) + (q * f) / 100;
|
|
return {
|
|
components: b,
|
|
minSize: this.completeSize(Qa(f, { stretch: Cb(this.width) ? !1 : l }), Qa(g, { stretch: Cb(this.height) ? !1 : m })),
|
|
score: { whitespace: this.combineScores(c, a), magnitude: f * g },
|
|
extra: { stretchSum: { width: n || 1, height: p || 1 } },
|
|
index: 0,
|
|
};
|
|
};
|
|
c.prototype.val = function (b) {
|
|
b && b.length && (this.itemsCount = b.length);
|
|
return a.prototype.val.call(this, b);
|
|
};
|
|
c.prototype.scoreCombination = function (b) {
|
|
var a = De[this.orientation || "x"];
|
|
return new dj(b).getScore(a);
|
|
};
|
|
return c;
|
|
})(Sg),
|
|
LC = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.fillProperties = function (b) {
|
|
var c = this,
|
|
e = t(b.val) ? b.val : b.text,
|
|
f = b.xAlignment,
|
|
g = b.yAlignment,
|
|
h = b.xContentAlignment || f,
|
|
k = b.yContentAlignment || g;
|
|
!b.xContentAlignment && b.xAlignment && (b.xContentAlignment = f);
|
|
!b.yContentAlignment && b.yAlignment && (b.yContentAlignment = g);
|
|
h &&
|
|
this.xContentAlignment !== h &&
|
|
w(this.childElements, function (b) {
|
|
b.attr({ xContentAlignment: h });
|
|
});
|
|
k &&
|
|
this.yContentAlignment !== k &&
|
|
w(this.childElements, function (b) {
|
|
b.attr({ yContentAlignment: k });
|
|
});
|
|
b.width && (b.strategy = b.strategy || "none");
|
|
b.stroke &&
|
|
((this._strokeAttrs = Na({}, b, Pg)),
|
|
w(this.childElements, function (b) {
|
|
b.attr(c._strokeAttrs);
|
|
}));
|
|
a.prototype.fillProperties.call(this, b);
|
|
t(e) && this.val(e);
|
|
};
|
|
c.prototype.init = function () {
|
|
a.prototype.init.call(this);
|
|
this.orientation = "y";
|
|
};
|
|
c.prototype.val = function (b) {
|
|
return t(b) ? (O(b) && this._textAttr !== b && ((this._textAttr = b), this.parseTextAndSetTextValue()), this) : this._textAttr;
|
|
};
|
|
c.prototype.setTextSize = function (b) {
|
|
var a = this;
|
|
"text" === b.type && (b.width = b.width || "*");
|
|
ja(b) &&
|
|
w(b, function (b) {
|
|
return a.setTextSize(b);
|
|
});
|
|
};
|
|
c.prototype.collectAttrs = function () {
|
|
var b = a.prototype.collectAttrs.call(this);
|
|
return Hb(b, Pg);
|
|
};
|
|
c.prototype.editLine = function (b) {
|
|
if ("text" === b.type && b.val)
|
|
if (
|
|
ja(b.val) &&
|
|
ea(b.val, function (b) {
|
|
return b.align;
|
|
}).length
|
|
) {
|
|
var a = [];
|
|
w(b.val, function (b) {
|
|
a.push({ type: "text", val: [b], xAlignment: b.align });
|
|
});
|
|
b = L(b, { type: "stack", val: a, width: b.width || "100%" });
|
|
} else O(b.val) && b.align && (b.xAlignment = b.align);
|
|
if (!this.width.isMutable) {
|
|
var c = this.textOverflow;
|
|
!c || ("ellipsis" !== c && "clip" !== c) || this.setTextSize(b);
|
|
}
|
|
var f = this.xContentAlignment || this.xAlignment,
|
|
g = this.yContentAlignment || this.yAlignment,
|
|
h = function (b) {
|
|
f && (b.xAlignment = b.xAlignment || f);
|
|
g && (b.yAlignment = b.yAlignment || g);
|
|
};
|
|
if (f || g)
|
|
ja(b)
|
|
? w(b, function (b) {
|
|
return h(b);
|
|
})
|
|
: h(b);
|
|
this._strokeAttrs && L(b, this._strokeAttrs);
|
|
return b;
|
|
};
|
|
c.prototype.canReuse = function (b) {
|
|
if (ja(b.val) || ja(b)) {
|
|
b = b.val || b;
|
|
for (var a = 0, c = b.length; a < c; a++) if (!this.canReuse(b[a])) return !1;
|
|
return !0;
|
|
}
|
|
return "visual" === b.kind || b.align ? !1 : !0;
|
|
};
|
|
c.prototype.destroyElements = function () {
|
|
for (; this.childElements.length; ) this.childElements[0].destroy();
|
|
};
|
|
c.prototype.sameHash = function (b) {
|
|
b = B(b.val || b, function (b) {
|
|
return b.type;
|
|
}).join();
|
|
if (this._configHash === b) return !0;
|
|
this._configHash = b;
|
|
return !1;
|
|
};
|
|
c.prototype.parseTextAndSetTextValue = function () {
|
|
var b = this._textAttr;
|
|
"" === b && this.destroyElements();
|
|
if (b) {
|
|
b = wC(b);
|
|
b.isRtl && ((this.attrs.direction = "rtl"), (this.attrs.textAnchor = "end"));
|
|
var a = b.value,
|
|
c = "stack:y" === a.type ? a.val : [a],
|
|
f = this.childElements.length;
|
|
b = [];
|
|
var g = this.sameHash(a);
|
|
this._recreate = this._recreate || (this._type && a.type && this._type !== a.type) || (a.val && (!this.canReuse(a) || !g)) || a.isNanoChart;
|
|
this._type = ja(a) ? "array" : a.type;
|
|
a = 0;
|
|
for (g = c.length; a < g; a++) {
|
|
var h = c[a],
|
|
k = h.length;
|
|
(ub(h.val) && !k && ub(h.name) && ub(h.src) && ub(h.d) && "visual" !== h.kind) || b.push(this.editLine(h));
|
|
}
|
|
var l = B(b, function (b) {
|
|
return (
|
|
(b = S(b.val, function (b) {
|
|
return b.verticalAlign;
|
|
})) && b.verticalAlign
|
|
);
|
|
});
|
|
if (!this._recreate && 0 < f) {
|
|
a = 0;
|
|
for (g = b.length; a < g; a++)
|
|
a < f ? ((c = b[a]), this.childElements[a].val(c.val && c.val.length && "text" !== c.type ? c.val : c)) : ((h = this.layout.item(b[a]).add(this)), 0 < a && h.attr({ preserveStartSpaces: !1 }));
|
|
a = f - 1;
|
|
for (g = b.length; a >= g; a--) this.childElements[a].destroy();
|
|
} else
|
|
for (this._recreate = void 0, this.destroyElements(), this.sharedAttrsUpdated(this.attrs), a = 0, g = b.length; a < g; a++)
|
|
(c = b[a]),
|
|
(h = void 0),
|
|
"visual" === c.kind && c.align && (c.xAlignment = c.align),
|
|
ja(c.val) && (c.yContentAlignment = c.yContentAlignment || l[a] || this.yContentAlignment),
|
|
(f = this.layout.item(c)) && (h = f.add(this)),
|
|
0 < a && h && h.attr({ preserveStartSpaces: !1 });
|
|
w(this.childElements, function (b, a) {
|
|
if (
|
|
!l[a] &&
|
|
b instanceof Tg &&
|
|
((a = b.childElements),
|
|
(b = ea(a, function (b) {
|
|
return b instanceof Ct;
|
|
})),
|
|
b.length)
|
|
) {
|
|
var c = 0;
|
|
a = ea(a, function (b) {
|
|
return b instanceof zt;
|
|
});
|
|
w(a, function (b) {
|
|
return (c = Math.max(c, b.update().getMaxDescent()));
|
|
});
|
|
w(b, function (b) {
|
|
var a = b.calculateMargin();
|
|
a.bottom.val || a.top.val || b.attr({ margin: { top: 0, left: a.left.val, right: a.right.val, bottom: c } });
|
|
});
|
|
}
|
|
});
|
|
}
|
|
};
|
|
return c;
|
|
})(Tg),
|
|
Dt = ["cellSpacing", "cellPadding", "borders"],
|
|
MC = (function (a) {
|
|
function c(b, c) {
|
|
b = a.call(this, b, c) || this;
|
|
b.rowCount = 0;
|
|
b.columnCount = 0;
|
|
b.gridElements = [];
|
|
b.borders = [];
|
|
b.borderElements = [];
|
|
c && c.cellSpacing && b.applyCellSpacing(c.cellSpacing);
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.attr = function (b, c) {
|
|
J(b, "cellSpacing") && this.applyCellSpacing(b.cellSpacing);
|
|
return a.prototype.attr.call(this, b, c);
|
|
};
|
|
c.prototype.applyCellSpacing = function (b) {
|
|
(this.cellSpacing = parseInt(b) || 0) && "number" === typeof this.padding.initial && (this.padding = rf(this.padding.initial + this.cellSpacing / 2));
|
|
var a = rf(this.cellSpacing / 2);
|
|
w(this.childElements, function (b) {
|
|
b.padding = a;
|
|
});
|
|
};
|
|
c.prototype.isComplete = function () {
|
|
var b = this.childElements;
|
|
b = b ? b.length : 0;
|
|
return 0 < b && b === this.rowCount * this.columnCount;
|
|
};
|
|
c.prototype.arrange = function () {
|
|
var b = this.variant;
|
|
if (b) {
|
|
this.calculatePadding((this.width.isMutable ? b.minSize.width : this.width).px, (this.height.isMutable ? b.minSize.height : this.height).px);
|
|
for (var a = this.childElements, c = this.getContentSize(), f = b.components, g = [], h = [], k = [], l = [], m = 0; m < this.rowCount; m++)
|
|
for (var n = 0; n < this.columnCount; n++) {
|
|
var p = m * this.columnCount + n,
|
|
q = f[p],
|
|
r = a[p];
|
|
if (q) {
|
|
var u = q.minSize,
|
|
x = function (b, a) {
|
|
return ib(b) ? (b.val * a) / 100 : b.px;
|
|
};
|
|
q = x(u.width, c.width);
|
|
x = x(u.height, c.height);
|
|
p = r.width && !r.width.isMutable ? r.width : u.width;
|
|
r = r.height && !r.height.isMutable ? r.height : u.height;
|
|
g[n] = oa([g[n], Ya(p) ? p.val : 0]);
|
|
h[m] = oa([h[m], Ya(r) ? r.val : 0]);
|
|
k[n] = oa([k[n], q]);
|
|
l[m] = oa([l[m], x]);
|
|
} else (k[n] = oa([k[n], 0])), (l[m] = oa([l[m], 0])), (g[n] = oa([g[n], 0])), (h[m] = oa([h[m], 0]));
|
|
}
|
|
m = [];
|
|
n = [];
|
|
g = Ta(g);
|
|
u = Ta(h);
|
|
h = [];
|
|
for (var v = 0; v < this.rowCount; v++)
|
|
for (var y = 0; y < this.columnCount; y++) {
|
|
p = v * this.columnCount + y;
|
|
q = f[p];
|
|
r = a[p];
|
|
p = b.minSize;
|
|
x = c.width - p.width.px + k[y];
|
|
var t = c.height - p.height.px + l[v];
|
|
q
|
|
? ((p = Cb(r.width) ? r.width : q.minSize.width),
|
|
(r = Cb(r.height) ? r.height : q.minSize.height),
|
|
(q = Ya(p) ? (x * p.val) / g : ib(p) ? (p.val * c.width) / 100 : p.px),
|
|
(x = Ya(r) ? (t * r.val) / u : ib(r) ? (r.val * c.height) / 100 : r.px),
|
|
(m[y] = oa([m[y], q])),
|
|
(n[v] = oa([n[v], x])),
|
|
h.push([q, x]))
|
|
: ((m[y] = oa([m[y], 0])), (n[v] = oa([n[v], 0])));
|
|
}
|
|
c = this.padding.top.px;
|
|
for (f = 0; f < this.rowCount; f++) {
|
|
k = n[f];
|
|
l = this.padding.left.px;
|
|
for (g = 0; g < this.columnCount; g++)
|
|
(p = f * this.columnCount + g),
|
|
(u = m[g]),
|
|
(r = a[p]),
|
|
(v = h[this.columnCount * f + g]),
|
|
(q = u),
|
|
(x = k),
|
|
(y = l),
|
|
(t = c),
|
|
tc(r.width) && (y += (Ge[r.xAlignment] || 0) * (u - v[0])),
|
|
tc(r.height) && (t += (Ge[r.yAlignment] || 0) * (k - v[1])),
|
|
r.updateSize({ width: q, height: x, x: y, y: t }, b.components[p]),
|
|
(l += u);
|
|
c += k;
|
|
}
|
|
}
|
|
};
|
|
c.prototype.refreshBorders = function () {
|
|
for (
|
|
var b = function (b, c) {
|
|
c = a.borders[b];
|
|
if (!c) return "continue";
|
|
var d = a.childElements[b];
|
|
b = a.borderElements[b] = a.borderElements[b] || [];
|
|
for (
|
|
var e = function (b, a) {
|
|
b = Ff([b ? 0 : a ? d.width.px : 0, b ? (a ? d.height.px : 0) : 0, b ? d.width.px : 0, b ? 0 : d.height.px], 1, d);
|
|
return "M " + b[0] + " " + b[1] + " l " + b[2] + " " + b[3];
|
|
},
|
|
f = 0;
|
|
4 > f;
|
|
f++
|
|
)
|
|
if (c[f]) {
|
|
var g = b[f],
|
|
h = !(f % 2),
|
|
q = 1 === f || 2 === f;
|
|
g ? g.attr({ d: e(h, q) }) : ((g = a.renderer.path({ d: e(h, q), strokeWidth: 1, stroke: "gray", fill: "none" })), g.add(d), (b[f] = g));
|
|
}
|
|
},
|
|
a = this,
|
|
c = 0,
|
|
f = this.childElements.length;
|
|
c < f;
|
|
c++
|
|
)
|
|
b(c);
|
|
};
|
|
c.prototype.applyPatch = function (b) {
|
|
this.refreshBorders();
|
|
a.prototype.applyPatch.call(this, b);
|
|
};
|
|
c.prototype.getReservedSpace = function () {
|
|
var b = this.variant;
|
|
return b ? { width: b.minSize.width.px, height: b.minSize.height.px } : { width: 0, height: 0 };
|
|
};
|
|
c.prototype.scoreCombination = function (b) {
|
|
return new dj(b).getScore(De.xy, [this.rowCount, this.columnCount]);
|
|
};
|
|
c.prototype.measure = function (b) {
|
|
function a(b, a) {
|
|
if (b.length !== a.length) return 0;
|
|
for (var c = [], d = 0; d < b.length; d++) {
|
|
var e = [b[d]],
|
|
f = a[d];
|
|
0 < f && e.push(f / 100);
|
|
c.push(e);
|
|
}
|
|
b = oC(c);
|
|
for (c = a = 0; c < b.length; c++) {
|
|
e = d = 0;
|
|
f = b[c];
|
|
for (var g = 0; g < f.length; g++) {
|
|
var h = f[g];
|
|
1 > h ? (d += h) : (e += h);
|
|
}
|
|
a = oa([a, 1 > d ? e / (1 - d) : e]);
|
|
}
|
|
return a;
|
|
}
|
|
for (
|
|
var c = [],
|
|
f = [],
|
|
g = { widths: [], heights: [] },
|
|
h = { widths: [], heights: [] },
|
|
k = { width: !1, height: !1 },
|
|
l = function (b) {
|
|
return ib(b) ? 0 : b.px;
|
|
},
|
|
m = function (b) {
|
|
return ib(b) ? b.val : 0;
|
|
},
|
|
n = this.childElements,
|
|
p = 0;
|
|
p < this.rowCount;
|
|
p++
|
|
)
|
|
for (var q = 0; q < this.columnCount; q++) {
|
|
var r = p * this.columnCount + q,
|
|
u = b[r],
|
|
x = n[r];
|
|
if (u) {
|
|
r = u.minSize.width;
|
|
var v = u.minSize.height,
|
|
y = Cb(x.width) ? x.width : r;
|
|
x = Cb(x.height) ? x.height : v;
|
|
k.width = k.width || Ya(y);
|
|
k.height = k.height || Ya(x);
|
|
c.push(u.score);
|
|
f.push({ x: 0, y: 0, width: r.px, height: v.px });
|
|
g.widths[q] = oa([g.widths[q] || 0, l(r)]);
|
|
g.heights[p] = oa([g.heights[p] || 0, l(v)]);
|
|
h.widths[q] = oa([h.widths[q] || 0, m(r)]);
|
|
h.heights[p] = oa([h.heights[p] || 0, m(v)]);
|
|
} else (g.widths[q] = oa([g.widths[q] || 0, 0])), (g.heights[p] = oa([g.heights[p] || 0, 0])), (h.widths[q] = oa([h.widths[q] || 0, 0])), (h.heights[p] = oa([h.heights[p] || 0, 0]));
|
|
}
|
|
g = (function (b, c, d) {
|
|
var e = a(b.widths, c.widths);
|
|
b = a(b.heights, c.heights);
|
|
return { width: Qa(e, { stretch: d.width }), height: Qa(b, { stretch: d.height }) };
|
|
})(g, h, k);
|
|
return { components: b, score: { whitespace: this.combineScores(c, f), magnitude: g.width.px * g.height.px }, minSize: this.completeSize(g.width, g.height), index: 0 };
|
|
};
|
|
c.prototype.mixCombinations = function (b) {
|
|
for (
|
|
var a = this.rowCount,
|
|
c = this.columnCount,
|
|
f = [],
|
|
g = b.reduce(function (b, a) {
|
|
return b.length > a.length ? b : a;
|
|
}).length,
|
|
h = 0;
|
|
h < a;
|
|
h++
|
|
)
|
|
for (var k = 0; k < c; k++)
|
|
for (var l = b[h * c + k], m = l.length - 1, n = g; 0 < n--; ) {
|
|
var p = ((m * n) / g + 0.5) << 0;
|
|
f[n] || (f[n] = []);
|
|
f[n].push(l[p]);
|
|
}
|
|
return f;
|
|
};
|
|
c.prototype.val = function (b) {
|
|
if (!b) return this.gridElements;
|
|
this.rowCount = b.length;
|
|
this.columnCount = jm(
|
|
b,
|
|
function (b, a) {
|
|
return a.length > b ? a.length : b;
|
|
},
|
|
0
|
|
);
|
|
this.clear(Tc(b));
|
|
for (var a = this.cellSpacing / 2 || 0, c = 0; c < this.rowCount; c++)
|
|
for (var f = 0; f < this.columnCount; f++) {
|
|
var g = b[c][f] || this.layout.panel({ type: "panel" }),
|
|
h = this.wrapInnerItem(g, a);
|
|
this.gridElements.push(g);
|
|
h.add(this);
|
|
}
|
|
this.refreshBorders();
|
|
return this;
|
|
};
|
|
c.prototype.wrapInnerItem = function (b, a) {
|
|
if (b.parent) return b.parent;
|
|
a = this.layout.panel({ padding: a });
|
|
"px" !== b.width.valueType && ((a.width = qa(b.width)), "%" === b.width.valueType && (b.width.val = 100));
|
|
"px" !== b.height.valueType && ((a.height = qa(b.height)), "%" === b.height.valueType && (b.height.val = 100));
|
|
"Icon" !== b.constructor.name && ((a.attrs = Hb(b.attrs, Pg)), (b.attrs = {}));
|
|
b.add(a);
|
|
return a;
|
|
};
|
|
c.prototype.clear = function (b) {
|
|
for (var a = this.childElements, c = 0, f = a.length; c < f; c++) {
|
|
var g = a[c],
|
|
h = this.gridElements[c];
|
|
g && ((g.parent = null), g.destroyAttachedElements(), -1 === b.indexOf(h) && g.patchDestroy());
|
|
}
|
|
this.borderElements = [];
|
|
this.gridElements = [];
|
|
this.childElements = [];
|
|
this.combinations = [];
|
|
this.variant = null;
|
|
this.itemsCount = 0;
|
|
return this;
|
|
};
|
|
c.prototype.fillProperties = function (b) {
|
|
if (b) {
|
|
var c = this.processAttrs(b);
|
|
a.prototype.fillProperties.call(this, b);
|
|
c && this.isComplete() && this.setRenewComplete();
|
|
}
|
|
};
|
|
c.prototype.processAttrs = function (b) {
|
|
for (var a = !1, c = Dt.length, f = 0; f < c; f++) {
|
|
var g = Dt[f],
|
|
h = b[g];
|
|
t(h) && ((a = a || this[g] !== h), (this[g] = h), delete b[g]);
|
|
}
|
|
return a;
|
|
};
|
|
return c;
|
|
})(Sg),
|
|
Et = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.availableAttributes = function () {
|
|
return hB;
|
|
};
|
|
c.prototype.defaultConfig = function () {
|
|
var b = this.layout;
|
|
b = b ? C(b.renderer, "errorReporting.chart") : void 0;
|
|
b = (b ? b.boxDefaults() : Cf()).outline;
|
|
return { fill: "white", "border-color": b.color, "border-width": b.width };
|
|
};
|
|
c.prototype.getPaddingOffset = function (b, a) {
|
|
b = b.valueType ? b.px : b;
|
|
var c = a.valueType ? a.px : a;
|
|
a = Yw(b, c, this.shape || {});
|
|
b = 0 === b && 0 === c;
|
|
return { top: a[1] + (b ? 0 : this.strokeWidth), bottom: a[3] + (b ? 0 : this.strokeWidth), left: a[0] + (b ? 0 : this.strokeWidth), right: a[2] + (b ? 0 : this.strokeWidth) };
|
|
};
|
|
c.prototype.fillProperties = function (b) {
|
|
b && (this.processAttrs(b), a.prototype.fillProperties.call(this, b));
|
|
};
|
|
c.prototype.destroyRect = function () {
|
|
this.rect && (delete this._box_cache_, this.rect.destroy(), (this.rect = null));
|
|
};
|
|
c.prototype.patchRect = function () {
|
|
var b = this.strokeWidth,
|
|
a = this.getBbox(),
|
|
c = !a.width || !a.height;
|
|
if (!this.childElements.length || c) this.destroyRect();
|
|
else if (a.width === 2 * b && a.height === 2 * b) this.destroyRect();
|
|
else if (
|
|
((b = W(this.attrs || {}, {
|
|
"border-width": this.strokeWidth,
|
|
stroke: this.stroke,
|
|
fill: this.fillColor,
|
|
shadow: this.shadow,
|
|
width: oa([a.width - b, 0]),
|
|
height: oa([a.height - b, 0]),
|
|
x: b / 2,
|
|
y: b / 2,
|
|
shape: this.shape,
|
|
})),
|
|
this.pixelCorrection && ((a = Ff(b, this.strokeWidth, this)), L(b, a)),
|
|
(b = Sc({}, b, eB)),
|
|
(b = this.cached(b, Lc.WriteIfChanged, "_box_cache_")))
|
|
)
|
|
this.rect ? this.rect.attr(b) : ((this.rect = this.renderer.shape("rectangle", b)), (b = this.firstItem()) ? ((b = this.getLowermostElement() || b.el), this.rect.addBefore(b)) : this.rect.add(this.getElement())),
|
|
this.rectAttrsApplied({ d: this.rect.attr("d") });
|
|
};
|
|
c.prototype.emptyPatch = function () {
|
|
a.prototype.emptyPatch.call(this);
|
|
this.patchRect();
|
|
};
|
|
c.prototype.applyPatch = function (b) {
|
|
a.prototype.applyPatch.call(this, Sc({}, b, jB));
|
|
this.patchRect();
|
|
};
|
|
c.prototype.patchDestroy = function () {
|
|
this.rect && (this.rect.destroy(), delete this.rect);
|
|
a.prototype.patchDestroy.call(this);
|
|
};
|
|
c.prototype.rectAttrsApplied = function (b) {};
|
|
c.prototype.firstItem = function () {
|
|
return this.childElements && this.childElements.length
|
|
? S(this.childElements, function (b) {
|
|
return b.isPatched;
|
|
})
|
|
: null;
|
|
};
|
|
c.prototype.calculatePadding = function (b, a) {
|
|
var c = this.padding;
|
|
b = this.getPaddingOffset(b, a);
|
|
return { left: c.left.px + b.left, right: c.right.px + b.right, top: c.top.px + b.top, bottom: c.bottom.px + b.bottom };
|
|
};
|
|
c.prototype.completeSize = function (b, a) {
|
|
var c = this.padding,
|
|
d = this.getPaddingOffset(b, a);
|
|
return lt(b, a, { padding: c, offset: d });
|
|
};
|
|
c.prototype.processAttrs = function (b) {
|
|
J(b, "stroke-width") && ((this.strokeWidth = parseInt(b["stroke-width"]) || 0), delete b["stroke-width"]);
|
|
J(b, "stroke") && ((this.stroke = b.stroke), delete b.stroke);
|
|
J(b, "color") && ((this.fillColor = b.color), delete b.color);
|
|
J(b, "fill") && ((this.fillColor = b.fill), delete b.fill);
|
|
J(b, "shadow") && ((this.shadow = b.shadow), delete b.shadow);
|
|
J(b, "shape") && ((this.shape = b.shape), delete b.shape, this.setRenewComplete());
|
|
if (J(b, "radius")) {
|
|
this.shape = this.shape || {};
|
|
this.shape.r = b.radius;
|
|
var a = b.corners && ja(b.corners),
|
|
c = a ? b.corners : this.shape.corners || [{ type: "round" }, { type: "round" }, { type: "round" }, { type: "round" }];
|
|
a &&
|
|
!J(c[0], "type") &&
|
|
(c = B(c, function (b) {
|
|
return { type: b };
|
|
}));
|
|
this.shape.corners = c;
|
|
delete b.radius;
|
|
delete b.corners;
|
|
this.setRenewComplete();
|
|
}
|
|
};
|
|
return c;
|
|
})(Sg),
|
|
Ft = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.fillProperties = function (b) {
|
|
b && J(b, "text") && (this.textAttr !== b.text && ((this.textAttr = b.text), O(this.textAttr) && (this.textAttr = { val: this.textAttr }), this.createTextAndSetTextValue()), delete b.text);
|
|
a.prototype.fillProperties.call(this, b);
|
|
};
|
|
c.prototype.createTextAndSetTextValue = function () {
|
|
this.textAttr
|
|
? this.textVisual
|
|
? this.textVisual.attr(this.textAttr)
|
|
: ((this.textVisual = this.layout.textStack()), (this.textAttr.zIndex = 1), this.textVisual.attr(this.textAttr), this.textVisual.add(this))
|
|
: this.textVisual && (this.textVisual.destroy(), (this.textVisual = null));
|
|
};
|
|
return c;
|
|
})(Et),
|
|
NC = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.availableAttributes = function () {
|
|
return Vi;
|
|
};
|
|
c.prototype.createElement = function (b) {
|
|
b = this.renderer.element("g", b);
|
|
if (this._innerSvg) {
|
|
var a = b.el;
|
|
if (t(a.innerHTML)) return (a.innerHTML = this._innerSvg), b;
|
|
var c = ba.createElement("div");
|
|
c.innerHTML = "<svg><g>" + this._innerSvg + "</g></svg>";
|
|
w(c.childNodes[0].childNodes, function (b) {
|
|
return a.appendChild(b);
|
|
});
|
|
}
|
|
return b;
|
|
};
|
|
c.prototype.fillProperties = function (b) {
|
|
b && ((this._innerSvg = b.innerSvg || this._innerSvg), a.prototype.fillProperties.call(this, b));
|
|
};
|
|
return c;
|
|
})(Hf),
|
|
Mc = {},
|
|
Md = {},
|
|
Gt = { strategy: "width", textRendering: "geometricPrecision" },
|
|
Zq = { fontSize: "12px", fontFamily: "tahoma, geneva, sans-serif" };
|
|
Mc.panel = Sg;
|
|
Mc.stack = Tg;
|
|
Mc.grid = MC;
|
|
Mc["stack:text"] = LC;
|
|
Mc["box:text"] = Ft;
|
|
Mc.box = Et;
|
|
Md.icon = Ct;
|
|
Md.image = HC;
|
|
Md.rect = IC;
|
|
Md.shape = At;
|
|
Md.text = zt;
|
|
Md.svgContainer = NC;
|
|
var ki = {},
|
|
Al = (function () {
|
|
function a(a) {
|
|
this.children = [];
|
|
this._needToDestroy = [];
|
|
var b = this;
|
|
a = W(Gt, a);
|
|
b.renderer = ft.create(a);
|
|
b.pixelCorrection = t(a.pixelCorrection) ? a.pixelCorrection : !0;
|
|
b.svgStyles = W({}, Gt);
|
|
b.refreshHandler = ym.onDefer(function (a) {
|
|
a = b.disableAnimation();
|
|
b.refreshRootBox();
|
|
b.refresh();
|
|
a && b.enableAnimation();
|
|
}, 30);
|
|
}
|
|
a.prototype.refresh = function () {
|
|
this.destroyChildren();
|
|
this.eachChildren(function (a) {
|
|
return a.refresh();
|
|
});
|
|
};
|
|
a.prototype.refreshRootBox = function () {
|
|
this.rootBox = this.renderer.box();
|
|
};
|
|
a.prototype.getRootBox = function () {
|
|
this.rootBox || this.refreshRootBox();
|
|
return this.rootBox;
|
|
};
|
|
a.prototype.eachChildren = function (a) {
|
|
var b = this,
|
|
c;
|
|
w(this.children, function (b) {
|
|
b.parent ? ((c = c || []), c.push(b)) : a(b);
|
|
});
|
|
c &&
|
|
w(c, function (a) {
|
|
b.children.splice(b.children.indexOf(a), 1);
|
|
});
|
|
};
|
|
a.prototype.removeChild = function (a) {
|
|
a = this.children.indexOf(a);
|
|
0 <= a && (this.needToDestroy(this.children[a]), this.children.splice(a, 1));
|
|
};
|
|
a.prototype.addChild = function (a) {
|
|
-1 === this.children.indexOf(a) && this.children.push(a);
|
|
};
|
|
a.prototype.needToDestroy = function (a) {
|
|
this._needToDestroy.push(a);
|
|
};
|
|
a.prototype.destroyChildren = function () {
|
|
1 > this._needToDestroy.length ||
|
|
(w(this._needToDestroy, function (a) {
|
|
return a.patch();
|
|
}),
|
|
(this._needToDestroy = []));
|
|
};
|
|
a.prototype.destroy = function () {
|
|
this.refreshHandler && this.refreshHandler.un();
|
|
this.renderer.destroy();
|
|
};
|
|
a.prototype.item = function (a) {
|
|
return a ? this.createLayoutItem(qa(a)) : null;
|
|
};
|
|
a.prototype.panel = function (a) {
|
|
a = a || { type: "panel" };
|
|
a = O(a) ? { type: a } : qa(a);
|
|
$q(a);
|
|
var b = Mc[a.type],
|
|
c = !b && a.type,
|
|
e = c ? [this.createLayoutItem(a)] : a.val || [];
|
|
b || (delete a.type, delete a.val, (a = W(c ? {} : a, { type: "panel", val: e })));
|
|
return this.createPanel(a);
|
|
};
|
|
a.prototype.box = function (a) {
|
|
a = W({ type: "box" }, a || {});
|
|
!a.mode && a.text && (a.mode = "text");
|
|
a.mode && (a.type = "box:" + a.mode);
|
|
return this.createPanel(a);
|
|
};
|
|
a.prototype.stack = function (a) {
|
|
a = W({ type: "stack" }, a || {});
|
|
return this.createPanel(a);
|
|
};
|
|
a.prototype.stackY = function (a) {
|
|
a = W({ type: "stack:y" }, a || {});
|
|
return this.panel(a);
|
|
};
|
|
a.prototype.text = function (a) {
|
|
void 0 === a && (a = "");
|
|
return this.createVisual({ type: "text", val: a });
|
|
};
|
|
a.prototype.textStack = function (a) {
|
|
void 0 === a && (a = "");
|
|
return this.createPanel({ type: "stack:text", text: a });
|
|
};
|
|
a.prototype.rect = function (a) {
|
|
return this.createVisual(W({ type: "rect" }, a || {}));
|
|
};
|
|
a.prototype.group = function (a) {
|
|
return this.createVisual(W({ type: "group" }, a || {}));
|
|
};
|
|
a.prototype.svgContainer = function (a) {
|
|
return this.createVisual(W({ type: "svgContainer" }, { innerSvg: a }));
|
|
};
|
|
a.prototype.image = function (a) {
|
|
return this.createVisual(W({ type: "image" }, a || {}));
|
|
};
|
|
a.prototype.shape = function (a, b) {
|
|
return this.createVisual(W({ type: "shape", mode: a }, b || {}));
|
|
};
|
|
a.prototype.icon = function (a) {
|
|
return this.createVisual(W({ type: "icon", name: O(a) ? a : null }, a || {}));
|
|
};
|
|
a.prototype.attr = function (a, b) {
|
|
Pa(a) ? Na(this.svgStyles, a, { fontFamily: "", fontSize: "" }) : O(a) && t(b) && this.svgStyles[a] && (this.svgStyles[a] = b);
|
|
a = this.renderer.attr(null, a, b);
|
|
return t(a) ? a : this;
|
|
};
|
|
a.prototype.add = function (a) {
|
|
a && this.attr({ container: a });
|
|
return this;
|
|
};
|
|
a.prototype.button = function (a) {
|
|
return this.createPanel(W({ type: "button" }, a || {}));
|
|
};
|
|
a.prototype.input = function (a) {
|
|
return this.createPanel(W({ type: "input" }, a || {}));
|
|
};
|
|
a.prototype.file = function (a) {
|
|
return this.createPanel(W({ type: "file" }, a || {}));
|
|
};
|
|
a.prototype.color = function (a) {
|
|
return this.createPanel(W({ type: "color" }, a || {}));
|
|
};
|
|
a.prototype.range = function (a) {
|
|
return this.createPanel(W({ type: "range" }, a || {}));
|
|
};
|
|
a.prototype.finishAnimations = function () {
|
|
return Ce.getAnimations().map(function (a) {
|
|
return a.cancel();
|
|
});
|
|
};
|
|
a.prototype.disableAnimation = function () {
|
|
var a = !1 === this.attr("disableAnimation");
|
|
a && this.attr("disableAnimation", !0);
|
|
return a;
|
|
};
|
|
a.prototype.enableAnimation = function () {
|
|
this.attr("disableAnimation", !1);
|
|
};
|
|
a.prototype.createPanel = function (a) {
|
|
for (var b = Mc[a.type], c = a.val || [], e = [], f = 0, g = c.length; f < g; f++) {
|
|
var h = c[f];
|
|
if (h instanceof Array) {
|
|
e.push([]);
|
|
for (var k = 0, l = h.length; k < l; k++) {
|
|
var m = h[k];
|
|
(m = m instanceof Gf ? m : this.createLayoutItem(m)) && e[f].push(m);
|
|
}
|
|
} else (m = h instanceof Gf ? h : this.createLayoutItem(h)) && e.push(m);
|
|
}
|
|
a = new b(this, a);
|
|
e.length && a.val(e);
|
|
return a;
|
|
};
|
|
a.prototype.createVisual = function (a) {
|
|
var b = a.type,
|
|
c = Md[b];
|
|
if (!c) {
|
|
if (a.isNanoChart) {
|
|
a = Object.keys(ke("nanoChartTypes").members);
|
|
c = b.length;
|
|
for (var e = 0, f = a.length; e < f; e++) {
|
|
var g = a[e],
|
|
h = b,
|
|
k = g;
|
|
if (0 === h.length) h = k.length;
|
|
else if (0 === k.length) h = h.length;
|
|
else {
|
|
for (var l = [], m = 0; m <= k.length; m++) l[m] = [m];
|
|
for (var n = 0; n <= h.length; n++) l[0][n] = n;
|
|
for (m = 1; m <= k.length; m++) for (n = 1; n <= h.length; n++) l[m][n] = k[m - 1] === h[n - 1] ? l[m - 1][n - 1] : Math.min(l[m - 1][n - 1] + 1, Math.min(l[m][n - 1] + 1, l[m - 1][n] + 1));
|
|
h = l[k.length][h.length];
|
|
}
|
|
if (3 > h && (!p || h < c)) {
|
|
var p = g;
|
|
c = h;
|
|
}
|
|
}
|
|
Ma.emit("warning", "layout", p ? "microchartNotFoundSuggestion" : "microchartNotFound", { data: [b, p], container: C(this.renderer, "wrapper.el") });
|
|
}
|
|
return null;
|
|
}
|
|
return new c(this, a);
|
|
};
|
|
a.prototype.createLayoutItem = function (a) {
|
|
if (!a.type && !O(a.type)) return null;
|
|
$q(a);
|
|
return Mc[a.type] ? this.createPanel(a) : this.createVisual(a);
|
|
};
|
|
return a;
|
|
})(),
|
|
Fl = (function () {
|
|
function a(a) {
|
|
void 0 === a && (a = {});
|
|
this.schema = a;
|
|
this.lengths = {};
|
|
this.indexes = {};
|
|
this.calculations = {};
|
|
this.uniqTypes = {};
|
|
this.ordered = {};
|
|
this.data = {};
|
|
this.dataFlat = {};
|
|
}
|
|
a.prototype.getKeys = function () {
|
|
for (var a = this.getAllKeys(), b = [], d = 0, e = a.length; d < e; d++) this.data[a[d]].length && b.push(a[d]);
|
|
return b;
|
|
};
|
|
a.prototype.getAllKeys = function () {
|
|
return Object.keys(this.data);
|
|
};
|
|
a.prototype.getKey = function (a) {
|
|
return (a = this.data[a]) ? a.slice() : [];
|
|
};
|
|
a.prototype.getKeyRef = function (a) {
|
|
return this.data[a] || [];
|
|
};
|
|
a.prototype.hasKey = function (a) {
|
|
return this.data[a] && this.data[a].length;
|
|
};
|
|
a.prototype.hasAllKeys = function (a) {
|
|
var b = !0;
|
|
a = "array" === I(a) ? a : a.split(",");
|
|
for (var c = 0, e = a.length; c < e; c++)
|
|
if (!this.hasKey(a[c])) {
|
|
b = !1;
|
|
break;
|
|
}
|
|
return b;
|
|
};
|
|
a.prototype.hasAnyKeys = function (a) {
|
|
for (var b = 0, c = a.length; b < c; b++) if (this.hasKey(a[b])) return !0;
|
|
};
|
|
a.prototype.getValue = function (a, b) {
|
|
var c;
|
|
return (c = this.data[a]) ? c[b] : void 0;
|
|
};
|
|
a.prototype.setValue = function (a, b, d) {
|
|
this.data[a][b] = d;
|
|
};
|
|
a.prototype.getItem = function (a) {
|
|
for (var b = this.getKeys(), c = {}, e, f = 0, g = b.length; f < g; f++) {
|
|
var h = b[f];
|
|
t((e = this.getValue(h, a))) && (c[h] = e);
|
|
}
|
|
return c;
|
|
};
|
|
a.prototype.findValue_i = function (a, b) {
|
|
var c,
|
|
e,
|
|
f = this.uniqTypes[a];
|
|
if (f && "date" === f[0]) return this.findValue_iDate(a, b);
|
|
if ((e = this.data[a]) && -1 < (c = e.indexOf(b))) return this.indexes[a][c];
|
|
};
|
|
a.prototype.findValue_iDate = function (a, b) {
|
|
var c = this.data[a];
|
|
b = b.getTime ? b.getTime() : b;
|
|
for (var e = 0, f = c.length; e < f; e++) if (c[e].getTime() === b) return this.indexes[a][e];
|
|
};
|
|
a.prototype.findInterpolatedInfo = function (a, b) {
|
|
var c = this.uniqTypes[a];
|
|
if (c && "date" === c[0]) return this.findInterpolatedInfo_date(a, b);
|
|
a = this.data[a];
|
|
c = 0;
|
|
for (var e = a.length; c < e; c++) {
|
|
var f = a[c],
|
|
g = void 0;
|
|
if (b === f) return { i: c, inter: 0 };
|
|
if (b >= f && c < e - 1 && b < (g = a[c + 1])) return { i: c, inter: Y(0, 1, f, g, b) };
|
|
}
|
|
return { i: -1, inter: 0 };
|
|
};
|
|
a.prototype.findInterpolatedInfo_date = function (a, b) {
|
|
a = this.data[a];
|
|
var c = I(b);
|
|
b = "string" === c ? Date.parse(b) : "date" === c ? b.getTime() : b;
|
|
c = 0;
|
|
for (var e = a.length; c < e; c++) {
|
|
var f = a[c].getTime(),
|
|
g = void 0;
|
|
if (b === f) return { i: c, inter: 0 };
|
|
if (b >= f && c < e - 1 && b < (g = a[c + 1].getTime())) return { i: c, inter: Y(0, 1, f, g, b) };
|
|
}
|
|
return { i: -1, inter: 0 };
|
|
};
|
|
a.prototype.max_i = function (a) {
|
|
return (a = this.calculations[a]) ? a.max_i : -1;
|
|
};
|
|
a.prototype.min_i = function (a) {
|
|
return (a = this.calculations[a]) ? a.min_i : -1;
|
|
};
|
|
a.prototype.max = function (a) {
|
|
return (a = this.calculations[a]) ? a.max : void 0;
|
|
};
|
|
a.prototype.min = function (a) {
|
|
return (a = this.calculations[a]) ? a.min : void 0;
|
|
};
|
|
a.prototype.sum = function (a) {
|
|
return (a = this.calculations[a]) ? a.sum : void 0;
|
|
};
|
|
a.prototype.sumAbs = function (a) {
|
|
return (a = this.calculations[a]) ? a.sumAbs : void 0;
|
|
};
|
|
a.prototype.concat = function (a) {
|
|
return this.getKeyRef(a).slice(0);
|
|
};
|
|
a.prototype.indexObject = function (a, b) {
|
|
var c = Object.keys(a);
|
|
this.indexKeys(c, a, b);
|
|
};
|
|
a.prototype.indexKeys = function (a, b, d) {
|
|
for (var c, f = 0, g = a.length; f < g; f++) {
|
|
var h = a[f],
|
|
k = this.schema[h] || {},
|
|
l = b[h];
|
|
c = this.data[h] = this.data[h] || [];
|
|
var m = (this.indexes[h] = this.indexes[h] || []);
|
|
this.lengths[h] = this.lengths[h] + 1 || 1;
|
|
if (t(b[h]))
|
|
if (((c[d] = l), m.push(d), "number" === (c = this.addUniqType(h, l)))) this.addCalcValue(h, l, d);
|
|
else if ("array" === c && k.flatten) for (h = this.dataFlat[h] = this.dataFlat[h] || [], k = 0, c = l.length; k < c; k++) h.push(l[k]);
|
|
else "date" === c && this.addCalcValue(h, l.getTime(), d);
|
|
}
|
|
};
|
|
a.prototype.sortBy = function (a, b, d) {
|
|
void 0 === b && (b = !0);
|
|
var c = this,
|
|
f = this.indexes[a],
|
|
g = !!f,
|
|
h = d
|
|
? function (b) {
|
|
return d(c.getItem(b));
|
|
}
|
|
: (function () {
|
|
var b = c.data[a];
|
|
g = b && b.length;
|
|
return function (a) {
|
|
return b[a];
|
|
};
|
|
})();
|
|
if (g) {
|
|
f = f.map(function (b, a) {
|
|
return { _i: b, val: h(a) };
|
|
});
|
|
var k = function (b, a) {
|
|
return b.val < a.val ? -1 : b.val > a.val ? 1 : 0;
|
|
},
|
|
l = function (b, a) {
|
|
return k(a, b);
|
|
};
|
|
f.sort(b ? k : l);
|
|
return B(f, function (b) {
|
|
return b._i;
|
|
});
|
|
}
|
|
};
|
|
a.prototype.sortByNone = function () {
|
|
var a = this,
|
|
b = 0;
|
|
w(pa(this.data), function (c) {
|
|
a.data[c].length > b && (b = a.data[c].length);
|
|
});
|
|
var d = [];
|
|
ob(b, function (b) {
|
|
return d.push(b);
|
|
});
|
|
return d;
|
|
};
|
|
a.prototype.addUniqType = function (a, b) {
|
|
b = I(b);
|
|
a = this.uniqTypes[a] = this.uniqTypes[a] || [];
|
|
0 > a.indexOf(b) && a.push(b);
|
|
return b;
|
|
};
|
|
a.prototype.addCalcValue = function (a, b, d) {
|
|
var c = (this.calculations[a] = this.calculations[a]);
|
|
c ? (b > c.max && ((c.max = b), (c.max_i = d)), b < c.min && ((c.min = b), (c.min_i = d)), (c.sum += b), (c.sumAbs += Vb.abs(b))) : (this.calculations[a] = { min: b, max: b, min_i: d, max_i: d, sum: b, sumAbs: Vb.abs(b) });
|
|
};
|
|
a.prototype.reset = function (a) {
|
|
var b = this;
|
|
a
|
|
? this.resetKey(a)
|
|
: (w(this.getKeys(), function (a) {
|
|
b.resetKey(a);
|
|
}),
|
|
(this.lengths = {}));
|
|
};
|
|
a.prototype.resetKey = function (a) {
|
|
delete this.data[a];
|
|
delete this.indexes[a];
|
|
delete this.calculations[a];
|
|
delete this.uniqTypes[a];
|
|
delete this.lengths[a];
|
|
delete this.ordered[a];
|
|
};
|
|
a.prototype.countDecimals = function (a) {
|
|
var b = this.data[a],
|
|
c = [0];
|
|
this.dataFlat[a] ? (b = this.dataFlat[a]) : 2 !== a.length || !this.data[a[0]] || ("e" !== a[1] && "s" !== a[1]) || (b = this.data[a[0]]);
|
|
if (b && b.length) {
|
|
a = 0;
|
|
for (var e = b.length; a < e; a++) c.push(Yf(b[a]));
|
|
}
|
|
return Math.max.apply(Math, H(c));
|
|
};
|
|
a.prototype.log = function (a) {
|
|
a = Object.keys(this.data);
|
|
w(a, function (b) {});
|
|
};
|
|
return a;
|
|
})(),
|
|
OC = (function () {
|
|
function a(a) {
|
|
this.chart = a;
|
|
this.items = {};
|
|
this.spItems = [];
|
|
}
|
|
a.prototype.getSPItems = function () {
|
|
return this.spItems.slice(0);
|
|
};
|
|
a.prototype.register = function (a) {
|
|
var b = zb(a);
|
|
this.items[b] = a;
|
|
"SmartPalette" === a.kind && this.spItems.push(a);
|
|
return a;
|
|
};
|
|
a.prototype.remove = function (a) {
|
|
if ((a = z(a.id, a.currentOptions.id))) return this.removeById(a);
|
|
};
|
|
a.prototype.exists = function (a) {
|
|
return this.items[a];
|
|
};
|
|
a.prototype.filter = function (a) {
|
|
return ea(this.items, a);
|
|
};
|
|
a.prototype.destroyItem = function (a) {
|
|
var b;
|
|
return (b = this.items[a]) ? (b.destroy && b.destroy(), this.removeById(a), !0) : !1;
|
|
};
|
|
a.prototype.removeById = function (a) {
|
|
var b = this.items,
|
|
c;
|
|
return (c = b[a]) ? ("SmartPalette" === c.kind && pb(this.spItems, c), delete b[a], !0) : !1;
|
|
};
|
|
return a;
|
|
})(),
|
|
li = {},
|
|
Ht = function () {
|
|
function a(b, a) {
|
|
var c = {};
|
|
if (0 < a.length)
|
|
if ("string" === I(a)) {
|
|
c = sf(a, "seriesType,chartType");
|
|
var d = sf(a, "seriesType,chartType", !0);
|
|
c.invalid && ((c = {}), (d = {}));
|
|
} else c = a;
|
|
if (0 < b.length || !c.chartType)
|
|
if ("string" === I(b))
|
|
var e = sf(b, "chartType"),
|
|
f = sf(b, "chartType", !0);
|
|
else e = b;
|
|
b = id({}, d, f, c, e);
|
|
switch (b.chartType) {
|
|
case "radar":
|
|
case "gauge":
|
|
var g = !0;
|
|
}
|
|
return { dst: c, ct: e, ctdst: b, isPaneType: g };
|
|
}
|
|
function c(b, c) {
|
|
var d = k,
|
|
e = b.toLowerCase(),
|
|
g;
|
|
c && (g = f(c)) && ((c = a(k, g)), (d = c.ctdst));
|
|
if ((d.chartType && d.chartType.toLowerCase() === e) || (d.seriesType && d.seriesType.toLowerCase() === e)) return !0;
|
|
if ("calendar" === b || "heatmap" === b || "variwide" === b) return e === d.seriesType;
|
|
}
|
|
function b(b) {
|
|
var c;
|
|
b && b.currentOptions && (b = b.currentOptions);
|
|
return b && (c = f(b)) ? a(k, c) : a(k, "");
|
|
}
|
|
function d(a, c) {
|
|
var d = b(c);
|
|
d = d.ctdst || d;
|
|
if ((c = d[a])) return c.toLowerCase();
|
|
if (!c && "seriesType" === a && "map" === d.chartType) return "map";
|
|
}
|
|
function e(b) {
|
|
var a;
|
|
g.chartType && -1 < "pie,gauge,funnel,cone,pyramid".indexOf(g.chartType) && (a = !0);
|
|
if (a && b) {
|
|
for (var c = [], d = [], e = 0, f = b.length; e < f; e++) {
|
|
a = !1;
|
|
var h = b[e];
|
|
h.i = e;
|
|
h.type && sf(h.type, "chartType", "noDef").chartType && (c.push([h]), (a = !0));
|
|
a || d.push(h);
|
|
}
|
|
d.length && c.splice(0, 0, d);
|
|
return c;
|
|
}
|
|
return a;
|
|
}
|
|
function f(b) {
|
|
var a,
|
|
d,
|
|
e,
|
|
f = b.type;
|
|
c("map") && !f && (a = b.map) && (d = a.type || C(a, "features.0.geometry.type")) && (f = (e = l[d]) ? e : d);
|
|
return f;
|
|
}
|
|
var g = {},
|
|
h = {},
|
|
k,
|
|
l = { LineString: "line", MultiLineString: "line", Polygon: "column", MultiPolygon: "column", Point: "marker", MultiPoint: "marker" };
|
|
return {
|
|
init: function (b) {
|
|
var c = C(b, "type") || "";
|
|
b = C(b, "defaultSeries.type") || C(b, "defaultSeries_type") || "";
|
|
c = a(c, b);
|
|
g = c.ct || {};
|
|
h = c.dst || {};
|
|
k = c.ctdst || {};
|
|
},
|
|
isType: c,
|
|
getIsTypeChecker: function (b) {
|
|
var c = k,
|
|
d;
|
|
b && (d = f(b)) && ((b = a(k, d)), (c = b.ctdst));
|
|
var e = function (b, a) {
|
|
return c[b] && c[b].toLowerCase() === a;
|
|
};
|
|
return function (b) {
|
|
var a = b.toLowerCase();
|
|
if (e("chartType", a) || e("seriesType", a)) return !0;
|
|
if ("calendar" === b || "heatmap" === b || "variwide" === b) return a === c.seriesType;
|
|
};
|
|
},
|
|
hasSetting: function (b, c, d) {
|
|
var e = k,
|
|
g;
|
|
d && (g = f(d)) && ((d = a(k, g)), (e = d.ctdst));
|
|
if ((d = e[b]))
|
|
if (((d = d.toLowerCase()), "behavior" === b)) {
|
|
if (-1 < ("," + d + ",").indexOf("," + c.toLowerCase() + ",")) return !0;
|
|
} else if (d && d === c.toLowerCase()) return !0;
|
|
},
|
|
settingVal: d,
|
|
getSettingChecker: function (a) {
|
|
var c,
|
|
d = b(a);
|
|
d = d.ctdst || d;
|
|
return function (b) {
|
|
if ((c = d[b])) return c.toLowerCase();
|
|
if (!c && "seriesType" === b && "map" === d.chartType) return "map";
|
|
};
|
|
},
|
|
curCtDst: b,
|
|
mergeSettings: a,
|
|
getPaneGroups: function (b) {
|
|
var a = [],
|
|
c = [],
|
|
d;
|
|
h.chartType && (d = 1);
|
|
for (var e = 0, f = b.length; e < f; e++) {
|
|
var g = !1,
|
|
k = b[e];
|
|
k.i = e;
|
|
if (d || k.type) {
|
|
var l = d || sf(k.type, "chartType", "noDef");
|
|
if (d || l.chartType) a.push([k]), (g = !0);
|
|
}
|
|
g || c.push(k);
|
|
}
|
|
0 < c.length && a.splice(0, 0, c);
|
|
return B(a, function (b) {
|
|
var a = B(b, function (b) {
|
|
return b.id;
|
|
}).join("");
|
|
b.hash = a;
|
|
return b;
|
|
});
|
|
},
|
|
shouldDataMerge: e,
|
|
dataMergeType: function (b) {
|
|
if (e())
|
|
return (
|
|
(b = S(b, function (b) {
|
|
return S(b.points, function (b) {
|
|
return z(b[1], b.y, 0).length;
|
|
});
|
|
})),
|
|
"gauge" === g.chartType && b ? "collect" : "sum"
|
|
);
|
|
},
|
|
isMapLayer: function (b) {
|
|
if (c("map") && ("object" === typeof b.getMapData() || (c("map") && (C(b.userOptions, "mapDataId") || C(b.userPoints, "0.mapDataId"))))) return !0;
|
|
},
|
|
isHoriz: function () {
|
|
return "horizontal" === d("chartType");
|
|
},
|
|
};
|
|
},
|
|
xy = {
|
|
solid: "",
|
|
dot: "1,3",
|
|
dash: "4,3",
|
|
dashdot: "4,3,1,3",
|
|
dashdotdot: "4,3,1,3,1,3",
|
|
shortdash: "3,1",
|
|
shortdot: "1,1",
|
|
shortdashdot: "3,1,1,1",
|
|
shortdashdotdot: "3,1,1,1,1,1",
|
|
longdash: "8,3",
|
|
longdashdot: "8,3,1,3",
|
|
longdashdotdot: "8,3,1,3,1,3",
|
|
},
|
|
It = function (a) {
|
|
return a;
|
|
},
|
|
PC = function () {
|
|
return [
|
|
{ option: "outline.color", check: It, dependent: "outline.width", value: 1 },
|
|
{
|
|
option: "outline.width",
|
|
check: function (a) {
|
|
return 0 < a;
|
|
},
|
|
dependent: "boxVisible",
|
|
value: !0,
|
|
},
|
|
{ option: "fill", check: It, dependent: "boxVisible", value: !0, important: !0 },
|
|
];
|
|
},
|
|
Nm = function (a, c) {
|
|
var b = PC();
|
|
b.push.apply(b, H(c || []));
|
|
w(b, function (b) {
|
|
var c = ja(b.option) ? b.option : [b.option];
|
|
c = S(c, function (c) {
|
|
return b.check(C(a, c));
|
|
});
|
|
var d = b.important || Q(C(a, b.dependent));
|
|
c && d && Z(a, b.dependent, b.value);
|
|
});
|
|
return a;
|
|
},
|
|
kb = function (a, c, b, d, e) {
|
|
var f;
|
|
Q((f = a[b])) || (c[d || b] = e ? e(f) : f);
|
|
},
|
|
oi = t,
|
|
zy = [10, 5, 4, 2, 1, 0.5],
|
|
Ay = [50, 20, 10, 5, 4, 2, 1],
|
|
fr = { badMin: "min", badMax: "max" },
|
|
Cl = Vb,
|
|
Nd = function (a, c) {
|
|
return {
|
|
val: function (b) {
|
|
return a(Fg(b.indexedData), c ? b.scCache : b.cache, "max", "min");
|
|
},
|
|
axis: "y",
|
|
};
|
|
},
|
|
Od = function (a, c, b) {
|
|
return {
|
|
val: function (d) {
|
|
return c(d.pOptions[a], b ? d.scCache : d.cache, a + "Max", a + "Min");
|
|
},
|
|
axis: a,
|
|
};
|
|
},
|
|
bb = function (a, c, b) {
|
|
return {
|
|
val: function (b) {
|
|
return c(b, a);
|
|
},
|
|
axis: a,
|
|
fStr: b,
|
|
};
|
|
},
|
|
ta = function (a, c) {
|
|
return J(a.cache, c) ? a.cache[c] : a.scCache && a.scCache[c];
|
|
},
|
|
uc = function (a, c, b) {
|
|
a = a.cache["y" === c ? "list" : c + "List"];
|
|
return a.length ? b(a) : "";
|
|
},
|
|
He = function (a) {
|
|
return {
|
|
val: function (c) {
|
|
return a(c);
|
|
},
|
|
yVal: !0,
|
|
};
|
|
},
|
|
Jt = {
|
|
yaxislabel: function (a) {
|
|
return a.cache.yAxis ? N(a.cache.yAxis.currentOptions, ["label", "text"]) : void 0;
|
|
},
|
|
xaxislabel: function (a) {
|
|
return a.cache.xAxis ? N(a.cache.xAxis.currentOptions, ["label", "text"]) : void 0;
|
|
},
|
|
zaxislabel: function (a) {
|
|
return a.chart.currentOptions.zAxisLabelText || N(a.chart.currentOptions, ["zAxis", "label", "text"]);
|
|
},
|
|
percentoftotal: bb("y", qi),
|
|
ypercentoftotal: bb("y", qi),
|
|
xpercentoftotal: bb("x", qi),
|
|
zpercentoftotal: bb("z", qi),
|
|
icon: function (a) {
|
|
return a.point.getIconTag();
|
|
},
|
|
},
|
|
QC = {
|
|
percentofdatarange: Nd(Jd, !0),
|
|
ypercentofdatarange: Nd(Jd, !0),
|
|
xpercentofdatarange: Od("x", Jd, !0),
|
|
zpercentofdatarange: Od("z", Jd, !0),
|
|
percentofdatamax: Nd(rc, !0),
|
|
ypercentofdatamax: Nd(rc, !0),
|
|
xpercentofdatamax: Od("x", rc, !0),
|
|
zpercentofdatamax: Od("z", rc, !0),
|
|
percentofseriesrange: Nd(Jd),
|
|
ypercentofseriesrange: Nd(Jd),
|
|
xpercentofseriesrange: Od("x", Jd),
|
|
zpercentofseriesrange: Od("z", Jd),
|
|
percentofseriesmax: Nd(rc),
|
|
ypercentofseriesmax: Nd(rc),
|
|
xpercentofseriesmax: Od("x", rc),
|
|
zpercentofseriesmax: Od("z", rc),
|
|
percentofaxisrange: bb("y", Dl),
|
|
ypercentofaxisrange: bb("y", Dl),
|
|
xpercentofaxisrange: bb("x", Dl),
|
|
percentofseries: bb("y", pi),
|
|
ypercentofseries: bb("y", pi),
|
|
xpercentofseries: bb("x", pi),
|
|
zpercentofseries: bb("z", pi),
|
|
percentofgroup: bb("y", ri),
|
|
ypercentofgroup: bb("y", ri),
|
|
xpercentofgroup: bb("x", ri),
|
|
zpercentofgroup: bb("z", ri),
|
|
percentile: bb("y", si, "n0"),
|
|
ypercentile: bb("y", si, "n0"),
|
|
xpercentile: bb("x", si, "n0"),
|
|
zpercentile: bb("z", si, "n0"),
|
|
seriespointcount: function (a) {
|
|
return a.series.userPoints.length;
|
|
},
|
|
seriesname: function (a) {
|
|
return a.sOptions.name;
|
|
},
|
|
parentid: function (a) {
|
|
return a.pOptions.parent || "";
|
|
},
|
|
parentname: function (a) {
|
|
var c = a.pOptions.parent,
|
|
b = a.chart.chartItemManager.exists(c);
|
|
return (c && b ? b : a.sOptions).name;
|
|
},
|
|
complete: function (a) {
|
|
return z(C(a.pOptions, "complete.y"), C(a.pOptions, "complete"), 0);
|
|
},
|
|
zvalue: function (a) {
|
|
return a.pOptions.z;
|
|
},
|
|
xvalue: function (a) {
|
|
return t(a.pOptions.x) ? (a.fOptions.xIsTime ? new Date(a.pOptions.x) : a.pOptions.x) : a.pOptions.name;
|
|
},
|
|
yvalue: He(function (a) {
|
|
return gr(a);
|
|
}),
|
|
value: He(function (a) {
|
|
return gr(a);
|
|
}),
|
|
ystart: He(function (a) {
|
|
return Eg(a.indexedData) ? a.indexedData.ys : a.indexedData.y;
|
|
}),
|
|
open: He(function (a) {
|
|
return a.pOptions.open;
|
|
}),
|
|
close: He(function (a) {
|
|
return a.pOptions.close;
|
|
}),
|
|
high: He(function (a) {
|
|
return t(a.pOptions.high) ? a.pOptions.high : Eg(a.indexedData) ? a.indexedData.ye : a.indexedData.y;
|
|
}),
|
|
low: He(function (a) {
|
|
return t(a.pOptions.low) ? a.pOptions.low : Eg(a.indexedData) ? a.indexedData.ys : a.indexedData.y;
|
|
}),
|
|
id: function (a) {
|
|
return a.pOptions.id;
|
|
},
|
|
name: function (a) {
|
|
return a.pOptions.name || ("string" === typeof a.pOptions.x ? a.pOptions.x : a.indexedData.name || "");
|
|
},
|
|
color: function (a) {
|
|
return Lb(a.series.getPointAttr(a.point).baseColor, 0);
|
|
},
|
|
yrange: function (a) {
|
|
return Fg(a.indexedData);
|
|
},
|
|
subvaluelist: function (a) {
|
|
return (a = a.pOptions.subvalue) && a.values ? a.values.join(",") : "";
|
|
},
|
|
},
|
|
If = {
|
|
type: function (a) {
|
|
return ta(a, "type");
|
|
},
|
|
maxpointname: function (a) {
|
|
return ta(a, "nMax");
|
|
},
|
|
ymaxpointname: function (a) {
|
|
return ta(a, "nMax");
|
|
},
|
|
xmaxpointname: function (a) {
|
|
return ta(a, "nXMax");
|
|
},
|
|
zmaxpointname: function (a) {
|
|
return ta(a, "nZMax");
|
|
},
|
|
minpointname: function (a) {
|
|
return ta(a, "nMin");
|
|
},
|
|
yminpointname: function (a) {
|
|
return ta(a, "nMin");
|
|
},
|
|
xminpointname: function (a) {
|
|
return ta(a, "nXMin");
|
|
},
|
|
zminpointname: function (a) {
|
|
return ta(a, "nZMin");
|
|
},
|
|
pointcount: function (a) {
|
|
return ta(a, "list").length;
|
|
},
|
|
median: function (a) {
|
|
return uc(a, "y", qh);
|
|
},
|
|
ymedian: function (a) {
|
|
return uc(a, "y", qh);
|
|
},
|
|
xmedian: function (a) {
|
|
return uc(a, "x", qh);
|
|
},
|
|
zmedian: function (a) {
|
|
return uc(a, "z", qh);
|
|
},
|
|
mode: function (a) {
|
|
return uc(a, "y", ph);
|
|
},
|
|
ymode: function (a) {
|
|
return uc(a, "y", ph);
|
|
},
|
|
xmode: function (a) {
|
|
return uc(a, "x", ph);
|
|
},
|
|
zmode: function (a) {
|
|
return uc(a, "z", ph);
|
|
},
|
|
rangesum: function (a) {
|
|
return ta(a, "yRangeSum");
|
|
},
|
|
yrangesum: function (a) {
|
|
return ta(a, "yRangeSum");
|
|
},
|
|
yaverage: function (a) {
|
|
return ta(a, "average");
|
|
},
|
|
average: function (a) {
|
|
return ta(a, "average");
|
|
},
|
|
zaverage: function (a) {
|
|
return ta(a, "zAverage");
|
|
},
|
|
xaverage: function (a) {
|
|
return ta(a, "xAverage");
|
|
},
|
|
},
|
|
Om = {
|
|
lasty: function (a) {
|
|
return uc(a, "y", P);
|
|
},
|
|
lastx: function (a) {
|
|
return uc(a, "x", P);
|
|
},
|
|
lastz: function (a) {
|
|
return uc(a, "z", P);
|
|
},
|
|
name: function (a) {
|
|
return a.series.name;
|
|
},
|
|
value: function (a) {
|
|
return a.cache.sum;
|
|
},
|
|
color: function (a) {
|
|
return a.sOptions.color ? a.sOptions.color : 1 === a.series._points.length ? a.series._points[0].tokenValue("%color") : a.series.info.style.base.color;
|
|
},
|
|
id: function (a) {
|
|
return a.sOptions.id || a.sOptions.options.id;
|
|
},
|
|
ylist: function (a) {
|
|
return a.cache.list ? a.cache.list.join(",") : "";
|
|
},
|
|
xlist: function (a) {
|
|
return a.cache.list ? a.cache.list.join(",") : "";
|
|
},
|
|
zlist: function (a) {
|
|
return a.cache.list ? a.cache.list.join(",") : "";
|
|
},
|
|
},
|
|
Ug = {
|
|
name: function (a) {
|
|
return z(a.item.name, a.cache.name, C(a.cache, "label.text"), "");
|
|
},
|
|
color: function (a) {
|
|
return a.item.color;
|
|
},
|
|
minutes: function (a) {
|
|
return El(a, 6e4);
|
|
},
|
|
hours: function (a) {
|
|
return El(a, 36e5);
|
|
},
|
|
days: function (a) {
|
|
return El(a, 864e5);
|
|
},
|
|
};
|
|
Ib("value,ysum", function (a) {
|
|
return (Ug[a] = function (a) {
|
|
return a.val.pop ? a.val[1] : a.val;
|
|
});
|
|
});
|
|
Ib("min,ymin,xmin", function (a) {
|
|
return (Ug[a] = function (a) {
|
|
var b = a.evaluedValue[0],
|
|
c = a.cache.min,
|
|
e = a.cache.low;
|
|
a = (a = a.cache.value) && (ja(a[0]) ? a[0][0] : a[0]);
|
|
return z(b, c, e, a);
|
|
});
|
|
});
|
|
Ib("max,ymax,xmax", function (a) {
|
|
return (Ug[a] = function (a) {
|
|
var b = a.evaluedValue[1],
|
|
c = a.cache.max,
|
|
e = a.cache.options;
|
|
a = (a = a.cache.value) && (ja(a[0]) ? a[0][1] : a[1]);
|
|
return z(b, c, e, a);
|
|
});
|
|
});
|
|
Ib("range,yrange", function (a) {
|
|
return (Ug[a] = function (a) {
|
|
return a.val.pop ? a.val[1] - a.val[0] : a.val;
|
|
});
|
|
});
|
|
Ib("Sum,Average", function (a) {
|
|
var c = Se(a);
|
|
Ib("Min,Max", function (b) {
|
|
var d = Se(b);
|
|
Ib("y,x,z", function (e) {
|
|
var f = "y" === e;
|
|
f &&
|
|
(If[d + c] = function (b) {
|
|
return ta(b, d + a);
|
|
});
|
|
If[e + d + c] = function (c) {
|
|
return ta(c, (f ? d : e + b) + a);
|
|
};
|
|
});
|
|
});
|
|
});
|
|
Ib("Sum,Min,Max,Range,Absmax", function (a) {
|
|
return Ib("y,x,z", function (c) {
|
|
var b = Se(a),
|
|
d = "y" === c;
|
|
d &&
|
|
(If[b] = function (a) {
|
|
return ta(a, b);
|
|
});
|
|
If[c + b] = function (e) {
|
|
return ta(e, d ? b : c + a);
|
|
};
|
|
var e = b + "ofseries";
|
|
d &&
|
|
(Om[e] = function (a) {
|
|
return a.scCache[b];
|
|
});
|
|
Om[c + e] = function (e) {
|
|
return e.scCache[d ? b : c + a];
|
|
};
|
|
});
|
|
});
|
|
var Gy = L(QC, Jt),
|
|
Hy = L(Om, W(Jt, If)),
|
|
Iy = L(
|
|
{
|
|
title: function (a) {
|
|
return a.chart.options("title.label.text");
|
|
},
|
|
maxseriesname: function (a) {
|
|
return ta(a, "snMax");
|
|
},
|
|
ymaxseriesname: function (a) {
|
|
return ta(a, "snMax");
|
|
},
|
|
xmaxseriesname: function (a) {
|
|
return ta(a, "snXMax");
|
|
},
|
|
zmaxseriesname: function (a) {
|
|
return ta(a, "snZMax");
|
|
},
|
|
minseriesname: function (a) {
|
|
return ta(a, "snMin");
|
|
},
|
|
yminseriesname: function (a) {
|
|
return ta(a, "snMin");
|
|
},
|
|
xminseriesname: function (a) {
|
|
return ta(a, "snXMin");
|
|
},
|
|
zminseriesname: function (a) {
|
|
return ta(a, "snZMin");
|
|
},
|
|
name: function (a) {
|
|
return ta(a, "name");
|
|
},
|
|
typelist: function (a) {
|
|
return a.cache.typeList.join(",");
|
|
},
|
|
sumlist: function (a) {
|
|
return a.cache.sumList.join(",");
|
|
},
|
|
ysumlist: function (a) {
|
|
return a.cache.sumList.join(",");
|
|
},
|
|
xsumlist: function (a) {
|
|
return a.cache.xSumList.join(",");
|
|
},
|
|
zsumlist: function (a) {
|
|
return a.cache.zSumList.join(",");
|
|
},
|
|
},
|
|
If
|
|
),
|
|
Jy = Ug,
|
|
mr = Ng,
|
|
Gl = /(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(.\d+)[+-](\d{2}):(\d{2})/g,
|
|
Pb = function (a, c) {
|
|
return function (b) {
|
|
return a[c](b);
|
|
};
|
|
},
|
|
RC = function (a, c) {
|
|
var b = Yb(a);
|
|
a = c([b[0], b[1]]);
|
|
c = c([b[2], b[3]]);
|
|
c = Ze([a[0], a[1], c[0], c[1]]);
|
|
0 > c[2] && ((c[0] -= c[2]), (c[2] = Math.abs(c[2])));
|
|
0 > c[3] && ((c[1] -= c[3]), (c[3] = Math.abs(c[2])));
|
|
return c;
|
|
},
|
|
Py = [3, 2, 3, 2],
|
|
Xy = /(-?[0-9]+),(-?[0-9]+)/,
|
|
Sy = /[\s,]/,
|
|
vr = { top: "t", topright: "r", right: "r", bottomright: "r", bottom: "b", topleft: "l", left: "l", bottomleft: "l" },
|
|
Ty = { topright: "righttop", bottomright: "rightbottom", topleft: "lefttop", bottomleft: "leftbottom" },
|
|
Uy = {
|
|
insidetop: "tctc",
|
|
insidetopright: "trtr",
|
|
insideright: "mrmr",
|
|
insidebottomright: "brbr",
|
|
insidebottom: "bcbc",
|
|
insidetopleft: "tltl",
|
|
insidelefttop: "tltl",
|
|
insiderighttop: "trtr",
|
|
insiderightbottom: "brbr",
|
|
insideleftbottom: "blbl",
|
|
insideleft: "mlml",
|
|
insidebottomleft: "blbl",
|
|
insidecenter: "mcmc",
|
|
insidemiddle: "mcmc",
|
|
top: "bctc",
|
|
topcenter: "bctc",
|
|
righttop: "tltr",
|
|
right: "mlmr",
|
|
middleright: "mlmr",
|
|
rightbottom: "blbr",
|
|
bottom: "tcbc",
|
|
bottomcenter: "tcbc",
|
|
lefttop: "trtl",
|
|
left: "mrml",
|
|
middleleft: "mrml",
|
|
leftbottom: "brbl",
|
|
topright: "brtr",
|
|
bottomright: "trbr",
|
|
topleft: "bltl",
|
|
bottomleft: "tlbl",
|
|
outsidetopright: "bltr",
|
|
outsidebottomright: "tlbr",
|
|
outsidetopleft: "brtl",
|
|
outsidebottomleft: "trbl",
|
|
outsiderighttop: "bltr",
|
|
outsiderightbottom: "tlbr",
|
|
outsidelefttop: "brtl",
|
|
outsideleftbottom: "trbl",
|
|
},
|
|
Vy = { top: 0, bottom: 0, middle: 0, left: 1, right: 1, center: 1 },
|
|
Wy = B(
|
|
(function (a) {
|
|
return (a = ke(a)) ? Object.keys(a.members) : [];
|
|
})("orientation"),
|
|
function (a) {
|
|
return a.toLowerCase();
|
|
}
|
|
).join("|"),
|
|
Kt = (function () {
|
|
function a(a, b, d) {
|
|
void 0 === d && (d = []);
|
|
this.currentOptions = {};
|
|
this.userOptions = {};
|
|
this.chart = a;
|
|
if (void 0 === b) {
|
|
var c = 1;
|
|
b = {};
|
|
}
|
|
b = this.normalizeOptions(b);
|
|
this.userOptions = qa(b);
|
|
C(this.userOptions, "data.length") &&
|
|
(this.userOptions.data = this.userOptions.data.map(function (b) {
|
|
return qa(b);
|
|
}));
|
|
this.renderer = a && (a.renderer || a);
|
|
this.init.apply(this, H(d));
|
|
!c && this.setOptions();
|
|
}
|
|
a.prototype.options = function (a, b) {
|
|
if ("string" === typeof a) return this.optionsGet(a);
|
|
A(this.userOptions, this.normalizeOptions(a));
|
|
this.setOptions();
|
|
return this;
|
|
};
|
|
a.prototype.init = function () {
|
|
for (var a = 0; a < arguments.length; a++);
|
|
this.defaultMutable = !0;
|
|
};
|
|
a.prototype.normalizeOptions = function (a, b) {
|
|
return Sa(a, b);
|
|
};
|
|
a.prototype.optionsGetter = function (a) {
|
|
return xr(this, a);
|
|
};
|
|
a.prototype.optionsGet = function (a) {
|
|
return C(this.currentOptions, a.replace(/_/g, "."));
|
|
};
|
|
a.prototype.defaultOptions = function () {
|
|
return {};
|
|
};
|
|
a.prototype.contextOptions = function () {
|
|
return this.defaultContextOptions;
|
|
};
|
|
a.prototype.dependentOptions = function () {
|
|
return [];
|
|
};
|
|
a.prototype.completeUserOptions = function () {
|
|
return Nm(this.userOptions, this.dependentOptions());
|
|
};
|
|
a.prototype.setOptions = function () {
|
|
var a = [this.defaultOptions()],
|
|
b = this.contextOptions();
|
|
b && a.push(b);
|
|
a.push(this.completeUserOptions());
|
|
!this.defaultMutable && a.unshift({});
|
|
this.currentOptions = A.apply(null, a);
|
|
return this;
|
|
};
|
|
return a;
|
|
})(),
|
|
Lt = (function (a) {
|
|
function c(b, c, e) {
|
|
void 0 === e && (e = []);
|
|
b = a.call(this, b, c, e) || this;
|
|
b.attribs = {};
|
|
b.events = {};
|
|
b.updateOptions = {};
|
|
b.subscriptions = [];
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function () {
|
|
for (var b = 0; b < arguments.length; b++);
|
|
this.defaultMutable = !0;
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
return this.chart ? { animation: this.chart.options("animation") } : {};
|
|
};
|
|
c.prototype.setOptions = function () {
|
|
a.prototype.setOptions.call(this);
|
|
this.setRootVisuals();
|
|
return this;
|
|
};
|
|
c.prototype.options = function (b, a) {
|
|
var c = this.optionsGetter(b);
|
|
if ("NotGetter" !== c) return c;
|
|
A(this.userOptions, this.normalizeOptions(b));
|
|
this.setOptions();
|
|
!1 !== a && this.render(null, a);
|
|
return this;
|
|
};
|
|
c.prototype.normalizeUpdateOpt = function (b, a) {
|
|
"object" === typeof a ? ((b = yf(b)), (a = A(b, Sa(a)))) : (a = b);
|
|
return a;
|
|
};
|
|
c.prototype.afterUpdate = function (b) {
|
|
if (b && b.then) {
|
|
var a = this;
|
|
Ce.await(function () {
|
|
b.then && (b.then.call(a.chart), delete b.then);
|
|
});
|
|
}
|
|
};
|
|
c.prototype.setRootVisuals = function () {
|
|
this.rootPanel || (this.rootPanel = this.renderer.panel());
|
|
return this;
|
|
};
|
|
c.prototype.setAttribs = function () {
|
|
return this;
|
|
};
|
|
c.prototype.render = function (b, a) {
|
|
return this;
|
|
};
|
|
c.prototype.getBounds = function (b) {
|
|
var a = b || this.rootPanel,
|
|
c = a;
|
|
for (b = [0, 0]; c; ) (b[0] += c.x.px + c.offsetX), (b[1] += c.y.px + c.offsetY), (c = c.parent);
|
|
a.isPatched
|
|
? ((a = a.getBbox()), (a = [a.width, a.height]))
|
|
: ((c = a.combinations), c.length || (c = a.composeCombinations()), (c = c[0]), (a = [z(C(a.attrs, "width"), c.minSize.width.px), z(C(a.attrs, "height"), c.minSize.height.px)]));
|
|
return b.concat(a);
|
|
};
|
|
c.prototype.add = function (b, a) {
|
|
this.parentLayoutItem = b || this.renderer;
|
|
this.render();
|
|
this.rootPanel.add(b, a);
|
|
return this;
|
|
};
|
|
c.prototype.destroy = function () {
|
|
w(this.rootVisuals, function (b) {
|
|
return b && b.destroy && b.destroy();
|
|
});
|
|
this.rootPanel && this.rootPanel.destroy();
|
|
};
|
|
c.prototype.handleEvent = function (b, a, c, f) {
|
|
if (t(a) && t(c) && (a = this.events[a])) return a[b](c, f);
|
|
};
|
|
c.prototype.trigger = function (b, a) {
|
|
this.events[b].trigger(a, this);
|
|
};
|
|
c.prototype.on = function (b, a, c) {
|
|
(b = this.handleEvent(c ? "onDefer" : "on", b, a, c)) && this.subscriptions.push(b);
|
|
return this;
|
|
};
|
|
c.prototype.un = function (b, a) {
|
|
this.handleEvent("un", b, a);
|
|
return this;
|
|
};
|
|
c.prototype.triggerUser = function (b, a) {
|
|
return this.triggerUserTarget(b, this, a);
|
|
};
|
|
c.prototype.triggerUserTarget = function (b, a, c) {
|
|
var d = this.currentOptions.events;
|
|
d = (b = d && mh(d, b)) && d[b];
|
|
if (Fb(d)) return d.call(a, c || void 0);
|
|
};
|
|
c.prototype.hasUserEvent = function (b) {
|
|
var a = this.currentOptions.events;
|
|
if (b) {
|
|
if ("any" === b) return a && pa(a).length;
|
|
if (a) return (b = mh(a, b)) && Fb(a[b]);
|
|
}
|
|
};
|
|
c.prototype.hasAnyNamedEvent = function (b) {
|
|
return this.hasUserEvent(b) || this.events[b];
|
|
};
|
|
c.prototype.click = function (b) {};
|
|
return c;
|
|
})(Kt),
|
|
jc = (function (a) {
|
|
function c(b, c, e) {
|
|
void 0 === e && (e = []);
|
|
e = a.call(this, b, c, e) || this;
|
|
e.chart = b;
|
|
void 0 === c && (c = {});
|
|
e.id = c.id || void 0;
|
|
e.ciManager = b.chartItemManager;
|
|
e.ciManager.register(e);
|
|
return e;
|
|
}
|
|
K(c, a);
|
|
c.prototype.destroy = function () {
|
|
a.prototype.destroy.call(this);
|
|
this.ciManager.remove(this);
|
|
};
|
|
return c;
|
|
})(Lt),
|
|
Zy = function (a) {
|
|
var c = [],
|
|
b = function (a, e) {
|
|
void 0 === e && (e = "");
|
|
var d;
|
|
if ("object" !== typeof a || null === a) return a;
|
|
var g = function (a, d) {
|
|
var f = typeof a;
|
|
d = e.length ? e + "." + d : d;
|
|
"object" === f && null !== a ? b(a, d) : "function" === f && c.push([d, a]);
|
|
};
|
|
if (Array.isArray(a)) {
|
|
var h = a.length;
|
|
for (d = 0; d < h; d++) g(a[d], d);
|
|
} else for (d in a) a.hasOwnProperty(d) && g(a[d], d);
|
|
};
|
|
b(a);
|
|
return c;
|
|
},
|
|
SC = fa("rotate fontFamily fontStyle fontWeight fontSize color margin padding".split(" ")),
|
|
TC = fa(["val", "xAlignment", "yAlignment", "stroke"]),
|
|
Fi = (function (a) {
|
|
function c(b, c, e) {
|
|
b = a.call(this, b, c) || this;
|
|
b.target = e;
|
|
b.currentState = "";
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.setRootVisuals = function () {
|
|
var b = (this.rootVisuals = this.rootVisuals || {}),
|
|
a = this.rootPanel,
|
|
c = this.renderer;
|
|
this.rootPanel || (a = this.rootPanel = c.panel());
|
|
b.background || (b.background = b.background || c.item({ type: "rect", fill: "transparent" }).add(a));
|
|
b.text || (b.text = b.text || c.textStack(this.getText()).attr({ width: "auto", autoWrap: "none" }).add(a));
|
|
return this;
|
|
};
|
|
c.prototype.setAttribs = function () {
|
|
var b,
|
|
a = {};
|
|
a[""] = this.translate(this.currentOptions);
|
|
if ((b = this.currentOptions.states)) b.hover && (a.hover = this.translate(C(this.currentOptions, "states.hover"))), b.select && (a.select = this.translate(C(this.currentOptions, "states.selected")));
|
|
this.attribs = a;
|
|
return this;
|
|
};
|
|
c.prototype.applyAttrs = function (b) {
|
|
this.rootPanel.attr(Hb(b, TC));
|
|
this.rootVisuals.text.attr(Hb(b, SC));
|
|
this.chart.triggerOptionsApplied("label", this);
|
|
};
|
|
c.prototype.isVisible = function () {
|
|
return !1 !== this.currentOptions.visible && this.getText().length;
|
|
};
|
|
c.prototype.getSize = function (b) {
|
|
if (!this.isVisible()) return [0, 0];
|
|
b && this.applyAttrs(b);
|
|
this.rootPanel.updateCombinations();
|
|
var a = this.rootPanel.combinations;
|
|
b = this.rootPanel.calculateMargin();
|
|
if (!a.length) return [0, 0];
|
|
a = a[0].minSize;
|
|
return [a.width.px + b.horizontal.px, a.height.px + b.vertical.px];
|
|
};
|
|
c.prototype.getSizes = function (b) {
|
|
if (!this.isVisible()) return [[0, 0]];
|
|
b && this.applyAttrs(b);
|
|
this.rootPanel.updateCombinations();
|
|
b = this.rootPanel.combinations;
|
|
var a = this.rootPanel.calculateMargin();
|
|
a = [a.horizontal.px, a.vertical.px];
|
|
return b.length
|
|
? B(b, function (b) {
|
|
b = b.minSize;
|
|
return [b.width.px + a[0], b.height.px + a[1]];
|
|
})
|
|
: [[0, 0]];
|
|
};
|
|
c.prototype.render = function () {
|
|
var b = this;
|
|
this.setOptions();
|
|
this.setAttribs();
|
|
var a = this.currentOptions,
|
|
c = this.attribs[""],
|
|
f = c.attr.label;
|
|
c = c.layout.label;
|
|
var g = this.rootVisuals.text;
|
|
if (this.isVisible()) {
|
|
this.rootPanel && this.rootPanel.visible(!0);
|
|
this.applyAttrs(c);
|
|
var h = this.rootVisuals.text.variant;
|
|
90 === Math.abs(c.rotate) && "center" === c.yAlignment && h && g.attr({ y: (h.minSize.width.px / 2) * (0 > c.rotate ? 1 : -1) });
|
|
g &&
|
|
(g.attr(f),
|
|
g.attr({ val: this.getText() }),
|
|
C(a, "states.hover") &&
|
|
((void 0).on("mouseover", function () {
|
|
b.setState("hover");
|
|
}),
|
|
(void 0).on("mouseout", function () {
|
|
b.setState("");
|
|
})));
|
|
} else this.rootPanel && this.rootPanel.visible(!1);
|
|
return this;
|
|
};
|
|
c.prototype.translate = function (b) {
|
|
var a = {},
|
|
c = {};
|
|
b = b || this.currentOptions;
|
|
c = id({}, b.style || {});
|
|
zc(
|
|
a,
|
|
b,
|
|
function (b, a) {
|
|
b.color = a;
|
|
},
|
|
"color",
|
|
Lb
|
|
);
|
|
c = qc(this.currentOptions);
|
|
return { attr: { label: a }, layout: { label: c } };
|
|
};
|
|
c.prototype.setState = function (b) {
|
|
if (b !== this.currentState) {
|
|
var a = this.attribs[b],
|
|
c = a.attr.label;
|
|
this.rootPanel.options(a.layout.label);
|
|
this.rootPanel.attr(c);
|
|
this.currentState = b;
|
|
}
|
|
};
|
|
c.prototype.attr = function (b) {
|
|
this.rootPanel.attr(b);
|
|
};
|
|
c.prototype.getTextEl = function () {
|
|
return this.rootVisuals.text;
|
|
};
|
|
c.prototype.getText = function () {
|
|
return this.evalText(this.options("text")) || "";
|
|
};
|
|
c.prototype.evalText = function (b) {
|
|
var a = this.target || this.chart;
|
|
b && a && a.replaceTokens && (b = a.replaceTokens(b));
|
|
return b;
|
|
};
|
|
return c;
|
|
})(Lt),
|
|
UC = "visible fill outline opacity radius padding position margin corners shadow width height".split(" "),
|
|
Pm = function (a) {
|
|
a = a ? a.boxDefaults() : Cf();
|
|
a.fill = Eh(a.fill, 0.8);
|
|
a.position = "bltl";
|
|
return a;
|
|
},
|
|
ej = (function (a) {
|
|
function c(b, c, e) {
|
|
b = a.call(this, b, c, [b, c, e]) || this;
|
|
b.target = e;
|
|
b.fillShading = "box";
|
|
b.asHTML = !1;
|
|
b.isVisible = !1;
|
|
b.applyOptions(!1);
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function () {
|
|
for (var b = [], a = 0; a < arguments.length; a++) b[a] = arguments[a];
|
|
G(b, 3);
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
var b = C(this.chart.currentOptions, "defaultAnnotation");
|
|
return A(Pm(this.chart), b);
|
|
};
|
|
c.prototype.setRootVisuals = function () {
|
|
var b = this,
|
|
a = this.renderer;
|
|
this.rootPanel ||
|
|
((a = this.rootPanel =
|
|
this.rootPanel ||
|
|
(this.asHTML || this.currentOptions.asHTML
|
|
? a.renderer.htmlElement().attr({ left: 0, top: 0 })
|
|
: a.box({ autoWrap: "none", transition: { auto: !0, animation: t(this.currentOptions.animation) ? this.currentOptions.animation : { duration: 1200 } } }))),
|
|
this.rootVisuals || (this.rootVisuals = { content: this.createContentVisual(a) }),
|
|
a.on("click", function (a) {
|
|
return b.click(a);
|
|
}));
|
|
return this;
|
|
};
|
|
c.prototype.getBounds = function (b) {
|
|
return !b && this.currentOptions.asHTML ? this.bbox() : a.prototype.getBounds.call(this, b);
|
|
};
|
|
c.prototype.createContentVisual = function (b) {
|
|
var a = this.renderer;
|
|
return this.asHTML || this.currentOptions.asHTML ? a.renderer.htmlElement().add(b) : a.textStack().add(b);
|
|
};
|
|
c.prototype.bbox = function (b) {
|
|
var a = this.rootPanel,
|
|
c = a.getBbox();
|
|
this.currentOptions.asHTML &&
|
|
((b = b ? Ac(this.currentOptions.margin) : [0, 0, 0, 0]),
|
|
(c.x = (parseFloat(a.attr("left")) || 0) - b[3]),
|
|
(c.y = (parseFloat(a.attr("top")) || 0) - b[0]),
|
|
(c.width = c.width + b[1] + b[3]),
|
|
(c.height = c.height + b[0] + b[2]));
|
|
return [c.x, c.y, c.width, c.height];
|
|
};
|
|
c.prototype.visible = function (b) {
|
|
t(b) || (b = "none" !== this.rootPanel.attr("display"));
|
|
this.rootPanel.attr({ display: b ? "block" : "none" });
|
|
this.setVisible(b);
|
|
return this;
|
|
};
|
|
c.prototype.setVisible = function (b) {
|
|
this.isVisible = b;
|
|
};
|
|
c.prototype.alignTo = function () {
|
|
for (var b, a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c];
|
|
(b = this.rootPanel).alignTo.apply(b, H(a));
|
|
};
|
|
c.prototype.options = function (b, a) {
|
|
var c = this.optionsGetter(b);
|
|
if ("NotGetter" !== c) return c;
|
|
c = this.normalizeOptions(b);
|
|
var d = this.userOptions.label,
|
|
g = c.label && c.label.text;
|
|
d = d && d.text;
|
|
g = t(g) && d !== g;
|
|
if (!Lj(this.userOptions, c)) return this;
|
|
this.setOptions();
|
|
c = t(a);
|
|
this.applyOptions(c ? a : { skipReflow: !0 });
|
|
if (!1 === a || (c && a.skipReflow)) return this;
|
|
g = (c = this.rootPanel) && c.isPatched && (g || void 0);
|
|
!g && c && this.chart.isRendered && !1 !== a && ((b = pa(b)), 0 < gc(b, UC).length && (g = !0));
|
|
g && (G(Ig(this), 1)[0] ? c.refresh && c.refresh() : this.chart.chartAreaSet.reflow(a, !1, !0));
|
|
this.afterUpdate(a);
|
|
return this;
|
|
};
|
|
c.prototype.normalizeOptions = function (b) {
|
|
var c = void 0;
|
|
void 0 === c && (c = "corners");
|
|
var e, f;
|
|
"undefined" !== (f = I((e = C(b, c)))) && "object" === f && (b[c] = sw(e));
|
|
return a.prototype.normalizeOptions.call(this, b);
|
|
};
|
|
c.prototype.applyOptions = function (b) {
|
|
void 0 === b && (b = {});
|
|
b = Sa(b);
|
|
this.rootPanel || this.setOptions();
|
|
var a = this.currentOptions,
|
|
c = this.userOptions,
|
|
f = this.rootPanel,
|
|
g = this.rootVisuals.content,
|
|
h = this.asHTML || a.asHTML,
|
|
k = qa(z(b.animation, a.animation, {}));
|
|
b = qa(a);
|
|
var l = qc(a.label),
|
|
m = C(a, "label.text");
|
|
if (h) {
|
|
var n = this.rootPanel,
|
|
p = n.transition(),
|
|
q = n.renderer.isAnimationDisabled(b);
|
|
b.animation = n.isPatched && !q ? (p ? A(p.getAnimationOptions(), k) : k) : null;
|
|
b = br(b);
|
|
} else (b = Cg(b, z(a.fillShading, this.fillShading))), (b.animation = k);
|
|
if ((m = this.evalText(m)) || (!this.asHTML && g && g.textAttr !== m) || (this.asHTML && f.innerHTML !== m))
|
|
(l = A({ animation: { duration: 0 } }, l)), this.asHTML || a.asHTML ? (l.innerHTML = m) : ((l.val = m), c.width && ((l.maxWidth = c.width), (l.strategy = "none"))), g && g.attr(l);
|
|
this.checkVisibility(a);
|
|
a = this.currentOptions.position;
|
|
this._pos_ !== a
|
|
? ((this._pos_ = a),
|
|
(c = this._posInfo_ = tr(this.currentOptions)),
|
|
c[0]
|
|
? ((a = c[1]),
|
|
(g = c[2]),
|
|
(k = this.chart.chartAreaSet),
|
|
(c = this.rootPanel.getBboxArray ? this.rootPanel.getBboxArray() : [0, 0].join(this.bbox(!0).slice(2))),
|
|
(g = 0 === g ? this.chart.rootVisuals.itemsBox.getGlobalBboxArray() : k.items[0].getContentGlobalBbox()),
|
|
(a = [a[0] + g[0] - c[0], a[1] + g[1] - c[1]]))
|
|
: (a = void 0))
|
|
: (a = void 0);
|
|
a && ((b[h ? "left" : "offsetX"] = h ? a[0] + "px" : a[0]), (b[h ? "top" : "offsetY"] = h ? a[1] + "px" : a[1]));
|
|
f.attr(this.transformRootAttr(b));
|
|
this.triggerOptionsApplied();
|
|
return this;
|
|
};
|
|
c.prototype.triggerOptionsApplied = function () {
|
|
this.chart.triggerOptionsApplied("annotation", this);
|
|
};
|
|
c.prototype.transformRootAttr = function (b) {
|
|
return b;
|
|
};
|
|
c.prototype.checkVisibility = function (b) {
|
|
b = !1 !== b.visible;
|
|
var a = this.rootPanel ? "none" !== this.rootPanel.attr("display") : this.isVisible,
|
|
c = b !== a;
|
|
this.setVisible(a);
|
|
c && this.visible(b);
|
|
};
|
|
c.prototype.destroy = function () {
|
|
a.prototype.destroy.call(this);
|
|
this._unsubscribeContentBox && this._unsubscribeContentBox();
|
|
this.rootPanel && this.rootPanel.destroy();
|
|
};
|
|
c.prototype.remove = function (b) {
|
|
var a = this.chart,
|
|
c;
|
|
pb(a._annotations, this);
|
|
(c = S(a.userOptions.annotations, { id: this.id })) && pb(a.userOptions.annotations, c);
|
|
this.destroy();
|
|
!1 !== b && this.chart.chartAreaSet.reflow(!1, !1, !0);
|
|
};
|
|
c.prototype.measure = function (b) {
|
|
this.isMeasured = !0;
|
|
b && !this.currentOptions.maxWidth && this.rootPanel.attr({ maxWidth: b[2] });
|
|
return this.rootPanel ? (this.rootPanel.isHtml ? ha(this.bbox(!0)) : this.rootPanel.setPreliminarySize(!0).getGlobalBboxArray(!0)) : [0, 0, 0, 0];
|
|
};
|
|
c.prototype.positionApplied = function (b) {};
|
|
c.prototype.positionUpdated = function (b) {
|
|
this.positionApplied(b);
|
|
};
|
|
c.prototype.getText = function () {};
|
|
c.prototype.evalText = function (b) {
|
|
var a = this.target || this.chart;
|
|
a && a.replaceTokens && "string" === typeof b && -1 < b.indexOf("%") && (b = a.replaceTokens(b));
|
|
return b;
|
|
};
|
|
return c;
|
|
})(jc),
|
|
VC = (function (a) {
|
|
function c(b, c) {
|
|
c = a.call(this, b.chart, c, b) || this;
|
|
c.chartArea = b;
|
|
c.fillShading = "titleBox";
|
|
return c;
|
|
}
|
|
K(c, a);
|
|
c.prototype.applyOptions = function () {
|
|
var b = this.currentOptions;
|
|
if (!1 === b.visible) return this.rootPanel.attr({ suspend: "true" }), this;
|
|
a.prototype.applyOptions.call(this);
|
|
if ((b = C(b, "position"))) "full" === b ? this.rootPanel.attr({ width: "100%", strategy: "none" }) : this.rootPanel.attr({ width: "auto" });
|
|
return this;
|
|
};
|
|
c.prototype.triggerOptionsApplied = function () {
|
|
this.chart.triggerOptionsApplied("title", this);
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
var b = this.chart;
|
|
b = b ? b.boxDefaults() : Cf();
|
|
return A(b, { position: "left", padding: [3, 3, 6, 3], corners: ["cut", "square", "square", "square"], label: { align: "left", style: { fontSize: 14 } }, animation: !1, shadow: z(b.shadow, !0) });
|
|
};
|
|
c.prototype.dependentOptions = function () {
|
|
return [
|
|
{
|
|
option: "fill",
|
|
check: function (b) {
|
|
return b;
|
|
},
|
|
dependent: "padding",
|
|
value: 3,
|
|
},
|
|
];
|
|
};
|
|
c.prototype.setRootVisuals = function () {
|
|
a.prototype.setRootVisuals.call(this);
|
|
this.rootPanel.attr({ transition: !1 });
|
|
return this;
|
|
};
|
|
c.prototype.createContentVisual = function (b) {
|
|
return this.renderer.textStack().add(b);
|
|
};
|
|
return c;
|
|
})(ej),
|
|
Qm = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.kind = "EntryWrapper";
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.defaultOptions = function () {
|
|
return {};
|
|
};
|
|
c.prototype.styleIconVisual = function (b, a) {
|
|
if (b) {
|
|
b = b.base;
|
|
var c = A({}, this.currentOptions),
|
|
d = C(c, "outline.color");
|
|
Z(c, "outline.color", d || ia("outline", c.color || "white"));
|
|
c = fc(c);
|
|
b && b.attr(c);
|
|
a.isStyled = !0;
|
|
}
|
|
};
|
|
c.prototype.getIconVisual = function (b, a, c) {
|
|
a = this.renderer;
|
|
c = c.iconVisual || {};
|
|
var d = (c.root = c.root || a.panel({ yAlignment: "center" }));
|
|
b = this.getIconPaths(b);
|
|
b.base && !c.base && (c.base = c.base || a.renderer.path({ d: b.base }).add(d));
|
|
return c;
|
|
};
|
|
c.prototype.getIconPaths = function (b) {
|
|
return { base: dc.rectangle(0, 0, b[0], b[1], { r: 2, corners: ["round", "round", "round", "round"] }), extra: void 0 };
|
|
};
|
|
c.prototype.setState = function (b) {};
|
|
c.prototype.replaceTokens = function (b, a) {
|
|
return this.chart.replaceTokens(b, a);
|
|
};
|
|
c.prototype.getFormatInfo = function () {
|
|
return this.chart.getFormatInfo();
|
|
};
|
|
return c;
|
|
})(jc),
|
|
Mt = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.kind = "RangeValueEntry";
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.replaceTokens = function (b, a) {
|
|
return Gg(b, this, a || this.getFormatInfo());
|
|
};
|
|
return c;
|
|
})(Qm),
|
|
lb = function (a) {
|
|
return "string" === typeof a
|
|
? ((a = a.trim()), a.match(Rk) ? parseFloat(a) : a.match(/\/|:|AM|PM|\.\d\./g) && !Ha(new Date(a).getTime()) && 6 <= a.length && 6 <= a.replace(/[^0-9]/g, "").length ? new Date(a).getTime() : parseFloat(a))
|
|
: a;
|
|
},
|
|
Nt = (function () {
|
|
function a(a, b) {
|
|
this.chart = a;
|
|
this.kind = "SmartPalette";
|
|
this.axisRange = [];
|
|
this.legendEntries = [];
|
|
this.colorRanges = [];
|
|
this.mode = "colorBar";
|
|
this.rangesMode = "manual";
|
|
this.currentOptions = {};
|
|
this.userOptions = {};
|
|
this.refreshExtremes = !1;
|
|
zb(b);
|
|
this.setOptions(b);
|
|
this.id = b.id;
|
|
a && (this.ciManager = a.chartItemManager).register(this);
|
|
}
|
|
a.prototype.options = function (a) {
|
|
var b = xr(this, a);
|
|
if ("NotGetter" !== b) return b;
|
|
this.setOptions(a);
|
|
return this;
|
|
};
|
|
a.prototype.setOptions = function (a) {
|
|
A(this.userOptions, this.normalizeOptions(a, "colors,id"));
|
|
this.refreshExtremes = O(a.pointValue) && this.currentOptions.pointValue !== this.userOptions.pointValue;
|
|
this.currentOptions = this.translateOptions(A({}, this.defaultOptions(), this.userOptions));
|
|
this.initialized = !1;
|
|
this.mode = a.ranges ? "ranges" : "colorBar";
|
|
this.stopPosDefined = !0;
|
|
this.colorRanges = [];
|
|
this.stops = this.getStops();
|
|
this.setStopRange();
|
|
};
|
|
a.prototype.normalizeOptions = function (a, b) {
|
|
return Sa(a, b);
|
|
};
|
|
a.prototype.translateOptions = function (a) {
|
|
var b;
|
|
if ((b = a.ranges))
|
|
if ("array" === I(b))
|
|
a.ranges = B(b, function (b) {
|
|
return "object" === I(b) ? b : { value: b };
|
|
});
|
|
else {
|
|
var c = b.min,
|
|
e = b.max,
|
|
f = [];
|
|
b = b.interval;
|
|
!t(b) || (t(c) && t(e)) || (Ma.emit("warning", a.id || this.id, "minMaxRequired", { container: this.chart.getWrapper() }), (c = c || 0), (e = z(e, 3 * b)));
|
|
if (t(c) && t(e)) {
|
|
var g = e - c;
|
|
e = z(b, g / 3);
|
|
b = lm(g / e);
|
|
20 < b && ((e = lm(g / 20)), (b = lm(g / e)), Ma.emit("warning", a.id || this.id, "spRangesOverflow", { data: ["ranges.interval"], container: this.chart.getWrapper() }));
|
|
g = 0;
|
|
for (var h = b; g < h; g++) f.push({ value: g === b - 1 ? [c + e * g, c + e * (g + 1)] : c + e * g });
|
|
a.ranges = f;
|
|
}
|
|
}
|
|
return a;
|
|
};
|
|
a.prototype.defaultOptions = function () {
|
|
return {};
|
|
};
|
|
a.prototype.syncLegendEntries = function (a) {
|
|
var b = a.smartPalette,
|
|
c = b.getRangeConfigs(),
|
|
e,
|
|
f = [];
|
|
b.legendEntries.length
|
|
? ((f = b.legendEntries),
|
|
w(f, function (b) {
|
|
return b.setColumns();
|
|
}))
|
|
: (w(c, function (b) {
|
|
f.push((e = a.addEntry(new WC(a.chart, b))));
|
|
e.setColumns();
|
|
}),
|
|
(b.legendEntries = f));
|
|
return f;
|
|
};
|
|
a.prototype.getRangeConfigs = function () {
|
|
var a = this.currentOptions,
|
|
b = a.ranges,
|
|
d = function (b, c) {
|
|
return A({ legendEntry: { value: "%min - %max", name: " ", cursor: "default", set: 1 } }, a.defaultRange || {}, b, c);
|
|
};
|
|
if ("array" === I(b))
|
|
return this.colorRanges.length
|
|
? this.colorRanges
|
|
: B(b, function (a, c) {
|
|
var e = c ? b[c - 1] : void 0,
|
|
f = c < b.length - 1 ? b[c + 1] : void 0;
|
|
c = hb(a.value, lb);
|
|
return f ? ((e = f.value), d({ min: c.pop ? c[0] : c, max: e.pop ? e[0] : e }, a)) : "array" === I(c) ? d({ min: c[0], max: c[1] }, Ga(a, "value")) : d({ min: c, max: c + Math.abs(c - lb(e.value)) }, a);
|
|
});
|
|
};
|
|
a.prototype.setStopRange = function () {
|
|
var a = B(this.stops, function (b) {
|
|
return b[0];
|
|
}),
|
|
b = Math.min.apply(Math, H(a));
|
|
a = Math.max.apply(Math, H(a));
|
|
this.stopRange = a - b;
|
|
this.stopExtremes = [b, a];
|
|
var d = hb(this.currentOptions.colorsValueRange, lb);
|
|
this.clips = !(0 <= b && 1 >= a) || d;
|
|
};
|
|
a.prototype.getStops = function (c) {
|
|
var b = this,
|
|
d = this,
|
|
e = d.currentOptions,
|
|
f = function () {
|
|
var b = [],
|
|
a = [];
|
|
a = l.map(function (b) {
|
|
return lb(b[0]);
|
|
});
|
|
for (var c = 0, d = l.length; c < d; c++) a[c] = l[c][0];
|
|
a = [Math.min.apply(null, a), Math.max.apply(null, a)];
|
|
for (c = l.length - 1; -1 < c; c--) {
|
|
d = l[c];
|
|
var e = void 0,
|
|
f = void 0;
|
|
e = [na(a[1] - lb(d[0]) + a[0], 2), d[1]];
|
|
if ((f = 0 < c ? l[c - 1] : void 0)) 3 < f.length ? ((e[2] = 1 - f[3]), (e[3] = 1 - f[2])) : 2 < f.length && ((e[2] = 0), (e[3] = 1 - f[2]));
|
|
b.push(e);
|
|
}
|
|
l = b;
|
|
},
|
|
g = function () {
|
|
var b = e.colors,
|
|
a = hb(e.colorsValueRange, lb);
|
|
d.stopPosDefined = !1;
|
|
"solid" === c && b.push(b[b.length - 1]);
|
|
var f = z(C(a, "0"), 0),
|
|
g = (z(C(a, "1"), 1) - f) / (b.length - 1);
|
|
return B(b, function (b, a) {
|
|
return "solid" === c ? [f + a * g, b, 1] : [f + a * g, b];
|
|
});
|
|
},
|
|
h = function () {
|
|
var c = e.ranges,
|
|
f = [],
|
|
g = !0,
|
|
h = [];
|
|
w(c, function (b) {
|
|
var a = "object" === I(b) ? b.value : b;
|
|
g = (b = b.color) ? g : !1;
|
|
a = hb(a, lb);
|
|
a.pop ? (f.push([a[0], b, 1]), f.push([a[1], b]), h.push(a[0])) : (f.push([a, b, 1]), h.push(a));
|
|
});
|
|
if (!g) {
|
|
e.colors || ((e.colors = ["white"]), Ma.emit("warning", e.id, "colorsRequired", { container: b.chart.getWrapper() }));
|
|
for (var k = e.colors, l = Math.min.apply(Math, H(h)), x = [], v = (Math.max.apply(Math, H(h)) - l) / (k.length - 1), y = 0, t = k.length; y < t; y++) x.push([l + v * y, k[y]]);
|
|
var E = new a(d.chart, { stops: x, invert: e.invert });
|
|
w(f, function (b) {
|
|
b[1] = E.getValueColor(b[0]);
|
|
});
|
|
w(c, function (b) {
|
|
b.color = b.value.pop ? E.getValueColor(lb(b.value[0])) : E.getValueColor(lb(b.value));
|
|
});
|
|
E.destroy();
|
|
}
|
|
return f;
|
|
},
|
|
k = function (b) {
|
|
if (b && b.length)
|
|
return b.map(function (b) {
|
|
b = b.slice(0);
|
|
b[0] = lb(b[0]);
|
|
return b;
|
|
});
|
|
},
|
|
l = "ranges" === d.mode ? h() : k(e.stops) || g();
|
|
e.invert && "ranges" !== d.mode && f();
|
|
return l;
|
|
};
|
|
a.prototype.getPointColor = function (a, b, d) {
|
|
d = d || {};
|
|
b = this.getPointValue(b, a, d);
|
|
return this.getValueColor(b, a);
|
|
};
|
|
a.prototype.getValueColor = function (a, b) {
|
|
var c = this.stops || this.getStops(b);
|
|
(function () {
|
|
if (b) {
|
|
var a;
|
|
if ((a = b.info.style.base)) for (var d = 0, g = c.length; d < g; d++) "%color" === c[d][1].toLowerCase() && (c[d][1] = a.color);
|
|
}
|
|
})();
|
|
a = this.valueToStopPos(a);
|
|
return (function (b) {
|
|
a: {
|
|
for (var a = 0, d = c.length; a < d; a++) {
|
|
var e = c[a];
|
|
if (lb(e[0]) > b) {
|
|
a = 0 === a ? [e] : [c[a - 1], e];
|
|
break a;
|
|
}
|
|
lb(e[0]);
|
|
if (a === d - 1) {
|
|
a = [e];
|
|
break a;
|
|
}
|
|
}
|
|
a = void 0;
|
|
}
|
|
d = a[0];
|
|
e = [];
|
|
if (1 === a.length) return a[0][1];
|
|
b = Y(0, 1, d[0], a[1][0], b);
|
|
2 < d.length && ((e[0] = d[2]), 3 < d.length && (e[1] = d[3]));
|
|
if (b < e[0]) return d[1];
|
|
if (1 < e.length && b > e[1]) return a[1][1];
|
|
var k = [0, 1];
|
|
1 < e.length ? (k = e) : 0 < e.length && (k[0] = e[0]);
|
|
b = Y(0, 1, k[0], k[1], b);
|
|
return qe(d[1], a[1][1], 100 * b);
|
|
})(a);
|
|
};
|
|
a.prototype.setPointSpValues = function (a, b) {
|
|
var c = a.userPoints,
|
|
e = this.currentOptions,
|
|
f = e.colorsValueRange,
|
|
g = a.colorKey || "valueSP";
|
|
if (a.info.usesSmartPalette && c && c.length) {
|
|
var h = c.length - 1,
|
|
k = c[h];
|
|
k[g] = this.getPointValue(k, a);
|
|
if (this.extremes && !this.refreshExtremes) {
|
|
b = this.extremes[0];
|
|
var l = this.extremes[1];
|
|
} else b = l = k[g];
|
|
for (; h--; ) {
|
|
k = c[h];
|
|
var m = (k = k[g] = this.getPointValue(k, a));
|
|
null !== m && !Ha(m) && (k > l ? (l = k) : k < b && (b = k));
|
|
}
|
|
this.extremes = [b, l];
|
|
this.refreshExtremes = !1;
|
|
this.dataRange = l - b;
|
|
c = !f && 0 <= b && 1 >= l;
|
|
a = this.axisConfig = {};
|
|
(e = e.colorsValueRange) ? ((b = e[0]), (l = e[1])) : c && this.clips ? ((b = 0), (l = 1)) : this.clips || ((b = this.stopPosToValue(0)), (l = this.stopPosToValue(1)));
|
|
b = Dg(b, l, 8, { minIntervalGap: 0 });
|
|
this.axisRange = [b.min, b.max];
|
|
l = 0.001 * (b.max - b.min);
|
|
a.min = b.min - l;
|
|
a.max = b.max + l;
|
|
a.interval = b.interval;
|
|
a.tickInterval = b.interval;
|
|
a.startOnTick = a.endOnTick = !1;
|
|
}
|
|
return this.extremes;
|
|
};
|
|
a.prototype.getPointValue = function (a, b, d) {
|
|
d = d || {};
|
|
var c = this.currentOptions,
|
|
f = t(a._i) ? b._points[a._i] : S(b._points, { id: a.id }) || S(b._points, { currentOptions: { id: a.id } });
|
|
f || (a = 0);
|
|
d = d.spSrc;
|
|
"number" === typeof a
|
|
? (f = a)
|
|
: ((a = b.ctmIsType("heatmap") ? "percentOfZAxisRange" : "percentOfYAxisRange"),
|
|
(c = c.pointValue) || ((b = 1 < b.userPoints.length ? ("chart" === d ? "{%percentOfDataRange/100}" : "{%percentOfSeriesRange/100}") : "{" + a + "/100}"), (c = b)),
|
|
(b = c),
|
|
"function" === I(b)
|
|
? (f = b(f))
|
|
: (-1 === b.indexOf(":") && (b = b.replace("}", ":n5}")), (this.tokenUsed = b), (f = f.replaceTokens(b, { y: { culture: "en-US" }, x: { culture: "en-US" } })), (f = f.replace(/,/g, "")), (f = lb(f))));
|
|
return f;
|
|
};
|
|
a.prototype.valueToStopPos = function (a) {
|
|
var b,
|
|
c = yr(this),
|
|
e = c.dataPerc;
|
|
return c.stopPerc && !e && (b = this.axisRange) && t(b[0]) ? Y(0, 1, b[0], b[1], a) : a;
|
|
};
|
|
a.prototype.stopPosToValue = function (a) {
|
|
var b,
|
|
c = yr(this),
|
|
e = c.dataPerc;
|
|
return c.stopPerc && !e && (b = this.extremes) && t(b[0]) && !Ha(b[0]) ? Y(b[0], b[1], 0, 1, a) : a;
|
|
};
|
|
a.prototype.getTraditionalStops = function (a, b) {
|
|
function c(b, a, c) {
|
|
function d(b) {
|
|
b = Y(h[0], h[1], 0, 1, b);
|
|
b = e.stopPosToValue(b);
|
|
return e.getValueColor(b);
|
|
}
|
|
var f = [];
|
|
f = (function () {
|
|
for (var d = [], e = 0, f = b.length; e < f; e++) {
|
|
var g = b[e],
|
|
h = e < f - 1 ? b[e + 1] : "undefined",
|
|
k = 0 < e ? b[e - 1] : "undefined";
|
|
if (g[0] < a && h[0] > a) d.push(a);
|
|
else if (!(g[0] < a && h[0] < a))
|
|
if (g[0] === a) d.push(g[0]);
|
|
else if (h[0] !== a)
|
|
if (g[0] > c && k) {
|
|
if (k[0] < c) {
|
|
d.push(c);
|
|
break;
|
|
}
|
|
} else d.push(g[0]);
|
|
}
|
|
return d;
|
|
})();
|
|
return (function (b) {
|
|
for (var e = [], f = 0, g = b.length; f < g; f++) {
|
|
var h = b[f];
|
|
e.push([Y(0, 1, a, c, h), d(h)]);
|
|
}
|
|
return e;
|
|
})(f);
|
|
}
|
|
var e = this,
|
|
f = [],
|
|
g = e.getStops(a),
|
|
h = [];
|
|
a = e.axisRange;
|
|
var k = function (b) {
|
|
return Y(0, 1, h[0], h[1], b);
|
|
};
|
|
h = e.stopExtremes;
|
|
for (var l = 0, m = g.length; l < m; l++) {
|
|
var n = g[l],
|
|
p = l < m ? g[l + 1] : void 0;
|
|
f.push([k(lb(n[0])), n[1]]);
|
|
if (p) {
|
|
if (2 < n.length) {
|
|
var q = 1 === n[2] ? 1e-4 : 0;
|
|
f.push([Y(k(lb(n[0])), k(p[0]) - q, 0, 1, n[2]), n[1]]);
|
|
}
|
|
3 < n.length && f.push([Y(k(lb(n[0])), k(p[0]), 0, 1, n[3]), p[1]]);
|
|
}
|
|
}
|
|
b && (b.pop && (a = b), b && e.clips && 2 === a.length && ((b = k(e.valueToStopPos(a[0]))), (a = k(e.valueToStopPos(a[1]))), (f = c(f, b, a))));
|
|
return f;
|
|
};
|
|
a.prototype.getPaletteCSS = function (a, b) {
|
|
a = this.getTraditionalStops(a);
|
|
var c = [];
|
|
c.push(b ? "to bottom" : "to right");
|
|
a.map(function (b) {
|
|
var a = Dh(b[1]).hex;
|
|
b = 100 * lb(b[0]);
|
|
c.push(a + " " + b + "%");
|
|
});
|
|
return "background: linear-gradient(" + c.join(", ") + ");";
|
|
};
|
|
a.prototype.destroy = function () {
|
|
this.ciManager.remove(this);
|
|
this.destroyEntries();
|
|
};
|
|
a.prototype.destroyEntries = function () {
|
|
w(this.legendEntries, function (a) {
|
|
return a.destroy();
|
|
});
|
|
};
|
|
return a;
|
|
})(),
|
|
WC = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.kind = "SmartPaletteEntry";
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
return c;
|
|
})(Mt),
|
|
Ot,
|
|
XC = (function () {
|
|
function a(a, b) {
|
|
this._layout = a;
|
|
this._renderer = a.renderer;
|
|
this._options = { label: "", type: "default", delay: 300, fill: "#fff" };
|
|
this._mini = this._isShowing = this._isStarted = !1;
|
|
Ot ||
|
|
(this._renderer.cssText(
|
|
"\n\n.loader,\n.loader .loader-overlay {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tleft: 0;\n\tbottom: 0;\n\toverflow: hidden;\n}\n\n.loader {\n\tanimation:loader-fadeIn ease-in 1;\n\tanimation-fill-mode:forwards;\n\tanimation-duration:0.1s;\n\n\topacity: 0;\n\tvisibility: visible;\n}\n\n.loader.hide,\n.loader.anim-hide {\n\tanimation:loader-fadeOut ease-in 1;\n\tanimation-fill-mode:forwards;\n\tanimation-duration:0.03s;\n}\n\n.loader.hide {\n\tanimation-duration:0s;\n\tvisibility: hidden;\n}\n\n.loader .loader-overlay {\n\topacity: 0.3;\n}\n\n.loader .loader-text {\n\tcolor: #666;\n\tmargin-top: 5px;\n}\n\n.loader.mini .loader-text {\n\ttop: 7px;\n\tleft: 20px;\n}\n\n.loader .loader-icon-holder {\n\tposition: relative;\n\ttop: calc(50% - 35px);\n\ttext-align: center;\n}\n\n.loader.mini .loader-icon-holder {\n\ttop: 7px;\n\tleft:0;\n}\n\n.loader.mini .loader-text {\n\ttop: 1px;\n\tfont-size: 6px;\n}\n\n.loader.bars .loader-icon,\n.loader.bars .loader-icon:before,\n.loader.bars .loader-icon:after {\n\tbackground: rgba(50,102,187, 0.75);\n\tanimation: loader-bars 1s infinite ease-in-out;\n\twidth: 10px;\n\theight: 40px;\n}\n.loader.bars .loader-icon {\n\tcolor: rgba(50,102,187, 0.75);\n\ttext-indent: -9999em;\n\tfont-size: 11px;\n\t-webkit-animation-delay: -0.16s;\n\tanimation-delay: -0.16s;\n\tmargin: 0 auto;\n}\n\n.loader.bars .loader-icon:before,\n.loader.bars .loader-icon:after {\n\tposition: absolute;\n\ttop: 0;\n\tcontent: '';\n}\n\n.loader.bars .loader-icon:before {\n\tleft: -15px;\n\tanimation-delay: -0.32s;\n}\n.loader.bars .loader-icon:after {\n\tleft: 15px;\n}\n\n.loader.bars.mini .loader-icon,\n.loader.bars.mini .loader-icon:before,\n.loader.bars.mini .loader-icon:after {\n\twidth: 5px;\n\theight: 20px;\n\tanimation: loader-bars 1s infinite ease-in-out;\n}\n\n.loader.bars.mini .loader-icon:before {\n\tleft: -7px;\n\tanimation-delay: -0.32s;\n}\n\n.loader.bars.mini .loader-icon:after {\n\tleft: 7px;\n}\n\n.loader.bars.mini .loader-icon {\n\ttop: 5px;\n\tleft: 5px;\n}\n\n\n@keyframes loader-fadeIn { 0% { opacity:0; } 100% { opacity:1; } }\n@keyframes loader-fadeOut { 0% { opacity:1; transform: scale(1); } 99% { transform: scale(1); } 100% { opacity:0; transform: scale(0); } }\n\n@keyframes loader-bars {\n0%,\n80%,\n100% {\n\ttransform: scaleY(0.75);\n}\n40% {\n\ttransform: scaleY(1.25);\n}\n}\n\n@keyframes loader-default { from { opacity: 1 } to { opacity: 0 } }\n\n\n.loader.default .loader-icon {\n\twidth: 50px;\n\theight: 50px;\n\tposition: relative;\n\tmargin: 0 auto;\n}\n\n.loader.default .loader-icon .inner\n{\n\tanimation: loader-default ease-out 0.96s infinite;\n\tposition: absolute;\n\tbackground: #444; \n\tborder-radius: 2px;\n\ttransform-origin: 2px 25px;\n\tleft: 50%; \n\theight: 25%;\n\twidth: 8.33%;\n}\n\n.loader.default.mini .loader-icon {\n\twidth: 20px;\n\theight: 20px;\n}\n\n.loader.default.mini .loader-icon .inner\n{\n\tborder-radius: 1px;\n\ttransform-origin: 0px 10px;\n}\n\n.loader.default .loader-icon .inner:nth-of-type(1) {\n\ttransform: rotate(0deg);\n\tanimation-delay: -0.88s;\n}\n.loader.default .loader-icon .inner:nth-of-type(2) {\n\ttransform: rotate(30deg);\n\tanimation-delay: -0.8s;\n}\n\n.loader.default .loader-icon .inner:nth-of-type(3) {\n\ttransform: rotate(60deg);\n\tanimation-delay: -0.72s;\n}\n\n.loader.default .loader-icon .inner:nth-of-type(4) {\n\ttransform: rotate(90deg);\n\tanimation-delay: -0.64s;\n}\n.loader.default .loader-icon .inner:nth-of-type(5) {\n\ttransform: rotate(120deg);\n\tanimation-delay: -0.56s;\n}\n.loader.default .loader-icon .inner:nth-of-type(6) {\n\ttransform: rotate(150deg);\n\tanimation-delay: -0.48s;\n}\n.loader.default .loader-icon .inner:nth-of-type(7) {\n\ttransform: rotate(180deg);\n\tanimation-delay: -0.4s;\n}\n.loader.default .loader-icon .inner:nth-of-type(8) {\n\ttransform: rotate(210deg);\n\tanimation-delay: -0.32s;\n}\n.loader.default .loader-icon .inner:nth-of-type(9){\n\ttransform: rotate(240deg);\n\tanimation-delay: -0.24s;\n}\n.loader.default .loader-icon .inner:nth-of-type(10){\n\ttransform: rotate(270deg);\n\tanimation-delay: -0.16s;\n}\n.loader.default .loader-icon .inner:nth-of-type(11) {\n\ttransform: rotate(300deg);\n\tanimation-delay: -0.08s;\n}\n.loader.default .loader-icon .inner:nth-of-type(12) {\n\ttransform: rotate(330deg);\n}\n"
|
|
),
|
|
(Ot = !0));
|
|
b && this.options(b);
|
|
}
|
|
a.prototype.options = function (a) {
|
|
L(this._options, a);
|
|
};
|
|
a.prototype.loading = function (a, b) {
|
|
return !1 === a ? this.end() : this._renderer.isRootHidden() ? !1 : this.start(a, b);
|
|
};
|
|
a.prototype.destroy = function () {
|
|
this.end();
|
|
this._loaderElement && this._loaderElement.destroy();
|
|
};
|
|
a.prototype.ensureAnimationApplied = function (a) {
|
|
var b = this,
|
|
c = new Date().getTime() - b._endTime;
|
|
b._animationApplied || !b._isShowing || !0 !== b._options.break || 0 > c
|
|
? a()
|
|
: (b._loaderElement.attr({ "animation-delay": "0ms" }),
|
|
uo(function () {
|
|
b._animationApplied = !0;
|
|
b.insideRequest = !0;
|
|
a();
|
|
b.insideRequest = !1;
|
|
}));
|
|
};
|
|
a.prototype.mainClass = function () {
|
|
return "loader " + this._options.type;
|
|
};
|
|
a.prototype.createElements = function () {
|
|
if (!this._loaderElement) {
|
|
this._loaderElement = this._renderer.htmlElement("", { class: this.mainClass() + " hide" }).add(this._renderer.wrapper);
|
|
this._overlayElement = this._renderer.htmlElement("", { class: "loader-overlay" }).add(this._loaderElement);
|
|
this._iconHolderElement = this._renderer.htmlElement("", { class: "loader-icon-holder" }).add(this._loaderElement);
|
|
this._iconElement = this._renderer.htmlElement("", { class: "loader-icon" }).add(this._iconHolderElement);
|
|
this._textElement = this._renderer.htmlElement("", { class: "loader-text" }).add(this._iconHolderElement);
|
|
for (var a = 0; 12 > a; a++) this._renderer.htmlElement("", { class: "inner" }).add(this._iconElement);
|
|
}
|
|
return this._loaderElement;
|
|
};
|
|
a.prototype.end = function () {
|
|
if (!this._isStarted || !this._loaderElement) return !1;
|
|
if (this._isShowing) {
|
|
var a = 0 < new Date().getTime() - this._endTime && this._animationApplied ? "anim-hide" : "hide";
|
|
this._loaderElement.attr({ class: this.mainClass() + " " + (this._mini ? "mini " : "") + a, "animation-delay": "0ms" });
|
|
}
|
|
this._isStarted = this._isShowing = !1;
|
|
return !0;
|
|
};
|
|
a.prototype.start = function (a, b) {
|
|
var c = this,
|
|
e = c._isStarted,
|
|
f = (t(b) ? b : c._options.delay) || 0,
|
|
g = !c._loaderElement,
|
|
h = O(a) || null === a ? a : c._options.label,
|
|
k = c._textToShow !== h;
|
|
if (c._isStarted && !k && b) return !1;
|
|
c._isStarted = !0;
|
|
c._textToShow = h;
|
|
c.createElements();
|
|
(function () {
|
|
(k || g) && c._textElement.attr({ innerHTML: h });
|
|
if (!c._isShowing) {
|
|
var b = c._layout.getRootBox();
|
|
c._mini = 50 > b.height || 50 > b.width;
|
|
c._endTime = f + new Date().getTime();
|
|
c._animationApplied = !1;
|
|
uo(function () {
|
|
if (!c._animationApplied) {
|
|
c._animationApplied = !0;
|
|
var b = c._endTime - new Date().getTime();
|
|
c._isShowing && c._loaderElement.attr({ "animation-delay": (0 < b ? b : 0) + "ms" });
|
|
}
|
|
});
|
|
c._loaderElement.attr({ class: c._mini ? c.mainClass() + " mini" : c.mainClass(), width: b.width + "px", height: b.height + "px", "animation-delay": f + "ms" });
|
|
c._overlayElement.attr({ "background-color": c._options.fill || "#fff" });
|
|
c._isShowing = !0;
|
|
}
|
|
})();
|
|
return !e;
|
|
};
|
|
return a;
|
|
})(),
|
|
YC = (function () {
|
|
return function (a) {
|
|
this.series = a;
|
|
};
|
|
})(),
|
|
Pt = { contentArea: 0, axis: 1 },
|
|
$y = (function () {
|
|
function a(a) {
|
|
this.layout = a;
|
|
this.uses = {};
|
|
}
|
|
a.prototype.use = function (a) {
|
|
this.uses = a;
|
|
return this;
|
|
};
|
|
a.prototype.build = function (a) {
|
|
var b = this.layout,
|
|
c = {};
|
|
a = this.uses = a || this.uses;
|
|
var e = A({ content: { holder: { stretch: !0 } }, axis: { offset: 0 } }, a);
|
|
a.title && ((c.titleBoxPanel = b.panel()), (c.titleBox = new VC(a.title.holder).add(c.titleBoxPanel)));
|
|
if (a.axis) {
|
|
var f = e.axis.offset;
|
|
c.topAxes = b.panel({ type: "stack:y" }).attr(zi("left", "bottom", 0, -f));
|
|
c.leftAxes = b.panel({ type: "stack:x" }).attr(zi("right", "top", -f, 0));
|
|
c.rightAxes = b.panel({ type: "stack:x" }).attr(zi("left", "top", f, 0));
|
|
c.bottomAxes = b.panel({ type: "stack:y" }).attr(zi("left", "top", 0, f));
|
|
}
|
|
var g = [],
|
|
h = a.outline ? a.outline.width : 1;
|
|
if (a.content && a.content.stroke) {
|
|
c.contentStroke = b.renderer.path({ fill: "none", stroke: "none", "stroke-width": a.content.stroke.width });
|
|
var k = !0 === a.content.stroke.onFront;
|
|
}
|
|
a.background &&
|
|
((c.caBackgroundPanel = b.panel({ padding: h / 2 })),
|
|
(c.caBackground = b.rect(ve({ fill: "rgba(0,0,0,0)", shadow: !1 })).add(c.caBackgroundPanel)),
|
|
(a.contentHolderFront || k) && c.contentStroke.add(c.caBackgroundPanel),
|
|
a.contentHolderFront || g.push(c.caBackgroundPanel));
|
|
var l = function (a) {
|
|
return ve(b.panel({ type: "panel" })).attr({ x: h / 2, y: h / 2 });
|
|
};
|
|
a.axisMarkers && ((c.axisMarkersBehind = l()), (c.axisMarkersFront = l()));
|
|
a.gridLines && ((c.gridLinesBehind = l()), (c.gridLinesFront = l()));
|
|
c.dataContent = l();
|
|
f = Kd({});
|
|
f = c.contentHolder = b.panel(e.content.holder.stretch ? ve(f) : f);
|
|
var m = function (b) {
|
|
return b && g.push(b);
|
|
};
|
|
m(c.gridLinesBehind);
|
|
!a.axis && a.contentHolderFront ? (m(c.axisMarkersBehind), (c.axisContentBehind = l()), g.push(c.axisContentBehind)) : m(c.axisMarkersBehind);
|
|
g.push(c.dataContent);
|
|
m(c.gridLinesFront);
|
|
m(c.axisMarkersFront);
|
|
!a.axis && a.contentHolderFront && ((c.axisContentFront = l()), g.push(c.axisContentFront));
|
|
c.content = b.panel(ve(Kd({ val: g }))).add(f);
|
|
a.contentOverlay && (c.contentOverlay = b.panel(ve(Kd({}))).add(f));
|
|
!a.contentHolderFront && !1 === k && c.contentStroke.add(f);
|
|
a.annotationLayer && (c.anHolder = b.panel(ve(Kd({}))).add(f));
|
|
a.overflow && ((c.topOverflow = b.panel()), (c.leftOverflow = b.panel()), (c.rightOverflow = b.panel()), (c.bottomOverflow = b.panel()));
|
|
k = function (a) {
|
|
if (!a) return a;
|
|
var c = b.panel({ zIndex: Pt.axis });
|
|
a.add(c);
|
|
return c;
|
|
};
|
|
k = {
|
|
type: "grid",
|
|
val: [
|
|
[b.panel(), k(c.topAxes), b.panel()],
|
|
[k(c.leftAxes), f, k(c.rightAxes)],
|
|
[b.panel(), k(c.bottomAxes), b.panel()],
|
|
],
|
|
};
|
|
a.contentHolderFront && ((c.contentHolderBehind = b.panel()), (c.contentHolderFront = b.panel()));
|
|
c.grid = !a.axis && a.contentHolderFront ? b.panel({ val: [c.caBackgroundPanel, c.contentHolderBehind, f, c.contentHolderFront] }) : a.axis ? b.panel(e.content.holder.stretch ? ve(k) : k) : f;
|
|
c.mainStacks = a.overflow
|
|
? b.panel({
|
|
type: "stack:y",
|
|
val: [
|
|
Kd({ val: a.title ? [c.topOverflow, { type: "stack:y", yAlignment: "bottom", val: [c.titleBoxPanel] }] : [c.topOverflow] }),
|
|
{ type: "stack:x", val: [Kd({ val: [c.leftOverflow] }), c.grid, Kd({ val: [c.rightOverflow] })] },
|
|
Kd({ val: [c.bottomOverflow] }),
|
|
],
|
|
})
|
|
: c.grid;
|
|
return c;
|
|
};
|
|
return a;
|
|
})(),
|
|
Rm,
|
|
Qt = { custom: 1e3, AxisMarker: 1200 },
|
|
Sm = function (a) {
|
|
var c = a.point,
|
|
b = a.yVal;
|
|
a = a.color || c.tokenValue("%color");
|
|
c = df(a);
|
|
return { value: b, label: { color: 0.65 < c ? "#000" : "#fff" }, fill: a, outline: { color: 0.85 < c ? "#d3d3d3" : a }, gridLine: { color: a } };
|
|
},
|
|
Tm = (function () {
|
|
function a(a) {
|
|
this.chartArea = a;
|
|
this.boxes = [];
|
|
this.labelBoxes = [];
|
|
this.paths = [];
|
|
this._allBoxes = void 0;
|
|
this.anyColLabelOverflow = !1;
|
|
}
|
|
a.prototype.addIdBox = function (a, b) {
|
|
b.id = a;
|
|
this.addBox(b);
|
|
};
|
|
a.prototype.addBox = function (a) {
|
|
a && 4 === a.length && this.boxes.push(a);
|
|
};
|
|
a.prototype.addBodyBox = function (a) {
|
|
this.addBox(a);
|
|
};
|
|
a.prototype.addLabelBox = function (a, b) {
|
|
a && 4 === a.length && ((a.id = b), this.labelBoxes.push(a));
|
|
};
|
|
a.prototype.reset = function () {
|
|
this.boxes = [];
|
|
this.labelBoxes = [];
|
|
this._allBoxes = void 0;
|
|
this.anyColLabelOverflow = !1;
|
|
};
|
|
a.prototype.collideAllExcept = function (a, b) {
|
|
if (Yc(this.boxes, a) || Yc(this.labelBoxes, a)) return !0;
|
|
};
|
|
a.prototype.collideAll = function (a, b) {
|
|
if (Yc(this.boxes, a, b) || Yc(this.labelBoxes, a, b)) return !0;
|
|
};
|
|
a.prototype.collideLabels = function (a, b) {
|
|
return Yc(this.labelBoxes, a, b) ? !0 : !1;
|
|
};
|
|
a.prototype.alignAvoid = function (a, b) {
|
|
a = vh(a, this.boxes, b);
|
|
return vh(a, this.labelBoxes, b);
|
|
};
|
|
return a;
|
|
})(),
|
|
ZC = (function (a) {
|
|
function c(b, c) {
|
|
var d = a.call(this, b.chart, c, [b, c]) || this;
|
|
d.series = b;
|
|
d.attribs = { point: {}, states: {} };
|
|
d.kind = "Point";
|
|
d.visuals = { marker: void 0, rect: void 0, body: void 0, rectComplete: void 0, errorY: void 0, errorX: void 0, errorXV: void 0, errorYV: void 0, label: void 0, labelConnector: void 0 };
|
|
d._state = "";
|
|
d.info = {};
|
|
d.isMousedOver = !1;
|
|
d.chart = b.chart;
|
|
d.x = c.x;
|
|
d.y = c.y;
|
|
d.name = c.name;
|
|
d._i = c._i;
|
|
d._state = "";
|
|
(d.selected = c.selected) && Jl(d, !0);
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function (a, c) {
|
|
this.series = a;
|
|
this._i = c._i;
|
|
this.defaultMutable = !0;
|
|
};
|
|
c.prototype.options = function (a, c) {
|
|
var b = this.series,
|
|
d = !0,
|
|
g = this.optionsGetter(a);
|
|
if ("NotGetter" !== g) return g;
|
|
if ("object" === typeof a.mapData && (this.setMapData(a.mapData), 1 === pa(a).length)) return this;
|
|
a = Sa(a, "map,mapData,geometry");
|
|
g = pa(a);
|
|
0 < gc(g, Js).length ? b.seriesDirty.pointData(!0) : 0 < gc(g, Cr).length && b.seriesDirty.pointIndex(!0);
|
|
if (0 < gc(g, bB).length && (t(a.selected) && Jl(this, a.selected), t(a.muted) && "select" !== this._state && this.setState(a.muted ? "mute" : ""), this.chart.isRendered && this.syncLeCheckbox(), 1 === g.length)) {
|
|
d = !1;
|
|
var h = !0;
|
|
}
|
|
t(a._i) && (this._i = a._i);
|
|
L(this.userOptions, a);
|
|
h ? L(this.currentOptions, a) : ((b.userPoints[this._i] = this.userOptions), this.genOptions());
|
|
Ll(this);
|
|
if (d && !1 !== c) {
|
|
b.chartArea.invalidate();
|
|
b.setDataInfo();
|
|
c = this.normalizeUpdateOpt({ animation: b.currentOptions.animation }, c);
|
|
this.chart.redraw(c);
|
|
var k = !0;
|
|
}
|
|
this.triggerUser("update");
|
|
this.userDefinedExploded = t(this.userOptions.exploded);
|
|
!k && this.afterUpdate(c);
|
|
return this;
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
return Kl(this.series, this._i);
|
|
};
|
|
c.prototype.contextOptions = function () {};
|
|
c.prototype.setOptions = function () {
|
|
a.prototype.setOptions.call(this);
|
|
Ll(this);
|
|
return this;
|
|
};
|
|
c.prototype.setState = function (a, c) {
|
|
var b = this,
|
|
d = b.series,
|
|
g = b.chart;
|
|
a = Ml(b, a);
|
|
var h = {};
|
|
if (t(null === c || void 0 === c ? void 0 : c.animation)) {
|
|
A(h, !1 === c.animation ? { duration: 0 } : c.animation);
|
|
var k = !!h.duration;
|
|
}
|
|
if (a !== b._state) {
|
|
c = b.userDefinedExploded;
|
|
var l = (b.coord() || {}).styleSet || d.getPointAttr(this),
|
|
m = l.pointAttr,
|
|
n = l.svAttr;
|
|
l = function (a) {
|
|
var b = a.rootPanel;
|
|
return b ? b.rect || b.el : a;
|
|
};
|
|
var p;
|
|
(p = b.visuals.body) && (l = l(p)) && l.attr && l.attr(A(k ? { animation: h } : {}, m[a]));
|
|
w(["errorY", "errorX", "errorXV", "errorYV"], function (c) {
|
|
(p = b.visuals[c]) && p.attr(A(k ? { animation: h } : {}, n[a]));
|
|
});
|
|
l = b.selected;
|
|
var q = (b.selected = "select" === a);
|
|
b._state = a;
|
|
var r = d.info.type.isPie,
|
|
u = b.userDefinedExploded;
|
|
q && !l
|
|
? (b.triggerUser("select"), g._pointSelection(), r && !u && b.options({ exploded: !0 }), m[a] || Ma.emit("warning", d.name || d.id, "pointSelectNoAttrs", { data: [b.options("id")], container: d.chart.getWrapper() }))
|
|
: !q && l && (b.triggerUser("unselect"), g._pointSelection(), r && !u && b.options({ exploded: !1 }));
|
|
b.userDefinedExploded = c;
|
|
}
|
|
};
|
|
c.prototype.select = function (a, c, e) {
|
|
a = t(a) ? a : !this.selected;
|
|
Jl(this, a, e);
|
|
};
|
|
c.prototype.mouseOver = function (a) {
|
|
var b = this.chart,
|
|
c = C(a, "eventArgs");
|
|
if (!this.isMousedOver && !1 !== this.series.options("mouseTracking.enabled")) {
|
|
this.isMousedOver = !0;
|
|
c = this.triggerUser("mouseOver", c);
|
|
!1 !== c && "select" !== this._state && this.setState("hover");
|
|
var f = b.hoveredPoint;
|
|
b.hoveredPoint = this;
|
|
f && f !== this && f.mouseOut(a);
|
|
a = this.mouseOverOutCursor();
|
|
b.setCursor(a.over);
|
|
return c;
|
|
}
|
|
};
|
|
c.prototype.mouseOut = function (a) {
|
|
var b = C(a, "eventArgs"),
|
|
c = this.series;
|
|
this.isMousedOver = !1;
|
|
if (!this._cursorCaptured) {
|
|
if (C(c.currentOptions, "mouseTracking.sticky")) var f = (f = this.chart.hoveredPoint) ? f.series === c : !1;
|
|
f || ("select" !== c.state && c.setState(""), c.tooltip.hideTooltip(), !1 === f && c.triggerUser("mouseOut", a));
|
|
a = this.triggerUser("mouseOut", b);
|
|
!1 !== a && "select" !== this._state && (this.setState(""), c.visualizer.hideHaloMo());
|
|
this.chart.setCursor();
|
|
return a;
|
|
}
|
|
};
|
|
c.prototype.click = function (a) {
|
|
var b = this.currentOptions.nativeClick,
|
|
c = C(a, "eventArgs"),
|
|
f = this.series.chartArea;
|
|
if (!1 !== this.series.options("mouseTracking.enabled")) {
|
|
var g = { eventArgs: a.eventArgs, currentTarget: this };
|
|
L(g, f.clickData(g));
|
|
f = this.series.currentOptions.pointSelection;
|
|
a = a.accumulate || (c && c.ctrlKey);
|
|
!1 !== this.triggerUser("click", g) && (b && b.call(this, g), f && this.select(void 0, void 0, a), this.syncLeCheckbox());
|
|
}
|
|
};
|
|
c.prototype.mouseOverOutCursor = function () {
|
|
var a = this.currentOptions,
|
|
c = this.series.currentOptions,
|
|
e = a.cursor || c.cursor;
|
|
c = c.pointSelection;
|
|
a = this.hasUserEvent("click") || a.nativeClick;
|
|
var f = { over: void 0, out: "initial" };
|
|
if (e || c || a) f.over = e || "pointer";
|
|
return f;
|
|
};
|
|
c.prototype.genOptions = function () {
|
|
if (this.currentOptions.mapDataId && this.userOptions.mapDataId && this.currentOptions.mapDataId === this.userOptions.mapDataId) {
|
|
var a = this.currentOptions.map,
|
|
c = this.userOptions.map,
|
|
e = void 0,
|
|
f = void 0;
|
|
delete this.currentOptions.map;
|
|
delete this.userOptions.map;
|
|
this.userOptions.mapData &&
|
|
this.currentOptions.mapData &&
|
|
this.userOptions.mapData !== this.currentOptions.mapData &&
|
|
this.userOptions.mapData.id === this.currentOptions.mapData.id &&
|
|
((e = this.currentOptions.mapData), (f = this.userOptions.mapData), delete this.currentOptions.mapData, delete this.userOptions.mapData);
|
|
this.currentOptions = A(this.defaultOptions(), this.userOptions);
|
|
this.currentOptions.map = a;
|
|
this.userOptions.map = c;
|
|
e && f && ((this.currentOptions.mapData = e), (this.userOptions.mapData = f));
|
|
} else this.currentOptions = A(this.defaultOptions(), this.userOptions);
|
|
};
|
|
c.prototype.getMapData = function () {
|
|
return C(this.info, "map") || C(this.userOptions, "mapData") || C(this.userOptions, "map") || {};
|
|
};
|
|
c.prototype.setMapData = function (a) {
|
|
Z(this.info, "map", a);
|
|
return this;
|
|
};
|
|
c.prototype.getPosConfig = function () {
|
|
return {};
|
|
};
|
|
c.prototype.destroy = function () {
|
|
w(this.visuals, function (a) {
|
|
return a && a.destroy();
|
|
});
|
|
var b = this.legendEntry;
|
|
b && b.destroy();
|
|
this.chart.setCursor();
|
|
a.prototype.destroy.call(this);
|
|
};
|
|
c.prototype.syncLegendItems = function (a) {
|
|
var b = this.series;
|
|
a = 1 / b.points().items.length;
|
|
a = b._i + a * this._i;
|
|
b = b.chart.requestLegend(b);
|
|
var c = this.options("legendEntry.visible");
|
|
!1 === c || ("none" !== b.spMode && !0 !== c) || (this.legendEntry ? this.legendEntry.setColumns() : (this.legendEntry = b.addEntry(this, a)));
|
|
};
|
|
c.prototype.syncLeCheckbox = function () {
|
|
var a;
|
|
if (null === (a = this.legendEntry) || void 0 === a ? 0 : a.checkbox) this.legendEntry.updateCheckbox(), this.legendEntry.checkbox.refresh();
|
|
};
|
|
c.prototype.getIconVisual = function (a, c, e) {
|
|
var b = this.series;
|
|
c !== this && (c = void 0);
|
|
return b.getIconVisual(a, c || this, e);
|
|
};
|
|
c.prototype.iconName = function () {
|
|
return this.series.iconName();
|
|
};
|
|
c.prototype.getIconTag = function () {
|
|
var a = this.series.info.style;
|
|
return "<icon name=" + this.iconName() + " fill=" + a.base.color + " verticalAlign=middle width=20 height=10>";
|
|
};
|
|
c.prototype.styleIconVisual = function (a) {
|
|
var b = this.series.getPointAttr(this.currentOptions);
|
|
a && a.base.attr(b.pointAttr[""]);
|
|
};
|
|
c.prototype.replaceTokens = function (a, c) {
|
|
return ir(a, this.series, this, c || this.series.getFormatInfo());
|
|
};
|
|
c.prototype.tokenValue = function (a) {
|
|
return this.replaceTokens({ token: a });
|
|
};
|
|
c.prototype.remove = function (a) {
|
|
var b = this.series,
|
|
c = Sf(b.userPoints, { id: this.options("id") });
|
|
-1 < c && (b.removePoint(c, a), this.triggerUser("remove"));
|
|
};
|
|
c.prototype.zoomTo = function (a) {
|
|
var b = this.series;
|
|
if (b.ctManager.isType("calendar")) b.zoomTo(a);
|
|
else if (b.ctManager.isType("map")) {
|
|
var c = this.getMapData();
|
|
(c = C(c, "bbox") || C(c, "properties.bbox")) && b.chart.zoom(c, a);
|
|
} else
|
|
b.chartArea._isStaticDragArea
|
|
? ((c = this.coord()), (c = 4 === c.xyz.length ? va(c.xyz) : c.xyz.slice(0, 2)), (c = Rn(c) ? { center: Xc(c, b.visualizer._coordOffset) } : void 0))
|
|
: ((c = b.indexer.getValue("pos", this._i).xyz.slice(0, 2)), (c = Rn(c) ? { pos: c } : void 0)),
|
|
c && b.chartArea.zoom(c, a);
|
|
};
|
|
c.prototype.setRootVisuals = function () {
|
|
return this;
|
|
};
|
|
c.prototype.coord = function () {
|
|
return this.series.indexer.getItem(this._i).coordinates;
|
|
};
|
|
c.prototype.bbox = function () {
|
|
var a = this.coord();
|
|
if (a.pathObj && a.pathObj.isPath) var c = a.pathObj.bbox();
|
|
else {
|
|
var e = O(a.pathD) ? a.pathD : a.pathD.pop ? a.pathD.join(" ") : void 0;
|
|
a.htShape ? (c = a.htShape.bbox()) : O(e) ? (e = -1 < e.indexOf("url") ? Cc(ha(this.visuals.body.getBbox())) : e) && (c = kl(e)) : a.pathD.bbox && (c = a.pathD.bbox());
|
|
}
|
|
!c && a.xyz && ((c = a.xyz.slice(0, 2)), c.push(0, 0));
|
|
e = [];
|
|
Xe(e, a.sv, a.svs);
|
|
var f = [c];
|
|
Xe(f, C(a, "collision.body"));
|
|
e.length && f.push(Ua(e));
|
|
1 < f.length && (c = Ea(f));
|
|
return c;
|
|
};
|
|
return c;
|
|
})(jc),
|
|
$C = { top: "bottom", bottom: "top", left: "right", right: "left", center: "center", middle: "middle" },
|
|
aD = { top: "right", bottom: "left", left: "top", right: "bottom", center: "middle", middle: "center" },
|
|
bD = function () {
|
|
var a = function (a) {
|
|
a = a.split(",");
|
|
return B(a, function (a) {
|
|
return { align: "incenter", vAlign: a };
|
|
});
|
|
},
|
|
c = { normal: {}, range: {}, stacked: {}, ganttCandle: {} };
|
|
w(
|
|
{
|
|
normal: { auto: "outtop,intop,outbottom", others: "inmiddle,inbottom" },
|
|
range: { auto: "outtop,inmiddle,outbottom", others: "intop,inbottom" },
|
|
ganttCandle: { auto: "inmiddle,outtop,outbottom", others: "" },
|
|
stacked: { auto: "inmiddle", others: "intop,inbottom" },
|
|
},
|
|
function (b, d) {
|
|
w(b, function (b, f) {
|
|
return (c[d][f] = a(b));
|
|
});
|
|
}
|
|
);
|
|
return c;
|
|
},
|
|
cD = function () {
|
|
var a = {
|
|
normal: {
|
|
auto: [
|
|
{ align: "left", vAlign: "top" },
|
|
{ align: "center", vAlign: "top" },
|
|
{ align: "right", vAlign: "top" },
|
|
{ align: "left", vAlign: "middle" },
|
|
{ align: "right", vAlign: "middle" },
|
|
{ align: "left", vAlign: "bottom" },
|
|
{ align: "center", vAlign: "bottom" },
|
|
{ align: "right", vAlign: "bottom" },
|
|
],
|
|
others: [{ align: "incenter", vAlign: "inmiddle" }],
|
|
},
|
|
};
|
|
w(a.normal.auto, function (c, b) {
|
|
a.normal.others.push({ align: "in" + c.align, vAlign: "in" + c.vAlign });
|
|
});
|
|
(function (a) {
|
|
w(a, function (b, c) {
|
|
b = a[c];
|
|
b.align = "out" + b.align;
|
|
b.vAlign = "out" + b.vAlign;
|
|
});
|
|
})(a.normal.auto);
|
|
return a;
|
|
},
|
|
Jf = function (a) {
|
|
return "i" === a[0] ? ["in", a.substr(2).toLowerCase()] : ["out", a.substr(3).toLowerCase()];
|
|
},
|
|
Um = function (a, c, b, d, e) {
|
|
c = e ? c : b;
|
|
a = e ? a.align : a.vAlign;
|
|
return (d && d[0] !== a[0]) || (c && c.toLowerCase() !== Jf(a)[1]);
|
|
},
|
|
Mr = function (a) {
|
|
return "i" === a.align[0] && "i" === a.vAlign[0];
|
|
},
|
|
Rt = function (a, c) {
|
|
a = Jf(a);
|
|
return a[0] + c[a[1]];
|
|
},
|
|
Nc = function (a, c) {
|
|
var b = c ? aD : $C;
|
|
return { align: Rt(c ? a.vAlign : a.align, b), vAlign: Rt(c ? a.align : a.vAlign, b), rotation: a.rotation || 0 };
|
|
},
|
|
qz = function (a, c, b, d, e, f) {
|
|
b = c.slice(0);
|
|
e = (function (a, b) {
|
|
var c = [],
|
|
d = va(a);
|
|
a = Yb(a);
|
|
var e = { u: [d[0], a[1]], d: [d[0], a[3]], l: [a[0], d[1]], r: [a[2], d[1]] };
|
|
w(["u", "d", "l", "r"], function (a) {
|
|
var d;
|
|
(d = b[a]) && c.push(mb(e[a], [d, d]));
|
|
});
|
|
return c;
|
|
})(c, e);
|
|
b = H([b], d, e);
|
|
f = (f = f.rectComplete) ? ha(f) : void 0;
|
|
b = Ea(b);
|
|
c = gk(c, H(d, e, f ? [f] : []));
|
|
a.isHoriz() ? ((c = Ye(c, [c[2] - 10, c[3]])), (b = Ye(b, [b[2] + 10, b[3]]))) : ((c = Ye(c, [c[2], c[3] - 10])), (b = Ye(b, [b[2], b[3] + 10])));
|
|
return { in: c, out: b };
|
|
},
|
|
fz = function (a, c, b, d, e) {
|
|
a = rb(Ea(H([c], b)), -5);
|
|
return { in: gk(c, b), out: a, outCorner: rb(a, 3) };
|
|
},
|
|
gz = function (a, c, b, d, e) {
|
|
a = a.isHoriz();
|
|
var f = e.getValue("coordinates", d);
|
|
d = e.getValue("coordinates", d - 1);
|
|
f && d && ((b = b.slice(0)), (d = d.xyz), (f = f.xyz), a ? b.push(Ua([f, [d[0], f[1]]])) : b.push(Ua([f, [f[0], d[1]]])));
|
|
return { in: gk(c, b), out: rb(Ea(H([c], b)), -5) };
|
|
},
|
|
dD = function (a, c, b, d) {
|
|
var e = c.currentOptions.label || {},
|
|
f = e.align,
|
|
g = e.verticalAlign,
|
|
h = "auto" === e.placement ? void 0 : e.placement;
|
|
d = f || g || h;
|
|
var k = c.series.info.hasYRanges,
|
|
l = a.isHoriz(),
|
|
m = c.series;
|
|
c = m.info;
|
|
var n = c.hasSubvalues;
|
|
a = m.yAxis.isStacked();
|
|
var p = "category" === m.xAxis.type;
|
|
m = bD();
|
|
c = n || (l && p && c.type.zStacked);
|
|
if (e.alignSequence) return e.alignSequence;
|
|
if (h && ((l && f) || (!l && g))) return (d = "i" === h[0] ? "in" : "out"), (e = l ? [{ align: d + f, vAlign: "inmiddle" }] : [{ align: "incenter", vAlign: d + g }]);
|
|
a = m[a ? "stacked" : c ? "ganttCandle" : k ? "range" : "normal"];
|
|
c = function (a) {
|
|
return {
|
|
u: function (a) {
|
|
return a;
|
|
},
|
|
d: function (a) {
|
|
return B(a, function (a) {
|
|
return Nc(a);
|
|
});
|
|
},
|
|
r: function (a) {
|
|
return B(a, function (a) {
|
|
return Nc(a, !0);
|
|
});
|
|
},
|
|
l: function (a) {
|
|
return B(a, function (a) {
|
|
return Nc(Nc(a, !0));
|
|
});
|
|
},
|
|
}[b](a);
|
|
};
|
|
e = c(a.auto);
|
|
k = function (a) {
|
|
return !Um(a, f, g, h, l);
|
|
};
|
|
d && ((e = ea(e, k)), (d = c(a.others)), e.push.apply(e, H(ea(d, k))));
|
|
return e;
|
|
},
|
|
hz = function (a, c, b) {
|
|
c = c.currentOptions.label || {};
|
|
var d = c.align,
|
|
e = c.verticalAlign,
|
|
f = "auto" === c.placement ? void 0 : c.placement;
|
|
a = d || e || f;
|
|
b = cD();
|
|
if (c.alignSequence) return c.alignSequence;
|
|
if (d && e) return (a = f && "i" === f[0] ? "in" : "out"), [{ align: a + d, vAlign: a + e }];
|
|
b = b.normal;
|
|
c = b.auto;
|
|
var g = function (a) {
|
|
var b = d ? Um(a, d, e, f, !0) : !0;
|
|
a = e ? Um(a, d, e, f, !1) : !0;
|
|
return b && a;
|
|
};
|
|
a &&
|
|
((c = ea(c, function (a) {
|
|
return !g(a);
|
|
})),
|
|
c.push.apply(
|
|
c,
|
|
H(
|
|
ea(b.others, function (a) {
|
|
return !g(a);
|
|
})
|
|
)
|
|
));
|
|
return c;
|
|
},
|
|
eD = function (a, c, b, d) {
|
|
var e, f;
|
|
t(b)
|
|
? (w(a, function (a) {
|
|
var g = Ia(c, va(a.box)),
|
|
k = 0;
|
|
g = Math.abs(ws(b - g + 180, 360) - 180);
|
|
if (!t(f) || g < f) (e = a), (f = g);
|
|
45 > g ? (k += 2) : (135 < g && (k += 1), d.length && (ro(a.box, d[0]) && (k -= 2), d[1] && ro(a.box, d[1]) && (k -= 2)));
|
|
a.score = k;
|
|
}),
|
|
e && e.score++)
|
|
: St(a, c);
|
|
},
|
|
St = function (a, c) {
|
|
var b,
|
|
d,
|
|
e = t(c);
|
|
w(a, function (a) {
|
|
var f = 0,
|
|
h = Jf(a.vAlign)[1],
|
|
k = Jf(a.align)[1];
|
|
if (e) {
|
|
var l = va(a.box);
|
|
l = Xb(c, l);
|
|
if (!t(d) || l < d) (d = l), (b = a);
|
|
}
|
|
"center" === k && (f++, "top" === h && f++);
|
|
"middle" === h && f++;
|
|
a.score = f;
|
|
});
|
|
e && (b.score += 3);
|
|
},
|
|
fD = function (a, c, b, d, e, f) {
|
|
w(a, function (a) {
|
|
var g = 0,
|
|
k = a;
|
|
e ? (k = f ? Nc(a, !0) : Nc(Nc(a, !0))) : f && (k = Nc(a));
|
|
var l = Jf(k.vAlign)[1];
|
|
k = Jf(k.align)[1];
|
|
if (b || d) {
|
|
var m = b ? "right" : "left";
|
|
c ? ("bottom" === l && k === m ? (g += 2) : "middle" === l && k === m ? g++ : "bottom" === l && "center" === k && g++) : (k === m && g++, "bottom" !== l && g++);
|
|
} else c ? ("bottom" === l && "center" === k ? (g += 2) : "middle" === l ? g++ : "top" === l && --g) : ("center" === k && g++, "top" === l && g++);
|
|
a.score = g;
|
|
});
|
|
},
|
|
kz = function (a, c, b, d, e) {
|
|
c = ha(c.coordRect);
|
|
va(c);
|
|
St(a);
|
|
a = sa(a, function (a) {
|
|
return a.score;
|
|
});
|
|
a.reverse();
|
|
return a;
|
|
},
|
|
jz = function (a, c, b, d, e) {
|
|
d = function (a) {
|
|
return e.getValue("coordinates", a);
|
|
};
|
|
c = d(b._i);
|
|
var f = d(b._i - 1),
|
|
g = d(b._i + 1);
|
|
d = [];
|
|
b.series.ctSvIs("lineSeriesType", "step") || (f && d.push([c.xyz, f.xyz]), g && d.push([c.xyz, g.xyz]));
|
|
if (2 === d.length) {
|
|
b = Ia(d[0][0], d[0][1]);
|
|
var h = Ia(d[1][0], d[1][1]);
|
|
h = ws(h - b + 180, 360) - 180;
|
|
h = b + h / 2 + 180;
|
|
} else d.length && (h = Ia(d[0][1], d[0][0]));
|
|
eD(a, c.xyz, h, d);
|
|
a = sa(a, function (a) {
|
|
return a.score;
|
|
});
|
|
a.reverse();
|
|
return a;
|
|
},
|
|
iz = function (a, c, b, d, e) {
|
|
var f = function (a) {
|
|
return e.getValue("coordinates", a);
|
|
};
|
|
d = f(b._i);
|
|
var g = f(b._i - 1);
|
|
f = f(b._i + 1);
|
|
var h = b.series;
|
|
b = 0 === h._i;
|
|
var k = h.yAxis;
|
|
h = k.isStackedFull();
|
|
k = k.isStacked();
|
|
c = c.isHoriz();
|
|
fD(a, k && !(k && !h && b), !g, !f, c, c ? d.xyz[0] < d.xyzs[0] : d.xyz[1] > d.xyzs[1]);
|
|
a = sa(a, function (a) {
|
|
return a.score;
|
|
});
|
|
a.reverse();
|
|
return a;
|
|
},
|
|
Tt = function () {
|
|
return { opacity: 0.9, width: 3, color: "#dedeac" };
|
|
},
|
|
Ut = function () {
|
|
return { axes: "x,y", values: "x,y", requiredData: "x,y", supportedData: "x,y,subvalue,subvalueX", privateAxes: "", customAxisOptions: {} };
|
|
},
|
|
mz = "circle diamond four-point-star five-point-star six-point-star seven-point-star".split(" "),
|
|
Ie = (function (a) {
|
|
function c(b) {
|
|
var c = a.call(this, b) || this;
|
|
c.series = b;
|
|
c.kind = "base";
|
|
c.typeConfig = Ut();
|
|
c.typeConfigCtSpecific = {
|
|
chartType: { gauge: { privateAxes: "x", customAxisOptions: { x: {} } }, radar: { x: { isRadial: !0, scale: { range: { padding: 0 } } }, y: { isRadial: !0 } } },
|
|
radarType: { polar: { x: { radialInterpolation: "spider" } }, spider: { x: { radialInterpolation: "spider" } } },
|
|
gaugeType: {},
|
|
linearGaugeType: { horizontal: {} },
|
|
};
|
|
c.shapeLabelMeta = {};
|
|
c.debugBBox = !1;
|
|
c.staticBodyDGetter = void 0;
|
|
c.staticSeriesBodyInfo = xc;
|
|
c.staticPointCompleteVisInfo = xc;
|
|
c.coordDirty = !0;
|
|
c.coordinates = {};
|
|
c.paths = { areas: void 0, lines: void 0 };
|
|
c.pointValueParser = Ai;
|
|
c.collidePointBoxes = !0;
|
|
c.getLabelHitTest = function () {
|
|
return function (a, b, c) {
|
|
var d = a.meta.label;
|
|
a = a.meta.labelAttr;
|
|
var e = d && d.slice(2);
|
|
return d && Ad([d[0] + (a.offsetX || 0), d[1] + (a.offsetY || 0), e[0], e[1]], [b, c]);
|
|
};
|
|
};
|
|
Lr(b);
|
|
c.debounce = new Ae();
|
|
return c;
|
|
}
|
|
K(c, a);
|
|
c.prototype.getTypeConfigDefault = function () {
|
|
return Ut();
|
|
};
|
|
c.prototype.getTypeConfig = function (a) {
|
|
if (!this._typeConfigCache || a) {
|
|
var b = this.series;
|
|
a = this.getTypeConfigDefault();
|
|
var c = this.typeConfigCtSpecific,
|
|
f,
|
|
g,
|
|
h = this.series.ctManager.getSettingChecker(b),
|
|
k;
|
|
for (k in c) (b = c[k]), (f = h(k)) && (g = b[f]) && A(a, g);
|
|
c && (delete a.chartTypeSpecific, A(a, c));
|
|
this._typeConfigCache = a;
|
|
}
|
|
return this._typeConfigCache;
|
|
};
|
|
c.prototype.pointArrayExpander = function (a) {
|
|
return { x: a[0], y: a[1] };
|
|
};
|
|
c.prototype.pointLeVisible = function (a) {
|
|
return !0;
|
|
};
|
|
c.prototype.contextDefaults = function () {};
|
|
c.prototype.eachPoint = function (a) {
|
|
for (var b = this.series.points().items, c = 0, f = b.length; c < f && !1 !== a(b[c], b[c]._i); c++);
|
|
};
|
|
c.prototype.render = function (a, c) {
|
|
var b = this.series,
|
|
d = b.currentOptions,
|
|
g = this,
|
|
h = b.info.type,
|
|
k = (b.pane || b.chartArea).collisionManager,
|
|
l,
|
|
m = g.isHoriz(),
|
|
n,
|
|
p,
|
|
q = b.rootVisuals,
|
|
r = b.info,
|
|
u = r.type,
|
|
x = N(b.chart.currentOptions, ["navigator", "enabled"]),
|
|
v = b.renderer;
|
|
if (t(g.lastRenderVisibility) && !g.lastRenderVisibility && !b.isVisible) return g;
|
|
var y = z(N(b.currentOptions, ["defaultPoint", "subvalue", "line", "length"]), 20),
|
|
D = y,
|
|
E = function (c) {
|
|
var d;
|
|
c &&
|
|
(d = c(g, a)) &&
|
|
(U = d.d) &&
|
|
(((l = { d: U, zIndex: t(d.zIndex) ? d.zIndex : b.zIndex + gb.series }), (l = g.render_applyDynamicAttrVals([l, d.state, { animation: d.animation }], a, d.state)), (n = d.visGetter()))
|
|
? (l.animation && (c = g.getAnimatorOptions(d.shapeName)) && ((l.animation.pathAnimation = c), (c.fromD = N(n, ["data", "attrs", "d"])), n.finishAnimation()), n.attr(l))
|
|
: (d.visSetter((n = v.path(l))),
|
|
n.add(d.target),
|
|
w(d.events, function (a, b) {
|
|
return n.on(b, a);
|
|
})));
|
|
},
|
|
F = q.points;
|
|
v = v.renderer;
|
|
a = Pa(a) ? a : {};
|
|
q = F && F.pixelCorrection;
|
|
b.state = d.selected ? "select" : d.muted ? "mute" : b.state || "";
|
|
if (u.drawArea || u.drawLine)
|
|
q && ("step" === b.ctSv("lineSeriesType") || (u.drawMarker && "polar" !== b.ctSv("radarType") && !1 !== N(b.currentOptions, ["defaultPoint", "marker", "visible"])))
|
|
? (a.coordinatesCorrection = function (a) {
|
|
return ue(F, a, 1);
|
|
})
|
|
: (a.coordinatesCorrection = function (a) {
|
|
return a.map(function (a) {
|
|
return [a[0], a[1]];
|
|
});
|
|
});
|
|
!c && b.preRender(a);
|
|
a.coordinatesCorrection = null;
|
|
w(g.staticSeriesBodyInfo, E);
|
|
var R = b.points().items,
|
|
C = function (a, b, c, d, e, f) {
|
|
var g,
|
|
h = "",
|
|
k = function (a) {
|
|
return (m && !f) || (!m && f)
|
|
? [
|
|
[a[0], a[1] - e],
|
|
[a[0], a[1] + e],
|
|
]
|
|
: [
|
|
[a[0] - e, a[1]],
|
|
[a[0] + e, a[1]],
|
|
];
|
|
};
|
|
if (u.drawRect && a) {
|
|
a = ha(a);
|
|
var l = po(a, b, 1),
|
|
n = po(a, c, 1);
|
|
l || n || (g = wv(a, [b, c]));
|
|
}
|
|
g
|
|
? w(g, function (a) {
|
|
a && a.length && ((h += xa(fb(a))), d && d.labelObstacles.push(Ua(a)));
|
|
})
|
|
: ((h = xa(fb([b, c]))), d && d.labelObstacles.push(Ua([b, c])));
|
|
e && ((h += xa(fb(k(b)))), (h += xa(fb(k(c)))));
|
|
return h;
|
|
},
|
|
wa = this.staticBodyDGetter || lz,
|
|
U,
|
|
M,
|
|
B,
|
|
J,
|
|
G,
|
|
Nb,
|
|
K,
|
|
L,
|
|
I,
|
|
Q;
|
|
c = function (c, d) {
|
|
I = R[P.renderOrder[c]];
|
|
if (!I) return "continue";
|
|
M = b.indexer.getValue("coordinates", I._i);
|
|
G = I.visuals;
|
|
if (M) {
|
|
var e = I.currentOptions;
|
|
Nb = Q = M.styleSet || b.getPointAttr(e);
|
|
M.styleSet = Q;
|
|
K = Q.svAttr[""];
|
|
L = !1;
|
|
p = I._state = e.selected ? "select" : e.muted ? "mute" : I._state || "";
|
|
c = Q.pointAttr[p];
|
|
B = M.xyz;
|
|
J = M.xyzs;
|
|
M.meta.labelObstacles = [];
|
|
Q.labelVisible && g.initPointLabel(I, M, Q);
|
|
r.hasSubvalues && ((D = z(N(e, ["subvalue", "line", "length"]), y)), (D *= z(M.width, M.unclusteredWidth, N(M, ["marker", "size"]), 10) / 100));
|
|
(x && u.drawMarker && (u.drawLine || u.drawArea)) || (r.hasMaxedMarkerLimit && u.drawMarker && (u.drawLine || u.drawArea) && (e.color || e.outline || e.marker || G.body || (L = !0)));
|
|
P.isRadial && (L = !1);
|
|
var f = (d = void 0),
|
|
q = void 0;
|
|
if (!L && ((f = M.prev), !f || f.isVisible || M.isVisible || M.everVisible)) {
|
|
f && !f.isVisible && M.isVisible && G.body && f.pathD && G.body.attr({ d: f.pathD, animation: !1 });
|
|
U = M.pathObj || M.path || wa(g, I, M, F, c.r, Q.drawMarker);
|
|
M.pathD = U;
|
|
var t = (f = void 0);
|
|
if ((t = M.meta.marker)) f = 0 < t[2] && 0 < t[3];
|
|
f || !Np(U)
|
|
? ("string" === typeof U && vb(U, "url(")
|
|
? ((d = U.replace(/url\(/g, "").replace(/\)/g, "")), (l = { src: d, cx: B[0], cy: B[1], zIndex: b.zIndex + gb.body }))
|
|
: U.arcShape && "object" === typeof U
|
|
? ((l = A(Oa(U.arcShape), { zIndex: b.zIndex + gb.body })), (q = !0))
|
|
: (l = { d: U, zIndex: b.zIndex + gb.body }),
|
|
(l = g.render_applyDynamicAttrVals([l, c], a, c)),
|
|
(n = G.body)
|
|
? ((c = g.getPointAnimatorOptions(M, I)) && !ub(c) && ((l.animation.pathAnimation = c), !n.isComposite && n.finishAnimation()), n.attr(l))
|
|
: (q && "solid" === b.ctSv("columnType") && (l.shading = "solid"), (G.body = n = q ? v.element("arcShape", l) : d ? v.element("image", l) : v.path(l)), n.add(F)))
|
|
: (n = G.body) && n.attr({ d: U });
|
|
if (q && n.hitTest) {
|
|
var cb = (M.htShape = n);
|
|
M.hitTest = function (a, b) {
|
|
return cb.hitTest(a, b);
|
|
};
|
|
} else if (!M.hitTest && O(M.pathD) && !1 !== e.mouseTracking) {
|
|
var Jc = M;
|
|
M.hitTest = function (a, b) {
|
|
return (Jc.htShape || (Jc.htShape = Aa(Jc.pathD))).hitTest(a, b);
|
|
};
|
|
}
|
|
!1 !== b.isVisible && (k.addBodyBox(N(M, ["collision", "body"])), k.addBox(M.meta.marker));
|
|
}
|
|
h.drawMarker ||
|
|
(!b.currentOptions.forceMarker && !0 !== N(e, ["marker", "visible"])) ||
|
|
((Nb = b.getPointAttr(e, !0)),
|
|
(c = Nb.pointAttr[p]),
|
|
(U = nz(I, g.getBodyShapeName(I, !0), M, c.r, F)),
|
|
U.indexOf && vb(U, "url(")
|
|
? ((e = (d = b.xAxis) && d.isStackedFull() ? (B[0] + J[0]) / 2 : B[0]), (q = B[1]), (d = U.replace(/url\(/g, "").replace(/\)/g, "")), (l = { src: d, cx: e, cy: q, zIndex: b.zIndex + gb.body }))
|
|
: ((l = { d: U, zIndex: b.zIndex + gb.marker }), (d = void 0)),
|
|
(l = g.render_applyDynamicAttrVals([l, c], a, c)),
|
|
(n = G.marker) ? n.attr(l) : ((G.marker = n = d ? v.element("image", l) : v.path(l)), n.add(F)));
|
|
if (r.hasSubvalues && !g.isRadial && "ohlc" !== r.type.seriesType) {
|
|
c = {
|
|
get: function () {
|
|
return G.errorY;
|
|
},
|
|
set: function (a) {
|
|
return (G.errorY = a);
|
|
},
|
|
onX: !1,
|
|
};
|
|
d = {
|
|
get: function () {
|
|
return G.errorX;
|
|
},
|
|
set: function (a) {
|
|
return (G.errorX = a);
|
|
},
|
|
onX: !0,
|
|
};
|
|
var gd = K["stroke-width"] || 1,
|
|
rg = D / 2;
|
|
e = function (c, d) {
|
|
c = ue(F, c, gd);
|
|
l = { d: C(M.rect, c[0], c[1], M.meta, "candlestick" !== h.seriesType ? rg : 0, d.onX), zIndex: b.zIndex + gb.error };
|
|
l = g.render_applyDynamicAttrVals([l, K], a, K);
|
|
(n = d.get()) ? n.attr(l) : (d.set((n = v.path(l))), n.add(F));
|
|
};
|
|
M.sv && M.svs && ((q = M.sv), (f = M.svs), (t = m ? 0 : 1), r.drawRect && (M.sv[t] === M.xyz[t] && (q = M.xyzs), M.svs[t] === M.xyzs[t] && (f = M.xyz)), e([q, f], c));
|
|
M.svx && M.svxs && e([M.svx, M.svxs], d);
|
|
c = m ? M.svxv : M.svv;
|
|
d = m ? M.svv : M.svxv;
|
|
var Ba = [];
|
|
if (c) {
|
|
Ba = [];
|
|
var Sp = [];
|
|
w(ue(F, c, gd), function (a) {
|
|
a = [
|
|
[a[0] - rg, a[1]],
|
|
[a[0] + rg, a[1]],
|
|
];
|
|
Ba.push.apply(Ba, H(a));
|
|
M.meta.labelObstacles.push(a);
|
|
Sp.push(a);
|
|
});
|
|
l = { d: tg(Sp), zIndex: b.zIndex + gb.error };
|
|
l = g.render_applyDynamicAttrVals([l, K], a, K);
|
|
(n = G.errorYV) ? n.attr(l) : ((G.errorYV = n = v.path(l)), n.add(F));
|
|
}
|
|
if (d) {
|
|
Ba = [];
|
|
var S = [];
|
|
w(ue(F, d, gd), function (a) {
|
|
a = [
|
|
[a[0], a[1] - rg],
|
|
[a[0], a[1] + rg],
|
|
];
|
|
Ba.push.apply(Ba, H(a));
|
|
S.push(a);
|
|
});
|
|
M.meta.labelObstacles.push(Ua(Ba));
|
|
l = { d: tg(S), zIndex: b.zIndex + gb.error };
|
|
l = g.render_applyDynamicAttrVals([l, K], a, K);
|
|
(n = G.errorXV) ? n.attr(l) : ((G.errorXV = n = v.path(l)), n.add(F));
|
|
}
|
|
}
|
|
r.hasComplete &&
|
|
E(function (a) {
|
|
return a.staticPointCompleteVisInfo(a, I, M);
|
|
});
|
|
(Q.labelVisible && u.isShape && !b.pane) || u.isAnnotation ? (P.renderLabel(I, Q, M, b.indexer, a), k.addLabelBox(M.meta.label)) : (g.hideVisual(g.getLabelWrapper(G.label, Q)), g.hideVisual(G.labelConnector));
|
|
} else g.hideVisual(G.body), g.hideVisual(g.getLabelWrapper(G.label, Q));
|
|
g.hideUnusedPointVisuals(I);
|
|
I.chart.triggerOptionsApplied("point", I);
|
|
};
|
|
var P = this;
|
|
d = 0;
|
|
for (q = R.length; d < q; d++) c(d);
|
|
g.isRendered = !0;
|
|
g.hideUnused();
|
|
g.lastRenderVisibility = b.isVisible;
|
|
return g;
|
|
};
|
|
c.prototype.renderLabels = function (a, c) {
|
|
c = this.series;
|
|
var b = (c.pane || c.chartArea).collisionManager;
|
|
if (c.info.type.isAnnotation || !((c.chart.isRendered && this.isRendered) || c.isVisible)) return this;
|
|
a = Pa(a) ? a : {};
|
|
a.coordinatesCorrection = null;
|
|
for (var d = c.points().items, g, h, k, l = 0, m = d.length; l < m; l++)
|
|
if ((k = d[this.renderOrder[l]]))
|
|
(g = c.indexer.getValue("coordinates", k._i)),
|
|
(h = k.visuals),
|
|
g
|
|
? ((h = k.currentOptions),
|
|
(h = g.styleSet || c.getPointAttr(h)),
|
|
h.labelVisible && c.isVisible && (this.renderLabel(k, h, g, c.indexer, a), (h = g.meta.label), this.collidePointBoxes ? b.addLabelBox(h) : h && b.addLabelBox(Hr(g.meta.labelTextBox, h, g.meta.labelAttr))))
|
|
: (this.hideVisual(h.body), this.hideVisual(h.label)),
|
|
this.hideUnusedPointVisuals(k);
|
|
this.isRendered = !0;
|
|
this.hideUnused();
|
|
return this;
|
|
};
|
|
c.prototype.getAnimatorOptions = function (a, c) {
|
|
c = this.updateInfo;
|
|
var b = this.series;
|
|
if (c && c.action) {
|
|
var d = b.ctManager.settingVal("lineSeriesType", b.currentOptions);
|
|
return { action: c.action, at: c.at, count: z(c.count, 1), del: c.del || 0, type: d, shapeName: a, shift: c.shift || !1, fromD: void 0, pointsLen: b._points.length };
|
|
}
|
|
return null;
|
|
};
|
|
c.prototype.getPointAnimatorOptions = function (a, c) {
|
|
if (this.isRadial && c && "needle" === this.getBodyShapeName(c) && a.coordPrev) {
|
|
var b = N(this.series, ["pointBodyDGenerator"]);
|
|
return {
|
|
needle: {
|
|
from: a.coordPrev,
|
|
to: a,
|
|
gen: function (a) {
|
|
return b("needle", a);
|
|
},
|
|
},
|
|
};
|
|
}
|
|
return {};
|
|
};
|
|
c.prototype.renderDebug = function (a, c, e) {};
|
|
c.prototype.isHoriz = function () {
|
|
var a = this.series;
|
|
return (a.pane || a.chartArea).isHoriz;
|
|
};
|
|
c.prototype.renderLabel = function (a, c, e, f, g) {
|
|
dz(this, a, c, e, f, g);
|
|
};
|
|
c.prototype.initPointLabel = function (a, c, e) {
|
|
var b = this.series,
|
|
d = c.meta,
|
|
h = a.visuals,
|
|
k = this.kind,
|
|
l = (b.pane || b.chartArea).collisionManager,
|
|
m = b.info.style.base,
|
|
n = b.renderer,
|
|
p = b.rootVisuals,
|
|
q = b.info.type,
|
|
r = this.isHoriz();
|
|
if (!d.labelSize) {
|
|
b = N(a.currentOptions, ["label", "text"]) || b.info.labelTextInfo.label;
|
|
"function" === I(b) && (b = b(a) || "");
|
|
b = a.replaceTokens(b);
|
|
d.labelText = b;
|
|
a = qc(e.label, "pie" === k ? ["offset"] : void 0, m);
|
|
k = {};
|
|
a.autoWrap = "none";
|
|
a.val = b;
|
|
if ((b = N(d, ["label", "bounds"])))
|
|
this.collidePointBoxes ? ((k.width = b[2]), (k.height = b[3])) : ((k.maxWidth = b[2]), (k.maxHeight = b[3]), (k.width = null), (k.height = null)),
|
|
(k.x = b[0]),
|
|
(k.y = b[1]),
|
|
id(a, { xAlignment: "center", yAlignment: "middle" }),
|
|
(a.maxWidth = b[2]),
|
|
(a.maxHeight = b[3]),
|
|
(a.width = null),
|
|
(a.height = null);
|
|
n = (m = !h.label) ? (h.label = n.textStack().attr(A({}, a))) : h.label.attr(A({}, a));
|
|
h = n.composeCombinations()[0].minSize;
|
|
h = [h.width.px, h.height.px];
|
|
var u = 10 <= Math.max(h[0] - k.maxWidth, h[1] - k.maxHeight);
|
|
m ? (u ? ((p = this.wrapLabel(n, k, e).add(p.points)), (h[0] = k.maxWidth), (h[1] = k.maxHeight)) : (p = n.attr(k).add(p.points))) : (p = this.getLabelWrapper(n, e).attr(k));
|
|
(!q.drawRect && "ohlc" !== this.kind) ||
|
|
r ||
|
|
(this.isRadial ? ((c = c.pathOptions), (q = (c.innerR + c.r) / 2), (c = Xb(Jb(c.cxy, c.start, q), Jb(c.cxy, c.end, q)))) : (c = c.rect.width), h[0] > c && (l.anyColLabelOverflow = !0));
|
|
!N(e, ["label", "autoHide"]) &&
|
|
d.shape &&
|
|
((e = !r || l.anyColLabelOverflow),
|
|
(l = d.shape[2]),
|
|
(r = d.shape[3]),
|
|
(c = e ? l / h[1] : r / h[1]),
|
|
(q = { fitWidth: null, fitHeight: null }),
|
|
0.5 < c && ((c = Math.floor(100 * c) / 100), 1 > c && ((h[0] *= c), (h[1] *= c)), e && (q.fitHeight = l), !e && (q.fitHeight = r)),
|
|
p.attr(q));
|
|
this.collidePointBoxes || ((k.width = b[2]), (k.height = b[3]), (k.maxWidth = null), (k.maxHeight = null), p.attr(A({}, k)), (d.labelTextBox = [0, 0, Math.min(b[2], h[0]), Math.min(b[3], h[1])]));
|
|
delete a.width;
|
|
delete a.height;
|
|
d.labelAttr = a;
|
|
d.labelSize = b ? [b[2], b[3]] : h;
|
|
d.labelInternalSize = h;
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.wrapLabel = function (a, c, e) {
|
|
return a.attr(c);
|
|
};
|
|
c.prototype.getLabelWrapper = function (a, c) {
|
|
return N(c, ["label", "wrapped"]) ? a.parent.parent : a;
|
|
};
|
|
c.prototype.possibleLabelPositions = function (a, c, e, f, g) {
|
|
return ez(this, a, c, e, f, g);
|
|
};
|
|
c.prototype.getBodyShapeName = function (a, c) {
|
|
return this.series.getPointMarkerType(a.currentOptions);
|
|
};
|
|
c.prototype.updatePointsGlobals = function () {
|
|
var a = this.series.pane;
|
|
return (this.pointsGlobals = a ? a.getGlobalOffsets() : void 0);
|
|
};
|
|
c.prototype.setCoordinates = function (a, c) {
|
|
function b(a, b) {
|
|
void 0 === b && (b = { xIsSorted: !0, isFinal: !1 });
|
|
var c = b.isFinal,
|
|
e = b.xIsSorted,
|
|
f = N(h.currentOptions, ["line", "tension"]);
|
|
f = t(f) ? ua(Y(0.7, 1, 0, 1, f), 0, 1) : 0.8;
|
|
var g = {
|
|
spline: function (a) {
|
|
return [bx(a, f)];
|
|
},
|
|
step: r
|
|
? function (a) {
|
|
return fb(a);
|
|
}
|
|
: function (a, b) {
|
|
return ax(a, b, !e);
|
|
},
|
|
normal: function (a) {
|
|
return fb(a);
|
|
},
|
|
}[Q ? "spline" : U];
|
|
if (R.drawLine || R.drawArea) {
|
|
b = [];
|
|
var k = function (a, b, c) {
|
|
void 0 === c && (c = !1);
|
|
if (c) return xa(g(a)) + "Z" + xa(g(b)) + "Z";
|
|
b.reverse();
|
|
a.push.apply(a, H(b));
|
|
return xa(g(a)) + "Z";
|
|
};
|
|
B.length &&
|
|
((B = d ? d(B) : B),
|
|
K.push(B),
|
|
(a = a || 0 < L.length),
|
|
R.drawLine &&
|
|
(r
|
|
? c &&
|
|
((b = K.slice(0)),
|
|
1 === K.length
|
|
? I.push(xa(g(B, O)) + (a ? "" : "Z"))
|
|
: ((a = b[b.length - 1].slice(0)),
|
|
a.push.apply(a, H(b[0])),
|
|
(a = xa(g(a, O))),
|
|
I.push(a),
|
|
2 < K.length &&
|
|
((a = K.slice(1, K.length - 1)),
|
|
w(a, function (a) {
|
|
I.push(xa(g(a, O)));
|
|
}))))
|
|
: 1 < B.length && I.push(g(B, O))),
|
|
R.drawArea &&
|
|
(r
|
|
? (Nb.push({ s: J, e: B }),
|
|
c &&
|
|
((L = []),
|
|
1 === Nb.length
|
|
? ((J = d ? d(J) : J), L.push(k(J, B, !0)))
|
|
: ((a = Nb[Nb.length - 1]),
|
|
(c = a.s.slice(0)),
|
|
(a = a.e.slice(0)),
|
|
(b = Nb[0].s),
|
|
a.push.apply(a, H(Nb[0].e)),
|
|
c.push.apply(c, H(b)),
|
|
L.push(k(c, a)),
|
|
2 < Nb.length &&
|
|
((c = Nb.slice(1, Nb.length - 1)),
|
|
w(c, function (a) {
|
|
L.push(k(a.s, a.e));
|
|
})))))
|
|
: (J.reverse(), (J = d ? d(J) : J), (b = [g(B, O)]), b.push(g(J, !O).join(" ").replace(/M/gi, "L")), L.push(xa(b) + "Z"))));
|
|
}
|
|
B = [];
|
|
J = [];
|
|
}
|
|
var d = c ? c.coordinatesCorrection : null,
|
|
g = this,
|
|
h = g.series,
|
|
k = h.currentOptions,
|
|
l = h.indexer,
|
|
m = h.pane,
|
|
n,
|
|
p,
|
|
q = h.chartArea.isZoomLive();
|
|
if (t(g.lastRenderVisibility) && !g.lastRenderVisibility && !h.isVisible) return g;
|
|
var r = m ? m.isRadial : !1,
|
|
u = h.indexer.data.coordinates || h.prevCoords;
|
|
u && (u = u.slice(0));
|
|
var x = a.x,
|
|
v = a.y,
|
|
y = a.width,
|
|
D = a.height,
|
|
E = h.ctManager,
|
|
F = h.info,
|
|
R = F.type,
|
|
C = h.userPoints,
|
|
wa = h.points().items,
|
|
U = E.settingVal("lineSeriesType", k),
|
|
M = N(k, ["emptyPointMode"]) || "undefined",
|
|
B = [],
|
|
J = [],
|
|
K = [];
|
|
c = [];
|
|
var Nb = [],
|
|
I = [],
|
|
L = [],
|
|
O = g.isHoriz(),
|
|
Q = (E.isType("map") && "line" === R.seriesType && "spline" === U) || (E.isType("radar") && m && "polar" === m.getRadarType() && "line" === R.seriesType),
|
|
P = N(m, ["projection", "val2linxy"]),
|
|
S = O ? a.height : a.width;
|
|
r && ((S = 1), (g.isRadial = !0));
|
|
m = m ? m.xAxis : h.xAxis;
|
|
E = m.clusterCounts[h.type];
|
|
var Ba = t(E);
|
|
E = z(E, 1);
|
|
var T = m.getShortestDistPerc(),
|
|
W = T * S,
|
|
X = m.currentOptions.spacingPercentage,
|
|
Z = W * X;
|
|
if (1 <= Z || r) W -= Z;
|
|
var aa = z(m.currentOptions.staticColumnWidth, W),
|
|
V = aa / E;
|
|
"column" !== k.type || r || (V = Math.max(V, 5));
|
|
var da = aa / E;
|
|
r || ((V = na(V)), (da = na(aa / E)));
|
|
m = z(h.clusterIndex, 1);
|
|
var ea = -(V * E) / 2 + V * m;
|
|
Z = T * X;
|
|
var ba = { xLength: 1, clusterWidth: T - (1 <= Z ? Z : 0) };
|
|
A(ba, { thisWidth: ba.clusterWidth / E });
|
|
A(ba, { unclusteredWidth: ba.clusterWidth / E, clusterOffset: -(ba.thisWidth * E) / 2 + ba.thisWidth * m });
|
|
E = function (a) {
|
|
return "string" === typeof a && -1 < a.indexOf("%") ? (parseInt(a) / 100) * Math.min(y, D) : a;
|
|
};
|
|
var fa = function (a, b) {
|
|
var c;
|
|
if ((c = n[a])) (p[a] = qa.apply(void 0, H(c))), b && Fb(b) && (p[a] = b.apply(void 0, H(p[a])));
|
|
},
|
|
ia = function (a) {
|
|
var b;
|
|
if ((b = n[a])) {
|
|
var c = (p[a] = []);
|
|
w(b, function (a) {
|
|
c.push(qa.apply(void 0, H(a)));
|
|
});
|
|
}
|
|
},
|
|
ka = l.hasAllKeys("ys,ye"),
|
|
ca = l.hasAllKeys("xs,xe");
|
|
m = h.ctManager.settingVal("bubbleSizingType", h.options());
|
|
var la = E(N(k, ["size", "max"])) || 50,
|
|
ma = E(N(k, ["size", "min"])) || 5,
|
|
oa = Sn(la / 2),
|
|
sa = Sn(ma / 2);
|
|
l.indexKeys(["coordinates", "bbox"], {}, 0);
|
|
var ra = function (a, b) {
|
|
return [x + a * y, v + b * D];
|
|
};
|
|
X = function (a, b) {
|
|
return [ca ? a : ba.clusterOffset + ba.thisWidth / 2 + a, b];
|
|
};
|
|
var ta = function (a) {
|
|
return ca ? a : ba.clusterOffset + ba.thisWidth / 2 + a;
|
|
};
|
|
E = function (a, b) {
|
|
return [a, ca ? b : ea + V / 2 + b];
|
|
};
|
|
var pa = function (a, b, c) {
|
|
P && ((b = G(O ? P(b, a, c) : P(a, b, c), 2)), (a = b[0]), (b = b[1]));
|
|
a = ra(a, b);
|
|
r && (t(c) || (c = 0.9), a.push((y / 2) * c));
|
|
return a;
|
|
};
|
|
m = {
|
|
column: r
|
|
? X
|
|
: function (a, b) {
|
|
return [ca ? x + a * y : x + ea + V / 2 + a * y, v + b * D];
|
|
},
|
|
marker: r ? pa : ra,
|
|
bubble:
|
|
"width" === m
|
|
? function (a, b, c) {
|
|
a = pa(a, b);
|
|
a.push(Y(ma, la, 0, 1, c));
|
|
return a;
|
|
}
|
|
: function (a, b, c) {
|
|
a = pa(a, b);
|
|
a.push(2 * Math.sqrt(Y(sa, oa, 0, 1, c) / Math.PI));
|
|
return a;
|
|
},
|
|
};
|
|
m.ohlc = m.column;
|
|
O &&
|
|
(m.column = r
|
|
? E
|
|
: function (a, b) {
|
|
return [x + a * y, ca ? v + b * D : v + ea + V / 2 + b * D];
|
|
});
|
|
m.variwide = m.column;
|
|
var qa = m[h.type] || m.marker;
|
|
X = function (c, d) {
|
|
d = [];
|
|
var e = {};
|
|
if (l.getValue("isEmpty", c)) return "ignore" !== M && b(!0), "continue";
|
|
n = l.getValue("pos", c);
|
|
p = { width: Ba ? V : void 0, unclusteredWidth: da, clusterSpace: T * S, meta: e };
|
|
g.clearPrevCoord(l.getValue("coordinates", c));
|
|
l.setValue("coordinates", c, p);
|
|
var f = r && R.drawRect ? pa : void 0;
|
|
fa("xyz", f);
|
|
fa("xyzs", f);
|
|
var m = p.xyzs;
|
|
f = p.xyz;
|
|
var v = m[1] - f[1],
|
|
x = V;
|
|
if (r) {
|
|
var y = g.series.pane.angleArc();
|
|
p.arc = { angle: Y(y.start, y.end, 0, 1, n.xyz[0]), cxy: va(ha(a)) };
|
|
}
|
|
e.xy = f;
|
|
y = void 0;
|
|
var D = ca ? m[0] : f[0] - V / 2,
|
|
E = ca ? f[0] - m[0] : V,
|
|
A = void 0;
|
|
r && ((v = n.xyzs[1] - n.xyz[1]), (D = ca ? n.xyzs[0] : n.xyz[0] - V / 2), (A = ca ? n.xyzs[0] : n.xyz[0]), (E = ca ? n.xyz[0] - n.xyzs[0] : x));
|
|
if (Ba)
|
|
if (r) {
|
|
if (O) {
|
|
if (((v = p.rectPos = { y: ca ? n.xyzs[1] : ta(n.xyz[1] - V / 2), x: n.xyzs[0], width: n.xyz[0] - n.xyzs[0], height: V, ccw: n.xyzRDesc[1] }), n.xyzRDesc[1] && ja(C[c].y))) {
|
|
x = void 0;
|
|
for (0 > v.width ? (x = v.x + v.width) : 0 < v.width && ((x = v.x), (v.x += v.width)); x < v.x; ) x += 1;
|
|
v.width = x - v.x;
|
|
}
|
|
} else v = p.rectPos = { x: ta(A) - V / 2, y: n.xyz[1], width: E, height: v };
|
|
p.arcPos = { start: v.x, end: v.x + v.width, angle: v.x + v.width / 2 };
|
|
} else O ? ((y = ca ? m[1] : f[1] - V / 2), (x = ca ? f[1] - m[1] : V), (v = m[0] - f[0]), (y = { y: y, x: f[0], width: v, height: x })) : (y = { x: D, y: f[1], width: E, height: v }), (y = Yo(y)), (e.shape = ha(y));
|
|
t(D) &&
|
|
E &&
|
|
((p.rect = y),
|
|
R.drawRect &&
|
|
F.hasComplete &&
|
|
((D = n.completee - n.completes),
|
|
(E = n.completeXe - n.completeXs),
|
|
r
|
|
? ((v = p.rectPos),
|
|
(p.rectCompletePos = O
|
|
? { x: Y(v.x, v.x + v.width, 0, 1, n.completes), y: Y(v.y + v.height, v.y, 0, 1, n.completeXe), width: D * v.width, height: E * v.height, targetBox: ha(a) }
|
|
: { x: v.x + n.completeXs * v.width, y: v.y + (1 - n.completee) * v.height, width: E * v.width, height: D * v.height, targetBox: ha(a) }))
|
|
: (p.rectComplete = O
|
|
? { x: Y(y.x, y.x + y.width, 0, 1, n.completes), y: Y(y.y + y.height, y.y, 0, 1, n.completeXe), width: D * y.width, height: E * y.height }
|
|
: { x: y.x + n.completeXs * y.width, y: y.y + (1 - n.completee) * y.height, width: E * y.width, height: D * y.height })),
|
|
y && d.push([y.x, y.y, y.width, y.height]));
|
|
B.push(f);
|
|
Q &&
|
|
n.interpPoints &&
|
|
w(n.interpPoints, function (a) {
|
|
B.push(qa.apply(void 0, H(a)));
|
|
});
|
|
R.drawArea && J.push(m);
|
|
F.hasSubvalues && !r && (w(["sv", "svs", "svx", "svxs"], fa), w(["svv", "svxv"], ia));
|
|
h.coordinatesModifier && h.coordinatesModifier(g, p);
|
|
m = (p.styleSet = q ? u[c].styleSet : h.getPointAttr(h.userPoints[c])).markerSize;
|
|
y = N(k, ["defaultPoint", "marker", "visible"]) || !0 === N(C[c], ["marker", "visible"]);
|
|
if (R.drawMarker || k.forceMarker || y)
|
|
if ((F.hasMaxedMarkerLimit && !y && (m = 0), g.isRadial && "needle" === g.getBodyShapeName(wa[c]))) {
|
|
if (!q) {
|
|
var U = (e = h.pointBodyDGenerator) && e("needle", p),
|
|
G;
|
|
p.hitTest = function (a, b) {
|
|
G = G || Aa(U);
|
|
return G.hitTest(a, b);
|
|
};
|
|
}
|
|
} else
|
|
(e.marker = mb(f, [m, m])),
|
|
(e = e.marker.slice(0)),
|
|
(f = void 0),
|
|
(f = 0 === c || c === C.length - 1 ? N(Kl(g.series, c), ["marker", "offset"]) : z(N(C[c], ["marker", "offset"]), N(k, ["defaultPoint", "marker", "offset"]))) && (f = Kr(f)) && (e = Xc(e, f)),
|
|
d.push(e);
|
|
if (!R.isRadarColumn && d.length && !q) {
|
|
d = Ea(d);
|
|
var K = 15 > d[2] || 15 > d[3] ? th(d, [15, 15]) : d.slice(0);
|
|
ka && !R.isRadar && ((K = uv(K, [p.xyzs])), !R.drawRect && t(aa) && ((e = 0.8 * aa), (K = th(K, O ? [0, e] : [e, 0]))));
|
|
p.pathD = Cc(K);
|
|
e = z(C[c].mouseTracking, N(k, ["defaultPoint", "mouseTracking"]));
|
|
if (!t(e) || !0 === e) {
|
|
var cb = g.getLabelHitTest();
|
|
p.hitTest = function (a, b) {
|
|
return Ad(K, [a, b]) || cb(this, a, b);
|
|
};
|
|
}
|
|
l.setValue("bbox", c, d);
|
|
}
|
|
};
|
|
m = 0;
|
|
for (E = C.length; m < E; m++) X(m);
|
|
b(null, { isFinal: !0, xIsSorted: h.info.xIsSorted });
|
|
g.paths = { lines: I, areas: L };
|
|
g.coordinates.line = K;
|
|
R.drawArea && (g.coordinates.area = c);
|
|
g.coordRect = a;
|
|
g.validate(!0);
|
|
if (u) for (m = 0, E = wa.length; m < E; m++) if ((c = h.indexer.getValue("coordinates", m))) c.coordPrev = g.clearPrevCoord(u[m]);
|
|
g.renderOrder = l.sortByNone();
|
|
g.renderOrderRev = g.renderOrder.slice(0);
|
|
g.renderOrderRev.reverse();
|
|
return this;
|
|
};
|
|
c.prototype.clearPrevCoord = function (a) {
|
|
var b = a && a.coordPrev;
|
|
b && (b.prevCoord && (this.clearPrevCoord(b), (b.prevCoord = void 0)), b.pathD && (b.pathD.clearCache && b.pathD.clearCache(!0), (b.pathD = void 0)), (b.hitTest = void 0), (a.coordPrev = void 0));
|
|
return a;
|
|
};
|
|
c.prototype.setPos = function (a, c) {};
|
|
c.prototype.getShapeOptions = function (a, c) {
|
|
var b = this.series;
|
|
c = b.pane || b.chartArea;
|
|
b = b.currentOptions.shape;
|
|
c.defaultShapeOptions && (b = qd({}, b, c.defaultShapeOptions().ca));
|
|
return Gr(b, a);
|
|
};
|
|
c.prototype.validate = function (a) {
|
|
this.coordDirty = a ? !1 : !0;
|
|
};
|
|
c.prototype.hideUnused = function () {
|
|
var a = this.series,
|
|
c = a.visuals;
|
|
a = a.info.type;
|
|
a.drawLine || a.tree || !c.line || this.hideVisual(c.line);
|
|
!a.drawArea && c.area && this.hideVisual(c.area);
|
|
return this;
|
|
};
|
|
c.prototype.hideVisual = function (a) {
|
|
a && (a.finishAnimation && a.finishAnimation(), a.attr({ opacity: 0 }));
|
|
};
|
|
c.prototype.hideUnusedPointVisuals = function (a) {};
|
|
c.prototype.render_applyDynamicAttrVals = function (a, c, e) {
|
|
var b = this.series;
|
|
e = e || b.info.style.states[b.state] || {};
|
|
if (a.pop && 1 < a.length) {
|
|
for (var d = A({}, a[0]), h = 1, k = a.length; h < k; h++) d = im(d, a[h]);
|
|
a = d;
|
|
}
|
|
d = a.animation ? a.animation : {};
|
|
a.animation = c && c.animation ? A({}, b.getAnimationConfig(), c.animation || {}, d) : !1 !== c ? A({}, b.getAnimationConfig(), d) : A({}, { duration: 0 }, d);
|
|
b.isVisible ? ((a.opacity = z(e.opacity, 1)), (a.display = "block")) : ((a.opacity = 0), (a.display = "none"));
|
|
return a;
|
|
};
|
|
c.prototype.render_applyDynamicAttrValsLE = function (a, c, e) {
|
|
a = this.render_applyDynamicAttrVals(a, c, e);
|
|
a.opacity = 1;
|
|
a.display = "block";
|
|
return a;
|
|
};
|
|
c.prototype.getPointIconVisual = function (a, c, e) {
|
|
return this.getIconVisual(a, c, e);
|
|
};
|
|
c.prototype.getIconVisual = function (a, c, e) {
|
|
var b = this,
|
|
d = b.series,
|
|
h = d.renderer,
|
|
k = e.iconVisual || {},
|
|
l = b.getIconPaths(a, c),
|
|
m;
|
|
c = function (c, f) {
|
|
"string" === typeof l[c] && 0 === l[c].indexOf("url(")
|
|
? ((m = l[c].replace(/url\(/g, "").replace(/\)/g, "")), (f = { src: m, cx: a[0] / 2, cy: a[1] / 2, zIndex: 5, width: a[0], height: a[1] }))
|
|
: (f = b.render_applyDynamicAttrValsLE([{ d: l[c], opacity: 1, zIndex: f }, {}], { animation: d.getAnimationConfig() }, {}));
|
|
(k[c] = k[c] || (m ? h.renderer.element("image", f).add(n) : h.renderer.path(f).add(n))).attr(f);
|
|
e.icons[c] = f.d;
|
|
};
|
|
var n = (k.root = k.root || h.panel({ yAlignment: "center" }));
|
|
l.base ? c("base", 2) : Ra(k.base);
|
|
l.extra ? c("extra", 1) : Ra(k.extra);
|
|
return k;
|
|
};
|
|
c.prototype.getIconPaths = function (a, c) {
|
|
return Ci(this, a, c);
|
|
};
|
|
c.prototype.getIconStyles = function (a) {
|
|
return Jr(this);
|
|
};
|
|
c.prototype.setIconVisualAttr = function (a, c) {
|
|
var b = this,
|
|
d = b.series,
|
|
g = b.getIconStyles(a),
|
|
h;
|
|
if (a)
|
|
var k = a.base,
|
|
l = a.extra;
|
|
a = function (a) {
|
|
var e = { animation: c.isStyled ? d.getAnimationConfig() : !1 };
|
|
h = b.render_applyDynamicAttrValsLE(a, {}, {});
|
|
h = A(h, e);
|
|
!1 === d.isVisible && (b.modifyHiddenIconStyle(h), delete h.display, delete h.opacity);
|
|
return h;
|
|
};
|
|
if (g.base && k) {
|
|
var m = a(g.base),
|
|
n = c.icons.base;
|
|
n && (m.d = n);
|
|
k.attr(m);
|
|
}
|
|
g.extra && l && l.attr(a(g.extra));
|
|
c.isStyled = !0;
|
|
};
|
|
c.prototype.modifyHiddenIconStyle = function (a) {
|
|
var b = a.fill;
|
|
!1 === this.series.isVisible && (a.fill && ((b = To(b, 0.8)), (b = ne(b, "v", -0.2)), (b = ma(b)), (a.fill = b)), a.stroke && (a.stroke = To(a.stroke, 0.2)), 1 < a["stroke-width"] && (a["stroke-width"] = 1));
|
|
return a;
|
|
};
|
|
c.prototype.showHalo = function (a) {
|
|
var b = this.series,
|
|
c = b.chartArea,
|
|
f = ha(c.contentRect),
|
|
g = b.visuals,
|
|
h = b.renderer;
|
|
if (a && !b.indexer.getValue("isEmpty", a._i)) {
|
|
var k = a.currentOptions.focusGlow;
|
|
if (!1 !== k) {
|
|
var l = k ? L(Tt(), k) : Tt();
|
|
l.width = t(l.width) ? 2 * l.width : l.width;
|
|
vb(l.color, "%") && (l.color = a.replaceTokens(l.color));
|
|
tf(l) &&
|
|
((k = fc({ outline: l })),
|
|
A(k, { d: xa(this.haloPath(a, l)), "stroke-linejoin": "round", "pointer-events": "none", zIndex: 1 }),
|
|
(a = a.visuals.body),
|
|
c.panes && a && (f = rb(Ea([f, ha(a.box())]), -10)),
|
|
(k.clipPath = { d: Cc(f) + k.d, "clip-rule": "evenodd" }),
|
|
(f = qa(k)),
|
|
(f["stroke-opacity"] *= 0.4),
|
|
(k["stroke-width"] *= 0.6),
|
|
(b.haloPath = k.d),
|
|
(c = g.pointHalo || []),
|
|
c.length || (c = g.pointHalo = [h.renderer.path().add(b.rootVisuals.pointHalo), h.renderer.path().add(b.rootVisuals.pointHalo)]),
|
|
c[0].attr(k),
|
|
c[1].attr(f));
|
|
}
|
|
} else
|
|
(c = g.pointHalo || []),
|
|
c.length &&
|
|
w(c, function (a) {
|
|
return a.attr({ d: "M0 0" });
|
|
}),
|
|
(b.haloPath = "");
|
|
};
|
|
c.prototype.hideHalo = function () {
|
|
this.showHalo();
|
|
};
|
|
c.prototype.hideHaloMo = function () {
|
|
var a = this.series,
|
|
c = a.xAxis;
|
|
a = a.chartArea.tooltip.cttEnabled(a.yAxis, c);
|
|
c = c && (c.currentOptions.crosshair || {}).enabled;
|
|
a || c || this.hideHalo();
|
|
};
|
|
c.prototype.haloPath = function (a, c) {
|
|
var b = this.series;
|
|
c = c.width;
|
|
var d = b.indexer.getValue("coordinates", a._i);
|
|
b = b.info.hasMaxedMarkerLimit;
|
|
var g = d && z(d.pathD, d.pathObj, d.meta.bodyD),
|
|
h = "string" === typeof g && -1 < g.indexOf("url("),
|
|
k = g.arcShape,
|
|
l = !h && Np(g);
|
|
if (k) return a.visuals.body.attrApplier.outlinePath();
|
|
if (h) return Cc(ha(a.visuals.body.box()));
|
|
if (l || b) (a = d.meta.xy || d.xyz), (g = dc.circle(a[0] - c / 2, a[1] - c / 2, c, c));
|
|
return g;
|
|
};
|
|
c.prototype.pointMouseOver = function (a, c) {
|
|
var b = this.series,
|
|
d = b.chart,
|
|
g = d.hoveredPoint === c && this.hoveredItem === c;
|
|
N(d.hoveredPoint, ["series"]);
|
|
b.chartArea.debounce.clear("unmute");
|
|
(this.hoveredItem = c) && c.mouseOver(a);
|
|
var h = b.translateToGlobal([a.x, a.y]),
|
|
k;
|
|
b.pane && (k = b.pane.getGlobalOffsets());
|
|
if (!1 === N(d.currentOptions, ["defaultTooltip", "enabled"]) && c.labelAutoHidden) {
|
|
var l;
|
|
(l = c.visuals.label) && l.attr({ opacity: 1 }).refresh();
|
|
}
|
|
!b.chartArea.tooltip.cttEnabled(b.yAxis, b.xAxis) && b.tooltip.showTooltip(c, a, h, k);
|
|
c && !g && this.showHalo(c);
|
|
c && !g && ((a = Nl(c)) ? Ol(c, "", a) : ("select" !== b.state && b.setState("hover"), c.chart.highlighted && Qb(c.chart, c)));
|
|
};
|
|
c.prototype.pointMouseOut = function (a, c) {
|
|
var b = this.series,
|
|
d = b.chart;
|
|
b = b.chartArea;
|
|
this.hoveredItem = void 0;
|
|
!1 === N(d.currentOptions, ["defaultTooltip", "enabled"]) && c.labelAutoHidden && ((d = void 0), (d = c.visuals.label) && d.attr({ opacity: 0 }).refresh());
|
|
a = c && c.mouseOut(a);
|
|
this.hideHalo();
|
|
!1 !== a &&
|
|
c &&
|
|
!1 !== N(c.currentOptions, ["states", "mute", "enabled"]) &&
|
|
b.debounce.defer(
|
|
"unmute",
|
|
function () {
|
|
Qb(c.series.chart);
|
|
},
|
|
230
|
|
);
|
|
};
|
|
c.prototype.pointClick = function (a, c) {
|
|
c && c.click(a);
|
|
};
|
|
c.prototype.pointMouseOutAny = function () {
|
|
var a;
|
|
if ((a = this.hoveredItem)) return "select" !== this.series.state && this.series.setState(""), this.pointMouseOut({}, a), !0;
|
|
};
|
|
return c;
|
|
})(YC),
|
|
Oc = { marker: Ie },
|
|
gD = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.staticSeriesBodyInfo = [oz, Er];
|
|
b.kind = "area";
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.contextDefaults = function () {};
|
|
c.prototype.hideUnusedPointVisuals = function (a) {
|
|
a = a.visuals;
|
|
Ra(a.marker);
|
|
Ra(a.labelConnector);
|
|
Ra(a.rectComplete);
|
|
Ra(a.rect);
|
|
};
|
|
c.prototype.getIconPaths = function (a, c) {
|
|
var b = a[0],
|
|
d = a[1];
|
|
a = Fr(this, a, c);
|
|
a.extra += " L " + b + " " + d + " L0 " + d + " Z";
|
|
return a;
|
|
};
|
|
c.prototype.getIconStyles = function (b) {
|
|
var c = this.series.info.style.attr;
|
|
b = a.prototype.getIconStyles.call(this, b);
|
|
c = A(b, { extra: c.area });
|
|
b = c.extra;
|
|
b.fill && !b.stroke && (b.stroke = zh(b.fill));
|
|
return c;
|
|
};
|
|
return c;
|
|
})(Ie),
|
|
Vt = function () {
|
|
return { axes: "x,y", values: "x,y", requiredData: "x,y", supportedData: "x,y,subvalue,subvalueX,complete,completeX", privateAxes: "", customAxisOptions: {} };
|
|
},
|
|
Vg = (function (a) {
|
|
function c(b) {
|
|
var c = a.call(this, b) || this;
|
|
c.series = b;
|
|
c.kind = "column";
|
|
c.typeConfig = Vt();
|
|
c.staticBodyDGetter = Ql;
|
|
c.staticPointCompleteVisInfo = rz;
|
|
c.staticPositionsFromAligments = pz;
|
|
c.dependencyVisuals = [];
|
|
c.dependencyAttrs = [];
|
|
return c;
|
|
}
|
|
K(c, a);
|
|
c.prototype.getTypeConfigDefault = function () {
|
|
return Vt();
|
|
};
|
|
c.prototype.render = function (b) {
|
|
a.prototype.render.call(this, b);
|
|
this.renderDependencies(b);
|
|
return this;
|
|
};
|
|
c.prototype.setCoordinates = function (b, c) {
|
|
C(this, "series.pane.isRadial") && ((this.isRadial = !0), (this.staticBodyDGetter = this.series.pane.staticBodyDGetter), (this.staticPositionsFromAligments = this.series.pane.staticPositionsFromAligments));
|
|
a.prototype.setCoordinates.call(this, b, c);
|
|
return this;
|
|
};
|
|
c.prototype.getParents = function (a) {
|
|
var b = this,
|
|
c = [],
|
|
f,
|
|
g = [];
|
|
if (a) {
|
|
if ((f = a.options("parent"))) g = f.split(",");
|
|
return B(g, function (a) {
|
|
return b.series.ciManager.exists(a);
|
|
});
|
|
}
|
|
this.eachPoint(function (a) {
|
|
(f = a.options("parent")) ? ((g = f.split(",")), !b.series.ciManager.exists(g[0]) && c.push(a)) : c.push(a);
|
|
});
|
|
return $a(c);
|
|
};
|
|
c.prototype.renderDependencies = function (a) {
|
|
var b = this,
|
|
c = b.series,
|
|
f = b.isHoriz(),
|
|
g = c.indexer,
|
|
h = c[(f ? "x" : "y") + "Axis"].isInverted() ? 1 : 0,
|
|
k = function (a, b) {
|
|
var c = function (a, b, c) {
|
|
return la(a, b) > la(a, c) ? c : b;
|
|
},
|
|
d = Yb(b.meta.shape),
|
|
e = a.xyz.slice(0, 2),
|
|
g = b.xyz.slice(0, 2),
|
|
k = f ? 1 : 0,
|
|
l = f ? 0 : 1,
|
|
m = e[k] < g[k] ? 1 : -1,
|
|
n = e[k];
|
|
g = g[k];
|
|
var p = la(n, g) - b.clusterSpace / 2,
|
|
t = la(n, c(n, d[k], d[k + 2])),
|
|
w = a.xyz[l];
|
|
a = b.xyz[l];
|
|
var z = b.xyzs[l],
|
|
A,
|
|
M = [(A = e)],
|
|
C = function (a, b) {
|
|
var c = A.slice(0);
|
|
c[a] = b;
|
|
M.push((A = c));
|
|
},
|
|
B = sa([z, a]),
|
|
H = 5 * h;
|
|
b = w + H;
|
|
c = c(A[l], B[0], B[1]);
|
|
e = A[l] - c;
|
|
a = 0 < e ? -1 : 1;
|
|
d = function (a) {
|
|
void 0 === a && (a = 1);
|
|
C(l, w + H / a);
|
|
C(k, n + p * m);
|
|
C(l, ua(z + H / a, B[0], B[1]));
|
|
C(k, n + t * m);
|
|
};
|
|
Kb(B, b) && a !== h ? d(1) : Kb(B, b) ? (C(l, b), C(k, n + t * m)) : 0 === e ? d(1.5) : a === h ? (C(l, c - H), C(k, g), C(l, z)) : a !== h && d(1);
|
|
return hd(M, 3);
|
|
},
|
|
l = [],
|
|
m = function (a, b) {
|
|
var c = g.getValue("coordinates", a._i);
|
|
w(b, function (b) {
|
|
if (b && b.series.isVisible) {
|
|
var d = b.series.indexer.getValue("coordinates", b._i),
|
|
e = A({ color: "#494949", width: 1, caps: { end: { type: "arrow", size: 6, concavity: 0.1 } } }, b.series.options("line"));
|
|
b = A(Bb(e), { d: k(d, c), key: b.id + a.id });
|
|
l.push(b);
|
|
}
|
|
});
|
|
return [];
|
|
};
|
|
b.eachPoint(function (a) {
|
|
return m(a, b.getParents(a));
|
|
});
|
|
b.updateDeps(l, a);
|
|
return b;
|
|
};
|
|
c.prototype.updateDeps = function (a, c) {
|
|
var b = this,
|
|
d = b.series.renderer.renderer,
|
|
g = b.series.rootVisuals.area;
|
|
b.dependencyAttrs = B(a, function (a) {
|
|
return b.render_applyDynamicAttrVals(a, c);
|
|
});
|
|
a &&
|
|
Ub(
|
|
a,
|
|
b.dependencyVisuals,
|
|
function (a) {
|
|
var c = d.path(a).add(g);
|
|
c.data.key = a.key;
|
|
b.dependencyVisuals.push(c);
|
|
},
|
|
function (a, b) {
|
|
return b.attr(a);
|
|
},
|
|
function (a) {
|
|
g.removeChild(a.el);
|
|
pb(b.dependencyVisuals, a);
|
|
},
|
|
function (a) {
|
|
return a.key;
|
|
},
|
|
function (a) {
|
|
return a.data.key;
|
|
}
|
|
);
|
|
return b;
|
|
};
|
|
c.prototype.getBodyShapeName = function (a, c) {
|
|
return c ? this.series.getPointMarkerType(a.currentOptions) : "square";
|
|
};
|
|
c.prototype.hideUnusedPointVisuals = function (a) {
|
|
var b = a.series.options("forceMarker") || !0 === C(a.currentOptions, "marker.visible");
|
|
a = a.visuals;
|
|
!b && Ra(a.marker);
|
|
Ra(a.labelConnector);
|
|
};
|
|
c.prototype.possibleLabelPositions = function (a, c, e, f, g) {
|
|
e = this.series;
|
|
c = f.meta;
|
|
var b = a.currentOptions.label || {},
|
|
d = e.chartArea;
|
|
d = (e.pane || d).collisionManager;
|
|
e = this.isHoriz();
|
|
var l = b.rotate;
|
|
b = !e && d.anyColLabelOverflow;
|
|
d = ha(this.series.contentRect());
|
|
c = c.labelSize.slice(0);
|
|
t(l) && ((b = !1), 90 === Math.abs(l) ? (b = !0) : 0 !== l && (c = hk(H([0, 0], c), [l, 0, 0]).slice(2)));
|
|
b && ((f.meta.isVertical = !0), c.reverse());
|
|
g = this.isRadial ? g.getValue("pos", a._i) : f;
|
|
g = e ? (g.xyz[0] > g.xyzs[0] ? "r" : "l") : g.xyz[1] > g.xyzs[1] ? "d" : "u";
|
|
a = dD(this, a, g);
|
|
return this.staticPositionsFromAligments(this, f, g, d, c, a, b);
|
|
};
|
|
c.prototype.getIconPaths = function (a, c) {
|
|
return Pl(this, a, c);
|
|
};
|
|
c.prototype.getIconStyles = function (a) {
|
|
a = this.series;
|
|
var b = a.info,
|
|
c = a.getPointAttr(),
|
|
f = Jr(this);
|
|
if (b.hasUniqueStyles || b.type.colorByPoint) (a = c.pointAttr[""]), zc(f, a, "base.hatch", "hatch"), zc(f, a, "base.hatchPattern", "hatchPattern");
|
|
else if (((f = A(f, { base: c.pointAttr[""] })), (b = f.base.fill), (c = b.linearGradient))) {
|
|
var g = c.hash;
|
|
c = b.linearGradient = Ja(90);
|
|
c.hash = g + "LE" + a.isVisible;
|
|
}
|
|
return f;
|
|
};
|
|
c.prototype.getPointAnimatorOptions = function (a, c) {
|
|
return (c = this.series.pane) && c.isRadial && a.coordPrev ? ("spider" === c.getRadarType() ? {} : { slice: { to: a.pathOptions, from: a.coordPrev.pathOptions } }) : {};
|
|
};
|
|
return c;
|
|
})(Ie),
|
|
hD = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.kind = "line";
|
|
b.staticSeriesBodyInfo = [Er];
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.contextDefaults = function () {};
|
|
c.prototype.render = function (b) {
|
|
a.prototype.render.call(this, b);
|
|
return this;
|
|
};
|
|
c.prototype.hideUnusedPointVisuals = function (a) {
|
|
a = a.visuals;
|
|
Ra(a.marker);
|
|
Ra(a.labelConnector);
|
|
};
|
|
c.prototype.getIconPaths = function (a, c) {
|
|
return Fr(this, a, c);
|
|
};
|
|
c.prototype.getIconStyles = function (b) {
|
|
var c = this.series,
|
|
e = A({}, c.info.style.attr),
|
|
f = a.prototype.getIconStyles.call(this, b),
|
|
g = Math.max.apply(
|
|
Math,
|
|
H(
|
|
c.chartArea
|
|
.series(function (a) {
|
|
return a.info.type.drawLine;
|
|
})
|
|
.items.map(function (a) {
|
|
return N(a.currentOptions, ["line", "width"]) || 0;
|
|
})
|
|
)
|
|
),
|
|
h = 1,
|
|
k = function (a, b) {
|
|
void 0 === b && (b = h);
|
|
return a ? Math.max(1, a * b) : a;
|
|
};
|
|
c = function (a, b) {
|
|
void 0 === b && (b = h);
|
|
return Math.round(k(a, b));
|
|
};
|
|
4 < g && (h = 4 / g);
|
|
if ((g = e.line["stroke-width"]))
|
|
if (((e.line["stroke-width"] = c(g)), (c = void 0), 2 < g && (c = e.line["stroke-dasharray"]))) {
|
|
g = c.split(",").map(function (a) {
|
|
return parseInt(a);
|
|
});
|
|
g = Ta(g);
|
|
b = Aa(b.extra.data.attrs.d).length();
|
|
var l = h;
|
|
l = Math.min(l, b / (2.2 * g));
|
|
e.line["stroke-dasharray"] = c
|
|
.split(",")
|
|
.map(function (a) {
|
|
return k(parseInt(a), l);
|
|
})
|
|
.join(",");
|
|
}
|
|
return A(f, { extra: Ga(e.line, ["caps"]) });
|
|
};
|
|
return c;
|
|
})(Ie),
|
|
Wt = function () {
|
|
return { axes: "x,y", values: "x,open,high,low,close" };
|
|
},
|
|
iD = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.kind = "candlestick";
|
|
b.typeConfig = Wt();
|
|
b.pointValueParser = tz;
|
|
b.staticBodyDGetter = Ql;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.getTypeConfigDefault = function () {
|
|
return Wt();
|
|
};
|
|
c.prototype.pointArrayExpander = function (a) {
|
|
return { x: a[0], open: a[1], high: a[2], low: a[3], close: a[4] };
|
|
};
|
|
c.prototype.hideUnusedPointVisuals = function (a) {
|
|
a = a.visuals;
|
|
Ra(a.rect);
|
|
Ra(a.marker);
|
|
Ra(a.labelConnector);
|
|
};
|
|
c.prototype.getIconPaths = function (a, c) {
|
|
var b = a[1] / 2,
|
|
d = a.slice(0),
|
|
g = Math.round(0.4 * a[0]),
|
|
h = g / 2;
|
|
d[0] -= g;
|
|
var k = Pl(this, d, c);
|
|
w(k, function (a, b) {
|
|
a = a.isPath ? a : Aa(xa(a));
|
|
k[b] = a.translate(function (a) {
|
|
return [a[0] + h, a[1]];
|
|
});
|
|
});
|
|
k.extra = "M0 " + b + " L " + h + " " + b;
|
|
k.extra += "M" + (a[0] - h) + " " + b + " L" + a[0] + " " + b + " ";
|
|
return k;
|
|
};
|
|
c.prototype.getIconStyles = function (a) {
|
|
a = this.series.info.style.base.color;
|
|
return { base: { fill: a, stroke: ia("outline", a), "stroke-width": 1 }, extra: { fill: "none", stroke: ia("outline", a), "stroke-width": 1 } };
|
|
};
|
|
return c;
|
|
})(Vg),
|
|
Xt = function () {
|
|
return { axes: "x,y", values: "x,open,high,low,close", customAxisOptions: { z: { visible: !1 } } };
|
|
},
|
|
jD = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.kind = "ohlc";
|
|
b.typeConfig = Xt();
|
|
b.pointValueParser = uz;
|
|
b.staticBodyDGetter = vz;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.getTypeConfigDefault = function () {
|
|
return Xt();
|
|
};
|
|
c.prototype.pointArrayExpander = function (a) {
|
|
return { x: a[0], open: a[1], high: a[2], low: a[3], close: a[4] };
|
|
};
|
|
c.prototype.hideUnusedPointVisuals = function (a) {
|
|
var b = a.visuals;
|
|
Ra(b.rect);
|
|
!a.series.options("forceMarker") && Ra(b.marker);
|
|
Ra(b.marker);
|
|
Ra(b.labelConnector);
|
|
};
|
|
c.prototype.getIconPaths = function (a, c) {
|
|
c = a[1] / 2;
|
|
var b = 0.3 * a[0],
|
|
d = { extra: "" };
|
|
d.extra = "M0 " + c + " L " + a[0] + " " + c;
|
|
d.extra += "M" + b + " 0 L" + b + " " + c;
|
|
d.extra += "M" + (a[0] - b) + " " + a[1] + " L" + (a[0] - b) + " " + c;
|
|
return d;
|
|
};
|
|
c.prototype.getIconStyles = function (a) {
|
|
return { extra: { fill: "none", stroke: ia("outline", this.series.info.style.base.color), "stroke-width": 1 } };
|
|
};
|
|
return c;
|
|
})(Vg),
|
|
kD = (function (a) {
|
|
function c(b) {
|
|
var c = a.call(this, b) || this;
|
|
c.series = b;
|
|
c.kind = "variwide";
|
|
b.chart.typeContextOptions = { axes: { x: { spacingPercentage: 0, scale: { type: "stackedFull" } } } };
|
|
return c;
|
|
}
|
|
K(c, a);
|
|
return c;
|
|
})(Vg),
|
|
Yt = function () {
|
|
return { axes: "x,y,z", values: "x,y,z", requiredData: "x,y,z", supportedData: "x,y,z,subvalue,subvalueX", customAxisOptions: { z: { visible: !1 } } };
|
|
},
|
|
lD = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.kind = "bubble";
|
|
b.typeConfig = Yt();
|
|
b.staticBodyDGetter = xz;
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.getTypeConfigDefault = function () {
|
|
return Yt();
|
|
};
|
|
c.prototype.pointArrayExpander = function (a) {
|
|
return { x: a[0], y: a[1], z: a[2] };
|
|
};
|
|
c.prototype.setCoordinates = function (b, c) {
|
|
var d = this.series;
|
|
a.prototype.setCoordinates.call(this, b, c);
|
|
this.renderOrder = d.indexer.sortBy("z", !1) || d.indexer.sortBy("ze", !1);
|
|
this.renderOrderRev = this.renderOrder.slice(0);
|
|
this.renderOrderRev.reverse();
|
|
return this;
|
|
};
|
|
c.prototype.getIconPaths = function (a, c) {
|
|
return Ci(this, a, c, "circle");
|
|
};
|
|
c.prototype.possibleLabelPositions = function (b, c, e, f, g) {
|
|
c = c || f.pathD || f.meta.bodyD;
|
|
var d = f.meta,
|
|
k = f.xyz,
|
|
l = d.labelSize;
|
|
c = or(Aa(c), l, k);
|
|
k = [];
|
|
c ? ((c.isInside = !0), k.push(c)) : (d.marker || (d.marker = [0, 0, 0]), (d.marker[2] = f.xyzs[2]), (k = a.prototype.possibleLabelPositions.call(this, b, "", e, f, g)));
|
|
return k;
|
|
};
|
|
c.prototype.hideUnusedPointVisuals = function (a) {
|
|
var b = a.visuals;
|
|
Ra(b.rect);
|
|
a.series.options("forceMarker") || a.options("marker.visible") || Ra(b.marker);
|
|
Ra(b.labelConnector);
|
|
};
|
|
return c;
|
|
})(Ie);
|
|
Oc.area = gD;
|
|
Oc.column = Vg;
|
|
Oc.line = hD;
|
|
Oc.candlestick = iD;
|
|
Oc.ohlc = jD;
|
|
Oc.variwide = kD;
|
|
Oc.bubble = lD;
|
|
var Vm,
|
|
Db,
|
|
fj,
|
|
gj = function () {
|
|
return { radius: 2, shadow: !0, boxVisible: !0, fill: "auto", outline: { color: "auto", width: 1 }, transparency: 0.2, enabled: !0, timeout: 1200, margin: 7, padding: 5, followCursor: "auto" };
|
|
},
|
|
mD = function (a) {
|
|
return a.pop
|
|
? a
|
|
.map(function (a) {
|
|
return a.id;
|
|
})
|
|
.join("")
|
|
: a.id;
|
|
},
|
|
Zt = (function () {
|
|
function a(a) {
|
|
var b = this;
|
|
this.series = a;
|
|
this.kind = "Tooltip";
|
|
this.currentOptions = gj();
|
|
this.moveTooltip = Ni(function (a, c, d) {
|
|
var e = b.chart.rootVisuals.tooltip;
|
|
if (e) {
|
|
var f = e.rootPanel.el;
|
|
f && ((a = b.position(a, b.targetPanel(), e.bbox(), c, !0, d).outBox), f.attr({ animation: { duration: 10 }, transform: { translate: a.slice(0, 2) } }));
|
|
}
|
|
}, 10);
|
|
var c = "Series" === a.kind ? a.chartArea : a;
|
|
this.chart = a.chart;
|
|
this.curCA = c;
|
|
this.chart.tooltipRef = this;
|
|
this.currentOptions = A(gj(), c.currentOptions.defaultTooltip || this.chart.currentOptions.defaultTooltip || {});
|
|
this.isVisible = !1;
|
|
this.debounce = new Ae();
|
|
}
|
|
a.prototype.options = function (a) {
|
|
a = Sa(a);
|
|
this.setOptions(a);
|
|
return this;
|
|
};
|
|
a.prototype.setOptions = function (a) {
|
|
this.currentOptions = A(gj(), this.curCA.currentOptions.defaultTooltip || this.chart.currentOptions.defaultTooltip || {}, a);
|
|
return this;
|
|
};
|
|
a.prototype.targetMetrics = function (a) {
|
|
var b = a.coord(),
|
|
c = this.currentOptions.margin || 0,
|
|
e = C(b, "meta.label");
|
|
a = a.bbox();
|
|
4 === C(b, "meta.marker.length") && (a = Ea([a, b.meta.marker]));
|
|
return { xyz: b.xyz, xyzs: b.xyzs, elBox: rb(a, -c), labelBox: e ? rb(e, -c) : e };
|
|
};
|
|
a.prototype.showTooltip = function (a, b, d, e) {
|
|
var c = this,
|
|
g = this.currentOptions,
|
|
h = this.debounce,
|
|
k = this.isFollowCursor(a, b);
|
|
a && a !== Vm && !1 !== g.enabled && !0 !== g.combined
|
|
? ((Vm = a),
|
|
h.clear("showtimeout"),
|
|
h.clear("hidetimeout"),
|
|
k
|
|
? this.show(a, b, d, e)
|
|
: h.defer(
|
|
"showtimeout",
|
|
function () {
|
|
return c.show(a, b, d, e);
|
|
},
|
|
20
|
|
))
|
|
: k && this.moveTooltip(a, d, e);
|
|
};
|
|
a.prototype.isFollowCursor = function (a, b) {
|
|
var c = this.currentOptions;
|
|
if ("boolean" === typeof c.followCursor) return c.followCursor;
|
|
if ("touch" === b.device || c.combined || !a.series) return !1;
|
|
a = a.series.info.type;
|
|
return !a.isAnnotation && (a.isShape || a.isMapLayer || a.tree);
|
|
};
|
|
a.prototype.hideTooltip = function (a) {
|
|
var b = this,
|
|
c = this,
|
|
e = this.series,
|
|
f = this.debounce;
|
|
a = z(a, this.currentOptions.timeout, 1200);
|
|
f.clear("showtimeout");
|
|
f.clear("hidetimeout");
|
|
Vm = null;
|
|
if (!0 !== e.options("mouseTracking.sticky")) {
|
|
var g = C(this.chart.rootVisuals, "tooltip.rootPanel.el");
|
|
g &&
|
|
f.defer(
|
|
"hidetimeout",
|
|
function () {
|
|
Db === c &&
|
|
(null === g || void 0 === g ? void 0 : g.attr({ opacity: 0, animation: { duration: 40 } }),
|
|
setTimeout(function () {
|
|
return b.hide();
|
|
}, 40));
|
|
},
|
|
a
|
|
);
|
|
}
|
|
};
|
|
a.prototype.defaultAnimation = function (a) {
|
|
return { duration: a ? 0 : 40 };
|
|
};
|
|
a.prototype.hide = function () {
|
|
var a = this.chart.rootVisuals.tooltip;
|
|
a && a.isVisible && (a.visible(!1), (a.isVisible = !1), (fj = ""), this.chart.renderer.refresh());
|
|
Db === this && (Db.debounce.clear("hidetimeout"), (Db = void 0));
|
|
};
|
|
a.prototype.translateToGlobal = function (a) {
|
|
var b = this.series.translateToGlobal(a);
|
|
4 === a.length && b.push.apply(b, H(a.slice(2, 4)));
|
|
return b;
|
|
};
|
|
a.prototype.correctChartBox = function (a) {
|
|
a = this.translateToGlobal(a);
|
|
a[0] = -a[0];
|
|
a[1] = -a[1];
|
|
return a;
|
|
};
|
|
a.prototype.correctCABox = function (a) {
|
|
return this.series.correctRootBox(a);
|
|
};
|
|
a.prototype.targetPanel = function () {
|
|
return this.series.rootVisuals.points;
|
|
};
|
|
a.prototype.color = function (a) {
|
|
return a.tokenValue("%color");
|
|
};
|
|
a.prototype.text = function (a) {
|
|
var b = a.series;
|
|
b = z(C(a.currentOptions, "tooltip"), C(b.currentOptions, "defaultPoint.tooltip"), b.getAutoTooltipText(a), b.info.labelTextInfo.tooltip);
|
|
Fb(b) && (b = b(a));
|
|
return a.replaceTokens(b);
|
|
};
|
|
a.prototype.show = function (a, b, d, e) {
|
|
this.preShow();
|
|
var c = this.chart,
|
|
g = mD(a),
|
|
h = (a.pop ? a[0] : a).series;
|
|
g += h.id || h.currentOptions.name || h.currentOptions.id || "";
|
|
var k = fj === g,
|
|
l = this.targetPanel(),
|
|
m = this.currentOptions;
|
|
if (!k) {
|
|
h = c.rootVisuals.tooltip;
|
|
if (!k) {
|
|
var n = this.text(a),
|
|
p = this.color(a),
|
|
q = C(m, "outline.color");
|
|
q = A({ style: { "pointer-events": "none" } }, m, { label: { text: n, align: this.chart.isRtlCulture ? "right" : "left" }, outline: { color: "auto" === q ? ia("outline", p) : q } });
|
|
q.margin = 0;
|
|
if (h) {
|
|
var r = h.isVisible;
|
|
h.visible(!0);
|
|
(c = h.rootPanel.el) && c.attr && c.attr({ opacity: 1 });
|
|
} else h = c.rootVisuals.tooltip = new nD(c, A({ asHTML: !1, autoWrap: "none" }, q)).add(c.rootVisuals.front);
|
|
h.options(q, !1);
|
|
h.rootPanel.setPreliminarySize && h.rootPanel.setPreliminarySize(!0);
|
|
}
|
|
c = h.bbox();
|
|
m = this.isFollowCursor(a, b);
|
|
l = this.position(a, l, c, d, m, e);
|
|
e = l.xy;
|
|
l = l.outBox;
|
|
k
|
|
? h.options({ position: e.join(",") })
|
|
: ((k = h.chart.rootVisuals.itemsBox.getGlobalBboxArray()),
|
|
(e = [l[0] - k[0], l[1] - k[1]]),
|
|
(q = q.fill),
|
|
c[3] &&
|
|
((c = Gc(c)),
|
|
(l = this.currentOptions),
|
|
void 0 === l && (l = {}),
|
|
(k = 1 - (l.opacity || 1)),
|
|
(l = t(l.radius) ? l.radius / 4 + 3 : 5),
|
|
(c = Math.round((l / c.height) * 100)),
|
|
(p = Lb(p, k)),
|
|
(p = jb(Ja(90), [
|
|
["0%", p],
|
|
["0%", p],
|
|
[0 + c + "%", V("#f0f2fd", k)],
|
|
[0 + c + "%", V("#ffffff", k)],
|
|
[100 - c + "%", V("#ffffff", k)],
|
|
[100 - c + "%", V("#e6e9fd", k)],
|
|
["100%", p],
|
|
["100%", p],
|
|
]))),
|
|
h.options({ fillShading: !1, fill: "auto" === q ? p : q, position: e.join(",") }, r ? { animation: this.defaultAnimation() } : { animation: this.defaultAnimation(!0) }),
|
|
(Db = this),
|
|
(fj = g),
|
|
this.postShow(a, b, d));
|
|
fj = g;
|
|
}
|
|
};
|
|
a.prototype.position = function (a, b, d, e, f, g) {
|
|
var c = "TooltipCa" === this.kind,
|
|
k = !!this.series.pane,
|
|
l = this.curCA.rootVisuals.content,
|
|
m = N(this.chart.userOptions, ["defaultTooltip", "margin"]),
|
|
n = this.currentOptions.margin;
|
|
f && !t(m) && (n = 20);
|
|
if (f) g && ((e[0] -= g.x), (e[1] -= g.y));
|
|
else {
|
|
var p = this.targetMetrics(a);
|
|
if (!p) return { xy: [0, 0], outbox: d };
|
|
}
|
|
var q = p ? p.xyz : e,
|
|
r = p ? p.xyzs : p;
|
|
m = p ? p.elBox : mb(q, [2 * n, 2 * n]);
|
|
var u = p && p.labelBox ? Ea([m, p.labelBox]) : void 0,
|
|
x = r && q[0] !== r[0];
|
|
ha(("chartArea" === this.series.kind ? this.series.rootVisuals.content : this.series.chartArea.rootPanel).getGlobalBbox());
|
|
var v = rb(ha(this.chart.rootPanel.getGlobalBbox()), 0),
|
|
y = this.correctCABox(ha(l.getGlobalBbox()));
|
|
l = this.correctChartBox(ha(this.chart.rootPanel.getGlobalBbox()));
|
|
var D = k ? this.correctCABox(ha(this.chart.rootPanel.getGlobalBbox())) : v,
|
|
E = k ? D : l.slice(0);
|
|
k ||
|
|
w(this.curCA._axes, function (a) {
|
|
if (a.isVisible) {
|
|
a = a.sideIndex();
|
|
var b = Yb(y);
|
|
switch (a) {
|
|
case 0:
|
|
E = bk(E, b[1]);
|
|
D = bk(D, b[1]);
|
|
break;
|
|
case 1:
|
|
E = ck(E, b[2]);
|
|
D = ck(D, b[2]);
|
|
break;
|
|
case 2:
|
|
E = dk(E, b[3]);
|
|
D = dk(D, b[3]);
|
|
break;
|
|
case 3:
|
|
(E = ak(E, b[0])), (D = ak(D, b[0]));
|
|
}
|
|
}
|
|
});
|
|
b = md(b, x ? [(q[0] + r[0]) / 2, q[1]] : q, 1);
|
|
b = [b[0] - d[2] / 2, b[1] - d[3] - n];
|
|
b = f ? b : this.translateToGlobal(b);
|
|
n = b.slice(0);
|
|
n.push.apply(n, H(d.slice(2)));
|
|
r = "inCenter";
|
|
q = "outTop";
|
|
if (
|
|
m &&
|
|
(c && (this.curCA.isHoriz ? ((q = e[1] < l[3] / 2 ? "outBottom" : "outTop"), (r = "inMiddle")) : ((r = e[0] < l[2] / 2 ? "outRight" : "outLeft"), (q = "inMiddle"))),
|
|
(x = f ? m : this.translateToGlobal(m)),
|
|
(n = he(n, x, r, q).box),
|
|
!c &&
|
|
!f &&
|
|
((x = (a[0] || a).series.visualizer), (v = void 0), p && p.labelBox && (v = this.possiblePositions(a[0] || a, d, u, E, x)), (v && 0 !== v.length) || (v = this.possiblePositions(a[0] || a, d, m, E, x)), 0 < v.length))
|
|
) {
|
|
var F = !0;
|
|
n = k ? v[0] : this.translateToGlobal(v[0]);
|
|
xv(this.translateToGlobal(m), Zc(n, D)) && (F = "forced" !== v[0][4]);
|
|
}
|
|
n = Zc(n, D);
|
|
m &&
|
|
!c &&
|
|
!F &&
|
|
Ad(n, e) &&
|
|
((q = "outTop" === q ? "outBottom" : "inMiddle"),
|
|
(a = n.slice(0)),
|
|
(x = f ? m : this.translateToGlobal(m)),
|
|
(n = he(n, x, r, q).box),
|
|
(n = Zc(n, D)),
|
|
f && Ad(n, e) && ((f = l[2] - e[0]), e[0] > n[2] || f > n[2] ? ((r = e[0] > l[2] / 2 ? "outLeft" : "outRight"), (n = he(n, x, r, q).box), (n = Zc(n, D))) : (n = a)));
|
|
g && ((n[0] += Math.round(g.x)), (n[1] += Math.round(g.y)));
|
|
return { xy: b, outBox: n };
|
|
};
|
|
a.prototype.possiblePositions = function (a, b, d, e, f) {
|
|
a = a.series;
|
|
var c = a.chartArea.collisionManager;
|
|
f = a.yAxis;
|
|
var h = a.isStacked,
|
|
k = a.info.type,
|
|
l = !1;
|
|
k.drawRect || (l = !0);
|
|
var m = function (a) {
|
|
return a.split(",").map(function (a) {
|
|
a = a.split("-");
|
|
return { align: "out" + a[0], vAlign: "out" + a[1] };
|
|
});
|
|
},
|
|
n = m("center-top,center-bottom,left-middle,right-middle");
|
|
l && n.push.apply(n, H(m("left-top,right-top,left-bottom,right-bottom")));
|
|
k.drawRect &&
|
|
"horizontal" === a.ctSv("chartType") &&
|
|
((n = n.map(function (a) {
|
|
return Nc(a, !0);
|
|
})),
|
|
f &&
|
|
!f.isInverted() &&
|
|
(n = n.map(function (a) {
|
|
return Nc(a);
|
|
})));
|
|
var p = function (a) {
|
|
return $c(e, a);
|
|
};
|
|
a = n.map(function (a) {
|
|
return he(H([0, 0], b.slice(2)), d, a.align, a.vAlign).box;
|
|
});
|
|
f = a.filter(p).filter(function (a) {
|
|
return p(a) && h ? !c.collideLabels(a) : !c.collideAll(a);
|
|
});
|
|
if (!f.length) {
|
|
if (p(a[0])) return a[0].push("possible"), [a[0]];
|
|
a[0].push("forced");
|
|
f = [a[0]];
|
|
1 < a.length && p(a[1]) && (a[1].push("possible"), f.push(a[1]), f.reverse());
|
|
}
|
|
return f;
|
|
};
|
|
a.prototype.preShow = function () {
|
|
Db && Db.chart !== this.chart && Db.hide();
|
|
Db = this;
|
|
};
|
|
a.prototype.hideActiveTooltip = function (a) {
|
|
Db && (a ? Db && a === Db.chart && Db.hide() : Db.hide());
|
|
};
|
|
a.prototype.postShow = function (a, b, d) {
|
|
"touch" === b.device && this.hideTooltip(8e3);
|
|
this.isVisible = !0;
|
|
this.chart.chartAreaSet.items[0].debounce.clear("clickoff");
|
|
this.chart.tooltipRef = this;
|
|
};
|
|
a.prototype.cttEnabled = function (a, b) {
|
|
var c = this.currentOptions,
|
|
e = c.combined,
|
|
f = a.currentOptions.crosshair || {};
|
|
a = b && b.options("crosshair.enabled");
|
|
f = f.enabled;
|
|
if (c.enabled) return e ? !0 : t(e) ? e : !0 !== a || !b || f ? !1 : a;
|
|
};
|
|
return a;
|
|
})(),
|
|
oD = (function (a) {
|
|
function c(b) {
|
|
var c = a.call(this, b) || this;
|
|
c.chartArea = b;
|
|
c.kind = "TooltipCa";
|
|
return c;
|
|
}
|
|
K(c, a);
|
|
c.prototype.color = function (a) {
|
|
return "#f0f0f0";
|
|
};
|
|
c.prototype.targetMetrics = function (b) {
|
|
var c = this,
|
|
e = this.chartArea.isHoriz;
|
|
b = ea(b, function (a) {
|
|
return !a.series.indexer.getValue("isEmpty", a._i);
|
|
}).map(function (b) {
|
|
return a.prototype.targetMetrics.call(c, b);
|
|
});
|
|
var f = b.map(function (a) {
|
|
return a.xyz;
|
|
});
|
|
f.push.apply(
|
|
f,
|
|
H(
|
|
b.map(function (a) {
|
|
return a.xyzs;
|
|
})
|
|
)
|
|
);
|
|
var g,
|
|
h,
|
|
k = function (a) {
|
|
var b = sa(f, function (b) {
|
|
return b[a];
|
|
});
|
|
g = b[0];
|
|
h = b[b.length - 1];
|
|
};
|
|
e ? k(0) : k(1);
|
|
if (b.length)
|
|
return {
|
|
xyz: h,
|
|
xyzs: g,
|
|
elBox: Ea(
|
|
b.map(function (a) {
|
|
return a.elBox;
|
|
})
|
|
),
|
|
labelBox: Ea(
|
|
b.map(function (a) {
|
|
return a.labelBox;
|
|
})
|
|
),
|
|
};
|
|
};
|
|
c.prototype.translateToGlobal = function (a) {
|
|
var b = this.targetPanel().getGlobalBbox();
|
|
b = [a[0] + b.x, a[1] + b.y];
|
|
4 === a.length && b.push.apply(b, H(a.slice(2, 4)));
|
|
return b;
|
|
};
|
|
c.prototype.correctCABox = function (a) {
|
|
return a;
|
|
};
|
|
c.prototype.targetPanel = function () {
|
|
return this.chartArea.rootVisuals.content;
|
|
};
|
|
c.prototype.defaultAnimation = function (a) {
|
|
return { duration: a ? 0 : 40 };
|
|
};
|
|
c.prototype.text = function (b) {
|
|
var c = this;
|
|
if (b.length) {
|
|
var e = Dy(b),
|
|
f = b[0].chart.options("defaultTooltip");
|
|
f = C(f, "label.text") || "<b>%xValue</b><br>%points";
|
|
var g = void 0;
|
|
e.points = b
|
|
.map(function (b) {
|
|
return a.prototype.text.call(c, b);
|
|
})
|
|
.filter(function (a) {
|
|
return O(a) && a.trim().length;
|
|
})
|
|
.join("<br>");
|
|
g = "function" === typeof f ? f(b) : f;
|
|
return wi(g, e);
|
|
}
|
|
};
|
|
return c;
|
|
})(Zt),
|
|
nD = (function (a) {
|
|
function c() {
|
|
return (null !== a && a.apply(this, arguments)) || this;
|
|
}
|
|
K(c, a);
|
|
c.prototype.defaultOptions = function () {
|
|
var a = C(this.chart.currentOptions, "defaultTooltip");
|
|
return A(gj(), a);
|
|
};
|
|
c.prototype.triggerOptionsApplied = function () {};
|
|
return c;
|
|
})(ej),
|
|
$t = function () {
|
|
return { mouseTracking: { sticky: !1 }, markerLimit: 110, opacity: 0.9, defaultPoint: {} };
|
|
},
|
|
Wm = function (a) {
|
|
return !1 !== a.options("mouseTracking.enabled") && !1 !== a.options("mouseTracking");
|
|
},
|
|
Xm = (function (a) {
|
|
function c(b, c) {
|
|
var d = a.call(this, b.chart, c, [b, c]) || this;
|
|
d.chartArea = b;
|
|
d.kind = "Series";
|
|
d.isVisible = !0;
|
|
d.legendEntries = [];
|
|
d.isStacked = !0;
|
|
d.visuals = { panel: void 0, line: void 0, area: void 0, pointHalo: void 0 };
|
|
d.zIndex = 0;
|
|
d.cpbIndexOffset = 0;
|
|
d._points = [];
|
|
d.indexer = new Fl({ svv: { flatten: !0 }, svxv: { flatten: !0 } });
|
|
d.userPoints = [];
|
|
d.dataPoints = [];
|
|
d.dirty = !0;
|
|
d.state = "";
|
|
d.seriesDirty = new pD(d);
|
|
d.chart = b.chart;
|
|
d.renderer = b.renderer;
|
|
d.ctManager = b.ctManager;
|
|
d.initFP();
|
|
c && d.options(c, !1);
|
|
d.tooltip = new Zt(d);
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function () {
|
|
for (var a = 0; a < arguments.length; a++);
|
|
};
|
|
c.prototype.getCaSeriesPoints = function () {
|
|
var a = this,
|
|
c = this.chartArea.userOptions.series;
|
|
if (c && c.length)
|
|
return (
|
|
(c = S(c, function (b) {
|
|
return b.name === a.name;
|
|
})) && c.points
|
|
);
|
|
};
|
|
c.prototype.initFP = function () {
|
|
var a = this;
|
|
this.points = Xa(
|
|
wb,
|
|
function () {
|
|
return a._points;
|
|
},
|
|
function (b) {
|
|
a.options({ points: b });
|
|
},
|
|
{
|
|
push: function (b, c) {
|
|
var d = N(c, ["shift"]);
|
|
!0 === d && a.userPoints.shift();
|
|
b.pop && (b = a.visualizer.pointArrayExpander(b));
|
|
a.userPoints.push(b);
|
|
var e = a.getCaSeriesPoints();
|
|
e && e.push(b);
|
|
a.visualizer.updateInfo = { action: "splice", at: a.userPoints.length - 1, count: 1, del: 0, shift: d };
|
|
a.chart.renderer.finishAnimations();
|
|
a.invalidate().refresh(c);
|
|
a.visualizer.updateInfo = void 0;
|
|
},
|
|
splice: function (b, c, f, g) {
|
|
var d;
|
|
(d = a.userPoints).splice.apply(d, H([b, c], f));
|
|
(d = a.getCaSeriesPoints()) && d.splice.apply(d, H([b, c], f));
|
|
a.visualizer.updateInfo = { action: "splice", at: b, del: c, count: f.length };
|
|
a.chart.renderer.finishAnimations();
|
|
a.invalidate().refresh(g);
|
|
a.visualizer.updateInfo = void 0;
|
|
},
|
|
}
|
|
);
|
|
};
|
|
c.prototype.syncLegendItems = function () {
|
|
var a = this,
|
|
c = this,
|
|
e = c.info.type.colorByPoint,
|
|
f = c.chartArea,
|
|
g = c.chart,
|
|
h = c.currentOptions.legendEntry || {},
|
|
k = c.legendEntries,
|
|
l = g.requestLegend(this),
|
|
m = c.ctmIsType("map"),
|
|
n = function () {
|
|
c.legendEntry ? c.legendEntry.setColumns() : (c.legendEntry = l.addEntry(a, c._i));
|
|
},
|
|
p = function () {
|
|
c.legendEntry && (c.legendEntry.destroy(), (c.legendEntry = void 0));
|
|
},
|
|
q = function (a) {
|
|
a.syncLegendItems(c.legendEntry);
|
|
a.legendEntry && (k.push(a.legendEntry), a.legendEntry.setColumns());
|
|
},
|
|
r = function () {
|
|
c.points().each(function (a) {
|
|
a.legendEntry && (a.legendEntry.destroy(), (a.legendEntry = void 0));
|
|
});
|
|
c.legendEntries = [];
|
|
};
|
|
if (!((!c.isVisible && g.isRendered && c.visualizer.isRendered) || (m && c.currentOptions.isBaseLayer))) {
|
|
f.chartAreaSet.enumerateData();
|
|
var u = !1 !== N(c.chartArea.currentOptions, ["legend", "visible"]);
|
|
if (e) {
|
|
!x && c.setPoints();
|
|
var x = !0;
|
|
}
|
|
if (e && u && !1 !== c.options("defaultPoint.legendEntry.visible")) (k = c.legendEntries = []), c.points().each(q), !0 === h.visible ? n() : p();
|
|
else if ((u && !1 !== h.visible ? n() : p(), c._points.length && c._points[0].legendEntry && r(), c.info.hasUniqueStyles || k.length))
|
|
!x && c.setPoints(),
|
|
(x = !0),
|
|
c.points().each(function (a) {
|
|
u && !0 === a.options("legendEntry.visible")
|
|
? q(a)
|
|
: a.legendEntry &&
|
|
(a.legendEntry.destroy(),
|
|
(c.legendEntries = ea(k, function (b) {
|
|
return b !== a.legendEntry;
|
|
})),
|
|
(a.legendEntry = void 0));
|
|
});
|
|
}
|
|
};
|
|
c.prototype.iconName = function () {
|
|
var a = this;
|
|
if (!a._iconName) {
|
|
var c = function (a) {
|
|
return !a || (0 !== a.size && "none" !== a.type);
|
|
},
|
|
e = function (a) {
|
|
return "system/default/" + a;
|
|
},
|
|
f = function () {
|
|
var b = a.points(0);
|
|
return b && b.currentOptions.marker;
|
|
},
|
|
g = N(a.currentOptions, ["defaultPoint", "marker"]);
|
|
c = !c(g) || !c(f());
|
|
f = this.info.type;
|
|
a._iconName = f.drawArea ? e(c ? "areaSolo" : "area") : f.drawLine ? e(c ? "lineSolo" : "line") : f.drawMarker ? e("circle") : e("square");
|
|
}
|
|
return a._iconName;
|
|
};
|
|
c.prototype.getIconVisual = function (a, c, e) {
|
|
c === this && (c = void 0);
|
|
return this.visualizer.getIconVisual(a, c, e);
|
|
};
|
|
c.prototype.styleIconVisual = function (a, c) {
|
|
a && this.visualizer.setIconVisualAttr(a, c);
|
|
};
|
|
c.prototype.setAxes = function () {
|
|
var a = this,
|
|
c = a.options(),
|
|
e = a.visualizer.getTypeConfig(),
|
|
f = e.customAxisOptions || {},
|
|
g = e.privateAxes || "";
|
|
e = e.axes.length ? e.axes.split(",") : [];
|
|
var h;
|
|
w(e, function (b) {
|
|
h = b + "Axis";
|
|
var d,
|
|
e = a.chartArea.axConfList,
|
|
k = A({}, f[b]);
|
|
(d = a[h]) && (d = d.parentAxis || d);
|
|
var p = a.userOptions[h],
|
|
q = p || c[h] || (d ? d.id : void 0);
|
|
if ((d = vb(g, b) && (!d || !d.currentOptions.isPrivate))) (q = qa(e[b][0])), p && q.id !== p && (q = {}), delete q.id, (k = A(k, q)), (k.isPrivate = !0), (q = p || de(6));
|
|
p = a[h];
|
|
b = a[h] = a.chartArea.requestAxis(a, b, q, k);
|
|
b.isPrivate = d;
|
|
p && p.isPrivate && p.id !== b.id && p.destroy();
|
|
Z(a.currentOptions, h, b.id);
|
|
});
|
|
return this;
|
|
};
|
|
c.prototype.assignAxes = function () {
|
|
var a = this,
|
|
c = this.visualizer.getTypeConfig().axes.split(","),
|
|
e = this.chartArea.axConfList,
|
|
f,
|
|
g,
|
|
h,
|
|
k = this.options();
|
|
w(c, function (b) {
|
|
f = b + "Axis";
|
|
e[b] = e[b] || [];
|
|
if ((g = k[f])) "object" === I(g) && ((h = zb(g)), e[b].push(g), (k[f] = h));
|
|
else if ((g = z(e[b][0], a.chartArea.chartAreaSet.freeAxes[b]))) k[f] = g.id;
|
|
});
|
|
};
|
|
c.prototype.reIndexStringVals = function (a) {
|
|
var b = this.indexer,
|
|
c = a.toPosition,
|
|
f = [a.prefix];
|
|
f.push.apply(f, H(a.usedDataKeys));
|
|
f = $a(f);
|
|
a = b.data;
|
|
w(f, function (a) {
|
|
if (vb(b.uniqTypes[a], "string")) {
|
|
var d = b.getKey(a);
|
|
b.reset(a);
|
|
for (var e = 0, f = d.length; e < f; e++) {
|
|
var g = {};
|
|
g[a] = c(d[e]);
|
|
b.indexKeys([a], g, e);
|
|
}
|
|
}
|
|
});
|
|
if (2 === gc(["ye", "ys"], f).length && a.ys && a.ys.length) {
|
|
b.reset("yr");
|
|
f = 0;
|
|
for (var g = a.ys.length; f < g; f++) b.indexKeys(["yr"], { yr: a.ye[f] - a.ys[f] }, f);
|
|
}
|
|
this.seriesDirty.pointIndex(!1);
|
|
};
|
|
c.prototype.getFormatInfo = function () {
|
|
var a = this,
|
|
c = {},
|
|
e,
|
|
f = this.visualizer.getTypeConfig().axes.split(","),
|
|
g = this.chart.currentOptions.defaultCultureName;
|
|
g && (c.culture = g);
|
|
w(f, function (b) {
|
|
(e = a[b + "Axis"]) ? (c[b] = e.getFormatInfo()) : (c[b] = {});
|
|
});
|
|
return c;
|
|
};
|
|
c.prototype.options = function (a, c) {
|
|
var b = !0,
|
|
d = this.optionsGetter(a);
|
|
if ("NotGetter" !== d) return d;
|
|
d = pa(a);
|
|
var g = 1 === d.length;
|
|
if ("object" === typeof a.mapData && (this.setMapData(a.mapData), g)) return this;
|
|
if (0 < gc(d, Or).length) {
|
|
var h = g;
|
|
L(this.userOptions, a);
|
|
L(this.currentOptions, a);
|
|
this.visualizer && (t(a.muted) && "select" !== this.state ? this.setState(a.muted ? "mute" : "") : t(a.selected) && this.select(a.selected));
|
|
}
|
|
if (!h) {
|
|
t(a.visible) && ((this.isVisible = a.visible), g && (b = !1), this.chart.isRendered && this.legendEntry && this.legendEntry.updateCheckbox(this.isVisible));
|
|
if (a.points || a.emptyPointMode) this.seriesDirty.points(!0), this.seriesDirty.pointIndex(!0), this.seriesDirty.resetCache();
|
|
this.userPoints = a.points || this.userPoints;
|
|
delete a.points;
|
|
a = this.normalizeOptions(a);
|
|
(a.defaultPoint || a.firstPoint || a.lastPoint) && this.seriesDirty.points(!0);
|
|
a = L(this.userOptions, a);
|
|
this.name = a.name || "";
|
|
this.setOptions();
|
|
this.type = this.ctManager.settingVal("seriesType", this.options());
|
|
this.setType(b);
|
|
if (!1 !== c) {
|
|
c = this.normalizeUpdateOpt({ animation: this.currentOptions.animation }, c);
|
|
b && this.chartArea.invalidate();
|
|
this.chart.redraw(c);
|
|
var k = !0;
|
|
}
|
|
b && this.chart.updateSideItems(c);
|
|
}
|
|
this.chart.triggerOptionsApplied("series", this);
|
|
!k && this.afterUpdate(c);
|
|
return this;
|
|
};
|
|
c.prototype.normalizeArrPoints = function () {
|
|
var b;
|
|
if ((b = this.userPoints)) {
|
|
var c = I(b);
|
|
if ("string" === c && 0 === b.indexOf("JSC.points")) this.userPoints = Nj(b);
|
|
else if ("object" === c && b.data) this.userPoints = np(b);
|
|
else if (b.length) {
|
|
c = 0;
|
|
for (var e = b.length; c < e; c++) {
|
|
var f = b[c];
|
|
f.pop ? (b[c] = this.visualizer.pointArrayExpander(f)) : "number" === typeof f ? (b[c] = { y: f }) : a.prototype.normalizeOptions.call(this, b[c], "map,attributes");
|
|
}
|
|
this.userPoints = b;
|
|
}
|
|
}
|
|
};
|
|
c.prototype.setType = function (a) {
|
|
var b = this.options(),
|
|
c = this.ctManager;
|
|
"gauge" === b.type && (this.type = b.type = "gauge marker");
|
|
var f = c.settingVal("seriesType", b);
|
|
c = c.settingVal("chartType", b);
|
|
"organization" === c && (this.type = f = b.type = "annotation");
|
|
f = b = f || this.type || f || c;
|
|
f = J(Oc, f) ? Oc[f] : Ie;
|
|
(this.visualizer && this.visualizer.kind === b) || ((this.visualizer = new f(this)), this.setOptions(), this.assignAxes());
|
|
"calendar" === this.visualizer.kind && (this.isStacked = !1);
|
|
this.visualizer.getTypeConfig(!0);
|
|
this._ctmIsTypeCache = this._ctSvCache = void 0;
|
|
this.normalizeArrPoints();
|
|
!1 !== a && this.setData();
|
|
};
|
|
c.prototype.normalizeOptions = function (b) {
|
|
b = a.prototype.normalizeOptions.call(this, b);
|
|
pw(b, "size", ["min", "max"]);
|
|
cp(b, "emptyPointMode");
|
|
var c = b,
|
|
e,
|
|
f;
|
|
"undefined" !== (f = I((e = C(c, "animation.easing")))) && "string" === f && Z(c, "animation.easing", On(e));
|
|
return b;
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
var a = this.chart.options("navigator.enabled");
|
|
return A(a ? A($t(), { line: { width: 2 } }) : $t(), { animation: this.chart.options("animation") });
|
|
};
|
|
c.prototype.contextOptions = function () {
|
|
return this.visualizer ? this.visualizer.contextDefaults() : void 0;
|
|
};
|
|
c.prototype.setOptions = function () {
|
|
var a = this.chart.options("navigator.enabled"),
|
|
c = this.normalizeOptions(this.chart.currentOptions.defaultSeries || {}),
|
|
e = (this.currentOptions = A({}, this.defaultOptions(), this.contextOptions(), c, this.userOptions));
|
|
a &&
|
|
"line" === this.ctManager.settingVal("seriesType", e) &&
|
|
(this.currentOptions = A(e, { defaultPoint: { marker: { type: "circle", color: "none", outline: { width: 0 } }, states: { hover: { marker: { outline: { width: 2 } } } } } }));
|
|
c = this.ctManager;
|
|
a = this.ctSv("gaugeType");
|
|
if ("gauge" === c.settingVal("chartType", e)) {
|
|
c = c.curCtDst(e);
|
|
var f = c.dst.explicit || "";
|
|
c = vb((c.ct || {}).explicit || "", "seriesType");
|
|
e = e.type || "";
|
|
var g = vb(e, "gauge");
|
|
f = -1 !== f.indexOf("seriesType");
|
|
var h = "circular" === a ? "marker" : "column";
|
|
if (!c && !f)
|
|
if ("circular" === a) {
|
|
g && !f && ((h = e + h), (this.currentOptions.type = h));
|
|
var k = { type: h, defaultPoint: { marker: { type: "needle", length: 0.8 } } };
|
|
} else "linear" === a && (g && !f && ((h = e + h), (this.currentOptions.type = h)), (k = { type: h }));
|
|
}
|
|
k && qd(this.currentOptions, k);
|
|
Ll(this);
|
|
return this;
|
|
};
|
|
c.prototype.ctSv = function (a) {
|
|
this._ctSvCache || (this._ctSvCache = this.ctManager.getSettingChecker(this.currentOptions));
|
|
return this._ctSvCache(a);
|
|
};
|
|
c.prototype.ctSvIs = function (a, c) {
|
|
return this.ctSv(a) === c;
|
|
};
|
|
c.prototype.ctmIsType = function (a) {
|
|
this._ctmIsTypeCache || (this._ctmIsTypeCache = this.ctManager.getIsTypeChecker(this.currentOptions));
|
|
return this._ctmIsTypeCache(a);
|
|
};
|
|
c.prototype.correctRootBox = function (a) {
|
|
var b = this.chart.navigator;
|
|
if (this.pane) {
|
|
var c = this.pane.getGlobalOffsets();
|
|
a[0] -= c.x;
|
|
a[1] -= c.y;
|
|
}
|
|
b && ((a[1] += b.defaults.toolbarHeight), (a[3] -= b.defaults.toolbarHeight));
|
|
return a;
|
|
};
|
|
c.prototype.setInfo = function () {
|
|
var a = this.ctManager,
|
|
c = this.options(),
|
|
e = a.hasSetting,
|
|
f = function (a) {
|
|
return e("behavior", a, c);
|
|
},
|
|
g = a.settingVal("chartType", c),
|
|
h = a.settingVal("seriesType", c);
|
|
"organization" === g && (this.type = h = c.type = "annotation");
|
|
a = {
|
|
seriesType: h,
|
|
drawMarker: f("drawMarker"),
|
|
drawArea: f("drawArea"),
|
|
drawRect: f("drawRect"),
|
|
drawLine: f("drawLine") || "organization" === g,
|
|
colorByPoint: f("colorByPoint") || t(c.palette),
|
|
colorByPointLocal: t(c.palette),
|
|
snapToZero: f("snapToZero"),
|
|
drawSubvalue: f("drawSubvalue"),
|
|
noNameGrouping: f("noNameGrouping"),
|
|
tree: f("tree"),
|
|
varyPalette: f("varyPalette"),
|
|
labelConnector: f("labelConnector"),
|
|
clusters: f("clusters"),
|
|
noPos: f("noPos"),
|
|
isMapLayer: a.isMapLayer(this),
|
|
isAnnotation: f("annotation"),
|
|
isShape: "visualshape" === a.settingVal("seriesLayout", c),
|
|
isPie: "pie" === g,
|
|
isRadar: "radar" === g,
|
|
hasNeedles: "gauge" === g && "marker" === h && "needle" === N(c, ["defaultPoint", "marker", "type"]),
|
|
roundCaps: this.ctSvIs("columnType", "roundcaps"),
|
|
isRadarColumn: !1,
|
|
};
|
|
"line" === N(c, ["map", "type"]) && ((a.drawMarker = !1), (a.drawArea = !1), (a.drawLine = !0));
|
|
if (a.isPie || c.isMerged) a.colorByPoint = !0;
|
|
a.isRadar && a.drawRect && (a.isRadarColumn = !0);
|
|
"gauge" === g && (a.snapToZero = !0);
|
|
f = N(this, ["info", "style"]);
|
|
this.info = { type: a, hasSubvalues: !1, hasComplete: !1, hasYRanges: !1, hasUniqueStyles: !1, hasMaxedMarkerLimit: !1, data: {}, style: f || {}, xIsSorted: !0, labelTextInfo: {}, map: this.info ? this.info.map : {} };
|
|
if ("object" === I(c.palette || this.chart.palette) || "heatmap" === g) this.info.usesSmartPalette = !0;
|
|
};
|
|
c.prototype.setDataInfo = function (a) {
|
|
var b = this.visualizer,
|
|
c = this.chart,
|
|
f = this.info,
|
|
g = f.type,
|
|
h = this.userPoints,
|
|
k = h.length,
|
|
l = this.indexer,
|
|
m = 0,
|
|
n = b.pointValueParser,
|
|
p = b.pointDataKeys || Js;
|
|
if (this.seriesDirty.pointIndex() || a) {
|
|
this._catCache = [];
|
|
t(this._i) || this.chartArea.chartAreaSet.enumerateSeries(this);
|
|
g.clusters &&
|
|
((this.zAxis && "stacked" === N(this.zAxis.currentOptions, ["scale", "type"])) ||
|
|
"stacked" === N(this.chart.currentOptions, ["zAxisScaleType"]) ||
|
|
"stacked" === N(this.chart.currentOptions, ["zAxis", "scale", "type"])) &&
|
|
((g.clusters = !1), (g.zStacked = !0));
|
|
this.prevCoords = l.data.coordinates || this.prevCoords;
|
|
var q = 0 === l.getAllKeys.length;
|
|
l.reset();
|
|
a = void 0;
|
|
var r = !0;
|
|
!this.isVisible && !q && c.isRendered && this.isStacked && (a = { y: 0 });
|
|
q = this.cpbIndexOffset;
|
|
var u = function (a) {
|
|
return a;
|
|
},
|
|
x;
|
|
c = void 0;
|
|
if ((c = this.currentOptions.defaultPoint))
|
|
if ((x = c.subvalue))
|
|
u = function (a) {
|
|
return a.subvalue ? a : A(a, { subvalue: x });
|
|
};
|
|
for (; m < k; m++) {
|
|
var v = h[m];
|
|
this.setLegendEntryVisibility(v);
|
|
zb(v);
|
|
v = a ? A({}, v, a) : v;
|
|
u(v);
|
|
v._i = m;
|
|
g.colorByPoint && (v.cpbIndex = z(v.cpbIndex, g.colorByPointLocal ? m : q++));
|
|
v = n(this, v, p, b.skipSubvalues);
|
|
l.indexObject(v, m);
|
|
m && r && t(v.x) && nb(v.x) && v.x < l.data.x[m - 1] && (r = !1);
|
|
}
|
|
f.hasYRanges = !1;
|
|
l.hasAllKeys(["y", "ys"]) && ((g.snapToZero = !1), (f.hasYRanges = !0));
|
|
l.hasAllKeys(["ys", "ye"]) && !l.hasKey("y") && ((g.snapToZero = !1), (f.hasYRanges = !0));
|
|
this.currentOptions.isPreview && (g.snapToZero = !1);
|
|
f.hasMaxedMarkerLimit = g.drawMarker && k > this.currentOptions.markerLimit;
|
|
f.xIsSorted = r;
|
|
l.hasAnyKeys(["subvalue", "subvalueX"]) && (f.hasSubvalues = !0);
|
|
l.hasAnyKeys(["complete", "completee", "completeX", "completeXe"]) && (f.hasComplete = !0);
|
|
b = void 0;
|
|
g.varyPalette
|
|
? (b = !0)
|
|
: l.hasAnyKeys(["color", "outline", "marker", "label", "fill"])
|
|
? (b = !0)
|
|
: "candlestick" === g.seriesType
|
|
? (b = !0)
|
|
: "ohlc" === g.seriesType
|
|
? N(this.currentOptions, ["defaultPoint", "altColor"]) && (b = !0)
|
|
: g.tree
|
|
? (b = !0)
|
|
: g.isRadarColumn && (b = !0);
|
|
if ("object" === I(this.chart.options("palette"))) g.colorByPoint = !0;
|
|
else if ("%color" === N(c, ["marker", "fill"])) b = !0;
|
|
else if (this.currentOptions.firstPoint || this.currentOptions.lastPoint) b = !0;
|
|
f.hasUniqueStyles = b || f.hasUniqueStyles;
|
|
this.seriesDirty.pointIndex(!1);
|
|
this.seriesDirty.pos(!0);
|
|
this.validateData();
|
|
this.setAttribs(!0);
|
|
this.visualizer.validate(!1);
|
|
this.syncLegendItems();
|
|
}
|
|
};
|
|
c.prototype.setLegendEntryVisibility = function (a) {
|
|
!1 === this.visualizer.pointLeVisible(a) && ((a = a.legendEntry || (a.legendEntry = {})), (a.visible = z(a.visible, !1)));
|
|
};
|
|
c.prototype.validateData = function () {
|
|
if (this.visualizer && this.userPoints.length && !this.ctmIsType("map")) {
|
|
var a = this.visualizer.getTypeConfig(),
|
|
c = a.requiredData,
|
|
e = a.supportedData,
|
|
f = this.indexer.getAllKeys();
|
|
c &&
|
|
((c = c.split(",")),
|
|
vb(f, "ys") && f.push("y"),
|
|
vb(f, "xs") && f.push("x"),
|
|
vb(f, "zs") && f.push("z"),
|
|
gc(f, c).length < c.length && Ma.emit("error", this.id, "dataRequired", { data: [this.name || this.id, c.join(", ")], container: this.chart.getWrapper() }));
|
|
e && a.supportedData.split(",");
|
|
}
|
|
};
|
|
c.prototype.setData = function () {
|
|
this.setInfo();
|
|
this.setDataInfo(!0);
|
|
};
|
|
c.prototype.setPoints = function () {
|
|
var a = this;
|
|
if (a.seriesDirty.points()) {
|
|
if (!a._points.length || a.dirty) {
|
|
a._defPointGen = void 0;
|
|
Ub(
|
|
a.userPoints,
|
|
a._points,
|
|
function (b) {
|
|
return new ZC(a, b);
|
|
},
|
|
function (a, b) {
|
|
return b.options(a, !1);
|
|
},
|
|
function (a) {
|
|
return a.destroy();
|
|
},
|
|
function (a, b) {
|
|
return z(a.id, a.name) || b;
|
|
},
|
|
function (a, b) {
|
|
return z(a.currentOptions.id, a.currentOptions.name, a.id) || b;
|
|
}
|
|
);
|
|
var c = [],
|
|
e = {};
|
|
w(a._points, function (a) {
|
|
e[a.id] = a;
|
|
});
|
|
w(a.userPoints, function (a) {
|
|
Xe(c, e[a.id]);
|
|
});
|
|
a._points = c;
|
|
}
|
|
if (a.info.usesSmartPalette) {
|
|
var f = a.getSP(),
|
|
g = f.userOptions.pointValue;
|
|
100 < this._points.length && O(g) && Ma.emit("warning", a.id, "spPointValueSuggestion", { container: this.chart.getWrapper() });
|
|
f.setPointSpValues(a);
|
|
}
|
|
a.seriesDirty.points(!1);
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.getAutoLabelText = function (a, c) {
|
|
function b() {
|
|
switch (q.type.seriesType) {
|
|
case "candlestick":
|
|
case "ohlc":
|
|
var a = r ? x(["%icon", " ", "O:%open H:%high L:%low C:%close"]) : "%xValue {%close-%open}<br/>Open: %open<br/>High: %high<br/>Low: %low<br/>Close: %close";
|
|
return a;
|
|
default:
|
|
var b = (a = ""),
|
|
c = r ? "" : "<br/>",
|
|
d = vb(Bf(u.vScale), Bf("stacked")),
|
|
e = q.type.drawLine,
|
|
f = 1 < p.chartArea.series().items.length,
|
|
g = !r && !e && !d;
|
|
r
|
|
? (b = "%icon")
|
|
: (u.sName && f && !g && (a += v("%seriesName") + "<br/>"),
|
|
"category" === u.xScale
|
|
? (a += u.xAxisLabel ? "%xAxisLabel: " + (v("%name") + "<br/>") : "%name ")
|
|
: (u.pointName && (a = "%name<br/>"), (a += u.xAxisLabel ? "%xAxisLabel: " + v("%xValue") + "<br/>" : "%xValue ")));
|
|
a += F("yAxisLabel", c, y(), " ");
|
|
u.hasZ && (a += F("zAxisLabel", "<br/>", "%zValue", "<br/>", !0));
|
|
r || (e || d ? d && (a += "<br/>%ypercentOfGroup% of " + w()) : (a += "<br/>" + m()));
|
|
u.hasComplete && (a += "<br/>%complete Complete");
|
|
a = b ? x([b, "<span style='width:5;'> </span>", a]) : a;
|
|
return n(a.trim());
|
|
}
|
|
}
|
|
function d() {
|
|
var a = E();
|
|
a += " " + F("yAxisLabel", "<br/>", y(), "<br/>");
|
|
u.hasZ && (a += " " + F("zAxisLabel", "<br/>", "%zValue", "<br/>", !0));
|
|
a += m();
|
|
return n(a.trim());
|
|
}
|
|
function g() {
|
|
var a = (u.sName ? v("%seriesName") + "<br/>" : "") + "%name: " + y();
|
|
return n(a.trim());
|
|
}
|
|
function h(a) {
|
|
var b = "",
|
|
c = u.mapInfo || {};
|
|
a && a.options("name") && (b += "%name");
|
|
u.mapInfo && u.serName && u.serName !== c.name && ((b += b.trim().length ? "<br/>" : ""), "province" === c.mapLevel && ((a = c.country), vb(Bf(u.serName), Bf(a)) && (b += "%country")));
|
|
u.serName && ((b += b.trim().length ? "<br/>" : ""), (b += "%seriesName"));
|
|
"marker" === q.type.st && ((b += b.trim().length ? "<br/>" : ""), (b += "<br/>Lat: " + v("%yValue")), (b += "<br/>Long: " + v("%xValue")));
|
|
u.hasZ && ((b += b.trim().length ? "<br/>" : ""), (b += F("zAxisLabel", "<br/>", "%zValue", "<br/>", !0)));
|
|
return n(b.trim());
|
|
}
|
|
function k() {
|
|
var a = u.sName ? "%seriesName" : "";
|
|
a += " " + E();
|
|
a += a.trim().length ? "<br/>" : "";
|
|
a += F("yAxisLabel", "<br/>", y(), "<br/>");
|
|
return n(a.trim());
|
|
}
|
|
function l() {
|
|
var a = "";
|
|
"category" === u.xScale ? (a += u.xAxisLabel ? "%xAxisLabel: " + (v("%name") + "<br/>") : "%name ") : (u.pointName && (a = "%name<br/>"), (a += u.xAxisLabel ? "%xAxisLabel: " + v("%xValue") + "<br/>" : "%xValue "));
|
|
a += " " + F("yAxisLabel", "<br/>", y(), "<br/>");
|
|
u.hasZ && (a += " " + F("zAxisLabel", "<br/>", "%zValue", "<br/>", !0));
|
|
return n(a.trim());
|
|
}
|
|
function m(a) {
|
|
var b = "";
|
|
"time" !== u.vScale &&
|
|
((b = t(a) ? a + "% of " : "%percentOfSeries% of "), (b += u.sName ? "%seriesName" : q.type.colorByPoint ? "Series" : "%icon"), vb(Bf(u.vScale), Bf("stacked")) && (b += "<br/>%percentOfGroup% of " + w()));
|
|
return b;
|
|
}
|
|
function n(a) {
|
|
return a.replace(/<br\/><br\/>/g, "<br/>").replace(/<br\/> <br\/>/g, "<br/>");
|
|
}
|
|
void 0 === a && (a = {});
|
|
var p = this,
|
|
q = this.info,
|
|
r = p.chartArea.tooltip.cttEnabled(p.yAxis, p.xAxis),
|
|
u = A(a, q.labelTextInfo);
|
|
a = this.options("defaultPoint.label.text");
|
|
var x = function (a) {
|
|
return (p.chart.isRtlCulture ? a.reverse() : a).join("");
|
|
},
|
|
v = function (a) {
|
|
return "<b>" + a + "</b>";
|
|
},
|
|
y = function () {
|
|
return u.hasRange ? ("time" === u.vScale ? "%yStart\u2013%yValue" : "(%yStart\u2013%yValue)") : "%yValue";
|
|
},
|
|
w = function () {
|
|
return "category" === u.xScale ? "%name" : "%xValue";
|
|
},
|
|
E = function () {
|
|
return u.pointName || O(u.pointX) ? (u.pointName ? "%name" : "%xValue") : "";
|
|
},
|
|
F = function (a, b, c, d, e) {
|
|
return r ? c : u[a] ? b + ("%" + a) + ": " + v(c) + "<br/>" : (e ? "(" + c + ")" : c) + d;
|
|
},
|
|
z = "",
|
|
C = "";
|
|
switch (u.ct) {
|
|
case "horizontal":
|
|
case "vertical":
|
|
z = b();
|
|
break;
|
|
case "cone":
|
|
case "pyramid":
|
|
case "funnel":
|
|
case "treemap":
|
|
case "pie":
|
|
z = d();
|
|
break;
|
|
case "heatmap":
|
|
z = l();
|
|
break;
|
|
case "radar":
|
|
z = b();
|
|
break;
|
|
case "gauge":
|
|
z = k();
|
|
break;
|
|
case "navigator":
|
|
z = b();
|
|
break;
|
|
case "organization":
|
|
C = z = "%XValue";
|
|
break;
|
|
case "map":
|
|
z = c ? h(c) : "%name";
|
|
C = "%name";
|
|
break;
|
|
case "calendar":
|
|
z = b();
|
|
C = "%name";
|
|
break;
|
|
case "venn":
|
|
C = "%name";
|
|
z = g();
|
|
break;
|
|
default:
|
|
z = b();
|
|
}
|
|
return { tooltip: z, label: a || C || "%yValue" };
|
|
};
|
|
c.prototype.getAutoTooltipText = function (a) {
|
|
return this.getAutoLabelText({ pointName: a.name, pointX: a.options("x"), hasComplete: t(a.options("complete")) }).tooltip;
|
|
};
|
|
c.prototype.setPane = function (a) {
|
|
this.pane = a;
|
|
a.hasNeedles = a.hasNeedles || this.info.type.hasNeedles;
|
|
a.hasRoundCaps = a.hasRoundCaps || this.info.type.roundCaps;
|
|
Lr(this);
|
|
};
|
|
c.prototype.render = function (a, c) {
|
|
this.renderRect = a.rect || a;
|
|
this.userPoints.length && this.visualizer.render(c);
|
|
return this;
|
|
};
|
|
c.prototype.renderLabels = function (a, c) {
|
|
this.renderRect = a.rect || a;
|
|
this.userPoints.length && this.visualizer.renderLabels(c);
|
|
};
|
|
c.prototype.setPos = function () {
|
|
var a = this,
|
|
c = a.ctManager,
|
|
e = a.pane,
|
|
f = a.ctmIsType("radar"),
|
|
g = a.ctmIsType("gauge"),
|
|
h = a.info,
|
|
k = a.options(),
|
|
l = a.userPoints,
|
|
m = N(k, ["emptyPointMode"]) || "undefined",
|
|
n,
|
|
p = g && "marker" === h.type.seriesType,
|
|
q = N(a.currentOptions, ["defaultPoint", "marker", "length"]);
|
|
c = c.settingVal("lineSeriesType", k);
|
|
var r = ("line" === h.type.seriesType && "spline" === c && a.ctmIsType("map")) || ("line" === h.type.seriesType && f && e && "polar" === e.getRadarType()),
|
|
u = f ? 15 / 360 : 5,
|
|
x,
|
|
v,
|
|
y;
|
|
if (a.seriesDirty.pos() && !a.info.type.noPos) {
|
|
a.info.labelTextInfo = Pr(this);
|
|
e = a.getAutoLabelText({}, a._points[0]);
|
|
L(a.info.labelTextInfo, e);
|
|
a.isStacked = a.yAxis.isStacked();
|
|
a.indexer.indexKeys(["pos"], {}, 0);
|
|
var D = a.getXYZTranslator(),
|
|
E = function (a, b, c, d) {
|
|
t(B[a]) && (U[a] = D(b, c, d));
|
|
},
|
|
F = D(0, 0, 0),
|
|
A = function (a, b) {
|
|
return Math.floor(mc(a, b) / u);
|
|
},
|
|
C = function (a, b, c, d) {
|
|
var e = [];
|
|
c &&
|
|
ob(c, function (f) {
|
|
f && ((f = [Y(a[0], b[0], 0, 1, (1 / c) * f), Y(a[1], b[1], 0, 1, (1 / c) * f)]), e.push(d ? d.apply(void 0, H(f)) : f));
|
|
});
|
|
return e;
|
|
};
|
|
e = function (b, c) {
|
|
B = a.indexer.getItem(b);
|
|
if (B.isEmpty && "ignore" === m && !N(a, ["pane", "isRadial"])) return "continue";
|
|
var d = z(B.ye, B.y),
|
|
e = z(B.ys, 0),
|
|
g = z(B.xe, B.x),
|
|
k = z(B.xs, g),
|
|
l = z(B.ze, B.z),
|
|
u = void 0;
|
|
p && (n = z(N(B, ["marker", "length"]), q, 0.8)) && (n.pop ? ((c = G(n, 2)), (u = c[0]), (l = c[1])) : ((l = n), (u = 0)));
|
|
u = z(B.zs, u, l);
|
|
U = { xyz: D(g, d, l), xyzOrigins: F, xyzs: D(k, e, u), xyzRDesc: [k > g, e > d, u > l] };
|
|
"map" === h.type.seriesType && a.visualizer.setPos(B, U);
|
|
h.hasSubvalues &&
|
|
(E("sv", g, B.sv, l),
|
|
E("svs", g, B.svs, l),
|
|
E("svx", B.svx, d, l),
|
|
E("svxs", B.svxs, d, l),
|
|
t(B.svv) &&
|
|
((U.svv = x = []),
|
|
w(B.svv, function (a) {
|
|
x.push(D(g, a, l));
|
|
})),
|
|
t(B.svxv) &&
|
|
((U.svxv = x = []),
|
|
w(B.svxv, function (a) {
|
|
x.push(D(a, d, l));
|
|
})));
|
|
h.hasComplete &&
|
|
(t(z(B.completee, B.complete)) || t(z(B.completeXe, B.completeX))
|
|
? ((c = function (a, b, c) {
|
|
t(Z(U, b, z(B[b], B[c]))) ? Z(U, a, B[a] || 0) : ((U[a] = 0), (U[b] = 1));
|
|
}),
|
|
c("completes", "completee", "complete"),
|
|
c("completeXs", "completeXe", "completeX"))
|
|
: (U.completes = U.completee = U.completeXs = U.completeXe = 0));
|
|
a.indexer.setValue("pos", b, U);
|
|
r && y && ((b = void 0), a.ctmIsType("map") ? (b = A(y, [g, d])) : f && (b = A(v.xyz, U.xyz)), (v.interpPoints = C(y, [g, d], b, D)));
|
|
v = U;
|
|
y = [g, d];
|
|
};
|
|
c = 0;
|
|
for (l = l.length; c < l; c++) e(c, l);
|
|
if (f && r) {
|
|
var B = a.indexer.getItem(0),
|
|
U = a.indexer.getValue("pos", 0);
|
|
l = v.xyz[0] + 2 * la(v.xyz[0], 1);
|
|
l = [v.xyz, [l, U.xyz[1]]];
|
|
e = A(l[0], l[1]);
|
|
v.interpPoints = C(l[0], l[1], e);
|
|
v.interpPoints.unshift(l[0], l[0]);
|
|
}
|
|
} else a.info.type.noPos && ((a.info.labelTextInfo = Pr(this)), (e = a.getAutoLabelText()), L(a.info.labelTextInfo, e));
|
|
a.seriesDirty.pos(!1);
|
|
return this;
|
|
};
|
|
c.prototype.setCoordinates = function (a, c) {
|
|
this.userPoints.length && this.visualizer.setCoordinates(a || this.contentRect(), c);
|
|
return this;
|
|
};
|
|
c.prototype.setState = function (a, c) {
|
|
void 0 === c && (c = {});
|
|
a = Ml(this, a);
|
|
if (this.state !== a) {
|
|
var b = {},
|
|
d = z(c.continueAnimation, !0);
|
|
if (c.animation) {
|
|
A(b, !1 === c.animation ? { duration: 0 } : c.animation);
|
|
var g = !!b.duration;
|
|
}
|
|
c = function (a) {
|
|
return A(g ? { continueAnimation: d, animation: b } : { continueAnimation: d }, a);
|
|
};
|
|
var h = this.info.type,
|
|
k,
|
|
l = this.getStateAttrs(a);
|
|
h.drawLine && (k = this.visuals.line) && l.line && k.attr(c(l.line));
|
|
h.drawArea && (k = this.visuals.area) && k.attr(c(l.area));
|
|
this.state = a;
|
|
"select" === a && this.chart._seriesSelection();
|
|
}
|
|
};
|
|
c.prototype.getStateAttrs = function (a) {
|
|
var b = this.info.type,
|
|
c = this.info.style,
|
|
f = c.states;
|
|
a = Ml(this, a);
|
|
a = f[a];
|
|
f = { line: void 0, area: void 0 };
|
|
b.drawLine && (f.line = L({}, a));
|
|
b.drawArea && (f.area = fc({ fill: z(a.areaColor, c.base.areaColor), opacity: z(a.areaOpacity, c.base.areaOpacity) }));
|
|
return f;
|
|
};
|
|
c.prototype.getXYZValAxes = function () {
|
|
var a = this.pane,
|
|
c = N(a, ["xAxis"]) || this.xAxis,
|
|
e = N(a, ["yAxis"]) || this.yAxis;
|
|
a = N(a, ["zAxis"]) || this.zAxis;
|
|
return [c, e, a];
|
|
};
|
|
c.prototype.getXYZTranslator = function () {
|
|
var a = this.chartArea,
|
|
c = this.pane,
|
|
e = c ? c.isHoriz : a.isHoriz,
|
|
f = z(N(c, ["projection"]), a.projection),
|
|
g = G(this.getXYZValAxes(), 3);
|
|
a = g[0];
|
|
c = g[1];
|
|
g = g[2];
|
|
var h = a ? a.getValToLin() || xc : Gb,
|
|
k = c ? c.getValToLin() || xc : Gb,
|
|
l = g ? g.getValToLin() || xc : Gb;
|
|
return this.ctmIsType("map")
|
|
? (this.transformFn = function (a, b, c) {
|
|
a = f.val2linxy(a, b);
|
|
return [h(a[0]), k(a[1]), l(c)];
|
|
})
|
|
: (this.transformFn = e
|
|
? function (a, b, c) {
|
|
return [k(b), h(a), l(c)];
|
|
}
|
|
: function (a, b, c) {
|
|
return [h(a), k(b), l(c)];
|
|
});
|
|
};
|
|
c.prototype.preRender = function (a) {
|
|
void 0 === a && (a = {});
|
|
var b = a.rect || this.contentRect();
|
|
if (a.rect) {
|
|
var c = z(this.options("shape.padding"), 0.3);
|
|
c && (b = Xo(b, c));
|
|
}
|
|
t(this._i) || this.chartArea.chartAreaSet.enumerateData();
|
|
this.setPos().setPoints().setAttribs().setCoordinates(b, a);
|
|
};
|
|
c.prototype.contentRect = function () {
|
|
return this.renderRect;
|
|
};
|
|
c.prototype.destroy = function () {
|
|
var b = this.visualizer;
|
|
b && b.clearHighlightVisuals && b.clearHighlightVisuals();
|
|
this.rootVisuals = null;
|
|
this.points().each(function (a) {
|
|
return a.destroy();
|
|
});
|
|
a.prototype.destroy.call(this);
|
|
w(this.visuals, function (a) {
|
|
return (
|
|
(t(a) &&
|
|
hb(a, function (a) {
|
|
return a.destroy && a.destroy();
|
|
})) ||
|
|
!0
|
|
);
|
|
});
|
|
this.legendEntry && this.legendEntry.destroy();
|
|
};
|
|
c.prototype.translateToGlobal = function (a) {
|
|
var b = this.chartArea.rootVisuals.content.getGlobalBbox();
|
|
b = [a[0] + b.x, a[1] + b.y];
|
|
2 < a.length && ((b[2] = a[2]), (b[3] = a[3]));
|
|
return b;
|
|
};
|
|
c.prototype.hitTest = function (a) {
|
|
var b = this.visualizer;
|
|
if (this.isVisible && Wm(this)) {
|
|
var c = this.indexer.getKey("coordinates"),
|
|
f,
|
|
g = b.renderOrderRev;
|
|
if ((b = b.pointsGlobals || b.updatePointsGlobals())) (a[0] -= b.x), (a[1] -= b.y);
|
|
b = function (b) {
|
|
if ((f = c[b]) && f.hitTest && f.hitTest(a[0], a[1])) return !0;
|
|
};
|
|
var h = void 0;
|
|
if (g) {
|
|
g.length > c.length &&
|
|
(g = g.filter(function (a) {
|
|
return a < c.length;
|
|
}));
|
|
for (var k = 0, l = c.length; k < l; k++) if (((h = g[k]), b(h))) return this._points[h];
|
|
} else for (k = 0, l = c.length; k < l; k++) if (b(k)) return this._points[k];
|
|
}
|
|
};
|
|
c.prototype.mouseOut = function (a) {
|
|
var b = this.chart.requestLegend(this);
|
|
b && b.pointOut();
|
|
this.visualizer.pointMouseOutAny() && this.triggerUser("mouseOut", a);
|
|
};
|
|
c.prototype.mouseMove = function (a, c) {
|
|
if (Wm(this)) {
|
|
c = this.chartArea;
|
|
var b = this.visualizer,
|
|
d = this.chart.requestLegend(this),
|
|
g = [a.x, a.y],
|
|
h;
|
|
if ((h = this.hitTest(g))) {
|
|
var k = "hover" === this.state || b.hoveredItem;
|
|
c.crosshair(g, a, !0);
|
|
b.pointMouseOver(a, h);
|
|
d.pointOver(h);
|
|
!k && this.triggerUser("mouseOver");
|
|
return !0;
|
|
}
|
|
N(this.currentOptions, ["mouseTracking", "sticky"]) || (b.pointMouseOutAny() && this.triggerUser("mouseOut", a), d && d.pointOut());
|
|
}
|
|
};
|
|
c.prototype.mouseClick = function (a) {
|
|
if (Wm(this)) {
|
|
var b;
|
|
if ((b = this.hitTest([a.x, a.y]))) return this.visualizer.pointClick(a, b), this.triggerUser("click", a), b;
|
|
}
|
|
};
|
|
c.prototype.pointOver = function (a, c) {};
|
|
c.prototype.showHaloAtX = function (a) {
|
|
var b = this.indexer;
|
|
a = b.findValue_i("x", a);
|
|
var c = this.info.labelTextInfo.hasRange,
|
|
f = [],
|
|
g = this._points[a];
|
|
g && this.visualizer.showHalo(g);
|
|
if (t(a)) {
|
|
var h = b.getItem(a);
|
|
c
|
|
? w(["svs", "sv", "ys", "ye"], function (a) {
|
|
a = h[a];
|
|
t(a) && f.push(a);
|
|
})
|
|
: f.push(z(b.getValue("ye", a), b.getValue("y", a)));
|
|
return [this.yAxis, g, f];
|
|
}
|
|
};
|
|
c.prototype.hideHalo = function () {
|
|
this.visualizer.showHalo();
|
|
};
|
|
c.prototype.setAttribs = function (a) {
|
|
var b = this.currentOptions,
|
|
c = this._i,
|
|
f = this.ctmIsType("treemap"),
|
|
g = b.line || (f && N(b, ["shape", "outline"])) || {};
|
|
f = this.info;
|
|
var h = this.chart.palette,
|
|
k = this.userPoints.length > b.markerLimit ? 1 : 2,
|
|
l = "array" === I(h) ? h : Xi("default");
|
|
this.info.style = { set: { color: m, opacity: p, line: {}, area: {} }, attr: { line: {}, area: {} }, states: {} };
|
|
h = f.style;
|
|
var m = z(b.color, N(b, ["defaultPoint", "color"]), l[c % l.length]);
|
|
c = z(N(b, ["defaultPoint", "marker", "type"]), Ui[c % Ui.length]);
|
|
m = Fk(m);
|
|
var n = z(m[3], 1),
|
|
p = z(b.opacity, 1) * n;
|
|
l = z(N(b, ["outline", "opacity"]), b.opacity, 1) * n;
|
|
n *= z(N(b, ["shape", "opacity"]), b.opacity, 0.8);
|
|
m = ma(m, "rgb");
|
|
var q = ia(g.color || La.seriesLine, m),
|
|
r = N(b, ["shape", "fill"]) || b.fill;
|
|
if (r) {
|
|
r = ia(oc(r), m);
|
|
var u = r.linearGradient ? r : Ro(Fk(r));
|
|
}
|
|
u = this.ctSvIs("areaShadingType", "subtle") ? dd(Fa.areaFill, u || m) : m;
|
|
p = h.base = { color: m, altColor: "white", opacity: p, lineColor: q, lineOpacity: l, areaOpacity: n, areaColor: u, markerType: c };
|
|
if (!a)
|
|
return (
|
|
(a = f.style.states),
|
|
(u = 2),
|
|
this.ctmIsType("organization") && (u = 0),
|
|
(m = b.states || {}),
|
|
(b = m.hover || {}),
|
|
(h = m.select || {}),
|
|
(m = m.mute || {}),
|
|
f.type.drawLine &&
|
|
((k = f.style.set.line = { width: z(g.width, k), color: p.lineColor, opacity: z(g.opacity, 1) * p.lineOpacity, dashStyle: g.dashStyle }),
|
|
g.caps && (k.caps = g.caps),
|
|
(a[""] = f.style.attr.line = Bb(k)),
|
|
(g = b.line || {}),
|
|
(a.hover = !1 !== b.enabled ? A({}, a[""], { "stroke-width": z(g.width, k.width + u), stroke: ia(z(g.color, b.color, k.color), p.color), "stroke-opacity": z(g.opacity, b.opacity, k.opacity) }) : {}),
|
|
(g = h.line || {}),
|
|
(a.select = !1 !== h.enabled ? A({}, a[""], { "stroke-width": z(g.width, k.width + u), stroke: ia(z(g.color, h.color, k.color), p.color), "stroke-opacity": z(g.opacity, h.opacity, k.opacity) }) : {}),
|
|
(g = m.line || {}),
|
|
(a.mute = !1 !== m.enabled ? A({}, a[""], { "stroke-width": z(g.width, k.width), stroke: ia(z(g.color, m.color, k.color), p.color), "stroke-opacity": z(g.opacity, m.opacity, 0.15 * k.opacity) }) : {})),
|
|
f.type.drawArea &&
|
|
((g = f.style.set.area = { color: p.areaColor, opacity: p.areaOpacity }),
|
|
(g.fill = p.areaFill) || (this.ctSvIs("areaShadingType", "subtle") ? (g.fill = dd(Fa.areaFill, g.color)) : (g.fill = g.color)),
|
|
!1 !== b.enabled && b.fill && (a.hover.areaColor = ia(b.fill, p.areaColor)),
|
|
!1 !== m.enabled && ((a.mute.areaOpacity = z(m.opacity, 0.15 * p.areaOpacity)), m.fill && (a.mute.areaColor = ia(b.fill, p.areaColor))),
|
|
(f.style.attr.area = fc(g))),
|
|
this
|
|
);
|
|
};
|
|
c.prototype.getPointAttr = function (a, c) {
|
|
function b(a, b, c) {
|
|
var d = {},
|
|
e = function (b, c) {
|
|
return c ? c(N(a, b)) : N(a, b);
|
|
},
|
|
f = function (a) {
|
|
Mn(d, b, a, a);
|
|
},
|
|
g = function (a, c, e) {
|
|
Vf(d, a, ia(N(b, a) || e, c));
|
|
},
|
|
h = function (b, c, d) {
|
|
t(N(a, b)) && Vf(m, c, e(b, d));
|
|
},
|
|
k = function (a) {
|
|
return a && a.pop && 2 === a.length ? Lb(a) : a;
|
|
};
|
|
g(["color"], M);
|
|
var l = d.color && ia(La.outline, k(d.color));
|
|
g(["outline", "color"], M, l);
|
|
b.fill && (d.color = ia(oc(b.fill), M));
|
|
f(["outline", "width"]);
|
|
f(["outline", "dashStyle"]);
|
|
f(["size"]);
|
|
f(["opacity"]);
|
|
N(b, ["hatch", "style"]) && (f(["hatch", "style"]), g(["hatch", "color"], M));
|
|
var m = { color: c.color ? hg(k(a.color), c.color, ["val"]) : k(a.color), opacity: e(["opacity"], c.opacity), outline: { color: e(["outline", "color"], c.outlineColor), width: e(["outline", "width"], c.outlineWidth) } };
|
|
h(["outline", "dashStyle"], ["dashStyle"], c.dashStyle);
|
|
h(["size"], ["size"], c.size);
|
|
h(["hatch", "style"], ["hatch", "style"], c.hatch);
|
|
h(["hatch", "color"], ["hatch", "color"], c.hatchColor);
|
|
return A(m, d);
|
|
}
|
|
function d(a, b, c) {
|
|
var d = N(a, ["states", b]) || {},
|
|
e = d.marker || {},
|
|
f,
|
|
g,
|
|
h;
|
|
if ((f = qd(e.outline, d.outline, c.outline))) e.outline = f;
|
|
if ((f = e.fill || d.fill)) e.fill = f;
|
|
t((g = z(e.size, d.size))) && (e.size = g);
|
|
t((h = z(e.opacity, d.opacity, c && c.opacity))) && (e.opacity = h);
|
|
a = N(a, ["marker", "states", b]) || {};
|
|
return qd(e, a) || {};
|
|
}
|
|
var g = a ? (a.currentOptions ? a.currentOptions : a) : {},
|
|
h = this.currentOptions,
|
|
k = t(g._i) ? Kl(this, g._i) : h.defaultPoint || {},
|
|
l = !a,
|
|
m = this.info.hasUniqueStyles || this.info.type.colorByPoint,
|
|
n = this.info,
|
|
p = n.style.base,
|
|
q = n.type,
|
|
r = this.ctmIsType("calendar") ? La.lightenDark : this.ctmIsType("map") ? "darkenmore" : La.outline,
|
|
u,
|
|
x = this.ctmIsType("map"),
|
|
v = {},
|
|
y = q.drawMarker || h.forceMarker || N(k, ["marker", "visible"]) || (a ? N(g, ["marker", "visible"]) : N(k, ["marker", "visible"]));
|
|
c = c || q.drawMarker;
|
|
if ((l || !m) && (u = this.info.style.defaultPoint) && (!c || u.drawMarker)) return u;
|
|
g = Hb(g, { map: void 0, attributes: void 0, mapData: void 0 });
|
|
g = qd(g, k || {});
|
|
u = g.label || {};
|
|
var w = g.marker || {},
|
|
E = g.states || {},
|
|
F = E.hover || {},
|
|
C = E.select || {},
|
|
B = E.mute || {},
|
|
H = !1 !== N(this.currentOptions, ["mouseTracking", "enabled"]),
|
|
U = !1 !== B.enabled;
|
|
H = (E = t(C.enabled) ? C.enabled : !1 !== this.currentOptions.pointSelection || (l && !m)) || (H && !1 !== F.enabled) || !0 === F.enabled;
|
|
var M = l ? g.color || p.color : this.getPointColors(g);
|
|
if ("object" === typeof M && M.color) {
|
|
var G = M.fill;
|
|
M = M.color;
|
|
}
|
|
var J = ia(r, M);
|
|
r = !1 !== (q.labelVisible || u.visible) && (!!N(u, ["text", "length"]) || Fb(u.text) || u.visible);
|
|
var K = z(g.opacity, 1) * p.opacity,
|
|
I = this.getPointHatchStyle(g);
|
|
if (!l && g && ("candlestick" === this.info.type.seriesType || "ohlc" === this.info.type.seriesType) && g.close < g.open) {
|
|
var L = (a || {}).altColor || (k || {}).altColor;
|
|
if ("ohlc" === this.info.type.seriesType) L && g.color && ((g = A({}, g)), (g.color = ia(L, g.color))), (M = J = L ? ia(L, J) : J);
|
|
else {
|
|
(L = L || p.altColor) && g.color && ((g = A({}, g)), (g.fill = ia(L, g.color)));
|
|
M = L ? ia(L, p.altColor) : p.altColor;
|
|
var O = !0;
|
|
}
|
|
}
|
|
G = { color: G ? oc(G) : M, opacity: K, hatch: { style: I }, outline: { color: J, width: 1 } };
|
|
p = b(G, g, {});
|
|
var Q = q.isAnnotation
|
|
? {
|
|
color: function (a) {
|
|
return a;
|
|
},
|
|
outline: {
|
|
color: function (a) {
|
|
return ia(La.labelContrast, a);
|
|
},
|
|
width: function (a) {
|
|
return a + 2;
|
|
},
|
|
},
|
|
}
|
|
: {
|
|
color: function (a) {
|
|
return ia(La.hover, a);
|
|
},
|
|
};
|
|
q.isMapLayer &&
|
|
q.drawLine &&
|
|
(Q.outlineWidth = function (a) {
|
|
return a + 2;
|
|
});
|
|
h = h.states || {};
|
|
L = fa(["color", "opacity"]);
|
|
if (H) {
|
|
var P = Na({}, h.hover || {}, L);
|
|
F = A(P, F);
|
|
var S = b(p, F, Q);
|
|
}
|
|
if (U) {
|
|
P = Na({}, h.mute || {}, L);
|
|
B = A(P, B);
|
|
var T = b(p, B, {
|
|
opacity: function (a) {
|
|
return 0.15 * a;
|
|
},
|
|
});
|
|
}
|
|
if (E) {
|
|
var Ba = h.select || {};
|
|
Q = Na({}, Ba, L);
|
|
C = A(Ba, C);
|
|
Ba = b(S, C, {
|
|
color: function (a) {
|
|
return ia("select", a);
|
|
},
|
|
outlineWidth: function (a) {
|
|
return a + 1;
|
|
},
|
|
});
|
|
}
|
|
r &&
|
|
((C = u.color || N(u, ["style", "color"])),
|
|
(F = this.ctSvIs("columnType", "cushion")),
|
|
(B = "map" === this.ctSv("chartType") && "marker" === this.ctSv("seriesType") && "#505050"),
|
|
(P = "center" !== u.align && "middle" !== u.verticalAlign && q.drawMarker ? M : p.color),
|
|
(u.color = C || B || ia(q.isMapLayer || q.isAnnotation ? La.labelContrast : La.label, P)),
|
|
C || F || (u.hcColor = ia(La.labelContrast, P)));
|
|
if (c || y)
|
|
(B = P = F = F = void 0),
|
|
(Q = H && d(g, "hover", h.hover || {})),
|
|
(B = E && d(g, "select", h.select || {})),
|
|
(C = U && d(g, "mute", h.mute || {})),
|
|
(G.marker = F = { color: M, size: 10, opacity: K, hatch: { style: I }, outline: { color: J, width: 1 } }),
|
|
(I = t(w.visible) ? w.visible : !0),
|
|
(p.marker = F = b(F, w, {})),
|
|
I || (F.size = 0),
|
|
H &&
|
|
((I = t(Q.visible) ? Q.visible : I),
|
|
(P = Na({}, h.hover || {}, L)),
|
|
(S.marker = P = b(F, A(P, Q), {
|
|
size: function (a) {
|
|
return 1.2 * a;
|
|
},
|
|
color: function (a) {
|
|
return ia(La.hover, a);
|
|
},
|
|
})),
|
|
I || (P.size = 0)),
|
|
E &&
|
|
((I = t(B.visible) ? B.visible : I),
|
|
(Q = Na({}, h.select || {}, L)),
|
|
(Ba.marker = B = b(P, A(Q, B), {
|
|
color: function (a) {
|
|
return ia("select", a);
|
|
},
|
|
outlineWidth: function (a) {
|
|
return a + 1;
|
|
},
|
|
})),
|
|
I || (B.size = 0),
|
|
(Ba.marker = B)),
|
|
U &&
|
|
((P = Na({}, h.mute || {}, L)),
|
|
(T.marker = b(F, A(P, C), {
|
|
opacity: function (a) {
|
|
return 0.15 * a;
|
|
},
|
|
})));
|
|
w = {};
|
|
G = c ? p.marker : p;
|
|
I = w[""] = mi(fc(G));
|
|
H && ((G = c ? S.marker : S), (w.hover = mi(fc(G))));
|
|
E && ((G = c ? Ba.marker : Ba), (w.select = mi(fc(G))));
|
|
U && ((G = c ? T.marker : T), (w.mute = mi(fc(G))));
|
|
!q.isMapLayer || q.drawLine || c || "bubble" === q.seriesType || ((w[""]["stroke-linejoin"] = "round"), (w[""].zIndex = this.zIndex), H && (w.hover.zIndex = this.zIndex + 1), E && (w.select.zIndex = 0));
|
|
"bubble" === q.seriesType && t(g.zIndex) && (w[""].zIndex = g.zIndex);
|
|
n.hasSubvalues && ((S = N(g, ["subvalue", "line"]) || {}), (G = { opacity: K, outline: { width: z(S.width, 1), color: ia(S.color || J, M), length: S.length, dashStyle: S.dashStyle } }), (v[""] = fc(G)));
|
|
this.chart.use3D ||
|
|
O ||
|
|
this.ctmIsType("venn") ||
|
|
!(x || q.drawRect || (q.isShape && !q.isPie) || this.ctmIsType("heatmap") || this.ctmIsType("calendar") || this.ctmIsType("treemap")) ||
|
|
l ||
|
|
((O = {}), (x = N(this, ["indexer", "data", "coordinates"])) && (O.pointData = x[g._i]), (I.fill && I.fill.stops) || this.attrShader(w, O));
|
|
!1 === q.drawArea && ((w[""].fill = "none"), H && (w.hover.fill = "none"), E && (w.select.fill = "none"));
|
|
if (r) {
|
|
var V = A({}, u);
|
|
V = A(V, u.line);
|
|
V = Bb(V);
|
|
}
|
|
q = { baseColor: M, pointAttr: w, svAttr: v, labelVisible: r, labelConnector: q.labelConnector, labelConnectorAttr: V, drawMarker: q.drawMarker, label: u };
|
|
l || !m ? (n.style.defaultPoint = q) : ((q.isDefault = l), this.indexer.indexKeys(["color"], {}, 0), this.indexer.setValue("color", g._i, q.baseColor));
|
|
if (y || c) q.markerSize = p.marker.size;
|
|
this.ctmIsType("gauge") && this.ctSvIs("gaugeType", "circular") && (a = (a || {}).altColor || (k || {}).altColor) && (q.pointAttr[""].altColor = ia(a, M));
|
|
return q;
|
|
};
|
|
c.prototype.attrShader = function (a, c) {
|
|
var b = c.radAngle,
|
|
d = this.ctManager,
|
|
g = this.currentOptions,
|
|
h = this.info.type.isRadarColumn,
|
|
k = d.settingVal("columnType", g) || "default";
|
|
d = "horizontal" === d.settingVal("chartType", g) || this.ctSvIs("linearGaugeType", "horizontal");
|
|
g = !1;
|
|
if (this.ctmIsType("map")) {
|
|
k = "subtle";
|
|
var l = this.chart.ctManager;
|
|
"map" === l.settingVal("seriesType") && ((l = l.settingVal("columnType")), (k = l !== k ? l : k));
|
|
}
|
|
t(b) && (d = b);
|
|
this.ctSvIs("funnelShapeType", "square") && (k = "square");
|
|
"le" === b && ((d = !0), (g = !1));
|
|
b = { horizontal: d, inverted: g, isRadial: h };
|
|
this.ctmIsType("calendar") && (b.strokeMode = "lighterOnDark");
|
|
this.ctmIsType("treemap") && "cushion" === k
|
|
? ((h = this.renderRect), (d = c.pointData.cxy), (g = c.pointData.bbox), (l = ha(h)), (c = va(l)), (g = g[2] / l[2] + g[3] / l[3]), (b.offsets = [(c[0] - d[0]) / h.width, (c[1] - d[1]) / h.height]), (b.share = g))
|
|
: h && c.pointData
|
|
? (b.lgCoords = this.pane.getShaderOptions(c.pointData.pathOptions))
|
|
: this.ctmIsType("gauge") && this.ctSvIs("gaugeType", "circular") && (k = this.ctSvIs("seriesType", "column") ? "none" : "subtle");
|
|
"roundcaps" === k && (k = "subtle");
|
|
iw(k, a, b);
|
|
};
|
|
c.prototype.getPointColor = function (a) {
|
|
a = this.getPointColors(a);
|
|
return a.fill || a.color;
|
|
};
|
|
c.prototype.getSP = function () {
|
|
var a = this.chart,
|
|
c = this.currentOptions.palette || this.chart.palette,
|
|
e;
|
|
"object" !== I(c) &&
|
|
this.ctmIsType("heatmap") &&
|
|
((c = this.indexer.calculations.z)
|
|
? ((this.chart.palette = c = Rs({}, [c.min, c.max])),
|
|
this.chart.legends().each(function (a) {
|
|
return a.updateSp();
|
|
}))
|
|
: (this.chart.palette = c = { colors: this.chart.palette }));
|
|
c.id && (e = a.getSmartPalette(c.id));
|
|
return e || a.getSmartPalette(c);
|
|
};
|
|
c.prototype.getPointColors = function (a, c) {
|
|
var b = this.info,
|
|
d = b.type,
|
|
g = b.style.base,
|
|
h = this.currentOptions;
|
|
b = b.type.colorByPoint;
|
|
var k;
|
|
c = c || d.drawMarker;
|
|
d.isTree || (k = a.color);
|
|
if (c) {
|
|
var l = a.marker || {},
|
|
m = l.color;
|
|
l = l.fill;
|
|
}
|
|
m && (m = oc(m));
|
|
if (m || k) return k ? { color: Lb(k), fill: l || m } : { color: Lb(g.color), fill: l || m };
|
|
b
|
|
? ((d = h.palette || this.chart.palette),
|
|
(h = I(d)),
|
|
"string" === h && (d = Fh(d)),
|
|
"object" === h ? (g = this.getSP().getPointColor(this, a)) : ((a = this.indexer.getValue("cpbIndex", a._i)), (g = t(a) ? d[a % d.length] : g.color)),
|
|
(g = Lb(g)))
|
|
: ((g = a.color || g.color),
|
|
d.varyPalette &&
|
|
!a.color &&
|
|
((h = a._i),
|
|
(a = ca(g)),
|
|
(g = bf(a[0], a[1], a[2])),
|
|
(k = t(h) ? Tn(1, h + 1)[h] : Vb.random()),
|
|
(h = 0.03 * k),
|
|
0.5 < k && (h = -h),
|
|
(g[2] = ua(g[2] + h * g[2], 0, 1)),
|
|
(g = bd(g[0], g[1], g[2])),
|
|
(g = ma([g[0], g[1], g[2], a[3]])),
|
|
(d.isVaryingColors = !0)));
|
|
return { color: g, fill: l };
|
|
};
|
|
c.prototype.getPointHatchStyle = function (a, c) {
|
|
c = this.info.type;
|
|
var b = this.currentOptions,
|
|
d = this.chart.currentOptions,
|
|
g = d.defaultSeries || {},
|
|
h = N(a, ["hatch", "style"]);
|
|
b = b.hatchPalette || d.hatchPalette || g.hatchPalette;
|
|
h ||
|
|
(c.colorByPoint
|
|
? ((c = I(b)), "undefined" !== c && ("boolean" === c && (b = Xi("hatch")), (a = this.indexer.getValue("cpbIndex", a._i)), t(a) ? (h = b[a % b.length]) : b && (h = b[this._i % b.length])))
|
|
: b && (h = b[this._i % b.length]));
|
|
return h;
|
|
};
|
|
c.prototype.getPointMarkerType = function (a) {
|
|
var b,
|
|
c = this.info.style.base;
|
|
(b = N(a, ["marker", "type"])) || (this.info.type.colorByPoint && !this.info.usesSmartPalette && a ? ((b = this.indexer.getValue("cpbIndex", a._i)), (b = t(b) ? b : a._i || 0), (b = Ui[b % Ui.length])) : (b = c.markerType));
|
|
return b;
|
|
};
|
|
c.prototype.getUniqueColors = function (a) {
|
|
var b = this.info,
|
|
c = b.type,
|
|
f = [];
|
|
if (b.hasUniqueStyles || c.colorByPoint) {
|
|
b = this.indexer.getKey("color");
|
|
for (var g = 0, h = b.length; g < h; g++)
|
|
if ((c = b[g])) {
|
|
if (c !== k && (f.push(c), f.length === a)) break;
|
|
var k = c;
|
|
}
|
|
} else f.push(this.info.style.base.color);
|
|
return f;
|
|
};
|
|
c.prototype.setColor = function () {
|
|
var a = this.chart,
|
|
c = this.options("palette") || a.palette;
|
|
"object" === I(c) && a.getSmartPalette(c).setPointSpValues(this);
|
|
};
|
|
c.prototype.invalidate = function () {
|
|
this.dirty = !0;
|
|
this.seriesDirty.all(!0);
|
|
delete this.info.style.defaultPoint;
|
|
return this;
|
|
};
|
|
c.prototype.refresh = function (a) {
|
|
this.dirty && (this.chartArea.invalidate(), this.chartArea.chartAreaSet.enumerateData(), this.setDataInfo(), this.chart.redraw(z(a, { animation: this.getAnimationConfig() })), this.chart.updateSideItems());
|
|
return this;
|
|
};
|
|
c.prototype.visible = function (a, c) {
|
|
var b = this.seriesDirty,
|
|
d = this.chartArea;
|
|
t(a) ? a !== this.isVisible && ((this.isVisible = a), (this.dirty = !0), b.pos(!0), b.coord(!0), d.resetTimers()) : ((this.isVisible = !this.isVisible), (this.dirty = !0), b.pos(!0), b.coord(!0), d.resetTimers());
|
|
this.dirty &&
|
|
(this.legendEntry && this.legendEntry.updateCheckbox(this.isVisible),
|
|
d.series().each(function (a) {
|
|
return a.seriesDirty.pos(!0);
|
|
}),
|
|
!1 !== c && this.chart.redraw(c || { animation: this.getAnimationConfig() }),
|
|
this.triggerUser(this.isVisible ? "show" : "hide"));
|
|
return this;
|
|
};
|
|
c.prototype.getAnimationConfig = function () {
|
|
return A({}, this.userOptions.animation || this.chart.currentOptions.animation);
|
|
};
|
|
c.prototype.select = function (a, c) {
|
|
var b;
|
|
t(a) && (b = a);
|
|
this.points().each(function (b) {
|
|
return b.select(a, c);
|
|
});
|
|
this.setState(b ? "select" : "");
|
|
};
|
|
c.prototype.removePoint = function (a, c) {
|
|
-1 < a && (this.userPoints.splice(a, 1), (this.visualizer.updateInfo = { action: "splice", at: a, count: 0, del: 1 }), this.invalidate(), !1 !== c && this.refresh());
|
|
};
|
|
c.prototype.zoomTo = function (a) {
|
|
var b = this.ctmIsType("calendar");
|
|
this._points.length && this.ctmIsType("map")
|
|
? ((b = this.chart.geoParser.getSeriesBBox(this)), 0 === b[2] && 0 === b[3] && (b = mb(b, [0.01, 0.01])), this.chart.zoom(b, a))
|
|
: b && this.chart.zoom(this.currentOptions.attributes.date, a);
|
|
};
|
|
c.prototype.remove = function (a) {
|
|
a = this.chartArea;
|
|
var b = Sf(a._series, { id: this.id });
|
|
-1 < b && (a.spliceSeries(b, 1, []), this.triggerUser("remove"));
|
|
};
|
|
c.prototype.yAt = function (a) {
|
|
return this.interpolate("x", "y", a);
|
|
};
|
|
c.prototype.interpolate = function (a, c, e) {
|
|
var b = this.indexer;
|
|
a = b.findInterpolatedInfo(a, e);
|
|
if (-1 !== a.i) return 0 < a.inter ? ((e = b.getValue(c, a.i)), (c = b.getValue(c, a.i + 1)), Y(e, c, 0, 1, a.inter)) : b.getValue(c, a.i);
|
|
};
|
|
c.prototype.getCalcCache = function () {
|
|
if (!this.calcCache) {
|
|
var a = this.indexer,
|
|
c = this.userPoints.length,
|
|
e = this.zAxis || {},
|
|
f = Math.abs,
|
|
g = Pb(a, "getKey"),
|
|
h = Pb(a, "getItem"),
|
|
k = Pb(a, "sum"),
|
|
l = Pb(a, "sumAbs"),
|
|
m = J(a.data, "ye") && !J(a.data, "y"),
|
|
n = 0 < g("xr").length,
|
|
p = 0 < g("zr").length,
|
|
q = !m,
|
|
r = !n,
|
|
u = !n,
|
|
x = m ? 2 * c : c,
|
|
v = m ? (k("ys") + k("ye")) / x : k("y") / c;
|
|
n = n ? (k("xs") + k("xe")) / x : k("x") / c;
|
|
c = p ? (k("zs") + k("ze")) / x : k("z") / c;
|
|
p = q ? "y" : "ye";
|
|
x = q ? "y" : "ys";
|
|
var y = q ? "y" : "yr",
|
|
t = r ? "x" : "xe",
|
|
w = r ? "x" : "xs",
|
|
F = q ? g("y") : Tc(g("yr")),
|
|
z = r ? g("x") : Tc(g("xr")),
|
|
B = u ? g("z") : Tc(g("zr")),
|
|
A = g("name");
|
|
q = q ? F : Tc(g("ya"));
|
|
r = r ? z : Tc(g("xa"));
|
|
g = u ? B : Tc(g("za"));
|
|
var G = h(a.min_i(x)),
|
|
M = h(a.max_i(p)),
|
|
H = h(a.min_i(w)),
|
|
K = h(a.max_i(t)),
|
|
I = h(u ? a.min_i("z") : a.min_i("zs"));
|
|
a = h(u ? a.max_i("z") : a.max_i("ze"));
|
|
this.calcCache = {
|
|
list: F,
|
|
xList: z,
|
|
zList: B,
|
|
nList: A,
|
|
max: M[p],
|
|
min: G[x],
|
|
xMax: K[t],
|
|
xMin: H[w],
|
|
zMax: a.z,
|
|
zMin: I.z,
|
|
zAbsmax: Math.max(f(a.z), f(I.z)),
|
|
nMax: M.name,
|
|
nMin: G.name,
|
|
nZMax: a.name,
|
|
nZMin: I.name,
|
|
nXMax: K.name,
|
|
nXMin: H.name,
|
|
sum: k(y),
|
|
zSum: k("z"),
|
|
xSum: k("x"),
|
|
sumAbs: l(y),
|
|
zSumAbs: l("z"),
|
|
xSumAbs: l("x"),
|
|
average: v,
|
|
zAverage: c,
|
|
xAverage: n,
|
|
range: F.length ? M[y] - G[y] : void 0,
|
|
zRange: B.length ? a.z - I.z : void 0,
|
|
yRangeSum: k(y),
|
|
yRangeSumAbs: m ? l("yr") : l("y"),
|
|
yStartSum: k("ys"),
|
|
name: this.name,
|
|
type: this.currentOptions.type,
|
|
xAxis: this.xAxis,
|
|
yAxis: this.yAxis,
|
|
zAxis: this.zAxis,
|
|
zAxisLabelText: C(e.currentOptions, "label.text"),
|
|
averList: q,
|
|
xAverList: r,
|
|
zAverList: g,
|
|
};
|
|
}
|
|
return this.calcCache;
|
|
};
|
|
c.prototype.replaceTokens = function (a, c) {
|
|
return jr(a, this, c || this.getFormatInfo());
|
|
};
|
|
c.prototype.tokenValue = function (a) {
|
|
return this.replaceTokens({ token: a });
|
|
};
|
|
c.prototype.getMapData = function () {
|
|
var a = N(this.info, ["map"]);
|
|
if ("string" === typeof a || (a && 0 < pa(a).length)) return a;
|
|
a = N(this.userOptions, ["map"]) || {};
|
|
return "string" === typeof a ? a : a && 0 < pa(a).length ? a : N(T, ["JSC", "internal", "_modules", "maps", "geo", this.userOptions.mapDataId]);
|
|
};
|
|
c.prototype.setMapData = function (a) {
|
|
Z(this.info, "map", a);
|
|
return this;
|
|
};
|
|
c.prototype.getConfig = function () {
|
|
var a = L({}, this.userOptions);
|
|
a.points = this.userPoints;
|
|
return a;
|
|
};
|
|
return c;
|
|
})(jc),
|
|
pD = (function () {
|
|
function a(a) {
|
|
this.series = a;
|
|
this.setAll(!0);
|
|
}
|
|
a.prototype.setAll = function (a) {
|
|
this.pointData(a);
|
|
this._coord = this._pos = this._points = a;
|
|
this.series._ctSvCache = null;
|
|
this.series._ctmIsTypeCache = null;
|
|
};
|
|
a.prototype.any = function () {
|
|
return this._pointData || this._pointIndex || this._points || this._pos || this._coord;
|
|
};
|
|
a.prototype.points = function (a) {
|
|
var b = this;
|
|
return b.getSet(a, b._points, function (a) {
|
|
return (b._points = a);
|
|
});
|
|
};
|
|
a.prototype.pos = function (a) {
|
|
var b = this;
|
|
return b.getSet(a, b._pos, function (a) {
|
|
return (b._pos = a);
|
|
});
|
|
};
|
|
a.prototype.coord = function (a) {
|
|
var b = this;
|
|
return b.getSet(a, b.series.visualizer.coordDirty, function (a) {
|
|
return (b.series.visualizer.coordDirty = a);
|
|
});
|
|
};
|
|
a.prototype.pointData = function (a) {
|
|
var b = this;
|
|
!0 === a
|
|
? (b.pointIndex(a),
|
|
b.series.chartArea.series().each(function (a) {
|
|
a.seriesDirty.pos(!0);
|
|
}),
|
|
b.resetCache(),
|
|
(b.series.chartArea.chartAreaSet._calcCache = void 0))
|
|
: !1 === a && b.pointIndex(a);
|
|
return b.getSet(a, b._pointData, function (a) {
|
|
return (b._pointData = a);
|
|
});
|
|
};
|
|
a.prototype.resetCache = function () {
|
|
this.series.calcCache = void 0;
|
|
};
|
|
a.prototype.pointIndex = function (a) {
|
|
var b = this;
|
|
return b.getSet(a, b._pointIndex, function (a) {
|
|
return (b._pointIndex = a);
|
|
});
|
|
};
|
|
a.prototype.all = function (a) {
|
|
this.setAll(a);
|
|
};
|
|
a.prototype.getSet = function (a, b, d) {
|
|
if (t(a)) d(a);
|
|
else return b;
|
|
};
|
|
return a;
|
|
})(),
|
|
Ym = (function (a) {
|
|
function c(b, d) {
|
|
d = a.call(this, b, d) || this;
|
|
d.items = b;
|
|
d.kindObject = c;
|
|
d.points = Xa(wb, zz(d), Az());
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
c.prototype.options = function (a, c) {
|
|
var b = this.items.length ? !1 : c,
|
|
d = this.each(function (c) {
|
|
c.options(a, b);
|
|
});
|
|
!b && !1 !== c && yz(a) && this.items[0].chart.redraw(c);
|
|
return d;
|
|
};
|
|
return c;
|
|
})(wb),
|
|
qD = (function (a) {
|
|
function c(b, c) {
|
|
c = a.call(this, b.chart, c) || this;
|
|
c.marker = b;
|
|
c.fillMod = "axisMarkerY";
|
|
return c;
|
|
}
|
|
K(c, a);
|
|
c.prototype.styleIconVisual = function (a, c) {
|
|
a = a.base;
|
|
var b = this.marker.isRange(),
|
|
d = A({}, this.currentOptions),
|
|
g = d.line,
|
|
h = g.color || ia("outline", d.color || "white");
|
|
b ? (Z(d, "outline.color", h), (b = fc(d))) : (Z(d, "line.color", h), Z(d, "line.width", Math.min(4, g.width)), (b = Bb(d.line)));
|
|
a && a.attr(b);
|
|
c.isStyled = !0;
|
|
};
|
|
c.prototype.getIconPaths = function (a) {
|
|
var b = a[0],
|
|
c = a[1],
|
|
f = 0.8 * c;
|
|
return this.marker.isRange()
|
|
? { base: dc.square(0, f, a[0], a[1] - 2 * f), extra: void 0 }
|
|
: {
|
|
base: eb(
|
|
[
|
|
[0, c / 2],
|
|
[b, c / 2],
|
|
],
|
|
{ isOpen: !0 }
|
|
),
|
|
extra: void 0,
|
|
};
|
|
};
|
|
return c;
|
|
})(Mt),
|
|
au = { top: "left", middle: "center", bottom: "left", left: "top", center: "middle", right: "bottom" },
|
|
Xr = (function (a) {
|
|
function c(b, c) {
|
|
var d = a.call(this, b.chart, c, [b, c]) || this;
|
|
d.axis = b;
|
|
d.kind = "AxisMarker";
|
|
d.rootVisuals = { path: void 0, label: void 0 };
|
|
d.invalid = !1;
|
|
d._arrangeInfo = { box: void 0, visible: !0, edgeBoxes: [], labelSizes: [], possible: [], used: void 0 };
|
|
d.events = { click: new rd() };
|
|
d.isHoriz = !b.isHoriz;
|
|
d.options(c, !1);
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function () {
|
|
for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c];
|
|
c = G(a, 2);
|
|
a = c[0];
|
|
c = c[1];
|
|
t(c.value) ? (this.defaultContextOptions = { legendEntry: { value: c.value.pop ? ("x" === a.prefix ? "%xmin - %xmax" : "%min - %max") : "%value" } }) : (this.invalid = !0);
|
|
this.axis = a;
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
if (this.axis) {
|
|
var a = this.axis.options("defaultMarker");
|
|
return A({ color: "#a6bce3", opacity: 0.8, line: { width: 1, onTop: !1 }, labelPadding: 5, legendEntry: { color: "#3a3e4b", value: "%" } }, a || {});
|
|
}
|
|
};
|
|
c.prototype.options = function (b, c) {
|
|
var d = this.axis,
|
|
f = this.optionsGetter(b);
|
|
if ("NotGetter" !== f) return f;
|
|
t(b.low) && t(b.high) && (b.value = [b.low, b.high]);
|
|
a.prototype.options.call(this, b, c);
|
|
C(d.userOptions, "markers.length") && A(d.userOptions.markers[this.getIndexInAx()], b);
|
|
d.invalidate();
|
|
this.syncLegendEntry(b);
|
|
!1 !== c &&
|
|
(!this.chart.isRendered || !this.isRendered || this.options("label") || this.options("includeInScale") || (t(b.value) && this.legendEntry)
|
|
? (this.render(d.viewState), this.axis.chart.redraw(c))
|
|
: this.render(d.viewState));
|
|
return this;
|
|
};
|
|
c.prototype.normalizeOptions = function (b) {
|
|
b = a.prototype.normalizeOptions.call(this, b);
|
|
dp(b, "color");
|
|
dp(b, "line.color");
|
|
var c = b.value;
|
|
"object" === I(c) && t(c.low) && t(c.high) && (b.value = [c.low, c.high]);
|
|
return b;
|
|
};
|
|
c.prototype.click = function (a) {
|
|
this.trigger("click", a);
|
|
};
|
|
c.prototype.setRootVisuals = function () {
|
|
return this;
|
|
};
|
|
c.prototype.setAttribs = function () {
|
|
var a = this.currentOptions,
|
|
c = this.axis;
|
|
this.isRange() ? ((c = "x" === c.prefix ? Fa.axisMarkerX : Fa.axisMarkerY), (a = { fill: dd(c, oc(a.color, 1 - z(a.opacity, 1))) })) : (a = Bb(A({ color: a.color, opacity: a.opacity }, a.line)));
|
|
this.attribs = { path: a, label: void 0 };
|
|
return this;
|
|
};
|
|
c.prototype.render = function (a, c) {
|
|
this.setOptions().setRootVisuals().setAttribs();
|
|
var b = this.currentOptions;
|
|
a = this.axis;
|
|
var d = b.label || {},
|
|
g = this.rootVisuals,
|
|
h = this.renderer.renderer,
|
|
k = this.value();
|
|
if (0 !== k.length) {
|
|
var l = this.visualTarget();
|
|
b = C(b, "line.width");
|
|
var m = a.getCaPath(k, l, void 0, { lineWidth: k.length ? 0 : b, forMarker: 1 });
|
|
b = !g.path;
|
|
this.invalid = !a.valVisible(k);
|
|
h = g.path = g.path || this.bindEventsOn(h.path());
|
|
(h.parentNode !== l.el || Q(h.parentNode)) && h.add(l);
|
|
a = this.attrBuilder({ d: m }, this.attribs.path, c);
|
|
a["fill-rule"] = "evenodd";
|
|
b ? (a.animation = !1) : (a.reset = !0);
|
|
h.attr(a);
|
|
(g = g.label) &&
|
|
this.getText() &&
|
|
(this._arrangeInfo.visible
|
|
? (g.add(l),
|
|
(a = this.attrBuilder(qc(d), { "pointer-events": "none" }, c)),
|
|
((c = this._arrangeInfo.used) && c.box) || (c = this._arrangeInfo.possible[0]),
|
|
c &&
|
|
c.box &&
|
|
(g.rootPanel.visible(!0),
|
|
(d = c.rotation),
|
|
(l = c.textAlignment[0]),
|
|
(h = c.textAlignment[1]),
|
|
(k = 0 < d),
|
|
!k || this.axis.isHoriz || t(this.userOptions.label.rotate) || (d *= "right" === l ? 1 : -1),
|
|
(m = 0 < d),
|
|
(b = k ? (m ? c.box[2] : 0) : 0),
|
|
(m = k ? (m ? 0 : c.box[3]) : 0),
|
|
g.rootVisuals.text.attr({ xContentAlignment: k ? au[h] : l, yContentAlignment: k ? au[l] : h, opacity: 1 }),
|
|
(a.rotate = [d, 0, 0]),
|
|
(a.maxWidth = c.box[k ? 3 : 2]),
|
|
(a.offsetX = c.box[0] + b),
|
|
(a.offsetY = c.box[1] + m),
|
|
(a.zIndex = 1),
|
|
g.rootPanel.attr(a)))
|
|
: g.rootPanel.visible(!1));
|
|
this.isRendered = !0;
|
|
return this;
|
|
}
|
|
};
|
|
c.prototype.bindEventsOn = function (a) {
|
|
var b = this;
|
|
a.on("click", function (a) {
|
|
b.click(a);
|
|
});
|
|
return a;
|
|
};
|
|
c.prototype.syncLegendEntry = function (a) {
|
|
var b = this,
|
|
c = b.axis,
|
|
f = c.chartArea && b.chart.requestLegend(),
|
|
g = function (a) {
|
|
if (c.isRadial) {
|
|
var d = S(b.chart.axes().items, function (a) {
|
|
return ae(a.childAxes, c);
|
|
});
|
|
return S(f.items, function (b) {
|
|
return (b = b.target.marker) && b.axis === d && vc(b.currentOptions.value, a.value);
|
|
});
|
|
}
|
|
};
|
|
f &&
|
|
f.isVisible &&
|
|
f.allowEntries() &&
|
|
(b.legendEntry
|
|
? (a && t(a.value) && b.legendEntry.target.options({ value: a.value }), b.legendEntry.setColumns())
|
|
: !1 === C(b.currentOptions, "legendEntry.visible") || g(b.currentOptions) || ((b.legendEntry = f.addEntry(new qD(b, Ga(b.currentOptions, ["id"]))).setColumns()), (b.legendEntry.sortOrderValue = Qt[b.kind])));
|
|
};
|
|
c.prototype.resetTimers = function () {
|
|
C(this, "_arrangeInfo.used.time") && (this._arrangeInfo.used.time = 0);
|
|
};
|
|
c.prototype.visualTarget = function () {
|
|
var a = (this._visualTargets = this._visualTargets || this.axis.chartArea.getAxisMarkerVisualTargets());
|
|
return this.options("onTop") ? a.front : a.behind;
|
|
};
|
|
c.prototype.attrBuilder = function (a, c, e) {
|
|
void 0 === a && (a = {});
|
|
void 0 === c && (c = {});
|
|
void 0 === e && (e = {});
|
|
a = A({}, a, c, e);
|
|
e.animation || (a = A(a, { animation: this.chart.options("animation") }));
|
|
a.opacity = this.invalid ? 0 : 1;
|
|
return a;
|
|
};
|
|
c.prototype.getText = function () {
|
|
var a = this.axis,
|
|
c = C(this.currentOptions, "label.text");
|
|
c && -1 < c.indexOf("%") && ((c = Gg(c, this, this.chart.getFormatInfo(void 0, "major"))), (c = a.chartArea.replaceTokens(c)));
|
|
return c;
|
|
};
|
|
c.prototype.value = function () {
|
|
var a = this.axis,
|
|
c = z(this.currentOptions.value, this._value);
|
|
return a.normUserValue(c);
|
|
};
|
|
c.prototype.isRange = function () {
|
|
return void 0 !== this.value().pop;
|
|
};
|
|
c.prototype.getIndexInAx = function () {
|
|
var a = this;
|
|
return Sf(this.axis.currentOptions.markers, function (b) {
|
|
return b.id === a.id;
|
|
});
|
|
};
|
|
c.prototype.remove = function (a) {
|
|
this.destroy();
|
|
this.legendEntry && !1 !== a && (this.legendEntry.legend.chart.chartAreaSet.reflow(a), this.chart.isRendered && this.chart.renderer.refresh());
|
|
};
|
|
c.prototype.destroy = function () {
|
|
var a = this.rootVisuals;
|
|
this.axis.removeMarker(this);
|
|
a.path.destroy();
|
|
a.label && a.label.destroy();
|
|
this.legendEntry && this.legendEntry.destroy();
|
|
};
|
|
return c;
|
|
})(jc),
|
|
bu = (function () {
|
|
function a(a, b, d) {
|
|
this.axis = a;
|
|
this.valToLin = b;
|
|
this.range = qa(a.range);
|
|
this.chartArea = d;
|
|
this.inverted = a.isInverted();
|
|
this.breaks = a.breaks;
|
|
this.caRect = qa(d.contentRect);
|
|
}
|
|
a.prototype.equalsRange = function (a) {
|
|
var b = this.range,
|
|
c = a.range;
|
|
if (b.min === c.min && b.max === c.max) {
|
|
a: {
|
|
b = this.breaks;
|
|
c = a.breaks;
|
|
if (b && c) {
|
|
if (b.length === c.length) {
|
|
for (var e = 0, f = b.length; e < f; e++) {
|
|
var g = b[e],
|
|
h = c[e];
|
|
g = g[0] === h[0] && g[1] === h[1] ? !0 : void 0;
|
|
if (!g) {
|
|
b = void 0;
|
|
break a;
|
|
}
|
|
}
|
|
b = !0;
|
|
break a;
|
|
}
|
|
} else if (b === c) {
|
|
b = !0;
|
|
break a;
|
|
}
|
|
b = void 0;
|
|
}
|
|
if (b) return (!0 === this.inverted) !== (!0 === a.isInverted()) ? void 0 : !0;
|
|
}
|
|
};
|
|
a.prototype.equals = function (a) {
|
|
var b = this.caRect;
|
|
if (this.equalsRange(a) && ((a = a.chartArea.contentRect), b && a && 0 === ap(b, a))) return !0;
|
|
};
|
|
a.prototype.isValid = function () {
|
|
if (this.caRect) return !0;
|
|
};
|
|
a.prototype.rect = function () {
|
|
return (this.caRect = this.caRect || this.chartArea.contentRect);
|
|
};
|
|
return a;
|
|
})(),
|
|
rD = (function () {
|
|
function a() {
|
|
this.items = [];
|
|
}
|
|
a.prototype.get = function (a, b) {
|
|
for (var c = this.items, e = 0, f = c.length - 1, g; e <= f; ) {
|
|
g = Vb.floor((e + f) / 2);
|
|
if (a === c[g].value) return c[g];
|
|
a < c[g].value ? (f = g - 1) : (e = g + 1);
|
|
}
|
|
return b ? e || 0 : void 0;
|
|
};
|
|
a.prototype.add = function (a) {
|
|
var b = this.get(a, !0);
|
|
if ("number" === I(b)) {
|
|
var c = b;
|
|
b = { value: a, clusters: {} };
|
|
this.items.splice(c, 0, b);
|
|
}
|
|
return b;
|
|
};
|
|
a.prototype.toArray = function () {
|
|
for (var a = [], b = 0, d = this.items.length; b < d; b++) a.push(this.items[b].value);
|
|
return a;
|
|
};
|
|
a.prototype.getShortestRange = function () {
|
|
var a = void 0,
|
|
b = MA;
|
|
return 1 < this.items.length
|
|
? (w(this.items, function (c, e) {
|
|
e && ((e = c.value - a), e < b && (b = e));
|
|
a = c.value;
|
|
}),
|
|
b)
|
|
: 1;
|
|
};
|
|
a.prototype.reset = function () {
|
|
this.items = [];
|
|
};
|
|
return a;
|
|
})(),
|
|
Ur = { min: 1, curly: 3, measure: 1.5 },
|
|
hj = function (a) {
|
|
return a && "Point" === a.kind;
|
|
},
|
|
cu = (function (a) {
|
|
function c(b, c, e, f) {
|
|
e = a.call(this, b.chart, e, [b, f, e]) || this;
|
|
e.axis = b;
|
|
e._value = c;
|
|
e.type = f;
|
|
e.visuals = {};
|
|
e.tickLen = 0;
|
|
e.invalid = !1;
|
|
e.isDestroyed = !1;
|
|
e._age = 0;
|
|
e._isNew = !0;
|
|
e._metrics = void 0;
|
|
e._visible = !0;
|
|
e._isRange = t(c) && !!c.pop;
|
|
Tr(e);
|
|
return e;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function () {
|
|
for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c];
|
|
var e = G(a, 3);
|
|
a = e[0];
|
|
c = e[1];
|
|
e = e[2];
|
|
this.defMinorTickOptions = e.defaultMinorTick;
|
|
this.axis = a;
|
|
this.type = c;
|
|
this.defaultMutable = !1;
|
|
this._isRange = t(e.value) && !!e.value.pop;
|
|
"function" === typeof e.target && (this.target = e.target());
|
|
};
|
|
c.prototype.setType = function (a, c) {
|
|
this.type = a;
|
|
c && (this.userOptions.target = c);
|
|
this.setOptions();
|
|
Tr(this);
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
if (this.axis) {
|
|
var a = this.axis.currentOptions;
|
|
switch (this.type) {
|
|
case "minor":
|
|
a = this.defMinorTickOptions || A({}, a.defaultTick, a.defaultMinorTick);
|
|
break;
|
|
default:
|
|
a = a.defaultTick || {};
|
|
}
|
|
return a;
|
|
}
|
|
};
|
|
c.prototype.dependentOptions = function () {
|
|
return [
|
|
{
|
|
option: ["line.color", "line.width"],
|
|
check: function (a) {
|
|
return a;
|
|
},
|
|
dependent: "line.visible",
|
|
value: !0,
|
|
},
|
|
];
|
|
};
|
|
c.prototype.px = function (a, c) {
|
|
this._px = t(a) && !Ha(a) ? a : void 0;
|
|
this._pxPrev = t(c) && !Ha(c) ? c : void 0;
|
|
return this._px;
|
|
};
|
|
c.prototype.getTickTargetPanel = function () {
|
|
var a = this.axis;
|
|
return this.currentOptions.onTop ? a.chartArea.rootVisuals.gridLinesFront : a.chartArea.rootVisuals.gridLinesBehind;
|
|
};
|
|
c.prototype.options = function (b, c) {
|
|
var d = this.optionsGetter(b);
|
|
if ("NotGetter" !== d) return d;
|
|
b && (t(b.value) && ((this._needUpdateText = this._value !== b.value), (this._value = b.value), (this._isRange = !!b.value.pop)), "function" === typeof b.target && (this.target = b.target()));
|
|
d = a.prototype.options.call(this, b, c);
|
|
Q(c) && Pa(b) && !this.chart.dirty && this.axis.options({});
|
|
return d;
|
|
};
|
|
c.prototype.setRootVisuals = function () {
|
|
var a = this.axis,
|
|
c = this.getTickTargetPanel();
|
|
a && !this.rootVisuals && (this.rootVisuals = { ticks: a.rootVisuals.tickSpacer, labels: a.rootVisuals.main, gridLines: c });
|
|
return this;
|
|
};
|
|
c.prototype.bindEvents = function () {
|
|
var a = this;
|
|
if (a.visuals) {
|
|
var c = a.hasUserEvent("click"),
|
|
e = a.visuals.labelText;
|
|
c = c ? "pointer" : "default";
|
|
e.on("vclick", function (b) {
|
|
return a.click(b);
|
|
});
|
|
e.on("mouseover", function (b) {
|
|
return a.mouseover(b);
|
|
});
|
|
e.on("mouseout", function (b) {
|
|
return a.mouseout(b);
|
|
});
|
|
e.attr({ cursor: c });
|
|
}
|
|
return a;
|
|
};
|
|
c.prototype.mouseover = function (a) {
|
|
var b = this.target,
|
|
c = this.chart.touched(),
|
|
f = "x" === this.axis.prefix;
|
|
if (!1 !== this.triggerUser("mouseOver", a) && b && hj(b)) {
|
|
var g = b.series;
|
|
Rl(this) &&
|
|
((a = this.axis.chartArea.debounce),
|
|
(b = f ? b : g),
|
|
a.clear("unmute"),
|
|
Ol(b, "", Nl(this) || (f ? "group" : "series")),
|
|
c &&
|
|
a.defer(
|
|
"unmute",
|
|
function () {
|
|
Qb(g.chart);
|
|
},
|
|
8e3
|
|
));
|
|
}
|
|
};
|
|
c.prototype.mouseout = function (a) {
|
|
var b = this.target;
|
|
if (!1 !== this.triggerUser("mouseOut", a) && b && hj(b) && Rl(this)) {
|
|
var c = b.series;
|
|
this.axis.chartArea.debounce.defer(
|
|
"unmute",
|
|
function () {
|
|
Qb(c.chart);
|
|
},
|
|
230
|
|
);
|
|
}
|
|
};
|
|
c.prototype.click = function (a) {
|
|
var b = "x" === this.axis.prefix,
|
|
c = this.target;
|
|
!1 !== this.triggerUser("click", a) &&
|
|
c &&
|
|
(hj(c) && Rl(this) && "touch" !== a.device
|
|
? ((a = c.series), this.axis.chartArea.debounce.clear("unmute"), Qb(a.chart))
|
|
: "touch" === a.device && (this.axis.chartArea.resetTimers(), hj(c) && ((a = b ? c : c.series), this.chart.highlighted === a && Qb(a.chart))));
|
|
};
|
|
c.prototype.setPos = function () {};
|
|
c.prototype.value = function () {
|
|
var a = this.axis,
|
|
c = z(this.currentOptions.value, this._value);
|
|
return a.normUserValue(c);
|
|
};
|
|
c.prototype.render = function (a, c) {
|
|
void 0 === c && (c = {});
|
|
if (this.isDestroyed) return this;
|
|
this.setOptions().setRootVisuals();
|
|
var b = this.currentOptions,
|
|
d = this.axis,
|
|
g = d.chartArea,
|
|
h = !1;
|
|
a = this.visuals;
|
|
var k = this.renderer,
|
|
l = {},
|
|
m = k.renderer,
|
|
n = this._metrics,
|
|
p = d.isRadial,
|
|
q = this._positionData,
|
|
r = this.getVisualTargets(),
|
|
u = this.value(),
|
|
x = d.currentOptions.orientation,
|
|
v = "top" === x || "right" === x || "opposite" === x;
|
|
if ("origin" === this.type) {
|
|
var y = (x = d.userOptions.originTick) && !1 === x.enabled;
|
|
h = d.linToPos(this._px);
|
|
(x || (0 !== h && 1 !== h)) && !y && (b = A({}, b, d.currentOptions.originTick));
|
|
}
|
|
this._isSquished && d.currentOptions.defaultHiddenTick && (b = A({}, b, d.currentOptions.defaultHiddenTick));
|
|
y = b.fill && "none" !== b.fill;
|
|
if (t(this._metrics.px)) {
|
|
x = d.tickVisible(u) || b.internal;
|
|
h = !a.tickLine;
|
|
if (x || !h) {
|
|
h = void 0;
|
|
h = Bb(b.line || {});
|
|
var D = h["stroke-width"] || 0;
|
|
if (!y) {
|
|
var E = (a.tickLine = a.tickLine || m.path().attr({ opacity: 0 }).add(r.line)),
|
|
F = void 0;
|
|
if (this._rngData)
|
|
if ((p = this._rngData.renderData)) l = A({ d: p.d }, p.pathOptions);
|
|
else {
|
|
l = {};
|
|
p = d._rngData.origin;
|
|
var B = d.duV("inside" === b.placement),
|
|
G = p[B.vc],
|
|
H = [];
|
|
p = function (a) {
|
|
var c = [],
|
|
d = [];
|
|
d[B.vc] = G;
|
|
d[B.hc] = a;
|
|
c.push(nd(r.tick, d, D));
|
|
Di(c, B.o, z(b.line.length, 5));
|
|
H.push(fb(c));
|
|
};
|
|
p(this._metrics.px[0]);
|
|
p(this._metrics.px[1]);
|
|
l = { d: xa(H) };
|
|
}
|
|
else (F = q.tickPoints), (q = p ? F[0] : nd(r.tick, F[0], D)), (p = p ? F[1] : nd(r.tick, F[1], D)), (l = { d: q ? fb([p, q]) : "M0 0" });
|
|
F = this.attrBuilder(l, h, c);
|
|
l = {};
|
|
E.attr(F);
|
|
}
|
|
if (c.onCa) {
|
|
h = !a.gridLine;
|
|
k = Oa(b.gridLine || {});
|
|
v = "column" === k.width;
|
|
var J = y ? !0 : !d.autoHideGrid();
|
|
(h && !tf(b.gridLine)) ||
|
|
!r.grid ||
|
|
(zc(k, k, "visible", "visible", function (a) {
|
|
return "auto" === a ? J : a;
|
|
}),
|
|
v && "category" === d.type && ((n = d.isStackedFull()), (k.width = n ? d.clusterWidth(this._value) : d.clusterWidth()), (k.caps = g.hasRoundCaps ? "round" : void 0), delete k.dashStyle),
|
|
(k = Bb(k)),
|
|
(n = u),
|
|
v && ((v = k["stroke-width"]) && (k["stroke-width"] = Math.round(v + D)), this._isRange && "category" === d.type && (n = Wf(u))),
|
|
(d = d.getCaPath(n, r.grid, void 0, { lineWidth: k["stroke-width"], multiShape: this._isRange })),
|
|
(a = a.gridLine = a.gridLine || m.path(d).attr({ opacity: 0 })),
|
|
(a.parentNode && a.parentNode === r.grid.el) || a.add(r.grid),
|
|
(h = this.attrBuilder({ zIndex: 5, d: d }, k, c)),
|
|
a.attr(h));
|
|
} else {
|
|
h = qc(b.label);
|
|
g = n.text;
|
|
Z(b, "label.text", g);
|
|
var M = this.angledAttr();
|
|
l.val = g;
|
|
l = this.attrBuilder(l, A({ autoWrap: "none" }, h), c);
|
|
t(h.opacity) && (l.opacity = h.opacity);
|
|
l = Ga(l, ["rotate", "x", "y"]);
|
|
p = M.rotate ? (M.rotate.length ? M.rotate[0] : M.rotate) : 0;
|
|
m = z(b.outline && b.outline.width, 1);
|
|
q = dr(b);
|
|
u = "inside" === C(d.currentOptions, "defaultTick.placement");
|
|
h = b.line.length;
|
|
q = b.padding - (q ? 2 * m : 0);
|
|
E = { padding: p ? 0 : q, radius: b.radius, corners: b.corners, fill: b.fill, outline: b.outline };
|
|
!p && y && (E.shape = { callout: { position: d.isHoriz ? [0.5, v !== u ? 1 : 0] : [v !== u ? 0 : 1, 0.5], size: [h, h] } });
|
|
M = A(M, Cg(E));
|
|
y && (M.zIndex = 3);
|
|
w(["animation", "margin"], function (a) {
|
|
l[a] && ((M[a] = l[a]), delete l[a]);
|
|
});
|
|
if (!a.label) {
|
|
var I = (a.label = k.box());
|
|
a.labelText = k.textStack(g).add(I);
|
|
I.add(r.label);
|
|
this.bindEvents();
|
|
if (this.chart.inited) {
|
|
var K = l.opacity,
|
|
L = l.animation;
|
|
I.renderer.isAnimationDisabled(l) ||
|
|
((M.opacity = 0),
|
|
I.await(function () {
|
|
I.el.transition({ middle: { to: { opacity: K } }, end: { opacity: K }, animation: L });
|
|
}));
|
|
}
|
|
}
|
|
M.xContentAlignment = l.xContentAlignment = this.contentAlignment();
|
|
l.width = n.textSize[0];
|
|
l.height = n.textSize[1];
|
|
a.labelText.attr(l);
|
|
k = p ? 0 : q;
|
|
!p && k && ((M.x -= k), (M.y -= k));
|
|
a.label.attr(M);
|
|
dr(b) &&
|
|
!p &&
|
|
((k = a.labelText.setPreliminarySize().getBbox()),
|
|
(n = a.label.getPaddingOffset(k.width, k.height)),
|
|
(k = n.left),
|
|
(n = n.top),
|
|
m && (n -= m * (d.isHoriz ? ((u && v) || (!u && !v) ? -1 : 1) : 0)),
|
|
(k || n) && a.label.attr({ x: M.x - k, y: M.y - n }));
|
|
}
|
|
this.visible(x, c);
|
|
}
|
|
this._isNew = !1;
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.contentAlignment = function () {
|
|
if (this._isRange && !1 === this._rngData.rotate && !1 !== this.currentOptions.enabled) return "center";
|
|
switch (this.axis.sideIndex()) {
|
|
case 0:
|
|
case 2:
|
|
return "center";
|
|
case 1:
|
|
return "left";
|
|
case 3:
|
|
return "right";
|
|
}
|
|
return null;
|
|
};
|
|
c.prototype.getVisualTargets = function () {
|
|
return this.axis.getVisualTargets(this.currentOptions, this._isRange);
|
|
};
|
|
c.prototype.angledBounds = function () {
|
|
var a,
|
|
c = this.metrics().textSize;
|
|
if ((a = this.angledAttr())) return hk([a.x, a.y, c[0], c[1]], a.rotate);
|
|
};
|
|
c.prototype.angledAttr = function () {
|
|
var a = this.axis,
|
|
c = a.currentOptions,
|
|
e = this._positionData,
|
|
f = e.textBBox,
|
|
g = va(f),
|
|
h = z(c.defaultTick.padding, 3),
|
|
k = { x: f[0], y: f[1] },
|
|
l = this.labelSize,
|
|
m = l[0];
|
|
l = l[1];
|
|
if (t(this._cxyRotate)) k.rotate = [this._cxyRotate, g[0] - f[0], g[1] - f[1]];
|
|
else if ((!this._isRange || this._isBaseRange) && a.isHoriz) {
|
|
f = a.sideIndex();
|
|
f = 0 === f || 1 === f;
|
|
g = C(c, "defaultTick.label.rotate");
|
|
c = z(g, c.autoRotate);
|
|
var n = [0, 0];
|
|
if ("angled" === a.labelMode && c) {
|
|
k.x += e.textBBox[2] / 2;
|
|
c = Yn(c);
|
|
e = Uc(0, 0, c - 90, l / 2).x;
|
|
f ? ((k.x -= e), 0 > c ? (n = [0, l]) : ((n = [m, l]), (k.x -= m)), a.isHoriz && (k.y = a.tickMetricsData.getMaxLength() - this._metrics.tickLength - h - l)) : ((k.x += e), 0 > c && ((n = [m, 0]), (k.x -= m)));
|
|
if (this._isBaseRange && a.isHoriz) {
|
|
e = "inside" === this.currentOptions.placement;
|
|
var p = ce(c) * Math.abs(Math.cos((c * Math.PI) / 180)),
|
|
q = Math.abs(Math.sin((c * Math.PI) / 180));
|
|
p *= m;
|
|
l *= q;
|
|
var r = Math.abs(this._metrics.px[1] - this._metrics.px[0]),
|
|
u = Math.max(0, Math.abs(p) + Math.abs(l) - r);
|
|
a = Q(g) ? r / a.tickMetricsData.getMaxLength() : 1;
|
|
k.x = u ? k.x - (f ? -1 : 1) * ce(c) * ((r * a) / 2 - l / 2) : k.x - ((f ? -1 : 1) * p * a) / 2;
|
|
e && (k.y -= q * (m / 2 + h + this.tickLen));
|
|
}
|
|
k.rotate = [c, n[0], n[1]];
|
|
}
|
|
}
|
|
k.rotate || (k.rotate = [0, 0, 0]);
|
|
return k;
|
|
};
|
|
c.prototype.metrics = function (a) {
|
|
void 0 === a && (a = {});
|
|
var b = this.currentOptions,
|
|
c = this.axis,
|
|
f = (this.tickLen = z(N(b, ["line", "length"]), 5)),
|
|
g = z(this.currentOptions.padding, 3),
|
|
h = (this._px = c.getCaLen(this.value()));
|
|
c = c.valToAngle(this.value());
|
|
if (!Id(b.label)) return (this.labelSize = [0, 0]), (this._metrics = { angle: c, px: h, textSize: [0, 0], tickLength: f, tickPadding: g });
|
|
var k = this.renderer,
|
|
l = this.getText(),
|
|
m,
|
|
n;
|
|
if ((n = this._metrics)) {
|
|
n = this._metrics;
|
|
var p = b.label.style;
|
|
void 0 === p && (p = {});
|
|
n = n.text === l && n.fontFamily === p.fontFamily && n.fontSize === p.fontSize && n.fontStyle === p.fontStyle && n.fontWeight === p.fontWeight;
|
|
}
|
|
n && (m = !0);
|
|
n = this._metrics || {};
|
|
m
|
|
? (this._metrics = A(n, { tickLength: f, tickPadding: g, px: h, angle: c }))
|
|
: ((b = qc(b.label)),
|
|
(k = k.textStack(l)),
|
|
k.attr(A({ autoWrap: "none" }, b)),
|
|
(m = k.composeCombinations()[0]),
|
|
(p = void 0),
|
|
!~l.indexOf(" ") ||
|
|
~l.indexOf("<br") ||
|
|
~l.indexOf("\n") ||
|
|
~l.indexOf("</") ||
|
|
"none" === b.autoWrap ||
|
|
(k.attr({ maxWidth: m.minSize.width.px - 1, autoWrap: "auto" }), (p = k.composeCombinations()[0]), (p = [p.minSize.width.px, p.minSize.height.px])),
|
|
(m = this.labelSize = [m.minSize.width.px, m.minSize.height.px]),
|
|
k.destroy(),
|
|
(this._metrics = A(n, {
|
|
tickLength: f,
|
|
textSize: m,
|
|
primTextSize: m,
|
|
altTextSize: p,
|
|
text: l,
|
|
fontFamily: b.fontFamily,
|
|
fontSize: b.fontSize,
|
|
fontStyle: b.fontStyle,
|
|
fontWeight: b.fontWeight,
|
|
tickPadding: g,
|
|
px: h,
|
|
angle: c,
|
|
})));
|
|
t(a.altTextSize) && ((f = this._metrics), (f.textSize = this.labelSize = (a.altTextSize ? f.altTextSize : f.primTextSize) || f.textSize));
|
|
return this._metrics;
|
|
};
|
|
c.prototype.getText = function () {
|
|
var a,
|
|
c = this,
|
|
e = c.currentOptions,
|
|
f = c.axis,
|
|
g = "category" === f.type,
|
|
h = c.value(),
|
|
k = C(e, "label.text"),
|
|
l = c.type + (c.isFirst ? " first" : ""),
|
|
m = f.getFormatInfo(ja(h) ? h[0] : h, l);
|
|
m = m.culture + m.fStr;
|
|
var n;
|
|
"function" === typeof e.target && (n = e.target());
|
|
var p = n || (f.chartArea.replaceTokens ? f.chartArea : f.chart);
|
|
if (!c._formattedText || m !== c._formatInfoHash || c._needUpdateText) {
|
|
k || ("minor" === c.type ? (k = C(f.currentOptions, "defaultMinorTicklabel.text")) : "major" === c.type && (k = C(f.currentOptions, "defaultTicklabel.text")));
|
|
n = I(k);
|
|
var q = f.getFormatInfo(void 0, "major");
|
|
e = function (a, b, d) {
|
|
b = t(b) && "function" === typeof b.pop && 2 === b.length ? { value: vs(b), min: b[0], max: b[1] } : { value: b, name: b };
|
|
q.isTime && d && delete q.isTime;
|
|
a = wi(a, b, q);
|
|
c._formattedText = p.replaceTokens(a);
|
|
};
|
|
k
|
|
? "function" === n
|
|
? ((k =
|
|
z(
|
|
k(
|
|
(function (a) {
|
|
return g && a.pop && 2 === a.length && 0 === a[0] % 0.5 && 0 === a[1] % 0.5 ? (1 === la(a[0], a[1]) ? na(Wf(a)) : [a + 0.5, a - 0.5]) : a;
|
|
})(h)
|
|
),
|
|
""
|
|
) + ""),
|
|
(c._formattedText = k ? wi(k, { value: h }, ((a = {}), (a[f.prefix] = f.getFormatInfo(h, l)), a)) : ""))
|
|
: "string" === n &&
|
|
((a = ae(k, "%")),
|
|
(n = ae(k, "{")),
|
|
a && g && "function" === typeof h.pop
|
|
? e(k, f.format(h, { tickType: l }, !0))
|
|
: a || n
|
|
? e(
|
|
k,
|
|
n
|
|
? h
|
|
: hb(h, function (a) {
|
|
return f.format(a, { tickType: l });
|
|
}),
|
|
!n
|
|
)
|
|
: (c._formattedText = k))
|
|
: (c._formattedText =
|
|
"category" !== f.type
|
|
? "time" === f.type && 2 === h.length
|
|
? f.format(h[0], { tickType: l })
|
|
: hb(h, function (a) {
|
|
return f.format(a, { tickType: l });
|
|
})
|
|
: f.format(h, { tickType: l }));
|
|
c._formattedText = vs(c._formattedText);
|
|
m = hb(h, function (a) {
|
|
return f.getFormatInfo(a, l);
|
|
});
|
|
h = m[0] || m;
|
|
c._formatInfoHash = h.culture + h.fStr;
|
|
}
|
|
c._needUpdateText = !1;
|
|
return c._formattedText;
|
|
};
|
|
c.prototype.invalidate = function () {
|
|
this.invalid = !0;
|
|
return this;
|
|
};
|
|
c.prototype.validate = function () {
|
|
this.invalid = !1;
|
|
};
|
|
c.prototype.attrBuilder = function (a, c, e) {
|
|
void 0 === a && (a = {});
|
|
void 0 === c && (c = {});
|
|
void 0 === e && (e = {});
|
|
a = A(c, a);
|
|
t(e.animation) ? A(a, { animation: e.animation }) : !1 === e ? (a.animation = !1) : (a = A(a, { animation: this.chart.options("animation") }));
|
|
this.invalid || (a.opacity = 1);
|
|
return a;
|
|
};
|
|
c.prototype.remove = function (a) {
|
|
this.destroy();
|
|
!1 !== a && this.axis.renderOnCa(a);
|
|
};
|
|
c.prototype.destroy = function () {
|
|
var a = this,
|
|
c = 0,
|
|
e = this.axis;
|
|
-1 < (c = e._ticks.indexOf(this)) && e._ticks.splice(c, 1);
|
|
Af(e.currentOptions.customTicks, function (b) {
|
|
return b.id === a.id;
|
|
});
|
|
Af(e.userOptions.customTicks, function (b) {
|
|
return b.id === a.id;
|
|
});
|
|
c = this.visuals;
|
|
c.gridLine && c.gridLine.destroy();
|
|
c.tickLine && c.tickLine.destroy();
|
|
c.label && c.label.destroy();
|
|
this.ciManager.remove(this);
|
|
};
|
|
c.prototype.visible = function (a, c) {
|
|
var b = this,
|
|
d = this.visuals,
|
|
g = function (a, d) {
|
|
a && a.attr(b.attrBuilder({}, { opacity: d ? 1 : 0 }, c));
|
|
},
|
|
h = function (a) {
|
|
g(d.gridLine, a);
|
|
g(d.tickLine, a);
|
|
d.label && g(d.label.el, a);
|
|
b._visible = a;
|
|
};
|
|
a !== this._visible && h(a);
|
|
};
|
|
return c;
|
|
})(jc),
|
|
ij,
|
|
sD = ["scale", "staticColumnWidth", "spacingPercentage"],
|
|
tD = ((ij = {}), (ij[1] = { line: { visible: !0 } }), (ij[0] = { line: { visible: !1 } }), ij),
|
|
uD = function (a) {
|
|
var c = {
|
|
scale: { type: "auto", defaultBreak: { type: "zigzag", line: { width: 10, color: "#d6d6d6" } } },
|
|
crosshair: { snapToData: !0, gridLine: { width: 1, dashStyle: "longdash", color: "#BDBDBD", visible: !0 }, fill: "#fff", outline: { color: "#a9a9a9" }, radius: 3, corners: "round" },
|
|
label: { align: "center", margin: 5, style: { color: "#474747", fontSize: "13px", fontWeight: "normal" } },
|
|
line: { color: "#A0A0A0", width: 1 },
|
|
defaultTick: {
|
|
gridLine: { width: 1, color: "#e6e6e6", visible: "auto" },
|
|
line: { color: "#e2e2e2", length: 5 },
|
|
label: { style: { color: "#5f5f5f", fontSize: "12px" }, margin: 5 },
|
|
fill: "none",
|
|
outline: "none",
|
|
padding: 3,
|
|
},
|
|
defaultMinorTick: { gridLine: { width: 1, color: "rgba(223,223,223,0.59)", dashStyle: "ShortDash" }, line: { color: "#e2e2e2", length: 4, width: 1 }, padding: 3, label: { style: { color: "#7b7b7b" } } },
|
|
defaultHiddenTick: { label: { opacity: 0.05 }, gridLine: { opacity: 0.2 }, line: { opacity: 0.5 } },
|
|
spacingPercentage: 0.2,
|
|
originTick: { gridLine: { color: "#f0cfcd" } },
|
|
autoRotate: -45,
|
|
};
|
|
if ("y" === a.prefix) {
|
|
var b = a.range,
|
|
d = b && b.min,
|
|
e = b && b.max;
|
|
if (t(d) && t(e)) {
|
|
var f = Math.max(Math.abs(d), Math.abs(e));
|
|
1e4 < f &&
|
|
(a.type ||
|
|
a.isLog() ||
|
|
(c.defaultTick.label.text = function (b) {
|
|
var c = a.currentOptions.formatString || "",
|
|
g = "c" === c[0];
|
|
c = c.slice(1);
|
|
var h = g ? "c" : "n";
|
|
if (b) {
|
|
var n = (e - d) / (a._ticks.length || 1);
|
|
b = G(Hs(f), 2);
|
|
var p = Math.pow(1e3, b[0]);
|
|
n = Math.log(p / n) / Math.log(10);
|
|
return "{%value/" + p + ":" + h + (c || Math.max(g ? 2 : 0, 0 < n ? Math.ceil(n) : 0)) + "}" + b[1];
|
|
}
|
|
return "{%value:" + h + (c || (g ? 2 : 0)) + "}";
|
|
}));
|
|
}
|
|
}
|
|
a.isLog() && (c.formatString = "g10");
|
|
a.isHoriz || (A(c, { alternateGridFill: "#f7f7f7" }), delete c.autoRotate);
|
|
if ("x" === a.prefix) {
|
|
var g = (b = a.range) && b.min;
|
|
b = b && b.max;
|
|
t(g) && t(b) && 1e3 <= g && 9999 >= b && (c.formatString = "d");
|
|
}
|
|
return A(c, tD[a.chart.getStyling()]);
|
|
},
|
|
du = function (a, c) {
|
|
!c && a && a.pop && ((c = a[1]), (a = a[0]));
|
|
a > c && ((c = G([c, a], 2)), (a = c[0]), (c = c[1]));
|
|
return [a, c];
|
|
},
|
|
Zm = function (a) {
|
|
return { string: "string", category: "string", number: "number", date: "time", time: "time" }[a] || a;
|
|
},
|
|
vD = function (a) {
|
|
var c = "category" === a.type,
|
|
b = !!a.syncAxis,
|
|
d = C(a.userOptions, "defaultTick.gridLine");
|
|
if ("x" === a.prefix && c) {
|
|
if (a.isHeatmap) return !0;
|
|
if (d && tf(d)) return !1;
|
|
var e = a.getSeriesColl().items,
|
|
f = $a(
|
|
B(e, function (a) {
|
|
return a.yAxis;
|
|
})
|
|
);
|
|
d = a.isRadial;
|
|
var g = (function () {
|
|
var a;
|
|
try {
|
|
for (var b = ya(f), c = b.next(); !c.done; c = b.next()) {
|
|
var d = c.value.range;
|
|
if (0 !== d.min && 0 !== d.max) return !1;
|
|
}
|
|
} catch (u) {
|
|
var e = { error: u };
|
|
} finally {
|
|
try {
|
|
c && !c.done && (a = b.return) && a.call(b);
|
|
} finally {
|
|
if (e) throw e.error;
|
|
}
|
|
}
|
|
return !0;
|
|
})(),
|
|
h = $a(
|
|
B(e, function (a) {
|
|
return a.info.type.seriesType;
|
|
})
|
|
),
|
|
k = function (a) {
|
|
return (
|
|
0 ===
|
|
ea(a, function (a) {
|
|
return "column" !== a && "area" !== a && "variwide" !== a;
|
|
}).length
|
|
);
|
|
};
|
|
e =
|
|
0 <
|
|
ea(e, function (a) {
|
|
return a.info.hasYRanges;
|
|
}).length;
|
|
var l = function () {
|
|
var b;
|
|
try {
|
|
for (var c = ya(f), d = c.next(); !d.done; d = c.next()) {
|
|
var e = d.value;
|
|
if (e) {
|
|
var g = e.getValToLin()(0);
|
|
switch (a.sideIndex()) {
|
|
case 0:
|
|
case 3:
|
|
return 0 === g;
|
|
case 1:
|
|
case 2:
|
|
return 1 === g;
|
|
}
|
|
}
|
|
}
|
|
} catch (x) {
|
|
var h = { error: x };
|
|
} finally {
|
|
try {
|
|
d && !d.done && (b = c.return) && b.call(c);
|
|
} finally {
|
|
if (h) throw h.error;
|
|
}
|
|
}
|
|
};
|
|
return (!d && g && l() && !e && k(h) && c) || (c && b);
|
|
}
|
|
},
|
|
wD = function (a) {
|
|
var c = a.chartArea;
|
|
if (c.chartAreaSet && c.axes && !a.userOptions.alternateGridFill) {
|
|
var b = c.axes({ prefix: "y" }).items.length;
|
|
c = c.chartAreaSet.freeAxes.y.id;
|
|
if (1 < b && a.id !== c) return !0;
|
|
}
|
|
},
|
|
jj = (function (a) {
|
|
function c(b, c, e) {
|
|
var d = a.call(this, b.chart || b, c, [b, e, c]) || this;
|
|
d.serList = [];
|
|
d.catList = [];
|
|
d.dataPositions = new rD();
|
|
d.clusterCounts = {};
|
|
d.originValue = void 0;
|
|
d.min = void 0;
|
|
d.max = void 0;
|
|
d.breaks = [];
|
|
d.events = { setRange: new rd() };
|
|
d.isVisible = !0;
|
|
d.type = "";
|
|
d.usedDataKeys = [];
|
|
d.noData = !0;
|
|
d.dataInfo = { precision: 0, seriesTypesUnique: [], serColl: void 0 };
|
|
d.isPrivate = !1;
|
|
d.childAxes = [];
|
|
d._ticks = [];
|
|
d._markers = [];
|
|
d.labelMode = "normal";
|
|
d.altGridFillVisuals = [];
|
|
d.attribs = {};
|
|
d.initSizeMetrics = function () {
|
|
d._sizeMetrics = { clipped: [0, 0], bbox: [0, 0, 0, 0], length: 0, size: [0, 0], labelSize: [0, 0], history: [] };
|
|
};
|
|
d.toPosition = function (a) {
|
|
var b = I(a),
|
|
c = "category" === d.type;
|
|
if ("string" === b) -1 < a.indexOf("%") && (a = d.chartArea.chartAreaSet.replaceTokens({ token: a }, d.getFormatInfo()));
|
|
else {
|
|
if (a.pop)
|
|
return (
|
|
(b = typeof a[0]),
|
|
(a = B(a, function (a) {
|
|
return d.toPosition(a);
|
|
})),
|
|
c && !d.isRadial && "string" === b && ((a = sa(a)), (a = xf(a, -0.5))),
|
|
a
|
|
);
|
|
if ("object" === b && "time" === d.type) return Nk(a, d.range ? d.range.min : d.min, d.range ? d.range.max : d.max);
|
|
if (c) return a;
|
|
}
|
|
return d._toPosition(a);
|
|
};
|
|
d.toText = function (a) {
|
|
return a;
|
|
};
|
|
d._toPosition = function (a) {
|
|
return a;
|
|
};
|
|
d._autoTimeFormats = {};
|
|
d._incompatableTypes = { stackedFull: "time" };
|
|
d.overflowSize = { tL: [0, 0], bR: [0, 0], margins: [0, 0, 0, 0] };
|
|
d._nRects = [];
|
|
d.zoomRange = [];
|
|
"chartArea" === b.kind && (b._axes.push(d), ("x" === e ? b.xAxis : b.yAxis).push(d), b.chartAreaSet._axes.push(d));
|
|
d.initSizeMetrics();
|
|
d.possibleKeys = Pz(e);
|
|
d.resetMetricsData();
|
|
d.initFP();
|
|
d.options(c, !1);
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
c.prototype.getFormatInfo = function (a, c) {
|
|
var b = !!c,
|
|
d = b ? "_formatInfo" : "_formatInfoData";
|
|
if (!this[d] || t(a)) {
|
|
var g = {},
|
|
h = this.currentOptions,
|
|
k = this.dataType,
|
|
l = 0,
|
|
m = !1;
|
|
c && ((m = c.split(" ")), (c = m[0]), (m = "first" === m[1]));
|
|
g.fStr = h.formatString;
|
|
g.culture = h.cultureName || this.chart.currentOptions.defaultCultureName || "en-US";
|
|
g.fStr
|
|
? ((g.fStrStrict = !0), (g.precision = this.dataInfo.precision))
|
|
: "number" === k
|
|
? (!1 !== this.options("defaultTick.enabled") && this.tickPositions && this.tickPositions.all.length && (l = Xf(Nz(this.tickPositions.all))),
|
|
(c = void 0),
|
|
!b && t((c = this.dataInfo.precision)) && ((c = Math.min(c, 3)), (c = Math.max(c, l)), (g.fStr = "n" + c)))
|
|
: "time" === k &&
|
|
((g.fStr = t(a) ? { year: "yyyy", month: "MMM", day: "d", hour: "t", minute: "t", second: "T", millisecond: "fff" }[Mk(a)] : "d"),
|
|
(g.fStr = this._autoTimeFormats[c] || g.fStr),
|
|
"major" === c && m ? (g.fStr = this._autoTimeFormats.majorFirst) : "minor" === c && m && (g.fStr = this._autoTimeFormats.minorFirst));
|
|
g.isTime = "time" === k;
|
|
!g.fStr || (g.isTime && t(a)) || (this[d] = g);
|
|
}
|
|
return g || this[d];
|
|
};
|
|
c.prototype.format = function (a, c) {
|
|
var b = this;
|
|
c = b.getFormatInfo(a, (void 0 === c ? { tickType: null } : c).tickType);
|
|
var d = function (a) {
|
|
return t(a) && a.toFixed && -1 < a && b.catList.length > a ? b.catList[a] : "";
|
|
};
|
|
if ("category" === b.type) {
|
|
if (t(a)) {
|
|
if (a.pop && 2 === a.length && 0 === a[0] % 0.5 && 0 === a[1] % 0.5)
|
|
if (1 === la(a[0], a[1])) a = na(Wf(a));
|
|
else return (a = sa(a)), hb([a[0] + 0.5, a[1] - 0.5], d);
|
|
if ((d = d(a))) return d;
|
|
}
|
|
} else {
|
|
if ("time" === b.type) return (c = c.fStr), b.formatter("object" === typeof c ? c : void 0).formatDate(new Date(a), c);
|
|
b.isStackedFull() && (a *= 100);
|
|
}
|
|
return b.formatter().formatNumber(a, c.fStr);
|
|
};
|
|
c.prototype.formatter = function (a) {
|
|
if (a) return new Ng(this.currentOptions.cultureName || "en-US", a);
|
|
this._formatter || (this._formatter = new Ng(this.currentOptions.cultureName || "en-US", {}));
|
|
return this._formatter;
|
|
};
|
|
c.prototype.init = function () {
|
|
for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c];
|
|
c = G(a, 2);
|
|
a = c[0];
|
|
c = c[1];
|
|
"chartArea" === a.kind && (this.chartArea = a);
|
|
this.prefix = c;
|
|
this.defaultContextOptions = C(this.chart, "typeContextOptions.axes." + c) || {};
|
|
var e = a.ctManager || a.ctm;
|
|
z(a.isHoriz, e && ("horizontal" === e.settingVal("chartType") || "horizontal" === e.settingVal("linearGaugeType"))) ? (this.isHoriz = "y" === c ? !0 : !1) : "x" === c && (this.isHoriz = !0);
|
|
this.isRadial = !1;
|
|
this.updateOptions = { animation: this.chart.options("animation") };
|
|
this.defaultMutable = !0;
|
|
};
|
|
c.prototype.initFP = function () {
|
|
var a = this;
|
|
a.ticks = Xa(
|
|
wb,
|
|
function () {
|
|
return a._ticks;
|
|
},
|
|
function () {
|
|
return 0;
|
|
},
|
|
{
|
|
push: function (b, c) {
|
|
a.userOptions.customTicks = a.userOptions.customTicks || [];
|
|
a.userOptions.customTicks.push(b);
|
|
a.setOptions();
|
|
!1 !== c && a.render(void 0, c).renderOnCa(c);
|
|
},
|
|
}
|
|
);
|
|
a.markers = Xa(
|
|
wb,
|
|
function () {
|
|
return a._markers;
|
|
},
|
|
function () {
|
|
return 0;
|
|
},
|
|
{
|
|
push: function (b, c) {
|
|
Qz(a, b, c);
|
|
!1 !== c && a.renderOnCa(c);
|
|
a.chart.chartAreaSet.reflow(c);
|
|
},
|
|
}
|
|
);
|
|
};
|
|
c.prototype.normalizeOptions = function (b) {
|
|
var c, e;
|
|
b = a.prototype.normalizeOptions.call(this, b);
|
|
"undefined" !== (e = I((c = N(b, ["scale", "range"])))) && "array" === e && ("time" === b.scale.type && (O(c[0]) && (c[0] = Gi(c[0])), O(c[1]) && (c[1] = Gi(c[1]))), Z(b, "scale.range", { min: c[0], max: c[1] }));
|
|
t(N(b, ["scale", "invert"])) && Z(b, "scale.invert", !0 === N(b, ["scale", "invert"]));
|
|
w(b.markers, zb);
|
|
b.customTicks &&
|
|
(b.customTicks = B(b.customTicks, function (a, b) {
|
|
if ("number" === typeof a) return { value: a };
|
|
a._lI = b;
|
|
return a;
|
|
}));
|
|
return b;
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
var a = this.chart.options("defaultCultureName");
|
|
this.defaultContextOptions.cultureName = a || "en-US";
|
|
a = uD(this);
|
|
var c = this.chart.currentOptions.defaultAxis;
|
|
c && A(a, c);
|
|
return this.defaultContextOptions ? A(a, this.defaultContextOptions || {}) : a;
|
|
};
|
|
c.prototype.dependentOptions = function () {
|
|
return [
|
|
{
|
|
option: ["line.color", "line.width", "line.breaks"],
|
|
check: function (a) {
|
|
return a;
|
|
},
|
|
dependent: "line.visible",
|
|
value: !0,
|
|
},
|
|
];
|
|
};
|
|
c.prototype.options = function (a, c) {
|
|
var b = this.chart,
|
|
d = b.currentOptions.defaultAxis || {},
|
|
g = this.optionsGetter(a);
|
|
if ("NotGetter" !== g) return g;
|
|
a = A({}, a);
|
|
a = this.normalizeOptions(a);
|
|
this.invalidate();
|
|
g = (g = a.orientation) && g !== this.userOptions.orientation;
|
|
var h = pa(a);
|
|
0 < gc(h, sD).length &&
|
|
w(this.serList, function (a) {
|
|
return a.seriesDirty.all(!0);
|
|
});
|
|
A(this.userOptions, a);
|
|
this.setOptions();
|
|
t((h = this.options("visible"))) && (this.isVisible = h);
|
|
this.currentOptions.staticDraggable && (this._isDragHost = !0);
|
|
a.events && (h = a.events.setRange) && this.events.setRange.on(h);
|
|
(a.defaultTick || a.defaultMinorTick) &&
|
|
this.ticks().each(function (b) {
|
|
A(b.defMinorTickOptions, a.defaultTick, a.defaultMinorTick);
|
|
b.options({}, !1);
|
|
});
|
|
g && this.isAdded && this.resetVisuals();
|
|
g = this.rootVisuals;
|
|
(a.label || d.label) && g && g.label && g.label.options(this.currentOptions.label);
|
|
t(a.caOffset) && ((d = this.getParentPanel()), (g = this.rootPanel.parent) && g !== d && ((this.parentLayoutItem = d || this.renderer), this.rootPanel.add(d), this.applyCaOffset()));
|
|
if (!1 !== c) {
|
|
c = this.normalizeUpdateOpt({ animation: b.currentOptions.animation }, c);
|
|
this.chartArea.invalidate();
|
|
this.setRange();
|
|
b.redraw(c);
|
|
var k = !0;
|
|
}
|
|
b.triggerOptionsApplied("axis", this);
|
|
!k && this.afterUpdate(c);
|
|
return this;
|
|
};
|
|
c.prototype.getParentPanel = function (a) {
|
|
a = a || this.rootPanel.parent;
|
|
return t(this.currentOptions.caOffset) && !1 !== this.isVisible && a && a instanceof Tg ? a.parent : a;
|
|
};
|
|
c.prototype.invalidate = function () {
|
|
this._formatter = this._formatInfoData = this._formatInfo = void 0;
|
|
this.setOptions();
|
|
return this;
|
|
};
|
|
c.prototype.getRange = function () {
|
|
var a = this.range;
|
|
return { min: a.min, max: a.max, dataMin: this.min, dataMax: this.max };
|
|
};
|
|
c.prototype.getCategories = function () {
|
|
return "category" === this.type ? (this.catList ? this.catList.slice(0) : []) : void 0;
|
|
};
|
|
c.prototype.syncLegend = function () {
|
|
w(this._markers, function (a) {
|
|
a.syncLegendEntry();
|
|
});
|
|
};
|
|
c.prototype.setData = function (a) {
|
|
void 0 === a && (a = !1);
|
|
var b = this,
|
|
c = b.prefix,
|
|
f = b.chartArea,
|
|
g = b.currentOptions,
|
|
h = C(g, "scale.syncWith") || "",
|
|
k = f.isZoomLive(),
|
|
l = [],
|
|
m = 0,
|
|
n = [],
|
|
p = f.ctManager,
|
|
q = p.isType("heatmap") || p.isType("calendar");
|
|
b.isHeatmap = q;
|
|
p = b.chart.options("axisToZoom");
|
|
var r = f.getZoomAxes()[0],
|
|
u = "y" === c && r && (!p || -1 === p.indexOf("y")) && ((r && r.isZoomed) || f.axes("x").isZoomed);
|
|
b.options("type");
|
|
if (this._isDragHost) return this;
|
|
f = b.dataInfo.serColl = b.getSeriesColl(function (a) {
|
|
return a.isVisible;
|
|
});
|
|
if ("map" === b.options("type")) {
|
|
var x = !0;
|
|
f.each(function (a) {
|
|
x && "map" !== a.type && (x = !1);
|
|
});
|
|
f = b.dataInfo.serColl = f.filter(function (a) {
|
|
return "map" !== a.type;
|
|
});
|
|
if (x) return (b.mapsOnly = !0), this;
|
|
}
|
|
f.each(function (a) {
|
|
return a.seriesDirty.pointIndex() && a.setDataInfo();
|
|
});
|
|
var v = [];
|
|
if (b.applyAxisSync(h, f)) return this;
|
|
var y = b.possibleKeys.slice(0);
|
|
b.isStackedFull() && y.splice(y.indexOf("y"), 1);
|
|
f.each(function (a) {
|
|
n.push.apply(n, H(gc(a.indexer.getKeys(), y)));
|
|
});
|
|
if (!n.length)
|
|
if ((g = N(g, ["scale", "range"])) && "none" !== h) b.data = g.slice ? g.slice(0) : [g.min, g.max];
|
|
else return (b.noData = !0), this;
|
|
b.noData = !1;
|
|
b.usedDataKeys = $a(n);
|
|
var t = !0;
|
|
b.serList = f.each(function (a) {
|
|
var c = a.indexer,
|
|
d;
|
|
v.push(a.type);
|
|
if (u && a.xAxis.isZoomed) {
|
|
var e = a.xAxis.range;
|
|
e = [e.min, e.max];
|
|
if (a.info.labelTextInfo.xNotSorted) {
|
|
for (var f = c.data.x, g = c.data.y, h = (d = void 0), n = void 0, p = void 0, r = [], x = 0, y = f.length; x < y; x++) {
|
|
var D = f[x];
|
|
if (void 0 === d || (D > e[0] && D < d)) (d = D), (r[0] = x);
|
|
if (void 0 === h || (D < e[1] && D > h)) (h = D), (r[1] = x);
|
|
D < e[1] && D > e[0] && ((D = g[x]), (void 0 === n || n < D) && (n = D), (void 0 === p || p > D) && (p = D));
|
|
}
|
|
f = [p, n];
|
|
} else
|
|
(r = [c.findInterpolatedInfo("x", e[0]), c.findInterpolatedInfo("x", e[1])]),
|
|
(r = [r[0].i + 1, r[1].i]),
|
|
-1 === r[0] && -1 === r[1]
|
|
? (r = void 0)
|
|
: (-1 === r[1] ? (r = [r[0]]) : -1 === r[0] && (r[0] = 0), 2 === r.length && (r[1]++, (r[1] = ua(r[1], r[0] + 1, c.lengths.x - 1))), (f = [a.yAt(e[0]), a.yAt(e[1])]));
|
|
}
|
|
x = 0;
|
|
for (e = b.usedDataKeys.length; x < e; x++)
|
|
if (
|
|
((g = b.usedDataKeys[x]),
|
|
"svv" === g || "svxv" === g ? (d = c.dataFlat[g]) : ((d = c.getKey(g)), r && ((d = d.slice.apply(d, H(r))), "y" === g && (d.splice(0, 0, f[0]), d.push(f[1])))),
|
|
q && (d = $a(d)),
|
|
d && d.length)
|
|
) {
|
|
h = l.length;
|
|
n = 0;
|
|
for (p = d.length; n < p; n++) (y = d[n]), t && l[n + h - 1] > y && (t = !1), l.push(y);
|
|
k ? (m = b.dataInfo.precision) : (d = c.uniqTypes[g]) && -1 < d.indexOf("number") && (m = Math.max(c.countDecimals(g), m));
|
|
}
|
|
b.isHeatmap && (l = $a(l));
|
|
w = w || a.info.labelTextInfo.xNotSorted || !1 === a.info.xIsSorted || !1 === t;
|
|
}).items;
|
|
var w = "x" !== c ? !0 : w;
|
|
b.dataInfo = { precision: m, seriesTypesUnique: $a(v), serColl: f };
|
|
b.data = l;
|
|
Af(l, function (a) {
|
|
return lc(a) || Ha(a);
|
|
});
|
|
l && "object" === typeof l[0]
|
|
? ((c = B(l, function (a) {
|
|
return a.getTime();
|
|
})),
|
|
(b.dataSortedUniq = B(ad(w ? sa(c) : c), function (a) {
|
|
return new Date(a);
|
|
})))
|
|
: (b.dataSortedUniq = ad(w ? sa(l) : l));
|
|
b.invalidate();
|
|
!a && b.detectType();
|
|
return this;
|
|
};
|
|
c.prototype.applyAxisSync = function (a, c) {
|
|
var b = this;
|
|
a || (a = Mz(this, c));
|
|
if ((a = this.syncAxis = this.ciManager.exists(a))) {
|
|
this.min = a.min;
|
|
this.max = a.max;
|
|
this.range = qa(a.range);
|
|
this.type = a.type;
|
|
this.dataType = a.dataType;
|
|
this.usedDataKeys = a.usedDataKeys.slice(0);
|
|
this.catList = a.catList.slice(0);
|
|
this._toPosition = a._toPosition;
|
|
var d = C(a.currentOptions, "scale.type");
|
|
d && !C(this.userOptions, "scale.type") && ((this.currentOptions.scale = this.currentOptions.scale || {}), (this.currentOptions.scale.type = d));
|
|
"category" === a.type &&
|
|
(c.each(function (a) {
|
|
a.reIndexStringVals(b);
|
|
}),
|
|
c.items.length || ((this.dataPositions = qa(a.dataPositions)), this.resetTicksLabels()));
|
|
this.setViewState(!0);
|
|
return !0;
|
|
}
|
|
};
|
|
c.prototype.detectType = function () {
|
|
var a = this,
|
|
c = this,
|
|
e = [],
|
|
f,
|
|
g = [],
|
|
h = c.usedDataKeys;
|
|
if (c.mapsOnly) return (c.dataType = Zm("number")), this;
|
|
var k = c.getSeriesColl().items;
|
|
w(k, function (a) {
|
|
w(h, function (b) {
|
|
(f = a.indexer.uniqTypes[b]) && e.push.apply(e, H(f));
|
|
f && "string" === f[0]
|
|
? (g.push(a.indexer.getKey(b)), (a._catCache = a._catCache || []), (a._catCache[b] = a.indexer.getKey(b)))
|
|
: "category" === c.type && f && "number" === f[0] && C(a._catCache, NaN + b + ".length") && g.push(a._catCache[b].slice(0));
|
|
});
|
|
});
|
|
g = B(g, $a);
|
|
e = $a(e);
|
|
var l = e[0];
|
|
1 < e.length || (c.dataType = Zm(l));
|
|
l = C(c.userOptions, "scale.type");
|
|
l = (this.checkTypeCompatability(l, c.dataType) && l) || C(c.contextOptions(), "scale.type");
|
|
if (-1 < e.indexOf("string")) {
|
|
if ("time" === l) (c.dataType = c.type = "time"), (c._toPosition = Gi);
|
|
else if ("map" !== c.chart.ctManager.settingVal("chartType")) {
|
|
c.dataType = Zm((c.type = "category"));
|
|
l = By(g);
|
|
c.catList.length && l.length && c.catList.join("") !== l.join("") && c.resetTicksLabels();
|
|
var m = (c.catList = l);
|
|
c.childAxes &&
|
|
w(c.childAxes, function (a) {
|
|
return a.resetTicksLabels();
|
|
});
|
|
c._toPosition = function (a) {
|
|
return m.indexOf(a);
|
|
};
|
|
}
|
|
w(k, function (b) {
|
|
b.reIndexStringVals(a);
|
|
});
|
|
c.setData(!0);
|
|
} else -1 < e.indexOf("date") ? ((c.dataType = c.type = "time"), (c._toPosition = Gi)) : "time" === l && (c.dataType = c.type = "time");
|
|
c.originValue = "category" !== c.type && "time" !== c.type ? 0 : void 0;
|
|
this._duV = void 0;
|
|
return this;
|
|
};
|
|
c.prototype.checkTypeCompatability = function (a, c) {
|
|
var b = !a || !c || this._incompatableTypes[a] !== c;
|
|
!b && Ma.emit("warning", this.id, "incompatableAxisTypeOptions", { container: this.chart.getWrapper(), data: [a, c] });
|
|
return b;
|
|
};
|
|
c.prototype.getSeriesColl = function (a) {
|
|
var b = this,
|
|
c = b.parentAxis || b;
|
|
if (a) {
|
|
if ("function" === typeof a)
|
|
return b.chart.series(function (d) {
|
|
var e;
|
|
return (null === (e = d[b.prefix + "Axis"]) || void 0 === e ? void 0 : e.id) === c.id && a(d);
|
|
});
|
|
a[b.prefix + "Axis"] = { id: c.id };
|
|
return b.chart.series(a);
|
|
}
|
|
return b.chart.series(function (a) {
|
|
var d;
|
|
return (null === (d = a[b.prefix + "Axis"]) || void 0 === d ? void 0 : d.id) === c.id;
|
|
});
|
|
};
|
|
c.prototype.setRange = function (a, c) {
|
|
function b(a) {
|
|
var b = [],
|
|
c = k.markers;
|
|
a = a.getCustomTicks();
|
|
var d = [];
|
|
c && b.push.apply(b, H(c));
|
|
a && b.push.apply(b, H(a));
|
|
w(b, function (a) {
|
|
a.includeInScale && ((a = r(a.value)), a.pop ? d.push.apply(d, H(a)) : d.push(a));
|
|
});
|
|
d.length && ((b = [Math.min.apply(Math, H(d)), Math.max.apply(Math, H(d))]), (v = Math.max(v, b[1])), (x = Math.min(x, b[0])));
|
|
}
|
|
var d = this,
|
|
g = this,
|
|
h = g.syncAxis,
|
|
k = g.currentOptions,
|
|
l = g.currentOptions.scale,
|
|
m,
|
|
n = { axOptions: k, axLength: g._sizeMetrics.length },
|
|
p = g.range,
|
|
q = A({}, g.range),
|
|
r = g.toPosition;
|
|
if (g.noData || g._isDragHost || g.mapsOnly) return this;
|
|
p = function (a) {
|
|
x = g.min = a[0];
|
|
v = g.max = a[1];
|
|
};
|
|
var u = g.dataSortedUniq;
|
|
u = [u[0], u[u.length - 1]];
|
|
h ? p([h.min, h.max]) : ("time" == g.dataType ? p(B(u, g._toPosition)) : p(u), b(this));
|
|
x === v && ((x -= 0.2), (v += 0.2));
|
|
!h &&
|
|
zc(
|
|
n,
|
|
g.userOptions,
|
|
function (a, b) {
|
|
t(b.min) && (a.userMin = r(b.min) - 0.2);
|
|
t(b.max) && (a.userMax = r(b.max) + 0.2);
|
|
},
|
|
"scale.range"
|
|
);
|
|
zc(
|
|
n,
|
|
g.userOptions,
|
|
function (a, b) {
|
|
"object" == typeof b && "time" !== g.dataType && "time" !== g.type ? Ma.emit("warning", g.id, "objInterval", { data: [g.prefix], container: d.chart.getWrapper() }) : (a.userInterval = b);
|
|
},
|
|
"scale.interval"
|
|
);
|
|
g.snapToZero = !1;
|
|
l.includeOrigin ? (n.snapZero = !0) : "time" !== g.type && ((p = g.chartArea), "y" === g.prefix && (p.chartArea || p).series({ info: { type: { snapToZero: !0 } } }).items.length && (n.snapZero = !0));
|
|
g.snapToZero = n.snapZero;
|
|
!h && g.setAutoScaleBreaks();
|
|
n.breaks = h ? h.breaks : g.breaks;
|
|
!h &&
|
|
zc(
|
|
n,
|
|
g.currentOptions,
|
|
function (a, b) {
|
|
"array" === I(b) && (a.breaks = b);
|
|
},
|
|
"scale.breaks"
|
|
);
|
|
n.minInterval = C(k, "scale.minInterval");
|
|
n.userMinorInterval = l.minorInterval;
|
|
if (g.isZoomed) {
|
|
var x = g.zoomRange[0],
|
|
v = g.zoomRange[1];
|
|
n.userMin = x;
|
|
n.userMax = v;
|
|
p = g.range = Dg(x, v, 8, n);
|
|
p.min = x;
|
|
p.max = v;
|
|
} else
|
|
(h = C(g.userOptions, "scale.range.min")),
|
|
(l = C(g.userOptions, "scale.range.max")),
|
|
(p = z(h, x)),
|
|
(u = z(l, v)),
|
|
g.isStackedFull()
|
|
? ((p = g.range = Dg(x, v, 10, n)), (p.min = 0), (p.max = 1))
|
|
: "z" !== g.prefix || n.snapZero
|
|
? ((p = g.range = Dg(p, u, 8, n)), "time" === g.type && ((p.min = x), (p.max = v)))
|
|
: (p = g.range = { min: g.min, max: g.max }),
|
|
t(h) && (p.min = r(h)),
|
|
t(l) && (p.max = r(l)),
|
|
(g.unZoomedRange = { min: p.min, max: p.max });
|
|
t((m = C(k, "scale.minorInterval"))) && "number" === typeof m && (p.minorInterval = m);
|
|
t((m = C(k, "scale.interval"))) && m && "auto" !== m && (p.interval = m);
|
|
t((m = C(k, "scale.zoomLimit"))) ? (g.zoomLimit = m) : (g.zoomLimit = g.viewState ? Math.max(g.linToVal(5) - g.linToVal(0), 0.001 * (g.max - g.min)) : 0.05 * (p.max - p.min));
|
|
g.loadDPs().adjustRange().setViewState(a, c);
|
|
(q.min === p.min && q.max === p.max) ||
|
|
g.getSeriesColl({ isVisible: !0 }).each(function (a) {
|
|
return a.seriesDirty.pos(!0);
|
|
});
|
|
return this;
|
|
};
|
|
c.prototype.removeMarker = function (a) {
|
|
var b = this;
|
|
a = this._markers.indexOf(a);
|
|
Af(this.currentOptions.markers, function (a) {
|
|
return a.id === b.id;
|
|
});
|
|
this._markers.splice(a, 1);
|
|
};
|
|
c.prototype.adjustRange = function () {
|
|
var a = this,
|
|
c = a.snapToZero,
|
|
e = a.min,
|
|
f = a.max,
|
|
g = a.isHoriz !== a.chartArea.isHoriz && "x" === a.prefix,
|
|
h = 0.5,
|
|
k = function (b) {
|
|
return N(a.userOptions, ["scale", "range", b]);
|
|
},
|
|
l = k("min"),
|
|
m = k("max"),
|
|
n = k("padding");
|
|
if (!a.syncAxis && !a.isZoomed) {
|
|
k = a.range;
|
|
if (a.isHeatmap) (g = 0.5), "category" !== a.type && (g = a.shortestValDistance / 2), (k.min = t(l) ? a.normUserValue(l) : e - g), (k.max = t(m) ? a.normUserValue(m) : f + g);
|
|
else if (t(n))
|
|
(g = 0),
|
|
nb(n) ? (g = la(f, e) * n) : "time" === a.type && n.unit && (g = Nh(n).unitRange),
|
|
(e = [e - g, f + g]),
|
|
c && (e = [Math.min(e[0], 0), Math.max(e[1], 0)]),
|
|
(k.min = t(l) ? a.normUserValue(l) : e[0]),
|
|
(k.max = t(m) ? a.normUserValue(m) : e[1]);
|
|
else {
|
|
c = a.getSeriesColl(function (a) {
|
|
return a.isVisible;
|
|
});
|
|
var p = c.filter(function (a) {
|
|
return a.info && a.info.type.drawRect;
|
|
});
|
|
c = c.filter(function (a) {
|
|
return a.info && "bubble" === a.info.type.seriesType;
|
|
});
|
|
n = 0 < p.items.length;
|
|
var q = 0 < c.items.length;
|
|
if (n || q) h += a.options("spacingPercentage") / 2.2;
|
|
if ("category" === a.type) (k.min = t(l) ? l : e - h), (k.max = t(m) ? m : f + h);
|
|
else {
|
|
if (g) {
|
|
var r = void 0,
|
|
u = [],
|
|
x = 0;
|
|
p.each(function (a, b) {
|
|
a.indexer.calculations.x && (u.push(a.indexer.min("x"), a.indexer.max("x")), (x = Math.max(x, a.indexer.data.x.length)));
|
|
});
|
|
var v = u[0] === e && u[1] === f;
|
|
if (p.items.length && u.length) {
|
|
var y = a.getShortestDistPerc();
|
|
r = [Math.min.apply(Math, H(u)), Math.max.apply(Math, H(u))];
|
|
y = (la(f, e) || 0) / Math.max(x - 1, 1);
|
|
y *= h;
|
|
v ? (0 === y && (y = h), (k.min = r[0] - y), (k.max = r[1] + y)) : ((k.min = Math.min(r[0] - y, k.min)), (k.max = Math.max(r[1] + y, k.max)));
|
|
y = !0;
|
|
}
|
|
u = [];
|
|
x = 0;
|
|
c.each(function (a, b) {
|
|
a.indexer.calculations.x && (u.push(a.indexer.min("x"), a.indexer.max("x")), (x = Math.max(x, a.indexer.data.x.length)));
|
|
});
|
|
h = 0.1;
|
|
p = u[0] === e && u[1] === f;
|
|
c.items.length &&
|
|
u.length &&
|
|
((r = [Math.min.apply(Math, H(u)), Math.max.apply(Math, H(u))]),
|
|
(h *= r[1] - r[0]),
|
|
p ? ((k.min = r[0] - h), (k.max = r[1] + h)) : ((k.min = Math.min(r[0] - h, k.min)), (k.max = Math.max(r[1] + h, k.max))),
|
|
(y = !0));
|
|
}
|
|
k.min = t(l) ? a.normUserValue(l) : k.min;
|
|
k.max = t(m) ? a.normUserValue(m) : k.max;
|
|
y || "category" === a.type || (!g && "time" !== a.type) || ((g = n ? 0.05 : q ? 0.1 : 0.02), (g *= la(k.max, k.min)), t(l) || (k.min = e - g), t(m) || (k.max = f + g));
|
|
}
|
|
}
|
|
a.unZoomedRange = { min: k.min, max: k.max };
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.setAutoScaleBreaks = function () {
|
|
this.autoScaleBreaks();
|
|
return this;
|
|
};
|
|
c.prototype.autoScaleBreaks = function () {
|
|
function a(a) {
|
|
for (var b = [], c = 0, d = a.length; c < d; c++) c && b.push([a[c - 1], a[c], a[c] - a[c - 1]]);
|
|
return b;
|
|
}
|
|
function c(a, b) {
|
|
function c(a, b) {
|
|
return a[2] - b[2];
|
|
}
|
|
function d(a, b) {
|
|
return b[2] - a[2];
|
|
}
|
|
a.sort(b ? c : d);
|
|
}
|
|
function e(a, b) {
|
|
function c(a, b) {
|
|
return a[0] - b[0];
|
|
}
|
|
function d(a, b) {
|
|
return b[0] - a[0];
|
|
}
|
|
void 0 === b && (b = !0);
|
|
a.sort(b ? c : d);
|
|
}
|
|
function f(a) {
|
|
for (var b = [], c = 0, d = a.length; c < d; c++) b.push(a[c][0]), b.push(a[c][1]);
|
|
return [Math.min.apply(null, b), Math.max.apply(null, b)];
|
|
}
|
|
var g = this.dataSortedUniq,
|
|
h = [this.min, this.max],
|
|
k = this.max - this.min,
|
|
l = 0,
|
|
m = 0,
|
|
n = 100,
|
|
p = [],
|
|
q = C(this.userOptions, "scale.breaks.limit"),
|
|
r = C(this.userOptions, "scale.breaks"),
|
|
u = [];
|
|
if (q) {
|
|
if ((r = C(this.currentOptions, "markers"))) {
|
|
k = 0;
|
|
for (var x = r.length; k < x; k++) {
|
|
var v = r[k],
|
|
t = void 0;
|
|
"array" === I(v.value) && 1 < v.value.length ? ((t = this.toPosition(v.value[1])), g.push(t)) : (t = this.toPosition(v.value));
|
|
(Kb(h, t) || v.includeInScale) && g.push(t);
|
|
}
|
|
g.sort(function (a, b) {
|
|
return a < b ? -1 : a > b ? 1 : 0;
|
|
});
|
|
k = (g[g.length - 1] > this.max ? g[g.length - 1] : this.max) - (g[0] < this.min ? g[0] : this.min);
|
|
}
|
|
h = a(g);
|
|
c(h, !0);
|
|
for (r = 0; r < h.length; r++) (x = h[r][2]), (g = (x / k) * 100), x < 0.08 * k && (g < n && (n = g), l++, (m += x));
|
|
m /= l;
|
|
if (0 < l) {
|
|
g = 0.08 / (n / 100);
|
|
g = (k / g) * (g - 1);
|
|
v = 3 > l ? 35 : 10 > l ? 30 : 15 > l ? 25 : 20 > l ? 20 : 15;
|
|
if (7 > n && 1 <= l) {
|
|
r = 0;
|
|
for (l = h.length; r < l; r++) (t = h[r]), (x = t[2]), x > 10 * m && (x / k) * 100 > v && p.push(t);
|
|
c(p, !1);
|
|
m = [];
|
|
l = 0;
|
|
for (h = p.length; l < h; l++)
|
|
if (l < q) m.push(p[l]);
|
|
else break;
|
|
p = m;
|
|
q = l = 0;
|
|
for (m = p.length; q < m; q++) (h = p[q]), l < g ? (l += h[2]) : (p.splice(q--, 1), (m = p.length));
|
|
if (p.length)
|
|
for (q = f(p), q = q[1] - q[0], q = k - (q - -(0.2 * (k - q))), g = l = void 0, g = 8 < (k / q) * n ? (l = 0.4 * q) : (l = 0.2 * q), 1 < p.length && (l = g = 2 * l), q = 0, m = p.length; q < m; q++)
|
|
(n = p[q]),
|
|
"time" === this.type &&
|
|
((k = function (a) {
|
|
return a instanceof Date ? a.getTime() : a;
|
|
}),
|
|
(n[0] = k(n[0])),
|
|
(n[1] = k(n[1]))),
|
|
n[0] + g > n[1] - l ? ((k = 0.2 * n[2]), (n[0] += k), (n[1] -= k)) : ((n[0] += g), (n[1] -= l)),
|
|
u.push(n);
|
|
}
|
|
e(u);
|
|
this.breaks = u;
|
|
} else this.breaks = [];
|
|
} else r && (this.breaks = Wr(this, r));
|
|
};
|
|
c.prototype.loadDPs = function () {
|
|
var a = this,
|
|
c = this,
|
|
e = c.chartArea;
|
|
if ("chartArea" !== e.kind || !e.isZoomLive()) {
|
|
var f = this.dataPositions;
|
|
f.reset();
|
|
var g = function (a) {
|
|
return a;
|
|
};
|
|
w(this.serList, function (b) {
|
|
if (b.isVisible) {
|
|
var d = b.indexer.getKey(a.prefix);
|
|
d = d.length ? d : c.data.slice(0);
|
|
var e = b.indexer.uniqTypes[a.prefix];
|
|
e &&
|
|
"date" === e[0] &&
|
|
(g = function (a) {
|
|
return a.getTime();
|
|
});
|
|
e = 0;
|
|
for (var h = d.length; e < h; e++) {
|
|
var n = f.add(g(d[e])),
|
|
p = b.info.type;
|
|
p.clusters && (n.clusters[p.seriesType] = (n.clusters[p.seriesType] || 0) + 1);
|
|
}
|
|
}
|
|
});
|
|
this.loadDPs_shortestDistance();
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.normUserValue = function (a) {
|
|
var b = this.toPosition(a);
|
|
this.isRadial || "category" !== this.type || "string" !== typeof a || (b = [b - 0.5, b + 0.5]);
|
|
return b;
|
|
};
|
|
c.prototype.getShortestDistPerc = function () {
|
|
return this.syncAxis ? this.syncAxis.getShortestDistPerc() : t(this.shortestValDistance) ? this.shortestValDistance / (this.range.max - this.range.min) : 1;
|
|
};
|
|
c.prototype.setTickPositions = function () {
|
|
var a = this,
|
|
c = a.currentOptions,
|
|
e = c.scale || {},
|
|
f = !1 !== C(c, "defaultTick.enabled"),
|
|
g = !1 !== C(c, "defaultMinorTick.enabled"),
|
|
h = a.range,
|
|
k = [];
|
|
c = [];
|
|
var l,
|
|
m = e.interval,
|
|
n = e.minorInterval,
|
|
p = a.getPointTicks(),
|
|
q = a.getCustomTicks();
|
|
a.pointTicks = {
|
|
values: p.map(function (a) {
|
|
return a.value;
|
|
}),
|
|
configs: p.map(function (a) {
|
|
return a.config;
|
|
}),
|
|
points: p.map(function (a) {
|
|
return a.point;
|
|
}),
|
|
};
|
|
var r = e.type && 0 === e.type.toLowerCase().indexOf("log"),
|
|
u = e.logBase || 10;
|
|
(m && "auto" !== m) || (m = void 0);
|
|
var x = function (b) {
|
|
var c = [];
|
|
w(b, function (b) {
|
|
a.valVisible(b) && c.push(b);
|
|
});
|
|
return c;
|
|
};
|
|
if (r && !t(m))
|
|
(f = function (b, c, d, e) {
|
|
void 0 === e && (e = 100);
|
|
var f = 0,
|
|
m = g && "auto" === n;
|
|
m && (l = l || []);
|
|
for (
|
|
var p = function () {
|
|
v = parseFloat(Math.pow(u, b).toFixed(7)) * (d ? -1 : 1);
|
|
a.valVisible(v) && k.push(v);
|
|
b += c;
|
|
if (m) {
|
|
var g = v,
|
|
n = parseFloat(Math.pow(u, b).toFixed(7));
|
|
ob(10, function (b) {
|
|
b && (-1 === k.indexOf(g) && Math.abs(g) < Math.abs(n) && a.valVisible(g) && l.push(g), (g += v));
|
|
});
|
|
}
|
|
q = f++ > e || v > h.max || v < h.min;
|
|
};
|
|
!q;
|
|
|
|
)
|
|
p();
|
|
if (g && "auto" === n)
|
|
for (b = h.log[0]; !q; ) {
|
|
-1 === k.indexOf(v) && a.valVisible(v) && l.push(v);
|
|
var q = !0;
|
|
}
|
|
}),
|
|
0 === h.min
|
|
? (f(Math.ceil(h.log[1]), -1, !1, 3), (h.logMin = Math.log(k[k.length - 1]) / Math.log(u)), a.valVisible(0) && k.push(0))
|
|
: 0 === h.max
|
|
? (a.valVisible(0) && k.push(0), f(Math.ceil(h.log[0]), -1, !0, 3), (h.logMax = Math.log(Math.abs(k[k.length - 1])) / Math.log(u)))
|
|
: 0 < h.min
|
|
? f(Math.floor(h.log[0]), 1, !1)
|
|
: 0 > h.max
|
|
? f(Math.floor(h.log[1]), 1, !0)
|
|
: (-1 < h.min && (f(Math.ceil(h.log[0]), -1, !0, 1), (h.logMin = Math.log(Math.abs(k[k.length - 1])) / Math.log(u))),
|
|
1 > h.max && (f(Math.ceil(h.log[1]), -1, !1, 1), (h.logMax = Math.log(k[k.length - 1]) / Math.log(u))),
|
|
-1 >= h.min && f(h.logMax || 0, 1, !0),
|
|
a.valVisible(0) && k.push(0),
|
|
1 <= h.max && f(h.logMin || 0, 1, !1)),
|
|
(h.logRange = k.length - 1);
|
|
else if ("category" === a.type)
|
|
f &&
|
|
((k = x(a.dataPositions.toArray())),
|
|
a.isRadial ||
|
|
(k = k.map(function (a) {
|
|
return [a - 0.5, a + 0.5];
|
|
})));
|
|
else if ("time" === a.type) !f || m || n || e.minInterval ? (f && (k = a._getTimeTickPositions()), g && t(n) && (l = a._getTimeTickPositions(!0))) : ((f = a._getTimeTickPositionsAuto()), (k = f.major), (l = f.minor));
|
|
else {
|
|
e = m || h.interval;
|
|
m = Xf([h.min, h.max, e]);
|
|
if (f) {
|
|
var v = na(Vb.floor(h.min / e) * e, m);
|
|
f = 1;
|
|
for (r = v; v <= h.max; ) a.valVisible(v) && k.push(v), (v = na(r + e * f++, m));
|
|
}
|
|
if (g && t(h.minorInterval))
|
|
for (m = Xf([h.min, h.max, h.minorInterval]), v = na(Vb.floor(h.min / h.minorInterval) * h.minorInterval, m), l = [], f = 0, r = v; v <= h.max; )
|
|
-1 === k.indexOf(v) && a.valVisible(v) && l.push(v), (v = na(r + h.minorInterval * f++, m));
|
|
}
|
|
a.invalidate();
|
|
if (q) {
|
|
var y = [],
|
|
D = [];
|
|
f = 0;
|
|
for (e = q.length; f < e; f++)
|
|
if (((m = q[f]), "time" !== a.type || "object" !== typeof m.value || m.value.pop))
|
|
t(m.value) &&
|
|
((x = r = a.toPosition(m.value)),
|
|
a.isRadial || "category" !== a.type || ("string" === typeof m.value && (r = [r - 0.5, r + 0.5]), 2 === r.length && (x = xf(r, 0.1))),
|
|
a.valVisible(x) && (y.push(r), k.push(r)));
|
|
else for (r = Nk(m.value.pattern || m.value, a.min, a.max), x = 0; x < r.length; x++) (r[x].v = m.value), a.valVisible(r[x]) && (y.push(r[x]), k.push(r[x]));
|
|
!D.length && (D = void 0);
|
|
}
|
|
if (p && p.length)
|
|
for (f = 0, e = p.length; f < e; f++) {
|
|
m = p[f];
|
|
r = a.toPosition(m.value);
|
|
if (!a.isRadial && "category" === a.type) {
|
|
r = [r - 0.5, r + 0.5];
|
|
var E = !0;
|
|
}
|
|
a.valVisible(r) && (y.push(r), k.push(r));
|
|
}
|
|
a.tickPositions = ad(E ? k : sa(k));
|
|
c.push.apply(c, H(k));
|
|
y && ((a.tickPositions.custom = y), c.push.apply(c, H(y)));
|
|
D && ((a.tickPositions.cpPositions = D), c.push.apply(c, H(D)));
|
|
l && ((a.tickPositions.minor = l), c.push.apply(c, H(l)));
|
|
E = a.tickPositions.length === p.length && E;
|
|
a.tickPositions.all = ad(E ? c : sa(c));
|
|
return this;
|
|
};
|
|
c.prototype._getTimeTickPositions = function (a) {
|
|
var b = this.range,
|
|
c = this.options("scale." + (a ? "minorInterval" : "interval"));
|
|
(c && "auto" !== c) || (c = void 0);
|
|
var f = Nh(c || b.interval);
|
|
!c && 10 < b.range / (f.unitRange * f.count) && (f = Nh(b.range));
|
|
b.timeInterval = f;
|
|
a = Mh(f, void 0, new Date(Math.round(b.min)), new Date(Math.round(b.max)));
|
|
!c && 20 < a[0].length && ((f.multiplier = Math.floor(a[0].length / 10)), (a = Mh(f, void 0, new Date(Math.round(b.min)), new Date(Math.round(b.max)))));
|
|
this._autoTimeResult = b = { intervals: a, pair: { major: { unit: f.unit, multiplier: f.count }, minor: { unit: f.unit, multiplier: f.count } }, sigUnits: gp(a) };
|
|
this._autoTimeFormats = fp(b);
|
|
return a[0];
|
|
};
|
|
c.prototype._getTimeTickPositionsAuto = function () {
|
|
var a = this.range;
|
|
a = [new Date(Math.round(a.min)), new Date(Math.round(a.max))];
|
|
a = xw(a[0], a[1], 10, this.chartArea.isDragging && this._autoTimeResult);
|
|
var c = a.intervals;
|
|
this._autoTimeResult = a;
|
|
this._autoTimeFormats = fp(a);
|
|
return { major: c[0], minor: c[1] };
|
|
};
|
|
c.prototype.loadDPs_shortestDistance = function () {
|
|
var a = this.range;
|
|
this.shortestValDistance = this.dataPositions.getShortestRange();
|
|
this.shortestPercDistance = this.shortestValDistance / (a.max - a.min);
|
|
return this;
|
|
};
|
|
c.prototype.isLog = function () {
|
|
return Tl(this, function (a) {
|
|
return 0 === a.toLowerCase().indexOf("log");
|
|
});
|
|
};
|
|
c.prototype.isStacked = function () {
|
|
return Tl(this, function (a) {
|
|
return -1 < a.indexOf("stacked");
|
|
});
|
|
};
|
|
c.prototype.isStackedFull = function () {
|
|
return Tl(this, function (a) {
|
|
return "stackedfull" === a.toLowerCase();
|
|
});
|
|
};
|
|
c.prototype.getValToLin = function () {
|
|
return this.viewState ? this.viewState.valToLin : void 0;
|
|
};
|
|
c.prototype._getValToLin = function () {
|
|
var a = this,
|
|
c = a.range,
|
|
e = a.breaks,
|
|
f = a.isInverted(),
|
|
g = f ? [0, 1] : [1, 0];
|
|
if (e.length) {
|
|
f = a._openRanges();
|
|
var h = f.ranges,
|
|
k = f.sum;
|
|
return function (a) {
|
|
var b;
|
|
if ((b = ag(h, a))) return Y(g[0], g[1], 0, k, a - b[0] + b[2]);
|
|
if ((b = ag(e, a))) if ((b = ag(h, b[0]))) return Y(g[0], g[1], 0, k, b[2] + b[1] - b[0]);
|
|
return Y(g[0], g[1], c.min, c.max, a);
|
|
};
|
|
}
|
|
var l = a.userOptions.scale || {};
|
|
if (a.isLog()) {
|
|
var m = l.logBase || 10,
|
|
n = function (a) {
|
|
return 0 === a ? a : Math.log(Math.abs(a)) / Math.log(m);
|
|
},
|
|
p = function (a) {
|
|
var b = 0 > c.min * c.max;
|
|
if (b && -1 < c.min) var d = c.logMin - c.log[0] - 1;
|
|
else (d = 0 === c.min ? c.logMin - 1 : c.log[0]), b && (1 > c.max && (d -= c.log[1]), (d += 1));
|
|
if (b && 1 > c.max) var e = c.logMax - c.log[1] - 1;
|
|
else (e = 0 === c.max ? c.logMax - 1 : c.log[1]), b && (-1 < c.min && (e -= c.log[0]), (e += 1));
|
|
var f = c.logRange;
|
|
if (0 === a) return 0 <= c.min ? 0 : 0 >= c.max ? 1 : b && -1 > c.min && 1 > c.max ? 1 - Math.abs(e / f) : Math.abs(d / f);
|
|
if (0 > a) return b && (-1 < c.min || 1 > c.max) ? (c.log[0] - n(a)) / f : b ? (d - n(a) - 1) / f : (d - n(a)) / f;
|
|
if (0 < a) return b && (1 > c.max || -1 < c.min) ? 1 - (c.log[1] - n(a)) / f : b ? (Math.abs(d) + n(a) + 1) / f : (n(a) - d) / f;
|
|
};
|
|
return f
|
|
? function (a) {
|
|
return p(a);
|
|
}
|
|
: function (a) {
|
|
return 1 - p(a);
|
|
};
|
|
}
|
|
var q = a.fitRange,
|
|
r = c.min,
|
|
u = c.max,
|
|
x = function (a) {
|
|
return Y(g[0], g[1], r, u, q ? ua(a, r, u) : a);
|
|
};
|
|
return a.isStackedFull() && "category" === a.type
|
|
? function (b) {
|
|
var c = a._stackTranslators;
|
|
c = c ? c.forward(b) : b;
|
|
return x(t(c) ? c : b);
|
|
}
|
|
: x;
|
|
};
|
|
c.prototype._openRanges = function (a) {
|
|
var b = this.range,
|
|
c = this.isInverted(),
|
|
f = b.min,
|
|
g = b.max,
|
|
h = this.breaks;
|
|
b = [];
|
|
var k = 0,
|
|
l = 0;
|
|
h.length
|
|
? ((b = B(cg(h, [f, g]), function (a) {
|
|
var b = [a[0], a[1], l];
|
|
l += a[1] - a[0];
|
|
return b;
|
|
})),
|
|
(k = eo(b)))
|
|
: (b.push([f, g, 0]), (k = g - f));
|
|
if (a) {
|
|
var m = [];
|
|
for (a = 0; a < b.length; a++) (f = b[a]), (g = h = f[2] / k), (h = h + (f[1] - f[0]) / k + (a === b.length - 1 ? 0 : -1e-14)), m.push([c ? g : 1 - h, c ? h : 1 - g, { valRange: f }]);
|
|
}
|
|
return { ranges: b, sum: k, posRanges: m };
|
|
};
|
|
c.prototype.linToVal = function (a, c) {
|
|
return this.posToVal(this.linToPos(a), c);
|
|
};
|
|
c.prototype.posToVal = function (a, c) {
|
|
var b = this.range;
|
|
if (Sl(b)) {
|
|
var d = b.min,
|
|
g = b.max,
|
|
h = this.isInverted(),
|
|
k = [0, 1],
|
|
l = this._isDragHost ? [d, g] : h ? [d, g] : [g, d],
|
|
m = this._openRanges(!0),
|
|
n = function (a) {
|
|
return Y(l[0], l[1], k[0], k[1], a);
|
|
};
|
|
d = function (a) {
|
|
var b = ag(m.posRanges, a);
|
|
if (!b) return n(a);
|
|
var c = G(b[2].valRange, 2),
|
|
d = c[0];
|
|
c = c[1];
|
|
d = h ? [d, c] : [c, d];
|
|
return Y(d[0], d[1], b[0], b[1], a);
|
|
};
|
|
d = this.breaks.length ? d : n;
|
|
this.isLog()
|
|
? ((d = this.options("scale.logBase") || 10), (g = b.log[0]), (a = (h ? a : 1 - a) * (b.log[1] - g) + g), (b = Math.pow(d, Math.abs(a))), b < d && (b = (d * (b - 1)) / (d - 1)), (d = ce(a) * b))
|
|
: this.isStackedFull() && "category" === this.type
|
|
? ((b = this._stackTranslators), (d = d(a)), (d = b ? b.backward(d) : d))
|
|
: (d = d(a));
|
|
d = c ? ua(d, Math.min.apply(Math, H(l)), Math.max.apply(Math, H(l))) : d;
|
|
}
|
|
return d;
|
|
};
|
|
c.prototype.linToPos = function (a) {
|
|
return Y(0, 1, 0, this._sizeMetrics.length, a);
|
|
};
|
|
c.prototype.valToAngle = function (a, c) {};
|
|
c.prototype.isInBreak = function (a) {
|
|
return !!ag(this.breaks, a);
|
|
};
|
|
c.prototype.valVisible = function (a, c) {
|
|
var b = this.range,
|
|
d = [b.min, b.max];
|
|
c = t(c) ? c : !!a.pop;
|
|
var g = "category" === this.type && c ? 0.5 : 0;
|
|
return a.pop ? (this.valVisible(a[0], c) || this.valVisible(a[1], c) ? !0 : (a = Ue(d, [a[0] + g, a[1] - g])) && a.length) : a - g >= b.min && a + g <= b.max && !this.isInBreak(a);
|
|
};
|
|
c.prototype.tickVisible = function (a) {
|
|
var b = !!a.pop;
|
|
if (this.valVisible(a)) return (b = -1 < xe(this.tickPositions.all, a)) && "category" === this.type && 2 === a.length ? this.valVisible(xf(a, 0.1)) : b;
|
|
if (this.hasCalPatBreaks) {
|
|
var c = this.range;
|
|
c = [c.min, c.max];
|
|
return b ? Kb(c, a[0]) && Kb(c, a[1]) : Kb(c, a);
|
|
}
|
|
};
|
|
c.prototype.isInverted = function () {
|
|
var a = z((this.currentOptions.scale || {}).invert, !1);
|
|
("x" !== this.prefix && "sp" !== this.prefix) || this.isHoriz || !this.type || !this.type.match("category|string|time") || (a = !a);
|
|
if ("x" === this.prefix || "z" === this.prefix || "sp" === this.prefix) a = !a;
|
|
this.chartArea && this.chartArea.isHoriz && ("x" === this.prefix || "y" === this.prefix || "sp" === this.prefix) && (a = !a);
|
|
"sp" === this.prefix && (a = !a);
|
|
this.isRadial && "x" === this.prefix && !this.isHoriz && (a = !a);
|
|
return a;
|
|
};
|
|
c.prototype.clusterWidth = function (a) {
|
|
return t(a) ? this.clusterWidthByValue(a) : z(this.options("staticColumnWidth"), this.getShortestDistPerc() * this._sizeMetrics.length * (1 - this.options("spacingPercentage")));
|
|
};
|
|
c.prototype.clusterWidthByValue = function (a) {
|
|
var b = this.getValToLin(),
|
|
c = this.shortestValDistance / 2;
|
|
return this._sizeMetrics.length * (b(a + c) - b(a - c));
|
|
};
|
|
c.prototype.duV = function (a) {
|
|
void 0 === a && (a = !1);
|
|
var b;
|
|
if (!(b = this._duV)) {
|
|
b = void 0;
|
|
void 0 === b && (b = !1);
|
|
var c = this.isInverted(),
|
|
f = this.sideIndex(),
|
|
g = [-1, 0],
|
|
h = [0, -1],
|
|
k = [1, 0],
|
|
l = [0, 1],
|
|
m = [c ? 1 : -1, 0],
|
|
n = [c ? -1 : 1, 0],
|
|
p = [0, c ? 1 : -1];
|
|
c = [0, c ? -1 : 1];
|
|
f = [
|
|
{ f: m, b: n, o: h, i: l, vc: 1, hc: 0 },
|
|
{ f: p, b: c, o: k, i: g, vc: 0, hc: 1 },
|
|
{ f: m, b: n, o: l, i: h, vc: 1, hc: 0 },
|
|
{ f: p, b: c, o: g, i: k, vc: 0, hc: 1 },
|
|
][b ? (f + 2) % 4 : f];
|
|
f.inside = b;
|
|
b = yi(f);
|
|
}
|
|
this._duV = b;
|
|
b = this._duV();
|
|
a && ((b.o[0] *= -1), (b.o[1] *= -1), (b.i[0] *= -1), (b.i[1] *= -1), (b.inside = a));
|
|
return b;
|
|
};
|
|
c.prototype.measure = function (a) {
|
|
var b = this.chartArea,
|
|
c = this.viewState,
|
|
f = this.rootVisuals,
|
|
g = this.sideIndex();
|
|
this._isZoomLive = b.isZoomLive && b.isZoomLive();
|
|
C(this.currentOptions, "label.text");
|
|
if (c && !1 !== this.isVisible) {
|
|
var h = f.label.rootPanel.calculateMargin();
|
|
if (a && (a.pop && (a = this.viewState.caRect = { x: 0, y: 0, width: a[0], height: a[1] }), a)) {
|
|
c = this.measure_ticks(this.chartArea.isRendering);
|
|
var k = (this.tickBounds = c.slice(0));
|
|
this.isHoriz ? (k[1] += 2 === g ? a.height : -k[3]) : (k[0] += 1 === g ? a.width : -k[2]);
|
|
"caPaneLinear" === b.kind && b.hasRoundCaps && "x" === this.prefix && ((b = this.clusterWidth() / 2), (g = ha(a)), (g = Bl(g, this.isHoriz ? [-b, 0] : [0, -b])), (this.tickBounds = Ea([g, k])));
|
|
if (!c) return l;
|
|
var l = sh(c, ha(a));
|
|
b = this._sizeMetrics.clipped;
|
|
g = [0, 0];
|
|
var m = [0, 0];
|
|
this.isHoriz
|
|
? ((k = this._sizeMetrics.clipped = [a.width, c[3]]), (this._sizeMetrics.length = a.width), (g[0] = Math.abs(Math.min(0, c[0]))), (m[0] = c[2] + c[0] - a.width))
|
|
: ((k = this._sizeMetrics.clipped = [c[2], a.height]), (this._sizeMetrics.length = a.height), (g[1] = Math.abs(Math.min(0, c[1]))), (m[1] = c[3] + c[1] - a.height));
|
|
if ("hidden" === this.options("overflow") || this.chartArea.isDragging) (g = [0, 0]), (m = [0, 0]);
|
|
this.overflowSize = { tL: g, bR: m };
|
|
!b.length || (b[0] === k[0] && b[1] === k[1]) || this.rootVisuals.main.attr(this.isHoriz ? { height: k[1], width: "*" } : { width: k[0], height: "*" });
|
|
a = f.label.getSize({ width: this._sizeMetrics.length - h.horizontal.px });
|
|
this._sizeMetrics.labelSize = a;
|
|
this.isHoriz ? (f.labelContainer.attr({ height: a[1] }), this.rootPanel.attr({ width: 0 })) : f.labelContainer.attr({ width: a[1] });
|
|
this.rootPanel.setPreliminarySize(!0);
|
|
f = this.rootPanel.getBbox();
|
|
0 === f.width && ("sp" !== this.prefix && (f = Gc(l)), this.isHoriz && (f.height += a[1] || 0));
|
|
this.isHoriz ? this.rootVisuals.labelContainer.attr({ height: a[1] }) : this.rootVisuals.labelContainer.attr({ width: a[1] });
|
|
this._sizeMetrics.bbox = c;
|
|
this._sizeMetrics.size = [f.width, f.height];
|
|
this.setViewState(!0);
|
|
this.setViewStateSize();
|
|
l = this._sizeMetrics.history;
|
|
a = this._sizeMetrics.clipped;
|
|
2 === l.length && (this._sizeMetrics.history = [l[1]]);
|
|
this._sizeMetrics.history.push([Math.round(a[0]), Math.round(a[1])]);
|
|
c[2] = f.width;
|
|
c[3] = f.height;
|
|
return [0, 0, f.width, f.height];
|
|
}
|
|
} else if (!1 === this.isVisible) return (this._sizeMetrics.length = this.isHoriz ? a[0] : a[1]), [0, 0, 0, 0];
|
|
return l;
|
|
};
|
|
c.prototype.requireReflow = function () {
|
|
var a = this.currentOptions.defaultTick;
|
|
if (a) {
|
|
var c = a.label;
|
|
if ("inside" === a.placement || (c && "inside" === c.placement)) return !1;
|
|
}
|
|
a = this._sizeMetrics.history;
|
|
return 2 === a.length && ((this.isHoriz && a[0][1] !== a[1][1]) || (!this.isHoriz && a[0][0] !== a[1][0]));
|
|
};
|
|
c.prototype.resetMetricsData = function () {
|
|
var a = {
|
|
maxTextSize: [0, 0],
|
|
maxLength: 0,
|
|
maxRadiusLen: 0,
|
|
maxLengthRange: 0,
|
|
getMaxLength: function () {
|
|
return a.overlapRange ? Math.max(a.maxLength, a.maxLengthRange) : a.maxLength + a.maxLengthRange;
|
|
},
|
|
};
|
|
this.tickMetricsData = a;
|
|
};
|
|
c.prototype.measure_ticks = function (a) {
|
|
function b() {
|
|
var a = [],
|
|
b = C(g.currentOptions, "defaultTick.label.rotate") || 0;
|
|
if (g.isHoriz && (b || g.currentOptions.autoRotate))
|
|
return (
|
|
w(E, function (b) {
|
|
if (!b.invalid) {
|
|
var c = b.angledBounds();
|
|
Id(b.currentOptions.label) && a.push(c);
|
|
b.metrics().rotated = c;
|
|
}
|
|
}),
|
|
Ea(a)
|
|
);
|
|
}
|
|
function c(a) {
|
|
var b = (g._rngData = Sr(g, a));
|
|
a = Ea(
|
|
B(a, function (a) {
|
|
return a._positionData.bbox;
|
|
})
|
|
);
|
|
a[1] = 0;
|
|
a[b.duV.vc + 2] = b.depth;
|
|
return a;
|
|
}
|
|
var f = this;
|
|
void 0 === a && (a = !1);
|
|
var g = this,
|
|
h = g.viewState,
|
|
k = [],
|
|
l = [],
|
|
m = [],
|
|
n = [],
|
|
p = [],
|
|
q = [],
|
|
r = g.isHoriz ? 1 : 0,
|
|
u = g.isHoriz
|
|
? function (a, b, c) {
|
|
return (b && a.rotated ? a.rotated[3] : (c && a.altTextSize ? a.altTextSize : a.textSize)[1]) + a.tickLength + a.tickPadding || 0;
|
|
}
|
|
: function (a, b, c) {
|
|
return (b && a.rotated ? a.rotated[2] : (c && a.altTextSize ? a.altTextSize : a.textSize)[0]) + a.tickLength + a.tickPadding || 0;
|
|
},
|
|
x = C(g.currentOptions, "defaultTick"),
|
|
v = "inside" === x.placement;
|
|
x = C(x, "label.rotate") || 0;
|
|
x = g.isHoriz && 0 !== x;
|
|
var y,
|
|
D = [],
|
|
E = [],
|
|
z = [],
|
|
A = function () {
|
|
y = Ei(g);
|
|
D = y.rngTicks;
|
|
E = y.valArrange;
|
|
z = y.rngArrange;
|
|
};
|
|
if (h && !1 !== g.isVisible) {
|
|
g.setTicks(h).setAttribs();
|
|
A();
|
|
g._rngData = Oz(g, D);
|
|
A();
|
|
var G = 0;
|
|
w(E, function (a) {
|
|
if (a.invalid) wf(f, a);
|
|
else {
|
|
var b = a.metrics();
|
|
Id(a.currentOptions.label) && "inside" !== a.currentOptions.placement && (m.push(b.textSize[0]), n.push(b.textSize[1]), (G += b.primTextSize[1]), p.push(u(b)), q.push(u(b, !1, !0)), l.push(b));
|
|
}
|
|
});
|
|
A = m.length ? [Math.max.apply(Math, H(m)), Math.max.apply(Math, H(n))] : [0, 0];
|
|
var J = p.length ? Math.max.apply(Math, H(p)) : 0,
|
|
I = q.length ? Math.max.apply(Math, H(q)) : 0;
|
|
g.tickMetricsData.maxTextSize = A;
|
|
g.tickMetricsData.maxLength = J;
|
|
g.tickMetricsData.maxLengthAlt = I;
|
|
g.tickMetricsData.maxRadiusLen = 0;
|
|
A = [];
|
|
var M = void 0,
|
|
K = !1;
|
|
J = Q(C(g.currentOptions, "defaultTick.label.rotate")) && Q(g.userOptions.autoRotate) && "angled" !== g.labelMode;
|
|
h = !g.isHoriz && h.axisSize && h.axisSize[1] > 2 * G;
|
|
I = [];
|
|
for (var L = 0, O = E.length; L < O; L++) {
|
|
var P = E[L];
|
|
if (!P.invalid) {
|
|
var S = wf(this, P, { altTextSize: !1 }),
|
|
T = S.textBBox;
|
|
M = M && zd(M, T);
|
|
var V = h && 10 < T[2] / T[3],
|
|
X = M && g.isHoriz,
|
|
Y = !1 !== N(P.currentOptions, ["label", "autoWrap"]) && P._formattedText && !P._formattedText.match(/<br\s*\/?>/);
|
|
if (J && Y && P._metrics.altTextSize && (X || V)) {
|
|
if (
|
|
!K &&
|
|
M &&
|
|
((K = E[L - 1]),
|
|
(S = wf(this, K, { altTextSize: !0 })),
|
|
(M = S.textBBox),
|
|
(I[I.length - 1] = S.textLength),
|
|
Id(K.currentOptions.label) && g.tickVisible(K.value()) && ((k[k.length - 1] = K._bbox), (A[A.length - 1] = M)),
|
|
!zd(M, T))
|
|
) {
|
|
M = T;
|
|
K = !1;
|
|
continue;
|
|
}
|
|
S = wf(this, P, { altTextSize: !0 });
|
|
T = S.textBBox;
|
|
K = !0;
|
|
} else K = !1;
|
|
I.push(S.textLength);
|
|
Id(P.currentOptions.label) && g.tickVisible(P.value()) && (k.push(P._bbox), A.push(T));
|
|
M = T;
|
|
}
|
|
}
|
|
I.length && (g.tickMetricsData.maxLength = Math.max.apply(Math, H(I)));
|
|
if (x || (g.isHoriz && qo(A)) || (a && "angled" === g.labelMode)) {
|
|
g.labelMode = "angled";
|
|
var W = b() || W;
|
|
} else g.labelMode = "normal";
|
|
"angled" === g.labelMode &&
|
|
((p = []),
|
|
w(l, function (a) {
|
|
p.push(u(a, !0));
|
|
}),
|
|
(g.tickMetricsData.maxLength = Math.max.apply(Math, H(p))),
|
|
(k = []),
|
|
w(E, function (a) {
|
|
a.invalid || (wf(f, a, { tickPointsOnly: !0 }), Id(a.currentOptions.label) && k.push(a._bbox));
|
|
}));
|
|
W = Ea(k) || [0, 0, 0, 0];
|
|
a = ea(z, function (a) {
|
|
return a._rngData.visible;
|
|
});
|
|
a.length &&
|
|
((a = c(a)), (x = 0 === y.fullRangesLevel), (W[r + 2] = v ? 0 : x ? Math.max(a[r + 2], W[r + 2]) : a[r + 2] + W[r + 2]), (g.tickMetricsData.maxLengthRange = v ? 0 : a[r + 2]), (g.tickMetricsData.overlapRange = x));
|
|
}
|
|
r = g.currentOptions.caOffset;
|
|
t(r) && (g.isHoriz ? (W[3] = Math.max(0, W[3] + r)) : (W[2] = Math.max(0, W[2] + r)));
|
|
return W || [0, 0, 0, 0];
|
|
};
|
|
c.prototype.sideIndex = function () {
|
|
var a = this.currentOptions.orientation;
|
|
a = "right" === a || "top" === a || "opposite" === a;
|
|
return this.isHoriz ? (a ? 0 : 2) : a ? 1 : 3;
|
|
};
|
|
c.prototype.sideDepth = function () {
|
|
var a = this._sizeMetrics.size;
|
|
return this.isHoriz ? a[1] : a[0];
|
|
};
|
|
c.prototype.autoHideGrid = function () {
|
|
t(this._autoHideGrid) || (this._autoHideGrid = vD(this));
|
|
return this._autoHideGrid;
|
|
};
|
|
c.prototype.render = function (a, c) {
|
|
void 0 === c && (c = this.updateOptions);
|
|
var b,
|
|
d = this.viewState,
|
|
g = this.viewStatePrev;
|
|
if ((b = this.syncAxis)) (d = this.viewState = qa(b.viewState)), (g = this.viewStatePrev = qa(b.viewStatePrev));
|
|
if (d) {
|
|
var h = A({}, c);
|
|
h.isTransitioning = this.isTransitioning;
|
|
if (!1 !== this.isVisible && this.isAdded) {
|
|
a = a || this.chartArea.renderRect;
|
|
var k = this.isTransitioning ? [g, d] : d;
|
|
if ((d.caRect = a))
|
|
this.measure(a),
|
|
(this._autoHideGrid = void 0),
|
|
Fz(this),
|
|
Gz(this),
|
|
this.render_rngLines(a, h),
|
|
w(this._ticks, function (a) {
|
|
return a.render(k, h);
|
|
}),
|
|
this.garbageCollection(),
|
|
this.render_line(a, c),
|
|
this.render_alignLabel();
|
|
} else !1 === this.isVisible && this.isAdded && this.resetVisuals();
|
|
!c.invalidate && this.validate();
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.garbageCollection = function () {
|
|
w(this._ticks.slice(0), function (a) {
|
|
a && 6 < a._age && a.destroy();
|
|
});
|
|
};
|
|
c.prototype.render_alignLabel = function () {
|
|
var a = this.currentOptions.label,
|
|
c = this.sideIndex(),
|
|
e = this._sizeMetrics.labelSize;
|
|
this.isHoriz ||
|
|
((a.rotation = 0 === c || 1 === c ? 90 : -90), (c = va([0, 0, e[1], e[0]])), this.rootVisuals.labelContainer.attr({ offsetX: c[0] - e[0] / 2, offsetY: c[1] - e[1] / 2, rotate: [a.rotation, e[0] / 2, e[1] / 2] }));
|
|
};
|
|
c.prototype.renderOnCa = function (a, c) {
|
|
void 0 === c && (c = this.updateOptions);
|
|
var b = this.viewState,
|
|
d = this.viewStatePrev;
|
|
(a = a || this.chartArea.renderRect) && this.isVisible && b && ((b.caRect = a), (a = this.isTransitioning ? [d, b] : b), this.renderGridLines(a, c), this.render_markers(a, c), this.validate());
|
|
};
|
|
c.prototype.renderGridLines = function (a, c) {
|
|
w(this._ticks, function (b) {
|
|
return b.render(a, A({ onCa: !0 }, c));
|
|
});
|
|
this.render_altGrid(a, c);
|
|
};
|
|
c.prototype.getGridLinesTarget = function () {
|
|
var a = C(this.currentOptions, "defaultTick.gridLine.onTop"),
|
|
c = this.chartArea.rootVisuals;
|
|
return a ? c.gridLinesFront : c.gridLinesBehind;
|
|
};
|
|
c.prototype.render_altGrid = function (a, c) {
|
|
void 0 === a && (a = this.chartArea);
|
|
void 0 === c && (c = {});
|
|
var b = this;
|
|
a = Qr("time" === b.type ? b.tickPositions.all : b.tickPositions);
|
|
var d = b.renderer.renderer,
|
|
g = b.attribs.altGrid,
|
|
h = b.viewState,
|
|
k = b.viewStatePrev,
|
|
l = b.altGridFillVisuals,
|
|
m,
|
|
n,
|
|
p = b.getGridLinesTarget(),
|
|
q = function () {
|
|
return w(l, function (a) {
|
|
return (a.invalid = !0);
|
|
});
|
|
},
|
|
r = function (a) {
|
|
return S(l, function (b) {
|
|
return b.value[0] === a[0] && b.value[1] === a[1];
|
|
});
|
|
},
|
|
u = function (a) {
|
|
a.visual.attr(A({ opacity: 0, d: b.getCaPath(a.value, p, h) }, c));
|
|
},
|
|
x = k && !1 !== c;
|
|
if (g && "none" !== g.fill && !wD(b)) {
|
|
q();
|
|
for (var v = 0, t = a.length; v < t - 1; v += 2) {
|
|
var D = [a[v], a[v + 1]];
|
|
if ((m = b.getCaPath(D, p, h)))
|
|
(q = r(D))
|
|
? ((q.invalid = !1), q.visual.attr(A({ d: m, opacity: 1 }, c)))
|
|
: (x && (n = b.getCaPath(D, p, k)),
|
|
(q = { value: D, visual: d.path(A({ d: n || m, opacity: 0, animation: !1, zIndex: 4 }, Ga(g, ["animation"]))).add(p), invalid: !1 }),
|
|
l.push(q),
|
|
(D = A({ d: m, opacity: 1, "fill-rule": "evenodd" }, g, c)),
|
|
x || (D.animation = !1),
|
|
q.visual.attr(D));
|
|
}
|
|
w(ea(l, { invalid: !0 }), u);
|
|
}
|
|
};
|
|
c.prototype.init_markers = function () {
|
|
var a = this.currentOptions.markers || [];
|
|
if (((a && a.length) || this._markers.length) && !this._markers.length)
|
|
for (var c = 0, e = a.length; c < e; c++) {
|
|
var f = a[c];
|
|
if (f.value && f.value.pattern) {
|
|
var g = Wr(this, [f.value.pattern]);
|
|
f.value = B(g, function (a) {
|
|
return a.slice(0, 2);
|
|
});
|
|
}
|
|
this._markers.push(new Xr(this, f));
|
|
}
|
|
};
|
|
c.prototype.render_markers = function (a, c) {
|
|
void 0 === c && (c = {});
|
|
var b = this;
|
|
a = !b.isRadial;
|
|
var d = b.currentOptions.markers || [];
|
|
b.init_markers();
|
|
if ((d && d.length) || b._markers.length)
|
|
a && Iz(b._markers),
|
|
w(b._markers, function (a) {
|
|
a.render(b.viewState, c);
|
|
});
|
|
};
|
|
c.prototype.render_line = function (a, c) {
|
|
var b = this;
|
|
c = b.rootVisuals.line;
|
|
var d = b.currentOptions,
|
|
g = d.line,
|
|
h = b.userOptions.line,
|
|
k = b.chart.options("defaultAxis.line");
|
|
g.visible = g.visible || (h ? tf(h) : !1) || (k ? tf(k) : !1);
|
|
h = Bb(g);
|
|
h.d = this.getLinePath(a);
|
|
var l = b.options("line.breaks");
|
|
if (l) {
|
|
k = function (a) {
|
|
var b = 0;
|
|
return Aa(a).translate(function (a) {
|
|
var c = 1e-4 * b++;
|
|
return [a[0] + c, a[1] + c];
|
|
});
|
|
};
|
|
var m = 0;
|
|
h.d = Aa(h.d).translate(function (a) {
|
|
var b = 1e-4 * m++;
|
|
return [a[0] + b, a[1] + b];
|
|
});
|
|
b.isRadial ? (a = Aa(h.d).length()) : ((a = b.getLinePathPoints(a)), (a = mc(a[0], a[1])));
|
|
a = b.ticksToDashAttr(a, d.line.width, l);
|
|
L(h, a);
|
|
h["stroke-linecap"] = "round";
|
|
a = g.color;
|
|
if (-1 < a.toLowerCase().indexOf("smartpalette")) {
|
|
a = a.split(/:/gi);
|
|
if ((a = b.chart.getSmartPalette(1 < a.length ? a[1] : b.chart.palette)))
|
|
(a = a.getTraditionalStops(!1, [b.range.min, b.range.max])),
|
|
b.isInverted() ||
|
|
((a = B(a, function (a) {
|
|
return [1 - a[0], a[1], a[2]];
|
|
})),
|
|
(a = sa(a, function (a) {
|
|
return a[0];
|
|
}))),
|
|
(h.stroke = oc({ stops: a, angle: b.isHoriz ? 0 : 90 })),
|
|
(h.d = k(h.d));
|
|
h["stroke-opacity"] = 1;
|
|
}
|
|
} else if (g.caps && ((k = b.originValue), h.caps)) {
|
|
g = void 0;
|
|
g = { eachShape: !0, size: "300%" };
|
|
t(this.originValue) && (g.start = { overflow: !0 });
|
|
h.caps = qd(h.caps, g);
|
|
var n = b.duV();
|
|
a = b.getLinePathPoints(a);
|
|
var p = a[0][n.vc];
|
|
g = function (a) {
|
|
var c = [];
|
|
c[n.vc] = p;
|
|
c[n.hc] = b.getCaLen(a);
|
|
return c;
|
|
};
|
|
t(k) && b.valVisible(k)
|
|
? ((k = g(k)), (g = fb([k, a[0]]).join(" ")), (g += fb([k, a[1]]).join(" ")), (h.d = g))
|
|
: t(k) && ((k = [b.range.min, b.range.max]), 0 >= k[1] && k.reverse(), (g = fb(k.map(g))), (h.d = g), (h.caps.start = { type: "none" }));
|
|
}
|
|
c.attr(h);
|
|
};
|
|
c.prototype.render_rngLines = function (a, c) {
|
|
a = { width: 1, color: "#4c4c4c", dashStyle: "dash", opacity: 0.2 };
|
|
c = this.renderer;
|
|
var b = this.rootVisuals.mainRng,
|
|
d = C(this._rngData, "connectorLines"),
|
|
g = this.rootVisuals.rngConnectors,
|
|
h = [];
|
|
if (d && d.length) {
|
|
var k = Bb(a);
|
|
w(d, function (a) {
|
|
fb(a, h);
|
|
});
|
|
k.d = xa(h);
|
|
}
|
|
k ? (g ? g.attr(k) : (g = this.rootVisuals.rngConnectors = c.renderer.path().attr(k).add(b))) : g && g.attr({ opacity: 0 });
|
|
};
|
|
c.prototype.setRootVisuals = function () {
|
|
var a = this.renderer;
|
|
if (!this.rootVisuals && !1 !== this.options("visible")) {
|
|
var c = a.panel({ cssClass: "labelContainer" }),
|
|
e = a.panel("stack:" + (this.isHoriz ? "y" : "x")),
|
|
f = a.panel(),
|
|
g = a.renderer.path().add(f),
|
|
h = a.panel({ zIndex: 2 }).add(f);
|
|
a = new Fi(this.chart, this.currentOptions.label).add(c);
|
|
var k = this.duV();
|
|
0 > k.o[k.vc] ? (c.add(e), f.add(e)) : (f.add(e), c.add(e));
|
|
this.rootVisuals = { stack: e, main: f, label: a, labelContainer: c, line: g, mainRng: h };
|
|
this.applyCaOffset();
|
|
this.rootPanel && e.add(this.rootPanel);
|
|
this.rootPanel = e;
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.applyCaOffset = function () {
|
|
var a = this.currentOptions,
|
|
c = t(a.anchorWidth) ? a.anchorWidth : z(C((this.chartArea || this.chart.chartAreas(0)).currentOptions, "outline.width"), 1) / 2,
|
|
e = this.duV(),
|
|
f = e.o,
|
|
g = e.hc;
|
|
e = e.i.slice(0);
|
|
e[g] = 1;
|
|
c = we([0, 0], e, c);
|
|
a = we(c, f, a.caOffset || 0);
|
|
this.rootVisuals.stack.attr({ offsetX: a[0], offsetY: a[1] });
|
|
};
|
|
c.prototype.setAttribs = function () {
|
|
var a = this.isHoriz,
|
|
c = this.currentOptions.alternateGridFill,
|
|
e = I(c);
|
|
a = this.isRadial ? Fa.altGridFillRad : a ? Fa.altGridFillX : Fa.altGridFillY;
|
|
var f = { fill: c || "none" };
|
|
c && "none" !== c ? ("object" !== e ? (f = { fill: dd(a, c) }) : ni(f, c)) : (f = { fill: "none" });
|
|
this.attribs.altGrid = f;
|
|
return this;
|
|
};
|
|
c.prototype.setViewState = function (a, c) {
|
|
var b = this.viewState,
|
|
d;
|
|
(d = this.syncAxis)
|
|
? ((this.viewState = qa(d.viewState)), (this.viewStatePrev = qa(d.viewStatePrev)))
|
|
: b && b.equalsRange(this)
|
|
? (this.posDirty = !1)
|
|
: (b && (this.isTransitioning = !0),
|
|
(this.viewStatePrev = b),
|
|
(this.coordinatesDirty = this.posDirty = !0),
|
|
(this.viewState = new bu(this, this._getValToLin(), this.chartArea)),
|
|
!a && this.viewState.isValid() && this.render(null, c),
|
|
this.trigger("setRange", this.viewState.range));
|
|
return this;
|
|
};
|
|
c.prototype.setViewStateSize = function () {
|
|
var a;
|
|
if ((a = this.viewState)) (a.axisSize = this._sizeMetrics.clipped.slice(0)), (a.axisBBox = this._sizeMetrics.bbox.slice(0));
|
|
return this;
|
|
};
|
|
c.prototype.validate = function () {
|
|
this.isTransitioning = this.coordinatesDirty = this.posDirty = !1;
|
|
return this;
|
|
};
|
|
c.prototype.getCaPath = function (a, c, e, f) {
|
|
var b = this;
|
|
void 0 === e && (e = this.viewState);
|
|
void 0 === f && (f = 1);
|
|
var d = t(a.pop),
|
|
k = !1,
|
|
l = a;
|
|
if (!d || (t(a[0]) && !t(a[0].pop))) l = [a];
|
|
if ("object" === typeof f) {
|
|
var m = f;
|
|
f = z(m.lineWidth, 1);
|
|
k = m.multiShape;
|
|
}
|
|
var n = "";
|
|
w(k && d ? a : l, function (a) {
|
|
a = b.getCaPoints(a, c, e, f);
|
|
n += fb(a).join(" ") + (k || (!d && !b.isRadial) ? "" : "Z");
|
|
});
|
|
return n;
|
|
};
|
|
c.prototype.getCaPoints = function (a, c, e, f) {
|
|
void 0 === e && (e = this.viewState);
|
|
void 0 === f && (f = 1);
|
|
a = this.toPosition(a);
|
|
var b = !1;
|
|
if ("object" === typeof f) {
|
|
var d = f;
|
|
f = z(d.lineWidth, 1);
|
|
b = d.posOnly;
|
|
}
|
|
var k = function (a) {
|
|
return Math.max(-1e6, Math.min(1e6, e.valToLin(a)));
|
|
},
|
|
l = e.caRect || e.chartArea.contentRect || e.chartArea.innerRect,
|
|
m = e.chartArea,
|
|
n = this.isHoriz,
|
|
p = t(a.pop),
|
|
q = m.rootVisuals.gridLinesBehind;
|
|
d = function (a) {
|
|
a = k(a);
|
|
a = n ? a * l.width : a * l.height;
|
|
a = n
|
|
? [
|
|
[a, l.y],
|
|
[a, l.y + l.height],
|
|
]
|
|
: [
|
|
[l.x, a],
|
|
[l.x + l.width, a],
|
|
];
|
|
return (2 === a.length ? zr : ue)(c || q, a, f);
|
|
};
|
|
if (this.isRadial) {
|
|
var r = ha(l),
|
|
u = r[2],
|
|
x = r[3],
|
|
v = r[1],
|
|
y = r[0];
|
|
r = m.getRadarType();
|
|
var w = function (a) {
|
|
return b ? [a[0], a[1]] : [y + a[0] * u, v + a[1] * x];
|
|
},
|
|
E = this.interpolationAxis;
|
|
if (this.isHoriz) {
|
|
var F = m.projection.val2linxy,
|
|
A = function (a, b) {
|
|
return w(F(a, b));
|
|
};
|
|
"polar" === r
|
|
? (d = function (a) {
|
|
a = k(a);
|
|
return [A(a, 0), A(a, 1)];
|
|
})
|
|
: p ||
|
|
((A = m.projection.webVal2linxy),
|
|
(d = function (a) {
|
|
a = k(a);
|
|
return [A(a, 0), A(a, 1)];
|
|
}));
|
|
} else if (!this.isHoriz) {
|
|
var C = m.projection.val2linxy,
|
|
G = E.getTicksPos();
|
|
d = function (a) {
|
|
var b = k(a);
|
|
return B(G, function (a) {
|
|
return w(C(a, b));
|
|
});
|
|
};
|
|
}
|
|
}
|
|
p ? ((m = d(a[0])), m.push.apply(m, H(d(a[1]).reverse()))) : (m = d(a));
|
|
return m;
|
|
};
|
|
c.prototype.ticksToDashAttr = function (a, c, e) {
|
|
void 0 === c && (c = 1);
|
|
e = e || {};
|
|
id(e, { gap: 0.01, cap: !0, invert: !1 });
|
|
var b = this,
|
|
d = e.custom,
|
|
h = [],
|
|
k = 0,
|
|
l = {},
|
|
m = b.getTicksPos();
|
|
d
|
|
? ((m = d),
|
|
1 < Math.max.apply(Math, H(d)) &&
|
|
(m = B(d, function (a) {
|
|
return b.viewState.valToLin(a);
|
|
})))
|
|
: (m = d || b.getTicksPos());
|
|
c = (2 * ((a * e.gap) / 2 + (e.cap ? c / 2 : 0))) / a;
|
|
m[0] > m[m.length - 1] &&
|
|
(m = B(m, function (a) {
|
|
return 1 - a;
|
|
}));
|
|
m = Zj(m, [0, 1], c);
|
|
var n = cg(m, [0, 1]);
|
|
w(n, function (b, c) {
|
|
var d = c === n.length - 1,
|
|
e = d ? void 0 : n[c + 1],
|
|
f = b[1] - b[0];
|
|
0 === c && 0 < b[0] && (k = b[0] * a);
|
|
h.push(f * a);
|
|
e && h.push((e[0] - b[1]) * a);
|
|
d && 1 > b[1] && h.push((1 - b[1]) * a + 2);
|
|
});
|
|
e.invert && h.unshift(0);
|
|
l["stroke-dasharray"] = h.join(",");
|
|
k && (l["stroke-dashoffset"] = -k);
|
|
return l;
|
|
};
|
|
c.prototype.getCaLen = function (a, c) {
|
|
void 0 === c && (c = this.viewState);
|
|
var b = c.caRect || c.chartArea.contentRect,
|
|
d = this.isHoriz,
|
|
g = c.valToLin;
|
|
return hb(a, function (a) {
|
|
a = g(a);
|
|
return d ? a * b.width : a * b.height;
|
|
});
|
|
};
|
|
c.prototype.getLinePath = function (a) {
|
|
var b = this.currentOptions,
|
|
c = G(this.getLinePathPoints(a), 2),
|
|
f = c[0];
|
|
c = c[1];
|
|
b = Bb(b.line);
|
|
return this.breakLine(a, [f, c], b["stroke-width"]);
|
|
};
|
|
c.prototype.getLinePathPoints = function (a) {
|
|
a = "inside" === C(this.currentOptions, "defaultTick.placement");
|
|
var b = this.range,
|
|
c = a ? 0 : this.tickMetricsData.getMaxLength();
|
|
a = this.getCaLen(b.min);
|
|
b = this.getCaLen(b.max);
|
|
switch (this.sideIndex()) {
|
|
case 0:
|
|
var f = [b, c],
|
|
g = [a, c];
|
|
break;
|
|
case 1:
|
|
c = [0, b];
|
|
g = [0, a];
|
|
f = c;
|
|
break;
|
|
case 2:
|
|
c = [b, 0];
|
|
g = [a, 0];
|
|
f = c;
|
|
break;
|
|
case 3:
|
|
(f = [c, b]), (g = [c, a]);
|
|
}
|
|
return [g, f];
|
|
};
|
|
c.prototype.breakLine = function (a, c, e, f) {
|
|
var b = this,
|
|
d = b.currentOptions,
|
|
k = b.rootVisuals.main,
|
|
l = [],
|
|
m = c[0][0],
|
|
n = c[0][1],
|
|
p = b.isInverted();
|
|
c = (C(d, "scale.defaultBreak.type") || "").toLowerCase();
|
|
c = "gap" === c || "zigzag" === c ? C(d, "scale.defaultBreak.line.width") / 2 : 0;
|
|
var q = a.y,
|
|
r = a.x,
|
|
u = a.x + a.width,
|
|
x = a.y + a.height;
|
|
a = b._openRanges();
|
|
var v = function (a) {
|
|
return b.isHoriz ? [a, n] : [m, a];
|
|
},
|
|
y = function (a, c) {
|
|
var f = "";
|
|
c = p ? -c : c;
|
|
b.isHoriz && (c = -c);
|
|
for (var g = 0, h = a.length; g < h; g++) {
|
|
var m = a[g],
|
|
n = b.getCaLen(m[0]),
|
|
y = b.getCaLen(m[1]),
|
|
w = (t(d.anchorWidth) ? d.anchorWidth : z((b.chartArea || b.chart.chartAreas(0)).options("outline.width"), 1)) / 2,
|
|
E = v(n > y ? n + w : n - w),
|
|
D = v(y > n ? y + w : y - w),
|
|
A = v(n),
|
|
B = v(y);
|
|
B = [A, B];
|
|
b.isHoriz ? (B.push([A[0], q]), B.push([A[0], x])) : (B.push([u, A[1]]), B.push([r, A[1]]));
|
|
A = rb(Ua(B), -0.5);
|
|
l.push(A);
|
|
1 < a.length && g < a.length - 1 && (D = v(b.getCaLen(m[1]) + (y > n ? w - c : c - w)));
|
|
g && (E = v(b.getCaLen(m[0]) + (n > y ? w - c : c - w)));
|
|
k && ((m = zr(k, [E, D], e, w || void 0)), (E = m[0]), (D = m[1]));
|
|
f += xa(fb([E, D]));
|
|
}
|
|
return f;
|
|
};
|
|
b._nRects = l;
|
|
return f ? y(bg(a.ranges, f), c) : y(a.ranges, c);
|
|
};
|
|
c.prototype.getBreakRects = function () {
|
|
return this._nRects.slice(0);
|
|
};
|
|
c.prototype.resetTimers = function () {
|
|
w(this._markers, function (a) {
|
|
return a.resetTimers();
|
|
});
|
|
};
|
|
c.prototype.getPointTicks = function () {
|
|
var a = this,
|
|
c = a.dataInfo.serColl,
|
|
e = a.prefix,
|
|
f = e + "AxisTick",
|
|
g = "category" === a.type && "x" === e,
|
|
h = a._isZoomLive,
|
|
k = !!a.syncAxis,
|
|
l = a.usedDataKeys;
|
|
c && !c.items.length && a.syncAxis && (c = a.syncAxis.dataInfo.serColl);
|
|
if (!h) {
|
|
var m = [],
|
|
n = [],
|
|
p = function (a) {
|
|
var b = a && a.series[("x" === e ? "y" : "x") + "Axis"];
|
|
if (b) return b.getValToLin()("x" === e ? a.y : a.x);
|
|
},
|
|
q = function (b, c, d, f, h) {
|
|
f = g ? z(f.name, f.x) : a.isStacked() && h.hasKey(e + "s") ? [h.getValue(e + "s", c), h.getValue(e + "e", c)] : z(f[e], h.getValue(e, c), h.getValue(l[0], c));
|
|
f = a.normUserValue(f);
|
|
d = {
|
|
point: function () {
|
|
b._points.length || b.setPoints();
|
|
return b._points[c];
|
|
},
|
|
config: d,
|
|
value: f,
|
|
};
|
|
if ((h = S(m, { value: f }))) {
|
|
var k = h.point(),
|
|
q = d.point();
|
|
if (k !== q)
|
|
switch (((k = p(k)), (q = p(q)), a.sideIndex())) {
|
|
case 0:
|
|
case 3:
|
|
var r = k > q;
|
|
break;
|
|
case 1:
|
|
case 2:
|
|
r = k < q;
|
|
}
|
|
else r = !0;
|
|
}
|
|
h ? r && (pb(m, h), m.push(d)) : (m.push(d), n.push(f));
|
|
},
|
|
r = function (b, c) {
|
|
var d = a.id && a.id === b.axisId;
|
|
c = c[a.prefix + "Axis"].id === a.id;
|
|
return k ? d || c : !b.axisId || d;
|
|
};
|
|
c &&
|
|
c.each(function (a) {
|
|
var b = function (a) {
|
|
return a && a[f];
|
|
},
|
|
c = a.indexer,
|
|
d = a.currentOptions,
|
|
e = c.data[f] && 0 < c.data[f].length,
|
|
g = a.userPoints,
|
|
h = g.length,
|
|
k = b(d.defaultPoint),
|
|
l = b(d.firstPoint) || b(d.lastPoint),
|
|
m = function (a) {
|
|
return a;
|
|
};
|
|
if (k) {
|
|
var n = yi(k);
|
|
m = function (a) {
|
|
return A(n(), a);
|
|
};
|
|
}
|
|
if (k) {
|
|
if (r(k, a)) for (e = 0; e < h; e++) (k = c.getValue(f, e)), q(a, e, m(k || {}), g[e], c);
|
|
} else if (e) {
|
|
var p = c.data[f],
|
|
u = c.indexes[f];
|
|
for (e = 0; e < (u ? u.length : 0); e++) {
|
|
var x = u[e];
|
|
(k = p[x]) && r(k, a) && q(a, x, m(k), g[x], c);
|
|
}
|
|
}
|
|
l && ((l = b(d.firstPoint)) && r(l, a) && null !== g[0].y && q(a, 0, l, g[0], c), (b = b(d.lastPoint)) && r(b, a) && null !== g[h - 1].y && q(a, h - 1, b, g[h - 1], c));
|
|
});
|
|
var u = [];
|
|
n.length &&
|
|
((n = $a(n)),
|
|
w(n, function (a) {
|
|
return u.push(S(m, { value: a }));
|
|
}),
|
|
(u.positions = n));
|
|
a._getPointTicks = u;
|
|
}
|
|
return a._getPointTicks;
|
|
};
|
|
c.prototype.getCustomTicks = function () {
|
|
if (!this._isZoomLive) {
|
|
var a = this.currentOptions,
|
|
c = this.userOptions,
|
|
e = B(a.customTicks || [], function (b) {
|
|
var c = A({}, a.defaultTick);
|
|
return A(c, b);
|
|
});
|
|
if (t(this.originValue) && c.originTick && !1 !== C(a, "defaultTick.enabled") && !1 !== C(a, "originTick.enabled")) {
|
|
var f = A({}, a.defaultTick);
|
|
f = A(f, c.originTick);
|
|
f.value = this.originValue;
|
|
e.push(f);
|
|
}
|
|
this._getCustomTicks = e;
|
|
}
|
|
return this._getCustomTicks;
|
|
};
|
|
c.prototype.setTicks = function (a) {
|
|
var b = this,
|
|
c = b.currentOptions,
|
|
f = b._isZoomLive,
|
|
g = b.isLog(),
|
|
h = function (a, b) {
|
|
return Y(a, a + b, 0, 1, m.valToLin(a));
|
|
},
|
|
k = function (a, c) {
|
|
a = a.rect();
|
|
return b.isHoriz ? h(a.x, a.width) : h(a.y, a.height);
|
|
};
|
|
a = G(a.pop ? a : [void 0, a], 2);
|
|
var l = a[0],
|
|
m = a[1];
|
|
m.rect();
|
|
if (m.isValid()) {
|
|
var n = void 0;
|
|
a = void 0;
|
|
b.setTickPositions().invalidateTicks();
|
|
var p = A(g ? { label: { visible: !1 } } : {}, c.defaultTick, c.defaultMinorTick);
|
|
c = a = "inside" !== p.placement || b.isRadial || "category" === b.type ? 0 : 1;
|
|
for (var q = b.tickPositions.all.length - a; c < q; c++) {
|
|
n = b.tickPositions.all[c];
|
|
var r = b.findTickInfo(n);
|
|
(a = b.findTick(n, g ? r.type : void 0))
|
|
? (a.type !== r.type && (a.options(r.config, !1), (a._needUpdateText = !0)), !f && a.setType(r.type))
|
|
: ((r.config.defaultMinorTick = p), b._ticks.push((a = new cu(this, n, r.config, r.type))));
|
|
a.validate();
|
|
}
|
|
c = 0;
|
|
for (q = b._ticks.length; c < q; c++) (a = b._ticks[c]), b.isTransitioning && !a.invalid ? a.px(k(l || b.viewStatePrev), k(m, a.value())) : a.px(k(m, a.value()));
|
|
b._ticks = sa(b._ticks, function (a) {
|
|
return z(a._value[0], a._value);
|
|
});
|
|
b._ticks = sa(b._ticks, function (a) {
|
|
return a._isRange && "custom" === a.type ? 2 : 1;
|
|
});
|
|
g = !1;
|
|
c = f = 0;
|
|
for (q = b._ticks.length; c < q; c++) (a = b._ticks[c]), (k = b.tickVisible(a.value())) && f++, !g && k ? (g = a.isFirst = !0) : (a.isFirst = !1);
|
|
100 < f &&
|
|
((g = "category" === b.type), (k = !!N(b.currentOptions, ["scale", "interval"])) || g) &&
|
|
((f = { data: [b.prefix, f], container: this.chart.getWrapper() }), k && !g ? Ma.emit("tip", b.id, "time" === b.type ? "manyTicksTime" : "manyTicks", f) : g && Ma.emit("tip", b.id, "manyTicksCat", f));
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.resetTicksLabels = function () {
|
|
w(this._ticks, function (a) {
|
|
delete a._formattedText;
|
|
});
|
|
};
|
|
c.prototype.invalidateTicks = function () {
|
|
for (var a = this._ticks, c = 0, e = a.length; c < e; c++) a[c].invalidate();
|
|
return this;
|
|
};
|
|
c.prototype.findTick = function (a, c) {
|
|
for (var b = 0, d = this._ticks.length; b < d; b++) {
|
|
var g = this._ticks[b],
|
|
h = g.value(),
|
|
k = a;
|
|
if ((h.pop ? h[0] === k[0] && h[1] === k[1] : h === k) && (c ? g.type === c : 1)) return g;
|
|
}
|
|
};
|
|
c.prototype.findTickInfo = function (a) {
|
|
var b = this,
|
|
c = {};
|
|
if (t(a.v)) {
|
|
var f = "custom",
|
|
g = b.getCustomTicks();
|
|
c = S(g, { value: a.v });
|
|
c = A({}, c);
|
|
delete c.value;
|
|
} else {
|
|
var h = b.tickPositions,
|
|
k = h.minor || [],
|
|
l = h.custom || [],
|
|
m = b.originValue;
|
|
g = xe(b.pointTicks.values || [], a);
|
|
if (-1 < g) {
|
|
f = "custom";
|
|
c = b.pointTicks;
|
|
var n = c.points[g];
|
|
c = c.configs[g];
|
|
c.target = function () {
|
|
return n && n();
|
|
};
|
|
} else
|
|
-1 < xe(l, a)
|
|
? ((f = "custom"),
|
|
(g = b.getCustomTicks()),
|
|
(c = S(g, function (c) {
|
|
c = c.value;
|
|
var d = b.toPosition(c);
|
|
"category" === b.type && "string" === typeof c && (d = [d - 0.5, d + 0.5]);
|
|
return d.pop ? Qe(d, a) : d === a;
|
|
})),
|
|
(c = A({}, c)))
|
|
: t(m) && a === m
|
|
? (f = "origin")
|
|
: -1 < xe(h, a)
|
|
? (f = "major")
|
|
: -1 < xe(k, a) && (f = "minor");
|
|
}
|
|
return { type: f, config: c };
|
|
};
|
|
c.prototype.getTicksPos = function (a) {
|
|
void 0 === a && (a = this.viewState);
|
|
!this.tickPositions && this.setTickPositions();
|
|
return hb(this.tickPositions.all, function (b) {
|
|
return a.valToLin(b);
|
|
});
|
|
};
|
|
c.prototype.add = function (a) {
|
|
this.isAdded || ((this.isAdded = !0), !1 !== this.isVisible && ((this.parentLayoutItem = (a = this.getParentPanel(a)) || this.renderer), this.rootPanel.add(a)));
|
|
return this;
|
|
};
|
|
c.prototype.crosshairXy = function (a, c, e) {
|
|
var b = this.prefix,
|
|
d = this.isHoriz ? 0 : 1;
|
|
a = a["x" === b ? d : "y" === b ? d : -1];
|
|
e = this.crossLinToVal(a, e);
|
|
t(a) && this.crosshair(c ? A({ value: e }, c) : { value: e });
|
|
return e;
|
|
};
|
|
c.prototype.crossLinToVal = function (a, c) {
|
|
var b = this.syncAxis || this,
|
|
d = this.options("crosshair");
|
|
a = this.linToVal(a);
|
|
return d.snapToData || ("x" === this.prefix && !1 !== d.snapToData) || c ? NA(b.dataPositions.toArray(), a) : a;
|
|
};
|
|
c.prototype.crosshair = function (a) {
|
|
var b = this;
|
|
clearTimeout(b.crossTimeout);
|
|
if (b.isVisible && !b.isRadial && !b.childAxes.length) {
|
|
var c = (b.crossTicks = b.crossTicks || []),
|
|
f = function (a) {
|
|
wf(b, a);
|
|
a.render(b.viewState, { onCa: !0, animation: !1 });
|
|
a.render(b.viewState, { onCa: !1, animation: !1 });
|
|
},
|
|
g = b.options("crosshair");
|
|
if (t(a) && !0 === g.enabled) {
|
|
if (((a = a.pop ? a : [a]), t(a[0])))
|
|
var h = a.map(function (a, b) {
|
|
return A({ key: b }, g, a);
|
|
}),
|
|
k = !0;
|
|
} else h = [];
|
|
Ub(
|
|
h,
|
|
c,
|
|
function (a) {
|
|
a = new cu(b, a.value, A({ internal: !0 }, a), "custom");
|
|
b.crossTicks.push(a);
|
|
f(a);
|
|
},
|
|
function (a, b) {
|
|
b.options(a, !1);
|
|
f(b);
|
|
},
|
|
function (a) {
|
|
pb(b.crossTicks, a);
|
|
a.remove();
|
|
},
|
|
function (a) {
|
|
return a.key;
|
|
},
|
|
function (a) {
|
|
return a.currentOptions.key;
|
|
}
|
|
);
|
|
b.rootPanel.refresh();
|
|
k &&
|
|
(b.crossTimeout = setTimeout(function () {
|
|
b.crosshair();
|
|
b.chart.series().each(function (a) {
|
|
return a.visualizer.hideHalo();
|
|
});
|
|
}, 8e3));
|
|
return a && 1 === a.length ? a[0] : a;
|
|
}
|
|
};
|
|
c.prototype.setDataRange = function (a) {
|
|
this.min = a[0];
|
|
this.max = a[1];
|
|
a = this.range = { min: a[0], max: a[1] };
|
|
this.unZoomedRange = Oa(a);
|
|
this._isMapHost = !0;
|
|
};
|
|
c.prototype.setMapRange = function (a, c) {
|
|
this.min = Math.min(a[0], c[0]);
|
|
this.max = Math.max(a[1], c[1]);
|
|
this.range = { min: c[0], max: c[1] };
|
|
this.unZoomedRange = { min: this.min, max: this.max };
|
|
this.zoomLimit = Math.max(a[1], c[1]) - Math.min(a[0], c[0]);
|
|
this.zoomRange = this.zoomRange || [Math.min(a[0], c[0]), Math.max(a[1], c[1])];
|
|
this._isMapHost = !0;
|
|
};
|
|
c.prototype.setStaticRange = function (a, c) {
|
|
this._isDragHost = !0;
|
|
this.min = a[0];
|
|
this.max = a[1];
|
|
this.range = { min: c[0], max: c[1] };
|
|
this.zoomLimit = this._sizeMetrics.length = c[1] - c[0];
|
|
this.zoomRange = this.zoomRange.length ? this.zoomRange : c;
|
|
this.linToVal = function (a) {
|
|
return a;
|
|
};
|
|
};
|
|
c.prototype.zoom = function (a, c, e) {
|
|
var b = !1;
|
|
b = !this.isZoomed;
|
|
var d = this._isDragHost ? [this.min, this.max] : this.unZoomedRange,
|
|
h = this._isDragHost ? this.zoomRange : [this.range.min, this.range.max];
|
|
d = d || { min: this.min, max: this.max };
|
|
var k = 1 < la(d.min, d.max) ? 2 : 5,
|
|
l = function (a, b) {
|
|
return 0 === ts(a[0], b[0], k) && 0 === ts(a[1], b[1], k);
|
|
};
|
|
t(a) || t(c)
|
|
? this.canZoom(a, c) &&
|
|
((c = G(du(a, c), 2)),
|
|
(a = c[0]),
|
|
(c = c[1]),
|
|
(this._formatInfo = void 0),
|
|
a !== c &&
|
|
((this.zoomRange = [a, c]),
|
|
(this.isZoomed = !0),
|
|
this._isDragHost || (b && (this.unZoomedRange = { min: this.range.min, max: this.range.max }), (d = this.unZoomedRange), (this.isZoomed = !l([a, c], [d.min, d.max]))),
|
|
"map" === this.options("type") ? ((this.range.min = a), (this.range.max = c)) : this._isDragHost || this.setRange(!1, e),
|
|
(b = !0)))
|
|
: ((this.isDragging = this.isZoomed = !1), (this.zoomRange = []), (this.isZoomed = !1), this.setRange(!0, e));
|
|
b = !l(this.isZoomed ? this.zoomRange : [this.range.min, this.range.max], h);
|
|
!this._isDragHost &&
|
|
w(this.serList, function (a) {
|
|
return a.seriesDirty.pos(!0);
|
|
});
|
|
!1 !== e && this.chart.redraw(e);
|
|
a = this.chartArea;
|
|
b && a.zoomUpdated();
|
|
return b;
|
|
};
|
|
c.prototype.drag = function (a) {
|
|
var b = this.zoomRange.slice(0),
|
|
c = this.unZoomedRange ? this.unZoomedRange : this;
|
|
c = [c.min, c.max];
|
|
this.isDragging = !0;
|
|
b[0] + a < c[0] && (a = c[0] - b[0]);
|
|
b[1] + a > c[1] && (a = c[1] - b[1]);
|
|
b[0] += a;
|
|
b[1] += a;
|
|
if (a) return this._isDragHost ? (this.zoomRange = b) : this.zoom(b[0], b[1], !1), !0;
|
|
};
|
|
c.prototype.canDrag = function () {
|
|
if (this._isDragHost) {
|
|
var a = this.zoomRange.slice(0),
|
|
c = this.unZoomedRange ? this.unZoomedRange : this;
|
|
return la(a[0], a[1]) < la(c.min, c.max);
|
|
}
|
|
return this.isZoomed;
|
|
};
|
|
c.prototype.canZoom = function (a, c) {
|
|
c = G(du(a, c), 2);
|
|
a = c[0];
|
|
c = c[1];
|
|
if (this._isMapHost || (this._isDragHost && (this.min !== this.range.min || this.max !== this.range.max))) return !0;
|
|
if (a !== c) {
|
|
var b = this.zoomLimit;
|
|
"object" === I(this.zoomLimit) && "time" === this.type && (b = lg(this.zoomLimit));
|
|
if (la(c, a) > b) return !0;
|
|
}
|
|
};
|
|
c.prototype.destroyVisuals = function () {
|
|
w(this.rootVisuals, function (a) {
|
|
return a && a.destroy();
|
|
});
|
|
w(this._ticks.slice(0), function (a) {
|
|
return a && a.destroy();
|
|
});
|
|
this._ticks = [];
|
|
this.rootPanel.destroy();
|
|
this.rootVisuals = this.rootPanel = void 0;
|
|
};
|
|
c.prototype.destroy = function () {
|
|
a.prototype.destroy.call(this);
|
|
var b = this.chartArea._axes.indexOf(this);
|
|
-1 < b && this.chartArea._axes.splice(b, 1);
|
|
};
|
|
c.prototype.resetVisuals = function () {
|
|
this.isAdded = !1;
|
|
this._duV = void 0;
|
|
this.destroyVisuals();
|
|
this.setRootVisuals();
|
|
this.initSizeMetrics();
|
|
this.chartArea.rootPanel.refresh();
|
|
};
|
|
c.prototype.getVisualTargets = function (a, c) {
|
|
void 0 === a && (a = {});
|
|
void 0 === c && (c = !1);
|
|
var b = this.rootVisuals,
|
|
d = this.chartArea.rootVisuals,
|
|
g = d.axisFront,
|
|
h = d.axisBehind,
|
|
k = d.axisBehindAll,
|
|
l = z(a.onTop, this.options("onTop")),
|
|
m = z(C(a, "label.onTop"), l);
|
|
a = z(C(a, "gridLine.onTop"), l) ? d.gridLinesFront : d.gridLinesBehind;
|
|
d = b = c = c ? b.mainRng : b.main;
|
|
g && h && ((c = l ? g : h), (b = m ? g : h), (d = m ? g : k));
|
|
return { tick: c, label: b, line: d, grid: a };
|
|
};
|
|
return c;
|
|
})(jc),
|
|
Kf = (function (a) {
|
|
function c(b, d) {
|
|
d = a.call(this, b, d) || this;
|
|
d.items = b;
|
|
d.kindObject = c;
|
|
d.markers = Xa(wb, Sz(d), xc);
|
|
d.ticks = Xa(wb, Rz(d), xc);
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
return c;
|
|
})(wb),
|
|
xD = (function (a) {
|
|
function c(b, c) {
|
|
b = a.call(this, b, c, "sp") || this;
|
|
b.possibleKeys = ["spValue"];
|
|
b.initFP();
|
|
b.options(c, !1);
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function () {
|
|
for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c];
|
|
this.prefix = G(a, 3)[1];
|
|
this.defaultContextOptions = {};
|
|
this.updateOptions = { animation: this.chart.options("animation") };
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
return A(a.prototype.defaultOptions.call(this), { crosshair: { enabled: !0 } });
|
|
};
|
|
c.prototype.renderGridLines = function (a, c) {};
|
|
return c;
|
|
})(jj),
|
|
gu = (function (a) {
|
|
function c(b, c, e) {
|
|
var d = a.call(this, b.chart, e) || this;
|
|
d.parent = b;
|
|
d.palette = c;
|
|
d._axes = [];
|
|
d.isHoriz = z(e.isHoriz, "horizontal" === b.layoutDirection);
|
|
b = A({ orientation: d.isHoriz ? "bottom" : "right", anchorWidth: 0 }, C(c.currentOptions, "colorBar.axis"));
|
|
b = d.axis = new xD(d, b);
|
|
d._axes.push(b);
|
|
d.initFP();
|
|
b.chartArea = d;
|
|
b.setRootVisuals();
|
|
b.isHoriz = d.isHoriz;
|
|
d.collisionManager = new Tm(d);
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
c.prototype.getAxisMarkerVisualTargets = function () {
|
|
var a = this.rootVisuals;
|
|
return { behind: a.axisMarkersFront, front: a.axisMarkersFront };
|
|
};
|
|
c.prototype.requestLegend = function (a) {
|
|
return null;
|
|
};
|
|
c.prototype.initFP = function () {
|
|
var a = this;
|
|
this.axes = Xa(
|
|
Kf,
|
|
function () {
|
|
return a._axes;
|
|
},
|
|
function (a) {}
|
|
);
|
|
};
|
|
c.prototype.getBarSize = function (a) {
|
|
var b = this.palette.options("colorBar") || {},
|
|
c;
|
|
b = this.isHoriz ? (this.swatchSize = [z(b.length, eu), z(b.width, fu)]) : (this.swatchSize = [z(b.width, fu), z(b.length, eu)]);
|
|
if ((a = this.updateChartBox(a))) {
|
|
var f = [0, 0];
|
|
if ((c = this.overflows)) f = [c[1] + c[3], c[0] + c[2]];
|
|
this.swatchSize = [Math.min(b[0], a[2] - f[0]), Math.min(b[1], a[3] - f[1])];
|
|
}
|
|
return this.swatchSize;
|
|
};
|
|
c.prototype.updateChartBox = function (a) {
|
|
a && t(a[2]) && t(a[3]) && (this.chartBox = rb(a, 10));
|
|
return this.chartBox;
|
|
};
|
|
c.prototype.pointOver = function (a) {
|
|
var b = this.axis,
|
|
c = this.palette,
|
|
f = c.getPointValue(a.currentOptions, a.series);
|
|
null === f || Ha(f) || ((c = c.getValueColor(f)), b.crosshair(Sm({ point: a, yVal: f, color: c })));
|
|
};
|
|
c.prototype.pointOut = function () {
|
|
this.axis.crosshair();
|
|
};
|
|
c.prototype.getUserWH = function () {
|
|
var a = this.isHoriz,
|
|
c = this.palette.options("colorBar") || {};
|
|
return [a ? c.length : c.width, a ? c.width : c.length];
|
|
};
|
|
c.prototype.measure = function (a, c) {
|
|
var b = this.axis;
|
|
this.setRootVisuals();
|
|
var d = this.palette.axisConfig,
|
|
g = this.getBarSize(a);
|
|
this.axisSize = void 0;
|
|
if (d) {
|
|
b.range = d;
|
|
b.fitRange = !0;
|
|
b.setViewState();
|
|
this.axisSize = b.measure(g);
|
|
d = this.updateOverflows();
|
|
var h = this.getBarSize(a);
|
|
if (h[0] !== g[0] || h[1] !== g[1]) (g = h), (this.axisSize = b.measure(g));
|
|
g = this.size = this.isHoriz ? [g[0] + d[0], g[1] + this.axisSize[3] + d[1]] : [g[0] + this.axisSize[2] + d[0], g[1] + d[1]];
|
|
b = g[0] > a[2];
|
|
g = g[1] > a[3];
|
|
if (b || g) if (((d = this.getUserWH()), (!c && b && !t(d[0])) || (g && !t(d[1])))) return this.measure(a, !0);
|
|
}
|
|
return this.size;
|
|
};
|
|
c.prototype.renderAxis = function () {
|
|
var a = this.contentRect;
|
|
this.axis.render(a).renderOnCa(a);
|
|
};
|
|
c.prototype.patchAxis = function () {
|
|
var a = this,
|
|
c = a.rootVisuals,
|
|
e = a.axis;
|
|
e.isAdded ||
|
|
((c = [c.topAxes, c.rightAxes, c.bottomAxes, c.leftAxes][a.axis.sideIndex()]),
|
|
e.isVisible &&
|
|
e.rootPanel &&
|
|
(e.add(c),
|
|
c.on("pixelCorrection", function () {
|
|
a.renderAxis();
|
|
}),
|
|
e.rootPanel.isPatched ||
|
|
e.rootPanel.await(function () {
|
|
return a.renderAxis();
|
|
})));
|
|
};
|
|
c.prototype.render = function (a) {
|
|
var b = this.rootVisuals;
|
|
a = this.getBarSize(a);
|
|
this.rootPanel.attr({ width: this.size[0], height: this.size[1] });
|
|
this.contentRect = { x: 0, y: 0, width: a[0], height: a[1] };
|
|
this.patchAxis();
|
|
var c = this.axis.options("scale.invert");
|
|
c = { stops: this.palette.getTraditionalStops(null, !0), angle: this.isHoriz ? (c ? 180 : 0) : c ? 90 : -90 };
|
|
c = oc(c);
|
|
b.colorContent.attr({ fill: c, width: a[0], height: a[1] });
|
|
return this;
|
|
};
|
|
c.prototype.updateOverflows = function () {
|
|
var a = Br(this);
|
|
this.overflows = a.slice(0);
|
|
return [a[1] + a[3], a[0] + a[2]];
|
|
};
|
|
c.prototype.setRootVisuals = function () {
|
|
var a = this.renderer;
|
|
if (!this.rootVisuals) {
|
|
var c = (this.rootVisuals = Hl(a).build({ outline: { width: 0 }, axis: { offset: 0.5 }, content: { holder: { stretch: !1 } }, axisMarkers: !0, overflow: !0 }));
|
|
c.colorContent = a.rect().add(c.dataContent);
|
|
this.rootPanel = c.mainStacks;
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.destroy = function () {
|
|
a.prototype.destroy.call(this);
|
|
this.axis.destroy();
|
|
};
|
|
return c;
|
|
})(jc),
|
|
fu = 25,
|
|
eu = 300,
|
|
ye = function (a) {
|
|
return a && "Series" === a.kind;
|
|
},
|
|
ze = function (a) {
|
|
return a && "Point" === a.kind;
|
|
},
|
|
yD = (function (a) {
|
|
function c(b, c, e) {
|
|
var d = a.call(this, b.chart, C(c.currentOptions, "legendEntry") || {}, [b, c]) || this;
|
|
d.legend = b;
|
|
d.target = c;
|
|
d.sortOrderValue = e;
|
|
d.rowVisuals = [];
|
|
d.textVisualsRef = [];
|
|
d.state = "";
|
|
d.icons = {};
|
|
d.legend = b;
|
|
d.bindEvents();
|
|
d.optionsApplied();
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function () {
|
|
for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c];
|
|
a = G(a, 2);
|
|
c = a[1];
|
|
this.legend = a[0];
|
|
this.target = c;
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
return A(A({ set: 0, checkbox: { color: "#555555", size: 12 } }, this.legend.currentOptions.defaultEntry), this.target.currentOptions.legendEntry);
|
|
};
|
|
c.prototype.options = function (b, c) {
|
|
var d = this.optionsGetter(b);
|
|
if ("NotGetter" !== d) return d;
|
|
var f = z(C(b, "checkbox.checked"), C(b, "checkbox_checked")),
|
|
g = t(f),
|
|
h = C(this.currentOptions, "checkbox.checked");
|
|
d = t(h) && !t(C(this.userOptions, "checkbox.checked")) && !g;
|
|
this.isCustom && !this.legend._isSyncing && this.chart.isRendered && this._onUserOptions && this._onUserOptions(b);
|
|
var k = a.prototype.options.call(this, b, c);
|
|
d ? Z(this.currentOptions, "checkbox.checked", h) : g && this.chart.isRendered && !1 !== c && (this.updateCheckbox(f), this.checkbox && this.checkbox.refresh());
|
|
"EntryWrapper" === this.target.kind && (this.target.options({ legendEntry: b }, c), (this.legend.isDirty = !0), !1 !== c && this.chart.chartAreaSet.reflow(void 0, !1, !0));
|
|
this.optionsApplied();
|
|
this.afterUpdate(c);
|
|
return k;
|
|
};
|
|
c.prototype.optionsApplied = function () {
|
|
this.userOptions.checkbox && delete this.userOptions.checkbox.checked;
|
|
this.chart.triggerOptionsApplied("legendEntry", this);
|
|
};
|
|
c.prototype.render = function (a) {
|
|
this.updateStyles(!0);
|
|
return this;
|
|
};
|
|
c.prototype.zoomTo = function () {
|
|
this.target && this.target.zoomTo && this.target.zoomTo();
|
|
return this;
|
|
};
|
|
c.prototype.refreshOptions = function (a) {
|
|
var b = this.target.options("legendEntry");
|
|
b && this.options(b, a);
|
|
};
|
|
c.prototype.getBounds = function (b) {
|
|
var c = this;
|
|
if (b) return a.prototype.getBounds.call(this, b);
|
|
var e = [];
|
|
w(this.rowVisuals, function (a) {
|
|
e.push(c.getBounds(a));
|
|
});
|
|
return Ea(e);
|
|
};
|
|
c.prototype.updateTrackerPosition = function () {
|
|
var a = this.getBounds();
|
|
a && this.trackerElement.attr(Gc(rb(a, -2)));
|
|
};
|
|
c.prototype.updateCheckbox = function (a) {
|
|
if (this.checkbox) {
|
|
var b = this.target,
|
|
c = this.checkbox.attrs.name;
|
|
a = "" + Yr(b) + (z(a, Zr(b)) ? "" : "-blank");
|
|
a !== c && this.checkbox.attr({ name: a });
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.setRootVisuals = function () {
|
|
return this;
|
|
};
|
|
c.prototype.bindEvents = function () {
|
|
var a = this,
|
|
c = a.chart,
|
|
e = a.target,
|
|
f;
|
|
if (!a.trackerElement) {
|
|
var g = "pointer",
|
|
h = a.hasUserEvent("click");
|
|
(f = a.options("cursor")) ? (g = f) : ze(e) ? e.series.options("pointSelection") || h || e.series.chartArea.canZoom() || (g = "default") : ye(e) || h ? "EntryWrapper" !== e.kind || h || (g = "default") : (g = "default");
|
|
e = a.options("initialCursor");
|
|
!c.isRendered && e && (g = e);
|
|
c = a.trackerElement = a.trackerElement || a.renderer.renderer.rect().attr({ cursor: g, fill: "rgba(255,255,255,0)", zIndex: 1 }).add(c.rootVisuals.front);
|
|
c.on("mouseover", function (b) {
|
|
return a.mouseover(b);
|
|
});
|
|
c.on("mouseout", function (b) {
|
|
return a.mouseout(b);
|
|
});
|
|
c.on("vclick", function (b) {
|
|
return a.click(b);
|
|
});
|
|
}
|
|
};
|
|
c.prototype.mouseover = function (a) {
|
|
var b = this,
|
|
c = b.legend,
|
|
f = b.target,
|
|
g = ye(f),
|
|
h = ze(f),
|
|
k = h || g,
|
|
l = b.chart.ctManager,
|
|
m = l.isType("map"),
|
|
n = l.isType("calendar");
|
|
l = "select" === f._state;
|
|
c = c.chart.chartAreas(0);
|
|
var p = c.debounce;
|
|
a = "touchend" === a.type;
|
|
m = Ul(b) && !m && !n;
|
|
n = function () {
|
|
p.defer(
|
|
"mute",
|
|
function () {
|
|
Ol(f, "", Nl(b));
|
|
},
|
|
36
|
|
);
|
|
};
|
|
c.resetTimers();
|
|
if (!1 !== b.triggerUser("mouseOver", f)) {
|
|
if (f.mouseOver) {
|
|
if (k && m)
|
|
if ((!l && f.setState(""), a && b.chart.highlighted === f)) p.run("unmute") || Qb(b.chart);
|
|
else {
|
|
n();
|
|
var q = !0;
|
|
}
|
|
} else if (g && m)
|
|
if (f.isVisible) n(), (q = !0);
|
|
else var r = !0;
|
|
else m && !h && (r = !0), !l && f.setState("hover");
|
|
b.setState("hover");
|
|
r
|
|
? q &&
|
|
b.chart.touched() &&
|
|
p.defer(
|
|
"unmute",
|
|
function () {
|
|
Qb(f.chart);
|
|
},
|
|
2e3
|
|
)
|
|
: p.clear("unmute");
|
|
}
|
|
};
|
|
c.prototype.mouseout = function (a) {
|
|
var b = this.target,
|
|
c = ye(b),
|
|
f = ze(b);
|
|
a = "select" === b._state || "select" === b.state;
|
|
!1 !== this.triggerUser("mouseOut", b) &&
|
|
((c || f) &&
|
|
Ul(this) &&
|
|
((c = (f ? b.series.chartArea : b.chartArea).debounce),
|
|
c.clear("mute"),
|
|
c.defer(
|
|
"unmute",
|
|
function () {
|
|
Qb(b.chart);
|
|
},
|
|
230
|
|
)),
|
|
b.setState && !a && b.setState(""),
|
|
this.updateStyles());
|
|
};
|
|
c.prototype.click = function (a) {
|
|
var b = this,
|
|
c = b.target,
|
|
f = "touchend" === a.type,
|
|
g = ze(c),
|
|
h = (g ? c.series.chartArea : c.chartArea) || b.chart.chartAreaSet.items[0],
|
|
k,
|
|
l = ye(c) || g;
|
|
f && h && h.debounce.clear("touchTimeout");
|
|
var m = function (a) {
|
|
return Z(b.currentOptions, "checkbox.checked", a);
|
|
};
|
|
if (b.checkbox && !l) {
|
|
var n = m(!C(b.currentOptions, "checkbox.checked"));
|
|
b._onUserOptions = function (a) {
|
|
a = z(C(a, "checkbox.checked"), C(a, "checkbox_checked"));
|
|
t(a) && (k = !0);
|
|
};
|
|
}
|
|
if (!1 !== c.triggerUser("legendEntryClick") && !1 !== b.triggerUser("click", c)) {
|
|
if (l) {
|
|
l = b.chart.ctManager;
|
|
n = l.isType("map");
|
|
l = l.isType("calendar");
|
|
m = ye(c);
|
|
var p = c.isVisible,
|
|
q = b.chart.options("axisToZoom");
|
|
q = q && "none" !== q;
|
|
Ul(b) &&
|
|
(f && g && !b.checkbox
|
|
? (b.mouseover(a),
|
|
h.debounce.defer(
|
|
"touchTimeout",
|
|
function () {
|
|
h.clickOff();
|
|
},
|
|
8e3
|
|
))
|
|
: !1 !== p && Qb(c.chart));
|
|
c.visible && !l && !n && m && c.visible();
|
|
c.zoomTo && (q || l) && c.zoomTo();
|
|
this.chart.resetTimers();
|
|
} else b.checkbox && (b.updateCheckbox(n), b.checkbox.refresh(), m(n));
|
|
b.checkbox && c.click && c.click({ eventArgs: a, accumulate: !!b.checkbox });
|
|
} else b._onUserOptions && !k && m(!C(b.currentOptions, "checkbox.checked"));
|
|
b._onUserOptions = void 0;
|
|
a.preventDefault();
|
|
};
|
|
c.prototype.updateStyles = function (a) {
|
|
var b = this.target,
|
|
c = this.chart.ctManager;
|
|
c.isType("map");
|
|
var f = C(this.currentOptions, "checkbox.checked");
|
|
c = c.isType("calendar");
|
|
f = t(f) || (this.checkbox && c);
|
|
this.targetVisible = z(b.isVisible, !0);
|
|
-1 < this.legend.getTemplateColumns().indexOf("%icon") && this.styleIconVisual();
|
|
f && this.updateCheckbox(z(C(this.currentOptions, "checkbox.checked"), this.targetVisible));
|
|
!1 === this.targetVisible ? this.setState("hidden", a) : this.setState("", a);
|
|
};
|
|
c.prototype.setColumns = function () {
|
|
var a = this,
|
|
c = this,
|
|
e = c.currentOptions,
|
|
f = c.legend,
|
|
g = e.set,
|
|
h = f.getTemplateColumns(g),
|
|
k = c.target;
|
|
c.refreshOptions(!1);
|
|
var l = C(c.userOptions, "checkbox.enabled");
|
|
C(f.currentOptions, "defaultEntry.checkbox.enabled");
|
|
var m = f.checkboxManual ? l : Tz(k) ? !1 !== l : l;
|
|
if (f.isVisible) {
|
|
var n = qc(e);
|
|
delete n.val;
|
|
n.autoWrap = "none";
|
|
var p = f.getColumnAlignments(g);
|
|
c.rowVisuals = B(h, function (b, d) {
|
|
var f = b.toLowerCase(),
|
|
g;
|
|
if ("%checkbox" === f)
|
|
(g = c.rowVisuals[d]) ||
|
|
(m
|
|
? ((d = A({ fill: e.checkbox.color }, e.checkbox, { name: "" + Yr(k) + (Zr(k) ? "" : "-blank") })),
|
|
(g = b = c.renderer.panel({ yAlignment: "center" })),
|
|
(c.checkbox = c.renderer.icon(d)),
|
|
c.checkbox.add(b),
|
|
(d = C(e, "checkbox.checked")),
|
|
t(d) && c.updateCheckbox(d))
|
|
: (g = c.renderer.panel({})));
|
|
else if ("%icon" === f)
|
|
if ((g = c.rowVisuals[d])) (c.iconVisual = g = a.getIconVisual()), (g = g.root);
|
|
else {
|
|
c.iconVisual = g = a.getIconVisual();
|
|
c.rootVisuals = { icon: g };
|
|
var h = g.base,
|
|
l = g.extra;
|
|
g.root.attr({ width: a._iconSize ? c._iconSize[0] : e.iconWidth, height: a._iconSize ? c._iconSize[1] : 10, xAlignment: "center", yAlignment: "middle" });
|
|
g = g.root;
|
|
g.on("pixelCorrection", function () {
|
|
var a = z(C(h, "data.attrs.stroke-width"), 1);
|
|
a = nd(g, [0, 0], a);
|
|
h && h.attr({ translate: a });
|
|
l && l.attr({ translate: a });
|
|
});
|
|
}
|
|
else
|
|
"%name" === f ? (b = c.options("name")) : "%value" === f && (b = c.options("value")),
|
|
"function" === typeof b && (b = b(k)),
|
|
c.options("attributes") && (b = Gg({ attr: b }, c, A({ mode: "AttrOnly" }, c.chart.getFormatInfo()))),
|
|
(b = k.replaceTokens(b)),
|
|
(f = A({ xAlignment: p[d], yAlignment: "middle" }, n)),
|
|
(g = c.rowVisuals[d]) ? (f.val = b) : ((g = c.renderer.textStack(b)), c.textVisualsRef.push(g)),
|
|
(!1 === k.isVisible && k.chart.isRendered) || g.attr(f);
|
|
(!1 === k.isVisible && k.chart.isRendered) || c.refreshOptions(!1);
|
|
return g;
|
|
});
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.getIconVisual = function () {
|
|
var a = this.currentOptions,
|
|
c = this.target,
|
|
e = a.iconWidth,
|
|
f = a.icon,
|
|
g = I(f);
|
|
c = c.getIconVisual([this._iconSize ? this._iconSize[0] : e, this._iconSize ? this._iconSize[1] : 10], c, this);
|
|
this._iconSize = null;
|
|
if (f) {
|
|
var h = c.base || c.extra;
|
|
h && ((e = "object" === g ? ("none" === f.name ? 10 : z(f.size, f.width, e)) : "string" === g && "none" === f ? 10 : e), (a = Ld(a.icon, 0, 0, e, e))) && (h.attr({ d: a }), (this._iconSize = [e, e]));
|
|
}
|
|
return c;
|
|
};
|
|
c.prototype.styleIconVisual = function () {
|
|
var a = this.currentOptions,
|
|
c = this.getIconVisual();
|
|
this.target.styleIconVisual(c, this);
|
|
c = this.getIconVisual();
|
|
if ((a = a.icon)) if ((c = c.base || c.extra)) (a = fc(a)), c.attr(a);
|
|
};
|
|
c.prototype.setState = function (a, c) {
|
|
if (a !== this.state || c) {
|
|
var b = A({}, this.currentOptions);
|
|
"normal" !== a && (c = this.options("states." + a)) && A(b, c);
|
|
var d = qc(b);
|
|
delete d.val;
|
|
d.autoWrap = "none";
|
|
c = this.legend.rootPanel;
|
|
b = c.getBbox();
|
|
w(this.textVisualsRef, function (a) {
|
|
a.attr(d);
|
|
a.isPatched && a.patch();
|
|
});
|
|
var g = c.setPreliminarySize(!0).getBbox();
|
|
(g.width === b.width && g.height === b.height) || c.refresh();
|
|
this.state = a;
|
|
}
|
|
};
|
|
c.prototype.remove = function (a) {
|
|
var b = this.legend;
|
|
this.destroy();
|
|
b.syncCustomEntries();
|
|
b.isDirty = !0;
|
|
!1 !== a && b.chart.chartAreaSet.reflow(!1, !1, !0);
|
|
};
|
|
c.prototype.hideTracker = function () {
|
|
this.trackerElement && this.trackerElement.hide(!0);
|
|
};
|
|
c.prototype.destroy = function () {
|
|
var a = this.legend,
|
|
c,
|
|
e = pb(this.legend.items, this);
|
|
if ((c = S(a._userEntries, { id: this.id }))) pb(a._userEntries, c), pb(a.userOptions.customEntries, c), pb(a.currentOptions.customEntries, c);
|
|
-1 < e && (this.legend.isDirty = !0);
|
|
this.textVisualsRef = [];
|
|
w(this.rowVisuals, function (a) {
|
|
return a.destroy();
|
|
});
|
|
this.trackerElement && this.trackerElement.destroy();
|
|
};
|
|
return c;
|
|
})(jc),
|
|
hu = [120, 70],
|
|
zD = (function (a) {
|
|
function c() {
|
|
var b = (null !== a && a.apply(this, arguments)) || this;
|
|
b.isDirty = !0;
|
|
b.fillShading = "box";
|
|
b.items = [];
|
|
b.spItems = [];
|
|
b.spMode = "none";
|
|
b._aligmentsCache = [];
|
|
b._customEntries = [];
|
|
return b;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function (a) {
|
|
this.alignTo = a;
|
|
this.kind = "Legend";
|
|
this.updateSp();
|
|
this.initFP();
|
|
};
|
|
c.prototype.initFP = function () {
|
|
var a = this;
|
|
a.entries = Xa(
|
|
wb,
|
|
function () {
|
|
return a.items;
|
|
},
|
|
function () {
|
|
return 0;
|
|
},
|
|
{
|
|
push: function (b, c) {
|
|
a._userEntries = a._userEntries || [];
|
|
a._userEntries.push(b);
|
|
a.syncCustomEntries();
|
|
a.isDirty = !0;
|
|
!1 !== c && a.chart.chartAreaSet.reflow(void 0, !1, !0);
|
|
},
|
|
}
|
|
);
|
|
};
|
|
c.prototype.options = function (b, c) {
|
|
var d = this.optionsGetter(b);
|
|
if ("NotGetter" !== d) return d;
|
|
this.isDirty = !0;
|
|
a.prototype.options.call(this, b, !1);
|
|
!1 !== c && this.chart.chartAreaSet.reflow(void 0, !1, !0);
|
|
this.afterUpdate(c);
|
|
return this;
|
|
};
|
|
c.prototype.updateSp = function () {
|
|
var a = this.chart,
|
|
c,
|
|
e = a.palette && !1 !== C(a.palette, "colorBar.visible");
|
|
(a = this.smartPalette = "object" === I((c = a.palette)) && e ? a.getSmartPalette(c) : void 0) ? (this.spMode = a.mode) : !1 === e && (this.spMode = "colorBar");
|
|
this.colorBar && ("colorBar" !== this.spMode ? (this.colorBar.destroy(), (this.colorBar = void 0)) : this.smartPalette.destroyEntries());
|
|
return this;
|
|
};
|
|
c.prototype.allowEntries = function () {
|
|
this.chart.ctManager.isType("calendar");
|
|
return !0;
|
|
};
|
|
c.prototype.setOptions = function () {
|
|
a.prototype.setOptions.call(this);
|
|
this.isVisible = !1 !== this.currentOptions.visible;
|
|
this.setLayoutDirection();
|
|
this.updateSp();
|
|
var b = (this._userEntries = this.currentOptions.customEntries || []);
|
|
w(b, zb);
|
|
return this;
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
var a = this.chart;
|
|
a = a ? a.boxDefaults() : Cf();
|
|
var c = a.label.style;
|
|
return {
|
|
position: "right top",
|
|
fill: a.fill,
|
|
layout: "auto",
|
|
radius: a.radius,
|
|
boxPointerEvents: !1,
|
|
boxVisible: a.boxVisible,
|
|
corners: ["cut", "square", "cut", "square"],
|
|
outline: a.outline,
|
|
title: { label: { style: { fontSize: "13px" } } },
|
|
defaultEntry: { name: "%name", value: "%value", iconWidth: 20, style: { color: c.color, fontSize: "11px" }, states: { hidden: { style: { color: "#707070" } } } },
|
|
headerStyle: { color: c.color, fontSize: "12px", fontWeight: "normal" },
|
|
horizontalSpacing: 3,
|
|
margin: !1 === a.boxVisible ? 0 : 7,
|
|
template: "%value %icon %name",
|
|
name: "%name",
|
|
value: "%value",
|
|
shadow: z(a.shadow, !0),
|
|
sortOrder: 0,
|
|
};
|
|
};
|
|
c.prototype.normalizeOptions = function (b, c) {
|
|
b = a.prototype.normalizeOptions.call(this, b, c);
|
|
t(b.width) && !t(b.maxWidth) && (b.maxWidth = b.width);
|
|
return b;
|
|
};
|
|
c.prototype.contextOptions = function () {
|
|
return A({}, this.defaultContextOptions || {}, C(this.chart, "typeContextOptions.legend") || {});
|
|
};
|
|
c.prototype.dependentOptions = function () {
|
|
return [
|
|
{
|
|
option: "fill",
|
|
check: function (a) {
|
|
return a;
|
|
},
|
|
dependent: "margin",
|
|
value: 7,
|
|
},
|
|
];
|
|
};
|
|
c.prototype.defaultEntryOptions = function () {};
|
|
c.prototype.pointOver = function (a) {
|
|
this.colorBar && this.colorBar.pointOver(a);
|
|
};
|
|
c.prototype.pointOut = function () {
|
|
this.colorBar && this.colorBar.pointOut();
|
|
};
|
|
c.prototype.setRootVisuals = function () {
|
|
var a = this.currentOptions,
|
|
c = this.rootVisuals,
|
|
e = this.rootPanel;
|
|
c ||
|
|
((c = this.rootVisuals = { title: void 0, stack: void 0, background: void 0, grid: void 0 }),
|
|
(e = this.rootPanel = e || this.renderer.box()),
|
|
(e = c.stack = c.stack || this.renderer.panel({ type: "stack:y" }).add(e)),
|
|
(c.title = c.title || new Fi(this.chart, { text: "", margin: 3 }).add(e)),
|
|
(c.grid = c.grid || this.renderer.panel({ type: "grid", xAlignment: "center", cellSpacing: z(a.cellSpacing, 5) }).add(e)),
|
|
c.gridSp ||
|
|
((c.gridSpDivider = this.renderer
|
|
.textStack("<hr>")
|
|
.attr({ xAlignment: "center", width: "100%", fontSize: 5, padding: [0, 5], suspend: !0 })
|
|
.visible(!1)
|
|
.add(e)),
|
|
(c.gridSp = this.renderer.panel({ type: "grid", xAlignment: "center", cellSpacing: z(a.cellSpacing, 5) }).add(e))));
|
|
return this;
|
|
};
|
|
c.prototype.setAttribs = function () {
|
|
var a = this.currentOptions,
|
|
c = a.margin;
|
|
"position" === wr(a.position) && c && "number" === typeof c && (a.margin = this.getAdjustedMarginVal(c));
|
|
a = Cg(a, this.fillShading);
|
|
delete a.width;
|
|
this.attribs = { bg: a };
|
|
return this;
|
|
};
|
|
c.prototype.getAdjustedMarginVal = function (a) {
|
|
var b = [0, 0, 0, 0];
|
|
b[{ t: 2, r: 3, b: 0, l: 1 }[ur(this.options("position"))]] = a;
|
|
return b;
|
|
};
|
|
c.prototype.measure = function (a) {
|
|
this.render(t(a) ? Gc(a) : this.chart.renderer.rootBox);
|
|
this.isMeasured = !0;
|
|
return this.getLegendBoxWithMargins();
|
|
};
|
|
c.prototype.render = function (a) {
|
|
var b = this,
|
|
c = b.currentOptions,
|
|
f = "vertical" !== b.layoutDirection,
|
|
g = b.rootPanel,
|
|
h = b.rootVisuals,
|
|
k = a ? ha(a) : void 0;
|
|
if (a) {
|
|
a = qa(a);
|
|
var l = !0;
|
|
} else a = {};
|
|
b.updateSp();
|
|
if (!l) return this;
|
|
if (b.isDirty || a)
|
|
if (b.isVisible) {
|
|
g.visible(!0);
|
|
b.setTargetItems();
|
|
b.sortByInternalSortValue();
|
|
var m = "colorBar" === b.spMode && b.smartPalette,
|
|
n = 0 < b.entries().items.length,
|
|
p = m && n,
|
|
q = n && "ranges" === b.spMode;
|
|
h.grid.attr({ width: null, height: null });
|
|
b.setAttribs();
|
|
n = b.attribs;
|
|
var r = A({}, b.options("title.label"));
|
|
C(r, "text.length") && (r.text = b.chart.replaceTokens(r.text));
|
|
var u = void 0;
|
|
(u = C(r, "align")) && h.title.rootPanel.attr({ xAlignment: u });
|
|
h.title.options(r);
|
|
r = qa(a);
|
|
p && l && ((k = io(k, [0, -hu[f ? 1 : 0], 0, 0])), (r = Gc(k)));
|
|
var t = function (a, b) {
|
|
void 0 === b && (b = h.grid);
|
|
a.borders.length && b.attr({ borders: a.borders });
|
|
b.val(a.rows);
|
|
};
|
|
if (l && q) {
|
|
f = h.gridSp.getBboxArray();
|
|
l = h.gridSpDivider.getBboxArray();
|
|
f = [0, 0, 0, f[3] + h.title.getSize()[1] + l[3]];
|
|
a = jo(k, f);
|
|
h.gridSpDivider.suspend = !0;
|
|
f = b.getItemSets();
|
|
k = b.getItemBoxSets(a, f);
|
|
a = yv(k, { limitBox: a });
|
|
var v = [h.grid, h.gridSp],
|
|
y = 0,
|
|
z = a.ids;
|
|
w(f, function (a, c) {
|
|
a && t(b.getSetRows(a, z[Math.min(c, z.length - 1)]), v[c]);
|
|
a && y++;
|
|
});
|
|
h.gridSpDivider.visible(1 < y);
|
|
b.updateStyles();
|
|
} else {
|
|
b.allowEntries() && t(b.getRows());
|
|
k = void 0;
|
|
p = m ? r : b.chart.renderer.rootBox;
|
|
if (b.allowEntries() && l && ((k = Math.ceil(b.getApproximiteSplitFactor(p))), 1 < k)) for (t(b.getRows(k)); 1 < b.getApproximiteSplitFactor(p) && k < b.items.length; ) t(b.getRows(++k));
|
|
b.updateStyles();
|
|
m &&
|
|
l &&
|
|
(h.gridSpDivider.visible(0 < h.grid.childElements.length).setPreliminarySize(!0),
|
|
(k = h.grid.getBboxArray()),
|
|
(l = h.gridSpDivider.getBboxArray()),
|
|
(a = jo(ha(a), [0, 0, 0, k[3] + h.title.getSize()[1] + l[3]])),
|
|
(l = void 0),
|
|
!f && k[2] > 1.5 * a[3] && k[2] > hu[0] ? ((a = [0, 0, k[2], a[3]]), (l = !0)) : 140 < a[3] && (a[3] *= 0.8),
|
|
h.gridSp.val([[b.getSwatch(a, l)]]));
|
|
}
|
|
h.grid.attr({ width: c.width, height: c.height });
|
|
g.attr(n.bg);
|
|
b.isDirty = !1;
|
|
} else g.isPatched && (g.attr({ width: null, height: null }), g.visible(!1), g.refresh());
|
|
b.chart.triggerOptionsApplied("legend", b);
|
|
return this;
|
|
};
|
|
c.prototype.invalidate = function () {
|
|
this.isDirty = !0;
|
|
return this;
|
|
};
|
|
c.prototype.updateStyles = function () {
|
|
this.isVisible &&
|
|
w(this.items, function (a) {
|
|
a.updateStyles();
|
|
});
|
|
return this;
|
|
};
|
|
c.prototype.getApproximiteSplitFactor = function (a) {
|
|
var b = this.rootVisuals,
|
|
c = this.currentOptions;
|
|
this.rootPanel.update();
|
|
var f = b.gridSp.getBbox(),
|
|
g = b.gridSpDivider.getBbox();
|
|
b = b.stack.getBbox();
|
|
b.height -= f.height + g.height;
|
|
f = this.curRect = b;
|
|
a = "vertical" === this.layoutDirection ? f.height / (a.height || f.height) : f.width / (a.width || f.width);
|
|
a = Pj(a, 2);
|
|
1 >= a && (c = z(c.maxWidth, c.width)) && (a = f.width / c);
|
|
return a;
|
|
};
|
|
c.prototype.getRows = function (a) {
|
|
void 0 === a && (a = 1);
|
|
return this.getSetRows(this.getVisibleItems(), a);
|
|
};
|
|
c.prototype.getSetRows = function (a, c) {
|
|
void 0 === c && (c = 1);
|
|
var b = this,
|
|
d = [],
|
|
g = b.renderer,
|
|
h = b.currentOptions,
|
|
k = [],
|
|
l = [],
|
|
m = a.length && a[0].set,
|
|
n = function (a, b) {
|
|
return w(a, function (a) {
|
|
k.push(a);
|
|
l.push(b);
|
|
});
|
|
},
|
|
p = function (a, c) {
|
|
a ? (a.setColumns ? ((c = a.setColumns().rowVisuals), n(c, a.currentOptions.lineAbove ? [!0, !1, !1, !1] : null)) : n(a, null)) : n(b.getBlankEntry(m), null);
|
|
},
|
|
q = function () {
|
|
k.push(g.panel({ width: h.horizontalSpacing }));
|
|
l.push(null);
|
|
},
|
|
r = function (a) {
|
|
if (u && a) {
|
|
for (var c = 0; c < a; c++) p(b.getHeaderEntry()), c !== a - 1 && q();
|
|
d.push(k);
|
|
k = [];
|
|
}
|
|
},
|
|
u = void 0 !== b.getHeaderEntry(m),
|
|
t = Math.ceil(a.length / c);
|
|
c = [];
|
|
for (var v = 0, y = 0, z = a.length; y < z; y += t) {
|
|
var A = a.slice(y, y + t);
|
|
c.push(A);
|
|
v = Math.max(v, A.length);
|
|
}
|
|
if ("vertical" === b.layoutDirection)
|
|
for (r(c.length), a = 0; a < v; a++) {
|
|
k = [];
|
|
r = 0;
|
|
for (t = c.length; r < t; r++) p(c[r][a]), r !== t - 1 && q();
|
|
d.push(k);
|
|
}
|
|
else
|
|
for (r(v), r = 0, t = c.length; r < t; r++) {
|
|
k = [];
|
|
for (a = 0; a < v; a++) p(c[r][a]), a !== v - 1 && q();
|
|
d.push(k);
|
|
}
|
|
return { rows: d, borders: l };
|
|
};
|
|
c.prototype.setLayoutDirection = function () {
|
|
var a = this.currentOptions,
|
|
c = a.layout;
|
|
c = c || "auto";
|
|
var e = { t: "horizontal", r: "vertical", b: "horizontal", l: "vertical" };
|
|
a = ur(a.position) || "r";
|
|
this.layoutDirection = ("auto" === c ? e[a[0]] : c) || "vertical";
|
|
};
|
|
c.prototype.getSwatch = function (a, c) {
|
|
this.setLayoutDirection();
|
|
var b = this.smartPalette;
|
|
this.colorBar && b.id !== this.colorBar.palette.id
|
|
? (this.colorBar.destroy(), (c = this.colorBar = new gu(this, b, { maxWidth: 400, maxHeight: 400, isHoriz: c })))
|
|
: (c = this.colorBar = this.colorBar || new gu(this, b, { maxWidth: 400, maxHeight: 400, isHoriz: c }));
|
|
c.measure(a) && c.render();
|
|
!this.allowEntries() &&
|
|
w(this.getVisibleItems(), function (a) {
|
|
a.hideTracker();
|
|
});
|
|
return c.rootPanel;
|
|
};
|
|
c.prototype.setTargetItems = function () {
|
|
var a = this.chart;
|
|
this.smartPalette && (this._targetItems = "ranges" === this.spMode ? this.smartPalette.syncLegendEntries(this) : void 0);
|
|
a.calIndexer && a.calIndexer.syncLegendEntries(this);
|
|
this.syncCustomEntries();
|
|
};
|
|
c.prototype.getVisibleItems = function () {
|
|
var a = z(this._targetItems, []).slice(0);
|
|
this.allowEntries() && a.push.apply(a, H(this.items));
|
|
a = $a(a);
|
|
return ea(a, function (a) {
|
|
if (!1 !== a.options("visible")) return a;
|
|
});
|
|
};
|
|
c.prototype.getItemSets = function () {
|
|
var a = this.getVisibleItems(),
|
|
c = [];
|
|
w(a, function (a) {
|
|
var b = z(a.currentOptions.set, 0);
|
|
c[b] ? c[b].push(a) : (c[b] = [a]);
|
|
});
|
|
return c;
|
|
};
|
|
c.prototype.getItemBoxSets = function (a, c) {
|
|
var b = this,
|
|
d = b.rootPanel,
|
|
g = b.rootVisuals,
|
|
h = "vertical" !== b.layoutDirection;
|
|
c = c || b.getItemSets();
|
|
var k = [],
|
|
l = [g.grid, g.gridSp];
|
|
w(c, function (c, e) {
|
|
if (c) {
|
|
e = l[e];
|
|
if (c) {
|
|
for (var f = [], g = Bv(c.length), m = void 0, n = 0, t = g.length; n < t; n++) {
|
|
var v = g[n],
|
|
w = b.getSetRows(c, g[n]);
|
|
w.borders.length && e.attr({ borders: w.borders });
|
|
e.val(w.rows);
|
|
d.update();
|
|
w = e.getBboxArray();
|
|
if (h)
|
|
if (w[2] < a[2]) {
|
|
w.id = v;
|
|
f.push(w);
|
|
break;
|
|
} else (m = w.slice(0)), (m.id = v);
|
|
else {
|
|
if (w[2] > a[2]) {
|
|
m = w.slice(0);
|
|
m.id = v;
|
|
break;
|
|
}
|
|
w[3] < a[3] ? ((w.id = v), f.push(w)) : ((m = w.slice(0)), (m.id = v));
|
|
}
|
|
}
|
|
!f.length && m.length && f.push(m);
|
|
c = f;
|
|
} else c = void 0;
|
|
c.length && k.push(c);
|
|
}
|
|
});
|
|
return k;
|
|
};
|
|
c.prototype.getBlankEntry = function (a) {
|
|
var b = [],
|
|
c = this.renderer;
|
|
a = this.getTemplateColumns(a).length;
|
|
for (var f = 0; f < a; f++) b.push(c.panel());
|
|
return b;
|
|
};
|
|
c.prototype.getColumnAlignments = function (a) {
|
|
void 0 === a && (a = 0);
|
|
var b = this,
|
|
c = !b.chart.chartAreaSet.series().length;
|
|
if (b._aligmentsCache[a]) return b._aligmentsCache[a];
|
|
var f = b.getTemplateColumns(a),
|
|
g =
|
|
(function () {
|
|
return S(b.items, function (a) {
|
|
return !a.isCustom;
|
|
});
|
|
})() ||
|
|
b.items[1] ||
|
|
b.items[0];
|
|
if (!g) return [];
|
|
var h = g.target,
|
|
k = function (a, c) {
|
|
var d = a.replace(",", ".");
|
|
a = parseFloat(d);
|
|
if (!a && 0 !== a) return !1;
|
|
a = a.toString();
|
|
if (a === d) return !0;
|
|
d = d.length - a.length;
|
|
for (var e = 1; e < b.items.length; e++) {
|
|
var f = b.items[e].target.replaceTokens(c);
|
|
a = parseFloat(f);
|
|
if (!a && 0 !== a) return !1;
|
|
a = a.toString();
|
|
if (f.length - a.length !== d) return !1;
|
|
}
|
|
return !0;
|
|
};
|
|
f = B(f, function (a, b) {
|
|
if ("%icon" === a) return "center";
|
|
var d;
|
|
c ? (b = d = Gg({ attr: a }, g, g.chart.getFormatInfo())) : ((b = h.replaceTokens(a)), (d = h.replaceTokens({ token: a })));
|
|
var e = I(d);
|
|
"object" === e && ((e = "string"), (d = d.token || d));
|
|
"INVALID TOKEN" === d ? (e = "number") : "string" === e && k(b, a) && (e = "number");
|
|
return "string" === e ? "left" : "right";
|
|
});
|
|
return (b._aligmentsCache[a] = f);
|
|
};
|
|
c.prototype.getTemplateColumns = function (a) {
|
|
var b = this.currentOptions.template,
|
|
c = !!b.pop,
|
|
f = t(a),
|
|
g = !0 === C(this.userOptions, "defaultEntry.checkbox.enabled");
|
|
b = Vl(c ? b[f ? a : 0] : b, !1);
|
|
c = this.userOptions.template;
|
|
!a || (c && "%icon %name" !== c) || "ranges" !== this.spMode || (b = Vl("%icon %value", !1));
|
|
S(b, function (a) {
|
|
return "%checkbox" === a.trim().toLowerCase();
|
|
}) ||
|
|
(this.items.filter(function (a) {
|
|
return !0 === a.userOptions.checkbox || C(a.userOptions, "checkbox.enabled");
|
|
}).length
|
|
? (b.unshift("%checkbox"), (this.checkboxManual = !0))
|
|
: (a = this.userOptions.customEntries) &&
|
|
a.filter(function (a) {
|
|
return !0 === a.checkbox || C(a, "checkbox.enabled");
|
|
}).length &&
|
|
(b.unshift("%checkbox"), (this.checkboxManual = !0)),
|
|
!ae(b, "%checkbox") && g && b.unshift("%checkbox"));
|
|
g && this.checkboxManual && (this.checkboxManual = !1);
|
|
return b;
|
|
};
|
|
c.prototype.getHeaderEntry = function (a) {
|
|
var b = this,
|
|
c = b.currentOptions,
|
|
f = Vl(c.header, !1);
|
|
if (f) {
|
|
var g = b.getTemplateColumns(a);
|
|
a = g.length;
|
|
var h = qc({ style: c.headerStyle });
|
|
f && f.length && f.length !== g.length && ((c = g.indexOf("%checkbox")), -1 < c && f.splice(c, 0, ""));
|
|
S(b.items, function (a) {
|
|
return !a.isCustom;
|
|
});
|
|
var k = b.getColumnAlignments();
|
|
c = [];
|
|
if (f.length === a)
|
|
return (c = B(f, function (a, c) {
|
|
-1 < a.indexOf("%") && (a = b.chart.replaceTokens(a));
|
|
a = b.renderer.textStack().val(a);
|
|
a.attr(A({ xAlignment: k[c] || "left", yAlignment: "bottom" }, h));
|
|
return a;
|
|
}));
|
|
}
|
|
};
|
|
c.prototype.getLegendBoxWithMargins = function () {
|
|
var a = this.rootPanel;
|
|
1 < a.combinations.length ? this.rootPanel.refresh(!0) : this.rootPanel.setPreliminarySize(!0);
|
|
return a.getGlobalBboxArray(!0);
|
|
};
|
|
c.prototype.positionUpdated = function (a) {
|
|
w(this.items, function (a, b) {
|
|
a.updateTrackerPosition();
|
|
});
|
|
};
|
|
c.prototype.addEntry = function (a, c, e) {
|
|
void 0 === c && (c = 0);
|
|
var b;
|
|
a.legend = this;
|
|
e && (!t((b = e.replaceIndex)) || 0 > b) && (b = this.items.indexOf(e));
|
|
a = new yD(this, a, c);
|
|
-1 < b ? (this.items.splice(b + 1, 0, a), (e.replaceIndex = b + 1)) : this.items.push(a);
|
|
this.sortByInternalSortValue();
|
|
this.isDirty = !0;
|
|
return a;
|
|
};
|
|
c.prototype.syncCustomEntries = function () {
|
|
var a = this,
|
|
c = Qt.custom;
|
|
a._isSyncing = !0;
|
|
Ub(
|
|
a._userEntries,
|
|
a._customEntries,
|
|
function (b) {
|
|
var d = a.addEntry(new Qm(a.chart, { legendEntry: b }));
|
|
t(C(b, "checkbox.checked")) && delete b.checkbox.checked;
|
|
d.isCustom = !0;
|
|
d.sortOrderValue = c++;
|
|
return d;
|
|
},
|
|
function (a, b) {
|
|
return b.options(a, !1);
|
|
}
|
|
);
|
|
w(a._customEntries, function (a) {
|
|
return a.setColumns();
|
|
});
|
|
a._isSyncing = !1;
|
|
};
|
|
c.prototype.sortByInternalSortValue = function () {
|
|
this.items.sort(function (a, c) {
|
|
a = z(a.currentOptions.sortOrder, a.sortOrderValue);
|
|
c = z(c.currentOptions.sortOrder, c.sortOrderValue);
|
|
return a < c ? -1 : a > c ? 1 : 0;
|
|
});
|
|
this.options("reversed") && this.items.reverse();
|
|
};
|
|
c.prototype.add = function (a) {
|
|
this.render();
|
|
this.rootPanel && this.rootPanel.add(a);
|
|
return this;
|
|
};
|
|
return c;
|
|
})(jc),
|
|
Vz = {
|
|
zigzag: as,
|
|
gap: function (a, c, b, d) {
|
|
var e = c / 2,
|
|
f = "c" === a || "l" === a,
|
|
g = "m" === a || "t" === a;
|
|
f = G(d([b[0] + (f ? e : 0), b[1] + (g ? e : 0), b[2] - (f || "r" === a ? ("c" === a ? c : e) : 0), b[3] - (g || "b" === a ? ("m" === a ? c : e) : 0)]), 4);
|
|
b = f[0];
|
|
d = f[1];
|
|
e = f[2];
|
|
g = f[3];
|
|
f = { clipPath: Yh(b, d, e, g) };
|
|
if ("r" !== a && "b" !== a) {
|
|
var h = d + 0.5,
|
|
k = b + 0.5;
|
|
a =
|
|
"t" === a || "m" === a
|
|
? [
|
|
[
|
|
[b, h],
|
|
[b + e, h],
|
|
],
|
|
[
|
|
[b, h - c],
|
|
[b + e, h - c],
|
|
],
|
|
]
|
|
: [
|
|
[
|
|
[k, d],
|
|
[k, d + g],
|
|
],
|
|
[
|
|
[k - c, d],
|
|
[k - c, d + g],
|
|
],
|
|
];
|
|
f.outlinePath = fb(a[0]).concat(fb(a[1]));
|
|
}
|
|
return f;
|
|
},
|
|
line: function (a, c, b, d) {
|
|
if ("r" === a || "b" === a) return null;
|
|
var e = c / 2,
|
|
f = "c" === a || "l" === a;
|
|
a = "m" === a || "t" === a;
|
|
c = d([b[0] - (f ? e : 0), b[1] - (a ? e : 0), f ? c : b[2], a ? c : b[3]]);
|
|
return { path: Yh(c[0], c[1], c[2], c[3]) };
|
|
},
|
|
hidden: function () {
|
|
return null;
|
|
},
|
|
},
|
|
Xz = function (a, c, b) {
|
|
var d = c.id,
|
|
e = function (a) {
|
|
return a.crosshair(b);
|
|
};
|
|
a.axes()
|
|
.filter({ userOptions: { scale: { syncWith: d } } })
|
|
.each(e);
|
|
e(c);
|
|
},
|
|
Yz = function (a) {
|
|
var c = [];
|
|
w(a, function (a) {
|
|
a.yVal.pop
|
|
? w(a.yVal, function (b) {
|
|
c.push(Sm(A({}, a, { yVal: b })));
|
|
})
|
|
: c.push(Sm(a));
|
|
});
|
|
return c;
|
|
},
|
|
iu = ["column", "area", "candlestick", "ohlc", "variwide"],
|
|
kj = ["column", "candlestick", "ohlc", "variwide"],
|
|
ju = (function (a) {
|
|
function c(b, c) {
|
|
var d = a.call(this, b.chart, c, [b.chart, c]) || this;
|
|
d.chartAreaSet = b;
|
|
d.kind = "chartArea";
|
|
d._series = [];
|
|
d.yAxis = [];
|
|
d.xAxis = [];
|
|
d.zAxis = [];
|
|
d._axes = [];
|
|
d.axConfList = {};
|
|
d.renderedRect = Gk();
|
|
d.preRenderedRect = Gk();
|
|
d.isDirtyPreRender = !0;
|
|
d.isRendering = !1;
|
|
d.renderRect = { x: 0, y: 0, width: 0, height: 0, borderWidth: 0 };
|
|
d.projection = {
|
|
lin2valxy: function (a, b) {
|
|
return [a, b];
|
|
},
|
|
val2linxy: function (a, b) {
|
|
return [a, b];
|
|
},
|
|
};
|
|
d._awaitRenderCallbacks = [];
|
|
d.maxSeriesZIndex = 0;
|
|
d.events = { contentBox: new rd(), click: new rd() };
|
|
d.isZoomedDragArea = !1;
|
|
d.zoomAxes = [];
|
|
d.computeVals2 = function (a, b) {
|
|
var c = a.slice(0, 2);
|
|
d.isHoriz && c.reverse();
|
|
var e = [];
|
|
w(d.zoomAxes, function (a, d) {
|
|
return (e[d] = a ? a.linToVal(c[d], b) : void 0);
|
|
});
|
|
return d.projection.lin2valxy(e[0], e[1]);
|
|
};
|
|
d.computeValsTouch = function (a, b) {
|
|
return B(a, function (a) {
|
|
return d.computeVals2(a, b);
|
|
});
|
|
};
|
|
d._lastPointers = [];
|
|
d.mouseMove = Ni(function (a) {
|
|
var b = function () {
|
|
var a = e.getCursor();
|
|
return !a || "crosshair" === a || "move" === a;
|
|
},
|
|
c = a.pointers || [[a.x, a.y]],
|
|
e = d.chart,
|
|
f = "touch" === a.device,
|
|
g;
|
|
if (2 === c.length && d.isPinchZooming) d.pinch(a);
|
|
else if (1 === c.length) {
|
|
c = c[0];
|
|
var h = void 0;
|
|
if (d.isZooming) return (d.zoomEndVals = h = d.computeVals2(c, !0)), d.moveZoom(d, h), !0;
|
|
if (d.isDragging) return d.drag(d.computeVals2(c));
|
|
var r = d.renderer.renderer.isAnimating() && !d._ignoreAnimation;
|
|
h = d.isType("map");
|
|
if (!r && (g = d.renderBySortedSeriesRev)) {
|
|
r = void 0;
|
|
if (d.crosshair(c, a)) d.debounce.run("unmute");
|
|
else for (var u = 0, t = g.length; u < t && !(r = g[u].mouseMove(a, c)); u++);
|
|
d.crossPDD().length && a.eventArgs.cancelable && a.eventArgs.preventDefault();
|
|
f &&
|
|
(r
|
|
? (d.debounce.defer(
|
|
"touchTimeout",
|
|
function () {
|
|
d.clickOff();
|
|
},
|
|
8e3
|
|
),
|
|
(d._hoveredItem = d.chart.hoveredPoint))
|
|
: (d._hoveredItem = void 0));
|
|
!r &&
|
|
b() &&
|
|
d._axisToZoom &&
|
|
(h || d._isStaticDragArea
|
|
? (d.isZoomed || d.isZoomedDragArea) && e.setCursor("move")
|
|
: d.isZoomed && !h
|
|
? d.isInDragArea(c[1])
|
|
? e.setCursor("move")
|
|
: h || e.setCursor("crosshair")
|
|
: e.setCursor("crosshair"));
|
|
return r || !0;
|
|
}
|
|
}
|
|
}, 13);
|
|
d.docMM = void 0;
|
|
d.docVUp = void 0;
|
|
b.items.push(d);
|
|
var f = (d.readyDefer = new $A()),
|
|
g = f.hold("caConst");
|
|
d.initFP();
|
|
d.chart = b.chart;
|
|
d.collisionManager = new Tm(d);
|
|
d.legend = d.chart.legends(0);
|
|
d.legend.alignTo = d.legend.alignTo || d;
|
|
d.prepAxisConfigs();
|
|
f.release(g);
|
|
d._firstOpCall = !0;
|
|
d.options(c, !1);
|
|
d.tooltip = new oD(d);
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
c.prototype.init = function (a) {
|
|
this._renderDataCallMonitor = new aB();
|
|
this.ctManager = Ht();
|
|
this.ctManager.init(a.userOptions);
|
|
this.debounce = new Ae();
|
|
};
|
|
c.prototype.initFP = function () {
|
|
var a = this;
|
|
this.axes = Xa(
|
|
Kf,
|
|
function () {
|
|
return a._axes;
|
|
},
|
|
function (a) {}
|
|
);
|
|
this.series = Xa(
|
|
Ym,
|
|
function () {
|
|
return a._series;
|
|
},
|
|
function (a) {}
|
|
);
|
|
};
|
|
c.prototype.defaultOptions = function () {
|
|
var a = this.chart,
|
|
c = a.boxDefaults(this.userOptions.boxVisible ? 1 : void 0),
|
|
e = qe(c.fill, "white", 30),
|
|
f = C(a.typeContextOptions, "chartArea");
|
|
c = { fill: e, outline: c.outline, boxVisible: c.boxVisible, shadow: c.shadow };
|
|
f && A(c, f);
|
|
a.chartAreaSet.hasScaleBreaks && (c.boxVisible = !0);
|
|
return c;
|
|
};
|
|
c.prototype.normalizeOptions = function (b) {
|
|
b = a.prototype.normalizeOptions.call(this, b, "series");
|
|
Gh(b, "xAxis");
|
|
Gh(b, "yAxis");
|
|
cp(b, "orientation");
|
|
qw(b);
|
|
return b;
|
|
};
|
|
c.prototype.options = function (b, c) {
|
|
var d = this.optionsGetter(b);
|
|
if ("NotGetter" !== d) return d;
|
|
(d = b.series) && !this._firstOpCall && (delete this.userOptions.series, delete this.currentOptions.series);
|
|
!this._firstOpCall && a.prototype.options.call(this, b, c);
|
|
this.isHoriz = this.ctManager.isHoriz();
|
|
d && this.setSeries(c);
|
|
this.applyOptions();
|
|
!1 !== c && this.chartAreaSet.tryReflow();
|
|
this._firstOpCall = !1;
|
|
return this;
|
|
};
|
|
c.prototype.applyOptions = function () {
|
|
var a = this.options(),
|
|
c;
|
|
if (this.rootVisuals.caBackground) {
|
|
var e = Bg(a, void 0, Fa.chartArea);
|
|
this.rootVisuals.caBackground.attr(e.fill);
|
|
}
|
|
e = a.height;
|
|
var f = a.width;
|
|
if (e || f) {
|
|
var g = {};
|
|
f && (g.width = f);
|
|
e && (g.height = e);
|
|
this.rootPanel.attr(g);
|
|
}
|
|
(c = a.title) && this.rootVisuals.titleBox.options(c);
|
|
(this._isStaticDragArea = this.isType("organization"))
|
|
? (this._axisToZoom = "xy")
|
|
: ((this._axisToZoom = this.chart.currentOptions.axisToZoom || this.currentOptions.axisToZoom), "none" === this._axisToZoom && (this._axisToZoom = ""));
|
|
this.chart.triggerOptionsApplied("chartArea", this);
|
|
return this;
|
|
};
|
|
c.prototype.canZoom = function () {
|
|
return !!this._axisToZoom;
|
|
};
|
|
c.prototype.setSeries = function (a) {
|
|
var b = this;
|
|
b.log("setSeries()");
|
|
var c = b.processSeriesConfigs(),
|
|
f = function (a, b) {
|
|
return a.currentOptions ? a.currentOptions.id || a.currentOptions.name || b : a.id || a.name || b;
|
|
};
|
|
Ub(
|
|
c,
|
|
b._series,
|
|
function (a) {
|
|
b.addSeries(a);
|
|
},
|
|
function (b, c) {
|
|
return c.options(b, a || !1);
|
|
},
|
|
function () {},
|
|
f,
|
|
f
|
|
);
|
|
b.triggerUser("setSeries", b);
|
|
b.updateMapData(a);
|
|
return this;
|
|
};
|
|
c.prototype.processSeriesConfigs = function () {
|
|
var a = this.options(),
|
|
c = this.ctManager;
|
|
a = a.series || [];
|
|
if (c.shouldDataMerge() && a.length && 1 < a.length) {
|
|
var e = c.dataMergeType(a);
|
|
c = c.shouldDataMerge(a);
|
|
c.length &&
|
|
(a = B(c, function (a) {
|
|
return Dz(a, "collect" === e);
|
|
}));
|
|
}
|
|
return a;
|
|
};
|
|
c.prototype.spliceSeries = function (a, c, e, f) {
|
|
var b = this,
|
|
d = this.readyDefer,
|
|
k = this._series,
|
|
l = d.hold("spliceSer"),
|
|
m = k.slice(0, a),
|
|
n = k.slice(a, a + c);
|
|
a = k.slice(a + c, k.length);
|
|
c = 0;
|
|
for (k = n.length; c < k; c++) n[c].destroy();
|
|
e = B(e, function (a) {
|
|
return new Xm(b).options(a, f || !1);
|
|
});
|
|
m.push.apply(m, H(e));
|
|
m.push.apply(m, H(a));
|
|
this._series = m;
|
|
this.updateMapData(f);
|
|
this.triggerUser("addSeries");
|
|
d.release(l);
|
|
};
|
|
c.prototype.updateMapData = function (a) {
|
|
var b = this;
|
|
b.isType("map") &&
|
|
b.triggerUser("updateMapData", [
|
|
b,
|
|
function () {
|
|
return b.chart.redraw(a);
|
|
},
|
|
]);
|
|
};
|
|
c.prototype.addSeries = function (a, c) {
|
|
this.isDirtyPreRender = !0;
|
|
var b,
|
|
d = this.readyDefer,
|
|
g = d.hold("addSer");
|
|
this._series.push((b = new Xm(this)));
|
|
b.options(a, c || !1);
|
|
this.isType("map");
|
|
d.release(g);
|
|
this.triggerUser("addSeries");
|
|
return b;
|
|
};
|
|
c.prototype.preRender = function () {
|
|
var a = this;
|
|
if (a.isDirtyPreRender) {
|
|
var c = !a.renderedRect.width;
|
|
a.setAxes();
|
|
var e = function (b) {
|
|
b = a.axes(b).items.sort(function (a, b) {
|
|
a = a.options("scale.syncWith");
|
|
b = b.options("scale.syncWith");
|
|
return (a && b) || a === b ? 0 : a ? 1 : -1;
|
|
});
|
|
for (var c = 0; c < b.length; c++) {
|
|
var d = b[c];
|
|
d.setData().setRange(!0);
|
|
d.init_markers();
|
|
}
|
|
};
|
|
e(function (a) {
|
|
return "x" === a.prefix;
|
|
});
|
|
a.dataLayout_clustersAndStacks();
|
|
a.series().each(function (a) {
|
|
return a.setColor();
|
|
});
|
|
e(function (a) {
|
|
return "x" !== a.prefix;
|
|
});
|
|
a.isMultiType() && ((a.panes = a.panes || (Rm ? new Rm(a) : null)), a.panes.setPanes());
|
|
a.preRenderedRect = a.contentRect;
|
|
a.isDirtyPreRender = !1;
|
|
c && a.triggerUser("firstPreRender", a);
|
|
}
|
|
};
|
|
c.prototype.setAxes = function () {
|
|
var a = this,
|
|
c = this,
|
|
e = (N(c.chart.currentOptions, ["defaultAxis", "scale"]) || {}).syncWith,
|
|
f = c.chartAreaSet.allAxes;
|
|
c.series().each(function (a) {
|
|
a.setAxes();
|
|
});
|
|
w(["x", "y", "z"], function (b) {
|
|
if (1 < f[b].length)
|
|
for (var d = 0, g = f[b].length; d < g; d++)
|
|
if (d) {
|
|
var l = f[b][d],
|
|
m = !1,
|
|
n = l.scale || {},
|
|
p = !!n.range;
|
|
p && Sl(n.range);
|
|
var q = n.syncWith || e,
|
|
r = N(c._series[0], ["visualizer", "kind"]) || "";
|
|
"none" === q ||
|
|
c.ciManager.exists(l.id) ||
|
|
r.match(/^map|^annotation|^funnel|^venn|^pie/) ||
|
|
(l.scale
|
|
? p && !Sl(n.range) && (m = !0)
|
|
: l.defaultTick
|
|
? t(l.defaultTick.enabled) || Ma.emit("tip", l.id, "multiAxDTE", { data: [l.id, b], container: c.chart.getWrapper() })
|
|
: (l = A({ defaultTick: { enabled: !1 } }, l)),
|
|
m || new jj(a, l, b));
|
|
}
|
|
});
|
|
c.setZoomAxes();
|
|
c.triggerUser("setAxes", c);
|
|
};
|
|
c.prototype.isType = function (a) {
|
|
return this.ctManager.isType(a);
|
|
};
|
|
c.prototype.isMultiType = function () {
|
|
return this.isType("radar") || this.isType("gauge");
|
|
};
|
|
c.prototype.requestAxis = function (a, c, e, f) {
|
|
var b,
|
|
d = this.chart.chartItemManager;
|
|
if (e) {
|
|
if ((b = d.exists(e))) return b;
|
|
a = this.getAxConfig(e) || {};
|
|
} else a = this.chartAreaSet.freeAxes[c];
|
|
((e = z(e, a ? a.id : void 0)) && (b = d.exists(a.id))) || ((b = A({}, a)), e && (b.id = e), (b = new jj(this, f ? A(b, f) : b, c)));
|
|
return b;
|
|
};
|
|
c.prototype.getAxConfig = function (a) {
|
|
if (a)
|
|
for (var b = this.axConfList, c = pa(b), f = this.chartAreaSet.currentOptions.rootAx, g, h = 0, k = c.length; h < k; h++) {
|
|
var l = c[h];
|
|
if ((g = S(b[l], { id: a })) || (g = S(f[l + "Axis"], { id: a }))) return g;
|
|
}
|
|
};
|
|
c.prototype.prepAxisConfigs = function () {
|
|
var a = this,
|
|
c,
|
|
e;
|
|
w(["x", "y", "z"], function (b) {
|
|
e = b + "Axis";
|
|
c = a.currentOptions[e] || [];
|
|
c.push(a.chartAreaSet.freeAxes[b]);
|
|
w(c, zb);
|
|
a.axConfList[b] = c;
|
|
});
|
|
return a;
|
|
};
|
|
c.prototype.populateAxisPanels = function () {
|
|
function a(a) {
|
|
return function (b) {
|
|
b.isVisible && b.rootPanel && !b.isAdded && b.add(a);
|
|
};
|
|
}
|
|
if (!this.isMultiType()) {
|
|
var c = this.rootVisuals,
|
|
e = this.readyDefer,
|
|
f = Rr(this.axes()),
|
|
g = [this.rootRect.width, this.rootRect.height],
|
|
h,
|
|
k = [c.topAxes, c.rightAxes, c.bottomAxes, c.leftAxes];
|
|
c = function (a) {
|
|
return !a.isHoriz;
|
|
};
|
|
var l = function (a) {
|
|
return a.isHoriz;
|
|
},
|
|
m = e.hold("axM");
|
|
ob(4, function (b) {
|
|
w(f[b], a(k[b]));
|
|
});
|
|
this.axes(c).each(function (a) {
|
|
a.resetMetricsData();
|
|
if ((h = a.measure(g))) g[0] -= h[2];
|
|
});
|
|
this.axes(l).each(function (a) {
|
|
a.resetMetricsData();
|
|
if ((h = a.measure(g))) g[1] -= h[3];
|
|
});
|
|
var n = function (a) {
|
|
return a.measure(g);
|
|
};
|
|
this.axes(c).each(n);
|
|
this.axes(l).each(n);
|
|
e.release(m);
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.measureAxes = function () {
|
|
this.populateAxisPanels();
|
|
Ar(this);
|
|
};
|
|
c.prototype.measureAxes_resetOverflows = function () {
|
|
var a = this.rootVisuals;
|
|
a.leftOverflow.attr({ width: 0 });
|
|
a.topOverflow.attr({ height: 0 });
|
|
a.rightOverflow.attr({ width: 0 });
|
|
a.bottomOverflow.attr({ height: 0 });
|
|
this.overflows = [0, 0, 0, 0];
|
|
};
|
|
c.prototype.tryRenderData = function (a) {
|
|
var b = this.rootVisuals.content.getGlobalBbox();
|
|
if (!b.width || !b.height) return !1;
|
|
var c = this.contentRect;
|
|
if (c && c.width === b.width && c.height === b.height) return !1;
|
|
c = this.contentRect = b;
|
|
c.x = 0;
|
|
c.y = 0;
|
|
this.renderData(a);
|
|
return !0;
|
|
};
|
|
c.prototype.renderData = function (a) {
|
|
var b = this,
|
|
c = b.chart,
|
|
f = b.rootVisuals;
|
|
b.log("renderData");
|
|
b.isRendering = !0;
|
|
var g = b.readyDefer,
|
|
h = b.contentRect;
|
|
if (!g.isReady())
|
|
return (
|
|
g.onReady(b.id + "renderD", function () {
|
|
b.isType("map") && b.chartAreaSet.reflow();
|
|
b.renderData(a || b._updateOptions || void 0);
|
|
}),
|
|
b
|
|
);
|
|
var k = b._renderDataCallMonitor;
|
|
if (!(10 < k.callCount)) {
|
|
k.open();
|
|
b._updateOptions = void 0;
|
|
h || (h = b.contentRect = Gc([0, 0, 800, 500]));
|
|
var l = !1;
|
|
if (h) {
|
|
l = b.chart.disableAnimation(a);
|
|
b.triggerUser("preRenderData", [b, !b.renderedRect.width]);
|
|
if (b._cancelBubble) {
|
|
k.close();
|
|
b._cancelBubble = 0 < k.callCount;
|
|
return;
|
|
}
|
|
b.trigger("contentBox", f.content.getGlobalBbox());
|
|
Yy(b);
|
|
g = b.currentOptions.outline.width;
|
|
var m = (b.renderRect = Ik(h, g / 2)),
|
|
n = { x: 0, y: 0, width: m.width, height: m.height };
|
|
g = { x: 0, y: 0, width: h.width - 2 * g, height: h.height - 2 * g, borderWidth: g };
|
|
var p = f.titleBox.currentOptions;
|
|
m = p.position && "full" !== p.position ? p.position : "left";
|
|
p = Bg(p);
|
|
f.titleBox.alignTo(f.content, m, m, [0, p.stroke["stroke-width"]]);
|
|
var q = [],
|
|
r;
|
|
c.flowEvents.beforeRenderSeries.trigger([
|
|
b,
|
|
h,
|
|
g,
|
|
a,
|
|
q,
|
|
function () {
|
|
return (r = !0);
|
|
},
|
|
]);
|
|
r ||
|
|
((f = b
|
|
.series(function (a) {
|
|
return a.chartArea.id === b.id && !1 === a.info.type.isShape && void 0 === a.pane;
|
|
})
|
|
.sortBy("zIndex")),
|
|
f.each(function (b) {
|
|
return q.push(function () {
|
|
return b.render(n, a);
|
|
});
|
|
}),
|
|
f.each(function (b) {
|
|
return q.push(function () {
|
|
return b.renderLabels(n, a);
|
|
});
|
|
}));
|
|
Uv(
|
|
function (a) {
|
|
return c.ensureLoadingApplied(a);
|
|
},
|
|
q,
|
|
function () {
|
|
c.flowEvents.nextRenderSeries.trigger([
|
|
b,
|
|
h,
|
|
n,
|
|
a,
|
|
function () {
|
|
return (r = !0);
|
|
},
|
|
]);
|
|
b.renderedRect = h;
|
|
b.isMultiType() ||
|
|
b.axes().each(function (b) {
|
|
b.render(n, A({ invalidate: !0 }, a));
|
|
b.renderOnCa(n, a);
|
|
});
|
|
b.render_caClip();
|
|
l && b.chart.enableAnimation();
|
|
b.rootPanel.refresh();
|
|
b.legend.updateStyles();
|
|
b.renderBySortedSeriesRev = b
|
|
.series(function (a) {
|
|
return a.chartArea.id === b.id;
|
|
})
|
|
.sortBy("zIndex")
|
|
.items.slice(0);
|
|
b.renderBySortedSeriesRev.reverse();
|
|
b._chartFirstTimeRendered || ((b._chartFirstTimeRendered = !0), b.triggerUser("chartAreaRenderDataFirstTime", b));
|
|
var d = b._awaitRenderCallbacks.slice();
|
|
b._awaitRenderCallbacks = [];
|
|
b.isRendering = !1;
|
|
b.isRendered = !0;
|
|
w(d, function (a) {
|
|
return a();
|
|
});
|
|
b._cancelBubble = 1 < k.callCount;
|
|
k.close();
|
|
}
|
|
);
|
|
}
|
|
return this;
|
|
}
|
|
};
|
|
c.prototype.getContentGlobalBbox = function () {
|
|
return this.rootVisuals.content.getGlobalBboxArray();
|
|
};
|
|
c.prototype.awaitRender = function (a) {
|
|
this._awaitRenderCallbacks.push(a);
|
|
};
|
|
c.prototype.render_caClip = function () {
|
|
var a = this,
|
|
c = a.rootVisuals,
|
|
e = a.currentOptions,
|
|
f = a.rootVisuals.content,
|
|
g = a.axes(),
|
|
h = rb(ha(a.renderRect), -1),
|
|
k = e.outline.width || 0;
|
|
g = $r(f, g, k);
|
|
h = g.clipPath || Cc(ha(md(f, Gc(h), k)));
|
|
k = Bg(e);
|
|
k = A({ d: h }, Ga(k.stroke, "fill"));
|
|
var l = { shadow: a.currentOptions.shadow };
|
|
!1 !== e.clipContent && (l.clipPath = h);
|
|
f.attr(l);
|
|
if (g.outlines) {
|
|
var m = [];
|
|
c.outlinePaths &&
|
|
w(c.outlinePaths, function (a) {
|
|
return a.destroy();
|
|
});
|
|
w(g.outlines, function (b) {
|
|
m.push(a.renderer.renderer.path({ fill: "none", stroke: b.stroke, d: b.path, zIndex: gb.breakPath }).add(f));
|
|
});
|
|
c.outlinePaths = m;
|
|
}
|
|
if (g.paths) {
|
|
var n = [];
|
|
c.breakPaths &&
|
|
w(c.breakPaths, function (a) {
|
|
return a.destroy();
|
|
});
|
|
w(g.paths, function (b) {
|
|
n.push(a.renderer.renderer.path({ fill: b.color, stroke: "none", d: b.path, zIndex: gb.breakPath }).add(f));
|
|
});
|
|
c.breakPaths = n;
|
|
}
|
|
k["stroke-width"] || (k.stroke = "none");
|
|
c.contentStroke.attr(k);
|
|
};
|
|
c.prototype.setRootVisuals = function () {
|
|
var a = this.renderer;
|
|
if (!this.rootVisuals) {
|
|
var c = this.currentOptions.outline.width;
|
|
this.rootPanel = (this.rootVisuals = Hl(a).build({
|
|
axis: {},
|
|
axisMarkers: !0,
|
|
annotationLayer: !0,
|
|
contentOverlay: !0,
|
|
background: !0,
|
|
gridLines: !0,
|
|
overflow: !0,
|
|
outline: { width: c },
|
|
title: { holder: this },
|
|
content: { stroke: { width: 1 } },
|
|
})).mainStacks;
|
|
this.bindRootEvents();
|
|
}
|
|
return this;
|
|
};
|
|
c.prototype.getAxisMarkerVisualTargets = function () {
|
|
var a = this.rootVisuals;
|
|
return { behind: a.axisMarkersBehind, front: a.axisMarkersFront };
|
|
};
|
|
c.prototype.invalidate = function () {
|
|
this.isDirtyPreRender = !0;
|
|
this.series().each(function (a) {
|
|
a.seriesDirty.pos(!0);
|
|
a.seriesDirty.coord(!0);
|
|
});
|
|
this.legend.invalidate();
|
|
this.chartAreaSet.invalidateCache();
|
|
return this;
|
|
};
|
|
c.prototype.dataLayout_clustersAndStacks = function () {
|
|
var a = this,
|
|
c = [],
|
|
e = [],
|
|
f = {},
|
|
g = function () {
|
|
w(kj, function (a, b) {
|
|
f[a] = 0;
|
|
});
|
|
},
|
|
h = 0;
|
|
w(this.xAxis, function (b) {
|
|
var d = a.series({ isVisible: !0 });
|
|
g();
|
|
d.items.reverse();
|
|
var k = $a(
|
|
d.items.map(function (a) {
|
|
return a.type;
|
|
})
|
|
);
|
|
d.each(function (g) {
|
|
var l = -1 < iu.indexOf(g.type);
|
|
e = [];
|
|
l || (g.zIndex = h += 8);
|
|
g = gc(iu, k);
|
|
w(g, function (g) {
|
|
d.filter(function (a) {
|
|
return a.isVisible && a.type === g && a.xAxis.id === b.id;
|
|
})
|
|
.reverse()
|
|
.each(function (k) {
|
|
if (-1 === c.indexOf(k.id)) {
|
|
if (k.yAxis.isStacked()) {
|
|
var l = d.filter({ yAxis: { id: k.yAxis.id }, xAxis: { id: b.id }, isVisible: !0, type: g }).each(function (a) {
|
|
-1 < kj.indexOf(g) && (a.clusterIndex = f[g]);
|
|
a.isStacked = !0;
|
|
c.push(a.id);
|
|
}).items;
|
|
h = Bz(l, b, h);
|
|
-1 < kj.indexOf(g) && (f[g]++, e.push(g));
|
|
} else -1 < kj.indexOf(g) && ((k.clusterIndex = f[g]), e.push(g), k.info.type.clusters && f[g]++), (k.zIndex = h += 8), c.push(k.id);
|
|
k.xAxis.isStackedFull() && "category" === k.xAxis.type && ((k = a.yAxis[0].isStacked()), (l = d.filter({ isVisible: !0, type: g }).items), Cz(l, b, k));
|
|
}
|
|
});
|
|
});
|
|
e.length &&
|
|
((e = $a(e)),
|
|
w(e, function (a) {
|
|
b.clusterCounts[a] = f[a] || 1;
|
|
}));
|
|
});
|
|
});
|
|
this.maxSeriesZIndex = h;
|
|
this.dataLayoutExperiment();
|
|
};
|
|
c.prototype.dataLayoutExperiment = function () {
|
|
var a = this._series.slice(0),
|
|
c = [],
|
|
e = function (a) {
|
|
return a.pop ? w(a, e) : c.push(a.id);
|
|
},
|
|
f = 0,
|
|
g = function (a) {
|
|
a.zIndex = f += 8;
|
|
},
|
|
h = function (a) {
|
|
var b = a.type,
|
|
c = a.info.type.snapToZero,
|
|
d = a.info.type.clusters;
|
|
c && a.yAxis.isStacked() && (b += a.yAxis.id);
|
|
d && (b += a.xAxis.id);
|
|
c || d || (b += a.id);
|
|
return b;
|
|
},
|
|
k = function (b) {
|
|
return ea(a, function (a) {
|
|
return h(a) === b;
|
|
});
|
|
};
|
|
c = [];
|
|
w(a, function (a) {
|
|
-1 < c.indexOf(a.id) || ((a = h(a)), (a = k(a)), 1 === a.length ? g(a[0]) : w(a, g), e(a));
|
|
});
|
|
this.maxSeriesZIndex = f;
|
|
};
|
|
c.prototype.resetTimers = function () {
|
|
w(this._axes, function (a) {
|
|
return a.resetTimers();
|
|
});
|
|
this.chart.hideTooltip();
|
|
this.crosshair();
|
|
};
|
|
c.prototype.ignoreAnimationFor = function (a) {
|
|
var b = this;
|
|
a
|
|
? ((b._ignoreAnimation = !0),
|
|
b.debounce.defer(
|
|
"ignoreAnim",
|
|
function () {
|
|
b._ignoreAnimation = !1;
|
|
},
|
|
a
|
|
))
|
|
: b._ignoreAnimation && (b.debounce.clear("ignoreAnim"), (b._ignoreAnimation = !1));
|
|
};
|
|
c.prototype.isZoomLive = function () {
|
|
return this.isPinchZooming || this.isDragging || this.isMapZooming;
|
|
};
|
|
c.prototype.setZoomAxes = function () {
|
|
var a = this,
|
|
c = a.isType("map");
|
|
a.axes().each(function (b) {
|
|
if (b.isVisible || b._isDragHost || c) a.zoomAxes["x" === b.prefix ? 0 : "y" === b.prefix ? 1 : 2] = b;
|
|
});
|
|
return a;
|
|
};
|
|
c.prototype.getZoomAxes = function () {
|
|
this.zoomAxes.length || this.setZoomAxes();
|
|
return this.zoomAxes;
|
|
};
|
|
c.prototype.keyup = function (a) {
|
|
"Escape" === a.eventArgs.key && this.cancelAll();
|
|
};
|
|
c.prototype.clickData = function (a) {
|
|
var b = this,
|
|
c = { yAxis: [], xAxis: [] };
|
|
if (!t(a.x)) {
|
|
var f = b.rootVisuals.content.toRelativeXY(a.eventArgs);
|
|
a.x = f[0];
|
|
a.y = f[1];
|
|
}
|
|
var g = [];
|
|
b.axes().each(function (d) {
|
|
if ((d.isVisible && !d.noData) || b.isType("map")) "x" === d.prefix ? c.xAxis.push({ value: (g[0] = d.linToVal(a.x)) }) : "y" === d.prefix && c.yAxis.push({ value: (g[1] = d.linToVal(a.y)) });
|
|
});
|
|
c.xAxis = B(c.xAxis, function (a) {
|
|
return { value: b.projection.lin2valxy(a.value, g[1])[0] };
|
|
});
|
|
c.yAxis = B(c.yAxis, function (a) {
|
|
return { value: b.projection.lin2valxy(g[0], a.value)[1] };
|
|
});
|
|
return c;
|
|
};
|
|
c.prototype.click = function (a) {
|
|
this.debounce.clear("clickoff");
|
|
this.cancelAll();
|
|
clearTimeout(this.zoomStartIntervalId);
|
|
var b = a.pointers || [[a.x, a.y]];
|
|
if (1 === b.length) {
|
|
b = { yAxis: [], xAxis: [], event: a.eventArgs };
|
|
var c = !1,
|
|
f = "touch" === a.device;
|
|
if (!this.isZooming && !this.isDragging) {
|
|
var g = this.chart.highlighted,
|
|
h = void 0;
|
|
f && ((h = this._hoveredItem), this.mouseMove(a), this.mouseUp(a));
|
|
for (
|
|
var k = ea(this._series, function (a) {
|
|
return a.isVisible;
|
|
}),
|
|
l = 0,
|
|
m = k.length;
|
|
l < m;
|
|
l++
|
|
)
|
|
if (k[l].mouseClick(a)) {
|
|
c = !0;
|
|
break;
|
|
}
|
|
f && (h && h === this._hoveredItem ? this.clickOff(a) : c ? (f = this.chart.hoveredPoint) && g && Qb(this.chart, f) : Qb(this.chart));
|
|
}
|
|
this.hasAnyNamedEvent("click") && (L(b, this.clickData(a)), c || (this.trigger("click", b), this.triggerUser("click", b)));
|
|
} else 2 === b.length ? this.zoom("-100%") : 3 === b.length && this.zoom("initial");
|
|
};
|
|
c.prototype.clickOff = function (a, c) {
|
|
function b() {
|
|
var a = d.chart,
|
|
b;
|
|
d.cancelAll();
|
|
d.crosshair();
|
|
d.chart.hideTooltip();
|
|
d.legend.pointOut();
|
|
(b = a.hoveredPoint) && "hover" === b._state && b.mouseOut();
|
|
d.debounce.has("unmue") ? d.debounce.run("unmute") : Qb(d.chart);
|
|
d._hoveredItem = void 0;
|
|
}
|
|
var d = this;
|
|
c ? b() : d.debounce.defer("clickoff", b, 30);
|
|
};
|
|
c.prototype.dblclick = function (a) {
|
|
this.cancelAll();
|
|
a = a.pointers || [[a.x, a.y]];
|
|
1 === a.length && this.zoom({ level: "+100%", at: this.computeVals2(a[0]) });
|
|
};
|
|
c.prototype.mouseDown = function (a) {
|
|
var b = this,
|
|
c = b.chart,
|
|
f = b.getZoomAxes(),
|
|
g = a.device,
|
|
h = a.pointers || [[a.x, a.y]],
|
|
k = b.computeValsTouch(h),
|
|
l = h.length,
|
|
m = h[0];
|
|
b._lastPointers.length !== h.length && (clearTimeout(b.zoomStartIntervalId), b.cancelAll());
|
|
b.zoomEndVals = void 0;
|
|
var n = [],
|
|
p = b._axisToZoom;
|
|
n = k[0];
|
|
!p && b._isStaticDragArea && (b._axisToZoom = p = "xy");
|
|
var q = function () {
|
|
b.isPinchZooming = p;
|
|
b.pinchStartTouches = h;
|
|
b.zoomStartRanges = B(f, function (a) {
|
|
return [a.range.min, a.range.max];
|
|
});
|
|
b.renderer.attr("disableAnimation", !0);
|
|
};
|
|
(function () {
|
|
if (b.isType("map")) return b.isZoomed || 2 === l ? !0 : !1;
|
|
if (b._isStaticDragArea || (b.isZoomed && b.isInDragArea(m[1]))) {
|
|
var a = !1;
|
|
b.axes().each(function (b) {
|
|
b.canDrag() && (a = !0);
|
|
});
|
|
return a;
|
|
}
|
|
return !!p;
|
|
})() &&
|
|
((b.zoomStartIntervalId = setTimeout(function () {
|
|
b.attachDoc();
|
|
if (1 === l)
|
|
if (b.isType("map") || b._isStaticDragArea || (b.isZoomed && b.isInDragArea(m[1])) || ("touch" === g && b.isZoomed)) {
|
|
var a;
|
|
if ((a = p)) (b.isDragging = a), (b.dragPrevVals = n), b.renderer.attr("disableAnimation", !0), (b._prevCursor = c.getCursor()), !b._prevCursor && b.isZoomed && c.setCursor("move");
|
|
} else {
|
|
if ((!b.isZoomed && "touch" === g) || "touch" !== g) if ((a = p)) (b.isZooming = a), (b.zoomStartVals = n), b.renderer.attr("disableAnimation", !0);
|
|
}
|
|
else 2 === l && q();
|
|
b.isDragging || b.isZooming || b.chart.setCursor();
|
|
b.mouseLeft = !1;
|
|
b.chart.resetTimers();
|
|
}, 10)),
|
|
a.eventArgs.cancelable && a.eventArgs.preventDefault());
|
|
b._lastPointers = h;
|
|
};
|
|
c.prototype.mouseUp = function (a) {
|
|
clearTimeout(this.zoomStartIntervalId);
|
|
this.isDragging && this.mouseLeft && this.chart.setCursor();
|
|
this.endDrag().endZoom();
|
|
this.isPinchZooming = !1;
|
|
this._lastPointers = a.pointers || [];
|
|
};
|
|
c.prototype.isInDragArea = function (a) {
|
|
var b = this.isHoriz ? 0 : 1;
|
|
return (b = this.zoomAxes[b] || this._axes[b]) && 0.5 < b.linToPos(a);
|
|
};
|
|
c.prototype.mouseOut = function (a) {
|
|
a = a.eventArgs;
|
|
for (var b = 0, c = this._series.length; b < c; b++) this._series[b].mouseOut(a);
|
|
a = this.chart.getCursor();
|
|
("crosshair" !== a && "move" !== a) || this.isDragging || this.chart.setCursor();
|
|
this.isDragging && (this.mouseLeft = !0);
|
|
this.crosshair();
|
|
};
|
|
c.prototype.wheelHandler = function (a) {
|
|
var b = [a.x, a.y],
|
|
c = a.eventArgs;
|
|
this._axisToZoom &&
|
|
(this.setZoomAxes(),
|
|
this._isStaticDragArea
|
|
? ((this.isDragging = this._axisToZoom),
|
|
(this.dragPrevVals = this.computeVals2(b)),
|
|
(b = this.computeVals2([b[0] - 0.5 * c.deltaX, b[1] - 0.5 * c.deltaY])),
|
|
this.drag(b) && a.eventArgs.preventDefault(),
|
|
this.endDrag())
|
|
: c.altKey && ((b = this.computeVals2(b)), this.zoom({ at: b, level: (0 > c.deltaY ? "+" : "-") + Math.abs(0.5 * c.deltaY) }), this.resetTimers(), a.eventArgs.preventDefault()));
|
|
};
|
|
c.prototype.pinch = function (a) {
|
|
var b = this,
|
|
c = b.isType("map");
|
|
a = a.pointers;
|
|
var f = b.getZoomAxes(),
|
|
g = (b.isType("map") && "xy") || b.chart.currentOptions.axisToZoom,
|
|
h = function () {
|
|
return c
|
|
? zs(b.zoomBBox || b.zoomBBoxSet)
|
|
: B(f, function (a) {
|
|
return [a.range.min, a.range.max];
|
|
});
|
|
};
|
|
b.isPinchZooming
|
|
? (b.pinchZoom(b.computeValsTouch(b.pinchStartTouches), b.computeValsTouch(a)), (b.pinchStartTouches = a), (b.zoomStartRanges = h()))
|
|
: (b.cancelAll(), g && "none" !== g && ((b.isPinchZooming = g), (b.pinchStartTouches = a), (b.zoomStartRanges = h()), b.renderer.attr("disableAnimation", !0)));
|
|
};
|
|
c.prototype.resetZoom = function () {
|
|
clearInterval(this.zoomStartIntervalId);
|
|
var a = (this.isDragging = this.isZooming = !1);
|
|
this.isZoomed = !1;
|
|
this.isType("map")
|
|
? this.chart.zoom("initial")
|
|
: (w(this.zoomAxes, function (b) {
|
|
b && ((a = !0), b.zoom(void 0, void 0, !1));
|
|
}),
|
|
this.series().each(function (a) {
|
|
a.seriesDirty.pos(!0);
|
|
a.seriesDirty.coord(!0);
|
|
}),
|
|
this.renderData());
|
|
this.chart.setCursor();
|
|
a && this.chart.redraw();
|
|
return this;
|
|
};
|
|
c.prototype.cancelAll = function () {
|
|
this.endDrag();
|
|
this.isZooming = !1;
|
|
this.zoomVisual && this.zoomVisual.attr({ display: "none" });
|
|
this.isPinchZooming = !1;
|
|
return this;
|
|
};
|
|
c.prototype.endDrag = function () {
|
|
this.isDragging &&
|
|
((this.isDragging = !1),
|
|
this.series().each(function (a) {
|
|
a.setCoordinates(void 0, { forceCoordinates: !0 });
|
|
}),
|
|
this.renderer.attr("disableAnimation", !1),
|
|
!this._prevCursor && this.chart.setCursor(),
|
|
(this._prevCursor = null));
|
|
return this;
|
|
};
|
|
c.prototype.endZoom = function () {
|
|
var a = this;
|
|
clearInterval(a.zoomStartIntervalId);
|
|
a.renderer.attr("disableAnimation", !1);
|
|
if (a.isZooming && a.zoomEndVals) {
|
|
var c = {},
|
|
e = !1,
|
|
f = [],
|
|
g = function (b, d) {
|
|
if (-1 < a.isZooming.indexOf(b)) (b = c[b + "Axis"] = [a.zoomStartVals[d], a.zoomEndVals[d]]), (f[d] = b);
|
|
else if ((b = a.zoomAxes[d])) (b = b.range), (f[d] = [b.min, b.max]);
|
|
};
|
|
a.isZoomingReflow = !0;
|
|
g("x", 0);
|
|
g("y", 1);
|
|
g = (function (a) {
|
|
var b = a[0];
|
|
a = a[1];
|
|
return Ua([
|
|
[b ? b[0] : 0, a ? a[0] : 0],
|
|
[b ? b[1] : 0, a ? a[1] : 0],
|
|
]);
|
|
})(f);
|
|
!1 !== a.triggerUser("selection", c) &&
|
|
(a.zoom(g),
|
|
(a.isZoomingReflow = !1),
|
|
(e = !!S(a.zoomAxes, function (a) {
|
|
return a && a.isZoomed;
|
|
})) && a.triggerUser("selection", c));
|
|
a.cancelAll();
|
|
a.isZoomed = e;
|
|
} else a.isZooming = !1;
|
|
a.detachDoc();
|
|
return a;
|
|
};
|
|
c.prototype.pinchZoom = function (a, c) {
|
|
var b = this.isPinchZooming,
|
|
d = this.zoomStartRanges,
|
|
g = th(Ua(a), [1, 1]),
|
|
h = th(Ua(c), [1, 1]);
|
|
c = va(g);
|
|
a = va(h);
|
|
var k = h[2] / g[2] || 1;
|
|
g = h[3] / g[3] || 1;
|
|
if (b) {
|
|
if (-1 < b.indexOf("x")) {
|
|
var l = d[0],
|
|
m = l[1] - l[0];
|
|
k = m / k;
|
|
h = (a[0] - l[0]) / m;
|
|
l = (l[1] - a[0]) / m;
|
|
h = c[0] - k * h;
|
|
l = c[0] + k * l;
|
|
k = [h, l];
|
|
} else k = d[0];
|
|
-1 < b.indexOf("y") ? ((d = d[1]), (l = d[1] - d[0]), (b = l / g), (h = (a[1] - d[0]) / l), (l = (d[1] - a[1]) / l), (h = c[1] - b * h), (l = c[1] + b * l), (c = [h, l])) : (c = d[1]);
|
|
c = Ua([
|
|
[k[0], c[0]],
|
|
[k[1], c[1]],
|
|
]);
|
|
this.triggerUser("cazoom", [this, c]);
|
|
this.zoom(c);
|
|
}
|
|
};
|
|
c.prototype.drag = function (a) {
|
|
var b = this.isDragging,
|
|
c = [0, 0];
|
|
if (b) {
|
|
var f = O(b);
|
|
f && -1 < b.indexOf("x") && (c[0] = this.dragPrevVals[0] - a[0]);
|
|
f && -1 < b.indexOf("y") && (c[1] = this.dragPrevVals[1] - a[1]);
|
|
this._isStaticDragArea && (this.dragPrevVals = a);
|
|
this.isType("map") ? (this.triggerUser("pan", [this, c]), this.chart.redraw({ animation: !1 })) : this.zoom(c);
|
|
}
|
|
return !1;
|
|
};
|
|
c.prototype.moveZoom = function (a, c) {
|
|
if (a.isZooming) {
|
|
var b = {},
|
|
d = a.isHoriz ? "y" : "x",
|
|
g = "x" === d ? 0 : 1,
|
|
h = a.isHoriz ? "x" : "y",
|
|
k = "x" === h ? 0 : 1,
|
|
l = a.rootVisuals.content.getGlobalBbox(),
|
|
m = (a.zoomVisual = a.zoomVisual || a.renderer.renderer.path({ d: "M0 0" }).add(a.rootVisuals.front)),
|
|
n = [0 + l.x, 0 + l.y, a.contentRect.width, a.contentRect.height];
|
|
if (-1 < a.isZooming.indexOf(d)) {
|
|
var p = a.zoomAxes[g].getCaLen(c[g]),
|
|
q = a.zoomAxes[g].getCaLen(a.zoomStartVals[g]);
|
|
p = ua(p, 0, a.contentRect.width);
|
|
q = ua(q, 0, a.contentRect.width);
|
|
n[0] = p + l.x;
|
|
n[2] = q - p;
|
|
b[d + "Axis"] = [a.zoomStartVals[g], c[g]];
|
|
}
|
|
-1 < a.isZooming.indexOf(h) && ((d = a.zoomAxes[k].getCaLen(c[k])), (g = a.zoomAxes[k].getCaLen(a.zoomStartVals[k])), (n[1] = d + l.y), (n[3] = g - d), (b[h + "Axis"] = [a.zoomStartVals[k], c[k]]));
|
|
c = Cc(n);
|
|
m.attr({ d: c, fill: "rgba(0,0,200,.2)", display: "block", "pointer-events": "none" });
|
|
a.triggerUser("selecting", b);
|
|
}
|
|
};
|
|
c.prototype.zoomUpdated = function (a) {
|
|
var b = this,
|
|
c = this,
|
|
f = c._axisToZoom;
|
|
if (c._isStaticDragArea) var g = !1;
|
|
else t(a) ? (g = a) : c.isType("map") ? (g = !!fo(c.zoomBBox || c.zoomBBoxSet, c.zoomBBoxInitial, 3)) : c._isStaticDragArea || ((g = c.getZoomAxes()), (g = !!S(g, { isZoomed: !0 })));
|
|
c.isZoomed = g;
|
|
a = c.chart.toolbar();
|
|
f && a && a.zoomInOut(g);
|
|
if (!this._eventWaitingId) {
|
|
var h = c.isDragging ? "scrolled" : "zoomed";
|
|
this._eventWaitingId = setInterval(function () {
|
|
(b.renderer.renderer.isAnimating() && !b._ignoreAnimation) ||
|
|
c.isDragging ||
|
|
(clearTimeout(b._eventWaitingId),
|
|
(b._eventWaitingId = void 0),
|
|
b.triggerUser(
|
|
h,
|
|
b.axes().map(function (a) {
|
|
return a.range;
|
|
})
|
|
));
|
|
}, 100);
|
|
}
|
|
};
|
|
c.prototype.bindRootEvents = function () {
|
|
this.bindEvents();
|
|
};
|
|
c.prototype.bindEvents = function () {
|
|
var a = this;
|
|
if (!a._evBound) {
|
|
var c = a.rootVisuals.content;
|
|
c.on("touchmove", function (b) {
|
|
(a.isZooming || a.isDragging || a.isPinchZooming) && b.eventArgs.cancelable && b.eventArgs.preventDefault();
|
|
});
|
|
var e;
|
|
c.on("mouseover", function (b) {
|
|
e || (a.triggerUser("mouseOver", b), (e = !0));
|
|
});
|
|
c.on("mouseout", function (b) {
|
|
a.evInsideCA(b) || (a.mouseMove.cancel(), a.mouseOut(b), a.triggerUser("mouseOut", b), (e = !1));
|
|
});
|
|
c.on("vmove", function (b) {
|
|
return !a.docMM && a.mouseMove(b);
|
|
});
|
|
c.on("vclick", function (b) {
|
|
a.click(b);
|
|
b.eventArgs.preventDefault();
|
|
});
|
|
c.on("vdown", function (b) {
|
|
return a.mouseDown(b);
|
|
});
|
|
c.on("wheel", function (b) {
|
|
return a.wheelHandler(b);
|
|
});
|
|
a._docElement || (a._docElement = a.chart.renderer.renderer.documentElement);
|
|
a._docElement.on("keyup", function (b) {
|
|
return a.keyup({ eventArgs: b });
|
|
});
|
|
a._docElement.on("vclick", function (b) {
|
|
return !a.evInsideChart(b) && a.clickOff({ eventArgs: b });
|
|
});
|
|
a._evBound = !0;
|
|
}
|
|
};
|
|
c.prototype.attachDoc = function () {
|
|
var a = this,
|
|
c = a._docElement;
|
|
if (!a.docMM || !a.docVUp) {
|
|
var e = a.rootVisuals.content;
|
|
a.docMM = e.externalOn(c, "vmove", function (b) {
|
|
return a.docVMoveHandler(b);
|
|
});
|
|
a.docVUp = e.externalOn(c, "vup", function (b) {
|
|
return a.mouseUp(b);
|
|
});
|
|
}
|
|
};
|
|
c.prototype.detachDoc = function () {
|
|
this.docMM && this.docMM.un();
|
|
this.docVUp && this.docVUp.un();
|
|
this.docMM = this.docVUp = null;
|
|
};
|
|
c.prototype.docVMoveHandler = function (a) {
|
|
this.mouseMove(a) && a.eventArgs.preventDefault();
|
|
};
|
|
c.prototype.evInsideCA = function (a) {
|
|
var b;
|
|
if ((b = C(this.rootPanel, "el")) && a.composedPath) return -1 < (a.composedPath && a.composedPath()).indexOf(b);
|
|
if ((b = this.contentRect)) return (b = rb(ha(b), 0)), Ad(b, [a.x, a.y]);
|
|
};
|
|
c.prototype.evInsideChart = function (a) {
|
|
var b = C(this.chart.rootPanel, "el.parentNode.el");
|
|
return b && a.composedPath ? -1 < a.composedPath().indexOf(b) : this.evInsideCA(a);
|
|
};
|
|
c.prototype.crosshair = function (a, c, e) {
|
|
var b = !a && !c;
|
|
b && this.tooltip && this.tooltip.hideTooltip();
|
|
if (-1 !== ["vertical", "horizontal"].indexOf(this.ctManager.settingVal("chartType")))
|
|
return b
|
|
? (this.series().each(function (a) {
|
|
return a.hideHalo();
|
|
}),
|
|
Zz(this))
|
|
: Wz(this, a, c, e);
|
|
};
|
|
c.prototype.crossPDD = function () {
|
|
var a = this.isHoriz,
|
|
c,
|
|
e;
|
|
this.axes().each(function (a) {
|
|
var b = a.prefix;
|
|
if (C(a.currentOptions, "crosshair.enabled") && ((c = c || "x" === b), (e = e || "y" === b), c && e)) return !1;
|
|
});
|
|
return a ? (e ? "X" : "") + (c ? "Y" : "") : (c ? "X" : "") + (e ? "Y" : "");
|
|
};
|
|
c.prototype.zoom = function (a, c) {
|
|
(a = this.zoomConfToBox(a)) && this.setZoomBox(a, c);
|
|
return this.getZoomBoxes().zoom;
|
|
};
|
|
c.prototype.zoomConfToBox = function (a) {
|
|
var b = this.isType("map"),
|
|
c = I(a),
|
|
f = this._isStaticDragArea,
|
|
g = b && this.chart.options("mapping.zoomLimit"),
|
|
h = this.getZoomAxes();
|
|
b = this.getZoomBoxes();
|
|
var k = b.full,
|
|
l = b.zoom,
|
|
m = function (a) {
|
|
var b;
|
|
if ("string" === typeof a) {
|
|
if ("initial" === a) return 1;
|
|
var c = "+" === a[0] ? 1 : "-" === a[0] ? -1 : 0;
|
|
(b = a.replace(/^\D+/g, "")).length && (b = parseFloat(b) / 100);
|
|
0 === c ? (c = b) : ((a = k[2] / l[2]), (c = a + a * b * c));
|
|
} else c = a;
|
|
return ua(c, 1, g || 99999);
|
|
};
|
|
b = function (a) {
|
|
return B(a, function (a, b) {
|
|
return h[b].posToVal(a);
|
|
});
|
|
};
|
|
var n = function (a, b) {
|
|
b = b ? b.slice(0) : va(l);
|
|
b.push(a);
|
|
return q(b);
|
|
},
|
|
p = function (a, b) {
|
|
b = m(b);
|
|
var c = f ? l[2] : ua(k[2] / b, 1, k[2]);
|
|
b = f ? l[3] : ua(k[3] / b, 1, k[3]);
|
|
var d = la(a[0], l[0]) / l[2],
|
|
e = la(a[0], xs(l)) / l[2],
|
|
g = la(a[1], l[1]) / l[3],
|
|
h = la(a[1], ys(l)) / l[3];
|
|
return Zc(Ze([a[0] - c * d, a[1] - b * g, a[0] + c * e, a[1] + b * h]), k);
|
|
},
|
|
q = function (a) {
|
|
var b = m(a[2]),
|
|
c = f ? l[2] : ua(k[2] / b, 1, k[2]);
|
|
b = f ? l[3] : ua(k[3] / b, 1, k[3]);
|
|
return Zc(mb(a, [c, b]), k);
|
|
},
|
|
r = function (a) {
|
|
a = a.slice(0);
|
|
a[2] = "+0";
|
|
return q(a);
|
|
};
|
|
if ("number" === c) var u = n(a);
|
|
else
|
|
"string" === c
|
|
? (u = n(m(a)))
|
|
: 4 === a.length
|
|
? (u = a)
|
|
: 3 === a.length
|
|
? (u = q(a))
|
|
: 2 === a.length
|
|
? (u = Zc(Xc(l, a), k))
|
|
: (t(a.at) && t(a.level) && (u = p(a.at, a.level)), t(a.offset) && (u = Zc(Xc(l, a.offset), k)), t(a.pos) ? (u = r(b(a.pos))) : t(a.center) && (u = r(a.center)));
|
|
return (u = sh(u, k));
|
|
};
|
|
c.prototype.getZoomBoxes = function () {
|
|
var a = this.isType("map"),
|
|
c = this.getZoomAxes(),
|
|
e = function (a) {
|
|
var b = a[0];
|
|
a = a[1];
|
|
return Ua([
|
|
[b ? b.min : 0, a ? a.min : 0],
|
|
[b ? b.max : 0, a ? a.max : 0],
|
|
]);
|
|
},
|
|
f = a
|
|
? this.zoomBBoxMax
|
|
: e(
|
|
B(c, function (a) {
|
|
return a && a.unZoomedRange ? a.unZoomedRange : a;
|
|
})
|
|
);
|
|
a = a
|
|
? this.zoomBBox || this.zoomBBoxSet
|
|
: e(
|
|
B(c, function (a) {
|
|
a && (a.zoomRange.length ? ((a = a.zoomRange), (a = a.pop ? { min: a[0], max: a[1] } : a)) : (a = a.range));
|
|
return a;
|
|
})
|
|
);
|
|
return { full: f, zoom: a };
|
|
};
|
|
c.prototype.setZoomBox = function (a, c) {
|
|
var b = this._isStaticDragArea,
|
|
d = this.getZoomAxes(),
|
|
g = this.isType("map"),
|
|
h = !1,
|
|
k = this.chart.currentOptions.axisToZoom || this._axisToZoom,
|
|
l = !1,
|
|
m = zs(a),
|
|
n = function (a, b) {
|
|
k && -1 < k.indexOf(a) && ((a = "x" === a ? 0 : 1), (h = d[a].zoom(b[0], b[1], !1) || h), (l = l || d[a].isZoomed));
|
|
},
|
|
p = this.isDragging;
|
|
this.isZoomingReflow = !0;
|
|
b && (this.isDragging = !0);
|
|
g ? ((this.zoomBBox = a), (h = !0)) : (n("x", m[0]), n("y", m[1]));
|
|
!1 !== c && h && this.chart.redraw(A({ forceCoordinates: !0 }, c));
|
|
b && (this.isDragging = p);
|
|
this.isZoomingReflow = !1;
|
|
this.isZoomed = l;
|
|
this.zoomUpdated();
|
|
};
|
|
c.prototype.add = function (a) {
|
|
var b = this.readyDefer,
|
|
c = b.hold("addCA");
|
|
this.setRootVisuals();
|
|
this.rootPanel.add(a);
|
|
b.release(c);
|
|
return this;
|
|
};
|
|
c.prototype.replaceTokens = function (a, c) {
|
|
c || (c = this._series && this._series.length ? this.series(0).getFormatInfo() : this.chart.getFormatInfo());
|
|
return vi(a, this.chartAreaSet, c);
|
|
};
|
|
c.prototype.tokenValue = function (a) {
|
|
return this.replaceTokens({ token: a });
|
|
};
|
|
c.prototype.log = function (a) {};
|
|
return c;
|
|
})(jc),
|
|
AD = (function () {
|
|
function a(a) {
|
|
var b = this;
|
|
this.chart = a;
|
|
this.items = [];
|
|
this.indexer = new Fl();
|
|
this.freeAxes = {};
|
|
this.allAxes = {};
|
|
this._axes = [];
|
|
this.enumerationData = { sI: 0, cpbOffset: 0 };
|
|
this._reflowsCount = 0;
|
|
this.id = de(5);
|
|
this.axes = function () {
|
|
return new Kf(b._axes);
|
|
};
|
|
}
|
|
a.prototype.init = function () {
|
|
var a = $z(this.chart.currentOptions);
|
|
if (this.userOptions) {
|
|
A(this.userOptions.rootAx, a.rootAx);
|
|
this.userOptions.rootItems = a.rootItems;
|
|
for (var b = 0, d = a.length; b < d; b++) this.userOptions[b] ? A(this.userOptions[b], a[b]) : (this.userOptions[b] = a[b]);
|
|
} else this.userOptions = a;
|
|
this.setRootVisuals().setOptions().setObjects(this.currentOptions).enumerateData();
|
|
w(this.series(), function (a) {
|
|
return a.seriesDirty.resetCache();
|
|
});
|
|
this._calcCache = void 0;
|
|
return this;
|
|
};
|
|
a.prototype.setOptions = function () {
|
|
var a = (this.currentOptions = this.userOptions = this.normalizeOptions(this.userOptions)),
|
|
b = function (b) {
|
|
return a.rootAx[b + "Axis"];
|
|
};
|
|
this.freeAxes = { x: b("x")[0], y: b("y")[0], z: b("z")[0] };
|
|
this.allAxes = { x: b("x"), y: b("y"), z: b("z") };
|
|
b = function (a) {
|
|
return a.scale && a.scale.breaks;
|
|
};
|
|
this.hasScaleBreaks = b(this.freeAxes.x) || b(this.freeAxes.y) || b(this.freeAxes.x);
|
|
return this;
|
|
};
|
|
a.prototype.normalizeOptions = function (a) {
|
|
a = Sa(a, "series", !0);
|
|
var b = ["xAxis", "yAxis", "zAxis"];
|
|
w(b, function (b) {
|
|
return Gh(a.rootAx, b);
|
|
});
|
|
w(b, function (b) {
|
|
return a.rootAx[b] && w(a.rootAx[b], zb);
|
|
});
|
|
return a;
|
|
};
|
|
a.prototype.enumerateData = function () {
|
|
var a = this;
|
|
this.enumerationData = { sI: 0, cpbOffset: 0 };
|
|
w(this.series(), function (b) {
|
|
a.enumerateSeries(b);
|
|
});
|
|
return this;
|
|
};
|
|
a.prototype.enumerateSeries = function (a) {
|
|
var b = this.enumerationData,
|
|
c = b.sI;
|
|
b = b.cpbOffset;
|
|
a._i = c++;
|
|
a.info.type.colorByPoint && ((a.cpbIndexOffset = b), (b += a.info.type.colorByPoint ? a.userPoints.length : 1));
|
|
this.enumerationData = { sI: c, cpbOffset: b };
|
|
};
|
|
a.prototype.setObjects = function (a) {
|
|
var b = this,
|
|
c = b.rootVisuals.stack;
|
|
b.log("setObjects()");
|
|
Ub(
|
|
a,
|
|
b.items,
|
|
function (a, d) {
|
|
new ju(b, a).add(c);
|
|
},
|
|
function (a, b) {
|
|
return b.options(a);
|
|
}
|
|
);
|
|
return b;
|
|
};
|
|
a.prototype.series = function () {
|
|
var a = [];
|
|
w(this.items, function (b) {
|
|
return a.push.apply(a, H(b._series));
|
|
});
|
|
return a;
|
|
};
|
|
a.prototype.add = function (a) {
|
|
var b = this.visualWrapper;
|
|
(b = this.visualWrapper) ? (b.setRootVisuals(), this.setRootVisuals(), this.rootVisuals.stack.add(b.rootPanel)) : this.setRootVisuals();
|
|
w(this.items, function (a) {});
|
|
this.rootPanel.add(a);
|
|
return this;
|
|
};
|
|
a.prototype.setRootVisuals = function () {
|
|
var a = this.chart.renderer,
|
|
b = this.rootVisuals,
|
|
d = (this.rootPanel = this.rootPanel || a.panel({ width: "*", height: "*" }));
|
|
b || (b = this.rootVisuals = { stack: void 0 });
|
|
b.stack = b.stack || a.panel("stack").attr({ orientation: "y" }).add(d);
|
|
return this;
|
|
};
|
|
a.prototype.replaceTokens = function (a, b) {
|
|
return vi(a, this, b || this.getFormatInfo());
|
|
};
|
|
a.prototype.getFormatInfo = function () {
|
|
return this.chart.series(0).getFormatInfo();
|
|
};
|
|
a.prototype.getCalcCache = function () {
|
|
var a;
|
|
(a = this._calcCache) || (a = this._calcCache = Cy(this));
|
|
return a;
|
|
};
|
|
a.prototype.invalidateCache = function () {
|
|
this._calcCache = void 0;
|
|
this.chart.series().each(function (a) {
|
|
a.calcCache = void 0;
|
|
});
|
|
};
|
|
a.prototype.invalidate = function () {
|
|
this.each(function (a) {
|
|
return a.invalidate();
|
|
});
|
|
};
|
|
a.prototype.each = function (a) {
|
|
w(this.items, a);
|
|
};
|
|
a.prototype.log = function (a) {};
|
|
a.prototype.tryReflow = function (a) {
|
|
return this.reflow(a, !1, !1, !0);
|
|
};
|
|
a.prototype.reflow = function (a, b, d, e) {
|
|
var c = this;
|
|
if (c._reflowStarted) (c._needRenderData = c._needRenderData || b), (c._needLayoutRefresh = c._needLayoutRefresh || d);
|
|
else if (((c._reflowStarted = !0), (c._needRenderData = c._needLayoutRefresh = !1), (e && !c.needReflow()) || 9 < c._reflowsCount)) (c._reflowsCount = 0), (c._reflowStarted = !1);
|
|
else {
|
|
var g,
|
|
h = c.items,
|
|
k = [],
|
|
l = {};
|
|
e = function (a) {
|
|
return w(h, m[a]);
|
|
};
|
|
var m = {
|
|
beforeMeasure: function (d) {
|
|
var e = d.readyDefer,
|
|
f = e.hold("rootSetSize");
|
|
k.push(function () {
|
|
return e.release(f);
|
|
});
|
|
d.rootRect = d.rootVisuals.grid.getBbox();
|
|
b && (d.isDirtyPreRender = !0) && (d._cancelBubble = !1);
|
|
d._updateOptions = a || d._updateOptions;
|
|
d.preRender();
|
|
g = g || (!d.isZoomingReflow && (d.isDragging || d.isZooming));
|
|
l[d.id] = { renderDataResult: !1 };
|
|
c.invalidateCache();
|
|
},
|
|
startMeasure: function (a) {
|
|
var b = a.rootVisuals;
|
|
b.titleBox.applyOptions();
|
|
b.titleBoxPanel.attr({ width: null });
|
|
a.measureAxes_resetOverflows();
|
|
},
|
|
measureAxes: function (a) {
|
|
return !a.isMultiType() && a.measureAxes();
|
|
},
|
|
applyOverflows: function (a) {
|
|
return !a.isMultiType() && Il(a, a.overflows);
|
|
},
|
|
endMeasure: function (a) {
|
|
var b = a.rootVisuals;
|
|
a.rootRect = b.grid.getBbox();
|
|
a = b.content.getGlobalBbox().width;
|
|
b.titleBoxPanel.attr({ width: a });
|
|
b.titleBox.rootPanel.attr({ maxWidth: a });
|
|
},
|
|
tryRenderData: function (b) {
|
|
l[b.id].renderDataResult = b.tryRenderData(a);
|
|
},
|
|
renderData: function (e) {
|
|
var f = l[e.id].renderDataResult;
|
|
!f && (f = b && e.renderData(a));
|
|
!f && d && c.rootPanel.refresh();
|
|
},
|
|
};
|
|
e("beforeMeasure");
|
|
if (!g || d) {
|
|
e("startMeasure");
|
|
c.chart.refreshAnnotations();
|
|
c.axes().each(function (a) {
|
|
return a.syncLegend();
|
|
});
|
|
e("measureAxes");
|
|
if (1 < h.length) {
|
|
var n = [0, 0, 0, 0],
|
|
p,
|
|
q;
|
|
w(h, function (a) {
|
|
p = a.axSizes;
|
|
ob(4, function (a) {
|
|
return (n[a] = Math.max(n[a], p[a]));
|
|
});
|
|
});
|
|
var r = n[3],
|
|
t = n[1];
|
|
w(h, function (a) {
|
|
q = a.overflows.slice(0);
|
|
p = a.axSizes;
|
|
q[1] = Math.max(q[1], t - p[1]);
|
|
q[3] = Math.max(q[3], r - p[3]);
|
|
Il(a, q);
|
|
});
|
|
} else e("applyOverflows");
|
|
var x = (c.measureResult = Oy(c));
|
|
c.rootPanel.attr({ margin: x.casMargin });
|
|
c.rootPanel.refresh(!0);
|
|
e("endMeasure");
|
|
Qy(c, a);
|
|
e("tryRenderData");
|
|
}
|
|
e("renderData");
|
|
w(k, function (a) {
|
|
return a();
|
|
});
|
|
c._reflowStarted = !1;
|
|
c._reflowsCount++;
|
|
c.reflow(a, c._needRenderData, c._needLayoutRefresh, !c._needRenderData && !c._needLayoutRefresh);
|
|
}
|
|
};
|
|
a.prototype.chartItems = function () {
|
|
var a = this.chart,
|
|
b = a.toolbar();
|
|
a = a.legends().items.concat(a.annotations().items);
|
|
b && (a = a.concat(b.children()));
|
|
return a;
|
|
};
|
|
a.prototype.needReflow = function () {
|
|
var a;
|
|
w(this.items, function (b) {
|
|
if (!a) {
|
|
var c = b.rootVisuals.grid.getBbox(),
|
|
e = b.rootRect;
|
|
b.axes().each(function (b) {
|
|
b.requireReflow() && (a = !0);
|
|
});
|
|
!c.width || !c.height || (e && na(e.width, 4) === na(c.width, 4) && na(e.height, 4) === na(c.height, 4))
|
|
? c.width || c.height || Ma.emit("warning", b.id, "cantGetSize", { container: b.chart.getWrapper() })
|
|
: (a = !0);
|
|
}
|
|
});
|
|
return a;
|
|
};
|
|
return a;
|
|
})(),
|
|
BD = (function (a) {
|
|
function c(b, d) {
|
|
d = a.call(this, b, d) || this;
|
|
d.items = b;
|
|
d.kindObject = c;
|
|
d.points = Xa(
|
|
wb,
|
|
wo(d, function (a) {
|
|
return a.series().points().items;
|
|
}),
|
|
mk(d, function () {
|
|
throw "Not implemented. ";
|
|
})
|
|
);
|
|
d.series = Xa(
|
|
Ym,
|
|
wo(d, function (a) {
|
|
return a.series().items;
|
|
}),
|
|
mk(d, function () {
|
|
throw "Not implemented. ";
|
|
})
|
|
);
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
return c;
|
|
})(wb),
|
|
CD = (function (a) {
|
|
function c(b, d) {
|
|
d = a.call(this, b, d) || this;
|
|
d.items = b;
|
|
d.kindObject = c;
|
|
d.entries = Xa(
|
|
wb,
|
|
aA(d),
|
|
mk(d, function () {})
|
|
);
|
|
return d;
|
|
}
|
|
K(c, a);
|
|
return c;
|
|
})(wb),
|
|
Yl = {
|
|
"modules/debug": {
|
|
checker: function (a) {
|
|
return !0 === a.debug;
|
|
},
|
|
},
|
|
"modules/types": {
|
|
checker: function (a, c, b, d) {
|
|
if (a.navigator || J(b, "types") || (d && ds(d))) return !0;
|
|
if ((c = a.series) && c.length) for (b = 0; b < c.length; b++) if (d && ds(d, c[b])) return !0;
|
|
d = Hb(a, { series: void 0, targetElement: void 0 });
|
|
a = a.series && a.series[0];
|
|
d.series = a && (a.map ? {} : { name: a.name, points: a.points ? [a.points[0]] : [] });
|
|
return nr.test(JSON.stringify(d)) ? !0 : !1;
|
|
},
|
|
},
|
|
"modules/toolbar": {
|
|
checker: function (a, c) {
|
|
void 0 === c && (c = !1);
|
|
if (!c) return !1;
|
|
if (a.navigator || ((c = a.axisToZoom) && "none" !== c) || a.export || (t(a.toolbar) && !1 !== a.toolbar.visible)) return !0;
|
|
for (var b in a) if (Hg(b, "toolbar") && !1 !== a.toolbar_visible && !1 !== a["toolbar.visible"]) return !0;
|
|
return !1;
|
|
},
|
|
},
|
|
"modules/maps": {
|
|
checker: function (a) {
|
|
return a.type && Hg(a.type, "map");
|
|
},
|
|
},
|
|
"modules/accessibility": {
|
|
checker: function (a) {
|
|
return a.tabIndex || a.description;
|
|
},
|
|
},
|
|
"https://code.jscharting.com/polyfill/intl": {
|
|
checker: function (a) {
|
|
return !T.Intl;
|
|
},
|
|
},
|
|
"modules/datagrid": {
|
|
checker: function (a) {
|
|
return (a.grid && !1 !== a.grid.enabled) || (a.grid_enabled && !1 !== a.grid_enabled);
|
|
},
|
|
},
|
|
},
|
|
fA = fa("pie organization gauge radar treemap funnel cone pyramid heatmap calendar venn".split(" ")),
|
|
Hi = [],
|
|
sc = {},
|
|
Zl = {
|
|
animation: function (a, c) {
|
|
c.renderer.attr({ transition: { animation: a } });
|
|
},
|
|
box: function (a, c, b) {
|
|
a = Cg(a);
|
|
a.fill && c._loader && c._loader.options({ fill: a.fill });
|
|
b.boxAttr = a;
|
|
a.padding && c.isRendered && (b.needRedraw = !0);
|
|
},
|
|
loading: function (a, c) {
|
|
c._loader && c._loader.options(a);
|
|
},
|
|
width: function (a, c, b) {
|
|
c.isRendered && Z(b.layoutAttr, "width", a);
|
|
},
|
|
height: function (a, c, b) {
|
|
c.isRendered && Z(b.layoutAttr, "height", a);
|
|
},
|
|
targetElement: function (a, c, b) {
|
|
c.isRendered && (O(a) && (a = ba.getElementById(a)), Z(b.layoutAttr, "container", a));
|
|
},
|
|
annotations: function (a, c, b) {
|
|
c.isRendered && (c.annotations(a), (b.needRedraw = !0));
|
|
},
|
|
defaultAnnotation: function (a, c) {
|
|
c.isRendered && c.annotations().options({});
|
|
},
|
|
defaultBox: function (a, c, b) {
|
|
c.isRendered && (c.annotations().options({}), (b.needRefresh = !0));
|
|
},
|
|
defaultSeries: function (a, c, b) {
|
|
c.isRendered &&
|
|
(c.series().each(function (a) {
|
|
return a.seriesDirty.all(!0);
|
|
}),
|
|
c.series().options({}, !1),
|
|
(b.needRedraw = !0));
|
|
},
|
|
defaultCultureName: function (a, c, b) {
|
|
c.isRendered &&
|
|
(c.axes().each(function (a) {
|
|
return a.invalidate().options({}, !1);
|
|
}),
|
|
c.chartAreaSet.invalidate(),
|
|
(b.needRedraw = !0));
|
|
},
|
|
palette: function (a, c) {
|
|
c.palette = wy("palette", a);
|
|
c.series().each(function (a) {
|
|
return a.seriesDirty.all(!0);
|
|
});
|
|
c.dirty = !0;
|
|
c._spDirty = !0;
|
|
},
|
|
title: function (a, c) {
|
|
c.isRendered && (c.chartAreas(0).options({ title: a }), a.position && (c.dirty = !0));
|
|
},
|
|
type: function (a, c, b) {
|
|
c.isRendered &&
|
|
(c.ctManager.init(c.currentOptions),
|
|
w(c.chartAreaSet.items, function (a) {
|
|
a.ctManager.init(c.currentOptions);
|
|
}),
|
|
c.series().each(function (a) {
|
|
return a.seriesDirty.all(!0);
|
|
}),
|
|
(b.needRedraw = !0),
|
|
c.calIndexer ? (c.calIndexer.options({}), (b.updateCalendar = !0)) : (c.typeContextOptions = c.typeContextOptions || {}));
|
|
c.ctManager.hasSetting("behavior", "noLegend") && ((c.typeContextOptions || (c.typeContextOptions = {})).legend = { visible: !1 });
|
|
},
|
|
mapping: function (a, c) {
|
|
c.isRendered &&
|
|
(J(a, "base") || J(a, "referenceLayers") || J(a, "projection")
|
|
? c.chartAreas(0).triggerUser("updateMapData", [c.chartAreas(0), !1])
|
|
: J(a, "projection") && a.projection !== c.currentOptions.projection && c.chartAreas(0).triggerUser("updateMapData", [c.chartAreas(0), !1]),
|
|
(c.dirty = !0));
|
|
},
|
|
axisToZoom: function (a, c) {
|
|
("" === a || "none" === a) && (a = (a = c.toolbar()) && a.items ? a.items("zoom") : void 0) && a.options({ visible: !1 });
|
|
},
|
|
series: function (a, c, b) {
|
|
c.isRendered && c.calIndexer ? ((c.userOptions.series = a), (b.updateCalendar = !0), (b.needRedraw = !0)) : c.isRendered && (c.chartAreas(0).options({ series: a }, !1), (b.needRedraw = !0));
|
|
},
|
|
defaultTooltip: function (a, c, b) {
|
|
c.isRendered &&
|
|
(c.chartAreas().each(function (b) {
|
|
return b.tooltip.options(a);
|
|
}),
|
|
c.series().each(function (b) {
|
|
return b.tooltip.options(a);
|
|
}));
|
|
},
|
|
defaultAxis: function (a, c, b) {
|
|
c.isRendered && (c.axes().options({}, !1), (b.needRefresh = !0));
|
|
},
|
|
xAxis: function (a, c, b) {
|
|
!a.pop && c.isRendered && (c.axes("x").options(a, !1), (b.needRefresh = !0));
|
|
},
|
|
yAxis: function (a, c, b) {
|
|
!a.pop && c.isRendered && (c.axes("y").options(a, !1), (b.needRefresh = !0));
|
|
},
|
|
},
|
|
$l = {},
|
|
fs,
|
|
ku = function () {
|
|
return { fontFamily: "tahoma, geneva, sans-serif", fontSize: "12px", fontWeight: "normal", fontStyle: "normal", "user-select": "none", transition: { animation: { duration: 330, easing: "ease-in-out-circ" } } };
|
|
},
|
|
DD = function (a) {
|
|
var c = { defaultAnnotation: Pm(a), animation: ku().transition.animation, languageStrings: lA, debug: !0 };
|
|
a.ctManager.isType("map") && L(c, { legend: { template: "%icon %name" }, axisToZoom: "xy" });
|
|
return c;
|
|
},
|
|
$m = {},
|
|
lu,
|
|
lj = (function () {
|
|
function a(c, b) {
|
|
void 0 === c && (c = {});
|
|
this.kind = "Chart";
|
|
this.cpbIndex = 0;
|
|
this.isRtlCulture = !1;
|
|
this.flowEvents = {
|
|
optionsApplied: new sd(),
|
|
beforeSetUserOptions: new sd(),
|
|
beforeApplyLayout: new sd(),
|
|
beforeSnapshot: new sd(),
|
|
afterSnapshot: new sd(),
|
|
beforeOptionsNormalization: new sd(),
|
|
beforeDefaultsApply: new sd(),
|
|
beforeRenderSeries: new sd(),
|
|
nextRenderSeries: new sd(),
|
|
};
|
|
var d = this;
|
|
if (!(d instanceof a)) return new a(c, b);
|
|
d.rootVisuals = { box: void 0, front: void 0, tooltip: void 0 };
|
|
d.internal = {
|
|
ctManager: d.ctManager,
|
|
mappingInfo: { contextMaps: "", dataMaps: [], allMaps: [], loadedCallStack: [], regionList: [], mapsLoading: !1, internalMapsUsed: !1, customMapsUsed: !1, projection: "mercator", mapsLoadingList: [] },
|
|
};
|
|
d._annotations = [];
|
|
d._legends = [];
|
|
d._highlights = [];
|
|
d.palette = Fh(0);
|
|
d.use3D = !1;
|
|
d.internalConfigs = { chartAreas: [] };
|
|
d.ctManager = Ht();
|
|
d.mapsLoaded = !1;
|
|
d.action = new ED();
|
|
d.dirty = !0;
|
|
var e = 1 === arguments.length ? [arguments[0]] : Array.apply(null, arguments),
|
|
f = B(e, I);
|
|
"string" === f[0] || Fv(e[0]) ? ((c = e[1] || {}), (c.targetElement = e[0]), (b = e[2])) : "object" === f[0] && ((c = e[0]), (b = e[1]));
|
|
var g = Ii(c),
|
|
h = function () {
|
|
d.triggerUser("load");
|
|
d.checkGridOption();
|
|
d.dirty = !1;
|
|
d.loading(!1);
|
|
d.inited = !0;
|
|
b && b.call(d, d);
|
|
};
|
|
d.id = g.id || de(5);
|
|
d.isColorized = !0;
|
|
d.initRenderer(g);
|
|
d.renderer.refresh();
|
|
d.currentOptions = g;
|
|
d.ctManager.init(g);
|
|
(g && !1 === g.loading) || d.loading(!0);
|
|
dg = g.baseUrl;
|
|
cs(
|
|
d,
|
|
g,
|
|
function () {
|
|
d.init(g, h);
|
|
},
|
|
!0
|
|
);
|
|
}
|
|
a.prototype.toGrid = function (a, b) {
|
|
var c = this,
|
|
e = Ii(b),
|
|
f = (this._grid = sc.chartToGrid && sc.chartToGrid(this, a, e));
|
|
if (f)
|
|
return (
|
|
(f.then = function (a) {
|
|
return a && a(f);
|
|
}),
|
|
f
|
|
);
|
|
var g = { grid_enabled: !0 };
|
|
e && ((g.baseUrl = e.baseUrl), (g.notificationContainer = e.notificationContainer));
|
|
return gf(function (b, d) {
|
|
Xl("modules/datagrid", g, function () {
|
|
c._grid = sc.chartToGrid && sc.chartToGrid(c, a, e);
|
|
b(c._grid);
|
|
});
|
|
});
|
|
};
|
|
a.prototype.checkGridOption = function () {
|
|
var a = this,
|
|
b = a.currentOptions.grid,
|
|
d = a.currentOptions.targetElement;
|
|
b &&
|
|
(!0 === b.enabled
|
|
? a._grid
|
|
? (a._grid.setDataFromChart(!1), a._grid.options(b))
|
|
: a.toGrid(d, L({ className: "dataTable", exportFile: !0 }, b)).then(function (b) {
|
|
a._gridSwitch = sc.createGridSwitch && sc.createGridSwitch(a, d, b);
|
|
})
|
|
: !1 === b.enabled && (a._grid && a._grid.destroy(), a._gridSwitch && a._gridSwitch.destroy(), delete a._grid, delete a._gridSwitch),
|
|
a.triggerOptionsApplied("grid", a));
|
|
};
|
|
a.prototype.init = function (a, b) {
|
|
var c = this,
|
|
e = c.options("navigator.enabled");
|
|
a = c.userOptions = yf(a);
|
|
if (!c.renderer.renderer.isRootDestroyed()) {
|
|
c.chartItemManager = new OC(this);
|
|
c.initFP();
|
|
Da($m, function (a) {
|
|
return $m[a](c);
|
|
});
|
|
if (!c.ctManager.isType("calendar") && c.data && !c.userOptions.series) {
|
|
var f = mp(c.data.val);
|
|
c.userOptions.series = [
|
|
{
|
|
points: B(f, function (a) {
|
|
return { x: a[0], y: a[1], z: a[2] };
|
|
}),
|
|
},
|
|
];
|
|
}
|
|
c.seriesCount = a.series ? a.series.length : 0;
|
|
c.isRtlCulture = Is(a.defaultCultureName);
|
|
c.setRootVisuals();
|
|
c.disableAnimation(!1);
|
|
c.flowEvents.beforeSetUserOptions.trigger({ type: "chart", owner: c });
|
|
c.options(c.userOptions);
|
|
var g = c.chartAreaSet.add();
|
|
c.drawAnnotations();
|
|
c.flowEvents.beforeApplyLayout.trigger({ type: "chart", owner: c });
|
|
c.rootPanel.refresh(!0);
|
|
g.tryReflow();
|
|
c._lastRefreshedRect = c.renderer.getRootBox();
|
|
c.rootPanel.on("finalSize", function (a) {
|
|
var b = c._lastRefreshedRect;
|
|
(b && b.width === a.width && b.height === a.height) || ((c._lastRefreshedRect = a), g.tryReflow());
|
|
});
|
|
c.enableAnimation();
|
|
var h = [],
|
|
k = function () {
|
|
c.isRendered = !0;
|
|
h.length || b.call(c, c);
|
|
};
|
|
w(c.chartAreaSet.items, function (a) {
|
|
!a.isRendered &&
|
|
a.isRendering &&
|
|
(h.push(a.id),
|
|
e && (a.navHold = a.readyDefer.hold("Navigator")),
|
|
a.awaitRender(function () {
|
|
h.splice(h.indexOf(a.id), 1);
|
|
k();
|
|
}));
|
|
});
|
|
k();
|
|
}
|
|
};
|
|
a.prototype.exportImage = function (a, b) {
|
|
void 0 === a && (a = {});
|
|
this.renderer.attr("disableAnimation", !0);
|
|
this.flowEvents.beforeSnapshot.trigger({ type: "chart", owner: this });
|
|
this.triggerUser("beforeExport");
|
|
this.rootPanel.refresh();
|
|
|
|
this.chartAreaSet.items.forEach(function (a) {
|
|
return a.clickOff(null, !0);
|
|
});
|
|
|
|
b && this.options(b);
|
|
b = a.imageType || a.type;
|
|
b = { png: "image/png", jpg: "image/jpeg", pdf: "application/pdf", svg: "image/svg+xml" }[b.toLowerCase()] || b;
|
|
var c = a.server || "https://export.jscharting.com/download",
|
|
e = this.getSVG(),
|
|
f = a.title || this.options("title_label_text"),
|
|
g = a.author,
|
|
h = a.subject,
|
|
k = a.keywords,
|
|
l = a.comment,
|
|
m = a.rating;
|
|
|
|
this.submitForm(e.svgString, b, c, a.width, e.width, e.height, gs(), f, g, h, k, l, m);
|
|
this.flowEvents.afterSnapshot.trigger({ type: "chart", owner: this });
|
|
this.triggerUser("afterExport");
|
|
this.rootPanel.refresh();
|
|
this.renderer.attr("disableAnimation", !1);
|
|
};
|
|
a.prototype.print = function () {
|
|
var a = this,
|
|
b = a.getWrapper(),
|
|
d = b.style,
|
|
e = a.renderer,
|
|
f = T,
|
|
g = f.document.documentElement,
|
|
h = g.style;
|
|
a.chartAreaSet.items.forEach(function (a) {
|
|
return a.clickOff(null, !0);
|
|
});
|
|
h.visibility = "hidden";
|
|
var k = L({}, d),
|
|
l = e.attr("width"),
|
|
m = e.attr("height"),
|
|
n = function (a) {
|
|
a = a.getBoundingClientRect();
|
|
return { top: a.top + (f.pageYOffset || g.scrollTop), left: a.left + (f.pageXOffset || g.scrollLeft) };
|
|
};
|
|
n = (b = (function (a) {
|
|
for (var b = (a = a.parentNode) && a.style && a.style.position, c = ["absolute", "relative", "fixed"]; a && (!b || !~c.indexOf(b)); ) b = (a = a.parentNode) && a.style && a.style.position;
|
|
return a;
|
|
})(b))
|
|
? n(b)
|
|
: { left: 0, top: 0 };
|
|
A(d, { visibility: "visible", position: "absolute", top: -n.top, left: -n.left });
|
|
e.attr("disableAnimation", !0);
|
|
e.attr("width", "21cm");
|
|
e.attr("height", e.rootBox.height || "100%");
|
|
a.flowEvents.beforeSnapshot.trigger({ type: "chart", owner: a });
|
|
a.triggerUser("beforeExport");
|
|
e.refresh();
|
|
setTimeout(function () {
|
|
f.focus();
|
|
f.print();
|
|
setTimeout(
|
|
function () {
|
|
A(d, { visibility: k.visibility, position: k.position, top: k.top, left: k.left });
|
|
e.attr("width", l);
|
|
e.attr("height", m);
|
|
a.flowEvents.afterSnapshot.trigger({ type: "chart", owner: a });
|
|
a.triggerUser("afterExport");
|
|
e.refresh();
|
|
e.attr("disableAnimation", !1);
|
|
h.visibility = "visible";
|
|
},
|
|
RA ? 3e3 : 1
|
|
);
|
|
}, 1);
|
|
};
|
|
a.prototype.submitForm = function (a, b, d, e, f, g, h, k, l, m, n, p, q) {
|
|
var c = ba.createElement("form");
|
|
c.action = d;
|
|
c.method = "POST";
|
|
this.createFormInput(c, "svg", a);
|
|
this.createFormInput(c, "type", b);
|
|
this.createFormInput(c, "width", e);
|
|
this.createFormInput(c, "actualWidth", f);
|
|
this.createFormInput(c, "actualHeight", g);
|
|
this.createFormInput(c, "version", h);
|
|
this.createFormInput(c, "title", k);
|
|
this.createFormInput(c, "author", l);
|
|
this.createFormInput(c, "subject", m);
|
|
this.createFormInput(c, "keywords", n);
|
|
this.createFormInput(c, "comment", p);
|
|
this.createFormInput(c, "rating", q);
|
|
ba.body.appendChild(c);
|
|
c.submit();
|
|
//ba.body.removeChild(c);
|
|
};
|
|
a.prototype.createFormInput = function (a, b, d) {
|
|
if (d) {
|
|
var c = ba.createElement("input");
|
|
c.value = encodeURIComponent(d);
|
|
c.name = b;
|
|
a.appendChild(c);
|
|
return c;
|
|
}
|
|
};
|
|
a.prototype.toolbar = function () {
|
|
return this._toolbar;
|
|
};
|
|
a.prototype.initFP = function () {
|
|
var a = this;
|
|
a.series = Xa(
|
|
Ym,
|
|
function () {
|
|
return a.chartAreaSet.series();
|
|
},
|
|
function (b) {
|
|
w(b, zb);
|
|
a.userOptions.series = b;
|
|
var c = a.chartAreas(0).readyDefer,
|
|
e = c.hold("splS");
|
|
a.chartAreas(0).spliceSeries(0, a.chartAreas(0).series().items.length, b, !1);
|
|
a.redraw({ animation: a.currentOptions.animation });
|
|
c.release(e);
|
|
},
|
|
{
|
|
push: function (b, c) {
|
|
var d = a.chartAreas(0);
|
|
b = d.addSeries(b, !1);
|
|
d.triggerUser("updateMapData", [d, b]);
|
|
!1 !== c && a.redraw(c);
|
|
a.action.log("data");
|
|
},
|
|
splice: function (b, c, e, f) {
|
|
a.chartAreas(0).spliceSeries(b, c, ja(e) ? e : [e], !1);
|
|
!1 !== f && a.redraw(f);
|
|
a.action.log("data");
|
|
},
|
|
}
|
|
);
|
|
a.annotations = Xa(
|
|
wb,
|
|
function () {
|
|
return a._annotations;
|
|
},
|
|
function (b) {
|
|
w(b, zb);
|
|
Z(a.userOptions, "annotations", b);
|
|
a.drawAnnotations();
|
|
a.chartAreaSet.reflow(null, !1, !0);
|
|
},
|
|
{
|
|
push: function (b, c) {
|
|
zb(b);
|
|
a.userOptions.annotations = a.userOptions.annotations || [];
|
|
a.userOptions.annotations.push(b);
|
|
a.drawAnnotations();
|
|
Pa(c) && (c = Sa(c));
|
|
a.chartAreaSet.reflow(c, !1, !0);
|
|
},
|
|
splice: function (b, c, e, f) {
|
|
var d;
|
|
w(e, zb);
|
|
a.userOptions.annotations = a.userOptions.annotations || [];
|
|
(d = a.userOptions.annotations).splice.apply(d, H([b, c], e));
|
|
a.drawAnnotations();
|
|
Pa(f) && (f = Sa(f));
|
|
a.chartAreaSet.reflow(f, !1, !0);
|
|
},
|
|
}
|
|
);
|
|
a.chartAreas = Xa(
|
|
BD,
|
|
function () {
|
|
return a.chartAreaSet.items;
|
|
},
|
|
function (a) {}
|
|
);
|
|
a.xAxis = Xa(
|
|
Kf,
|
|
function () {
|
|
a.chartAreaSet.axes({ prefix: "x" });
|
|
},
|
|
function (b) {
|
|
a.currentOptions.xAxis = b;
|
|
}
|
|
);
|
|
a.axes = Xa(
|
|
Kf,
|
|
function () {
|
|
return a.chartAreaSet.axes().items;
|
|
},
|
|
function (a) {}
|
|
);
|
|
a.legends = Xa(
|
|
CD,
|
|
function () {
|
|
return a._legends;
|
|
},
|
|
function (a) {},
|
|
{ push: function (a, c) {}, splice: function (a, c, e, f) {} }
|
|
);
|
|
};
|
|
a.prototype.options = function (a, b) {
|
|
var c = this,
|
|
e = I(a);
|
|
if ("undefined" === e) return c.currentOptions;
|
|
if ("string" === e) return C(c.currentOptions, a);
|
|
var f = c.inited && !c.isRendered && c.loading(!0);
|
|
c.ctManager.init(c.currentOptions);
|
|
c.initApi();
|
|
c.isRendered && (a = Sa(a, "series,targetElement"));
|
|
a = iA(c, a, b);
|
|
a = c.setUserOptions(a);
|
|
c.optionsNormalized = !0;
|
|
cs(c, a, function () {
|
|
hA(c, a, b);
|
|
a.series && !c.isRendered ? c.initControls() : c.dirty && !1 !== b && (c.setCursor(), c.chartAreaSet.invalidate(), c.redraw());
|
|
c.inited && a.grid && c.checkGridOption();
|
|
c.triggerOptionsApplied("chart", c);
|
|
f && c.loading(!1);
|
|
});
|
|
b &&
|
|
b.then &&
|
|
Ce.await(function () {
|
|
b.then && (b.then.call(c), delete b.then);
|
|
});
|
|
return c;
|
|
};
|
|
a.prototype.triggerOptionsApplied = function (a, b) {
|
|
this.flowEvents.optionsApplied.trigger({ type: a, owner: b });
|
|
};
|
|
a.prototype.replaceTokens = function (a, b) {
|
|
return this.chartAreaSet.series().length ? vi(a, this.chartAreaSet, this.getFormatInfo()) : a;
|
|
};
|
|
a.prototype.tokenValue = function (a) {
|
|
return this.replaceTokens({ token: a });
|
|
};
|
|
a.prototype.getFormatInfo = function () {
|
|
return this.chartAreaSet.series().length ? this.series(0).getFormatInfo() : { x: {}, y: {}, z: {} };
|
|
};
|
|
a.prototype.getSVG = function () {
|
|
var a = this.getWrapper().getElementsByTagName("svg")[0],
|
|
b = a.getBoundingClientRect(),
|
|
d = a.outerHTML;
|
|
d || ((d = new XMLSerializer().serializeToString(a)), (d = d.replace('xmlns="http://www.w3.org/2000/svg"', "")), (d = d.replace('xmlns:NS1=""', "")), (d = d.replace('NS1:xmlns:xlink="http://www.w3.org/1999/xlink"', "")));
|
|
return { svgString: d, width: b.width, height: b.height };
|
|
};
|
|
a.prototype.zoom = function (a, b) {
|
|
return this.chartAreas(0).zoom(a || 1, b);
|
|
};
|
|
a.prototype.setUserOptions = function (a) {
|
|
var b = a.series,
|
|
c = a.data;
|
|
delete a.series;
|
|
delete a.data;
|
|
var e = this.normalizeOptions(a);
|
|
this.userOptions = A(this.userOptions, e);
|
|
var f = DD(this);
|
|
this.flowEvents.beforeDefaultsApply.trigger({ type: "chart", owner: this, options: f });
|
|
f = A(f, this.userOptions);
|
|
w(["defaultBox", "defaultAxis"], function (a) {
|
|
f[a] && (f[a] = Nm(f[a]));
|
|
});
|
|
this.currentOptions = A(this.currentOptions, this.contextOptions(), f);
|
|
b && (e.series = this.currentOptions.series = b);
|
|
c && (e.data = this.currentOptions.data = c);
|
|
a.defaultCultureName && (this.isRtlCulture = Is(a.defaultCultureName));
|
|
return e;
|
|
};
|
|
a.prototype.contextOptions = function () {
|
|
return C(this, "typeContextOptions.chart") || {};
|
|
};
|
|
a.prototype.normalizeOptions = function (a) {
|
|
var b = a.annotations;
|
|
b && w(b, zb);
|
|
a.defaultPoint && Z(a, "defaultSeries.defaultPoint", A(C(a, "defaultSeries.defaultPoint") || {}, a.defaultPoint || {}));
|
|
(b = a.hatchPalette) && !0 === b && (a.hatchPalette = mu("hatch"));
|
|
a.export && Vf(a, ["toolbar", "items", "export", "visible"], !0);
|
|
this.flowEvents.beforeOptionsNormalization.trigger({ type: "chart", owner: this, options: a });
|
|
return a;
|
|
};
|
|
a.prototype.initApi = function () {
|
|
var a = this.userOptions,
|
|
b = this.internal,
|
|
d = a.template;
|
|
delete a.template;
|
|
b.spv = Z;
|
|
a = Sa(a, "data,series,targetElement");
|
|
a.series = a.series || [];
|
|
d && ((d = Sa(d)), (a = qd(a, d)));
|
|
this.currentOptions = A({}, a);
|
|
};
|
|
a.prototype.initControls = function () {
|
|
this.drawLegends();
|
|
this.chartAreaSet.init();
|
|
};
|
|
a.prototype.initRenderer = function (a) {
|
|
var b = a.targetElement,
|
|
c = O(b) ? ba.getElementById(b) : b;
|
|
c || (O(b) && Ma.emit("error", this.id, "targetElIdNotFound", { data: [b] }));
|
|
(this.renderer = new Al({ container: c, width: this.getSizeOrMin(a.width, 25), height: this.getSizeOrMin(a.height, 25), defaultWidth: 640, defaultHeight: 350, pixelCorrection: a.pixelCorrection })).attr(ku());
|
|
};
|
|
a.prototype.getSizeOrMin = function (a, b) {
|
|
var c = 0;
|
|
"number" === typeof a ? (c = a) : "string" === typeof a && -1 === a.indexOf("%") && (c = parseInt(a));
|
|
return c ? Math.max(c, b) : a;
|
|
};
|
|
a.prototype.setRootVisuals = function () {
|
|
var a = this,
|
|
b = a.renderer,
|
|
d = { width: "*", height: "*" },
|
|
e = a.rootPanel;
|
|
e ||
|
|
(a.isRtlCulture && ((d.direction = "rtl"), (d["text-anchor"] = "end")),
|
|
(e = a.rootPanel = b.panel(d)),
|
|
e.on("touchstart", function (b) {
|
|
return a.touched(!0);
|
|
}));
|
|
d = a.rootVisuals = a.rootVisuals || { box: void 0, front: void 0, uiItemsFront: void 0, itemsBox: void 0 };
|
|
var f = (d.box = d.box || b.box({ width: "*", height: "*", stroke: "none", fill: "#FFFFFF", margin: 3 }).add(e));
|
|
d.uiItemsFront = d.uiItemsFront || b.panel({ width: "*", height: "*" }).add(e);
|
|
d.front = d.front || b.panel({ width: "*", height: "*" }).add(e);
|
|
a.isColorized &&
|
|
!a.chartAreaSet &&
|
|
(a.renderer.getRootBox(),
|
|
(e = b.box({ xAlignment: "left", yAlignment: "bottom", cursor: "pointer", borderWidth: 0, height: 17, fill: "transparent", margin: [0, 0, 4, 4] }).add(e)),
|
|
a.renderer.renderer
|
|
.element("title")
|
|
.attr({ text: "Chart created using ".concat("JSCharting") })
|
|
.add(e),
|
|
b
|
|
.svgContainer(
|
|
'<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.4" x2="8.4" y1="16.327" y2="1.765"><stop offset="0" stop-color="#4a4949"/><stop offset="1" stop-color="#666565"/></linearGradient><linearGradient id="b"><stop offset="0" stop-color="#0d48a1"/><stop offset="1" stop-color="#20ade2"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="24.226" x2="24.226" xlink:href="#b" y1="16.343" y2="4.618"/><filter id="d" width="120%" height="120%" x="-10%" y="-10%"><feColorMatrix type="saturate" values="0"></feColorMatrix></filter><g opacity=0.4 filter="url(#d)" id=\'brandingLogo\'><rect x=0 y=0 width=31 height=16.4 fill="rgba(255,255,255,0)"/><path d="m4.7 12.9s.1.9-.9.9c-1.2 0-1.9-1.3-1.9-1.3l-1.9 1.8s1.7 2 3.9 2c2.4 0 3.5-1.6 3.5-2.6v-11.6h-2.7zm6.7-6.9c-.7-.7.9-3 3.2-.2l1.9-1.8s-1.7-2.2-4-2.2c-2.8 0-4.8 3.2-3.4 5 1.8 2.4 5.1 4.2 5.1 5.4 0 .7-.4 1.5-1.4 1.5-2.1 0-2.5-1.8-2.5-1.8l-2.3 1.4s1.5 3 4.3 3c2.7 0 4.5-1.3 4.5-4.3-.1-2.2-4.2-4.7-5.4-6z" fill="#FF5353"/><path d="m23.7 0c-2.3-.1-5.1 2.1-5.1 2.1l5.3 5.2-.2-7.3z" fill="#1faae0"/><path d="m25.1 1-.3 7.2 3-6.4c.1 0-.9-.6-2.7-.8z" fill="#0e4da4"/><path d="m28.8 2.7-1.2 2.2s1.7 1.1 1.7 1.3l1.7-1.7s-1.6-1.7-2.2-1.8z" fill="#1d9fd9"/><path d="m23.3 13.6c-5.2-2-2.5-7.5-2.5-7.5l-1.8-1.5c-3.4 4.5-.7 10.4 3.3 11.4 6 1.5 8.7-2.4 8.7-2.4l-1.7-1.7c-2 1.7-4.1 2.5-6 1.7z" fill="url(#c)"/></g>'
|
|
)
|
|
.add(e),
|
|
e.on("click", function (a) {
|
|
ba.location.href = "https://jscharting.com";
|
|
}),
|
|
a.renderer.renderer.cssText(
|
|
"#brandingLogo:hover{\n\t\t\t\topacity:1;\n\t\t\t\tfilter:none;\n\t\t\t} #brandingLogo {\n\t\t\t\t-webkit-transition: opacity 1s ease;\n\t\t\t\t-moz-transition: opacity 1s ease;\n\t\t\t\t-o-transition: opacity 1s ease;\n\t\t\t\ttransition: opacity 1s ease;\n\t\t\t}"
|
|
));
|
|
a.chartAreaSet = a.chartAreaSet || new AD(this).add(f);
|
|
d.itemsBox = d.itemsBox || b.panel({ width: "*", height: "*" }).add(f);
|
|
};
|
|
a.prototype.boxDefaults = function (a) {
|
|
var b = Sa(this.userOptions.defaultBox);
|
|
a = Cf(z(a, this.getStyling()));
|
|
b && (b.fill || (b.outline && 0 !== b.outline.width)) && (a.boxVisible = !0);
|
|
return b ? A(a, b) : a;
|
|
};
|
|
a.prototype.getStyling = function () {
|
|
var a = this.currentOptions,
|
|
b = Sa(this.userOptions.defaultBox);
|
|
return z(a.legacyStyling, b && b.boxVisible) ? 1 : 0;
|
|
};
|
|
a.prototype.touched = function (a) {
|
|
if (t(a)) lu = !0;
|
|
else return lu;
|
|
};
|
|
a.prototype.setCursor = function (a) {
|
|
this.renderer.renderer.setCursor(a);
|
|
};
|
|
a.prototype.getCursor = function () {
|
|
return this.renderer.renderer.getCursor();
|
|
};
|
|
a.prototype.getWrapper = function () {
|
|
return C(this, "renderer.renderer.wrapper.el");
|
|
};
|
|
a.prototype.resetTimers = function () {
|
|
this.chartAreas().each(function (a) {
|
|
return a.resetTimers();
|
|
});
|
|
};
|
|
a.prototype.redraw = function (a) {
|
|
var b = this;
|
|
if (!1 === b.dirty) {
|
|
var c = b.renderer.getRootBox(),
|
|
e = b.renderer.renderer.isDefaultSizeSet();
|
|
if (!c.height || !c.width || e) {
|
|
b.renderer.refreshRootBox();
|
|
b.renderer.refresh();
|
|
b.renderer.renderer.rootResize();
|
|
e
|
|
? setTimeout(function () {
|
|
return b.renderer.renderer.resubscribeResize();
|
|
}, 1e3)
|
|
: b.renderer.renderer.resubscribeResize();
|
|
return;
|
|
}
|
|
}
|
|
a = Sa(a);
|
|
c = b.disableAnimation(a);
|
|
b.tooltipRef && b.tooltipRef.hide();
|
|
b.series().each(function (a) {
|
|
return a.visualizer.hideHalo();
|
|
});
|
|
b.chartAreaSet.enumerateData();
|
|
b.chartAreaSet.reflow(a, !0);
|
|
b.triggerUser("redraw");
|
|
c && b.enableAnimation();
|
|
b.dirty = !1;
|
|
a &&
|
|
a.then &&
|
|
Ce.await(function () {
|
|
a.then && (a.then.call(b), delete a.then);
|
|
});
|
|
};
|
|
a.prototype.updateSideItems = function (a) {
|
|
this._grid && this._grid.setDataFromChart(a);
|
|
};
|
|
a.prototype.disableAnimation = function (a) {
|
|
var b = this.renderer;
|
|
(a = t(a) && (!1 === a || !1 === a.animation) && b.disableAnimation()) && b.attr("disableAnimation", !0);
|
|
return a;
|
|
};
|
|
a.prototype.enableAnimation = function () {
|
|
this.renderer.attr("disableAnimation", !1);
|
|
};
|
|
a.prototype.hideTooltip = function () {
|
|
var a = this.tooltipRef;
|
|
a && a.isVisible && a.hideActiveTooltip(this);
|
|
};
|
|
a.prototype.zoomInOut = function (a) {};
|
|
a.prototype.refreshAnnotations = function () {
|
|
this.annotations().each(function (a) {
|
|
var b = a.options("label_text");
|
|
b && -1 < b.indexOf("%") && a.applyOptions();
|
|
});
|
|
};
|
|
a.prototype.drawAnnotations = function (a) {
|
|
var b = this;
|
|
(a = b.userOptions.annotations) &&
|
|
Ub(
|
|
a,
|
|
b._annotations,
|
|
function (a) {
|
|
a = new ej(b, a);
|
|
a.add(b.rootVisuals.itemsBox);
|
|
return a;
|
|
},
|
|
function (a, b) {
|
|
return b.options(a);
|
|
}
|
|
);
|
|
};
|
|
a.prototype.requestLegend = function (a) {
|
|
return this._legends[0];
|
|
};
|
|
a.prototype.drawLegends = function (a) {
|
|
var b = this;
|
|
a = b.options("legend") || {};
|
|
var c = b.rootVisuals.itemsBox;
|
|
Ub(
|
|
[a],
|
|
b._legends,
|
|
function (a) {
|
|
return new zD(b, a).add(c);
|
|
},
|
|
function (a, b) {
|
|
return b.options(a);
|
|
}
|
|
);
|
|
};
|
|
a.prototype.triggerUser = function (a, b) {
|
|
var c = this.currentOptions.events;
|
|
c = (a = c && mh(c, a)) && c[a];
|
|
if (Fb(c)) return c.call(this, b);
|
|
};
|
|
a.prototype.loading = function (a, b) {
|
|
return (this._loader = this._loader || new XC(this.renderer, L({ fill: this.currentOptions.box ? this.currentOptions.box.fill : "#fff" }, this.currentOptions.loading || {}))).loading(a, b);
|
|
};
|
|
a.prototype.ensureLoadingApplied = function (a) {
|
|
this._loader ? this._loader.ensureAnimationApplied(a) : a();
|
|
};
|
|
a.prototype.destroy = function () {
|
|
this._selDeBouncer && this._selDeBouncer.clearAll();
|
|
this.chartAreaSet &&
|
|
w(this.chartAreaSet.items, function (a) {
|
|
return a.debounce.clearAll();
|
|
});
|
|
this._loader && this._loader.destroy();
|
|
this.renderer.destroy();
|
|
};
|
|
a.prototype.dispose = function () {
|
|
this.destroy();
|
|
};
|
|
a.prototype.getSmartPalette = function (a) {
|
|
var b = this.chartItemManager,
|
|
c,
|
|
e,
|
|
f = I(a);
|
|
if ("string" === f) return b.exists(a);
|
|
var g = b.getSPItems(),
|
|
h = 1 === g.length && (a.colors || a.ranges || a.stops) ? !1 : !0;
|
|
this._spDirty &&
|
|
!h &&
|
|
(w(b.getSPItems(), function (a) {
|
|
return b.destroyItem(a.id);
|
|
}),
|
|
(g = b.getSPItems()));
|
|
if (h && 1 === g.length) {
|
|
g[0].setOptions(a);
|
|
var k = g[0];
|
|
} else (c = a.id) && (e = b.exists(c)) ? (e.setOptions(a), (k = e)) : "object" === f && (k = new Nt(this, a));
|
|
this._spDirty = !1;
|
|
return k;
|
|
};
|
|
a.prototype._pointSelection = function () {
|
|
var a = this;
|
|
(a._selDeBouncer = a._selDeBouncer || new Ae()).defer(
|
|
"pSel",
|
|
function () {
|
|
var b = a._sMaxList && a._sMaxList.length ? a._sMaxList.slice(0) : a.series().points({ selected: !0 }).items;
|
|
a.triggerUser("pointSelectionChanged", b);
|
|
},
|
|
30
|
|
);
|
|
};
|
|
a.prototype._seriesSelection = function () {
|
|
var a = this;
|
|
(a._selDeBouncer = a._selDeBouncer || new Ae()).defer(
|
|
"pSel",
|
|
function () {
|
|
var b = a.series(function (a) {
|
|
return a.options("selected");
|
|
}).items;
|
|
a.triggerUser("seriesSelectionChanged", b);
|
|
},
|
|
30
|
|
);
|
|
};
|
|
return a;
|
|
})(),
|
|
ED = (function () {
|
|
function a() {
|
|
this._log = [];
|
|
}
|
|
a.prototype.log = function (a) {
|
|
this._log.push((this._last = a));
|
|
};
|
|
a.prototype.last = function () {
|
|
return this._last;
|
|
};
|
|
a.prototype.clear = function () {
|
|
this._log = [];
|
|
};
|
|
return a;
|
|
})(),
|
|
nu = [];
|
|
(function (a, c) {
|
|
T.JSC = A(T.JSC, { Chart: c });
|
|
jA(T.jQuery, a, c);
|
|
})(nu, lj);
|
|
var mu = Xi,
|
|
FD = B,
|
|
GD = A,
|
|
HD = Wl,
|
|
mj = function (a, c, b) {
|
|
return Pk(b ? a.map(Sk(b)) : a, c);
|
|
};
|
|
nk(
|
|
{
|
|
"system/default/area":
|
|
"M 23 0 A 12 12 0 0 0 11 12 A 12 12 0 0 0 23 24 A 12 12 0 0 0 35 12 A 12 12 0 0 0 23 0 z M 48 0 L 35.785156 6.1074219 A 14.10924 14.10924 0 0 1 37.109375 12.033203 A 14.10924 14.10924 0 0 1 30.458984 24 L 48 24 L 48 0 z M 10.583984 18.708984 L 0 24 L 15.556641 24 A 14.10924 14.10924 0 0 1 10.583984 18.708984 z ",
|
|
"system/default/areaSolo": "M 0,24 48,0 48,24 Z",
|
|
"system/default/checkbox-blank": "M38 10v28H10V10h28m0-4H10c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h28c2.21 0 4-1.79 4-4V10c0-2.21-1.79-4-4-4z",
|
|
"system/default/checkbox": "M38 6H10c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h28c2.21 0 4-1.79 4-4V10c0-2.21-1.79-4-4-4zM20 34L10 24l2.83-2.83L20 28.34l15.17-15.17L38 16 20 34z",
|
|
"system/default/circle": "M0,12a12,12 0 1,0 24,0a12,12 0 1,0 -24,0",
|
|
"system/default/diamond": "M12 .001l12 12-12 12-12-12 12-12z",
|
|
"system/default/line":
|
|
"M 46.076172 -0.001953125 L 34.929688 4.7050781 A 14.000001 14 0 0 1 36.732422 9.3027344 L 47.996094 4.546875 L 46.076172 -0.001953125 z M 23 0 A 12 12 0 0 0 11 12 A 12 12 0 0 0 23 24 A 12 12 0 0 0 35 12 A 12 12 0 0 0 23 0 z M 9.453125 15.460938 L 0 19.451172 L 1.9199219 24 L 11.488281 19.960938 A 14.000001 14 0 0 1 9.453125 15.460938 z",
|
|
"system/default/lineSolo": "M 46.076172,-0.00195313 0,19.451172 1.9199219,24 47.996094,4.546875 46.076172,-0.00195313 Z",
|
|
"system/default/radio-button-blank": "M24 4C12.95 4 4 12.95 4 24s8.95 20 20 20 20-8.95 20-20S35.05 4 24 4zm0 36c-8.84 0-16-7.16-16-16S15.16 8 24 8s16 7.16 16 16-7.16 16-16 16z",
|
|
"system/default/radio-button":
|
|
"M24 14c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0-10C12.95 4 4 12.95 4 24s8.95 20 20 20 20-8.95 20-20S35.05 4 24 4zm0 36c-8.84 0-16-7.16-16-16S15.16 8 24 8s16 7.16 16 16-7.16 16-16 16z",
|
|
"system/default/square": "M18 24H6c-3.3 0-6-2.7-6-6V6c0-3.3 2.7-6 6-6h12c3.3 0 6 2.7 6 6v12c0 3.3-2.7 6-6 6z",
|
|
"system/default/triangle": "M24 22h-24l12-20z",
|
|
"system/default/triangleDown": "M12 21l-12-18h24z",
|
|
"system/default/warning":
|
|
"M18.9 18.3l-9-16c0-.1-.1-.1-.2-.2-.2-.2-.5-.1-.6.2l-9 16c-.1 0-.1.1-.1.2 0 .3.2.5.5.5h18c.1 0 .2 0 .2-.1.3-.1.4-.4.2-.6zM10 16.5c0 .3-.2.5-.5.5s-.5-.2-.5-.5v-1c0-.3.2-.5.5-.5s.5.2.5.5v1zm0-3c0 .3-.2.5-.5.5s-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5s.5.2.5.5v5z",
|
|
},
|
|
!1
|
|
);
|
|
Z(T, "JSC.internal.registerIcons", nk);
|
|
Z(T, "JSC.internal.setPathVal", Z);
|
|
["log", "warning", "error"].forEach(function (a) {
|
|
Z(T, "JSC.internal." + a, function (c, b) {
|
|
Ma.emit(a, null, c, { container: b });
|
|
});
|
|
});
|
|
var Je = C(T, "JSC.internal"),
|
|
od,
|
|
ID = Object.freeze({ SELECT_STATE: "select", NORMAL_STATE: "", zIndexReference: gb, boxDefaults: Cf }),
|
|
JD = Object.freeze({
|
|
def: t,
|
|
has: J,
|
|
noop: xc,
|
|
removeArrItem: pb,
|
|
evalPath: C,
|
|
epa: N,
|
|
contains: ae,
|
|
getValType: I,
|
|
isNull: an,
|
|
mergeCollections: Ub,
|
|
extend: L,
|
|
extendCopy: W,
|
|
copy: Oa,
|
|
extendScoped: Na,
|
|
extendScopedNegate: Sc,
|
|
extendCopyScopedNegate: be,
|
|
plainArray: fa,
|
|
arraySum: Kj,
|
|
last: P,
|
|
pick: z,
|
|
isString: O,
|
|
isObject: Pa,
|
|
isUndefined: Q,
|
|
keys: pa,
|
|
eachKey: Da,
|
|
detect: yc,
|
|
setPathVal: Z,
|
|
applySetting: zc,
|
|
findInArrSimple: nh,
|
|
throttle: Ni,
|
|
parseMargin: Ac,
|
|
mapDeep: hb,
|
|
expandOptionsProperties: Sa,
|
|
isNaN: Ha,
|
|
filter: ea,
|
|
find: S,
|
|
defaults: id,
|
|
defaultsDeep: qd,
|
|
clone: qa,
|
|
cloneDeep: yf,
|
|
merge: A,
|
|
each: w,
|
|
map: B,
|
|
reduce: jm,
|
|
uniq: $a,
|
|
sortedUniq: ad,
|
|
toString: oh,
|
|
sortBy: sa,
|
|
remove: Af,
|
|
join: pc,
|
|
slice: yg,
|
|
times: ob,
|
|
omit: Ga,
|
|
isArray: ja,
|
|
isFunction: Fb,
|
|
isNumber: nb,
|
|
isEmpty: ub,
|
|
startsWith: Hg,
|
|
max: oa,
|
|
sum: Ta,
|
|
clamp: ua,
|
|
Memoize: Rb,
|
|
}),
|
|
KD = Object.freeze({
|
|
boxPoints: ie,
|
|
rightX: xs,
|
|
bottomY: ys,
|
|
compareBoxes: fo,
|
|
pad: rb,
|
|
setSize: Ye,
|
|
bboxUnion: Ea,
|
|
intersect: ho,
|
|
bboxFromPoints: Ua,
|
|
center: va,
|
|
clip: sh,
|
|
fitInTarget: function (a, c) {
|
|
var b = G(a, 4);
|
|
a = b[2];
|
|
var d = b[3];
|
|
b = G(c, 4);
|
|
c = b[2];
|
|
b = b[3];
|
|
a = d / a;
|
|
d = a * b;
|
|
var e = c / a;
|
|
d > c ? (d = a * e) : e > b && (e = d / a);
|
|
return [e, d];
|
|
},
|
|
ltrbMargins: function (a, c, b) {
|
|
a = Yb(a);
|
|
c = Yb(c);
|
|
var d = function (a) {
|
|
return 0 < a ? a : 0;
|
|
},
|
|
e = [];
|
|
e[0] = a[0] - c[0];
|
|
e[1] = a[1] - c[1];
|
|
e[2] = c[2] - a[2];
|
|
e[3] = c[3] - a[3];
|
|
return b ? B(e, d) : e;
|
|
},
|
|
fromRect: ha,
|
|
fromCenter: mb,
|
|
toPath: Cc,
|
|
toLTRB: Yb,
|
|
fromLTRB: Ze,
|
|
toPoints: function (a, c) {
|
|
void 0 === c && (c = 4);
|
|
return ie(a, "tl,tr,br,bl" + (5 === c ? ",tl" : ""));
|
|
},
|
|
alignTo: lo,
|
|
offsetBetween: fk,
|
|
unsquishSnapTo: function (a, c, b) {
|
|
void 0 === b && (b = "d");
|
|
var d = { v: oo, h: no }[{ u: "v", d: "v", l: "h", r: "h" }[b]];
|
|
a = uh(a.slice(0), b);
|
|
mo(a, b);
|
|
b = Ea(a);
|
|
c = d(b, c);
|
|
var e = [c[0] - b[0], c[1] - b[1]];
|
|
w(a, function (a) {
|
|
return mm(a, e);
|
|
});
|
|
return a;
|
|
},
|
|
unsquishBoxes: mo,
|
|
unsquishBoxesCb: function (a, c, b) {
|
|
for (var d = uh(a.slice(0), c), e = [], f = 0, g = d.length; f < g; f++) {
|
|
var h = d[f];
|
|
if (f) {
|
|
var k = vh(h, e, c),
|
|
l = fk(k, h);
|
|
if (l[0] || l[1]) (h[0] = k[0]), (h[1] = k[1]), b && b(a.indexOf(h), l, h);
|
|
}
|
|
e.push(h);
|
|
}
|
|
return e;
|
|
},
|
|
snapInside: Zc,
|
|
bInsideA: $c,
|
|
pointInside: Ad,
|
|
collideAny: qo,
|
|
collideList: Yc,
|
|
rotatedAt: hk,
|
|
translate: Xc,
|
|
translateRef: mm,
|
|
bestLayout: function (a, c, b) {
|
|
for (var d = !1, e = 1, f, g, h = 0; !d; ) (f = c.width / Math.ceil(a / e)), (g = c.height / e), (f = Math.min(f, g)), f <= h ? ((d = !0), e--) : (e++, (h = f)), 100 < e && (d = !0);
|
|
a /= e;
|
|
a > parseInt(a) && (a = parseInt(a) + 1);
|
|
b || (f = (f / Math.min(c.width, c.height)) * 100);
|
|
return { cols: a, rows: e, maxSize: f };
|
|
},
|
|
}),
|
|
LD = Object.freeze({
|
|
changeBrightness: function (a, c) {
|
|
return ma(Ak(a, c));
|
|
},
|
|
brightness: function (a) {
|
|
return df(a);
|
|
},
|
|
cushionEffect: ig,
|
|
aquaEffect: jg,
|
|
roundedEffect: ef,
|
|
colorMods: La,
|
|
parseJscColor: Lb,
|
|
toHexOpacity: Dh,
|
|
parseJscFill: oc,
|
|
modifyColor: ia,
|
|
modifyFill: dd,
|
|
addOpacity: Eh,
|
|
tween: qe,
|
|
colorToPalette: Uo,
|
|
simplify: zh,
|
|
}),
|
|
MD = Object.freeze({
|
|
math: Vb,
|
|
round: na,
|
|
avg: Wf,
|
|
mapValue: Y,
|
|
arraySum: function (a) {
|
|
return Ta(a);
|
|
},
|
|
diff: la,
|
|
decimalPlaces: Yf,
|
|
}),
|
|
ND = Object.freeze({ lowerFirst: Se, getRandomString: de, shortenEllipsis: Ir }),
|
|
OD = Object.freeze({
|
|
toDegrees: Vn,
|
|
toRadians: yb,
|
|
normalizeAngle: rh,
|
|
quadrant: function (a) {
|
|
a = rh(Vn(a));
|
|
return 180 > a ? (90 <= a ? 2 : 3) : 270 <= a ? 0 : 1;
|
|
},
|
|
getPolarPoint: ee,
|
|
getPolarDegPoint: Uc,
|
|
gpdp: ra,
|
|
gpdp_text: function (a, c, b, d, e, f) {
|
|
var g = G(e, 2);
|
|
e = g[0];
|
|
g = g[1];
|
|
e += b;
|
|
g += b;
|
|
var h = function (a, b) {
|
|
void 0 === b && (b = 0);
|
|
if (0 === b) return a;
|
|
b = Math.min(Math.abs(b), 1);
|
|
return 1 === b ? 1 : cl(a, Math.max(1 - b, 0.1));
|
|
},
|
|
k = (c * Math.PI) / 180,
|
|
l = function (a) {
|
|
return 0.001 > Math.abs(a) ? 0 : a;
|
|
};
|
|
c = l(Math.cos(k));
|
|
var m = Math.cos(2 * k);
|
|
k = l(Math.sin(k));
|
|
l = Math.abs;
|
|
var n = function (a) {
|
|
return 0 < a ? 1 : 0 > a ? -1 : 0;
|
|
},
|
|
p = n(c),
|
|
q = n(k),
|
|
r = h(l(k), f[0]) * q;
|
|
h = h(l(c), f[1]) * p;
|
|
f = (((0 > m ? q : r) - 1) * e) / 2;
|
|
m = (-((0 < m ? p : h) + 1) * g) / 2;
|
|
d = (d + c * (l(m) - (0 < c ? g : 0))) / k || -e / 2;
|
|
d = Math.min(l(d), e / 2) * n(d);
|
|
0 > k ? ((d = -e - d), (f = Math.max(l(f), l(d)) * n(f))) : (f = Math.min(l(f), l(d)) * n(f));
|
|
return [a[0] + b + f, a[1] + b + m];
|
|
},
|
|
gpp: Jb,
|
|
angleOfPoints: Ia,
|
|
pointDistance: Xb,
|
|
pDist: mc,
|
|
lineIntersect: Te,
|
|
lineDistance: Wn,
|
|
pointInsidePolygon: Zf,
|
|
arcCapDegOffset: function (a, c) {
|
|
var b = a - c;
|
|
a = [ra([0, 0], 0, (a + c) / 2)];
|
|
b = ra(a[0], 108, b);
|
|
return Math.abs(yb(Ia([0, 0], b))) / 2;
|
|
},
|
|
ensureUprightText: Yn,
|
|
}),
|
|
PD = Object.freeze({ isValInsideInc: Kb, intersect: Ue, positionsToPadRanges: Zj, invert: cg }),
|
|
QD = Object.freeze({
|
|
win: T,
|
|
doc: ba,
|
|
getRootScriptPath: je,
|
|
getScript: lk,
|
|
getJson: function (a, c, b, d) {
|
|
wh(a, c, b, d, JSON.parse);
|
|
},
|
|
}),
|
|
RD = Object.freeze({ Formatter: Ng, formatString: Si }),
|
|
SD = Object.freeze({ getApiEnum: ke }),
|
|
TD = Object.freeze({
|
|
zero: Gk,
|
|
resize: Hk,
|
|
scale: Cd,
|
|
moveTL: function (a, c, b) {
|
|
"undefined" !== typeof c && ((a.width -= c - a.x), (a.x = c));
|
|
"undefined" !== typeof b && ((a.height -= b - a.y), (a.y = b));
|
|
return a;
|
|
},
|
|
padBox: Ik,
|
|
padRect: Vo,
|
|
translate: Wo,
|
|
padBoxRel: Xo,
|
|
centerRect: kg,
|
|
normalize: Yo,
|
|
toLTRB: Zo,
|
|
fromLTRB: $o,
|
|
round: function (a) {
|
|
a = Zo(a);
|
|
a = B(a, Math.round);
|
|
return $o(a);
|
|
},
|
|
fromBBox: Gc,
|
|
compare: ap,
|
|
}),
|
|
UD = Object.freeze({ registerIcons: nk }),
|
|
VD = Object.freeze({ measureText: fg }),
|
|
WD = Object.freeze({ getPalette: Xi, getPaletteConfig: Rs }),
|
|
XD = Object.freeze({
|
|
registerModule: function (a, c) {
|
|
a = ff[a] = ff[a] || {};
|
|
a.afterLoad = c;
|
|
return a.loaded ? !1 : (a.loaded = !0);
|
|
},
|
|
}),
|
|
YD = Object.freeze({ idFyObj: zb, percOrNum: db }),
|
|
ZD = Object.freeze({ toDate: X, toDateNum: ed, intervalToSpan: lg, addTimeInterval: bc, unitToFormatOptions: hf, unitListToFormatOptions: Kh, GroupingFunctions: Vs, CalendarPattern: Ok }),
|
|
$D = Object.freeze({ calculations: Pk }),
|
|
aE = Object.freeze({
|
|
fromPoints: eb,
|
|
bbox: kl,
|
|
pathIntersects: function (a, c, b) {
|
|
return Rh(a.shapes[0], c, b);
|
|
},
|
|
Path: mf,
|
|
fromString: Aa,
|
|
subPath: Ed,
|
|
shapeBbox: Mb,
|
|
visualCenterForShape: og,
|
|
shapeIntersects: Rh,
|
|
}),
|
|
bE = Object.freeze({ pointsToPath: fb, multiLineToPath: tg, flattenD: xa, arcCornerR: rp, arc: ll, arcSegment: Kc, pointsEqual: ab }),
|
|
cE = Object.freeze({ parseSize: Qa }),
|
|
dE = Object.freeze({ padMargin: Bl, lineToAttr: Bb, shapeToAttr: fc, boxToAttr: Bg, completeDependentOptions: Nm, annotationToHtmlAttr: br, labelToAttr: qc, offsetToAttr: cr, boxToLayoutBoxAttr: Cg }),
|
|
eE = Object.freeze({
|
|
fitBoxInPath: or,
|
|
fitBoxData: function (a, c) {
|
|
var b = pr(a),
|
|
d = function (a) {
|
|
return [Y(0, 1, c[0], c[0] + c[2], a[0]), Y(0, 1, c[1], c[1] + c[3], a[1])];
|
|
};
|
|
a = xi(a);
|
|
a = Mb(a);
|
|
return (b = b ? rr(b, d) : void 0) ? { scans: b, pathBBox: RC(a, d) } : void 0;
|
|
},
|
|
fitBoxInScanData: function (a, c, b, d) {
|
|
var e = b[1];
|
|
a = Ny(a, c).scans;
|
|
var f = Math.max(c[2], c[3]),
|
|
g = [],
|
|
h = c[1] + 1;
|
|
try {
|
|
for (; h + e < c[1] + c[3] - 2; ) {
|
|
var k = qr(a, h, e);
|
|
k && k[2] >= b[0] && g.push([f - Xb(va(k), d), k]);
|
|
h += 1;
|
|
}
|
|
} catch (m) {}
|
|
if (g.length) {
|
|
g.sort(function (a, b) {
|
|
return a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0;
|
|
}).reverse();
|
|
var l = g[0][1];
|
|
}
|
|
l && (l = mb(va(l), b));
|
|
return l;
|
|
},
|
|
}),
|
|
fE = Object.freeze({
|
|
parseObjectTokens: wi,
|
|
parseGridTokens: function (a, c, b) {
|
|
void 0 === b && (b = {});
|
|
var d = uf(a);
|
|
return d.result ? vf(a, {}, { gOptions: b, item: c, atribs: c }) : d.text;
|
|
},
|
|
}),
|
|
gE = Object.freeze({ snapToPanel: md, snapPointToPanel: nd, snapPointsToPanel: ue }),
|
|
hE = Object.freeze({ axesBySideIndex: Rr }),
|
|
Lf = Object.freeze({
|
|
__proto__: null,
|
|
jsLib: JD,
|
|
mathLib: MD,
|
|
layoutLib: cE,
|
|
rectLib: TD,
|
|
trigLib: OD,
|
|
SeriesBaseType: Ie,
|
|
SeriesTypeColumn: Vg,
|
|
minimumHittestSize: 15,
|
|
registerSeriesType: function (a, c) {
|
|
Oc[a] = c;
|
|
},
|
|
undefVal: void 0,
|
|
undef: "undefined",
|
|
bboxLib: KD,
|
|
stylingLib: dE,
|
|
polyFitLib: eE,
|
|
shapeLib: bE,
|
|
Annotation: ej,
|
|
moduleLoader: XD,
|
|
collectionPropFactory: Xa,
|
|
consts: ID,
|
|
en: { error: {} },
|
|
idleDefer: Ae,
|
|
platform: QD,
|
|
strLib: ND,
|
|
getColumnIconPathsStatic: Pl,
|
|
BaseChartItem: jc,
|
|
AxisCollectionWrapper: Kf,
|
|
AxisViewState: bu,
|
|
getShapeOptions: Gr,
|
|
Axis: jj,
|
|
panels: Hl,
|
|
dmUtils: gE,
|
|
ChartArea: ju,
|
|
CollisionManager: Tm,
|
|
getBreaksPath: $r,
|
|
zIndexReference: Pt,
|
|
registerPanes: function (a) {
|
|
Rm = a;
|
|
},
|
|
shapes: dc,
|
|
colorLib: LD,
|
|
Series: Xm,
|
|
parsePointValues: Ai,
|
|
columnPointBodyD: Ql,
|
|
getIconPathsStatic: Ci,
|
|
getShapePath: Ld,
|
|
registerTag: function (a, c) {
|
|
Im[a] = c;
|
|
},
|
|
VirtualElement: tb,
|
|
rangeLib: PD,
|
|
TextBox: Ft,
|
|
LayoutItem: Gf,
|
|
Panel: Sg,
|
|
StackPanel: Tg,
|
|
Layout: Al,
|
|
registerPanel: function (a, c) {
|
|
Mc[a] = c;
|
|
},
|
|
UpdatablesCollection: wb,
|
|
miUtils: SD,
|
|
isTouchDevice: function () {
|
|
return "ontouchstart" in T;
|
|
},
|
|
annotationDefaults: Pm,
|
|
getAlignToOffsets: mt,
|
|
iconsStore: UD,
|
|
chartOptionsAppliers: Zl,
|
|
pathLib: aE,
|
|
updateOverflows: Br,
|
|
cachedPositionInfo: Ig,
|
|
isAlignInside: Mr,
|
|
EntryWrapper: Qm,
|
|
formatting: RD,
|
|
timeLib: ZD,
|
|
chartOptionsModifiers: $l,
|
|
registerVisual: function (a, c) {
|
|
Md[a] = c;
|
|
},
|
|
generateId: Dd,
|
|
snapPixels: Ff,
|
|
textLib: VD,
|
|
palettes: WD,
|
|
chartInitializers: $m,
|
|
CompositeElement: kC,
|
|
CompositeAttrApplier: jt,
|
|
Label: Fi,
|
|
tokenLib: fE,
|
|
label: Yq,
|
|
dataUtil: $D,
|
|
registerDataGridFunction: function (a, c) {
|
|
sc[a] = c;
|
|
},
|
|
jscLabel: es,
|
|
normalizationUtils: YD,
|
|
rendererFactory: ft,
|
|
emitter: Ma,
|
|
BaseOptions: Kt,
|
|
axisUtils: hE,
|
|
hideVisual: Ra,
|
|
generateIdRandom: qp,
|
|
});
|
|
Z(Je, "_modules.types.export", Lf);
|
|
Z(Je, "_modules.maps.export", Lf);
|
|
Z(Je, "_modules.toolbar.export", Lf);
|
|
Z(Je, "_modules.accessibility.export", Lf);
|
|
Z(Je, "_modules.datagrid.export", Lf);
|
|
Z(Je, "_modules.debug.export", Lf);
|
|
aa.Chart = lj;
|
|
aa.Grid = is;
|
|
aa.Nest = HD;
|
|
aa.chart = function (a, c) {
|
|
var b = Object.create(lj.prototype);
|
|
lj.apply(b, arguments);
|
|
return b;
|
|
};
|
|
aa.colorToPalette = function (a, c, b, d) {
|
|
return Uo(a, c, b, d);
|
|
};
|
|
aa.csv2Json = function (a, c) {
|
|
return Wk(a, ",", c);
|
|
};
|
|
aa.defaults = function (a) {
|
|
if (t(a))
|
|
if (null === a) var c = {};
|
|
else (c = od ? od() : {}), A(c, a);
|
|
else return od ? od() : {};
|
|
c.baseUrl && (dg = c.baseUrl);
|
|
return (od = yi(c)) ? od() : {};
|
|
};
|
|
aa.dsv2Json = function (a, c, b) {
|
|
void 0 === b && (b = {});
|
|
return Wk(a, c, b);
|
|
};
|
|
aa.fetch = function (a, c) {
|
|
Ih || (Ih = T.fetch || vw);
|
|
return Ih(a, c);
|
|
};
|
|
aa.fontsReady = function (a) {
|
|
return Ws(a);
|
|
};
|
|
aa.formatDate = function (a, c, b) {
|
|
void 0 === c && (c = "d");
|
|
return Si(new Date(a), c, b);
|
|
};
|
|
aa.formatNumber = function (a, c, b) {
|
|
void 0 === c && (c = "n");
|
|
return Si(parseFloat(a), c, b);
|
|
};
|
|
aa.formatString = function (a, c, b) {
|
|
void 0 === b && (b = "en-US");
|
|
return Si(a, c, b);
|
|
};
|
|
aa.getPalette = mu;
|
|
aa.getVersion = gs;
|
|
aa.globalCharts = nu;
|
|
aa.internal = Je;
|
|
aa.json2Csv = function (a, c) {
|
|
return Xk(a, ",", c);
|
|
};
|
|
aa.json2Dsv = function (a, c, b) {
|
|
void 0 === b && (b = {});
|
|
return Xk(a, c, b);
|
|
};
|
|
aa.json2Tsv = function (a, c) {
|
|
return Xk(a, "\t", c);
|
|
};
|
|
aa.label = function (a, c, b) {
|
|
return es(a, c, Ii(b));
|
|
};
|
|
aa.map = FD;
|
|
aa.max = function (a, c) {
|
|
return mj(a, "max", c);
|
|
};
|
|
aa.mean = function (a, c) {
|
|
return mj(a, "average", c);
|
|
};
|
|
aa.merge = GD;
|
|
aa.min = function (a, c) {
|
|
return mj(a, "min", c);
|
|
};
|
|
aa.nest = function () {
|
|
return new Wl();
|
|
};
|
|
aa.parseCsv = function (a, c) {
|
|
void 0 === c && (c = {});
|
|
return pp(a, c);
|
|
};
|
|
aa.parsePoints = function (a, c) {
|
|
return np(a, c);
|
|
};
|
|
aa.pointsFromArray = function (a, c) {
|
|
return op(a, c);
|
|
};
|
|
aa.ready = function () {
|
|
for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c];
|
|
return gf(function (b) {
|
|
var c = [],
|
|
e = [];
|
|
a.forEach(function (a) {
|
|
O(a) ? c.push(a) : a === ba && e.push(kA());
|
|
});
|
|
c.length && e.push(Ws(c));
|
|
e.length ? uw(e, b) : b({ ok: !0 });
|
|
});
|
|
};
|
|
aa.smartPalette = {
|
|
getPaletteCSS: function (a, c) {
|
|
return new Nt(null, a).getPaletteCSS(a, c);
|
|
},
|
|
};
|
|
aa.sortBy = function () {
|
|
for (var a = [], c = 0; c < arguments.length; c++) a[c] = arguments[c];
|
|
return sa.apply(LA, H(a));
|
|
};
|
|
aa.sourcePath = function () {
|
|
return je();
|
|
};
|
|
aa.sum = function (a, c) {
|
|
return mj(a, "sum", c);
|
|
};
|
|
aa.tsv2Json = function (a, c) {
|
|
return Wk(a, "\t", c);
|
|
};
|
|
Object.defineProperty(aa, "__esModule", { value: !0 });
|
|
});
|