{"ast":null,"code":"import _toConsumableArray from \"/Users/paolasanchez/Desktop/Pry4/Katoikia/katoikia-app/web-ui/sakai-react/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"/Users/paolasanchez/Desktop/Pry4/Katoikia/katoikia-app/web-ui/sakai-react/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"/Users/paolasanchez/Desktop/Pry4/Katoikia/katoikia-app/web-ui/sakai-react/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/Users/paolasanchez/Desktop/Pry4/Katoikia/katoikia-app/web-ui/sakai-react/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport _createForOfIteratorHelper from \"/Users/paolasanchez/Desktop/Pry4/Katoikia/katoikia-app/web-ui/sakai-react/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\n\n/*!\n * Chart.js v3.3.2\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\nvar requestAnimFrame = function () {\n if (typeof window === 'undefined') {\n return function (callback) {\n return callback();\n };\n }\n\n return window.requestAnimationFrame;\n}();\n\nfunction throttled(fn, thisArg, updateFn) {\n var updateArgs = updateFn || function (args) {\n return Array.prototype.slice.call(args);\n };\n\n var ticking = false;\n var args = [];\n return function () {\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n\n args = updateArgs(rest);\n\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, function () {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\n\nfunction debounce(fn, delay) {\n var timeout;\n return function () {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay);\n } else {\n fn();\n }\n\n return delay;\n };\n}\n\nvar _toLeftRightCenter = function _toLeftRightCenter(align) {\n return align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n};\n\nvar _alignStartEnd = function _alignStartEnd(align, start, end) {\n return align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n};\n\nvar _textX = function _textX(align, left, right) {\n return align === 'right' ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\n\nvar uid = function () {\n var id = 0;\n return function () {\n return id++;\n };\n}();\n\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\n\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n\n var type = Object.prototype.toString.call(value);\n\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n\n return false;\n}\n\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\nvar isNumberFinite = function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n};\n\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nvar toPercentage = function toPercentage(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : value / dimension;\n};\n\nvar toDimension = function toDimension(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n};\n\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\nfunction each(loopable, fn, thisArg, reverse) {\n var i, len, keys;\n\n if (isArray(loopable)) {\n len = loopable.length;\n\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\nfunction _elementsEqual(a0, a1) {\n var i, ilen, v0, v1;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n\n if (isObject(source)) {\n var target = Object.create(null);\n var keys = Object.keys(source);\n var klen = keys.length;\n var k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\n\nfunction merge(target, source, options) {\n var sources = isArray(source) ? source : [source];\n var ilen = sources.length;\n\n if (!isObject(target)) {\n return target;\n }\n\n options = options || {};\n var merger = options.merger || _merger;\n\n for (var i = 0; i < ilen; ++i) {\n source = sources[i];\n\n if (!isObject(source)) {\n continue;\n }\n\n var keys = Object.keys(source);\n\n for (var k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n\n return target;\n}\n\nfunction mergeIf(target, source) {\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\n\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\nvar emptyString = '';\nvar dot = '.';\n\nfunction indexOfDotOrLength(key, start) {\n var idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\n\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n\n var pos = 0;\n var idx = indexOfDotOrLength(key, pos);\n\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n\n return obj;\n}\n\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nvar defined = function defined(value) {\n return typeof value !== 'undefined';\n};\n\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n\nvar setsEqual = function setsEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n\n var _iterator = _createForOfIteratorHelper(a),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n\n if (!b.has(item)) {\n return false;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return true;\n};\n\nvar PI = Math.PI;\nvar TAU = 2 * PI;\nvar PITAU = TAU + PI;\nvar INFINITY = Number.POSITIVE_INFINITY;\nvar RAD_PER_DEG = PI / 180;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\nvar log10 = Math.log10;\nvar sign = Math.sign;\n\nfunction niceNum(range) {\n var niceRange = Math.pow(10, Math.floor(log10(range)));\n var fraction = range / niceRange;\n var niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\nfunction _factorize(value) {\n var result = [];\n var sqrt = Math.sqrt(value);\n var i;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n\n result.sort(function (a, b) {\n return a - b;\n }).pop();\n return result;\n}\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n\nfunction almostWhole(x, epsilon) {\n var rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n\nfunction _setMinAndMaxByKey(array, target, property) {\n var i, ilen, value;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\n\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n\n var e = 1;\n var p = 0;\n\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n var distanceFromXCenter = anglePoint.x - centrePoint.x;\n var distanceFromYCenter = anglePoint.y - centrePoint.y;\n var radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < -0.5 * PI) {\n angle += TAU;\n }\n\n return {\n angle: angle,\n distance: radialDistanceFromCenter\n };\n}\n\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n var a = _normalizeAngle(angle);\n\n var s = _normalizeAngle(start);\n\n var e = _normalizeAngle(end);\n\n var angleToStart = _normalizeAngle(s - a);\n\n var angleToEnd = _normalizeAngle(e - a);\n\n var startToAngle = _normalizeAngle(a - s);\n\n var endToAngle = _normalizeAngle(a - e);\n\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n\nvar atEdge = function atEdge(t) {\n return t === 0 || t === 1;\n};\n\nvar elasticIn = function elasticIn(t, s, p) {\n return -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\n};\n\nvar elasticOut = function elasticOut(t, s, p) {\n return Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n};\n\nvar effects = {\n linear: function linear(t) {\n return t;\n },\n easeInQuad: function easeInQuad(t) {\n return t * t;\n },\n easeOutQuad: function easeOutQuad(t) {\n return -t * (t - 2);\n },\n easeInOutQuad: function easeInOutQuad(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1);\n },\n easeInCubic: function easeInCubic(t) {\n return t * t * t;\n },\n easeOutCubic: function easeOutCubic(t) {\n return (t -= 1) * t * t + 1;\n },\n easeInOutCubic: function easeInOutCubic(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2);\n },\n easeInQuart: function easeInQuart(t) {\n return t * t * t * t;\n },\n easeOutQuart: function easeOutQuart(t) {\n return -((t -= 1) * t * t * t - 1);\n },\n easeInOutQuart: function easeInOutQuart(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2);\n },\n easeInQuint: function easeInQuint(t) {\n return t * t * t * t * t;\n },\n easeOutQuint: function easeOutQuint(t) {\n return (t -= 1) * t * t * t * t + 1;\n },\n easeInOutQuint: function easeInOutQuint(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2);\n },\n easeInSine: function easeInSine(t) {\n return -Math.cos(t * HALF_PI) + 1;\n },\n easeOutSine: function easeOutSine(t) {\n return Math.sin(t * HALF_PI);\n },\n easeInOutSine: function easeInOutSine(t) {\n return -0.5 * (Math.cos(PI * t) - 1);\n },\n easeInExpo: function easeInExpo(t) {\n return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));\n },\n easeOutExpo: function easeOutExpo(t) {\n return t === 1 ? 1 : -Math.pow(2, -10 * t) + 1;\n },\n easeInOutExpo: function easeInOutExpo(t) {\n return atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2);\n },\n easeInCirc: function easeInCirc(t) {\n return t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1);\n },\n easeOutCirc: function easeOutCirc(t) {\n return Math.sqrt(1 - (t -= 1) * t);\n },\n easeInOutCirc: function easeInOutCirc(t) {\n return (t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n },\n easeInElastic: function easeInElastic(t) {\n return atEdge(t) ? t : elasticIn(t, 0.075, 0.3);\n },\n easeOutElastic: function easeOutElastic(t) {\n return atEdge(t) ? t : elasticOut(t, 0.075, 0.3);\n },\n easeInOutElastic: function easeInOutElastic(t) {\n var s = 0.1125;\n var p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack: function easeInBack(t) {\n var s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack: function easeOutBack(t) {\n var s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack: function easeInOutBack(t) {\n var s = 1.70158;\n\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: function easeInBounce(t) {\n return 1 - effects.easeOutBounce(1 - t);\n },\n easeOutBounce: function easeOutBounce(t) {\n var m = 7.5625;\n var d = 2.75;\n\n if (t < 1 / d) {\n return m * t * t;\n }\n\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: function easeInOutBounce(t) {\n return t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n }\n};\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\n\nvar map = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15\n};\nvar hex = '0123456789ABCDEF';\n\nvar h1 = function h1(b) {\n return hex[b & 0xF];\n};\n\nvar h2 = function h2(b) {\n return hex[(b & 0xF0) >> 4] + hex[b & 0xF];\n};\n\nvar eq = function eq(b) {\n return (b & 0xF0) >> 4 === (b & 0xF);\n};\n\nfunction isShort(v) {\n return eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\n\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map[str[1]] * 17,\n g: 255 & map[str[2]] * 17,\n b: 255 & map[str[3]] * 17,\n a: len === 5 ? map[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map[str[1]] << 4 | map[str[2]],\n g: map[str[3]] << 4 | map[str[4]],\n b: map[str[5]] << 4 | map[str[6]],\n a: len === 9 ? map[str[7]] << 4 | map[str[8]] : 255\n };\n }\n }\n\n return ret;\n}\n\nfunction _hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v ? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '') : v;\n}\n\nfunction round(v) {\n return v + 0.5 | 0;\n}\n\nvar lim = function lim(v, l, h) {\n return Math.max(Math.min(v, h), l);\n};\n\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\n\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\n\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\n\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nvar RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction rgbParse(str) {\n var m = RGB_RE.exec(str);\n var a = 255;\n var r, g, b;\n\n if (!m) {\n return;\n }\n\n if (m[7] !== r) {\n var v = +m[7];\n a = 255 & (m[8] ? p2b(v) : v * 255);\n }\n\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : r);\n g = 255 & (m[4] ? p2b(g) : g);\n b = 255 & (m[6] ? p2b(b) : b);\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\n\nfunction _rgbString(v) {\n return v && (v.a < 255 ? \"rgba(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \", \").concat(b2n(v.a), \")\") : \"rgb(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \")\"));\n}\n\nvar HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction hsl2rgbn(h, s, l) {\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n return [f(0), f(8), f(4)];\n}\n\nfunction hsv2rgbn(h, s, v) {\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n\n return [f(5), f(3), f(1)];\n}\n\nfunction hwb2rgbn(h, w, b) {\n var rgb = hsl2rgbn(h, 1, 0.5);\n var i;\n\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n\n return rgb;\n}\n\nfunction rgb2hsl(v) {\n var range = 255;\n var r = v.r / range;\n var g = v.g / range;\n var b = v.b / range;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var l = (max + min) / 2;\n var h, s, d;\n\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h = h * 60 + 0.5;\n }\n\n return [h | 0, s || 0, l];\n}\n\nfunction calln(f, a, b, c) {\n return (Array.isArray(a) ? f(a[0], a[1], a[2]) : f(a, b, c)).map(n2b);\n}\n\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\n\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\n\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\n\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\n\nfunction hueParse(str) {\n var m = HUE_RE.exec(str);\n var a = 255;\n var v;\n\n if (!m) {\n return;\n }\n\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n\n var h = hue(+m[2]);\n var p1 = +m[3] / 100;\n var p2 = +m[4] / 100;\n\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\n\nfunction _rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\n\nfunction _hslString(v) {\n if (!v) {\n return;\n }\n\n var a = rgb2hsl(v);\n var h = a[0];\n var s = n2p(a[1]);\n var l = n2p(a[2]);\n return v.a < 255 ? \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(b2n(v.a), \")\") : \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\");\n}\n\nvar map$1 = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nvar names = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\n\nfunction unpack() {\n var unpacked = {};\n var keys = Object.keys(names);\n var tkeys = Object.keys(map$1);\n var i, j, k, ok, nk;\n\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map$1[k]);\n }\n\n k = parseInt(names[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n\n return unpacked;\n}\n\nvar names$1;\n\nfunction nameParse(str) {\n if (!names$1) {\n names$1 = unpack();\n names$1.transparent = [0, 0, 0, 0];\n }\n\n var a = names$1[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n var tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\n\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\n\nfunction fromObject(input) {\n var v = {\n r: 0,\n g: 0,\n b: 0,\n a: 255\n };\n\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {\n r: input[0],\n g: input[1],\n b: input[2],\n a: 255\n };\n\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {\n r: 0,\n g: 0,\n b: 0,\n a: 1\n });\n v.a = n2b(v.a);\n }\n\n return v;\n}\n\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n\n return hueParse(str);\n}\n\nvar Color = /*#__PURE__*/function () {\n function Color(input) {\n _classCallCheck(this, Color);\n\n if (input instanceof Color) {\n return input;\n }\n\n var type = typeof input;\n var v;\n\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n\n this._rgb = v;\n this._valid = !!v;\n }\n\n _createClass(Color, [{\n key: \"valid\",\n get: function get() {\n return this._valid;\n }\n }, {\n key: \"rgb\",\n get: function get() {\n var v = clone(this._rgb);\n\n if (v) {\n v.a = b2n(v.a);\n }\n\n return v;\n },\n set: function set(obj) {\n this._rgb = fromObject(obj);\n }\n }, {\n key: \"rgbString\",\n value: function rgbString() {\n return this._valid ? _rgbString(this._rgb) : this._rgb;\n }\n }, {\n key: \"hexString\",\n value: function hexString() {\n return this._valid ? _hexString(this._rgb) : this._rgb;\n }\n }, {\n key: \"hslString\",\n value: function hslString() {\n return this._valid ? _hslString(this._rgb) : this._rgb;\n }\n }, {\n key: \"mix\",\n value: function mix(color, weight) {\n var me = this;\n\n if (color) {\n var c1 = me.rgb;\n var c2 = color.rgb;\n var w2;\n var p = weight === w2 ? 0.5 : weight;\n var w = 2 * p - 1;\n var a = c1.a - c2.a;\n var w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n me.rgb = c1;\n }\n\n return me;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new Color(this.rgb);\n }\n }, {\n key: \"alpha\",\n value: function alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n }, {\n key: \"clearer\",\n value: function clearer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n }, {\n key: \"greyscale\",\n value: function greyscale() {\n var rgb = this._rgb;\n var val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n }, {\n key: \"opaquer\",\n value: function opaquer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n }, {\n key: \"negate\",\n value: function negate() {\n var v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n }, {\n key: \"lighten\",\n value: function lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n }, {\n key: \"darken\",\n value: function darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n }, {\n key: \"saturate\",\n value: function saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n }, {\n key: \"desaturate\",\n value: function desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n }, {\n key: \"rotate\",\n value: function rotate(deg) {\n _rotate(this._rgb, deg);\n\n return this;\n }\n }]);\n\n return Color;\n}();\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nvar isPatternOrGradient = function isPatternOrGradient(value) {\n return value instanceof CanvasGradient || value instanceof CanvasPattern;\n};\n\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\n\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nvar overrides = Object.create(null);\nvar descriptors = Object.create(null);\n\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n\n var keys = key.split('.');\n\n for (var i = 0, n = keys.length; i < n; ++i) {\n var k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n\n return node;\n}\n\nfunction _set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n\n return merge(getScope$1(root, ''), scope);\n}\n\nvar Defaults = /*#__PURE__*/function () {\n function Defaults(_descriptors) {\n _classCallCheck(this, Defaults);\n\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n\n this.devicePixelRatio = function (context) {\n return context.chart.platform.getDevicePixelRatio();\n };\n\n this.elements = {};\n this.events = ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n\n this.hoverBackgroundColor = function (ctx, options) {\n return getHoverColor(options.backgroundColor);\n };\n\n this.hoverBorderColor = function (ctx, options) {\n return getHoverColor(options.borderColor);\n };\n\n this.hoverColor = function (ctx, options) {\n return getHoverColor(options.color);\n };\n\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.describe(_descriptors);\n }\n\n _createClass(Defaults, [{\n key: \"set\",\n value: function set(scope, values) {\n return _set(this, scope, values);\n }\n }, {\n key: \"get\",\n value: function get(scope) {\n return getScope$1(this, scope);\n }\n }, {\n key: \"describe\",\n value: function describe(scope, values) {\n return _set(descriptors, scope, values);\n }\n }, {\n key: \"override\",\n value: function override(scope, values) {\n return _set(overrides, scope, values);\n }\n }, {\n key: \"route\",\n value: function route(scope, name, targetScope, targetName) {\n var _Object$definePropert;\n\n var scopeObject = getScope$1(this, scope);\n var targetScopeObject = getScope$1(this, targetScope);\n var privateName = '_' + name;\n Object.defineProperties(scopeObject, (_Object$definePropert = {}, _defineProperty(_Object$definePropert, privateName, {\n value: scopeObject[name],\n writable: true\n }), _defineProperty(_Object$definePropert, name, {\n enumerable: true,\n get: function get() {\n var local = this[privateName];\n var target = targetScopeObject[targetName];\n\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n\n return valueOrDefault(local, target);\n },\n set: function set(value) {\n this[privateName] = value;\n }\n }), _Object$definePropert));\n }\n }]);\n\n return Defaults;\n}();\n\nvar defaults = new Defaults({\n _scriptable: function _scriptable(name) {\n return !name.startsWith('on');\n },\n _indexable: function _indexable(name) {\n return name !== 'events';\n },\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n\nfunction _measureText(ctx, data, gc, longest, string) {\n var textWidth = data[string];\n\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n\n if (textWidth > longest) {\n longest = textWidth;\n }\n\n return longest;\n}\n\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n var data = cache.data = cache.data || {};\n var gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n ctx.font = font;\n var longest = 0;\n var ilen = arrayOfThings.length;\n var i, j, jlen, thing, nestedThing;\n\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n var gcLen = gc.length / 2;\n\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n\n gc.splice(0, gcLen);\n }\n\n return longest;\n}\n\nfunction _alignPixel(chart, pixel, width) {\n var devicePixelRatio = chart.currentDevicePixelRatio;\n var halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\n\nfunction drawPoint(ctx, options, x, y) {\n var type, xOffset, yOffset, size, cornerRadius;\n var style = options.pointStyle;\n var rotation = options.rotation;\n var radius = options.radius;\n var rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && typeof style === 'object') {\n type = style.toString();\n\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n\n rad += QUARTER_PI;\n\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n\n case 'crossRot':\n rad += QUARTER_PI;\n\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\n\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\n\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n if (mode === 'middle') {\n var midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n\n ctx.lineTo(target.x, target.y);\n}\n\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\n\nfunction renderText(ctx, text, x, y, font) {\n var opts = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var lines = isArray(text) ? text : [text];\n var stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n var i, line;\n ctx.save();\n\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n ctx.font = font.string;\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n\n if (opts.strikethrough || opts.underline) {\n var metrics = ctx.measureText(line);\n var left = x - metrics.actualBoundingBoxLeft;\n var right = x + metrics.actualBoundingBoxRight;\n var top = y - metrics.actualBoundingBoxAscent;\n var bottom = y + metrics.actualBoundingBoxDescent;\n var yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n\n y += font.lineHeight;\n }\n\n ctx.restore();\n}\n\nfunction addRoundedRectPath(ctx, rect) {\n var x = rect.x,\n y = rect.y,\n w = rect.w,\n h = rect.h,\n radius = rect.radius;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nvar LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nvar FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\n\nfunction toLineHeight(value, size) {\n var matches = ('' + value).match(LINE_HEIGHT);\n\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n\n case '%':\n value /= 100;\n break;\n }\n\n return size * value;\n}\n\nvar numberOrZero = function numberOrZero(v) {\n return +v || 0;\n};\n\nfunction _readValueToProps(value, props) {\n var ret = {};\n var objProps = isObject(props);\n var keys = objProps ? Object.keys(props) : props;\n var read = isObject(value) ? objProps ? function (prop) {\n return valueOrDefault(value[prop], value[props[prop]]);\n } : function (prop) {\n return value[prop];\n } : function () {\n return value;\n };\n\n var _iterator2 = _createForOfIteratorHelper(keys),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var prop = _step2.value;\n ret[prop] = numberOrZero(read(prop));\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return ret;\n}\n\nfunction toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\nfunction toPadding(value) {\n var obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n var size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n var style = valueOrDefault(options.style, fallback.style);\n\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n\n var font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size: size,\n style: style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n\nfunction resolve(inputs, context, index, info) {\n var cacheable = true;\n var i, ilen, value;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n\n if (value === undefined) {\n continue;\n }\n\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n\n return value;\n }\n }\n}\n\nfunction _addGrace(minmax, grace) {\n var min = minmax.min,\n max = minmax.max;\n return {\n min: min - Math.abs(toDimension(grace, min)),\n max: max + toDimension(grace, max)\n };\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || function (index) {\n return table[index] < value;\n };\n\n var hi = table.length - 1;\n var lo = 0;\n var mid;\n\n while (hi - lo > 1) {\n mid = lo + hi >> 1;\n\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {\n lo: lo,\n hi: hi\n };\n}\n\nvar _lookupByKey = function _lookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] < value;\n });\n};\n\nvar _rlookupByKey = function _rlookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] >= value;\n });\n};\n\nfunction _filterBetween(values, min, max) {\n var start = 0;\n var end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach(function (key) {\n var method = '_onData' + _capitalize(key);\n\n var base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value: function value() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var res = base.apply(this, args);\n\n array._chartjs.listeners.forEach(function (object) {\n if (typeof object[method] === 'function') {\n object[method].apply(object, args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\nfunction unlistenArrayEvents(array, listener) {\n var stub = array._chartjs;\n\n if (!stub) {\n return;\n }\n\n var listeners = stub.listeners;\n var index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach(function (key) {\n delete array[key];\n });\n delete array._chartjs;\n}\n\nfunction _arrayUnique(items) {\n var set = new Set();\n var i, ilen;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n\n if (set.size === ilen) {\n return items;\n }\n\n var result = [];\n set.forEach(function (item) {\n result.push(item);\n });\n return result;\n}\n\nfunction _createResolver(scopes) {\n var _cache;\n\n var prefixes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [''];\n var rootScopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : scopes;\n var fallback = arguments.length > 3 ? arguments[3] : undefined;\n var getTarget = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {\n return scopes[0];\n };\n\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n\n var cache = (_cache = {}, _defineProperty(_cache, Symbol.toStringTag, 'Object'), _defineProperty(_cache, \"_cacheable\", true), _defineProperty(_cache, \"_scopes\", scopes), _defineProperty(_cache, \"_rootScopes\", rootScopes), _defineProperty(_cache, \"_fallback\", fallback), _defineProperty(_cache, \"_getTarget\", getTarget), _defineProperty(_cache, \"override\", function override(scope) {\n return _createResolver([scope].concat(_toConsumableArray(scopes)), prefixes, rootScopes, fallback);\n }), _cache);\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get: function get(target, prop) {\n return _cached(target, prop, function () {\n return _resolveWithPrefixes(prop, prefixes, scopes, target);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has: function has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys: function ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set: function set(target, prop, value) {\n var storage = target._storage || (target._storage = getTarget());\n storage[prop] = value;\n delete target[prop];\n delete target._keys;\n return true;\n }\n });\n}\n\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n var cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: function setContext(ctx) {\n return _attachContext(proxy, ctx, subProxy, descriptorDefaults);\n },\n override: function override(scope) {\n return _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults);\n }\n };\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get: function get(target, prop, receiver) {\n return _cached(target, prop, function () {\n return _resolveWithContext(target, prop, receiver);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has: function has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys: function ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set: function set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\n\nfunction _descriptors(proxy) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n scriptable: true,\n indexable: true\n };\n\n var _proxy$_scriptable = proxy._scriptable,\n _scriptable = _proxy$_scriptable === void 0 ? defaults.scriptable : _proxy$_scriptable,\n _proxy$_indexable = proxy._indexable,\n _indexable = _proxy$_indexable === void 0 ? defaults.indexable : _proxy$_indexable,\n _proxy$_allKeys = proxy._allKeys,\n _allKeys = _proxy$_allKeys === void 0 ? defaults.allKeys : _proxy$_allKeys;\n\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : function () {\n return _scriptable;\n },\n isIndexable: isFunction(_indexable) ? _indexable : function () {\n return _indexable;\n }\n };\n}\n\nvar readKey = function readKey(prefix, name) {\n return prefix ? prefix + _capitalize(name) : name;\n};\n\nvar needsSubResolver = function needsSubResolver(prop, value) {\n return isObject(value) && prop !== 'adapters';\n};\n\nfunction _cached(target, prop, resolve) {\n var value = target[prop];\n\n if (defined(value)) {\n return value;\n }\n\n value = resolve();\n\n if (defined(value)) {\n target[prop] = value;\n }\n\n return value;\n}\n\nfunction _resolveWithContext(target, prop, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n var value = _proxy[prop];\n\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n\n return value;\n}\n\nfunction _resolveScriptable(prop, value, target, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n _stack = target._stack;\n\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + _toConsumableArray(_stack).join('->') + '->' + prop);\n }\n\n _stack.add(prop);\n\n value = value(_context, _subProxy || receiver);\n\n _stack.delete(prop);\n\n if (isObject(value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n\n return value;\n}\n\nfunction _resolveArray(prop, value, target, isIndexable) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n var arr = value;\n\n var scopes = _proxy._scopes.filter(function (s) {\n return s !== arr;\n });\n\n value = [];\n\n var _iterator3 = _createForOfIteratorHelper(arr),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var item = _step3.value;\n var resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n\n return value;\n}\n\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nvar getScope = function getScope(key, parent) {\n return key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n};\n\nfunction addScopes(set, parentScopes, key, parentFallback) {\n var _iterator4 = _createForOfIteratorHelper(parentScopes),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var parent = _step4.value;\n var scope = getScope(key, parent);\n\n if (scope) {\n set.add(scope);\n var fallback = resolveFallback(scope._fallback, key, scope);\n\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return false;\n}\n\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n var rootScopes = resolver._rootScopes;\n var fallback = resolveFallback(resolver._fallback, prop, value);\n var allScopes = [].concat(_toConsumableArray(parentScopes), _toConsumableArray(rootScopes));\n var set = new Set();\n set.add(value);\n var key = addScopesFromKey(set, allScopes, prop, fallback || prop);\n\n if (key === null) {\n return false;\n }\n\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key);\n\n if (key === null) {\n return false;\n }\n }\n\n return _createResolver(_toConsumableArray(set), [''], rootScopes, fallback, function () {\n return subGetTarget(resolver, prop, value);\n });\n}\n\nfunction addScopesFromKey(set, allScopes, key, fallback) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback);\n }\n\n return key;\n}\n\nfunction subGetTarget(resolver, prop, value) {\n var parent = resolver._getTarget();\n\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n\n var target = parent[prop];\n\n if (isArray(target) && isObject(value)) {\n return value;\n }\n\n return target;\n}\n\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n var value;\n\n var _iterator5 = _createForOfIteratorHelper(prefixes),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var prefix = _step5.value;\n value = _resolve(readKey(prefix, prop), scopes);\n\n if (defined(value)) {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n}\n\nfunction _resolve(key, scopes) {\n var _iterator6 = _createForOfIteratorHelper(scopes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var scope = _step6.value;\n\n if (!scope) {\n continue;\n }\n\n var value = scope[key];\n\n if (defined(value)) {\n return value;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n}\n\nfunction getKeysFromAllScopes(target) {\n var keys = target._keys;\n\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes) {\n var set = new Set();\n\n var _iterator7 = _createForOfIteratorHelper(scopes),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var scope = _step7.value;\n\n var _iterator8 = _createForOfIteratorHelper(Object.keys(scope).filter(function (k) {\n return !k.startsWith('_');\n })),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var key = _step8.value;\n set.add(key);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return _toConsumableArray(set);\n}\n\nvar EPSILON = Number.EPSILON || 1e-14;\n\nvar getPoint = function getPoint(points, i) {\n return i < points.length && !points[i].skip && points[i];\n};\n\nvar getValueAxis = function getValueAxis(indexAxis) {\n return indexAxis === 'x' ? 'y' : 'x';\n};\n\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n var previous = firstPoint.skip ? middlePoint : firstPoint;\n var current = middlePoint;\n var next = afterPoint.skip ? middlePoint : afterPoint;\n var d01 = distanceBetweenPoints(current, previous);\n var d12 = distanceBetweenPoints(next, current);\n var s01 = d01 / (d01 + d12);\n var s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n var fa = t * s01;\n var fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n\nfunction monotoneAdjust(points, deltaK, mK) {\n var pointsLen = points.length;\n var alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points, mK) {\n var indexAxis = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var delta, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n var iPixel = pointCurrent[indexAxis];\n var vPixel = pointCurrent[valueAxis];\n\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[\"cp1\".concat(indexAxis)] = iPixel - delta;\n pointCurrent[\"cp1\".concat(valueAxis)] = vPixel - delta * mK[i];\n }\n\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[\"cp2\".concat(indexAxis)] = iPixel + delta;\n pointCurrent[\"cp2\".concat(valueAxis)] = vPixel + delta * mK[i];\n }\n }\n}\n\nfunction splineCurveMonotone(points) {\n var indexAxis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var deltaK = Array(pointsLen).fill(0);\n var mK = Array(pointsLen);\n var i, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n var slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points, area) {\n var i, ilen, point, inArea, inAreaPrev;\n\n var inAreaNext = _isPointInArea(points[0], area);\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n\n if (!inArea) {\n continue;\n }\n\n point = points[i];\n\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n var i, ilen, point, controlPoints;\n\n if (options.spanGaps) {\n points = points.filter(function (pt) {\n return !pt.skip;\n });\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n var prev = loop ? points[points.length - 1] : points[0];\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _getParentNode(domNode) {\n var parent = domNode.parentNode;\n\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n\n return parent;\n}\n\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n var valueInPixels;\n\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nvar getComputedStyle = function getComputedStyle(element) {\n return window.getComputedStyle(element, null);\n};\n\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nvar positions = ['top', 'right', 'bottom', 'left'];\n\nfunction getPositionedStyle(styles, style, suffix) {\n var result = {};\n suffix = suffix ? '-' + suffix : '';\n\n for (var i = 0; i < 4; i++) {\n var pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nvar useOffsetPos = function useOffsetPos(x, y, target) {\n return (x > 0 || y > 0) && (!target || !target.shadowRoot);\n};\n\nfunction getCanvasPosition(evt, canvas) {\n var e = evt.native || evt;\n var touches = e.touches;\n var source = touches && touches.length ? touches[0] : e;\n var offsetX = source.offsetX,\n offsetY = source.offsetY;\n var box = false;\n var x, y;\n\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n var rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n\n return {\n x: x,\n y: y,\n box: box\n };\n}\n\nfunction getRelativePosition(evt, chart) {\n var canvas = chart.canvas,\n currentDevicePixelRatio = chart.currentDevicePixelRatio;\n var style = getComputedStyle(canvas);\n var borderBox = style.boxSizing === 'border-box';\n var paddings = getPositionedStyle(style, 'padding');\n var borders = getPositionedStyle(style, 'border', 'width');\n\n var _getCanvasPosition = getCanvasPosition(evt, canvas),\n x = _getCanvasPosition.x,\n y = _getCanvasPosition.y,\n box = _getCanvasPosition.box;\n\n var xOffset = paddings.left + (box && borders.left);\n var yOffset = paddings.top + (box && borders.top);\n var width = chart.width,\n height = chart.height;\n\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\n\nfunction getContainerSize(canvas, width, height) {\n var maxWidth, maxHeight;\n\n if (width === undefined || height === undefined) {\n var container = _getParentNode(canvas);\n\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n var rect = container.getBoundingClientRect();\n var containerStyle = getComputedStyle(container);\n var containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n var containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n\n return {\n width: width,\n height: height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nvar round1 = function round1(v) {\n return Math.round(v * 10) / 10;\n};\n\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n var style = getComputedStyle(canvas);\n var margins = getPositionedStyle(style, 'margin');\n var maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n var maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n var containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n var width = containerSize.width,\n height = containerSize.height;\n\n if (style.boxSizing === 'content-box') {\n var borders = getPositionedStyle(style, 'border', 'width');\n var paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n\n if (width && !height) {\n height = round1(width / 2);\n }\n\n return {\n width: width,\n height: height\n };\n}\n\nfunction retinaScale(chart, forceRatio, forceStyle) {\n var pixelRatio = forceRatio || 1;\n var deviceHeight = Math.floor(chart.height * pixelRatio);\n var deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n var canvas = chart.canvas;\n\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = \"\".concat(chart.height, \"px\");\n canvas.style.width = \"\".concat(chart.width, \"px\");\n }\n\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n\n return false;\n}\n\nvar supportsEventListenerOptions = function () {\n var passiveSupported = false;\n\n try {\n var options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n\n return passiveSupported;\n}();\n\nfunction readUsedSize(element, property) {\n var value = getStyle(element, property);\n var matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n\nfunction _bezierInterpolation(p1, p2, t, mode) {\n var cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n var cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n\n var a = _pointInLine(p1, cp1, t);\n\n var b = _pointInLine(cp1, cp2, t);\n\n var c = _pointInLine(cp2, p2, t);\n\n var d = _pointInLine(a, b, t);\n\n var e = _pointInLine(b, c, t);\n\n return _pointInLine(d, e, t);\n}\n\nvar intlCache = new Map();\n\nfunction getNumberFormat(locale, options) {\n options = options || {};\n var cacheKey = locale + JSON.stringify(options);\n var formatter = intlCache.get(cacheKey);\n\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n\n return formatter;\n}\n\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nvar getRightToLeftAdapter = function getRightToLeftAdapter(rectX, width) {\n return {\n x: function x(_x) {\n return rectX + rectX + width - _x;\n },\n setWidth: function setWidth(w) {\n width = w;\n },\n textAlign: function textAlign(align) {\n if (align === 'center') {\n return align;\n }\n\n return align === 'right' ? 'left' : 'right';\n },\n xPlus: function xPlus(x, value) {\n return x - value;\n },\n leftForLtr: function leftForLtr(x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\n\nvar getLeftToRightAdapter = function getLeftToRightAdapter() {\n return {\n x: function x(_x2) {\n return _x2;\n },\n setWidth: function setWidth(w) {},\n textAlign: function textAlign(align) {\n return align;\n },\n xPlus: function xPlus(x, value) {\n return x + value;\n },\n leftForLtr: function leftForLtr(x, _itemWidth) {\n return x;\n }\n };\n};\n\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nfunction overrideTextDirection(ctx, direction) {\n var style, original;\n\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [style.getPropertyValue('direction'), style.getPropertyPriority('direction')];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\n\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n\n return {\n between: function between(n, s, e) {\n return n >= Math.min(s, e) && n <= Math.max(e, s);\n },\n compare: function compare(a, b) {\n return a - b;\n },\n normalize: function normalize(x) {\n return x;\n }\n };\n}\n\nfunction normalizeSegment(_ref) {\n var start = _ref.start,\n end = _ref.end,\n count = _ref.count,\n loop = _ref.loop,\n style = _ref.style;\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style: style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n\n var _propertyFn = propertyFn(property),\n between = _propertyFn.between,\n normalize = _propertyFn.normalize;\n\n var count = points.length;\n var start = segment.start,\n end = segment.end,\n loop = segment.loop;\n var i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n\n start--;\n end--;\n }\n\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n\n return {\n start: start,\n end: end,\n loop: loop,\n style: segment.style\n };\n}\n\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n var count = points.length;\n\n var _propertyFn2 = propertyFn(property),\n compare = _propertyFn2.compare,\n between = _propertyFn2.between,\n normalize = _propertyFn2.normalize;\n\n var _getSegment = getSegment(segment, points, bounds),\n start = _getSegment.start,\n end = _getSegment.end,\n loop = _getSegment.loop,\n style = _getSegment.style;\n\n var result = [];\n var inside = false;\n var subStart = null;\n var value, point, prevValue;\n\n var startIsBefore = function startIsBefore() {\n return between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n };\n\n var endIsBefore = function endIsBefore() {\n return compare(endBound, value) === 0 || between(endBound, prevValue, value);\n };\n\n var shouldStart = function shouldStart() {\n return inside || startIsBefore();\n };\n\n var shouldStop = function shouldStop() {\n return !inside || endIsBefore();\n };\n\n for (var i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n\n if (value === prevValue) {\n continue;\n }\n\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop: loop,\n count: count,\n style: style\n }));\n subStart = null;\n }\n\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end: end,\n loop: loop,\n count: count,\n style: style\n }));\n }\n\n return result;\n}\n\nfunction _boundSegments(line, bounds) {\n var result = [];\n var segments = line.segments;\n\n for (var i = 0; i < segments.length; i++) {\n var sub = _boundSegment(segments[i], line.points, bounds);\n\n if (sub.length) {\n result.push.apply(result, _toConsumableArray(sub));\n }\n }\n\n return result;\n}\n\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n var start = 0;\n var end = count - 1;\n\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n while (start < count && points[start].skip) {\n start++;\n }\n\n start %= count;\n\n if (loop) {\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n end %= count;\n return {\n start: start,\n end: end\n };\n}\n\nfunction solidSegments(points, start, max, loop) {\n var count = points.length;\n var result = [];\n var last = start;\n var prev = points[start];\n var end;\n\n for (end = start + 1; end <= max; ++end) {\n var cur = points[end % count];\n\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop: loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n\n if (prev.skip) {\n start = end;\n }\n }\n\n prev = cur;\n }\n\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop: loop\n });\n }\n\n return result;\n}\n\nfunction _computeSegments(line, segmentOptions) {\n var points = line.points;\n var spanGaps = line.options.spanGaps;\n var count = points.length;\n\n if (!count) {\n return [];\n }\n\n var loop = !!line._loop;\n\n var _findStartAndEnd = findStartAndEnd(points, count, loop, spanGaps),\n start = _findStartAndEnd.start,\n end = _findStartAndEnd.end;\n\n if (spanGaps === true) {\n return splitByStyles([{\n start: start,\n end: end,\n loop: loop\n }], points, segmentOptions);\n }\n\n var max = end < start ? end + count : end;\n var completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\nfunction splitByStyles(segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n\n return doSplitByStyles(segments, points, segmentOptions);\n}\n\nfunction doSplitByStyles(segments, points, segmentOptions) {\n var count = points.length;\n var result = [];\n var start = segments[0].start;\n var i = start;\n\n var _iterator9 = _createForOfIteratorHelper(segments),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var segment = _step9.value;\n var prevStyle = void 0,\n style = void 0;\n var prev = points[start % count];\n\n for (i = start + 1; i <= segment.end; i++) {\n var pt = points[i % count];\n style = readStyle(segmentOptions.setContext({\n type: 'segment',\n p0: prev,\n p1: pt\n }));\n\n if (styleChanged(style, prevStyle)) {\n result.push({\n start: start,\n end: i - 1,\n loop: segment.loop,\n style: prevStyle\n });\n prevStyle = style;\n start = i - 1;\n }\n\n prev = pt;\n prevStyle = style;\n }\n\n if (start < i - 1) {\n result.push({\n start: start,\n end: i - 1,\n loop: segment.loop,\n style: style\n });\n start = i - 1;\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return result;\n}\n\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\n\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { merge as $, _isPointInArea as A, _rlookupByKey as B, toPadding as C, each as D, getMaximumSize as E, _getParentNode as F, readUsedSize as G, HALF_PI as H, throttled as I, supportsEventListenerOptions as J, log10 as K, _factorize as L, finiteOrDefault as M, callback as N, _addGrace as O, PI as P, toDegrees as Q, _measureText as R, _int16Range as S, TAU as T, _alignPixel as U, renderText as V, toFont as W, _toLeftRightCenter as X, _alignStartEnd as Y, overrides as Z, _arrayUnique as _, resolve as a, _capitalize as a0, descriptors as a1, isFunction as a2, _attachContext as a3, _createResolver as a4, _descriptors as a5, mergeIf as a6, uid as a7, debounce as a8, retinaScale as a9, niceNum as aA, almostWhole as aB, almostEquals as aC, _decimalPlaces as aD, _longestText as aE, _filterBetween as aF, _lookup as aG, getHoverColor as aH, clone$1 as aI, _merger as aJ, _mergerIf as aK, _deprecated as aL, toFontString as aM, splineCurve as aN, splineCurveMonotone as aO, getStyle as aP, fontString as aQ, toLineHeight as aR, PITAU as aS, INFINITY as aT, RAD_PER_DEG as aU, QUARTER_PI as aV, TWO_THIRDS_PI as aW, _angleDiff as aX, clearCanvas as aa, setsEqual as ab, _elementsEqual as ac, getAngleFromPoint as ad, _readValueToProps as ae, _updateBezierControlPoints as af, _computeSegments as ag, _boundSegments as ah, _steppedInterpolation as ai, _bezierInterpolation as aj, _pointInLine as ak, _steppedLineTo as al, _bezierCurveTo as am, drawPoint as an, addRoundedRectPath as ao, toTRBL as ap, toTRBLCorners as aq, _boundSegment as ar, _normalizeAngle as as, getRtlAdapter as at, overrideTextDirection as au, _textX as av, restoreTextDirection as aw, noop as ax, distanceBetweenPoints as ay, _setMinAndMaxByKey as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, isNullOrUndef as j, clipArea as k, listenArrayEvents as l, unclipArea as m, toPercentage as n, toDimension as o, formatNumber as p, _angleBetween as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, isNumber as w, _limitValue as x, _lookupByKey as y, getRelativePosition as z };","map":{"version":3,"names":["fontString","pixelSize","fontStyle","fontFamily","requestAnimFrame","window","callback","requestAnimationFrame","throttled","fn","thisArg","updateFn","updateArgs","args","Array","prototype","slice","call","ticking","rest","apply","debounce","delay","timeout","clearTimeout","setTimeout","_toLeftRightCenter","align","_alignStartEnd","start","end","_textX","left","right","noop","uid","id","isNullOrUndef","value","isArray","type","Object","toString","substr","isObject","isNumberFinite","Number","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toPercentage","dimension","endsWith","parseFloat","toDimension","each","loopable","reverse","i","len","keys","length","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","index","clone$1","source","map","target","create","klen","k","isValidKey","key","indexOf","_merger","options","tval","sval","merge","sources","merger","mergeIf","_mergerIf","hasOwnProperty","_deprecated","scope","previous","current","undefined","console","warn","emptyString","dot","indexOfDotOrLength","idx","resolveObjectKey","obj","pos","_capitalize","str","charAt","toUpperCase","defined","isFunction","setsEqual","a","b","size","item","has","PI","Math","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","range","niceRange","pow","floor","fraction","niceFraction","_factorize","result","sqrt","push","sort","pop","isNumber","n","isNaN","almostEquals","x","y","epsilon","abs","almostWhole","rounded","round","_setMinAndMaxByKey","array","property","min","max","toRadians","degrees","toDegrees","radians","_decimalPlaces","e","p","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","s","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","atEdge","t","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","m","d","easeInOutBounce","A","B","C","D","E","F","c","f","hex","h1","h2","eq","isShort","v","r","g","hexParse","ret","hexString","lim","l","h","p2b","n2b","b2n","n2p","RGB_RE","rgbParse","exec","rgbString","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","w","rgb","rgb2hsl","calln","hsl2rgb","hwb2rgb","hsv2rgb","hue","hueParse","p1","p2","rotate","deg","hslString","map$1","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","G","H","I","J","names","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","unpack","unpacked","tkeys","j","ok","nk","replace","parseInt","names$1","nameParse","transparent","toLowerCase","modHSL","ratio","tmp","clone","proto","assign","fromObject","input","functionParse","Color","_rgb","_valid","color","weight","me","c1","c2","w2","w1","val","index_esm","isPatternOrGradient","CanvasGradient","CanvasPattern","getHoverColor","saturate","darken","overrides","descriptors","getScope$1","node","split","set","root","values","Defaults","_descriptors","animation","backgroundColor","borderColor","datasets","devicePixelRatio","context","chart","platform","getDevicePixelRatio","elements","events","font","family","style","lineHeight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","describe","name","targetScope","targetName","scopeObject","targetScopeObject","privateName","defineProperties","writable","enumerable","get","local","defaults","_scriptable","startsWith","_indexable","_fallback","toFontString","_measureText","data","gc","longest","string","textWidth","measureText","width","_longestText","arrayOfThings","cache","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","splice","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","height","drawPoint","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","drawImage","beginPath","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","top","bottom","clipArea","clip","unclipArea","_steppedLineTo","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","text","opts","lines","strokeWidth","strokeColor","line","translation","fillStyle","textAlign","textBaseline","strokeStyle","lineWidth","strokeText","maxWidth","fillText","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","RegExp","FONT_STYLE","toLineHeight","matches","match","numberOrZero","_readValueToProps","props","objProps","read","prop","toTRBL","toTRBLCorners","toPadding","toFont","fallback","resolve","inputs","info","cacheable","_addGrace","minmax","grace","_lookup","table","cmp","hi","lo","mid","_lookupByKey","_rlookupByKey","_filterBetween","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","defineProperty","configurable","forEach","method","base","res","object","unlistenArrayEvents","stub","_arrayUnique","items","Set","add","_createResolver","scopes","prefixes","rootScopes","getTarget","_resolve","Symbol","toStringTag","Proxy","deleteProperty","_keys","_cached","_resolveWithPrefixes","getOwnPropertyDescriptor","Reflect","_scopes","getPrototypeOf","getKeysFromAllScopes","includes","ownKeys","storage","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_cacheable","_proxy","_context","_subProxy","_stack","setContext","override","receiver","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","isScriptable","isIndexable","readKey","prefix","needsSubResolver","_resolveScriptable","_resolveArray","Error","join","delete","createSubResolver","arr","filter","resolver","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","_rootScopes","allScopes","addScopesFromKey","subGetTarget","_getTarget","resolveKeysFromAllScopes","EPSILON","getPoint","points","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","next","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","pointsLen","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointAfter","monotoneCompute","valueAxis","delta","pointBefore","iPixel","vPixel","splineCurveMonotone","slopeDelta","capControlPoint","pt","capBezierPoints","inArea","inAreaPrev","inAreaNext","_updateBezierControlPoints","loop","controlPoints","spanGaps","cubicInterpolationMode","prev","tension","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","getStyle","el","getPropertyValue","positions","getPositionedStyle","styles","suffix","useOffsetPos","shadowRoot","getCanvasPosition","evt","native","touches","offsetX","offsetY","box","getBoundingClientRect","clientX","clientY","getRelativePosition","borderBox","boxSizing","paddings","borders","getContainerSize","maxHeight","container","clientWidth","clientHeight","containerStyle","containerBorder","containerPadding","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","containerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","passive","addEventListener","removeEventListener","readUsedSize","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","Map","getNumberFormat","locale","cacheKey","JSON","stringify","formatter","Intl","NumberFormat","formatNumber","num","format","getRightToLeftAdapter","rectX","setWidth","xPlus","leftForLtr","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","rtl","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","count","getSegment","segment","bounds","startBound","endBound","_boundSegment","inside","subStart","prevValue","startIsBefore","endIsBefore","shouldStart","shouldStop","_boundSegments","segments","sub","findStartAndEnd","solidSegments","last","cur","stop","_computeSegments","segmentOptions","_loop","splitByStyles","completeLoop","_fullLoop","doSplitByStyles","prevStyle","readStyle","p0","styleChanged","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","$","_","a2","a3","a4","a5","a6","a7","a8","a9","aA","aB","aC","aD","aE","aF","aG","aH","aI","aJ","aK","aL","aM","aN","aO","aP","aQ","aR","aS","aT","aU","aV","aW","aX","aa","ab","ac","ad","ae","af","ag","ah","ai","aj","ak","al","am","an","ao","ap","aq","ar","as","at","au","av","aw","ax","ay","az","o","q","u","z"],"sources":["/Users/paolasanchez/Desktop/Pry4/Katoikia/katoikia-app/web-ui/sakai-react/node_modules/chart.js/dist/chunks/helpers.segment.js"],"sourcesContent":["/*!\n * Chart.js v3.3.2\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function() {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay);\n } else {\n fn();\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right) => align === 'right' ? right : align === 'center' ? (left + right) / 2 : left;\n\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\nconst map = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = '0123456789ABCDEF';\nconst h1 = (b) => hex[b & 0xF];\nconst h2 = (b) => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = (b) => (((b & 0xF0) >> 4) === (b & 0xF));\nfunction isShort(v) {\n\treturn eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\nfunction hexParse(str) {\n\tvar len = str.length;\n\tvar ret;\n\tif (str[0] === '#') {\n\t\tif (len === 4 || len === 5) {\n\t\t\tret = {\n\t\t\t\tr: 255 & map[str[1]] * 17,\n\t\t\t\tg: 255 & map[str[2]] * 17,\n\t\t\t\tb: 255 & map[str[3]] * 17,\n\t\t\t\ta: len === 5 ? map[str[4]] * 17 : 255\n\t\t\t};\n\t\t} else if (len === 7 || len === 9) {\n\t\t\tret = {\n\t\t\t\tr: map[str[1]] << 4 | map[str[2]],\n\t\t\t\tg: map[str[3]] << 4 | map[str[4]],\n\t\t\t\tb: map[str[5]] << 4 | map[str[6]],\n\t\t\t\ta: len === 9 ? (map[str[7]] << 4 | map[str[8]]) : 255\n\t\t\t};\n\t\t}\n\t}\n\treturn ret;\n}\nfunction hexString(v) {\n\tvar f = isShort(v) ? h1 : h2;\n\treturn v\n\t\t? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '')\n\t\t: v;\n}\nfunction round(v) {\n\treturn v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n\treturn lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n\treturn lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n\treturn lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n\treturn lim(round(v * 100), 0, 100);\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n\tconst m = RGB_RE.exec(str);\n\tlet a = 255;\n\tlet r, g, b;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[7] !== r) {\n\t\tconst v = +m[7];\n\t\ta = 255 & (m[8] ? p2b(v) : v * 255);\n\t}\n\tr = +m[1];\n\tg = +m[3];\n\tb = +m[5];\n\tr = 255 & (m[2] ? p2b(r) : r);\n\tg = 255 & (m[4] ? p2b(g) : g);\n\tb = 255 & (m[6] ? p2b(b) : b);\n\treturn {\n\t\tr: r,\n\t\tg: g,\n\t\tb: b,\n\t\ta: a\n\t};\n}\nfunction rgbString(v) {\n\treturn v && (\n\t\tv.a < 255\n\t\t\t? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n\t\t\t: `rgb(${v.r}, ${v.g}, ${v.b})`\n\t);\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n\tconst a = s * Math.min(l, 1 - l);\n\tconst f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n\treturn [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n\tconst f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n\treturn [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n\tconst rgb = hsl2rgbn(h, 1, 0.5);\n\tlet i;\n\tif (w + b > 1) {\n\t\ti = 1 / (w + b);\n\t\tw *= i;\n\t\tb *= i;\n\t}\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] *= 1 - w - b;\n\t\trgb[i] += w;\n\t}\n\treturn rgb;\n}\nfunction rgb2hsl(v) {\n\tconst range = 255;\n\tconst r = v.r / range;\n\tconst g = v.g / range;\n\tconst b = v.b / range;\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tconst l = (max + min) / 2;\n\tlet h, s, d;\n\tif (max !== min) {\n\t\td = max - min;\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\th = max === r\n\t\t\t? ((g - b) / d) + (g < b ? 6 : 0)\n\t\t\t: max === g\n\t\t\t\t? (b - r) / d + 2\n\t\t\t\t: (r - g) / d + 4;\n\t\th = h * 60 + 0.5;\n\t}\n\treturn [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n\treturn (\n\t\tArray.isArray(a)\n\t\t\t? f(a[0], a[1], a[2])\n\t\t\t: f(a, b, c)\n\t).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n\treturn calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n\treturn calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n\treturn calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n\treturn (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n\tconst m = HUE_RE.exec(str);\n\tlet a = 255;\n\tlet v;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[5] !== v) {\n\t\ta = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n\t}\n\tconst h = hue(+m[2]);\n\tconst p1 = +m[3] / 100;\n\tconst p2 = +m[4] / 100;\n\tif (m[1] === 'hwb') {\n\t\tv = hwb2rgb(h, p1, p2);\n\t} else if (m[1] === 'hsv') {\n\t\tv = hsv2rgb(h, p1, p2);\n\t} else {\n\t\tv = hsl2rgb(h, p1, p2);\n\t}\n\treturn {\n\t\tr: v[0],\n\t\tg: v[1],\n\t\tb: v[2],\n\t\ta: a\n\t};\n}\nfunction rotate(v, deg) {\n\tvar h = rgb2hsl(v);\n\th[0] = hue(h[0] + deg);\n\th = hsl2rgb(h);\n\tv.r = h[0];\n\tv.g = h[1];\n\tv.b = h[2];\n}\nfunction hslString(v) {\n\tif (!v) {\n\t\treturn;\n\t}\n\tconst a = rgb2hsl(v);\n\tconst h = a[0];\n\tconst s = n2p(a[1]);\n\tconst l = n2p(a[2]);\n\treturn v.a < 255\n\t\t? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n\t\t: `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map$1 = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n\tconst unpacked = {};\n\tconst keys = Object.keys(names);\n\tconst tkeys = Object.keys(map$1);\n\tlet i, j, k, ok, nk;\n\tfor (i = 0; i < keys.length; i++) {\n\t\tok = nk = keys[i];\n\t\tfor (j = 0; j < tkeys.length; j++) {\n\t\t\tk = tkeys[j];\n\t\t\tnk = nk.replace(k, map$1[k]);\n\t\t}\n\t\tk = parseInt(names[ok], 16);\n\t\tunpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n\t}\n\treturn unpacked;\n}\nlet names$1;\nfunction nameParse(str) {\n\tif (!names$1) {\n\t\tnames$1 = unpack();\n\t\tnames$1.transparent = [0, 0, 0, 0];\n\t}\n\tconst a = names$1[str.toLowerCase()];\n\treturn a && {\n\t\tr: a[0],\n\t\tg: a[1],\n\t\tb: a[2],\n\t\ta: a.length === 4 ? a[3] : 255\n\t};\n}\nfunction modHSL(v, i, ratio) {\n\tif (v) {\n\t\tlet tmp = rgb2hsl(v);\n\t\ttmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n\t\ttmp = hsl2rgb(tmp);\n\t\tv.r = tmp[0];\n\t\tv.g = tmp[1];\n\t\tv.b = tmp[2];\n\t}\n}\nfunction clone(v, proto) {\n\treturn v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n\tvar v = {r: 0, g: 0, b: 0, a: 255};\n\tif (Array.isArray(input)) {\n\t\tif (input.length >= 3) {\n\t\t\tv = {r: input[0], g: input[1], b: input[2], a: 255};\n\t\t\tif (input.length > 3) {\n\t\t\t\tv.a = n2b(input[3]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tv = clone(input, {r: 0, g: 0, b: 0, a: 1});\n\t\tv.a = n2b(v.a);\n\t}\n\treturn v;\n}\nfunction functionParse(str) {\n\tif (str.charAt(0) === 'r') {\n\t\treturn rgbParse(str);\n\t}\n\treturn hueParse(str);\n}\nclass Color {\n\tconstructor(input) {\n\t\tif (input instanceof Color) {\n\t\t\treturn input;\n\t\t}\n\t\tconst type = typeof input;\n\t\tlet v;\n\t\tif (type === 'object') {\n\t\t\tv = fromObject(input);\n\t\t} else if (type === 'string') {\n\t\t\tv = hexParse(input) || nameParse(input) || functionParse(input);\n\t\t}\n\t\tthis._rgb = v;\n\t\tthis._valid = !!v;\n\t}\n\tget valid() {\n\t\treturn this._valid;\n\t}\n\tget rgb() {\n\t\tvar v = clone(this._rgb);\n\t\tif (v) {\n\t\t\tv.a = b2n(v.a);\n\t\t}\n\t\treturn v;\n\t}\n\tset rgb(obj) {\n\t\tthis._rgb = fromObject(obj);\n\t}\n\trgbString() {\n\t\treturn this._valid ? rgbString(this._rgb) : this._rgb;\n\t}\n\thexString() {\n\t\treturn this._valid ? hexString(this._rgb) : this._rgb;\n\t}\n\thslString() {\n\t\treturn this._valid ? hslString(this._rgb) : this._rgb;\n\t}\n\tmix(color, weight) {\n\t\tconst me = this;\n\t\tif (color) {\n\t\t\tconst c1 = me.rgb;\n\t\t\tconst c2 = color.rgb;\n\t\t\tlet w2;\n\t\t\tconst p = weight === w2 ? 0.5 : weight;\n\t\t\tconst w = 2 * p - 1;\n\t\t\tconst a = c1.a - c2.a;\n\t\t\tconst w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\t\tw2 = 1 - w1;\n\t\t\tc1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n\t\t\tc1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n\t\t\tc1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n\t\t\tc1.a = p * c1.a + (1 - p) * c2.a;\n\t\t\tme.rgb = c1;\n\t\t}\n\t\treturn me;\n\t}\n\tclone() {\n\t\treturn new Color(this.rgb);\n\t}\n\talpha(a) {\n\t\tthis._rgb.a = n2b(a);\n\t\treturn this;\n\t}\n\tclearer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 - ratio;\n\t\treturn this;\n\t}\n\tgreyscale() {\n\t\tconst rgb = this._rgb;\n\t\tconst val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n\t\trgb.r = rgb.g = rgb.b = val;\n\t\treturn this;\n\t}\n\topaquer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 + ratio;\n\t\treturn this;\n\t}\n\tnegate() {\n\t\tconst v = this._rgb;\n\t\tv.r = 255 - v.r;\n\t\tv.g = 255 - v.g;\n\t\tv.b = 255 - v.b;\n\t\treturn this;\n\t}\n\tlighten(ratio) {\n\t\tmodHSL(this._rgb, 2, ratio);\n\t\treturn this;\n\t}\n\tdarken(ratio) {\n\t\tmodHSL(this._rgb, 2, -ratio);\n\t\treturn this;\n\t}\n\tsaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, ratio);\n\t\treturn this;\n\t}\n\tdesaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, -ratio);\n\t\treturn this;\n\t}\n\trotate(deg) {\n\t\trotate(this._rgb, deg);\n\t\treturn this;\n\t}\n}\nfunction index_esm(input) {\n\treturn new Color(input);\n}\n\nconst isPatternOrGradient = (value) => value instanceof CanvasGradient || value instanceof CanvasPattern;\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n let type, xOffset, yOffset, size, cornerRadius;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n ctx.font = font.string;\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace) {\n const {min, max} = minmax;\n return {\n min: min - Math.abs(toDimension(grace, min)),\n max: max + toDimension(grace, max)\n };\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n const result = [];\n set.forEach(item => {\n result.push(item);\n });\n return result;\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n storage[prop] = value;\n delete target[prop];\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters';\nfunction _cached(target, prop, resolve) {\n let value = target[prop];\n if (defined(value)) {\n return value;\n }\n value = resolve();\n if (defined(value)) {\n target[prop] = value;\n }\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + [..._stack].join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (isObject(value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, scope);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key);\n if (key === null) {\n return false;\n }\n }\n return _createResolver([...set], [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return [...set];\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(evt, canvas) {\n const e = evt.native || evt;\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: (n, s, e) => n >= Math.min(s, e) && n <= Math.max(e, s),\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles([{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(segments, points, segmentOptions);\n}\nfunction doSplitByStyles(segments, points, segmentOptions) {\n const count = points.length;\n const result = [];\n let start = segments[0].start;\n let i = start;\n for (const segment of segments) {\n let prevStyle, style;\n let prev = points[start % count];\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext({type: 'segment', p0: prev, p1: pt}));\n if (styleChanged(style, prevStyle)) {\n result.push({start: start, end: i - 1, loop: segment.loop, style: prevStyle});\n prevStyle = style;\n start = i - 1;\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n result.push({start, end: i - 1, loop: segment.loop, style});\n start = i - 1;\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { merge as $, _isPointInArea as A, _rlookupByKey as B, toPadding as C, each as D, getMaximumSize as E, _getParentNode as F, readUsedSize as G, HALF_PI as H, throttled as I, supportsEventListenerOptions as J, log10 as K, _factorize as L, finiteOrDefault as M, callback as N, _addGrace as O, PI as P, toDegrees as Q, _measureText as R, _int16Range as S, TAU as T, _alignPixel as U, renderText as V, toFont as W, _toLeftRightCenter as X, _alignStartEnd as Y, overrides as Z, _arrayUnique as _, resolve as a, _capitalize as a0, descriptors as a1, isFunction as a2, _attachContext as a3, _createResolver as a4, _descriptors as a5, mergeIf as a6, uid as a7, debounce as a8, retinaScale as a9, niceNum as aA, almostWhole as aB, almostEquals as aC, _decimalPlaces as aD, _longestText as aE, _filterBetween as aF, _lookup as aG, getHoverColor as aH, clone$1 as aI, _merger as aJ, _mergerIf as aK, _deprecated as aL, toFontString as aM, splineCurve as aN, splineCurveMonotone as aO, getStyle as aP, fontString as aQ, toLineHeight as aR, PITAU as aS, INFINITY as aT, RAD_PER_DEG as aU, QUARTER_PI as aV, TWO_THIRDS_PI as aW, _angleDiff as aX, clearCanvas as aa, setsEqual as ab, _elementsEqual as ac, getAngleFromPoint as ad, _readValueToProps as ae, _updateBezierControlPoints as af, _computeSegments as ag, _boundSegments as ah, _steppedInterpolation as ai, _bezierInterpolation as aj, _pointInLine as ak, _steppedLineTo as al, _bezierCurveTo as am, drawPoint as an, addRoundedRectPath as ao, toTRBL as ap, toTRBLCorners as aq, _boundSegment as ar, _normalizeAngle as as, getRtlAdapter as at, overrideTextDirection as au, _textX as av, restoreTextDirection as aw, noop as ax, distanceBetweenPoints as ay, _setMinAndMaxByKey as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, isNullOrUndef as j, clipArea as k, listenArrayEvents as l, unclipArea as m, toPercentage as n, toDimension as o, formatNumber as p, _angleBetween as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, isNumber as w, _limitValue as x, _lookupByKey as y, getRelativePosition as z };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"}