multiple-cucumber-html-reporter
Version:
Generate beautiful Cucumber.js reports for multiple instances (browsers / devices)
9,323 lines • 358 kB
JavaScript
/*!
* Chart.js
* http://chartjs.org/
* Version: 2.5.0
*
* Copyright 2017 Nick Downie
* Released under the MIT license
* https://github.com/chartjs/Chart.js/blob/master/LICENSE.md
*/
!(function (t) {
if ("object" == typeof exports && "undefined" != typeof module)
module.exports = t();
else if ("function" == typeof define && define.amd) define([], t);
else {
var e;
(e =
"undefined" != typeof window
? window
: "undefined" != typeof global
? global
: "undefined" != typeof self
? self
: this),
(e.Chart = t());
}
})(function () {
return (function t(e, a, i) {
function n(r, s) {
if (!a[r]) {
if (!e[r]) {
var l = "function" == typeof require && require;
if (!s && l) return l(r, !0);
if (o) return o(r, !0);
var u = new Error("Cannot find module '" + r + "'");
throw ((u.code = "MODULE_NOT_FOUND"), u);
}
var d = (a[r] = { exports: {} });
e[r][0].call(
d.exports,
function (t) {
var a = e[r][1][t];
return n(a ? a : t);
},
d,
d.exports,
t,
e,
a,
i
);
}
return a[r].exports;
}
for (
var o = "function" == typeof require && require, r = 0;
r < i.length;
r++
)
n(i[r]);
return n;
})(
{
1: [function (t, e, a) {}, {}],
2: [
function (t, e, a) {
function i(t) {
if (t) {
var e = /^#([a-fA-F0-9]{3})$/,
a = /^#([a-fA-F0-9]{6})$/,
i =
/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/,
n =
/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/,
o = /(\w+)/,
r = [0, 0, 0],
s = 1,
l = t.match(e);
if (l) {
l = l[1];
for (var u = 0; u < r.length; u++)
r[u] = parseInt(l[u] + l[u], 16);
} else if ((l = t.match(a))) {
l = l[1];
for (var u = 0; u < r.length; u++)
r[u] = parseInt(l.slice(2 * u, 2 * u + 2), 16);
} else if ((l = t.match(i))) {
for (var u = 0; u < r.length; u++) r[u] = parseInt(l[u + 1]);
s = parseFloat(l[4]);
} else if ((l = t.match(n))) {
for (var u = 0; u < r.length; u++)
r[u] = Math.round(2.55 * parseFloat(l[u + 1]));
s = parseFloat(l[4]);
} else if ((l = t.match(o))) {
if ("transparent" == l[1]) return [0, 0, 0, 0];
if (((r = y[l[1]]), !r)) return;
}
for (var u = 0; u < r.length; u++) r[u] = b(r[u], 0, 255);
return (s = s || 0 == s ? b(s, 0, 1) : 1), (r[3] = s), r;
}
}
function n(t) {
if (t) {
var e =
/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/,
a = t.match(e);
if (a) {
var i = parseFloat(a[4]),
n = b(parseInt(a[1]), 0, 360),
o = b(parseFloat(a[2]), 0, 100),
r = b(parseFloat(a[3]), 0, 100),
s = b(isNaN(i) ? 1 : i, 0, 1);
return [n, o, r, s];
}
}
}
function o(t) {
if (t) {
var e =
/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/,
a = t.match(e);
if (a) {
var i = parseFloat(a[4]),
n = b(parseInt(a[1]), 0, 360),
o = b(parseFloat(a[2]), 0, 100),
r = b(parseFloat(a[3]), 0, 100),
s = b(isNaN(i) ? 1 : i, 0, 1);
return [n, o, r, s];
}
}
}
function r(t) {
var e = i(t);
return e && e.slice(0, 3);
}
function s(t) {
var e = n(t);
return e && e.slice(0, 3);
}
function l(t) {
var e = i(t);
return e ? e[3] : (e = n(t)) ? e[3] : (e = o(t)) ? e[3] : void 0;
}
function u(t) {
return "#" + x(t[0]) + x(t[1]) + x(t[2]);
}
function d(t, e) {
return e < 1 || (t[3] && t[3] < 1)
? c(t, e)
: "rgb(" + t[0] + ", " + t[1] + ", " + t[2] + ")";
}
function c(t, e) {
return (
void 0 === e && (e = void 0 !== t[3] ? t[3] : 1),
"rgba(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + e + ")"
);
}
function h(t, e) {
if (e < 1 || (t[3] && t[3] < 1)) return f(t, e);
var a = Math.round((t[0] / 255) * 100),
i = Math.round((t[1] / 255) * 100),
n = Math.round((t[2] / 255) * 100);
return "rgb(" + a + "%, " + i + "%, " + n + "%)";
}
function f(t, e) {
var a = Math.round((t[0] / 255) * 100),
i = Math.round((t[1] / 255) * 100),
n = Math.round((t[2] / 255) * 100);
return (
"rgba(" +
a +
"%, " +
i +
"%, " +
n +
"%, " +
(e || t[3] || 1) +
")"
);
}
function g(t, e) {
return e < 1 || (t[3] && t[3] < 1)
? p(t, e)
: "hsl(" + t[0] + ", " + t[1] + "%, " + t[2] + "%)";
}
function p(t, e) {
return (
void 0 === e && (e = void 0 !== t[3] ? t[3] : 1),
"hsla(" + t[0] + ", " + t[1] + "%, " + t[2] + "%, " + e + ")"
);
}
function m(t, e) {
return (
void 0 === e && (e = void 0 !== t[3] ? t[3] : 1),
"hwb(" +
t[0] +
", " +
t[1] +
"%, " +
t[2] +
"%" +
(void 0 !== e && 1 !== e ? ", " + e : "") +
")"
);
}
function v(t) {
return k[t.slice(0, 3)];
}
function b(t, e, a) {
return Math.min(Math.max(e, t), a);
}
function x(t) {
var e = t.toString(16).toUpperCase();
return e.length < 2 ? "0" + e : e;
}
var y = t(6);
e.exports = {
getRgba: i,
getHsla: n,
getRgb: r,
getHsl: s,
getHwb: o,
getAlpha: l,
hexString: u,
rgbString: d,
rgbaString: c,
percentString: h,
percentaString: f,
hslString: g,
hslaString: p,
hwbString: m,
keyword: v,
};
var k = {};
for (var S in y) k[y[S]] = S;
},
{ 6: 6 },
],
3: [
function (t, e, a) {
var i = t(5),
n = t(2),
o = function (t) {
if (t instanceof o) return t;
if (!(this instanceof o)) return new o(t);
this.values = {
rgb: [0, 0, 0],
hsl: [0, 0, 0],
hsv: [0, 0, 0],
hwb: [0, 0, 0],
cmyk: [0, 0, 0, 0],
alpha: 1,
};
var e;
if ("string" == typeof t)
if ((e = n.getRgba(t))) this.setValues("rgb", e);
else if ((e = n.getHsla(t))) this.setValues("hsl", e);
else {
if (!(e = n.getHwb(t)))
throw new Error(
'Unable to parse color from string "' + t + '"'
);
this.setValues("hwb", e);
}
else if ("object" == typeof t)
if (((e = t), void 0 !== e.r || void 0 !== e.red))
this.setValues("rgb", e);
else if (void 0 !== e.l || void 0 !== e.lightness)
this.setValues("hsl", e);
else if (void 0 !== e.v || void 0 !== e.value)
this.setValues("hsv", e);
else if (void 0 !== e.w || void 0 !== e.whiteness)
this.setValues("hwb", e);
else {
if (void 0 === e.c && void 0 === e.cyan)
throw new Error(
"Unable to parse color from object " + JSON.stringify(t)
);
this.setValues("cmyk", e);
}
};
(o.prototype = {
rgb: function () {
return this.setSpace("rgb", arguments);
},
hsl: function () {
return this.setSpace("hsl", arguments);
},
hsv: function () {
return this.setSpace("hsv", arguments);
},
hwb: function () {
return this.setSpace("hwb", arguments);
},
cmyk: function () {
return this.setSpace("cmyk", arguments);
},
rgbArray: function () {
return this.values.rgb;
},
hslArray: function () {
return this.values.hsl;
},
hsvArray: function () {
return this.values.hsv;
},
hwbArray: function () {
var t = this.values;
return 1 !== t.alpha ? t.hwb.concat([t.alpha]) : t.hwb;
},
cmykArray: function () {
return this.values.cmyk;
},
rgbaArray: function () {
var t = this.values;
return t.rgb.concat([t.alpha]);
},
hslaArray: function () {
var t = this.values;
return t.hsl.concat([t.alpha]);
},
alpha: function (t) {
return void 0 === t
? this.values.alpha
: (this.setValues("alpha", t), this);
},
red: function (t) {
return this.setChannel("rgb", 0, t);
},
green: function (t) {
return this.setChannel("rgb", 1, t);
},
blue: function (t) {
return this.setChannel("rgb", 2, t);
},
hue: function (t) {
return (
t && ((t %= 360), (t = t < 0 ? 360 + t : t)),
this.setChannel("hsl", 0, t)
);
},
saturation: function (t) {
return this.setChannel("hsl", 1, t);
},
lightness: function (t) {
return this.setChannel("hsl", 2, t);
},
saturationv: function (t) {
return this.setChannel("hsv", 1, t);
},
whiteness: function (t) {
return this.setChannel("hwb", 1, t);
},
blackness: function (t) {
return this.setChannel("hwb", 2, t);
},
value: function (t) {
return this.setChannel("hsv", 2, t);
},
cyan: function (t) {
return this.setChannel("cmyk", 0, t);
},
magenta: function (t) {
return this.setChannel("cmyk", 1, t);
},
yellow: function (t) {
return this.setChannel("cmyk", 2, t);
},
black: function (t) {
return this.setChannel("cmyk", 3, t);
},
hexString: function () {
return n.hexString(this.values.rgb);
},
rgbString: function () {
return n.rgbString(this.values.rgb, this.values.alpha);
},
rgbaString: function () {
return n.rgbaString(this.values.rgb, this.values.alpha);
},
percentString: function () {
return n.percentString(this.values.rgb, this.values.alpha);
},
hslString: function () {
return n.hslString(this.values.hsl, this.values.alpha);
},
hslaString: function () {
return n.hslaString(this.values.hsl, this.values.alpha);
},
hwbString: function () {
return n.hwbString(this.values.hwb, this.values.alpha);
},
keyword: function () {
return n.keyword(this.values.rgb, this.values.alpha);
},
rgbNumber: function () {
var t = this.values.rgb;
return (t[0] << 16) | (t[1] << 8) | t[2];
},
luminosity: function () {
for (var t = this.values.rgb, e = [], a = 0; a < t.length; a++) {
var i = t[a] / 255;
e[a] =
i <= 0.03928 ? i / 12.92 : Math.pow((i + 0.055) / 1.055, 2.4);
}
return 0.2126 * e[0] + 0.7152 * e[1] + 0.0722 * e[2];
},
contrast: function (t) {
var e = this.luminosity(),
a = t.luminosity();
return e > a ? (e + 0.05) / (a + 0.05) : (a + 0.05) / (e + 0.05);
},
level: function (t) {
var e = this.contrast(t);
return e >= 7.1 ? "AAA" : e >= 4.5 ? "AA" : "";
},
dark: function () {
var t = this.values.rgb,
e = (299 * t[0] + 587 * t[1] + 114 * t[2]) / 1e3;
return e < 128;
},
light: function () {
return !this.dark();
},
negate: function () {
for (var t = [], e = 0; e < 3; e++)
t[e] = 255 - this.values.rgb[e];
return this.setValues("rgb", t), this;
},
lighten: function (t) {
var e = this.values.hsl;
return (e[2] += e[2] * t), this.setValues("hsl", e), this;
},
darken: function (t) {
var e = this.values.hsl;
return (e[2] -= e[2] * t), this.setValues("hsl", e), this;
},
saturate: function (t) {
var e = this.values.hsl;
return (e[1] += e[1] * t), this.setValues("hsl", e), this;
},
desaturate: function (t) {
var e = this.values.hsl;
return (e[1] -= e[1] * t), this.setValues("hsl", e), this;
},
whiten: function (t) {
var e = this.values.hwb;
return (e[1] += e[1] * t), this.setValues("hwb", e), this;
},
blacken: function (t) {
var e = this.values.hwb;
return (e[2] += e[2] * t), this.setValues("hwb", e), this;
},
greyscale: function () {
var t = this.values.rgb,
e = 0.3 * t[0] + 0.59 * t[1] + 0.11 * t[2];
return this.setValues("rgb", [e, e, e]), this;
},
clearer: function (t) {
var e = this.values.alpha;
return this.setValues("alpha", e - e * t), this;
},
opaquer: function (t) {
var e = this.values.alpha;
return this.setValues("alpha", e + e * t), this;
},
rotate: function (t) {
var e = this.values.hsl,
a = (e[0] + t) % 360;
return (
(e[0] = a < 0 ? 360 + a : a), this.setValues("hsl", e), this
);
},
mix: function (t, e) {
var a = this,
i = t,
n = void 0 === e ? 0.5 : e,
o = 2 * n - 1,
r = a.alpha() - i.alpha(),
s = ((o * r === -1 ? o : (o + r) / (1 + o * r)) + 1) / 2,
l = 1 - s;
return this.rgb(
s * a.red() + l * i.red(),
s * a.green() + l * i.green(),
s * a.blue() + l * i.blue()
).alpha(a.alpha() * n + i.alpha() * (1 - n));
},
toJSON: function () {
return this.rgb();
},
clone: function () {
var t,
e,
a = new o(),
i = this.values,
n = a.values;
for (var r in i)
i.hasOwnProperty(r) &&
((t = i[r]),
(e = {}.toString.call(t)),
"[object Array]" === e
? (n[r] = t.slice(0))
: "[object Number]" === e
? (n[r] = t)
: console.error("unexpected color value:", t));
return a;
},
}),
(o.prototype.spaces = {
rgb: ["red", "green", "blue"],
hsl: ["hue", "saturation", "lightness"],
hsv: ["hue", "saturation", "value"],
hwb: ["hue", "whiteness", "blackness"],
cmyk: ["cyan", "magenta", "yellow", "black"],
}),
(o.prototype.maxes = {
rgb: [255, 255, 255],
hsl: [360, 100, 100],
hsv: [360, 100, 100],
hwb: [360, 100, 100],
cmyk: [100, 100, 100, 100],
}),
(o.prototype.getValues = function (t) {
for (var e = this.values, a = {}, i = 0; i < t.length; i++)
a[t.charAt(i)] = e[t][i];
return 1 !== e.alpha && (a.a = e.alpha), a;
}),
(o.prototype.setValues = function (t, e) {
var a,
n = this.values,
o = this.spaces,
r = this.maxes,
s = 1;
if ("alpha" === t) s = e;
else if (e.length)
(n[t] = e.slice(0, t.length)), (s = e[t.length]);
else if (void 0 !== e[t.charAt(0)]) {
for (a = 0; a < t.length; a++) n[t][a] = e[t.charAt(a)];
s = e.a;
} else if (void 0 !== e[o[t][0]]) {
var l = o[t];
for (a = 0; a < t.length; a++) n[t][a] = e[l[a]];
s = e.alpha;
}
if (
((n.alpha = Math.max(
0,
Math.min(1, void 0 === s ? n.alpha : s)
)),
"alpha" === t)
)
return !1;
var u;
for (a = 0; a < t.length; a++)
(u = Math.max(0, Math.min(r[t][a], n[t][a]))),
(n[t][a] = Math.round(u));
for (var d in o) d !== t && (n[d] = i[t][d](n[t]));
return !0;
}),
(o.prototype.setSpace = function (t, e) {
var a = e[0];
return void 0 === a
? this.getValues(t)
: ("number" == typeof a && (a = Array.prototype.slice.call(e)),
this.setValues(t, a),
this);
}),
(o.prototype.setChannel = function (t, e, a) {
var i = this.values[t];
return void 0 === a
? i[e]
: a === i[e]
? this
: ((i[e] = a), this.setValues(t, i), this);
}),
"undefined" != typeof window && (window.Color = o),
(e.exports = o);
},
{ 2: 2, 5: 5 },
],
4: [
function (t, e, a) {
function i(t) {
var e,
a,
i,
n = t[0] / 255,
o = t[1] / 255,
r = t[2] / 255,
s = Math.min(n, o, r),
l = Math.max(n, o, r),
u = l - s;
return (
l == s
? (e = 0)
: n == l
? (e = (o - r) / u)
: o == l
? (e = 2 + (r - n) / u)
: r == l && (e = 4 + (n - o) / u),
(e = Math.min(60 * e, 360)),
e < 0 && (e += 360),
(i = (s + l) / 2),
(a = l == s ? 0 : i <= 0.5 ? u / (l + s) : u / (2 - l - s)),
[e, 100 * a, 100 * i]
);
}
function n(t) {
var e,
a,
i,
n = t[0],
o = t[1],
r = t[2],
s = Math.min(n, o, r),
l = Math.max(n, o, r),
u = l - s;
return (
(a = 0 == l ? 0 : ((u / l) * 1e3) / 10),
l == s
? (e = 0)
: n == l
? (e = (o - r) / u)
: o == l
? (e = 2 + (r - n) / u)
: r == l && (e = 4 + (n - o) / u),
(e = Math.min(60 * e, 360)),
e < 0 && (e += 360),
(i = ((l / 255) * 1e3) / 10),
[e, a, i]
);
}
function o(t) {
var e = t[0],
a = t[1],
n = t[2],
o = i(t)[0],
r = (1 / 255) * Math.min(e, Math.min(a, n)),
n = 1 - (1 / 255) * Math.max(e, Math.max(a, n));
return [o, 100 * r, 100 * n];
}
function s(t) {
var e,
a,
i,
n,
o = t[0] / 255,
r = t[1] / 255,
s = t[2] / 255;
return (
(n = Math.min(1 - o, 1 - r, 1 - s)),
(e = (1 - o - n) / (1 - n) || 0),
(a = (1 - r - n) / (1 - n) || 0),
(i = (1 - s - n) / (1 - n) || 0),
[100 * e, 100 * a, 100 * i, 100 * n]
);
}
function l(t) {
return Z[JSON.stringify(t)];
}
function u(t) {
var e = t[0] / 255,
a = t[1] / 255,
i = t[2] / 255;
(e = e > 0.04045 ? Math.pow((e + 0.055) / 1.055, 2.4) : e / 12.92),
(a =
a > 0.04045 ? Math.pow((a + 0.055) / 1.055, 2.4) : a / 12.92),
(i =
i > 0.04045 ? Math.pow((i + 0.055) / 1.055, 2.4) : i / 12.92);
var n = 0.4124 * e + 0.3576 * a + 0.1805 * i,
o = 0.2126 * e + 0.7152 * a + 0.0722 * i,
r = 0.0193 * e + 0.1192 * a + 0.9505 * i;
return [100 * n, 100 * o, 100 * r];
}
function d(t) {
var e,
a,
i,
n = u(t),
o = n[0],
r = n[1],
s = n[2];
return (
(o /= 95.047),
(r /= 100),
(s /= 108.883),
(o = o > 0.008856 ? Math.pow(o, 1 / 3) : 7.787 * o + 16 / 116),
(r = r > 0.008856 ? Math.pow(r, 1 / 3) : 7.787 * r + 16 / 116),
(s = s > 0.008856 ? Math.pow(s, 1 / 3) : 7.787 * s + 16 / 116),
(e = 116 * r - 16),
(a = 500 * (o - r)),
(i = 200 * (r - s)),
[e, a, i]
);
}
function c(t) {
return z(d(t));
}
function h(t) {
var e,
a,
i,
n,
o,
r = t[0] / 360,
s = t[1] / 100,
l = t[2] / 100;
if (0 == s) return (o = 255 * l), [o, o, o];
(a = l < 0.5 ? l * (1 + s) : l + s - l * s),
(e = 2 * l - a),
(n = [0, 0, 0]);
for (var u = 0; u < 3; u++)
(i = r + (1 / 3) * -(u - 1)),
i < 0 && i++,
i > 1 && i--,
(o =
6 * i < 1
? e + 6 * (a - e) * i
: 2 * i < 1
? a
: 3 * i < 2
? e + (a - e) * (2 / 3 - i) * 6
: e),
(n[u] = 255 * o);
return n;
}
function f(t) {
var e,
a,
i = t[0],
n = t[1] / 100,
o = t[2] / 100;
return 0 === o
? [0, 0, 0]
: ((o *= 2),
(n *= o <= 1 ? o : 2 - o),
(a = (o + n) / 2),
(e = (2 * n) / (o + n)),
[i, 100 * e, 100 * a]);
}
function p(t) {
return o(h(t));
}
function m(t) {
return s(h(t));
}
function v(t) {
return l(h(t));
}
function x(t) {
var e = t[0] / 60,
a = t[1] / 100,
i = t[2] / 100,
n = Math.floor(e) % 6,
o = e - Math.floor(e),
r = 255 * i * (1 - a),
s = 255 * i * (1 - a * o),
l = 255 * i * (1 - a * (1 - o)),
i = 255 * i;
switch (n) {
case 0:
return [i, l, r];
case 1:
return [s, i, r];
case 2:
return [r, i, l];
case 3:
return [r, s, i];
case 4:
return [l, r, i];
case 5:
return [i, r, s];
}
}
function y(t) {
var e,
a,
i = t[0],
n = t[1] / 100,
o = t[2] / 100;
return (
(a = (2 - n) * o),
(e = n * o),
(e /= a <= 1 ? a : 2 - a),
(e = e || 0),
(a /= 2),
[i, 100 * e, 100 * a]
);
}
function k(t) {
return o(x(t));
}
function S(t) {
return s(x(t));
}
function M(t) {
return l(x(t));
}
function w(t) {
var e,
a,
i,
n,
o = t[0] / 360,
s = t[1] / 100,
l = t[2] / 100,
u = s + l;
switch (
(u > 1 && ((s /= u), (l /= u)),
(e = Math.floor(6 * o)),
(a = 1 - l),
(i = 6 * o - e),
0 != (1 & e) && (i = 1 - i),
(n = s + i * (a - s)),
e)
) {
default:
case 6:
case 0:
(r = a), (g = n), (b = s);
break;
case 1:
(r = n), (g = a), (b = s);
break;
case 2:
(r = s), (g = a), (b = n);
break;
case 3:
(r = s), (g = n), (b = a);
break;
case 4:
(r = n), (g = s), (b = a);
break;
case 5:
(r = a), (g = s), (b = n);
}
return [255 * r, 255 * g, 255 * b];
}
function C(t) {
return i(w(t));
}
function I(t) {
return n(w(t));
}
function D(t) {
return s(w(t));
}
function A(t) {
return l(w(t));
}
function T(t) {
var e,
a,
i,
n = t[0] / 100,
o = t[1] / 100,
r = t[2] / 100,
s = t[3] / 100;
return (
(e = 1 - Math.min(1, n * (1 - s) + s)),
(a = 1 - Math.min(1, o * (1 - s) + s)),
(i = 1 - Math.min(1, r * (1 - s) + s)),
[255 * e, 255 * a, 255 * i]
);
}
function P(t) {
return i(T(t));
}
function _(t) {
return n(T(t));
}
function F(t) {
return o(T(t));
}
function V(t) {
return l(T(t));
}
function R(t) {
var e,
a,
i,
n = t[0] / 100,
o = t[1] / 100,
r = t[2] / 100;
return (
(e = 3.2406 * n + o * -1.5372 + r * -0.4986),
(a = n * -0.9689 + 1.8758 * o + 0.0415 * r),
(i = 0.0557 * n + o * -0.204 + 1.057 * r),
(e =
e > 0.0031308
? 1.055 * Math.pow(e, 1 / 2.4) - 0.055
: (e *= 12.92)),
(a =
a > 0.0031308
? 1.055 * Math.pow(a, 1 / 2.4) - 0.055
: (a *= 12.92)),
(i =
i > 0.0031308
? 1.055 * Math.pow(i, 1 / 2.4) - 0.055
: (i *= 12.92)),
(e = Math.min(Math.max(0, e), 1)),
(a = Math.min(Math.max(0, a), 1)),
(i = Math.min(Math.max(0, i), 1)),
[255 * e, 255 * a, 255 * i]
);
}
function O(t) {
var e,
a,
i,
n = t[0],
o = t[1],
r = t[2];
return (
(n /= 95.047),
(o /= 100),
(r /= 108.883),
(n = n > 0.008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116),
(o = o > 0.008856 ? Math.pow(o, 1 / 3) : 7.787 * o + 16 / 116),
(r = r > 0.008856 ? Math.pow(r, 1 / 3) : 7.787 * r + 16 / 116),
(e = 116 * o - 16),
(a = 500 * (n - o)),
(i = 200 * (o - r)),
[e, a, i]
);
}
function L(t) {
return z(O(t));
}
function B(t) {
var e,
a,
i,
n,
o = t[0],
r = t[1],
s = t[2];
return (
o <= 8
? ((a = (100 * o) / 903.3), (n = 7.787 * (a / 100) + 16 / 116))
: ((a = 100 * Math.pow((o + 16) / 116, 3)),
(n = Math.pow(a / 100, 1 / 3))),
(e =
e / 95.047 <= 0.008856
? (e = (95.047 * (r / 500 + n - 16 / 116)) / 7.787)
: 95.047 * Math.pow(r / 500 + n, 3)),
(i =
i / 108.883 <= 0.008859
? (i = (108.883 * (n - s / 200 - 16 / 116)) / 7.787)
: 108.883 * Math.pow(n - s / 200, 3)),
[e, a, i]
);
}
function z(t) {
var e,
a,
i,
n = t[0],
o = t[1],
r = t[2];
return (
(e = Math.atan2(r, o)),
(a = (360 * e) / 2 / Math.PI),
a < 0 && (a += 360),
(i = Math.sqrt(o * o + r * r)),
[n, i, a]
);
}
function W(t) {
return R(B(t));
}
function N(t) {
var e,
a,
i,
n = t[0],
o = t[1],
r = t[2];
return (
(i = (r / 360) * 2 * Math.PI),
(e = o * Math.cos(i)),
(a = o * Math.sin(i)),
[n, e, a]
);
}
function E(t) {
return B(N(t));
}
function H(t) {
return W(N(t));
}
function j(t) {
return G[t];
}
function U(t) {
return i(j(t));
}
function q(t) {
return n(j(t));
}
function Y(t) {
return o(j(t));
}
function X(t) {
return s(j(t));
}
function K(t) {
return d(j(t));
}
function J(t) {
return u(j(t));
}
e.exports = {
rgb2hsl: i,
rgb2hsv: n,
rgb2hwb: o,
rgb2cmyk: s,
rgb2keyword: l,
rgb2xyz: u,
rgb2lab: d,
rgb2lch: c,
hsl2rgb: h,
hsl2hsv: f,
hsl2hwb: p,
hsl2cmyk: m,
hsl2keyword: v,
hsv2rgb: x,
hsv2hsl: y,
hsv2hwb: k,
hsv2cmyk: S,
hsv2keyword: M,
hwb2rgb: w,
hwb2hsl: C,
hwb2hsv: I,
hwb2cmyk: D,
hwb2keyword: A,
cmyk2rgb: T,
cmyk2hsl: P,
cmyk2hsv: _,
cmyk2hwb: F,
cmyk2keyword: V,
keyword2rgb: j,
keyword2hsl: U,
keyword2hsv: q,
keyword2hwb: Y,
keyword2cmyk: X,
keyword2lab: K,
keyword2xyz: J,
xyz2rgb: R,
xyz2lab: O,
xyz2lch: L,
lab2xyz: B,
lab2rgb: W,
lab2lch: z,
lch2lab: N,
lch2xyz: E,
lch2rgb: H,
};
var G = {
aliceblue: [240, 248, 255],
antiquewhite: [250, 235, 215],
aqua: [0, 255, 255],
aquamarine: [127, 255, 212],
azure: [240, 255, 255],
beige: [245, 245, 220],
bisque: [255, 228, 196],
black: [0, 0, 0],
blanchedalmond: [255, 235, 205],
blue: [0, 0, 255],
blueviolet: [138, 43, 226],
brown: [165, 42, 42],
burlywood: [222, 184, 135],
cadetblue: [95, 158, 160],
chartreuse: [127, 255, 0],
chocolate: [210, 105, 30],
coral: [255, 127, 80],
cornflowerblue: [100, 149, 237],
cornsilk: [255, 248, 220],
crimson: [220, 20, 60],
cyan: [0, 255, 255],
darkblue: [0, 0, 139],
darkcyan: [0, 139, 139],
darkgoldenrod: [184, 134, 11],
darkgray: [169, 169, 169],
darkgreen: [0, 100, 0],
darkgrey: [169, 169, 169],
darkkhaki: [189, 183, 107],
darkmagenta: [139, 0, 139],
darkolivegreen: [85, 107, 47],
darkorange: [255, 140, 0],
darkorchid: [153, 50, 204],
darkred: [139, 0, 0],
darksalmon: [233, 150, 122],
darkseagreen: [143, 188, 143],
darkslateblue: [72, 61, 139],
darkslategray: [47, 79, 79],
darkslategrey: [47, 79, 79],
darkturquoise: [0, 206, 209],
darkviolet: [148, 0, 211],
deeppink: [255, 20, 147],
deepskyblue: [0, 191, 255],
dimgray: [105, 105, 105],
dimgrey: [105, 105, 105],
dodgerblue: [30, 144, 255],
firebrick: [178, 34, 34],
floralwhite: [255, 250, 240],
forestgreen: [34, 139, 34],
fuchsia: [255, 0, 255],
gainsboro: [220, 220, 220],
ghostwhite: [248, 248, 255],
gold: [255, 215, 0],
goldenrod: [218, 165, 32],
gray: [128, 128, 128],
green: [0, 128, 0],
greenyellow: [173, 255, 47],
grey: [128, 128, 128],
honeydew: [240, 255, 240],
hotpink: [255, 105, 180],
indianred: [205, 92, 92],
indigo: [75, 0, 130],
ivory: [255, 255, 240],
khaki: [240, 230, 140],
lavender: [230, 230, 250],
lavenderblush: [255, 240, 245],
lawngreen: [124, 252, 0],
lemonchiffon: [255, 250, 205],
lightblue: [173, 216, 230],
lightcoral: [240, 128, 128],
lightcyan: [224, 255, 255],
lightgoldenrodyellow: [250, 250, 210],
lightgray: [211, 211, 211],
lightgreen: [144, 238, 144],
lightgrey: [211, 211, 211],
lightpink: [255, 182, 193],
lightsalmon: [255, 160, 122],
lightseagreen: [32, 178, 170],
lightskyblue: [135, 206, 250],
lightslategray: [119, 136, 153],
lightslategrey: [119, 136, 153],
lightsteelblue: [176, 196, 222],
lightyellow: [255, 255, 224],
lime: [0, 255, 0],
limegreen: [50, 205, 50],
linen: [250, 240, 230],
magenta: [255, 0, 255],
maroon: [128, 0, 0],
mediumaquamarine: [102, 205, 170],
mediumblue: [0, 0, 205],
mediumorchid: [186, 85, 211],
mediumpurple: [147, 112, 219],
mediumseagreen: [60, 179, 113],
mediumslateblue: [123, 104, 238],
mediumspringgreen: [0, 250, 154],
mediumturquoise: [72, 209, 204],
mediumvioletred: [199, 21, 133],
midnightblue: [25, 25, 112],
mintcream: [245, 255, 250],
mistyrose: [255, 228, 225],
moccasin: [255, 228, 181],
navajowhite: [255, 222, 173],
navy: [0, 0, 128],
oldlace: [253, 245, 230],
olive: [128, 128, 0],
olivedrab: [107, 142, 35],
orange: [255, 165, 0],
orangered: [255, 69, 0],
orchid: [218, 112, 214],
palegoldenrod: [238, 232, 170],
palegreen: [152, 251, 152],
paleturquoise: [175, 238, 238],
palevioletred: [219, 112, 147],
papayawhip: [255, 239, 213],
peachpuff: [255, 218, 185],
peru: [205, 133, 63],
pink: [255, 192, 203],
plum: [221, 160, 221],
powderblue: [176, 224, 230],
purple: [128, 0, 128],
rebeccapurple: [102, 51, 153],
red: [255, 0, 0],
rosybrown: [188, 143, 143],
royalblue: [65, 105, 225],
saddlebrown: [139, 69, 19],
salmon: [250, 128, 114],
sandybrown: [244, 164, 96],
seagreen: [46, 139, 87],
seashell: [255, 245, 238],
sienna: [160, 82, 45],
silver: [192, 192, 192],
skyblue: [135, 206, 235],
slateblue: [106, 90, 205],
slategray: [112, 128, 144],
slategrey: [112, 128, 144],
snow: [255, 250, 250],
springgreen: [0, 255, 127],
steelblue: [70, 130, 180],
tan: [210, 180, 140],
teal: [0, 128, 128],
thistle: [216, 191, 216],
tomato: [255, 99, 71],
turquoise: [64, 224, 208],
violet: [238, 130, 238],
wheat: [245, 222, 179],
white: [255, 255, 255],
whitesmoke: [245, 245, 245],
yellow: [255, 255, 0],
yellowgreen: [154, 205, 50],
},
Z = {};
for (var Q in G) Z[JSON.stringify(G[Q])] = Q;
},
{},
],
5: [
function (t, e, a) {
var i = t(4),
n = function () {
return new u();
};
for (var o in i) {
n[o + "Raw"] = (function (t) {
return function (e) {
return (
"number" == typeof e &&
(e = Array.prototype.slice.call(arguments)),
i[t](e)
);
};
})(o);
var r = /(\w+)2(\w+)/.exec(o),
s = r[1],
l = r[2];
(n[s] = n[s] || {}),
(n[s][l] = n[o] =
(function (t) {
return function (e) {
"number" == typeof e &&
(e = Array.prototype.slice.call(arguments));
var a = i[t](e);
if ("string" == typeof a || void 0 === a) return a;
for (var n = 0; n < a.length; n++) a[n] = Math.round(a[n]);
return a;
};
})(o));
}
var u = function () {
this.convs = {};
};
(u.prototype.routeSpace = function (t, e) {
var a = e[0];
return void 0 === a
? this.getValues(t)
: ("number" == typeof a && (a = Array.prototype.slice.call(e)),
this.setValues(t, a));
}),
(u.prototype.setValues = function (t, e) {
return (
(this.space = t), (this.convs = {}), (this.convs[t] = e), this
);
}),
(u.prototype.getValues = function (t) {
var e = this.convs[t];
if (!e) {
var a = this.space,
i = this.convs[a];
(e = n[a][t](i)), (this.convs[t] = e);
}
return e;
}),
["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach(function (t) {
u.prototype[t] = function (e) {
return this.routeSpace(t, arguments);
};
}),
(e.exports = n);
},
{ 4: 4 },
],
6: [
function (t, e, a) {
e.exports = {
aliceblue: [240, 248, 255],
antiquewhite: [250, 235, 215],
aqua: [0, 255, 255],
aquamarine: [127, 255, 212],
azure: [240, 255, 255],
beige: [245, 245, 220],
bisque: [255, 228, 196],
black: [0, 0, 0],
blanchedalmond: [255, 235, 205],
blue: [0, 0, 255],
blueviolet: [138, 43, 226],
brown: [165, 42, 42],
burlywood: [222, 184, 135],
cadetblue: [95, 158, 160],
chartreuse: [127, 255, 0],
chocolate: [210, 105, 30],
coral: [255, 127, 80],
cornflowerblue: [100, 149, 237],
cornsilk: [255, 248, 220],
crimson: [220, 20, 60],
cyan: [0, 255, 255],
darkblue: [0, 0, 139],
darkcyan: [0, 139, 139],
darkgoldenrod: [184, 134, 11],
darkgray: [169, 169, 169],
darkgreen: [0, 100, 0],
darkgrey: [169, 169, 169],
darkkhaki: [189, 183, 107],
darkmagenta: [139, 0, 139],
darkolivegreen: [85, 107, 47],
darkorange: [255, 140, 0],
darkorchid: [153, 50, 204],
darkred: [139, 0, 0],
darksalmon: [233, 150, 122],
darkseagreen: [143, 188, 143],
darkslateblue: [72, 61, 139],
darkslategray: [47, 79, 79],
darkslategrey: [47, 79, 79],
darkturquoise: [0, 206, 209],
darkviolet: [148, 0, 211],
deeppink: [255, 20, 147],
deepskyblue: [0, 191, 255],
dimgray: [105, 105, 105],
dimgrey: [105, 105, 105],
dodgerblue: [30, 144, 255],
firebrick: [178, 34, 34],
floralwhite: [255, 250, 240],
forestgreen: [34, 139, 34],
fuchsia: [255, 0, 255],
gainsboro: [220, 220, 220],
ghostwhite: [248, 248, 255],
gold: [255, 215, 0],
goldenrod: [218, 165, 32],
gray: [128, 128, 128],
green: [0, 128, 0],
greenyellow: [173, 255, 47],
grey: [128, 128, 128],
honeydew: [240, 255, 240],
hotpink: [255, 105, 180],
indianred: [205, 92, 92],
indigo: [75, 0, 130],
ivory: [255, 255, 240],
khaki: [240, 230, 140],
lavender: [230, 230, 250],
lavenderblush: [255, 240, 245],
lawngreen: [124, 252, 0],
lemonchiffon: [255, 250, 205],
lightblue: [173, 216, 230],
lightcoral: [240, 128, 128],
lightcyan: [224, 255, 255],
lightgoldenrodyellow: [250, 250, 210],
lightgray: [211, 211, 211],
lightgreen: [144, 238, 144],
lightgrey: [211, 211, 211],
lightpink: [255, 182, 193],
lightsalmon: [255, 160, 122],
lightseagreen: [32, 178, 170],
lightskyblue: [135, 206, 250],
lightslategray: [119, 136, 153],
lightslategrey: [119, 136, 153],
lightsteelblue: [176, 196, 222],
lightyellow: [255, 255, 224],
lime: [0, 255, 0],
limegreen: [50, 205, 50],
linen: [250, 240, 230],
magenta: [255, 0, 255],
maroon: [128, 0, 0],
mediumaquamarine: [102, 205, 170],
mediumblue: [0, 0, 205],
mediumorchid: [186, 85, 211],
mediumpurple: [147, 112, 219],
mediumseagreen: [60, 179, 113],
mediumslateblue: [123, 104, 238],
mediumspringgreen: [0, 250, 154],
mediumturquoise: [72, 209, 204],
mediumvioletred: [199, 21, 133],
midnightblue: [25, 25, 112],
mintcream: [245, 255, 250],
mistyrose: [255, 228, 225],
moccasin: [255, 228, 181],
navajowhite: [255, 222, 173],
navy: [0, 0, 128],
oldlace: [253, 245, 230],
olive: [128, 128, 0],
olivedrab: [107, 142, 35],
orange: [255, 165, 0],
orangered: [255, 69, 0],
orchid: [218, 112, 214],
palegoldenrod: [238, 232, 170],
palegreen: [152, 251, 152],
paleturquoise: [175, 238, 238],
palevioletred: [219, 112, 147],
papayawhip: [255, 239, 213],
peachpuff: [255, 218, 185],
peru: [205, 133, 63],
pink: [255, 192, 203],
plum: [221, 160, 221],
powderblue: [176, 224, 230],
purple: [128, 0, 128],
rebeccapurple: [102, 51, 153],
red: [255, 0, 0],
rosybrown: [188, 143, 143],
royalblue: [65, 105, 225],
saddlebrown: [139, 69, 19],
salmon: [250, 128, 114],
sandybrown: [244, 164, 96],
seagreen: [46, 139, 87],
seashell: [255, 245, 238],
sienna: [160, 82, 45],
silver: [192, 192, 192],
skyblue: [135, 206, 235],
slateblue: [106, 90, 205],
slategray: [112, 128, 144],
slategrey: [112, 128, 144],
snow: [255, 250, 250],
springgreen: [0, 255, 127],
steelblue: [70, 130, 180],
tan: [210, 180, 140],
teal: [0, 128, 128],
thistle: [216, 191, 216],
tomato: [255, 99, 71],
turquoise: [64, 224, 208],
violet: [238, 130, 238],
wheat: [245, 222, 179],
white: [255, 255, 255],
whitesmoke: [245, 245, 245],
yellow: [255, 255, 0],
yellowgreen: [154, 205, 50],
};
},
{},
],
7: [
function (t, e, a) {
var i = t(28)();
t(26)(i),
t(42)(i),
t(22)(i),
t(31)(i),
t(25)(i),
t(21)(i),
t(23)(i),
t(24)(i),
t(29)(i),
t(33)(i),
t(34)(i),
t(32)(i),
t(35)(i),
t(30)(i),
t(27)(i),
t(36)(i),
t(37)(i),
t(38)(i),
t(39)(i),
t(40)(i),
t(45)(i),
t(43)(i),
t(44)(i),
t(46)(i),
t(47)(i),
t(48)(i),
t(15)(i),
t(16)(i),
t(17)(i),
t(18)(i),
t(19)(i),
t(20)(i),
t(8)(i),
t(9)(i),
t(10)(i),
t(11)(i),
t(12)(i),
t(13)(i),
t(14)(i),
(window.Chart = e.exports = i);
},
{
10: 10,
11: 11,
12: 12,
13: 13,
14: 14,
15: 15,
16: 16,
17: 17,
18: 18,
19: 19,
20: 20,
21: 21,
22: 22,
23: 23,
24: 24,
25: 25,
26: 26,
27: 27,
28: 28,
29: 29,
30: 30,
31: 31,
32: 32,
33: 33,
34: 34,
35: 35,
36: 36,
37: 37,
38: 38,
39: 39,
40: 40,
42: 42,
43: 43,
44: 44,
45: 45,
46: 46,
47: 47,
48: 48,
8: 8,
9: 9,
},
],
8: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
t.Bar = function (e, a) {
return (a.type = "bar"), new t(e, a);
};
};
},
{},
],
9: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
t.Bubble = function (e, a) {
return (a.type = "bubble"), new t(e, a);
};
};
},
{},
],
10: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
t.Doughnut = function (e, a) {
return (a.type = "doughnut"), new t(e, a);
};
};
},
{},
],
11: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
t.Line = function (e, a) {
return (a.type = "line"), new t(e, a);
};
};
},
{},
],
12: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
t.PolarArea = function (e, a) {
return (a.type = "polarArea"), new t(e, a);
};
};
},
{},
],
13: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
t.Radar = function (e, a) {
return (a.type = "radar"), new t(e, a);
};
};
},
{},
],
14: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = {
hover: { mode: "single" },
scales: {
xAxes: [{ type: "linear", position: "bottom", id: "x-axis-1" }],
yAxes: [{ type: "linear", position: "left", id: "y-axis-1" }],
},
tooltips: {
callbacks: {
title: function () {
return "";
},
label: function (t) {
return "(" + t.xLabel + ", " + t.yLabel + ")";
},
},
},
};
(t.defaults.scatter = e),
(t.controllers.scatter = t.controllers.line),
(t.Scatter = function (e, a) {
return (a.type = "scatter"), new t(e, a);
});
};
},
{},
],
15: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers;
(t.defaults.bar = {
hover: { mode: "label" },
scales: {
xAxes: [
{
type: "category",
categoryPercentage: 0.8,
barPercentage: 0.9,
gridLines: { offsetGridLines: !0 },
},
],
yAxes: [{ type: "linear" }],
},
}),
(t.controllers.bar = t.DatasetController.extend({
dataElementType: t.elements.Rectangle,
initialize: function (e, a) {
t.DatasetController.prototype.initialize.call(this, e, a);
var i = this,
n = i.getMeta(),
o = i.getDataset();
(n.stack = o.stack), (n.bar = !0);
},
getStackCount: function () {
var t = this,
a = t.getMeta(),
i = t.getScaleForId(a.yAxisID),
n = [];
return (
e.each(
t.chart.data.datasets,
function (e, a) {
var o = t.chart.getDatasetMeta(a);
o.bar &&
t.chart.isDatasetVisible(a) &&
(i.options.stacked === !1 ||
(i.options.stacked === !0 &&
n.indexOf(o.stack) === -1) ||
(void 0 === i.options.stacked &&
(void 0 === o.stack ||
n.indexOf(o.stack) === -1))) &&
n.push(o.stack);
},
t
),
n.length
);
},
update: function (t) {
var a = this;
e.each(
a.getMeta().data,
function (e, i) {
a.updateElement(e, i, t);
},
a
);
},
updateElement: function (t, a, i) {
var n = this,
o = n.getMeta(),
r = n.getScaleForId(o.xAxisID),
s = n.getScaleForId(o.yAxisID),
l = s.getBasePixel(),
u = n.chart.options.elements.rectangle,
d = t.custom || {},
c = n.getDataset();
(t._xScale = r),
(t._yScale = s),
(t._datasetIndex = n.index),
(t._index = a);
var h = n.getRuler(a);
(t._model = {
x: n.calculateBarX(a, n.index, h),
y: i ? l : n.calculateBarY(a, n.index),
label: n.chart.data.labels[a],
datasetLabel: c.label,
horizontal: !1,
base: i ? l : n.calculateBarBase(n.index, a),
width: n.calculateBarWidth(h),
backgroundColor: d.backgroundColor
? d.backgroundColor
: e.getValueAtIndexOrDefault(
c.backgroundColor,
a,
u.backgroundColor
),
borderSkipped: d.borderSkipped
? d.borderSkipped
: u.borderSkipped,
borderColor: d.borderColor
? d.borderColor
: e.getValueAtIndexOrDefault(
c.borderColor,
a,
u.borderColor
),
borderWidth: d.borderWidth
? d.borderWidth
: e.getValueAtIndexOrDefault(
c.borderWidth,
a,
u.borderWidth
),
}),
t.pivot();
},
calculateBarBase: function (t, e) {
var a = this,
i = a.getMeta(),
n = a.getScaleForId(i.yAxisID),
o = n.getBaseValue(),
r = o;
if (
n.options.stacked === !0 ||
(void 0 === n.options.stacked && void 0 !== i.stack)
) {
for (
var s = a.chart,
l = s.data.datasets,
u = Number(l[t].data[e]),
d = 0;
d < t;
d++
) {
var c = l[d],
h = s.getDatasetMeta(d);
if (
h.bar &&
h.yAxisID === n.id &&
s.isDatasetVisible(d) &&
i.stack === h.stack
) {
var f = Number(c.data[e]);
o += u < 0 ? Math.min(f, r) : Math.max(f, r);
}
}
return n.getPixelForValue(o);
}
return n.getBasePixel();
},
getRuler: function () {
var t = this,
e = t.getMeta(),
a = t.getScaleForId(e.xAxisID),
i = t.getStackCount(),
n = a.width / a.ticks.length,
o = n * a.options.categoryPercentage,
r = (n - n * a.options.categoryPercentage) / 2,
s = o / i,
l = s * a.options.barPercentage,
u = s - s * a.options.barPercentage;
return {
stackCount: i,
tickWidth: n,
categoryWidth: o,
categorySpacing: r,
fullBarWidth: s,
barWidth: l,
barSpacing: u,
};
},
calculateBarWidth: function (t) {
var e = this,
a = e.getMeta(),
i = e.getScaleForId(a.xAxisID);
return i.options.barThickness
? i.options.barThickness
: t.barWidth;
},
getStackIndex: function (t) {
var e,
a,
i = this,
n = i.chart.getDatasetMeta(t),
o = i.getScaleForId(n.yAxisID),
r = [n.stack];
for (a = 0; a < t; ++a)
(e = this.chart.getDatasetMeta(a)),
e.bar &&
this.chart.isDatasetVisible(a) &&
(o.options.stacked === !1 ||
(o.options.stacked === !0 &&
r.indexOf(e.stack) === -1) ||
(void 0 === o.options.stacked &&
(void 0 === e.stack ||
r.indexOf(e.stack) === -1))) &&
r.push(e.stack);
return r.length - 1;
},
calculateBarX: function (t, e, a) {
var i = this,
n = i.getMeta(),
o = i.getScaleForId(n.xAxisID),
r = i.getStackIndex(e),
s = o.getPixelForValue(null, t, e, i.chart.isCombo);
return (
(s -= i.chart.isCombo ? a.tickWidth / 2 : 0),
s +
a.barWidth / 2 +
a.categorySpacing +
a.barWidth * r +
a.barSpacing / 2 +
a.barSpacing * r
);
},
calculateBarY: function (t, e) {
var a = this,
i = a.getMeta(),
n = a.getScaleForId(i.yAxisID),
o = Number(a.getDataset().data[t]);
if (
n.options.stacked ||
(void 0 === n.options.stacked && void 0 !== i.stack)
) {
for (
var r = n.getBaseValue(), s = r, l = r, u = 0;
u < e;
u++
) {
var d = a.chart.data.datasets[u],
c = a.chart.getDatasetMeta(u);
if (
c.bar &&
c.yAxisID === n.id &&
a.chart.isDatasetVisible(u) &&
i.stack === c.stack
) {
var h = Number(d.data[t]);
h < 0 ? (l += h || 0) : (s += h || 0);
}
}
return o < 0
? n.getPixelForValue(l + o)
: n.getPixelForValue(s + o);
}
return n.getPixelForValue(o);
},
draw: function (e) {
var a,
i,
n = this,
o = e || 1,
r = n.getMeta().data,
s = n.getDataset();
for (
t.canvasHelpers.clipArea(
n.chart.chart.ctx,
n.chart.chartArea
),
a = 0,
i = r.length;
a < i;
++a
) {
var l = s.data[a];
null === l ||
void 0 === l ||
isNaN(l) ||
r[a].transition(o).draw();
}
t.canvasHelpers.unclipArea(n.chart.chart.ctx);
},
setHoverStyle: function (t) {
var a = this.chart.data.datasets[t._datasetIndex],
i = t._index,
n = t.custom || {},
o = t._model;
(o.backgroundColor = n.hoverBackgroundColor
? n.hoverBackgroundColor
: e.getValueAtIndexOrDefault(
a.hoverBackgroundColor,
i,
e.getHoverColor(o.backgroundColor)
)),
(o.borderColor = n.hoverBorderColor
? n.hoverBorderColor
: e.getValueAtIndexOrDefault(
a.hoverBorderColor,
i,
e.getHoverColor(o.borderColor)
)),
(o.borderWidth = n.hoverBorderWidth
? n.hoverBorderWidth
: e.getValueAtIndexOrDefault(
a.hoverBorderWidth,
i,
o.borderWidth
));
},
removeHoverStyle: function (t) {
var a = this.chart.data.datasets[t._datasetIndex],
i = t._index,
n = t.custom || {},
o = t._model,
r = this.chart.options.elements.rectangle;
(o.backgroundColor = n.backgroundColor
? n.backgroundColor
: e.getValueAtIndexOrDefault(
a.backgroundColor,
i,
r.backgroundColor
)),
(o.borderColor = n.borderColor
? n.borderColor
: e.getValueAtIndexOrDefault(
a.borderColor,
i,
r.borderColor
)),
(o.borderWidth = n.borderWidth
? n.borderWidth
: e.getValueAtIndexOrDefault(
a.borderWidth,
i,
r.borderWidth
));
},
})),
(t.defaults.horizontalBar = {
hover: { mode: "label" },
scales: {
xAxes: [{ type: "linear", position: "bottom" }],
yAxes: [
{
position: "left",
type: "category",
categoryPercentage: 0.8,
barPercentage: 0.9,
gridLines: { offsetGridLines: !0 },
},
],
},
elements: { rectangle: { borderSkipped: "left" } },
tooltips: {
callbacks: {
title: function (t, e) {
var a = "";
return (
t.length > 0 &&
(t[0].yLabel
? (a = t[0].yLabel)
: e.labels.length > 0 &&
t[0].index < e.labels.length &&
(a = e.labels[t[0].index])),
a
);
},
label: function (t, e) {
var a = e.datasets[t.datasetIndex].label || "";
return a + ": " + t.xLabel;
},
},
},
}),
(t.controllers.horizontalBar = t.controllers.bar.extend({
getStackCount: function () {
var t = this,
a = t.getMeta(),
i = t.getScaleForId(a.xAxisID),
n = [];
return (
e.each(
t.chart.data.datasets,
function (e, a) {
var o = t.chart.getDatasetMeta(a);
o.bar &&
t.chart.isDatasetVisible(a) &&
(i.options.stacked === !1 ||
(i.options.stacked === !0 &&
n.indexOf(o.stack) === -1) ||
(void 0 === i.options.stacked &&
(void 0 === o.stack ||
n.indexOf(o.stack) === -1))) &&
n.push(o.stack);
},
t
),
n.length
);
},
updateElement: function (t, a, i) {
var n = this,
o = n.getMeta(),
r = n.getScaleForId(o.xAxisID),
s = n.getScaleForId(o.yAxisID),
l = r.getBasePixel(),
u = t.custom || {},
d = n.getDataset(),
c = n.chart.options.elements.rectangle;
(t._xScale = r),
(t._yScale = s),
(t._datasetIndex = n.index),
(t._index = a);
var h = n.getRuler(a);
(t._model = {
x: i ? l : n.calculateBarX(a, n.index),
y: n.calculateBarY(a, n.index, h),
label: n.chart.data.labels[a],
datasetLabel: d.label,
horizontal: !0,
base: i ? l : n.calculateBarBase(n.index, a),
height: n.calculateBarHeight(h),
backgroundColor: u.backgroundColor
? u.backgroundColor
: e.getValueAtIndexOrDefault(
d.backgroundColor,
a,
c.backgroundColor
),
borderSkipped: u.borderSkipped
? u.borderSkipped
: c.borderSkipped,
borderColor: u.borderColor
? u.borderColor
: e.getValueAtIndexOrDefault(
d.borderColor,
a,
c.borderColor
),
borderWidth: u.borderWidth
? u.borderWidth
: e.getValueAtIndexOrDefault(
d.borderWidth,
a,
c.borderWidth
),
}),
t.pivot();
},
calculateBarBase: function (t, e) {
var a = this,
i = a.getMeta(),
n = a.getScaleForId(i.xAxisID),
o = n.getBaseValue(),
r = o;
if (
n.options.stacked ||
(void 0 === n.options.stacked && void 0 !== i.stack)
) {
for (
var s = a.chart,
l = s.data.datasets,
u = Number(l[t].data[e]),
d = 0;
d < t;
d++
) {
var c = l[d],
h = s.getDatasetMeta(d);
if (
h.bar &&
h.xAxisID === n.id &&
s.isDatasetVisible(d) &&
i.stack === h.stack
) {
var f = Number(c.data[e]);
o += u < 0 ? Math.min(f, r) : Math.max(f, r);
}
}
return n.getPixelForValue(o);
}
return n.getBasePixel();
},
getRuler: function () {
var t = this,
e = t.getMeta(),
a = t.getScaleForId(e.yAxisID),
i = t.getStackCount(),
n = a.height / a.ticks.length,
o = n * a.options.categoryPercentage,
r = (n - n * a.options.categoryPercentage) / 2,
s = o / i,
l = s * a.options.barPercentage,
u = s - s * a.options.barPercentage;
return {
stackCount: i,
tickHeight: n,
categoryHeight: o,
categorySpacing: r,
fullBarHeight: s,
barHeight: l,
barSpacing: u,
};
},
calculateBarHeight: function (t) {
var e = this,
a = e.getMeta(),
i = e.getScaleForId(a.yAxisID);
return i.options.barThickness
? i.options.barThickness
: t.barHeight;
},
getStackIndex: function (t) {
var e,
a,
i = this,
n = i.chart.getDatasetMeta(t),
o = i.getScaleForId(n.xAxisID),
r = [n.stack];
for (a = 0; a < t; ++a)
(e = this.chart.getDatasetMeta(a)),
e.bar &&
this.chart.isDatasetVisible(a) &&
(o.options.stacked === !1 ||
(o.options.stacked === !0 &&
r.indexOf(e.stack) === -1) ||
(void 0 === o.options.stacked &&
(void 0 === e.stack ||
r.indexOf(e.stack) === -1))) &&
r.push(e.stack);
return r.length - 1;
},
calculateBarX: function (t, e) {
var a = this,
i = a.getMeta(),
n = a.getScaleForId(i.xAxisID),
o = Number(a.getDataset().data[t]);
if (
n.options.stacked ||
(void 0 === n.options.stacked && void 0 !== i.stack)
) {
for (
var r = n.getBaseValue(), s = r, l = r, u = 0;
u < e;
u++
) {
var d = a.chart.data.datasets[u],
c = a.chart.getDatasetMeta(u);
if (
c.bar &&
c.xAxisID === n.id &&
a.chart.isDatasetVisible(u) &&
i.stack === c.stack
) {
var h = Number(d.data[t]);
h < 0 ? (l += h || 0) : (s += h || 0);
}
}
return o < 0
? n.getPixelForValue(l + o)
: n.getPixelForValue(s + o);
}
return n.getPixelForValue(o);
},
calculateBarY: function (t, e, a) {
var i = this,
n = i.getMeta(),
o = i.getScaleForId(n.yAxisID),
r = i.getStackIndex(e),
s = o.getPixelForValue(null, t, e, i.chart.isCombo);
return (
(s -= i.chart.isCombo ? a.tickHeight / 2 : 0),
s +
a.barHeight / 2 +
a.categorySpacing +
a.barHeight * r +
a.barSpacing / 2 +
a.barSpacing * r
);
},
}));
};
},
{},
],
16: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers;
(t.defaults.bubble = {
hover: { mode: "single" },
scales: {
xAxes: [{ type: "linear", position: "bottom", id: "x-axis-0" }],
yAxes: [{ type: "linear", position: "left", id: "y-axis-0" }],
},
tooltips: {
callbacks: {
title: function () {
return "";
},
label: function (t, e) {
var a = e.datasets[t.datasetIndex].label || "",
i = e.datasets[t.datasetIndex].data[t.index];
return (
a + ": (" + t.xLabel + ", " + t.yLabel + ", " + i.r + ")"
);
},
},
},
}),
(t.controllers.bubble = t.DatasetController.extend({
dataElementType: t.elements.Point,
update: function (t) {
var a = this,
i = a.getMeta(),
n = i.data;
e.each(n, function (e, i) {
a.updateElement(e, i, t);
});
},
updateElement: function (a, i, n) {
var o = this,
r = o.getMeta(),
s = o.getScaleForId(r.xAxisID),
l = o.getScaleForId(r.yAxisID),
u = a.custom || {},
d = o.getDataset(),
c = d.data[i],
h = o.chart.options.elements.point,
f = o.index;
e.extend(a, {
_xScale: s,
_yScale: l,
_datasetIndex: f,
_index: i,
_model: {
x: n
? s.getPixelForDecimal(0.5)
: s.getPixelForValue(
"object" == typeof c ? c : NaN,
i,
f,
o.chart.isCombo
),
y: n ? l.getBasePixel() : l.getPixelForValue(c, i, f),
radius: n ? 0 : u.radius ? u.radius : o.getRadius(c),
hitRadius: u.hitRadius
? u.hitRadius
: e.getValueAtIndexOrDefault(
d.hitRadius,
i,
h.hitRadius
),
},
}),
t.DatasetController.prototype.removeHoverStyle.call(
o,
a,
h
);
var g = a._model;
(g.skip = u.skip ? u.skip : isNaN(g.x) || isNaN(g.y)),
a.pivot();
},
getRadius: function (t) {
return t.r || this.chart.options.elements.point.radius;
},
setHoverStyle: function (a) {
var i = this;
t.DatasetController.prototype.setHoverStyle.call(i, a);
var n = i.chart.data.datasets[a._datasetIndex],
o = a._index,
r = a.custom || {},
s = a._model;
s.radius = r.hoverRadius
? r.hoverRadius
: e.getValueAtIndexOrDefault(
n.hoverRadius,
o,
i.chart.options.elements.point.hoverRadius
) + i.getRadius(n.data[o]);
},
removeHoverStyle: function (e) {
var a = this;
t.DatasetController.prototype.removeHoverStyle.call(
a,
e,
a.chart.options.elements.point
);
var i = a.chart.data.datasets[e._datasetIndex].data[e._index],
n = e.custom || {},
o = e._model;
o.radius = n.radius ? n.radius : a.getRadius(i);
},
}));
};
},
{},
],
17: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers,
a = t.defaults;
(a.doughnut = {
animation: { animateRotate: !0, animateScale: !1 },
aspectRatio: 1,
hover: { mode: "single" },
legendCallback: function (t) {
var e = [];
e.push('<ul class="' + t.id + '-legend">');
var a = t.data,
i = a.datasets,
n = a.labels;
if (i.length)
for (var o = 0; o < i[0].data.length; ++o)
e.push(
'<li><span style="background-color:' +
i[0].backgroundColor[o] +
'"></span>'
),
n[o] && e.push(n[o]),
e.push("</li>");
return e.push("</ul>"), e.join("");
},
legend: {
labels: {
generateLabels: function (t) {
var a = t.data;
return a.labels.length && a.datasets.length
? a.labels.map(function (i, n) {
var o = t.getDatasetMeta(0),
r = a.datasets[0],
s = o.data[n],
l = (s && s.custom) || {},
u = e.getValueAtIndexOrDefault,
d = t.options.elements.arc,
c = l.backgroundColor
? l.backgroundColor
: u(r.backgroundColor, n, d.backgroundColor),
h = l.borderColor
? l.borderColor
: u(r.borderColor, n, d.borderColor),
f = l.borderWidth
? l.borderWidth
: u(r.borderWidth, n, d.borderWidth);
return {
text: i,
fillStyle: c,
strokeStyle: h,
lineWidth: f,
hidden: isNaN(r.data[n]) || o.data[n].hidden,
index: n,
};
})
: [];
},
},
onClick: function (t, e) {
var a,
i,
n,
o = e.index,
r = this.chart;
for (a = 0, i = (r.data.datasets || []).length; a < i; ++a)
(n = r.getDatasetMeta(a)),
n.data[o] && (n.data[o].hidden = !n.data[o].hidden);
r.update();
},
},
cutoutPercentage: 50,
rotation: Math.PI * -0.5,
circumference: 2 * Math.PI,
tooltips: {
callbacks: {
title: function () {
return "";
},
label: function (t, a) {
var i = a.labels[t.index],
n = ": " + a.datasets[t.datasetIndex].data[t.index];
return (
e.isArray(i) ? ((i = i.slice()), (i[0] += n)) : (i += n),
i
);
},
},
},
}),
(a.pie = e.clone(a.doughnut)),
e.extend(a.pie, { cutoutPercentage: 0 }),
(t.controllers.doughnut = t.controllers.pie =
t.DatasetController.extend({
dataElementType: t.elements.Arc,
linkScales: e.noop,
getRingIndex: function (t) {
for (var e = 0, a = 0; a < t; ++a)
this.chart.isDatasetVisible(a) && ++e;
return e;
},
update: function (t) {
var a = this,
i = a.chart,
n = i.chartArea,
o = i.options,
r = o.elements.arc,
s = n.right - n.left - r.borderWidth,
l = n.bottom - n.top - r.borderWidth,
u = Math.min(s, l),
d = { x: 0, y: 0 },
c = a.getMeta(),
h = o.cutoutPercentage,
f = o.circumference;
if (f < 2 * Math.PI) {
var g = o.rotation % (2 * Math.PI);
g +=
2 *
Math.PI *
(g >= Math.PI ? -1 : g < -Math.PI ? 1 : 0);
var p = g + f,
m = { x: Math.cos(g), y: Math.sin(g) },
v = { x: Math.cos(p), y: Math.sin(p) },
b =
(g <= 0 && 0 <= p) ||
(g <= 2 * Math.PI && 2 * Math.PI <= p),
x =
(g <= 0.5 * Math.PI && 0.5 * Math.PI <= p) ||
(g <= 2.5 * Math.PI && 2.5 * Math.PI <= p),
y =
(g <= -Math.PI && -Math.PI <= p) ||
(g <= Math.PI && Math.PI <= p),
k =
(g <= 0.5 * -Math.PI && 0.5 * -Math.PI <= p) ||
(g <= 1.5 * Math.PI && 1.5 * Math.PI <= p),
S = h / 100,
M = {
x: y
? -1
: Math.min(
m.x * (m.x < 0 ? 1 : S),
v.x * (v.x < 0 ? 1 : S)
),
y: k
? -1
: Math.min(
m.y * (m.y < 0 ? 1 : S),
v.y * (v.y < 0 ? 1 : S)
),
},
w = {
x: b
? 1
: Math.max(
m.x * (m.x > 0 ? 1 : S),
v.x * (v.x > 0 ? 1 : S)
),
y: x
? 1
: Math.max(
m.y * (m.y > 0 ? 1 : S),
v.y * (v.y > 0 ? 1 : S)
),
},
C = {
width: 0.5 * (w.x - M.x),
height: 0.5 * (w.y - M.y),
};
(u = Math.min(s / C.width, l / C.height)),
(d = { x: (w.x + M.x) * -0.5, y: (w.y + M.y) * -0.5 });
}
(i.borderWidth = a.getMaxBorderWidth(c.data)),
(i.outerRadius = Math.max((u - i.borderWidth) / 2, 0)),
(i.innerRadius = Math.max(
h ? (i.outerRadius / 100) * h : 0,
0
)),
(i.radiusLength =
(i.outerRadius - i.innerRadius) /
i.getVisibleDatasetCount()),
(i.offsetX = d.x * i.outerRadius),
(i.offsetY = d.y * i.outerRadius),
(c.total = a.calculateTotal()),
(a.outerRadius =
i.outerRadius -
i.radiusLength * a.getRingIndex(a.index)),
(a.innerRadius = Math.max(
a.outerRadius - i.radiusLength,
0
)),
e.each(c.data, function (e, i) {
a.updateElement(e, i, t);
});
},
updateElement: function (t, a, i) {
var n = this,
o = n.chart,
r = o.chartArea,
s = o.options,
l = s.animation,
u = (r.left + r.right) / 2,
d = (r.top + r.bottom) / 2,
c = s.rotation,
h = s.rotation,
f = n.getDataset(),
g =
i && l.animateRotate
? 0
: t.hidden
? 0
: n.calculateCircumference(f.data[a]) *
(s.circumference / (2 * Math.PI)),
p = i && l.animateScale ? 0 : n.innerRadius,
m = i && l.animateScale ? 0 : n.outerRadius,
v = e.getValueAtIndexOrDefault;
e.extend(t, {
_datasetIndex: n.index,
_index: a,
_model: {
x: u + o.offsetX,
y: d + o.offsetY,
startAngle: c,
endAngle: h,
circumference: g,
outerRadius: m,
innerRadius: p,
label: v(f.label, a, o.data.labels[a]),
},
});
var b = t._model;
this.removeHoverStyle(t),
(i && l.animateRotate) ||
(0 === a
? (b.startAngle = s.rotation)
: (b.startAngle =
n.getMeta().data[a - 1]._model.endAngle),
(b.endAngle = b.startAngle + b.circumference)),
t.pivot();
},
removeHoverStyle: function (e) {
t.DatasetController.prototype.removeHoverStyle.call(
this,
e,
this.chart.options.elements.arc
);
},
calculateTotal: function () {
var t,
a = this.getDataset(),
i = this.getMeta(),
n = 0;
return (
e.each(i.data, function (e, i) {
(t = a.data[i]),
isNaN(t) || e.hidden || (n += Math.abs(t));
}),
n
);
},
calculateCircumference: function (t) {
var e = this.getMeta().total;
return e > 0 && !isNaN(t) ? 2 * Math.PI * (t / e) : 0;
},
getMaxBorderWidth: function (t) {
for (
var e, a, i = 0, n = this.index, o = t.length, r = 0;
r < o;
r++
)
(e = t[r]._model ? t[r]._model.borderWidth : 0),
(a = t[r]._chart
? t[r]._chart.config.data.datasets[n].hoverBorderWidth
: 0),
(i = e > i ? e : i),
(i = a > i ? a : i);
return i;
},
}));
};
},
{},
],
18: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(t, e) {
return a.getValueOrDefault(t.showLine, e.showLines);
}
var a = t.helpers;
(t.defaults.line = {
showLines: !0,
spanGaps: !1,
hover: { mode: "label" },
scales: {
xAxes: [{ type: "category", id: "x-axis-0" }],
yAxes: [{ type: "linear", id: "y-axis-0" }],
},
}),
(t.controllers.line = t.DatasetController.extend({
datasetElementType: t.elements.Line,
dataElementType: t.elements.Point,
update: function (t) {
var i,
n,
o,
r = this,
s = r.getMeta(),
l = s.dataset,
u = s.data || [],
d = r.chart.options,
c = d.elements.line,
h = r.getScaleForId(s.yAxisID),
f = r.getDataset(),
g = e(f, d);
for (
g &&
((o = l.custom || {}),
void 0 !== f.tension &&
void 0 === f.lineTension &&
(f.lineTension = f.tension),
(l._scale = h),
(l._datasetIndex = r.index),
(l._children = u),
(l._model = {
spanGaps: f.spanGaps ? f.spanGaps : d.spanGaps,
tension: o.tension
? o.tension
: a.getValueOrDefault(f.lineTension, c.tension),
backgroundColor: o.backgroundColor
? o.backgroundColor
: f.backgroundColor || c.backgroundColor,
borderWidth: o.borderWidth
? o.borderWidth
: f.borderWidth || c.borderWidth,
borderColor: o.borderColor
? o.borderColor
: f.borderColor || c.borderColor,
borderCapStyle: o.borderCapStyle
? o.borderCapStyle
: f.borderCapStyle || c.borderCapStyle,
borderDash: o.borderDash
? o.borderDash
: f.borderDash || c.borderDash,
borderDashOffset: o.borderDashOffset
? o.borderDashOffset
: f.borderDashOffset || c.borderDashOffset,
borderJoinStyle: o.borderJoinStyle
? o.borderJoinStyle
: f.borderJoinStyle || c.borderJoinStyle,
fill: o.fill
? o.fill
: void 0 !== f.fill
? f.fill
: c.fill,
steppedLine: o.steppedLine
? o.steppedLine
: a.getValueOrDefault(f.steppedLine, c.stepped),
cubicInterpolationMode: o.cubicInterpolationMode
? o.cubicInterpolationMode
: a.getValueOrDefault(
f.cubicInterpolationMode,
c.cubicInterpolationMode
),
scaleTop: h.top,
scaleBottom: h.bottom,
scaleZero: h.getBasePixel(),
}),
l.pivot()),
i = 0,
n = u.length;
i < n;
++i
)
r.updateElement(u[i], i, t);
for (
g &&
0 !== l._model.tension &&
r.updateBezierControlPoints(),
i = 0,
n = u.length;
i < n;
++i
)
u[i].pivot();
},
getPointBackgroundColor: function (t, e) {
var i = this.chart.options.elements.point.backgroundColor,
n = this.getDataset(),
o = t.custom || {};
return (
o.backgroundColor
? (i = o.backgroundColor)
: n.pointBackgroundColor
? (i = a.getValueAtIndexOrDefault(
n.pointBackgroundColor,
e,
i
))
: n.backgroundColor && (i = n.backgroundColor),
i
);
},
getPointBorderColor: function (t, e) {
var i = this.chart.options.elements.point.borderColor,
n = this.getDataset(),
o = t.custom || {};
return (
o.borderColor
? (i = o.borderColor)
: n.pointBorderColor
? (i = a.getValueAtIndexOrDefault(
n.pointBorderColor,
e,
i
))
: n.borderColor && (i = n.borderColor),
i
);
},
getPointBorderWidth: function (t, e) {
var i = this.chart.options.elements.point.borderWidth,
n = this.getDataset(),
o = t.custom || {};
return (
isNaN(o.borderWidth)
? isNaN(n.pointBorderWidth)
? isNaN(n.borderWidth) || (i = n.borderWidth)
: (i = a.getValueAtIndexOrDefault(
n.pointBorderWidth,
e,
i
))
: (i = o.borderWidth),
i
);
},
updateElement: function (t, e, i) {
var n,
o,
r = this,
s = r.getMeta(),
l = t.custom || {},
u = r.getDataset(),
d = r.index,
c = u.data[e],
h = r.getScaleForId(s.yAxisID),
f = r.getScaleForId(s.xAxisID),
g = r.chart.options.elements.point,
p = r.chart.data.labels || [],
m =
1 === p.length || 1 === u.data.length || r.chart.isCombo;
void 0 !== u.radius &&
void 0 === u.pointRadius &&
(u.pointRadius = u.radius),
void 0 !== u.hitRadius &&
void 0 === u.pointHitRadius &&
(u.pointHitRadius = u.hitRadius),
(n = f.getPixelForValue(
"object" == typeof c ? c : NaN,
e,
d,
m
)),
(o = i ? h.getBasePixel() : r.calculatePointY(c, e, d)),
(t._xScale = f),
(t._yScale = h),
(t._datasetIndex = d),
(t._index = e),
(t._model = {
x: n,
y: o,
skip: l.skip || isNaN(n) || isNaN(o),
radius:
l.radius ||
a.getValueAtIndexOrDefault(u.pointRadius, e, g.radius),
pointStyle:
l.pointStyle ||
a.getValueAtIndexOrDefault(
u.pointStyle,
e,
g.pointStyle
),
backgroundColor: r.getPointBackgroundColor(t, e),
borderColor: r.getPointBorderColor(t, e),
borderWidth: r.getPointBorderWidth(t, e),
tension: s.dataset._model ? s.dataset._model.tension : 0,
steppedLine:
!!s.dataset._model && s.dataset._model.steppedLine,
hitRadius:
l.hitRadius ||
a.getValueAtIndexOrDefault(
u.pointHitRadius,
e,
g.hitRadius
),
});
},
calculatePointY: function (t, e, a) {
var i,
n,
o,
r = this,
s = r.chart,
l = r.getMeta(),
u = r.getScaleForId(l.yAxisID),
d = 0,
c = 0;
if (u.options.stacked) {
for (i = 0; i < a; i++)
if (
((n = s.data.datasets[i]),
(o = s.getDatasetMeta(i)),
"line" === o.type &&
o.yAxisID === u.id &&
s.isDatasetVisible(i))
) {
var h = Number(u.getRightValue(n.data[e]));
h < 0 ? (c += h || 0) : (d += h || 0);
}
var f = Number(u.getRightValue(t));
return f < 0
? u.getPixelForValue(c + f)
: u.getPixelForValue(d + f);
}
return u.getPixelForValue(t);
},
updateBezierControlPoints: function () {
function t(t, e, a) {
return Math.max(Math.min(t, a), e);
}
var e,
i,
n,
o,
r,
s = this,
l = s.getMeta(),
u = s.chart.chartArea,
d = l.data || [];
if (
(l.dataset._model.spanGaps &&
(d = d.filter(function (t) {
return !t._model.skip;
})),
"monotone" === l.dataset._model.cubicInterpolationMode)
)
a.splineCurveMonotone(d);
else
for (e = 0, i = d.length; e < i; ++e)
(n = d[e]),
(o = n._model),
(r = a.splineCurve(
a.previousItem(d, e)._model,
o,
a.nextItem(d, e)._model,
l.dataset._model.tension
)),
(o.controlPointPreviousX = r.previous.x),
(o.controlPointPreviousY = r.previous.y),
(o.controlPointNextX = r.next.x),
(o.controlPointNextY = r.next.y);
if (s.chart.options.elements.line.capBezierPoints)
for (e = 0, i = d.length; e < i; ++e)
(o = d[e]._model),
(o.controlPointPreviousX = t(
o.controlPointPreviousX,
u.left,
u.right
)),
(o.controlPointPreviousY = t(
o.controlPointPreviousY,
u.top,
u.bottom
)),
(o.controlPointNextX = t(
o.controlPointNextX,
u.left,
u.right
)),
(o.controlPointNextY = t(
o.controlPointNextY,
u.top,
u.bottom
));
},
draw: function (a) {
var i,
n,
o = this,
r = o.getMeta(),
s = r.data || [],
l = a || 1;
for (i = 0, n = s.length; i < n; ++i) s[i].transition(l);
for (
t.canvasHelpers.clipArea(
o.chart.chart.ctx,
o.chart.chartArea
),
e(o.getDataset(), o.chart.options) &&
r.dataset.transition(l).draw(),
t.canvasHelpers.unclipArea(o.chart.chart.ctx),
i = 0,
n = s.length;
i < n;
++i
)
s[i].draw(o.chart.chartArea);
},
setHoverStyle: function (t) {
var e = this.chart.data.datasets[t._datasetIndex],
i = t._index,
n = t.custom || {},
o = t._model;
(o.radius =
n.hoverRadius ||
a.getValueAtIndexOrDefault(
e.pointHoverRadius,
i,
this.chart.options.elements.point.hoverRadius
)),
(o.backgroundColor =
n.hoverBackgroundColor ||
a.getValueAtIndexOrDefault(
e.pointHoverBackgroundColor,
i,
a.getHoverColor(o.backgroundColor)
)),
(o.borderColor =
n.hoverBorderColor ||
a.getValueAtIndexOrDefault(
e.pointHoverBorderColor,
i,
a.getHoverColor(o.borderColor)
)),
(o.borderWidth =
n.hoverBorderWidth ||
a.getValueAtIndexOrDefault(
e.pointHoverBorderWidth,
i,
o.borderWidth
));
},
removeHoverStyle: function (t) {
var e = this,
i = e.chart.data.datasets[t._datasetIndex],
n = t._index,
o = t.custom || {},
r = t._model;
void 0 !== i.radius &&
void 0 === i.pointRadius &&
(i.pointRadius = i.radius),
(r.radius =
o.radius ||
a.getValueAtIndexOrDefault(
i.pointRadius,
n,
e.chart.options.elements.point.radius
)),
(r.backgroundColor = e.getPointBackgroundColor(t, n)),
(r.borderColor = e.getPointBorderColor(t, n)),
(r.borderWidth = e.getPointBorderWidth(t, n));
},
}));
};
},
{},
],
19: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers;
(t.defaults.polarArea = {
scale: {
type: "radialLinear",
lineArc: !0,
ticks: { beginAtZero: !0 },
},
animation: { animateRotate: !0, animateScale: !0 },
startAngle: -0.5 * Math.PI,
aspectRatio: 1,
legendCallback: function (t) {
var e = [];
e.push('<ul class="' + t.id + '-legend">');
var a = t.data,
i = a.datasets,
n = a.labels;
if (i.length)
for (var o = 0; o < i[0].data.length; ++o)
e.push(
'<li><span style="background-color:' +
i[0].backgroundColor[o] +
'"></span>'
),
n[o] && e.push(n[o]),
e.push("</li>");
return e.push("</ul>"), e.join("");
},
legend: {
labels: {
generateLabels: function (t) {
var a = t.data;
return a.labels.length && a.datasets.length
? a.labels.map(function (i, n) {
var o = t.getDatasetMeta(0),
r = a.datasets[0],
s = o.data[n],
l = s.custom || {},
u = e.getValueAtIndexOrDefault,
d = t.options.elements.arc,
c = l.backgroundColor
? l.backgroundColor
: u(r.backgroundColor, n, d.backgroundColor),
h = l.borderColor
? l.borderColor
: u(r.borderColor, n, d.borderColor),
f = l.borderWidth
? l.borderWidth
: u(r.borderWidth, n, d.borderWidth);
return {
text: i,
fillStyle: c,
strokeStyle: h,
lineWidth: f,
hidden: isNaN(r.data[n]) || o.data[n].hidden,
index: n,
};
})
: [];
},
},
onClick: function (t, e) {
var a,
i,
n,
o = e.index,
r = this.chart;
for (a = 0, i = (r.data.datasets || []).length; a < i; ++a)
(n = r.getDatasetMeta(a)),
(n.data[o].hidden = !n.data[o].hidden);
r.update();
},
},
tooltips: {
callbacks: {
title: function () {
return "";
},
label: function (t, e) {
return e.labels[t.index] + ": " + t.yLabel;
},
},
},
}),
(t.controllers.polarArea = t.DatasetController.extend({
dataElementType: t.elements.Arc,
linkScales: e.noop,
update: function (t) {
var a = this,
i = a.chart,
n = i.chartArea,
o = a.getMeta(),
r = i.options,
s = r.elements.arc,
l = Math.min(n.right - n.left, n.bottom - n.top);
(i.outerRadius = Math.max((l - s.borderWidth / 2) / 2, 0)),
(i.innerRadius = Math.max(
r.cutoutPercentage
? (i.outerRadius / 100) * r.cutoutPercentage
: 1,
0
)),
(i.radiusLength =
(i.outerRadius - i.innerRadius) /
i.getVisibleDatasetCount()),
(a.outerRadius = i.outerRadius - i.radiusLength * a.index),
(a.innerRadius = a.outerRadius - i.radiusLength),
(o.count = a.countVisibleElements()),
e.each(o.data, function (e, i) {
a.updateElement(e, i, t);
});
},
updateElement: function (t, a, i) {
for (
var n = this,
o = n.chart,
r = n.getDataset(),
s = o.options,
l = s.animation,
u = o.scale,
d = e.getValueAtIndexOrDefault,
c = o.data.labels,
h = n.calculateCircumference(r.data[a]),
f = u.xCenter,
g = u.yCenter,
p = 0,
m = n.getMeta(),
v = 0;
v < a;
++v
)
isNaN(r.data[v]) || m.data[v].hidden || ++p;
var b = s.startAngle,
x = t.hidden
? 0
: u.getDistanceFromCenterForValue(r.data[a]),
y = b + h * p,
k = y + (t.hidden ? 0 : h),
S = l.animateScale
? 0
: u.getDistanceFromCenterForValue(r.data[a]);
e.extend(t, {
_datasetIndex: n.index,
_index: a,
_scale: u,
_model: {
x: f,
y: g,
innerRadius: 0,
outerRadius: i ? S : x,
startAngle: i && l.animateRotate ? b : y,
endAngle: i && l.animateRotate ? b : k,
label: d(c, a, c[a]),
},
}),
n.removeHoverStyle(t),
t.pivot();
},
removeHoverStyle: function (e) {
t.DatasetController.prototype.removeHoverStyle.call(
this,
e,
this.chart.options.elements.arc
);
},
countVisibleElements: function () {
var t = this.getDataset(),
a = this.getMeta(),
i = 0;
return (
e.each(a.data, function (e, a) {
isNaN(t.data[a]) || e.hidden || i++;
}),
i
);
},
calculateCircumference: function (t) {
var e = this.getMeta().count;
return e > 0 && !isNaN(t) ? (2 * Math.PI) / e : 0;
},
}));
};
},
{},
],
20: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers;
(t.defaults.radar = {
aspectRatio: 1,
scale: { type: "radialLinear" },
elements: { line: { tension: 0 } },
}),
(t.controllers.radar = t.DatasetController.extend({
datasetElementType: t.elements.Line,
dataElementType: t.elements.Point,
linkScales: e.noop,
update: function (t) {
var a = this,
i = a.getMeta(),
n = i.dataset,
o = i.data,
r = n.custom || {},
s = a.getDataset(),
l = a.chart.options.elements.line,
u = a.chart.scale;
void 0 !== s.tension &&
void 0 === s.lineTension &&
(s.lineTension = s.tension),
e.extend(i.dataset, {
_datasetIndex: a.index,
_children: o,
_loop: !0,
_model: {
tension: r.tension
? r.tension
: e.getValueOrDefault(s.lineTension, l.tension),
backgroundColor: r.backgroundColor
? r.backgroundColor
: s.backgroundColor || l.backgroundColor,
borderWidth: r.borderWidth
? r.borderWidth
: s.borderWidth || l.borderWidth,
borderColor: r.borderColor
? r.borderColor
: s.borderColor || l.borderColor,
fill: r.fill
? r.fill
: void 0 !== s.fill
? s.fill
: l.fill,
borderCapStyle: r.borderCapStyle
? r.borderCapStyle
: s.borderCapStyle || l.borderCapStyle,
borderDash: r.borderDash
? r.borderDash
: s.borderDash || l.borderDash,
borderDashOffset: r.borderDashOffset
? r.borderDashOffset
: s.borderDashOffset || l.borderDashOffset,
borderJoinStyle: r.borderJoinStyle
? r.borderJoinStyle
: s.borderJoinStyle || l.borderJoinStyle,
scaleTop: u.top,
scaleBottom: u.bottom,
scaleZero: u.getBasePosition(),
},
}),
i.dataset.pivot(),
e.each(
o,
function (e, i) {
a.updateElement(e, i, t);
},
a
),
a.updateBezierControlPoints();
},
updateElement: function (t, a, i) {
var n = this,
o = t.custom || {},
r = n.getDataset(),
s = n.chart.scale,
l = n.chart.options.elements.point,
u = s.getPointPositionForValue(a, r.data[a]);
e.extend(t, {
_datasetIndex: n.index,
_index: a,
_scale: s,
_model: {
x: i ? s.xCenter : u.x,
y: i ? s.yCenter : u.y,
tension: o.tension
? o.tension
: e.getValueOrDefault(
r.lineTension,
n.chart.options.elements.line.tension
),
radius: o.radius
? o.radius
: e.getValueAtIndexOrDefault(
r.pointRadius,
a,
l.radius
),
backgroundColor: o.backgroundColor
? o.backgroundColor
: e.getValueAtIndexOrDefault(
r.pointBackgroundColor,
a,
l.backgroundColor
),
borderColor: o.borderColor
? o.borderColor
: e.getValueAtIndexOrDefault(
r.pointBorderColor,
a,
l.borderColor
),
borderWidth: o.borderWidth
? o.borderWidth
: e.getValueAtIndexOrDefault(
r.pointBorderWidth,
a,
l.borderWidth
),
pointStyle: o.pointStyle
? o.pointStyle
: e.getValueAtIndexOrDefault(
r.pointStyle,
a,
l.pointStyle
),
hitRadius: o.hitRadius
? o.hitRadius
: e.getValueAtIndexOrDefault(
r.hitRadius,
a,
l.hitRadius
),
},
}),
(t._model.skip = o.skip
? o.skip
: isNaN(t._model.x) || isNaN(t._model.y));
},
updateBezierControlPoints: function () {
var t = this.chart.chartArea,
a = this.getMeta();
e.each(a.data, function (i, n) {
var o = i._model,
r = e.splineCurve(
e.previousItem(a.data, n, !0)._model,
o,
e.nextItem(a.data, n, !0)._model,
o.tension
);
(o.controlPointPreviousX = Math.max(
Math.min(r.previous.x, t.right),
t.left
)),
(o.controlPointPreviousY = Math.max(
Math.min(r.previous.y, t.bottom),
t.top
)),
(o.controlPointNextX = Math.max(
Math.min(r.next.x, t.right),
t.left
)),
(o.controlPointNextY = Math.max(
Math.min(r.next.y, t.bottom),
t.top
)),
i.pivot();
});
},
draw: function (t) {
var a = this.getMeta(),
i = t || 1;
e.each(a.data, function (t) {
t.transition(i);
}),
a.dataset.transition(i).draw(),
e.each(a.data, function (t) {
t.draw();
});
},
setHoverStyle: function (t) {
var a = this.chart.data.datasets[t._datasetIndex],
i = t.custom || {},
n = t._index,
o = t._model;
(o.radius = i.hoverRadius
? i.hoverRadius
: e.getValueAtIndexOrDefault(
a.pointHoverRadius,
n,
this.chart.options.elements.point.hoverRadius
)),
(o.backgroundColor = i.hoverBackgroundColor
? i.hoverBackgroundColor
: e.getValueAtIndexOrDefault(
a.pointHoverBackgroundColor,
n,
e.getHoverColor(o.backgroundColor)
)),
(o.borderColor = i.hoverBorderColor
? i.hoverBorderColor
: e.getValueAtIndexOrDefault(
a.pointHoverBorderColor,
n,
e.getHoverColor(o.borderColor)
)),
(o.borderWidth = i.hoverBorderWidth
? i.hoverBorderWidth
: e.getValueAtIndexOrDefault(
a.pointHoverBorderWidth,
n,
o.borderWidth
));
},
removeHoverStyle: function (t) {
var a = this.chart.data.datasets[t._datasetIndex],
i = t.custom || {},
n = t._index,
o = t._model,
r = this.chart.options.elements.point;
(o.radius = i.radius
? i.radius
: e.getValueAtIndexOrDefault(a.radius, n, r.radius)),
(o.backgroundColor = i.backgroundColor
? i.backgroundColor
: e.getValueAtIndexOrDefault(
a.pointBackgroundColor,
n,
r.backgroundColor
)),
(o.borderColor = i.borderColor
? i.borderColor
: e.getValueAtIndexOrDefault(
a.pointBorderColor,
n,
r.borderColor
)),
(o.borderWidth = i.borderWidth
? i.borderWidth
: e.getValueAtIndexOrDefault(
a.pointBorderWidth,
n,
r.borderWidth
));
},
}));
};
},
{},
],
21: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers;
(t.defaults.global.animation = {
duration: 1e3,
easing: "easeOutQuart",
onProgress: e.noop,
onComplete: e.noop,
}),
(t.Animation = t.Element.extend({
currentStep: null,
numSteps: 60,
easing: "",
render: null,
onAnimationProgress: null,
onAnimationComplete: null,
})),
(t.animationService = {
frameDuration: 17,
animations: [],
dropFrames: 0,
request: null,
addAnimation: function (t, e, a, i) {
var n = this;
i || (t.animating = !0);
for (var o = 0; o < n.animations.length; ++o)
if (n.animations[o].chartInstance === t)
return void (n.animations[o].animationObject = e);
n.animations.push({ chartInstance: t, animationObject: e }),
1 === n.animations.length && n.requestAnimationFrame();
},
cancelAnimation: function (t) {
var a = e.findIndex(this.animations, function (e) {
return e.chartInstance === t;
});
a !== -1 &&
(this.animations.splice(a, 1), (t.animating = !1));
},
requestAnimationFrame: function () {
var t = this;
null === t.request &&
(t.request = e.requestAnimFrame.call(window, function () {
(t.request = null), t.startDigest();
}));
},
startDigest: function () {
var t = this,
e = Date.now(),
a = 0;
t.dropFrames > 1 &&
((a = Math.floor(t.dropFrames)),
(t.dropFrames = t.dropFrames % 1));
for (var i = 0; i < t.animations.length; )
null === t.animations[i].animationObject.currentStep &&
(t.animations[i].animationObject.currentStep = 0),
(t.animations[i].animationObject.currentStep += 1 + a),
t.animations[i].animationObject.currentStep >
t.animations[i].animationObject.numSteps &&
(t.animations[i].animationObject.currentStep =
t.animations[i].animationObject.numSteps),
t.animations[i].animationObject.render(
t.animations[i].chartInstance,
t.animations[i].animationObject
),
t.animations[i].animationObject.onAnimationProgress &&
t.animations[i].animationObject.onAnimationProgress
.call &&
t.animations[
i
].animationObject.onAnimationProgress.call(
t.animations[i].chartInstance,
t.animations[i]
),
t.animations[i].animationObject.currentStep ===
t.animations[i].animationObject.numSteps
? (t.animations[i].animationObject
.onAnimationComplete &&
t.animations[i].animationObject.onAnimationComplete
.call &&
t.animations[
i
].animationObject.onAnimationComplete.call(
t.animations[i].chartInstance,
t.animations[i]
),
(t.animations[i].chartInstance.animating = !1),
t.animations.splice(i, 1))
: ++i;
var n = Date.now(),
o = (n - e) / t.frameDuration;
(t.dropFrames += o),
t.animations.length > 0 && t.requestAnimationFrame();
},
});
};
},
{},
],
22: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = (t.canvasHelpers = {});
(e.drawPoint = function (e, a, i, n, o) {
var r, s, l, u, d, c;
if (
"object" == typeof a &&
((r = a.toString()),
"[object HTMLImageElement]" === r ||
"[object HTMLCanvasElement]" === r)
)
return void e.drawImage(a, n - a.width / 2, o - a.height / 2);
if (!(isNaN(i) || i <= 0)) {
switch (a) {
default:
e.beginPath(),
e.arc(n, o, i, 0, 2 * Math.PI),
e.closePath(),
e.fill();
break;
case "triangle":
e.beginPath(),
(s = (3 * i) / Math.sqrt(3)),
(d = (s * Math.sqrt(3)) / 2),
e.moveTo(n - s / 2, o + d / 3),
e.lineTo(n + s / 2, o + d / 3),
e.lineTo(n, o - (2 * d) / 3),
e.closePath(),
e.fill();
break;
case "rect":
(c = (1 / Math.SQRT2) * i),
e.beginPath(),
e.fillRect(n - c, o - c, 2 * c, 2 * c),
e.strokeRect(n - c, o - c, 2 * c, 2 * c);
break;
case "rectRounded":
var h = i / Math.SQRT2,
f = n - h,
g = o - h,
p = Math.SQRT2 * i;
t.helpers.drawRoundedRectangle(e, f, g, p, p, i / 2),
e.fill();
break;
case "rectRot":
(c = (1 / Math.SQRT2) * i),
e.beginPath(),
e.moveTo(n - c, o),
e.lineTo(n, o + c),
e.lineTo(n + c, o),
e.lineTo(n, o - c),
e.closePath(),
e.fill();
break;
case "cross":
e.beginPath(),
e.moveTo(n, o + i),
e.lineTo(n, o - i),
e.moveTo(n - i, o),
e.lineTo(n + i, o),
e.closePath();
break;
case "crossRot":
e.beginPath(),
(l = Math.cos(Math.PI / 4) * i),
(u = Math.sin(Math.PI / 4) * i),
e.moveTo(n - l, o - u),
e.lineTo(n + l, o + u),
e.moveTo(n - l, o + u),
e.lineTo(n + l, o - u),
e.closePath();
break;
case "star":
e.beginPath(),
e.moveTo(n, o + i),
e.lineTo(n, o - i),
e.moveTo(n - i, o),
e.lineTo(n + i, o),
(l = Math.cos(Math.PI / 4) * i),
(u = Math.sin(Math.PI / 4) * i),
e.moveTo(n - l, o - u),
e.lineTo(n + l, o + u),
e.moveTo(n - l, o + u),
e.lineTo(n + l, o - u),
e.closePath();
break;
case "line":
e.beginPath(),
e.moveTo(n - i, o),
e.lineTo(n + i, o),
e.closePath();
break;
case "dash":
e.beginPath(),
e.moveTo(n, o),
e.lineTo(n + i, o),
e.closePath();
}
e.stroke();
}
}),
(e.clipArea = function (t, e) {
t.save(),
t.beginPath(),
t.rect(e.left, e.top, e.right - e.left, e.bottom - e.top),
t.clip();
}),
(e.unclipArea = function (t) {
t.restore();
});
};
},
{},
],
23: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(e) {
e = e || {};
var a = (e.data = e.data || {});
return (
(a.datasets = a.datasets || []),
(a.labels = a.labels || []),
(e.options = i.configMerge(
t.defaults.global,
t.defaults[e.type],
e.options || {}
)),
e
);
}
function a(t) {
var e = t.options;
e.scale
? (t.scale.options = e.scale)
: e.scales &&
e.scales.xAxes.concat(e.scales.yAxes).forEach(function (e) {
t.scales[e.id].options = e;
}),
(t.tooltip._options = e.tooltips);
}
var i = t.helpers,
n = t.plugins,
o = t.platform;
(t.types = {}),
(t.instances = {}),
(t.controllers = {}),
(t.Controller = function (a, n, r) {
var s = this;
n = e(n);
var l = o.acquireContext(a, n),
u = l && l.canvas,
d = u && u.height,
c = u && u.width;
return (
(r.ctx = l),
(r.canvas = u),
(r.config = n),
(r.width = c),
(r.height = d),
(r.aspectRatio = d ? c / d : null),
(s.id = i.uid()),
(s.chart = r),
(s.config = n),
(s.options = n.options),
(s._bufferedRender = !1),
(t.instances[s.id] = s),
Object.defineProperty(s, "data", {
get: function () {
return s.config.data;
},
}),
l && u
? (s.initialize(), s.update(), s)
: (console.error(
"Failed to create chart: can't acquire context from the given item"
),
s)
);
}),
i.extend(t.Controller.prototype, {
initialize: function () {
var t = this;
return (
n.notify(t, "beforeInit"),
i.retinaScale(t.chart),
t.bindEvents(),
t.options.responsive && t.resize(!0),
t.ensureScalesHaveIDs(),
t.buildScales(),
t.initToolTip(),
n.notify(t, "afterInit"),
t
);
},
clear: function () {
return i.clear(this.chart), this;
},
stop: function () {
return t.animationService.cancelAnimation(this), this;
},
resize: function (t) {
var e = this,
a = e.chart,
o = e.options,
r = a.canvas,
s = (o.maintainAspectRatio && a.aspectRatio) || null,
l = Math.floor(i.getMaximumWidth(r)),
u = Math.floor(s ? l / s : i.getMaximumHeight(r));
if (
(a.width !== l || a.height !== u) &&
((r.width = a.width = l),
(r.height = a.height = u),
(r.style.width = l + "px"),
(r.style.height = u + "px"),
i.retinaScale(a),
!t)
) {
var d = { width: l, height: u };
n.notify(e, "resize", [d]),
e.options.onResize && e.options.onResize(e, d),
e.stop(),
e.update(e.options.responsiveAnimationDuration);
}
},
ensureScalesHaveIDs: function () {
var t = this.options,
e = t.scales || {},
a = t.scale;
i.each(e.xAxes, function (t, e) {
t.id = t.id || "x-axis-" + e;
}),
i.each(e.yAxes, function (t, e) {
t.id = t.id || "y-axis-" + e;
}),
a && (a.id = a.id || "scale");
},
buildScales: function () {
var e = this,
a = e.options,
n = (e.scales = {}),
o = [];
a.scales &&
(o = o.concat(
(a.scales.xAxes || []).map(function (t) {
return { options: t, dtype: "category" };
}),
(a.scales.yAxes || []).map(function (t) {
return { options: t, dtype: "linear" };
})
)),
a.scale &&
o.push({
options: a.scale,
dtype: "radialLinear",
isDefault: !0,
}),
i.each(o, function (a) {
var o = a.options,
r = i.getValueOrDefault(o.type, a.dtype),
s = t.scaleService.getScaleConstructor(r);
if (s) {
var l = new s({
id: o.id,
options: o,
ctx: e.chart.ctx,
chart: e,
});
(n[l.id] = l), a.isDefault && (e.scale = l);
}
}),
t.scaleService.addScalesToLayout(this);
},
buildOrUpdateControllers: function () {
var e = this,
a = [],
n = [];
if (
(i.each(
e.data.datasets,
function (i, o) {
var r = e.getDatasetMeta(o);
r.type || (r.type = i.type || e.config.type),
a.push(r.type),
r.controller
? r.controller.updateIndex(o)
: ((r.controller = new t.controllers[r.type](e, o)),
n.push(r.controller));
},
e
),
a.length > 1)
)
for (var o = 1; o < a.length; o++)
if (a[o] !== a[o - 1]) {
e.isCombo = !0;
break;
}
return n;
},
resetElements: function () {
var t = this;
i.each(
t.data.datasets,
function (e, a) {
t.getDatasetMeta(a).controller.reset();
},
t
);
},
reset: function () {
this.resetElements(), this.tooltip.initialize();
},
update: function (t, e) {
var o = this;
if ((a(o), n.notify(o, "beforeUpdate") !== !1)) {
o.tooltip._data = o.data;
var r = o.buildOrUpdateControllers();
i.each(
o.data.datasets,
function (t, e) {
o.getDatasetMeta(e).controller.buildOrUpdateElements();
},
o
),
o.updateLayout(),
i.each(r, function (t) {
t.reset();
}),
o.updateDatasets(),
n.notify(o, "afterUpdate"),
o._bufferedRender
? (o._bufferedRequest = { lazy: e, duration: t })
: o.render(t, e);
}
},
updateLayout: function () {
var e = this;
n.notify(e, "beforeLayout") !== !1 &&
(t.layoutService.update(
this,
this.chart.width,
this.chart.height
),
n.notify(e, "afterScaleUpdate"),
n.notify(e, "afterLayout"));
},
updateDatasets: function () {
var t = this;
if (n.notify(t, "beforeDatasetsUpdate") !== !1) {
for (var e = 0, a = t.data.datasets.length; e < a; ++e)
t.getDatasetMeta(e).controller.update();
n.notify(t, "afterDatasetsUpdate");
}
},
render: function (e, a) {
var o = this;
if (n.notify(o, "beforeRender") !== !1) {
var r = o.options.animation,
s = function () {
n.notify(o, "afterRender");
var t = r && r.onComplete;
t && t.call && t.call(o);
};
if (
r &&
(("undefined" != typeof e && 0 !== e) ||
("undefined" == typeof e && 0 !== r.duration))
) {
var l = new t.Animation();
(l.numSteps = (e || r.duration) / 16.66),
(l.easing = r.easing),
(l.render = function (t, e) {
var a = i.easingEffects[e.easing],
n = e.currentStep / e.numSteps,
o = a(n);
t.draw(o, n, e.currentStep);
}),
(l.onAnimationProgress = r.onProgress),
(l.onAnimationComplete = s),
t.animationService.addAnimation(o, l, e, a);
} else o.draw(), s();
return o;
}
},
draw: function (t) {
var e = this;
e.clear(),
(void 0 !== t && null !== t) || (t = 1),
n.notify(e, "beforeDraw", [t]) !== !1 &&
(i.each(
e.boxes,
function (t) {
t.draw(e.chartArea);
},
e
),
e.scale && e.scale.draw(),
e.drawDatasets(t),
e.tooltip.transition(t).draw(),
n.notify(e, "afterDraw", [t]));
},
drawDatasets: function (t) {
var e = this;
n.notify(e, "beforeDatasetsDraw", [t]) !== !1 &&
(i.each(
e.data.datasets,
function (a, i) {
e.isDatasetVisible(i) &&
e.getDatasetMeta(i).controller.draw(t);
},
e,
!0
),
n.notify(e, "afterDatasetsDraw", [t]));
},
getElementAtEvent: function (e) {
return t.Interaction.modes.single(this, e);
},
getElementsAtEvent: function (e) {
return t.Interaction.modes.label(this, e, { intersect: !0 });
},
getElementsAtXAxis: function (e) {
return t.Interaction.modes["x-axis"](this, e, {
intersect: !0,
});
},
getElementsAtEventForMode: function (e, a, i) {
var n = t.Interaction.modes[a];
return "function" == typeof n ? n(this, e, i) : [];
},
getDatasetAtEvent: function (e) {
return t.Interaction.modes.dataset(this, e, {
intersect: !0,
});
},
getDatasetMeta: function (t) {
var e = this,
a = e.data.datasets[t];
a._meta || (a._meta = {});
var i = a._meta[e.id];
return (
i ||
(i = a._meta[e.id] =
{
type: null,
data: [],
dataset: null,
controller: null,
hidden: null,
xAxisID: null,
yAxisID: null,
}),
i
);
},
getVisibleDatasetCount: function () {
for (
var t = 0, e = 0, a = this.data.datasets.length;
e < a;
++e
)
this.isDatasetVisible(e) && t++;
return t;
},
isDatasetVisible: function (t) {
var e = this.getDatasetMeta(t);
return "boolean" == typeof e.hidden
? !e.hidden
: !this.data.datasets[t].hidden;
},
generateLegend: function () {
return this.options.legendCallback(this);
},
destroy: function () {
var e,
a,
r,
s = this,
l = s.chart.canvas;
for (s.stop(), a = 0, r = s.data.datasets.length; a < r; ++a)
(e = s.getDatasetMeta(a)),
e.controller &&
(e.controller.destroy(), (e.controller = null));
l &&
(s.unbindEvents(),
i.clear(s.chart),
o.releaseContext(s.chart.ctx),
(s.chart.canvas = null),
(s.chart.ctx = null)),
n.notify(s, "destroy"),
delete t.instances[s.id];
},
toBase64Image: function () {
return this.chart.canvas.toDataURL.apply(
this.chart.canvas,
arguments
);
},
initToolTip: function () {
var e = this;
(e.tooltip = new t.Tooltip(
{
_chart: e.chart,
_chartInstance: e,
_data: e.data,
_options: e.options.tooltips,
},
e
)),
e.tooltip.initialize();
},
bindEvents: function () {
var t = this,
e = (t._listeners = {}),
a = function () {
t.eventHandler.apply(t, arguments);
};
i.each(t.options.events, function (i) {
o.addEventListener(t, i, a), (e[i] = a);
}),
t.options.responsive &&
((a = function () {
t.resize();
}),
o.addEventListener(t, "resize", a),
(e.resize = a));
},
unbindEvents: function () {
var t = this,
e = t._listeners;
e &&
(delete t._listeners,
i.each(e, function (e, a) {
o.removeEventListener(t, a, e);
}));
},
updateHoverStyle: function (t, e, a) {
var i,
n,
o,
r = a ? "setHoverStyle" : "removeHoverStyle";
for (n = 0, o = t.length; n < o; ++n)
(i = t[n]),
i &&
this.getDatasetMeta(i._datasetIndex).controller[r](i);
},
eventHandler: function (t) {
var e = this,
a = e.tooltip;
if (n.notify(e, "beforeEvent", [t]) !== !1) {
(e._bufferedRender = !0), (e._bufferedRequest = null);
var i = e.handleEvent(t);
(i |= a && a.handleEvent(t)),
n.notify(e, "afterEvent", [t]);
var o = e._bufferedRequest;
return (
o
? e.render(o.duration, o.lazy)
: i &&
!e.animating &&
(e.stop(),
e.render(e.options.hover.animationDuration, !0)),
(e._bufferedRender = !1),
(e._bufferedRequest = null),
e
);
}
},
handleEvent: function (t) {
var e = this,
a = e.options || {},
n = a.hover,
o = !1;
return (
(e.lastActive = e.lastActive || []),
"mouseout" === t.type
? (e.active = [])
: (e.active = e.getElementsAtEventForMode(t, n.mode, n)),
n.onHover && n.onHover.call(e, t.native, e.active),
("mouseup" !== t.type && "click" !== t.type) ||
(a.onClick && a.onClick.call(e, t.native, e.active)),
e.lastActive.length &&
e.updateHoverStyle(e.lastActive, n.mode, !1),
e.active.length &&
n.mode &&
e.updateHoverStyle(e.active, n.mode, !0),
(o = !i.arrayEquals(e.active, e.lastActive)),
(e.lastActive = e.active),
o
);
},
});
};
},
{},
],
24: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(t, e) {
return t._chartjs
? void t._chartjs.listeners.push(e)
: (Object.defineProperty(t, "_chartjs", {
configurable: !0,
enumerable: !1,
value: { listeners: [e] },
}),
void n.forEach(function (e) {
var a = "onData" + e.charAt(0).toUpperCase() + e.slice(1),
n = t[e];
Object.defineProperty(t, e, {
configurable: !0,
enumerable: !1,
value: function () {
var e = Array.prototype.slice.call(arguments),
o = n.apply(this, e);
return (
i.each(t._chartjs.listeners, function (t) {
"function" == typeof t[a] && t[a].apply(t, e);
}),
o
);
},
});
}));
}
function a(t, e) {
var a = t._chartjs;
if (a) {
var i = a.listeners,
o = i.indexOf(e);
o !== -1 && i.splice(o, 1),
i.length > 0 ||
(n.forEach(function (e) {
delete t[e];
}),
delete t._chartjs);
}
}
var i = t.helpers,
n = ["push", "pop", "shift", "splice", "unshift"];
(t.DatasetController = function (t, e) {
this.initialize(t, e);
}),
i.extend(t.DatasetController.prototype, {
datasetElementType: null,
dataElementType: null,
initialize: function (t, e) {
var a = this;
(a.chart = t), (a.index = e), a.linkScales(), a.addElements();
},
updateIndex: function (t) {
this.index = t;
},
linkScales: function () {
var t = this,
e = t.getMeta(),
a = t.getDataset();
null === e.xAxisID &&
(e.xAxisID =
a.xAxisID || t.chart.options.scales.xAxes[0].id),
null === e.yAxisID &&
(e.yAxisID =
a.yAxisID || t.chart.options.scales.yAxes[0].id);
},
getDataset: function () {
return this.chart.data.datasets[this.index];
},
getMeta: function () {
return this.chart.getDatasetMeta(this.index);
},
getScaleForId: function (t) {
return this.chart.scales[t];
},
reset: function () {
this.update(!0);
},
destroy: function () {
this._data && a(this._data, this);
},
createMetaDataset: function () {
var t = this,
e = t.datasetElementType;
return (
e &&
new e({ _chart: t.chart.chart, _datasetIndex: t.index })
);
},
createMetaData: function (t) {
var e = this,
a = e.dataElementType;
return (
a &&
new a({
_chart: e.chart.chart,
_datasetIndex: e.index,
_index: t,
})
);
},
addElements: function () {
var t,
e,
a = this,
i = a.getMeta(),
n = a.getDataset().data || [],
o = i.data;
for (t = 0, e = n.length; t < e; ++t)
o[t] = o[t] || a.createMetaData(t);
i.dataset = i.dataset || a.createMetaDataset();
},
addElementAndReset: function (t) {
var e = this.createMetaData(t);
this.getMeta().data.splice(t, 0, e),
this.updateElement(e, t, !0);
},
buildOrUpdateElements: function () {
var t = this,
i = t.getDataset(),
n = i.data || (i.data = []);
t._data !== n &&
(t._data && a(t._data, t), e(n, t), (t._data = n)),
t.resyncElements();
},
update: i.noop,
draw: function (t) {
var e,
a,
i = t || 1,
n = this.getMeta().data;
for (e = 0, a = n.length; e < a; ++e)
n[e].transition(i).draw();
},
removeHoverStyle: function (t, e) {
var a = this.chart.data.datasets[t._datasetIndex],
n = t._index,
o = t.custom || {},
r = i.getValueAtIndexOrDefault,
s = t._model;
(s.backgroundColor = o.backgroundColor
? o.backgroundColor
: r(a.backgroundColor, n, e.backgroundColor)),
(s.borderColor = o.borderColor
? o.borderColor
: r(a.borderColor, n, e.borderColor)),
(s.borderWidth = o.borderWidth
? o.borderWidth
: r(a.borderWidth, n, e.borderWidth));
},
setHoverStyle: function (t) {
var e = this.chart.data.datasets[t._datasetIndex],
a = t._index,
n = t.custom || {},
o = i.getValueAtIndexOrDefault,
r = i.getHoverColor,
s = t._model;
(s.backgroundColor = n.hoverBackgroundColor
? n.hoverBackgroundColor
: o(e.hoverBackgroundColor, a, r(s.backgroundColor))),
(s.borderColor = n.hoverBorderColor
? n.hoverBorderColor
: o(e.hoverBorderColor, a, r(s.borderColor))),
(s.borderWidth = n.hoverBorderWidth
? n.hoverBorderWidth
: o(e.hoverBorderWidth, a, s.borderWidth));
},
resyncElements: function () {
var t = this,
e = t.getMeta(),
a = t.getDataset().data,
i = e.data.length,
n = a.length;
n < i
? e.data.splice(n, i - n)
: n > i && t.insertElements(i, n - i);
},
insertElements: function (t, e) {
for (var a = 0; a < e; ++a) this.addElementAndReset(t + a);
},
onDataPush: function () {
this.insertElements(
this.getDataset().data.length - 1,
arguments.length
);
},
onDataPop: function () {
this.getMeta().data.pop();
},
onDataShift: function () {
this.getMeta().data.shift();
},
onDataSplice: function (t, e) {
this.getMeta().data.splice(t, e),
this.insertElements(t, arguments.length - 2);
},
onDataUnshift: function () {
this.insertElements(0, arguments.length);
},
}),
(t.DatasetController.extend = i.inherits);
};
},
{},
],
25: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers;
(t.elements = {}),
(t.Element = function (t) {
e.extend(this, t), this.initialize.apply(this, arguments);
}),
e.extend(t.Element.prototype, {
initialize: function () {
this.hidden = !1;
},
pivot: function () {
var t = this;
return (
t._view || (t._view = e.clone(t._model)),
(t._start = e.clone(t._view)),
t
);
},
transition: function (t) {
var a = this;
return (
a._view || (a._view = e.clone(a._model)),
1 === t
? ((a._view = a._model), (a._start = null), a)
: (a._start || a.pivot(),
e.each(
a._model,
function (i, n) {
if ("_" === n[0]);
else if (a._view.hasOwnProperty(n))
if (i === a._view[n]);
else if ("string" == typeof i)
try {
var o = e
.color(a._model[n])
.mix(e.color(a._start[n]), t);
a._view[n] = o.rgbString();
} catch (t) {
a._view[n] = i;
}
else if ("number" == typeof i) {
var r =
void 0 !== a._start[n] &&
isNaN(a._start[n]) === !1
? a._start[n]
: 0;
a._view[n] = (a._model[n] - r) * t + r;
} else a._view[n] = i;
else
"number" != typeof i || isNaN(a._view[n])
? (a._view[n] = i)
: (a._view[n] = i * t);
},
a
),
a)
);
},
tooltipPosition: function () {
return { x: this._model.x, y: this._model.y };
},
hasValue: function () {
return e.isNumber(this._model.x) && e.isNumber(this._model.y);
},
}),
(t.Element.extend = e.inherits);
};
},
{},
],
26: [
function (t, e, a) {
"use strict";
var i = t(3);
e.exports = function (t) {
function e(t, e, a) {
var i;
return (
"string" == typeof t
? ((i = parseInt(t, 10)),
t.indexOf("%") !== -1 && (i = (i / 100) * e.parentNode[a]))
: (i = t),
i
);
}
function a(t) {
return void 0 !== t && null !== t && "none" !== t;
}
function n(t, i, n) {
var o = document.defaultView,
r = t.parentNode,
s = o.getComputedStyle(t)[i],
l = o.getComputedStyle(r)[i],
u = a(s),
d = a(l),
c = Number.POSITIVE_INFINITY;
return u || d
? Math.min(u ? e(s, t, n) : c, d ? e(l, r, n) : c)
: "none";
}
var o = (t.helpers = {});
(o.each = function (t, e, a, i) {
var n, r;
if (o.isArray(t))
if (((r = t.length), i))
for (n = r - 1; n >= 0; n--) e.call(a, t[n], n);
else for (n = 0; n < r; n++) e.call(a, t[n], n);
else if ("object" == typeof t) {
var s = Object.keys(t);
for (r = s.length, n = 0; n < r; n++) e.call(a, t[s[n]], s[n]);
}
}),
(o.clone = function (t) {
var e = {};
return (
o.each(t, function (t, a) {
o.isArray(t)
? (e[a] = t.slice(0))
: "object" == typeof t && null !== t
? (e[a] = o.clone(t))
: (e[a] = t);
}),
e
);
}),
(o.extend = function (t) {
for (
var e = function (e, a) {
t[a] = e;
},
a = 1,
i = arguments.length;
a < i;
a++
)
o.each(arguments[a], e);
return t;
}),
(o.configMerge = function (e) {
var a = o.clone(e);
return (
o.each(
Array.prototype.slice.call(arguments, 1),
function (e) {
o.each(e, function (e, i) {
var n = a.hasOwnProperty(i),
r = n ? a[i] : {};
"scales" === i
? (a[i] = o.scaleMerge(r, e))
: "scale" === i
? (a[i] = o.configMerge(
r,
t.scaleService.getScaleDefaults(e.type),
e
))
: !n ||
"object" != typeof r ||
o.isArray(r) ||
null === r ||
"object" != typeof e ||
o.isArray(e)
? (a[i] = e)
: (a[i] = o.configMerge(r, e));
});
}
),
a
);
}),
(o.scaleMerge = function (e, a) {
var i = o.clone(e);
return (
o.each(a, function (e, a) {
"xAxes" === a || "yAxes" === a
? i.hasOwnProperty(a)
? o.each(e, function (e, n) {
var r = o.getValueOrDefault(
e.type,
"xAxes" === a ? "category" : "linear"
),
s = t.scaleService.getScaleDefaults(r);
n >= i[a].length || !i[a][n].type
? i[a].push(o.configMerge(s, e))
: e.type && e.type !== i[a][n].type
? (i[a][n] = o.configMerge(i[a][n], s, e))
: (i[a][n] = o.configMerge(i[a][n], e));
})
: ((i[a] = []),
o.each(e, function (e) {
var n = o.getValueOrDefault(
e.type,
"xAxes" === a ? "category" : "linear"
);
i[a].push(
o.configMerge(
t.scaleService.getScaleDefaults(n),
e
)
);
}))
: i.hasOwnProperty(a) &&
"object" == typeof i[a] &&
null !== i[a] &&
"object" == typeof e
? (i[a] = o.configMerge(i[a], e))
: (i[a] = e);
}),
i
);
}),
(o.getValueAtIndexOrDefault = function (t, e, a) {
return void 0 === t || null === t
? a
: o.isArray(t)
? e < t.length
? t[e]
: a
: t;
}),
(o.getValueOrDefault = function (t, e) {
return void 0 === t ? e : t;
}),
(o.indexOf = Array.prototype.indexOf
? function (t, e) {
return t.indexOf(e);
}
: function (t, e) {
for (var a = 0, i = t.length; a < i; ++a)
if (t[a] === e) return a;
return -1;
}),
(o.where = function (t, e) {
if (o.isArray(t) && Array.prototype.filter) return t.filter(e);
var a = [];
return (
o.each(t, function (t) {
e(t) && a.push(t);
}),
a
);
}),
(o.findIndex = Array.prototype.findIndex
? function (t, e, a) {
return t.findIndex(e, a);
}
: function (t, e, a) {
a = void 0 === a ? t : a;
for (var i = 0, n = t.length; i < n; ++i)
if (e.call(a, t[i], i, t)) return i;
return -1;
}),
(o.findNextWhere = function (t, e, a) {
(void 0 !== a && null !== a) || (a = -1);
for (var i = a + 1; i < t.length; i++) {
var n = t[i];
if (e(n)) return n;
}
}),
(o.findPreviousWhere = function (t, e, a) {
(void 0 !== a && null !== a) || (a = t.length);
for (var i = a - 1; i >= 0; i--) {
var n = t[i];
if (e(n)) return n;
}
}),
(o.inherits = function (t) {
var e = this,
a =
t && t.hasOwnProperty("constructor")
? t.constructor
: function () {
return e.apply(this, arguments);
},
i = function () {
this.constructor = a;
};
return (
(i.prototype = e.prototype),
(a.prototype = new i()),
(a.extend = o.inherits),
t && o.extend(a.prototype, t),
(a.__super__ = e.prototype),
a
);
}),
(o.noop = function () {}),
(o.uid = (function () {
var t = 0;
return function () {
return t++;
};
})()),
(o.isNumber = function (t) {
return !isNaN(parseFloat(t)) && isFinite(t);
}),
(o.almostEquals = function (t, e, a) {
return Math.abs(t - e) < a;
}),
(o.almostWhole = function (t, e) {
var a = Math.round(t);
return a - e < t && a + e > t;
}),
(o.max = function (t) {
return t.reduce(function (t, e) {
return isNaN(e) ? t : Math.max(t, e);
}, Number.NEGATIVE_INFINITY);
}),
(o.min = function (t) {
return t.reduce(function (t, e) {
return isNaN(e) ? t : Math.min(t, e);
}, Number.POSITIVE_INFINITY);
}),
(o.sign = Math.sign
? function (t) {
return Math.sign(t);
}
: function (t) {
return (t = +t), 0 === t || isNaN(t) ? t : t > 0 ? 1 : -1;
}),
(o.log10 = Math.log10
? function (t) {
return Math.log10(t);
}
: function (t) {
return Math.log(t) / Math.LN10;
}),
(o.toRadians = function (t) {
return t * (Math.PI / 180);
}),
(o.toDegrees = function (t) {
return t * (180 / Math.PI);
}),
(o.getAngleFromPoint = function (t, e) {
var a = e.x - t.x,
i = e.y - t.y,
n = Math.sqrt(a * a + i * i),
o = Math.atan2(i, a);
return (
o < -0.5 * Math.PI && (o += 2 * Math.PI),
{ angle: o, distance: n }
);
}),
(o.distanceBetweenPoints = function (t, e) {
return Math.sqrt(
Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)
);
}),
(o.aliasPixel = function (t) {
return t % 2 === 0 ? 0 : 0.5;
}),
(o.splineCurve = function (t, e, a, i) {
var n = t.skip ? e : t,
o = e,
r = a.skip ? e : a,
s = Math.sqrt(
Math.pow(o.x - n.x, 2) + Math.pow(o.y - n.y, 2)
),
l = Math.sqrt(
Math.pow(r.x - o.x, 2) + Math.pow(r.y - o.y, 2)
),
u = s / (s + l),
d = l / (s + l);
(u = isNaN(u) ? 0 : u), (d = isNaN(d) ? 0 : d);
var c = i * u,
h = i * d;
return {
previous: {
x: o.x - c * (r.x - n.x),
y: o.y - c * (r.y - n.y),
},
next: { x: o.x + h * (r.x - n.x), y: o.y + h * (r.y - n.y) },
};
}),
(o.EPSILON = Number.EPSILON || 1e-14),
(o.splineCurveMonotone = function (t) {
var e,
a,
i,
n,
r = (t || []).map(function (t) {
return { model: t._model, deltaK: 0, mK: 0 };
}),
s = r.length;
for (e = 0; e < s; ++e)
if (((i = r[e]), !i.model.skip)) {
if (
((a = e > 0 ? r[e - 1] : null),
(n = e < s - 1 ? r[e + 1] : null),
n && !n.model.skip)
) {
var l = n.model.x - i.model.x;
i.deltaK = 0 !== l ? (n.model.y - i.model.y) / l : 0;
}
!a || a.model.skip
? (i.mK = i.deltaK)
: !n || n.model.skip
? (i.mK = a.deltaK)
: this.sign(a.deltaK) !== this.sign(i.deltaK)
? (i.mK = 0)
: (i.mK = (a.deltaK + i.deltaK) / 2);
}
var u, d, c, h;
for (e = 0; e < s - 1; ++e)
(i = r[e]),
(n = r[e + 1]),
i.model.skip ||
n.model.skip ||
(o.almostEquals(i.deltaK, 0, this.EPSILON)
? (i.mK = n.mK = 0)
: ((u = i.mK / i.deltaK),
(d = n.mK / i.deltaK),
(h = Math.pow(u, 2) + Math.pow(d, 2)),
h <= 9 ||
((c = 3 / Math.sqrt(h)),
(i.mK = u * c * i.deltaK),
(n.mK = d * c * i.deltaK))));
var f;
for (e = 0; e < s; ++e)
(i = r[e]),
i.model.skip ||
((a = e > 0 ? r[e - 1] : null),
(n = e < s - 1 ? r[e + 1] : null),
a &&
!a.model.skip &&
((f = (i.model.x - a.model.x) / 3),
(i.model.controlPointPreviousX = i.model.x - f),
(i.model.controlPointPreviousY = i.model.y - f * i.mK)),
n &&
!n.model.skip &&
((f = (n.model.x - i.model.x) / 3),
(i.model.controlPointNextX = i.model.x + f),
(i.model.controlPointNextY = i.model.y + f * i.mK)));
}),
(o.nextItem = function (t, e, a) {
return a
? e >= t.length - 1
? t[0]
: t[e + 1]
: e >= t.length - 1
? t[t.length - 1]
: t[e + 1];
}),
(o.previousItem = function (t, e, a) {
return a
? e <= 0
? t[t.length - 1]
: t[e - 1]
: e <= 0
? t[0]
: t[e - 1];
}),
(o.niceNum = function (t, e) {
var a,
i = Math.floor(o.log10(t)),
n = t / Math.pow(10, i);
return (
(a = e
? n < 1.5
? 1
: n < 3
? 2
: n < 7
? 5
: 10
: n <= 1
? 1
: n <= 2
? 2
: n <= 5
? 5
: 10),
a * Math.pow(10, i)
);
});
var r = (o.easingEffects = {
linear: function (t) {
return t;
},
easeInQuad: function (t) {
return t * t;
},
easeOutQuad: function (t) {
return -1 * t * (t - 2);
},
easeInOutQuad: function (t) {
return (t /= 0.5) < 1
? 0.5 * t * t
: -0.5 * (--t * (t - 2) - 1);
},
easeInCubic: function (t) {
return t * t * t;
},
easeOutCubic: function (t) {
return 1 * ((t = t / 1 - 1) * t * t + 1);
},
easeInOutCubic: function (t) {
return (t /= 0.5) < 1
? 0.5 * t * t * t
: 0.5 * ((t -= 2) * t * t + 2);
},
easeInQuart: function (t) {
return t * t * t * t;
},
easeOutQuart: function (t) {
return -1 * ((t = t / 1 - 1) * t * t * t - 1);
},
easeInOutQuart: function (t) {
return (t /= 0.5) < 1
? 0.5 * t * t * t * t
: -0.5 * ((t -= 2) * t * t * t - 2);
},
easeInQuint: function (t) {
return 1 * (t /= 1) * t * t * t * t;
},
easeOutQuint: function (t) {
return 1 * ((t = t / 1 - 1) * t * t * t * t + 1);
},
easeInOutQuint: function (t) {
return (t /= 0.5) < 1
? 0.5 * t * t * t * t * t
: 0.5 * ((t -= 2) * t * t * t * t + 2);
},
easeInSine: function (t) {
return -1 * Math.cos((t / 1) * (Math.PI / 2)) + 1;
},
easeOutSine: function (t) {
return 1 * Math.sin((t / 1) * (Math.PI / 2));
},
easeInOutSine: function (t) {
return -0.5 * (Math.cos((Math.PI * t) / 1) - 1);
},
easeInExpo: function (t) {
return 0 === t ? 1 : 1 * Math.pow(2, 10 * (t / 1 - 1));
},
easeOutExpo: function (t) {
return 1 === t ? 1 : 1 * (-Math.pow(2, (-10 * t) / 1) + 1);
},
easeInOutExpo: function (t) {
return 0 === t
? 0
: 1 === t
? 1
: (t /= 0.5) < 1
? 0.5 * Math.pow(2, 10 * (t - 1))
: 0.5 * (-Math.pow(2, -10 * --t) + 2);
},
easeInCirc: function (t) {
return t >= 1 ? t : -1 * (Math.sqrt(1 - (t /= 1) * t) - 1);
},
easeOutCirc: function (t) {
return 1 * Math.sqrt(1 - (t = t / 1 - 1) * t);
},
easeInOutCirc: function (t) {
return (t /= 0.5) < 1
? -0.5 * (Math.sqrt(1 - t * t) - 1)
: 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);
},
easeInElastic: function (t) {
var e = 1.70158,
a = 0,
i = 1;
return 0 === t
? 0
: 1 === (t /= 1)
? 1
: (a || (a = 0.3),
i < Math.abs(1)
? ((i = 1), (e = a / 4))
: (e = (a / (2 * Math.PI)) * Math.asin(1 / i)),
-(
i *
Math.pow(2, 10 * (t -= 1)) *
Math.sin(((1 * t - e) * (2 * Math.PI)) / a)
));
},
easeOutElastic: function (t) {
var e = 1.70158,
a = 0,
i = 1;
return 0 === t
? 0
: 1 === (t /= 1)
? 1
: (a || (a = 0.3),
i < Math.abs(1)
? ((i = 1), (e = a / 4))
: (e = (a / (2 * Math.PI)) * Math.asin(1 / i)),
i *
Math.pow(2, -10 * t) *
Math.sin(((1 * t - e) * (2 * Math.PI)) / a) +
1);
},
easeInOutElastic: function (t) {
var e = 1.70158,
a = 0,
i = 1;
return 0 === t
? 0
: 2 === (t /= 0.5)
? 1
: (a || (a = 1 * (0.3 * 1.5)),
i < Math.abs(1)
? ((i = 1), (e = a / 4))
: (e = (a / (2 * Math.PI)) * Math.asin(1 / i)),
t < 1
? -0.5 *
(i *
Math.pow(2, 10 * (t -= 1)) *
Math.sin(((1 * t - e) * (2 * Math.PI)) / a))
: i *
Math.pow(2, -10 * (t -= 1)) *
Math.sin(((1 * t - e) * (2 * Math.PI)) / a) *
0.5 +
1);
},
easeInBack: function (t) {
var e = 1.70158;
return 1 * (t /= 1) * t * ((e + 1) * t - e);
},
easeOutBack: function (t) {
var e = 1.70158;
return 1 * ((t = t / 1 - 1) * t * ((e + 1) * t + e) + 1);
},
easeInOutBack: function (t) {
var e = 1.70158;
return (t /= 0.5) < 1
? 0.5 * (t * t * (((e *= 1.525) + 1) * t - e))
: 0.5 * ((t -= 2) * t * (((e *= 1.525) + 1) * t + e) + 2);
},
easeInBounce: function (t) {
return 1 - r.easeOutBounce(1 - t);
},
easeOutBounce: function (t) {
return (t /= 1) < 1 / 2.75
? 1 * (7.5625 * t * t)
: t < 2 / 2.75
? 1 * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75)
: t < 2.5 / 2.75
? 1 * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375)
: 1 * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375);
},
easeInOutBounce: function (t) {
return t < 0.5
? 0.5 * r.easeInBounce(2 * t)
: 0.5 * r.easeOutBounce(2 * t - 1) + 0.5;
},
});
(o.requestAnimFrame = (function () {
return (
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (t) {
return window.setTimeout(t, 1e3 / 60);
}
);
})()),
(o.getRelativePosition = function (t, e) {
var a,
i,
n = t.originalEvent || t,
r = t.currentTarget || t.srcElement,
s = r.getBoundingClientRect(),
l = n.touches;
l && l.length > 0
? ((a = l[0].clientX), (i = l[0].clientY))
: ((a = n.clientX), (i = n.clientY));
var u = parseFloat(o.getStyle(r, "padding-left")),
d = parseFloat(o.getStyle(r, "padding-top")),
c = parseFloat(o.getStyle(r, "padding-right")),
h = parseFloat(o.getStyle(r, "padding-bottom")),
f = s.right - s.left - u - c,
g = s.bottom - s.top - d - h;
return (
(a = Math.round(
(((a - s.left - u) / f) * r.width) /
e.currentDevicePixelRatio
)),
(i = Math.round(
(((i - s.top - d) / g) * r.height) /
e.currentDevicePixelRatio
)),
{ x: a, y: i }
);
}),
(o.addEvent = function (t, e, a) {
t.addEventListener
? t.addEventListener(e, a)
: t.attachEvent
? t.attachEvent("on" + e, a)
: (t["on" + e] = a);
}),
(o.removeEvent = function (t, e, a) {
t.removeEventListener
? t.removeEventListener(e, a, !1)
: t.detachEvent
? t.detachEvent("on" + e, a)
: (t["on" + e] = o.noop);
}),
(o.getConstraintWidth = function (t) {
return n(t, "max-width", "clientWidth");
}),
(o.getConstraintHeight = function (t) {
return n(t, "max-height", "clientHeight");
}),
(o.getMaximumWidth = function (t) {
var e = t.parentNode,
a = parseInt(o.getStyle(e, "padding-left"), 10),
i = parseInt(o.getStyle(e, "padding-right"), 10),
n = e.clientWidth - a - i,
r = o.getConstraintWidth(t);
return isNaN(r) ? n : Math.min(n, r);
}),
(o.getMaximumHeight = function (t) {
var e = t.parentNode,
a = parseInt(o.getStyle(e, "padding-top"), 10),
i = parseInt(o.getStyle(e, "padding-bottom"), 10),
n = e.clientHeight - a - i,
r = o.getConstraintHeight(t);
return isNaN(r) ? n : Math.min(n, r);
}),
(o.getStyle = function (t, e) {
return t.currentStyle
? t.currentStyle[e]
: document.defaultView
.getComputedStyle(t, null)
.getPropertyValue(e);
}),
(o.retinaScale = function (t) {
var e = (t.currentDevicePixelRatio =
window.devicePixelRatio || 1);
if (1 !== e) {
var a = t.canvas,
i = t.height,
n = t.width;
(a.height = i * e),
(a.width = n * e),
t.ctx.scale(e, e),
(a.style.height = i + "px"),
(a.style.width = n + "px");
}
}),
(o.clear = function (t) {
t.ctx.clearRect(0, 0, t.width, t.height);
}),
(o.fontString = function (t, e, a) {
return e + " " + t + "px " + a;
}),
(o.longestText = function (t, e, a, i) {
i = i || {};
var n = (i.data = i.data || {}),
r = (i.garbageCollect = i.garbageCollect || []);
i.font !== e &&
((n = i.data = {}),
(r = i.garbageCollect = []),
(i.font = e)),
(t.font = e);
var s = 0;
o.each(a, function (e) {
void 0 !== e && null !== e && o.isArray(e) !== !0
? (s = o.measureText(t, n, r, s, e))
: o.isArray(e) &&
o.each(e, function (e) {
void 0 === e ||
null === e ||
o.isArray(e) ||
(s = o.measureText(t, n, r, s, e));
});
});
var l = r.length / 2;
if (l > a.length) {
for (var u = 0; u < l; u++) delete n[r[u]];
r.splice(0, l);
}
return s;
}),
(o.measureText = function (t, e, a, i, n) {
var o = e[n];
return (
o || ((o = e[n] = t.measureText(n).width), a.push(n)),
o > i && (i = o),
i
);
}),
(o.numberOfLabelLines = function (t) {
var e = 1;
return (
o.each(t, function (t) {
o.isArray(t) && t.length > e && (e = t.length);
}),
e
);
}),
(o.drawRoundedRectangle = function (t, e, a, i, n, o) {
t.beginPath(),
t.moveTo(e + o, a),
t.lineTo(e + i - o, a),
t.quadraticCurveTo(e + i, a, e + i, a + o),
t.lineTo(e + i, a + n - o),
t.quadraticCurveTo(e + i, a + n, e + i - o, a + n),
t.lineTo(e + o, a + n),
t.quadraticCurveTo(e, a + n, e, a + n - o),
t.lineTo(e, a + o),
t.quadraticCurveTo(e, a, e + o, a),
t.closePath();
}),
(o.color = function (e) {
return i
? i(
e instanceof CanvasGradient
? t.defaults.global.defaultColor
: e
)
: (console.error("Color.js not found!"), e);
}),
(o.isArray = Array.isArray
? function (t) {
return Array.isArray(t);
}
: function (t) {
return (
"[object Array]" === Object.prototype.toString.call(t)
);
}),
(o.arrayEquals = function (t, e) {
var a, i, n, r;
if (!t || !e || t.length !== e.length) return !1;
for (a = 0, i = t.length; a < i; ++a)
if (
((n = t[a]),
(r = e[a]),
n instanceof Array && r instanceof Array)
) {
if (!o.arrayEquals(n, r)) return !1;
} else if (n !== r) return !1;
return !0;
}),
(o.callCallback = function (t, e, a) {
t && "function" == typeof t.call && t.apply(a, e);
}),
(o.getHoverColor = function (t) {
return t instanceof CanvasPattern
? t
: o.color(t).saturate(0.5).darken(0.1).rgbString();
});
};
},
{ 3: 3 },
],
27: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(t, e) {
return t.native
? { x: t.x, y: t.y }
: r.getRelativePosition(t, e);
}
function a(t, e) {
var a,
i,
n,
o,
r,
s = t.data.datasets;
for (i = 0, o = s.length; i < o; ++i)
if (t.isDatasetVisible(i))
for (
a = t.getDatasetMeta(i), n = 0, r = a.data.length;
n < r;
++n
) {
var l = a.data[n];
l._view.skip || e(l);
}
}
function i(t, e) {
var i = [];
return (
a(t, function (t) {
t.inRange(e.x, e.y) && i.push(t);
}),
i
);
}
function n(t, e, i, n) {
var o = Number.POSITIVE_INFINITY,
s = [];
return (
n || (n = r.distanceBetweenPoints),
a(t, function (t) {
if (!i || t.inRange(e.x, e.y)) {
var a = t.getCenterPoint(),
r = n(e, a);
r < o ? ((s = [t]), (o = r)) : r === o && s.push(t);
}
}),
s
);
}
function o(t, a, o) {
var r = e(a, t.chart),
s = function (t, e) {
return Math.abs(t.x - e.x);
},
l = o.intersect ? i(t, r) : n(t, r, !1, s),
u = [];
return l.length
? (t.data.datasets.forEach(function (e, a) {
if (t.isDatasetVisible(a)) {
var i = t.getDatasetMeta(a),
n = i.data[l[0]._index];
n && !n._view.skip && u.push(n);
}
}),
u)
: [];
}
var r = t.helpers;
t.Interaction = {
modes: {
single: function (t, i) {
var n = e(i, t.chart),
o = [];
return (
a(t, function (t) {
if (t.inRange(n.x, n.y)) return o.push(t), o;
}),
o.slice(0, 1)
);
},
label: o,
index: o,
dataset: function (t, a, o) {
var r = e(a, t.chart),
s = o.intersect ? i(t, r) : n(t, r, !1);
return (
s.length > 0 &&
(s = t.getDatasetMeta(s[0]._datasetIndex).data),
s
);
},
"x-axis": function (t, e) {
return o(t, e, !0);
},
point: function (t, a) {
var n = e(a, t.chart);
return i(t, n);
},
nearest: function (t, a, i) {
var o = e(a, t.chart),
r = n(t, o, i.intersect);
return (
r.length > 1 &&
r.sort(function (t, e) {
var a = t.getArea(),
i = e.getArea(),
n = a - i;
return (
0 === n && (n = t._datasetIndex - e._datasetIndex), n
);
}),
r.slice(0, 1)
);
},
x: function (t, i, n) {
var o = e(i, t.chart),
r = [],
s = !1;
return (
a(t, function (t) {
t.inXRange(o.x) && r.push(t),
t.inRange(o.x, o.y) && (s = !0);
}),
n.intersect && !s && (r = []),
r
);
},
y: function (t, i, n) {
var o = e(i, t.chart),
r = [],
s = !1;
return (
a(t, function (t) {
t.inYRange(o.y) && r.push(t),
t.inRange(o.x, o.y) && (s = !0);
}),
n.intersect && !s && (r = []),
r
);
},
},
};
};
},
{},
],
28: [
function (t, e, a) {
"use strict";
e.exports = function () {
var t = function (e, a) {
return (
(this.controller = new t.Controller(e, a, this)),
this.controller
);
};
return (
(t.defaults = {
global: {
responsive: !0,
responsiveAnimationDuration: 0,
maintainAspectRatio: !0,
events: [
"mousemove",
"mouseout",
"click",
"touchstart",
"touchmove",
],
hover: {
onHover: null,
mode: "nearest",
intersect: !0,
animationDuration: 400,
},
onClick: null,
defaultColor: "rgba(0,0,0,0.1)",
defaultFontColor: "#666",
defaultFontFamily:
"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
defaultFontSize: 12,
defaultFontStyle: "normal",
showLines: !0,
elements: {},
legendCallback: function (t) {
var e = [];
e.push('<ul class="' + t.id + '-legend">');
for (var a = 0; a < t.data.datasets.length; a++)
e.push(
'<li><span style="background-color:' +
t.data.datasets[a].backgroundColor +
'"></span>'
),
t.data.datasets[a].label &&
e.push(t.data.datasets[a].label),
e.push("</li>");
return e.push("</ul>"), e.join("");
},
},
}),
(t.Chart = t),
t
);
};
},
{},
],
29: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers;
t.layoutService = {
defaults: {},
addBox: function (t, e) {
t.boxes || (t.boxes = []), t.boxes.push(e);
},
removeBox: function (t, e) {
t.boxes && t.boxes.splice(t.boxes.indexOf(e), 1);
},
update: function (t, a, i) {
function n(t) {
var e,
a = t.isHorizontal();
a
? ((e = t.update(t.options.fullWidth ? x : C, w)),
(I -= e.height))
: ((e = t.update(M, S)), (C -= e.width)),
D.push({ horizontal: a, minSize: e, box: t });
}
function o(t) {
var a = e.findNextWhere(D, function (e) {
return e.box === t;
});
if (a)
if (t.isHorizontal()) {
var i = {
left: Math.max(F, A),
right: Math.max(V, T),
top: 0,
bottom: 0,
};
t.update(t.options.fullWidth ? x : C, y / 2, i);
} else t.update(a.minSize.width, I);
}
function r(t) {
var a = e.findNextWhere(D, function (e) {
return e.box === t;
}),
i = { left: 0, right: 0, top: R, bottom: O };
a && t.update(a.minSize.width, I, i);
}
function s(t) {
t.isHorizontal()
? ((t.left = t.options.fullWidth ? d : F),
(t.right = t.options.fullWidth ? a - c : F + C),
(t.top = E),
(t.bottom = E + t.height),
(E = t.bottom))
: ((t.left = N),
(t.right = N + t.width),
(t.top = R),
(t.bottom = R + I),
(N = t.right));
}
if (t) {
var l = t.options.layout,
u = l ? l.padding : null,
d = 0,
c = 0,
h = 0,
f = 0;
isNaN(u)
? ((d = u.left || 0),
(c = u.right || 0),
(h = u.top || 0),
(f = u.bottom || 0))
: ((d = u), (c = u), (h = u), (f = u));
var g = e.where(t.boxes, function (t) {
return "left" === t.options.position;
}),
p = e.where(t.boxes, function (t) {
return "right" === t.options.position;
}),
m = e.where(t.boxes, function (t) {
return "top" === t.options.position;
}),
v = e.where(t.boxes, function (t) {
return "bottom" === t.options.position;
}),
b = e.where(t.boxes, function (t) {
return "chartArea" === t.options.position;
});
m.sort(function (t, e) {
return (
(e.options.fullWidth ? 1 : 0) -
(t.options.fullWidth ? 1 : 0)
);
}),
v.sort(function (t, e) {
return (
(t.options.fullWidth ? 1 : 0) -
(e.options.fullWidth ? 1 : 0)
);
});
var x = a - d - c,
y = i - h - f,
k = x / 2,
S = y / 2,
M = (a - k) / (g.length + p.length),
w = (i - S) / (m.length + v.length),
C = x,
I = y,
D = [];
e.each(g.concat(p, m, v), n);
var A = 0,
T = 0,
P = 0,
_ = 0;
e.each(m.concat(v), function (t) {
if (t.getPadding) {
var e = t.getPadding();
(A = Math.max(A, e.left)), (T = Math.max(T, e.right));
}
}),
e.each(g.concat(p), function (t) {
if (t.getPadding) {
var e = t.getPadding();
(P = Math.max(P, e.top)), (_ = Math.max(_, e.bottom));
}
});
var F = d,
V = c,
R = h,
O = f;
e.each(g.concat(p), o),
e.each(g, function (t) {
F += t.width;
}),
e.each(p, function (t) {
V += t.width;
}),
e.each(m.concat(v), o),
e.each(m, function (t) {
R += t.height;
}),
e.each(v, function (t) {
O += t.height;
}),
e.each(g.concat(p), r),
(F = d),
(V = c),
(R = h),
(O = f),
e.each(g, function (t) {
F += t.width;
}),
e.each(p, function (t) {
V += t.width;
}),
e.each(m, function (t) {
R += t.height;
}),
e.each(v, function (t) {
O += t.height;
});
var L = Math.max(A - F, 0);
(F += L), (V += Math.max(T - V, 0));
var B = Math.max(P - R, 0);
(R += B), (O += Math.max(_ - O, 0));
var z = i - R - O,
W = a - F - V;
(W === C && z === I) ||
(e.each(g, function (t) {
t.height = z;
}),
e.each(p, function (t) {
t.height = z;
}),
e.each(m, function (t) {
t.options.fullWidth || (t.width = W);
}),
e.each(v, function (t) {
t.options.fullWidth || (t.width = W);
}),
(I = z),
(C = W));
var N = d + L,
E = h + B;
e.each(g.concat(m), s),
(N += C),
(E += I),
e.each(p, s),
e.each(v, s),
(t.chartArea = {
left: F,
top: R,
right: F + C,
bottom: R + I,
}),
e.each(b, function (e) {
(e.left = t.chartArea.left),
(e.top = t.chartArea.top),
(e.right = t.chartArea.right),
(e.bottom = t.chartArea.bottom),
e.update(C, I);
});
}
},
};
};
},
{},
],
30: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(t, e) {
return t.usePointStyle ? e * Math.SQRT2 : t.boxWidth;
}
function a(e, a) {
var i = new t.Legend({ ctx: e.chart.ctx, options: a, chart: e });
(e.legend = i), t.layoutService.addBox(e, i);
}
var i = t.helpers,
n = i.noop;
(t.defaults.global.legend = {
display: !0,
position: "top",
fullWidth: !0,
reverse: !1,
onClick: function (t, e) {
var a = e.datasetIndex,
i = this.chart,
n = i.getDatasetMeta(a);
(n.hidden =
null === n.hidden ? !i.data.datasets[a].hidden : null),
i.update();
},
onHover: null,
labels: {
boxWidth: 40,
padding: 10,
generateLabels: function (t) {
var e = t.data;
return i.isArray(e.datasets)
? e.datasets.map(function (e, a) {
return {
text: e.label,
fillStyle: i.isArray(e.backgroundColor)
? e.backgroundColor[0]
: e.backgroundColor,
hidden: !t.isDatasetVisible(a),
lineCap: e.borderCapStyle,
lineDash: e.borderDash,
lineDashOffset: e.borderDashOffset,
lineJoin: e.borderJoinStyle,
lineWidth: e.borderWidth,
strokeStyle: e.borderColor,
pointStyle: e.pointStyle,
datasetIndex: a,
};
}, this)
: [];
},
},
}),
(t.Legend = t.Element.extend({
initialize: function (t) {
i.extend(this, t),
(this.legendHitBoxes = []),
(this.doughnutMode = !1);
},
beforeUpdate: n,
update: function (t, e, a) {
var i = this;
return (
i.beforeUpdate(),
(i.maxWidth = t),
(i.maxHeight = e),
(i.margins = a),
i.beforeSetDimensions(),
i.setDimensions(),
i.afterSetDimensions(),
i.beforeBuildLabels(),
i.buildLabels(),
i.afterBuildLabels(),
i.beforeFit(),
i.fit(),
i.afterFit(),
i.afterUpdate(),
i.minSize
);
},
afterUpdate: n,
beforeSetDimensions: n,
setDimensions: function () {
var t = this;
t.isHorizontal()
? ((t.width = t.maxWidth),
(t.left = 0),
(t.right = t.width))
: ((t.height = t.maxHeight),
(t.top = 0),
(t.bottom = t.height)),
(t.paddingLeft = 0),
(t.paddingTop = 0),
(t.paddingRight = 0),
(t.paddingBottom = 0),
(t.minSize = { width: 0, height: 0 });
},
afterSetDimensions: n,
beforeBuildLabels: n,
buildLabels: function () {
var t = this,
e = t.options.labels,
a = e.generateLabels.call(t, t.chart);
e.filter &&
(a = a.filter(function (a) {
return e.filter(a, t.chart.data);
})),
t.options.reverse && a.reverse(),
(t.legendItems = a);
},
afterBuildLabels: n,
beforeFit: n,
fit: function () {
var a = this,
n = a.options,
o = n.labels,
r = n.display,
s = a.ctx,
l = t.defaults.global,
u = i.getValueOrDefault,
d = u(o.fontSize, l.defaultFontSize),
c = u(o.fontStyle, l.defaultFontStyle),
h = u(o.fontFamily, l.defaultFontFamily),
f = i.fontString(d, c, h),
g = (a.legendHitBoxes = []),
p = a.minSize,
m = a.isHorizontal();
if (
(m
? ((p.width = a.maxWidth), (p.height = r ? 10 : 0))
: ((p.width = r ? 10 : 0), (p.height = a.maxHeight)),
r)
)
if (((s.font = f), m)) {
var v = (a.lineWidths = [0]),
b = a.legendItems.length ? d + o.padding : 0;
(s.textAlign = "left"),
(s.textBaseline = "top"),
i.each(a.legendItems, function (t, i) {
var n = e(o, d),
r = n + d / 2 + s.measureText(t.text).width;
v[v.length - 1] + r + o.padding >= a.width &&
((b += d + o.padding), (v[v.length] = a.left)),
(g[i] = { left: 0, top: 0, width: r, height: d }),
(v[v.length - 1] += r + o.padding);
}),
(p.height += b);
} else {
var x = o.padding,
y = (a.columnWidths = []),
k = o.padding,
S = 0,
M = 0,
w = d + x;
i.each(a.legendItems, function (t, a) {
var i = e(o, d),
n = i + d / 2 + s.measureText(t.text).width;
M + w > p.height &&
((k += S + o.padding), y.push(S), (S = 0), (M = 0)),
(S = Math.max(S, n)),
(M += w),
(g[a] = { left: 0, top: 0, width: n, height: d });
}),
(k += S),
y.push(S),
(p.width += k);
}
(a.width = p.width), (a.height = p.height);
},
afterFit: n,
isHorizontal: function () {
return (
"top" === this.options.position ||
"bottom" === this.options.position
);
},
draw: function () {
var a = this,
n = a.options,
o = n.labels,
r = t.defaults.global,
s = r.elements.line,
l = a.width,
u = a.lineWidths;
if (n.display) {
var d,
c = a.ctx,
h = i.getValueOrDefault,
f = h(o.fontColor, r.defaultFontColor),
g = h(o.fontSize, r.defaultFontSize),
p = h(o.fontStyle, r.defaultFontStyle),
m = h(o.fontFamily, r.defaultFontFamily),
v = i.fontString(g, p, m);
(c.textAlign = "left"),
(c.textBaseline = "top"),
(c.lineWidth = 0.5),
(c.strokeStyle = f),
(c.fillStyle = f),
(c.font = v);
var b = e(o, g),
x = a.legendHitBoxes,
y = function (e, a, i) {
if (!(isNaN(b) || b <= 0)) {
c.save(),
(c.fillStyle = h(i.fillStyle, r.defaultColor)),
(c.lineCap = h(i.lineCap, s.borderCapStyle)),
(c.lineDashOffset = h(
i.lineDashOffset,
s.borderDashOffset
)),
(c.lineJoin = h(i.lineJoin, s.borderJoinStyle)),
(c.lineWidth = h(i.lineWidth, s.borderWidth)),
(c.strokeStyle = h(i.strokeStyle, r.defaultColor));
var o = 0 === h(i.lineWidth, s.borderWidth);
if (
(c.setLineDash &&
c.setLineDash(h(i.lineDash, s.borderDash)),
n.labels && n.labels.usePointStyle)
) {
var l = (g * Math.SQRT2) / 2,
u = l / Math.SQRT2,
d = e + u,
f = a + u;
t.canvasHelpers.drawPoint(c, i.pointStyle, l, d, f);
} else
o || c.strokeRect(e, a, b, g),
c.fillRect(e, a, b, g);
c.restore();
}
},
k = function (t, e, a, i) {
c.fillText(a.text, b + g / 2 + t, e),
a.hidden &&
(c.beginPath(),
(c.lineWidth = 2),
c.moveTo(b + g / 2 + t, e + g / 2),
c.lineTo(b + g / 2 + t + i, e + g / 2),
c.stroke());
},
S = a.isHorizontal();
d = S
? {
x: a.left + (l - u[0]) / 2,
y: a.top + o.padding,
line: 0,
}
: {
x: a.left + o.padding,
y: a.top + o.padding,
line: 0,
};
var M = g + o.padding;
i.each(a.legendItems, function (t, e) {
var i = c.measureText(t.text).width,
n = b + g / 2 + i,
r = d.x,
s = d.y;
S
? r + n >= l &&
((s = d.y += M),
d.line++,
(r = d.x = a.left + (l - u[d.line]) / 2))
: s + M > a.bottom &&
((r = d.x = r + a.columnWidths[d.line] + o.padding),
(s = d.y = a.top + o.padding),
d.line++),
y(r, s, t),
(x[e].left = r),
(x[e].top = s),
k(r, s, t, i),
S ? (d.x += n + o.padding) : (d.y += M);
});
}
},
handleEvent: function (t) {
var e = this,
a = e.options,
i = "mouseup" === t.type ? "click" : t.type,
n = !1;
if ("mousemove" === i) {
if (!a.onHover) return;
} else {
if ("click" !== i) return;
if (!a.onClick) return;
}
var o = t.x,
r = t.y;
if (
o >= e.left &&
o <= e.right &&
r >= e.top &&
r <= e.bottom
)
for (var s = e.legendHitBoxes, l = 0; l < s.length; ++l) {
var u = s[l];
if (
o >= u.left &&
o <= u.left + u.width &&
r >= u.top &&
r <= u.top + u.height
) {
if ("click" === i) {
a.onClick.call(e, t.native, e.legendItems[l]),
(n = !0);
break;
}
if ("mousemove" === i) {
a.onHover.call(e, t.native, e.legendItems[l]),
(n = !0);
break;
}
}
}
return n;
},
})),
t.plugins.register({
beforeInit: function (t) {
var e = t.options.legend;
e && a(t, e);
},
beforeUpdate: function (e) {
var n = e.options.legend;
n
? ((n = i.configMerge(t.defaults.global.legend, n)),
e.legend ? (e.legend.options = n) : a(e, n))
: (t.layoutService.removeBox(e, e.legend), delete e.legend);
},
afterEvent: function (t, e) {
var a = t.legend;
a && a.handleEvent(e);
},
});
};
},
{},
],
31: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers;
(t.defaults.global.plugins = {}),
(t.plugins = {
_plugins: [],
_cacheId: 0,
register: function (t) {
var e = this._plugins;
[].concat(t).forEach(function (t) {
e.indexOf(t) === -1 && e.push(t);
}),
this._cacheId++;
},
unregister: function (t) {
var e = this._plugins;
[].concat(t).forEach(function (t) {
var a = e.indexOf(t);
a !== -1 && e.splice(a, 1);
}),
this._cacheId++;
},
clear: function () {
(this._plugins = []), this._cacheId++;
},
count: function () {
return this._plugins.length;
},
getAll: function () {
return this._plugins;
},
notify: function (t, e, a) {
var i,
n,
o,
r,
s,
l = this.descriptors(t),
u = l.length;
for (i = 0; i < u; ++i)
if (
((n = l[i]),
(o = n.plugin),
(s = o[e]),
"function" == typeof s &&
((r = [t].concat(a || [])),
r.push(n.options),
s.apply(o, r) === !1))
)
return !1;
return !0;
},
descriptors: function (a) {
var i = a._plugins || (a._plugins = {});
if (i.id === this._cacheId) return i.descriptors;
var n = [],
o = [],
r = (a && a.config) || {},
s = t.defaults.global.plugins,
l = (r.options && r.options.plugins) || {};
return (
this._plugins.concat(r.plugins || []).forEach(function (t) {
var a = n.indexOf(t);
if (a === -1) {
var i = t.id,
r = l[i];
r !== !1 &&
(r === !0 && (r = e.clone(s[i])),
n.push(t),
o.push({ plugin: t, options: r || {} }));
}
}),
(i.descriptors = o),
(i.id = this._cacheId),
o
);
},
}),
(t.pluginService = t.plugins),
(t.PluginBase = e.inherits({}));
};
},
{},
],
32: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(t, e, a) {
return i.isArray(e)
? i.longestText(t, a, e)
: t.measureText(e).width;
}
function a(e) {
var a = i.getValueOrDefault,
n = t.defaults.global,
o = a(e.fontSize, n.defaultFontSize),
r = a(e.fontStyle, n.defaultFontStyle),
s = a(e.fontFamily, n.defaultFontFamily);
return {
size: o,
style: r,
family: s,
font: i.fontString(o, r, s),
};
}
var i = t.helpers;
(t.defaults.scale = {
display: !0,
position: "left",
gridLines: {
display: !0,
color: "rgba(0, 0, 0, 0.1)",
lineWidth: 1,
drawBorder: !0,
drawOnChartArea: !0,
drawTicks: !0,
tickMarkLength: 10,
zeroLineWidth: 1,
zeroLineColor: "rgba(0,0,0,0.25)",
offsetGridLines: !1,
borderDash: [],
borderDashOffset: 0,
},
scaleLabel: { labelString: "", display: !1 },
ticks: {
beginAtZero: !1,
minRotation: 0,
maxRotation: 50,
mirror: !1,
padding: 0,
reverse: !1,
display: !0,
autoSkip: !0,
autoSkipPadding: 0,
labelOffset: 0,
callback: t.Ticks.formatters.values,
},
}),
(t.Scale = t.Element.extend({
getPadding: function () {
var t = this;
return {
left: t.paddingLeft || 0,
top: t.paddingTop || 0,
right: t.paddingRight || 0,
bottom: t.paddingBottom || 0,
};
},
beforeUpdate: function () {
i.callCallback(this.options.beforeUpdate, [this]);
},
update: function (t, e, a) {
var n = this;
return (
n.beforeUpdate(),
(n.maxWidth = t),
(n.maxHeight = e),
(n.margins = i.extend(
{ left: 0, right: 0, top: 0, bottom: 0 },
a
)),
(n.longestTextCache = n.longestTextCache || {}),
n.beforeSetDimensions(),
n.setDimensions(),
n.afterSetDimensions(),
n.beforeDataLimits(),
n.determineDataLimits(),
n.afterDataLimits(),
n.beforeBuildTicks(),
n.buildTicks(),
n.afterBuildTicks(),
n.beforeTickToLabelConversion(),
n.convertTicksToLabels(),
n.afterTickToLabelConversion(),
n.beforeCalculateTickRotation(),
n.calculateTickRotation(),
n.afterCalculateTickRotation(),
n.beforeFit(),
n.fit(),
n.afterFit(),
n.afterUpdate(),
n.minSize
);
},
afterUpdate: function () {
i.callCallback(this.options.afterUpdate, [this]);
},
beforeSetDimensions: function () {
i.callCallback(this.options.beforeSetDimensions, [this]);
},
setDimensions: function () {
var t = this;
t.isHorizontal()
? ((t.width = t.maxWidth),
(t.left = 0),
(t.right = t.width))
: ((t.height = t.maxHeight),
(t.top = 0),
(t.bottom = t.height)),
(t.paddingLeft = 0),
(t.paddingTop = 0),
(t.paddingRight = 0),
(t.paddingBottom = 0);
},
afterSetDimensions: function () {
i.callCallback(this.options.afterSetDimensions, [this]);
},
beforeDataLimits: function () {
i.callCallback(this.options.beforeDataLimits, [this]);
},
determineDataLimits: i.noop,
afterDataLimits: function () {
i.callCallback(this.options.afterDataLimits, [this]);
},
beforeBuildTicks: function () {
i.callCallback(this.options.beforeBuildTicks, [this]);
},
buildTicks: i.noop,
afterBuildTicks: function () {
i.callCallback(this.options.afterBuildTicks, [this]);
},
beforeTickToLabelConversion: function () {
i.callCallback(this.options.beforeTickToLabelConversion, [
this,
]);
},
convertTicksToLabels: function () {
var t = this,
e = t.options.ticks;
t.ticks = t.ticks.map(e.userCallback || e.callback);
},
afterTickToLabelConversion: function () {
i.callCallback(this.options.afterTickToLabelConversion, [
this,
]);
},
beforeCalculateTickRotation: function () {
i.callCallback(this.options.beforeCalculateTickRotation, [
this,
]);
},
calculateTickRotation: function () {
var t = this,
e = t.ctx,
n = t.options.ticks,
o = a(n);
e.font = o.font;
var r = n.minRotation || 0;
if (t.options.display && t.isHorizontal())
for (
var s,
l,
u = i.longestText(
e,
o.font,
t.ticks,
t.longestTextCache
),
d = u,
c = t.getPixelForTick(1) - t.getPixelForTick(0) - 6;
d > c && r < n.maxRotation;
) {
var h = i.toRadians(r);
if (
((s = Math.cos(h)),
(l = Math.sin(h)),
l * u > t.maxHeight)
) {
r--;
break;
}
r++, (d = s * u);
}
t.labelRotation = r;
},
afterCalculateTickRotation: function () {
i.callCallback(this.options.afterCalculateTickRotation, [
this,
]);
},
beforeFit: function () {
i.callCallback(this.options.beforeFit, [this]);
},
fit: function () {
var t = this,
n = (t.minSize = { width: 0, height: 0 }),
o = t.options,
r = o.ticks,
s = o.scaleLabel,
l = o.gridLines,
u = o.display,
d = t.isHorizontal(),
c = a(r),
h = 1.5 * a(s).size,
f = o.gridLines.tickMarkLength;
if (
(d
? (n.width = t.isFullWidth()
? t.maxWidth - t.margins.left - t.margins.right
: t.maxWidth)
: (n.width = u && l.drawTicks ? f : 0),
d
? (n.height = u && l.drawTicks ? f : 0)
: (n.height = t.maxHeight),
s.display && u && (d ? (n.height += h) : (n.width += h)),
r.display && u)
) {
var g = i.longestText(
t.ctx,
c.font,
t.ticks,
t.longestTextCache
),
p = i.numberOfLabelLines(t.ticks),
m = 0.5 * c.size;
if (d) {
t.longestLabelWidth = g;
var v = i.toRadians(t.labelRotation),
b = Math.cos(v),
x = Math.sin(v),
y = x * g + c.size * p + m * p;
(n.height = Math.min(t.maxHeight, n.height + y)),
(t.ctx.font = c.font);
var k = t.ticks[0],
S = e(t.ctx, k, c.font),
M = t.ticks[t.ticks.length - 1],
w = e(t.ctx, M, c.font);
0 !== t.labelRotation
? ((t.paddingLeft =
"bottom" === o.position ? b * S + 3 : b * m + 3),
(t.paddingRight =
"bottom" === o.position ? b * m + 3 : b * w + 3))
: ((t.paddingLeft = S / 2 + 3),
(t.paddingRight = w / 2 + 3));
} else
r.mirror ? (g = 0) : (g += t.options.ticks.padding),
(n.width += g),
(t.paddingTop = c.size / 2),
(t.paddingBottom = c.size / 2);
}
t.handleMargins(), (t.width = n.width), (t.height = n.height);
},
handleMargins: function () {
var t = this;
t.margins &&
((t.paddingLeft = Math.max(
t.paddingLeft - t.margins.left,
0
)),
(t.paddingTop = Math.max(t.paddingTop - t.margins.top, 0)),
(t.paddingRight = Math.max(
t.paddingRight - t.margins.right,
0
)),
(t.paddingBottom = Math.max(
t.paddingBottom - t.margins.bottom,
0
)));
},
afterFit: function () {
i.callCallback(this.options.afterFit, [this]);
},
isHorizontal: function () {
return (
"top" === this.options.position ||
"bottom" === this.options.position
);
},
isFullWidth: function () {
return this.options.fullWidth;
},
getRightValue: function (t) {
return null === t || "undefined" == typeof t
? NaN
: "number" != typeof t || isFinite(t)
? "object" == typeof t
? t instanceof Date || t.isValid
? t
: this.getRightValue(this.isHorizontal() ? t.x : t.y)
: t
: NaN;
},
getLabelForIndex: i.noop,
getPixelForValue: i.noop,
getValueForPixel: i.noop,
getPixelForTick: function (t, e) {
var a = this;
if (a.isHorizontal()) {
var i = a.width - (a.paddingLeft + a.paddingRight),
n =
i /
Math.max(
a.ticks.length -
(a.options.gridLines.offsetGridLines ? 0 : 1),
1
),
o = n * t + a.paddingLeft;
e && (o += n / 2);
var r = a.left + Math.round(o);
return (r += a.isFullWidth() ? a.margins.left : 0);
}
var s = a.height - (a.paddingTop + a.paddingBottom);
return a.top + t * (s / (a.ticks.length - 1));
},
getPixelForDecimal: function (t) {
var e = this;
if (e.isHorizontal()) {
var a = e.width - (e.paddingLeft + e.paddingRight),
i = a * t + e.paddingLeft,
n = e.left + Math.round(i);
return (n += e.isFullWidth() ? e.margins.left : 0);
}
return e.top + t * e.height;
},
getBasePixel: function () {
return this.getPixelForValue(this.getBaseValue());
},
getBaseValue: function () {
var t = this,
e = t.min,
a = t.max;
return t.beginAtZero
? 0
: e < 0 && a < 0
? a
: e > 0 && a > 0
? e
: 0;
},
draw: function (e) {
var n = this,
o = n.options;
if (o.display) {
var r,
s,
l = n.ctx,
u = t.defaults.global,
d = o.ticks,
c = o.gridLines,
h = o.scaleLabel,
f = 0 !== n.labelRotation,
g = d.autoSkip,
p = n.isHorizontal();
d.maxTicksLimit && (s = d.maxTicksLimit);
var m = i.getValueOrDefault(
d.fontColor,
u.defaultFontColor
),
v = a(d),
b = c.drawTicks ? c.tickMarkLength : 0,
x = i.getValueOrDefault(c.borderDash, u.borderDash),
y = i.getValueOrDefault(
c.borderDashOffset,
u.borderDashOffset
),
k = i.getValueOrDefault(h.fontColor, u.defaultFontColor),
S = a(h),
M = i.toRadians(n.labelRotation),
w = Math.cos(M),
C = n.longestLabelWidth * w;
l.fillStyle = m;
var I = [];
if (p) {
if (
((r = !1),
f && (C /= 2),
(C + d.autoSkipPadding) * n.ticks.length >
n.width - (n.paddingLeft + n.paddingRight) &&
(r =
1 +
Math.floor(
((C + d.autoSkipPadding) * n.ticks.length) /
(n.width - (n.paddingLeft + n.paddingRight))
)),
s && n.ticks.length > s)
)
for (; !r || n.ticks.length / (r || 1) > s; )
r || (r = 1), (r += 1);
g || (r = !1);
}
var D = "right" === o.position ? n.left : n.right - b,
A = "right" === o.position ? n.left + b : n.right,
T = "bottom" === o.position ? n.top : n.bottom - b,
P = "bottom" === o.position ? n.top + b : n.bottom;
if (
(i.each(n.ticks, function (t, a) {
if (void 0 !== t && null !== t) {
var s = n.ticks.length === a + 1,
l =
(r > 1 && a % r > 0) ||
(a % r === 0 && a + r >= n.ticks.length);
if ((!l || s) && void 0 !== t && null !== t) {
var u, h;
a ===
("undefined" != typeof n.zeroLineIndex
? n.zeroLineIndex
: 0)
? ((u = c.zeroLineWidth), (h = c.zeroLineColor))
: ((u = i.getValueAtIndexOrDefault(
c.lineWidth,
a
)),
(h = i.getValueAtIndexOrDefault(c.color, a)));
var g,
m,
v,
k,
S,
w,
C,
_,
F,
V,
R = "middle",
O = "middle";
if (p) {
"bottom" === o.position
? ((O = f ? "middle" : "top"),
(R = f ? "right" : "center"),
(V = n.top + b))
: ((O = f ? "middle" : "bottom"),
(R = f ? "left" : "center"),
(V = n.bottom - b));
var L = n.getPixelForTick(a) + i.aliasPixel(u);
(F =
n.getPixelForTick(a, c.offsetGridLines) +
d.labelOffset),
(g = v = S = C = L),
(m = T),
(k = P),
(w = e.top),
(_ = e.bottom);
} else {
var B,
z = "left" === o.position,
W = d.padding;
d.mirror
? ((R = z ? "left" : "right"), (B = W))
: ((R = z ? "right" : "left"), (B = b + W)),
(F = z ? n.right - B : n.left + B);
var N = n.getPixelForTick(a);
(N += i.aliasPixel(u)),
(V = n.getPixelForTick(a, c.offsetGridLines)),
(g = D),
(v = A),
(S = e.left),
(C = e.right),
(m = k = w = _ = N);
}
I.push({
tx1: g,
ty1: m,
tx2: v,
ty2: k,
x1: S,
y1: w,
x2: C,
y2: _,
labelX: F,
labelY: V,
glWidth: u,
glColor: h,
glBorderDash: x,
glBorderDashOffset: y,
rotation: -1 * M,
label: t,
textBaseline: O,
textAlign: R,
});
}
}
}),
i.each(I, function (t) {
if (
(c.display &&
(l.save(),
(l.lineWidth = t.glWidth),
(l.strokeStyle = t.glColor),
l.setLineDash &&
(l.setLineDash(t.glBorderDash),
(l.lineDashOffset = t.glBorderDashOffset)),
l.beginPath(),
c.drawTicks &&
(l.moveTo(t.tx1, t.ty1), l.lineTo(t.tx2, t.ty2)),
c.drawOnChartArea &&
(l.moveTo(t.x1, t.y1), l.lineTo(t.x2, t.y2)),
l.stroke(),
l.restore()),
d.display)
) {
l.save(),
l.translate(t.labelX, t.labelY),
l.rotate(t.rotation),
(l.font = v.font),
(l.textBaseline = t.textBaseline),
(l.textAlign = t.textAlign);
var e = t.label;
if (i.isArray(e))
for (var a = 0, n = 0; a < e.length; ++a)
l.fillText("" + e[a], 0, n), (n += 1.5 * v.size);
else l.fillText(e, 0, 0);
l.restore();
}
}),
h.display)
) {
var _,
F,
V = 0;
if (p)
(_ = n.left + (n.right - n.left) / 2),
(F =
"bottom" === o.position
? n.bottom - S.size / 2
: n.top + S.size / 2);
else {
var R = "left" === o.position;
(_ = R ? n.left + S.size / 2 : n.right - S.size / 2),
(F = n.top + (n.bottom - n.top) / 2),
(V = R ? -0.5 * Math.PI : 0.5 * Math.PI);
}
l.save(),
l.translate(_, F),
l.rotate(V),
(l.textAlign = "center"),
(l.textBaseline = "middle"),
(l.fillStyle = k),
(l.font = S.font),
l.fillText(h.labelString, 0, 0),
l.restore();
}
if (c.drawBorder) {
(l.lineWidth = i.getValueAtIndexOrDefault(
c.lineWidth,
0
)),
(l.strokeStyle = i.getValueAtIndexOrDefault(
c.color,
0
));
var O = n.left,
L = n.right,
B = n.top,
z = n.bottom,
W = i.aliasPixel(l.lineWidth);
p
? ((B = z = "top" === o.position ? n.bottom : n.top),
(B += W),
(z += W))
: ((O = L = "left" === o.position ? n.right : n.left),
(O += W),
(L += W)),
l.beginPath(),
l.moveTo(O, B),
l.lineTo(L, z),
l.stroke();
}
}
},
}));
};
},
{},
],
33: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers;
t.scaleService = {
constructors: {},
defaults: {},
registerScaleType: function (t, a, i) {
(this.constructors[t] = a), (this.defaults[t] = e.clone(i));
},
getScaleConstructor: function (t) {
return this.constructors.hasOwnProperty(t)
? this.constructors[t]
: void 0;
},
getScaleDefaults: function (a) {
return this.defaults.hasOwnProperty(a)
? e.scaleMerge(t.defaults.scale, this.defaults[a])
: {};
},
updateScaleDefaults: function (t, a) {
var i = this.defaults;
i.hasOwnProperty(t) && (i[t] = e.extend(i[t], a));
},
addScalesToLayout: function (a) {
e.each(a.scales, function (e) {
t.layoutService.addBox(a, e);
});
},
};
};
},
{},
],
34: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers;
t.Ticks = {
generators: {
linear: function (t, a) {
var i,
n = [];
if (t.stepSize && t.stepSize > 0) i = t.stepSize;
else {
var o = e.niceNum(a.max - a.min, !1);
i = e.niceNum(o / (t.maxTicks - 1), !0);
}
var r = Math.floor(a.min / i) * i,
s = Math.ceil(a.max / i) * i;
t.min &&
t.max &&
t.stepSize &&
e.almostWhole((t.max - t.min) / t.stepSize, i / 1e3) &&
((r = t.min), (s = t.max));
var l = (s - r) / i;
(l = e.almostEquals(l, Math.round(l), i / 1e3)
? Math.round(l)
: Math.ceil(l)),
n.push(void 0 !== t.min ? t.min : r);
for (var u = 1; u < l; ++u) n.push(r + u * i);
return n.push(void 0 !== t.max ? t.max : s), n;
},
logarithmic: function (t, a) {
var i,
n,
o = [],
r = e.getValueOrDefault,
s = r(t.min, Math.pow(10, Math.floor(e.log10(a.min)))),
l = Math.floor(e.log10(a.max)),
u = Math.ceil(a.max / Math.pow(10, l));
0 === s
? ((i = Math.floor(e.log10(a.minNotZero))),
(n = Math.floor(a.minNotZero / Math.pow(10, i))),
o.push(s),
(s = n * Math.pow(10, i)))
: ((i = Math.floor(e.log10(s))),
(n = Math.floor(s / Math.pow(10, i))));
do
o.push(s),
++n,
10 === n && ((n = 1), ++i),
(s = n * Math.pow(10, i));
while (i < l || (i === l && n < u));
var d = r(t.max, s);
return o.push(d), o;
},
},
formatters: {
values: function (t) {
return e.isArray(t) ? t : "" + t;
},
linear: function (t, a, i) {
var n = i.length > 3 ? i[2] - i[1] : i[1] - i[0];
Math.abs(n) > 1 &&
t !== Math.floor(t) &&
(n = t - Math.floor(t));
var o = e.log10(Math.abs(n)),
r = "";
if (0 !== t) {
var s = -1 * Math.floor(o);
(s = Math.max(Math.min(s, 20), 0)), (r = t.toFixed(s));
} else r = "0";
return r;
},
logarithmic: function (t, a, i) {
var n = t / Math.pow(10, Math.floor(e.log10(t)));
return 0 === t
? "0"
: 1 === n ||
2 === n ||
5 === n ||
0 === a ||
a === i.length - 1
? t.toExponential()
: "";
},
},
};
};
},
{},
],
35: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(e, a) {
var i = new t.Title({ ctx: e.chart.ctx, options: a, chart: e });
(e.titleBlock = i), t.layoutService.addBox(e, i);
}
var a = t.helpers;
t.defaults.global.title = {
display: !1,
position: "top",
fullWidth: !0,
fontStyle: "bold",
padding: 10,
text: "",
};
var i = a.noop;
(t.Title = t.Element.extend({
initialize: function (t) {
var e = this;
a.extend(e, t), (e.legendHitBoxes = []);
},
beforeUpdate: i,
update: function (t, e, a) {
var i = this;
return (
i.beforeUpdate(),
(i.maxWidth = t),
(i.maxHeight = e),
(i.margins = a),
i.beforeSetDimensions(),
i.setDimensions(),
i.afterSetDimensions(),
i.beforeBuildLabels(),
i.buildLabels(),
i.afterBuildLabels(),
i.beforeFit(),
i.fit(),
i.afterFit(),
i.afterUpdate(),
i.minSize
);
},
afterUpdate: i,
beforeSetDimensions: i,
setDimensions: function () {
var t = this;
t.isHorizontal()
? ((t.width = t.maxWidth), (t.left = 0), (t.right = t.width))
: ((t.height = t.maxHeight),
(t.top = 0),
(t.bottom = t.height)),
(t.paddingLeft = 0),
(t.paddingTop = 0),
(t.paddingRight = 0),
(t.paddingBottom = 0),
(t.minSize = { width: 0, height: 0 });
},
afterSetDimensions: i,
beforeBuildLabels: i,
buildLabels: i,
afterBuildLabels: i,
beforeFit: i,
fit: function () {
var e = this,
i = a.getValueOrDefault,
n = e.options,
o = t.defaults.global,
r = n.display,
s = i(n.fontSize, o.defaultFontSize),
l = e.minSize;
e.isHorizontal()
? ((l.width = e.maxWidth),
(l.height = r ? s + 2 * n.padding : 0))
: ((l.width = r ? s + 2 * n.padding : 0),
(l.height = e.maxHeight)),
(e.width = l.width),
(e.height = l.height);
},
afterFit: i,
isHorizontal: function () {
var t = this.options.position;
return "top" === t || "bottom" === t;
},
draw: function () {
var e = this,
i = e.ctx,
n = a.getValueOrDefault,
o = e.options,
r = t.defaults.global;
if (o.display) {
var s,
l,
u,
d = n(o.fontSize, r.defaultFontSize),
c = n(o.fontStyle, r.defaultFontStyle),
h = n(o.fontFamily, r.defaultFontFamily),
f = a.fontString(d, c, h),
g = 0,
p = e.top,
m = e.left,
v = e.bottom,
b = e.right;
(i.fillStyle = n(o.fontColor, r.defaultFontColor)),
(i.font = f),
e.isHorizontal()
? ((s = m + (b - m) / 2),
(l = p + (v - p) / 2),
(u = b - m))
: ((s = "left" === o.position ? m + d / 2 : b - d / 2),
(l = p + (v - p) / 2),
(u = v - p),
(g = Math.PI * ("left" === o.position ? -0.5 : 0.5))),
i.save(),
i.translate(s, l),
i.rotate(g),
(i.textAlign = "center"),
(i.textBaseline = "middle"),
i.fillText(o.text, 0, 0, u),
i.restore();
}
},
})),
t.plugins.register({
beforeInit: function (t) {
var a = t.options.title;
a && e(t, a);
},
beforeUpdate: function (i) {
var n = i.options.title;
n
? ((n = a.configMerge(t.defaults.global.title, n)),
i.titleBlock ? (i.titleBlock.options = n) : e(i, n))
: (t.layoutService.removeBox(i, i.titleBlock),
delete i.titleBlock);
},
});
};
},
{},
],
36: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(t, e) {
var a = l.color(t);
return a.alpha(e * a.alpha()).rgbaString();
}
function a(t, e) {
return (
e &&
(l.isArray(e) ? Array.prototype.push.apply(t, e) : t.push(e)),
t
);
}
function i(t) {
var e = t._xScale,
a = t._yScale || t._scale,
i = t._index,
n = t._datasetIndex;
return {
xLabel: e ? e.getLabelForIndex(i, n) : "",
yLabel: a ? a.getLabelForIndex(i, n) : "",
index: i,
datasetIndex: n,
x: t._model.x,
y: t._model.y,
};
}
function n(e) {
var a = t.defaults.global,
i = l.getValueOrDefault;
return {
xPadding: e.xPadding,
yPadding: e.yPadding,
xAlign: e.xAlign,
yAlign: e.yAlign,
bodyFontColor: e.bodyFontColor,
_bodyFontFamily: i(e.bodyFontFamily, a.defaultFontFamily),
_bodyFontStyle: i(e.bodyFontStyle, a.defaultFontStyle),
_bodyAlign: e.bodyAlign,
bodyFontSize: i(e.bodyFontSize, a.defaultFontSize),
bodySpacing: e.bodySpacing,
titleFontColor: e.titleFontColor,
_titleFontFamily: i(e.titleFontFamily, a.defaultFontFamily),
_titleFontStyle: i(e.titleFontStyle, a.defaultFontStyle),
titleFontSize: i(e.titleFontSize, a.defaultFontSize),
_titleAlign: e.titleAlign,
titleSpacing: e.titleSpacing,
titleMarginBottom: e.titleMarginBottom,
footerFontColor: e.footerFontColor,
_footerFontFamily: i(e.footerFontFamily, a.defaultFontFamily),
_footerFontStyle: i(e.footerFontStyle, a.defaultFontStyle),
footerFontSize: i(e.footerFontSize, a.defaultFontSize),
_footerAlign: e.footerAlign,
footerSpacing: e.footerSpacing,
footerMarginTop: e.footerMarginTop,
caretSize: e.caretSize,
cornerRadius: e.cornerRadius,
backgroundColor: e.backgroundColor,
opacity: 0,
legendColorBackground: e.multiKeyBackground,
displayColors: e.displayColors,
};
}
function o(t, e) {
var a = t._chart.ctx,
i = 2 * e.yPadding,
n = 0,
o = e.body,
r = o.reduce(function (t, e) {
return t + e.before.length + e.lines.length + e.after.length;
}, 0);
r += e.beforeBody.length + e.afterBody.length;
var s = e.title.length,
u = e.footer.length,
d = e.titleFontSize,
c = e.bodyFontSize,
h = e.footerFontSize;
(i += s * d),
(i += s ? (s - 1) * e.titleSpacing : 0),
(i += s ? e.titleMarginBottom : 0),
(i += r * c),
(i += r ? (r - 1) * e.bodySpacing : 0),
(i += u ? e.footerMarginTop : 0),
(i += u * h),
(i += u ? (u - 1) * e.footerSpacing : 0);
var f = 0,
g = function (t) {
n = Math.max(n, a.measureText(t).width + f);
};
return (
(a.font = l.fontString(
d,
e._titleFontStyle,
e._titleFontFamily
)),
l.each(e.title, g),
(a.font = l.fontString(c, e._bodyFontStyle, e._bodyFontFamily)),
l.each(e.beforeBody.concat(e.afterBody), g),
(f = e.displayColors ? c + 2 : 0),
l.each(o, function (t) {
l.each(t.before, g), l.each(t.lines, g), l.each(t.after, g);
}),
(f = 0),
(a.font = l.fontString(
h,
e._footerFontStyle,
e._footerFontFamily
)),
l.each(e.footer, g),
(n += 2 * e.xPadding),
{ width: n, height: i }
);
}
function r(t, e) {
var a = t._model,
i = t._chart,
n = t._chartInstance.chartArea,
o = "center",
r = "center";
a.y < e.height
? (r = "top")
: a.y > i.height - e.height && (r = "bottom");
var s,
l,
u,
d,
c,
h = (n.left + n.right) / 2,
f = (n.top + n.bottom) / 2;
"center" === r
? ((s = function (t) {
return t <= h;
}),
(l = function (t) {
return t > h;
}))
: ((s = function (t) {
return t <= e.width / 2;
}),
(l = function (t) {
return t >= i.width - e.width / 2;
})),
(u = function (t) {
return t + e.width > i.width;
}),
(d = function (t) {
return t - e.width < 0;
}),
(c = function (t) {
return t <= f ? "top" : "bottom";
}),
s(a.x)
? ((o = "left"), u(a.x) && ((o = "center"), (r = c(a.y))))
: l(a.x) &&
((o = "right"), d(a.x) && ((o = "center"), (r = c(a.y))));
var g = t._options;
return {
xAlign: g.xAlign ? g.xAlign : o,
yAlign: g.yAlign ? g.yAlign : r,
};
}
function s(t, e, a) {
var i = t.x,
n = t.y,
o = t.caretSize,
r = t.caretPadding,
s = t.cornerRadius,
l = a.xAlign,
u = a.yAlign,
d = o + r,
c = s + r;
return (
"right" === l
? (i -= e.width)
: "center" === l && (i -= e.width / 2),
"top" === u
? (n += d)
: (n -= "bottom" === u ? e.height + d : e.height / 2),
"center" === u
? "left" === l
? (i += d)
: "right" === l && (i -= d)
: "left" === l
? (i -= c)
: "right" === l && (i += c),
{ x: i, y: n }
);
}
var l = t.helpers;
(t.defaults.global.tooltips = {
enabled: !0,
custom: null,
mode: "nearest",
position: "average",
intersect: !0,
backgroundColor: "rgba(0,0,0,0.8)",
titleFontStyle: "bold",
titleSpacing: 2,
titleMarginBottom: 6,
titleFontColor: "#fff",
titleAlign: "left",
bodySpacing: 2,
bodyFontColor: "#fff",
bodyAlign: "left",
footerFontStyle: "bold",
footerSpacing: 2,
footerMarginTop: 6,
footerFontColor: "#fff",
footerAlign: "left",
yPadding: 6,
xPadding: 6,
caretSize: 5,
cornerRadius: 6,
multiKeyBackground: "#fff",
displayColors: !0,
callbacks: {
beforeTitle: l.noop,
title: function (t, e) {
var a = "",
i = e.labels,
n = i ? i.length : 0;
if (t.length > 0) {
var o = t[0];
o.xLabel
? (a = o.xLabel)
: n > 0 && o.index < n && (a = i[o.index]);
}
return a;
},
afterTitle: l.noop,
beforeBody: l.noop,
beforeLabel: l.noop,
label: function (t, e) {
var a = e.datasets[t.datasetIndex].label || "";
return a + ": " + t.yLabel;
},
labelColor: function (t, e) {
var a = e.getDatasetMeta(t.datasetIndex),
i = a.data[t.index],
n = i._view;
return {
borderColor: n.borderColor,
backgroundColor: n.backgroundColor,
};
},
afterLabel: l.noop,
afterBody: l.noop,
beforeFooter: l.noop,
footer: l.noop,
afterFooter: l.noop,
},
}),
(t.Tooltip = t.Element.extend({
initialize: function () {
this._model = n(this._options);
},
getTitle: function () {
var t = this,
e = t._options,
i = e.callbacks,
n = i.beforeTitle.apply(t, arguments),
o = i.title.apply(t, arguments),
r = i.afterTitle.apply(t, arguments),
s = [];
return (s = a(s, n)), (s = a(s, o)), (s = a(s, r));
},
getBeforeBody: function () {
var t = this._options.callbacks.beforeBody.apply(
this,
arguments
);
return l.isArray(t) ? t : void 0 !== t ? [t] : [];
},
getBody: function (t, e) {
var i = this,
n = i._options.callbacks,
o = [];
return (
l.each(t, function (t) {
var r = { before: [], lines: [], after: [] };
a(r.before, n.beforeLabel.call(i, t, e)),
a(r.lines, n.label.call(i, t, e)),
a(r.after, n.afterLabel.call(i, t, e)),
o.push(r);
}),
o
);
},
getAfterBody: function () {
var t = this._options.callbacks.afterBody.apply(
this,
arguments
);
return l.isArray(t) ? t : void 0 !== t ? [t] : [];
},
getFooter: function () {
var t = this,
e = t._options.callbacks,
i = e.beforeFooter.apply(t, arguments),
n = e.footer.apply(t, arguments),
o = e.afterFooter.apply(t, arguments),
r = [];
return (r = a(r, i)), (r = a(r, n)), (r = a(r, o));
},
update: function (e) {
var a,
u,
d = this,
c = d._options,
h = d._model,
f = (d._model = n(c)),
g = d._active,
p = d._data,
m = d._chartInstance,
v = { xAlign: h.xAlign, yAlign: h.yAlign },
b = { x: h.x, y: h.y },
x = { width: h.width, height: h.height },
y = { x: h.caretX, y: h.caretY };
if (g.length) {
f.opacity = 1;
var k = [];
y = t.Tooltip.positioners[c.position](g, d._eventPosition);
var S = [];
for (a = 0, u = g.length; a < u; ++a) S.push(i(g[a]));
c.filter &&
(S = S.filter(function (t) {
return c.filter(t, p);
})),
c.itemSort &&
(S = S.sort(function (t, e) {
return c.itemSort(t, e, p);
})),
l.each(S, function (t) {
k.push(c.callbacks.labelColor.call(d, t, m));
}),
(f.title = d.getTitle(S, p)),
(f.beforeBody = d.getBeforeBody(S, p)),
(f.body = d.getBody(S, p)),
(f.afterBody = d.getAfterBody(S, p)),
(f.footer = d.getFooter(S, p)),
(f.x = Math.round(y.x)),
(f.y = Math.round(y.y)),
(f.caretPadding = l.getValueOrDefault(y.padding, 2)),
(f.labelColors = k),
(f.dataPoints = S),
(x = o(this, f)),
(v = r(this, x)),
(b = s(f, x, v));
} else f.opacity = 0;
return (
(f.xAlign = v.xAlign),
(f.yAlign = v.yAlign),
(f.x = b.x),
(f.y = b.y),
(f.width = x.width),
(f.height = x.height),
(f.caretX = y.x),
(f.caretY = y.y),
(d._model = f),
e && c.custom && c.custom.call(d, f),
d
);
},
drawCaret: function (t, a, i) {
var n,
o,
r,
s,
l,
u,
d = this._view,
c = this._chart.ctx,
h = d.caretSize,
f = d.cornerRadius,
g = d.xAlign,
p = d.yAlign,
m = t.x,
v = t.y,
b = a.width,
x = a.height;
"center" === p
? ("left" === g
? ((n = m), (o = n - h), (r = n))
: ((n = m + b), (o = n + h), (r = n)),
(l = v + x / 2),
(s = l - h),
(u = l + h))
: ("left" === g
? ((n = m + f), (o = n + h), (r = o + h))
: "right" === g
? ((n = m + b - f), (o = n - h), (r = o - h))
: ((o = m + b / 2), (n = o - h), (r = o + h)),
"top" === p
? ((s = v), (l = s - h), (u = s))
: ((s = v + x), (l = s + h), (u = s))),
(c.fillStyle = e(d.backgroundColor, i)),
c.beginPath(),
c.moveTo(n, s),
c.lineTo(o, l),
c.lineTo(r, u),
c.closePath(),
c.fill();
},
drawTitle: function (t, a, i, n) {
var o = a.title;
if (o.length) {
(i.textAlign = a._titleAlign), (i.textBaseline = "top");
var r = a.titleFontSize,
s = a.titleSpacing;
(i.fillStyle = e(a.titleFontColor, n)),
(i.font = l.fontString(
r,
a._titleFontStyle,
a._titleFontFamily
));
var u, d;
for (u = 0, d = o.length; u < d; ++u)
i.fillText(o[u], t.x, t.y),
(t.y += r + s),
u + 1 === o.length && (t.y += a.titleMarginBottom - s);
}
},
drawBody: function (t, a, i, n) {
var o = a.bodyFontSize,
r = a.bodySpacing,
s = a.body;
(i.textAlign = a._bodyAlign), (i.textBaseline = "top");
var u = e(a.bodyFontColor, n);
(i.fillStyle = u),
(i.font = l.fontString(
o,
a._bodyFontStyle,
a._bodyFontFamily
));
var d = 0,
c = function (e) {
i.fillText(e, t.x + d, t.y), (t.y += o + r);
};
l.each(a.beforeBody, c);
var h = a.displayColors;
(d = h ? o + 2 : 0),
l.each(s, function (r, s) {
l.each(r.before, c),
l.each(r.lines, function (r) {
h &&
((i.fillStyle = e(a.legendColorBackground, n)),
i.fillRect(t.x, t.y, o, o),
(i.strokeStyle = e(
a.labelColors[s].borderColor,
n
)),
i.strokeRect(t.x, t.y, o, o),
(i.fillStyle = e(
a.labelColors[s].backgroundColor,
n
)),
i.fillRect(t.x + 1, t.y + 1, o - 2, o - 2),
(i.fillStyle = u)),
c(r);
}),
l.each(r.after, c);
}),
(d = 0),
l.each(a.afterBody, c),
(t.y -= r);
},
drawFooter: function (t, a, i, n) {
var o = a.footer;
o.length &&
((t.y += a.footerMarginTop),
(i.textAlign = a._footerAlign),
(i.textBaseline = "top"),
(i.fillStyle = e(a.footerFontColor, n)),
(i.font = l.fontString(
a.footerFontSize,
a._footerFontStyle,
a._footerFontFamily
)),
l.each(o, function (e) {
i.fillText(e, t.x, t.y),
(t.y += a.footerFontSize + a.footerSpacing);
}));
},
drawBackground: function (t, a, i, n, o) {
(i.fillStyle = e(a.backgroundColor, o)),
l.drawRoundedRectangle(
i,
t.x,
t.y,
n.width,
n.height,
a.cornerRadius
),
i.fill();
},
draw: function () {
var t = this._chart.ctx,
e = this._view;
if (0 !== e.opacity) {
var a = { width: e.width, height: e.height },
i = { x: e.x, y: e.y },
n = Math.abs(e.opacity < 0.001) ? 0 : e.opacity;
this._options.enabled &&
(this.drawBackground(i, e, t, a, n),
this.drawCaret(i, a, n),
(i.x += e.xPadding),
(i.y += e.yPadding),
this.drawTitle(i, e, t, n),
this.drawBody(i, e, t, n),
this.drawFooter(i, e, t, n));
}
},
handleEvent: function (t) {
var e = this,
a = e._options,
i = !1;
if (
((e._lastActive = e._lastActive || []),
"mouseout" === t.type
? (e._active = [])
: (e._active = e._chartInstance.getElementsAtEventForMode(
t,
a.mode,
a
)),
(i = !l.arrayEquals(e._active, e._lastActive)),
(e._lastActive = e._active),
a.enabled || a.custom)
) {
e._eventPosition = { x: t.x, y: t.y };
var n = e._model;
e.update(!0),
e.pivot(),
(i |= n.x !== e._model.x || n.y !== e._model.y);
}
return i;
},
})),
(t.Tooltip.positioners = {
average: function (t) {
if (!t.length) return !1;
var e,
a,
i = 0,
n = 0,
o = 0;
for (e = 0, a = t.length; e < a; ++e) {
var r = t[e];
if (r && r.hasValue()) {
var s = r.tooltipPosition();
(i += s.x), (n += s.y), ++o;
}
}
return { x: Math.round(i / o), y: Math.round(n / o) };
},
nearest: function (t, e) {
var a,
i,
n,
o = e.x,
r = e.y,
s = Number.POSITIVE_INFINITY;
for (i = 0, n = t.length; i < n; ++i) {
var u = t[i];
if (u && u.hasValue()) {
var d = u.getCenterPoint(),
c = l.distanceBetweenPoints(e, d);
c < s && ((s = c), (a = u));
}
}
if (a) {
var h = a.tooltipPosition();
(o = h.x), (r = h.y);
}
return { x: o, y: r };
},
});
};
},
{},
],
37: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers,
a = t.defaults.global;
(a.elements.arc = {
backgroundColor: a.defaultColor,
borderColor: "#fff",
borderWidth: 2,
}),
(t.elements.Arc = t.Element.extend({
inLabelRange: function (t) {
var e = this._view;
return (
!!e &&
Math.pow(t - e.x, 2) < Math.pow(e.radius + e.hoverRadius, 2)
);
},
inRange: function (t, a) {
var i = this._view;
if (i) {
for (
var n = e.getAngleFromPoint(i, { x: t, y: a }),
o = n.angle,
r = n.distance,
s = i.startAngle,
l = i.endAngle;
l < s;
)
l += 2 * Math.PI;
for (; o > l; ) o -= 2 * Math.PI;
for (; o < s; ) o += 2 * Math.PI;
var u = o >= s && o <= l,
d = r >= i.innerRadius && r <= i.outerRadius;
return u && d;
}
return !1;
},
getCenterPoint: function () {
var t = this._view,
e = (t.startAngle + t.endAngle) / 2,
a = (t.innerRadius + t.outerRadius) / 2;
return { x: t.x + Math.cos(e) * a, y: t.y + Math.sin(e) * a };
},
getArea: function () {
var t = this._view;
return (
Math.PI *
((t.endAngle - t.startAngle) / (2 * Math.PI)) *
(Math.pow(t.outerRadius, 2) - Math.pow(t.innerRadius, 2))
);
},
tooltipPosition: function () {
var t = this._view,
e = t.startAngle + (t.endAngle - t.startAngle) / 2,
a = (t.outerRadius - t.innerRadius) / 2 + t.innerRadius;
return { x: t.x + Math.cos(e) * a, y: t.y + Math.sin(e) * a };
},
draw: function () {
var t = this._chart.ctx,
e = this._view,
a = e.startAngle,
i = e.endAngle;
t.beginPath(),
t.arc(e.x, e.y, e.outerRadius, a, i),
t.arc(e.x, e.y, e.innerRadius, i, a, !0),
t.closePath(),
(t.strokeStyle = e.borderColor),
(t.lineWidth = e.borderWidth),
(t.fillStyle = e.backgroundColor),
t.fill(),
(t.lineJoin = "bevel"),
e.borderWidth && t.stroke();
},
}));
};
},
{},
],
38: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers,
a = t.defaults.global;
(t.defaults.global.elements.line = {
tension: 0.4,
backgroundColor: a.defaultColor,
borderWidth: 3,
borderColor: a.defaultColor,
borderCapStyle: "butt",
borderDash: [],
borderDashOffset: 0,
borderJoinStyle: "miter",
capBezierPoints: !0,
fill: !0,
}),
(t.elements.Line = t.Element.extend({
draw: function () {
function t(t, e) {
var a = e._view;
e._view.steppedLine === !0
? (l.lineTo(a.x, t._view.y), l.lineTo(a.x, a.y))
: 0 === e._view.tension
? l.lineTo(a.x, a.y)
: l.bezierCurveTo(
t._view.controlPointNextX,
t._view.controlPointNextY,
a.controlPointPreviousX,
a.controlPointPreviousY,
a.x,
a.y
);
}
var i = this,
n = i._view,
o = n.spanGaps,
r = n.scaleZero,
s = i._loop;
s ||
("top" === n.fill
? (r = n.scaleTop)
: "bottom" === n.fill && (r = n.scaleBottom));
var l = i._chart.ctx;
l.save();
var u = i._children.slice(),
d = -1;
s && u.length && u.push(u[0]);
var c, h, f, g;
if (u.length && n.fill) {
for (l.beginPath(), c = 0; c < u.length; ++c)
(h = u[c]),
(f = e.previousItem(u, c)),
(g = h._view),
0 === c
? (s ? l.moveTo(r.x, r.y) : l.moveTo(g.x, r),
g.skip || ((d = c), l.lineTo(g.x, g.y)))
: ((f = d === -1 ? f : u[d]),
g.skip
? o ||
d !== c - 1 ||
(s
? l.lineTo(r.x, r.y)
: l.lineTo(f._view.x, r))
: (d !== c - 1
? o && d !== -1
? t(f, h)
: s
? l.lineTo(g.x, g.y)
: (l.lineTo(g.x, r), l.lineTo(g.x, g.y))
: t(f, h),
(d = c)));
s || d === -1 || l.lineTo(u[d]._view.x, r),
(l.fillStyle = n.backgroundColor || a.defaultColor),
l.closePath(),
l.fill();
}
var p = a.elements.line;
for (
l.lineCap = n.borderCapStyle || p.borderCapStyle,
l.setLineDash &&
l.setLineDash(n.borderDash || p.borderDash),
l.lineDashOffset =
n.borderDashOffset || p.borderDashOffset,
l.lineJoin = n.borderJoinStyle || p.borderJoinStyle,
l.lineWidth = n.borderWidth || p.borderWidth,
l.strokeStyle = n.borderColor || a.defaultColor,
l.beginPath(),
d = -1,
c = 0;
c < u.length;
++c
)
(h = u[c]),
(f = e.previousItem(u, c)),
(g = h._view),
0 === c
? g.skip || (l.moveTo(g.x, g.y), (d = c))
: ((f = d === -1 ? f : u[d]),
g.skip ||
((d !== c - 1 && !o) || d === -1
? l.moveTo(g.x, g.y)
: t(f, h),
(d = c)));
l.stroke(), l.restore();
},
}));
};
},
{},
],
39: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(t) {
var e = this._view;
return (
!!e &&
Math.pow(t - e.x, 2) < Math.pow(e.radius + e.hitRadius, 2)
);
}
function a(t) {
var e = this._view;
return (
!!e &&
Math.pow(t - e.y, 2) < Math.pow(e.radius + e.hitRadius, 2)
);
}
var i = t.helpers,
n = t.defaults.global,
o = n.defaultColor;
(n.elements.point = {
radius: 3,
pointStyle: "circle",
backgroundColor: o,
borderWidth: 1,
borderColor: o,
hitRadius: 1,
hoverRadius: 4,
hoverBorderWidth: 1,
}),
(t.elements.Point = t.Element.extend({
inRange: function (t, e) {
var a = this._view;
return (
!!a &&
Math.pow(t - a.x, 2) + Math.pow(e - a.y, 2) <
Math.pow(a.hitRadius + a.radius, 2)
);
},
inLabelRange: e,
inXRange: e,
inYRange: a,
getCenterPoint: function () {
var t = this._view;
return { x: t.x, y: t.y };
},
getArea: function () {
return Math.PI * Math.pow(this._view.radius, 2);
},
tooltipPosition: function () {
var t = this._view;
return { x: t.x, y: t.y, padding: t.radius + t.borderWidth };
},
draw: function (e) {
var a = this._view,
r = this._model,
s = this._chart.ctx,
l = a.pointStyle,
u = a.radius,
d = a.x,
c = a.y,
h = t.helpers.color,
f = 1.01,
g = 0;
a.skip ||
((s.strokeStyle = a.borderColor || o),
(s.lineWidth = i.getValueOrDefault(
a.borderWidth,
n.elements.point.borderWidth
)),
(s.fillStyle = a.backgroundColor || o),
void 0 !== e &&
(r.x < e.left ||
e.right * f < r.x ||
r.y < e.top ||
e.bottom * f < r.y) &&
(r.x < e.left
? (g = (d - r.x) / (e.left - r.x))
: e.right * f < r.x
? (g = (r.x - d) / (r.x - e.right))
: r.y < e.top
? (g = (c - r.y) / (e.top - r.y))
: e.bottom * f < r.y &&
(g = (r.y - c) / (r.y - e.bottom)),
(g = Math.round(100 * g) / 100),
(s.strokeStyle = h(s.strokeStyle).alpha(g).rgbString()),
(s.fillStyle = h(s.fillStyle).alpha(g).rgbString())),
t.canvasHelpers.drawPoint(s, l, u, d, c));
},
}));
};
},
{},
],
40: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(t) {
return void 0 !== t._view.width;
}
function a(t) {
var a,
i,
n,
o,
r = t._view;
if (e(t)) {
var s = r.width / 2;
(a = r.x - s),
(i = r.x + s),
(n = Math.min(r.y, r.base)),
(o = Math.max(r.y, r.base));
} else {
var l = r.height / 2;
(a = Math.min(r.x, r.base)),
(i = Math.max(r.x, r.base)),
(n = r.y - l),
(o = r.y + l);
}
return { left: a, top: n, right: i, bottom: o };
}
var i = t.defaults.global;
(i.elements.rectangle = {
backgroundColor: i.defaultColor,
borderWidth: 0,
borderColor: i.defaultColor,
borderSkipped: "bottom",
}),
(t.elements.Rectangle = t.Element.extend({
draw: function () {
function t(t) {
return v[(x + t) % 4];
}
var e,
a,
i,
n,
o,
r,
s,
l = this._chart.ctx,
u = this._view,
d = u.borderWidth;
if (
(u.horizontal
? ((e = u.base),
(a = u.x),
(i = u.y - u.height / 2),
(n = u.y + u.height / 2),
(o = a > e ? 1 : -1),
(r = 1),
(s = u.borderSkipped || "left"))
: ((e = u.x - u.width / 2),
(a = u.x + u.width / 2),
(i = u.y),
(n = u.base),
(o = 1),
(r = n > i ? 1 : -1),
(s = u.borderSkipped || "bottom")),
d)
) {
var c = Math.min(Math.abs(e - a), Math.abs(i - n));
d = d > c ? c : d;
var h = d / 2,
f = e + ("left" !== s ? h * o : 0),
g = a + ("right" !== s ? -h * o : 0),
p = i + ("top" !== s ? h * r : 0),
m = n + ("bottom" !== s ? -h * r : 0);
f !== g && ((i = p), (n = m)),
p !== m && ((e = f), (a = g));
}
l.beginPath(),
(l.fillStyle = u.backgroundColor),
(l.strokeStyle = u.borderColor),
(l.lineWidth = d);
var v = [
[e, n],
[e, i],
[a, i],
[a, n],
],
b = ["bottom", "left", "top", "right"],
x = b.indexOf(s, 0);
x === -1 && (x = 0);
var y = t(0);
l.moveTo(y[0], y[1]);
for (var k = 1; k < 4; k++) (y = t(k)), l.lineTo(y[0], y[1]);
l.fill(), d && l.stroke();
},
height: function () {
var t = this._view;
return t.base - t.y;
},
inRange: function (t, e) {
var i = !1;
if (this._view) {
var n = a(this);
i =
t >= n.left &&
t <= n.right &&
e >= n.top &&
e <= n.bottom;
}
return i;
},
inLabelRange: function (t, i) {
var n = this;
if (!n._view) return !1;
var o = !1,
r = a(n);
return (o = e(n)
? t >= r.left && t <= r.right
: i >= r.top && i <= r.bottom);
},
inXRange: function (t) {
var e = a(this);
return t >= e.left && t <= e.right;
},
inYRange: function (t) {
var e = a(this);
return t >= e.top && t <= e.bottom;
},
getCenterPoint: function () {
var t,
a,
i = this._view;
return (
e(this)
? ((t = i.x), (a = (i.y + i.base) / 2))
: ((t = (i.x + i.base) / 2), (a = i.y)),
{ x: t, y: a }
);
},
getArea: function () {
var t = this._view;
return t.width * Math.abs(t.y - t.base);
},
tooltipPosition: function () {
var t = this._view;
return { x: t.x, y: t.y };
},
}));
};
},
{},
],
41: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(t, e) {
var a = l.getStyle(t, e),
i = a && a.match(/(\d+)px/);
return i ? Number(i[1]) : void 0;
}
function a(t, a) {
var i = t.style,
n = t.getAttribute("height"),
o = t.getAttribute("width");
if (
((t._chartjs = {
initial: {
height: n,
width: o,
style: {
display: i.display,
height: i.height,
width: i.width,
},
},
}),
(i.display = i.display || "block"),
null === o || "" === o)
) {
var r = e(t, "width");
void 0 !== r && (t.width = r);
}
if (null === n || "" === n)
if ("" === t.style.height)
t.height = t.width / (a.options.aspectRatio || 2);
else {
var s = e(t, "height");
void 0 !== r && (t.height = s);
}
return t;
}
function i(t, e, a, i, n) {
return {
type: t,
chart: e,
native: n || null,
x: void 0 !== a ? a : null,
y: void 0 !== i ? i : null,
};
}
function n(t, e) {
var a = u[t.type] || t.type,
n = l.getRelativePosition(t, e);
return i(a, e, n.x, n.y, t);
}
function o(t) {
var e = document.createElement("iframe");
return (
(e.className = "chartjs-hidden-iframe"),
(e.style.cssText =
"display:block;overflow:hidden;border:0;margin:0;top:0;left:0;bottom:0;right:0;height:100%;width:100%;position:absolute;pointer-events:none;z-index:-1;"),
(e.tabIndex = -1),
l.addEvent(e, "load", function () {
l.addEvent(e.contentWindow || e, "resize", t), t();
}),
e
);
}
function r(t, e, a) {
var n = (t._chartjs = { ticking: !1 }),
r = function () {
n.ticking ||
((n.ticking = !0),
l.requestAnimFrame.call(window, function () {
if (n.resizer) return (n.ticking = !1), e(i("resize", a));
}));
};
(n.resizer = o(r)), t.insertBefore(n.resizer, t.firstChild);
}
function s(t) {
if (t && t._chartjs) {
var e = t._chartjs.resizer;
e && (e.parentNode.removeChild(e), (t._chartjs.resizer = null)),
delete t._chartjs;
}
}
var l = t.helpers,
u = {
touchstart: "mousedown",
touchmove: "mousemove",
touchend: "mouseup",
pointerenter: "mouseenter",
pointerdown: "mousedown",
pointermove: "mousemove",
pointerup: "mouseup",
pointerleave: "mouseout",
pointerout: "mouseout",
};
return {
acquireContext: function (t, e) {
if (
("string" == typeof t
? (t = document.getElementById(t))
: t.length && (t = t[0]),
t && t.canvas && (t = t.canvas),
t instanceof HTMLCanvasElement)
) {
var i = t.getContext && t.getContext("2d");
if (i instanceof CanvasRenderingContext2D) return a(t, e), i;
}
return null;
},
releaseContext: function (t) {
var e = t.canvas;
if (e._chartjs) {
var a = e._chartjs.initial;
["height", "width"].forEach(function (t) {
var i = a[t];
void 0 === i || null === i
? e.removeAttribute(t)
: e.setAttribute(t, i);
}),
l.each(a.style || {}, function (t, a) {
e.style[a] = t;
}),
(e.width = e.width),
delete e._chartjs;
}
},
addEventListener: function (t, e, a) {
var i = t.chart.canvas;
if ("resize" === e) return void r(i.parentNode, a, t.chart);
var o = a._chartjs || (a._chartjs = {}),
s = o.proxies || (o.proxies = {}),
u = (s[t.id + "_" + e] = function (e) {
a(n(e, t.chart));
});
l.addEvent(i, e, u);
},
removeEventListener: function (t, e, a) {
var i = t.chart.canvas;
if ("resize" === e) return void s(i.parentNode, a);
var n = a._chartjs || {},
o = n.proxies || {},
r = o[t.id + "_" + e];
r && l.removeEvent(i, e, r);
},
};
};
},
{},
],
42: [
function (t, e, a) {
"use strict";
var i = t(41);
e.exports = function (t) {
(t.platform = {
acquireContext: function () {},
releaseContext: function () {},
addEventListener: function () {},
removeEventListener: function () {},
}),
t.helpers.extend(t.platform, i(t));
};
},
{ 41: 41 },
],
43: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers,
a = { position: "bottom" },
i = t.Scale.extend({
getLabels: function () {
var t = this.chart.data;
return (
(this.isHorizontal() ? t.xLabels : t.yLabels) || t.labels
);
},
determineDataLimits: function () {
var t = this,
a = t.getLabels();
(t.minIndex = 0), (t.maxIndex = a.length - 1);
var i;
void 0 !== t.options.ticks.min &&
((i = e.indexOf(a, t.options.ticks.min)),
(t.minIndex = i !== -1 ? i : t.minIndex)),
void 0 !== t.options.ticks.max &&
((i = e.indexOf(a, t.options.ticks.max)),
(t.maxIndex = i !== -1 ? i : t.maxIndex)),
(t.min = a[t.minIndex]),
(t.max = a[t.maxIndex]);
},
buildTicks: function () {
var t = this,
e = t.getLabels();
t.ticks =
0 === t.minIndex && t.maxIndex === e.length - 1
? e
: e.slice(t.minIndex, t.maxIndex + 1);
},
getLabelForIndex: function (t, e) {
var a = this,
i = a.chart.data,
n = a.isHorizontal();
return i.yLabels && !n
? a.getRightValue(i.datasets[e].data[t])
: a.ticks[t - a.minIndex];
},
getPixelForValue: function (t, e, a, i) {
var n = this,
o = Math.max(
n.maxIndex +
1 -
n.minIndex -
(n.options.gridLines.offsetGridLines ? 0 : 1),
1
);
if (void 0 !== t && isNaN(e)) {
var r = n.getLabels(),
s = r.indexOf(t);
e = s !== -1 ? s : e;
}
if (n.isHorizontal()) {
var l = n.width / o,
u = l * (e - n.minIndex);
return (
((n.options.gridLines.offsetGridLines && i) ||
(n.maxIndex === n.minIndex && i)) &&
(u += l / 2),
n.left + Math.round(u)
);
}
var d = n.height / o,
c = d * (e - n.minIndex);
return (
n.options.gridLines.offsetGridLines && i && (c += d / 2),
n.top + Math.round(c)
);
},
getPixelForTick: function (t, e) {
return this.getPixelForValue(
this.ticks[t],
t + this.minIndex,
null,
e
);
},
getValueForPixel: function (t) {
var e,
a = this,
i = Math.max(
a.ticks.length -
(a.options.gridLines.offsetGridLines ? 0 : 1),
1
),
n = a.isHorizontal(),
o = (n ? a.width : a.height) / i;
return (
(t -= n ? a.left : a.top),
a.options.gridLines.offsetGridLines && (t -= o / 2),
(e = t <= 0 ? 0 : Math.round(t / o))
);
},
getBasePixel: function () {
return this.bottom;
},
});
t.scaleService.registerScaleType("category", i, a);
};
},
{},
],
44: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers,
a = {
position: "left",
ticks: { callback: t.Ticks.formatters.linear },
},
i = t.LinearScaleBase.extend({
determineDataLimits: function () {
function t(t) {
return s ? t.xAxisID === a.id : t.yAxisID === a.id;
}
var a = this,
i = a.options,
n = a.chart,
o = n.data,
r = o.datasets,
s = a.isHorizontal();
(a.min = null), (a.max = null);
var l = i.stacked;
if (
(void 0 === l &&
e.each(r, function (e, a) {
if (!l) {
var i = n.getDatasetMeta(a);
n.isDatasetVisible(a) &&
t(i) &&
void 0 !== i.stack &&
(l = !0);
}
}),
i.stacked || l)
) {
var u = {};
e.each(r, function (o, r) {
var s = n.getDatasetMeta(r),
l = [
s.type,
void 0 === i.stacked && void 0 === s.stack ? r : "",
s.stack,
].join(".");
void 0 === u[l] &&
(u[l] = { positiveValues: [], negativeValues: [] });
var d = u[l].positiveValues,
c = u[l].negativeValues;
n.isDatasetVisible(r) &&
t(s) &&
e.each(o.data, function (t, e) {
var n = +a.getRightValue(t);
isNaN(n) ||
s.data[e].hidden ||
((d[e] = d[e] || 0),
(c[e] = c[e] || 0),
i.relativePoints
? (d[e] = 100)
: n < 0
? (c[e] += n)
: (d[e] += n));
});
}),
e.each(u, function (t) {
var i = t.positiveValues.concat(t.negativeValues),
n = e.min(i),
o = e.max(i);
(a.min = null === a.min ? n : Math.min(a.min, n)),
(a.max = null === a.max ? o : Math.max(a.max, o));
});
} else
e.each(r, function (i, o) {
var r = n.getDatasetMeta(o);
n.isDatasetVisible(o) &&
t(r) &&
e.each(i.data, function (t, e) {
var i = +a.getRightValue(t);
isNaN(i) ||
r.data[e].hidden ||
(null === a.min
? (a.min = i)
: i < a.min && (a.min = i),
null === a.max
? (a.max = i)
: i > a.max && (a.max = i));
});
});
this.handleTickRangeOptions();
},
getTickLimit: function () {
var a,
i = this,
n = i.options.ticks;
if (i.isHorizontal())
a = Math.min(
n.maxTicksLimit ? n.maxTicksLimit : 11,
Math.ceil(i.width / 50)
);
else {
var o = e.getValueOrDefault(
n.fontSize,
t.defaults.global.defaultFontSize
);
a = Math.min(
n.maxTicksLimit ? n.maxTicksLimit : 11,
Math.ceil(i.height / (2 * o))
);
}
return a;
},
handleDirectionalChanges: function () {
this.isHorizontal() || this.ticks.reverse();
},
getLabelForIndex: function (t, e) {
return +this.getRightValue(
this.chart.data.datasets[e].data[t]
);
},
getPixelForValue: function (t) {
var e,
a = this,
i = a.start,
n = +a.getRightValue(t),
o = a.end - i;
return a.isHorizontal()
? ((e = a.left + (a.width / o) * (n - i)), Math.round(e))
: ((e = a.bottom - (a.height / o) * (n - i)),
Math.round(e));
},
getValueForPixel: function (t) {
var e = this,
a = e.isHorizontal(),
i = a ? e.width : e.height,
n = (a ? t - e.left : e.bottom - t) / i;
return e.start + (e.end - e.start) * n;
},
getPixelForTick: function (t) {
return this.getPixelForValue(this.ticksAsNumbers[t]);
},
});
t.scaleService.registerScaleType("linear", i, a);
};
},
{},
],
45: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers,
a = e.noop;
t.LinearScaleBase = t.Scale.extend({
handleTickRangeOptions: function () {
var t = this,
a = t.options,
i = a.ticks;
if (i.beginAtZero) {
var n = e.sign(t.min),
o = e.sign(t.max);
n < 0 && o < 0 ? (t.max = 0) : n > 0 && o > 0 && (t.min = 0);
}
void 0 !== i.min
? (t.min = i.min)
: void 0 !== i.suggestedMin &&
(t.min = Math.min(t.min, i.suggestedMin)),
void 0 !== i.max
? (t.max = i.max)
: void 0 !== i.suggestedMax &&
(t.max = Math.max(t.max, i.suggestedMax)),
t.min === t.max && (t.max++, i.beginAtZero || t.min--);
},
getTickLimit: a,
handleDirectionalChanges: a,
buildTicks: function () {
var a = this,
i = a.options,
n = i.ticks,
o = a.getTickLimit();
o = Math.max(2, o);
var r = {
maxTicks: o,
min: n.min,
max: n.max,
stepSize: e.getValueOrDefault(n.fixedStepSize, n.stepSize),
},
s = (a.ticks = t.Ticks.generators.linear(r, a));
a.handleDirectionalChanges(),
(a.max = e.max(s)),
(a.min = e.min(s)),
n.reverse
? (s.reverse(), (a.start = a.max), (a.end = a.min))
: ((a.start = a.min), (a.end = a.max));
},
convertTicksToLabels: function () {
var e = this;
(e.ticksAsNumbers = e.ticks.slice()),
(e.zeroLineIndex = e.ticks.indexOf(0)),
t.Scale.prototype.convertTicksToLabels.call(e);
},
});
};
},
{},
],
46: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
var e = t.helpers,
a = {
position: "left",
ticks: { callback: t.Ticks.formatters.logarithmic },
},
i = t.Scale.extend({
determineDataLimits: function () {
function t(t) {
return u ? t.xAxisID === a.id : t.yAxisID === a.id;
}
var a = this,
i = a.options,
n = i.ticks,
o = a.chart,
r = o.data,
s = r.datasets,
l = e.getValueOrDefault,
u = a.isHorizontal();
(a.min = null), (a.max = null), (a.minNotZero = null);
var d = i.stacked;
if (
(void 0 === d &&
e.each(s, function (e, a) {
if (!d) {
var i = o.getDatasetMeta(a);
o.isDatasetVisible(a) &&
t(i) &&
void 0 !== i.stack &&
(d = !0);
}
}),
i.stacked || d)
) {
var c = {};
e.each(s, function (n, r) {
var s = o.getDatasetMeta(r),
l = [
s.type,
void 0 === i.stacked && void 0 === s.stack ? r : "",
s.stack,
].join(".");
o.isDatasetVisible(r) &&
t(s) &&
(void 0 === c[l] && (c[l] = []),
e.each(n.data, function (t, e) {
var n = c[l],
o = +a.getRightValue(t);
isNaN(o) ||
s.data[e].hidden ||
((n[e] = n[e] || 0),
i.relativePoints ? (n[e] = 100) : (n[e] += o));
}));
}),
e.each(c, function (t) {
var i = e.min(t),
n = e.max(t);
(a.min = null === a.min ? i : Math.min(a.min, i)),
(a.max = null === a.max ? n : Math.max(a.max, n));
});
} else
e.each(s, function (i, n) {
var r = o.getDatasetMeta(n);
o.isDatasetVisible(n) &&
t(r) &&
e.each(i.data, function (t, e) {
var i = +a.getRightValue(t);
isNaN(i) ||
r.data[e].hidden ||
(null === a.min
? (a.min = i)
: i < a.min && (a.min = i),
null === a.max
? (a.max = i)
: i > a.max && (a.max = i),
0 !== i &&
(null === a.minNotZero || i < a.minNotZero) &&
(a.minNotZero = i));
});
});
(a.min = l(n.min, a.min)),
(a.max = l(n.max, a.max)),
a.min === a.max &&
(0 !== a.min && null !== a.min
? ((a.min = Math.pow(
10,
Math.floor(e.log10(a.min)) - 1
)),
(a.max = Math.pow(
10,
Math.floor(e.log10(a.max)) + 1
)))
: ((a.min = 1), (a.max = 10)));
},
buildTicks: function () {
var a = this,
i = a.options,
n = i.ticks,
o = { min: n.min, max: n.max },
r = (a.ticks = t.Ticks.generators.logarithmic(o, a));
a.isHorizontal() || r.reverse(),
(a.max = e.max(r)),
(a.min = e.min(r)),
n.reverse
? (r.reverse(), (a.start = a.max), (a.end = a.min))
: ((a.start = a.min), (a.end = a.max));
},
convertTicksToLabels: function () {
(this.tickValues = this.ticks.slice()),
t.Scale.prototype.convertTicksToLabels.call(this);
},
getLabelForIndex: function (t, e) {
return +this.getRightValue(
this.chart.data.datasets[e].data[t]
);
},
getPixelForTick: function (t) {
return this.getPixelForValue(this.tickValues[t]);
},
getPixelForValue: function (t) {
var a,
i,
n,
o = this,
r = o.start,
s = +o.getRightValue(t),
l = o.options,
u = l.ticks;
return (
o.isHorizontal()
? ((n = e.log10(o.end) - e.log10(r)),
0 === s
? (i = o.left)
: ((a = o.width),
(i = o.left + (a / n) * (e.log10(s) - e.log10(r)))))
: ((a = o.height),
0 !== r || u.reverse
? 0 === o.end && u.reverse
? ((n = e.log10(o.start) - e.log10(o.minNotZero)),
(i =
s === o.end
? o.top
: s === o.minNotZero
? o.top + 0.02 * a
: o.top +
0.02 * a +
((0.98 * a) / n) *
(e.log10(s) - e.log10(o.minNotZero))))
: ((n = e.log10(o.end) - e.log10(r)),
(a = o.height),
(i =
o.bottom - (a / n) * (e.log10(s) - e.log10(r))))
: ((n = e.log10(o.end) - e.log10(o.minNotZero)),
(i =
s === r
? o.bottom
: s === o.minNotZero
? o.bottom - 0.02 * a
: o.bottom -
0.02 * a -
((0.98 * a) / n) *
(e.log10(s) - e.log10(o.minNotZero))))),
i
);
},
getValueForPixel: function (t) {
var a,
i,
n = this,
o = e.log10(n.end) - e.log10(n.start);
return (
n.isHorizontal()
? ((i = n.width),
(a = n.start * Math.pow(10, ((t - n.left) * o) / i)))
: ((i = n.height),
(a = Math.pow(10, ((n.bottom - t) * o) / i) / n.start)),
a
);
},
});
t.scaleService.registerScaleType("logarithmic", i, a);
};
},
{},
],
47: [
function (t, e, a) {
"use strict";
e.exports = function (t) {
function e(t) {
return t.options.lineArc ? 0 : t.chart.data.labels.length;
}
function a(t) {
var e = t.options.pointLabels,
a = f.getValueOrDefault(e.fontSize, g.defaultFontSize),
i = f.getValueOrDefault(e.fontStyle, g.defaultFontStyle),
n = f.getValueOrDefault(e.fontFamily, g.defaultFontFamily),
o = f.fontString(a, i, n);
return { size: a, style: i, family: n, font: o };
}
function i(t, e, a) {
return f.isArray(a)
? {
w: f.longestText(t, t.font, a),
h: a.length * e + 1.5 * (a.length - 1) * e,
}
: { w: t.measureText(a).width, h: e };
}
function n(t, e, a, i, n) {
return t === i || t === n
? { start: e - a / 2, end: e + a / 2 }
: t < i || t > n
? { start: e - a - 5, end: e }
: { start: e, end: e + a + 5 };
}
function o(t) {
var o,
r,
s,
l = a(t),
u = Math.min(t.height / 2, t.width / 2),
d = { l: t.width, r: 0, t: t.height, b: 0 },
c = {};
(t.ctx.font = l.font), (t._pointLabelSizes = []);
var h = e(t);
for (o = 0; o < h; o++) {
(s = t.getPointPosition(o, u)),
(r = i(t.ctx, l.size, t.pointLabels[o] || "")),
(t._pointLabelSizes[o] = r);
var g = t.getIndexAngle(o),
p = f.toDegrees(g) % 360,
m = n(p, s.x, r.w, 0, 180),
v = n(p, s.y, r.h, 90, 270);
m.start < d.l && ((d.l = m.start), (c.l = g)),
m.end > d.r && ((d.r = m.end), (c.r = g)),
v.start < d.t && ((d.t = v.start), (c.t = g)),
v.end > d.b && ((d.b = v.end), (c.b = g));
}
t.setReductions(u, d, c);
}
function r(t) {
var e = Math.min(t.height / 2, t.width / 2);
(t.drawingArea = Math.round(e)), t.setCenterPoint(0, 0, 0, 0);
}
function s(t) {
return 0 === t || 180 === t
? "center"
: t < 180
? "left"
: "right";
}
function l(t, e, a, i) {
if (f.isArray(e))
for (var n = a.y, o = 1.5 * i, r = 0; r < e.length; ++r)
t.fillText(e[r], a.x, n), (n += o);
else t.fillText(e, a.x, a.y);
}
function u(t, e, a) {
90 === t || 270 === t
? (a.y -= e.h / 2)
: (t > 270 || t < 90) && (a.y -= e.h);
}
function d(t) {
var i = t.ctx,
n = f.getValueOrDefault,
o = t.options,
r = o.angleLines,
d = o.pointLabels;
(i.lineWidth = r.lineWidth), (i.strokeStyle = r.color);
var c = t.getDistanceFromCenterForValue(
o.reverse ? t.min : t.max
),
h = a(t);
i.textBaseline = "top";
for (var p = e(t) - 1; p >= 0; p--) {
if (r.display) {
var m = t.getPointPosition(p, c);
i.beginPath(),
i.moveTo(t.xCenter, t.yCenter),
i.lineTo(m.x, m.y),
i.stroke(),
i.closePath();
}
var v = t.getPointPosition(p, c + 5),
b = n(d.fontColor, g.defaultFontColor);
(i.font = h.font), (i.fillStyle = b);
var x = t.getIndexAngle(p),
y = f.toDegrees(x);
(i.textAlign = s(y)),
u(y, t._pointLabelSizes[p], v),
l(i, t.pointLabels[p] || "", v, h.size);
}
}
function c(t, a, i, n) {
var o = t.ctx;
if (
((o.strokeStyle = f.getValueAtIndexOrDefault(a.color, n - 1)),
(o.lineWidth = f.getValueAtIndexOrDefault(a.lineWidth, n - 1)),
t.options.lineArc)
)
o.beginPath(),
o.arc(t.xCenter, t.yCenter, i, 0, 2 * Math.PI),
o.closePath(),
o.stroke();
else {
var r = e(t);
if (0 === r) return;
o.beginPath();
var s = t.getPointPosition(0, i);
o.moveTo(s.x, s.y);
for (var l = 1; l < r; l++)
(s = t.getPointPosition(l, i)), o.lineTo(s.x, s.y);
o.closePath(), o.stroke();
}
}
function h(t) {
return f.isNumber(t) ? t : 0;
}
var f = t.helpers,
g = t.defaults.global,
p = {
display: !0,
animate: !0,
lineArc: !1,
position: "chartArea",
angleLines: {
display: !0,
color: "rgba(0, 0, 0, 0.1)",
lineWidth: 1,
},
ticks: {
showLabelBackdrop: !0,
backdropColor: "rgba(255,255,255,0.75)",
backdropPaddingY: 2,
backdropPaddingX: 2,
callback: t.Ticks.formatters.linear,
},
pointLabels: {
fontSize: 10,
callback: function (t) {
return t;
},
},
},
m = t.LinearScaleBase.extend({
setDimensions: function () {
var t = this,
e = t.options,
a = e.ticks;
(t.width = t.maxWidth),
(t.height = t.maxHeight),
(t.xCenter = Math.round(t.width / 2)),
(t.yCenter = Math.round(t.height / 2));
var i = f.min([t.height, t.width]),
n = f.getValueOrDefault(a.fontSize, g.defaultFontSize);
t.drawingArea = e.display
? i / 2 - (n / 2 + a.backdropPaddingY)
: i / 2;
},
determineDataLimits: function () {
var t = this,
e = t.chart,
a = Number.POSITIVE_INFINITY,
i = Number.NEGATIVE_INFINITY;
f.each(e.data.datasets, function (n, o) {
if (e.isDatasetVisible(o)) {
var r = e.getDatasetMeta(o);
f.each(n.data, function (e, n) {
var o = +t.getRightValue(e);
isNaN(o) ||
r.data[n].hidden ||
((a = Math.min(o, a)), (i = Math.max(o, i)));
});
}
}),
(t.min = a === Number.POSITIVE_INFINITY ? 0 : a),
(t.max = i === Number.NEGATIVE_INFINITY ? 0 : i),
t.handleTickRangeOptions();
},
getTickLimit: function () {
var t = this.options.ticks,
e = f.getValueOrDefault(t.fontSize, g.defaultFontSize);
return Math.min(
t.maxTicksLimit ? t.maxTicksLimit : 11,
Math.ceil(this.drawingArea / (1.5 * e))
);
},
convertTicksToLabels: function () {
var e = this;
t.LinearScaleBase.prototype.convertTicksToLabels.call(e),
(e.pointLabels = e.chart.data.labels.map(
e.options.pointLabels.callback,
e
));
},
getLabelForIndex: function (t, e) {
return +this.getRightValue(
this.chart.data.datasets[e].data[t]
);
},
fit: function () {
this.options.lineArc ? r(this) : o(this);
},
setReductions: function (t, e, a) {
var i = this,
n = e.l / Math.sin(a.l),
o = Math.max(e.r - i.width, 0) / Math.sin(a.r),
r = -e.t / Math.cos(a.t),
s = -Math.max(e.b - i.height, 0) / Math.cos(a.b);
(n = h(n)),
(o = h(o)),
(r = h(r)),
(s = h(s)),
(i.drawingArea = Math.min(
Math.round(t - (n + o) / 2),
Math.round(t - (r + s) / 2)
)),
i.setCenterPoint(n, o, r, s);
},
setCenterPoint: function (t, e, a, i) {
var n = this,
o = n.width - e - n.drawingArea,
r = t + n.drawingArea,
s = a + n.drawingArea,
l = n.height - i - n.drawingArea;
(n.xCenter = Math.round((r + o) / 2 + n.left)),
(n.yCenter = Math.round((s + l) / 2 + n.top));
},
getIndexAngle: function (t) {
var a = (2 * Math.PI) / e(this),
i =
this.chart.options && this.chart.options.startAngle
? this.chart.options.startAngle
: 0,
n = (i * Math.PI * 2) / 360;
return t * a + n;
},
getDistanceFromCenterForValue: function (t) {
var e = this;
if (null === t) return 0;
var a = e.drawingArea / (e.max - e.min);
return e.options.reverse ? (e.max - t) * a : (t - e.min) * a;
},
getPointPosition: function (t, e) {
var a = this,
i = a.getIndexAngle(t) - Math.PI / 2;
return {
x: Math.round(Math.cos(i) * e) + a.xCenter,
y: Math.round(Math.sin(i) * e) + a.yCenter,
};
},
getPointPositionForValue: function (t, e) {
return this.getPointPosition(
t,
this.getDistanceFromCenterForValue(e)
);
},
getBasePosition: function () {
var t = this,
e = t.min,
a = t.max;
return t.getPointPositionForValue(
0,
t.beginAtZero
? 0
: e < 0 && a < 0
? a
: e > 0 && a > 0
? e
: 0
);
},
draw: function () {
var t = this,
e = t.options,
a = e.gridLines,
i = e.ticks,
n = f.getValueOrDefault;
if (e.display) {
var o = t.ctx,
r = n(i.fontSize, g.defaultFontSize),
s = n(i.fontStyle, g.defaultFontStyle),
l = n(i.fontFamily, g.defaultFontFamily),
u = f.fontString(r, s, l);
f.each(t.ticks, function (s, l) {
if (l > 0 || e.reverse) {
var d = t.getDistanceFromCenterForValue(
t.ticksAsNumbers[l]
),
h = t.yCenter - d;
if (
(a.display && 0 !== l && c(t, a, d, l), i.display)
) {
var f = n(i.fontColor, g.defaultFontColor);
if (((o.font = u), i.showLabelBackdrop)) {
var p = o.measureText(s).width;
(o.fillStyle = i.backdropColor),
o.fillRect(
t.xCenter - p / 2 - i.backdropPaddingX,
h - r / 2 - i.backdropPaddingY,
p + 2 * i.backdropPaddingX,
r + 2 * i.backdropPaddingY
);
}
(o.textAlign = "center"),
(o.textBaseline = "middle"),
(o.fillStyle = f),
o.fillText(s, t.xCenter, h);
}
}
}),
e.lineArc || d(t);
}
},
});
t.scaleService.registerScaleType("radialLinear", m, p);
};
},
{},
],
48: [
function (t, e, a) {
"use strict";
var i = t(1);
(i = "function" == typeof i ? i : window.moment),
(e.exports = function (t) {
var e = t.helpers,
a = {
units: [
{
name: "millisecond",
steps: [1, 2, 5, 10, 20, 50, 100, 250, 500],
},
{ name: "second", steps: [1, 2, 5, 10, 30] },
{ name: "minute", steps: [1, 2, 5, 10, 30] },
{ name: "hour", steps: [1, 2, 3, 6, 12] },
{ name: "day", steps: [1, 2, 5] },
{ name: "week", maxStep: 4 },
{ name: "month", maxStep: 3 },
{ name: "quarter", maxStep: 4 },
{ name: "year", maxStep: !1 },
],
},
n = {
position: "bottom",
time: {
parser: !1,
format: !1,
unit: !1,
round: !1,
displayFormat: !1,
isoWeekday: !1,
minUnit: "millisecond",
displayFormats: {
millisecond: "h:mm:ss.SSS a",
second: "h:mm:ss a",
minute: "h:mm:ss a",
hour: "MMM D, hA",
day: "ll",
week: "ll",
month: "MMM YYYY",
quarter: "[Q]Q - YYYY",
year: "YYYY",
},
},
ticks: { autoSkip: !1 },
},
o = t.Scale.extend({
initialize: function () {
if (!i)
throw new Error(
"Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com"
);
t.Scale.prototype.initialize.call(this);
},
getLabelMoment: function (t, e) {
return null === t || null === e
? null
: "undefined" != typeof this.labelMoments[t]
? this.labelMoments[t][e]
: null;
},
getLabelDiff: function (t, e) {
var a = this;
return null === t || null === e
? null
: (void 0 === a.labelDiffs && a.buildLabelDiffs(),
"undefined" != typeof a.labelDiffs[t]
? a.labelDiffs[t][e]
: null);
},
getMomentStartOf: function (t) {
var e = this;
return "week" === e.options.time.unit &&
e.options.time.isoWeekday !== !1
? t
.clone()
.startOf("isoWeek")
.isoWeekday(e.options.time.isoWeekday)
: t.clone().startOf(e.tickUnit);
},
determineDataLimits: function () {
var t = this;
t.labelMoments = [];
var a = [];
t.chart.data.labels && t.chart.data.labels.length > 0
? (e.each(
t.chart.data.labels,
function (e) {
var i = t.parseTime(e);
i.isValid() &&
(t.options.time.round &&
i.startOf(t.options.time.round),
a.push(i));
},
t
),
(t.firstTick = i.min.call(t, a)),
(t.lastTick = i.max.call(t, a)))
: ((t.firstTick = null), (t.lastTick = null)),
e.each(
t.chart.data.datasets,
function (n, o) {
var r = [],
s = t.chart.isDatasetVisible(o);
"object" == typeof n.data[0] && null !== n.data[0]
? e.each(
n.data,
function (e) {
var a = t.parseTime(t.getRightValue(e));
a.isValid() &&
(t.options.time.round &&
a.startOf(t.options.time.round),
r.push(a),
s &&
((t.firstTick =
null !== t.firstTick
? i.min(t.firstTick, a)
: a),
(t.lastTick =
null !== t.lastTick
? i.max(t.lastTick, a)
: a)));
},
t
)
: (r = a),
t.labelMoments.push(r);
},
t
),
t.options.time.min &&
(t.firstTick = t.parseTime(t.options.time.min)),
t.options.time.max &&
(t.lastTick = t.parseTime(t.options.time.max)),
(t.firstTick = (t.firstTick || i()).clone()),
(t.lastTick = (t.lastTick || i()).clone());
},
buildLabelDiffs: function () {
var t = this;
t.labelDiffs = [];
var a = [];
t.chart.data.labels &&
t.chart.data.labels.length > 0 &&
e.each(
t.chart.data.labels,
function (e) {
var i = t.parseTime(e);
i.isValid() &&
(t.options.time.round &&
i.startOf(t.options.time.round),
a.push(i.diff(t.firstTick, t.tickUnit, !0)));
},
t
),
e.each(
t.chart.data.datasets,
function (i) {
var n = [];
"object" == typeof i.data[0] && null !== i.data[0]
? e.each(
i.data,
function (e) {
var a = t.parseTime(t.getRightValue(e));
a.isValid() &&
(t.options.time.round &&
a.startOf(t.options.time.round),
n.push(
a.diff(t.firstTick, t.tickUnit, !0)
));
},
t
)
: (n = a),
t.labelDiffs.push(n);
},
t
);
},
buildTicks: function () {
var i = this;
i.ctx.save();
var n = e.getValueOrDefault(
i.options.ticks.fontSize,
t.defaults.global.defaultFontSize
),
o = e.getValueOrDefault(
i.options.ticks.fontStyle,
t.defaults.global.defaultFontStyle
),
r = e.getValueOrDefault(
i.options.ticks.fontFamily,
t.defaults.global.defaultFontFamily
),
s = e.fontString(n, o, r);
if (
((i.ctx.font = s),
(i.ticks = []),
(i.unitScale = 1),
(i.scaleSizeInUnits = 0),
i.options.time.unit)
)
(i.tickUnit = i.options.time.unit || "day"),
(i.displayFormat =
i.options.time.displayFormats[i.tickUnit]),
(i.scaleSizeInUnits = i.lastTick.diff(
i.firstTick,
i.tickUnit,
!0
)),
(i.unitScale = e.getValueOrDefault(
i.options.time.unitStepSize,
1
));
else {
var l = i.isHorizontal() ? i.width : i.height,
u = i.tickFormatFunction(i.firstTick, 0, []),
d = i.ctx.measureText(u).width,
c = Math.cos(e.toRadians(i.options.ticks.maxRotation)),
h = Math.sin(e.toRadians(i.options.ticks.maxRotation));
d = d * c + n * h;
var f = l / d;
(i.tickUnit = i.options.time.minUnit),
(i.scaleSizeInUnits = i.lastTick.diff(
i.firstTick,
i.tickUnit,
!0
)),
(i.displayFormat =
i.options.time.displayFormats[i.tickUnit]);
for (var g = 0, p = a.units[g]; g < a.units.length; ) {
if (
((i.unitScale = 1),
e.isArray(p.steps) &&
Math.ceil(i.scaleSizeInUnits / f) < e.max(p.steps))
) {
for (var m = 0; m < p.steps.length; ++m)
if (
p.steps[m] >= Math.ceil(i.scaleSizeInUnits / f)
) {
i.unitScale = e.getValueOrDefault(
i.options.time.unitStepSize,
p.steps[m]
);
break;
}
break;
}
if (
p.maxStep === !1 ||
Math.ceil(i.scaleSizeInUnits / f) < p.maxStep
) {
i.unitScale = e.getValueOrDefault(
i.options.time.unitStepSize,
Math.ceil(i.scaleSizeInUnits / f)
);
break;
}
++g, (p = a.units[g]), (i.tickUnit = p.name);
var v = i.firstTick.diff(
i.getMomentStartOf(i.firstTick),
i.tickUnit,
!0
),
b = i
.getMomentStartOf(
i.lastTick.clone().add(1, i.tickUnit)
)
.diff(i.lastTick, i.tickUnit, !0);
(i.scaleSizeInUnits =
i.lastTick.diff(i.firstTick, i.tickUnit, !0) + v + b),
(i.displayFormat =
i.options.time.displayFormats[p.name]);
}
}
var x;
if (
(i.options.time.min
? (x = i.getMomentStartOf(i.firstTick))
: ((i.firstTick = i.getMomentStartOf(i.firstTick)),
(x = i.firstTick)),
!i.options.time.max)
) {
var y = i.getMomentStartOf(i.lastTick),
k = y.diff(i.lastTick, i.tickUnit, !0);
k < 0
? (i.lastTick = i.getMomentStartOf(
i.lastTick.add(1, i.tickUnit)
))
: k >= 0 && (i.lastTick = y),
(i.scaleSizeInUnits = i.lastTick.diff(
i.firstTick,
i.tickUnit,
!0
));
}
i.options.time.displayFormat &&
(i.displayFormat = i.options.time.displayFormat),
i.ticks.push(i.firstTick.clone());
for (
var S = i.unitScale;
S <= i.scaleSizeInUnits;
S += i.unitScale
) {
var M = x.clone().add(S, i.tickUnit);
if (
i.options.time.max &&
M.diff(i.lastTick, i.tickUnit, !0) >= 0
)
break;
i.ticks.push(M);
}
var w = i.ticks[i.ticks.length - 1].diff(
i.lastTick,
i.tickUnit
);
(0 === w && 0 !== i.scaleSizeInUnits) ||
(i.options.time.max
? (i.ticks.push(i.lastTick.clone()),
(i.scaleSizeInUnits = i.lastTick.diff(
i.ticks[0],
i.tickUnit,
!0
)))
: (i.ticks.push(i.lastTick.clone()),
(i.scaleSizeInUnits = i.lastTick.diff(
i.firstTick,
i.tickUnit,
!0
)))),
i.ctx.restore(),
(i.labelDiffs = void 0);
},
getLabelForIndex: function (t, e) {
var a = this,
i =
a.chart.data.labels && t < a.chart.data.labels.length
? a.chart.data.labels[t]
: "",
n = a.chart.data.datasets[e].data[t];
return (
null !== n &&
"object" == typeof n &&
(i = a.getRightValue(n)),
a.options.time.tooltipFormat &&
(i = a
.parseTime(i)
.format(a.options.time.tooltipFormat)),
i
);
},
tickFormatFunction: function (t, a, i) {
var n = t.format(this.displayFormat),
o = this.options.ticks,
r = e.getValueOrDefault(o.callback, o.userCallback);
return r ? r(n, a, i) : n;
},
convertTicksToLabels: function () {
var t = this;
(t.tickMoments = t.ticks),
(t.ticks = t.ticks.map(t.tickFormatFunction, t));
},
getPixelForValue: function (t, e, a) {
var i = this,
n = null;
if (
(void 0 !== e &&
void 0 !== a &&
(n = i.getLabelDiff(a, e)),
null === n &&
((t && t.isValid) ||
(t = i.parseTime(i.getRightValue(t))),
t &&
t.isValid &&
t.isValid() &&
(n = t.diff(i.firstTick, i.tickUnit, !0))),
null !== n)
) {
var o = 0 !== n ? n / i.scaleSizeInUnits : n;
if (i.isHorizontal()) {
var r = i.width * o;
return i.left + Math.round(r);
}
var s = i.height * o;
return i.top + Math.round(s);
}
},
getPixelForTick: function (t) {
return this.getPixelForValue(
this.tickMoments[t],
null,
null
);
},
getValueForPixel: function (t) {
var e = this,
a = e.isHorizontal() ? e.width : e.height,
n = (t - (e.isHorizontal() ? e.left : e.top)) / a;
return (
(n *= e.scaleSizeInUnits),
e.firstTick
.clone()
.add(i.duration(n, e.tickUnit).asSeconds(), "seconds")
);
},
parseTime: function (t) {
var e = this;
return "string" == typeof e.options.time.parser
? i(t, e.options.time.parser)
: "function" == typeof e.options.time.parser
? e.options.time.parser(t)
: "function" == typeof t.getMonth || "number" == typeof t
? i(t)
: t.isValid && t.isValid()
? t
: "string" != typeof e.options.time.format &&
e.options.time.format.call
? (console.warn(
"options.time.format is deprecated and replaced by options.time.parser. See http://nnnick.github.io/Chart.js/docs-v2/#scales-time-scale"
),
e.options.time.format(t))
: i(t, e.options.time.format);
},
});
t.scaleService.registerScaleType("time", o, n);
});
},
{ 1: 1 },
],
},
{},
[7]
)(7);
});