{"version":3,"file":"tgs.guest.bundle.js","mappings":"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","sources":["webpack://Noria/./ngx/libs/media-legacy/bootstrap-material/js/mdb.js","webpack://Noria/./node_modules/cookieconsent/build/cookieconsent.min.js","webpack://Noria/./node_modules/jquery/dist/jquery-exposed.js","webpack://Noria/./node_modules/expose-loader/dist/runtime/getGlobalThis.js","webpack://Noria/./node_modules/inputmask/lib/polyfills/Array.includes.js","webpack://Noria/./node_modules/inputmask/lib/polyfills/Object.getPrototypeOf.js","webpack://Noria/./node_modules/jquery-ui-dist/jquery-ui.js","webpack://Noria/./node_modules/jquery/dist/jquery.js","webpack://Noria/./ngx/libs/media-legacy/bootstrap-material/js/popper.min.js","webpack://Noria/../../js/src/util.js","webpack://Noria/../../js/src/alert.js","webpack://Noria/../../js/src/button.js","webpack://Noria/../../js/src/carousel.js","webpack://Noria/../../js/src/collapse.js","webpack://Noria/../../js/src/dropdown.js","webpack://Noria/../../js/src/modal.js","webpack://Noria/../../js/src/tooltip.js","webpack://Noria/../../js/src/popover.js","webpack://Noria/../../js/src/scrollspy.js","webpack://Noria/../../js/src/tab.js","webpack://Noria/../../js/src/index.js","webpack://Noria/./ngx/libs/media-legacy/particles/canvasBackground.js","webpack://Noria/./ngx/libs/media-legacy/particles/particles.min.js","webpack://Noria/./node_modules/underscore/underscore-min.js","webpack://Noria/webpack/bootstrap","webpack://Noria/webpack/runtime/compat get default export","webpack://Noria/webpack/runtime/define property getters","webpack://Noria/webpack/runtime/global","webpack://Noria/webpack/runtime/hasOwnProperty shorthand","webpack://Noria/./node_modules/inputmask/lib/validation-tests.js","webpack://Noria/./node_modules/inputmask/lib/canUseDOM.js","webpack://Noria/./node_modules/inputmask/lib/global/window.js","webpack://Noria/./node_modules/inputmask/lib/environment.js","webpack://Noria/./node_modules/inputmask/lib/inputHandling.js","webpack://Noria/./node_modules/inputmask/lib/eventhandlers.js","webpack://Noria/./node_modules/inputmask/lib/validation.js","webpack://Noria/./node_modules/inputmask/lib/positioning.js","webpack://Noria/./node_modules/inputmask/lib/eventruler.js","webpack://Noria/./node_modules/inputmask/lib/mask.js","webpack://Noria/./node_modules/inputmask/lib/dependencyLibs/extend.js","webpack://Noria/./node_modules/inputmask/lib/dependencyLibs/events.js","webpack://Noria/./node_modules/inputmask/lib/dependencyLibs/inputmask.dependencyLib.js","webpack://Noria/./node_modules/inputmask/lib/dependencyLibs/data.js","webpack://Noria/./node_modules/inputmask/lib/masktoken.js","webpack://Noria/./node_modules/inputmask/lib/mask-lexer.js","webpack://Noria/./node_modules/inputmask/lib/definitions.js","webpack://Noria/./node_modules/inputmask/lib/defaults.js","webpack://Noria/./node_modules/inputmask/lib/inputmask.js","webpack://Noria/./node_modules/inputmask/lib/extensions/inputmask.extensions.js","webpack://Noria/./node_modules/inputmask/lib/escapeRegex.js","webpack://Noria/./node_modules/inputmask/lib/extensions/inputmask.date.extensions.js","webpack://Noria/./node_modules/inputmask/lib/extensions/inputmask.numeric.extensions.js","webpack://Noria/./node_modules/inputmask/lib/inputmaskElement.js","webpack://Noria/./node_modules/inputmask/bundle.js","webpack://Noria/./ngx/libs/media-legacy/application/self-service-login.js","webpack://Noria/./ngx/libs/media-legacy/application/self-service-forgot-password.js","webpack://Noria/./ngx/libs/media-legacy/application/helper/watermark.js","webpack://Noria/./ngx/libs/media-legacy/application/helper/ie-warning.js","webpack://Noria/./ngx/libs/media-legacy/application/cookie/cookie.js"],"sourcesContent":["/*!\n * Material Design for Bootstrap 4\n * Version: MDB FREE: 4.5.9\n *\n *\n * Copyright: Material Design for Bootstrap\n * https://mdbootstrap.com/\n *\n * Read the license: https://mdbootstrap.com/license/\n *\n *\n * Documentation: https://mdbootstrap.com/\n *\n * Getting started: https://mdbootstrap.com/getting-started/\n *\n * Tutorials: https://mdbootstrap.com/bootstrap-tutorial/\n *\n * Templates: https://mdbootstrap.com/templates/\n *\n * Support: https://mdbootstrap.com/forums/forum/support/\n *\n * Contact: office@mdbootstrap.com\n *\n * Atribution: Animate CSS, Twitter Bootstrap, Materialize CSS, Normalize CSS, Waves JS, WOW JS, Toastr, Chart.js , Hammer.js\n *\n */\n\n\n/*\n\n jquery.easing.js\n velocity.min.js\n chart.js\n wow.js\n scrolling-navbar.js\n waves.js\n forms-free.js\n enhanced-modals.js\n\n*/\n\n/*\n * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/\n *\n * Uses the built in easing capabilities added In jQuery 1.1\n * to offer multiple easing options\n *\n * TERMS OF USE - jQuery Easing\n *\n * Open source under the BSD License.\n *\n * Copyright © 2008 George McGinley Smith\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n *\n * Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * Neither the name of the author nor the names of contributors may be used to endorse\n * or promote products derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED\n * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n * OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n*/\n\n// t: current time, b: begInnIng value, c: change In value, d: duration\njQuery.easing['jswing'] = jQuery.easing['swing'];\n\njQuery.extend(jQuery.easing,\n {\n def: 'easeOutQuad',\n swing: function (x, t, b, c, d) {\n //alert(jQuery.easing.default);\n return jQuery.easing[jQuery.easing.def](x, t, b, c, d);\n },\n easeInQuad: function (x, t, b, c, d) {\n return c * (t /= d) * t + b;\n },\n easeOutQuad: function (x, t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n },\n easeInOutQuad: function (x, t, b, c, d) {\n if ((t /= d / 2) < 1) return c / 2 * t * t + b;\n return -c / 2 * ((--t) * (t - 2) - 1) + b;\n },\n easeInCubic: function (x, t, b, c, d) {\n return c * (t /= d) * t * t + b;\n },\n easeOutCubic: function (x, t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n },\n easeInOutCubic: function (x, t, b, c, d) {\n if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;\n return c / 2 * ((t -= 2) * t * t + 2) + b;\n },\n easeInQuart: function (x, t, b, c, d) {\n return c * (t /= d) * t * t * t + b;\n },\n easeOutQuart: function (x, t, b, c, d) {\n return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n },\n easeInOutQuart: function (x, t, b, c, d) {\n if ((t /= d / 2) < 1) return c / 2 * t * t * t * t + b;\n return -c / 2 * ((t -= 2) * t * t * t - 2) + b;\n },\n easeInQuint: function (x, t, b, c, d) {\n return c * (t /= d) * t * t * t * t + b;\n },\n easeOutQuint: function (x, t, b, c, d) {\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n },\n easeInOutQuint: function (x, t, b, c, d) {\n if ((t /= d / 2) < 1) return c / 2 * t * t * t * t * t + b;\n return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n },\n easeInSine: function (x, t, b, c, d) {\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n },\n easeOutSine: function (x, t, b, c, d) {\n return c * Math.sin(t / d * (Math.PI / 2)) + b;\n },\n easeInOutSine: function (x, t, b, c, d) {\n return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;\n },\n easeInExpo: function (x, t, b, c, d) {\n return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;\n },\n easeOutExpo: function (x, t, b, c, d) {\n return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;\n },\n easeInOutExpo: function (x, t, b, c, d) {\n if (t == 0) return b;\n if (t == d) return b + c;\n if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;\n return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;\n },\n easeInCirc: function (x, t, b, c, d) {\n return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\n },\n easeOutCirc: function (x, t, b, c, d) {\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n },\n easeInOutCirc: function (x, t, b, c, d) {\n if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;\n return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\n },\n easeInElastic: function (x, t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t == 0) return b;\n if ((t /= d) == 1) return b + c;\n if (!p) p = d * .3;\n if (a < Math.abs(c)) {\n a = c;\n var s = p / 4;\n }\n else var s = p / (2 * Math.PI) * Math.asin(c / a);\n return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n },\n easeOutElastic: function (x, t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t == 0) return b;\n if ((t /= d) == 1) return b + c;\n if (!p) p = d * .3;\n if (a < Math.abs(c)) {\n a = c;\n var s = p / 4;\n }\n else var s = p / (2 * Math.PI) * Math.asin(c / a);\n return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;\n },\n easeInOutElastic: function (x, t, b, c, d) {\n var s = 1.70158;\n var p = 0;\n var a = c;\n if (t == 0) return b;\n if ((t /= d / 2) == 2) return b + c;\n if (!p) p = d * (.3 * 1.5);\n if (a < Math.abs(c)) {\n a = c;\n var s = p / 4;\n }\n else var s = p / (2 * Math.PI) * Math.asin(c / a);\n if (t < 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;\n },\n easeInBack: function (x, t, b, c, d, s) {\n if (s == undefined) s = 1.70158;\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n easeOutBack: function (x, t, b, c, d, s) {\n if (s == undefined) s = 1.70158;\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n },\n easeInOutBack: function (x, t, b, c, d, s) {\n if (s == undefined) s = 1.70158;\n if ((t /= d / 2) < 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;\n return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;\n },\n easeInBounce: function (x, t, b, c, d) {\n return c - jQuery.easing.easeOutBounce(x, d - t, 0, c, d) + b;\n },\n easeOutBounce: function (x, t, b, c, d) {\n if ((t /= d) < (1 / 2.75)) {\n return c * (7.5625 * t * t) + b;\n } else if (t < (2 / 2.75)) {\n return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;\n } else if (t < (2.5 / 2.75)) {\n return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;\n } else {\n return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;\n }\n },\n easeInOutBounce: function (x, t, b, c, d) {\n if (t < d / 2) return jQuery.easing.easeInBounce(x, t * 2, 0, c, d) * .5 + b;\n return jQuery.easing.easeOutBounce(x, t * 2 - d, 0, c, d) * .5 + c * .5 + b;\n }\n });\n\n/*\n *\n * TERMS OF USE - EASING EQUATIONS\n *\n * Open source under the BSD License.\n *\n * Copyright © 2001 Robert Penner\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n *\n * Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * Neither the name of the author nor the names of contributors may be used to endorse\n * or promote products derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED\n * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n * OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n/*! VelocityJS.org (1.2.3). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */\n/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */\n/*! Note that this has been modified by Materialize to confirm that Velocity is not already being imported. */\njQuery.Velocity ? console.log('Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity.') : (!function (e) {\n function t(e) {\n var t = e.length, a = r.type(e);\n return 'function' === a || r.isWindow(e) ? !1 : 1 === e.nodeType && t ? !0 : 'array' === a || 0 === t || 'number' == typeof t && t > 0 && t - 1 in e\n }\n\n if (!e.jQuery) {\n var r = function (e, t) {\n return new r.fn.init(e, t)\n };\n r.isWindow = function (e) {\n return null != e && e == e.window\n }, r.type = function (e) {\n return null == e ? e + '' : 'object' == typeof e || 'function' == typeof e ? n[i.call(e)] || 'object' : typeof e\n }, r.isArray = Array.isArray || function (e) {\n return 'array' === r.type(e)\n }, r.isPlainObject = function (e) {\n var t;\n if (!e || 'object' !== r.type(e) || e.nodeType || r.isWindow(e)) return !1;\n try {\n if (e.constructor && !o.call(e, 'constructor') && !o.call(e.constructor.prototype, 'isPrototypeOf')) return !1\n } catch (a) {\n return !1\n }\n for (t in e) ;\n return void 0 === t || o.call(e, t)\n }, r.each = function (e, r, a) {\n var n, o = 0, i = e.length, s = t(e);\n if (a) {\n if (s) for (; i > o && (n = r.apply(e[o], a), n !== !1); o++) ; else for (o in e) if (n = r.apply(e[o], a), n === !1) break\n } else if (s) for (; i > o && (n = r.call(e[o], o, e[o]), n !== !1); o++) ; else for (o in e) if (n = r.call(e[o], o, e[o]), n === !1) break;\n return e\n }, r.data = function (e, t, n) {\n if (void 0 === n) {\n var o = e[r.expando], i = o && a[o];\n if (void 0 === t) return i;\n if (i && t in i) return i[t]\n } else if (void 0 !== t) {\n var o = e[r.expando] || (e[r.expando] = ++r.uuid);\n return a[o] = a[o] || {}, a[o][t] = n, n\n }\n }, r.removeData = function (e, t) {\n var n = e[r.expando], o = n && a[n];\n o && r.each(t, function (e, t) {\n delete o[t]\n })\n }, r.extend = function () {\n var e, t, a, n, o, i, s = arguments[0] || {}, l = 1, u = arguments.length, c = !1;\n for ('boolean' == typeof s && (c = s, s = arguments[l] || {}, l++), 'object' != typeof s && 'function' !== r.type(s) && (s = {}), l === u && (s = this, l--); u > l; l++) if (null != (o = arguments[l])) for (n in o) e = s[n], a = o[n], s !== a && (c && a && (r.isPlainObject(a) || (t = r.isArray(a))) ? (t ? (t = !1, i = e && r.isArray(e) ? e : []) : i = e && r.isPlainObject(e) ? e : {}, s[n] = r.extend(c, i, a)) : void 0 !== a && (s[n] = a));\n return s\n }, r.queue = function (e, a, n) {\n function o(e, r) {\n var a = r || [];\n return null != e && (t(Object(e)) ? !function (e, t) {\n for (var r = +t.length, a = 0, n = e.length; r > a;) e[n++] = t[a++];\n if (r !== r) for (; void 0 !== t[a];) e[n++] = t[a++];\n return e.length = n, e\n }(a, 'string' == typeof e ? [e] : e) : [].push.call(a, e)), a\n }\n\n if (e) {\n a = (a || 'fx') + 'queue';\n var i = r.data(e, a);\n return n ? (!i || r.isArray(n) ? i = r.data(e, a, o(n)) : i.push(n), i) : i || []\n }\n }, r.dequeue = function (e, t) {\n r.each(e.nodeType ? [e] : e, function (e, a) {\n t = t || 'fx';\n var n = r.queue(a, t), o = n.shift();\n 'inprogress' === o && (o = n.shift()), o && ('fx' === t && n.unshift('inprogress'), o.call(a, function () {\n r.dequeue(a, t)\n }))\n })\n }, r.fn = r.prototype = {\n init: function (e) {\n if (e.nodeType) return this[0] = e, this;\n throw new Error('Not a DOM node.')\n }, offset: function () {\n var t = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : {top: 0, left: 0};\n return {\n top: t.top + (e.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0),\n left: t.left + (e.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0)\n }\n }, position: function () {\n function e() {\n for (var e = this.offsetParent || document; e && 'html' === !e.nodeType.toLowerCase && 'static' === e.style.position;) e = e.offsetParent;\n return e || document\n }\n\n var t = this[0], e = e.apply(t), a = this.offset(),\n n = /^(?:body|html)$/i.test(e.nodeName) ? {top: 0, left: 0} : r(e).offset();\n return a.top -= parseFloat(t.style.marginTop) || 0, a.left -= parseFloat(t.style.marginLeft) || 0, e.style && (n.top += parseFloat(e.style.borderTopWidth) || 0, n.left += parseFloat(e.style.borderLeftWidth) || 0), {\n top: a.top - n.top,\n left: a.left - n.left\n }\n }\n };\n var a = {};\n r.expando = 'velocity' + (new Date).getTime(), r.uuid = 0;\n for (var n = {}, o = n.hasOwnProperty, i = n.toString, s = 'Boolean Number String Function Array Date RegExp Object Error'.split(' '), l = 0; l < s.length; l++) n['[object ' + s[l] + ']'] = s[l].toLowerCase();\n r.fn.init.prototype = r.fn, e.Velocity = {Utilities: r}\n }\n}(window), function (e) {\n 'object' == typeof module && 'object' == typeof module.exports ? module.exports = e() : 'function' == typeof define && define.amd ? define(e) : e()\n}(function () {\n return function (e, t, r, a) {\n function n(e) {\n for (var t = -1, r = e ? e.length : 0, a = []; ++t < r;) {\n var n = e[t];\n n && a.push(n)\n }\n return a\n }\n\n function o(e) {\n return m.isWrapped(e) ? e = [].slice.call(e) : m.isNode(e) && (e = [e]), e\n }\n\n function i(e) {\n var t = f.data(e, 'velocity');\n return null === t ? a : t\n }\n\n function s(e) {\n return function (t) {\n return Math.round(t * e) * (1 / e)\n }\n }\n\n function l(e, r, a, n) {\n function o(e, t) {\n return 1 - 3 * t + 3 * e\n }\n\n function i(e, t) {\n return 3 * t - 6 * e\n }\n\n function s(e) {\n return 3 * e\n }\n\n function l(e, t, r) {\n return ((o(t, r) * e + i(t, r)) * e + s(t)) * e\n }\n\n function u(e, t, r) {\n return 3 * o(t, r) * e * e + 2 * i(t, r) * e + s(t)\n }\n\n function c(t, r) {\n for (var n = 0; m > n; ++n) {\n var o = u(r, e, a);\n if (0 === o) return r;\n var i = l(r, e, a) - t;\n r -= i / o\n }\n return r\n }\n\n function p() {\n for (var t = 0; b > t; ++t) w[t] = l(t * x, e, a)\n }\n\n function f(t, r, n) {\n var o, i, s = 0;\n do i = r + (n - r) / 2, o = l(i, e, a) - t, o > 0 ? n = i : r = i; while (Math.abs(o) > h && ++s < v);\n return i\n }\n\n function d(t) {\n for (var r = 0, n = 1, o = b - 1; n != o && w[n] <= t; ++n) r += x;\n --n;\n var i = (t - w[n]) / (w[n + 1] - w[n]), s = r + i * x, l = u(s, e, a);\n return l >= y ? c(t, s) : 0 == l ? s : f(t, r, r + x)\n }\n\n function g() {\n V = !0, (e != r || a != n) && p()\n }\n\n var m = 4, y = .001, h = 1e-7, v = 10, b = 11, x = 1 / (b - 1), S = 'Float32Array' in t;\n if (4 !== arguments.length) return !1;\n for (var P = 0; 4 > P; ++P) if ('number' != typeof arguments[P] || isNaN(arguments[P]) || !isFinite(arguments[P])) return !1;\n e = Math.min(e, 1), a = Math.min(a, 1), e = Math.max(e, 0), a = Math.max(a, 0);\n var w = S ? new Float32Array(b) : new Array(b), V = !1, C = function (t) {\n return V || g(), e === r && a === n ? t : 0 === t ? 0 : 1 === t ? 1 : l(d(t), r, n)\n };\n C.getControlPoints = function () {\n return [{x: e, y: r}, {x: a, y: n}]\n };\n var T = 'generateBezier(' + [e, r, a, n] + ')';\n return C.toString = function () {\n return T\n }, C\n }\n\n function u(e, t) {\n var r = e;\n return m.isString(e) ? b.Easings[e] || (r = !1) : r = m.isArray(e) && 1 === e.length ? s.apply(null, e) : m.isArray(e) && 2 === e.length ? x.apply(null, e.concat([t])) : m.isArray(e) && 4 === e.length ? l.apply(null, e) : !1, r === !1 && (r = b.Easings[b.defaults.easing] ? b.defaults.easing : v), r\n }\n\n function c(e) {\n if (e) {\n var t = (new Date).getTime(), r = b.State.calls.length;\n r > 1e4 && (b.State.calls = n(b.State.calls));\n for (var o = 0; r > o; o++) if (b.State.calls[o]) {\n var s = b.State.calls[o], l = s[0], u = s[2], d = s[3], g = !!d, y = null;\n d || (d = b.State.calls[o][3] = t - 16);\n for (var h = Math.min((t - d) / u.duration, 1), v = 0, x = l.length; x > v; v++) {\n var P = l[v], V = P.element;\n if (i(V)) {\n var C = !1;\n if (u.display !== a && null !== u.display && 'none' !== u.display) {\n if ('flex' === u.display) {\n var T = ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex'];\n f.each(T, function (e, t) {\n S.setPropertyValue(V, 'display', t)\n })\n }\n S.setPropertyValue(V, 'display', u.display)\n }\n u.visibility !== a && 'hidden' !== u.visibility && S.setPropertyValue(V, 'visibility', u.visibility);\n for (var k in P) if ('element' !== k) {\n var A, F = P[k], j = m.isString(F.easing) ? b.Easings[F.easing] : F.easing;\n if (1 === h) A = F.endValue; else {\n var E = F.endValue - F.startValue;\n if (A = F.startValue + E * j(h, u, E), !g && A === F.currentValue) continue\n }\n if (F.currentValue = A, 'tween' === k) y = A; else {\n if (S.Hooks.registered[k]) {\n var H = S.Hooks.getRoot(k), N = i(V).rootPropertyValueCache[H];\n N && (F.rootPropertyValue = N)\n }\n var L = S.setPropertyValue(V, k, F.currentValue + (0 === parseFloat(A) ? '' : F.unitType), F.rootPropertyValue, F.scrollData);\n S.Hooks.registered[k] && (i(V).rootPropertyValueCache[H] = S.Normalizations.registered[H] ? S.Normalizations.registered[H]('extract', null, L[1]) : L[1]), 'transform' === L[0] && (C = !0)\n }\n }\n u.mobileHA && i(V).transformCache.translate3d === a && (i(V).transformCache.translate3d = '(0px, 0px, 0px)', C = !0), C && S.flushTransformCache(V)\n }\n }\n u.display !== a && 'none' !== u.display && (b.State.calls[o][2].display = !1), u.visibility !== a && 'hidden' !== u.visibility && (b.State.calls[o][2].visibility = !1), u.progress && u.progress.call(s[1], s[1], h, Math.max(0, d + u.duration - t), d, y), 1 === h && p(o)\n }\n }\n b.State.isTicking && w(c)\n }\n\n function p(e, t) {\n if (!b.State.calls[e]) return !1;\n for (var r = b.State.calls[e][0], n = b.State.calls[e][1], o = b.State.calls[e][2], s = b.State.calls[e][4], l = !1, u = 0, c = r.length; c > u; u++) {\n var p = r[u].element;\n if (t || o.loop || ('none' === o.display && S.setPropertyValue(p, 'display', o.display), 'hidden' === o.visibility && S.setPropertyValue(p, 'visibility', o.visibility)), o.loop !== !0 && (f.queue(p)[1] === a || !/\\.velocityQueueEntryFlag/i.test(f.queue(p)[1])) && i(p)) {\n i(p).isAnimating = !1, i(p).rootPropertyValueCache = {};\n var d = !1;\n f.each(S.Lists.transforms3D, function (e, t) {\n var r = /^scale/.test(t) ? 1 : 0, n = i(p).transformCache[t];\n i(p).transformCache[t] !== a && new RegExp('^\\\\(' + r + '[^.]').test(n) && (d = !0, delete i(p).transformCache[t])\n }), o.mobileHA && (d = !0, delete i(p).transformCache.translate3d), d && S.flushTransformCache(p), S.Values.removeClass(p, 'velocity-animating')\n }\n if (!t && o.complete && !o.loop && u === c - 1) try {\n o.complete.call(n, n)\n } catch (g) {\n setTimeout(function () {\n throw g\n }, 1)\n }\n s && o.loop !== !0 && s(n), i(p) && o.loop === !0 && !t && (f.each(i(p).tweensContainer, function (e, t) {\n /^rotate/.test(e) && 360 === parseFloat(t.endValue) && (t.endValue = 0, t.startValue = 360), /^backgroundPosition/.test(e) && 100 === parseFloat(t.endValue) && '%' === t.unitType && (t.endValue = 0, t.startValue = 100)\n }), b(p, 'reverse', {loop: !0, delay: o.delay})), o.queue !== !1 && f.dequeue(p, o.queue)\n }\n b.State.calls[e] = !1;\n for (var m = 0, y = b.State.calls.length; y > m; m++) if (b.State.calls[m] !== !1) {\n l = !0;\n break\n }\n l === !1 && (b.State.isTicking = !1, delete b.State.calls, b.State.calls = [])\n }\n\n var f, d = function () {\n if (r.documentMode) return r.documentMode;\n for (var e = 7; e > 4; e--) {\n var t = r.createElement('div');\n if (t.innerHTML = '', t.getElementsByTagName('span').length) return t = null, e\n }\n return a\n }(), g = function () {\n var e = 0;\n return t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || function (t) {\n var r, a = (new Date).getTime();\n return r = Math.max(0, 16 - (a - e)), e = a + r, setTimeout(function () {\n t(a + r)\n }, r)\n }\n }(), m = {\n isString: function (e) {\n return 'string' == typeof e\n }, isArray: Array.isArray || function (e) {\n return '[object Array]' === Object.prototype.toString.call(e)\n }, isFunction: function (e) {\n return '[object Function]' === Object.prototype.toString.call(e)\n }, isNode: function (e) {\n return e && e.nodeType\n }, isNodeList: function (e) {\n return 'object' == typeof e && /^\\[object (HTMLCollection|NodeList|Object)\\]$/.test(Object.prototype.toString.call(e)) && e.length !== a && (0 === e.length || 'object' == typeof e[0] && e[0].nodeType > 0)\n }, isWrapped: function (e) {\n return e && (e.jquery || t.Zepto && t.Zepto.zepto.isZ(e))\n }, isSVG: function (e) {\n return t.SVGElement && e instanceof t.SVGElement\n }, isEmptyObject: function (e) {\n for (var t in e) return !1;\n return !0\n }\n }, y = !1;\n if (e.fn && e.fn.jquery ? (f = e, y = !0) : f = t.Velocity.Utilities, 8 >= d && !y) throw new Error('Velocity: IE8 and below require jQuery to be loaded before Velocity.');\n if (7 >= d) return void(jQuery.fn.velocity = jQuery.fn.animate);\n var h = 400, v = 'swing', b = {\n State: {\n isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\n isAndroid: /Android/i.test(navigator.userAgent),\n isGingerbread: /Android 2\\.3\\.[3-7]/i.test(navigator.userAgent),\n isChrome: t.chrome,\n isFirefox: /Firefox/i.test(navigator.userAgent),\n prefixElement: r.createElement('div'),\n prefixMatches: {},\n scrollAnchor: null,\n scrollPropertyLeft: null,\n scrollPropertyTop: null,\n isTicking: !1,\n calls: []\n },\n CSS: {},\n Utilities: f,\n Redirects: {},\n Easings: {},\n Promise: t.Promise,\n defaults: {\n queue: '',\n duration: h,\n easing: v,\n begin: a,\n complete: a,\n progress: a,\n display: a,\n visibility: a,\n loop: !1,\n delay: !1,\n mobileHA: !0,\n _cacheValues: !0\n },\n init: function (e) {\n f.data(e, 'velocity', {\n isSVG: m.isSVG(e),\n isAnimating: !1,\n computedStyle: null,\n tweensContainer: null,\n rootPropertyValueCache: {},\n transformCache: {}\n })\n },\n hook: null,\n mock: !1,\n version: {major: 1, minor: 2, patch: 2},\n debug: !1\n };\n t.pageYOffset !== a ? (b.State.scrollAnchor = t, b.State.scrollPropertyLeft = 'pageXOffset', b.State.scrollPropertyTop = 'pageYOffset') : (b.State.scrollAnchor = r.documentElement || r.body.parentNode || r.body, b.State.scrollPropertyLeft = 'scrollLeft', b.State.scrollPropertyTop = 'scrollTop');\n var x = function () {\n function e(e) {\n return -e.tension * e.x - e.friction * e.v\n }\n\n function t(t, r, a) {\n var n = {x: t.x + a.dx * r, v: t.v + a.dv * r, tension: t.tension, friction: t.friction};\n return {dx: n.v, dv: e(n)}\n }\n\n function r(r, a) {\n var n = {dx: r.v, dv: e(r)}, o = t(r, .5 * a, n), i = t(r, .5 * a, o), s = t(r, a, i),\n l = 1 / 6 * (n.dx + 2 * (o.dx + i.dx) + s.dx), u = 1 / 6 * (n.dv + 2 * (o.dv + i.dv) + s.dv);\n return r.x = r.x + l * a, r.v = r.v + u * a, r\n }\n\n return function a(e, t, n) {\n var o, i, s, l = {x: -1, v: 0, tension: null, friction: null}, u = [0], c = 0, p = 1e-4, f = .016;\n for (e = parseFloat(e) || 500, t = parseFloat(t) || 20, n = n || null, l.tension = e, l.friction = t, o = null !== n, o ? (c = a(e, t), i = c / n * f) : i = f; s = r(s || l, i), u.push(1 + s.x), c += 16, Math.abs(s.x) > p && Math.abs(s.v) > p;) ;\n return o ? function (e) {\n return u[e * (u.length - 1) | 0]\n } : c\n }\n }();\n b.Easings = {\n linear: function (e) {\n return e\n }, swing: function (e) {\n return .5 - Math.cos(e * Math.PI) / 2\n }, spring: function (e) {\n return 1 - Math.cos(4.5 * e * Math.PI) * Math.exp(6 * -e)\n }\n }, f.each([['ease', [.25, .1, .25, 1]], ['ease-in', [.42, 0, 1, 1]], ['ease-out', [0, 0, .58, 1]], ['ease-in-out', [.42, 0, .58, 1]], ['easeInSine', [.47, 0, .745, .715]], ['easeOutSine', [.39, .575, .565, 1]], ['easeInOutSine', [.445, .05, .55, .95]], ['easeInQuad', [.55, .085, .68, .53]], ['easeOutQuad', [.25, .46, .45, .94]], ['easeInOutQuad', [.455, .03, .515, .955]], ['easeInCubic', [.55, .055, .675, .19]], ['easeOutCubic', [.215, .61, .355, 1]], ['easeInOutCubic', [.645, .045, .355, 1]], ['easeInQuart', [.895, .03, .685, .22]], ['easeOutQuart', [.165, .84, .44, 1]], ['easeInOutQuart', [.77, 0, .175, 1]], ['easeInQuint', [.755, .05, .855, .06]], ['easeOutQuint', [.23, 1, .32, 1]], ['easeInOutQuint', [.86, 0, .07, 1]], ['easeInExpo', [.95, .05, .795, .035]], ['easeOutExpo', [.19, 1, .22, 1]], ['easeInOutExpo', [1, 0, 0, 1]], ['easeInCirc', [.6, .04, .98, .335]], ['easeOutCirc', [.075, .82, .165, 1]], ['easeInOutCirc', [.785, .135, .15, .86]]], function (e, t) {\n b.Easings[t[0]] = l.apply(null, t[1])\n });\n var S = b.CSS = {\n RegEx: {\n isHex: /^#([A-f\\d]{3}){1,2}$/i,\n valueUnwrap: /^[A-z]+\\((.*)\\)$/i,\n wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,\n valueSplit: /([A-z]+\\(.+\\))|(([A-z0-9#-.]+?)(?=\\s|$))/gi\n },\n Lists: {\n colors: ['fill', 'stroke', 'stopColor', 'color', 'backgroundColor', 'borderColor', 'borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor', 'outlineColor'],\n transformsBase: ['translateX', 'translateY', 'scale', 'scaleX', 'scaleY', 'skewX', 'skewY', 'rotateZ'],\n transforms3D: ['transformPerspective', 'translateZ', 'scaleZ', 'rotateX', 'rotateY']\n },\n Hooks: {\n templates: {\n textShadow: ['Color X Y Blur', 'black 0px 0px 0px'],\n boxShadow: ['Color X Y Blur Spread', 'black 0px 0px 0px 0px'],\n clip: ['Top Right Bottom Left', '0px 0px 0px 0px'],\n backgroundPosition: ['X Y', '0% 0%'],\n transformOrigin: ['X Y Z', '50% 50% 0px'],\n perspectiveOrigin: ['X Y', '50% 50%']\n }, registered: {}, register: function () {\n for (var e = 0; e < S.Lists.colors.length; e++) {\n var t = 'color' === S.Lists.colors[e] ? '0 0 0 1' : '255 255 255 1';\n S.Hooks.templates[S.Lists.colors[e]] = ['Red Green Blue Alpha', t]\n }\n var r, a, n;\n if (d) for (r in S.Hooks.templates) {\n a = S.Hooks.templates[r], n = a[0].split(' ');\n var o = a[1].match(S.RegEx.valueSplit);\n 'Color' === n[0] && (n.push(n.shift()), o.push(o.shift()), S.Hooks.templates[r] = [n.join(' '), o.join(' ')])\n }\n for (r in S.Hooks.templates) {\n a = S.Hooks.templates[r], n = a[0].split(' ');\n for (var e in n) {\n var i = r + n[e], s = e;\n S.Hooks.registered[i] = [r, s]\n }\n }\n }, getRoot: function (e) {\n var t = S.Hooks.registered[e];\n return t ? t[0] : e\n }, cleanRootPropertyValue: function (e, t) {\n return S.RegEx.valueUnwrap.test(t) && (t = t.match(S.RegEx.valueUnwrap)[1]), S.Values.isCSSNullValue(t) && (t = S.Hooks.templates[e][1]), t\n }, extractValue: function (e, t) {\n var r = S.Hooks.registered[e];\n if (r) {\n var a = r[0], n = r[1];\n return t = S.Hooks.cleanRootPropertyValue(a, t), t.toString().match(S.RegEx.valueSplit)[n]\n }\n return t\n }, injectValue: function (e, t, r) {\n var a = S.Hooks.registered[e];\n if (a) {\n var n, o, i = a[0], s = a[1];\n return r = S.Hooks.cleanRootPropertyValue(i, r), n = r.toString().match(S.RegEx.valueSplit), n[s] = t, o = n.join(' ')\n }\n return r\n }\n },\n Normalizations: {\n registered: {\n clip: function (e, t, r) {\n switch (e) {\n case'name':\n return 'clip';\n case'extract':\n var a;\n return S.RegEx.wrappedValueAlreadyExtracted.test(r) ? a = r : (a = r.toString().match(S.RegEx.valueUnwrap), a = a ? a[1].replace(/,(\\s+)?/g, ' ') : r), a;\n case'inject':\n return 'rect(' + r + ')'\n }\n }, blur: function (e, t, r) {\n switch (e) {\n case'name':\n return b.State.isFirefox ? 'filter' : '-webkit-filter';\n case'extract':\n var a = parseFloat(r);\n if (!a && 0 !== a) {\n var n = r.toString().match(/blur\\(([0-9]+[A-z]+)\\)/i);\n a = n ? n[1] : 0\n }\n return a;\n case'inject':\n return parseFloat(r) ? 'blur(' + r + ')' : 'none'\n }\n }, opacity: function (e, t, r) {\n if (8 >= d) switch (e) {\n case'name':\n return 'filter';\n case'extract':\n var a = r.toString().match(/alpha\\(opacity=(.*)\\)/i);\n return r = a ? a[1] / 100 : 1;\n case'inject':\n return t.style.zoom = 1, parseFloat(r) >= 1 ? '' : 'alpha(opacity=' + parseInt(100 * parseFloat(r), 10) + ')'\n } else switch (e) {\n case'name':\n return 'opacity';\n case'extract':\n return r;\n case'inject':\n return r\n }\n }\n }, register: function () {\n 9 >= d || b.State.isGingerbread || (S.Lists.transformsBase = S.Lists.transformsBase.concat(S.Lists.transforms3D));\n for (var e = 0; e < S.Lists.transformsBase.length; e++) !function () {\n var t = S.Lists.transformsBase[e];\n S.Normalizations.registered[t] = function (e, r, n) {\n switch (e) {\n case'name':\n return 'transform';\n case'extract':\n return i(r) === a || i(r).transformCache[t] === a ? /^scale/i.test(t) ? 1 : 0 : i(r).transformCache[t].replace(/[()]/g, '');\n case'inject':\n var o = !1;\n switch (t.substr(0, t.length - 1)) {\n case'translate':\n o = !/(%|px|em|rem|vw|vh|\\d)$/i.test(n);\n break;\n case'scal':\n case'scale':\n b.State.isAndroid && i(r).transformCache[t] === a && 1 > n && (n = 1), o = !/(\\d)$/i.test(n);\n break;\n case'skew':\n o = !/(deg|\\d)$/i.test(n);\n break;\n case'rotate':\n o = !/(deg|\\d)$/i.test(n)\n }\n return o || (i(r).transformCache[t] = '(' + n + ')'), i(r).transformCache[t]\n }\n }\n }();\n for (var e = 0; e < S.Lists.colors.length; e++) !function () {\n var t = S.Lists.colors[e];\n S.Normalizations.registered[t] = function (e, r, n) {\n switch (e) {\n case'name':\n return t;\n case'extract':\n var o;\n if (S.RegEx.wrappedValueAlreadyExtracted.test(n)) o = n; else {\n var i, s = {\n black: 'rgb(0, 0, 0)',\n blue: 'rgb(0, 0, 255)',\n gray: 'rgb(128, 128, 128)',\n green: 'rgb(0, 128, 0)',\n red: 'rgb(255, 0, 0)',\n white: 'rgb(255, 255, 255)'\n };\n /^[A-z]+$/i.test(n) ? i = s[n] !== a ? s[n] : s.black : S.RegEx.isHex.test(n) ? i = 'rgb(' + S.Values.hexToRgb(n).join(' ') + ')' : /^rgba?\\(/i.test(n) || (i = s.black), o = (i || n).toString().match(S.RegEx.valueUnwrap)[1].replace(/,(\\s+)?/g, ' ')\n }\n return 8 >= d || 3 !== o.split(' ').length || (o += ' 1'), o;\n case'inject':\n return 8 >= d ? 4 === n.split(' ').length && (n = n.split(/\\s+/).slice(0, 3).join(' ')) : 3 === n.split(' ').length && (n += ' 1'), (8 >= d ? 'rgb' : 'rgba') + '(' + n.replace(/\\s+/g, ',').replace(/\\.(\\d)+(?=,)/g, '') + ')'\n }\n }\n }()\n }\n },\n Names: {\n camelCase: function (e) {\n return e.replace(/-(\\w)/g, function (e, t) {\n return t.toUpperCase()\n })\n }, SVGAttribute: function (e) {\n var t = 'width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2';\n return (d || b.State.isAndroid && !b.State.isChrome) && (t += '|transform'), new RegExp('^(' + t + ')$', 'i').test(e)\n }, prefixCheck: function (e) {\n if (b.State.prefixMatches[e]) return [b.State.prefixMatches[e], !0];\n for (var t = ['', 'Webkit', 'Moz', 'ms', 'O'], r = 0, a = t.length; a > r; r++) {\n var n;\n if (n = 0 === r ? e : t[r] + e.replace(/^\\w/, function (e) {\n return e.toUpperCase()\n }), m.isString(b.State.prefixElement.style[n])) return b.State.prefixMatches[e] = n, [n, !0]\n }\n return [e, !1]\n }\n },\n Values: {\n hexToRgb: function (e) {\n var t, r = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, a = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n return e = e.replace(r, function (e, t, r, a) {\n return t + t + r + r + a + a\n }), t = a.exec(e), t ? [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)] : [0, 0, 0]\n }, isCSSNullValue: function (e) {\n return 0 == e || /^(none|auto|transparent|(rgba\\(0, ?0, ?0, ?0\\)))$/i.test(e)\n }, getUnitType: function (e) {\n return /^(rotate|skew)/i.test(e) ? 'deg' : /(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e) ? '' : 'px'\n }, getDisplayType: function (e) {\n var t = e && e.tagName.toString().toLowerCase();\n return /^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t) ? 'inline' : /^(li)$/i.test(t) ? 'list-item' : /^(tr)$/i.test(t) ? 'table-row' : /^(table)$/i.test(t) ? 'table' : /^(tbody)$/i.test(t) ? 'table-row-group' : 'block'\n }, addClass: function (e, t) {\n e.classList ? e.classList.add(t) : e.className += (e.className.length ? ' ' : '') + t\n }, removeClass: function (e, t) {\n e.classList ? e.classList.remove(t) : e.className = e.className.toString().replace(new RegExp('(^|\\\\s)' + t.split(' ').join('|') + '(\\\\s|$)', 'gi'), ' ')\n }\n },\n getPropertyValue: function (e, r, n, o) {\n function s(e, r) {\n function n() {\n u && S.setPropertyValue(e, 'display', 'none')\n }\n\n var l = 0;\n if (8 >= d) l = f.css(e, r); else {\n var u = !1;\n if (/^(width|height)$/.test(r) && 0 === S.getPropertyValue(e, 'display') && (u = !0, S.setPropertyValue(e, 'display', S.Values.getDisplayType(e))), !o) {\n if ('height' === r && 'border-box' !== S.getPropertyValue(e, 'boxSizing').toString().toLowerCase()) {\n var c = e.offsetHeight - (parseFloat(S.getPropertyValue(e, 'borderTopWidth')) || 0) - (parseFloat(S.getPropertyValue(e, 'borderBottomWidth')) || 0) - (parseFloat(S.getPropertyValue(e, 'paddingTop')) || 0) - (parseFloat(S.getPropertyValue(e, 'paddingBottom')) || 0);\n return n(), c\n }\n if ('width' === r && 'border-box' !== S.getPropertyValue(e, 'boxSizing').toString().toLowerCase()) {\n var p = e.offsetWidth - (parseFloat(S.getPropertyValue(e, 'borderLeftWidth')) || 0) - (parseFloat(S.getPropertyValue(e, 'borderRightWidth')) || 0) - (parseFloat(S.getPropertyValue(e, 'paddingLeft')) || 0) - (parseFloat(S.getPropertyValue(e, 'paddingRight')) || 0);\n return n(), p\n }\n }\n var g;\n g = i(e) === a ? t.getComputedStyle(e, null) : i(e).computedStyle ? i(e).computedStyle : i(e).computedStyle = t.getComputedStyle(e, null), 'borderColor' === r && (r = 'borderTopColor'), l = 9 === d && 'filter' === r ? g.getPropertyValue(r) : g[r], ('' === l || null === l) && (l = e.style[r]), n()\n }\n if ('auto' === l && /^(top|right|bottom|left)$/i.test(r)) {\n var m = s(e, 'position');\n ('fixed' === m || 'absolute' === m && /top|left/i.test(r)) && (l = f(e).position()[r] + 'px')\n }\n return l\n }\n\n var l;\n if (S.Hooks.registered[r]) {\n var u = r, c = S.Hooks.getRoot(u);\n n === a && (n = S.getPropertyValue(e, S.Names.prefixCheck(c)[0])), S.Normalizations.registered[c] && (n = S.Normalizations.registered[c]('extract', e, n)), l = S.Hooks.extractValue(u, n)\n } else if (S.Normalizations.registered[r]) {\n var p, g;\n p = S.Normalizations.registered[r]('name', e), 'transform' !== p && (g = s(e, S.Names.prefixCheck(p)[0]), S.Values.isCSSNullValue(g) && S.Hooks.templates[r] && (g = S.Hooks.templates[r][1])), l = S.Normalizations.registered[r]('extract', e, g)\n }\n if (!/^[\\d-]/.test(l)) if (i(e) && i(e).isSVG && S.Names.SVGAttribute(r)) if (/^(height|width)$/i.test(r)) try {\n l = e.getBBox()[r]\n } catch (m) {\n l = 0\n } else l = e.getAttribute(r); else l = s(e, S.Names.prefixCheck(r)[0]);\n return S.Values.isCSSNullValue(l) && (l = 0), b.debug >= 2 && console.log('Get ' + r + ': ' + l), l\n },\n setPropertyValue: function (e, r, a, n, o) {\n var s = r;\n if ('scroll' === r) o.container ? o.container['scroll' + o.direction] = a : 'Left' === o.direction ? t.scrollTo(a, o.alternateValue) : t.scrollTo(o.alternateValue, a); else if (S.Normalizations.registered[r] && 'transform' === S.Normalizations.registered[r]('name', e)) S.Normalizations.registered[r]('inject', e, a), s = 'transform', a = i(e).transformCache[r]; else {\n if (S.Hooks.registered[r]) {\n var l = r, u = S.Hooks.getRoot(r);\n n = n || S.getPropertyValue(e, u), a = S.Hooks.injectValue(l, a, n), r = u\n }\n if (S.Normalizations.registered[r] && (a = S.Normalizations.registered[r]('inject', e, a), r = S.Normalizations.registered[r]('name', e)), s = S.Names.prefixCheck(r)[0], 8 >= d) try {\n e.style[s] = a\n } catch (c) {\n b.debug && console.log('Browser does not support [' + a + '] for [' + s + ']')\n } else i(e) && i(e).isSVG && S.Names.SVGAttribute(r) ? e.setAttribute(r, a) : e.style[s] = a;\n b.debug >= 2 && console.log('Set ' + r + ' (' + s + '): ' + a)\n }\n return [s, a]\n },\n flushTransformCache: function (e) {\n function t(t) {\n return parseFloat(S.getPropertyValue(e, t))\n }\n\n var r = '';\n if ((d || b.State.isAndroid && !b.State.isChrome) && i(e).isSVG) {\n var a = {\n translate: [t('translateX'), t('translateY')],\n skewX: [t('skewX')],\n skewY: [t('skewY')],\n scale: 1 !== t('scale') ? [t('scale'), t('scale')] : [t('scaleX'), t('scaleY')],\n rotate: [t('rotateZ'), 0, 0]\n };\n f.each(i(e).transformCache, function (e) {\n /^translate/i.test(e) ? e = 'translate' : /^scale/i.test(e) ? e = 'scale' : /^rotate/i.test(e) && (e = 'rotate'), a[e] && (r += e + '(' + a[e].join(' ') + ') ', delete a[e])\n })\n } else {\n var n, o;\n f.each(i(e).transformCache, function (t) {\n return n = i(e).transformCache[t], 'transformPerspective' === t ? (o = n, !0) : (9 === d && 'rotateZ' === t && (t = 'rotate'), void(r += t + n + ' '))\n }), o && (r = 'perspective' + o + ' ' + r)\n }\n S.setPropertyValue(e, 'transform', r)\n }\n };\n S.Hooks.register(), S.Normalizations.register(), b.hook = function (e, t, r) {\n var n = a;\n return e = o(e), f.each(e, function (e, o) {\n if (i(o) === a && b.init(o), r === a) n === a && (n = b.CSS.getPropertyValue(o, t)); else {\n var s = b.CSS.setPropertyValue(o, t, r);\n 'transform' === s[0] && b.CSS.flushTransformCache(o), n = s\n }\n }), n\n };\n var P = function () {\n function e() {\n return s ? k.promise || null : l\n }\n\n function n() {\n function e(e) {\n function p(e, t) {\n var r = a, n = a, i = a;\n return m.isArray(e) ? (r = e[0], !m.isArray(e[1]) && /^[\\d-]/.test(e[1]) || m.isFunction(e[1]) || S.RegEx.isHex.test(e[1]) ? i = e[1] : (m.isString(e[1]) && !S.RegEx.isHex.test(e[1]) || m.isArray(e[1])) && (n = t ? e[1] : u(e[1], s.duration), e[2] !== a && (i = e[2]))) : r = e, t || (n = n || s.easing), m.isFunction(r) && (r = r.call(o, V, w)), m.isFunction(i) && (i = i.call(o, V, w)), [r || 0, n, i]\n }\n\n function d(e, t) {\n var r, a;\n return a = (t || '0').toString().toLowerCase().replace(/[%A-z]+$/, function (e) {\n return r = e, ''\n }), r || (r = S.Values.getUnitType(e)), [a, r]\n }\n\n function h() {\n var e = {\n myParent: o.parentNode || r.body,\n position: S.getPropertyValue(o, 'position'),\n fontSize: S.getPropertyValue(o, 'fontSize')\n }, a = e.position === L.lastPosition && e.myParent === L.lastParent,\n n = e.fontSize === L.lastFontSize;\n L.lastParent = e.myParent, L.lastPosition = e.position, L.lastFontSize = e.fontSize;\n var s = 100, l = {};\n if (n && a) l.emToPx = L.lastEmToPx, l.percentToPxWidth = L.lastPercentToPxWidth, l.percentToPxHeight = L.lastPercentToPxHeight; else {\n var u = i(o).isSVG ? r.createElementNS('http://www.w3.org/2000/svg', 'rect') : r.createElement('div');\n b.init(u), e.myParent.appendChild(u), f.each(['overflow', 'overflowX', 'overflowY'], function (e, t) {\n b.CSS.setPropertyValue(u, t, 'hidden')\n }), b.CSS.setPropertyValue(u, 'position', e.position), b.CSS.setPropertyValue(u, 'fontSize', e.fontSize), b.CSS.setPropertyValue(u, 'boxSizing', 'content-box'), f.each(['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height'], function (e, t) {\n b.CSS.setPropertyValue(u, t, s + '%')\n }), b.CSS.setPropertyValue(u, 'paddingLeft', s + 'em'), l.percentToPxWidth = L.lastPercentToPxWidth = (parseFloat(S.getPropertyValue(u, 'width', null, !0)) || 1) / s, l.percentToPxHeight = L.lastPercentToPxHeight = (parseFloat(S.getPropertyValue(u, 'height', null, !0)) || 1) / s, l.emToPx = L.lastEmToPx = (parseFloat(S.getPropertyValue(u, 'paddingLeft')) || 1) / s, e.myParent.removeChild(u)\n }\n return null === L.remToPx && (L.remToPx = parseFloat(S.getPropertyValue(r.body, 'fontSize')) || 16), null === L.vwToPx && (L.vwToPx = parseFloat(t.innerWidth) / 100, L.vhToPx = parseFloat(t.innerHeight) / 100), l.remToPx = L.remToPx, l.vwToPx = L.vwToPx, l.vhToPx = L.vhToPx, b.debug >= 1 && console.log('Unit ratios: ' + JSON.stringify(l), o), l\n }\n\n if (s.begin && 0 === V) try {\n s.begin.call(g, g)\n } catch (x) {\n setTimeout(function () {\n throw x\n }, 1)\n }\n if ('scroll' === A) {\n var P, C, T, F = /^x$/i.test(s.axis) ? 'Left' : 'Top', j = parseFloat(s.offset) || 0;\n s.container ? m.isWrapped(s.container) || m.isNode(s.container) ? (s.container = s.container[0] || s.container, P = s.container['scroll' + F], T = P + f(o).position()[F.toLowerCase()] + j) : s.container = null : (P = b.State.scrollAnchor[b.State['scrollProperty' + F]], C = b.State.scrollAnchor[b.State['scrollProperty' + ('Left' === F ? 'Top' : 'Left')]], T = f(o).offset()[F.toLowerCase()] + j), l = {\n scroll: {\n rootPropertyValue: !1,\n startValue: P,\n currentValue: P,\n endValue: T,\n unitType: '',\n easing: s.easing,\n scrollData: {container: s.container, direction: F, alternateValue: C}\n }, element: o\n }, b.debug && console.log('tweensContainer (scroll): ', l.scroll, o)\n } else if ('reverse' === A) {\n if (!i(o).tweensContainer) return void f.dequeue(o, s.queue);\n 'none' === i(o).opts.display && (i(o).opts.display = 'auto'), 'hidden' === i(o).opts.visibility && (i(o).opts.visibility = 'visible'), i(o).opts.loop = !1, i(o).opts.begin = null, i(o).opts.complete = null, v.easing || delete s.easing, v.duration || delete s.duration, s = f.extend({}, i(o).opts, s);\n var E = f.extend(!0, {}, i(o).tweensContainer);\n for (var H in E) if ('element' !== H) {\n var N = E[H].startValue;\n E[H].startValue = E[H].currentValue = E[H].endValue, E[H].endValue = N, m.isEmptyObject(v) || (E[H].easing = s.easing), b.debug && console.log('reverse tweensContainer (' + H + '): ' + JSON.stringify(E[H]), o)\n }\n l = E\n } else if ('start' === A) {\n var E;\n i(o).tweensContainer && i(o).isAnimating === !0 && (E = i(o).tweensContainer), f.each(y, function (e, t) {\n if (RegExp('^' + S.Lists.colors.join('$|^') + '$').test(e)) {\n var r = p(t, !0), n = r[0], o = r[1], i = r[2];\n if (S.RegEx.isHex.test(n)) {\n for (var s = ['Red', 'Green', 'Blue'], l = S.Values.hexToRgb(n), u = i ? S.Values.hexToRgb(i) : a, c = 0; c < s.length; c++) {\n var f = [l[c]];\n o && f.push(o), u !== a && f.push(u[c]), y[e + s[c]] = f\n }\n delete y[e]\n }\n }\n });\n for (var z in y) {\n var O = p(y[z]), q = O[0], $ = O[1], M = O[2];\n z = S.Names.camelCase(z);\n var I = S.Hooks.getRoot(z), B = !1;\n if (i(o).isSVG || 'tween' === I || S.Names.prefixCheck(I)[1] !== !1 || S.Normalizations.registered[I] !== a) {\n (s.display !== a && null !== s.display && 'none' !== s.display || s.visibility !== a && 'hidden' !== s.visibility) && /opacity|filter/.test(z) && !M && 0 !== q && (M = 0), s._cacheValues && E && E[z] ? (M === a && (M = E[z].endValue + E[z].unitType), B = i(o).rootPropertyValueCache[I]) : S.Hooks.registered[z] ? M === a ? (B = S.getPropertyValue(o, I), M = S.getPropertyValue(o, z, B)) : B = S.Hooks.templates[I][1] : M === a && (M = S.getPropertyValue(o, z));\n var W, G, Y, D = !1;\n if (W = d(z, M), M = W[0], Y = W[1], W = d(z, q), q = W[0].replace(/^([+-\\/*])=/, function (e, t) {\n return D = t, ''\n }), G = W[1], M = parseFloat(M) || 0, q = parseFloat(q) || 0, '%' === G && (/^(fontSize|lineHeight)$/.test(z) ? (q /= 100, G = 'em') : /^scale/.test(z) ? (q /= 100, G = '') : /(Red|Green|Blue)$/i.test(z) && (q = q / 100 * 255, G = '')), /[\\/*]/.test(D)) G = Y; else if (Y !== G && 0 !== M) if (0 === q) G = Y; else {\n n = n || h();\n var Q = /margin|padding|left|right|width|text|word|letter/i.test(z) || /X$/.test(z) || 'x' === z ? 'x' : 'y';\n switch (Y) {\n case'%':\n M *= 'x' === Q ? n.percentToPxWidth : n.percentToPxHeight;\n break;\n case'px':\n break;\n default:\n M *= n[Y + 'ToPx']\n }\n switch (G) {\n case'%':\n M *= 1 / ('x' === Q ? n.percentToPxWidth : n.percentToPxHeight);\n break;\n case'px':\n break;\n default:\n M *= 1 / n[G + 'ToPx']\n }\n }\n switch (D) {\n case'+':\n q = M + q;\n break;\n case'-':\n q = M - q;\n break;\n case'*':\n q = M * q;\n break;\n case'/':\n q = M / q\n }\n l[z] = {\n rootPropertyValue: B,\n startValue: M,\n currentValue: M,\n endValue: q,\n unitType: G,\n easing: $\n }, b.debug && console.log('tweensContainer (' + z + '): ' + JSON.stringify(l[z]), o)\n } else b.debug && console.log('Skipping [' + I + '] due to a lack of browser support.')\n }\n l.element = o\n }\n l.element && (S.Values.addClass(o, 'velocity-animating'), R.push(l), '' === s.queue && (i(o).tweensContainer = l, i(o).opts = s), i(o).isAnimating = !0, V === w - 1 ? (b.State.calls.push([R, g, s, null, k.resolver]), b.State.isTicking === !1 && (b.State.isTicking = !0, c())) : V++)\n }\n\n var n, o = this, s = f.extend({}, b.defaults, v), l = {};\n switch (i(o) === a && b.init(o), parseFloat(s.delay) && s.queue !== !1 && f.queue(o, s.queue, function (e) {\n b.velocityQueueEntryFlag = !0, i(o).delayTimer = {\n setTimeout: setTimeout(e, parseFloat(s.delay)),\n next: e\n }\n }), s.duration.toString().toLowerCase()) {\n case'fast':\n s.duration = 200;\n break;\n case'normal':\n s.duration = h;\n break;\n case'slow':\n s.duration = 600;\n break;\n default:\n s.duration = parseFloat(s.duration) || 1\n }\n b.mock !== !1 && (b.mock === !0 ? s.duration = s.delay = 1 : (s.duration *= parseFloat(b.mock) || 1, s.delay *= parseFloat(b.mock) || 1)), s.easing = u(s.easing, s.duration), s.begin && !m.isFunction(s.begin) && (s.begin = null), s.progress && !m.isFunction(s.progress) && (s.progress = null), s.complete && !m.isFunction(s.complete) && (s.complete = null), s.display !== a && null !== s.display && (s.display = s.display.toString().toLowerCase(), 'auto' === s.display && (s.display = b.CSS.Values.getDisplayType(o))), s.visibility !== a && null !== s.visibility && (s.visibility = s.visibility.toString().toLowerCase()), s.mobileHA = s.mobileHA && b.State.isMobile && !b.State.isGingerbread, s.queue === !1 ? s.delay ? setTimeout(e, s.delay) : e() : f.queue(o, s.queue, function (t, r) {\n return r === !0 ? (k.promise && k.resolver(g), !0) : (b.velocityQueueEntryFlag = !0, void e(t))\n }), '' !== s.queue && 'fx' !== s.queue || 'inprogress' === f.queue(o)[0] || f.dequeue(o)\n }\n\n var s, l, d, g, y, v,\n x = arguments[0] && (arguments[0].p || f.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || m.isString(arguments[0].properties));\n if (m.isWrapped(this) ? (s = !1, d = 0, g = this, l = this) : (s = !0, d = 1, g = x ? arguments[0].elements || arguments[0].e : arguments[0]), g = o(g)) {\n x ? (y = arguments[0].properties || arguments[0].p, v = arguments[0].options || arguments[0].o) : (y = arguments[d], v = arguments[d + 1]);\n var w = g.length, V = 0;\n if (!/^(stop|finish)$/i.test(y) && !f.isPlainObject(v)) {\n var C = d + 1;\n v = {};\n for (var T = C; T < arguments.length; T++) m.isArray(arguments[T]) || !/^(fast|normal|slow)$/i.test(arguments[T]) && !/^\\d/.test(arguments[T]) ? m.isString(arguments[T]) || m.isArray(arguments[T]) ? v.easing = arguments[T] : m.isFunction(arguments[T]) && (v.complete = arguments[T]) : v.duration = arguments[T]\n }\n var k = {promise: null, resolver: null, rejecter: null};\n s && b.Promise && (k.promise = new b.Promise(function (e, t) {\n k.resolver = e, k.rejecter = t\n }));\n var A;\n switch (y) {\n case'scroll':\n A = 'scroll';\n break;\n case'reverse':\n A = 'reverse';\n break;\n case'finish':\n case'stop':\n f.each(g, function (e, t) {\n i(t) && i(t).delayTimer && (clearTimeout(i(t).delayTimer.setTimeout), i(t).delayTimer.next && i(t).delayTimer.next(), delete i(t).delayTimer)\n });\n var F = [];\n return f.each(b.State.calls, function (e, t) {\n t && f.each(t[1], function (r, n) {\n var o = v === a ? '' : v;\n return o === !0 || t[2].queue === o || v === a && t[2].queue === !1 ? void f.each(g, function (r, a) {\n a === n && ((v === !0 || m.isString(v)) && (f.each(f.queue(a, m.isString(v) ? v : ''), function (e, t) {\n m.isFunction(t) && t(null, !0)\n }), f.queue(a, m.isString(v) ? v : '', [])), 'stop' === y ? (i(a) && i(a).tweensContainer && o !== !1 && f.each(i(a).tweensContainer, function (e, t) {\n t.endValue = t.currentValue\n }), F.push(e)) : 'finish' === y && (t[2].duration = 1))\n }) : !0\n })\n }), 'stop' === y && (f.each(F, function (e, t) {\n p(t, !0)\n }), k.promise && k.resolver(g)), e();\n default:\n if (!f.isPlainObject(y) || m.isEmptyObject(y)) {\n if (m.isString(y) && b.Redirects[y]) {\n var j = f.extend({}, v), E = j.duration, H = j.delay || 0;\n return j.backwards === !0 && (g = f.extend(!0, [], g).reverse()), f.each(g, function (e, t) {\n parseFloat(j.stagger) ? j.delay = H + parseFloat(j.stagger) * e : m.isFunction(j.stagger) && (j.delay = H + j.stagger.call(t, e, w)), j.drag && (j.duration = parseFloat(E) || (/^(callout|transition)/.test(y) ? 1e3 : h), j.duration = Math.max(j.duration * (j.backwards ? 1 - e / w : (e + 1) / w), .75 * j.duration, 200)), b.Redirects[y].call(t, t, j || {}, e, w, g, k.promise ? k : a)\n }), e()\n }\n var N = 'Velocity: First argument (' + y + ') was not a property map, a known action, or a registered redirect. Aborting.';\n return k.promise ? k.rejecter(new Error(N)) : console.log(N), e()\n }\n A = 'start'\n }\n var L = {\n lastParent: null,\n lastPosition: null,\n lastFontSize: null,\n lastPercentToPxWidth: null,\n lastPercentToPxHeight: null,\n lastEmToPx: null,\n remToPx: null,\n vwToPx: null,\n vhToPx: null\n }, R = [];\n f.each(g, function (e, t) {\n m.isNode(t) && n.call(t)\n });\n var z, j = f.extend({}, b.defaults, v);\n if (j.loop = parseInt(j.loop), z = 2 * j.loop - 1, j.loop) for (var O = 0; z > O; O++) {\n var q = {delay: j.delay, progress: j.progress};\n O === z - 1 && (q.display = j.display, q.visibility = j.visibility, q.complete = j.complete), P(g, 'reverse', q)\n }\n return e()\n }\n };\n b = f.extend(P, b), b.animate = P;\n var w = t.requestAnimationFrame || g;\n return b.State.isMobile || r.hidden === a || r.addEventListener('visibilitychange', function () {\n r.hidden ? (w = function (e) {\n return setTimeout(function () {\n e(!0)\n }, 16)\n }, c()) : w = t.requestAnimationFrame || g\n }), e.Velocity = b, e !== t && (e.fn.velocity = P, e.fn.velocity.defaults = b.defaults), f.each(['Down', 'Up'], function (e, t) {\n b.Redirects['slide' + t] = function (e, r, n, o, i, s) {\n var l = f.extend({}, r), u = l.begin, c = l.complete,\n p = {height: '', marginTop: '', marginBottom: '', paddingTop: '', paddingBottom: ''}, d = {};\n l.display === a && (l.display = 'Down' === t ? 'inline' === b.CSS.Values.getDisplayType(e) ? 'inline-block' : 'block' : 'none'), l.begin = function () {\n u && u.call(i, i);\n for (var r in p) {\n d[r] = e.style[r];\n var a = b.CSS.getPropertyValue(e, r);\n p[r] = 'Down' === t ? [a, 0] : [0, a]\n }\n d.overflow = e.style.overflow, e.style.overflow = 'hidden'\n }, l.complete = function () {\n for (var t in d) e.style[t] = d[t];\n c && c.call(i, i), s && s.resolver(i)\n }, b(e, p, l)\n }\n }), f.each(['In', 'Out'], function (e, t) {\n b.Redirects['fade' + t] = function (e, r, n, o, i, s) {\n var l = f.extend({}, r), u = {opacity: 'In' === t ? 1 : 0}, c = l.complete;\n l.complete = n !== o - 1 ? l.begin = null : function () {\n c && c.call(i, i), s && s.resolver(i)\n }, l.display === a && (l.display = 'In' === t ? 'auto' : 'none'), b(this, u, l)\n }\n }), b\n }(window.jQuery || window.Zepto || window, window, document)\n}));\n\n/*!\n * Chart.js\n * http://chartjs.org/\n * Version: 2.7.2\n *\n * Copyright 2018 Chart.js Contributors\n * Released under the MIT license\n * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md\n */\n(function (f) {\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = f()\n } else if (typeof define === 'function' && define.amd) {\n define([], f)\n } else {\n var g;\n if (typeof window !== 'undefined') {\n g = window\n } else if (typeof global !== 'undefined') {\n g = global\n } else if (typeof self !== 'undefined') {\n g = self\n } else {\n g = this\n }\n g.Chart = f()\n }\n})(function () {\n var define, module, exports;\n return (function () {\n function e(t, n, r) {\n function s(o, u) {\n if (!n[o]) {\n if (!t[o]) {\n var a = typeof require == 'function' && require;\n if (!u && a) return a(o, !0);\n if (i) return i(o, !0);\n var f = new Error(\"Cannot find module '\" + o + \"'\");\n throw f.code = 'MODULE_NOT_FOUND', f\n }\n var l = n[o] = {exports: {}};\n t[o][0].call(l.exports, function (e) {\n var n = t[o][1][e];\n return s(n ? n : e)\n }, l, l.exports, e, t, n, r)\n }\n return n[o].exports\n }\n\n var i = typeof require == 'function' && require;\n for (var o = 0; o < r.length; o++) s(r[o]);\n return s\n }\n\n return e\n })()({\n 1: [function (require, module, exports) {\n\n }, {}], 2: [function (require, module, exports) {\n /* MIT license */\n var colorNames = require(6);\n\n module.exports = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n }\n\n function getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3})$/i,\n hex = /^#([a-fA-F0-9]{6})$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr);\n if (match) {\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n }\n else if (match = string.match(hex)) {\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == 'transparent') {\n return [0, 0, 0, 0];\n }\n rgb = colorNames[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n }\n\n function getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n }\n\n function getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n }\n\n function getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n }\n\n function getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n }\n\n function getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n }\n\n// generators\n function hexString(rgb) {\n return '#' + hexDouble(rgb[0]) + hexDouble(rgb[1])\n + hexDouble(rgb[2]);\n }\n\n function rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return 'rgb(' + rgba[0] + ', ' + rgba[1] + ', ' + rgba[2] + ')';\n }\n\n function rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return 'rgba(' + rgba[0] + ', ' + rgba[1] + ', ' + rgba[2]\n + ', ' + alpha + ')';\n }\n\n function percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0] / 255 * 100),\n g = Math.round(rgba[1] / 255 * 100),\n b = Math.round(rgba[2] / 255 * 100);\n\n return 'rgb(' + r + '%, ' + g + '%, ' + b + '%)';\n }\n\n function percentaString(rgba, alpha) {\n var r = Math.round(rgba[0] / 255 * 100),\n g = Math.round(rgba[1] / 255 * 100),\n b = Math.round(rgba[2] / 255 * 100);\n return 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + (alpha || rgba[3] || 1) + ')';\n }\n\n function hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)';\n }\n\n function hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, '\n + alpha + ')';\n }\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\n function hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return 'hwb(' + hwb[0] + ', ' + hwb[1] + '%, ' + hwb[2] + '%'\n + (alpha !== undefined && alpha !== 1 ? ', ' + alpha : '') + ')';\n }\n\n function keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n }\n\n// helpers\n function scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n }\n\n function hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? '0' + str : str;\n }\n\n\n//create a list of reverse color names\n var reverseNames = {};\n for (var name in colorNames) {\n reverseNames[colorNames[name]] = name;\n }\n\n }, {'6': 6}], 3: [function (require, module, exports) {\n /* MIT license */\n var convert = require(5);\n var string = require(2);\n\n var Color = function (obj) {\n if (obj instanceof Color) {\n return obj;\n }\n if (!(this instanceof Color)) {\n return new Color(obj);\n }\n\n this.valid = false;\n this.values = {\n rgb: [0, 0, 0],\n hsl: [0, 0, 0],\n hsv: [0, 0, 0],\n hwb: [0, 0, 0],\n cmyk: [0, 0, 0, 0],\n alpha: 1\n };\n\n // parse Color() argument\n var vals;\n if (typeof obj === 'string') {\n vals = string.getRgba(obj);\n if (vals) {\n this.setValues('rgb', vals);\n } else if (vals = string.getHsla(obj)) {\n this.setValues('hsl', vals);\n } else if (vals = string.getHwb(obj)) {\n this.setValues('hwb', vals);\n }\n } else if (typeof obj === 'object') {\n vals = obj;\n if (vals.r !== undefined || vals.red !== undefined) {\n this.setValues('rgb', vals);\n } else if (vals.l !== undefined || vals.lightness !== undefined) {\n this.setValues('hsl', vals);\n } else if (vals.v !== undefined || vals.value !== undefined) {\n this.setValues('hsv', vals);\n } else if (vals.w !== undefined || vals.whiteness !== undefined) {\n this.setValues('hwb', vals);\n } else if (vals.c !== undefined || vals.cyan !== undefined) {\n this.setValues('cmyk', vals);\n }\n }\n };\n\n Color.prototype = {\n isValid: function () {\n return this.valid;\n },\n rgb: function () {\n return this.setSpace('rgb', arguments);\n },\n hsl: function () {\n return this.setSpace('hsl', arguments);\n },\n hsv: function () {\n return this.setSpace('hsv', arguments);\n },\n hwb: function () {\n return this.setSpace('hwb', arguments);\n },\n cmyk: function () {\n return this.setSpace('cmyk', arguments);\n },\n\n rgbArray: function () {\n return this.values.rgb;\n },\n hslArray: function () {\n return this.values.hsl;\n },\n hsvArray: function () {\n return this.values.hsv;\n },\n hwbArray: function () {\n var values = this.values;\n if (values.alpha !== 1) {\n return values.hwb.concat([values.alpha]);\n }\n return values.hwb;\n },\n cmykArray: function () {\n return this.values.cmyk;\n },\n rgbaArray: function () {\n var values = this.values;\n return values.rgb.concat([values.alpha]);\n },\n hslaArray: function () {\n var values = this.values;\n return values.hsl.concat([values.alpha]);\n },\n alpha: function (val) {\n if (val === undefined) {\n return this.values.alpha;\n }\n this.setValues('alpha', val);\n return this;\n },\n\n red: function (val) {\n return this.setChannel('rgb', 0, val);\n },\n green: function (val) {\n return this.setChannel('rgb', 1, val);\n },\n blue: function (val) {\n return this.setChannel('rgb', 2, val);\n },\n hue: function (val) {\n if (val) {\n val %= 360;\n val = val < 0 ? 360 + val : val;\n }\n return this.setChannel('hsl', 0, val);\n },\n saturation: function (val) {\n return this.setChannel('hsl', 1, val);\n },\n lightness: function (val) {\n return this.setChannel('hsl', 2, val);\n },\n saturationv: function (val) {\n return this.setChannel('hsv', 1, val);\n },\n whiteness: function (val) {\n return this.setChannel('hwb', 1, val);\n },\n blackness: function (val) {\n return this.setChannel('hwb', 2, val);\n },\n value: function (val) {\n return this.setChannel('hsv', 2, val);\n },\n cyan: function (val) {\n return this.setChannel('cmyk', 0, val);\n },\n magenta: function (val) {\n return this.setChannel('cmyk', 1, val);\n },\n yellow: function (val) {\n return this.setChannel('cmyk', 2, val);\n },\n black: function (val) {\n return this.setChannel('cmyk', 3, val);\n },\n\n hexString: function () {\n return string.hexString(this.values.rgb);\n },\n rgbString: function () {\n return string.rgbString(this.values.rgb, this.values.alpha);\n },\n rgbaString: function () {\n return string.rgbaString(this.values.rgb, this.values.alpha);\n },\n percentString: function () {\n return string.percentString(this.values.rgb, this.values.alpha);\n },\n hslString: function () {\n return string.hslString(this.values.hsl, this.values.alpha);\n },\n hslaString: function () {\n return string.hslaString(this.values.hsl, this.values.alpha);\n },\n hwbString: function () {\n return string.hwbString(this.values.hwb, this.values.alpha);\n },\n keyword: function () {\n return string.keyword(this.values.rgb, this.values.alpha);\n },\n\n rgbNumber: function () {\n var rgb = this.values.rgb;\n return (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n },\n\n luminosity: function () {\n // http://www.w3.org/TR/WCAG20/#relativeluminancedef\n var rgb = this.values.rgb;\n var lum = [];\n for (var i = 0; i < rgb.length; i++) {\n var chan = rgb[i] / 255;\n lum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n }\n return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n },\n\n contrast: function (color2) {\n // http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n var lum1 = this.luminosity();\n var lum2 = color2.luminosity();\n if (lum1 > lum2) {\n return (lum1 + 0.05) / (lum2 + 0.05);\n }\n return (lum2 + 0.05) / (lum1 + 0.05);\n },\n\n level: function (color2) {\n var contrastRatio = this.contrast(color2);\n if (contrastRatio >= 7.1) {\n return 'AAA';\n }\n\n return (contrastRatio >= 4.5) ? 'AA' : '';\n },\n\n dark: function () {\n // YIQ equation from http://24ways.org/2010/calculating-color-contrast\n var rgb = this.values.rgb;\n var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n return yiq < 128;\n },\n\n light: function () {\n return !this.dark();\n },\n\n negate: function () {\n var rgb = [];\n for (var i = 0; i < 3; i++) {\n rgb[i] = 255 - this.values.rgb[i];\n }\n this.setValues('rgb', rgb);\n return this;\n },\n\n lighten: function (ratio) {\n var hsl = this.values.hsl;\n hsl[2] += hsl[2] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n\n darken: function (ratio) {\n var hsl = this.values.hsl;\n hsl[2] -= hsl[2] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n\n saturate: function (ratio) {\n var hsl = this.values.hsl;\n hsl[1] += hsl[1] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n\n desaturate: function (ratio) {\n var hsl = this.values.hsl;\n hsl[1] -= hsl[1] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n\n whiten: function (ratio) {\n var hwb = this.values.hwb;\n hwb[1] += hwb[1] * ratio;\n this.setValues('hwb', hwb);\n return this;\n },\n\n blacken: function (ratio) {\n var hwb = this.values.hwb;\n hwb[2] += hwb[2] * ratio;\n this.setValues('hwb', hwb);\n return this;\n },\n\n greyscale: function () {\n var rgb = this.values.rgb;\n // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n this.setValues('rgb', [val, val, val]);\n return this;\n },\n\n clearer: function (ratio) {\n var alpha = this.values.alpha;\n this.setValues('alpha', alpha - (alpha * ratio));\n return this;\n },\n\n opaquer: function (ratio) {\n var alpha = this.values.alpha;\n this.setValues('alpha', alpha + (alpha * ratio));\n return this;\n },\n\n rotate: function (degrees) {\n var hsl = this.values.hsl;\n var hue = (hsl[0] + degrees) % 360;\n hsl[0] = hue < 0 ? 360 + hue : hue;\n this.setValues('hsl', hsl);\n return this;\n },\n\n /**\n * Ported from sass implementation in C\n * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n */\n mix: function (mixinColor, weight) {\n var color1 = this;\n var color2 = mixinColor;\n var p = weight === undefined ? 0.5 : weight;\n\n var w = 2 * p - 1;\n var a = color1.alpha() - color2.alpha();\n\n var w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n var w2 = 1 - w1;\n\n return this\n .rgb(\n w1 * color1.red() + w2 * color2.red(),\n w1 * color1.green() + w2 * color2.green(),\n w1 * color1.blue() + w2 * color2.blue()\n )\n .alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n },\n\n toJSON: function () {\n return this.rgb();\n },\n\n clone: function () {\n // NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n // making the final build way to big to embed in Chart.js. So let's do it manually,\n // assuming that values to clone are 1 dimension arrays containing only numbers,\n // except 'alpha' which is a number.\n var result = new Color();\n var source = this.values;\n var target = result.values;\n var value, type;\n\n for (var prop in source) {\n if (source.hasOwnProperty(prop)) {\n value = source[prop];\n type = ({}).toString.call(value);\n if (type === '[object Array]') {\n target[prop] = value.slice(0);\n } else if (type === '[object Number]') {\n target[prop] = value;\n } else {\n console.error('unexpected color value:', value);\n }\n }\n }\n\n return result;\n }\n };\n\n Color.prototype.spaces = {\n rgb: ['red', 'green', 'blue'],\n hsl: ['hue', 'saturation', 'lightness'],\n hsv: ['hue', 'saturation', 'value'],\n hwb: ['hue', 'whiteness', 'blackness'],\n cmyk: ['cyan', 'magenta', 'yellow', 'black']\n };\n\n Color.prototype.maxes = {\n rgb: [255, 255, 255],\n hsl: [360, 100, 100],\n hsv: [360, 100, 100],\n hwb: [360, 100, 100],\n cmyk: [100, 100, 100, 100]\n };\n\n Color.prototype.getValues = function (space) {\n var values = this.values;\n var vals = {};\n\n for (var i = 0; i < space.length; i++) {\n vals[space.charAt(i)] = values[space][i];\n }\n\n if (values.alpha !== 1) {\n vals.a = values.alpha;\n }\n\n // {r: 255, g: 255, b: 255, a: 0.4}\n return vals;\n };\n\n Color.prototype.setValues = function (space, vals) {\n var values = this.values;\n var spaces = this.spaces;\n var maxes = this.maxes;\n var alpha = 1;\n var i;\n\n this.valid = true;\n\n if (space === 'alpha') {\n alpha = vals;\n } else if (vals.length) {\n // [10, 10, 10]\n values[space] = vals.slice(0, space.length);\n alpha = vals[space.length];\n } else if (vals[space.charAt(0)] !== undefined) {\n // {r: 10, g: 10, b: 10}\n for (i = 0; i < space.length; i++) {\n values[space][i] = vals[space.charAt(i)];\n }\n\n alpha = vals.a;\n } else if (vals[spaces[space][0]] !== undefined) {\n // {red: 10, green: 10, blue: 10}\n var chans = spaces[space];\n\n for (i = 0; i < space.length; i++) {\n values[space][i] = vals[chans[i]];\n }\n\n alpha = vals.alpha;\n }\n\n values.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n if (space === 'alpha') {\n return false;\n }\n\n var capped;\n\n // cap values of the space prior converting all values\n for (i = 0; i < space.length; i++) {\n capped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n values[space][i] = Math.round(capped);\n }\n\n // convert to all the other color spaces\n for (var sname in spaces) {\n if (sname !== space) {\n values[sname] = convert[space][sname](values[space]);\n }\n }\n\n return true;\n };\n\n Color.prototype.setSpace = function (space, args) {\n var vals = args[0];\n\n if (vals === undefined) {\n // color.rgb()\n return this.getValues(space);\n }\n\n // color.rgb(10, 10, 10)\n if (typeof vals === 'number') {\n vals = Array.prototype.slice.call(args);\n }\n\n this.setValues(space, vals);\n return this;\n };\n\n Color.prototype.setChannel = function (space, index, val) {\n var svalues = this.values[space];\n if (val === undefined) {\n // color.red()\n return svalues[index];\n } else if (val === svalues[index]) {\n // color.red(color.red())\n return this;\n }\n\n // color.red(100)\n svalues[index] = val;\n this.setValues(space, svalues);\n\n return this;\n };\n\n if (typeof window !== 'undefined') {\n window.Color = Color;\n }\n\n module.exports = Color;\n\n }, {'2': 2, '5': 5}], 4: [function (require, module, exports) {\n /* MIT license */\n\n module.exports = {\n rgb2hsl: rgb2hsl,\n rgb2hsv: rgb2hsv,\n rgb2hwb: rgb2hwb,\n rgb2cmyk: rgb2cmyk,\n rgb2keyword: rgb2keyword,\n rgb2xyz: rgb2xyz,\n rgb2lab: rgb2lab,\n rgb2lch: rgb2lch,\n\n hsl2rgb: hsl2rgb,\n hsl2hsv: hsl2hsv,\n hsl2hwb: hsl2hwb,\n hsl2cmyk: hsl2cmyk,\n hsl2keyword: hsl2keyword,\n\n hsv2rgb: hsv2rgb,\n hsv2hsl: hsv2hsl,\n hsv2hwb: hsv2hwb,\n hsv2cmyk: hsv2cmyk,\n hsv2keyword: hsv2keyword,\n\n hwb2rgb: hwb2rgb,\n hwb2hsl: hwb2hsl,\n hwb2hsv: hwb2hsv,\n hwb2cmyk: hwb2cmyk,\n hwb2keyword: hwb2keyword,\n\n cmyk2rgb: cmyk2rgb,\n cmyk2hsl: cmyk2hsl,\n cmyk2hsv: cmyk2hsv,\n cmyk2hwb: cmyk2hwb,\n cmyk2keyword: cmyk2keyword,\n\n keyword2rgb: keyword2rgb,\n keyword2hsl: keyword2hsl,\n keyword2hsv: keyword2hsv,\n keyword2hwb: keyword2hwb,\n keyword2cmyk: keyword2cmyk,\n keyword2lab: keyword2lab,\n keyword2xyz: keyword2xyz,\n\n xyz2rgb: xyz2rgb,\n xyz2lab: xyz2lab,\n xyz2lch: xyz2lch,\n\n lab2xyz: lab2xyz,\n lab2rgb: lab2rgb,\n lab2lch: lab2lch,\n\n lch2lab: lch2lab,\n lch2xyz: lch2xyz,\n lch2rgb: lch2rgb\n }\n\n\n function rgb2hsl(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, l;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g) / delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n l = (min + max) / 2;\n\n if (max == min)\n s = 0;\n else if (l <= 0.5)\n s = delta / (max + min);\n else\n s = delta / (2 - max - min);\n\n return [h, s * 100, l * 100];\n }\n\n function rgb2hsv(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, v;\n\n if (max == 0)\n s = 0;\n else\n s = (delta / max * 1000) / 10;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g) / delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n v = ((max / 255) * 1000) / 10;\n\n return [h, s, v];\n }\n\n function rgb2hwb(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n h = rgb2hsl(rgb)[0],\n w = 1 / 255 * Math.min(r, Math.min(g, b)),\n b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n return [h, w * 100, b * 100];\n }\n\n function rgb2cmyk(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255,\n c, m, y, k;\n\n k = Math.min(1 - r, 1 - g, 1 - b);\n c = (1 - r - k) / (1 - k) || 0;\n m = (1 - g - k) / (1 - k) || 0;\n y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n }\n\n function rgb2keyword(rgb) {\n return reverseKeywords[JSON.stringify(rgb)];\n }\n\n function rgb2xyz(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255;\n\n // assume sRGB\n r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n return [x * 100, y * 100, z * 100];\n }\n\n function rgb2lab(rgb) {\n var xyz = rgb2xyz(rgb),\n x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n }\n\n function rgb2lch(args) {\n return lab2lch(rgb2lab(args));\n }\n\n function hsl2rgb(hsl) {\n var h = hsl[0] / 360,\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n t1, t2, t3, rgb, val;\n\n if (s == 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5)\n t2 = l * (1 + s);\n else\n t2 = l + s - l * s;\n t1 = 2 * l - t2;\n\n rgb = [0, 0, 0];\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * -(i - 1);\n t3 < 0 && t3++;\n t3 > 1 && t3--;\n\n if (6 * t3 < 1)\n val = t1 + (t2 - t1) * 6 * t3;\n else if (2 * t3 < 1)\n val = t2;\n else if (3 * t3 < 2)\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n else\n val = t1;\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n }\n\n function hsl2hsv(hsl) {\n var h = hsl[0],\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n sv, v;\n\n if (l === 0) {\n // no need to do calc on black\n // also avoids divide by 0 error\n return [0, 0, 0];\n }\n\n l *= 2;\n s *= (l <= 1) ? l : 2 - l;\n v = (l + s) / 2;\n sv = (2 * s) / (l + s);\n return [h, sv * 100, v * 100];\n }\n\n function hsl2hwb(args) {\n return rgb2hwb(hsl2rgb(args));\n }\n\n function hsl2cmyk(args) {\n return rgb2cmyk(hsl2rgb(args));\n }\n\n function hsl2keyword(args) {\n return rgb2keyword(hsl2rgb(args));\n }\n\n\n function hsv2rgb(hsv) {\n var h = hsv[0] / 60,\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n hi = Math.floor(h) % 6;\n\n var f = h - Math.floor(h),\n p = 255 * v * (1 - s),\n q = 255 * v * (1 - (s * f)),\n t = 255 * v * (1 - (s * (1 - f))),\n v = 255 * v;\n\n switch (hi) {\n case 0:\n return [v, t, p];\n case 1:\n return [q, v, p];\n case 2:\n return [p, v, t];\n case 3:\n return [p, q, v];\n case 4:\n return [t, p, v];\n case 5:\n return [v, p, q];\n }\n }\n\n function hsv2hsl(hsv) {\n var h = hsv[0],\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n sl, l;\n\n l = (2 - s) * v;\n sl = s * v;\n sl /= (l <= 1) ? l : 2 - l;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n }\n\n function hsv2hwb(args) {\n return rgb2hwb(hsv2rgb(args))\n }\n\n function hsv2cmyk(args) {\n return rgb2cmyk(hsv2rgb(args));\n }\n\n function hsv2keyword(args) {\n return rgb2keyword(hsv2rgb(args));\n }\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\n function hwb2rgb(hwb) {\n var h = hwb[0] / 360,\n wh = hwb[1] / 100,\n bl = hwb[2] / 100,\n ratio = wh + bl,\n i, v, f, n;\n\n // wh + bl cant be > 1\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i;\n if ((i & 0x01) != 0) {\n f = 1 - f;\n }\n n = wh + f * (v - wh); // linear interpolation\n\n switch (i) {\n default:\n case 6:\n case 0:\n r = v;\n g = n;\n b = wh;\n break;\n case 1:\n r = n;\n g = v;\n b = wh;\n break;\n case 2:\n r = wh;\n g = v;\n b = n;\n break;\n case 3:\n r = wh;\n g = n;\n b = v;\n break;\n case 4:\n r = n;\n g = wh;\n b = v;\n break;\n case 5:\n r = v;\n g = wh;\n b = n;\n break;\n }\n\n return [r * 255, g * 255, b * 255];\n }\n\n function hwb2hsl(args) {\n return rgb2hsl(hwb2rgb(args));\n }\n\n function hwb2hsv(args) {\n return rgb2hsv(hwb2rgb(args));\n }\n\n function hwb2cmyk(args) {\n return rgb2cmyk(hwb2rgb(args));\n }\n\n function hwb2keyword(args) {\n return rgb2keyword(hwb2rgb(args));\n }\n\n function cmyk2rgb(cmyk) {\n var c = cmyk[0] / 100,\n m = cmyk[1] / 100,\n y = cmyk[2] / 100,\n k = cmyk[3] / 100,\n r, g, b;\n\n r = 1 - Math.min(1, c * (1 - k) + k);\n g = 1 - Math.min(1, m * (1 - k) + k);\n b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n }\n\n function cmyk2hsl(args) {\n return rgb2hsl(cmyk2rgb(args));\n }\n\n function cmyk2hsv(args) {\n return rgb2hsv(cmyk2rgb(args));\n }\n\n function cmyk2hwb(args) {\n return rgb2hwb(cmyk2rgb(args));\n }\n\n function cmyk2keyword(args) {\n return rgb2keyword(cmyk2rgb(args));\n }\n\n\n function xyz2rgb(xyz) {\n var x = xyz[0] / 100,\n y = xyz[1] / 100,\n z = xyz[2] / 100,\n r, g, b;\n\n r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n // assume sRGB\n r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n : r = (r * 12.92);\n\n g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n : g = (g * 12.92);\n\n b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n : b = (b * 12.92);\n\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n\n return [r * 255, g * 255, b * 255];\n }\n\n function xyz2lab(xyz) {\n var x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n }\n\n function xyz2lch(args) {\n return lab2lch(xyz2lab(args));\n }\n\n function lab2xyz(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n x, y, z, y2;\n\n if (l <= 8) {\n y = (l * 100) / 903.3;\n y2 = (7.787 * (y / 100)) + (16 / 116);\n } else {\n y = 100 * Math.pow((l + 16) / 116, 3);\n y2 = Math.pow(y / 100, 1 / 3);\n }\n\n x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\n\n z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\n\n return [x, y, z];\n }\n\n function lab2lch(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n hr, h, c;\n\n hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n if (h < 0) {\n h += 360;\n }\n c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n }\n\n function lab2rgb(args) {\n return xyz2rgb(lab2xyz(args));\n }\n\n function lch2lab(lch) {\n var l = lch[0],\n c = lch[1],\n h = lch[2],\n a, b, hr;\n\n hr = h / 360 * 2 * Math.PI;\n a = c * Math.cos(hr);\n b = c * Math.sin(hr);\n return [l, a, b];\n }\n\n function lch2xyz(args) {\n return lab2xyz(lch2lab(args));\n }\n\n function lch2rgb(args) {\n return lab2rgb(lch2lab(args));\n }\n\n function keyword2rgb(keyword) {\n return cssKeywords[keyword];\n }\n\n function keyword2hsl(args) {\n return rgb2hsl(keyword2rgb(args));\n }\n\n function keyword2hsv(args) {\n return rgb2hsv(keyword2rgb(args));\n }\n\n function keyword2hwb(args) {\n return rgb2hwb(keyword2rgb(args));\n }\n\n function keyword2cmyk(args) {\n return rgb2cmyk(keyword2rgb(args));\n }\n\n function keyword2lab(args) {\n return rgb2lab(keyword2rgb(args));\n }\n\n function keyword2xyz(args) {\n return rgb2xyz(keyword2rgb(args));\n }\n\n var cssKeywords = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50]\n };\n\n var reverseKeywords = {};\n for (var key in cssKeywords) {\n reverseKeywords[JSON.stringify(cssKeywords[key])] = key;\n }\n\n }, {}], 5: [function (require, module, exports) {\n var conversions = require(4);\n\n var convert = function () {\n return new Converter();\n }\n\n for (var func in conversions) {\n // export Raw versions\n convert[func + 'Raw'] = (function (func) {\n // accept array or plain args\n return function (arg) {\n if (typeof arg == 'number')\n arg = Array.prototype.slice.call(arguments);\n return conversions[func](arg);\n }\n })(func);\n\n var pair = /(\\w+)2(\\w+)/.exec(func),\n from = pair[1],\n to = pair[2];\n\n // export rgb2hsl and [\"rgb\"][\"hsl\"]\n convert[from] = convert[from] || {};\n\n convert[from][to] = convert[func] = (function (func) {\n return function (arg) {\n if (typeof arg == 'number')\n arg = Array.prototype.slice.call(arguments);\n\n var val = conversions[func](arg);\n if (typeof val == 'string' || val === undefined)\n return val; // keyword\n\n for (var i = 0; i < val.length; i++)\n val[i] = Math.round(val[i]);\n return val;\n }\n })(func);\n }\n\n\n /* Converter does lazy conversion and caching */\n var Converter = function () {\n this.convs = {};\n };\n\n /* Either get the values for a space or\n set the values for a space, depending on args */\n Converter.prototype.routeSpace = function (space, args) {\n var values = args[0];\n if (values === undefined) {\n // color.rgb()\n return this.getValues(space);\n }\n // color.rgb(10, 10, 10)\n if (typeof values == 'number') {\n values = Array.prototype.slice.call(args);\n }\n\n return this.setValues(space, values);\n };\n\n /* Set the values for a space, invalidating cache */\n Converter.prototype.setValues = function (space, values) {\n this.space = space;\n this.convs = {};\n this.convs[space] = values;\n return this;\n };\n\n /* Get the values for a space. If there's already\n a conversion for the space, fetch it, otherwise\n compute it */\n Converter.prototype.getValues = function (space) {\n var vals = this.convs[space];\n if (!vals) {\n var fspace = this.space,\n from = this.convs[fspace];\n vals = convert[fspace][space](from);\n\n this.convs[space] = vals;\n }\n return vals;\n };\n\n ['rgb', 'hsl', 'hsv', 'cmyk', 'keyword'].forEach(function (space) {\n Converter.prototype[space] = function (vals) {\n return this.routeSpace(space, arguments);\n }\n });\n\n module.exports = convert;\n }, {'4': 4}], 6: [function (require, module, exports) {\n 'use strict'\n\n module.exports = {\n 'aliceblue': [240, 248, 255],\n 'antiquewhite': [250, 235, 215],\n 'aqua': [0, 255, 255],\n 'aquamarine': [127, 255, 212],\n 'azure': [240, 255, 255],\n 'beige': [245, 245, 220],\n 'bisque': [255, 228, 196],\n 'black': [0, 0, 0],\n 'blanchedalmond': [255, 235, 205],\n 'blue': [0, 0, 255],\n 'blueviolet': [138, 43, 226],\n 'brown': [165, 42, 42],\n 'burlywood': [222, 184, 135],\n 'cadetblue': [95, 158, 160],\n 'chartreuse': [127, 255, 0],\n 'chocolate': [210, 105, 30],\n 'coral': [255, 127, 80],\n 'cornflowerblue': [100, 149, 237],\n 'cornsilk': [255, 248, 220],\n 'crimson': [220, 20, 60],\n 'cyan': [0, 255, 255],\n 'darkblue': [0, 0, 139],\n 'darkcyan': [0, 139, 139],\n 'darkgoldenrod': [184, 134, 11],\n 'darkgray': [169, 169, 169],\n 'darkgreen': [0, 100, 0],\n 'darkgrey': [169, 169, 169],\n 'darkkhaki': [189, 183, 107],\n 'darkmagenta': [139, 0, 139],\n 'darkolivegreen': [85, 107, 47],\n 'darkorange': [255, 140, 0],\n 'darkorchid': [153, 50, 204],\n 'darkred': [139, 0, 0],\n 'darksalmon': [233, 150, 122],\n 'darkseagreen': [143, 188, 143],\n 'darkslateblue': [72, 61, 139],\n 'darkslategray': [47, 79, 79],\n 'darkslategrey': [47, 79, 79],\n 'darkturquoise': [0, 206, 209],\n 'darkviolet': [148, 0, 211],\n 'deeppink': [255, 20, 147],\n 'deepskyblue': [0, 191, 255],\n 'dimgray': [105, 105, 105],\n 'dimgrey': [105, 105, 105],\n 'dodgerblue': [30, 144, 255],\n 'firebrick': [178, 34, 34],\n 'floralwhite': [255, 250, 240],\n 'forestgreen': [34, 139, 34],\n 'fuchsia': [255, 0, 255],\n 'gainsboro': [220, 220, 220],\n 'ghostwhite': [248, 248, 255],\n 'gold': [255, 215, 0],\n 'goldenrod': [218, 165, 32],\n 'gray': [128, 128, 128],\n 'green': [0, 128, 0],\n 'greenyellow': [173, 255, 47],\n 'grey': [128, 128, 128],\n 'honeydew': [240, 255, 240],\n 'hotpink': [255, 105, 180],\n 'indianred': [205, 92, 92],\n 'indigo': [75, 0, 130],\n 'ivory': [255, 255, 240],\n 'khaki': [240, 230, 140],\n 'lavender': [230, 230, 250],\n 'lavenderblush': [255, 240, 245],\n 'lawngreen': [124, 252, 0],\n 'lemonchiffon': [255, 250, 205],\n 'lightblue': [173, 216, 230],\n 'lightcoral': [240, 128, 128],\n 'lightcyan': [224, 255, 255],\n 'lightgoldenrodyellow': [250, 250, 210],\n 'lightgray': [211, 211, 211],\n 'lightgreen': [144, 238, 144],\n 'lightgrey': [211, 211, 211],\n 'lightpink': [255, 182, 193],\n 'lightsalmon': [255, 160, 122],\n 'lightseagreen': [32, 178, 170],\n 'lightskyblue': [135, 206, 250],\n 'lightslategray': [119, 136, 153],\n 'lightslategrey': [119, 136, 153],\n 'lightsteelblue': [176, 196, 222],\n 'lightyellow': [255, 255, 224],\n 'lime': [0, 255, 0],\n 'limegreen': [50, 205, 50],\n 'linen': [250, 240, 230],\n 'magenta': [255, 0, 255],\n 'maroon': [128, 0, 0],\n 'mediumaquamarine': [102, 205, 170],\n 'mediumblue': [0, 0, 205],\n 'mediumorchid': [186, 85, 211],\n 'mediumpurple': [147, 112, 219],\n 'mediumseagreen': [60, 179, 113],\n 'mediumslateblue': [123, 104, 238],\n 'mediumspringgreen': [0, 250, 154],\n 'mediumturquoise': [72, 209, 204],\n 'mediumvioletred': [199, 21, 133],\n 'midnightblue': [25, 25, 112],\n 'mintcream': [245, 255, 250],\n 'mistyrose': [255, 228, 225],\n 'moccasin': [255, 228, 181],\n 'navajowhite': [255, 222, 173],\n 'navy': [0, 0, 128],\n 'oldlace': [253, 245, 230],\n 'olive': [128, 128, 0],\n 'olivedrab': [107, 142, 35],\n 'orange': [255, 165, 0],\n 'orangered': [255, 69, 0],\n 'orchid': [218, 112, 214],\n 'palegoldenrod': [238, 232, 170],\n 'palegreen': [152, 251, 152],\n 'paleturquoise': [175, 238, 238],\n 'palevioletred': [219, 112, 147],\n 'papayawhip': [255, 239, 213],\n 'peachpuff': [255, 218, 185],\n 'peru': [205, 133, 63],\n 'pink': [255, 192, 203],\n 'plum': [221, 160, 221],\n 'powderblue': [176, 224, 230],\n 'purple': [128, 0, 128],\n 'rebeccapurple': [102, 51, 153],\n 'red': [255, 0, 0],\n 'rosybrown': [188, 143, 143],\n 'royalblue': [65, 105, 225],\n 'saddlebrown': [139, 69, 19],\n 'salmon': [250, 128, 114],\n 'sandybrown': [244, 164, 96],\n 'seagreen': [46, 139, 87],\n 'seashell': [255, 245, 238],\n 'sienna': [160, 82, 45],\n 'silver': [192, 192, 192],\n 'skyblue': [135, 206, 235],\n 'slateblue': [106, 90, 205],\n 'slategray': [112, 128, 144],\n 'slategrey': [112, 128, 144],\n 'snow': [255, 250, 250],\n 'springgreen': [0, 255, 127],\n 'steelblue': [70, 130, 180],\n 'tan': [210, 180, 140],\n 'teal': [0, 128, 128],\n 'thistle': [216, 191, 216],\n 'tomato': [255, 99, 71],\n 'turquoise': [64, 224, 208],\n 'violet': [238, 130, 238],\n 'wheat': [245, 222, 179],\n 'white': [255, 255, 255],\n 'whitesmoke': [245, 245, 245],\n 'yellow': [255, 255, 0],\n 'yellowgreen': [154, 205, 50]\n };\n\n }, {}], 7: [function (require, module, exports) {\n /**\n * @namespace Chart\n */\n var Chart = require(29)();\n\n Chart.helpers = require(45);\n\n// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests!\n require(27)(Chart);\n\n Chart.defaults = require(25);\n Chart.Element = require(26);\n Chart.elements = require(40);\n Chart.Interaction = require(28);\n Chart.layouts = require(30);\n Chart.platform = require(48);\n Chart.plugins = require(31);\n Chart.Ticks = require(34);\n\n require(22)(Chart);\n require(23)(Chart);\n require(24)(Chart);\n require(33)(Chart);\n require(32)(Chart);\n require(35)(Chart);\n\n require(55)(Chart);\n require(53)(Chart);\n require(54)(Chart);\n require(56)(Chart);\n require(57)(Chart);\n require(58)(Chart);\n\n// Controllers must be loaded after elements\n// See Chart.core.datasetController.dataElementType\n require(15)(Chart);\n require(16)(Chart);\n require(17)(Chart);\n require(18)(Chart);\n require(19)(Chart);\n require(20)(Chart);\n require(21)(Chart);\n\n require(8)(Chart);\n require(9)(Chart);\n require(10)(Chart);\n require(11)(Chart);\n require(12)(Chart);\n require(13)(Chart);\n require(14)(Chart);\n\n// Loading built-it plugins\n var plugins = require(49);\n for (var k in plugins) {\n if (plugins.hasOwnProperty(k)) {\n Chart.plugins.register(plugins[k]);\n }\n }\n\n Chart.platform.initialize();\n\n module.exports = Chart;\n if (typeof window !== 'undefined') {\n window.Chart = Chart;\n }\n\n// DEPRECATIONS\n\n /**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Legend\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\n Chart.Legend = plugins.legend._element;\n\n /**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Title\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\n Chart.Title = plugins.title._element;\n\n /**\n * Provided for backward compatibility, use Chart.plugins instead\n * @namespace Chart.pluginService\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\n Chart.pluginService = Chart.plugins;\n\n /**\n * Provided for backward compatibility, inheriting from Chart.PlugingBase has no\n * effect, instead simply create/register plugins via plain JavaScript objects.\n * @interface Chart.PluginBase\n * @deprecated since version 2.5.0\n * @todo remove at version 3\n * @private\n */\n Chart.PluginBase = Chart.Element.extend({});\n\n /**\n * Provided for backward compatibility, use Chart.helpers.canvas instead.\n * @namespace Chart.canvasHelpers\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\n Chart.canvasHelpers = Chart.helpers.canvas;\n\n /**\n * Provided for backward compatibility, use Chart.layouts instead.\n * @namespace Chart.layoutService\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\n Chart.layoutService = Chart.layouts;\n\n }, {\n '10': 10,\n '11': 11,\n '12': 12,\n '13': 13,\n '14': 14,\n '15': 15,\n '16': 16,\n '17': 17,\n '18': 18,\n '19': 19,\n '20': 20,\n '21': 21,\n '22': 22,\n '23': 23,\n '24': 24,\n '25': 25,\n '26': 26,\n '27': 27,\n '28': 28,\n '29': 29,\n '30': 30,\n '31': 31,\n '32': 32,\n '33': 33,\n '34': 34,\n '35': 35,\n '40': 40,\n '45': 45,\n '48': 48,\n '49': 49,\n '53': 53,\n '54': 54,\n '55': 55,\n '56': 56,\n '57': 57,\n '58': 58,\n '8': 8,\n '9': 9\n }], 8: [function (require, module, exports) {\n 'use strict';\n\n module.exports = function (Chart) {\n\n Chart.Bar = function (context, config) {\n config.type = 'bar';\n\n return new Chart(context, config);\n };\n\n };\n\n }, {}], 9: [function (require, module, exports) {\n 'use strict';\n\n module.exports = function (Chart) {\n\n Chart.Bubble = function (context, config) {\n config.type = 'bubble';\n return new Chart(context, config);\n };\n\n };\n\n }, {}], 10: [function (require, module, exports) {\n 'use strict';\n\n module.exports = function (Chart) {\n\n Chart.Doughnut = function (context, config) {\n config.type = 'doughnut';\n\n return new Chart(context, config);\n };\n\n };\n\n }, {}], 11: [function (require, module, exports) {\n 'use strict';\n\n module.exports = function (Chart) {\n\n Chart.Line = function (context, config) {\n config.type = 'line';\n\n return new Chart(context, config);\n };\n\n };\n\n }, {}], 12: [function (require, module, exports) {\n 'use strict';\n\n module.exports = function (Chart) {\n\n Chart.PolarArea = function (context, config) {\n config.type = 'polarArea';\n\n return new Chart(context, config);\n };\n\n };\n\n }, {}], 13: [function (require, module, exports) {\n 'use strict';\n\n module.exports = function (Chart) {\n\n Chart.Radar = function (context, config) {\n config.type = 'radar';\n\n return new Chart(context, config);\n };\n\n };\n\n }, {}], 14: [function (require, module, exports) {\n 'use strict';\n\n module.exports = function (Chart) {\n Chart.Scatter = function (context, config) {\n config.type = 'scatter';\n return new Chart(context, config);\n };\n };\n\n }, {}], 15: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('bar', {\n hover: {\n mode: 'label'\n },\n\n scales: {\n xAxes: [{\n type: 'category',\n\n // Specific to Bar Controller\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n\n // offset settings\n offset: true,\n\n // grid line settings\n gridLines: {\n offsetGridLines: true\n }\n }],\n\n yAxes: [{\n type: 'linear'\n }]\n }\n });\n\n defaults._set('horizontalBar', {\n hover: {\n mode: 'index',\n axis: 'y'\n },\n\n scales: {\n xAxes: [{\n type: 'linear',\n position: 'bottom'\n }],\n\n yAxes: [{\n position: 'left',\n type: 'category',\n\n // Specific to Horizontal Bar Controller\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n\n // offset settings\n offset: true,\n\n // grid line settings\n gridLines: {\n offsetGridLines: true\n }\n }]\n },\n\n elements: {\n rectangle: {\n borderSkipped: 'left'\n }\n },\n\n tooltips: {\n callbacks: {\n title: function (item, data) {\n // Pick first xLabel for now\n var title = '';\n\n if (item.length > 0) {\n if (item[0].yLabel) {\n title = item[0].yLabel;\n } else if (data.labels.length > 0 && item[0].index < data.labels.length) {\n title = data.labels[item[0].index];\n }\n }\n\n return title;\n },\n\n label: function (item, data) {\n var datasetLabel = data.datasets[item.datasetIndex].label || '';\n return datasetLabel + ': ' + item.xLabel;\n }\n },\n mode: 'index',\n axis: 'y'\n }\n });\n\n /**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\n function computeMinSampleSize(scale, pixels) {\n var min = scale.isHorizontal() ? scale.width : scale.height;\n var ticks = scale.getTicks();\n var prev, curr, i, ilen;\n\n for (i = 1, ilen = pixels.length; i < ilen; ++i) {\n min = Math.min(min, pixels[i] - pixels[i - 1]);\n }\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n min = i > 0 ? Math.min(min, curr - prev) : min;\n prev = curr;\n }\n\n return min;\n }\n\n /**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\n function computeFitCategoryTraits(index, ruler, options) {\n var thickness = options.barThickness;\n var count = ruler.stackCount;\n var curr = ruler.pixels[index];\n var size, ratio;\n\n if (helpers.isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n // When bar thickness is enforced, category and bar percentages are ignored.\n // Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n // and deprecate barPercentage since this value is ignored when thickness is absolute.\n size = thickness * count;\n ratio = 1;\n }\n\n return {\n chunk: size / count,\n ratio: ratio,\n start: curr - (size / 2)\n };\n }\n\n /**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\n function computeFlexCategoryTraits(index, ruler, options) {\n var pixels = ruler.pixels;\n var curr = pixels[index];\n var prev = index > 0 ? pixels[index - 1] : null;\n var next = index < pixels.length - 1 ? pixels[index + 1] : null;\n var percent = options.categoryPercentage;\n var start, size;\n\n if (prev === null) {\n // first data: its size is double based on the next point or,\n // if it's also the last data, we use the scale end extremity.\n prev = curr - (next === null ? ruler.end - curr : next - curr);\n }\n\n if (next === null) {\n // last data: its size is also double based on the previous point.\n next = curr + curr - prev;\n }\n\n start = curr - ((curr - prev) / 2) * percent;\n size = ((next - prev) / 2) * percent;\n\n return {\n chunk: size / ruler.stackCount,\n ratio: options.barPercentage,\n start: start\n };\n }\n\n module.exports = function (Chart) {\n\n Chart.controllers.bar = Chart.DatasetController.extend({\n\n dataElementType: elements.Rectangle,\n\n initialize: function () {\n var me = this;\n var meta;\n\n Chart.DatasetController.prototype.initialize.apply(me, arguments);\n\n meta = me.getMeta();\n meta.stack = me.getDataset().stack;\n meta.bar = true;\n },\n\n update: function (reset) {\n var me = this;\n var rects = me.getMeta().data;\n var i, ilen;\n\n me._ruler = me.getRuler();\n\n for (i = 0, ilen = rects.length; i < ilen; ++i) {\n me.updateElement(rects[i], i, reset);\n }\n },\n\n updateElement: function (rectangle, index, reset) {\n var me = this;\n var chart = me.chart;\n var meta = me.getMeta();\n var dataset = me.getDataset();\n var custom = rectangle.custom || {};\n var rectangleOptions = chart.options.elements.rectangle;\n\n rectangle._xScale = me.getScaleForId(meta.xAxisID);\n rectangle._yScale = me.getScaleForId(meta.yAxisID);\n rectangle._datasetIndex = me.index;\n rectangle._index = index;\n\n rectangle._model = {\n datasetLabel: dataset.label,\n label: chart.data.labels[index],\n borderSkipped: custom.borderSkipped ? custom.borderSkipped : rectangleOptions.borderSkipped,\n backgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleOptions.backgroundColor),\n borderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleOptions.borderColor),\n borderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleOptions.borderWidth)\n };\n\n me.updateElementGeometry(rectangle, index, reset);\n\n rectangle.pivot();\n },\n\n /**\n * @private\n */\n updateElementGeometry: function (rectangle, index, reset) {\n var me = this;\n var model = rectangle._model;\n var vscale = me.getValueScale();\n var base = vscale.getBasePixel();\n var horizontal = vscale.isHorizontal();\n var ruler = me._ruler || me.getRuler();\n var vpixels = me.calculateBarValuePixels(me.index, index);\n var ipixels = me.calculateBarIndexPixels(me.index, index, ruler);\n\n model.horizontal = horizontal;\n model.base = reset ? base : vpixels.base;\n model.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n model.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n model.height = horizontal ? ipixels.size : undefined;\n model.width = horizontal ? undefined : ipixels.size;\n },\n\n /**\n * @private\n */\n getValueScaleId: function () {\n return this.getMeta().yAxisID;\n },\n\n /**\n * @private\n */\n getIndexScaleId: function () {\n return this.getMeta().xAxisID;\n },\n\n /**\n * @private\n */\n getValueScale: function () {\n return this.getScaleForId(this.getValueScaleId());\n },\n\n /**\n * @private\n */\n getIndexScale: function () {\n return this.getScaleForId(this.getIndexScaleId());\n },\n\n /**\n * Returns the stacks based on groups and bar visibility.\n * @param {Number} [last] - The dataset index\n * @returns {Array} The stack list\n * @private\n */\n _getStacks: function (last) {\n var me = this;\n var chart = me.chart;\n var scale = me.getIndexScale();\n var stacked = scale.options.stacked;\n var ilen = last === undefined ? chart.data.datasets.length : last + 1;\n var stacks = [];\n var i, meta;\n\n for (i = 0; i < ilen; ++i) {\n meta = chart.getDatasetMeta(i);\n if (meta.bar && chart.isDatasetVisible(i) &&\n (stacked === false ||\n (stacked === true && stacks.indexOf(meta.stack) === -1) ||\n (stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) {\n stacks.push(meta.stack);\n }\n }\n\n return stacks;\n },\n\n /**\n * Returns the effective number of stacks based on groups and bar visibility.\n * @private\n */\n getStackCount: function () {\n return this._getStacks().length;\n },\n\n /**\n * Returns the stack index for the given dataset based on groups and bar visibility.\n * @param {Number} [datasetIndex] - The dataset index\n * @param {String} [name] - The stack name to find\n * @returns {Number} The stack index\n * @private\n */\n getStackIndex: function (datasetIndex, name) {\n var stacks = this._getStacks(datasetIndex);\n var index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1; // indexOf returns -1 if element is not present\n\n return (index === -1)\n ? stacks.length - 1\n : index;\n },\n\n /**\n * @private\n */\n getRuler: function () {\n var me = this;\n var scale = me.getIndexScale();\n var stackCount = me.getStackCount();\n var datasetIndex = me.index;\n var isHorizontal = scale.isHorizontal();\n var start = isHorizontal ? scale.left : scale.top;\n var end = start + (isHorizontal ? scale.width : scale.height);\n var pixels = [];\n var i, ilen, min;\n\n for (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n pixels.push(scale.getPixelForValue(null, i, datasetIndex));\n }\n\n min = helpers.isNullOrUndef(scale.options.barThickness)\n ? computeMinSampleSize(scale, pixels)\n : -1;\n\n return {\n min: min,\n pixels: pixels,\n start: start,\n end: end,\n stackCount: stackCount,\n scale: scale\n };\n },\n\n /**\n * Note: pixel values are not clamped to the scale area.\n * @private\n */\n calculateBarValuePixels: function (datasetIndex, index) {\n var me = this;\n var chart = me.chart;\n var meta = me.getMeta();\n var scale = me.getValueScale();\n var datasets = chart.data.datasets;\n var value = scale.getRightValue(datasets[datasetIndex].data[index]);\n var stacked = scale.options.stacked;\n var stack = meta.stack;\n var start = 0;\n var i, imeta, ivalue, base, head, size;\n\n if (stacked || (stacked === undefined && stack !== undefined)) {\n for (i = 0; i < datasetIndex; ++i) {\n imeta = chart.getDatasetMeta(i);\n\n if (imeta.bar &&\n imeta.stack === stack &&\n imeta.controller.getValueScaleId() === scale.id &&\n chart.isDatasetVisible(i)) {\n\n ivalue = scale.getRightValue(datasets[i].data[index]);\n if ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) {\n start += ivalue;\n }\n }\n }\n }\n\n base = scale.getPixelForValue(start);\n head = scale.getPixelForValue(start + value);\n size = (head - base) / 2;\n\n return {\n size: size,\n base: base,\n head: head,\n center: head + size / 2\n };\n },\n\n /**\n * @private\n */\n calculateBarIndexPixels: function (datasetIndex, index, ruler) {\n var me = this;\n var options = ruler.scale.options;\n var range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options)\n : computeFitCategoryTraits(index, ruler, options);\n\n var stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n var center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n var size = Math.min(\n helpers.valueOrDefault(options.maxBarThickness, Infinity),\n range.chunk * range.ratio);\n\n return {\n base: center - size / 2,\n head: center + size / 2,\n center: center,\n size: size\n };\n },\n\n draw: function () {\n var me = this;\n var chart = me.chart;\n var scale = me.getValueScale();\n var rects = me.getMeta().data;\n var dataset = me.getDataset();\n var ilen = rects.length;\n var i = 0;\n\n helpers.canvas.clipArea(chart.ctx, chart.chartArea);\n\n for (; i < ilen; ++i) {\n if (!isNaN(scale.getRightValue(dataset.data[i]))) {\n rects[i].draw();\n }\n }\n\n helpers.canvas.unclipArea(chart.ctx);\n },\n\n setHoverStyle: function (rectangle) {\n var dataset = this.chart.data.datasets[rectangle._datasetIndex];\n var index = rectangle._index;\n var custom = rectangle.custom || {};\n var model = rectangle._model;\n\n model.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.valueAtIndexOrDefault(dataset.hoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n model.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.valueAtIndexOrDefault(dataset.hoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n model.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.valueAtIndexOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\n },\n\n removeHoverStyle: function (rectangle) {\n var dataset = this.chart.data.datasets[rectangle._datasetIndex];\n var index = rectangle._index;\n var custom = rectangle.custom || {};\n var model = rectangle._model;\n var rectangleElementOptions = this.chart.options.elements.rectangle;\n\n model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleElementOptions.backgroundColor);\n model.borderColor = custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleElementOptions.borderColor);\n model.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleElementOptions.borderWidth);\n }\n });\n\n Chart.controllers.horizontalBar = Chart.controllers.bar.extend({\n /**\n * @private\n */\n getValueScaleId: function () {\n return this.getMeta().xAxisID;\n },\n\n /**\n * @private\n */\n getIndexScaleId: function () {\n return this.getMeta().yAxisID;\n }\n });\n };\n\n }, {'25': 25, '40': 40, '45': 45}], 16: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('bubble', {\n hover: {\n mode: 'single'\n },\n\n scales: {\n xAxes: [{\n type: 'linear', // bubble should probably use a linear scale by default\n position: 'bottom',\n id: 'x-axis-0' // need an ID so datasets can reference the scale\n }],\n yAxes: [{\n type: 'linear',\n position: 'left',\n id: 'y-axis-0'\n }]\n },\n\n tooltips: {\n callbacks: {\n title: function () {\n // Title doesn't make sense for scatter since we format the data as a point\n return '';\n },\n label: function (item, data) {\n var datasetLabel = data.datasets[item.datasetIndex].label || '';\n var dataPoint = data.datasets[item.datasetIndex].data[item.index];\n return datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n }\n }\n }\n });\n\n\n module.exports = function (Chart) {\n\n Chart.controllers.bubble = Chart.DatasetController.extend({\n /**\n * @protected\n */\n dataElementType: elements.Point,\n\n /**\n * @protected\n */\n update: function (reset) {\n var me = this;\n var meta = me.getMeta();\n var points = meta.data;\n\n // Update Points\n helpers.each(points, function (point, index) {\n me.updateElement(point, index, reset);\n });\n },\n\n /**\n * @protected\n */\n updateElement: function (point, index, reset) {\n var me = this;\n var meta = me.getMeta();\n var custom = point.custom || {};\n var xScale = me.getScaleForId(meta.xAxisID);\n var yScale = me.getScaleForId(meta.yAxisID);\n var options = me._resolveElementOptions(point, index);\n var data = me.getDataset().data[index];\n var dsIndex = me.index;\n\n var x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n var y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n point._xScale = xScale;\n point._yScale = yScale;\n point._options = options;\n point._datasetIndex = dsIndex;\n point._index = index;\n point._model = {\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth,\n hitRadius: options.hitRadius,\n pointStyle: options.pointStyle,\n radius: reset ? 0 : options.radius,\n skip: custom.skip || isNaN(x) || isNaN(y),\n x: x,\n y: y,\n };\n\n point.pivot();\n },\n\n /**\n * @protected\n */\n setHoverStyle: function (point) {\n var model = point._model;\n var options = point._options;\n\n model.backgroundColor = helpers.valueOrDefault(options.hoverBackgroundColor, helpers.getHoverColor(options.backgroundColor));\n model.borderColor = helpers.valueOrDefault(options.hoverBorderColor, helpers.getHoverColor(options.borderColor));\n model.borderWidth = helpers.valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n model.radius = options.radius + options.hoverRadius;\n },\n\n /**\n * @protected\n */\n removeHoverStyle: function (point) {\n var model = point._model;\n var options = point._options;\n\n model.backgroundColor = options.backgroundColor;\n model.borderColor = options.borderColor;\n model.borderWidth = options.borderWidth;\n model.radius = options.radius;\n },\n\n /**\n * @private\n */\n _resolveElementOptions: function (point, index) {\n var me = this;\n var chart = me.chart;\n var datasets = chart.data.datasets;\n var dataset = datasets[me.index];\n var custom = point.custom || {};\n var options = chart.options.elements.point;\n var resolve = helpers.options.resolve;\n var data = dataset.data[index];\n var values = {};\n var i, ilen, key;\n\n // Scriptable options\n var context = {\n chart: chart,\n dataIndex: index,\n dataset: dataset,\n datasetIndex: me.index\n };\n\n var keys = [\n 'backgroundColor',\n 'borderColor',\n 'borderWidth',\n 'hoverBackgroundColor',\n 'hoverBorderColor',\n 'hoverBorderWidth',\n 'hoverRadius',\n 'hitRadius',\n 'pointStyle'\n ];\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n values[key] = resolve([\n custom[key],\n dataset[key],\n options[key]\n ], context, index);\n }\n\n // Custom radius resolution\n values.radius = resolve([\n custom.radius,\n data ? data.r : undefined,\n dataset.radius,\n options.radius\n ], context, index);\n\n return values;\n }\n });\n };\n\n }, {'25': 25, '40': 40, '45': 45}], 17: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('doughnut', {\n animation: {\n // Boolean - Whether we animate the rotation of the Doughnut\n animateRotate: true,\n // Boolean - Whether we animate scaling the Doughnut from the centre\n animateScale: false\n },\n hover: {\n mode: 'single'\n },\n legendCallback: function (chart) {\n var text = [];\n text.push('');\n return text.join('');\n },\n legend: {\n labels: {\n generateLabels: function (chart) {\n var data = chart.data;\n if (data.labels.length && data.datasets.length) {\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var ds = data.datasets[0];\n var arc = meta.data[i];\n var custom = arc && arc.custom || {};\n var valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n var arcOpts = chart.options.elements.arc;\n var fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\n var stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\n var bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\n\n return {\n text: label,\n fillStyle: fill,\n strokeStyle: stroke,\n lineWidth: bw,\n hidden: isNaN(ds.data[i]) || meta.data[i].hidden,\n\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n return [];\n }\n },\n\n onClick: function (e, legendItem) {\n var index = legendItem.index;\n var chart = this.chart;\n var i, ilen, meta;\n\n for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n meta = chart.getDatasetMeta(i);\n // toggle visibility of index if exists\n if (meta.data[index]) {\n meta.data[index].hidden = !meta.data[index].hidden;\n }\n }\n\n chart.update();\n }\n },\n\n // The percentage of the chart that we cut out of the middle.\n cutoutPercentage: 50,\n\n // The rotation of the chart, where the first data arc begins.\n rotation: Math.PI * -0.5,\n\n // The total circumference of the chart.\n circumference: Math.PI * 2.0,\n\n // Need to override these to give a nice default\n tooltips: {\n callbacks: {\n title: function () {\n return '';\n },\n label: function (tooltipItem, data) {\n var dataLabel = data.labels[tooltipItem.index];\n var value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n if (helpers.isArray(dataLabel)) {\n // show value on first line of multiline label\n // need to clone because we are changing the value\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n\n return dataLabel;\n }\n }\n }\n });\n\n defaults._set('pie', helpers.clone(defaults.doughnut));\n defaults._set('pie', {\n cutoutPercentage: 0\n });\n\n module.exports = function (Chart) {\n\n Chart.controllers.doughnut = Chart.controllers.pie = Chart.DatasetController.extend({\n\n dataElementType: elements.Arc,\n\n linkScales: helpers.noop,\n\n // Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n getRingIndex: function (datasetIndex) {\n var ringIndex = 0;\n\n for (var j = 0; j < datasetIndex; ++j) {\n if (this.chart.isDatasetVisible(j)) {\n ++ringIndex;\n }\n }\n\n return ringIndex;\n },\n\n update: function (reset) {\n var me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var arcOpts = opts.elements.arc;\n var availableWidth = chartArea.right - chartArea.left - arcOpts.borderWidth;\n var availableHeight = chartArea.bottom - chartArea.top - arcOpts.borderWidth;\n var minSize = Math.min(availableWidth, availableHeight);\n var offset = {x: 0, y: 0};\n var meta = me.getMeta();\n var cutoutPercentage = opts.cutoutPercentage;\n var circumference = opts.circumference;\n\n // If the chart's circumference isn't a full circle, calculate minSize as a ratio of the width/height of the arc\n if (circumference < Math.PI * 2.0) {\n var startAngle = opts.rotation % (Math.PI * 2.0);\n startAngle += Math.PI * 2.0 * (startAngle >= Math.PI ? -1 : startAngle < -Math.PI ? 1 : 0);\n var endAngle = startAngle + circumference;\n var start = {x: Math.cos(startAngle), y: Math.sin(startAngle)};\n var end = {x: Math.cos(endAngle), y: Math.sin(endAngle)};\n var contains0 = (startAngle <= 0 && endAngle >= 0) || (startAngle <= Math.PI * 2.0 && Math.PI * 2.0 <= endAngle);\n var contains90 = (startAngle <= Math.PI * 0.5 && Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 2.5 && Math.PI * 2.5 <= endAngle);\n var contains180 = (startAngle <= -Math.PI && -Math.PI <= endAngle) || (startAngle <= Math.PI && Math.PI <= endAngle);\n var contains270 = (startAngle <= -Math.PI * 0.5 && -Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 1.5 && Math.PI * 1.5 <= endAngle);\n var cutout = cutoutPercentage / 100.0;\n var min = {\n x: contains180 ? -1 : Math.min(start.x * (start.x < 0 ? 1 : cutout), end.x * (end.x < 0 ? 1 : cutout)),\n y: contains270 ? -1 : Math.min(start.y * (start.y < 0 ? 1 : cutout), end.y * (end.y < 0 ? 1 : cutout))\n };\n var max = {\n x: contains0 ? 1 : Math.max(start.x * (start.x > 0 ? 1 : cutout), end.x * (end.x > 0 ? 1 : cutout)),\n y: contains90 ? 1 : Math.max(start.y * (start.y > 0 ? 1 : cutout), end.y * (end.y > 0 ? 1 : cutout))\n };\n var size = {width: (max.x - min.x) * 0.5, height: (max.y - min.y) * 0.5};\n minSize = Math.min(availableWidth / size.width, availableHeight / size.height);\n offset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5};\n }\n\n chart.borderWidth = me.getMaxBorderWidth(meta.data);\n chart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0);\n chart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 0, 0);\n chart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n chart.offsetX = offset.x * chart.outerRadius;\n chart.offsetY = offset.y * chart.outerRadius;\n\n meta.total = me.calculateTotal();\n\n me.outerRadius = chart.outerRadius - (chart.radiusLength * me.getRingIndex(me.index));\n me.innerRadius = Math.max(me.outerRadius - chart.radiusLength, 0);\n\n helpers.each(meta.data, function (arc, index) {\n me.updateElement(arc, index, reset);\n });\n },\n\n updateElement: function (arc, index, reset) {\n var me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var animationOpts = opts.animation;\n var centerX = (chartArea.left + chartArea.right) / 2;\n var centerY = (chartArea.top + chartArea.bottom) / 2;\n var startAngle = opts.rotation; // non reset case handled later\n var endAngle = opts.rotation; // non reset case handled later\n var dataset = me.getDataset();\n var circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / (2.0 * Math.PI));\n var innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n var outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n var valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n helpers.extend(arc, {\n // Utility\n _datasetIndex: me.index,\n _index: index,\n\n // Desired view properties\n _model: {\n x: centerX + chart.offsetX,\n y: centerY + chart.offsetY,\n startAngle: startAngle,\n endAngle: endAngle,\n circumference: circumference,\n outerRadius: outerRadius,\n innerRadius: innerRadius,\n label: valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n }\n });\n\n var model = arc._model;\n // Resets the visual styles\n this.removeHoverStyle(arc);\n\n // Set correct angles if not resetting\n if (!reset || !animationOpts.animateRotate) {\n if (index === 0) {\n model.startAngle = opts.rotation;\n } else {\n model.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n }\n\n model.endAngle = model.startAngle + model.circumference;\n }\n\n arc.pivot();\n },\n\n removeHoverStyle: function (arc) {\n Chart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\n },\n\n calculateTotal: function () {\n var dataset = this.getDataset();\n var meta = this.getMeta();\n var total = 0;\n var value;\n\n helpers.each(meta.data, function (element, index) {\n value = dataset.data[index];\n if (!isNaN(value) && !element.hidden) {\n total += Math.abs(value);\n }\n });\n\n /* if (total === 0) {\n\t\t\t\ttotal = NaN;\n\t\t\t}*/\n\n return total;\n },\n\n calculateCircumference: function (value) {\n var total = this.getMeta().total;\n if (total > 0 && !isNaN(value)) {\n return (Math.PI * 2.0) * (Math.abs(value) / total);\n }\n return 0;\n },\n\n // gets the max border or hover width to properly scale pie charts\n getMaxBorderWidth: function (arcs) {\n var max = 0;\n var index = this.index;\n var length = arcs.length;\n var borderWidth;\n var hoverWidth;\n\n for (var i = 0; i < length; i++) {\n borderWidth = arcs[i]._model ? arcs[i]._model.borderWidth : 0;\n hoverWidth = arcs[i]._chart ? arcs[i]._chart.config.data.datasets[index].hoverBorderWidth : 0;\n\n max = borderWidth > max ? borderWidth : max;\n max = hoverWidth > max ? hoverWidth : max;\n }\n return max;\n }\n });\n };\n\n }, {'25': 25, '40': 40, '45': 45}], 18: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('line', {\n showLines: true,\n spanGaps: false,\n\n hover: {\n mode: 'label'\n },\n\n scales: {\n xAxes: [{\n type: 'category',\n id: 'x-axis-0'\n }],\n yAxes: [{\n type: 'linear',\n id: 'y-axis-0'\n }]\n }\n });\n\n module.exports = function (Chart) {\n\n function lineEnabled(dataset, options) {\n return helpers.valueOrDefault(dataset.showLine, options.showLines);\n }\n\n Chart.controllers.line = Chart.DatasetController.extend({\n\n datasetElementType: elements.Line,\n\n dataElementType: elements.Point,\n\n update: function (reset) {\n var me = this;\n var meta = me.getMeta();\n var line = meta.dataset;\n var points = meta.data || [];\n var options = me.chart.options;\n var lineElementOptions = options.elements.line;\n var scale = me.getScaleForId(meta.yAxisID);\n var i, ilen, custom;\n var dataset = me.getDataset();\n var showLine = lineEnabled(dataset, options);\n\n // Update Line\n if (showLine) {\n custom = line.custom || {};\n\n // Compatibility: If the properties are defined with only the old name, use those values\n if ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\n dataset.lineTension = dataset.tension;\n }\n\n // Utility\n line._scale = scale;\n line._datasetIndex = me.index;\n // Data\n line._children = points;\n // Model\n line._model = {\n // Appearance\n // The default behavior of lines is to break at null values, according\n // to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n // This option gives lines the ability to span gaps\n spanGaps: dataset.spanGaps ? dataset.spanGaps : options.spanGaps,\n tension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\n backgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\n borderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\n borderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\n borderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\n borderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\n borderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\n borderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\n fill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\n steppedLine: custom.steppedLine ? custom.steppedLine : helpers.valueOrDefault(dataset.steppedLine, lineElementOptions.stepped),\n cubicInterpolationMode: custom.cubicInterpolationMode ? custom.cubicInterpolationMode : helpers.valueOrDefault(dataset.cubicInterpolationMode, lineElementOptions.cubicInterpolationMode),\n };\n\n line.pivot();\n }\n\n // Update Points\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n me.updateElement(points[i], i, reset);\n }\n\n if (showLine && line._model.tension !== 0) {\n me.updateBezierControlPoints();\n }\n\n // Now pivot the point for animation\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n points[i].pivot();\n }\n },\n\n getPointBackgroundColor: function (point, index) {\n var backgroundColor = this.chart.options.elements.point.backgroundColor;\n var dataset = this.getDataset();\n var custom = point.custom || {};\n\n if (custom.backgroundColor) {\n backgroundColor = custom.backgroundColor;\n } else if (dataset.pointBackgroundColor) {\n backgroundColor = helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, backgroundColor);\n } else if (dataset.backgroundColor) {\n backgroundColor = dataset.backgroundColor;\n }\n\n return backgroundColor;\n },\n\n getPointBorderColor: function (point, index) {\n var borderColor = this.chart.options.elements.point.borderColor;\n var dataset = this.getDataset();\n var custom = point.custom || {};\n\n if (custom.borderColor) {\n borderColor = custom.borderColor;\n } else if (dataset.pointBorderColor) {\n borderColor = helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, borderColor);\n } else if (dataset.borderColor) {\n borderColor = dataset.borderColor;\n }\n\n return borderColor;\n },\n\n getPointBorderWidth: function (point, index) {\n var borderWidth = this.chart.options.elements.point.borderWidth;\n var dataset = this.getDataset();\n var custom = point.custom || {};\n\n if (!isNaN(custom.borderWidth)) {\n borderWidth = custom.borderWidth;\n } else if (!isNaN(dataset.pointBorderWidth) || helpers.isArray(dataset.pointBorderWidth)) {\n borderWidth = helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, borderWidth);\n } else if (!isNaN(dataset.borderWidth)) {\n borderWidth = dataset.borderWidth;\n }\n\n return borderWidth;\n },\n\n updateElement: function (point, index, reset) {\n var me = this;\n var meta = me.getMeta();\n var custom = point.custom || {};\n var dataset = me.getDataset();\n var datasetIndex = me.index;\n var value = dataset.data[index];\n var yScale = me.getScaleForId(meta.yAxisID);\n var xScale = me.getScaleForId(meta.xAxisID);\n var pointOptions = me.chart.options.elements.point;\n var x, y;\n\n // Compatibility: If the properties are defined with only the old name, use those values\n if ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\n dataset.pointRadius = dataset.radius;\n }\n if ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\n dataset.pointHitRadius = dataset.hitRadius;\n }\n\n x = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n y = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n // Utility\n point._xScale = xScale;\n point._yScale = yScale;\n point._datasetIndex = datasetIndex;\n point._index = index;\n\n // Desired view properties\n point._model = {\n x: x,\n y: y,\n skip: custom.skip || isNaN(x) || isNaN(y),\n // Appearance\n radius: custom.radius || helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointOptions.radius),\n pointStyle: custom.pointStyle || helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointOptions.pointStyle),\n backgroundColor: me.getPointBackgroundColor(point, index),\n borderColor: me.getPointBorderColor(point, index),\n borderWidth: me.getPointBorderWidth(point, index),\n tension: meta.dataset._model ? meta.dataset._model.tension : 0,\n steppedLine: meta.dataset._model ? meta.dataset._model.steppedLine : false,\n // Tooltip\n hitRadius: custom.hitRadius || helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointOptions.hitRadius)\n };\n },\n\n calculatePointY: function (value, index, datasetIndex) {\n var me = this;\n var chart = me.chart;\n var meta = me.getMeta();\n var yScale = me.getScaleForId(meta.yAxisID);\n var sumPos = 0;\n var sumNeg = 0;\n var i, ds, dsMeta;\n\n if (yScale.options.stacked) {\n for (i = 0; i < datasetIndex; i++) {\n ds = chart.data.datasets[i];\n dsMeta = chart.getDatasetMeta(i);\n if (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id && chart.isDatasetVisible(i)) {\n var stackedRightValue = Number(yScale.getRightValue(ds.data[index]));\n if (stackedRightValue < 0) {\n sumNeg += stackedRightValue || 0;\n } else {\n sumPos += stackedRightValue || 0;\n }\n }\n }\n\n var rightValue = Number(yScale.getRightValue(value));\n if (rightValue < 0) {\n return yScale.getPixelForValue(sumNeg + rightValue);\n }\n return yScale.getPixelForValue(sumPos + rightValue);\n }\n\n return yScale.getPixelForValue(value);\n },\n\n updateBezierControlPoints: function () {\n var me = this;\n var meta = me.getMeta();\n var area = me.chart.chartArea;\n var points = (meta.data || []);\n var i, ilen, point, model, controlPoints;\n\n // Only consider points that are drawn in case the spanGaps option is used\n if (meta.dataset._model.spanGaps) {\n points = points.filter(function (pt) {\n return !pt._model.skip;\n });\n }\n\n function capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n }\n\n if (meta.dataset._model.cubicInterpolationMode === 'monotone') {\n helpers.splineCurveMonotone(points);\n } else {\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n model = point._model;\n controlPoints = helpers.splineCurve(\n helpers.previousItem(points, i)._model,\n model,\n helpers.nextItem(points, i)._model,\n meta.dataset._model.tension\n );\n model.controlPointPreviousX = controlPoints.previous.x;\n model.controlPointPreviousY = controlPoints.previous.y;\n model.controlPointNextX = controlPoints.next.x;\n model.controlPointNextY = controlPoints.next.y;\n }\n }\n\n if (me.chart.options.elements.line.capBezierPoints) {\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n model = points[i]._model;\n model.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n model.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n model.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n model.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n }\n }\n },\n\n draw: function () {\n var me = this;\n var chart = me.chart;\n var meta = me.getMeta();\n var points = meta.data || [];\n var area = chart.chartArea;\n var ilen = points.length;\n var i = 0;\n\n helpers.canvas.clipArea(chart.ctx, area);\n\n if (lineEnabled(me.getDataset(), chart.options)) {\n meta.dataset.draw();\n }\n\n helpers.canvas.unclipArea(chart.ctx);\n\n // Draw the points\n for (; i < ilen; ++i) {\n points[i].draw(area);\n }\n },\n\n setHoverStyle: function (point) {\n // Point\n var dataset = this.chart.data.datasets[point._datasetIndex];\n var index = point._index;\n var custom = point.custom || {};\n var model = point._model;\n\n model.radius = custom.hoverRadius || helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\n model.backgroundColor = custom.hoverBackgroundColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n model.borderColor = custom.hoverBorderColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n model.borderWidth = custom.hoverBorderWidth || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\n },\n\n removeHoverStyle: function (point) {\n var me = this;\n var dataset = me.chart.data.datasets[point._datasetIndex];\n var index = point._index;\n var custom = point.custom || {};\n var model = point._model;\n\n // Compatibility: If the properties are defined with only the old name, use those values\n if ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\n dataset.pointRadius = dataset.radius;\n }\n\n model.radius = custom.radius || helpers.valueAtIndexOrDefault(dataset.pointRadius, index, me.chart.options.elements.point.radius);\n model.backgroundColor = me.getPointBackgroundColor(point, index);\n model.borderColor = me.getPointBorderColor(point, index);\n model.borderWidth = me.getPointBorderWidth(point, index);\n }\n });\n };\n\n }, {'25': 25, '40': 40, '45': 45}], 19: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('polarArea', {\n scale: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n gridLines: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n ticks: {\n beginAtZero: true\n }\n },\n\n // Boolean - Whether to animate the rotation of the chart\n animation: {\n animateRotate: true,\n animateScale: true\n },\n\n startAngle: -0.5 * Math.PI,\n legendCallback: function (chart) {\n var text = [];\n text.push('');\n return text.join('');\n },\n legend: {\n labels: {\n generateLabels: function (chart) {\n var data = chart.data;\n if (data.labels.length && data.datasets.length) {\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var ds = data.datasets[0];\n var arc = meta.data[i];\n var custom = arc.custom || {};\n var valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n var arcOpts = chart.options.elements.arc;\n var fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\n var stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\n var bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\n\n return {\n text: label,\n fillStyle: fill,\n strokeStyle: stroke,\n lineWidth: bw,\n hidden: isNaN(ds.data[i]) || meta.data[i].hidden,\n\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n return [];\n }\n },\n\n onClick: function (e, legendItem) {\n var index = legendItem.index;\n var chart = this.chart;\n var i, ilen, meta;\n\n for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n meta = chart.getDatasetMeta(i);\n meta.data[index].hidden = !meta.data[index].hidden;\n }\n\n chart.update();\n }\n },\n\n // Need to override these to give a nice default\n tooltips: {\n callbacks: {\n title: function () {\n return '';\n },\n label: function (item, data) {\n return data.labels[item.index] + ': ' + item.yLabel;\n }\n }\n }\n });\n\n module.exports = function (Chart) {\n\n Chart.controllers.polarArea = Chart.DatasetController.extend({\n\n dataElementType: elements.Arc,\n\n linkScales: helpers.noop,\n\n update: function (reset) {\n var me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var meta = me.getMeta();\n var opts = chart.options;\n var arcOpts = opts.elements.arc;\n var minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n chart.outerRadius = Math.max((minSize - arcOpts.borderWidth / 2) / 2, 0);\n chart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n chart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n me.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n me.innerRadius = me.outerRadius - chart.radiusLength;\n\n meta.count = me.countVisibleElements();\n\n helpers.each(meta.data, function (arc, index) {\n me.updateElement(arc, index, reset);\n });\n },\n\n updateElement: function (arc, index, reset) {\n var me = this;\n var chart = me.chart;\n var dataset = me.getDataset();\n var opts = chart.options;\n var animationOpts = opts.animation;\n var scale = chart.scale;\n var labels = chart.data.labels;\n\n var circumference = me.calculateCircumference(dataset.data[index]);\n var centerX = scale.xCenter;\n var centerY = scale.yCenter;\n\n // If there is NaN data before us, we need to calculate the starting angle correctly.\n // We could be way more efficient here, but its unlikely that the polar area chart will have a lot of data\n var visibleCount = 0;\n var meta = me.getMeta();\n for (var i = 0; i < index; ++i) {\n if (!isNaN(dataset.data[i]) && !meta.data[i].hidden) {\n ++visibleCount;\n }\n }\n\n // var negHalfPI = -0.5 * Math.PI;\n var datasetStartAngle = opts.startAngle;\n var distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n var startAngle = datasetStartAngle + (circumference * visibleCount);\n var endAngle = startAngle + (arc.hidden ? 0 : circumference);\n\n var resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\n helpers.extend(arc, {\n // Utility\n _datasetIndex: me.index,\n _index: index,\n _scale: scale,\n\n // Desired view properties\n _model: {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius: reset ? resetRadius : distance,\n startAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n endAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n label: helpers.valueAtIndexOrDefault(labels, index, labels[index])\n }\n });\n\n // Apply border and fill style\n me.removeHoverStyle(arc);\n\n arc.pivot();\n },\n\n removeHoverStyle: function (arc) {\n Chart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\n },\n\n countVisibleElements: function () {\n var dataset = this.getDataset();\n var meta = this.getMeta();\n var count = 0;\n\n helpers.each(meta.data, function (element, index) {\n if (!isNaN(dataset.data[index]) && !element.hidden) {\n count++;\n }\n });\n\n return count;\n },\n\n calculateCircumference: function (value) {\n var count = this.getMeta().count;\n if (count > 0 && !isNaN(value)) {\n return (2 * Math.PI) / count;\n }\n return 0;\n }\n });\n };\n\n }, {'25': 25, '40': 40, '45': 45}], 20: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('radar', {\n scale: {\n type: 'radialLinear'\n },\n elements: {\n line: {\n tension: 0 // no bezier in radar\n }\n }\n });\n\n module.exports = function (Chart) {\n\n Chart.controllers.radar = Chart.DatasetController.extend({\n\n datasetElementType: elements.Line,\n\n dataElementType: elements.Point,\n\n linkScales: helpers.noop,\n\n update: function (reset) {\n var me = this;\n var meta = me.getMeta();\n var line = meta.dataset;\n var points = meta.data;\n var custom = line.custom || {};\n var dataset = me.getDataset();\n var lineElementOptions = me.chart.options.elements.line;\n var scale = me.chart.scale;\n\n // Compatibility: If the properties are defined with only the old name, use those values\n if ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\n dataset.lineTension = dataset.tension;\n }\n\n helpers.extend(meta.dataset, {\n // Utility\n _datasetIndex: me.index,\n _scale: scale,\n // Data\n _children: points,\n _loop: true,\n // Model\n _model: {\n // Appearance\n tension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\n backgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\n borderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\n borderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\n fill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\n borderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\n borderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\n borderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\n borderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\n }\n });\n\n meta.dataset.pivot();\n\n // Update Points\n helpers.each(points, function (point, index) {\n me.updateElement(point, index, reset);\n }, me);\n\n // Update bezier control points\n me.updateBezierControlPoints();\n },\n updateElement: function (point, index, reset) {\n var me = this;\n var custom = point.custom || {};\n var dataset = me.getDataset();\n var scale = me.chart.scale;\n var pointElementOptions = me.chart.options.elements.point;\n var pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\n // Compatibility: If the properties are defined with only the old name, use those values\n if ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\n dataset.pointRadius = dataset.radius;\n }\n if ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\n dataset.pointHitRadius = dataset.hitRadius;\n }\n\n helpers.extend(point, {\n // Utility\n _datasetIndex: me.index,\n _index: index,\n _scale: scale,\n\n // Desired view properties\n _model: {\n x: reset ? scale.xCenter : pointPosition.x, // value not used in dataset scale, but we want a consistent API between scales\n y: reset ? scale.yCenter : pointPosition.y,\n\n // Appearance\n tension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, me.chart.options.elements.line.tension),\n radius: custom.radius ? custom.radius : helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius),\n backgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor),\n borderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor),\n borderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth),\n pointStyle: custom.pointStyle ? custom.pointStyle : helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointElementOptions.pointStyle),\n\n // Tooltip\n hitRadius: custom.hitRadius ? custom.hitRadius : helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointElementOptions.hitRadius)\n }\n });\n\n point._model.skip = custom.skip ? custom.skip : (isNaN(point._model.x) || isNaN(point._model.y));\n },\n updateBezierControlPoints: function () {\n var chartArea = this.chart.chartArea;\n var meta = this.getMeta();\n\n helpers.each(meta.data, function (point, index) {\n var model = point._model;\n var controlPoints = helpers.splineCurve(\n helpers.previousItem(meta.data, index, true)._model,\n model,\n helpers.nextItem(meta.data, index, true)._model,\n model.tension\n );\n\n // Prevent the bezier going outside of the bounds of the graph\n model.controlPointPreviousX = Math.max(Math.min(controlPoints.previous.x, chartArea.right), chartArea.left);\n model.controlPointPreviousY = Math.max(Math.min(controlPoints.previous.y, chartArea.bottom), chartArea.top);\n\n model.controlPointNextX = Math.max(Math.min(controlPoints.next.x, chartArea.right), chartArea.left);\n model.controlPointNextY = Math.max(Math.min(controlPoints.next.y, chartArea.bottom), chartArea.top);\n\n // Now pivot the point for animation\n point.pivot();\n });\n },\n\n setHoverStyle: function (point) {\n // Point\n var dataset = this.chart.data.datasets[point._datasetIndex];\n var custom = point.custom || {};\n var index = point._index;\n var model = point._model;\n\n model.radius = custom.hoverRadius ? custom.hoverRadius : helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\n model.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n model.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n model.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\n },\n\n removeHoverStyle: function (point) {\n var dataset = this.chart.data.datasets[point._datasetIndex];\n var custom = point.custom || {};\n var index = point._index;\n var model = point._model;\n var pointElementOptions = this.chart.options.elements.point;\n\n model.radius = custom.radius ? custom.radius : helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius);\n model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor);\n model.borderColor = custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor);\n model.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth);\n }\n });\n };\n\n }, {'25': 25, '40': 40, '45': 45}], 21: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n\n defaults._set('scatter', {\n hover: {\n mode: 'single'\n },\n\n scales: {\n xAxes: [{\n id: 'x-axis-1', // need an ID so datasets can reference the scale\n type: 'linear', // scatter should not use a category axis\n position: 'bottom'\n }],\n yAxes: [{\n id: 'y-axis-1',\n type: 'linear',\n position: 'left'\n }]\n },\n\n showLines: false,\n\n tooltips: {\n callbacks: {\n title: function () {\n return ''; // doesn't make sense for scatter since data are formatted as a point\n },\n label: function (item) {\n return '(' + item.xLabel + ', ' + item.yLabel + ')';\n }\n }\n }\n });\n\n module.exports = function (Chart) {\n\n // Scatter charts use line controllers\n Chart.controllers.scatter = Chart.controllers.line;\n\n };\n\n }, {'25': 25}], 22: [function (require, module, exports) {\n /* global window: false */\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n defaults._set('global', {\n animation: {\n duration: 1000,\n easing: 'easeOutQuart',\n onProgress: helpers.noop,\n onComplete: helpers.noop\n }\n });\n\n module.exports = function (Chart) {\n\n Chart.Animation = Element.extend({\n chart: null, // the animation associated chart instance\n currentStep: 0, // the current animation step\n numSteps: 60, // default number of steps\n easing: '', // the easing to use for this animation\n render: null, // render function used by the animation service\n\n onAnimationProgress: null, // user specified callback to fire on each step of the animation\n onAnimationComplete: null, // user specified callback to fire when the animation finishes\n });\n\n Chart.animationService = {\n frameDuration: 17,\n animations: [],\n dropFrames: 0,\n request: null,\n\n /**\n * @param {Chart} chart - The chart to animate.\n * @param {Chart.Animation} animation - The animation that we will animate.\n * @param {Number} duration - The animation duration in ms.\n * @param {Boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n */\n addAnimation: function (chart, animation, duration, lazy) {\n var animations = this.animations;\n var i, ilen;\n\n animation.chart = chart;\n\n if (!lazy) {\n chart.animating = true;\n }\n\n for (i = 0, ilen = animations.length; i < ilen; ++i) {\n if (animations[i].chart === chart) {\n animations[i] = animation;\n return;\n }\n }\n\n animations.push(animation);\n\n // If there are no animations queued, manually kickstart a digest, for lack of a better word\n if (animations.length === 1) {\n this.requestAnimationFrame();\n }\n },\n\n cancelAnimation: function (chart) {\n var index = helpers.findIndex(this.animations, function (animation) {\n return animation.chart === chart;\n });\n\n if (index !== -1) {\n this.animations.splice(index, 1);\n chart.animating = false;\n }\n },\n\n requestAnimationFrame: function () {\n var me = this;\n if (me.request === null) {\n // Skip animation frame requests until the active one is executed.\n // This can happen when processing mouse events, e.g. 'mousemove'\n // and 'mouseout' events will trigger multiple renders.\n me.request = helpers.requestAnimFrame.call(window, function () {\n me.request = null;\n me.startDigest();\n });\n }\n },\n\n /**\n * @private\n */\n startDigest: function () {\n var me = this;\n var startTime = Date.now();\n var framesToDrop = 0;\n\n if (me.dropFrames > 1) {\n framesToDrop = Math.floor(me.dropFrames);\n me.dropFrames = me.dropFrames % 1;\n }\n\n me.advance(1 + framesToDrop);\n\n var endTime = Date.now();\n\n me.dropFrames += (endTime - startTime) / me.frameDuration;\n\n // Do we have more stuff to animate?\n if (me.animations.length > 0) {\n me.requestAnimationFrame();\n }\n },\n\n /**\n * @private\n */\n advance: function (count) {\n var animations = this.animations;\n var animation, chart;\n var i = 0;\n\n while (i < animations.length) {\n animation = animations[i];\n chart = animation.chart;\n\n animation.currentStep = (animation.currentStep || 0) + count;\n animation.currentStep = Math.min(animation.currentStep, animation.numSteps);\n\n helpers.callback(animation.render, [chart, animation], chart);\n helpers.callback(animation.onAnimationProgress, [animation], chart);\n\n if (animation.currentStep >= animation.numSteps) {\n helpers.callback(animation.onAnimationComplete, [animation], chart);\n chart.animating = false;\n animations.splice(i, 1);\n } else {\n ++i;\n }\n }\n }\n };\n\n /**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\n Object.defineProperty(Chart.Animation.prototype, 'animationObject', {\n get: function () {\n return this;\n }\n });\n\n /**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\n Object.defineProperty(Chart.Animation.prototype, 'chartInstance', {\n get: function () {\n return this.chart;\n },\n set: function (value) {\n this.chart = value;\n }\n });\n\n };\n\n }, {'25': 25, '26': 26, '45': 45}], 23: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var helpers = require(45);\n var Interaction = require(28);\n var layouts = require(30);\n var platform = require(48);\n var plugins = require(31);\n\n module.exports = function (Chart) {\n\n // Create a dictionary of chart types, to allow for extension of existing types\n Chart.types = {};\n\n // Store a reference to each instance - allowing us to globally resize chart instances on window resize.\n // Destroy method on the chart will remove the instance of the chart from this reference.\n Chart.instances = {};\n\n // Controllers available for dataset visualization eg. bar, line, slice, etc.\n Chart.controllers = {};\n\n /**\n * Initializes the given config with global and chart default values.\n */\n function initConfig(config) {\n config = config || {};\n\n // Do NOT use configMerge() for the data object because this method merges arrays\n // and so would change references to labels and datasets, preventing data updates.\n var data = config.data = config.data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n\n config.options = helpers.configMerge(\n defaults.global,\n defaults[config.type],\n config.options || {});\n\n return config;\n }\n\n /**\n * Updates the config of the chart\n * @param chart {Chart} chart to update the options for\n */\n function updateConfig(chart) {\n var newOptions = chart.options;\n\n helpers.each(chart.scales, function (scale) {\n layouts.removeBox(chart, scale);\n });\n\n newOptions = helpers.configMerge(\n Chart.defaults.global,\n Chart.defaults[chart.config.type],\n newOptions);\n\n chart.options = chart.config.options = newOptions;\n chart.ensureScalesHaveIDs();\n chart.buildOrUpdateScales();\n // Tooltip\n chart.tooltip._options = newOptions.tooltips;\n chart.tooltip.initialize();\n }\n\n function positionIsHorizontal(position) {\n return position === 'top' || position === 'bottom';\n }\n\n helpers.extend(Chart.prototype, /** @lends Chart */ {\n /**\n * @private\n */\n construct: function (item, config) {\n var me = this;\n\n config = initConfig(config);\n\n var context = platform.acquireContext(item, config);\n var canvas = context && context.canvas;\n var height = canvas && canvas.height;\n var width = canvas && canvas.width;\n\n me.id = helpers.uid();\n me.ctx = context;\n me.canvas = canvas;\n me.config = config;\n me.width = width;\n me.height = height;\n me.aspectRatio = height ? width / height : null;\n me.options = config.options;\n me._bufferedRender = false;\n\n /**\n * Provided for backward compatibility, Chart and Chart.Controller have been merged,\n * the \"instance\" still need to be defined since it might be called from plugins.\n * @prop Chart#chart\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\n me.chart = me;\n me.controller = me; // chart.chart.controller #inception\n\n // Add the chart instance to the global namespace\n Chart.instances[me.id] = me;\n\n // Define alias to the config data: `chart.data === chart.config.data`\n Object.defineProperty(me, 'data', {\n get: function () {\n return me.config.data;\n },\n set: function (value) {\n me.config.data = value;\n }\n });\n\n if (!context || !canvas) {\n // The given item is not a compatible context2d element, let's return before finalizing\n // the chart initialization but after setting basic chart / controller properties that\n // can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n // https://github.com/chartjs/Chart.js/issues/2807\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n\n me.initialize();\n me.update();\n },\n\n /**\n * @private\n */\n initialize: function () {\n var me = this;\n\n // Before init plugin notification\n plugins.notify(me, 'beforeInit');\n\n helpers.retinaScale(me, me.options.devicePixelRatio);\n\n me.bindEvents();\n\n if (me.options.responsive) {\n // Initial resize before chart draws (must be silent to preserve initial animations).\n me.resize(true);\n }\n\n // Make sure scales have IDs and are built before we build any controllers.\n me.ensureScalesHaveIDs();\n me.buildOrUpdateScales();\n me.initToolTip();\n\n // After init plugin notification\n plugins.notify(me, 'afterInit');\n\n return me;\n },\n\n clear: function () {\n helpers.canvas.clear(this);\n return this;\n },\n\n stop: function () {\n // Stops any current animation loop occurring\n Chart.animationService.cancelAnimation(this);\n return this;\n },\n\n resize: function (silent) {\n var me = this;\n var options = me.options;\n var canvas = me.canvas;\n var aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null;\n\n // the canvas render width and height will be casted to integers so make sure that\n // the canvas display style uses the same integer values to avoid blurring effect.\n\n // Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collased\n var newWidth = Math.max(0, Math.floor(helpers.getMaximumWidth(canvas)));\n var newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers.getMaximumHeight(canvas)));\n\n if (me.width === newWidth && me.height === newHeight) {\n return;\n }\n\n canvas.width = me.width = newWidth;\n canvas.height = me.height = newHeight;\n canvas.style.width = newWidth + 'px';\n canvas.style.height = newHeight + 'px';\n\n helpers.retinaScale(me, options.devicePixelRatio);\n\n if (!silent) {\n // Notify any plugins about the resize\n var newSize = {width: newWidth, height: newHeight};\n plugins.notify(me, 'resize', [newSize]);\n\n // Notify of resize\n if (me.options.onResize) {\n me.options.onResize(me, newSize);\n }\n\n me.stop();\n me.update(me.options.responsiveAnimationDuration);\n }\n },\n\n ensureScalesHaveIDs: function () {\n var options = this.options;\n var scalesOptions = options.scales || {};\n var scaleOptions = options.scale;\n\n helpers.each(scalesOptions.xAxes, function (xAxisOptions, index) {\n xAxisOptions.id = xAxisOptions.id || ('x-axis-' + index);\n });\n\n helpers.each(scalesOptions.yAxes, function (yAxisOptions, index) {\n yAxisOptions.id = yAxisOptions.id || ('y-axis-' + index);\n });\n\n if (scaleOptions) {\n scaleOptions.id = scaleOptions.id || 'scale';\n }\n },\n\n /**\n * Builds a map of scale ID to scale object for future lookup.\n */\n buildOrUpdateScales: function () {\n var me = this;\n var options = me.options;\n var scales = me.scales || {};\n var items = [];\n var updated = Object.keys(scales).reduce(function (obj, id) {\n obj[id] = false;\n return obj;\n }, {});\n\n if (options.scales) {\n items = items.concat(\n (options.scales.xAxes || []).map(function (xAxisOptions) {\n return {options: xAxisOptions, dtype: 'category', dposition: 'bottom'};\n }),\n (options.scales.yAxes || []).map(function (yAxisOptions) {\n return {options: yAxisOptions, dtype: 'linear', dposition: 'left'};\n })\n );\n }\n\n if (options.scale) {\n items.push({\n options: options.scale,\n dtype: 'radialLinear',\n isDefault: true,\n dposition: 'chartArea'\n });\n }\n\n helpers.each(items, function (item) {\n var scaleOptions = item.options;\n var id = scaleOptions.id;\n var scaleType = helpers.valueOrDefault(scaleOptions.type, item.dtype);\n\n if (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n\n updated[id] = true;\n var scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n scale.options = scaleOptions;\n scale.ctx = me.ctx;\n scale.chart = me;\n } else {\n var scaleClass = Chart.scaleService.getScaleConstructor(scaleType);\n if (!scaleClass) {\n return;\n }\n scale = new scaleClass({\n id: id,\n type: scaleType,\n options: scaleOptions,\n ctx: me.ctx,\n chart: me\n });\n scales[scale.id] = scale;\n }\n\n scale.mergeTicksOptions();\n\n // TODO(SB): I think we should be able to remove this custom case (options.scale)\n // and consider it as a regular scale part of the \"scales\"\" map only! This would\n // make the logic easier and remove some useless? custom code.\n if (item.isDefault) {\n me.scale = scale;\n }\n });\n // clear up discarded scales\n helpers.each(updated, function (hasUpdated, id) {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n\n me.scales = scales;\n\n Chart.scaleService.addScalesToLayout(this);\n },\n\n buildOrUpdateControllers: function () {\n var me = this;\n var types = [];\n var newControllers = [];\n\n helpers.each(me.data.datasets, function (dataset, datasetIndex) {\n var meta = me.getDatasetMeta(datasetIndex);\n var type = dataset.type || me.config.type;\n\n if (meta.type && meta.type !== type) {\n me.destroyDatasetMeta(datasetIndex);\n meta = me.getDatasetMeta(datasetIndex);\n }\n meta.type = type;\n\n types.push(meta.type);\n\n if (meta.controller) {\n meta.controller.updateIndex(datasetIndex);\n meta.controller.linkScales();\n } else {\n var ControllerClass = Chart.controllers[meta.type];\n if (ControllerClass === undefined) {\n throw new Error('\"' + meta.type + '\" is not a chart type.');\n }\n\n meta.controller = new ControllerClass(me, datasetIndex);\n newControllers.push(meta.controller);\n }\n }, me);\n\n return newControllers;\n },\n\n /**\n * Reset the elements of all datasets\n * @private\n */\n resetElements: function () {\n var me = this;\n helpers.each(me.data.datasets, function (dataset, datasetIndex) {\n me.getDatasetMeta(datasetIndex).controller.reset();\n }, me);\n },\n\n /**\n * Resets the chart back to it's state before the initial animation\n */\n reset: function () {\n this.resetElements();\n this.tooltip.initialize();\n },\n\n update: function (config) {\n var me = this;\n\n if (!config || typeof config !== 'object') {\n // backwards compatibility\n config = {\n duration: config,\n lazy: arguments[1]\n };\n }\n\n updateConfig(me);\n\n // plugins options references might have change, let's invalidate the cache\n // https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n plugins._invalidate(me);\n\n if (plugins.notify(me, 'beforeUpdate') === false) {\n return;\n }\n\n // In case the entire data object changed\n me.tooltip._data = me.data;\n\n // Make sure dataset controllers are updated and new controllers are reset\n var newControllers = me.buildOrUpdateControllers();\n\n // Make sure all dataset controllers have correct meta data counts\n helpers.each(me.data.datasets, function (dataset, datasetIndex) {\n me.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements();\n }, me);\n\n me.updateLayout();\n\n // Can only reset the new controllers after the scales have been updated\n if (me.options.animation && me.options.animation.duration) {\n helpers.each(newControllers, function (controller) {\n controller.reset();\n });\n }\n\n me.updateDatasets();\n\n // Need to reset tooltip in case it is displayed with elements that are removed\n // after update.\n me.tooltip.initialize();\n\n // Last active contains items that were previously in the tooltip.\n // When we reset the tooltip, we need to clear it\n me.lastActive = [];\n\n // Do this before render so that any plugins that need final scale updates can use it\n plugins.notify(me, 'afterUpdate');\n\n if (me._bufferedRender) {\n me._bufferedRequest = {\n duration: config.duration,\n easing: config.easing,\n lazy: config.lazy\n };\n } else {\n me.render(config);\n }\n },\n\n /**\n * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n * hook, in which case, plugins will not be called on `afterLayout`.\n * @private\n */\n updateLayout: function () {\n var me = this;\n\n if (plugins.notify(me, 'beforeLayout') === false) {\n return;\n }\n\n layouts.update(this, this.width, this.height);\n\n /**\n * Provided for backward compatibility, use `afterLayout` instead.\n * @method IPlugin#afterScaleUpdate\n * @deprecated since version 2.5.0\n * @todo remove at version 3\n * @private\n */\n plugins.notify(me, 'afterScaleUpdate');\n plugins.notify(me, 'afterLayout');\n },\n\n /**\n * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n * @private\n */\n updateDatasets: function () {\n var me = this;\n\n if (plugins.notify(me, 'beforeDatasetsUpdate') === false) {\n return;\n }\n\n for (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n me.updateDataset(i);\n }\n\n plugins.notify(me, 'afterDatasetsUpdate');\n },\n\n /**\n * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n * @private\n */\n updateDataset: function (index) {\n var me = this;\n var meta = me.getDatasetMeta(index);\n var args = {\n meta: meta,\n index: index\n };\n\n if (plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) {\n return;\n }\n\n meta.controller.update();\n\n plugins.notify(me, 'afterDatasetUpdate', [args]);\n },\n\n render: function (config) {\n var me = this;\n\n if (!config || typeof config !== 'object') {\n // backwards compatibility\n config = {\n duration: config,\n lazy: arguments[1]\n };\n }\n\n var duration = config.duration;\n var lazy = config.lazy;\n\n if (plugins.notify(me, 'beforeRender') === false) {\n return;\n }\n\n var animationOptions = me.options.animation;\n var onComplete = function (animation) {\n plugins.notify(me, 'afterRender');\n helpers.callback(animationOptions && animationOptions.onComplete, [animation], me);\n };\n\n if (animationOptions && ((typeof duration !== 'undefined' && duration !== 0) || (typeof duration === 'undefined' && animationOptions.duration !== 0))) {\n var animation = new Chart.Animation({\n numSteps: (duration || animationOptions.duration) / 16.66, // 60 fps\n easing: config.easing || animationOptions.easing,\n\n render: function (chart, animationObject) {\n var easingFunction = helpers.easing.effects[animationObject.easing];\n var currentStep = animationObject.currentStep;\n var stepDecimal = currentStep / animationObject.numSteps;\n\n chart.draw(easingFunction(stepDecimal), stepDecimal, currentStep);\n },\n\n onAnimationProgress: animationOptions.onProgress,\n onAnimationComplete: onComplete\n });\n\n Chart.animationService.addAnimation(me, animation, duration, lazy);\n } else {\n me.draw();\n\n // See https://github.com/chartjs/Chart.js/issues/3781\n onComplete(new Chart.Animation({numSteps: 0, chart: me}));\n }\n\n return me;\n },\n\n draw: function (easingValue) {\n var me = this;\n\n me.clear();\n\n if (helpers.isNullOrUndef(easingValue)) {\n easingValue = 1;\n }\n\n me.transition(easingValue);\n\n if (plugins.notify(me, 'beforeDraw', [easingValue]) === false) {\n return;\n }\n\n // Draw all the scales\n helpers.each(me.boxes, function (box) {\n box.draw(me.chartArea);\n }, me);\n\n if (me.scale) {\n me.scale.draw();\n }\n\n me.drawDatasets(easingValue);\n me._drawTooltip(easingValue);\n\n plugins.notify(me, 'afterDraw', [easingValue]);\n },\n\n /**\n * @private\n */\n transition: function (easingValue) {\n var me = this;\n\n for (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) {\n if (me.isDatasetVisible(i)) {\n me.getDatasetMeta(i).controller.transition(easingValue);\n }\n }\n\n me.tooltip.transition(easingValue);\n },\n\n /**\n * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n * @private\n */\n drawDatasets: function (easingValue) {\n var me = this;\n\n if (plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) {\n return;\n }\n\n // Draw datasets reversed to support proper line stacking\n for (var i = (me.data.datasets || []).length - 1; i >= 0; --i) {\n if (me.isDatasetVisible(i)) {\n me.drawDataset(i, easingValue);\n }\n }\n\n plugins.notify(me, 'afterDatasetsDraw', [easingValue]);\n },\n\n /**\n * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n * @private\n */\n drawDataset: function (index, easingValue) {\n var me = this;\n var meta = me.getDatasetMeta(index);\n var args = {\n meta: meta,\n index: index,\n easingValue: easingValue\n };\n\n if (plugins.notify(me, 'beforeDatasetDraw', [args]) === false) {\n return;\n }\n\n meta.controller.draw(easingValue);\n\n plugins.notify(me, 'afterDatasetDraw', [args]);\n },\n\n /**\n * Draws tooltip unless a plugin returns `false` to the `beforeTooltipDraw`\n * hook, in which case, plugins will not be called on `afterTooltipDraw`.\n * @private\n */\n _drawTooltip: function (easingValue) {\n var me = this;\n var tooltip = me.tooltip;\n var args = {\n tooltip: tooltip,\n easingValue: easingValue\n };\n\n if (plugins.notify(me, 'beforeTooltipDraw', [args]) === false) {\n return;\n }\n\n tooltip.draw();\n\n plugins.notify(me, 'afterTooltipDraw', [args]);\n },\n\n // Get the single element that was clicked on\n // @return : An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw\n getElementAtEvent: function (e) {\n return Interaction.modes.single(this, e);\n },\n\n getElementsAtEvent: function (e) {\n return Interaction.modes.label(this, e, {intersect: true});\n },\n\n getElementsAtXAxis: function (e) {\n return Interaction.modes['x-axis'](this, e, {intersect: true});\n },\n\n getElementsAtEventForMode: function (e, mode, options) {\n var method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options);\n }\n\n return [];\n },\n\n getDatasetAtEvent: function (e) {\n return Interaction.modes.dataset(this, e, {intersect: true});\n },\n\n getDatasetMeta: function (datasetIndex) {\n var me = this;\n var dataset = me.data.datasets[datasetIndex];\n if (!dataset._meta) {\n dataset._meta = {};\n }\n\n var meta = dataset._meta[me.id];\n if (!meta) {\n meta = dataset._meta[me.id] = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\t\t\t// See isDatasetVisible() comment\n xAxisID: null,\n yAxisID: null\n };\n }\n\n return meta;\n },\n\n getVisibleDatasetCount: function () {\n var count = 0;\n for (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n if (this.isDatasetVisible(i)) {\n count++;\n }\n }\n return count;\n },\n\n isDatasetVisible: function (datasetIndex) {\n var meta = this.getDatasetMeta(datasetIndex);\n\n // meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n // the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden;\n },\n\n generateLegend: function () {\n return this.options.legendCallback(this);\n },\n\n /**\n * @private\n */\n destroyDatasetMeta: function (datasetIndex) {\n var id = this.id;\n var dataset = this.data.datasets[datasetIndex];\n var meta = dataset._meta && dataset._meta[id];\n\n if (meta) {\n meta.controller.destroy();\n delete dataset._meta[id];\n }\n },\n\n destroy: function () {\n var me = this;\n var canvas = me.canvas;\n var i, ilen;\n\n me.stop();\n\n // dataset controllers need to cleanup associated data\n for (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n me.destroyDatasetMeta(i);\n }\n\n if (canvas) {\n me.unbindEvents();\n helpers.canvas.clear(me);\n platform.releaseContext(me.ctx);\n me.canvas = null;\n me.ctx = null;\n }\n\n plugins.notify(me, 'destroy');\n\n delete Chart.instances[me.id];\n },\n\n toBase64Image: function () {\n return this.canvas.toDataURL.apply(this.canvas, arguments);\n },\n\n initToolTip: function () {\n var me = this;\n me.tooltip = new Chart.Tooltip({\n _chart: me,\n _chartInstance: me, // deprecated, backward compatibility\n _data: me.data,\n _options: me.options.tooltips\n }, me);\n },\n\n /**\n * @private\n */\n bindEvents: function () {\n var me = this;\n var listeners = me._listeners = {};\n var listener = function () {\n me.eventHandler.apply(me, arguments);\n };\n\n helpers.each(me.options.events, function (type) {\n platform.addEventListener(me, type, listener);\n listeners[type] = listener;\n });\n\n // Elements used to detect size change should not be injected for non responsive charts.\n // See https://github.com/chartjs/Chart.js/issues/2210\n if (me.options.responsive) {\n listener = function () {\n me.resize();\n };\n\n platform.addEventListener(me, 'resize', listener);\n listeners.resize = listener;\n }\n },\n\n /**\n * @private\n */\n unbindEvents: function () {\n var me = this;\n var listeners = me._listeners;\n if (!listeners) {\n return;\n }\n\n delete me._listeners;\n helpers.each(listeners, function (listener, type) {\n platform.removeEventListener(me, type, listener);\n });\n },\n\n updateHoverStyle: function (elements, mode, enabled) {\n var method = enabled ? 'setHoverStyle' : 'removeHoverStyle';\n var element, i, ilen;\n\n for (i = 0, ilen = elements.length; i < ilen; ++i) {\n element = elements[i];\n if (element) {\n this.getDatasetMeta(element._datasetIndex).controller[method](element);\n }\n }\n },\n\n /**\n * @private\n */\n eventHandler: function (e) {\n var me = this;\n var tooltip = me.tooltip;\n\n if (plugins.notify(me, 'beforeEvent', [e]) === false) {\n return;\n }\n\n // Buffer any update calls so that renders do not occur\n me._bufferedRender = true;\n me._bufferedRequest = null;\n\n var changed = me.handleEvent(e);\n // for smooth tooltip animations issue #4989\n // the tooltip should be the source of change\n // Animation check workaround:\n // tooltip._start will be null when tooltip isn't animating\n if (tooltip) {\n changed = tooltip._start\n ? tooltip.handleEvent(e)\n : changed | tooltip.handleEvent(e);\n }\n\n plugins.notify(me, 'afterEvent', [e]);\n\n var bufferedRequest = me._bufferedRequest;\n if (bufferedRequest) {\n // If we have an update that was triggered, we need to do a normal render\n me.render(bufferedRequest);\n } else if (changed && !me.animating) {\n // If entering, leaving, or changing elements, animate the change via pivot\n me.stop();\n\n // We only need to render at this point. Updating will cause scales to be\n // recomputed generating flicker & using more memory than necessary.\n me.render(me.options.hover.animationDuration, true);\n }\n\n me._bufferedRender = false;\n me._bufferedRequest = null;\n\n return me;\n },\n\n /**\n * Handle an event\n * @private\n * @param {IEvent} event the event to handle\n * @return {Boolean} true if the chart needs to re-render\n */\n handleEvent: function (e) {\n var me = this;\n var options = me.options || {};\n var hoverOptions = options.hover;\n var changed = false;\n\n me.lastActive = me.lastActive || [];\n\n // Find Active Elements for hover and tooltips\n if (e.type === 'mouseout') {\n me.active = [];\n } else {\n me.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions);\n }\n\n // Invoke onHover hook\n // Need to call with native event here to not break backwards compatibility\n helpers.callback(options.onHover || options.hover.onHover, [e.native, me.active], me);\n\n if (e.type === 'mouseup' || e.type === 'click') {\n if (options.onClick) {\n // Use e.native here for backwards compatibility\n options.onClick.call(me, e.native, me.active);\n }\n }\n\n // Remove styling for last active (even if it may still be active)\n if (me.lastActive.length) {\n me.updateHoverStyle(me.lastActive, hoverOptions.mode, false);\n }\n\n // Built in hover styling\n if (me.active.length && hoverOptions.mode) {\n me.updateHoverStyle(me.active, hoverOptions.mode, true);\n }\n\n changed = !helpers.arrayEquals(me.active, me.lastActive);\n\n // Remember Last Actives\n me.lastActive = me.active;\n\n return changed;\n }\n });\n\n /**\n * Provided for backward compatibility, use Chart instead.\n * @class Chart.Controller\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\n Chart.Controller = Chart;\n };\n\n }, {'25': 25, '28': 28, '30': 30, '31': 31, '45': 45, '48': 48}], 24: [function (require, module, exports) {\n 'use strict';\n\n var helpers = require(45);\n\n module.exports = function (Chart) {\n\n var arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n /**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\n function listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n\n arrayEvents.forEach(function (key) {\n var method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n var base = array[key];\n\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value: function () {\n var args = Array.prototype.slice.call(arguments);\n var res = base.apply(this, args);\n\n helpers.each(array._chartjs.listeners, 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\n /**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\n function unlistenArrayEvents(array, listener) {\n var stub = array._chartjs;\n if (!stub) {\n return;\n }\n\n var listeners = stub.listeners;\n var index = listeners.indexOf(listener);\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\n delete array._chartjs;\n }\n\n // Base class for all dataset controllers (line, bar, etc)\n Chart.DatasetController = function (chart, datasetIndex) {\n this.initialize(chart, datasetIndex);\n };\n\n helpers.extend(Chart.DatasetController.prototype, {\n\n /**\n * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n * @type {Chart.core.element}\n */\n datasetElementType: null,\n\n /**\n * Element type used to generate a meta data (e.g. Chart.element.Point).\n * @type {Chart.core.element}\n */\n dataElementType: null,\n\n initialize: function (chart, datasetIndex) {\n var me = this;\n me.chart = chart;\n me.index = datasetIndex;\n me.linkScales();\n me.addElements();\n },\n\n updateIndex: function (datasetIndex) {\n this.index = datasetIndex;\n },\n\n linkScales: function () {\n var me = this;\n var meta = me.getMeta();\n var dataset = me.getDataset();\n\n if (meta.xAxisID === null || !(meta.xAxisID in me.chart.scales)) {\n meta.xAxisID = dataset.xAxisID || me.chart.options.scales.xAxes[0].id;\n }\n if (meta.yAxisID === null || !(meta.yAxisID in me.chart.scales)) {\n meta.yAxisID = dataset.yAxisID || me.chart.options.scales.yAxes[0].id;\n }\n },\n\n getDataset: function () {\n return this.chart.data.datasets[this.index];\n },\n\n getMeta: function () {\n return this.chart.getDatasetMeta(this.index);\n },\n\n getScaleForId: function (scaleID) {\n return this.chart.scales[scaleID];\n },\n\n reset: function () {\n this.update(true);\n },\n\n /**\n * @private\n */\n destroy: function () {\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n },\n\n createMetaDataset: function () {\n var me = this;\n var type = me.datasetElementType;\n return type && new type({\n _chart: me.chart,\n _datasetIndex: me.index\n });\n },\n\n createMetaData: function (index) {\n var me = this;\n var type = me.dataElementType;\n return type && new type({\n _chart: me.chart,\n _datasetIndex: me.index,\n _index: index\n });\n },\n\n addElements: function () {\n var me = this;\n var meta = me.getMeta();\n var data = me.getDataset().data || [];\n var metaData = meta.data;\n var i, ilen;\n\n for (i = 0, ilen = data.length; i < ilen; ++i) {\n metaData[i] = metaData[i] || me.createMetaData(i);\n }\n\n meta.dataset = meta.dataset || me.createMetaDataset();\n },\n\n addElementAndReset: function (index) {\n var element = this.createMetaData(index);\n this.getMeta().data.splice(index, 0, element);\n this.updateElement(element, index, true);\n },\n\n buildOrUpdateElements: function () {\n var me = this;\n var dataset = me.getDataset();\n var data = dataset.data || (dataset.data = []);\n\n // In order to correctly handle data addition/deletion animation (an thus simulate\n // real-time charts), we need to monitor these data modifications and synchronize\n // the internal meta data accordingly.\n if (me._data !== data) {\n if (me._data) {\n // This case happens when the user replaced the data array instance.\n unlistenArrayEvents(me._data, me);\n }\n\n listenArrayEvents(data, me);\n me._data = data;\n }\n\n // Re-sync meta data in case the user replaced the data array or if we missed\n // any updates and so make sure that we handle number of datapoints changing.\n me.resyncElements();\n },\n\n update: helpers.noop,\n\n transition: function (easingValue) {\n var meta = this.getMeta();\n var elements = meta.data || [];\n var ilen = elements.length;\n var i = 0;\n\n for (; i < ilen; ++i) {\n elements[i].transition(easingValue);\n }\n\n if (meta.dataset) {\n meta.dataset.transition(easingValue);\n }\n },\n\n draw: function () {\n var meta = this.getMeta();\n var elements = meta.data || [];\n var ilen = elements.length;\n var i = 0;\n\n if (meta.dataset) {\n meta.dataset.draw();\n }\n\n for (; i < ilen; ++i) {\n elements[i].draw();\n }\n },\n\n removeHoverStyle: function (element, elementOpts) {\n var dataset = this.chart.data.datasets[element._datasetIndex];\n var index = element._index;\n var custom = element.custom || {};\n var valueOrDefault = helpers.valueAtIndexOrDefault;\n var model = element._model;\n\n model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor);\n model.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor);\n model.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth);\n },\n\n setHoverStyle: function (element) {\n var dataset = this.chart.data.datasets[element._datasetIndex];\n var index = element._index;\n var custom = element.custom || {};\n var valueOrDefault = helpers.valueAtIndexOrDefault;\n var getHoverColor = helpers.getHoverColor;\n var model = element._model;\n\n model.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : valueOrDefault(dataset.hoverBackgroundColor, index, getHoverColor(model.backgroundColor));\n model.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : valueOrDefault(dataset.hoverBorderColor, index, getHoverColor(model.borderColor));\n model.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : valueOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\n },\n\n /**\n * @private\n */\n resyncElements: function () {\n var me = this;\n var meta = me.getMeta();\n var data = me.getDataset().data;\n var numMeta = meta.data.length;\n var numData = data.length;\n\n if (numData < numMeta) {\n meta.data.splice(numData, numMeta - numData);\n } else if (numData > numMeta) {\n me.insertElements(numMeta, numData - numMeta);\n }\n },\n\n /**\n * @private\n */\n insertElements: function (start, count) {\n for (var i = 0; i < count; ++i) {\n this.addElementAndReset(start + i);\n }\n },\n\n /**\n * @private\n */\n onDataPush: function () {\n this.insertElements(this.getDataset().data.length - 1, arguments.length);\n },\n\n /**\n * @private\n */\n onDataPop: function () {\n this.getMeta().data.pop();\n },\n\n /**\n * @private\n */\n onDataShift: function () {\n this.getMeta().data.shift();\n },\n\n /**\n * @private\n */\n onDataSplice: function (start, count) {\n this.getMeta().data.splice(start, count);\n this.insertElements(start, arguments.length - 2);\n },\n\n /**\n * @private\n */\n onDataUnshift: function () {\n this.insertElements(0, arguments.length);\n }\n });\n\n Chart.DatasetController.extend = helpers.inherits;\n };\n\n }, {'45': 45}], 25: [function (require, module, exports) {\n 'use strict';\n\n var helpers = require(45);\n\n module.exports = {\n /**\n * @private\n */\n _set: function (scope, values) {\n return helpers.merge(this[scope] || (this[scope] = {}), values);\n }\n };\n\n }, {'45': 45}], 26: [function (require, module, exports) {\n 'use strict';\n\n var color = require(3);\n var helpers = require(45);\n\n function interpolate(start, view, model, ease) {\n var keys = Object.keys(model);\n var i, ilen, key, actual, origin, target, type, c0, c1;\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n\n target = model[key];\n\n // if a value is added to the model after pivot() has been called, the view\n // doesn't contain it, so let's initialize the view to the target value.\n if (!view.hasOwnProperty(key)) {\n view[key] = target;\n }\n\n actual = view[key];\n\n if (actual === target || key[0] === '_') {\n continue;\n }\n\n if (!start.hasOwnProperty(key)) {\n start[key] = actual;\n }\n\n origin = start[key];\n\n type = typeof target;\n\n if (type === typeof origin) {\n if (type === 'string') {\n c0 = color(origin);\n if (c0.valid) {\n c1 = color(target);\n if (c1.valid) {\n view[key] = c1.mix(c0, ease).rgbString();\n continue;\n }\n }\n } else if (type === 'number' && isFinite(origin) && isFinite(target)) {\n view[key] = origin + (target - origin) * ease;\n continue;\n }\n }\n\n view[key] = target;\n }\n }\n\n var Element = function (configuration) {\n helpers.extend(this, configuration);\n this.initialize.apply(this, arguments);\n };\n\n helpers.extend(Element.prototype, {\n\n initialize: function () {\n this.hidden = false;\n },\n\n pivot: function () {\n var me = this;\n if (!me._view) {\n me._view = helpers.clone(me._model);\n }\n me._start = {};\n return me;\n },\n\n transition: function (ease) {\n var me = this;\n var model = me._model;\n var start = me._start;\n var view = me._view;\n\n // No animation -> No Transition\n if (!model || ease === 1) {\n me._view = model;\n me._start = null;\n return me;\n }\n\n if (!view) {\n view = me._view = {};\n }\n\n if (!start) {\n start = me._start = {};\n }\n\n interpolate(start, view, model, ease);\n\n return me;\n },\n\n tooltipPosition: function () {\n return {\n x: this._model.x,\n y: this._model.y\n };\n },\n\n hasValue: function () {\n return helpers.isNumber(this._model.x) && helpers.isNumber(this._model.y);\n }\n });\n\n Element.extend = helpers.inherits;\n\n module.exports = Element;\n\n }, {'3': 3, '45': 45}], 27: [function (require, module, exports) {\n /* global window: false */\n /* global document: false */\n 'use strict';\n\n var color = require(3);\n var defaults = require(25);\n var helpers = require(45);\n\n module.exports = function (Chart) {\n\n // -- Basic js utility methods\n\n helpers.configMerge = function (/* objects ... */) {\n return helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\n merger: function (key, target, source, options) {\n var tval = target[key] || {};\n var sval = source[key];\n\n if (key === 'scales') {\n // scale config merging is complex. Add our own function here for that\n target[key] = helpers.scaleMerge(tval, sval);\n } else if (key === 'scale') {\n // used in polar area & radar charts since there is only one scale\n target[key] = helpers.merge(tval, [Chart.scaleService.getScaleDefaults(sval.type), sval]);\n } else {\n helpers._merger(key, target, source, options);\n }\n }\n });\n };\n\n helpers.scaleMerge = function (/* objects ... */) {\n return helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\n merger: function (key, target, source, options) {\n if (key === 'xAxes' || key === 'yAxes') {\n var slen = source[key].length;\n var i, type, scale;\n\n if (!target[key]) {\n target[key] = [];\n }\n\n for (i = 0; i < slen; ++i) {\n scale = source[key][i];\n type = helpers.valueOrDefault(scale.type, key === 'xAxes' ? 'category' : 'linear');\n\n if (i >= target[key].length) {\n target[key].push({});\n }\n\n if (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) {\n // new/untyped scale or type changed: let's apply the new defaults\n // then merge source scale to correctly overwrite the defaults.\n helpers.merge(target[key][i], [Chart.scaleService.getScaleDefaults(type), scale]);\n } else {\n // scales type are the same\n helpers.merge(target[key][i], scale);\n }\n }\n } else {\n helpers._merger(key, target, source, options);\n }\n }\n });\n };\n\n helpers.where = function (collection, filterCallback) {\n if (helpers.isArray(collection) && Array.prototype.filter) {\n return collection.filter(filterCallback);\n }\n var filtered = [];\n\n helpers.each(collection, function (item) {\n if (filterCallback(item)) {\n filtered.push(item);\n }\n });\n\n return filtered;\n };\n helpers.findIndex = Array.prototype.findIndex ?\n function (array, callback, scope) {\n return array.findIndex(callback, scope);\n } :\n function (array, callback, scope) {\n scope = scope === undefined ? array : scope;\n for (var i = 0, ilen = array.length; i < ilen; ++i) {\n if (callback.call(scope, array[i], i, array)) {\n return i;\n }\n }\n return -1;\n };\n helpers.findNextWhere = function (arrayToSearch, filterCallback, startIndex) {\n // Default to start of the array\n if (helpers.isNullOrUndef(startIndex)) {\n startIndex = -1;\n }\n for (var i = startIndex + 1; i < arrayToSearch.length; i++) {\n var currentItem = arrayToSearch[i];\n if (filterCallback(currentItem)) {\n return currentItem;\n }\n }\n };\n helpers.findPreviousWhere = function (arrayToSearch, filterCallback, startIndex) {\n // Default to end of the array\n if (helpers.isNullOrUndef(startIndex)) {\n startIndex = arrayToSearch.length;\n }\n for (var i = startIndex - 1; i >= 0; i--) {\n var currentItem = arrayToSearch[i];\n if (filterCallback(currentItem)) {\n return currentItem;\n }\n }\n };\n\n // -- Math methods\n helpers.isNumber = function (n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n };\n helpers.almostEquals = function (x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n };\n helpers.almostWhole = function (x, epsilon) {\n var rounded = Math.round(x);\n return (((rounded - epsilon) < x) && ((rounded + epsilon) > x));\n };\n helpers.max = function (array) {\n return array.reduce(function (max, value) {\n if (!isNaN(value)) {\n return Math.max(max, value);\n }\n return max;\n }, Number.NEGATIVE_INFINITY);\n };\n helpers.min = function (array) {\n return array.reduce(function (min, value) {\n if (!isNaN(value)) {\n return Math.min(min, value);\n }\n return min;\n }, Number.POSITIVE_INFINITY);\n };\n helpers.sign = Math.sign ?\n function (x) {\n return Math.sign(x);\n } :\n function (x) {\n x = +x; // convert to a number\n if (x === 0 || isNaN(x)) {\n return x;\n }\n return x > 0 ? 1 : -1;\n };\n helpers.log10 = Math.log10 ?\n function (x) {\n return Math.log10(x);\n } :\n function (x) {\n var exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\n // Check for whole powers of 10,\n // which due to floating point rounding error should be corrected.\n var powerOf10 = Math.round(exponent);\n var isPowerOf10 = x === Math.pow(10, powerOf10);\n\n return isPowerOf10 ? powerOf10 : exponent;\n };\n helpers.toRadians = function (degrees) {\n return degrees * (Math.PI / 180);\n };\n helpers.toDegrees = function (radians) {\n return radians * (180 / Math.PI);\n };\n // Gets the angle from vertical upright to the point about a centre.\n helpers.getAngleFromPoint = function (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\n var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < (-0.5 * Math.PI)) {\n angle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n\n return {\n angle: angle,\n distance: radialDistanceFromCenter\n };\n };\n helpers.distanceBetweenPoints = function (pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n };\n helpers.aliasPixel = function (pixelWidth) {\n return (pixelWidth % 2 === 0) ? 0 : 0.5;\n };\n helpers.splineCurve = function (firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n // This function must also respect \"skipped\" points\n\n var previous = firstPoint.skip ? middlePoint : firstPoint;\n var current = middlePoint;\n var next = afterPoint.skip ? middlePoint : afterPoint;\n\n var d01 = Math.sqrt(Math.pow(current.x - previous.x, 2) + Math.pow(current.y - previous.y, 2));\n var d12 = Math.sqrt(Math.pow(next.x - current.x, 2) + Math.pow(next.y - current.y, 2));\n\n var s01 = d01 / (d01 + d12);\n var s12 = d12 / (d01 + d12);\n\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n\n var fa = t * s01; // scaling factor for triangle Ta\n var fb = t * s12;\n\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 helpers.EPSILON = Number.EPSILON || 1e-14;\n helpers.splineCurveMonotone = function (points) {\n // This function calculates Bézier control points in a similar way than |splineCurve|,\n // but preserves monotonicity of the provided data and ensures no local extremums are added\n // between the dataset discrete points due to the interpolation.\n // See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n\n var pointsWithTangents = (points || []).map(function (point) {\n return {\n model: point._model,\n deltaK: 0,\n mK: 0\n };\n });\n\n // Calculate slopes (deltaK) and initialize tangents (mK)\n var pointsLen = pointsWithTangents.length;\n var i, pointBefore, pointCurrent, pointAfter;\n for (i = 0; i < pointsLen; ++i) {\n pointCurrent = pointsWithTangents[i];\n if (pointCurrent.model.skip) {\n continue;\n }\n\n pointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n pointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n if (pointAfter && !pointAfter.model.skip) {\n var slopeDeltaX = (pointAfter.model.x - pointCurrent.model.x);\n\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n pointCurrent.deltaK = slopeDeltaX !== 0 ? (pointAfter.model.y - pointCurrent.model.y) / slopeDeltaX : 0;\n }\n\n if (!pointBefore || pointBefore.model.skip) {\n pointCurrent.mK = pointCurrent.deltaK;\n } else if (!pointAfter || pointAfter.model.skip) {\n pointCurrent.mK = pointBefore.deltaK;\n } else if (this.sign(pointBefore.deltaK) !== this.sign(pointCurrent.deltaK)) {\n pointCurrent.mK = 0;\n } else {\n pointCurrent.mK = (pointBefore.deltaK + pointCurrent.deltaK) / 2;\n }\n }\n\n // Adjust tangents to ensure monotonic properties\n var alphaK, betaK, tauK, squaredMagnitude;\n for (i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointsWithTangents[i];\n pointAfter = pointsWithTangents[i + 1];\n if (pointCurrent.model.skip || pointAfter.model.skip) {\n continue;\n }\n\n if (helpers.almostEquals(pointCurrent.deltaK, 0, this.EPSILON)) {\n pointCurrent.mK = pointAfter.mK = 0;\n continue;\n }\n\n alphaK = pointCurrent.mK / pointCurrent.deltaK;\n betaK = pointAfter.mK / pointCurrent.deltaK;\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n pointCurrent.mK = alphaK * tauK * pointCurrent.deltaK;\n pointAfter.mK = betaK * tauK * pointCurrent.deltaK;\n }\n\n // Compute control points\n var deltaX;\n for (i = 0; i < pointsLen; ++i) {\n pointCurrent = pointsWithTangents[i];\n if (pointCurrent.model.skip) {\n continue;\n }\n\n pointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n pointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n if (pointBefore && !pointBefore.model.skip) {\n deltaX = (pointCurrent.model.x - pointBefore.model.x) / 3;\n pointCurrent.model.controlPointPreviousX = pointCurrent.model.x - deltaX;\n pointCurrent.model.controlPointPreviousY = pointCurrent.model.y - deltaX * pointCurrent.mK;\n }\n if (pointAfter && !pointAfter.model.skip) {\n deltaX = (pointAfter.model.x - pointCurrent.model.x) / 3;\n pointCurrent.model.controlPointNextX = pointCurrent.model.x + deltaX;\n pointCurrent.model.controlPointNextY = pointCurrent.model.y + deltaX * pointCurrent.mK;\n }\n }\n };\n helpers.nextItem = function (collection, index, loop) {\n if (loop) {\n return index >= collection.length - 1 ? collection[0] : collection[index + 1];\n }\n return index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1];\n };\n helpers.previousItem = function (collection, index, loop) {\n if (loop) {\n return index <= 0 ? collection[collection.length - 1] : collection[index - 1];\n }\n return index <= 0 ? collection[0] : collection[index - 1];\n };\n // Implementation of the nice number algorithm used in determining where axis labels will go\n helpers.niceNum = function (range, round) {\n var exponent = Math.floor(helpers.log10(range));\n var fraction = range / Math.pow(10, exponent);\n var niceFraction;\n\n if (round) {\n if (fraction < 1.5) {\n niceFraction = 1;\n } else if (fraction < 3) {\n niceFraction = 2;\n } else if (fraction < 7) {\n niceFraction = 5;\n } else {\n niceFraction = 10;\n }\n } else if (fraction <= 1.0) {\n niceFraction = 1;\n } else if (fraction <= 2) {\n niceFraction = 2;\n } else if (fraction <= 5) {\n niceFraction = 5;\n } else {\n niceFraction = 10;\n }\n\n return niceFraction * Math.pow(10, exponent);\n };\n // Request animation polyfill - http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\n helpers.requestAnimFrame = (function () {\n if (typeof window === 'undefined') {\n return function (callback) {\n callback();\n };\n }\n return window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function (callback) {\n return window.setTimeout(callback, 1000 / 60);\n };\n }());\n // -- DOM methods\n helpers.getRelativePosition = function (evt, chart) {\n var mouseX, mouseY;\n var e = evt.originalEvent || evt;\n var canvas = evt.currentTarget || evt.srcElement;\n var boundingRect = canvas.getBoundingClientRect();\n\n var touches = e.touches;\n if (touches && touches.length > 0) {\n mouseX = touches[0].clientX;\n mouseY = touches[0].clientY;\n\n } else {\n mouseX = e.clientX;\n mouseY = e.clientY;\n }\n\n // Scale mouse coordinates into canvas coordinates\n // by following the pattern laid out by 'jerryj' in the comments of\n // http://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/\n var paddingLeft = parseFloat(helpers.getStyle(canvas, 'padding-left'));\n var paddingTop = parseFloat(helpers.getStyle(canvas, 'padding-top'));\n var paddingRight = parseFloat(helpers.getStyle(canvas, 'padding-right'));\n var paddingBottom = parseFloat(helpers.getStyle(canvas, 'padding-bottom'));\n var width = boundingRect.right - boundingRect.left - paddingLeft - paddingRight;\n var height = boundingRect.bottom - boundingRect.top - paddingTop - paddingBottom;\n\n // We divide by the current device pixel ratio, because the canvas is scaled up by that amount in each direction. However\n // the backend model is in unscaled coordinates. Since we are going to deal with our model coordinates, we go back here\n mouseX = Math.round((mouseX - boundingRect.left - paddingLeft) / (width) * canvas.width / chart.currentDevicePixelRatio);\n mouseY = Math.round((mouseY - boundingRect.top - paddingTop) / (height) * canvas.height / chart.currentDevicePixelRatio);\n\n return {\n x: mouseX,\n y: mouseY\n };\n\n };\n\n // Private helper function to convert max-width/max-height values that may be percentages into a number\n function parseMaxStyle(styleValue, node, parentProperty) {\n var valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n }\n\n /**\n * Returns if the given value contains an effective constraint.\n * @private\n */\n function isConstrainedValue(value) {\n return value !== undefined && value !== null && value !== 'none';\n }\n\n // Private helper to get a constraint dimension\n // @param domNode : the node to check the constraint on\n // @param maxStyle : the style that defines the maximum for the direction we are using (maxWidth / maxHeight)\n // @param percentageProperty : property of parent to use when calculating width as a percentage\n // @see http://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser\n function getConstraintDimension(domNode, maxStyle, percentageProperty) {\n var view = document.defaultView;\n var parentNode = domNode.parentNode;\n var constrainedNode = view.getComputedStyle(domNode)[maxStyle];\n var constrainedContainer = view.getComputedStyle(parentNode)[maxStyle];\n var hasCNode = isConstrainedValue(constrainedNode);\n var hasCContainer = isConstrainedValue(constrainedContainer);\n var infinity = Number.POSITIVE_INFINITY;\n\n if (hasCNode || hasCContainer) {\n return Math.min(\n hasCNode ? parseMaxStyle(constrainedNode, domNode, percentageProperty) : infinity,\n hasCContainer ? parseMaxStyle(constrainedContainer, parentNode, percentageProperty) : infinity);\n }\n\n return 'none';\n }\n\n // returns Number or undefined if no constraint\n helpers.getConstraintWidth = function (domNode) {\n return getConstraintDimension(domNode, 'max-width', 'clientWidth');\n };\n // returns Number or undefined if no constraint\n helpers.getConstraintHeight = function (domNode) {\n return getConstraintDimension(domNode, 'max-height', 'clientHeight');\n };\n helpers.getMaximumWidth = function (domNode) {\n var container = domNode.parentNode;\n if (!container) {\n return domNode.clientWidth;\n }\n\n var paddingLeft = parseInt(helpers.getStyle(container, 'padding-left'), 10);\n var paddingRight = parseInt(helpers.getStyle(container, 'padding-right'), 10);\n var w = container.clientWidth - paddingLeft - paddingRight;\n var cw = helpers.getConstraintWidth(domNode);\n return isNaN(cw) ? w : Math.min(w, cw);\n };\n helpers.getMaximumHeight = function (domNode) {\n var container = domNode.parentNode;\n if (!container) {\n return domNode.clientHeight;\n }\n\n var paddingTop = parseInt(helpers.getStyle(container, 'padding-top'), 10);\n var paddingBottom = parseInt(helpers.getStyle(container, 'padding-bottom'), 10);\n var h = container.clientHeight - paddingTop - paddingBottom;\n var ch = helpers.getConstraintHeight(domNode);\n return isNaN(ch) ? h : Math.min(h, ch);\n };\n helpers.getStyle = function (el, property) {\n return el.currentStyle ?\n el.currentStyle[property] :\n document.defaultView.getComputedStyle(el, null).getPropertyValue(property);\n };\n helpers.retinaScale = function (chart, forceRatio) {\n var pixelRatio = chart.currentDevicePixelRatio = forceRatio || window.devicePixelRatio || 1;\n if (pixelRatio === 1) {\n return;\n }\n\n var canvas = chart.canvas;\n var height = chart.height;\n var width = chart.width;\n\n canvas.height = height * pixelRatio;\n canvas.width = width * pixelRatio;\n chart.ctx.scale(pixelRatio, pixelRatio);\n\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (!canvas.style.height && !canvas.style.width) {\n canvas.style.height = height + 'px';\n canvas.style.width = width + 'px';\n }\n };\n // -- Canvas methods\n helpers.fontString = function (pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n };\n helpers.longestText = function (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.font = font;\n var longest = 0;\n helpers.each(arrayOfThings, function (thing) {\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && helpers.isArray(thing) !== true) {\n longest = helpers.measureText(ctx, data, gc, longest, thing);\n } else if (helpers.isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n helpers.each(thing, function (nestedThing) {\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !helpers.isArray(nestedThing)) {\n longest = helpers.measureText(ctx, data, gc, longest, nestedThing);\n }\n });\n }\n });\n\n var gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (var i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n };\n helpers.measureText = function (ctx, data, gc, longest, string) {\n var 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 };\n helpers.numberOfLabelLines = function (arrayOfThings) {\n var numberOfLines = 1;\n helpers.each(arrayOfThings, function (thing) {\n if (helpers.isArray(thing)) {\n if (thing.length > numberOfLines) {\n numberOfLines = thing.length;\n }\n }\n });\n return numberOfLines;\n };\n\n helpers.color = !color ?\n function (value) {\n console.error('Color.js not found!');\n return value;\n } :\n function (value) {\n /* global CanvasGradient */\n if (value instanceof CanvasGradient) {\n value = defaults.global.defaultColor;\n }\n\n return color(value);\n };\n\n helpers.getHoverColor = function (colorValue) {\n /* global CanvasPattern */\n return (colorValue instanceof CanvasPattern) ?\n colorValue :\n helpers.color(colorValue).saturate(0.5).darken(0.1).rgbString();\n };\n };\n\n }, {'25': 25, '3': 3, '45': 45}], 28: [function (require, module, exports) {\n 'use strict';\n\n var helpers = require(45);\n\n /**\n * Helper function to get relative position for an event\n * @param {Event|IEvent} event - The event to get the position for\n * @param {Chart} chart - The chart\n * @returns {Point} the event position\n */\n function getRelativePosition(e, chart) {\n if (e.native) {\n return {\n x: e.x,\n y: e.y\n };\n }\n\n return helpers.getRelativePosition(e, chart);\n }\n\n /**\n * Helper function to traverse all of the visible elements in the chart\n * @param chart {chart} the chart\n * @param handler {Function} the callback to execute for each visible item\n */\n function parseVisibleItems(chart, handler) {\n var datasets = chart.data.datasets;\n var meta, i, j, ilen, jlen;\n\n for (i = 0, ilen = datasets.length; i < ilen; ++i) {\n if (!chart.isDatasetVisible(i)) {\n continue;\n }\n\n meta = chart.getDatasetMeta(i);\n for (j = 0, jlen = meta.data.length; j < jlen; ++j) {\n var element = meta.data[j];\n if (!element._view.skip) {\n handler(element);\n }\n }\n }\n }\n\n /**\n * Helper function to get the items that intersect the event position\n * @param items {ChartElement[]} elements to filter\n * @param position {Point} the point to be nearest to\n * @return {ChartElement[]} the nearest items\n */\n function getIntersectItems(chart, position) {\n var elements = [];\n\n parseVisibleItems(chart, function (element) {\n if (element.inRange(position.x, position.y)) {\n elements.push(element);\n }\n });\n\n return elements;\n }\n\n /**\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\n * @param chart {Chart} the chart to look at elements from\n * @param position {Point} the point to be nearest to\n * @param intersect {Boolean} if true, only consider items that intersect the position\n * @param distanceMetric {Function} function to provide the distance between points\n * @return {ChartElement[]} the nearest items\n */\n function getNearestItems(chart, position, intersect, distanceMetric) {\n var minDistance = Number.POSITIVE_INFINITY;\n var nearestItems = [];\n\n parseVisibleItems(chart, function (element) {\n if (intersect && !element.inRange(position.x, position.y)) {\n return;\n }\n\n var center = element.getCenterPoint();\n var distance = distanceMetric(position, center);\n\n if (distance < minDistance) {\n nearestItems = [element];\n minDistance = distance;\n } else if (distance === minDistance) {\n // Can have multiple items at the same distance in which case we sort by size\n nearestItems.push(element);\n }\n });\n\n return nearestItems;\n }\n\n /**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {String} axis the axis mode. x|y|xy\n */\n function getDistanceMetricForAxis(axis) {\n var useX = axis.indexOf('x') !== -1;\n var useY = axis.indexOf('y') !== -1;\n\n return function (pt1, pt2) {\n var deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n var deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n }\n\n function indexMode(chart, e, options) {\n var position = getRelativePosition(e, chart);\n // Default axis for index mode is 'x' to match old behaviour\n options.axis = options.axis || 'x';\n var distanceMetric = getDistanceMetricForAxis(options.axis);\n var items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n var elements = [];\n\n if (!items.length) {\n return [];\n }\n\n chart.data.datasets.forEach(function (dataset, datasetIndex) {\n if (chart.isDatasetVisible(datasetIndex)) {\n var meta = chart.getDatasetMeta(datasetIndex);\n var element = meta.data[items[0]._index];\n\n // don't count items that are skipped (null data)\n if (element && !element._view.skip) {\n elements.push(element);\n }\n }\n });\n\n return elements;\n }\n\n /**\n * @interface IInteractionOptions\n */\n /**\n * If true, only consider items that intersect the point\n * @name IInterfaceOptions#boolean\n * @type Boolean\n */\n\n /**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\n module.exports = {\n // Helper function for different modes\n modes: {\n single: function (chart, e) {\n var position = getRelativePosition(e, chart);\n var elements = [];\n\n parseVisibleItems(chart, function (element) {\n if (element.inRange(position.x, position.y)) {\n elements.push(element);\n return elements;\n }\n });\n\n return elements.slice(0, 1);\n },\n\n /**\n * @function Chart.Interaction.modes.label\n * @deprecated since version 2.4.0\n * @todo remove at version 3\n * @private\n */\n label: indexMode,\n\n /**\n * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n * @function Chart.Interaction.modes.index\n * @since v2.4.0\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @param options {IInteractionOptions} options to use during interaction\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n index: indexMode,\n\n /**\n * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n * If the options.intersect is false, we find the nearest item and return the items in that dataset\n * @function Chart.Interaction.modes.dataset\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @param options {IInteractionOptions} options to use during interaction\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n dataset: function (chart, e, options) {\n var position = getRelativePosition(e, chart);\n options.axis = options.axis || 'xy';\n var distanceMetric = getDistanceMetricForAxis(options.axis);\n var items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n if (items.length > 0) {\n items = chart.getDatasetMeta(items[0]._datasetIndex).data;\n }\n\n return items;\n },\n\n /**\n * @function Chart.Interaction.modes.x-axis\n * @deprecated since version 2.4.0. Use index mode and intersect == true\n * @todo remove at version 3\n * @private\n */\n 'x-axis': function (chart, e) {\n return indexMode(chart, e, {intersect: false});\n },\n\n /**\n * Point mode returns all elements that hit test based on the event position\n * of the event\n * @function Chart.Interaction.modes.intersect\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n point: function (chart, e) {\n var position = getRelativePosition(e, chart);\n return getIntersectItems(chart, position);\n },\n\n /**\n * nearest mode returns the element closest to the point\n * @function Chart.Interaction.modes.intersect\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @param options {IInteractionOptions} options to use\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n nearest: function (chart, e, options) {\n var position = getRelativePosition(e, chart);\n options.axis = options.axis || 'xy';\n var distanceMetric = getDistanceMetricForAxis(options.axis);\n var nearestItems = getNearestItems(chart, position, options.intersect, distanceMetric);\n\n // We have multiple items at the same distance from the event. Now sort by smallest\n if (nearestItems.length > 1) {\n nearestItems.sort(function (a, b) {\n var sizeA = a.getArea();\n var sizeB = b.getArea();\n var ret = sizeA - sizeB;\n\n if (ret === 0) {\n // if equal sort by dataset index\n ret = a._datasetIndex - b._datasetIndex;\n }\n\n return ret;\n });\n }\n\n // Return only 1 item\n return nearestItems.slice(0, 1);\n },\n\n /**\n * x mode returns the elements that hit-test at the current x coordinate\n * @function Chart.Interaction.modes.x\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @param options {IInteractionOptions} options to use\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n x: function (chart, e, options) {\n var position = getRelativePosition(e, chart);\n var items = [];\n var intersectsItem = false;\n\n parseVisibleItems(chart, function (element) {\n if (element.inXRange(position.x)) {\n items.push(element);\n }\n\n if (element.inRange(position.x, position.y)) {\n intersectsItem = true;\n }\n });\n\n // If we want to trigger on an intersect and we don't have any items\n // that intersect the position, return nothing\n if (options.intersect && !intersectsItem) {\n items = [];\n }\n return items;\n },\n\n /**\n * y mode returns the elements that hit-test at the current y coordinate\n * @function Chart.Interaction.modes.y\n * @param chart {chart} the chart we are returning items from\n * @param e {Event} the event we are find things at\n * @param options {IInteractionOptions} options to use\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n */\n y: function (chart, e, options) {\n var position = getRelativePosition(e, chart);\n var items = [];\n var intersectsItem = false;\n\n parseVisibleItems(chart, function (element) {\n if (element.inYRange(position.y)) {\n items.push(element);\n }\n\n if (element.inRange(position.x, position.y)) {\n intersectsItem = true;\n }\n });\n\n // If we want to trigger on an intersect and we don't have any items\n // that intersect the position, return nothing\n if (options.intersect && !intersectsItem) {\n items = [];\n }\n return items;\n }\n }\n };\n\n }, {'45': 45}], 29: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n\n defaults._set('global', {\n responsive: true,\n responsiveAnimationDuration: 0,\n maintainAspectRatio: true,\n events: ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'],\n hover: {\n onHover: null,\n mode: 'nearest',\n intersect: true,\n animationDuration: 400\n },\n onClick: null,\n defaultColor: 'rgba(0,0,0,0.1)',\n defaultFontColor: '#666',\n defaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n defaultFontSize: 12,\n defaultFontStyle: 'normal',\n showLines: true,\n\n // Element defaults defined in element extensions\n elements: {},\n\n // Layout options such as padding\n layout: {\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n }\n });\n\n module.exports = function () {\n\n // Occupy the global variable of Chart, and create a simple base class\n var Chart = function (item, config) {\n this.construct(item, config);\n return this;\n };\n\n Chart.Chart = Chart;\n\n return Chart;\n };\n\n }, {'25': 25}], 30: [function (require, module, exports) {\n 'use strict';\n\n var helpers = require(45);\n\n function filterByPosition(array, position) {\n return helpers.where(array, function (v) {\n return v.position === position;\n });\n }\n\n function sortByWeight(array, reverse) {\n array.forEach(function (v, i) {\n v._tmpIndex_ = i;\n return v;\n });\n array.sort(function (a, b) {\n var v0 = reverse ? b : a;\n var v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0._tmpIndex_ - v1._tmpIndex_ :\n v0.weight - v1.weight;\n });\n array.forEach(function (v) {\n delete v._tmpIndex_;\n });\n }\n\n /**\n * @interface ILayoutItem\n * @prop {String} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {Number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {Boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\n * @prop {Function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {Function} update - Takes two parameters: width and height. Returns size of item\n * @prop {Function} getPadding - Returns an object with padding on the edges\n * @prop {Number} width - Width of item. Must be valid after update()\n * @prop {Number} height - Height of item. Must be valid after update()\n * @prop {Number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\n module.exports = {\n defaults: {},\n\n /**\n * Register a box to a chart.\n * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n * @param {Chart} chart - the chart to use\n * @param {ILayoutItem} item - the item to add to be layed out\n */\n addBox: function (chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n\n // initialize item with default values\n item.fullWidth = item.fullWidth || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n\n chart.boxes.push(item);\n },\n\n /**\n * Remove a layoutItem from a chart\n * @param {Chart} chart - the chart to remove the box from\n * @param {Object} layoutItem - the item to remove from the layout\n */\n removeBox: function (chart, layoutItem) {\n var index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n\n /**\n * Sets (or updates) options on the given `item`.\n * @param {Chart} chart - the chart in which the item lives (or will be added to)\n * @param {Object} item - the item to configure with the given options\n * @param {Object} options - the new item options.\n */\n configure: function (chart, item, options) {\n var props = ['fullWidth', 'position', 'weight'];\n var ilen = props.length;\n var i = 0;\n var prop;\n\n for (; i < ilen; ++i) {\n prop = props[i];\n if (options.hasOwnProperty(prop)) {\n item[prop] = options[prop];\n }\n }\n },\n\n /**\n * Fits boxes of the given chart into the given size by having each box measure itself\n * then running a fitting algorithm\n * @param {Chart} chart - the chart\n * @param {Number} width - the width to fit into\n * @param {Number} height - the height to fit into\n */\n update: function (chart, width, height) {\n if (!chart) {\n return;\n }\n\n var layoutOptions = chart.options.layout || {};\n var padding = helpers.options.toPadding(layoutOptions.padding);\n var leftPadding = padding.left;\n var rightPadding = padding.right;\n var topPadding = padding.top;\n var bottomPadding = padding.bottom;\n\n var leftBoxes = filterByPosition(chart.boxes, 'left');\n var rightBoxes = filterByPosition(chart.boxes, 'right');\n var topBoxes = filterByPosition(chart.boxes, 'top');\n var bottomBoxes = filterByPosition(chart.boxes, 'bottom');\n var chartAreaBoxes = filterByPosition(chart.boxes, 'chartArea');\n\n // Sort boxes by weight. A higher weight is further away from the chart area\n sortByWeight(leftBoxes, true);\n sortByWeight(rightBoxes, false);\n sortByWeight(topBoxes, true);\n sortByWeight(bottomBoxes, false);\n\n // Essentially we now have any number of boxes on each of the 4 sides.\n // Our canvas looks like the following.\n // The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n // B1 is the bottom axis\n // There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n // These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n // an error will be thrown.\n //\n // |----------------------------------------------------|\n // | T1 (Full Width) |\n // |----------------------------------------------------|\n // | | | T2 | |\n // | |----|-------------------------------------|----|\n // | | | C1 | | C2 | |\n // | | |----| |----| |\n // | | | | |\n // | L1 | L2 | ChartArea (C0) | R1 |\n // | | | | |\n // | | |----| |----| |\n // | | | C3 | | C4 | |\n // | |----|-------------------------------------|----|\n // | | | B1 | |\n // |----------------------------------------------------|\n // | B2 (Full Width) |\n // |----------------------------------------------------|\n //\n // What we do to find the best sizing, we do the following\n // 1. Determine the minimum size of the chart area.\n // 2. Split the remaining width equally between each vertical axis\n // 3. Split the remaining height equally between each horizontal axis\n // 4. Give each layout the maximum size it can be. The layout will return it's minimum size\n // 5. Adjust the sizes of each axis based on it's minimum reported size.\n // 6. Refit each axis\n // 7. Position each axis in the final location\n // 8. Tell the chart the final location of the chart area\n // 9. Tell any axes that overlay the chart area the positions of the chart area\n\n // Step 1\n var chartWidth = width - leftPadding - rightPadding;\n var chartHeight = height - topPadding - bottomPadding;\n var chartAreaWidth = chartWidth / 2; // min 50%\n var chartAreaHeight = chartHeight / 2; // min 50%\n\n // Step 2\n var verticalBoxWidth = (width - chartAreaWidth) / (leftBoxes.length + rightBoxes.length);\n\n // Step 3\n var horizontalBoxHeight = (height - chartAreaHeight) / (topBoxes.length + bottomBoxes.length);\n\n // Step 4\n var maxChartAreaWidth = chartWidth;\n var maxChartAreaHeight = chartHeight;\n var minBoxSizes = [];\n\n function getMinimumBoxSize(box) {\n var minSize;\n var isHorizontal = box.isHorizontal();\n\n if (isHorizontal) {\n minSize = box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, horizontalBoxHeight);\n maxChartAreaHeight -= minSize.height;\n } else {\n minSize = box.update(verticalBoxWidth, maxChartAreaHeight);\n maxChartAreaWidth -= minSize.width;\n }\n\n minBoxSizes.push({\n horizontal: isHorizontal,\n minSize: minSize,\n box: box,\n });\n }\n\n helpers.each(leftBoxes.concat(rightBoxes, topBoxes, bottomBoxes), getMinimumBoxSize);\n\n // If a horizontal box has padding, we move the left boxes over to avoid ugly charts (see issue #2478)\n var maxHorizontalLeftPadding = 0;\n var maxHorizontalRightPadding = 0;\n var maxVerticalTopPadding = 0;\n var maxVerticalBottomPadding = 0;\n\n helpers.each(topBoxes.concat(bottomBoxes), function (horizontalBox) {\n if (horizontalBox.getPadding) {\n var boxPadding = horizontalBox.getPadding();\n maxHorizontalLeftPadding = Math.max(maxHorizontalLeftPadding, boxPadding.left);\n maxHorizontalRightPadding = Math.max(maxHorizontalRightPadding, boxPadding.right);\n }\n });\n\n helpers.each(leftBoxes.concat(rightBoxes), function (verticalBox) {\n if (verticalBox.getPadding) {\n var boxPadding = verticalBox.getPadding();\n maxVerticalTopPadding = Math.max(maxVerticalTopPadding, boxPadding.top);\n maxVerticalBottomPadding = Math.max(maxVerticalBottomPadding, boxPadding.bottom);\n }\n });\n\n // At this point, maxChartAreaHeight and maxChartAreaWidth are the size the chart area could\n // be if the axes are drawn at their minimum sizes.\n // Steps 5 & 6\n var totalLeftBoxesWidth = leftPadding;\n var totalRightBoxesWidth = rightPadding;\n var totalTopBoxesHeight = topPadding;\n var totalBottomBoxesHeight = bottomPadding;\n\n // Function to fit a box\n function fitBox(box) {\n var minBoxSize = helpers.findNextWhere(minBoxSizes, function (minBox) {\n return minBox.box === box;\n });\n\n if (minBoxSize) {\n if (box.isHorizontal()) {\n var scaleMargin = {\n left: Math.max(totalLeftBoxesWidth, maxHorizontalLeftPadding),\n right: Math.max(totalRightBoxesWidth, maxHorizontalRightPadding),\n top: 0,\n bottom: 0\n };\n\n // Don't use min size here because of label rotation. When the labels are rotated, their rotation highly depends\n // on the margin. Sometimes they need to increase in size slightly\n box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, chartHeight / 2, scaleMargin);\n } else {\n box.update(minBoxSize.minSize.width, maxChartAreaHeight);\n }\n }\n }\n\n // Update, and calculate the left and right margins for the horizontal boxes\n helpers.each(leftBoxes.concat(rightBoxes), fitBox);\n\n helpers.each(leftBoxes, function (box) {\n totalLeftBoxesWidth += box.width;\n });\n\n helpers.each(rightBoxes, function (box) {\n totalRightBoxesWidth += box.width;\n });\n\n // Set the Left and Right margins for the horizontal boxes\n helpers.each(topBoxes.concat(bottomBoxes), fitBox);\n\n // Figure out how much margin is on the top and bottom of the vertical boxes\n helpers.each(topBoxes, function (box) {\n totalTopBoxesHeight += box.height;\n });\n\n helpers.each(bottomBoxes, function (box) {\n totalBottomBoxesHeight += box.height;\n });\n\n function finalFitVerticalBox(box) {\n var minBoxSize = helpers.findNextWhere(minBoxSizes, function (minSize) {\n return minSize.box === box;\n });\n\n var scaleMargin = {\n left: 0,\n right: 0,\n top: totalTopBoxesHeight,\n bottom: totalBottomBoxesHeight\n };\n\n if (minBoxSize) {\n box.update(minBoxSize.minSize.width, maxChartAreaHeight, scaleMargin);\n }\n }\n\n // Let the left layout know the final margin\n helpers.each(leftBoxes.concat(rightBoxes), finalFitVerticalBox);\n\n // Recalculate because the size of each layout might have changed slightly due to the margins (label rotation for instance)\n totalLeftBoxesWidth = leftPadding;\n totalRightBoxesWidth = rightPadding;\n totalTopBoxesHeight = topPadding;\n totalBottomBoxesHeight = bottomPadding;\n\n helpers.each(leftBoxes, function (box) {\n totalLeftBoxesWidth += box.width;\n });\n\n helpers.each(rightBoxes, function (box) {\n totalRightBoxesWidth += box.width;\n });\n\n helpers.each(topBoxes, function (box) {\n totalTopBoxesHeight += box.height;\n });\n helpers.each(bottomBoxes, function (box) {\n totalBottomBoxesHeight += box.height;\n });\n\n // We may be adding some padding to account for rotated x axis labels\n var leftPaddingAddition = Math.max(maxHorizontalLeftPadding - totalLeftBoxesWidth, 0);\n totalLeftBoxesWidth += leftPaddingAddition;\n totalRightBoxesWidth += Math.max(maxHorizontalRightPadding - totalRightBoxesWidth, 0);\n\n var topPaddingAddition = Math.max(maxVerticalTopPadding - totalTopBoxesHeight, 0);\n totalTopBoxesHeight += topPaddingAddition;\n totalBottomBoxesHeight += Math.max(maxVerticalBottomPadding - totalBottomBoxesHeight, 0);\n\n // Figure out if our chart area changed. This would occur if the dataset layout label rotation\n // changed due to the application of the margins in step 6. Since we can only get bigger, this is safe to do\n // without calling `fit` again\n var newMaxChartAreaHeight = height - totalTopBoxesHeight - totalBottomBoxesHeight;\n var newMaxChartAreaWidth = width - totalLeftBoxesWidth - totalRightBoxesWidth;\n\n if (newMaxChartAreaWidth !== maxChartAreaWidth || newMaxChartAreaHeight !== maxChartAreaHeight) {\n helpers.each(leftBoxes, function (box) {\n box.height = newMaxChartAreaHeight;\n });\n\n helpers.each(rightBoxes, function (box) {\n box.height = newMaxChartAreaHeight;\n });\n\n helpers.each(topBoxes, function (box) {\n if (!box.fullWidth) {\n box.width = newMaxChartAreaWidth;\n }\n });\n\n helpers.each(bottomBoxes, function (box) {\n if (!box.fullWidth) {\n box.width = newMaxChartAreaWidth;\n }\n });\n\n maxChartAreaHeight = newMaxChartAreaHeight;\n maxChartAreaWidth = newMaxChartAreaWidth;\n }\n\n // Step 7 - Position the boxes\n var left = leftPadding + leftPaddingAddition;\n var top = topPadding + topPaddingAddition;\n\n function placeBox(box) {\n if (box.isHorizontal()) {\n box.left = box.fullWidth ? leftPadding : totalLeftBoxesWidth;\n box.right = box.fullWidth ? width - rightPadding : totalLeftBoxesWidth + maxChartAreaWidth;\n box.top = top;\n box.bottom = top + box.height;\n\n // Move to next point\n top = box.bottom;\n\n } else {\n\n box.left = left;\n box.right = left + box.width;\n box.top = totalTopBoxesHeight;\n box.bottom = totalTopBoxesHeight + maxChartAreaHeight;\n\n // Move to next point\n left = box.right;\n }\n }\n\n helpers.each(leftBoxes.concat(topBoxes), placeBox);\n\n // Account for chart width and height\n left += maxChartAreaWidth;\n top += maxChartAreaHeight;\n\n helpers.each(rightBoxes, placeBox);\n helpers.each(bottomBoxes, placeBox);\n\n // Step 8\n chart.chartArea = {\n left: totalLeftBoxesWidth,\n top: totalTopBoxesHeight,\n right: totalLeftBoxesWidth + maxChartAreaWidth,\n bottom: totalTopBoxesHeight + maxChartAreaHeight\n };\n\n // Step 9\n helpers.each(chartAreaBoxes, function (box) {\n box.left = chart.chartArea.left;\n box.top = chart.chartArea.top;\n box.right = chart.chartArea.right;\n box.bottom = chart.chartArea.bottom;\n\n box.update(maxChartAreaWidth, maxChartAreaHeight);\n });\n }\n };\n\n }, {'45': 45}], 31: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var helpers = require(45);\n\n defaults._set('global', {\n plugins: {}\n });\n\n /**\n * The plugin service singleton\n * @namespace Chart.plugins\n * @since 2.1.0\n */\n module.exports = {\n /**\n * Globally registered plugins.\n * @private\n */\n _plugins: [],\n\n /**\n * This identifier is used to invalidate the descriptors cache attached to each chart\n * when a global plugin is registered or unregistered. In this case, the cache ID is\n * incremented and descriptors are regenerated during following API calls.\n * @private\n */\n _cacheId: 0,\n\n /**\n * Registers the given plugin(s) if not already registered.\n * @param {Array|Object} plugins plugin instance(s).\n */\n register: function (plugins) {\n var p = this._plugins;\n ([]).concat(plugins).forEach(function (plugin) {\n if (p.indexOf(plugin) === -1) {\n p.push(plugin);\n }\n });\n\n this._cacheId++;\n },\n\n /**\n * Unregisters the given plugin(s) only if registered.\n * @param {Array|Object} plugins plugin instance(s).\n */\n unregister: function (plugins) {\n var p = this._plugins;\n ([]).concat(plugins).forEach(function (plugin) {\n var idx = p.indexOf(plugin);\n if (idx !== -1) {\n p.splice(idx, 1);\n }\n });\n\n this._cacheId++;\n },\n\n /**\n * Remove all registered plugins.\n * @since 2.1.5\n */\n clear: function () {\n this._plugins = [];\n this._cacheId++;\n },\n\n /**\n * Returns the number of registered plugins?\n * @returns {Number}\n * @since 2.1.5\n */\n count: function () {\n return this._plugins.length;\n },\n\n /**\n * Returns all registered plugin instances.\n * @returns {Array} array of plugin objects.\n * @since 2.1.5\n */\n getAll: function () {\n return this._plugins;\n },\n\n /**\n * Calls enabled plugins for `chart` on the specified hook and with the given args.\n * This method immediately returns as soon as a plugin explicitly returns false. The\n * returned value can be used, for instance, to interrupt the current action.\n * @param {Object} chart - The chart instance for which plugins should be called.\n * @param {String} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n * @param {Array} [args] - Extra arguments to apply to the hook call.\n * @returns {Boolean} false if any of the plugins return false, else returns true.\n */\n notify: function (chart, hook, args) {\n var descriptors = this.descriptors(chart);\n var ilen = descriptors.length;\n var i, descriptor, plugin, params, method;\n\n for (i = 0; i < ilen; ++i) {\n descriptor = descriptors[i];\n plugin = descriptor.plugin;\n method = plugin[hook];\n if (typeof method === 'function') {\n params = [chart].concat(args || []);\n params.push(descriptor.options);\n if (method.apply(plugin, params) === false) {\n return false;\n }\n }\n }\n\n return true;\n },\n\n /**\n * Returns descriptors of enabled plugins for the given chart.\n * @returns {Array} [{ plugin, options }]\n * @private\n */\n descriptors: function (chart) {\n var cache = chart.$plugins || (chart.$plugins = {});\n if (cache.id === this._cacheId) {\n return cache.descriptors;\n }\n\n var plugins = [];\n var descriptors = [];\n var config = (chart && chart.config) || {};\n var options = (config.options && config.options.plugins) || {};\n\n this._plugins.concat(config.plugins || []).forEach(function (plugin) {\n var idx = plugins.indexOf(plugin);\n if (idx !== -1) {\n return;\n }\n\n var id = plugin.id;\n var opts = options[id];\n if (opts === false) {\n return;\n }\n\n if (opts === true) {\n opts = helpers.clone(defaults.global.plugins[id]);\n }\n\n plugins.push(plugin);\n descriptors.push({\n plugin: plugin,\n options: opts || {}\n });\n });\n\n cache.descriptors = descriptors;\n cache.id = this._cacheId;\n return descriptors;\n },\n\n /**\n * Invalidates cache for the given chart: descriptors hold a reference on plugin option,\n * but in some cases, this reference can be changed by the user when updating options.\n * https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n * @private\n */\n _invalidate: function (chart) {\n delete chart.$plugins;\n }\n };\n\n /**\n * Plugin extension hooks.\n * @interface IPlugin\n * @since 2.1.0\n */\n /**\n * @method IPlugin#beforeInit\n * @desc Called before initializing `chart`.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#afterInit\n * @desc Called after `chart` has been initialized and before the first update.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeUpdate\n * @desc Called before updating `chart`. If any plugin returns `false`, the update\n * is cancelled (and thus subsequent render(s)) until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart update.\n */\n /**\n * @method IPlugin#afterUpdate\n * @desc Called after `chart` has been updated and before rendering. Note that this\n * hook will not be called if the chart update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeDatasetsUpdate\n * @desc Called before updating the `chart` datasets. If any plugin returns `false`,\n * the datasets update is cancelled until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} false to cancel the datasets update.\n * @since version 2.1.5\n */\n /**\n * @method IPlugin#afterDatasetsUpdate\n * @desc Called after the `chart` datasets have been updated. Note that this hook\n * will not be called if the datasets update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @since version 2.1.5\n */\n /**\n * @method IPlugin#beforeDatasetUpdate\n * @desc Called before updating the `chart` dataset at the given `args.index`. If any plugin\n * returns `false`, the datasets update is cancelled until another `update` is triggered.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n /**\n * @method IPlugin#afterDatasetUpdate\n * @desc Called after the `chart` datasets at the given `args.index` has been updated. Note\n * that this hook will not be called if the datasets update has been previously cancelled.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeLayout\n * @desc Called before laying out `chart`. If any plugin returns `false`,\n * the layout update is cancelled until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart layout.\n */\n /**\n * @method IPlugin#afterLayout\n * @desc Called after the `chart` has been layed out. Note that this hook will not\n * be called if the layout update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeRender\n * @desc Called before rendering `chart`. If any plugin returns `false`,\n * the rendering is cancelled until another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart rendering.\n */\n /**\n * @method IPlugin#afterRender\n * @desc Called after the `chart` has been fully rendered (and animation completed). Note\n * that this hook will not be called if the rendering has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeDraw\n * @desc Called before drawing `chart` at every animation frame specified by the given\n * easing value. If any plugin returns `false`, the frame drawing is cancelled until\n * another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart drawing.\n */\n /**\n * @method IPlugin#afterDraw\n * @desc Called after the `chart` has been drawn for the specific easing value. Note\n * that this hook will not be called if the drawing has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeDatasetsDraw\n * @desc Called before drawing the `chart` datasets. If any plugin returns `false`,\n * the datasets drawing is cancelled until another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n /**\n * @method IPlugin#afterDatasetsDraw\n * @desc Called after the `chart` datasets have been drawn. Note that this hook\n * will not be called if the datasets drawing has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeDatasetDraw\n * @desc Called before drawing the `chart` dataset at the given `args.index` (datasets\n * are drawn in the reverse order). If any plugin returns `false`, the datasets drawing\n * is cancelled until another `render` is triggered.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n /**\n * @method IPlugin#afterDatasetDraw\n * @desc Called after the `chart` datasets at the given `args.index` have been drawn\n * (datasets are drawn in the reverse order). Note that this hook will not be called\n * if the datasets drawing has been previously cancelled.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeTooltipDraw\n * @desc Called before drawing the `tooltip`. If any plugin returns `false`,\n * the tooltip drawing is cancelled until another `render` is triggered.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Object} args.tooltip - The tooltip.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart tooltip drawing.\n */\n /**\n * @method IPlugin#afterTooltipDraw\n * @desc Called after drawing the `tooltip`. Note that this hook will not\n * be called if the tooltip drawing has been previously cancelled.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Object} args.tooltip - The tooltip.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#beforeEvent\n * @desc Called before processing the specified `event`. If any plugin returns `false`,\n * the event will be discarded.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {IEvent} event - The event object.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#afterEvent\n * @desc Called after the `event` has been consumed. Note that this hook\n * will not be called if the `event` has been previously discarded.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {IEvent} event - The event object.\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#resize\n * @desc Called after the chart as been resized.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} size - The new canvas display size (eq. canvas.style width & height).\n * @param {Object} options - The plugin options.\n */\n /**\n * @method IPlugin#destroy\n * @desc Called after the chart as been destroyed.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n\n }, {'25': 25, '45': 45}], 32: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n var Ticks = require(34);\n\n defaults._set('scale', {\n display: true,\n position: 'left',\n offset: false,\n\n // grid line settings\n gridLines: {\n display: true,\n color: 'rgba(0, 0, 0, 0.1)',\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickMarkLength: 10,\n zeroLineWidth: 1,\n zeroLineColor: 'rgba(0,0,0,0.25)',\n zeroLineBorderDash: [],\n zeroLineBorderDashOffset: 0.0,\n offsetGridLines: false,\n borderDash: [],\n borderDashOffset: 0.0\n },\n\n // scale label\n scaleLabel: {\n // display property\n display: false,\n\n // actual label\n labelString: '',\n\n // line height\n lineHeight: 1.2,\n\n // top/bottom padding\n padding: {\n top: 4,\n bottom: 4\n }\n },\n\n // label settings\n ticks: {\n beginAtZero: false,\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n padding: 0,\n reverse: false,\n display: true,\n autoSkip: true,\n autoSkipPadding: 0,\n labelOffset: 0,\n // We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n callback: Ticks.formatters.values,\n minor: {},\n major: {}\n }\n });\n\n function labelsFromTicks(ticks) {\n var labels = [];\n var i, ilen;\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n labels.push(ticks[i].label);\n }\n\n return labels;\n }\n\n function getLineValue(scale, index, offsetGridLines) {\n var lineValue = scale.getPixelForTick(index);\n\n if (offsetGridLines) {\n if (index === 0) {\n lineValue -= (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n lineValue -= (lineValue - scale.getPixelForTick(index - 1)) / 2;\n }\n }\n return lineValue;\n }\n\n module.exports = function (Chart) {\n\n function computeTextSize(context, tick, font) {\n return helpers.isArray(tick) ?\n helpers.longestText(context, font, tick) :\n context.measureText(tick).width;\n }\n\n function parseFontOptions(options) {\n var valueOrDefault = helpers.valueOrDefault;\n var globalDefaults = defaults.global;\n var size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n var style = valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle);\n var family = valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily);\n\n return {\n size: size,\n style: style,\n family: family,\n font: helpers.fontString(size, style, family)\n };\n }\n\n function parseLineHeight(options) {\n return helpers.options.toLineHeight(\n helpers.valueOrDefault(options.lineHeight, 1.2),\n helpers.valueOrDefault(options.fontSize, defaults.global.defaultFontSize));\n }\n\n Chart.Scale = Element.extend({\n /**\n * Get the padding needed for the scale\n * @method getPadding\n * @private\n * @returns {Padding} the necessary padding\n */\n getPadding: function () {\n var me = this;\n return {\n left: me.paddingLeft || 0,\n top: me.paddingTop || 0,\n right: me.paddingRight || 0,\n bottom: me.paddingBottom || 0\n };\n },\n\n /**\n * Returns the scale tick objects ({label, major})\n * @since 2.7\n */\n getTicks: function () {\n return this._ticks;\n },\n\n // These methods are ordered by lifecyle. Utilities then follow.\n // Any function defined here is inherited by all scale types.\n // Any function can be extended by the scale type\n\n mergeTicksOptions: function () {\n var ticks = this.options.ticks;\n if (ticks.minor === false) {\n ticks.minor = {\n display: false\n };\n }\n if (ticks.major === false) {\n ticks.major = {\n display: false\n };\n }\n for (var key in ticks) {\n if (key !== 'major' && key !== 'minor') {\n if (typeof ticks.minor[key] === 'undefined') {\n ticks.minor[key] = ticks[key];\n }\n if (typeof ticks.major[key] === 'undefined') {\n ticks.major[key] = ticks[key];\n }\n }\n }\n },\n beforeUpdate: function () {\n helpers.callback(this.options.beforeUpdate, [this]);\n },\n update: function (maxWidth, maxHeight, margins) {\n var me = this;\n var i, ilen, labels, label, ticks, tick;\n\n // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n me.beforeUpdate();\n\n // Absorb the master measurements\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me.margins = helpers.extend({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n me.longestTextCache = me.longestTextCache || {};\n\n // Dimensions\n me.beforeSetDimensions();\n me.setDimensions();\n me.afterSetDimensions();\n\n // Data min/max\n me.beforeDataLimits();\n me.determineDataLimits();\n me.afterDataLimits();\n\n // Ticks - `this.ticks` is now DEPRECATED!\n // Internal ticks are now stored as objects in the PRIVATE `this._ticks` member\n // and must not be accessed directly from outside this class. `this.ticks` being\n // around for long time and not marked as private, we can't change its structure\n // without unexpected breaking changes. If you need to access the scale ticks,\n // use scale.getTicks() instead.\n\n me.beforeBuildTicks();\n\n // New implementations should return an array of objects but for BACKWARD COMPAT,\n // we still support no return (`this.ticks` internally set by calling this method).\n ticks = me.buildTicks() || [];\n\n me.afterBuildTicks();\n\n me.beforeTickToLabelConversion();\n\n // New implementations should return the formatted tick labels but for BACKWARD\n // COMPAT, we still support no return (`this.ticks` internally changed by calling\n // this method and supposed to contain only string values).\n labels = me.convertTicksToLabels(ticks) || me.ticks;\n\n me.afterTickToLabelConversion();\n\n me.ticks = labels; // BACKWARD COMPATIBILITY\n\n // IMPORTANT: from this point, we consider that `this.ticks` will NEVER change!\n\n // BACKWARD COMPAT: synchronize `_ticks` with labels (so potentially `this.ticks`)\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n label = labels[i];\n tick = ticks[i];\n if (!tick) {\n ticks.push(tick = {\n label: label,\n major: false\n });\n } else {\n tick.label = label;\n }\n }\n\n me._ticks = ticks;\n\n // Tick Rotation\n me.beforeCalculateTickRotation();\n me.calculateTickRotation();\n me.afterCalculateTickRotation();\n // Fit\n me.beforeFit();\n me.fit();\n me.afterFit();\n //\n me.afterUpdate();\n\n return me.minSize;\n\n },\n afterUpdate: function () {\n helpers.callback(this.options.afterUpdate, [this]);\n },\n\n //\n\n beforeSetDimensions: function () {\n helpers.callback(this.options.beforeSetDimensions, [this]);\n },\n setDimensions: function () {\n var me = this;\n // Set the unconstrained dimension before label rotation\n if (me.isHorizontal()) {\n // Reset position before calculating rotation\n me.width = me.maxWidth;\n me.left = 0;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n\n // Reset position before calculating rotation\n me.top = 0;\n me.bottom = me.height;\n }\n\n // Reset padding\n me.paddingLeft = 0;\n me.paddingTop = 0;\n me.paddingRight = 0;\n me.paddingBottom = 0;\n },\n afterSetDimensions: function () {\n helpers.callback(this.options.afterSetDimensions, [this]);\n },\n\n // Data limits\n beforeDataLimits: function () {\n helpers.callback(this.options.beforeDataLimits, [this]);\n },\n determineDataLimits: helpers.noop,\n afterDataLimits: function () {\n helpers.callback(this.options.afterDataLimits, [this]);\n },\n\n //\n beforeBuildTicks: function () {\n helpers.callback(this.options.beforeBuildTicks, [this]);\n },\n buildTicks: helpers.noop,\n afterBuildTicks: function () {\n helpers.callback(this.options.afterBuildTicks, [this]);\n },\n\n beforeTickToLabelConversion: function () {\n helpers.callback(this.options.beforeTickToLabelConversion, [this]);\n },\n convertTicksToLabels: function () {\n var me = this;\n // Convert ticks to strings\n var tickOpts = me.options.ticks;\n me.ticks = me.ticks.map(tickOpts.userCallback || tickOpts.callback, this);\n },\n afterTickToLabelConversion: function () {\n helpers.callback(this.options.afterTickToLabelConversion, [this]);\n },\n\n //\n\n beforeCalculateTickRotation: function () {\n helpers.callback(this.options.beforeCalculateTickRotation, [this]);\n },\n calculateTickRotation: function () {\n var me = this;\n var context = me.ctx;\n var tickOpts = me.options.ticks;\n var labels = labelsFromTicks(me._ticks);\n\n // Get the width of each grid by calculating the difference\n // between x offsets between 0 and 1.\n var tickFont = parseFontOptions(tickOpts);\n context.font = tickFont.font;\n\n var labelRotation = tickOpts.minRotation || 0;\n\n if (labels.length && me.options.display && me.isHorizontal()) {\n var originalLabelWidth = helpers.longestText(context, tickFont.font, labels, me.longestTextCache);\n var labelWidth = originalLabelWidth;\n var cosRotation, sinRotation;\n\n // Allow 3 pixels x2 padding either side for label readability\n var tickWidth = me.getPixelForTick(1) - me.getPixelForTick(0) - 6;\n\n // Max label rotation can be set or default to 90 - also act as a loop counter\n while (labelWidth > tickWidth && labelRotation < tickOpts.maxRotation) {\n var angleRadians = helpers.toRadians(labelRotation);\n cosRotation = Math.cos(angleRadians);\n sinRotation = Math.sin(angleRadians);\n\n if (sinRotation * originalLabelWidth > me.maxHeight) {\n // go back one step\n labelRotation--;\n break;\n }\n\n labelRotation++;\n labelWidth = cosRotation * originalLabelWidth;\n }\n }\n\n me.labelRotation = labelRotation;\n },\n afterCalculateTickRotation: function () {\n helpers.callback(this.options.afterCalculateTickRotation, [this]);\n },\n\n //\n\n beforeFit: function () {\n helpers.callback(this.options.beforeFit, [this]);\n },\n fit: function () {\n var me = this;\n // Reset\n var minSize = me.minSize = {\n width: 0,\n height: 0\n };\n\n var labels = labelsFromTicks(me._ticks);\n\n var opts = me.options;\n var tickOpts = opts.ticks;\n var scaleLabelOpts = opts.scaleLabel;\n var gridLineOpts = opts.gridLines;\n var display = opts.display;\n var isHorizontal = me.isHorizontal();\n\n var tickFont = parseFontOptions(tickOpts);\n var tickMarkLength = opts.gridLines.tickMarkLength;\n\n // Width\n if (isHorizontal) {\n // subtract the margins to line up with the chartArea if we are a full width scale\n minSize.width = me.isFullWidth() ? me.maxWidth - me.margins.left - me.margins.right : me.maxWidth;\n } else {\n minSize.width = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\n }\n\n // height\n if (isHorizontal) {\n minSize.height = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\n } else {\n minSize.height = me.maxHeight; // fill all the height\n }\n\n // Are we showing a title for the scale?\n if (scaleLabelOpts.display && display) {\n var scaleLabelLineHeight = parseLineHeight(scaleLabelOpts);\n var scaleLabelPadding = helpers.options.toPadding(scaleLabelOpts.padding);\n var deltaHeight = scaleLabelLineHeight + scaleLabelPadding.height;\n\n if (isHorizontal) {\n minSize.height += deltaHeight;\n } else {\n minSize.width += deltaHeight;\n }\n }\n\n // Don't bother fitting the ticks if we are not showing them\n if (tickOpts.display && display) {\n var largestTextWidth = helpers.longestText(me.ctx, tickFont.font, labels, me.longestTextCache);\n var tallestLabelHeightInLines = helpers.numberOfLabelLines(labels);\n var lineSpace = tickFont.size * 0.5;\n var tickPadding = me.options.ticks.padding;\n\n if (isHorizontal) {\n // A horizontal axis is more constrained by the height.\n me.longestLabelWidth = largestTextWidth;\n\n var angleRadians = helpers.toRadians(me.labelRotation);\n var cosRotation = Math.cos(angleRadians);\n var sinRotation = Math.sin(angleRadians);\n\n // TODO - improve this calculation\n var labelHeight = (sinRotation * largestTextWidth)\n + (tickFont.size * tallestLabelHeightInLines)\n + (lineSpace * (tallestLabelHeightInLines - 1))\n + lineSpace; // padding\n\n minSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);\n\n me.ctx.font = tickFont.font;\n var firstLabelWidth = computeTextSize(me.ctx, labels[0], tickFont.font);\n var lastLabelWidth = computeTextSize(me.ctx, labels[labels.length - 1], tickFont.font);\n\n // Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n // which means that the right padding is dominated by the font height\n if (me.labelRotation !== 0) {\n me.paddingLeft = opts.position === 'bottom' ? (cosRotation * firstLabelWidth) + 3 : (cosRotation * lineSpace) + 3; // add 3 px to move away from canvas edges\n me.paddingRight = opts.position === 'bottom' ? (cosRotation * lineSpace) + 3 : (cosRotation * lastLabelWidth) + 3;\n } else {\n me.paddingLeft = firstLabelWidth / 2 + 3; // add 3 px to move away from canvas edges\n me.paddingRight = lastLabelWidth / 2 + 3;\n }\n } else {\n // A vertical axis is more constrained by the width. Labels are the\n // dominant factor here, so get that length first and account for padding\n if (tickOpts.mirror) {\n largestTextWidth = 0;\n } else {\n // use lineSpace for consistency with horizontal axis\n // tickPadding is not implemented for horizontal\n largestTextWidth += tickPadding + lineSpace;\n }\n\n minSize.width = Math.min(me.maxWidth, minSize.width + largestTextWidth);\n\n me.paddingTop = tickFont.size / 2;\n me.paddingBottom = tickFont.size / 2;\n }\n }\n\n me.handleMargins();\n\n me.width = minSize.width;\n me.height = minSize.height;\n },\n\n /**\n * Handle margins and padding interactions\n * @private\n */\n handleMargins: function () {\n var me = this;\n if (me.margins) {\n me.paddingLeft = Math.max(me.paddingLeft - me.margins.left, 0);\n me.paddingTop = Math.max(me.paddingTop - me.margins.top, 0);\n me.paddingRight = Math.max(me.paddingRight - me.margins.right, 0);\n me.paddingBottom = Math.max(me.paddingBottom - me.margins.bottom, 0);\n }\n },\n\n afterFit: function () {\n helpers.callback(this.options.afterFit, [this]);\n },\n\n // Shared Methods\n isHorizontal: function () {\n return this.options.position === 'top' || this.options.position === 'bottom';\n },\n isFullWidth: function () {\n return (this.options.fullWidth);\n },\n\n // Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not\n getRightValue: function (rawValue) {\n // Null and undefined values first\n if (helpers.isNullOrUndef(rawValue)) {\n return NaN;\n }\n // isNaN(object) returns true, so make sure NaN is checking for a number; Discard Infinite values\n if (typeof rawValue === 'number' && !isFinite(rawValue)) {\n return NaN;\n }\n // If it is in fact an object, dive in one more level\n if (rawValue) {\n if (this.isHorizontal()) {\n if (rawValue.x !== undefined) {\n return this.getRightValue(rawValue.x);\n }\n } else if (rawValue.y !== undefined) {\n return this.getRightValue(rawValue.y);\n }\n }\n\n // Value is good, return it\n return rawValue;\n },\n\n /**\n * Used to get the value to display in the tooltip for the data at the given index\n * @param index\n * @param datasetIndex\n */\n getLabelForIndex: helpers.noop,\n\n /**\n * Returns the location of the given data point. Value can either be an index or a numerical value\n * The coordinate (0, 0) is at the upper-left corner of the canvas\n * @param value\n * @param index\n * @param datasetIndex\n */\n getPixelForValue: helpers.noop,\n\n /**\n * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n * The coordinate (0, 0) is at the upper-left corner of the canvas\n * @param pixel\n */\n getValueForPixel: helpers.noop,\n\n /**\n * Returns the location of the tick at the given index\n * The coordinate (0, 0) is at the upper-left corner of the canvas\n */\n getPixelForTick: function (index) {\n var me = this;\n var offset = me.options.offset;\n if (me.isHorizontal()) {\n var innerWidth = me.width - (me.paddingLeft + me.paddingRight);\n var tickWidth = innerWidth / Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\n var pixel = (tickWidth * index) + me.paddingLeft;\n\n if (offset) {\n pixel += tickWidth / 2;\n }\n\n var finalVal = me.left + Math.round(pixel);\n finalVal += me.isFullWidth() ? me.margins.left : 0;\n return finalVal;\n }\n var innerHeight = me.height - (me.paddingTop + me.paddingBottom);\n return me.top + (index * (innerHeight / (me._ticks.length - 1)));\n },\n\n /**\n * Utility for getting the pixel location of a percentage of scale\n * The coordinate (0, 0) is at the upper-left corner of the canvas\n */\n getPixelForDecimal: function (decimal) {\n var me = this;\n if (me.isHorizontal()) {\n var innerWidth = me.width - (me.paddingLeft + me.paddingRight);\n var valueOffset = (innerWidth * decimal) + me.paddingLeft;\n\n var finalVal = me.left + Math.round(valueOffset);\n finalVal += me.isFullWidth() ? me.margins.left : 0;\n return finalVal;\n }\n return me.top + (decimal * me.height);\n },\n\n /**\n * Returns the pixel for the minimum chart value\n * The coordinate (0, 0) is at the upper-left corner of the canvas\n */\n getBasePixel: function () {\n return this.getPixelForValue(this.getBaseValue());\n },\n\n getBaseValue: function () {\n var me = this;\n var min = me.min;\n var max = me.max;\n\n return me.beginAtZero ? 0 :\n min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n },\n\n /**\n * Returns a subset of ticks to be plotted to avoid overlapping labels.\n * @private\n */\n _autoSkip: function (ticks) {\n var skipRatio;\n var me = this;\n var isHorizontal = me.isHorizontal();\n var optionTicks = me.options.ticks.minor;\n var tickCount = ticks.length;\n var labelRotationRadians = helpers.toRadians(me.labelRotation);\n var cosRotation = Math.cos(labelRotationRadians);\n var longestRotatedLabel = me.longestLabelWidth * cosRotation;\n var result = [];\n var i, tick, shouldSkip;\n\n // figure out the maximum number of gridlines to show\n var maxTicks;\n if (optionTicks.maxTicksLimit) {\n maxTicks = optionTicks.maxTicksLimit;\n }\n\n if (isHorizontal) {\n skipRatio = false;\n\n if ((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount > (me.width - (me.paddingLeft + me.paddingRight))) {\n skipRatio = 1 + Math.floor(((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount) / (me.width - (me.paddingLeft + me.paddingRight)));\n }\n\n // if they defined a max number of optionTicks,\n // increase skipRatio until that number is met\n if (maxTicks && tickCount > maxTicks) {\n skipRatio = Math.max(skipRatio, Math.floor(tickCount / maxTicks));\n }\n }\n\n for (i = 0; i < tickCount; i++) {\n tick = ticks[i];\n\n // Since we always show the last tick,we need may need to hide the last shown one before\n shouldSkip = (skipRatio > 1 && i % skipRatio > 0) || (i % skipRatio === 0 && i + skipRatio >= tickCount);\n if (shouldSkip && i !== tickCount - 1) {\n // leave tick in place but make sure it's not displayed (#4635)\n delete tick.label;\n }\n result.push(tick);\n }\n return result;\n },\n\n // Actually draw the scale on the canvas\n // @param {rectangle} chartArea : the area of the chart to draw full grid lines on\n draw: function (chartArea) {\n var me = this;\n var options = me.options;\n if (!options.display) {\n return;\n }\n\n var context = me.ctx;\n var globalDefaults = defaults.global;\n var optionTicks = options.ticks.minor;\n var optionMajorTicks = options.ticks.major || optionTicks;\n var gridLines = options.gridLines;\n var scaleLabel = options.scaleLabel;\n\n var isRotated = me.labelRotation !== 0;\n var isHorizontal = me.isHorizontal();\n\n var ticks = optionTicks.autoSkip ? me._autoSkip(me.getTicks()) : me.getTicks();\n var tickFontColor = helpers.valueOrDefault(optionTicks.fontColor, globalDefaults.defaultFontColor);\n var tickFont = parseFontOptions(optionTicks);\n var majorTickFontColor = helpers.valueOrDefault(optionMajorTicks.fontColor, globalDefaults.defaultFontColor);\n var majorTickFont = parseFontOptions(optionMajorTicks);\n\n var tl = gridLines.drawTicks ? gridLines.tickMarkLength : 0;\n\n var scaleLabelFontColor = helpers.valueOrDefault(scaleLabel.fontColor, globalDefaults.defaultFontColor);\n var scaleLabelFont = parseFontOptions(scaleLabel);\n var scaleLabelPadding = helpers.options.toPadding(scaleLabel.padding);\n var labelRotationRadians = helpers.toRadians(me.labelRotation);\n\n var itemsToDraw = [];\n\n var axisWidth = me.options.gridLines.lineWidth;\n var xTickStart = options.position === 'right' ? me.right : me.right - axisWidth - tl;\n var xTickEnd = options.position === 'right' ? me.right + tl : me.right;\n var yTickStart = options.position === 'bottom' ? me.top + axisWidth : me.bottom - tl - axisWidth;\n var yTickEnd = options.position === 'bottom' ? me.top + axisWidth + tl : me.bottom + axisWidth;\n\n helpers.each(ticks, function (tick, index) {\n // autoskipper skipped this tick (#4635)\n if (helpers.isNullOrUndef(tick.label)) {\n return;\n }\n\n var label = tick.label;\n var lineWidth, lineColor, borderDash, borderDashOffset;\n if (index === me.zeroLineIndex && options.offset === gridLines.offsetGridLines) {\n // Draw the first index specially\n lineWidth = gridLines.zeroLineWidth;\n lineColor = gridLines.zeroLineColor;\n borderDash = gridLines.zeroLineBorderDash;\n borderDashOffset = gridLines.zeroLineBorderDashOffset;\n } else {\n lineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, index);\n lineColor = helpers.valueAtIndexOrDefault(gridLines.color, index);\n borderDash = helpers.valueOrDefault(gridLines.borderDash, globalDefaults.borderDash);\n borderDashOffset = helpers.valueOrDefault(gridLines.borderDashOffset, globalDefaults.borderDashOffset);\n }\n\n // Common properties\n var tx1, ty1, tx2, ty2, x1, y1, x2, y2, labelX, labelY;\n var textAlign = 'middle';\n var textBaseline = 'middle';\n var tickPadding = optionTicks.padding;\n\n if (isHorizontal) {\n var labelYOffset = tl + tickPadding;\n\n if (options.position === 'bottom') {\n // bottom\n textBaseline = !isRotated ? 'top' : 'middle';\n textAlign = !isRotated ? 'center' : 'right';\n labelY = me.top + labelYOffset;\n } else {\n // top\n textBaseline = !isRotated ? 'bottom' : 'middle';\n textAlign = !isRotated ? 'center' : 'left';\n labelY = me.bottom - labelYOffset;\n }\n\n var xLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\n if (xLineValue < me.left) {\n lineColor = 'rgba(0,0,0,0)';\n }\n xLineValue += helpers.aliasPixel(lineWidth);\n\n labelX = me.getPixelForTick(index) + optionTicks.labelOffset; // x values for optionTicks (need to consider offsetLabel option)\n\n tx1 = tx2 = x1 = x2 = xLineValue;\n ty1 = yTickStart;\n ty2 = yTickEnd;\n y1 = chartArea.top;\n y2 = chartArea.bottom + axisWidth;\n } else {\n var isLeft = options.position === 'left';\n var labelXOffset;\n\n if (optionTicks.mirror) {\n textAlign = isLeft ? 'left' : 'right';\n labelXOffset = tickPadding;\n } else {\n textAlign = isLeft ? 'right' : 'left';\n labelXOffset = tl + tickPadding;\n }\n\n labelX = isLeft ? me.right - labelXOffset : me.left + labelXOffset;\n\n var yLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\n if (yLineValue < me.top) {\n lineColor = 'rgba(0,0,0,0)';\n }\n yLineValue += helpers.aliasPixel(lineWidth);\n\n labelY = me.getPixelForTick(index) + optionTicks.labelOffset;\n\n tx1 = xTickStart;\n tx2 = xTickEnd;\n x1 = chartArea.left;\n x2 = chartArea.right + axisWidth;\n ty1 = ty2 = y1 = y2 = yLineValue;\n }\n\n itemsToDraw.push({\n tx1: tx1,\n ty1: ty1,\n tx2: tx2,\n ty2: ty2,\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n labelX: labelX,\n labelY: labelY,\n glWidth: lineWidth,\n glColor: lineColor,\n glBorderDash: borderDash,\n glBorderDashOffset: borderDashOffset,\n rotation: -1 * labelRotationRadians,\n label: label,\n major: tick.major,\n textBaseline: textBaseline,\n textAlign: textAlign\n });\n });\n\n // Draw all of the tick labels, tick marks, and grid lines at the correct places\n helpers.each(itemsToDraw, function (itemToDraw) {\n if (gridLines.display) {\n context.save();\n context.lineWidth = itemToDraw.glWidth;\n context.strokeStyle = itemToDraw.glColor;\n if (context.setLineDash) {\n context.setLineDash(itemToDraw.glBorderDash);\n context.lineDashOffset = itemToDraw.glBorderDashOffset;\n }\n\n context.beginPath();\n\n if (gridLines.drawTicks) {\n context.moveTo(itemToDraw.tx1, itemToDraw.ty1);\n context.lineTo(itemToDraw.tx2, itemToDraw.ty2);\n }\n\n if (gridLines.drawOnChartArea) {\n context.moveTo(itemToDraw.x1, itemToDraw.y1);\n context.lineTo(itemToDraw.x2, itemToDraw.y2);\n }\n\n context.stroke();\n context.restore();\n }\n\n if (optionTicks.display) {\n // Make sure we draw text in the correct color and font\n context.save();\n context.translate(itemToDraw.labelX, itemToDraw.labelY);\n context.rotate(itemToDraw.rotation);\n context.font = itemToDraw.major ? majorTickFont.font : tickFont.font;\n context.fillStyle = itemToDraw.major ? majorTickFontColor : tickFontColor;\n context.textBaseline = itemToDraw.textBaseline;\n context.textAlign = itemToDraw.textAlign;\n\n var label = itemToDraw.label;\n if (helpers.isArray(label)) {\n var lineCount = label.length;\n var lineHeight = tickFont.size * 1.5;\n var y = me.isHorizontal() ? 0 : -lineHeight * (lineCount - 1) / 2;\n\n for (var i = 0; i < lineCount; ++i) {\n // We just make sure the multiline element is a string here..\n context.fillText('' + label[i], 0, y);\n // apply same lineSpacing as calculated @ L#320\n y += lineHeight;\n }\n } else {\n context.fillText(label, 0, 0);\n }\n context.restore();\n }\n });\n\n if (scaleLabel.display) {\n // Draw the scale label\n var scaleLabelX;\n var scaleLabelY;\n var rotation = 0;\n var halfLineHeight = parseLineHeight(scaleLabel) / 2;\n\n if (isHorizontal) {\n scaleLabelX = me.left + ((me.right - me.left) / 2); // midpoint of the width\n scaleLabelY = options.position === 'bottom'\n ? me.bottom - halfLineHeight - scaleLabelPadding.bottom\n : me.top + halfLineHeight + scaleLabelPadding.top;\n } else {\n var isLeft = options.position === 'left';\n scaleLabelX = isLeft\n ? me.left + halfLineHeight + scaleLabelPadding.top\n : me.right - halfLineHeight - scaleLabelPadding.top;\n scaleLabelY = me.top + ((me.bottom - me.top) / 2);\n rotation = isLeft ? -0.5 * Math.PI : 0.5 * Math.PI;\n }\n\n context.save();\n context.translate(scaleLabelX, scaleLabelY);\n context.rotate(rotation);\n context.textAlign = 'center';\n context.textBaseline = 'middle';\n context.fillStyle = scaleLabelFontColor; // render in correct colour\n context.font = scaleLabelFont.font;\n context.fillText(scaleLabel.labelString, 0, 0);\n context.restore();\n }\n\n if (gridLines.drawBorder) {\n // Draw the line at the edge of the axis\n context.lineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, 0);\n context.strokeStyle = helpers.valueAtIndexOrDefault(gridLines.color, 0);\n var x1 = me.left;\n var x2 = me.right + axisWidth;\n var y1 = me.top;\n var y2 = me.bottom + axisWidth;\n\n var aliasPixel = helpers.aliasPixel(context.lineWidth);\n if (isHorizontal) {\n y1 = y2 = options.position === 'top' ? me.bottom : me.top;\n y1 += aliasPixel;\n y2 += aliasPixel;\n } else {\n x1 = x2 = options.position === 'left' ? me.right : me.left;\n x1 += aliasPixel;\n x2 += aliasPixel;\n }\n\n context.beginPath();\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n context.stroke();\n }\n }\n });\n };\n\n }, {'25': 25, '26': 26, '34': 34, '45': 45}], 33: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var helpers = require(45);\n var layouts = require(30);\n\n module.exports = function (Chart) {\n\n Chart.scaleService = {\n // Scale registration object. Extensions can register new scale types (such as log or DB scales) and then\n // use the new chart options to grab the correct scale\n constructors: {},\n // Use a registration function so that we can move to an ES6 map when we no longer need to support\n // old browsers\n\n // Scale config defaults\n defaults: {},\n registerScaleType: function (type, scaleConstructor, scaleDefaults) {\n this.constructors[type] = scaleConstructor;\n this.defaults[type] = helpers.clone(scaleDefaults);\n },\n getScaleConstructor: function (type) {\n return this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined;\n },\n getScaleDefaults: function (type) {\n // Return the scale defaults merged with the global settings so that we always use the latest ones\n return this.defaults.hasOwnProperty(type) ? helpers.merge({}, [defaults.scale, this.defaults[type]]) : {};\n },\n updateScaleDefaults: function (type, additions) {\n var me = this;\n if (me.defaults.hasOwnProperty(type)) {\n me.defaults[type] = helpers.extend(me.defaults[type], additions);\n }\n },\n addScalesToLayout: function (chart) {\n // Adds each scale to the chart.boxes array to be sized accordingly\n helpers.each(chart.scales, function (scale) {\n // Set ILayoutItem parameters for backwards compatibility\n scale.fullWidth = scale.options.fullWidth;\n scale.position = scale.options.position;\n scale.weight = scale.options.weight;\n layouts.addBox(chart, scale);\n });\n }\n };\n };\n\n }, {'25': 25, '30': 30, '45': 45}], 34: [function (require, module, exports) {\n 'use strict';\n\n var helpers = require(45);\n\n /**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\n module.exports = {\n /**\n * Namespace to hold formatters for different types of ticks\n * @namespace Chart.Ticks.formatters\n */\n formatters: {\n /**\n * Formatter for value labels\n * @method Chart.Ticks.formatters.values\n * @param value the value to display\n * @return {String|Array} the label to display\n */\n values: function (value) {\n return helpers.isArray(value) ? value : '' + value;\n },\n\n /**\n * Formatter for linear numeric ticks\n * @method Chart.Ticks.formatters.linear\n * @param tickValue {Number} the value to be formatted\n * @param index {Number} the position of the tickValue parameter in the ticks array\n * @param ticks {Array} the list of ticks being converted\n * @return {String} string representation of the tickValue parameter\n */\n linear: function (tickValue, index, ticks) {\n // If we have lots of ticks, don't use the ones\n var delta = ticks.length > 3 ? ticks[2] - ticks[1] : ticks[1] - ticks[0];\n\n // If we have a number like 2.5 as the delta, figure out how many decimal places we need\n if (Math.abs(delta) > 1) {\n if (tickValue !== Math.floor(tickValue)) {\n // not an integer\n delta = tickValue - Math.floor(tickValue);\n }\n }\n\n var logDelta = helpers.log10(Math.abs(delta));\n var tickString = '';\n\n if (tickValue !== 0) {\n var numDecimal = -1 * Math.floor(logDelta);\n numDecimal = Math.max(Math.min(numDecimal, 20), 0); // toFixed has a max of 20 decimal places\n tickString = tickValue.toFixed(numDecimal);\n } else {\n tickString = '0'; // never show decimal places for 0\n }\n\n return tickString;\n },\n\n logarithmic: function (tickValue, index, ticks) {\n var remain = tickValue / (Math.pow(10, Math.floor(helpers.log10(tickValue))));\n\n if (tickValue === 0) {\n return '0';\n } else if (remain === 1 || remain === 2 || remain === 5 || index === 0 || index === ticks.length - 1) {\n return tickValue.toExponential();\n }\n return '';\n }\n }\n };\n\n }, {'45': 45}], 35: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n defaults._set('global', {\n tooltips: {\n enabled: true,\n custom: null,\n mode: 'nearest',\n position: 'average',\n intersect: true,\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleFontStyle: 'bold',\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleFontColor: '#fff',\n titleAlign: 'left',\n bodySpacing: 2,\n bodyFontColor: '#fff',\n bodyAlign: 'left',\n footerFontStyle: 'bold',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFontColor: '#fff',\n footerAlign: 'left',\n yPadding: 6,\n xPadding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n multiKeyBackground: '#fff',\n displayColors: true,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n callbacks: {\n // Args are: (tooltipItems, data)\n beforeTitle: helpers.noop,\n title: function (tooltipItems, data) {\n // Pick first xLabel for now\n var title = '';\n var labels = data.labels;\n var labelCount = labels ? labels.length : 0;\n\n if (tooltipItems.length > 0) {\n var item = tooltipItems[0];\n\n if (item.xLabel) {\n title = item.xLabel;\n } else if (labelCount > 0 && item.index < labelCount) {\n title = labels[item.index];\n }\n }\n\n return title;\n },\n afterTitle: helpers.noop,\n\n // Args are: (tooltipItems, data)\n beforeBody: helpers.noop,\n\n // Args are: (tooltipItem, data)\n beforeLabel: helpers.noop,\n label: function (tooltipItem, data) {\n var label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n if (label) {\n label += ': ';\n }\n label += tooltipItem.yLabel;\n return label;\n },\n labelColor: function (tooltipItem, chart) {\n var meta = chart.getDatasetMeta(tooltipItem.datasetIndex);\n var activeElement = meta.data[tooltipItem.index];\n var view = activeElement._view;\n return {\n borderColor: view.borderColor,\n backgroundColor: view.backgroundColor\n };\n },\n labelTextColor: function () {\n return this._options.bodyFontColor;\n },\n afterLabel: helpers.noop,\n\n // Args are: (tooltipItems, data)\n afterBody: helpers.noop,\n\n // Args are: (tooltipItems, data)\n beforeFooter: helpers.noop,\n footer: helpers.noop,\n afterFooter: helpers.noop\n }\n }\n });\n\n module.exports = function (Chart) {\n\n /**\n * Helper method to merge the opacity into a color\n */\n function mergeOpacity(colorString, opacity) {\n var color = helpers.color(colorString);\n return color.alpha(opacity * color.alpha()).rgbaString();\n }\n\n // Helper to push or concat based on if the 2nd parameter is an array or not\n function pushOrConcat(base, toPush) {\n if (toPush) {\n if (helpers.isArray(toPush)) {\n // base = base.concat(toPush);\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n\n return base;\n }\n\n // Private helper to create a tooltip item model\n // @param element : the chart element (point, arc, bar) to create the tooltip item for\n // @return : new tooltip item\n function createTooltipItem(element) {\n var xScale = element._xScale;\n var yScale = element._yScale || element._scale; // handle radar || polarArea charts\n var index = element._index;\n var datasetIndex = element._datasetIndex;\n\n return {\n xLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '',\n yLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '',\n index: index,\n datasetIndex: datasetIndex,\n x: element._model.x,\n y: element._model.y\n };\n }\n\n /**\n * Helper to get the reset model for the tooltip\n * @param tooltipOpts {Object} the tooltip options\n */\n function getBaseModel(tooltipOpts) {\n var globalDefaults = defaults.global;\n var valueOrDefault = helpers.valueOrDefault;\n\n return {\n // Positioning\n xPadding: tooltipOpts.xPadding,\n yPadding: tooltipOpts.yPadding,\n xAlign: tooltipOpts.xAlign,\n yAlign: tooltipOpts.yAlign,\n\n // Body\n bodyFontColor: tooltipOpts.bodyFontColor,\n _bodyFontFamily: valueOrDefault(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily),\n _bodyFontStyle: valueOrDefault(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle),\n _bodyAlign: tooltipOpts.bodyAlign,\n bodyFontSize: valueOrDefault(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize),\n bodySpacing: tooltipOpts.bodySpacing,\n\n // Title\n titleFontColor: tooltipOpts.titleFontColor,\n _titleFontFamily: valueOrDefault(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily),\n _titleFontStyle: valueOrDefault(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle),\n titleFontSize: valueOrDefault(tooltipOpts.titleFontSize, globalDefaults.defaultFontSize),\n _titleAlign: tooltipOpts.titleAlign,\n titleSpacing: tooltipOpts.titleSpacing,\n titleMarginBottom: tooltipOpts.titleMarginBottom,\n\n // Footer\n footerFontColor: tooltipOpts.footerFontColor,\n _footerFontFamily: valueOrDefault(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily),\n _footerFontStyle: valueOrDefault(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle),\n footerFontSize: valueOrDefault(tooltipOpts.footerFontSize, globalDefaults.defaultFontSize),\n _footerAlign: tooltipOpts.footerAlign,\n footerSpacing: tooltipOpts.footerSpacing,\n footerMarginTop: tooltipOpts.footerMarginTop,\n\n // Appearance\n caretSize: tooltipOpts.caretSize,\n cornerRadius: tooltipOpts.cornerRadius,\n backgroundColor: tooltipOpts.backgroundColor,\n opacity: 0,\n legendColorBackground: tooltipOpts.multiKeyBackground,\n displayColors: tooltipOpts.displayColors,\n borderColor: tooltipOpts.borderColor,\n borderWidth: tooltipOpts.borderWidth\n };\n }\n\n /**\n * Get the size of the tooltip\n */\n function getTooltipSize(tooltip, model) {\n var ctx = tooltip._chart.ctx;\n\n var height = model.yPadding * 2; // Tooltip Padding\n var width = 0;\n\n // Count of all lines in the body\n var body = model.body;\n var combinedBodyLength = body.reduce(function (count, bodyItem) {\n return count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\n }, 0);\n combinedBodyLength += model.beforeBody.length + model.afterBody.length;\n\n var titleLineCount = model.title.length;\n var footerLineCount = model.footer.length;\n var titleFontSize = model.titleFontSize;\n var bodyFontSize = model.bodyFontSize;\n var footerFontSize = model.footerFontSize;\n\n height += titleLineCount * titleFontSize; // Title Lines\n height += titleLineCount ? (titleLineCount - 1) * model.titleSpacing : 0; // Title Line Spacing\n height += titleLineCount ? model.titleMarginBottom : 0; // Title's bottom Margin\n height += combinedBodyLength * bodyFontSize; // Body Lines\n height += combinedBodyLength ? (combinedBodyLength - 1) * model.bodySpacing : 0; // Body Line Spacing\n height += footerLineCount ? model.footerMarginTop : 0; // Footer Margin\n height += footerLineCount * (footerFontSize); // Footer Lines\n height += footerLineCount ? (footerLineCount - 1) * model.footerSpacing : 0; // Footer Line Spacing\n\n // Title width\n var widthPadding = 0;\n var maxLineWidth = function (line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n\n ctx.font = helpers.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily);\n helpers.each(model.title, maxLineWidth);\n\n // Body width\n ctx.font = helpers.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily);\n helpers.each(model.beforeBody.concat(model.afterBody), maxLineWidth);\n\n // Body lines may include some extra width due to the color box\n widthPadding = model.displayColors ? (bodyFontSize + 2) : 0;\n helpers.each(body, function (bodyItem) {\n helpers.each(bodyItem.before, maxLineWidth);\n helpers.each(bodyItem.lines, maxLineWidth);\n helpers.each(bodyItem.after, maxLineWidth);\n });\n\n // Reset back to 0\n widthPadding = 0;\n\n // Footer width\n ctx.font = helpers.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily);\n helpers.each(model.footer, maxLineWidth);\n\n // Add padding\n width += 2 * model.xPadding;\n\n return {\n width: width,\n height: height\n };\n }\n\n /**\n * Helper to get the alignment of a tooltip given the size\n */\n function determineAlignment(tooltip, size) {\n var model = tooltip._model;\n var chart = tooltip._chart;\n var chartArea = tooltip._chart.chartArea;\n var xAlign = 'center';\n var yAlign = 'center';\n\n if (model.y < size.height) {\n yAlign = 'top';\n } else if (model.y > (chart.height - size.height)) {\n yAlign = 'bottom';\n }\n\n var lf, rf; // functions to determine left, right alignment\n var olf, orf; // functions to determine if left/right alignment causes tooltip to go outside chart\n var yf; // function to get the y alignment if the tooltip goes outside of the left or right edges\n var midX = (chartArea.left + chartArea.right) / 2;\n var midY = (chartArea.top + chartArea.bottom) / 2;\n\n if (yAlign === 'center') {\n lf = function (x) {\n return x <= midX;\n };\n rf = function (x) {\n return x > midX;\n };\n } else {\n lf = function (x) {\n return x <= (size.width / 2);\n };\n rf = function (x) {\n return x >= (chart.width - (size.width / 2));\n };\n }\n\n olf = function (x) {\n return x + size.width + model.caretSize + model.caretPadding > chart.width;\n };\n orf = function (x) {\n return x - size.width - model.caretSize - model.caretPadding < 0;\n };\n yf = function (y) {\n return y <= midY ? 'top' : 'bottom';\n };\n\n if (lf(model.x)) {\n xAlign = 'left';\n\n // Is tooltip too wide and goes over the right side of the chart.?\n if (olf(model.x)) {\n xAlign = 'center';\n yAlign = yf(model.y);\n }\n } else if (rf(model.x)) {\n xAlign = 'right';\n\n // Is tooltip too wide and goes outside left edge of canvas?\n if (orf(model.x)) {\n xAlign = 'center';\n yAlign = yf(model.y);\n }\n }\n\n var opts = tooltip._options;\n return {\n xAlign: opts.xAlign ? opts.xAlign : xAlign,\n yAlign: opts.yAlign ? opts.yAlign : yAlign\n };\n }\n\n /**\n * @Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n */\n function getBackgroundPoint(vm, size, alignment, chart) {\n // Background Position\n var x = vm.x;\n var y = vm.y;\n\n var caretSize = vm.caretSize;\n var caretPadding = vm.caretPadding;\n var cornerRadius = vm.cornerRadius;\n var xAlign = alignment.xAlign;\n var yAlign = alignment.yAlign;\n var paddingAndSize = caretSize + caretPadding;\n var radiusAndPadding = cornerRadius + caretPadding;\n\n if (xAlign === 'right') {\n x -= size.width;\n } else if (xAlign === 'center') {\n x -= (size.width / 2);\n if (x + size.width > chart.width) {\n x = chart.width - size.width;\n }\n if (x < 0) {\n x = 0;\n }\n }\n\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= size.height + paddingAndSize;\n } else {\n y -= (size.height / 2);\n }\n\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= radiusAndPadding;\n } else if (xAlign === 'right') {\n x += radiusAndPadding;\n }\n\n return {\n x: x,\n y: y\n };\n }\n\n Chart.Tooltip = Element.extend({\n initialize: function () {\n this._model = getBaseModel(this._options);\n this._lastActive = [];\n },\n\n // Get the title\n // Args are: (tooltipItem, data)\n getTitle: function () {\n var me = this;\n var opts = me._options;\n var callbacks = opts.callbacks;\n\n var beforeTitle = callbacks.beforeTitle.apply(me, arguments);\n var title = callbacks.title.apply(me, arguments);\n var afterTitle = callbacks.afterTitle.apply(me, arguments);\n\n var lines = [];\n lines = pushOrConcat(lines, beforeTitle);\n lines = pushOrConcat(lines, title);\n lines = pushOrConcat(lines, afterTitle);\n\n return lines;\n },\n\n // Args are: (tooltipItem, data)\n getBeforeBody: function () {\n var lines = this._options.callbacks.beforeBody.apply(this, arguments);\n return helpers.isArray(lines) ? lines : lines !== undefined ? [lines] : [];\n },\n\n // Args are: (tooltipItem, data)\n getBody: function (tooltipItems, data) {\n var me = this;\n var callbacks = me._options.callbacks;\n var bodyItems = [];\n\n helpers.each(tooltipItems, function (tooltipItem) {\n var bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n pushOrConcat(bodyItem.before, callbacks.beforeLabel.call(me, tooltipItem, data));\n pushOrConcat(bodyItem.lines, callbacks.label.call(me, tooltipItem, data));\n pushOrConcat(bodyItem.after, callbacks.afterLabel.call(me, tooltipItem, data));\n\n bodyItems.push(bodyItem);\n });\n\n return bodyItems;\n },\n\n // Args are: (tooltipItem, data)\n getAfterBody: function () {\n var lines = this._options.callbacks.afterBody.apply(this, arguments);\n return helpers.isArray(lines) ? lines : lines !== undefined ? [lines] : [];\n },\n\n // Get the footer and beforeFooter and afterFooter lines\n // Args are: (tooltipItem, data)\n getFooter: function () {\n var me = this;\n var callbacks = me._options.callbacks;\n\n var beforeFooter = callbacks.beforeFooter.apply(me, arguments);\n var footer = callbacks.footer.apply(me, arguments);\n var afterFooter = callbacks.afterFooter.apply(me, arguments);\n\n var lines = [];\n lines = pushOrConcat(lines, beforeFooter);\n lines = pushOrConcat(lines, footer);\n lines = pushOrConcat(lines, afterFooter);\n\n return lines;\n },\n\n update: function (changed) {\n var me = this;\n var opts = me._options;\n\n // Need to regenerate the model because its faster than using extend and it is necessary due to the optimization in Chart.Element.transition\n // that does _view = _model if ease === 1. This causes the 2nd tooltip update to set properties in both the view and model at the same time\n // which breaks any animations.\n var existingModel = me._model;\n var model = me._model = getBaseModel(opts);\n var active = me._active;\n\n var data = me._data;\n\n // In the case where active.length === 0 we need to keep these at existing values for good animations\n var alignment = {\n xAlign: existingModel.xAlign,\n yAlign: existingModel.yAlign\n };\n var backgroundPoint = {\n x: existingModel.x,\n y: existingModel.y\n };\n var tooltipSize = {\n width: existingModel.width,\n height: existingModel.height\n };\n var tooltipPosition = {\n x: existingModel.caretX,\n y: existingModel.caretY\n };\n\n var i, len;\n\n if (active.length) {\n model.opacity = 1;\n\n var labelColors = [];\n var labelTextColors = [];\n tooltipPosition = Chart.Tooltip.positioners[opts.position].call(me, active, me._eventPosition);\n\n var tooltipItems = [];\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(active[i]));\n }\n\n // If the user provided a filter function, use it to modify the tooltip items\n if (opts.filter) {\n tooltipItems = tooltipItems.filter(function (a) {\n return opts.filter(a, data);\n });\n }\n\n // If the user provided a sorting function, use it to modify the tooltip items\n if (opts.itemSort) {\n tooltipItems = tooltipItems.sort(function (a, b) {\n return opts.itemSort(a, b, data);\n });\n }\n\n // Determine colors for boxes\n helpers.each(tooltipItems, function (tooltipItem) {\n labelColors.push(opts.callbacks.labelColor.call(me, tooltipItem, me._chart));\n labelTextColors.push(opts.callbacks.labelTextColor.call(me, tooltipItem, me._chart));\n });\n\n\n // Build the Text Lines\n model.title = me.getTitle(tooltipItems, data);\n model.beforeBody = me.getBeforeBody(tooltipItems, data);\n model.body = me.getBody(tooltipItems, data);\n model.afterBody = me.getAfterBody(tooltipItems, data);\n model.footer = me.getFooter(tooltipItems, data);\n\n // Initial positioning and colors\n model.x = Math.round(tooltipPosition.x);\n model.y = Math.round(tooltipPosition.y);\n model.caretPadding = opts.caretPadding;\n model.labelColors = labelColors;\n model.labelTextColors = labelTextColors;\n\n // data points\n model.dataPoints = tooltipItems;\n\n // We need to determine alignment of the tooltip\n tooltipSize = getTooltipSize(this, model);\n alignment = determineAlignment(this, tooltipSize);\n // Final Size and Position\n backgroundPoint = getBackgroundPoint(model, tooltipSize, alignment, me._chart);\n } else {\n model.opacity = 0;\n }\n\n model.xAlign = alignment.xAlign;\n model.yAlign = alignment.yAlign;\n model.x = backgroundPoint.x;\n model.y = backgroundPoint.y;\n model.width = tooltipSize.width;\n model.height = tooltipSize.height;\n\n // Point where the caret on the tooltip points to\n model.caretX = tooltipPosition.x;\n model.caretY = tooltipPosition.y;\n\n me._model = model;\n\n if (changed && opts.custom) {\n opts.custom.call(me, model);\n }\n\n return me;\n },\n drawCaret: function (tooltipPoint, size) {\n var ctx = this._chart.ctx;\n var vm = this._view;\n var caretPosition = this.getCaretPosition(tooltipPoint, size, vm);\n\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n },\n getCaretPosition: function (tooltipPoint, size, vm) {\n var x1, x2, x3, y1, y2, y3;\n var caretSize = vm.caretSize;\n var cornerRadius = vm.cornerRadius;\n var xAlign = vm.xAlign;\n var yAlign = vm.yAlign;\n var ptX = tooltipPoint.x;\n var ptY = tooltipPoint.y;\n var width = size.width;\n var height = size.height;\n\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n x3 = x1;\n\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n x3 = x1;\n\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n } else {\n if (xAlign === 'left') {\n x2 = ptX + cornerRadius + (caretSize);\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - cornerRadius - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n x2 = vm.caretX;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n y3 = y1;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n y3 = y1;\n // invert drawing order\n var tmp = x3;\n x3 = x1;\n x1 = tmp;\n }\n }\n return {x1: x1, x2: x2, x3: x3, y1: y1, y2: y2, y3: y3};\n },\n drawTitle: function (pt, vm, ctx, opacity) {\n var title = vm.title;\n\n if (title.length) {\n ctx.textAlign = vm._titleAlign;\n ctx.textBaseline = 'top';\n\n var titleFontSize = vm.titleFontSize;\n var titleSpacing = vm.titleSpacing;\n\n ctx.fillStyle = mergeOpacity(vm.titleFontColor, opacity);\n ctx.font = helpers.fontString(titleFontSize, vm._titleFontStyle, vm._titleFontFamily);\n\n var i, len;\n for (i = 0, len = title.length; i < len; ++i) {\n ctx.fillText(title[i], pt.x, pt.y);\n pt.y += titleFontSize + titleSpacing; // Line Height and spacing\n\n if (i + 1 === title.length) {\n pt.y += vm.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n }\n }\n }\n },\n drawBody: function (pt, vm, ctx, opacity) {\n var bodyFontSize = vm.bodyFontSize;\n var bodySpacing = vm.bodySpacing;\n var body = vm.body;\n\n ctx.textAlign = vm._bodyAlign;\n ctx.textBaseline = 'top';\n ctx.font = helpers.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily);\n\n // Before Body\n var xLinePadding = 0;\n var fillLineOfText = function (line) {\n ctx.fillText(line, pt.x + xLinePadding, pt.y);\n pt.y += bodyFontSize + bodySpacing;\n };\n\n // Before body lines\n ctx.fillStyle = mergeOpacity(vm.bodyFontColor, opacity);\n helpers.each(vm.beforeBody, fillLineOfText);\n\n var drawColorBoxes = vm.displayColors;\n xLinePadding = drawColorBoxes ? (bodyFontSize + 2) : 0;\n\n // Draw body lines now\n helpers.each(body, function (bodyItem, i) {\n var textColor = mergeOpacity(vm.labelTextColors[i], opacity);\n ctx.fillStyle = textColor;\n helpers.each(bodyItem.before, fillLineOfText);\n\n helpers.each(bodyItem.lines, function (line) {\n // Draw Legend-like boxes if needed\n if (drawColorBoxes) {\n // Fill a white rect so that colours merge nicely if the opacity is < 1\n ctx.fillStyle = mergeOpacity(vm.legendColorBackground, opacity);\n ctx.fillRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\n\n // Border\n ctx.lineWidth = 1;\n ctx.strokeStyle = mergeOpacity(vm.labelColors[i].borderColor, opacity);\n ctx.strokeRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\n\n // Inner square\n ctx.fillStyle = mergeOpacity(vm.labelColors[i].backgroundColor, opacity);\n ctx.fillRect(pt.x + 1, pt.y + 1, bodyFontSize - 2, bodyFontSize - 2);\n ctx.fillStyle = textColor;\n }\n\n fillLineOfText(line);\n });\n\n helpers.each(bodyItem.after, fillLineOfText);\n });\n\n // Reset back to 0 for after body\n xLinePadding = 0;\n\n // After body lines\n helpers.each(vm.afterBody, fillLineOfText);\n pt.y -= bodySpacing; // Remove last body spacing\n },\n drawFooter: function (pt, vm, ctx, opacity) {\n var footer = vm.footer;\n\n if (footer.length) {\n pt.y += vm.footerMarginTop;\n\n ctx.textAlign = vm._footerAlign;\n ctx.textBaseline = 'top';\n\n ctx.fillStyle = mergeOpacity(vm.footerFontColor, opacity);\n ctx.font = helpers.fontString(vm.footerFontSize, vm._footerFontStyle, vm._footerFontFamily);\n\n helpers.each(footer, function (line) {\n ctx.fillText(line, pt.x, pt.y);\n pt.y += vm.footerFontSize + vm.footerSpacing;\n });\n }\n },\n drawBackground: function (pt, vm, ctx, tooltipSize, opacity) {\n ctx.fillStyle = mergeOpacity(vm.backgroundColor, opacity);\n ctx.strokeStyle = mergeOpacity(vm.borderColor, opacity);\n ctx.lineWidth = vm.borderWidth;\n var xAlign = vm.xAlign;\n var yAlign = vm.yAlign;\n var x = pt.x;\n var y = pt.y;\n var width = tooltipSize.width;\n var height = tooltipSize.height;\n var radius = vm.cornerRadius;\n\n ctx.beginPath();\n ctx.moveTo(x + radius, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, tooltipSize);\n }\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, tooltipSize);\n }\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, tooltipSize);\n }\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, tooltipSize);\n }\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n ctx.closePath();\n\n ctx.fill();\n\n if (vm.borderWidth > 0) {\n ctx.stroke();\n }\n },\n draw: function () {\n var ctx = this._chart.ctx;\n var vm = this._view;\n\n if (vm.opacity === 0) {\n return;\n }\n\n var tooltipSize = {\n width: vm.width,\n height: vm.height\n };\n var pt = {\n x: vm.x,\n y: vm.y\n };\n\n // IE11/Edge does not like very small opacities, so snap to 0\n var opacity = Math.abs(vm.opacity < 1e-3) ? 0 : vm.opacity;\n\n // Truthy/falsey value for empty tooltip\n var hasTooltipContent = vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length;\n\n if (this._options.enabled && hasTooltipContent) {\n // Draw Background\n this.drawBackground(pt, vm, ctx, tooltipSize, opacity);\n\n // Draw Title, Body, and Footer\n pt.x += vm.xPadding;\n pt.y += vm.yPadding;\n\n // Titles\n this.drawTitle(pt, vm, ctx, opacity);\n\n // Body\n this.drawBody(pt, vm, ctx, opacity);\n\n // Footer\n this.drawFooter(pt, vm, ctx, opacity);\n }\n },\n\n /**\n * Handle an event\n * @private\n * @param {IEvent} event - The event to handle\n * @returns {Boolean} true if the tooltip changed\n */\n handleEvent: function (e) {\n var me = this;\n var options = me._options;\n var changed = false;\n\n me._lastActive = me._lastActive || [];\n\n // Find Active Elements for tooltips\n if (e.type === 'mouseout') {\n me._active = [];\n } else {\n me._active = me._chart.getElementsAtEventForMode(e, options.mode, options);\n }\n\n // Remember Last Actives\n changed = !helpers.arrayEquals(me._active, me._lastActive);\n\n // Only handle target event on tooltip change\n if (changed) {\n me._lastActive = me._active;\n\n if (options.enabled || options.custom) {\n me._eventPosition = {\n x: e.x,\n y: e.y\n };\n\n me.update(true);\n me.pivot();\n }\n }\n\n return changed;\n }\n });\n\n /**\n * @namespace Chart.Tooltip.positioners\n */\n Chart.Tooltip.positioners = {\n /**\n * Average mode places the tooltip at the average position of the elements shown\n * @function Chart.Tooltip.positioners.average\n * @param elements {ChartElement[]} the elements being displayed in the tooltip\n * @returns {Point} tooltip position\n */\n average: function (elements) {\n if (!elements.length) {\n return false;\n }\n\n var i, len;\n var x = 0;\n var y = 0;\n var count = 0;\n\n for (i = 0, len = elements.length; i < len; ++i) {\n var el = elements[i];\n if (el && el.hasValue()) {\n var pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n\n return {\n x: Math.round(x / count),\n y: Math.round(y / count)\n };\n },\n\n /**\n * Gets the tooltip position nearest of the item nearest to the event position\n * @function Chart.Tooltip.positioners.nearest\n * @param elements {Chart.Element[]} the tooltip elements\n * @param eventPosition {Point} the position of the event in canvas coordinates\n * @returns {Point} the tooltip position\n */\n nearest: function (elements, eventPosition) {\n var x = eventPosition.x;\n var y = eventPosition.y;\n var minDistance = Number.POSITIVE_INFINITY;\n var i, len, nearestElement;\n\n for (i = 0, len = elements.length; i < len; ++i) {\n var el = elements[i];\n if (el && el.hasValue()) {\n var center = el.getCenterPoint();\n var d = helpers.distanceBetweenPoints(eventPosition, center);\n\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n\n if (nearestElement) {\n var tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n\n return {\n x: x,\n y: y\n };\n }\n };\n };\n\n }, {'25': 25, '26': 26, '45': 45}], 36: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n defaults._set('global', {\n elements: {\n arc: {\n backgroundColor: defaults.global.defaultColor,\n borderColor: '#fff',\n borderWidth: 2\n }\n }\n });\n\n module.exports = Element.extend({\n inLabelRange: function (mouseX) {\n var vm = this._view;\n\n if (vm) {\n return (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n }\n return false;\n },\n\n inRange: function (chartX, chartY) {\n var vm = this._view;\n\n if (vm) {\n var pointRelativePosition = helpers.getAngleFromPoint(vm, {x: chartX, y: chartY});\n var angle = pointRelativePosition.angle;\n var distance = pointRelativePosition.distance;\n\n // Sanitise angle range\n var startAngle = vm.startAngle;\n var endAngle = vm.endAngle;\n while (endAngle < startAngle) {\n endAngle += 2.0 * Math.PI;\n }\n while (angle > endAngle) {\n angle -= 2.0 * Math.PI;\n }\n while (angle < startAngle) {\n angle += 2.0 * Math.PI;\n }\n\n // Check if within the range of the open/close angle\n var betweenAngles = (angle >= startAngle && angle <= endAngle);\n var withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n return (betweenAngles && withinRadius);\n }\n return false;\n },\n\n getCenterPoint: function () {\n var vm = this._view;\n var halfAngle = (vm.startAngle + vm.endAngle) / 2;\n var halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n return {\n x: vm.x + Math.cos(halfAngle) * halfRadius,\n y: vm.y + Math.sin(halfAngle) * halfRadius\n };\n },\n\n getArea: function () {\n var vm = this._view;\n return Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n },\n\n tooltipPosition: function () {\n var vm = this._view;\n var centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n var rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n return {\n x: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n y: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n };\n },\n\n draw: function () {\n var ctx = this._chart.ctx;\n var vm = this._view;\n var sA = vm.startAngle;\n var eA = vm.endAngle;\n\n ctx.beginPath();\n\n ctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA);\n ctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\n\n ctx.closePath();\n ctx.strokeStyle = vm.borderColor;\n ctx.lineWidth = vm.borderWidth;\n\n ctx.fillStyle = vm.backgroundColor;\n\n ctx.fill();\n ctx.lineJoin = 'bevel';\n\n if (vm.borderWidth) {\n ctx.stroke();\n }\n }\n });\n\n }, {'25': 25, '26': 26, '45': 45}], 37: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n var globalDefaults = defaults.global;\n\n defaults._set('global', {\n elements: {\n line: {\n tension: 0.4,\n backgroundColor: globalDefaults.defaultColor,\n borderWidth: 3,\n borderColor: globalDefaults.defaultColor,\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: 'miter',\n capBezierPoints: true,\n fill: true, // do we fill in the area between the line and its base axis\n }\n }\n });\n\n module.exports = Element.extend({\n draw: function () {\n var me = this;\n var vm = me._view;\n var ctx = me._chart.ctx;\n var spanGaps = vm.spanGaps;\n var points = me._children.slice(); // clone array\n var globalOptionLineElements = globalDefaults.elements.line;\n var lastDrawnIndex = -1;\n var index, current, previous, currentVM;\n\n // If we are looping, adding the first point again\n if (me._loop && points.length) {\n points.push(points[0]);\n }\n\n ctx.save();\n\n // Stroke Line Options\n ctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n // IE 9 and 10 do not support line dash\n if (ctx.setLineDash) {\n ctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n }\n\n ctx.lineDashOffset = vm.borderDashOffset || globalOptionLineElements.borderDashOffset;\n ctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n ctx.lineWidth = vm.borderWidth || globalOptionLineElements.borderWidth;\n ctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n // Stroke Line\n ctx.beginPath();\n lastDrawnIndex = -1;\n\n for (index = 0; index < points.length; ++index) {\n current = points[index];\n previous = helpers.previousItem(points, index);\n currentVM = current._view;\n\n // First point moves to it's starting position no matter what\n if (index === 0) {\n if (!currentVM.skip) {\n ctx.moveTo(currentVM.x, currentVM.y);\n lastDrawnIndex = index;\n }\n } else {\n previous = lastDrawnIndex === -1 ? previous : points[lastDrawnIndex];\n\n if (!currentVM.skip) {\n if ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n // There was a gap and this is the first point after the gap\n ctx.moveTo(currentVM.x, currentVM.y);\n } else {\n // Line to next point\n helpers.canvas.lineTo(ctx, previous._view, current._view);\n }\n lastDrawnIndex = index;\n }\n }\n }\n\n ctx.stroke();\n ctx.restore();\n }\n });\n\n }, {'25': 25, '26': 26, '45': 45}], 38: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n\n var defaultColor = defaults.global.defaultColor;\n\n defaults._set('global', {\n elements: {\n point: {\n radius: 3,\n pointStyle: 'circle',\n backgroundColor: defaultColor,\n borderColor: defaultColor,\n borderWidth: 1,\n // Hover\n hitRadius: 1,\n hoverRadius: 4,\n hoverBorderWidth: 1\n }\n }\n });\n\n function xRange(mouseX) {\n var vm = this._view;\n return vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\n }\n\n function yRange(mouseY) {\n var vm = this._view;\n return vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\n }\n\n module.exports = Element.extend({\n inRange: function (mouseX, mouseY) {\n var vm = this._view;\n return vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n },\n\n inLabelRange: xRange,\n inXRange: xRange,\n inYRange: yRange,\n\n getCenterPoint: function () {\n var vm = this._view;\n return {\n x: vm.x,\n y: vm.y\n };\n },\n\n getArea: function () {\n return Math.PI * Math.pow(this._view.radius, 2);\n },\n\n tooltipPosition: function () {\n var vm = this._view;\n return {\n x: vm.x,\n y: vm.y,\n padding: vm.radius + vm.borderWidth\n };\n },\n\n draw: function (chartArea) {\n var vm = this._view;\n var model = this._model;\n var ctx = this._chart.ctx;\n var pointStyle = vm.pointStyle;\n var radius = vm.radius;\n var x = vm.x;\n var y = vm.y;\n var color = helpers.color;\n var errMargin = 1.01; // 1.01 is margin for Accumulated error. (Especially Edge, IE.)\n var ratio = 0;\n\n if (vm.skip) {\n return;\n }\n\n ctx.strokeStyle = vm.borderColor || defaultColor;\n ctx.lineWidth = helpers.valueOrDefault(vm.borderWidth, defaults.global.elements.point.borderWidth);\n ctx.fillStyle = vm.backgroundColor || defaultColor;\n\n // Cliping for Points.\n // going out from inner charArea?\n if ((chartArea !== undefined) && ((model.x < chartArea.left) || (chartArea.right * errMargin < model.x) || (model.y < chartArea.top) || (chartArea.bottom * errMargin < model.y))) {\n // Point fade out\n if (model.x < chartArea.left) {\n ratio = (x - model.x) / (chartArea.left - model.x);\n } else if (chartArea.right * errMargin < model.x) {\n ratio = (model.x - x) / (model.x - chartArea.right);\n } else if (model.y < chartArea.top) {\n ratio = (y - model.y) / (chartArea.top - model.y);\n } else if (chartArea.bottom * errMargin < model.y) {\n ratio = (model.y - y) / (model.y - chartArea.bottom);\n }\n ratio = Math.round(ratio * 100) / 100;\n ctx.strokeStyle = color(ctx.strokeStyle).alpha(ratio).rgbString();\n ctx.fillStyle = color(ctx.fillStyle).alpha(ratio).rgbString();\n }\n\n helpers.canvas.drawPoint(ctx, pointStyle, radius, x, y);\n }\n });\n\n }, {'25': 25, '26': 26, '45': 45}], 39: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n\n defaults._set('global', {\n elements: {\n rectangle: {\n backgroundColor: defaults.global.defaultColor,\n borderColor: defaults.global.defaultColor,\n borderSkipped: 'bottom',\n borderWidth: 0\n }\n }\n });\n\n function isVertical(bar) {\n return bar._view.width !== undefined;\n }\n\n /**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\n function getBarBounds(bar) {\n var vm = bar._view;\n var x1, x2, y1, y2;\n\n if (isVertical(bar)) {\n // vertical\n var halfWidth = vm.width / 2;\n x1 = vm.x - halfWidth;\n x2 = vm.x + halfWidth;\n y1 = Math.min(vm.y, vm.base);\n y2 = Math.max(vm.y, vm.base);\n } else {\n // horizontal bar\n var halfHeight = vm.height / 2;\n x1 = Math.min(vm.x, vm.base);\n x2 = Math.max(vm.x, vm.base);\n y1 = vm.y - halfHeight;\n y2 = vm.y + halfHeight;\n }\n\n return {\n left: x1,\n top: y1,\n right: x2,\n bottom: y2\n };\n }\n\n module.exports = Element.extend({\n draw: function () {\n var ctx = this._chart.ctx;\n var vm = this._view;\n var left, right, top, bottom, signX, signY, borderSkipped;\n var borderWidth = vm.borderWidth;\n\n if (!vm.horizontal) {\n // bar\n left = vm.x - vm.width / 2;\n right = vm.x + vm.width / 2;\n top = vm.y;\n bottom = vm.base;\n signX = 1;\n signY = bottom > top ? 1 : -1;\n borderSkipped = vm.borderSkipped || 'bottom';\n } else {\n // horizontal bar\n left = vm.base;\n right = vm.x;\n top = vm.y - vm.height / 2;\n bottom = vm.y + vm.height / 2;\n signX = right > left ? 1 : -1;\n signY = 1;\n borderSkipped = vm.borderSkipped || 'left';\n }\n\n // Canvas doesn't allow us to stroke inside the width so we can\n // adjust the sizes to fit if we're setting a stroke on the line\n if (borderWidth) {\n // borderWidth shold be less than bar width and bar height.\n var barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\n var halfStroke = borderWidth / 2;\n // Adjust borderWidth when bar top position is near vm.base(zero).\n var borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\n var borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\n var borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\n var borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\n // not become a vertical line?\n if (borderLeft !== borderRight) {\n top = borderTop;\n bottom = borderBottom;\n }\n // not become a horizontal line?\n if (borderTop !== borderBottom) {\n left = borderLeft;\n right = borderRight;\n }\n }\n\n ctx.beginPath();\n ctx.fillStyle = vm.backgroundColor;\n ctx.strokeStyle = vm.borderColor;\n ctx.lineWidth = borderWidth;\n\n // Corner points, from bottom-left to bottom-right clockwise\n // | 1 2 |\n // | 0 3 |\n var corners = [\n [left, bottom],\n [left, top],\n [right, top],\n [right, bottom]\n ];\n\n // Find first (starting) corner with fallback to 'bottom'\n var borders = ['bottom', 'left', 'top', 'right'];\n var startCorner = borders.indexOf(borderSkipped, 0);\n if (startCorner === -1) {\n startCorner = 0;\n }\n\n function cornerAt(index) {\n return corners[(startCorner + index) % 4];\n }\n\n // Draw rectangle from 'startCorner'\n var corner = cornerAt(0);\n ctx.moveTo(corner[0], corner[1]);\n\n for (var i = 1; i < 4; i++) {\n corner = cornerAt(i);\n ctx.lineTo(corner[0], corner[1]);\n }\n\n ctx.fill();\n if (borderWidth) {\n ctx.stroke();\n }\n },\n\n height: function () {\n var vm = this._view;\n return vm.base - vm.y;\n },\n\n inRange: function (mouseX, mouseY) {\n var inRange = false;\n\n if (this._view) {\n var bounds = getBarBounds(this);\n inRange = mouseX >= bounds.left && mouseX <= bounds.right && mouseY >= bounds.top && mouseY <= bounds.bottom;\n }\n\n return inRange;\n },\n\n inLabelRange: function (mouseX, mouseY) {\n var me = this;\n if (!me._view) {\n return false;\n }\n\n var inRange = false;\n var bounds = getBarBounds(me);\n\n if (isVertical(me)) {\n inRange = mouseX >= bounds.left && mouseX <= bounds.right;\n } else {\n inRange = mouseY >= bounds.top && mouseY <= bounds.bottom;\n }\n\n return inRange;\n },\n\n inXRange: function (mouseX) {\n var bounds = getBarBounds(this);\n return mouseX >= bounds.left && mouseX <= bounds.right;\n },\n\n inYRange: function (mouseY) {\n var bounds = getBarBounds(this);\n return mouseY >= bounds.top && mouseY <= bounds.bottom;\n },\n\n getCenterPoint: function () {\n var vm = this._view;\n var x, y;\n if (isVertical(this)) {\n x = vm.x;\n y = (vm.y + vm.base) / 2;\n } else {\n x = (vm.x + vm.base) / 2;\n y = vm.y;\n }\n\n return {x: x, y: y};\n },\n\n getArea: function () {\n var vm = this._view;\n return vm.width * Math.abs(vm.y - vm.base);\n },\n\n tooltipPosition: function () {\n var vm = this._view;\n return {\n x: vm.x,\n y: vm.y\n };\n }\n });\n\n }, {'25': 25, '26': 26}], 40: [function (require, module, exports) {\n 'use strict';\n\n module.exports = {};\n module.exports.Arc = require(36);\n module.exports.Line = require(37);\n module.exports.Point = require(38);\n module.exports.Rectangle = require(39);\n\n }, {'36': 36, '37': 37, '38': 38, '39': 39}], 41: [function (require, module, exports) {\n 'use strict';\n\n var helpers = require(42);\n\n /**\n * @namespace Chart.helpers.canvas\n */\n var exports = module.exports = {\n /**\n * Clears the entire canvas associated to the given `chart`.\n * @param {Chart} chart - The chart for which to clear the canvas.\n */\n clear: function (chart) {\n chart.ctx.clearRect(0, 0, chart.width, chart.height);\n },\n\n /**\n * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n * given size (width, height) and the same `radius` for all corners.\n * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n * @param {Number} x - The x axis of the coordinate for the rectangle starting point.\n * @param {Number} y - The y axis of the coordinate for the rectangle starting point.\n * @param {Number} width - The rectangle's width.\n * @param {Number} height - The rectangle's height.\n * @param {Number} radius - The rounded amount (in pixels) for the four corners.\n * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n */\n roundedRect: function (ctx, x, y, width, height, radius) {\n if (radius) {\n var rx = Math.min(radius, width / 2);\n var ry = Math.min(radius, height / 2);\n\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.quadraticCurveTo(x + width, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.quadraticCurveTo(x, y, x + rx, y);\n } else {\n ctx.rect(x, y, width, height);\n }\n },\n\n drawPoint: function (ctx, style, radius, x, y) {\n var type, edgeLength, xOffset, yOffset, height, size;\n\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.drawImage(style, x - style.width / 2, y - style.height / 2, style.width, style.height);\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n switch (style) {\n // Default includes circle\n default:\n ctx.beginPath();\n ctx.arc(x, y, radius, 0, Math.PI * 2);\n ctx.closePath();\n ctx.fill();\n break;\n case 'triangle':\n ctx.beginPath();\n edgeLength = 3 * radius / Math.sqrt(3);\n height = edgeLength * Math.sqrt(3) / 2;\n ctx.moveTo(x - edgeLength / 2, y + height / 3);\n ctx.lineTo(x + edgeLength / 2, y + height / 3);\n ctx.lineTo(x, y - 2 * height / 3);\n ctx.closePath();\n ctx.fill();\n break;\n case 'rect':\n size = 1 / Math.SQRT2 * radius;\n ctx.beginPath();\n ctx.fillRect(x - size, y - size, 2 * size, 2 * size);\n ctx.strokeRect(x - size, y - size, 2 * size, 2 * size);\n break;\n case 'rectRounded':\n var offset = radius / Math.SQRT2;\n var leftX = x - offset;\n var topY = y - offset;\n var sideSize = Math.SQRT2 * radius;\n ctx.beginPath();\n this.roundedRect(ctx, leftX, topY, sideSize, sideSize, radius / 2);\n ctx.closePath();\n ctx.fill();\n break;\n case 'rectRot':\n size = 1 / Math.SQRT2 * radius;\n ctx.beginPath();\n ctx.moveTo(x - size, y);\n ctx.lineTo(x, y + size);\n ctx.lineTo(x + size, y);\n ctx.lineTo(x, y - size);\n ctx.closePath();\n ctx.fill();\n break;\n case 'cross':\n ctx.beginPath();\n ctx.moveTo(x, y + radius);\n ctx.lineTo(x, y - radius);\n ctx.moveTo(x - radius, y);\n ctx.lineTo(x + radius, y);\n ctx.closePath();\n break;\n case 'crossRot':\n ctx.beginPath();\n xOffset = Math.cos(Math.PI / 4) * radius;\n yOffset = Math.sin(Math.PI / 4) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x - xOffset, y + yOffset);\n ctx.lineTo(x + xOffset, y - yOffset);\n ctx.closePath();\n break;\n case 'star':\n ctx.beginPath();\n ctx.moveTo(x, y + radius);\n ctx.lineTo(x, y - radius);\n ctx.moveTo(x - radius, y);\n ctx.lineTo(x + radius, y);\n xOffset = Math.cos(Math.PI / 4) * radius;\n yOffset = Math.sin(Math.PI / 4) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x - xOffset, y + yOffset);\n ctx.lineTo(x + xOffset, y - yOffset);\n ctx.closePath();\n break;\n case 'line':\n ctx.beginPath();\n ctx.moveTo(x - radius, y);\n ctx.lineTo(x + radius, y);\n ctx.closePath();\n break;\n case 'dash':\n ctx.beginPath();\n ctx.moveTo(x, y);\n ctx.lineTo(x + radius, y);\n ctx.closePath();\n break;\n }\n\n ctx.stroke();\n },\n\n clipArea: function (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\n unclipArea: function (ctx) {\n ctx.restore();\n },\n\n lineTo: function (ctx, previous, target, flip) {\n if (target.steppedLine) {\n if ((target.steppedLine === 'after' && !flip) || (target.steppedLine !== '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 return;\n }\n\n if (!target.tension) {\n ctx.lineTo(target.x, target.y);\n return;\n }\n\n ctx.bezierCurveTo(\n flip ? previous.controlPointPreviousX : previous.controlPointNextX,\n flip ? previous.controlPointPreviousY : previous.controlPointNextY,\n flip ? target.controlPointNextX : target.controlPointPreviousX,\n flip ? target.controlPointNextY : target.controlPointPreviousY,\n target.x,\n target.y);\n }\n };\n\n// DEPRECATIONS\n\n /**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.clear = exports.clear;\n\n /**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.drawRoundedRectangle = function (ctx) {\n ctx.beginPath();\n exports.roundedRect.apply(exports, arguments);\n ctx.closePath();\n };\n\n }, {'42': 42}], 42: [function (require, module, exports) {\n 'use strict';\n\n /**\n * @namespace Chart.helpers\n */\n var helpers = {\n /**\n * An empty function that can be used, for example, for optional callback.\n */\n noop: function () {\n },\n\n /**\n * Returns a unique id, sequentially generated from a global variable.\n * @returns {Number}\n * @function\n */\n uid: (function () {\n var id = 0;\n return function () {\n return id++;\n };\n }()),\n\n /**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param {*} value - The value to test.\n * @returns {Boolean}\n * @since 2.7.0\n */\n isNullOrUndef: function (value) {\n return value === null || typeof value === 'undefined';\n },\n\n /**\n * Returns true if `value` is an array, else returns false.\n * @param {*} value - The value to test.\n * @returns {Boolean}\n * @function\n */\n isArray: Array.isArray ? Array.isArray : function (value) {\n return Object.prototype.toString.call(value) === '[object Array]';\n },\n\n /**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param {*} value - The value to test.\n * @returns {Boolean}\n * @since 2.7.0\n */\n isObject: function (value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n },\n\n /**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param {*} value - The value to return if defined.\n * @param {*} defaultValue - The value to return if `value` is undefined.\n * @returns {*}\n */\n valueOrDefault: function (value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n },\n\n /**\n * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n * @param {Array} value - The array to lookup for value at `index`.\n * @param {Number} index - The index in `value` to lookup for value.\n * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n * @returns {*}\n */\n valueAtIndexOrDefault: function (value, index, defaultValue) {\n return helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n },\n\n /**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param {Function} fn - The function to call.\n * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n * @param {Object} [thisArg] - The value of `this` provided for the call to `fn`.\n * @returns {*}\n */\n callback: function (fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n },\n\n /**\n * Note(SB) for performance sake, this method should only be used when loopable type\n * is unknown or in none intensive code (not called often and small loopable). Else\n * it's preferable to use a regular for() loop and save extra function calls.\n * @param {Object|Array} loopable - The object or array to be iterated.\n * @param {Function} fn - The function to call for each item.\n * @param {Object} [thisArg] - The value of `this` provided for the call to `fn`.\n * @param {Boolean} [reverse] - If true, iterates backward on the loopable.\n */\n each: function (loopable, fn, thisArg, reverse) {\n var i, len, keys;\n if (helpers.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 (helpers.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 },\n\n /**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @see http://stackoverflow.com/a/14853974\n * @param {Array} a0 - The array to compare\n * @param {Array} a1 - The array to compare\n * @returns {Boolean}\n */\n arrayEquals: function (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 instanceof Array && v1 instanceof Array) {\n if (!helpers.arrayEquals(v0, v1)) {\n return false;\n }\n } else if (v0 !== v1) {\n // NOTE: two different object instances will never be equal: {x:20} != {x:20}\n return false;\n }\n }\n\n return true;\n },\n\n /**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param {*} source - The value to clone.\n * @returns {*}\n */\n clone: function (source) {\n if (helpers.isArray(source)) {\n return source.map(helpers.clone);\n }\n\n if (helpers.isObject(source)) {\n var target = {};\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]] = helpers.clone(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n },\n\n /**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): this method is also used by configMerge and scaleMerge as fallback.\n * @private\n */\n _merger: function (key, target, source, options) {\n var tval = target[key];\n var sval = source[key];\n\n if (helpers.isObject(tval) && helpers.isObject(sval)) {\n helpers.merge(tval, sval, options);\n } else {\n target[key] = helpers.clone(sval);\n }\n },\n\n /**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */\n _mergerIf: function (key, target, source) {\n var tval = target[key];\n var sval = source[key];\n\n if (helpers.isObject(tval) && helpers.isObject(sval)) {\n helpers.mergeIf(tval, sval);\n } else if (!target.hasOwnProperty(key)) {\n target[key] = helpers.clone(sval);\n }\n },\n\n /**\n * Recursively deep copies `source` properties into `target` with the given `options`.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param {Object} target - The target object in which all sources are merged into.\n * @param {Object|Array(Object)} source - Object(s) to merge into `target`.\n * @param {Object} [options] - Merging options:\n * @param {Function} [options.merger] - The merge method (key, target, source, options)\n * @returns {Object} The `target` object.\n */\n merge: function (target, source, options) {\n var sources = helpers.isArray(source) ? source : [source];\n var ilen = sources.length;\n var merge, i, keys, klen, k;\n\n if (!helpers.isObject(target)) {\n return target;\n }\n\n options = options || {};\n merge = options.merger || helpers._merger;\n\n for (i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!helpers.isObject(source)) {\n continue;\n }\n\n keys = Object.keys(source);\n for (k = 0, klen = keys.length; k < klen; ++k) {\n merge(keys[k], target, source, options);\n }\n }\n\n return target;\n },\n\n /**\n * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param {Object} target - The target object in which all sources are merged into.\n * @param {Object|Array(Object)} source - Object(s) to merge into `target`.\n * @returns {Object} The `target` object.\n */\n mergeIf: function (target, source) {\n return helpers.merge(target, source, {merger: helpers._mergerIf});\n },\n\n /**\n * Applies the contents of two or more objects together into the first object.\n * @param {Object} target - The target object in which all objects are merged into.\n * @param {Object} arg1 - Object containing additional properties to merge in target.\n * @param {Object} argN - Additional objects containing properties to merge in target.\n * @returns {Object} The `target` object.\n */\n extend: function (target) {\n var setFn = function (value, key) {\n target[key] = value;\n };\n for (var i = 1, ilen = arguments.length; i < ilen; ++i) {\n helpers.each(arguments[i], setFn);\n }\n return target;\n },\n\n /**\n * Basic javascript inheritance based on the model created in Backbone.js\n */\n inherits: function (extensions) {\n var me = this;\n var ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function () {\n return me.apply(this, arguments);\n };\n\n var Surrogate = function () {\n this.constructor = ChartElement;\n };\n\n Surrogate.prototype = me.prototype;\n ChartElement.prototype = new Surrogate();\n ChartElement.extend = helpers.inherits;\n\n if (extensions) {\n helpers.extend(ChartElement.prototype, extensions);\n }\n\n ChartElement.__super__ = me.prototype;\n return ChartElement;\n }\n };\n\n module.exports = helpers;\n\n// DEPRECATIONS\n\n /**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\n helpers.callCallback = helpers.callback;\n\n /**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.indexOf = function (array, item, fromIndex) {\n return Array.prototype.indexOf.call(array, item, fromIndex);\n };\n\n /**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.getValueOrDefault = helpers.valueOrDefault;\n\n /**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n }, {}], 43: [function (require, module, exports) {\n 'use strict';\n\n var helpers = require(42);\n\n /**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\n var effects = {\n linear: function (t) {\n return t;\n },\n\n easeInQuad: function (t) {\n return t * t;\n },\n\n easeOutQuad: function (t) {\n return -t * (t - 2);\n },\n\n easeInOutQuad: function (t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t;\n }\n return -0.5 * ((--t) * (t - 2) - 1);\n },\n\n easeInCubic: function (t) {\n return t * t * t;\n },\n\n easeOutCubic: function (t) {\n return (t = t - 1) * t * t + 1;\n },\n\n easeInOutCubic: function (t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t * t;\n }\n return 0.5 * ((t -= 2) * t * t + 2);\n },\n\n easeInQuart: function (t) {\n return t * t * t * t;\n },\n\n easeOutQuart: function (t) {\n return -((t = t - 1) * t * t * t - 1);\n },\n\n easeInOutQuart: function (t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t * t * t;\n }\n return -0.5 * ((t -= 2) * t * t * t - 2);\n },\n\n easeInQuint: function (t) {\n return t * t * t * t * t;\n },\n\n easeOutQuint: function (t) {\n return (t = t - 1) * t * t * t * t + 1;\n },\n\n easeInOutQuint: function (t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t * t * t * t;\n }\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n },\n\n easeInSine: function (t) {\n return -Math.cos(t * (Math.PI / 2)) + 1;\n },\n\n easeOutSine: function (t) {\n return Math.sin(t * (Math.PI / 2));\n },\n\n easeInOutSine: function (t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n },\n\n easeInExpo: function (t) {\n return (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n },\n\n easeOutExpo: function (t) {\n return (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n },\n\n easeInOutExpo: function (t) {\n if (t === 0) {\n return 0;\n }\n if (t === 1) {\n return 1;\n }\n if ((t /= 0.5) < 1) {\n return 0.5 * Math.pow(2, 10 * (t - 1));\n }\n return 0.5 * (-Math.pow(2, -10 * --t) + 2);\n },\n\n easeInCirc: function (t) {\n if (t >= 1) {\n return t;\n }\n return -(Math.sqrt(1 - t * t) - 1);\n },\n\n easeOutCirc: function (t) {\n return Math.sqrt(1 - (t = t - 1) * t);\n },\n\n easeInOutCirc: function (t) {\n if ((t /= 0.5) < 1) {\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n }\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n },\n\n easeInElastic: function (t) {\n var s = 1.70158;\n var p = 0;\n var a = 1;\n if (t === 0) {\n return 0;\n }\n if (t === 1) {\n return 1;\n }\n if (!p) {\n p = 0.3;\n }\n if (a < 1) {\n a = 1;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(1 / a);\n }\n return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n },\n\n easeOutElastic: function (t) {\n var s = 1.70158;\n var p = 0;\n var a = 1;\n if (t === 0) {\n return 0;\n }\n if (t === 1) {\n return 1;\n }\n if (!p) {\n p = 0.3;\n }\n if (a < 1) {\n a = 1;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(1 / a);\n }\n return a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n },\n\n easeInOutElastic: function (t) {\n var s = 1.70158;\n var p = 0;\n var a = 1;\n if (t === 0) {\n return 0;\n }\n if ((t /= 0.5) === 2) {\n return 1;\n }\n if (!p) {\n p = 0.45;\n }\n if (a < 1) {\n a = 1;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(1 / a);\n }\n if (t < 1) {\n return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n }\n return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n },\n easeInBack: function (t) {\n var s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n\n easeOutBack: function (t) {\n var s = 1.70158;\n return (t = t - 1) * t * ((s + 1) * t + s) + 1;\n },\n\n easeInOutBack: function (t) {\n var 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\n easeInBounce: function (t) {\n return 1 - effects.easeOutBounce(1 - t);\n },\n\n easeOutBounce: function (t) {\n if (t < (1 / 2.75)) {\n return 7.5625 * t * t;\n }\n if (t < (2 / 2.75)) {\n return 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n }\n if (t < (2.5 / 2.75)) {\n return 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n }\n return 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n },\n\n easeInOutBounce: function (t) {\n if (t < 0.5) {\n return effects.easeInBounce(t * 2) * 0.5;\n }\n return effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n }\n };\n\n module.exports = {\n effects: effects\n };\n\n// DEPRECATIONS\n\n /**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.easingEffects = effects;\n\n }, {'42': 42}], 44: [function (require, module, exports) {\n 'use strict';\n\n var helpers = require(42);\n\n /**\n * @alias Chart.helpers.options\n * @namespace\n */\n module.exports = {\n /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param {Number|String} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param {Number} size - The font size (in pixels) used to resolve relative `value`.\n * @returns {Number} The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */\n toLineHeight: function (value, size) {\n var matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\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 case '%':\n value /= 100;\n break;\n default:\n break;\n }\n\n return size * value;\n },\n\n /**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param {Number|Object} value - If a number, set the value to all TRBL component,\n * else, if and object, use defined properties and sets undefined ones to 0.\n * @returns {Object} The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */\n toPadding: function (value) {\n var t, r, b, l;\n\n if (helpers.isObject(value)) {\n t = +value.top || 0;\n r = +value.right || 0;\n b = +value.bottom || 0;\n l = +value.left || 0;\n } else {\n t = r = b = l = +value || 0;\n }\n\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n height: t + b,\n width: l + r\n };\n },\n\n /**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param {Array[]} inputs - An array of values, falling back to the last value.\n * @param {Object} [context] - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param {Number} [index] - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @since 2.7.0\n */\n resolve: function (inputs, context, index) {\n var i, ilen, value;\n\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 }\n if (index !== undefined && helpers.isArray(value)) {\n value = value[index];\n }\n if (value !== undefined) {\n return value;\n }\n }\n }\n };\n\n }, {'42': 42}], 45: [function (require, module, exports) {\n 'use strict';\n\n module.exports = require(42);\n module.exports.easing = require(43);\n module.exports.canvas = require(41);\n module.exports.options = require(44);\n\n }, {'41': 41, '42': 42, '43': 43, '44': 44}], 46: [function (require, module, exports) {\n /**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\n module.exports = {\n acquireContext: function (item) {\n if (item && item.canvas) {\n // Support for any object associated to a canvas (including a context2d)\n item = item.canvas;\n }\n\n return item && item.getContext('2d') || null;\n }\n };\n\n }, {}], 47: [function (require, module, exports) {\n /**\n * Chart.Platform implementation for targeting a web browser\n */\n\n 'use strict';\n\n var helpers = require(45);\n\n var EXPANDO_KEY = '$chartjs';\n var CSS_PREFIX = 'chartjs-';\n var CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\n var CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\n var ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n\n /**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\n var EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n };\n\n /**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns {Number} Size in pixels or undefined if unknown.\n */\n function readUsedSize(element, property) {\n var value = helpers.getStyle(element, property);\n var matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? Number(matches[1]) : undefined;\n }\n\n /**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n */\n function initCanvas(canvas, config) {\n var style = canvas.style;\n\n // NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n // returns null or '' if no explicit value has been set to the canvas attribute.\n var renderHeight = canvas.getAttribute('height');\n var renderWidth = canvas.getAttribute('width');\n\n // Chart.js modifies some canvas values that we want to restore on destroy\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n\n // Force canvas to display as block to avoid extra space caused by inline\n // elements, which would interfere with the responsive resize process.\n // https://github.com/chartjs/Chart.js/issues/2538\n style.display = style.display || 'block';\n\n if (renderWidth === null || renderWidth === '') {\n var displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n\n if (renderHeight === null || renderHeight === '') {\n if (canvas.style.height === '') {\n // If no explicit render height and style height, let's apply the aspect ratio,\n // which one can be specified by the user but also by charts as default option\n // (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n canvas.height = canvas.width / (config.options.aspectRatio || 2);\n } else {\n var displayHeight = readUsedSize(canvas, 'height');\n if (displayWidth !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n\n return canvas;\n }\n\n /**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\n var supportsEventListenerOptions = (function () {\n var supports = false;\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n supports = true;\n }\n });\n window.addEventListener('e', null, options);\n } catch (e) {\n // continue regardless of error\n }\n return supports;\n }());\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\n var eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\n function addEventListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n\n function removeEventListener(node, type, listener) {\n node.removeEventListener(type, listener, eventListenerOptions);\n }\n\n function createEvent(type, chart, x, y, nativeEvent) {\n return {\n type: type,\n chart: chart,\n native: nativeEvent || null,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n }\n\n function fromNativeEvent(event, chart) {\n var type = EVENT_TYPES[event.type] || event.type;\n var pos = helpers.getRelativePosition(event, chart);\n return createEvent(type, chart, pos.x, pos.y, event);\n }\n\n function throttled(fn, thisArg) {\n var ticking = false;\n var args = [];\n\n return function () {\n args = Array.prototype.slice.call(arguments);\n thisArg = thisArg || this;\n\n if (!ticking) {\n ticking = true;\n helpers.requestAnimFrame.call(window, function () {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n }\n\n// Implementation based on https://github.com/marcj/css-element-queries\n function createResizer(handler) {\n var resizer = document.createElement('div');\n var cls = CSS_PREFIX + 'size-monitor';\n var maxSize = 1000000;\n var style =\n 'position:absolute;' +\n 'left:0;' +\n 'top:0;' +\n 'right:0;' +\n 'bottom:0;' +\n 'overflow:hidden;' +\n 'pointer-events:none;' +\n 'visibility:hidden;' +\n 'z-index:-1;';\n\n resizer.style.cssText = style;\n resizer.className = cls;\n resizer.innerHTML =\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n\n var expand = resizer.childNodes[0];\n var shrink = resizer.childNodes[1];\n\n resizer._reset = function () {\n expand.scrollLeft = maxSize;\n expand.scrollTop = maxSize;\n shrink.scrollLeft = maxSize;\n shrink.scrollTop = maxSize;\n };\n var onScroll = function () {\n resizer._reset();\n handler();\n };\n\n addEventListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n addEventListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n\n return resizer;\n }\n\n// https://davidwalsh.name/detect-node-insertion\n function watchForRender(node, handler) {\n var expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n var proxy = expando.renderProxy = function (e) {\n if (e.animationName === CSS_RENDER_ANIMATION) {\n handler();\n }\n };\n\n helpers.each(ANIMATION_START_EVENTS, function (type) {\n addEventListener(node, type, proxy);\n });\n\n // #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\n // is removed then added back immediately (same animation frame?). Accessing the\n // `offsetParent` property will force a reflow and re-evaluate the CSS animation.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\n // https://github.com/chartjs/Chart.js/issues/4737\n expando.reflow = !!node.offsetParent;\n\n node.classList.add(CSS_RENDER_MONITOR);\n }\n\n function unwatchForRender(node) {\n var expando = node[EXPANDO_KEY] || {};\n var proxy = expando.renderProxy;\n\n if (proxy) {\n helpers.each(ANIMATION_START_EVENTS, function (type) {\n removeEventListener(node, type, proxy);\n });\n\n delete expando.renderProxy;\n }\n\n node.classList.remove(CSS_RENDER_MONITOR);\n }\n\n function addResizeListener(node, listener, chart) {\n var expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n // Let's keep track of this added resizer and thus avoid DOM query when removing it.\n var resizer = expando.resizer = createResizer(throttled(function () {\n if (expando.resizer) {\n return listener(createEvent('resize', chart));\n }\n }));\n\n // The resizer needs to be attached to the node parent, so we first need to be\n // sure that `node` is attached to the DOM before injecting the resizer element.\n watchForRender(node, function () {\n if (expando.resizer) {\n var container = node.parentNode;\n if (container && container !== resizer.parentNode) {\n container.insertBefore(resizer, container.firstChild);\n }\n\n // The container size might have changed, let's reset the resizer state.\n resizer._reset();\n }\n });\n }\n\n function removeResizeListener(node) {\n var expando = node[EXPANDO_KEY] || {};\n var resizer = expando.resizer;\n\n delete expando.resizer;\n unwatchForRender(node);\n\n if (resizer && resizer.parentNode) {\n resizer.parentNode.removeChild(resizer);\n }\n }\n\n function injectCSS(platform, css) {\n // http://stackoverflow.com/q/3922139\n var style = platform._style || document.createElement('style');\n if (!platform._style) {\n platform._style = style;\n css = '/* Chart.js */\\n' + css;\n style.setAttribute('type', 'text/css');\n document.getElementsByTagName('head')[0].appendChild(style);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n\n module.exports = {\n /**\n * This property holds whether this platform is enabled for the current environment.\n * Currently used by platform.js to select the proper implementation.\n * @private\n */\n _enabled: typeof window !== 'undefined' && typeof document !== 'undefined',\n\n initialize: function () {\n var keyframes = 'from{opacity:0.99}to{opacity:1}';\n\n injectCSS(this,\n // DOM rendering detection\n // https://davidwalsh.name/detect-node-insertion\n '@-webkit-keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\n '@keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\n '.' + CSS_RENDER_MONITOR + '{' +\n '-webkit-animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\n 'animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\n '}'\n );\n },\n\n acquireContext: function (item, config) {\n if (typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item.length) {\n // Support for array based queries (such as jQuery)\n item = item[0];\n }\n\n if (item && item.canvas) {\n // Support for any object associated to a canvas (including a context2d)\n item = item.canvas;\n }\n\n // To prevent canvas fingerprinting, some add-ons undefine the getContext\n // method, for example: https://github.com/kkapsner/CanvasBlocker\n // https://github.com/chartjs/Chart.js/issues/2807\n var context = item && item.getContext && item.getContext('2d');\n\n // `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the item is\n // inside an iframe or when running in a protected environment. We could guess the\n // types from their toString() value but let's keep things flexible and assume it's\n // a sufficient condition if the item has a context2D which has item as `canvas`.\n // https://github.com/chartjs/Chart.js/issues/3887\n // https://github.com/chartjs/Chart.js/issues/4102\n // https://github.com/chartjs/Chart.js/issues/4152\n if (context && context.canvas === item) {\n initCanvas(item, config);\n return context;\n }\n\n return null;\n },\n\n releaseContext: function (context) {\n var canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return;\n }\n\n var initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach(function (prop) {\n var value = initial[prop];\n if (helpers.isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n\n helpers.each(initial.style || {}, function (value, key) {\n canvas.style[key] = value;\n });\n\n // The canvas render size might have been changed (and thus the state stack discarded),\n // we can't use save() and restore() to restore the initial state. So make sure that at\n // least the canvas context is reset to the default state by setting the canvas width.\n // https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n canvas.width = canvas.width;\n\n delete canvas[EXPANDO_KEY];\n },\n\n addEventListener: function (chart, type, listener) {\n var canvas = chart.canvas;\n if (type === 'resize') {\n // Note: the resize event is not supported on all browsers.\n addResizeListener(canvas, listener, chart);\n return;\n }\n\n var expando = listener[EXPANDO_KEY] || (listener[EXPANDO_KEY] = {});\n var proxies = expando.proxies || (expando.proxies = {});\n var proxy = proxies[chart.id + '_' + type] = function (event) {\n listener(fromNativeEvent(event, chart));\n };\n\n addEventListener(canvas, type, proxy);\n },\n\n removeEventListener: function (chart, type, listener) {\n var canvas = chart.canvas;\n if (type === 'resize') {\n // Note: the resize event is not supported on all browsers.\n removeResizeListener(canvas, listener);\n return;\n }\n\n var expando = listener[EXPANDO_KEY] || {};\n var proxies = expando.proxies || {};\n var proxy = proxies[chart.id + '_' + type];\n if (!proxy) {\n return;\n }\n\n removeEventListener(canvas, type, proxy);\n }\n };\n\n// DEPRECATIONS\n\n /**\n * Provided for backward compatibility, use EventTarget.addEventListener instead.\n * EventTarget.addEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n * @function Chart.helpers.addEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.addEvent = addEventListener;\n\n /**\n * Provided for backward compatibility, use EventTarget.removeEventListener instead.\n * EventTarget.removeEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener\n * @function Chart.helpers.removeEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\n helpers.removeEvent = removeEventListener;\n\n }, {'45': 45}], 48: [function (require, module, exports) {\n 'use strict';\n\n var helpers = require(45);\n var basic = require(46);\n var dom = require(47);\n\n// @TODO Make possible to select another platform at build time.\n var implementation = dom._enabled ? dom : basic;\n\n /**\n * @namespace Chart.platform\n * @see https://chartjs.gitbooks.io/proposals/content/Platform.html\n * @since 2.4.0\n */\n module.exports = helpers.extend({\n /**\n * @since 2.7.0\n */\n initialize: function () {\n },\n\n /**\n * Called at chart construction time, returns a context2d instance implementing\n * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n * @param {*} item - The native item from which to acquire context (platform specific)\n * @param {Object} options - The chart options\n * @returns {CanvasRenderingContext2D} context2d instance\n */\n acquireContext: function () {\n },\n\n /**\n * Called at chart destruction time, releases any resources associated to the context\n * previously returned by the acquireContext() method.\n * @param {CanvasRenderingContext2D} context - The context2d instance\n * @returns {Boolean} true if the method succeeded, else false\n */\n releaseContext: function () {\n },\n\n /**\n * Registers the specified listener on the given chart.\n * @param {Chart} chart - Chart from which to listen for event\n * @param {String} type - The ({@link IEvent}) type to listen for\n * @param {Function} listener - Receives a notification (an object that implements\n * the {@link IEvent} interface) when an event of the specified type occurs.\n */\n addEventListener: function () {\n },\n\n /**\n * Removes the specified listener previously registered with addEventListener.\n * @param {Chart} chart -Chart from which to remove the listener\n * @param {String} type - The ({@link IEvent}) type to remove\n * @param {Function} listener - The listener function to remove from the event target.\n */\n removeEventListener: function () {\n }\n\n }, implementation);\n\n /**\n * @interface IPlatform\n * Allows abstracting platform dependencies away from the chart\n * @borrows Chart.platform.acquireContext as acquireContext\n * @borrows Chart.platform.releaseContext as releaseContext\n * @borrows Chart.platform.addEventListener as addEventListener\n * @borrows Chart.platform.removeEventListener as removeEventListener\n */\n\n /**\n * @interface IEvent\n * @prop {String} type - The event type name, possible values are:\n * 'contextmenu', 'mouseenter', 'mousedown', 'mousemove', 'mouseup', 'mouseout',\n * 'click', 'dblclick', 'keydown', 'keypress', 'keyup' and 'resize'\n * @prop {*} native - The original native event (null for emulated events, e.g. 'resize')\n * @prop {Number} x - The mouse x position, relative to the canvas (null for incompatible events)\n * @prop {Number} y - The mouse y position, relative to the canvas (null for incompatible events)\n */\n\n }, {'45': 45, '46': 46, '47': 47}], 49: [function (require, module, exports) {\n 'use strict';\n\n module.exports = {};\n module.exports.filler = require(50);\n module.exports.legend = require(51);\n module.exports.title = require(52);\n\n }, {'50': 50, '51': 51, '52': 52}], 50: [function (require, module, exports) {\n /**\n * Plugin based on discussion from the following Chart.js issues:\n * @see https://github.com/chartjs/Chart.js/issues/2380#issuecomment-279961569\n * @see https://github.com/chartjs/Chart.js/issues/2440#issuecomment-256461897\n */\n\n 'use strict';\n\n var defaults = require(25);\n var elements = require(40);\n var helpers = require(45);\n\n defaults._set('global', {\n plugins: {\n filler: {\n propagate: true\n }\n }\n });\n\n var mappers = {\n dataset: function (source) {\n var index = source.fill;\n var chart = source.chart;\n var meta = chart.getDatasetMeta(index);\n var visible = meta && chart.isDatasetVisible(index);\n var points = (visible && meta.dataset._children) || [];\n var length = points.length || 0;\n\n return !length ? null : function (point, i) {\n return (i < length && points[i]._view) || null;\n };\n },\n\n boundary: function (source) {\n var boundary = source.boundary;\n var x = boundary ? boundary.x : null;\n var y = boundary ? boundary.y : null;\n\n return function (point) {\n return {\n x: x === null ? point.x : x,\n y: y === null ? point.y : y,\n };\n };\n }\n };\n\n// @todo if (fill[0] === '#')\n function decodeFill(el, index, count) {\n var model = el._model || {};\n var fill = model.fill;\n var target;\n\n if (fill === undefined) {\n fill = !!model.backgroundColor;\n }\n\n if (fill === false || fill === null) {\n return false;\n }\n\n if (fill === true) {\n return 'origin';\n }\n\n target = parseFloat(fill, 10);\n if (isFinite(target) && Math.floor(target) === target) {\n if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n\n return target;\n }\n\n switch (fill) {\n // compatibility\n case 'bottom':\n return 'start';\n case 'top':\n return 'end';\n case 'zero':\n return 'origin';\n // supported boundaries\n case 'origin':\n case 'start':\n case 'end':\n return fill;\n // invalid fill values\n default:\n return false;\n }\n }\n\n function computeBoundary(source) {\n var model = source.el._model || {};\n var scale = source.el._scale || {};\n var fill = source.fill;\n var target = null;\n var horizontal;\n\n if (isFinite(fill)) {\n return null;\n }\n\n // Backward compatibility: until v3, we still need to support boundary values set on\n // the model (scaleTop, scaleBottom and scaleZero) because some external plugins and\n // controllers might still use it (e.g. the Smith chart).\n\n if (fill === 'start') {\n target = model.scaleBottom === undefined ? scale.bottom : model.scaleBottom;\n } else if (fill === 'end') {\n target = model.scaleTop === undefined ? scale.top : model.scaleTop;\n } else if (model.scaleZero !== undefined) {\n target = model.scaleZero;\n } else if (scale.getBasePosition) {\n target = scale.getBasePosition();\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n\n if (target !== undefined && target !== null) {\n if (target.x !== undefined && target.y !== undefined) {\n return target;\n }\n\n if (typeof target === 'number' && isFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n }\n\n return null;\n }\n\n function resolveTarget(sources, index, propagate) {\n var source = sources[index];\n var fill = source.fill;\n var visited = [index];\n var target;\n\n if (!propagate) {\n return fill;\n }\n\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isFinite(fill)) {\n return fill;\n }\n\n target = sources[fill];\n if (!target) {\n return false;\n }\n\n if (target.visible) {\n return fill;\n }\n\n visited.push(fill);\n fill = target.fill;\n }\n\n return false;\n }\n\n function createMapper(source) {\n var fill = source.fill;\n var type = 'dataset';\n\n if (fill === false) {\n return null;\n }\n\n if (!isFinite(fill)) {\n type = 'boundary';\n }\n\n return mappers[type](source);\n }\n\n function isDrawable(point) {\n return point && !point.skip;\n }\n\n function drawArea(ctx, curve0, curve1, len0, len1) {\n var i;\n\n if (!len0 || !len1) {\n return;\n }\n\n // building first area curve (normal)\n ctx.moveTo(curve0[0].x, curve0[0].y);\n for (i = 1; i < len0; ++i) {\n helpers.canvas.lineTo(ctx, curve0[i - 1], curve0[i]);\n }\n\n // joining the two area curves\n ctx.lineTo(curve1[len1 - 1].x, curve1[len1 - 1].y);\n\n // building opposite area curve (reverse)\n for (i = len1 - 1; i > 0; --i) {\n helpers.canvas.lineTo(ctx, curve1[i], curve1[i - 1], true);\n }\n }\n\n function doFill(ctx, points, mapper, view, color, loop) {\n var count = points.length;\n var span = view.spanGaps;\n var curve0 = [];\n var curve1 = [];\n var len0 = 0;\n var len1 = 0;\n var i, ilen, index, p0, p1, d0, d1;\n\n ctx.beginPath();\n\n for (i = 0, ilen = (count + !!loop); i < ilen; ++i) {\n index = i % count;\n p0 = points[index]._view;\n p1 = mapper(p0, index, view);\n d0 = isDrawable(p0);\n d1 = isDrawable(p1);\n\n if (d0 && d1) {\n len0 = curve0.push(p0);\n len1 = curve1.push(p1);\n } else if (len0 && len1) {\n if (!span) {\n drawArea(ctx, curve0, curve1, len0, len1);\n len0 = len1 = 0;\n curve0 = [];\n curve1 = [];\n } else {\n if (d0) {\n curve0.push(p0);\n }\n if (d1) {\n curve1.push(p1);\n }\n }\n }\n }\n\n drawArea(ctx, curve0, curve1, len0, len1);\n\n ctx.closePath();\n ctx.fillStyle = color;\n ctx.fill();\n }\n\n module.exports = {\n id: 'filler',\n\n afterDatasetsUpdate: function (chart, options) {\n var count = (chart.data.datasets || []).length;\n var propagate = options.propagate;\n var sources = [];\n var meta, i, el, source;\n\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n el = meta.dataset;\n source = null;\n\n if (el && el._model && el instanceof elements.Line) {\n source = {\n visible: chart.isDatasetVisible(i),\n fill: decodeFill(el, i, count),\n chart: chart,\n el: el\n };\n }\n\n meta.$filler = source;\n sources.push(source);\n }\n\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source) {\n continue;\n }\n\n source.fill = resolveTarget(sources, i, propagate);\n source.boundary = computeBoundary(source);\n source.mapper = createMapper(source);\n }\n },\n\n beforeDatasetDraw: function (chart, args) {\n var meta = args.meta.$filler;\n if (!meta) {\n return;\n }\n\n var ctx = chart.ctx;\n var el = meta.el;\n var view = el._view;\n var points = el._children || [];\n var mapper = meta.mapper;\n var color = view.backgroundColor || defaults.global.defaultColor;\n\n if (mapper && color && points.length) {\n helpers.canvas.clipArea(ctx, chart.chartArea);\n doFill(ctx, points, mapper, view, color, el._loop);\n helpers.canvas.unclipArea(ctx);\n }\n }\n };\n\n }, {'25': 25, '40': 40, '45': 45}], 51: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n var layouts = require(30);\n\n var noop = helpers.noop;\n\n defaults._set('global', {\n legend: {\n display: true,\n position: 'top',\n fullWidth: true,\n reverse: false,\n weight: 1000,\n\n // a callback that will handle\n onClick: function (e, legendItem) {\n var index = legendItem.datasetIndex;\n var ci = this.chart;\n var meta = ci.getDatasetMeta(index);\n\n // See controller.isDatasetVisible comment\n meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;\n\n // We hid a dataset ... rerender the chart\n ci.update();\n },\n\n onHover: null,\n\n labels: {\n boxWidth: 40,\n padding: 10,\n // Generates labels shown in the legend\n // Valid properties to return:\n // text : text to display\n // fillStyle : fill of coloured box\n // strokeStyle: stroke of coloured box\n // hidden : if this legend item refers to a hidden item\n // lineCap : cap style for line\n // lineDash\n // lineDashOffset :\n // lineJoin :\n // lineWidth :\n generateLabels: function (chart) {\n var data = chart.data;\n return helpers.isArray(data.datasets) ? data.datasets.map(function (dataset, i) {\n return {\n text: dataset.label,\n fillStyle: (!helpers.isArray(dataset.backgroundColor) ? dataset.backgroundColor : dataset.backgroundColor[0]),\n hidden: !chart.isDatasetVisible(i),\n lineCap: dataset.borderCapStyle,\n lineDash: dataset.borderDash,\n lineDashOffset: dataset.borderDashOffset,\n lineJoin: dataset.borderJoinStyle,\n lineWidth: dataset.borderWidth,\n strokeStyle: dataset.borderColor,\n pointStyle: dataset.pointStyle,\n\n // Below is extra data used for toggling the datasets\n datasetIndex: i\n };\n }, this) : [];\n }\n }\n },\n\n legendCallback: function (chart) {\n var text = [];\n text.push('');\n return text.join('');\n }\n });\n\n /**\n * Helper function to get the box width based on the usePointStyle option\n * @param labelopts {Object} the label options on the legend\n * @param fontSize {Number} the label font size\n * @return {Number} width of the color box area\n */\n function getBoxWidth(labelOpts, fontSize) {\n return labelOpts.usePointStyle ?\n fontSize * Math.SQRT2 :\n labelOpts.boxWidth;\n }\n\n /**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\n var Legend = Element.extend({\n\n initialize: function (config) {\n helpers.extend(this, config);\n\n // Contains hit boxes for each dataset (in dataset order)\n this.legendHitBoxes = [];\n\n // Are we in doughnut mode which has a different data type\n this.doughnutMode = false;\n },\n\n // These methods are ordered by lifecycle. Utilities then follow.\n // Any function defined here is inherited by all legend types.\n // Any function can be extended by the legend type\n\n beforeUpdate: noop,\n update: function (maxWidth, maxHeight, margins) {\n var me = this;\n\n // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n me.beforeUpdate();\n\n // Absorb the master measurements\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me.margins = margins;\n\n // Dimensions\n me.beforeSetDimensions();\n me.setDimensions();\n me.afterSetDimensions();\n // Labels\n me.beforeBuildLabels();\n me.buildLabels();\n me.afterBuildLabels();\n\n // Fit\n me.beforeFit();\n me.fit();\n me.afterFit();\n //\n me.afterUpdate();\n\n return me.minSize;\n },\n afterUpdate: noop,\n\n //\n\n beforeSetDimensions: noop,\n setDimensions: function () {\n var me = this;\n // Set the unconstrained dimension before label rotation\n if (me.isHorizontal()) {\n // Reset position before calculating rotation\n me.width = me.maxWidth;\n me.left = 0;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n\n // Reset position before calculating rotation\n me.top = 0;\n me.bottom = me.height;\n }\n\n // Reset padding\n me.paddingLeft = 0;\n me.paddingTop = 0;\n me.paddingRight = 0;\n me.paddingBottom = 0;\n\n // Reset minSize\n me.minSize = {\n width: 0,\n height: 0\n };\n },\n afterSetDimensions: noop,\n\n //\n\n beforeBuildLabels: noop,\n buildLabels: function () {\n var me = this;\n var labelOpts = me.options.labels || {};\n var legendItems = helpers.callback(labelOpts.generateLabels, [me.chart], me) || [];\n\n if (labelOpts.filter) {\n legendItems = legendItems.filter(function (item) {\n return labelOpts.filter(item, me.chart.data);\n });\n }\n\n if (me.options.reverse) {\n legendItems.reverse();\n }\n\n me.legendItems = legendItems;\n },\n afterBuildLabels: noop,\n\n //\n\n beforeFit: noop,\n fit: function () {\n var me = this;\n var opts = me.options;\n var labelOpts = opts.labels;\n var display = opts.display;\n\n var ctx = me.ctx;\n\n var globalDefault = defaults.global;\n var valueOrDefault = helpers.valueOrDefault;\n var fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\n var fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\n var fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\n var labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n\n // Reset hit boxes\n var hitboxes = me.legendHitBoxes = [];\n\n var minSize = me.minSize;\n var isHorizontal = me.isHorizontal();\n\n if (isHorizontal) {\n minSize.width = me.maxWidth; // fill all the width\n minSize.height = display ? 10 : 0;\n } else {\n minSize.width = display ? 10 : 0;\n minSize.height = me.maxHeight; // fill all the height\n }\n\n // Increase sizes here\n if (display) {\n ctx.font = labelFont;\n\n if (isHorizontal) {\n // Labels\n\n // Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n var lineWidths = me.lineWidths = [0];\n var totalHeight = me.legendItems.length ? fontSize + (labelOpts.padding) : 0;\n\n ctx.textAlign = 'left';\n ctx.textBaseline = 'top';\n\n helpers.each(me.legendItems, function (legendItem, i) {\n var boxWidth = getBoxWidth(labelOpts, fontSize);\n var width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n if (lineWidths[lineWidths.length - 1] + width + labelOpts.padding >= me.width) {\n totalHeight += fontSize + (labelOpts.padding);\n lineWidths[lineWidths.length] = me.left;\n }\n\n // Store the hitbox width and height here. Final position will be updated in `draw`\n hitboxes[i] = {\n left: 0,\n top: 0,\n width: width,\n height: fontSize\n };\n\n lineWidths[lineWidths.length - 1] += width + labelOpts.padding;\n });\n\n minSize.height += totalHeight;\n\n } else {\n var vPadding = labelOpts.padding;\n var columnWidths = me.columnWidths = [];\n var totalWidth = labelOpts.padding;\n var currentColWidth = 0;\n var currentColHeight = 0;\n var itemHeight = fontSize + vPadding;\n\n helpers.each(me.legendItems, function (legendItem, i) {\n var boxWidth = getBoxWidth(labelOpts, fontSize);\n var itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n // If too tall, go to new column\n if (currentColHeight + itemHeight > minSize.height) {\n totalWidth += currentColWidth + labelOpts.padding;\n columnWidths.push(currentColWidth); // previous column width\n\n currentColWidth = 0;\n currentColHeight = 0;\n }\n\n // Get max width\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight;\n\n // Store the hitbox width and height here. Final position will be updated in `draw`\n hitboxes[i] = {\n left: 0,\n top: 0,\n width: itemWidth,\n height: fontSize\n };\n });\n\n totalWidth += currentColWidth;\n columnWidths.push(currentColWidth);\n minSize.width += totalWidth;\n }\n }\n\n me.width = minSize.width;\n me.height = minSize.height;\n },\n afterFit: noop,\n\n // Shared Methods\n isHorizontal: function () {\n return this.options.position === 'top' || this.options.position === 'bottom';\n },\n\n // Actually draw the legend on the canvas\n draw: function () {\n var me = this;\n var opts = me.options;\n var labelOpts = opts.labels;\n var globalDefault = defaults.global;\n var lineDefault = globalDefault.elements.line;\n var legendWidth = me.width;\n var lineWidths = me.lineWidths;\n\n if (opts.display) {\n var ctx = me.ctx;\n var valueOrDefault = helpers.valueOrDefault;\n var fontColor = valueOrDefault(labelOpts.fontColor, globalDefault.defaultFontColor);\n var fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\n var fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\n var fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\n var labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n var cursor;\n\n // Canvas setup\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.strokeStyle = fontColor; // for strikethrough effect\n ctx.fillStyle = fontColor; // render in correct colour\n ctx.font = labelFont;\n\n var boxWidth = getBoxWidth(labelOpts, fontSize);\n var hitboxes = me.legendHitBoxes;\n\n // current position\n var drawLegendBox = function (x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0) {\n return;\n }\n\n // Set the ctx for the box\n ctx.save();\n\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, globalDefault.defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, lineDefault.borderCapStyle);\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, lineDefault.borderDashOffset);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, lineDefault.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth);\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, globalDefault.defaultColor);\n var isLineWidthZero = (valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth) === 0);\n\n if (ctx.setLineDash) {\n // IE 9 and 10 do not support line dash\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, lineDefault.borderDash));\n }\n\n if (opts.labels && opts.labels.usePointStyle) {\n // Recalculate x and y for drawPoint() because its expecting\n // x and y to be center of figure (instead of top left)\n var radius = fontSize * Math.SQRT2 / 2;\n var offSet = radius / Math.SQRT2;\n var centerX = x + offSet;\n var centerY = y + offSet;\n\n // Draw pointStyle as legend symbol\n helpers.canvas.drawPoint(ctx, legendItem.pointStyle, radius, centerX, centerY);\n } else {\n // Draw box as legend symbol\n if (!isLineWidthZero) {\n ctx.strokeRect(x, y, boxWidth, fontSize);\n }\n ctx.fillRect(x, y, boxWidth, fontSize);\n }\n\n ctx.restore();\n };\n var fillText = function (x, y, legendItem, textWidth) {\n var halfFontSize = fontSize / 2;\n var xLeft = boxWidth + halfFontSize + x;\n var yMiddle = y + halfFontSize;\n\n ctx.fillText(legendItem.text, xLeft, yMiddle);\n\n if (legendItem.hidden) {\n // Strikethrough the text if hidden\n ctx.beginPath();\n ctx.lineWidth = 2;\n ctx.moveTo(xLeft, yMiddle);\n ctx.lineTo(xLeft + textWidth, yMiddle);\n ctx.stroke();\n }\n };\n\n // Horizontal\n var isHorizontal = me.isHorizontal();\n if (isHorizontal) {\n cursor = {\n x: me.left + ((legendWidth - lineWidths[0]) / 2),\n y: me.top + labelOpts.padding,\n line: 0\n };\n } else {\n cursor = {\n x: me.left + labelOpts.padding,\n y: me.top + labelOpts.padding,\n line: 0\n };\n }\n\n var itemHeight = fontSize + labelOpts.padding;\n helpers.each(me.legendItems, function (legendItem, i) {\n var textWidth = ctx.measureText(legendItem.text).width;\n var width = boxWidth + (fontSize / 2) + textWidth;\n var x = cursor.x;\n var y = cursor.y;\n\n if (isHorizontal) {\n if (x + width >= legendWidth) {\n y = cursor.y += itemHeight;\n cursor.line++;\n x = cursor.x = me.left + ((legendWidth - lineWidths[cursor.line]) / 2);\n }\n } else if (y + itemHeight > me.bottom) {\n x = cursor.x = x + me.columnWidths[cursor.line] + labelOpts.padding;\n y = cursor.y = me.top + labelOpts.padding;\n cursor.line++;\n }\n\n drawLegendBox(x, y, legendItem);\n\n hitboxes[i].left = x;\n hitboxes[i].top = y;\n\n // Fill the actual label\n fillText(x, y, legendItem, textWidth);\n\n if (isHorizontal) {\n cursor.x += width + (labelOpts.padding);\n } else {\n cursor.y += itemHeight;\n }\n\n });\n }\n },\n\n /**\n * Handle an event\n * @private\n * @param {IEvent} event - The event to handle\n * @return {Boolean} true if a change occured\n */\n handleEvent: function (e) {\n var me = this;\n var opts = me.options;\n var type = e.type === 'mouseup' ? 'click' : e.type;\n var changed = false;\n\n if (type === 'mousemove') {\n if (!opts.onHover) {\n return;\n }\n } else if (type === 'click') {\n if (!opts.onClick) {\n return;\n }\n } else {\n return;\n }\n\n // Chart event already has relative position in it\n var x = e.x;\n var y = e.y;\n\n if (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\n // See if we are touching one of the dataset boxes\n var lh = me.legendHitBoxes;\n for (var i = 0; i < lh.length; ++i) {\n var hitBox = lh[i];\n\n if (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n // Touching an element\n if (type === 'click') {\n // use e.native for backwards compatibility\n opts.onClick.call(me, e.native, me.legendItems[i]);\n changed = true;\n break;\n } else if (type === 'mousemove') {\n // use e.native for backwards compatibility\n opts.onHover.call(me, e.native, me.legendItems[i]);\n changed = true;\n break;\n }\n }\n }\n }\n\n return changed;\n }\n });\n\n function createNewLegendAndAttach(chart, legendOpts) {\n var legend = new Legend({\n ctx: chart.ctx,\n options: legendOpts,\n chart: chart\n });\n\n layouts.configure(chart, legend, legendOpts);\n layouts.addBox(chart, legend);\n chart.legend = legend;\n }\n\n module.exports = {\n id: 'legend',\n\n /**\n * Backward compatibility: since 2.1.5, the legend is registered as a plugin, making\n * Chart.Legend obsolete. To avoid a breaking change, we export the Legend as part of\n * the plugin, which one will be re-exposed in the chart.js file.\n * https://github.com/chartjs/Chart.js/pull/2640\n * @private\n */\n _element: Legend,\n\n beforeInit: function (chart) {\n var legendOpts = chart.options.legend;\n\n if (legendOpts) {\n createNewLegendAndAttach(chart, legendOpts);\n }\n },\n\n beforeUpdate: function (chart) {\n var legendOpts = chart.options.legend;\n var legend = chart.legend;\n\n if (legendOpts) {\n helpers.mergeIf(legendOpts, defaults.global.legend);\n\n if (legend) {\n layouts.configure(chart, legend, legendOpts);\n legend.options = legendOpts;\n } else {\n createNewLegendAndAttach(chart, legendOpts);\n }\n } else if (legend) {\n layouts.removeBox(chart, legend);\n delete chart.legend;\n }\n },\n\n afterEvent: function (chart, e) {\n var legend = chart.legend;\n if (legend) {\n legend.handleEvent(e);\n }\n }\n };\n\n }, {'25': 25, '26': 26, '30': 30, '45': 45}], 52: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var Element = require(26);\n var helpers = require(45);\n var layouts = require(30);\n\n var noop = helpers.noop;\n\n defaults._set('global', {\n title: {\n display: false,\n fontStyle: 'bold',\n fullWidth: true,\n lineHeight: 1.2,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000 // by default greater than legend (1000) to be above\n }\n });\n\n /**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\n var Title = Element.extend({\n initialize: function (config) {\n var me = this;\n helpers.extend(me, config);\n\n // Contains hit boxes for each dataset (in dataset order)\n me.legendHitBoxes = [];\n },\n\n // These methods are ordered by lifecycle. Utilities then follow.\n\n beforeUpdate: noop,\n update: function (maxWidth, maxHeight, margins) {\n var me = this;\n\n // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n me.beforeUpdate();\n\n // Absorb the master measurements\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me.margins = margins;\n\n // Dimensions\n me.beforeSetDimensions();\n me.setDimensions();\n me.afterSetDimensions();\n // Labels\n me.beforeBuildLabels();\n me.buildLabels();\n me.afterBuildLabels();\n\n // Fit\n me.beforeFit();\n me.fit();\n me.afterFit();\n //\n me.afterUpdate();\n\n return me.minSize;\n\n },\n afterUpdate: noop,\n\n //\n\n beforeSetDimensions: noop,\n setDimensions: function () {\n var me = this;\n // Set the unconstrained dimension before label rotation\n if (me.isHorizontal()) {\n // Reset position before calculating rotation\n me.width = me.maxWidth;\n me.left = 0;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n\n // Reset position before calculating rotation\n me.top = 0;\n me.bottom = me.height;\n }\n\n // Reset padding\n me.paddingLeft = 0;\n me.paddingTop = 0;\n me.paddingRight = 0;\n me.paddingBottom = 0;\n\n // Reset minSize\n me.minSize = {\n width: 0,\n height: 0\n };\n },\n afterSetDimensions: noop,\n\n //\n\n beforeBuildLabels: noop,\n buildLabels: noop,\n afterBuildLabels: noop,\n\n //\n\n beforeFit: noop,\n fit: function () {\n var me = this;\n var valueOrDefault = helpers.valueOrDefault;\n var opts = me.options;\n var display = opts.display;\n var fontSize = valueOrDefault(opts.fontSize, defaults.global.defaultFontSize);\n var minSize = me.minSize;\n var lineCount = helpers.isArray(opts.text) ? opts.text.length : 1;\n var lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\n var textSize = display ? (lineCount * lineHeight) + (opts.padding * 2) : 0;\n\n if (me.isHorizontal()) {\n minSize.width = me.maxWidth; // fill all the width\n minSize.height = textSize;\n } else {\n minSize.width = textSize;\n minSize.height = me.maxHeight; // fill all the height\n }\n\n me.width = minSize.width;\n me.height = minSize.height;\n\n },\n afterFit: noop,\n\n // Shared Methods\n isHorizontal: function () {\n var pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n },\n\n // Actually draw the title block on the canvas\n draw: function () {\n var me = this;\n var ctx = me.ctx;\n var valueOrDefault = helpers.valueOrDefault;\n var opts = me.options;\n var globalDefaults = defaults.global;\n\n if (opts.display) {\n var fontSize = valueOrDefault(opts.fontSize, globalDefaults.defaultFontSize);\n var fontStyle = valueOrDefault(opts.fontStyle, globalDefaults.defaultFontStyle);\n var fontFamily = valueOrDefault(opts.fontFamily, globalDefaults.defaultFontFamily);\n var titleFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n var lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\n var offset = lineHeight / 2 + opts.padding;\n var rotation = 0;\n var top = me.top;\n var left = me.left;\n var bottom = me.bottom;\n var right = me.right;\n var maxWidth, titleX, titleY;\n\n ctx.fillStyle = valueOrDefault(opts.fontColor, globalDefaults.defaultFontColor); // render in correct colour\n ctx.font = titleFont;\n\n // Horizontal\n if (me.isHorizontal()) {\n titleX = left + ((right - left) / 2); // midpoint of the width\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n titleX = opts.position === 'left' ? left + offset : right - offset;\n titleY = top + ((bottom - top) / 2);\n maxWidth = bottom - top;\n rotation = Math.PI * (opts.position === 'left' ? -0.5 : 0.5);\n }\n\n ctx.save();\n ctx.translate(titleX, titleY);\n ctx.rotate(rotation);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n var text = opts.text;\n if (helpers.isArray(text)) {\n var y = 0;\n for (var i = 0; i < text.length; ++i) {\n ctx.fillText(text[i], 0, y, maxWidth);\n y += lineHeight;\n }\n } else {\n ctx.fillText(text, 0, 0, maxWidth);\n }\n\n ctx.restore();\n }\n }\n });\n\n function createNewTitleBlockAndAttach(chart, titleOpts) {\n var title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart: chart\n });\n\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n }\n\n module.exports = {\n id: 'title',\n\n /**\n * Backward compatibility: since 2.1.5, the title is registered as a plugin, making\n * Chart.Title obsolete. To avoid a breaking change, we export the Title as part of\n * the plugin, which one will be re-exposed in the chart.js file.\n * https://github.com/chartjs/Chart.js/pull/2640\n * @private\n */\n _element: Title,\n\n beforeInit: function (chart) {\n var titleOpts = chart.options.title;\n\n if (titleOpts) {\n createNewTitleBlockAndAttach(chart, titleOpts);\n }\n },\n\n beforeUpdate: function (chart) {\n var titleOpts = chart.options.title;\n var titleBlock = chart.titleBlock;\n\n if (titleOpts) {\n helpers.mergeIf(titleOpts, defaults.global.title);\n\n if (titleBlock) {\n layouts.configure(chart, titleBlock, titleOpts);\n titleBlock.options = titleOpts;\n } else {\n createNewTitleBlockAndAttach(chart, titleOpts);\n }\n } else if (titleBlock) {\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n }\n }\n };\n\n }, {'25': 25, '26': 26, '30': 30, '45': 45}], 53: [function (require, module, exports) {\n 'use strict';\n\n module.exports = function (Chart) {\n\n // Default config for a category scale\n var defaultConfig = {\n position: 'bottom'\n };\n\n var DatasetScale = Chart.Scale.extend({\n /**\n * Internal function to get the correct labels. If data.xLabels or data.yLabels are defined, use those\n * else fall back to data.labels\n * @private\n */\n getLabels: function () {\n var data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels;\n },\n\n determineDataLimits: function () {\n var me = this;\n var labels = me.getLabels();\n me.minIndex = 0;\n me.maxIndex = labels.length - 1;\n var findIndex;\n\n if (me.options.ticks.min !== undefined) {\n // user specified min value\n findIndex = labels.indexOf(me.options.ticks.min);\n me.minIndex = findIndex !== -1 ? findIndex : me.minIndex;\n }\n\n if (me.options.ticks.max !== undefined) {\n // user specified max value\n findIndex = labels.indexOf(me.options.ticks.max);\n me.maxIndex = findIndex !== -1 ? findIndex : me.maxIndex;\n }\n\n me.min = labels[me.minIndex];\n me.max = labels[me.maxIndex];\n },\n\n buildTicks: function () {\n var me = this;\n var labels = me.getLabels();\n // If we are viewing some subset of labels, slice the original array\n me.ticks = (me.minIndex === 0 && me.maxIndex === labels.length - 1) ? labels : labels.slice(me.minIndex, me.maxIndex + 1);\n },\n\n getLabelForIndex: function (index, datasetIndex) {\n var me = this;\n var data = me.chart.data;\n var isHorizontal = me.isHorizontal();\n\n if (data.yLabels && !isHorizontal) {\n return me.getRightValue(data.datasets[datasetIndex].data[index]);\n }\n return me.ticks[index - me.minIndex];\n },\n\n // Used to get data value locations. Value can either be an index or a numerical value\n getPixelForValue: function (value, index) {\n var me = this;\n var offset = me.options.offset;\n // 1 is added because we need the length but we have the indexes\n var offsetAmt = Math.max((me.maxIndex + 1 - me.minIndex - (offset ? 0 : 1)), 1);\n\n // If value is a data object, then index is the index in the data array,\n // not the index of the scale. We need to change that.\n var valueCategory;\n if (value !== undefined && value !== null) {\n valueCategory = me.isHorizontal() ? value.x : value.y;\n }\n if (valueCategory !== undefined || (value !== undefined && isNaN(index))) {\n var labels = me.getLabels();\n value = valueCategory || value;\n var idx = labels.indexOf(value);\n index = idx !== -1 ? idx : index;\n }\n\n if (me.isHorizontal()) {\n var valueWidth = me.width / offsetAmt;\n var widthOffset = (valueWidth * (index - me.minIndex));\n\n if (offset) {\n widthOffset += (valueWidth / 2);\n }\n\n return me.left + Math.round(widthOffset);\n }\n var valueHeight = me.height / offsetAmt;\n var heightOffset = (valueHeight * (index - me.minIndex));\n\n if (offset) {\n heightOffset += (valueHeight / 2);\n }\n\n return me.top + Math.round(heightOffset);\n },\n getPixelForTick: function (index) {\n return this.getPixelForValue(this.ticks[index], index + this.minIndex, null);\n },\n getValueForPixel: function (pixel) {\n var me = this;\n var offset = me.options.offset;\n var value;\n var offsetAmt = Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\n var horz = me.isHorizontal();\n var valueDimension = (horz ? me.width : me.height) / offsetAmt;\n\n pixel -= horz ? me.left : me.top;\n\n if (offset) {\n pixel -= (valueDimension / 2);\n }\n\n if (pixel <= 0) {\n value = 0;\n } else {\n value = Math.round(pixel / valueDimension);\n }\n\n return value + me.minIndex;\n },\n getBasePixel: function () {\n return this.bottom;\n }\n });\n\n Chart.scaleService.registerScaleType('category', DatasetScale, defaultConfig);\n\n };\n\n }, {}], 54: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var helpers = require(45);\n var Ticks = require(34);\n\n module.exports = function (Chart) {\n\n var defaultConfig = {\n position: 'left',\n ticks: {\n callback: Ticks.formatters.linear\n }\n };\n\n var LinearScale = Chart.LinearScaleBase.extend({\n\n determineDataLimits: function () {\n var me = this;\n var opts = me.options;\n var chart = me.chart;\n var data = chart.data;\n var datasets = data.datasets;\n var isHorizontal = me.isHorizontal();\n var DEFAULT_MIN = 0;\n var DEFAULT_MAX = 1;\n\n function IDMatches(meta) {\n return isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n }\n\n // First Calculate the range\n me.min = null;\n me.max = null;\n\n var hasStacks = opts.stacked;\n if (hasStacks === undefined) {\n helpers.each(datasets, function (dataset, datasetIndex) {\n if (hasStacks) {\n return;\n }\n\n var meta = chart.getDatasetMeta(datasetIndex);\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n meta.stack !== undefined) {\n hasStacks = true;\n }\n });\n }\n\n if (opts.stacked || hasStacks) {\n var valuesPerStack = {};\n\n helpers.each(datasets, function (dataset, datasetIndex) {\n var meta = chart.getDatasetMeta(datasetIndex);\n var key = [\n meta.type,\n // we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n ((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n meta.stack\n ].join('.');\n\n if (valuesPerStack[key] === undefined) {\n valuesPerStack[key] = {\n positiveValues: [],\n negativeValues: []\n };\n }\n\n // Store these per type\n var positiveValues = valuesPerStack[key].positiveValues;\n var negativeValues = valuesPerStack[key].negativeValues;\n\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n helpers.each(dataset.data, function (rawValue, index) {\n var value = +me.getRightValue(rawValue);\n if (isNaN(value) || meta.data[index].hidden) {\n return;\n }\n\n positiveValues[index] = positiveValues[index] || 0;\n negativeValues[index] = negativeValues[index] || 0;\n\n if (opts.relativePoints) {\n positiveValues[index] = 100;\n } else if (value < 0) {\n negativeValues[index] += value;\n } else {\n positiveValues[index] += value;\n }\n });\n }\n });\n\n helpers.each(valuesPerStack, function (valuesForType) {\n var values = valuesForType.positiveValues.concat(valuesForType.negativeValues);\n var minVal = helpers.min(values);\n var maxVal = helpers.max(values);\n me.min = me.min === null ? minVal : Math.min(me.min, minVal);\n me.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\n });\n\n } else {\n helpers.each(datasets, function (dataset, datasetIndex) {\n var meta = chart.getDatasetMeta(datasetIndex);\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n helpers.each(dataset.data, function (rawValue, index) {\n var value = +me.getRightValue(rawValue);\n if (isNaN(value) || meta.data[index].hidden) {\n return;\n }\n\n if (me.min === null) {\n me.min = value;\n } else if (value < me.min) {\n me.min = value;\n }\n\n if (me.max === null) {\n me.max = value;\n } else if (value > me.max) {\n me.max = value;\n }\n });\n }\n });\n }\n\n me.min = isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;\n me.max = isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;\n\n // Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n this.handleTickRangeOptions();\n },\n getTickLimit: function () {\n var maxTicks;\n var me = this;\n var tickOpts = me.options.ticks;\n\n if (me.isHorizontal()) {\n maxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.width / 50));\n } else {\n // The factor of 2 used to scale the font size has been experimentally determined.\n var tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, defaults.global.defaultFontSize);\n maxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.height / (2 * tickFontSize)));\n }\n\n return maxTicks;\n },\n // Called after the ticks are built. We need\n handleDirectionalChanges: function () {\n if (!this.isHorizontal()) {\n // We are in a vertical orientation. The top value is the highest. So reverse the array\n this.ticks.reverse();\n }\n },\n getLabelForIndex: function (index, datasetIndex) {\n return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n },\n // Utils\n getPixelForValue: function (value) {\n // This must be called after fit has been run so that\n // this.left, this.top, this.right, and this.bottom have been defined\n var me = this;\n var start = me.start;\n\n var rightValue = +me.getRightValue(value);\n var pixel;\n var range = me.end - start;\n\n if (me.isHorizontal()) {\n pixel = me.left + (me.width / range * (rightValue - start));\n } else {\n pixel = me.bottom - (me.height / range * (rightValue - start));\n }\n return pixel;\n },\n getValueForPixel: function (pixel) {\n var me = this;\n var isHorizontal = me.isHorizontal();\n var innerDimension = isHorizontal ? me.width : me.height;\n var offset = (isHorizontal ? pixel - me.left : me.bottom - pixel) / innerDimension;\n return me.start + ((me.end - me.start) * offset);\n },\n getPixelForTick: function (index) {\n return this.getPixelForValue(this.ticksAsNumbers[index]);\n }\n });\n Chart.scaleService.registerScaleType('linear', LinearScale, defaultConfig);\n\n };\n\n }, {'25': 25, '34': 34, '45': 45}], 55: [function (require, module, exports) {\n 'use strict';\n\n var helpers = require(45);\n\n /**\n * Generate a set of linear ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {Array} array of tick values\n */\n function generateTicks(generationOptions, dataRange) {\n var ticks = [];\n // To get a \"nice\" value for the tick spacing, we will use the appropriately named\n // \"nice number\" algorithm. See http://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n // for details.\n\n var spacing;\n if (generationOptions.stepSize && generationOptions.stepSize > 0) {\n spacing = generationOptions.stepSize;\n } else {\n var niceRange = helpers.niceNum(dataRange.max - dataRange.min, false);\n spacing = helpers.niceNum(niceRange / (generationOptions.maxTicks - 1), true);\n }\n var niceMin = Math.floor(dataRange.min / spacing) * spacing;\n var niceMax = Math.ceil(dataRange.max / spacing) * spacing;\n\n // If min, max and stepSize is set and they make an evenly spaced scale use it.\n if (generationOptions.min && generationOptions.max && generationOptions.stepSize) {\n // If very close to our whole number, use it.\n if (helpers.almostWhole((generationOptions.max - generationOptions.min) / generationOptions.stepSize, spacing / 1000)) {\n niceMin = generationOptions.min;\n niceMax = generationOptions.max;\n }\n }\n\n var numSpaces = (niceMax - niceMin) / spacing;\n // If very close to our rounded value, use it.\n if (helpers.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n\n var precision = 1;\n if (spacing < 1) {\n precision = Math.pow(10, spacing.toString().length - 2);\n niceMin = Math.round(niceMin * precision) / precision;\n niceMax = Math.round(niceMax * precision) / precision;\n }\n ticks.push(generationOptions.min !== undefined ? generationOptions.min : niceMin);\n for (var j = 1; j < numSpaces; ++j) {\n ticks.push(Math.round((niceMin + j * spacing) * precision) / precision);\n }\n ticks.push(generationOptions.max !== undefined ? generationOptions.max : niceMax);\n\n return ticks;\n }\n\n\n module.exports = function (Chart) {\n\n var noop = helpers.noop;\n\n Chart.LinearScaleBase = Chart.Scale.extend({\n getRightValue: function (value) {\n if (typeof value === 'string') {\n return +value;\n }\n return Chart.Scale.prototype.getRightValue.call(this, value);\n },\n\n handleTickRangeOptions: function () {\n var me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n\n // If we are forcing it to begin at 0, but 0 will already be rendered on the chart,\n // do nothing since that would make the chart weird. If the user really wants a weird chart\n // axis, they can manually override it\n if (tickOpts.beginAtZero) {\n var minSign = helpers.sign(me.min);\n var maxSign = helpers.sign(me.max);\n\n if (minSign < 0 && maxSign < 0) {\n // move the top up to 0\n me.max = 0;\n } else if (minSign > 0 && maxSign > 0) {\n // move the bottom down to 0\n me.min = 0;\n }\n }\n\n var setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;\n var setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;\n\n if (tickOpts.min !== undefined) {\n me.min = tickOpts.min;\n } else if (tickOpts.suggestedMin !== undefined) {\n if (me.min === null) {\n me.min = tickOpts.suggestedMin;\n } else {\n me.min = Math.min(me.min, tickOpts.suggestedMin);\n }\n }\n\n if (tickOpts.max !== undefined) {\n me.max = tickOpts.max;\n } else if (tickOpts.suggestedMax !== undefined) {\n if (me.max === null) {\n me.max = tickOpts.suggestedMax;\n } else {\n me.max = Math.max(me.max, tickOpts.suggestedMax);\n }\n }\n\n if (setMin !== setMax) {\n // We set the min or the max but not both.\n // So ensure that our range is good\n // Inverted or 0 length range can happen when\n // ticks.min is set, and no datasets are visible\n if (me.min >= me.max) {\n if (setMin) {\n me.max = me.min + 1;\n } else {\n me.min = me.max - 1;\n }\n }\n }\n\n if (me.min === me.max) {\n me.max++;\n\n if (!tickOpts.beginAtZero) {\n me.min--;\n }\n }\n },\n getTickLimit: noop,\n handleDirectionalChanges: noop,\n\n buildTicks: function () {\n var me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n\n // Figure out what the max number of ticks we can support it is based on the size of\n // the axis area. For now, we say that the minimum tick spacing in pixels must be 50\n // We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n // the graph. Make sure we always have at least 2 ticks\n var maxTicks = me.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n\n var numericGeneratorOptions = {\n maxTicks: maxTicks,\n min: tickOpts.min,\n max: tickOpts.max,\n stepSize: helpers.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize)\n };\n var ticks = me.ticks = generateTicks(numericGeneratorOptions, me);\n\n me.handleDirectionalChanges();\n\n // At this point, we need to update our max and min given the tick values since we have expanded the\n // range of the scale\n me.max = helpers.max(ticks);\n me.min = helpers.min(ticks);\n\n if (tickOpts.reverse) {\n ticks.reverse();\n\n me.start = me.max;\n me.end = me.min;\n } else {\n me.start = me.min;\n me.end = me.max;\n }\n },\n convertTicksToLabels: function () {\n var me = this;\n me.ticksAsNumbers = me.ticks.slice();\n me.zeroLineIndex = me.ticks.indexOf(0);\n\n Chart.Scale.prototype.convertTicksToLabels.call(me);\n }\n });\n };\n\n }, {'45': 45}], 56: [function (require, module, exports) {\n 'use strict';\n\n var helpers = require(45);\n var Ticks = require(34);\n\n /**\n * Generate a set of logarithmic ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {Array} array of tick values\n */\n function generateTicks(generationOptions, dataRange) {\n var ticks = [];\n var valueOrDefault = helpers.valueOrDefault;\n\n // Figure out what the max number of ticks we can support it is based on the size of\n // the axis area. For now, we say that the minimum tick spacing in pixels must be 50\n // We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n // the graph\n var tickVal = valueOrDefault(generationOptions.min, Math.pow(10, Math.floor(helpers.log10(dataRange.min))));\n\n var endExp = Math.floor(helpers.log10(dataRange.max));\n var endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n var exp, significand;\n\n if (tickVal === 0) {\n exp = Math.floor(helpers.log10(dataRange.minNotZero));\n significand = Math.floor(dataRange.minNotZero / Math.pow(10, exp));\n\n ticks.push(tickVal);\n tickVal = significand * Math.pow(10, exp);\n } else {\n exp = Math.floor(helpers.log10(tickVal));\n significand = Math.floor(tickVal / Math.pow(10, exp));\n }\n var precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n\n do {\n ticks.push(tickVal);\n\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n\n var lastTick = valueOrDefault(generationOptions.max, tickVal);\n ticks.push(lastTick);\n\n return ticks;\n }\n\n\n module.exports = function (Chart) {\n\n var defaultConfig = {\n position: 'left',\n\n // label settings\n ticks: {\n callback: Ticks.formatters.logarithmic\n }\n };\n\n var LogarithmicScale = Chart.Scale.extend({\n determineDataLimits: function () {\n var me = this;\n var opts = me.options;\n var chart = me.chart;\n var data = chart.data;\n var datasets = data.datasets;\n var isHorizontal = me.isHorizontal();\n\n function IDMatches(meta) {\n return isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n }\n\n // Calculate Range\n me.min = null;\n me.max = null;\n me.minNotZero = null;\n\n var hasStacks = opts.stacked;\n if (hasStacks === undefined) {\n helpers.each(datasets, function (dataset, datasetIndex) {\n if (hasStacks) {\n return;\n }\n\n var meta = chart.getDatasetMeta(datasetIndex);\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n meta.stack !== undefined) {\n hasStacks = true;\n }\n });\n }\n\n if (opts.stacked || hasStacks) {\n var valuesPerStack = {};\n\n helpers.each(datasets, function (dataset, datasetIndex) {\n var meta = chart.getDatasetMeta(datasetIndex);\n var key = [\n meta.type,\n // we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n ((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n meta.stack\n ].join('.');\n\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n if (valuesPerStack[key] === undefined) {\n valuesPerStack[key] = [];\n }\n\n helpers.each(dataset.data, function (rawValue, index) {\n var values = valuesPerStack[key];\n var value = +me.getRightValue(rawValue);\n // invalid, hidden and negative values are ignored\n if (isNaN(value) || meta.data[index].hidden || value < 0) {\n return;\n }\n values[index] = values[index] || 0;\n values[index] += value;\n });\n }\n });\n\n helpers.each(valuesPerStack, function (valuesForType) {\n if (valuesForType.length > 0) {\n var minVal = helpers.min(valuesForType);\n var maxVal = helpers.max(valuesForType);\n me.min = me.min === null ? minVal : Math.min(me.min, minVal);\n me.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\n }\n });\n\n } else {\n helpers.each(datasets, function (dataset, datasetIndex) {\n var meta = chart.getDatasetMeta(datasetIndex);\n if (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n helpers.each(dataset.data, function (rawValue, index) {\n var value = +me.getRightValue(rawValue);\n // invalid, hidden and negative values are ignored\n if (isNaN(value) || meta.data[index].hidden || value < 0) {\n return;\n }\n\n if (me.min === null) {\n me.min = value;\n } else if (value < me.min) {\n me.min = value;\n }\n\n if (me.max === null) {\n me.max = value;\n } else if (value > me.max) {\n me.max = value;\n }\n\n if (value !== 0 && (me.minNotZero === null || value < me.minNotZero)) {\n me.minNotZero = value;\n }\n });\n }\n });\n }\n\n // Common base implementation to handle ticks.min, ticks.max\n this.handleTickRangeOptions();\n },\n handleTickRangeOptions: function () {\n var me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n var valueOrDefault = helpers.valueOrDefault;\n var DEFAULT_MIN = 1;\n var DEFAULT_MAX = 10;\n\n me.min = valueOrDefault(tickOpts.min, me.min);\n me.max = valueOrDefault(tickOpts.max, me.max);\n\n if (me.min === me.max) {\n if (me.min !== 0 && me.min !== null) {\n me.min = Math.pow(10, Math.floor(helpers.log10(me.min)) - 1);\n me.max = Math.pow(10, Math.floor(helpers.log10(me.max)) + 1);\n } else {\n me.min = DEFAULT_MIN;\n me.max = DEFAULT_MAX;\n }\n }\n if (me.min === null) {\n me.min = Math.pow(10, Math.floor(helpers.log10(me.max)) - 1);\n }\n if (me.max === null) {\n me.max = me.min !== 0\n ? Math.pow(10, Math.floor(helpers.log10(me.min)) + 1)\n : DEFAULT_MAX;\n }\n if (me.minNotZero === null) {\n if (me.min > 0) {\n me.minNotZero = me.min;\n } else if (me.max < 1) {\n me.minNotZero = Math.pow(10, Math.floor(helpers.log10(me.max)));\n } else {\n me.minNotZero = DEFAULT_MIN;\n }\n }\n },\n buildTicks: function () {\n var me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n var reverse = !me.isHorizontal();\n\n var generationOptions = {\n min: tickOpts.min,\n max: tickOpts.max\n };\n var ticks = me.ticks = generateTicks(generationOptions, me);\n\n // At this point, we need to update our max and min given the tick values since we have expanded the\n // range of the scale\n me.max = helpers.max(ticks);\n me.min = helpers.min(ticks);\n\n if (tickOpts.reverse) {\n reverse = !reverse;\n me.start = me.max;\n me.end = me.min;\n } else {\n me.start = me.min;\n me.end = me.max;\n }\n if (reverse) {\n ticks.reverse();\n }\n },\n convertTicksToLabels: function () {\n this.tickValues = this.ticks.slice();\n\n Chart.Scale.prototype.convertTicksToLabels.call(this);\n },\n // Get the correct tooltip label\n getLabelForIndex: function (index, datasetIndex) {\n return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n },\n getPixelForTick: function (index) {\n return this.getPixelForValue(this.tickValues[index]);\n },\n /**\n * Returns the value of the first tick.\n * @param {Number} value - The minimum not zero value.\n * @return {Number} The first tick value.\n * @private\n */\n _getFirstTickValue: function (value) {\n var exp = Math.floor(helpers.log10(value));\n var significand = Math.floor(value / Math.pow(10, exp));\n\n return significand * Math.pow(10, exp);\n },\n getPixelForValue: function (value) {\n var me = this;\n var reverse = me.options.ticks.reverse;\n var log10 = helpers.log10;\n var firstTickValue = me._getFirstTickValue(me.minNotZero);\n var offset = 0;\n var innerDimension, pixel, start, end, sign;\n\n value = +me.getRightValue(value);\n if (reverse) {\n start = me.end;\n end = me.start;\n sign = -1;\n } else {\n start = me.start;\n end = me.end;\n sign = 1;\n }\n if (me.isHorizontal()) {\n innerDimension = me.width;\n pixel = reverse ? me.right : me.left;\n } else {\n innerDimension = me.height;\n sign *= -1; // invert, since the upper-left corner of the canvas is at pixel (0, 0)\n pixel = reverse ? me.top : me.bottom;\n }\n if (value !== start) {\n if (start === 0) { // include zero tick\n offset = helpers.getValueOrDefault(\n me.options.ticks.fontSize,\n Chart.defaults.global.defaultFontSize\n );\n innerDimension -= offset;\n start = firstTickValue;\n }\n if (value !== 0) {\n offset += innerDimension / (log10(end) - log10(start)) * (log10(value) - log10(start));\n }\n pixel += sign * offset;\n }\n return pixel;\n },\n getValueForPixel: function (pixel) {\n var me = this;\n var reverse = me.options.ticks.reverse;\n var log10 = helpers.log10;\n var firstTickValue = me._getFirstTickValue(me.minNotZero);\n var innerDimension, start, end, value;\n\n if (reverse) {\n start = me.end;\n end = me.start;\n } else {\n start = me.start;\n end = me.end;\n }\n if (me.isHorizontal()) {\n innerDimension = me.width;\n value = reverse ? me.right - pixel : pixel - me.left;\n } else {\n innerDimension = me.height;\n value = reverse ? pixel - me.top : me.bottom - pixel;\n }\n if (value !== start) {\n if (start === 0) { // include zero tick\n var offset = helpers.getValueOrDefault(\n me.options.ticks.fontSize,\n Chart.defaults.global.defaultFontSize\n );\n value -= offset;\n innerDimension -= offset;\n start = firstTickValue;\n }\n value *= log10(end) - log10(start);\n value /= innerDimension;\n value = Math.pow(10, log10(start) + value);\n }\n return value;\n }\n });\n Chart.scaleService.registerScaleType('logarithmic', LogarithmicScale, defaultConfig);\n\n };\n\n }, {'34': 34, '45': 45}], 57: [function (require, module, exports) {\n 'use strict';\n\n var defaults = require(25);\n var helpers = require(45);\n var Ticks = require(34);\n\n module.exports = function (Chart) {\n\n var globalDefaults = defaults.global;\n\n var defaultConfig = {\n display: true,\n\n // Boolean - Whether to animate scaling the chart from the centre\n animate: true,\n position: 'chartArea',\n\n angleLines: {\n display: true,\n color: 'rgba(0, 0, 0, 0.1)',\n lineWidth: 1\n },\n\n gridLines: {\n circular: false\n },\n\n // label settings\n ticks: {\n // Boolean - Show a backdrop to the scale label\n showLabelBackdrop: true,\n\n // String - The colour of the label backdrop\n backdropColor: 'rgba(255,255,255,0.75)',\n\n // Number - The backdrop padding above & below the label in pixels\n backdropPaddingY: 2,\n\n // Number - The backdrop padding to the side of the label in pixels\n backdropPaddingX: 2,\n\n callback: Ticks.formatters.linear\n },\n\n pointLabels: {\n // Boolean - if true, show point labels\n display: true,\n\n // Number - Point label font size in pixels\n fontSize: 10,\n\n // Function - Used to convert point labels\n callback: function (label) {\n return label;\n }\n }\n };\n\n function getValueCount(scale) {\n var opts = scale.options;\n return opts.angleLines.display || opts.pointLabels.display ? scale.chart.data.labels.length : 0;\n }\n\n function getPointLabelFontOptions(scale) {\n var pointLabelOptions = scale.options.pointLabels;\n var fontSize = helpers.valueOrDefault(pointLabelOptions.fontSize, globalDefaults.defaultFontSize);\n var fontStyle = helpers.valueOrDefault(pointLabelOptions.fontStyle, globalDefaults.defaultFontStyle);\n var fontFamily = helpers.valueOrDefault(pointLabelOptions.fontFamily, globalDefaults.defaultFontFamily);\n var font = helpers.fontString(fontSize, fontStyle, fontFamily);\n\n return {\n size: fontSize,\n style: fontStyle,\n family: fontFamily,\n font: font\n };\n }\n\n function measureLabelSize(ctx, fontSize, label) {\n if (helpers.isArray(label)) {\n return {\n w: helpers.longestText(ctx, ctx.font, label),\n h: (label.length * fontSize) + ((label.length - 1) * 1.5 * fontSize)\n };\n }\n\n return {\n w: ctx.measureText(label).width,\n h: fontSize\n };\n }\n\n function determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size - 5,\n end: pos\n };\n }\n\n return {\n start: pos,\n end: pos + size + 5\n };\n }\n\n /**\n * Helper function to fit a radial linear scale with point labels\n */\n function fitWithPointLabels(scale) {\n /*\n\t\t * Right, this is really confusing and there is a lot of maths going on here\n\t\t * The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n\t\t *\n\t\t * Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n\t\t *\n\t\t * Solution:\n\t\t *\n\t\t * We assume the radius of the polygon is half the size of the canvas at first\n\t\t * at each index we check if the text overlaps.\n\t\t *\n\t\t * Where it does, we store that angle and that index.\n\t\t *\n\t\t * After finding the largest index and angle we calculate how much we need to remove\n\t\t * from the shape radius to move the point inwards by that x.\n\t\t *\n\t\t * We average the left and right distances to get the maximum shape radius that can fit in the box\n\t\t * along with labels.\n\t\t *\n\t\t * Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n\t\t * on each side, removing that from the size, halving it and adding the left x protrusion width.\n\t\t *\n\t\t * This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n\t\t * and position it in the most space efficient manner\n\t\t *\n\t\t * https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\t\t */\n\n var plFont = getPointLabelFontOptions(scale);\n\n // Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n // Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n var largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\n var furthestLimits = {\n r: scale.width,\n l: 0,\n t: scale.height,\n b: 0\n };\n var furthestAngles = {};\n var i, textSize, pointPosition;\n\n scale.ctx.font = plFont.font;\n scale._pointLabelSizes = [];\n\n var valueCount = getValueCount(scale);\n for (i = 0; i < valueCount; i++) {\n pointPosition = scale.getPointPosition(i, largestPossibleRadius);\n textSize = measureLabelSize(scale.ctx, plFont.size, scale.pointLabels[i] || '');\n scale._pointLabelSizes[i] = textSize;\n\n // Add quarter circle to make degree 0 mean top of circle\n var angleRadians = scale.getIndexAngle(i);\n var angle = helpers.toDegrees(angleRadians) % 360;\n var hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n var vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n\n if (hLimits.start < furthestLimits.l) {\n furthestLimits.l = hLimits.start;\n furthestAngles.l = angleRadians;\n }\n\n if (hLimits.end > furthestLimits.r) {\n furthestLimits.r = hLimits.end;\n furthestAngles.r = angleRadians;\n }\n\n if (vLimits.start < furthestLimits.t) {\n furthestLimits.t = vLimits.start;\n furthestAngles.t = angleRadians;\n }\n\n if (vLimits.end > furthestLimits.b) {\n furthestLimits.b = vLimits.end;\n furthestAngles.b = angleRadians;\n }\n }\n\n scale.setReductions(largestPossibleRadius, furthestLimits, furthestAngles);\n }\n\n /**\n * Helper function to fit a radial linear scale with no point labels\n */\n function fit(scale) {\n var largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\n scale.drawingArea = Math.round(largestPossibleRadius);\n scale.setCenterPoint(0, 0, 0, 0);\n }\n\n function getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n\n return 'right';\n }\n\n function fillText(ctx, text, position, fontSize) {\n if (helpers.isArray(text)) {\n var y = position.y;\n var spacing = 1.5 * fontSize;\n\n for (var i = 0; i < text.length; ++i) {\n ctx.fillText(text[i], position.x, y);\n y += spacing;\n }\n } else {\n ctx.fillText(text, position.x, position.y);\n }\n }\n\n function adjustPointPositionForLabelHeight(angle, textSize, position) {\n if (angle === 90 || angle === 270) {\n position.y -= (textSize.h / 2);\n } else if (angle > 270 || angle < 90) {\n position.y -= textSize.h;\n }\n }\n\n function drawPointLabels(scale) {\n var ctx = scale.ctx;\n var opts = scale.options;\n var angleLineOpts = opts.angleLines;\n var pointLabelOpts = opts.pointLabels;\n\n ctx.lineWidth = angleLineOpts.lineWidth;\n ctx.strokeStyle = angleLineOpts.color;\n\n var outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n\n // Point Label Font\n var plFont = getPointLabelFontOptions(scale);\n\n ctx.textBaseline = 'top';\n\n for (var i = getValueCount(scale) - 1; i >= 0; i--) {\n if (angleLineOpts.display) {\n var outerPosition = scale.getPointPosition(i, outerDistance);\n ctx.beginPath();\n ctx.moveTo(scale.xCenter, scale.yCenter);\n ctx.lineTo(outerPosition.x, outerPosition.y);\n ctx.stroke();\n ctx.closePath();\n }\n\n if (pointLabelOpts.display) {\n // Extra 3px out for some label spacing\n var pointLabelPosition = scale.getPointPosition(i, outerDistance + 5);\n\n // Keep this in loop since we may support array properties here\n var pointLabelFontColor = helpers.valueAtIndexOrDefault(pointLabelOpts.fontColor, i, globalDefaults.defaultFontColor);\n ctx.font = plFont.font;\n ctx.fillStyle = pointLabelFontColor;\n\n var angleRadians = scale.getIndexAngle(i);\n var angle = helpers.toDegrees(angleRadians);\n ctx.textAlign = getTextAlignForAngle(angle);\n adjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition);\n fillText(ctx, scale.pointLabels[i] || '', pointLabelPosition, plFont.size);\n }\n }\n }\n\n function drawRadiusLine(scale, gridLineOpts, radius, index) {\n var ctx = scale.ctx;\n ctx.strokeStyle = helpers.valueAtIndexOrDefault(gridLineOpts.color, index - 1);\n ctx.lineWidth = helpers.valueAtIndexOrDefault(gridLineOpts.lineWidth, index - 1);\n\n if (scale.options.gridLines.circular) {\n // Draw circular arcs between the points\n ctx.beginPath();\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2);\n ctx.closePath();\n ctx.stroke();\n } else {\n // Draw straight lines connecting each index\n var valueCount = getValueCount(scale);\n\n if (valueCount === 0) {\n return;\n }\n\n ctx.beginPath();\n var pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n\n for (var i = 1; i < valueCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n\n ctx.closePath();\n ctx.stroke();\n }\n }\n\n function numberOrZero(param) {\n return helpers.isNumber(param) ? param : 0;\n }\n\n var LinearRadialScale = Chart.LinearScaleBase.extend({\n setDimensions: function () {\n var me = this;\n var opts = me.options;\n var tickOpts = opts.ticks;\n // Set the unconstrained dimension before label rotation\n me.width = me.maxWidth;\n me.height = me.maxHeight;\n me.xCenter = Math.round(me.width / 2);\n me.yCenter = Math.round(me.height / 2);\n\n var minSize = helpers.min([me.height, me.width]);\n var tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n me.drawingArea = opts.display ? (minSize / 2) - (tickFontSize / 2 + tickOpts.backdropPaddingY) : (minSize / 2);\n },\n determineDataLimits: function () {\n var me = this;\n var chart = me.chart;\n var min = Number.POSITIVE_INFINITY;\n var max = Number.NEGATIVE_INFINITY;\n\n helpers.each(chart.data.datasets, function (dataset, datasetIndex) {\n if (chart.isDatasetVisible(datasetIndex)) {\n var meta = chart.getDatasetMeta(datasetIndex);\n\n helpers.each(dataset.data, function (rawValue, index) {\n var value = +me.getRightValue(rawValue);\n if (isNaN(value) || meta.data[index].hidden) {\n return;\n }\n\n min = Math.min(value, min);\n max = Math.max(value, max);\n });\n }\n });\n\n me.min = (min === Number.POSITIVE_INFINITY ? 0 : min);\n me.max = (max === Number.NEGATIVE_INFINITY ? 0 : max);\n\n // Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n me.handleTickRangeOptions();\n },\n getTickLimit: function () {\n var tickOpts = this.options.ticks;\n var tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n return Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(this.drawingArea / (1.5 * tickFontSize)));\n },\n convertTicksToLabels: function () {\n var me = this;\n\n Chart.LinearScaleBase.prototype.convertTicksToLabels.call(me);\n\n // Point labels\n me.pointLabels = me.chart.data.labels.map(me.options.pointLabels.callback, me);\n },\n getLabelForIndex: function (index, datasetIndex) {\n return +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n },\n fit: function () {\n if (this.options.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n fit(this);\n }\n },\n /**\n * Set radius reductions and determine new radius and center point\n * @private\n */\n setReductions: function (largestPossibleRadius, furthestLimits, furthestAngles) {\n var me = this;\n var radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n var radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\n var radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n var radiusReductionBottom = -Math.max(furthestLimits.b - me.height, 0) / Math.cos(furthestAngles.b);\n\n radiusReductionLeft = numberOrZero(radiusReductionLeft);\n radiusReductionRight = numberOrZero(radiusReductionRight);\n radiusReductionTop = numberOrZero(radiusReductionTop);\n radiusReductionBottom = numberOrZero(radiusReductionBottom);\n\n me.drawingArea = Math.min(\n Math.round(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\n Math.round(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2));\n me.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n },\n setCenterPoint: function (leftMovement, rightMovement, topMovement, bottomMovement) {\n var me = this;\n var maxRight = me.width - rightMovement - me.drawingArea;\n var maxLeft = leftMovement + me.drawingArea;\n var maxTop = topMovement + me.drawingArea;\n var maxBottom = me.height - bottomMovement - me.drawingArea;\n\n me.xCenter = Math.round(((maxLeft + maxRight) / 2) + me.left);\n me.yCenter = Math.round(((maxTop + maxBottom) / 2) + me.top);\n },\n\n getIndexAngle: function (index) {\n var angleMultiplier = (Math.PI * 2) / getValueCount(this);\n var startAngle = this.chart.options && this.chart.options.startAngle ?\n this.chart.options.startAngle :\n 0;\n\n var startAngleRadians = startAngle * Math.PI * 2 / 360;\n\n // Start from the top instead of right, so remove a quarter of the circle\n return index * angleMultiplier + startAngleRadians;\n },\n getDistanceFromCenterForValue: function (value) {\n var me = this;\n\n if (value === null) {\n return 0; // null always in center\n }\n\n // Take into account half font size + the yPadding of the top value\n var scalingFactor = me.drawingArea / (me.max - me.min);\n if (me.options.ticks.reverse) {\n return (me.max - value) * scalingFactor;\n }\n return (value - me.min) * scalingFactor;\n },\n getPointPosition: function (index, distanceFromCenter) {\n var me = this;\n var thisAngle = me.getIndexAngle(index) - (Math.PI / 2);\n return {\n x: Math.round(Math.cos(thisAngle) * distanceFromCenter) + me.xCenter,\n y: Math.round(Math.sin(thisAngle) * distanceFromCenter) + me.yCenter\n };\n },\n getPointPositionForValue: function (index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n },\n\n getBasePosition: function () {\n var me = this;\n var min = me.min;\n var max = me.max;\n\n return me.getPointPositionForValue(0,\n me.beginAtZero ? 0 :\n min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0);\n },\n\n draw: function () {\n var me = this;\n var opts = me.options;\n var gridLineOpts = opts.gridLines;\n var tickOpts = opts.ticks;\n var valueOrDefault = helpers.valueOrDefault;\n\n if (opts.display) {\n var ctx = me.ctx;\n var startAngle = this.getIndexAngle(0);\n\n // Tick Font\n var tickFontSize = valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n var tickFontStyle = valueOrDefault(tickOpts.fontStyle, globalDefaults.defaultFontStyle);\n var tickFontFamily = valueOrDefault(tickOpts.fontFamily, globalDefaults.defaultFontFamily);\n var tickLabelFont = helpers.fontString(tickFontSize, tickFontStyle, tickFontFamily);\n\n helpers.each(me.ticks, function (label, index) {\n // Don't draw a centre value (if it is minimum)\n if (index > 0 || tickOpts.reverse) {\n var yCenterOffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\n\n // Draw circular lines around the scale\n if (gridLineOpts.display && index !== 0) {\n drawRadiusLine(me, gridLineOpts, yCenterOffset, index);\n }\n\n if (tickOpts.display) {\n var tickFontColor = valueOrDefault(tickOpts.fontColor, globalDefaults.defaultFontColor);\n ctx.font = tickLabelFont;\n\n ctx.save();\n ctx.translate(me.xCenter, me.yCenter);\n ctx.rotate(startAngle);\n\n if (tickOpts.showLabelBackdrop) {\n var labelWidth = ctx.measureText(label).width;\n ctx.fillStyle = tickOpts.backdropColor;\n ctx.fillRect(\n -labelWidth / 2 - tickOpts.backdropPaddingX,\n -yCenterOffset - tickFontSize / 2 - tickOpts.backdropPaddingY,\n labelWidth + tickOpts.backdropPaddingX * 2,\n tickFontSize + tickOpts.backdropPaddingY * 2\n );\n }\n\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillStyle = tickFontColor;\n ctx.fillText(label, 0, -yCenterOffset);\n ctx.restore();\n }\n }\n });\n\n if (opts.angleLines.display || opts.pointLabels.display) {\n drawPointLabels(me);\n }\n }\n }\n });\n Chart.scaleService.registerScaleType('radialLinear', LinearRadialScale, defaultConfig);\n\n };\n\n }, {'25': 25, '34': 34, '45': 45}], 58: [function (require, module, exports) {\n /* global window: false */\n 'use strict';\n\n var moment = require(1);\n moment = typeof moment === 'function' ? moment : window.moment;\n\n var defaults = require(25);\n var helpers = require(45);\n\n// Integer constants are from the ES6 spec.\n var MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;\n var MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\n var INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: [1, 2, 5, 10, 20, 50, 100, 250, 500]\n },\n second: {\n common: true,\n size: 1000,\n steps: [1, 2, 5, 10, 30]\n },\n minute: {\n common: true,\n size: 60000,\n steps: [1, 2, 5, 10, 30]\n },\n hour: {\n common: true,\n size: 3600000,\n steps: [1, 2, 3, 6, 12]\n },\n day: {\n common: true,\n size: 86400000,\n steps: [1, 2, 5]\n },\n week: {\n common: false,\n size: 604800000,\n steps: [1, 2, 3, 4]\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: [1, 2, 3]\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: [1, 2, 3, 4]\n },\n year: {\n common: true,\n size: 3.154e10\n }\n };\n\n var UNITS = Object.keys(INTERVALS);\n\n function sorter(a, b) {\n return a - b;\n }\n\n function arrayUnique(items) {\n var hash = {};\n var out = [];\n var i, ilen, item;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n if (!hash[item]) {\n hash[item] = true;\n out.push(item);\n }\n }\n\n return out;\n }\n\n /**\n * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\n * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\n * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\n * extremity (left + width or top + height). Note that it would be more optimized to directly\n * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\n * to create the lookup table. The table ALWAYS contains at least two items: min and max.\n *\n * @param {Number[]} timestamps - timestamps sorted from lowest to highest.\n * @param {String} distribution - If 'linear', timestamps will be spread linearly along the min\n * and max range, so basically, the table will contains only two items: {min, 0} and {max, 1}.\n * If 'series', timestamps will be positioned at the same distance from each other. In this\n * case, only timestamps that break the time linearity are registered, meaning that in the\n * best case, all timestamps are linear, the table contains only min and max.\n */\n function buildLookupTable(timestamps, min, max, distribution) {\n if (distribution === 'linear' || !timestamps.length) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n\n var table = [];\n var items = [min];\n var i, ilen, prev, curr, next;\n\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr > min && curr < max) {\n items.push(curr);\n }\n }\n\n items.push(max);\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n\n // only add points that breaks the scale linearity\n if (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n\n return table;\n }\n\n// @see adapted from http://www.anujgakhar.com/2014/03/01/binary-search-in-javascript/\n function lookup(table, key, value) {\n var lo = 0;\n var hi = table.length - 1;\n var mid, i0, i1;\n\n while (lo >= 0 && lo <= hi) {\n mid = (lo + hi) >> 1;\n i0 = table[mid - 1] || null;\n i1 = table[mid];\n\n if (!i0) {\n // given value is outside table (before first item)\n return {lo: null, hi: i1};\n } else if (i1[key] < value) {\n lo = mid + 1;\n } else if (i0[key] > value) {\n hi = mid - 1;\n } else {\n return {lo: i0, hi: i1};\n }\n }\n\n // given value is outside table (after last item)\n return {lo: i1, hi: null};\n }\n\n /**\n * Linearly interpolates the given source `value` using the table items `skey` values and\n * returns the associated `tkey` value. For example, interpolate(table, 'time', 42, 'pos')\n * returns the position for a timestamp equal to 42. If value is out of bounds, values at\n * index [0, 1] or [n - 1, n] are used for the interpolation.\n */\n function interpolate(table, skey, sval, tkey) {\n var range = lookup(table, skey, sval);\n\n // Note: the lookup table ALWAYS contains at least 2 items (min and max)\n var prev = !range.lo ? table[0] : !range.hi ? table[table.length - 2] : range.lo;\n var next = !range.lo ? table[1] : !range.hi ? table[table.length - 1] : range.hi;\n\n var span = next[skey] - prev[skey];\n var ratio = span ? (sval - prev[skey]) / span : 0;\n var offset = (next[tkey] - prev[tkey]) * ratio;\n\n return prev[tkey] + offset;\n }\n\n /**\n * Convert the given value to a moment object using the given time options.\n * @see http://momentjs.com/docs/#/parsing/\n */\n function momentify(value, options) {\n var parser = options.parser;\n var format = options.parser || options.format;\n\n if (typeof parser === 'function') {\n return parser(value);\n }\n\n if (typeof value === 'string' && typeof format === 'string') {\n return moment(value, format);\n }\n\n if (!(value instanceof moment)) {\n value = moment(value);\n }\n\n if (value.isValid()) {\n return value;\n }\n\n // Labels are in an incompatible moment format and no `parser` has been provided.\n // The user might still use the deprecated `format` option to convert his inputs.\n if (typeof format === 'function') {\n return format(value);\n }\n\n return value;\n }\n\n function parse(input, scale) {\n if (helpers.isNullOrUndef(input)) {\n return null;\n }\n\n var options = scale.options.time;\n var value = momentify(scale.getRightValue(input), options);\n if (!value.isValid()) {\n return null;\n }\n\n if (options.round) {\n value.startOf(options.round);\n }\n\n return value.valueOf();\n }\n\n /**\n * Returns the number of unit to skip to be able to display up to `capacity` number of ticks\n * in `unit` for the given `min` / `max` range and respecting the interval steps constraints.\n */\n function determineStepSize(min, max, unit, capacity) {\n var range = max - min;\n var interval = INTERVALS[unit];\n var milliseconds = interval.size;\n var steps = interval.steps;\n var i, ilen, factor;\n\n if (!steps) {\n return Math.ceil(range / (capacity * milliseconds));\n }\n\n for (i = 0, ilen = steps.length; i < ilen; ++i) {\n factor = steps[i];\n if (Math.ceil(range / (milliseconds * factor)) <= capacity) {\n break;\n }\n }\n\n return factor;\n }\n\n /**\n * Figures out what unit results in an appropriate number of auto-generated ticks\n */\n function determineUnitForAutoTicks(minUnit, min, max, capacity) {\n var ilen = UNITS.length;\n var i, interval, factor;\n\n for (i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n interval = INTERVALS[UNITS[i]];\n factor = interval.steps ? interval.steps[interval.steps.length - 1] : MAX_INTEGER;\n\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n\n return UNITS[ilen - 1];\n }\n\n /**\n * Figures out what unit to format a set of ticks with\n */\n function determineUnitForFormatting(ticks, minUnit, min, max) {\n var duration = moment.duration(moment(max).diff(moment(min)));\n var ilen = UNITS.length;\n var i, unit;\n\n for (i = ilen - 1; i >= UNITS.indexOf(minUnit); i--) {\n unit = UNITS[i];\n if (INTERVALS[unit].common && duration.as(unit) >= ticks.length) {\n return unit;\n }\n }\n\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n }\n\n function determineMajorUnit(unit) {\n for (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n }\n\n /**\n * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n * `minor` unit, aligned on the `major` unit and using the given scale time `options`.\n * Important: this method can return ticks outside the min and max range, it's the\n * responsibility of the calling code to clamp values if needed.\n */\n function generate(min, max, capacity, options) {\n var timeOpts = options.time;\n var minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, capacity);\n var major = determineMajorUnit(minor);\n var stepSize = helpers.valueOrDefault(timeOpts.stepSize, timeOpts.unitStepSize);\n var weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n var majorTicksEnabled = options.ticks.major.enabled;\n var interval = INTERVALS[minor];\n var first = moment(min);\n var last = moment(max);\n var ticks = [];\n var time;\n\n if (!stepSize) {\n stepSize = determineStepSize(min, max, minor, capacity);\n }\n\n // For 'week' unit, handle the first day of week option\n if (weekday) {\n first = first.isoWeekday(weekday);\n last = last.isoWeekday(weekday);\n }\n\n // Align first/last ticks on unit\n first = first.startOf(weekday ? 'day' : minor);\n last = last.startOf(weekday ? 'day' : minor);\n\n // Make sure that the last tick include max\n if (last < max) {\n last.add(1, minor);\n }\n\n time = moment(first);\n\n if (majorTicksEnabled && major && !weekday && !timeOpts.round) {\n // Align the first tick on the previous `minor` unit aligned on the `major` unit:\n // we first aligned time on the previous `major` unit then add the number of full\n // stepSize there is between first and the previous major time.\n time.startOf(major);\n time.add(~~((first - time) / (interval.size * stepSize)) * stepSize, minor);\n }\n\n for (; time < last; time.add(stepSize, minor)) {\n ticks.push(+time);\n }\n\n ticks.push(+time);\n\n return ticks;\n }\n\n /**\n * Returns the right and left offsets from edges in the form of {left, right}.\n * Offsets are added when the `offset` option is true.\n */\n function computeOffsets(table, ticks, min, max, options) {\n var left = 0;\n var right = 0;\n var upper, lower;\n\n if (options.offset && ticks.length) {\n if (!options.time.min) {\n upper = ticks.length > 1 ? ticks[1] : max;\n lower = ticks[0];\n left = (\n interpolate(table, 'time', upper, 'pos') -\n interpolate(table, 'time', lower, 'pos')\n ) / 2;\n }\n if (!options.time.max) {\n upper = ticks[ticks.length - 1];\n lower = ticks.length > 1 ? ticks[ticks.length - 2] : min;\n right = (\n interpolate(table, 'time', upper, 'pos') -\n interpolate(table, 'time', lower, 'pos')\n ) / 2;\n }\n }\n\n return {left: left, right: right};\n }\n\n function ticksFromTimestamps(values, majorUnit) {\n var ticks = [];\n var i, ilen, value, major;\n\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n value = values[i];\n major = majorUnit ? value === +moment(value).startOf(majorUnit) : false;\n\n ticks.push({\n value: value,\n major: major\n });\n }\n\n return ticks;\n }\n\n function determineLabelFormat(data, timeOpts) {\n var i, momentDate, hasTime;\n var ilen = data.length;\n\n // find the label with the most parts (milliseconds, minutes, etc.)\n // format all labels with the same level of detail as the most specific label\n for (i = 0; i < ilen; i++) {\n momentDate = momentify(data[i], timeOpts);\n if (momentDate.millisecond() !== 0) {\n return 'MMM D, YYYY h:mm:ss.SSS a';\n }\n if (momentDate.second() !== 0 || momentDate.minute() !== 0 || momentDate.hour() !== 0) {\n hasTime = true;\n }\n }\n if (hasTime) {\n return 'MMM D, YYYY h:mm:ss a';\n }\n return 'MMM D, YYYY';\n }\n\n module.exports = function (Chart) {\n\n var defaultConfig = {\n position: 'bottom',\n\n /**\n * Data distribution along the scale:\n * - 'linear': data are spread according to their time (distances can vary),\n * - 'series': data are spread at the same distance from each other.\n * @see https://github.com/chartjs/Chart.js/pull/4507\n * @since 2.7.0\n */\n distribution: 'linear',\n\n /**\n * Scale boundary strategy (bypassed by min/max time options)\n * - `data`: make sure data are fully visible, ticks outside are removed\n * - `ticks`: make sure ticks are fully visible, data outside are truncated\n * @see https://github.com/chartjs/Chart.js/pull/4556\n * @since 2.7.0\n */\n bounds: 'data',\n\n time: {\n parser: false, // false == a pattern string from http://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment\n format: false, // DEPRECATED false == date objects, moment object, callback or a pattern string from http://momentjs.com/docs/#/parsing/string-format/\n unit: false, // false == automatic or override with week, month, year, etc.\n round: false, // none, or override with week, month, year, etc.\n displayFormat: false, // DEPRECATED\n isoWeekday: false, // override week start day - see http://momentjs.com/docs/#/get-set/iso-weekday/\n minUnit: 'millisecond',\n\n // defaults to unit's corresponding unitFormat below or override using pattern string from http://momentjs.com/docs/#/displaying/format/\n displayFormats: {\n millisecond: 'h:mm:ss.SSS a', // 11:20:01.123 AM,\n second: 'h:mm:ss a', // 11:20:01 AM\n minute: 'h:mm a', // 11:20 AM\n hour: 'hA', // 5PM\n day: 'MMM D', // Sep 4\n week: 'll', // Week 46, or maybe \"[W]WW - YYYY\" ?\n month: 'MMM YYYY', // Sept 2015\n quarter: '[Q]Q - YYYY', // Q3\n year: 'YYYY' // 2015\n },\n },\n ticks: {\n autoSkip: false,\n\n /**\n * Ticks generation input values:\n * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n * - 'labels': generates ticks from user given `data.labels` values ONLY.\n * @see https://github.com/chartjs/Chart.js/pull/4507\n * @since 2.7.0\n */\n source: 'auto',\n\n major: {\n enabled: false\n }\n }\n };\n\n var TimeScale = Chart.Scale.extend({\n initialize: function () {\n if (!moment) {\n throw new Error('Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com');\n }\n\n this.mergeTicksOptions();\n\n Chart.Scale.prototype.initialize.call(this);\n },\n\n update: function () {\n var me = this;\n var options = me.options;\n\n // DEPRECATIONS: output a message only one time per update\n if (options.time && options.time.format) {\n console.warn('options.time.format is deprecated and replaced by options.time.parser.');\n }\n\n return Chart.Scale.prototype.update.apply(me, arguments);\n },\n\n /**\n * Allows data to be referenced via 't' attribute\n */\n getRightValue: function (rawValue) {\n if (rawValue && rawValue.t !== undefined) {\n rawValue = rawValue.t;\n }\n return Chart.Scale.prototype.getRightValue.call(this, rawValue);\n },\n\n determineDataLimits: function () {\n var me = this;\n var chart = me.chart;\n var timeOpts = me.options.time;\n var unit = timeOpts.unit || 'day';\n var min = MAX_INTEGER;\n var max = MIN_INTEGER;\n var timestamps = [];\n var datasets = [];\n var labels = [];\n var i, j, ilen, jlen, data, timestamp;\n\n // Convert labels to timestamps\n for (i = 0, ilen = chart.data.labels.length; i < ilen; ++i) {\n labels.push(parse(chart.data.labels[i], me));\n }\n\n // Convert data to timestamps\n for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n data = chart.data.datasets[i].data;\n\n // Let's consider that all data have the same format.\n if (helpers.isObject(data[0])) {\n datasets[i] = [];\n\n for (j = 0, jlen = data.length; j < jlen; ++j) {\n timestamp = parse(data[j], me);\n timestamps.push(timestamp);\n datasets[i][j] = timestamp;\n }\n } else {\n timestamps.push.apply(timestamps, labels);\n datasets[i] = labels.slice(0);\n }\n } else {\n datasets[i] = [];\n }\n }\n\n if (labels.length) {\n // Sort labels **after** data have been converted\n labels = arrayUnique(labels).sort(sorter);\n min = Math.min(min, labels[0]);\n max = Math.max(max, labels[labels.length - 1]);\n }\n\n if (timestamps.length) {\n timestamps = arrayUnique(timestamps).sort(sorter);\n min = Math.min(min, timestamps[0]);\n max = Math.max(max, timestamps[timestamps.length - 1]);\n }\n\n min = parse(timeOpts.min, me) || min;\n max = parse(timeOpts.max, me) || max;\n\n // In case there is no valid min/max, set limits based on unit time option\n min = min === MAX_INTEGER ? +moment().startOf(unit) : min;\n max = max === MIN_INTEGER ? +moment().endOf(unit) + 1 : max;\n\n // Make sure that max is strictly higher than min (required by the lookup table)\n me.min = Math.min(min, max);\n me.max = Math.max(min + 1, max);\n\n // PRIVATE\n me._horizontal = me.isHorizontal();\n me._table = [];\n me._timestamps = {\n data: timestamps,\n datasets: datasets,\n labels: labels\n };\n },\n\n buildTicks: function () {\n var me = this;\n var min = me.min;\n var max = me.max;\n var options = me.options;\n var timeOpts = options.time;\n var timestamps = [];\n var ticks = [];\n var i, ilen, timestamp;\n\n switch (options.ticks.source) {\n case 'data':\n timestamps = me._timestamps.data;\n break;\n case 'labels':\n timestamps = me._timestamps.labels;\n break;\n case 'auto':\n default:\n timestamps = generate(min, max, me.getLabelCapacity(min), options);\n }\n\n if (options.bounds === 'ticks' && timestamps.length) {\n min = timestamps[0];\n max = timestamps[timestamps.length - 1];\n }\n\n // Enforce limits with user min/max options\n min = parse(timeOpts.min, me) || min;\n max = parse(timeOpts.max, me) || max;\n\n // Remove ticks outside the min/max range\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n timestamp = timestamps[i];\n if (timestamp >= min && timestamp <= max) {\n ticks.push(timestamp);\n }\n }\n\n me.min = min;\n me.max = max;\n\n // PRIVATE\n me._unit = timeOpts.unit || determineUnitForFormatting(ticks, timeOpts.minUnit, me.min, me.max);\n me._majorUnit = determineMajorUnit(me._unit);\n me._table = buildLookupTable(me._timestamps.data, min, max, options.distribution);\n me._offsets = computeOffsets(me._table, ticks, min, max, options);\n me._labelFormat = determineLabelFormat(me._timestamps.data, timeOpts);\n\n return ticksFromTimestamps(ticks, me._majorUnit);\n },\n\n getLabelForIndex: function (index, datasetIndex) {\n var me = this;\n var data = me.chart.data;\n var timeOpts = me.options.time;\n var label = data.labels && index < data.labels.length ? data.labels[index] : '';\n var value = data.datasets[datasetIndex].data[index];\n\n if (helpers.isObject(value)) {\n label = me.getRightValue(value);\n }\n if (timeOpts.tooltipFormat) {\n return momentify(label, timeOpts).format(timeOpts.tooltipFormat);\n }\n if (typeof label === 'string') {\n return label;\n }\n\n return momentify(label, timeOpts).format(me._labelFormat);\n },\n\n /**\n * Function to format an individual tick mark\n * @private\n */\n tickFormatFunction: function (tick, index, ticks, formatOverride) {\n var me = this;\n var options = me.options;\n var time = tick.valueOf();\n var formats = options.time.displayFormats;\n var minorFormat = formats[me._unit];\n var majorUnit = me._majorUnit;\n var majorFormat = formats[majorUnit];\n var majorTime = tick.clone().startOf(majorUnit).valueOf();\n var majorTickOpts = options.ticks.major;\n var major = majorTickOpts.enabled && majorUnit && majorFormat && time === majorTime;\n var label = tick.format(formatOverride ? formatOverride : major ? majorFormat : minorFormat);\n var tickOpts = major ? majorTickOpts : options.ticks.minor;\n var formatter = helpers.valueOrDefault(tickOpts.callback, tickOpts.userCallback);\n\n return formatter ? formatter(label, index, ticks) : label;\n },\n\n convertTicksToLabels: function (ticks) {\n var labels = [];\n var i, ilen;\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n labels.push(this.tickFormatFunction(moment(ticks[i].value), i, ticks));\n }\n\n return labels;\n },\n\n /**\n * @private\n */\n getPixelForOffset: function (time) {\n var me = this;\n var size = me._horizontal ? me.width : me.height;\n var start = me._horizontal ? me.left : me.top;\n var pos = interpolate(me._table, 'time', time, 'pos');\n\n return start + size * (me._offsets.left + pos) / (me._offsets.left + 1 + me._offsets.right);\n },\n\n getPixelForValue: function (value, index, datasetIndex) {\n var me = this;\n var time = null;\n\n if (index !== undefined && datasetIndex !== undefined) {\n time = me._timestamps.datasets[datasetIndex][index];\n }\n\n if (time === null) {\n time = parse(value, me);\n }\n\n if (time !== null) {\n return me.getPixelForOffset(time);\n }\n },\n\n getPixelForTick: function (index) {\n var ticks = this.getTicks();\n return index >= 0 && index < ticks.length ?\n this.getPixelForOffset(ticks[index].value) :\n null;\n },\n\n getValueForPixel: function (pixel) {\n var me = this;\n var size = me._horizontal ? me.width : me.height;\n var start = me._horizontal ? me.left : me.top;\n var pos = (size ? (pixel - start) / size : 0) * (me._offsets.left + 1 + me._offsets.left) - me._offsets.right;\n var time = interpolate(me._table, 'pos', pos, 'time');\n\n return moment(time);\n },\n\n /**\n * Crude approximation of what the label width might be\n * @private\n */\n getLabelWidth: function (label) {\n var me = this;\n var ticksOpts = me.options.ticks;\n var tickLabelWidth = me.ctx.measureText(label).width;\n var angle = helpers.toRadians(ticksOpts.maxRotation);\n var cosRotation = Math.cos(angle);\n var sinRotation = Math.sin(angle);\n var tickFontSize = helpers.valueOrDefault(ticksOpts.fontSize, defaults.global.defaultFontSize);\n\n return (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation);\n },\n\n /**\n * @private\n */\n getLabelCapacity: function (exampleTime) {\n var me = this;\n\n var formatOverride = me.options.time.displayFormats.millisecond;\t// Pick the longest format for guestimation\n\n var exampleLabel = me.tickFormatFunction(moment(exampleTime), 0, [], formatOverride);\n var tickLabelWidth = me.getLabelWidth(exampleLabel);\n var innerWidth = me.isHorizontal() ? me.width : me.height;\n\n var capacity = Math.floor(innerWidth / tickLabelWidth);\n return capacity > 0 ? capacity : 1;\n }\n });\n\n Chart.scaleService.registerScaleType('time', TimeScale, defaultConfig);\n };\n\n }, {'1': 1, '25': 25, '45': 45}]\n }, {}, [7])(7)\n});\n'use strict';\n\nvar WOW;\n\n(function ($) {\n\n window.WOW = function WOW() {\n\n return {\n\n init: function init() {\n\n var animationName = [];\n\n var once = 1;\n\n function mdbWow() {\n\n var windowHeight = window.innerHeight;\n var scroll = window.scrollY;\n\n $('.wow').each(function () {\n\n if ($(this).css('visibility') == 'visible') {\n return;\n }\n\n if (windowHeight + scroll - 100 > getOffset(this) && scroll < getOffset(this) || windowHeight + scroll - 100 > getOffset(this) + $(this).height() && scroll < getOffset(this) + $(this).height() || windowHeight + scroll == $(document).height() && getOffset(this) + 100 > $(document).height()) {\n\n var index = $(this).index('.wow');\n\n var delay = $(this).attr('data-wow-delay');\n\n if (delay) {\n\n delay = $(this).attr('data-wow-delay').slice(0, -1\n );\n var self = this;\n\n var timeout = parseFloat(delay) * 1000;\n\n $(self).addClass('animated');\n $(self).css({'visibility': 'visible'});\n $(self).css({'animation-delay': delay});\n $(self).css({'animation-name': animationName[index]});\n\n var removeTime = $(this).css('animation-duration').slice(0, -1) * 1000;\n\n if ($(this).attr('data-wow-delay')) {\n\n removeTime += $(this).attr('data-wow-delay').slice(0, -1) * 1000;\n }\n\n var self = this;\n\n setTimeout(function () {\n\n $(self).removeClass('animated');\n }, removeTime);\n } else {\n\n $(this).addClass('animated');\n $(this).css({'visibility': 'visible'});\n $(this).css({'animation-name': animationName[index]});\n\n var removeTime = $(this).css('animation-duration').slice(0, -1) * 1000;\n\n var self = this;\n\n setTimeout(function () {\n\n $(self).removeClass('animated');\n }, removeTime);\n }\n }\n });\n }\n\n function appear() {\n\n $('.wow').each(function () {\n\n var index = $(this).index('.wow');\n\n var delay = $(this).attr('data-wow-delay');\n\n if (delay) {\n\n delay = $(this).attr('data-wow-delay').slice(0, -1);\n\n var timeout = parseFloat(delay) * 1000;\n\n $(this).addClass('animated');\n $(this).css({'visibility': 'visible'});\n $(this).css({'animation-delay': delay + 's'});\n $(this).css({'animation-name': animationName[index]});\n } else {\n\n $(this).addClass('animated');\n $(this).css({'visibility': 'visible'});\n $(this).css({'animation-name': animationName[index]});\n }\n });\n }\n\n function hide() {\n\n var windowHeight = window.innerHeight;\n var scroll = window.scrollY;\n\n $('.wow.animated').each(function () {\n\n if (windowHeight + scroll - 100 > getOffset(this) && scroll > getOffset(this) + 100 || windowHeight + scroll - 100 < getOffset(this) && scroll < getOffset(this) + 100 || getOffset(this) + $(this).height > $(document).height() - 100) {\n\n $(this).removeClass('animated');\n $(this).css({'animation-name': 'none'});\n $(this).css({'visibility': 'hidden'});\n } else {\n\n var removeTime = $(this).css('animation-duration').slice(0, -1) * 1000;\n\n if ($(this).attr('data-wow-delay')) {\n\n removeTime += $(this).attr('data-wow-delay').slice(0, -1) * 1000;\n }\n\n var self = this;\n\n setTimeout(function () {\n\n $(self).removeClass('animated');\n }, removeTime);\n }\n });\n\n mdbWow();\n\n once--;\n }\n\n function getOffset(elem) {\n\n var box = elem.getBoundingClientRect();\n\n var body = document.body;\n var docEl = document.documentElement;\n\n var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;\n\n var clientTop = docEl.clientTop || body.clientTop || 0;\n\n var top = box.top + scrollTop - clientTop;\n\n return Math.round(top);\n }\n\n $('.wow').each(function () {\n\n $(this).css({'visibility': 'hidden'});\n animationName[$(this).index('.wow')] = $(this).css('animation-name');\n $(this).css({'animation-name': 'none'});\n });\n\n $(window).scroll(function () {\n\n if (once) {\n\n hide();\n } else {\n\n mdbWow();\n }\n });\n\n appear();\n }\n };\n };\n})(jQuery);\n\n'use strict';\n\n(function ($) {\n\n var SCROLLING_NAVBAR_OFFSET_TOP = 50;\n\n $(window).on('scroll', function () {\n\n var $navbar = $('.navbar');\n if ($navbar.length) {\n\n if ($navbar.offset().top > SCROLLING_NAVBAR_OFFSET_TOP) {\n\n $('.scrolling-navbar').addClass('top-nav-collapse');\n } else {\n\n $('.scrolling-navbar').removeClass('top-nav-collapse');\n }\n }\n });\n})(jQuery);\n/*!\n * Waves v0.7.6\n * http://fian.my.id/Waves\n *\n * Copyright 2014-2018 Alfiana E. Sibuea and other contributors\n * Released under the MIT license\n * https://github.com/fians/Waves/blob/master/LICENSE\n */\n\n;(function (window, factory) {\n 'use strict';\n // AMD. Register as an anonymous module. Wrap in function so we have access\n // to root via `this`.\n if (typeof define === 'function' && define.amd) {\n define([], function () {\n window.Waves = factory.call(window);\n return window.Waves;\n });\n }\n\n // Node. Does not work with strict CommonJS, but only CommonJS-like\n // environments that support module.exports, like Node.\n else if (typeof exports === 'object') {\n window.Waves = factory.call(window);\n module.exports = factory.call(window);\n }\n\n // Browser globals.\n else {\n window.Waves = factory.call(window);\n }\n})(typeof global === 'object' ? global : window, function () {\n 'use strict';\n\n var Waves = Waves || {};\n var $$ = document.querySelectorAll.bind(document);\n var toString = Object.prototype.toString;\n var isTouchAvailable = 'ontouchstart' in window;\n\n\n // Find exact position of element\n function isWindow(obj) {\n return obj !== null && obj === obj.window;\n }\n\n function getWindow(elem) {\n return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;\n }\n\n function isObject(value) {\n var type = typeof value;\n return type === 'function' || type === 'object' && !!value;\n }\n\n function isDOMNode(obj) {\n return isObject(obj) && obj.nodeType > 0;\n }\n\n function getWavesElements(nodes) {\n var stringRepr = toString.call(nodes);\n\n if (stringRepr === '[object String]') {\n return $$(nodes);\n } else if (isObject(nodes) && /^\\[object (Array|HTMLCollection|NodeList|Object)\\]$/.test(stringRepr) && nodes.hasOwnProperty('length')) {\n return nodes;\n } else if (isDOMNode(nodes)) {\n return [nodes];\n }\n\n return [];\n }\n\n function offset(elem) {\n var docElem, win,\n box = {top: 0, left: 0},\n doc = elem && elem.ownerDocument;\n\n docElem = doc.documentElement;\n\n if (typeof elem.getBoundingClientRect !== typeof undefined) {\n box = elem.getBoundingClientRect();\n }\n win = getWindow(doc);\n return {\n top: box.top + win.pageYOffset - docElem.clientTop,\n left: box.left + win.pageXOffset - docElem.clientLeft\n };\n }\n\n function convertStyle(styleObj) {\n var style = '';\n\n for (var prop in styleObj) {\n if (styleObj.hasOwnProperty(prop)) {\n style += (prop + ':' + styleObj[prop] + ';');\n }\n }\n\n return style;\n }\n\n var Effect = {\n\n // Effect duration\n duration: 750,\n\n // Effect delay (check for scroll before showing effect)\n delay: 200,\n\n show: function (e, element, velocity) {\n\n // Disable right click\n if (e.button === 2) {\n return false;\n }\n\n element = element || this;\n\n // Create ripple\n var ripple = document.createElement('div');\n ripple.className = 'waves-ripple waves-rippling';\n element.appendChild(ripple);\n\n // Get click coordinate and element width\n var pos = offset(element);\n var relativeY = 0;\n var relativeX = 0;\n // Support for touch devices\n if ('touches' in e && e.touches.length) {\n relativeY = (e.touches[0].pageY - pos.top);\n relativeX = (e.touches[0].pageX - pos.left);\n }\n //Normal case\n else {\n relativeY = (e.pageY - pos.top);\n relativeX = (e.pageX - pos.left);\n }\n // Support for synthetic events\n relativeX = relativeX >= 0 ? relativeX : 0;\n relativeY = relativeY >= 0 ? relativeY : 0;\n\n var scale = 'scale(' + ((element.clientWidth / 100) * 3) + ')';\n var translate = 'translate(0,0)';\n\n if (velocity) {\n translate = 'translate(' + (velocity.x) + 'px, ' + (velocity.y) + 'px)';\n }\n\n // Attach data to element\n ripple.setAttribute('data-hold', Date.now());\n ripple.setAttribute('data-x', relativeX);\n ripple.setAttribute('data-y', relativeY);\n ripple.setAttribute('data-scale', scale);\n ripple.setAttribute('data-translate', translate);\n\n // Set ripple position\n var rippleStyle = {\n top: relativeY + 'px',\n left: relativeX + 'px'\n };\n\n ripple.classList.add('waves-notransition');\n ripple.setAttribute('style', convertStyle(rippleStyle));\n ripple.classList.remove('waves-notransition');\n\n // Scale the ripple\n rippleStyle['-webkit-transform'] = scale + ' ' + translate;\n rippleStyle['-moz-transform'] = scale + ' ' + translate;\n rippleStyle['-ms-transform'] = scale + ' ' + translate;\n rippleStyle['-o-transform'] = scale + ' ' + translate;\n rippleStyle.transform = scale + ' ' + translate;\n rippleStyle.opacity = '1';\n\n var duration = e.type === 'mousemove' ? 2500 : Effect.duration;\n rippleStyle['-webkit-transition-duration'] = duration + 'ms';\n rippleStyle['-moz-transition-duration'] = duration + 'ms';\n rippleStyle['-o-transition-duration'] = duration + 'ms';\n rippleStyle['transition-duration'] = duration + 'ms';\n\n ripple.setAttribute('style', convertStyle(rippleStyle));\n },\n\n hide: function (e, element) {\n element = element || this;\n\n var ripples = element.getElementsByClassName('waves-rippling');\n\n for (var i = 0, len = ripples.length; i < len; i++) {\n removeRipple(e, element, ripples[i]);\n }\n\n if (isTouchAvailable) {\n element.removeEventListener('touchend', Effect.hide);\n element.removeEventListener('touchcancel', Effect.hide);\n }\n\n element.removeEventListener('mouseup', Effect.hide);\n element.removeEventListener('mouseleave', Effect.hide);\n }\n };\n\n /**\n * Collection of wrapper for HTML element that only have single tag\n * like and \n */\n var TagWrapper = {\n\n // Wrap tag so it can perform the effect\n input: function (element) {\n\n var parent = element.parentNode;\n\n // If input already have parent just pass through\n if (parent.tagName.toLowerCase() === 'i' && parent.classList.contains('waves-effect')) {\n return;\n }\n\n // Put element class and style to the specified parent\n var wrapper = document.createElement('i');\n wrapper.className = element.className + ' waves-input-wrapper';\n element.className = 'waves-button-input';\n\n // Put element as child\n parent.replaceChild(wrapper, element);\n wrapper.appendChild(element);\n\n // Apply element color and background color to wrapper\n var elementStyle = window.getComputedStyle(element, null);\n var color = elementStyle.color;\n var backgroundColor = elementStyle.backgroundColor;\n\n wrapper.setAttribute('style', 'color:' + color + ';background:' + backgroundColor);\n element.setAttribute('style', 'background-color:rgba(0,0,0,0);');\n\n },\n\n // Wrap tag so it can perform the effect\n img: function (element) {\n\n var parent = element.parentNode;\n\n // If input already have parent just pass through\n if (parent.tagName.toLowerCase() === 'i' && parent.classList.contains('waves-effect')) {\n return;\n }\n\n // Put element as child\n var wrapper = document.createElement('i');\n parent.replaceChild(wrapper, element);\n wrapper.appendChild(element);\n\n }\n };\n\n /**\n * Hide the effect and remove the ripple. Must be\n * a separate function to pass the JSLint...\n */\n function removeRipple(e, el, ripple) {\n\n // Check if the ripple still exist\n if (!ripple) {\n return;\n }\n\n ripple.classList.remove('waves-rippling');\n\n var relativeX = ripple.getAttribute('data-x');\n var relativeY = ripple.getAttribute('data-y');\n var scale = ripple.getAttribute('data-scale');\n var translate = ripple.getAttribute('data-translate');\n\n // Get delay beetween mousedown and mouse leave\n var diff = Date.now() - Number(ripple.getAttribute('data-hold'));\n var delay = 350 - diff;\n\n if (delay < 0) {\n delay = 0;\n }\n\n if (e.type === 'mousemove') {\n delay = 150;\n }\n\n // Fade out ripple after delay\n var duration = e.type === 'mousemove' ? 2500 : Effect.duration;\n\n setTimeout(function () {\n\n var style = {\n top: relativeY + 'px',\n left: relativeX + 'px',\n opacity: '0',\n\n // Duration\n '-webkit-transition-duration': duration + 'ms',\n '-moz-transition-duration': duration + 'ms',\n '-o-transition-duration': duration + 'ms',\n 'transition-duration': duration + 'ms',\n '-webkit-transform': scale + ' ' + translate,\n '-moz-transform': scale + ' ' + translate,\n '-ms-transform': scale + ' ' + translate,\n '-o-transform': scale + ' ' + translate,\n 'transform': scale + ' ' + translate\n };\n\n ripple.setAttribute('style', convertStyle(style));\n\n setTimeout(function () {\n try {\n el.removeChild(ripple);\n } catch (e) {\n return false;\n }\n }, duration);\n\n }, delay);\n }\n\n\n /**\n * Disable mousedown event for 500ms during and after touch\n */\n var TouchHandler = {\n\n /* uses an integer rather than bool so there's no issues with\n * needing to clear timeouts if another touch event occurred\n * within the 500ms. Cannot mouseup between touchstart and\n * touchend, nor in the 500ms after touchend. */\n touches: 0,\n\n allowEvent: function (e) {\n\n var allow = true;\n\n if (/^(mousedown|mousemove)$/.test(e.type) && TouchHandler.touches) {\n allow = false;\n }\n\n return allow;\n },\n registerEvent: function (e) {\n var eType = e.type;\n\n if (eType === 'touchstart') {\n\n TouchHandler.touches += 1; // push\n\n } else if (/^(touchend|touchcancel)$/.test(eType)) {\n\n setTimeout(function () {\n if (TouchHandler.touches) {\n TouchHandler.touches -= 1; // pop after 500ms\n }\n }, 500);\n\n }\n }\n };\n\n\n /**\n * Delegated click handler for .waves-effect element.\n * returns null when .waves-effect element not in \"click tree\"\n */\n function getWavesEffectElement(e) {\n\n if (TouchHandler.allowEvent(e) === false) {\n return null;\n }\n\n var element = null;\n var target = e.target || e.srcElement;\n\n while (target.parentElement) {\n if ((!(target instanceof SVGElement)) && target.classList.contains('waves-effect')) {\n element = target;\n break;\n }\n target = target.parentElement;\n }\n\n return element;\n }\n\n /**\n * Bubble the click and show effect if .waves-effect elem was found\n */\n function showEffect(e) {\n\n // Disable effect if element has \"disabled\" property on it\n // In some cases, the event is not triggered by the current element\n // if (e.target.getAttribute('disabled') !== null) {\n // return;\n // }\n\n var element = getWavesEffectElement(e);\n\n if (element !== null) {\n\n // Make it sure the element has either disabled property, disabled attribute or 'disabled' class\n if (element.disabled || element.getAttribute('disabled') || element.classList.contains('disabled')) {\n return;\n }\n\n TouchHandler.registerEvent(e);\n\n if (e.type === 'touchstart' && Effect.delay) {\n\n var hidden = false;\n\n var timer = setTimeout(function () {\n timer = null;\n Effect.show(e, element);\n }, Effect.delay);\n\n var hideEffect = function (hideEvent) {\n\n // if touch hasn't moved, and effect not yet started: start effect now\n if (timer) {\n clearTimeout(timer);\n timer = null;\n Effect.show(e, element);\n }\n if (!hidden) {\n hidden = true;\n Effect.hide(hideEvent, element);\n }\n\n removeListeners();\n };\n\n var touchMove = function (moveEvent) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n hideEffect(moveEvent);\n\n removeListeners();\n };\n\n element.addEventListener('touchmove', touchMove, false);\n element.addEventListener('touchend', hideEffect, false);\n element.addEventListener('touchcancel', hideEffect, false);\n\n var removeListeners = function () {\n element.removeEventListener('touchmove', touchMove);\n element.removeEventListener('touchend', hideEffect);\n element.removeEventListener('touchcancel', hideEffect);\n };\n } else {\n\n Effect.show(e, element);\n\n if (isTouchAvailable) {\n element.addEventListener('touchend', Effect.hide, false);\n element.addEventListener('touchcancel', Effect.hide, false);\n }\n\n element.addEventListener('mouseup', Effect.hide, false);\n element.addEventListener('mouseleave', Effect.hide, false);\n }\n }\n }\n\n Waves.init = function (options) {\n var body = document.body;\n\n options = options || {};\n\n if ('duration' in options) {\n Effect.duration = options.duration;\n }\n\n if ('delay' in options) {\n Effect.delay = options.delay;\n }\n\n if (isTouchAvailable) {\n body.addEventListener('touchstart', showEffect, false);\n body.addEventListener('touchcancel', TouchHandler.registerEvent, false);\n body.addEventListener('touchend', TouchHandler.registerEvent, false);\n }\n\n body.addEventListener('mousedown', showEffect, false);\n };\n\n\n /**\n * Attach Waves to dynamically loaded inputs, or add .waves-effect and other\n * waves classes to a set of elements. Set drag to true if the ripple mouseover\n * or skimming effect should be applied to the elements.\n */\n Waves.attach = function (elements, classes) {\n\n elements = getWavesElements(elements);\n\n if (toString.call(classes) === '[object Array]') {\n classes = classes.join(' ');\n }\n\n classes = classes ? ' ' + classes : '';\n\n var element, tagName;\n\n for (var i = 0, len = elements.length; i < len; i++) {\n\n element = elements[i];\n tagName = element.tagName.toLowerCase();\n\n if (['input', 'img'].indexOf(tagName) !== -1) {\n TagWrapper[tagName](element);\n element = element.parentElement;\n }\n\n if (element.className.indexOf('waves-effect') === -1) {\n element.className += ' waves-effect' + classes;\n }\n }\n };\n\n\n /**\n * Cause a ripple to appear in an element via code.\n */\n Waves.ripple = function (elements, options) {\n elements = getWavesElements(elements);\n var elementsLen = elements.length;\n\n options = options || {};\n options.wait = options.wait || 0;\n options.position = options.position || null; // default = centre of element\n\n\n if (elementsLen) {\n var element, pos, off, centre = {}, i = 0;\n var mousedown = {\n type: 'mousedown',\n button: 1\n };\n var hideRipple = function (mouseup, element) {\n return function () {\n Effect.hide(mouseup, element);\n };\n };\n\n for (; i < elementsLen; i++) {\n element = elements[i];\n pos = options.position || {\n x: element.clientWidth / 2,\n y: element.clientHeight / 2\n };\n\n off = offset(element);\n centre.x = off.left + pos.x;\n centre.y = off.top + pos.y;\n\n mousedown.pageX = centre.x;\n mousedown.pageY = centre.y;\n\n Effect.show(mousedown, element);\n\n if (options.wait >= 0 && options.wait !== null) {\n var mouseup = {\n type: 'mouseup',\n button: 1\n };\n\n setTimeout(hideRipple(mouseup, element), options.wait);\n }\n }\n }\n };\n\n /**\n * Remove all ripples from an element.\n */\n Waves.calm = function (elements) {\n elements = getWavesElements(elements);\n var mouseup = {\n type: 'mouseup',\n button: 1\n };\n\n for (var i = 0, len = elements.length; i < len; i++) {\n Effect.hide(mouseup, elements[i]);\n }\n };\n\n /**\n * Deprecated API fallback\n */\n Waves.displayEffect = function (options) {\n console.error('Waves.displayEffect() has been deprecated and will be removed in future version. Please use Waves.init() to initialize Waves effect');\n Waves.init(options);\n };\n\n return Waves;\n});\n\n'use strict';\n\n(function ($) {\n $(document).ready(function () {\n //Initialization\n Waves.attach('.btn:not(.btn-flat), .btn-floating', ['waves-light']);\n Waves.attach('.btn-flat', ['waves-effect']);\n Waves.attach('.chip', ['waves-effect']);\n Waves.attach('.view a .mask', ['waves-light']);\n Waves.attach('.waves-light', ['waves-light']);\n Waves.attach('.navbar-nav a:not(.navbar-brand), .nav-icons li a, .nav-tabs .nav-item:not(.dropdown)', ['waves-light']);\n Waves.attach('.pager li a', ['waves-light']);\n Waves.attach('.pagination .page-item .page-link', ['waves-effect']);\n Waves.init();\n var inputSelector = ['text', 'password', 'email', 'url', 'tel', 'number', 'search', 'search-md'].map(function (selector) {\n return 'input[type=' + selector + ']';\n }).join(', ') + ', textarea';\n\n var textAreaSelector = '.materialize-textarea';\n\n var updateTextFields = function updateTextFields($input) {\n\n var $labelAndIcon = $input.siblings('label, i');\n var hasValue = $input.val().length;\n var hasPlaceholder = $input.attr('placeholder');\n var addOrRemove = (hasValue || hasPlaceholder ? 'add' : 'remove') + 'Class';\n\n $labelAndIcon[addOrRemove]('active');\n };\n\n var validateField = function validateField($input) {\n\n if ($input.hasClass('validate')) {\n\n var value = $input.val();\n var noValue = !value.length;\n var isValid = !$input[0].validity.badInput;\n\n if (noValue && isValid) {\n\n $input.removeClass('valid').removeClass('invalid');\n } else {\n\n var valid = $input.is(':valid');\n var length = Number($input.attr('length')) || 0;\n\n if (valid && (!length || length > value.length)) {\n\n $input.removeClass('invalid').addClass('valid');\n } else {\n\n $input.removeClass('valid').addClass('invalid');\n }\n }\n }\n };\n\n var textAreaAutoResize = function textAreaAutoResize() {\n\n var $textarea = $(undefined);\n if ($textarea.val().length) {\n\n var $hiddenDiv = $('.hiddendiv');\n var fontFamily = $textarea.css('font-family');\n var fontSize = $textarea.css('font-size');\n\n if (fontSize) {\n\n $hiddenDiv.css('font-size', fontSize);\n }\n\n if (fontFamily) {\n\n $hiddenDiv.css('font-family', fontFamily);\n }\n\n if ($textarea.attr('wrap') === 'off') {\n\n $hiddenDiv.css('overflow-wrap', 'normal').css('white-space', 'pre');\n }\n\n $hiddenDiv.text($textarea.val() + '\\n');\n var content = $hiddenDiv.html().replace(/\\n/g, '
');\n $hiddenDiv.html(content);\n\n // When textarea is hidden, width goes crazy.\n // Approximate with half of window size\n $hiddenDiv.css('width', $textarea.is(':visible') ? $textarea.width() : $(window).width() / 2);\n $textarea.css('height', $hiddenDiv.height());\n }\n };\n\n $(inputSelector).each(function (index, input) {\n\n var $this = $(input);\n var $labelAndIcon = $this.siblings('label, i');\n updateTextFields($this);\n var isValid = input.validity.badInput;\n if (isValid) {\n\n $labelAndIcon.addClass('active');\n }\n });\n\n $(document).on('focus', inputSelector, function (e) {\n\n $(e.target).siblings('label, i').addClass('active');\n });\n\n $(document).on('blur', inputSelector, function (e) {\n\n var $this = $(e.target);\n var noValue = !$this.val();\n var invalid = !e.target.validity.badInput;\n var noPlaceholder = $this.attr('placeholder') === undefined;\n\n if (noValue && invalid && noPlaceholder) {\n\n $this.siblings('label, i').removeClass('active');\n }\n\n validateField($this);\n });\n\n $(document).on('change', inputSelector, function (e) {\n\n var $this = $(e.target);\n updateTextFields($this);\n validateField($this);\n });\n\n $('input[autofocus]').siblings('label, i').addClass('active');\n\n $(document).on('reset', function (e) {\n\n var $formReset = $(e.target);\n if ($formReset.is('form')) {\n\n var $formInputs = $formReset.find(inputSelector);\n $formInputs.removeClass('valid').removeClass('invalid').each(function (index, input) {\n\n var $this = $(input);\n var noDefaultValue = !$this.val();\n var noPlaceholder = !$this.attr('placeholder');\n if (noDefaultValue && noPlaceholder) {\n $this.siblings('label, i').removeClass('active');\n }\n });\n\n $formReset.find('select.initialized').each(function (index, select) {\n\n var $select = $(select);\n var $visibleInput = $select.siblings('input.select-dropdown');\n var defaultValue = $select.children('[selected]').val();\n\n $select.val(defaultValue);\n $visibleInput.val(defaultValue);\n });\n }\n });\n\n function init() {\n\n var $text = $('.md-textarea-auto');\n if ($text.length) {\n\n var observe = void 0;\n if (window.attachEvent) {\n\n observe = function observe(element, event, handler) {\n\n element.attachEvent('on' + event, handler);\n };\n } else {\n\n observe = function observe(element, event, handler) {\n\n element.addEventListener(event, handler, false);\n };\n }\n\n $text.each(function () {\n\n var self = this;\n\n function resize() {\n\n self.style.height = 'auto';\n self.style.height = self.scrollHeight + 'px';\n }\n\n function delayedResize() {\n\n window.setTimeout(resize, 0);\n }\n\n observe(self, 'change', resize);\n observe(self, 'cut', delayedResize);\n observe(self, 'paste', delayedResize);\n observe(self, 'drop', delayedResize);\n observe(self, 'keydown', delayedResize);\n\n resize();\n });\n }\n }\n\n init();\n\n var $body = $('body');\n if (!$('.hiddendiv').first().length) {\n\n var $hiddenDiv = $('
');\n $body.append($hiddenDiv);\n }\n\n $(textAreaSelector).each(textAreaAutoResize);\n $body.on('keyup keydown', textAreaSelector, textAreaAutoResize);\n });\n})(jQuery);\n/*\n Enhanced Bootstrap Modals\n https://mdbootstrap.com\n office@mdbootstrap.com\n*/\n\n$('body').on('shown.bs.modal', '.modal', function () {\n if ($('.modal-backdrop').length) {\n } else {\n\n $modal_dialog = $(this).children('.modal-dialog')\n\n if ($modal_dialog.hasClass('modal-side')) {\n $(this).addClass('modal-scrolling');\n $('body').addClass('scrollable');\n }\n\n if ($modal_dialog.hasClass('modal-frame')) {\n $(this).addClass('modal-content-clickable');\n $('body').addClass('scrollable');\n }\n }\n});\n$('body').on('hidden.bs.modal', '.modal', function () {\n $('body').removeClass('scrollable');\n});\n","!function(e){if(!e.hasInitialised){var t={escapeRegExp:function(e){return e.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\")},hasClass:function(e,t){var i=\" \";return 1===e.nodeType&&(i+e.className+i).replace(/[\\n\\t]/g,i).indexOf(i+t+i)>=0},addClass:function(e,t){e.className+=\" \"+t},removeClass:function(e,t){var i=new RegExp(\"\\\\b\"+this.escapeRegExp(t)+\"\\\\b\");e.className=e.className.replace(i,\"\")},interpolateString:function(e,t){return e.replace(/{{([a-z][a-z0-9\\-_]*)}}/gi,function(e){return t(arguments[1])||\"\"})},getCookie:function(e){var t=(\"; \"+document.cookie).split(\"; \"+e+\"=\");return t.length<2?void 0:t.pop().split(\";\").shift()},setCookie:function(e,t,i,n,o,s){var r=new Date;r.setHours(r.getHours()+24*(i||365));var a=[e+\"=\"+t,\"expires=\"+r.toUTCString(),\"path=\"+(o||\"/\")];n&&a.push(\"domain=\"+n),s&&a.push(\"secure\"),document.cookie=a.join(\";\")},deepExtend:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(i in e&&this.isPlainObject(e[i])&&this.isPlainObject(t[i])?this.deepExtend(e[i],t[i]):e[i]=t[i]);return e},throttle:function(e,t){var i=!1;return function(){i||(e.apply(this,arguments),i=!0,setTimeout(function(){i=!1},t))}},hash:function(e){var t,i,n=0;if(0===e.length)return n;for(t=0,i=e.length;t=128?\"#000\":\"#fff\"},getLuminance:function(e){var t=parseInt(this.normaliseHex(e),16),i=38+(t>>16),n=38+(t>>8&255),o=38+(255&t);return\"#\"+(16777216+65536*(i<255?i<1?0:i:255)+256*(n<255?n<1?0:n:255)+(o<255?o<1?0:o:255)).toString(16).slice(1)},isMobile:function(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},isPlainObject:function(e){return\"object\"==typeof e&&null!==e&&e.constructor==Object},traverseDOMPath:function(e,i){return e&&e.parentNode?t.hasClass(e,i)?e:this.traverseDOMPath(e.parentNode,i):null}};e.status={deny:\"deny\",allow:\"allow\",dismiss:\"dismiss\"},e.transitionEnd=function(){var e=document.createElement(\"div\"),t={t:\"transitionend\",OT:\"oTransitionEnd\",msT:\"MSTransitionEnd\",MozT:\"transitionend\",WebkitT:\"webkitTransitionEnd\"};for(var i in t)if(t.hasOwnProperty(i)&&void 0!==e.style[i+\"ransition\"])return t[i];return\"\"}(),e.hasTransition=!!e.transitionEnd;var i=Object.keys(e.status).map(t.escapeRegExp);e.customStyles={},e.Popup=function(){var n={enabled:!0,container:null,cookie:{name:\"cookieconsent_status\",path:\"/\",domain:\"\",expiryDays:365,secure:!1},onPopupOpen:function(){},onPopupClose:function(){},onInitialise:function(e){},onStatusChange:function(e,t){},onRevokeChoice:function(){},onNoCookieLaw:function(e,t){},content:{header:\"Cookies used on the website!\",message:\"This website uses cookies to ensure you get the best experience on our website.\",dismiss:\"Got it!\",allow:\"Allow cookies\",deny:\"Decline\",link:\"Learn more\",href:\"https://www.cookiesandyou.com\",close:\"❌\",target:\"_blank\",policy:\"Cookie Policy\"},elements:{header:'{{header}} ',message:'{{message}}',messagelink:'{{message}} {{link}}',dismiss:'{{dismiss}}',allow:'{{allow}}',deny:'{{deny}}',link:'{{link}}',close:'{{close}}'},window:'
\\x3c!--googleoff: all--\\x3e{{children}}\\x3c!--googleon: all--\\x3e
',revokeBtn:'
{{policy}}
',compliance:{info:'
{{dismiss}}
',\"opt-in\":'
{{deny}}{{allow}}
',\"opt-out\":'
{{deny}}{{allow}}
'},type:\"info\",layouts:{basic:\"{{messagelink}}{{compliance}}\",\"basic-close\":\"{{messagelink}}{{compliance}}{{close}}\",\"basic-header\":\"{{header}}{{message}}{{link}}{{compliance}}\"},layout:\"basic\",position:\"bottom\",theme:\"block\",static:!1,palette:null,revokable:!1,animateRevokable:!0,showLink:!0,dismissOnScroll:!1,dismissOnTimeout:!1,dismissOnWindowClick:!1,ignoreClicksFrom:[\"cc-revoke\",\"cc-btn\"],autoOpen:!0,autoAttach:!0,whitelistPage:[],blacklistPage:[],overrideHTML:null};function o(){this.initialise.apply(this,arguments)}function s(e){this.openingTimeout=null,t.removeClass(e,\"cc-invisible\")}function r(t){t.style.display=\"none\",t.removeEventListener(e.transitionEnd,this.afterTransition),this.afterTransition=null}function a(){var e=this.options.position.split(\"-\"),t=[];return e.forEach(function(e){t.push(\"cc-\"+e)}),t}function c(n){var o=this.options,s=document.createElement(\"div\"),r=o.container&&1===o.container.nodeType?o.container:document.body;s.innerHTML=n;var a=s.children[0];return a.style.display=\"none\",t.hasClass(a,\"cc-window\")&&e.hasTransition&&t.addClass(a,\"cc-invisible\"),this.onButtonClick=function(n){var o=t.traverseDOMPath(n.target,\"cc-btn\")||n.target;if(t.hasClass(o,\"cc-btn\")){var s=o.className.match(new RegExp(\"\\\\bcc-(\"+i.join(\"|\")+\")\\\\b\")),r=s&&s[1]||!1;r&&(this.setStatus(r),this.close(!0))}t.hasClass(o,\"cc-close\")&&(this.setStatus(e.status.dismiss),this.close(!0));t.hasClass(o,\"cc-revoke\")&&this.revokeChoice()}.bind(this),a.addEventListener(\"click\",this.onButtonClick),o.autoAttach&&(r.firstChild?r.insertBefore(a,r.firstChild):r.appendChild(a)),a}function l(e){return\"000000\"==(e=t.normaliseHex(e))?\"#222\":t.getLuminance(e)}function u(e,t){for(var i=0,n=e.length;i=0;o&&t(n);return o}.call(this)&&(this.options.enabled=!1),u(this.options.blacklistPage,location.pathname)&&(this.options.enabled=!1),u(this.options.whitelistPage,location.pathname)&&(this.options.enabled=!0);var o=this.options.window.replace(\"{{classes}}\",function(){var i=this.options,n=\"top\"==i.position||\"bottom\"==i.position?\"banner\":\"floating\";t.isMobile()&&(n=\"floating\");var o=[\"cc-\"+n,\"cc-type-\"+i.type,\"cc-theme-\"+i.theme];i.static&&o.push(\"cc-static\");o.push.apply(o,a.call(this));(function(i){var n=t.hash(JSON.stringify(i)),o=\"cc-color-override-\"+n,s=t.isPlainObject(i);this.customStyleSelector=s?o:null,s&&function(i,n,o){if(e.customStyles[i])return void++e.customStyles[i].references;var s={},r=n.popup,a=n.button,c=n.highlight;r&&(r.text=r.text?r.text:t.getContrast(r.background),r.link=r.link?r.link:r.text,s[o+\".cc-window\"]=[\"color: \"+r.text,\"background-color: \"+r.background],s[o+\".cc-revoke\"]=[\"color: \"+r.text,\"background-color: \"+r.background],s[o+\" .cc-link,\"+o+\" .cc-link:active,\"+o+\" .cc-link:visited\"]=[\"color: \"+r.link],a&&(a.text=a.text?a.text:t.getContrast(a.background),a.border=a.border?a.border:\"transparent\",s[o+\" .cc-btn\"]=[\"color: \"+a.text,\"border-color: \"+a.border,\"background-color: \"+a.background],a.padding&&s[o+\" .cc-btn\"].push(\"padding: \"+a.padding),\"transparent\"!=a.background&&(s[o+\" .cc-btn:hover, \"+o+\" .cc-btn:focus\"]=[\"background-color: \"+(a.hover||l(a.background))]),c?(c.text=c.text?c.text:t.getContrast(c.background),c.border=c.border?c.border:\"transparent\",s[o+\" .cc-highlight .cc-btn:first-child\"]=[\"color: \"+c.text,\"border-color: \"+c.border,\"background-color: \"+c.background]):s[o+\" .cc-highlight .cc-btn:first-child\"]=[\"color: \"+r.text]));var u=document.createElement(\"style\");document.head.appendChild(u),e.customStyles[i]={references:1,element:u.sheet};var h=-1;for(var p in s)s.hasOwnProperty(p)&&u.sheet.insertRule(p+\"{\"+s[p].join(\";\")+\"}\",++h)}(n,i,\".\"+o);return s}).call(this,this.options.palette);this.customStyleSelector&&o.push(this.customStyleSelector);return o}.call(this).join(\" \")).replace(\"{{children}}\",function(){var e={},i=this.options;i.showLink||(i.elements.link=\"\",i.elements.messagelink=i.elements.message);Object.keys(i.elements).forEach(function(n){e[n]=t.interpolateString(i.elements[n],function(e){var t=i.content[e];return e&&\"string\"==typeof t&&t.length?t:\"\"})});var n=i.compliance[i.type];n||(n=i.compliance.info);e.compliance=t.interpolateString(n,function(t){return e[t]});var o=i.layouts[i.layout];o||(o=i.layouts.basic);return t.interpolateString(o,function(t){return e[t]})}.call(this)),s=this.options.overrideHTML;if(\"string\"==typeof s&&s.length&&(o=s),this.options.static){var r=c.call(this,'
'+o+\"
\");r.style.display=\"\",this.element=r.firstChild,this.element.style.display=\"none\",t.addClass(this.element,\"cc-invisible\")}else this.element=c.call(this,o);(function(){var i=this.setStatus.bind(this),n=this.close.bind(this),o=this.options.dismissOnTimeout;\"number\"==typeof o&&o>=0&&(this.dismissTimeout=window.setTimeout(function(){i(e.status.dismiss),n(!0)},Math.floor(o)));var s=this.options.dismissOnScroll;if(\"number\"==typeof s&&s>=0){var r=function(t){window.pageYOffset>Math.floor(s)&&(i(e.status.dismiss),n(!0),window.removeEventListener(\"scroll\",r),this.onWindowScroll=null)};this.options.enabled&&(this.onWindowScroll=r,window.addEventListener(\"scroll\",r))}var a=this.options.dismissOnWindowClick,c=this.options.ignoreClicksFrom;if(a){var l=function(o){for(var s=!1,r=o.path.length,a=c.length,u=0;uo&&(i=!0),i?t.hasClass(n,\"cc-active\")||t.addClass(n,\"cc-active\"):t.hasClass(n,\"cc-active\")&&t.removeClass(n,\"cc-active\")},200);this.onMouseMove=o,window.addEventListener(\"mousemove\",o)}}}.call(this),this.options.autoOpen&&this.autoOpen()},o.prototype.destroy=function(){this.onButtonClick&&this.element&&(this.element.removeEventListener(\"click\",this.onButtonClick),this.onButtonClick=null),this.dismissTimeout&&(clearTimeout(this.dismissTimeout),this.dismissTimeout=null),this.onWindowScroll&&(window.removeEventListener(\"scroll\",this.onWindowScroll),this.onWindowScroll=null),this.onWindowClick&&(window.removeEventListener(\"click\",this.onWindowClick),this.onWindowClick=null),this.onMouseMove&&(window.removeEventListener(\"mousemove\",this.onMouseMove),this.onMouseMove=null),this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=null,this.revokeBtn&&this.revokeBtn.parentNode&&this.revokeBtn.parentNode.removeChild(this.revokeBtn),this.revokeBtn=null,function(i){if(t.isPlainObject(i)){var n=t.hash(JSON.stringify(i)),o=e.customStyles[n];if(o&&!--o.references){var s=o.element.ownerNode;s&&s.parentNode&&s.parentNode.removeChild(s),e.customStyles[n]=null}}}(this.options.palette),this.options=null},o.prototype.open=function(t){if(this.element)return this.isOpen()||(e.hasTransition?this.fadeIn():this.element.style.display=\"\",this.options.revokable&&this.toggleRevokeButton(),this.options.onPopupOpen.call(this)),this},o.prototype.close=function(t){if(this.element)return this.isOpen()&&(e.hasTransition?this.fadeOut():this.element.style.display=\"none\",t&&this.options.revokable&&this.toggleRevokeButton(!0),this.options.onPopupClose.call(this)),this},o.prototype.fadeIn=function(){var i=this.element;if(e.hasTransition&&i&&(this.afterTransition&&r.call(this,i),t.hasClass(i,\"cc-invisible\"))){if(i.style.display=\"\",this.options.static){var n=this.element.clientHeight;this.element.parentNode.style.maxHeight=n+\"px\"}this.openingTimeout=setTimeout(s.bind(this,i),20)}},o.prototype.fadeOut=function(){var i=this.element;e.hasTransition&&i&&(this.openingTimeout&&(clearTimeout(this.openingTimeout),s.bind(this,i)),t.hasClass(i,\"cc-invisible\")||(this.options.static&&(this.element.parentNode.style.maxHeight=\"\"),this.afterTransition=r.bind(this,i),i.addEventListener(e.transitionEnd,this.afterTransition),t.addClass(i,\"cc-invisible\")))},o.prototype.isOpen=function(){return this.element&&\"\"==this.element.style.display&&(!e.hasTransition||!t.hasClass(this.element,\"cc-invisible\"))},o.prototype.toggleRevokeButton=function(e){this.revokeBtn&&(this.revokeBtn.style.display=e?\"\":\"none\")},o.prototype.revokeChoice=function(e){this.options.enabled=!0,this.clearStatus(),this.options.onRevokeChoice.call(this),e||this.autoOpen()},o.prototype.hasAnswered=function(t){return Object.keys(e.status).indexOf(this.getStatus())>=0},o.prototype.hasConsented=function(t){var i=this.getStatus();return i==e.status.allow||i==e.status.dismiss},o.prototype.autoOpen=function(e){!this.hasAnswered()&&this.options.enabled?this.open():this.hasAnswered()&&this.options.revokable&&this.toggleRevokeButton(!0)},o.prototype.setStatus=function(i){var n=this.options.cookie,o=t.getCookie(n.name),s=Object.keys(e.status).indexOf(o)>=0;Object.keys(e.status).indexOf(i)>=0?(t.setCookie(n.name,i,n.expiryDays,n.domain,n.path,n.secure),this.options.onStatusChange.call(this,i,s)):this.clearStatus()},o.prototype.getStatus=function(){return t.getCookie(this.options.cookie.name)},o.prototype.clearStatus=function(){var e=this.options.cookie;t.setCookie(e.name,\"\",-1,e.domain,e.path)},o}(),e.Location=function(){var e={timeout:5e3,services:[\"ipinfo\"],serviceDefinitions:{ipinfo:function(){return{url:\"//ipinfo.io\",headers:[\"Accept: application/json\"],callback:function(e,t){try{var i=JSON.parse(t);return i.error?s(i):{code:i.country}}catch(e){return s({error:\"Invalid response (\"+e+\")\"})}}}},ipinfodb:function(e){return{url:\"//api.ipinfodb.com/v3/ip-country/?key={api_key}&format=json&callback={callback}\",isScript:!0,callback:function(e,t){try{var i=JSON.parse(t);return\"ERROR\"==i.statusCode?s({error:i.statusMessage}):{code:i.countryCode}}catch(e){return s({error:\"Invalid response (\"+e+\")\"})}}}},maxmind:function(){return{url:\"//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js\",isScript:!0,callback:function(e){window.geoip2?geoip2.country(function(t){try{e({code:t.country.iso_code})}catch(t){e(s(t))}},function(t){e(s(t))}):e(new Error(\"Unexpected response format. The downloaded script should have exported `geoip2` to the global scope\"))}}}}};function i(i){t.deepExtend(this.options={},e),t.isPlainObject(i)&&t.deepExtend(this.options,i),this.currentServiceIndex=-1}function n(e,t,i){var n,o=document.createElement(\"script\");o.type=\"text/\"+(e.type||\"javascript\"),o.src=e.src||e,o.async=!1,o.onreadystatechange=o.onload=function(){var e=o.readyState;clearTimeout(n),t.done||e&&!/loaded|complete/.test(e)||(t.done=!0,t(),o.onreadystatechange=o.onload=null)},document.body.appendChild(o),n=setTimeout(function(){t.done=!0,t(),o.onreadystatechange=o.onload=null},i)}function o(e,t,i,n,o){var s=new(window.XMLHttpRequest||window.ActiveXObject)(\"MSXML2.XMLHTTP.3.0\");if(s.open(n?\"POST\":\"GET\",e,1),s.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"),Array.isArray(o))for(var r=0,a=o.length;r3&&t(s)}),s.send(n)}function s(e){return new Error(\"Error [\"+(e.code||\"UNKNOWN\")+\"]: \"+e.error)}return i.prototype.getNextService=function(){var e;do{e=this.getServiceByIdx(++this.currentServiceIndex)}while(this.currentServiceIndex=0,revokable:t.revokable.indexOf(e)>=0,explicitAction:t.explicitAction.indexOf(e)>=0}},i.prototype.applyLaw=function(e,t){var i=this.get(t);return i.hasLaw||(e.enabled=!1,\"function\"==typeof e.onNoCookieLaw&&e.onNoCookieLaw(t,i)),this.options.regionalLaw&&(i.revokable&&(e.revokable=!0),i.explicitAction&&(e.dismissOnScroll=!1,e.dismissOnTimeout=!1)),e},i}(),e.initialise=function(i,n,o){var s=new e.Law(i.law);n||(n=function(){}),o||(o=function(){});var r=Object.keys(e.status),a=t.getCookie(\"cookieconsent_status\");r.indexOf(a)>=0?n(new e.Popup(i)):e.getCountryCode(i,function(t){delete i.law,delete i.location,t.code&&(i=s.applyLaw(i,t.code)),n(new e.Popup(i))},function(t){delete i.law,delete i.location,o(t,new e.Popup(i))})},e.getCountryCode=function(t,i,n){t.law&&t.law.countryCode?i({code:t.law.countryCode}):t.location?new e.Location(t.location).locate(function(e){i(e||{})},n):i({})},e.utils=t,e.hasInitialised=!0,window.cookieconsent=e}}(window.cookieconsent||{});","var ___EXPOSE_LOADER_IMPORT___ = require(\"-!./jquery.js\");\nvar ___EXPOSE_LOADER_GET_GLOBAL_THIS___ = require(\"../../expose-loader/dist/runtime/getGlobalThis.js\");\nvar ___EXPOSE_LOADER_GLOBAL_THIS___ = ___EXPOSE_LOADER_GET_GLOBAL_THIS___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"$\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"$\"] = ___EXPOSE_LOADER_IMPORT___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"jQuery\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"jQuery\"] = ___EXPOSE_LOADER_IMPORT___;\nmodule.exports = ___EXPOSE_LOADER_IMPORT___;\n","\"use strict\";\n\n// eslint-disable-next-line func-names\nmodule.exports = function () {\n if (typeof globalThis === \"object\") {\n return globalThis;\n }\n\n var g;\n\n try {\n // This works if eval is allowed (see CSP)\n // eslint-disable-next-line no-new-func\n g = this || new Function(\"return this\")();\n } catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") {\n return window;\n } // This works if the self reference is available\n\n\n if (typeof self === \"object\") {\n return self;\n } // This works if the global reference is available\n\n\n if (typeof global !== \"undefined\") {\n return global;\n }\n }\n\n return g;\n}();","// https://tc39.github.io/ecma262/#sec-array.prototype.includes\nif (!Array.prototype.includes) {\n\tObject.defineProperty(Array.prototype, \"includes\", {\n\t\tvalue: function(searchElement, fromIndex) {\n\n\t\t\t// 1. Let O be ? ToObject(this value).\n\t\t\tif (this == null) {\n\t\t\t\tthrow new TypeError(\"\\\"this\\\" is null or not defined\");\n\t\t\t}\n\n\t\t\tvar o = Object(this);\n\n\t\t\t// 2. Let len be ? ToLength(? Get(O, \"length\")).\n\t\t\tvar len = o.length >>> 0;\n\n\t\t\t// 3. If len is 0, return false.\n\t\t\tif (len === 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// 4. Let n be ? ToInteger(fromIndex).\n\t\t\t// (If fromIndex is undefined, this step produces the value 0.)\n\t\t\tvar n = fromIndex | 0;\n\n\t\t\t// 5. If n ≥ 0, then\n\t\t\t// a. Let k be n.\n\t\t\t// 6. Else n < 0,\n\t\t\t// a. Let k be len + n.\n\t\t\t// b. If k < 0, let k be 0.\n\t\t\tvar k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n\t\t\t// 7. Repeat, while k < len\n\t\t\twhile (k < len) {\n\t\t\t\t// a. Let elementK be the result of ? Get(O, ! ToString(k)).\n\t\t\t\t// b. If SameValueZero(searchElement, elementK) is true, return true.\n\t\t\t\t// c. Increase k by 1.\n\t\t\t\t// NOTE: === provides the correct \"SameValueZero\" comparison needed here.\n\t\t\t\tif (o[k] === searchElement) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tk++;\n\t\t\t}\n\n\t\t\t// 8. Return false\n\t\t\treturn false;\n\t\t}\n\t});\n}","if (typeof Object.getPrototypeOf !== \"function\") {\n\tObject.getPrototypeOf = typeof \"test\".__proto__ === \"object\" ? function (object) {\n\t\treturn object.__proto__;\n\t} : function (object) {\n\t\treturn object.constructor.prototype;\n\t};\n}","/*! jQuery UI - v1.13.0 - 2021-10-07\n* http://jqueryui.com\n* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js\n* Copyright jQuery Foundation and other contributors; Licensed MIT */\n\n( function( factory ) {\n\t\"use strict\";\n\t\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\n$.ui = $.ui || {};\n\nvar version = $.ui.version = \"1.13.0\";\n\n\n/*!\n * jQuery UI Widget 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Widget\n//>>group: Core\n//>>description: Provides a factory for creating stateful widgets with a common API.\n//>>docs: http://api.jqueryui.com/jQuery.widget/\n//>>demos: http://jqueryui.com/widget/\n\n\nvar widgetUuid = 0;\nvar widgetHasOwnProperty = Array.prototype.hasOwnProperty;\nvar widgetSlice = Array.prototype.slice;\n\n$.cleanData = ( function( orig ) {\n\treturn function( elems ) {\n\t\tvar events, elem, i;\n\t\tfor ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {\n\n\t\t\t// Only trigger remove when necessary to save time\n\t\t\tevents = $._data( elem, \"events\" );\n\t\t\tif ( events && events.remove ) {\n\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t}\n\t\t}\n\t\torig( elems );\n\t};\n} )( $.cleanData );\n\n$.widget = function( name, base, prototype ) {\n\tvar existingConstructor, constructor, basePrototype;\n\n\t// ProxiedPrototype allows the provided prototype to remain unmodified\n\t// so that it can be used as a mixin for multiple widgets (#8876)\n\tvar proxiedPrototype = {};\n\n\tvar namespace = name.split( \".\" )[ 0 ];\n\tname = name.split( \".\" )[ 1 ];\n\tvar fullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\tif ( Array.isArray( prototype ) ) {\n\t\tprototype = $.extend.apply( null, [ {} ].concat( prototype ) );\n\t}\n\n\t// Create selector for plugin\n\t$.expr.pseudos[ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\n\t\t// Allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// Allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\n\t// Extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\n\t\t// Copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\n\t\t// Track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t} );\n\n\tbasePrototype = new base();\n\n\t// We need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( typeof value !== \"function\" ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = ( function() {\n\t\t\tfunction _super() {\n\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t}\n\n\t\t\tfunction _superApply( args ) {\n\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t}\n\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super;\n\t\t\t\tvar __superApply = this._superApply;\n\t\t\t\tvar returnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t} )();\n\t} );\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t} );\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// Redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor,\n\t\t\t\tchild._proto );\n\t\t} );\n\n\t\t// Remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n\n\treturn constructor;\n};\n\n$.widget.extend = function( target ) {\n\tvar input = widgetSlice.call( arguments, 1 );\n\tvar inputIndex = 0;\n\tvar inputLength = input.length;\n\tvar key;\n\tvar value;\n\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( widgetHasOwnProperty.call( input[ inputIndex ], key ) && value !== undefined ) {\n\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\";\n\t\tvar args = widgetSlice.call( arguments, 1 );\n\t\tvar returnValue = this;\n\n\t\tif ( isMethodCall ) {\n\n\t\t\t// If this is an empty collection, we need to have the instance method\n\t\t\t// return undefined instead of the jQuery instance\n\t\t\tif ( !this.length && options === \"instance\" ) {\n\t\t\t\treturnValue = undefined;\n\t\t\t} else {\n\t\t\t\tthis.each( function() {\n\t\t\t\t\tvar methodValue;\n\t\t\t\t\tvar instance = $.data( this, fullName );\n\n\t\t\t\t\tif ( options === \"instance\" ) {\n\t\t\t\t\t\treturnValue = instance;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !instance ) {\n\t\t\t\t\t\treturn $.error( \"cannot call methods on \" + name +\n\t\t\t\t\t\t\t\" prior to initialization; \" +\n\t\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( typeof instance[ options ] !== \"function\" ||\n\t\t\t\t\t\toptions.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name +\n\t\t\t\t\t\t\t\" widget instance\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\n\t\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\t\tmethodValue;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Allow multiple hashes to be passed on init\n\t\t\tif ( args.length ) {\n\t\t\t\toptions = $.widget.extend.apply( null, [ options ].concat( args ) );\n\t\t\t}\n\n\t\t\tthis.each( function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} );\n\t\t\t\t\tif ( instance._init ) {\n\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"
\",\n\n\toptions: {\n\t\tclasses: {},\n\t\tdisabled: false,\n\n\t\t// Callbacks\n\t\tcreate: null\n\t},\n\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = widgetUuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\t\tthis.classesElementLookup = {};\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.document = $( element.style ?\n\n\t\t\t\t// Element within the document\n\t\t\t\telement.ownerDocument :\n\n\t\t\t\t// Element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );\n\t\t}\n\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis._create();\n\n\t\tif ( this.options.disabled ) {\n\t\t\tthis._setOptionDisabled( this.options.disabled );\n\t\t}\n\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\n\t_getCreateOptions: function() {\n\t\treturn {};\n\t},\n\n\t_getCreateEventData: $.noop,\n\n\t_create: $.noop,\n\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tvar that = this;\n\n\t\tthis._destroy();\n\t\t$.each( this.classesElementLookup, function( key, value ) {\n\t\t\tthat._removeClass( value, key );\n\t\t} );\n\n\t\t// We can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeData( this.widgetFullName );\n\t\tthis.widget()\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" );\n\n\t\t// Clean up events and states\n\t\tthis.bindings.off( this.eventNamespace );\n\t},\n\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key;\n\t\tvar parts;\n\t\tvar curOption;\n\t\tvar i;\n\n\t\tif ( arguments.length === 0 ) {\n\n\t\t\t// Don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\n\t\t\t// Handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"classes\" ) {\n\t\t\tthis._setOptionClasses( value );\n\t\t}\n\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._setOptionDisabled( value );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOptionClasses: function( value ) {\n\t\tvar classKey, elements, currentElements;\n\n\t\tfor ( classKey in value ) {\n\t\t\tcurrentElements = this.classesElementLookup[ classKey ];\n\t\t\tif ( value[ classKey ] === this.options.classes[ classKey ] ||\n\t\t\t\t\t!currentElements ||\n\t\t\t\t\t!currentElements.length ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// We are doing this to create a new jQuery object because the _removeClass() call\n\t\t\t// on the next line is going to destroy the reference to the current elements being\n\t\t\t// tracked. We need to save a copy of this collection so that we can add the new classes\n\t\t\t// below.\n\t\t\telements = $( currentElements.get() );\n\t\t\tthis._removeClass( currentElements, classKey );\n\n\t\t\t// We don't use _addClass() here, because that uses this.options.classes\n\t\t\t// for generating the string of classes. We want to use the value passed in from\n\t\t\t// _setOption(), this is the new value of the classes option which was passed to\n\t\t\t// _setOption(). We pass this value directly to _classes().\n\t\t\telements.addClass( this._classes( {\n\t\t\t\telement: elements,\n\t\t\t\tkeys: classKey,\n\t\t\t\tclasses: value,\n\t\t\t\tadd: true\n\t\t\t} ) );\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._toggleClass( this.widget(), this.widgetFullName + \"-disabled\", null, !!value );\n\n\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\tif ( value ) {\n\t\t\tthis._removeClass( this.hoverable, null, \"ui-state-hover\" );\n\t\t\tthis._removeClass( this.focusable, null, \"ui-state-focus\" );\n\t\t}\n\t},\n\n\tenable: function() {\n\t\treturn this._setOptions( { disabled: false } );\n\t},\n\n\tdisable: function() {\n\t\treturn this._setOptions( { disabled: true } );\n\t},\n\n\t_classes: function( options ) {\n\t\tvar full = [];\n\t\tvar that = this;\n\n\t\toptions = $.extend( {\n\t\t\telement: this.element,\n\t\t\tclasses: this.options.classes || {}\n\t\t}, options );\n\n\t\tfunction bindRemoveEvent() {\n\t\t\toptions.element.each( function( _, element ) {\n\t\t\t\tvar isTracked = $.map( that.classesElementLookup, function( elements ) {\n\t\t\t\t\treturn elements;\n\t\t\t\t} )\n\t\t\t\t\t.some( function( elements ) {\n\t\t\t\t\t\treturn elements.is( element );\n\t\t\t\t\t} );\n\n\t\t\t\tif ( !isTracked ) {\n\t\t\t\t\tthat._on( $( element ), {\n\t\t\t\t\t\tremove: \"_untrackClassesElement\"\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tfunction processClassString( classes, checkOption ) {\n\t\t\tvar current, i;\n\t\t\tfor ( i = 0; i < classes.length; i++ ) {\n\t\t\t\tcurrent = that.classesElementLookup[ classes[ i ] ] || $();\n\t\t\t\tif ( options.add ) {\n\t\t\t\t\tbindRemoveEvent();\n\t\t\t\t\tcurrent = $( $.uniqueSort( current.get().concat( options.element.get() ) ) );\n\t\t\t\t} else {\n\t\t\t\t\tcurrent = $( current.not( options.element ).get() );\n\t\t\t\t}\n\t\t\t\tthat.classesElementLookup[ classes[ i ] ] = current;\n\t\t\t\tfull.push( classes[ i ] );\n\t\t\t\tif ( checkOption && options.classes[ classes[ i ] ] ) {\n\t\t\t\t\tfull.push( options.classes[ classes[ i ] ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( options.keys ) {\n\t\t\tprocessClassString( options.keys.match( /\\S+/g ) || [], true );\n\t\t}\n\t\tif ( options.extra ) {\n\t\t\tprocessClassString( options.extra.match( /\\S+/g ) || [] );\n\t\t}\n\n\t\treturn full.join( \" \" );\n\t},\n\n\t_untrackClassesElement: function( event ) {\n\t\tvar that = this;\n\t\t$.each( that.classesElementLookup, function( key, value ) {\n\t\t\tif ( $.inArray( event.target, value ) !== -1 ) {\n\t\t\t\tthat.classesElementLookup[ key ] = $( value.not( event.target ).get() );\n\t\t\t}\n\t\t} );\n\n\t\tthis._off( $( event.target ) );\n\t},\n\n\t_removeClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, false );\n\t},\n\n\t_addClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, true );\n\t},\n\n\t_toggleClass: function( element, keys, extra, add ) {\n\t\tadd = ( typeof add === \"boolean\" ) ? add : extra;\n\t\tvar shift = ( typeof element === \"string\" || element === null ),\n\t\t\toptions = {\n\t\t\t\textra: shift ? keys : extra,\n\t\t\t\tkeys: shift ? element : keys,\n\t\t\t\telement: shift ? this.element : element,\n\t\t\t\tadd: add\n\t\t\t};\n\t\toptions.element.toggleClass( this._classes( options ), add );\n\t\treturn this;\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement;\n\t\tvar instance = this;\n\n\t\t// No suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// No element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\n\t\t\t\t// Allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// Copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ );\n\t\t\tvar eventName = match[ 1 ] + instance.eventNamespace;\n\t\t\tvar selector = match[ 2 ];\n\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.on( eventName, selector, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.on( eventName, handlerProxy );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = ( eventName || \"\" ).split( \" \" ).join( this.eventNamespace + \" \" ) +\n\t\t\tthis.eventNamespace;\n\t\telement.off( eventName );\n\n\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig;\n\t\tvar callback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\n\t\t// The original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// Copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( typeof callback === \"function\" &&\n\t\t\tcallback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\n\t\tvar hasOptions;\n\t\tvar effectName = !options ?\n\t\t\tmethod :\n\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\tdefaultEffect :\n\t\t\t\toptions.effect || defaultEffect;\n\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t} else if ( options === true ) {\n\t\t\toptions = {};\n\t\t}\n\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue( function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t} );\n\t\t}\n\t};\n} );\n\nvar widget = $.widget;\n\n\n/*!\n * jQuery UI Position 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/position/\n */\n\n//>>label: Position\n//>>group: Core\n//>>description: Positions elements relative to other elements.\n//>>docs: http://api.jqueryui.com/position/\n//>>demos: http://jqueryui.com/position/\n\n\n( function() {\nvar cachedScrollbarWidth,\n\tmax = Math.max,\n\tabs = Math.abs,\n\trhorizontal = /left|center|right/,\n\trvertical = /top|center|bottom/,\n\troffset = /[\\+\\-]\\d+(\\.[\\d]+)?%?/,\n\trposition = /^\\w+/,\n\trpercent = /%$/,\n\t_position = $.fn.position;\n\nfunction getOffsets( offsets, width, height ) {\n\treturn [\n\t\tparseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),\n\t\tparseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )\n\t];\n}\n\nfunction parseCss( element, property ) {\n\treturn parseInt( $.css( element, property ), 10 ) || 0;\n}\n\nfunction isWindow( obj ) {\n\treturn obj != null && obj === obj.window;\n}\n\nfunction getDimensions( elem ) {\n\tvar raw = elem[ 0 ];\n\tif ( raw.nodeType === 9 ) {\n\t\treturn {\n\t\t\twidth: elem.width(),\n\t\t\theight: elem.height(),\n\t\t\toffset: { top: 0, left: 0 }\n\t\t};\n\t}\n\tif ( isWindow( raw ) ) {\n\t\treturn {\n\t\t\twidth: elem.width(),\n\t\t\theight: elem.height(),\n\t\t\toffset: { top: elem.scrollTop(), left: elem.scrollLeft() }\n\t\t};\n\t}\n\tif ( raw.preventDefault ) {\n\t\treturn {\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\toffset: { top: raw.pageY, left: raw.pageX }\n\t\t};\n\t}\n\treturn {\n\t\twidth: elem.outerWidth(),\n\t\theight: elem.outerHeight(),\n\t\toffset: elem.offset()\n\t};\n}\n\n$.position = {\n\tscrollbarWidth: function() {\n\t\tif ( cachedScrollbarWidth !== undefined ) {\n\t\t\treturn cachedScrollbarWidth;\n\t\t}\n\t\tvar w1, w2,\n\t\t\tdiv = $( \"
\" +\n\t\t\t\t\"
\" ),\n\t\t\tinnerDiv = div.children()[ 0 ];\n\n\t\t$( \"body\" ).append( div );\n\t\tw1 = innerDiv.offsetWidth;\n\t\tdiv.css( \"overflow\", \"scroll\" );\n\n\t\tw2 = innerDiv.offsetWidth;\n\n\t\tif ( w1 === w2 ) {\n\t\t\tw2 = div[ 0 ].clientWidth;\n\t\t}\n\n\t\tdiv.remove();\n\n\t\treturn ( cachedScrollbarWidth = w1 - w2 );\n\t},\n\tgetScrollInfo: function( within ) {\n\t\tvar overflowX = within.isWindow || within.isDocument ? \"\" :\n\t\t\t\twithin.element.css( \"overflow-x\" ),\n\t\t\toverflowY = within.isWindow || within.isDocument ? \"\" :\n\t\t\t\twithin.element.css( \"overflow-y\" ),\n\t\t\thasOverflowX = overflowX === \"scroll\" ||\n\t\t\t\t( overflowX === \"auto\" && within.width < within.element[ 0 ].scrollWidth ),\n\t\t\thasOverflowY = overflowY === \"scroll\" ||\n\t\t\t\t( overflowY === \"auto\" && within.height < within.element[ 0 ].scrollHeight );\n\t\treturn {\n\t\t\twidth: hasOverflowY ? $.position.scrollbarWidth() : 0,\n\t\t\theight: hasOverflowX ? $.position.scrollbarWidth() : 0\n\t\t};\n\t},\n\tgetWithinInfo: function( element ) {\n\t\tvar withinElement = $( element || window ),\n\t\t\tisElemWindow = isWindow( withinElement[ 0 ] ),\n\t\t\tisDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9,\n\t\t\thasOffset = !isElemWindow && !isDocument;\n\t\treturn {\n\t\t\telement: withinElement,\n\t\t\tisWindow: isElemWindow,\n\t\t\tisDocument: isDocument,\n\t\t\toffset: hasOffset ? $( element ).offset() : { left: 0, top: 0 },\n\t\t\tscrollLeft: withinElement.scrollLeft(),\n\t\t\tscrollTop: withinElement.scrollTop(),\n\t\t\twidth: withinElement.outerWidth(),\n\t\t\theight: withinElement.outerHeight()\n\t\t};\n\t}\n};\n\n$.fn.position = function( options ) {\n\tif ( !options || !options.of ) {\n\t\treturn _position.apply( this, arguments );\n\t}\n\n\t// Make a copy, we don't want to modify arguments\n\toptions = $.extend( {}, options );\n\n\tvar atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,\n\n\t\t// Make sure string options are treated as CSS selectors\n\t\ttarget = typeof options.of === \"string\" ?\n\t\t\t$( document ).find( options.of ) :\n\t\t\t$( options.of ),\n\n\t\twithin = $.position.getWithinInfo( options.within ),\n\t\tscrollInfo = $.position.getScrollInfo( within ),\n\t\tcollision = ( options.collision || \"flip\" ).split( \" \" ),\n\t\toffsets = {};\n\n\tdimensions = getDimensions( target );\n\tif ( target[ 0 ].preventDefault ) {\n\n\t\t// Force left top to allow flipping\n\t\toptions.at = \"left top\";\n\t}\n\ttargetWidth = dimensions.width;\n\ttargetHeight = dimensions.height;\n\ttargetOffset = dimensions.offset;\n\n\t// Clone to reuse original targetOffset later\n\tbasePosition = $.extend( {}, targetOffset );\n\n\t// Force my and at to have valid horizontal and vertical positions\n\t// if a value is missing or invalid, it will be converted to center\n\t$.each( [ \"my\", \"at\" ], function() {\n\t\tvar pos = ( options[ this ] || \"\" ).split( \" \" ),\n\t\t\thorizontalOffset,\n\t\t\tverticalOffset;\n\n\t\tif ( pos.length === 1 ) {\n\t\t\tpos = rhorizontal.test( pos[ 0 ] ) ?\n\t\t\t\tpos.concat( [ \"center\" ] ) :\n\t\t\t\trvertical.test( pos[ 0 ] ) ?\n\t\t\t\t\t[ \"center\" ].concat( pos ) :\n\t\t\t\t\t[ \"center\", \"center\" ];\n\t\t}\n\t\tpos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : \"center\";\n\t\tpos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : \"center\";\n\n\t\t// Calculate offsets\n\t\thorizontalOffset = roffset.exec( pos[ 0 ] );\n\t\tverticalOffset = roffset.exec( pos[ 1 ] );\n\t\toffsets[ this ] = [\n\t\t\thorizontalOffset ? horizontalOffset[ 0 ] : 0,\n\t\t\tverticalOffset ? verticalOffset[ 0 ] : 0\n\t\t];\n\n\t\t// Reduce to just the positions without the offsets\n\t\toptions[ this ] = [\n\t\t\trposition.exec( pos[ 0 ] )[ 0 ],\n\t\t\trposition.exec( pos[ 1 ] )[ 0 ]\n\t\t];\n\t} );\n\n\t// Normalize collision option\n\tif ( collision.length === 1 ) {\n\t\tcollision[ 1 ] = collision[ 0 ];\n\t}\n\n\tif ( options.at[ 0 ] === \"right\" ) {\n\t\tbasePosition.left += targetWidth;\n\t} else if ( options.at[ 0 ] === \"center\" ) {\n\t\tbasePosition.left += targetWidth / 2;\n\t}\n\n\tif ( options.at[ 1 ] === \"bottom\" ) {\n\t\tbasePosition.top += targetHeight;\n\t} else if ( options.at[ 1 ] === \"center\" ) {\n\t\tbasePosition.top += targetHeight / 2;\n\t}\n\n\tatOffset = getOffsets( offsets.at, targetWidth, targetHeight );\n\tbasePosition.left += atOffset[ 0 ];\n\tbasePosition.top += atOffset[ 1 ];\n\n\treturn this.each( function() {\n\t\tvar collisionPosition, using,\n\t\t\telem = $( this ),\n\t\t\telemWidth = elem.outerWidth(),\n\t\t\telemHeight = elem.outerHeight(),\n\t\t\tmarginLeft = parseCss( this, \"marginLeft\" ),\n\t\t\tmarginTop = parseCss( this, \"marginTop\" ),\n\t\t\tcollisionWidth = elemWidth + marginLeft + parseCss( this, \"marginRight\" ) +\n\t\t\t\tscrollInfo.width,\n\t\t\tcollisionHeight = elemHeight + marginTop + parseCss( this, \"marginBottom\" ) +\n\t\t\t\tscrollInfo.height,\n\t\t\tposition = $.extend( {}, basePosition ),\n\t\t\tmyOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );\n\n\t\tif ( options.my[ 0 ] === \"right\" ) {\n\t\t\tposition.left -= elemWidth;\n\t\t} else if ( options.my[ 0 ] === \"center\" ) {\n\t\t\tposition.left -= elemWidth / 2;\n\t\t}\n\n\t\tif ( options.my[ 1 ] === \"bottom\" ) {\n\t\t\tposition.top -= elemHeight;\n\t\t} else if ( options.my[ 1 ] === \"center\" ) {\n\t\t\tposition.top -= elemHeight / 2;\n\t\t}\n\n\t\tposition.left += myOffset[ 0 ];\n\t\tposition.top += myOffset[ 1 ];\n\n\t\tcollisionPosition = {\n\t\t\tmarginLeft: marginLeft,\n\t\t\tmarginTop: marginTop\n\t\t};\n\n\t\t$.each( [ \"left\", \"top\" ], function( i, dir ) {\n\t\t\tif ( $.ui.position[ collision[ i ] ] ) {\n\t\t\t\t$.ui.position[ collision[ i ] ][ dir ]( position, {\n\t\t\t\t\ttargetWidth: targetWidth,\n\t\t\t\t\ttargetHeight: targetHeight,\n\t\t\t\t\telemWidth: elemWidth,\n\t\t\t\t\telemHeight: elemHeight,\n\t\t\t\t\tcollisionPosition: collisionPosition,\n\t\t\t\t\tcollisionWidth: collisionWidth,\n\t\t\t\t\tcollisionHeight: collisionHeight,\n\t\t\t\t\toffset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],\n\t\t\t\t\tmy: options.my,\n\t\t\t\t\tat: options.at,\n\t\t\t\t\twithin: within,\n\t\t\t\t\telem: elem\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\tif ( options.using ) {\n\n\t\t\t// Adds feedback as second argument to using callback, if present\n\t\t\tusing = function( props ) {\n\t\t\t\tvar left = targetOffset.left - position.left,\n\t\t\t\t\tright = left + targetWidth - elemWidth,\n\t\t\t\t\ttop = targetOffset.top - position.top,\n\t\t\t\t\tbottom = top + targetHeight - elemHeight,\n\t\t\t\t\tfeedback = {\n\t\t\t\t\t\ttarget: {\n\t\t\t\t\t\t\telement: target,\n\t\t\t\t\t\t\tleft: targetOffset.left,\n\t\t\t\t\t\t\ttop: targetOffset.top,\n\t\t\t\t\t\t\twidth: targetWidth,\n\t\t\t\t\t\t\theight: targetHeight\n\t\t\t\t\t\t},\n\t\t\t\t\t\telement: {\n\t\t\t\t\t\t\telement: elem,\n\t\t\t\t\t\t\tleft: position.left,\n\t\t\t\t\t\t\ttop: position.top,\n\t\t\t\t\t\t\twidth: elemWidth,\n\t\t\t\t\t\t\theight: elemHeight\n\t\t\t\t\t\t},\n\t\t\t\t\t\thorizontal: right < 0 ? \"left\" : left > 0 ? \"right\" : \"center\",\n\t\t\t\t\t\tvertical: bottom < 0 ? \"top\" : top > 0 ? \"bottom\" : \"middle\"\n\t\t\t\t\t};\n\t\t\t\tif ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {\n\t\t\t\t\tfeedback.horizontal = \"center\";\n\t\t\t\t}\n\t\t\t\tif ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {\n\t\t\t\t\tfeedback.vertical = \"middle\";\n\t\t\t\t}\n\t\t\t\tif ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {\n\t\t\t\t\tfeedback.important = \"horizontal\";\n\t\t\t\t} else {\n\t\t\t\t\tfeedback.important = \"vertical\";\n\t\t\t\t}\n\t\t\t\toptions.using.call( this, props, feedback );\n\t\t\t};\n\t\t}\n\n\t\telem.offset( $.extend( position, { using: using } ) );\n\t} );\n};\n\n$.ui.position = {\n\tfit: {\n\t\tleft: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.isWindow ? within.scrollLeft : within.offset.left,\n\t\t\t\touterWidth = within.width,\n\t\t\t\tcollisionPosLeft = position.left - data.collisionPosition.marginLeft,\n\t\t\t\toverLeft = withinOffset - collisionPosLeft,\n\t\t\t\toverRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,\n\t\t\t\tnewOverRight;\n\n\t\t\t// Element is wider than within\n\t\t\tif ( data.collisionWidth > outerWidth ) {\n\n\t\t\t\t// Element is initially over the left side of within\n\t\t\t\tif ( overLeft > 0 && overRight <= 0 ) {\n\t\t\t\t\tnewOverRight = position.left + overLeft + data.collisionWidth - outerWidth -\n\t\t\t\t\t\twithinOffset;\n\t\t\t\t\tposition.left += overLeft - newOverRight;\n\n\t\t\t\t// Element is initially over right side of within\n\t\t\t\t} else if ( overRight > 0 && overLeft <= 0 ) {\n\t\t\t\t\tposition.left = withinOffset;\n\n\t\t\t\t// Element is initially over both left and right sides of within\n\t\t\t\t} else {\n\t\t\t\t\tif ( overLeft > overRight ) {\n\t\t\t\t\t\tposition.left = withinOffset + outerWidth - data.collisionWidth;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.left = withinOffset;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Too far left -> align with left edge\n\t\t\t} else if ( overLeft > 0 ) {\n\t\t\t\tposition.left += overLeft;\n\n\t\t\t// Too far right -> align with right edge\n\t\t\t} else if ( overRight > 0 ) {\n\t\t\t\tposition.left -= overRight;\n\n\t\t\t// Adjust based on position and margin\n\t\t\t} else {\n\t\t\t\tposition.left = max( position.left - collisionPosLeft, position.left );\n\t\t\t}\n\t\t},\n\t\ttop: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.isWindow ? within.scrollTop : within.offset.top,\n\t\t\t\touterHeight = data.within.height,\n\t\t\t\tcollisionPosTop = position.top - data.collisionPosition.marginTop,\n\t\t\t\toverTop = withinOffset - collisionPosTop,\n\t\t\t\toverBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,\n\t\t\t\tnewOverBottom;\n\n\t\t\t// Element is taller than within\n\t\t\tif ( data.collisionHeight > outerHeight ) {\n\n\t\t\t\t// Element is initially over the top of within\n\t\t\t\tif ( overTop > 0 && overBottom <= 0 ) {\n\t\t\t\t\tnewOverBottom = position.top + overTop + data.collisionHeight - outerHeight -\n\t\t\t\t\t\twithinOffset;\n\t\t\t\t\tposition.top += overTop - newOverBottom;\n\n\t\t\t\t// Element is initially over bottom of within\n\t\t\t\t} else if ( overBottom > 0 && overTop <= 0 ) {\n\t\t\t\t\tposition.top = withinOffset;\n\n\t\t\t\t// Element is initially over both top and bottom of within\n\t\t\t\t} else {\n\t\t\t\t\tif ( overTop > overBottom ) {\n\t\t\t\t\t\tposition.top = withinOffset + outerHeight - data.collisionHeight;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.top = withinOffset;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Too far up -> align with top\n\t\t\t} else if ( overTop > 0 ) {\n\t\t\t\tposition.top += overTop;\n\n\t\t\t// Too far down -> align with bottom edge\n\t\t\t} else if ( overBottom > 0 ) {\n\t\t\t\tposition.top -= overBottom;\n\n\t\t\t// Adjust based on position and margin\n\t\t\t} else {\n\t\t\t\tposition.top = max( position.top - collisionPosTop, position.top );\n\t\t\t}\n\t\t}\n\t},\n\tflip: {\n\t\tleft: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.offset.left + within.scrollLeft,\n\t\t\t\touterWidth = within.width,\n\t\t\t\toffsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,\n\t\t\t\tcollisionPosLeft = position.left - data.collisionPosition.marginLeft,\n\t\t\t\toverLeft = collisionPosLeft - offsetLeft,\n\t\t\t\toverRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,\n\t\t\t\tmyOffset = data.my[ 0 ] === \"left\" ?\n\t\t\t\t\t-data.elemWidth :\n\t\t\t\t\tdata.my[ 0 ] === \"right\" ?\n\t\t\t\t\t\tdata.elemWidth :\n\t\t\t\t\t\t0,\n\t\t\t\tatOffset = data.at[ 0 ] === \"left\" ?\n\t\t\t\t\tdata.targetWidth :\n\t\t\t\t\tdata.at[ 0 ] === \"right\" ?\n\t\t\t\t\t\t-data.targetWidth :\n\t\t\t\t\t\t0,\n\t\t\t\toffset = -2 * data.offset[ 0 ],\n\t\t\t\tnewOverRight,\n\t\t\t\tnewOverLeft;\n\n\t\t\tif ( overLeft < 0 ) {\n\t\t\t\tnewOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth -\n\t\t\t\t\touterWidth - withinOffset;\n\t\t\t\tif ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {\n\t\t\t\t\tposition.left += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t} else if ( overRight > 0 ) {\n\t\t\t\tnewOverLeft = position.left - data.collisionPosition.marginLeft + myOffset +\n\t\t\t\t\tatOffset + offset - offsetLeft;\n\t\t\t\tif ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {\n\t\t\t\t\tposition.left += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttop: function( position, data ) {\n\t\t\tvar within = data.within,\n\t\t\t\twithinOffset = within.offset.top + within.scrollTop,\n\t\t\t\touterHeight = within.height,\n\t\t\t\toffsetTop = within.isWindow ? within.scrollTop : within.offset.top,\n\t\t\t\tcollisionPosTop = position.top - data.collisionPosition.marginTop,\n\t\t\t\toverTop = collisionPosTop - offsetTop,\n\t\t\t\toverBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,\n\t\t\t\ttop = data.my[ 1 ] === \"top\",\n\t\t\t\tmyOffset = top ?\n\t\t\t\t\t-data.elemHeight :\n\t\t\t\t\tdata.my[ 1 ] === \"bottom\" ?\n\t\t\t\t\t\tdata.elemHeight :\n\t\t\t\t\t\t0,\n\t\t\t\tatOffset = data.at[ 1 ] === \"top\" ?\n\t\t\t\t\tdata.targetHeight :\n\t\t\t\t\tdata.at[ 1 ] === \"bottom\" ?\n\t\t\t\t\t\t-data.targetHeight :\n\t\t\t\t\t\t0,\n\t\t\t\toffset = -2 * data.offset[ 1 ],\n\t\t\t\tnewOverTop,\n\t\t\t\tnewOverBottom;\n\t\t\tif ( overTop < 0 ) {\n\t\t\t\tnewOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight -\n\t\t\t\t\touterHeight - withinOffset;\n\t\t\t\tif ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {\n\t\t\t\t\tposition.top += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t} else if ( overBottom > 0 ) {\n\t\t\t\tnewOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset +\n\t\t\t\t\toffset - offsetTop;\n\t\t\t\tif ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {\n\t\t\t\t\tposition.top += myOffset + atOffset + offset;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tflipfit: {\n\t\tleft: function() {\n\t\t\t$.ui.position.flip.left.apply( this, arguments );\n\t\t\t$.ui.position.fit.left.apply( this, arguments );\n\t\t},\n\t\ttop: function() {\n\t\t\t$.ui.position.flip.top.apply( this, arguments );\n\t\t\t$.ui.position.fit.top.apply( this, arguments );\n\t\t}\n\t}\n};\n\n} )();\n\nvar position = $.ui.position;\n\n\n/*!\n * jQuery UI :data 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: :data Selector\n//>>group: Core\n//>>description: Selects elements which have data stored under the specified key.\n//>>docs: http://api.jqueryui.com/data-selector/\n\n\nvar data = $.extend( $.expr.pseudos, {\n\tdata: $.expr.createPseudo ?\n\t\t$.expr.createPseudo( function( dataName ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn !!$.data( elem, dataName );\n\t\t\t};\n\t\t} ) :\n\n\t\t// Support: jQuery <1.8\n\t\tfunction( elem, i, match ) {\n\t\t\treturn !!$.data( elem, match[ 3 ] );\n\t\t}\n} );\n\n/*!\n * jQuery UI Disable Selection 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: disableSelection\n//>>group: Core\n//>>description: Disable selection of text content within the set of matched elements.\n//>>docs: http://api.jqueryui.com/disableSelection/\n\n// This file is deprecated\n\nvar disableSelection = $.fn.extend( {\n\tdisableSelection: ( function() {\n\t\tvar eventType = \"onselectstart\" in document.createElement( \"div\" ) ?\n\t\t\t\"selectstart\" :\n\t\t\t\"mousedown\";\n\n\t\treturn function() {\n\t\t\treturn this.on( eventType + \".ui-disableSelection\", function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t} );\n\t\t};\n\t} )(),\n\n\tenableSelection: function() {\n\t\treturn this.off( \".ui-disableSelection\" );\n\t}\n} );\n\n\n\n// Create a local jQuery because jQuery Color relies on it and the\n// global may not exist with AMD and a custom build (#10199).\n// This module is a noop if used as a regular AMD module.\n// eslint-disable-next-line no-unused-vars\nvar jQuery = $;\n\n\n/*!\n * jQuery Color Animations v2.2.0\n * https://github.com/jquery/jquery-color\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * Date: Sun May 10 09:02:36 2020 +0200\n */\n\n\n\n\tvar stepHooks = \"backgroundColor borderBottomColor borderLeftColor borderRightColor \" +\n\t\t\"borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\",\n\n\tclass2type = {},\n\ttoString = class2type.toString,\n\n\t// plusequals test for += 100 -= 100\n\trplusequals = /^([\\-+])=\\s*(\\d+\\.?\\d*)/,\n\n\t// a set of RE's that can match strings and generate color tuples.\n\tstringParsers = [ {\n\t\t\tre: /rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ],\n\t\t\t\t\texecResult[ 3 ],\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ] * 2.55,\n\t\t\t\t\texecResult[ 2 ] * 2.55,\n\t\t\t\t\texecResult[ 3 ] * 2.55,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\n\t\t\t// this regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ], 16 ),\n\t\t\t\t\texecResult[ 4 ] ?\n\t\t\t\t\t\t( parseInt( execResult[ 4 ], 16 ) / 255 ).toFixed( 2 ) :\n\t\t\t\t\t\t1\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\n\t\t\t// this regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ] + execResult[ 3 ], 16 ),\n\t\t\t\t\texecResult[ 4 ] ?\n\t\t\t\t\t\t( parseInt( execResult[ 4 ] + execResult[ 4 ], 16 ) / 255 )\n\t\t\t\t\t\t\t.toFixed( 2 ) :\n\t\t\t\t\t\t1\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tspace: \"hsla\",\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ] / 100,\n\t\t\t\t\texecResult[ 3 ] / 100,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t} ],\n\n\t// jQuery.Color( )\n\tcolor = jQuery.Color = function( color, green, blue, alpha ) {\n\t\treturn new jQuery.Color.fn.parse( color, green, blue, alpha );\n\t},\n\tspaces = {\n\t\trgba: {\n\t\t\tprops: {\n\t\t\t\tred: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tgreen: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tblue: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thsla: {\n\t\t\tprops: {\n\t\t\t\thue: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"degrees\"\n\t\t\t\t},\n\t\t\t\tsaturation: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t},\n\t\t\t\tlightness: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tpropTypes = {\n\t\t\"byte\": {\n\t\t\tfloor: true,\n\t\t\tmax: 255\n\t\t},\n\t\t\"percent\": {\n\t\t\tmax: 1\n\t\t},\n\t\t\"degrees\": {\n\t\t\tmod: 360,\n\t\t\tfloor: true\n\t\t}\n\t},\n\tsupport = color.support = {},\n\n\t// element for support tests\n\tsupportElem = jQuery( \"

\" )[ 0 ],\n\n\t// colors = jQuery.Color.names\n\tcolors,\n\n\t// local aliases of functions called often\n\teach = jQuery.each;\n\n// determine rgba support immediately\nsupportElem.style.cssText = \"background-color:rgba(1,1,1,.5)\";\nsupport.rgba = supportElem.style.backgroundColor.indexOf( \"rgba\" ) > -1;\n\n// define cache name and alpha properties\n// for rgba and hsla spaces\neach( spaces, function( spaceName, space ) {\n\tspace.cache = \"_\" + spaceName;\n\tspace.props.alpha = {\n\t\tidx: 3,\n\t\ttype: \"percent\",\n\t\tdef: 1\n\t};\n} );\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction getType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\treturn typeof obj === \"object\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n\nfunction clamp( value, prop, allowEmpty ) {\n\tvar type = propTypes[ prop.type ] || {};\n\n\tif ( value == null ) {\n\t\treturn ( allowEmpty || !prop.def ) ? null : prop.def;\n\t}\n\n\t// ~~ is an short way of doing floor for positive numbers\n\tvalue = type.floor ? ~~value : parseFloat( value );\n\n\t// IE will pass in empty strings as value for alpha,\n\t// which will hit this case\n\tif ( isNaN( value ) ) {\n\t\treturn prop.def;\n\t}\n\n\tif ( type.mod ) {\n\n\t\t// we add mod before modding to make sure that negatives values\n\t\t// get converted properly: -10 -> 350\n\t\treturn ( value + type.mod ) % type.mod;\n\t}\n\n\t// for now all property types without mod have min and max\n\treturn Math.min( type.max, Math.max( 0, value ) );\n}\n\nfunction stringParse( string ) {\n\tvar inst = color(),\n\t\trgba = inst._rgba = [];\n\n\tstring = string.toLowerCase();\n\n\teach( stringParsers, function( _i, parser ) {\n\t\tvar parsed,\n\t\t\tmatch = parser.re.exec( string ),\n\t\t\tvalues = match && parser.parse( match ),\n\t\t\tspaceName = parser.space || \"rgba\";\n\n\t\tif ( values ) {\n\t\t\tparsed = inst[ spaceName ]( values );\n\n\t\t\t// if this was an rgba parse the assignment might happen twice\n\t\t\t// oh well....\n\t\t\tinst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];\n\t\t\trgba = inst._rgba = parsed._rgba;\n\n\t\t\t// exit each( stringParsers ) here because we matched\n\t\t\treturn false;\n\t\t}\n\t} );\n\n\t// Found a stringParser that handled it\n\tif ( rgba.length ) {\n\n\t\t// if this came from a parsed string, force \"transparent\" when alpha is 0\n\t\t// chrome, (and maybe others) return \"transparent\" as rgba(0,0,0,0)\n\t\tif ( rgba.join() === \"0,0,0,0\" ) {\n\t\t\tjQuery.extend( rgba, colors.transparent );\n\t\t}\n\t\treturn inst;\n\t}\n\n\t// named colors\n\treturn colors[ string ];\n}\n\ncolor.fn = jQuery.extend( color.prototype, {\n\tparse: function( red, green, blue, alpha ) {\n\t\tif ( red === undefined ) {\n\t\t\tthis._rgba = [ null, null, null, null ];\n\t\t\treturn this;\n\t\t}\n\t\tif ( red.jquery || red.nodeType ) {\n\t\t\tred = jQuery( red ).css( green );\n\t\t\tgreen = undefined;\n\t\t}\n\n\t\tvar inst = this,\n\t\t\ttype = getType( red ),\n\t\t\trgba = this._rgba = [];\n\n\t\t// more than 1 argument specified - assume ( red, green, blue, alpha )\n\t\tif ( green !== undefined ) {\n\t\t\tred = [ red, green, blue, alpha ];\n\t\t\ttype = \"array\";\n\t\t}\n\n\t\tif ( type === \"string\" ) {\n\t\t\treturn this.parse( stringParse( red ) || colors._default );\n\t\t}\n\n\t\tif ( type === \"array\" ) {\n\t\t\teach( spaces.rgba.props, function( _key, prop ) {\n\t\t\t\trgba[ prop.idx ] = clamp( red[ prop.idx ], prop );\n\t\t\t} );\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( type === \"object\" ) {\n\t\t\tif ( red instanceof color ) {\n\t\t\t\teach( spaces, function( _spaceName, space ) {\n\t\t\t\t\tif ( red[ space.cache ] ) {\n\t\t\t\t\t\tinst[ space.cache ] = red[ space.cache ].slice();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\teach( spaces, function( _spaceName, space ) {\n\t\t\t\t\tvar cache = space.cache;\n\t\t\t\t\teach( space.props, function( key, prop ) {\n\n\t\t\t\t\t\t// if the cache doesn't exist, and we know how to convert\n\t\t\t\t\t\tif ( !inst[ cache ] && space.to ) {\n\n\t\t\t\t\t\t\t// if the value was null, we don't need to copy it\n\t\t\t\t\t\t\t// if the key was alpha, we don't need to copy it either\n\t\t\t\t\t\t\tif ( key === \"alpha\" || red[ key ] == null ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinst[ cache ] = space.to( inst._rgba );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// this is the only case where we allow nulls for ALL properties.\n\t\t\t\t\t\t// call clamp with alwaysAllowEmpty\n\t\t\t\t\t\tinst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );\n\t\t\t\t\t} );\n\n\t\t\t\t\t// everything defined but alpha?\n\t\t\t\t\tif ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {\n\n\t\t\t\t\t\t// use the default of 1\n\t\t\t\t\t\tif ( inst[ cache ][ 3 ] == null ) {\n\t\t\t\t\t\t\tinst[ cache ][ 3 ] = 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( space.from ) {\n\t\t\t\t\t\t\tinst._rgba = space.from( inst[ cache ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t},\n\tis: function( compare ) {\n\t\tvar is = color( compare ),\n\t\t\tsame = true,\n\t\t\tinst = this;\n\n\t\teach( spaces, function( _, space ) {\n\t\t\tvar localCache,\n\t\t\t\tisCache = is[ space.cache ];\n\t\t\tif ( isCache ) {\n\t\t\t\tlocalCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];\n\t\t\t\teach( space.props, function( _, prop ) {\n\t\t\t\t\tif ( isCache[ prop.idx ] != null ) {\n\t\t\t\t\t\tsame = ( isCache[ prop.idx ] === localCache[ prop.idx ] );\n\t\t\t\t\t\treturn same;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn same;\n\t\t} );\n\t\treturn same;\n\t},\n\t_space: function() {\n\t\tvar used = [],\n\t\t\tinst = this;\n\t\teach( spaces, function( spaceName, space ) {\n\t\t\tif ( inst[ space.cache ] ) {\n\t\t\t\tused.push( spaceName );\n\t\t\t}\n\t\t} );\n\t\treturn used.pop();\n\t},\n\ttransition: function( other, distance ) {\n\t\tvar end = color( other ),\n\t\t\tspaceName = end._space(),\n\t\t\tspace = spaces[ spaceName ],\n\t\t\tstartColor = this.alpha() === 0 ? color( \"transparent\" ) : this,\n\t\t\tstart = startColor[ space.cache ] || space.to( startColor._rgba ),\n\t\t\tresult = start.slice();\n\n\t\tend = end[ space.cache ];\n\t\teach( space.props, function( _key, prop ) {\n\t\t\tvar index = prop.idx,\n\t\t\t\tstartValue = start[ index ],\n\t\t\t\tendValue = end[ index ],\n\t\t\t\ttype = propTypes[ prop.type ] || {};\n\n\t\t\t// if null, don't override start value\n\t\t\tif ( endValue === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// if null - use end\n\t\t\tif ( startValue === null ) {\n\t\t\t\tresult[ index ] = endValue;\n\t\t\t} else {\n\t\t\t\tif ( type.mod ) {\n\t\t\t\t\tif ( endValue - startValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue += type.mod;\n\t\t\t\t\t} else if ( startValue - endValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue -= type.mod;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );\n\t\t\t}\n\t\t} );\n\t\treturn this[ spaceName ]( result );\n\t},\n\tblend: function( opaque ) {\n\n\t\t// if we are already opaque - return ourself\n\t\tif ( this._rgba[ 3 ] === 1 ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tvar rgb = this._rgba.slice(),\n\t\t\ta = rgb.pop(),\n\t\t\tblend = color( opaque )._rgba;\n\n\t\treturn color( jQuery.map( rgb, function( v, i ) {\n\t\t\treturn ( 1 - a ) * blend[ i ] + a * v;\n\t\t} ) );\n\t},\n\ttoRgbaString: function() {\n\t\tvar prefix = \"rgba(\",\n\t\t\trgba = jQuery.map( this._rgba, function( v, i ) {\n\t\t\t\tif ( v != null ) {\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t\treturn i > 2 ? 1 : 0;\n\t\t\t} );\n\n\t\tif ( rgba[ 3 ] === 1 ) {\n\t\t\trgba.pop();\n\t\t\tprefix = \"rgb(\";\n\t\t}\n\n\t\treturn prefix + rgba.join() + \")\";\n\t},\n\ttoHslaString: function() {\n\t\tvar prefix = \"hsla(\",\n\t\t\thsla = jQuery.map( this.hsla(), function( v, i ) {\n\t\t\t\tif ( v == null ) {\n\t\t\t\t\tv = i > 2 ? 1 : 0;\n\t\t\t\t}\n\n\t\t\t\t// catch 1 and 2\n\t\t\t\tif ( i && i < 3 ) {\n\t\t\t\t\tv = Math.round( v * 100 ) + \"%\";\n\t\t\t\t}\n\t\t\t\treturn v;\n\t\t\t} );\n\n\t\tif ( hsla[ 3 ] === 1 ) {\n\t\t\thsla.pop();\n\t\t\tprefix = \"hsl(\";\n\t\t}\n\t\treturn prefix + hsla.join() + \")\";\n\t},\n\ttoHexString: function( includeAlpha ) {\n\t\tvar rgba = this._rgba.slice(),\n\t\t\talpha = rgba.pop();\n\n\t\tif ( includeAlpha ) {\n\t\t\trgba.push( ~~( alpha * 255 ) );\n\t\t}\n\n\t\treturn \"#\" + jQuery.map( rgba, function( v ) {\n\n\t\t\t// default to 0 when nulls exist\n\t\t\tv = ( v || 0 ).toString( 16 );\n\t\t\treturn v.length === 1 ? \"0\" + v : v;\n\t\t} ).join( \"\" );\n\t},\n\ttoString: function() {\n\t\treturn this._rgba[ 3 ] === 0 ? \"transparent\" : this.toRgbaString();\n\t}\n} );\ncolor.fn.parse.prototype = color.fn;\n\n// hsla conversions adapted from:\n// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021\n\nfunction hue2rgb( p, q, h ) {\n\th = ( h + 1 ) % 1;\n\tif ( h * 6 < 1 ) {\n\t\treturn p + ( q - p ) * h * 6;\n\t}\n\tif ( h * 2 < 1 ) {\n\t\treturn q;\n\t}\n\tif ( h * 3 < 2 ) {\n\t\treturn p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6;\n\t}\n\treturn p;\n}\n\nspaces.hsla.to = function( rgba ) {\n\tif ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {\n\t\treturn [ null, null, null, rgba[ 3 ] ];\n\t}\n\tvar r = rgba[ 0 ] / 255,\n\t\tg = rgba[ 1 ] / 255,\n\t\tb = rgba[ 2 ] / 255,\n\t\ta = rgba[ 3 ],\n\t\tmax = Math.max( r, g, b ),\n\t\tmin = Math.min( r, g, b ),\n\t\tdiff = max - min,\n\t\tadd = max + min,\n\t\tl = add * 0.5,\n\t\th, s;\n\n\tif ( min === max ) {\n\t\th = 0;\n\t} else if ( r === max ) {\n\t\th = ( 60 * ( g - b ) / diff ) + 360;\n\t} else if ( g === max ) {\n\t\th = ( 60 * ( b - r ) / diff ) + 120;\n\t} else {\n\t\th = ( 60 * ( r - g ) / diff ) + 240;\n\t}\n\n\t// chroma (diff) == 0 means greyscale which, by definition, saturation = 0%\n\t// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)\n\tif ( diff === 0 ) {\n\t\ts = 0;\n\t} else if ( l <= 0.5 ) {\n\t\ts = diff / add;\n\t} else {\n\t\ts = diff / ( 2 - add );\n\t}\n\treturn [ Math.round( h ) % 360, s, l, a == null ? 1 : a ];\n};\n\nspaces.hsla.from = function( hsla ) {\n\tif ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {\n\t\treturn [ null, null, null, hsla[ 3 ] ];\n\t}\n\tvar h = hsla[ 0 ] / 360,\n\t\ts = hsla[ 1 ],\n\t\tl = hsla[ 2 ],\n\t\ta = hsla[ 3 ],\n\t\tq = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,\n\t\tp = 2 * l - q;\n\n\treturn [\n\t\tMath.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),\n\t\ta\n\t];\n};\n\n\neach( spaces, function( spaceName, space ) {\n\tvar props = space.props,\n\t\tcache = space.cache,\n\t\tto = space.to,\n\t\tfrom = space.from;\n\n\t// makes rgba() and hsla()\n\tcolor.fn[ spaceName ] = function( value ) {\n\n\t\t// generate a cache for this space if it doesn't exist\n\t\tif ( to && !this[ cache ] ) {\n\t\t\tthis[ cache ] = to( this._rgba );\n\t\t}\n\t\tif ( value === undefined ) {\n\t\t\treturn this[ cache ].slice();\n\t\t}\n\n\t\tvar ret,\n\t\t\ttype = getType( value ),\n\t\t\tarr = ( type === \"array\" || type === \"object\" ) ? value : arguments,\n\t\t\tlocal = this[ cache ].slice();\n\n\t\teach( props, function( key, prop ) {\n\t\t\tvar val = arr[ type === \"object\" ? key : prop.idx ];\n\t\t\tif ( val == null ) {\n\t\t\t\tval = local[ prop.idx ];\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = clamp( val, prop );\n\t\t} );\n\n\t\tif ( from ) {\n\t\t\tret = color( from( local ) );\n\t\t\tret[ cache ] = local;\n\t\t\treturn ret;\n\t\t} else {\n\t\t\treturn color( local );\n\t\t}\n\t};\n\n\t// makes red() green() blue() alpha() hue() saturation() lightness()\n\teach( props, function( key, prop ) {\n\n\t\t// alpha is included in more than one space\n\t\tif ( color.fn[ key ] ) {\n\t\t\treturn;\n\t\t}\n\t\tcolor.fn[ key ] = function( value ) {\n\t\t\tvar local, cur, match, fn,\n\t\t\t\tvtype = getType( value );\n\n\t\t\tif ( key === \"alpha\" ) {\n\t\t\t\tfn = this._hsla ? \"hsla\" : \"rgba\";\n\t\t\t} else {\n\t\t\t\tfn = spaceName;\n\t\t\t}\n\t\t\tlocal = this[ fn ]();\n\t\t\tcur = local[ prop.idx ];\n\n\t\t\tif ( vtype === \"undefined\" ) {\n\t\t\t\treturn cur;\n\t\t\t}\n\n\t\t\tif ( vtype === \"function\" ) {\n\t\t\t\tvalue = value.call( this, cur );\n\t\t\t\tvtype = getType( value );\n\t\t\t}\n\t\t\tif ( value == null && prop.empty ) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif ( vtype === \"string\" ) {\n\t\t\t\tmatch = rplusequals.exec( value );\n\t\t\t\tif ( match ) {\n\t\t\t\t\tvalue = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === \"+\" ? 1 : -1 );\n\t\t\t\t}\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = value;\n\t\t\treturn this[ fn ]( local );\n\t\t};\n\t} );\n} );\n\n// add cssHook and .fx.step function for each named hook.\n// accept a space separated string of properties\ncolor.hook = function( hook ) {\n\tvar hooks = hook.split( \" \" );\n\teach( hooks, function( _i, hook ) {\n\t\tjQuery.cssHooks[ hook ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar parsed, curElem,\n\t\t\t\t\tbackgroundColor = \"\";\n\n\t\t\t\tif ( value !== \"transparent\" && ( getType( value ) !== \"string\" || ( parsed = stringParse( value ) ) ) ) {\n\t\t\t\t\tvalue = color( parsed || value );\n\t\t\t\t\tif ( !support.rgba && value._rgba[ 3 ] !== 1 ) {\n\t\t\t\t\t\tcurElem = hook === \"backgroundColor\" ? elem.parentNode : elem;\n\t\t\t\t\t\twhile (\n\t\t\t\t\t\t\t( backgroundColor === \"\" || backgroundColor === \"transparent\" ) &&\n\t\t\t\t\t\t\tcurElem && curElem.style\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tbackgroundColor = jQuery.css( curElem, \"backgroundColor\" );\n\t\t\t\t\t\t\t\tcurElem = curElem.parentNode;\n\t\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvalue = value.blend( backgroundColor && backgroundColor !== \"transparent\" ?\n\t\t\t\t\t\t\tbackgroundColor :\n\t\t\t\t\t\t\t\"_default\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tvalue = value.toRgbaString();\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\telem.style[ hook ] = value;\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// wrapped to prevent IE from throwing errors on \"invalid\" values like 'auto' or 'inherit'\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tjQuery.fx.step[ hook ] = function( fx ) {\n\t\t\tif ( !fx.colorInit ) {\n\t\t\t\tfx.start = color( fx.elem, hook );\n\t\t\t\tfx.end = color( fx.end );\n\t\t\t\tfx.colorInit = true;\n\t\t\t}\n\t\t\tjQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );\n\t\t};\n\t} );\n\n};\n\ncolor.hook( stepHooks );\n\njQuery.cssHooks.borderColor = {\n\texpand: function( value ) {\n\t\tvar expanded = {};\n\n\t\teach( [ \"Top\", \"Right\", \"Bottom\", \"Left\" ], function( _i, part ) {\n\t\t\texpanded[ \"border\" + part + \"Color\" ] = value;\n\t\t} );\n\t\treturn expanded;\n\t}\n};\n\n// Basic color names only.\n// Usage of any of the other color names requires adding yourself or including\n// jquery.color.svg-names.js.\ncolors = jQuery.Color.names = {\n\n\t// 4.1. Basic color keywords\n\taqua: \"#00ffff\",\n\tblack: \"#000000\",\n\tblue: \"#0000ff\",\n\tfuchsia: \"#ff00ff\",\n\tgray: \"#808080\",\n\tgreen: \"#008000\",\n\tlime: \"#00ff00\",\n\tmaroon: \"#800000\",\n\tnavy: \"#000080\",\n\tolive: \"#808000\",\n\tpurple: \"#800080\",\n\tred: \"#ff0000\",\n\tsilver: \"#c0c0c0\",\n\tteal: \"#008080\",\n\twhite: \"#ffffff\",\n\tyellow: \"#ffff00\",\n\n\t// 4.2.3. \"transparent\" color keyword\n\ttransparent: [ null, null, null, 0 ],\n\n\t_default: \"#ffffff\"\n};\n\n\n/*!\n * jQuery UI Effects 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Effects Core\n//>>group: Effects\n/* eslint-disable max-len */\n//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects.\n/* eslint-enable max-len */\n//>>docs: http://api.jqueryui.com/category/effects-core/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar dataSpace = \"ui-effects-\",\n\tdataSpaceStyle = \"ui-effects-style\",\n\tdataSpaceAnimated = \"ui-effects-animated\";\n\n$.effects = {\n\teffect: {}\n};\n\n/******************************************************************************/\n/****************************** CLASS ANIMATIONS ******************************/\n/******************************************************************************/\n( function() {\n\nvar classAnimationActions = [ \"add\", \"remove\", \"toggle\" ],\n\tshorthandStyles = {\n\t\tborder: 1,\n\t\tborderBottom: 1,\n\t\tborderColor: 1,\n\t\tborderLeft: 1,\n\t\tborderRight: 1,\n\t\tborderTop: 1,\n\t\tborderWidth: 1,\n\t\tmargin: 1,\n\t\tpadding: 1\n\t};\n\n$.each(\n\t[ \"borderLeftStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderTopStyle\" ],\n\tfunction( _, prop ) {\n\t\t$.fx.step[ prop ] = function( fx ) {\n\t\t\tif ( fx.end !== \"none\" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {\n\t\t\t\tjQuery.style( fx.elem, prop, fx.end );\n\t\t\t\tfx.setAttr = true;\n\t\t\t}\n\t\t};\n\t}\n);\n\nfunction camelCase( string ) {\n\treturn string.replace( /-([\\da-z])/gi, function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t} );\n}\n\nfunction getElementStyles( elem ) {\n\tvar key, len,\n\t\tstyle = elem.ownerDocument.defaultView ?\n\t\t\telem.ownerDocument.defaultView.getComputedStyle( elem, null ) :\n\t\t\telem.currentStyle,\n\t\tstyles = {};\n\n\tif ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {\n\t\tlen = style.length;\n\t\twhile ( len-- ) {\n\t\t\tkey = style[ len ];\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ camelCase( key ) ] = style[ key ];\n\t\t\t}\n\t\t}\n\n\t// Support: Opera, IE <9\n\t} else {\n\t\tfor ( key in style ) {\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ key ] = style[ key ];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn styles;\n}\n\nfunction styleDifference( oldStyle, newStyle ) {\n\tvar diff = {},\n\t\tname, value;\n\n\tfor ( name in newStyle ) {\n\t\tvalue = newStyle[ name ];\n\t\tif ( oldStyle[ name ] !== value ) {\n\t\t\tif ( !shorthandStyles[ name ] ) {\n\t\t\t\tif ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {\n\t\t\t\t\tdiff[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn diff;\n}\n\n// Support: jQuery <1.8\nif ( !$.fn.addBack ) {\n\t$.fn.addBack = function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t};\n}\n\n$.effects.animateClass = function( value, duration, easing, callback ) {\n\tvar o = $.speed( duration, easing, callback );\n\n\treturn this.queue( function() {\n\t\tvar animated = $( this ),\n\t\t\tbaseClass = animated.attr( \"class\" ) || \"\",\n\t\t\tapplyClassChange,\n\t\t\tallAnimations = o.children ? animated.find( \"*\" ).addBack() : animated;\n\n\t\t// Map the animated objects to store the original styles.\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tvar el = $( this );\n\t\t\treturn {\n\t\t\t\tel: el,\n\t\t\t\tstart: getElementStyles( this )\n\t\t\t};\n\t\t} );\n\n\t\t// Apply class change\n\t\tapplyClassChange = function() {\n\t\t\t$.each( classAnimationActions, function( i, action ) {\n\t\t\t\tif ( value[ action ] ) {\n\t\t\t\t\tanimated[ action + \"Class\" ]( value[ action ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t\tapplyClassChange();\n\n\t\t// Map all animated objects again - calculate new styles and diff\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tthis.end = getElementStyles( this.el[ 0 ] );\n\t\t\tthis.diff = styleDifference( this.start, this.end );\n\t\t\treturn this;\n\t\t} );\n\n\t\t// Apply original class\n\t\tanimated.attr( \"class\", baseClass );\n\n\t\t// Map all animated objects again - this time collecting a promise\n\t\tallAnimations = allAnimations.map( function() {\n\t\t\tvar styleInfo = this,\n\t\t\t\tdfd = $.Deferred(),\n\t\t\t\topts = $.extend( {}, o, {\n\t\t\t\t\tqueue: false,\n\t\t\t\t\tcomplete: function() {\n\t\t\t\t\t\tdfd.resolve( styleInfo );\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\tthis.el.animate( this.diff, opts );\n\t\t\treturn dfd.promise();\n\t\t} );\n\n\t\t// Once all animations have completed:\n\t\t$.when.apply( $, allAnimations.get() ).done( function() {\n\n\t\t\t// Set the final class\n\t\t\tapplyClassChange();\n\n\t\t\t// For each animated element,\n\t\t\t// clear all css properties that were animated\n\t\t\t$.each( arguments, function() {\n\t\t\t\tvar el = this.el;\n\t\t\t\t$.each( this.diff, function( key ) {\n\t\t\t\t\tel.css( key, \"\" );\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// This is guarnteed to be there if you use jQuery.speed()\n\t\t\t// it also handles dequeuing the next anim...\n\t\t\to.complete.call( animated[ 0 ] );\n\t\t} );\n\t} );\n};\n\n$.fn.extend( {\n\taddClass: ( function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn speed ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ add: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t} )( $.fn.addClass ),\n\n\tremoveClass: ( function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn arguments.length > 1 ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ remove: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t} )( $.fn.removeClass ),\n\n\ttoggleClass: ( function( orig ) {\n\t\treturn function( classNames, force, speed, easing, callback ) {\n\t\t\tif ( typeof force === \"boolean\" || force === undefined ) {\n\t\t\t\tif ( !speed ) {\n\n\t\t\t\t\t// Without speed parameter\n\t\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t\t} else {\n\t\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t\t( force ? { add: classNames } : { remove: classNames } ),\n\t\t\t\t\t\tspeed, easing, callback );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Without force parameter\n\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t{ toggle: classNames }, force, speed, easing );\n\t\t\t}\n\t\t};\n\t} )( $.fn.toggleClass ),\n\n\tswitchClass: function( remove, add, speed, easing, callback ) {\n\t\treturn $.effects.animateClass.call( this, {\n\t\t\tadd: add,\n\t\t\tremove: remove\n\t\t}, speed, easing, callback );\n\t}\n} );\n\n} )();\n\n/******************************************************************************/\n/*********************************** EFFECTS **********************************/\n/******************************************************************************/\n\n( function() {\n\nif ( $.expr && $.expr.pseudos && $.expr.pseudos.animated ) {\n\t$.expr.pseudos.animated = ( function( orig ) {\n\t\treturn function( elem ) {\n\t\t\treturn !!$( elem ).data( dataSpaceAnimated ) || orig( elem );\n\t\t};\n\t} )( $.expr.pseudos.animated );\n}\n\nif ( $.uiBackCompat !== false ) {\n\t$.extend( $.effects, {\n\n\t\t// Saves a set of properties in a data storage\n\t\tsave: function( element, set ) {\n\t\t\tvar i = 0, length = set.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\t\telement.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Restores a set of previously saved properties from a data storage\n\t\trestore: function( element, set ) {\n\t\t\tvar val, i = 0, length = set.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\t\tval = element.data( dataSpace + set[ i ] );\n\t\t\t\t\telement.css( set[ i ], val );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tsetMode: function( el, mode ) {\n\t\t\tif ( mode === \"toggle\" ) {\n\t\t\t\tmode = el.is( \":hidden\" ) ? \"show\" : \"hide\";\n\t\t\t}\n\t\t\treturn mode;\n\t\t},\n\n\t\t// Wraps the element around a wrapper that copies position properties\n\t\tcreateWrapper: function( element ) {\n\n\t\t\t// If the element is already wrapped, return it\n\t\t\tif ( element.parent().is( \".ui-effects-wrapper\" ) ) {\n\t\t\t\treturn element.parent();\n\t\t\t}\n\n\t\t\t// Wrap the element\n\t\t\tvar props = {\n\t\t\t\t\twidth: element.outerWidth( true ),\n\t\t\t\t\theight: element.outerHeight( true ),\n\t\t\t\t\t\"float\": element.css( \"float\" )\n\t\t\t\t},\n\t\t\t\twrapper = $( \"

\" )\n\t\t\t\t\t.addClass( \"ui-effects-wrapper\" )\n\t\t\t\t\t.css( {\n\t\t\t\t\t\tfontSize: \"100%\",\n\t\t\t\t\t\tbackground: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\tpadding: 0\n\t\t\t\t\t} ),\n\n\t\t\t\t// Store the size in case width/height are defined in % - Fixes #5245\n\t\t\t\tsize = {\n\t\t\t\t\twidth: element.width(),\n\t\t\t\t\theight: element.height()\n\t\t\t\t},\n\t\t\t\tactive = document.activeElement;\n\n\t\t\t// Support: Firefox\n\t\t\t// Firefox incorrectly exposes anonymous content\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=561664\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\tactive.id;\n\t\t\t} catch ( e ) {\n\t\t\t\tactive = document.body;\n\t\t\t}\n\n\t\t\telement.wrap( wrapper );\n\n\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t\t$( active ).trigger( \"focus\" );\n\t\t\t}\n\n\t\t\t// Hotfix for jQuery 1.4 since some change in wrap() seems to actually\n\t\t\t// lose the reference to the wrapped element\n\t\t\twrapper = element.parent();\n\n\t\t\t// Transfer positioning properties to the wrapper\n\t\t\tif ( element.css( \"position\" ) === \"static\" ) {\n\t\t\t\twrapper.css( { position: \"relative\" } );\n\t\t\t\telement.css( { position: \"relative\" } );\n\t\t\t} else {\n\t\t\t\t$.extend( props, {\n\t\t\t\t\tposition: element.css( \"position\" ),\n\t\t\t\t\tzIndex: element.css( \"z-index\" )\n\t\t\t\t} );\n\t\t\t\t$.each( [ \"top\", \"left\", \"bottom\", \"right\" ], function( i, pos ) {\n\t\t\t\t\tprops[ pos ] = element.css( pos );\n\t\t\t\t\tif ( isNaN( parseInt( props[ pos ], 10 ) ) ) {\n\t\t\t\t\t\tprops[ pos ] = \"auto\";\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\telement.css( {\n\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: \"auto\",\n\t\t\t\t\tbottom: \"auto\"\n\t\t\t\t} );\n\t\t\t}\n\t\t\telement.css( size );\n\n\t\t\treturn wrapper.css( props ).show();\n\t\t},\n\n\t\tremoveWrapper: function( element ) {\n\t\t\tvar active = document.activeElement;\n\n\t\t\tif ( element.parent().is( \".ui-effects-wrapper\" ) ) {\n\t\t\t\telement.parent().replaceWith( element );\n\n\t\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t\t\t$( active ).trigger( \"focus\" );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn element;\n\t\t}\n\t} );\n}\n\n$.extend( $.effects, {\n\tversion: \"1.13.0\",\n\n\tdefine: function( name, mode, effect ) {\n\t\tif ( !effect ) {\n\t\t\teffect = mode;\n\t\t\tmode = \"effect\";\n\t\t}\n\n\t\t$.effects.effect[ name ] = effect;\n\t\t$.effects.effect[ name ].mode = mode;\n\n\t\treturn effect;\n\t},\n\n\tscaledDimensions: function( element, percent, direction ) {\n\t\tif ( percent === 0 ) {\n\t\t\treturn {\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\touterHeight: 0,\n\t\t\t\touterWidth: 0\n\t\t\t};\n\t\t}\n\n\t\tvar x = direction !== \"horizontal\" ? ( ( percent || 100 ) / 100 ) : 1,\n\t\t\ty = direction !== \"vertical\" ? ( ( percent || 100 ) / 100 ) : 1;\n\n\t\treturn {\n\t\t\theight: element.height() * y,\n\t\t\twidth: element.width() * x,\n\t\t\touterHeight: element.outerHeight() * y,\n\t\t\touterWidth: element.outerWidth() * x\n\t\t};\n\n\t},\n\n\tclipToBox: function( animation ) {\n\t\treturn {\n\t\t\twidth: animation.clip.right - animation.clip.left,\n\t\t\theight: animation.clip.bottom - animation.clip.top,\n\t\t\tleft: animation.clip.left,\n\t\t\ttop: animation.clip.top\n\t\t};\n\t},\n\n\t// Injects recently queued functions to be first in line (after \"inprogress\")\n\tunshift: function( element, queueLength, count ) {\n\t\tvar queue = element.queue();\n\n\t\tif ( queueLength > 1 ) {\n\t\t\tqueue.splice.apply( queue,\n\t\t\t\t[ 1, 0 ].concat( queue.splice( queueLength, count ) ) );\n\t\t}\n\t\telement.dequeue();\n\t},\n\n\tsaveStyle: function( element ) {\n\t\telement.data( dataSpaceStyle, element[ 0 ].style.cssText );\n\t},\n\n\trestoreStyle: function( element ) {\n\t\telement[ 0 ].style.cssText = element.data( dataSpaceStyle ) || \"\";\n\t\telement.removeData( dataSpaceStyle );\n\t},\n\n\tmode: function( element, mode ) {\n\t\tvar hidden = element.is( \":hidden\" );\n\n\t\tif ( mode === \"toggle\" ) {\n\t\t\tmode = hidden ? \"show\" : \"hide\";\n\t\t}\n\t\tif ( hidden ? mode === \"hide\" : mode === \"show\" ) {\n\t\t\tmode = \"none\";\n\t\t}\n\t\treturn mode;\n\t},\n\n\t// Translates a [top,left] array into a baseline value\n\tgetBaseline: function( origin, original ) {\n\t\tvar y, x;\n\n\t\tswitch ( origin[ 0 ] ) {\n\t\tcase \"top\":\n\t\t\ty = 0;\n\t\t\tbreak;\n\t\tcase \"middle\":\n\t\t\ty = 0.5;\n\t\t\tbreak;\n\t\tcase \"bottom\":\n\t\t\ty = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ty = origin[ 0 ] / original.height;\n\t\t}\n\n\t\tswitch ( origin[ 1 ] ) {\n\t\tcase \"left\":\n\t\t\tx = 0;\n\t\t\tbreak;\n\t\tcase \"center\":\n\t\t\tx = 0.5;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tx = 1;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tx = origin[ 1 ] / original.width;\n\t\t}\n\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y\n\t\t};\n\t},\n\n\t// Creates a placeholder element so that the original element can be made absolute\n\tcreatePlaceholder: function( element ) {\n\t\tvar placeholder,\n\t\t\tcssPosition = element.css( \"position\" ),\n\t\t\tposition = element.position();\n\n\t\t// Lock in margins first to account for form elements, which\n\t\t// will change margin if you explicitly set height\n\t\t// see: http://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380\n\t\t// Support: Safari\n\t\telement.css( {\n\t\t\tmarginTop: element.css( \"marginTop\" ),\n\t\t\tmarginBottom: element.css( \"marginBottom\" ),\n\t\t\tmarginLeft: element.css( \"marginLeft\" ),\n\t\t\tmarginRight: element.css( \"marginRight\" )\n\t\t} )\n\t\t.outerWidth( element.outerWidth() )\n\t\t.outerHeight( element.outerHeight() );\n\n\t\tif ( /^(static|relative)/.test( cssPosition ) ) {\n\t\t\tcssPosition = \"absolute\";\n\n\t\t\tplaceholder = $( \"<\" + element[ 0 ].nodeName + \">\" ).insertAfter( element ).css( {\n\n\t\t\t\t// Convert inline to inline block to account for inline elements\n\t\t\t\t// that turn to inline block based on content (like img)\n\t\t\t\tdisplay: /^(inline|ruby)/.test( element.css( \"display\" ) ) ?\n\t\t\t\t\t\"inline-block\" :\n\t\t\t\t\t\"block\",\n\t\t\t\tvisibility: \"hidden\",\n\n\t\t\t\t// Margins need to be set to account for margin collapse\n\t\t\t\tmarginTop: element.css( \"marginTop\" ),\n\t\t\t\tmarginBottom: element.css( \"marginBottom\" ),\n\t\t\t\tmarginLeft: element.css( \"marginLeft\" ),\n\t\t\t\tmarginRight: element.css( \"marginRight\" ),\n\t\t\t\t\"float\": element.css( \"float\" )\n\t\t\t} )\n\t\t\t.outerWidth( element.outerWidth() )\n\t\t\t.outerHeight( element.outerHeight() )\n\t\t\t.addClass( \"ui-effects-placeholder\" );\n\n\t\t\telement.data( dataSpace + \"placeholder\", placeholder );\n\t\t}\n\n\t\telement.css( {\n\t\t\tposition: cssPosition,\n\t\t\tleft: position.left,\n\t\t\ttop: position.top\n\t\t} );\n\n\t\treturn placeholder;\n\t},\n\n\tremovePlaceholder: function( element ) {\n\t\tvar dataKey = dataSpace + \"placeholder\",\n\t\t\t\tplaceholder = element.data( dataKey );\n\n\t\tif ( placeholder ) {\n\t\t\tplaceholder.remove();\n\t\t\telement.removeData( dataKey );\n\t\t}\n\t},\n\n\t// Removes a placeholder if it exists and restores\n\t// properties that were modified during placeholder creation\n\tcleanUp: function( element ) {\n\t\t$.effects.restoreStyle( element );\n\t\t$.effects.removePlaceholder( element );\n\t},\n\n\tsetTransition: function( element, list, factor, value ) {\n\t\tvalue = value || {};\n\t\t$.each( list, function( i, x ) {\n\t\t\tvar unit = element.cssUnit( x );\n\t\t\tif ( unit[ 0 ] > 0 ) {\n\t\t\t\tvalue[ x ] = unit[ 0 ] * factor + unit[ 1 ];\n\t\t\t}\n\t\t} );\n\t\treturn value;\n\t}\n} );\n\n// Return an effect options object for the given parameters:\nfunction _normalizeArguments( effect, options, speed, callback ) {\n\n\t// Allow passing all options as the first parameter\n\tif ( $.isPlainObject( effect ) ) {\n\t\toptions = effect;\n\t\teffect = effect.effect;\n\t}\n\n\t// Convert to an object\n\teffect = { effect: effect };\n\n\t// Catch (effect, null, ...)\n\tif ( options == null ) {\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, callback)\n\tif ( typeof options === \"function\" ) {\n\t\tcallback = options;\n\t\tspeed = null;\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, speed, ?)\n\tif ( typeof options === \"number\" || $.fx.speeds[ options ] ) {\n\t\tcallback = speed;\n\t\tspeed = options;\n\t\toptions = {};\n\t}\n\n\t// Catch (effect, options, callback)\n\tif ( typeof speed === \"function\" ) {\n\t\tcallback = speed;\n\t\tspeed = null;\n\t}\n\n\t// Add options to effect\n\tif ( options ) {\n\t\t$.extend( effect, options );\n\t}\n\n\tspeed = speed || options.duration;\n\teffect.duration = $.fx.off ? 0 :\n\t\ttypeof speed === \"number\" ? speed :\n\t\tspeed in $.fx.speeds ? $.fx.speeds[ speed ] :\n\t\t$.fx.speeds._default;\n\n\teffect.complete = callback || options.complete;\n\n\treturn effect;\n}\n\nfunction standardAnimationOption( option ) {\n\n\t// Valid standard speeds (nothing, number, named speed)\n\tif ( !option || typeof option === \"number\" || $.fx.speeds[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Invalid strings - treat as \"normal\" speed\n\tif ( typeof option === \"string\" && !$.effects.effect[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Complete callback\n\tif ( typeof option === \"function\" ) {\n\t\treturn true;\n\t}\n\n\t// Options hash (but not naming an effect)\n\tif ( typeof option === \"object\" && !option.effect ) {\n\t\treturn true;\n\t}\n\n\t// Didn't match any standard API\n\treturn false;\n}\n\n$.fn.extend( {\n\teffect: function( /* effect, options, speed, callback */ ) {\n\t\tvar args = _normalizeArguments.apply( this, arguments ),\n\t\t\teffectMethod = $.effects.effect[ args.effect ],\n\t\t\tdefaultMode = effectMethod.mode,\n\t\t\tqueue = args.queue,\n\t\t\tqueueName = queue || \"fx\",\n\t\t\tcomplete = args.complete,\n\t\t\tmode = args.mode,\n\t\t\tmodes = [],\n\t\t\tprefilter = function( next ) {\n\t\t\t\tvar el = $( this ),\n\t\t\t\t\tnormalizedMode = $.effects.mode( el, mode ) || defaultMode;\n\n\t\t\t\t// Sentinel for duck-punching the :animated pseudo-selector\n\t\t\t\tel.data( dataSpaceAnimated, true );\n\n\t\t\t\t// Save effect mode for later use,\n\t\t\t\t// we can't just call $.effects.mode again later,\n\t\t\t\t// as the .show() below destroys the initial state\n\t\t\t\tmodes.push( normalizedMode );\n\n\t\t\t\t// See $.uiBackCompat inside of run() for removal of defaultMode in 1.14\n\t\t\t\tif ( defaultMode && ( normalizedMode === \"show\" ||\n\t\t\t\t\t\t( normalizedMode === defaultMode && normalizedMode === \"hide\" ) ) ) {\n\t\t\t\t\tel.show();\n\t\t\t\t}\n\n\t\t\t\tif ( !defaultMode || normalizedMode !== \"none\" ) {\n\t\t\t\t\t$.effects.saveStyle( el );\n\t\t\t\t}\n\n\t\t\t\tif ( typeof next === \"function\" ) {\n\t\t\t\t\tnext();\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( $.fx.off || !effectMethod ) {\n\n\t\t\t// Delegate to the original method (e.g., .show()) if possible\n\t\t\tif ( mode ) {\n\t\t\t\treturn this[ mode ]( args.duration, complete );\n\t\t\t} else {\n\t\t\t\treturn this.each( function() {\n\t\t\t\t\tif ( complete ) {\n\t\t\t\t\t\tcomplete.call( this );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\tfunction run( next ) {\n\t\t\tvar elem = $( this );\n\n\t\t\tfunction cleanup() {\n\t\t\t\telem.removeData( dataSpaceAnimated );\n\n\t\t\t\t$.effects.cleanUp( elem );\n\n\t\t\t\tif ( args.mode === \"hide\" ) {\n\t\t\t\t\telem.hide();\n\t\t\t\t}\n\n\t\t\t\tdone();\n\t\t\t}\n\n\t\t\tfunction done() {\n\t\t\t\tif ( typeof complete === \"function\" ) {\n\t\t\t\t\tcomplete.call( elem[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\tif ( typeof next === \"function\" ) {\n\t\t\t\t\tnext();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override mode option on a per element basis,\n\t\t\t// as toggle can be either show or hide depending on element state\n\t\t\targs.mode = modes.shift();\n\n\t\t\tif ( $.uiBackCompat !== false && !defaultMode ) {\n\t\t\t\tif ( elem.is( \":hidden\" ) ? mode === \"hide\" : mode === \"show\" ) {\n\n\t\t\t\t\t// Call the core method to track \"olddisplay\" properly\n\t\t\t\t\telem[ mode ]();\n\t\t\t\t\tdone();\n\t\t\t\t} else {\n\t\t\t\t\teffectMethod.call( elem[ 0 ], args, done );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( args.mode === \"none\" ) {\n\n\t\t\t\t\t// Call the core method to track \"olddisplay\" properly\n\t\t\t\t\telem[ mode ]();\n\t\t\t\t\tdone();\n\t\t\t\t} else {\n\t\t\t\t\teffectMethod.call( elem[ 0 ], args, cleanup );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Run prefilter on all elements first to ensure that\n\t\t// any showing or hiding happens before placeholder creation,\n\t\t// which ensures that any layout changes are correctly captured.\n\t\treturn queue === false ?\n\t\t\tthis.each( prefilter ).each( run ) :\n\t\t\tthis.queue( queueName, prefilter ).queue( queueName, run );\n\t},\n\n\tshow: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"show\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.show ),\n\n\thide: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"hide\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.hide ),\n\n\ttoggle: ( function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) || typeof option === \"boolean\" ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"toggle\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t} )( $.fn.toggle ),\n\n\tcssUnit: function( key ) {\n\t\tvar style = this.css( key ),\n\t\t\tval = [];\n\n\t\t$.each( [ \"em\", \"px\", \"%\", \"pt\" ], function( i, unit ) {\n\t\t\tif ( style.indexOf( unit ) > 0 ) {\n\t\t\t\tval = [ parseFloat( style ), unit ];\n\t\t\t}\n\t\t} );\n\t\treturn val;\n\t},\n\n\tcssClip: function( clipObj ) {\n\t\tif ( clipObj ) {\n\t\t\treturn this.css( \"clip\", \"rect(\" + clipObj.top + \"px \" + clipObj.right + \"px \" +\n\t\t\t\tclipObj.bottom + \"px \" + clipObj.left + \"px)\" );\n\t\t}\n\t\treturn parseClip( this.css( \"clip\" ), this );\n\t},\n\n\ttransfer: function( options, done ) {\n\t\tvar element = $( this ),\n\t\t\ttarget = $( options.to ),\n\t\t\ttargetFixed = target.css( \"position\" ) === \"fixed\",\n\t\t\tbody = $( \"body\" ),\n\t\t\tfixTop = targetFixed ? body.scrollTop() : 0,\n\t\t\tfixLeft = targetFixed ? body.scrollLeft() : 0,\n\t\t\tendPosition = target.offset(),\n\t\t\tanimation = {\n\t\t\t\ttop: endPosition.top - fixTop,\n\t\t\t\tleft: endPosition.left - fixLeft,\n\t\t\t\theight: target.innerHeight(),\n\t\t\t\twidth: target.innerWidth()\n\t\t\t},\n\t\t\tstartPosition = element.offset(),\n\t\t\ttransfer = $( \"
\" );\n\n\t\ttransfer\n\t\t\t.appendTo( \"body\" )\n\t\t\t.addClass( options.className )\n\t\t\t.css( {\n\t\t\t\ttop: startPosition.top - fixTop,\n\t\t\t\tleft: startPosition.left - fixLeft,\n\t\t\t\theight: element.innerHeight(),\n\t\t\t\twidth: element.innerWidth(),\n\t\t\t\tposition: targetFixed ? \"fixed\" : \"absolute\"\n\t\t\t} )\n\t\t\t.animate( animation, options.duration, options.easing, function() {\n\t\t\t\ttransfer.remove();\n\t\t\t\tif ( typeof done === \"function\" ) {\n\t\t\t\t\tdone();\n\t\t\t\t}\n\t\t\t} );\n\t}\n} );\n\nfunction parseClip( str, element ) {\n\t\tvar outerWidth = element.outerWidth(),\n\t\t\touterHeight = element.outerHeight(),\n\t\t\tclipRegex = /^rect\\((-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto)\\)$/,\n\t\t\tvalues = clipRegex.exec( str ) || [ \"\", 0, outerWidth, outerHeight, 0 ];\n\n\t\treturn {\n\t\t\ttop: parseFloat( values[ 1 ] ) || 0,\n\t\t\tright: values[ 2 ] === \"auto\" ? outerWidth : parseFloat( values[ 2 ] ),\n\t\t\tbottom: values[ 3 ] === \"auto\" ? outerHeight : parseFloat( values[ 3 ] ),\n\t\t\tleft: parseFloat( values[ 4 ] ) || 0\n\t\t};\n}\n\n$.fx.step.clip = function( fx ) {\n\tif ( !fx.clipInit ) {\n\t\tfx.start = $( fx.elem ).cssClip();\n\t\tif ( typeof fx.end === \"string\" ) {\n\t\t\tfx.end = parseClip( fx.end, fx.elem );\n\t\t}\n\t\tfx.clipInit = true;\n\t}\n\n\t$( fx.elem ).cssClip( {\n\t\ttop: fx.pos * ( fx.end.top - fx.start.top ) + fx.start.top,\n\t\tright: fx.pos * ( fx.end.right - fx.start.right ) + fx.start.right,\n\t\tbottom: fx.pos * ( fx.end.bottom - fx.start.bottom ) + fx.start.bottom,\n\t\tleft: fx.pos * ( fx.end.left - fx.start.left ) + fx.start.left\n\t} );\n};\n\n} )();\n\n/******************************************************************************/\n/*********************************** EASING ***********************************/\n/******************************************************************************/\n\n( function() {\n\n// Based on easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\nvar baseEasings = {};\n\n$.each( [ \"Quad\", \"Cubic\", \"Quart\", \"Quint\", \"Expo\" ], function( i, name ) {\n\tbaseEasings[ name ] = function( p ) {\n\t\treturn Math.pow( p, i + 2 );\n\t};\n} );\n\n$.extend( baseEasings, {\n\tSine: function( p ) {\n\t\treturn 1 - Math.cos( p * Math.PI / 2 );\n\t},\n\tCirc: function( p ) {\n\t\treturn 1 - Math.sqrt( 1 - p * p );\n\t},\n\tElastic: function( p ) {\n\t\treturn p === 0 || p === 1 ? p :\n\t\t\t-Math.pow( 2, 8 * ( p - 1 ) ) * Math.sin( ( ( p - 1 ) * 80 - 7.5 ) * Math.PI / 15 );\n\t},\n\tBack: function( p ) {\n\t\treturn p * p * ( 3 * p - 2 );\n\t},\n\tBounce: function( p ) {\n\t\tvar pow2,\n\t\t\tbounce = 4;\n\n\t\twhile ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}\n\t\treturn 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );\n\t}\n} );\n\n$.each( baseEasings, function( name, easeIn ) {\n\t$.easing[ \"easeIn\" + name ] = easeIn;\n\t$.easing[ \"easeOut\" + name ] = function( p ) {\n\t\treturn 1 - easeIn( 1 - p );\n\t};\n\t$.easing[ \"easeInOut\" + name ] = function( p ) {\n\t\treturn p < 0.5 ?\n\t\t\teaseIn( p * 2 ) / 2 :\n\t\t\t1 - easeIn( p * -2 + 2 ) / 2;\n\t};\n} );\n\n} )();\n\nvar effect = $.effects;\n\n\n/*!\n * jQuery UI Effects Blind 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Blind Effect\n//>>group: Effects\n//>>description: Blinds the element.\n//>>docs: http://api.jqueryui.com/blind-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectBlind = $.effects.define( \"blind\", \"hide\", function( options, done ) {\n\tvar map = {\n\t\t\tup: [ \"bottom\", \"top\" ],\n\t\t\tvertical: [ \"bottom\", \"top\" ],\n\t\t\tdown: [ \"top\", \"bottom\" ],\n\t\t\tleft: [ \"right\", \"left\" ],\n\t\t\thorizontal: [ \"right\", \"left\" ],\n\t\t\tright: [ \"left\", \"right\" ]\n\t\t},\n\t\telement = $( this ),\n\t\tdirection = options.direction || \"up\",\n\t\tstart = element.cssClip(),\n\t\tanimate = { clip: $.extend( {}, start ) },\n\t\tplaceholder = $.effects.createPlaceholder( element );\n\n\tanimate.clip[ map[ direction ][ 0 ] ] = animate.clip[ map[ direction ][ 1 ] ];\n\n\tif ( options.mode === \"show\" ) {\n\t\telement.cssClip( animate.clip );\n\t\tif ( placeholder ) {\n\t\t\tplaceholder.css( $.effects.clipToBox( animate ) );\n\t\t}\n\n\t\tanimate.clip = start;\n\t}\n\n\tif ( placeholder ) {\n\t\tplaceholder.animate( $.effects.clipToBox( animate ), options.duration, options.easing );\n\t}\n\n\telement.animate( animate, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Bounce 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Bounce Effect\n//>>group: Effects\n//>>description: Bounces an element horizontally or vertically n times.\n//>>docs: http://api.jqueryui.com/bounce-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectBounce = $.effects.define( \"bounce\", function( options, done ) {\n\tvar upAnim, downAnim, refValue,\n\t\telement = $( this ),\n\n\t\t// Defaults:\n\t\tmode = options.mode,\n\t\thide = mode === \"hide\",\n\t\tshow = mode === \"show\",\n\t\tdirection = options.direction || \"up\",\n\t\tdistance = options.distance,\n\t\ttimes = options.times || 5,\n\n\t\t// Number of internal animations\n\t\tanims = times * 2 + ( show || hide ? 1 : 0 ),\n\t\tspeed = options.duration / anims,\n\t\teasing = options.easing,\n\n\t\t// Utility:\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tmotion = ( direction === \"up\" || direction === \"left\" ),\n\t\ti = 0,\n\n\t\tqueuelen = element.queue().length;\n\n\t$.effects.createPlaceholder( element );\n\n\trefValue = element.css( ref );\n\n\t// Default distance for the BIGGEST bounce is the outer Distance / 3\n\tif ( !distance ) {\n\t\tdistance = element[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]() / 3;\n\t}\n\n\tif ( show ) {\n\t\tdownAnim = { opacity: 1 };\n\t\tdownAnim[ ref ] = refValue;\n\n\t\t// If we are showing, force opacity 0 and set the initial position\n\t\t// then do the \"first\" animation\n\t\telement\n\t\t\t.css( \"opacity\", 0 )\n\t\t\t.css( ref, motion ? -distance * 2 : distance * 2 )\n\t\t\t.animate( downAnim, speed, easing );\n\t}\n\n\t// Start at the smallest distance if we are hiding\n\tif ( hide ) {\n\t\tdistance = distance / Math.pow( 2, times - 1 );\n\t}\n\n\tdownAnim = {};\n\tdownAnim[ ref ] = refValue;\n\n\t// Bounces up/down/left/right then back to 0 -- times * 2 animations happen here\n\tfor ( ; i < times; i++ ) {\n\t\tupAnim = {};\n\t\tupAnim[ ref ] = ( motion ? \"-=\" : \"+=\" ) + distance;\n\n\t\telement\n\t\t\t.animate( upAnim, speed, easing )\n\t\t\t.animate( downAnim, speed, easing );\n\n\t\tdistance = hide ? distance * 2 : distance / 2;\n\t}\n\n\t// Last Bounce when Hiding\n\tif ( hide ) {\n\t\tupAnim = { opacity: 0 };\n\t\tupAnim[ ref ] = ( motion ? \"-=\" : \"+=\" ) + distance;\n\n\t\telement.animate( upAnim, speed, easing );\n\t}\n\n\telement.queue( done );\n\n\t$.effects.unshift( element, queuelen, anims + 1 );\n} );\n\n\n/*!\n * jQuery UI Effects Clip 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Clip Effect\n//>>group: Effects\n//>>description: Clips the element on and off like an old TV.\n//>>docs: http://api.jqueryui.com/clip-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectClip = $.effects.define( \"clip\", \"hide\", function( options, done ) {\n\tvar start,\n\t\tanimate = {},\n\t\telement = $( this ),\n\t\tdirection = options.direction || \"vertical\",\n\t\tboth = direction === \"both\",\n\t\thorizontal = both || direction === \"horizontal\",\n\t\tvertical = both || direction === \"vertical\";\n\n\tstart = element.cssClip();\n\tanimate.clip = {\n\t\ttop: vertical ? ( start.bottom - start.top ) / 2 : start.top,\n\t\tright: horizontal ? ( start.right - start.left ) / 2 : start.right,\n\t\tbottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom,\n\t\tleft: horizontal ? ( start.right - start.left ) / 2 : start.left\n\t};\n\n\t$.effects.createPlaceholder( element );\n\n\tif ( options.mode === \"show\" ) {\n\t\telement.cssClip( animate.clip );\n\t\tanimate.clip = start;\n\t}\n\n\telement.animate( animate, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n\n} );\n\n\n/*!\n * jQuery UI Effects Drop 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Drop Effect\n//>>group: Effects\n//>>description: Moves an element in one direction and hides it at the same time.\n//>>docs: http://api.jqueryui.com/drop-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectDrop = $.effects.define( \"drop\", \"hide\", function( options, done ) {\n\n\tvar distance,\n\t\telement = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\t\tdirection = options.direction || \"left\",\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tmotion = ( direction === \"up\" || direction === \"left\" ) ? \"-=\" : \"+=\",\n\t\toppositeMotion = ( motion === \"+=\" ) ? \"-=\" : \"+=\",\n\t\tanimation = {\n\t\t\topacity: 0\n\t\t};\n\n\t$.effects.createPlaceholder( element );\n\n\tdistance = options.distance ||\n\t\telement[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]( true ) / 2;\n\n\tanimation[ ref ] = motion + distance;\n\n\tif ( show ) {\n\t\telement.css( animation );\n\n\t\tanimation[ ref ] = oppositeMotion + distance;\n\t\tanimation.opacity = 1;\n\t}\n\n\t// Animate\n\telement.animate( animation, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Explode 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Explode Effect\n//>>group: Effects\n/* eslint-disable max-len */\n//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness.\n/* eslint-enable max-len */\n//>>docs: http://api.jqueryui.com/explode-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectExplode = $.effects.define( \"explode\", \"hide\", function( options, done ) {\n\n\tvar i, j, left, top, mx, my,\n\t\trows = options.pieces ? Math.round( Math.sqrt( options.pieces ) ) : 3,\n\t\tcells = rows,\n\t\telement = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\n\t\t// Show and then visibility:hidden the element before calculating offset\n\t\toffset = element.show().css( \"visibility\", \"hidden\" ).offset(),\n\n\t\t// Width and height of a piece\n\t\twidth = Math.ceil( element.outerWidth() / cells ),\n\t\theight = Math.ceil( element.outerHeight() / rows ),\n\t\tpieces = [];\n\n\t// Children animate complete:\n\tfunction childComplete() {\n\t\tpieces.push( this );\n\t\tif ( pieces.length === rows * cells ) {\n\t\t\tanimComplete();\n\t\t}\n\t}\n\n\t// Clone the element for each row and cell.\n\tfor ( i = 0; i < rows; i++ ) { // ===>\n\t\ttop = offset.top + i * height;\n\t\tmy = i - ( rows - 1 ) / 2;\n\n\t\tfor ( j = 0; j < cells; j++ ) { // |||\n\t\t\tleft = offset.left + j * width;\n\t\t\tmx = j - ( cells - 1 ) / 2;\n\n\t\t\t// Create a clone of the now hidden main element that will be absolute positioned\n\t\t\t// within a wrapper div off the -left and -top equal to size of our pieces\n\t\t\telement\n\t\t\t\t.clone()\n\t\t\t\t.appendTo( \"body\" )\n\t\t\t\t.wrap( \"
\" )\n\t\t\t\t.css( {\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\tvisibility: \"visible\",\n\t\t\t\t\tleft: -j * width,\n\t\t\t\t\ttop: -i * height\n\t\t\t\t} )\n\n\t\t\t\t// Select the wrapper - make it overflow: hidden and absolute positioned based on\n\t\t\t\t// where the original was located +left and +top equal to the size of pieces\n\t\t\t\t.parent()\n\t\t\t\t\t.addClass( \"ui-effects-explode\" )\n\t\t\t\t\t.css( {\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: height,\n\t\t\t\t\t\tleft: left + ( show ? mx * width : 0 ),\n\t\t\t\t\t\ttop: top + ( show ? my * height : 0 ),\n\t\t\t\t\t\topacity: show ? 0 : 1\n\t\t\t\t\t} )\n\t\t\t\t\t.animate( {\n\t\t\t\t\t\tleft: left + ( show ? 0 : mx * width ),\n\t\t\t\t\t\ttop: top + ( show ? 0 : my * height ),\n\t\t\t\t\t\topacity: show ? 1 : 0\n\t\t\t\t\t}, options.duration || 500, options.easing, childComplete );\n\t\t}\n\t}\n\n\tfunction animComplete() {\n\t\telement.css( {\n\t\t\tvisibility: \"visible\"\n\t\t} );\n\t\t$( pieces ).remove();\n\t\tdone();\n\t}\n} );\n\n\n/*!\n * jQuery UI Effects Fade 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Fade Effect\n//>>group: Effects\n//>>description: Fades the element.\n//>>docs: http://api.jqueryui.com/fade-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectFade = $.effects.define( \"fade\", \"toggle\", function( options, done ) {\n\tvar show = options.mode === \"show\";\n\n\t$( this )\n\t\t.css( \"opacity\", show ? 0 : 1 )\n\t\t.animate( {\n\t\t\topacity: show ? 1 : 0\n\t\t}, {\n\t\t\tqueue: false,\n\t\t\tduration: options.duration,\n\t\t\teasing: options.easing,\n\t\t\tcomplete: done\n\t\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Fold 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Fold Effect\n//>>group: Effects\n//>>description: Folds an element first horizontally and then vertically.\n//>>docs: http://api.jqueryui.com/fold-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectFold = $.effects.define( \"fold\", \"hide\", function( options, done ) {\n\n\t// Create element\n\tvar element = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\t\thide = mode === \"hide\",\n\t\tsize = options.size || 15,\n\t\tpercent = /([0-9]+)%/.exec( size ),\n\t\thorizFirst = !!options.horizFirst,\n\t\tref = horizFirst ? [ \"right\", \"bottom\" ] : [ \"bottom\", \"right\" ],\n\t\tduration = options.duration / 2,\n\n\t\tplaceholder = $.effects.createPlaceholder( element ),\n\n\t\tstart = element.cssClip(),\n\t\tanimation1 = { clip: $.extend( {}, start ) },\n\t\tanimation2 = { clip: $.extend( {}, start ) },\n\n\t\tdistance = [ start[ ref[ 0 ] ], start[ ref[ 1 ] ] ],\n\n\t\tqueuelen = element.queue().length;\n\n\tif ( percent ) {\n\t\tsize = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ];\n\t}\n\tanimation1.clip[ ref[ 0 ] ] = size;\n\tanimation2.clip[ ref[ 0 ] ] = size;\n\tanimation2.clip[ ref[ 1 ] ] = 0;\n\n\tif ( show ) {\n\t\telement.cssClip( animation2.clip );\n\t\tif ( placeholder ) {\n\t\t\tplaceholder.css( $.effects.clipToBox( animation2 ) );\n\t\t}\n\n\t\tanimation2.clip = start;\n\t}\n\n\t// Animate\n\telement\n\t\t.queue( function( next ) {\n\t\t\tif ( placeholder ) {\n\t\t\t\tplaceholder\n\t\t\t\t\t.animate( $.effects.clipToBox( animation1 ), duration, options.easing )\n\t\t\t\t\t.animate( $.effects.clipToBox( animation2 ), duration, options.easing );\n\t\t\t}\n\n\t\t\tnext();\n\t\t} )\n\t\t.animate( animation1, duration, options.easing )\n\t\t.animate( animation2, duration, options.easing )\n\t\t.queue( done );\n\n\t$.effects.unshift( element, queuelen, 4 );\n} );\n\n\n/*!\n * jQuery UI Effects Highlight 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Highlight Effect\n//>>group: Effects\n//>>description: Highlights the background of an element in a defined color for a custom duration.\n//>>docs: http://api.jqueryui.com/highlight-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectHighlight = $.effects.define( \"highlight\", \"show\", function( options, done ) {\n\tvar element = $( this ),\n\t\tanimation = {\n\t\t\tbackgroundColor: element.css( \"backgroundColor\" )\n\t\t};\n\n\tif ( options.mode === \"hide\" ) {\n\t\tanimation.opacity = 0;\n\t}\n\n\t$.effects.saveStyle( element );\n\n\telement\n\t\t.css( {\n\t\t\tbackgroundImage: \"none\",\n\t\t\tbackgroundColor: options.color || \"#ffff99\"\n\t\t} )\n\t\t.animate( animation, {\n\t\t\tqueue: false,\n\t\t\tduration: options.duration,\n\t\t\teasing: options.easing,\n\t\t\tcomplete: done\n\t\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Size 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Size Effect\n//>>group: Effects\n//>>description: Resize an element to a specified width and height.\n//>>docs: http://api.jqueryui.com/size-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectSize = $.effects.define( \"size\", function( options, done ) {\n\n\t// Create element\n\tvar baseline, factor, temp,\n\t\telement = $( this ),\n\n\t\t// Copy for children\n\t\tcProps = [ \"fontSize\" ],\n\t\tvProps = [ \"borderTopWidth\", \"borderBottomWidth\", \"paddingTop\", \"paddingBottom\" ],\n\t\thProps = [ \"borderLeftWidth\", \"borderRightWidth\", \"paddingLeft\", \"paddingRight\" ],\n\n\t\t// Set options\n\t\tmode = options.mode,\n\t\trestore = mode !== \"effect\",\n\t\tscale = options.scale || \"both\",\n\t\torigin = options.origin || [ \"middle\", \"center\" ],\n\t\tposition = element.css( \"position\" ),\n\t\tpos = element.position(),\n\t\toriginal = $.effects.scaledDimensions( element ),\n\t\tfrom = options.from || original,\n\t\tto = options.to || $.effects.scaledDimensions( element, 0 );\n\n\t$.effects.createPlaceholder( element );\n\n\tif ( mode === \"show\" ) {\n\t\ttemp = from;\n\t\tfrom = to;\n\t\tto = temp;\n\t}\n\n\t// Set scaling factor\n\tfactor = {\n\t\tfrom: {\n\t\t\ty: from.height / original.height,\n\t\t\tx: from.width / original.width\n\t\t},\n\t\tto: {\n\t\t\ty: to.height / original.height,\n\t\t\tx: to.width / original.width\n\t\t}\n\t};\n\n\t// Scale the css box\n\tif ( scale === \"box\" || scale === \"both\" ) {\n\n\t\t// Vertical props scaling\n\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\tfrom = $.effects.setTransition( element, vProps, factor.from.y, from );\n\t\t\tto = $.effects.setTransition( element, vProps, factor.to.y, to );\n\t\t}\n\n\t\t// Horizontal props scaling\n\t\tif ( factor.from.x !== factor.to.x ) {\n\t\t\tfrom = $.effects.setTransition( element, hProps, factor.from.x, from );\n\t\t\tto = $.effects.setTransition( element, hProps, factor.to.x, to );\n\t\t}\n\t}\n\n\t// Scale the content\n\tif ( scale === \"content\" || scale === \"both\" ) {\n\n\t\t// Vertical props scaling\n\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\tfrom = $.effects.setTransition( element, cProps, factor.from.y, from );\n\t\t\tto = $.effects.setTransition( element, cProps, factor.to.y, to );\n\t\t}\n\t}\n\n\t// Adjust the position properties based on the provided origin points\n\tif ( origin ) {\n\t\tbaseline = $.effects.getBaseline( origin, original );\n\t\tfrom.top = ( original.outerHeight - from.outerHeight ) * baseline.y + pos.top;\n\t\tfrom.left = ( original.outerWidth - from.outerWidth ) * baseline.x + pos.left;\n\t\tto.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top;\n\t\tto.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left;\n\t}\n\tdelete from.outerHeight;\n\tdelete from.outerWidth;\n\telement.css( from );\n\n\t// Animate the children if desired\n\tif ( scale === \"content\" || scale === \"both\" ) {\n\n\t\tvProps = vProps.concat( [ \"marginTop\", \"marginBottom\" ] ).concat( cProps );\n\t\thProps = hProps.concat( [ \"marginLeft\", \"marginRight\" ] );\n\n\t\t// Only animate children with width attributes specified\n\t\t// TODO: is this right? should we include anything with css width specified as well\n\t\telement.find( \"*[width]\" ).each( function() {\n\t\t\tvar child = $( this ),\n\t\t\t\tchildOriginal = $.effects.scaledDimensions( child ),\n\t\t\t\tchildFrom = {\n\t\t\t\t\theight: childOriginal.height * factor.from.y,\n\t\t\t\t\twidth: childOriginal.width * factor.from.x,\n\t\t\t\t\touterHeight: childOriginal.outerHeight * factor.from.y,\n\t\t\t\t\touterWidth: childOriginal.outerWidth * factor.from.x\n\t\t\t\t},\n\t\t\t\tchildTo = {\n\t\t\t\t\theight: childOriginal.height * factor.to.y,\n\t\t\t\t\twidth: childOriginal.width * factor.to.x,\n\t\t\t\t\touterHeight: childOriginal.height * factor.to.y,\n\t\t\t\t\touterWidth: childOriginal.width * factor.to.x\n\t\t\t\t};\n\n\t\t\t// Vertical props scaling\n\t\t\tif ( factor.from.y !== factor.to.y ) {\n\t\t\t\tchildFrom = $.effects.setTransition( child, vProps, factor.from.y, childFrom );\n\t\t\t\tchildTo = $.effects.setTransition( child, vProps, factor.to.y, childTo );\n\t\t\t}\n\n\t\t\t// Horizontal props scaling\n\t\t\tif ( factor.from.x !== factor.to.x ) {\n\t\t\t\tchildFrom = $.effects.setTransition( child, hProps, factor.from.x, childFrom );\n\t\t\t\tchildTo = $.effects.setTransition( child, hProps, factor.to.x, childTo );\n\t\t\t}\n\n\t\t\tif ( restore ) {\n\t\t\t\t$.effects.saveStyle( child );\n\t\t\t}\n\n\t\t\t// Animate children\n\t\t\tchild.css( childFrom );\n\t\t\tchild.animate( childTo, options.duration, options.easing, function() {\n\n\t\t\t\t// Restore children\n\t\t\t\tif ( restore ) {\n\t\t\t\t\t$.effects.restoreStyle( child );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Animate\n\telement.animate( to, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: function() {\n\n\t\t\tvar offset = element.offset();\n\n\t\t\tif ( to.opacity === 0 ) {\n\t\t\t\telement.css( \"opacity\", from.opacity );\n\t\t\t}\n\n\t\t\tif ( !restore ) {\n\t\t\t\telement\n\t\t\t\t\t.css( \"position\", position === \"static\" ? \"relative\" : position )\n\t\t\t\t\t.offset( offset );\n\n\t\t\t\t// Need to save style here so that automatic style restoration\n\t\t\t\t// doesn't restore to the original styles from before the animation.\n\t\t\t\t$.effects.saveStyle( element );\n\t\t\t}\n\n\t\t\tdone();\n\t\t}\n\t} );\n\n} );\n\n\n/*!\n * jQuery UI Effects Scale 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Scale Effect\n//>>group: Effects\n//>>description: Grows or shrinks an element and its content.\n//>>docs: http://api.jqueryui.com/scale-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectScale = $.effects.define( \"scale\", function( options, done ) {\n\n\t// Create element\n\tvar el = $( this ),\n\t\tmode = options.mode,\n\t\tpercent = parseInt( options.percent, 10 ) ||\n\t\t\t( parseInt( options.percent, 10 ) === 0 ? 0 : ( mode !== \"effect\" ? 0 : 100 ) ),\n\n\t\tnewOptions = $.extend( true, {\n\t\t\tfrom: $.effects.scaledDimensions( el ),\n\t\t\tto: $.effects.scaledDimensions( el, percent, options.direction || \"both\" ),\n\t\t\torigin: options.origin || [ \"middle\", \"center\" ]\n\t\t}, options );\n\n\t// Fade option to support puff\n\tif ( options.fade ) {\n\t\tnewOptions.from.opacity = 1;\n\t\tnewOptions.to.opacity = 0;\n\t}\n\n\t$.effects.effect.size.call( this, newOptions, done );\n} );\n\n\n/*!\n * jQuery UI Effects Puff 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Puff Effect\n//>>group: Effects\n//>>description: Creates a puff effect by scaling the element up and hiding it at the same time.\n//>>docs: http://api.jqueryui.com/puff-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectPuff = $.effects.define( \"puff\", \"hide\", function( options, done ) {\n\tvar newOptions = $.extend( true, {}, options, {\n\t\tfade: true,\n\t\tpercent: parseInt( options.percent, 10 ) || 150\n\t} );\n\n\t$.effects.effect.scale.call( this, newOptions, done );\n} );\n\n\n/*!\n * jQuery UI Effects Pulsate 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Pulsate Effect\n//>>group: Effects\n//>>description: Pulsates an element n times by changing the opacity to zero and back.\n//>>docs: http://api.jqueryui.com/pulsate-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectPulsate = $.effects.define( \"pulsate\", \"show\", function( options, done ) {\n\tvar element = $( this ),\n\t\tmode = options.mode,\n\t\tshow = mode === \"show\",\n\t\thide = mode === \"hide\",\n\t\tshowhide = show || hide,\n\n\t\t// Showing or hiding leaves off the \"last\" animation\n\t\tanims = ( ( options.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),\n\t\tduration = options.duration / anims,\n\t\tanimateTo = 0,\n\t\ti = 1,\n\t\tqueuelen = element.queue().length;\n\n\tif ( show || !element.is( \":visible\" ) ) {\n\t\telement.css( \"opacity\", 0 ).show();\n\t\tanimateTo = 1;\n\t}\n\n\t// Anims - 1 opacity \"toggles\"\n\tfor ( ; i < anims; i++ ) {\n\t\telement.animate( { opacity: animateTo }, duration, options.easing );\n\t\tanimateTo = 1 - animateTo;\n\t}\n\n\telement.animate( { opacity: animateTo }, duration, options.easing );\n\n\telement.queue( done );\n\n\t$.effects.unshift( element, queuelen, anims + 1 );\n} );\n\n\n/*!\n * jQuery UI Effects Shake 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Shake Effect\n//>>group: Effects\n//>>description: Shakes an element horizontally or vertically n times.\n//>>docs: http://api.jqueryui.com/shake-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectShake = $.effects.define( \"shake\", function( options, done ) {\n\n\tvar i = 1,\n\t\telement = $( this ),\n\t\tdirection = options.direction || \"left\",\n\t\tdistance = options.distance || 20,\n\t\ttimes = options.times || 3,\n\t\tanims = times * 2 + 1,\n\t\tspeed = Math.round( options.duration / anims ),\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tpositiveMotion = ( direction === \"up\" || direction === \"left\" ),\n\t\tanimation = {},\n\t\tanimation1 = {},\n\t\tanimation2 = {},\n\n\t\tqueuelen = element.queue().length;\n\n\t$.effects.createPlaceholder( element );\n\n\t// Animation\n\tanimation[ ref ] = ( positiveMotion ? \"-=\" : \"+=\" ) + distance;\n\tanimation1[ ref ] = ( positiveMotion ? \"+=\" : \"-=\" ) + distance * 2;\n\tanimation2[ ref ] = ( positiveMotion ? \"-=\" : \"+=\" ) + distance * 2;\n\n\t// Animate\n\telement.animate( animation, speed, options.easing );\n\n\t// Shakes\n\tfor ( ; i < times; i++ ) {\n\t\telement\n\t\t\t.animate( animation1, speed, options.easing )\n\t\t\t.animate( animation2, speed, options.easing );\n\t}\n\n\telement\n\t\t.animate( animation1, speed, options.easing )\n\t\t.animate( animation, speed / 2, options.easing )\n\t\t.queue( done );\n\n\t$.effects.unshift( element, queuelen, anims + 1 );\n} );\n\n\n/*!\n * jQuery UI Effects Slide 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Slide Effect\n//>>group: Effects\n//>>description: Slides an element in and out of the viewport.\n//>>docs: http://api.jqueryui.com/slide-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effectsEffectSlide = $.effects.define( \"slide\", \"show\", function( options, done ) {\n\tvar startClip, startRef,\n\t\telement = $( this ),\n\t\tmap = {\n\t\t\tup: [ \"bottom\", \"top\" ],\n\t\t\tdown: [ \"top\", \"bottom\" ],\n\t\t\tleft: [ \"right\", \"left\" ],\n\t\t\tright: [ \"left\", \"right\" ]\n\t\t},\n\t\tmode = options.mode,\n\t\tdirection = options.direction || \"left\",\n\t\tref = ( direction === \"up\" || direction === \"down\" ) ? \"top\" : \"left\",\n\t\tpositiveMotion = ( direction === \"up\" || direction === \"left\" ),\n\t\tdistance = options.distance ||\n\t\t\telement[ ref === \"top\" ? \"outerHeight\" : \"outerWidth\" ]( true ),\n\t\tanimation = {};\n\n\t$.effects.createPlaceholder( element );\n\n\tstartClip = element.cssClip();\n\tstartRef = element.position()[ ref ];\n\n\t// Define hide animation\n\tanimation[ ref ] = ( positiveMotion ? -1 : 1 ) * distance + startRef;\n\tanimation.clip = element.cssClip();\n\tanimation.clip[ map[ direction ][ 1 ] ] = animation.clip[ map[ direction ][ 0 ] ];\n\n\t// Reverse the animation if we're showing\n\tif ( mode === \"show\" ) {\n\t\telement.cssClip( animation.clip );\n\t\telement.css( ref, animation[ ref ] );\n\t\tanimation.clip = startClip;\n\t\tanimation[ ref ] = startRef;\n\t}\n\n\t// Actually animate\n\telement.animate( animation, {\n\t\tqueue: false,\n\t\tduration: options.duration,\n\t\teasing: options.easing,\n\t\tcomplete: done\n\t} );\n} );\n\n\n/*!\n * jQuery UI Effects Transfer 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Transfer Effect\n//>>group: Effects\n//>>description: Displays a transfer effect from one element to another.\n//>>docs: http://api.jqueryui.com/transfer-effect/\n//>>demos: http://jqueryui.com/effect/\n\n\nvar effect;\nif ( $.uiBackCompat !== false ) {\n\teffect = $.effects.define( \"transfer\", function( options, done ) {\n\t\t$( this ).transfer( options, done );\n\t} );\n}\nvar effectsEffectTransfer = effect;\n\n\n/*!\n * jQuery UI Focusable 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: :focusable Selector\n//>>group: Core\n//>>description: Selects elements which can be focused.\n//>>docs: http://api.jqueryui.com/focusable-selector/\n\n\n// Selectors\n$.ui.focusable = function( element, hasTabindex ) {\n\tvar map, mapName, img, focusableIfVisible, fieldset,\n\t\tnodeName = element.nodeName.toLowerCase();\n\n\tif ( \"area\" === nodeName ) {\n\t\tmap = element.parentNode;\n\t\tmapName = map.name;\n\t\tif ( !element.href || !mapName || map.nodeName.toLowerCase() !== \"map\" ) {\n\t\t\treturn false;\n\t\t}\n\t\timg = $( \"img[usemap='#\" + mapName + \"']\" );\n\t\treturn img.length > 0 && img.is( \":visible\" );\n\t}\n\n\tif ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) {\n\t\tfocusableIfVisible = !element.disabled;\n\n\t\tif ( focusableIfVisible ) {\n\n\t\t\t// Form controls within a disabled fieldset are disabled.\n\t\t\t// However, controls within the fieldset's legend do not get disabled.\n\t\t\t// Since controls generally aren't placed inside legends, we skip\n\t\t\t// this portion of the check.\n\t\t\tfieldset = $( element ).closest( \"fieldset\" )[ 0 ];\n\t\t\tif ( fieldset ) {\n\t\t\t\tfocusableIfVisible = !fieldset.disabled;\n\t\t\t}\n\t\t}\n\t} else if ( \"a\" === nodeName ) {\n\t\tfocusableIfVisible = element.href || hasTabindex;\n\t} else {\n\t\tfocusableIfVisible = hasTabindex;\n\t}\n\n\treturn focusableIfVisible && $( element ).is( \":visible\" ) && visible( $( element ) );\n};\n\n// Support: IE 8 only\n// IE 8 doesn't resolve inherit to visible/hidden for computed values\nfunction visible( element ) {\n\tvar visibility = element.css( \"visibility\" );\n\twhile ( visibility === \"inherit\" ) {\n\t\telement = element.parent();\n\t\tvisibility = element.css( \"visibility\" );\n\t}\n\treturn visibility === \"visible\";\n}\n\n$.extend( $.expr.pseudos, {\n\tfocusable: function( element ) {\n\t\treturn $.ui.focusable( element, $.attr( element, \"tabindex\" ) != null );\n\t}\n} );\n\nvar focusable = $.ui.focusable;\n\n\n\n// Support: IE8 Only\n// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop\n// with a string, so we need to find the proper form.\nvar form = $.fn._form = function() {\n\treturn typeof this[ 0 ].form === \"string\" ? this.closest( \"form\" ) : $( this[ 0 ].form );\n};\n\n\n/*!\n * jQuery UI Form Reset Mixin 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Form Reset Mixin\n//>>group: Core\n//>>description: Refresh input widgets when their form is reset\n//>>docs: http://api.jqueryui.com/form-reset-mixin/\n\n\nvar formResetMixin = $.ui.formResetMixin = {\n\t_formResetHandler: function() {\n\t\tvar form = $( this );\n\n\t\t// Wait for the form reset to actually happen before refreshing\n\t\tsetTimeout( function() {\n\t\t\tvar instances = form.data( \"ui-form-reset-instances\" );\n\t\t\t$.each( instances, function() {\n\t\t\t\tthis.refresh();\n\t\t\t} );\n\t\t} );\n\t},\n\n\t_bindFormResetHandler: function() {\n\t\tthis.form = this.element._form();\n\t\tif ( !this.form.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar instances = this.form.data( \"ui-form-reset-instances\" ) || [];\n\t\tif ( !instances.length ) {\n\n\t\t\t// We don't use _on() here because we use a single event handler per form\n\t\t\tthis.form.on( \"reset.ui-form-reset\", this._formResetHandler );\n\t\t}\n\t\tinstances.push( this );\n\t\tthis.form.data( \"ui-form-reset-instances\", instances );\n\t},\n\n\t_unbindFormResetHandler: function() {\n\t\tif ( !this.form.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar instances = this.form.data( \"ui-form-reset-instances\" );\n\t\tinstances.splice( $.inArray( this, instances ), 1 );\n\t\tif ( instances.length ) {\n\t\t\tthis.form.data( \"ui-form-reset-instances\", instances );\n\t\t} else {\n\t\t\tthis.form\n\t\t\t\t.removeData( \"ui-form-reset-instances\" )\n\t\t\t\t.off( \"reset.ui-form-reset\" );\n\t\t}\n\t}\n};\n\n\n/*!\n * jQuery UI Support for jQuery core 1.8.x and newer 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n */\n\n//>>label: jQuery 1.8+ Support\n//>>group: Core\n//>>description: Support version 1.8.x and newer of jQuery core\n\n\n// Support: jQuery 1.9.x or older\n// $.expr[ \":\" ] is deprecated.\nif ( !$.expr.pseudos ) {\n\t$.expr.pseudos = $.expr[ \":\" ];\n}\n\n// Support: jQuery 1.11.x or older\n// $.unique has been renamed to $.uniqueSort\nif ( !$.uniqueSort ) {\n\t$.uniqueSort = $.unique;\n}\n\n// Support: jQuery 2.2.x or older.\n// This method has been defined in jQuery 3.0.0.\n// Code from https://github.com/jquery/jquery/blob/e539bac79e666bba95bba86d690b4e609dca2286/src/selector/escapeSelector.js\nif ( !$.escapeSelector ) {\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\tvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\n\tvar fcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t};\n\n\t$.escapeSelector = function( sel ) {\n\t\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n\t};\n}\n\n// Support: jQuery 3.4.x or older\n// These methods have been defined in jQuery 3.5.0.\nif ( !$.fn.even || !$.fn.odd ) {\n\t$.fn.extend( {\n\t\teven: function() {\n\t\t\treturn this.filter( function( i ) {\n\t\t\t\treturn i % 2 === 0;\n\t\t\t} );\n\t\t},\n\t\todd: function() {\n\t\t\treturn this.filter( function( i ) {\n\t\t\t\treturn i % 2 === 1;\n\t\t\t} );\n\t\t}\n\t} );\n}\n\n;\n/*!\n * jQuery UI Keycode 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Keycode\n//>>group: Core\n//>>description: Provide keycodes as keynames\n//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/\n\n\nvar keycode = $.ui.keyCode = {\n\tBACKSPACE: 8,\n\tCOMMA: 188,\n\tDELETE: 46,\n\tDOWN: 40,\n\tEND: 35,\n\tENTER: 13,\n\tESCAPE: 27,\n\tHOME: 36,\n\tLEFT: 37,\n\tPAGE_DOWN: 34,\n\tPAGE_UP: 33,\n\tPERIOD: 190,\n\tRIGHT: 39,\n\tSPACE: 32,\n\tTAB: 9,\n\tUP: 38\n};\n\n\n/*!\n * jQuery UI Labels 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: labels\n//>>group: Core\n//>>description: Find all the labels associated with a given input\n//>>docs: http://api.jqueryui.com/labels/\n\n\nvar labels = $.fn.labels = function() {\n\tvar ancestor, selector, id, labels, ancestors;\n\n\tif ( !this.length ) {\n\t\treturn this.pushStack( [] );\n\t}\n\n\t// Check control.labels first\n\tif ( this[ 0 ].labels && this[ 0 ].labels.length ) {\n\t\treturn this.pushStack( this[ 0 ].labels );\n\t}\n\n\t// Support: IE <= 11, FF <= 37, Android <= 2.3 only\n\t// Above browsers do not support control.labels. Everything below is to support them\n\t// as well as document fragments. control.labels does not work on document fragments\n\tlabels = this.eq( 0 ).parents( \"label\" );\n\n\t// Look for the label based on the id\n\tid = this.attr( \"id\" );\n\tif ( id ) {\n\n\t\t// We don't search against the document in case the element\n\t\t// is disconnected from the DOM\n\t\tancestor = this.eq( 0 ).parents().last();\n\n\t\t// Get a full set of top level ancestors\n\t\tancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );\n\n\t\t// Create a selector for the label based on the id\n\t\tselector = \"label[for='\" + $.escapeSelector( id ) + \"']\";\n\n\t\tlabels = labels.add( ancestors.find( selector ).addBack( selector ) );\n\n\t}\n\n\t// Return whatever we have found for labels\n\treturn this.pushStack( labels );\n};\n\n\n/*!\n * jQuery UI Scroll Parent 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: scrollParent\n//>>group: Core\n//>>description: Get the closest ancestor element that is scrollable.\n//>>docs: http://api.jqueryui.com/scrollParent/\n\n\nvar scrollParent = $.fn.scrollParent = function( includeHidden ) {\n\tvar position = this.css( \"position\" ),\n\t\texcludeStaticParent = position === \"absolute\",\n\t\toverflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,\n\t\tscrollParent = this.parents().filter( function() {\n\t\t\tvar parent = $( this );\n\t\t\tif ( excludeStaticParent && parent.css( \"position\" ) === \"static\" ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn overflowRegex.test( parent.css( \"overflow\" ) + parent.css( \"overflow-y\" ) +\n\t\t\t\tparent.css( \"overflow-x\" ) );\n\t\t} ).eq( 0 );\n\n\treturn position === \"fixed\" || !scrollParent.length ?\n\t\t$( this[ 0 ].ownerDocument || document ) :\n\t\tscrollParent;\n};\n\n\n/*!\n * jQuery UI Tabbable 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: :tabbable Selector\n//>>group: Core\n//>>description: Selects elements which can be tabbed to.\n//>>docs: http://api.jqueryui.com/tabbable-selector/\n\n\nvar tabbable = $.extend( $.expr.pseudos, {\n\ttabbable: function( element ) {\n\t\tvar tabIndex = $.attr( element, \"tabindex\" ),\n\t\t\thasTabindex = tabIndex != null;\n\t\treturn ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex );\n\t}\n} );\n\n\n/*!\n * jQuery UI Unique ID 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: uniqueId\n//>>group: Core\n//>>description: Functions to generate and remove uniqueId's\n//>>docs: http://api.jqueryui.com/uniqueId/\n\n\nvar uniqueId = $.fn.extend( {\n\tuniqueId: ( function() {\n\t\tvar uuid = 0;\n\n\t\treturn function() {\n\t\t\treturn this.each( function() {\n\t\t\t\tif ( !this.id ) {\n\t\t\t\t\tthis.id = \"ui-id-\" + ( ++uuid );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\t} )(),\n\n\tremoveUniqueId: function() {\n\t\treturn this.each( function() {\n\t\t\tif ( /^ui-id-\\d+$/.test( this.id ) ) {\n\t\t\t\t$( this ).removeAttr( \"id\" );\n\t\t\t}\n\t\t} );\n\t}\n} );\n\n\n/*!\n * jQuery UI Accordion 1.13.0\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Accordion\n//>>group: Widgets\n/* eslint-disable max-len */\n//>>description: Displays collapsible content panels for presenting information in a limited amount of space.\n/* eslint-enable max-len */\n//>>docs: http://api.jqueryui.com/accordion/\n//>>demos: http://jqueryui.com/accordion/\n//>>css.structure: ../../themes/base/core.css\n//>>css.structure: ../../themes/base/accordion.css\n//>>css.theme: ../../themes/base/theme.css\n\n\nvar widgetsAccordion = $.widget( \"ui.accordion\", {\n\tversion: \"1.13.0\",\n\toptions: {\n\t\tactive: 0,\n\t\tanimate: {},\n\t\tclasses: {\n\t\t\t\"ui-accordion-header\": \"ui-corner-top\",\n\t\t\t\"ui-accordion-header-collapsed\": \"ui-corner-all\",\n\t\t\t\"ui-accordion-content\": \"ui-corner-bottom\"\n\t\t},\n\t\tcollapsible: false,\n\t\tevent: \"click\",\n\t\theader: function( elem ) {\n\t\t\treturn elem.find( \"> li > :first-child\" ).add( elem.find( \"> :not(li)\" ).even() );\n\t\t},\n\t\theightStyle: \"auto\",\n\t\ticons: {\n\t\t\tactiveHeader: \"ui-icon-triangle-1-s\",\n\t\t\theader: \"ui-icon-triangle-1-e\"\n\t\t},\n\n\t\t// Callbacks\n\t\tactivate: null,\n\t\tbeforeActivate: null\n\t},\n\n\thideProps: {\n\t\tborderTopWidth: \"hide\",\n\t\tborderBottomWidth: \"hide\",\n\t\tpaddingTop: \"hide\",\n\t\tpaddingBottom: \"hide\",\n\t\theight: \"hide\"\n\t},\n\n\tshowProps: {\n\t\tborderTopWidth: \"show\",\n\t\tborderBottomWidth: \"show\",\n\t\tpaddingTop: \"show\",\n\t\tpaddingBottom: \"show\",\n\t\theight: \"show\"\n\t},\n\n\t_create: function() {\n\t\tvar options = this.options;\n\n\t\tthis.prevShow = this.prevHide = $();\n\t\tthis._addClass( \"ui-accordion\", \"ui-widget ui-helper-reset\" );\n\t\tthis.element.attr( \"role\", \"tablist\" );\n\n\t\t// Don't allow collapsible: false and active: false / null\n\t\tif ( !options.collapsible && ( options.active === false || options.active == null ) ) {\n\t\t\toptions.active = 0;\n\t\t}\n\n\t\tthis._processPanels();\n\n\t\t// handle negative values\n\t\tif ( options.active < 0 ) {\n\t\t\toptions.active += this.headers.length;\n\t\t}\n\t\tthis._refresh();\n\t},\n\n\t_getCreateEventData: function() {\n\t\treturn {\n\t\t\theader: this.active,\n\t\t\tpanel: !this.active.length ? $() : this.active.next()\n\t\t};\n\t},\n\n\t_createIcons: function() {\n\t\tvar icon, children,\n\t\t\ticons = this.options.icons;\n\n\t\tif ( icons ) {\n\t\t\ticon = $( \"\" );\n\t\t\tthis._addClass( icon, \"ui-accordion-header-icon\", \"ui-icon \" + icons.header );\n\t\t\ticon.prependTo( this.headers );\n\t\t\tchildren = this.active.children( \".ui-accordion-header-icon\" );\n\t\t\tthis._removeClass( children, icons.header )\n\t\t\t\t._addClass( children, null, icons.activeHeader )\n\t\t\t\t._addClass( this.headers, \"ui-accordion-icons\" );\n\t\t}\n\t},\n\n\t_destroyIcons: function() {\n\t\tthis._removeClass( this.headers, \"ui-accordion-icons\" );\n\t\tthis.headers.children( \".ui-accordion-header-icon\" ).remove();\n\t},\n\n\t_destroy: function() {\n\t\tvar contents;\n\n\t\t// Clean up main element\n\t\tthis.element.removeAttr( \"role\" );\n\n\t\t// Clean up headers\n\t\tthis.headers\n\t\t\t.removeAttr( \"role aria-expanded aria-selected aria-controls tabIndex\" )\n\t\t\t.removeUniqueId();\n\n\t\tthis._destroyIcons();\n\n\t\t// Clean up content panels\n\t\tcontents = this.headers.next()\n\t\t\t.css( \"display\", \"\" )\n\t\t\t.removeAttr( \"role aria-hidden aria-labelledby\" )\n\t\t\t.removeUniqueId();\n\n\t\tif ( this.options.heightStyle !== \"content\" ) {\n\t\t\tcontents.css( \"height\", \"\" );\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"active\" ) {\n\n\t\t\t// _activate() will handle invalid values and update this.options\n\t\t\tthis._activate( value );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === \"event\" ) {\n\t\t\tif ( this.options.event ) {\n\t\t\t\tthis._off( this.headers, this.options.event );\n\t\t\t}\n\t\t\tthis._setupEvents( value );\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\t// Setting collapsible: false while collapsed; open first panel\n\t\tif ( key === \"collapsible\" && !value && this.options.active === false ) {\n\t\t\tthis._activate( 0 );\n\t\t}\n\n\t\tif ( key === \"icons\" ) {\n\t\t\tthis._destroyIcons();\n\t\t\tif ( value ) {\n\t\t\t\tthis._createIcons();\n\t\t\t}\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._super( value );\n\n\t\tthis.element.attr( \"aria-disabled\", value );\n\n\t\t// Support: IE8 Only\n\t\t// #5332 / #6059 - opacity doesn't cascade to positioned elements in IE\n\t\t// so we need to add the disabled class to the headers and panels\n\t\tthis._toggleClass( null, \"ui-state-disabled\", !!value );\n\t\tthis._toggleClass( this.headers.add( this.headers.next() ), null, \"ui-state-disabled\",\n\t\t\t!!value );\n\t},\n\n\t_keydown: function( event ) {\n\t\tif ( event.altKey || event.ctrlKey ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar keyCode = $.ui.keyCode,\n\t\t\tlength = this.headers.length,\n\t\t\tcurrentIndex = this.headers.index( event.target ),\n\t\t\ttoFocus = false;\n\n\t\tswitch ( event.keyCode ) {\n\t\tcase keyCode.RIGHT:\n\t\tcase keyCode.DOWN:\n\t\t\ttoFocus = this.headers[ ( currentIndex + 1 ) % length ];\n\t\t\tbreak;\n\t\tcase keyCode.LEFT:\n\t\tcase keyCode.UP:\n\t\t\ttoFocus = this.headers[ ( currentIndex - 1 + length ) % length ];\n\t\t\tbreak;\n\t\tcase keyCode.SPACE:\n\t\tcase keyCode.ENTER:\n\t\t\tthis._eventHandler( event );\n\t\t\tbreak;\n\t\tcase keyCode.HOME:\n\t\t\ttoFocus = this.headers[ 0 ];\n\t\t\tbreak;\n\t\tcase keyCode.END:\n\t\t\ttoFocus = this.headers[ length - 1 ];\n\t\t\tbreak;\n\t\t}\n\n\t\tif ( toFocus ) {\n\t\t\t$( event.target ).attr( \"tabIndex\", -1 );\n\t\t\t$( toFocus ).attr( \"tabIndex\", 0 );\n\t\t\t$( toFocus ).trigger( \"focus\" );\n\t\t\tevent.preventDefault();\n\t\t}\n\t},\n\n\t_panelKeyDown: function( event ) {\n\t\tif ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {\n\t\t\t$( event.currentTarget ).prev().trigger( \"focus\" );\n\t\t}\n\t},\n\n\trefresh: function() {\n\t\tvar options = this.options;\n\t\tthis._processPanels();\n\n\t\t// Was collapsed or no panel\n\t\tif ( ( options.active === false && options.collapsible === true ) ||\n\t\t\t\t!this.headers.length ) {\n\t\t\toptions.active = false;\n\t\t\tthis.active = $();\n\n\t\t// active false only when collapsible is true\n\t\t} else if ( options.active === false ) {\n\t\t\tthis._activate( 0 );\n\n\t\t// was active, but active panel is gone\n\t\t} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {\n\n\t\t\t// all remaining panel are disabled\n\t\t\tif ( this.headers.length === this.headers.find( \".ui-state-disabled\" ).length ) {\n\t\t\t\toptions.active = false;\n\t\t\t\tthis.active = $();\n\n\t\t\t// activate previous panel\n\t\t\t} else {\n\t\t\t\tthis._activate( Math.max( 0, options.active - 1 ) );\n\t\t\t}\n\n\t\t// was active, active panel still exists\n\t\t} else {\n\n\t\t\t// make sure active index is correct\n\t\t\toptions.active = this.headers.index( this.active );\n\t\t}\n\n\t\tthis._destroyIcons();\n\n\t\tthis._refresh();\n\t},\n\n\t_processPanels: function() {\n\t\tvar prevHeaders = this.headers,\n\t\t\tprevPanels = this.panels;\n\n\t\tif ( typeof this.options.header === \"function\" ) {\n\t\t\tthis.headers = this.options.header( this.element );\n\t\t} else {\n\t\t\tthis.headers = this.element.find( this.options.header );\n\t\t}\n\t\tthis._addClass( this.headers, \"ui-accordion-header ui-accordion-header-collapsed\",\n\t\t\t\"ui-state-default\" );\n\n\t\tthis.panels = this.headers.next().filter( \":not(.ui-accordion-content-active)\" ).hide();\n\t\tthis._addClass( this.panels, \"ui-accordion-content\", \"ui-helper-reset ui-widget-content\" );\n\n\t\t// Avoid memory leaks (#10056)\n\t\tif ( prevPanels ) {\n\t\t\tthis._off( prevHeaders.not( this.headers ) );\n\t\t\tthis._off( prevPanels.not( this.panels ) );\n\t\t}\n\t},\n\n\t_refresh: function() {\n\t\tvar maxHeight,\n\t\t\toptions = this.options,\n\t\t\theightStyle = options.heightStyle,\n\t\t\tparent = this.element.parent();\n\n\t\tthis.active = this._findActive( options.active );\n\t\tthis._addClass( this.active, \"ui-accordion-header-active\", \"ui-state-active\" )\n\t\t\t._removeClass( this.active, \"ui-accordion-header-collapsed\" );\n\t\tthis._addClass( this.active.next(), \"ui-accordion-content-active\" );\n\t\tthis.active.next().show();\n\n\t\tthis.headers\n\t\t\t.attr( \"role\", \"tab\" )\n\t\t\t.each( function() {\n\t\t\t\tvar header = $( this ),\n\t\t\t\t\theaderId = header.uniqueId().attr( \"id\" ),\n\t\t\t\t\tpanel = header.next(),\n\t\t\t\t\tpanelId = panel.uniqueId().attr( \"id\" );\n\t\t\t\theader.attr( \"aria-controls\", panelId );\n\t\t\t\tpanel.attr( \"aria-labelledby\", headerId );\n\t\t\t} )\n\t\t\t.next()\n\t\t\t\t.attr( \"role\", \"tabpanel\" );\n\n\t\tthis.headers\n\t\t\t.not( this.active )\n\t\t\t\t.attr( {\n\t\t\t\t\t\"aria-selected\": \"false\",\n\t\t\t\t\t\"aria-expanded\": \"false\",\n\t\t\t\t\ttabIndex: -1\n\t\t\t\t} )\n\t\t\t\t.next()\n\t\t\t\t\t.attr( {\n\t\t\t\t\t\t\"aria-hidden\": \"true\"\n\t\t\t\t\t} )\n\t\t\t\t\t.hide();\n\n\t\t// Make sure at least one header is in the tab order\n\t\tif ( !this.active.length ) {\n\t\t\tthis.headers.eq( 0 ).attr( \"tabIndex\", 0 );\n\t\t} else {\n\t\t\tthis.active.attr( {\n\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\ttabIndex: 0\n\t\t\t} )\n\t\t\t\t.next()\n\t\t\t\t\t.attr( {\n\t\t\t\t\t\t\"aria-hidden\": \"false\"\n\t\t\t\t\t} );\n\t\t}\n\n\t\tthis._createIcons();\n\n\t\tthis._setupEvents( options.event );\n\n\t\tif ( heightStyle === \"fill\" ) {\n\t\t\tmaxHeight = parent.height();\n\t\t\tthis.element.siblings( \":visible\" ).each( function() {\n\t\t\t\tvar elem = $( this ),\n\t\t\t\t\tposition = elem.css( \"position\" );\n\n\t\t\t\tif ( position === \"absolute\" || position === \"fixed\" ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmaxHeight -= elem.outerHeight( true );\n\t\t\t} );\n\n\t\t\tthis.headers.each( function() {\n\t\t\t\tmaxHeight -= $( this ).outerHeight( true );\n\t\t\t} );\n\n\t\t\tthis.headers.next()\n\t\t\t\t.each( function() {\n\t\t\t\t\t$( this ).height( Math.max( 0, maxHeight -\n\t\t\t\t\t\t$( this ).innerHeight() + $( this ).height() ) );\n\t\t\t\t} )\n\t\t\t\t.css( \"overflow\", \"auto\" );\n\t\t} else if ( heightStyle === \"auto\" ) {\n\t\t\tmaxHeight = 0;\n\t\t\tthis.headers.next()\n\t\t\t\t.each( function() {\n\t\t\t\t\tvar isVisible = $( this ).is( \":visible\" );\n\t\t\t\t\tif ( !isVisible ) {\n\t\t\t\t\t\t$( this ).show();\n\t\t\t\t\t}\n\t\t\t\t\tmaxHeight = Math.max( maxHeight, $( this ).css( \"height\", \"\" ).height() );\n\t\t\t\t\tif ( !isVisible ) {\n\t\t\t\t\t\t$( this ).hide();\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t.height( maxHeight );\n\t\t}\n\t},\n\n\t_activate: function( index ) {\n\t\tvar active = this._findActive( index )[ 0 ];\n\n\t\t// Trying to activate the already active panel\n\t\tif ( active === this.active[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Trying to collapse, simulate a click on the currently active header\n\t\tactive = active || this.active[ 0 ];\n\n\t\tthis._eventHandler( {\n\t\t\ttarget: active,\n\t\t\tcurrentTarget: active,\n\t\t\tpreventDefault: $.noop\n\t\t} );\n\t},\n\n\t_findActive: function( selector ) {\n\t\treturn typeof selector === \"number\" ? this.headers.eq( selector ) : $();\n\t},\n\n\t_setupEvents: function( event ) {\n\t\tvar events = {\n\t\t\tkeydown: \"_keydown\"\n\t\t};\n\t\tif ( event ) {\n\t\t\t$.each( event.split( \" \" ), function( index, eventName ) {\n\t\t\t\tevents[ eventName ] = \"_eventHandler\";\n\t\t\t} );\n\t\t}\n\n\t\tthis._off( this.headers.add( this.headers.next() ) );\n\t\tthis._on( this.headers, events );\n\t\tthis._on( this.headers.next(), { keydown: \"_panelKeyDown\" } );\n\t\tthis._hoverable( this.headers );\n\t\tthis._focusable( this.headers );\n\t},\n\n\t_eventHandler: function( event ) {\n\t\tvar activeChildren, clickedChildren,\n\t\t\toptions = this.options,\n\t\t\tactive = this.active,\n\t\t\tclicked = $( event.currentTarget ),\n\t\t\tclickedIsActive = clicked[ 0 ] === active[ 0 ],\n\t\t\tcollapsing = clickedIsActive && options.collapsible,\n\t\t\ttoShow = collapsing ? $() : clicked.next(),\n\t\t\ttoHide = active.next(),\n\t\t\teventData = {\n\t\t\t\toldHeader: active,\n\t\t\t\toldPanel: toHide,\n\t\t\t\tnewHeader: collapsing ? $() : clicked,\n\t\t\t\tnewPanel: toShow\n\t\t\t};\n\n\t\tevent.preventDefault();\n\n\t\tif (\n\n\t\t\t\t// click on active header, but not collapsible\n\t\t\t\t( clickedIsActive && !options.collapsible ) ||\n\n\t\t\t\t// allow canceling activation\n\t\t\t\t( this._trigger( \"beforeActivate\", event, eventData ) === false ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\toptions.active = collapsing ? false : this.headers.index( clicked );\n\n\t\t// When the call to ._toggle() comes after the class changes\n\t\t// it causes a very odd bug in IE 8 (see #6720)\n\t\tthis.active = clickedIsActive ? $() : clicked;\n\t\tthis._toggle( eventData );\n\n\t\t// Switch classes\n\t\t// corner classes on the previously active header stay after the animation\n\t\tthis._removeClass( active, \"ui-accordion-header-active\", \"ui-state-active\" );\n\t\tif ( options.icons ) {\n\t\t\tactiveChildren = active.children( \".ui-accordion-header-icon\" );\n\t\t\tthis._removeClass( activeChildren, null, options.icons.activeHeader )\n\t\t\t\t._addClass( activeChildren, null, options.icons.header );\n\t\t}\n\n\t\tif ( !clickedIsActive ) {\n\t\t\tthis._removeClass( clicked, \"ui-accordion-header-collapsed\" )\n\t\t\t\t._addClass( clicked, \"ui-accordion-header-active\", \"ui-state-active\" );\n\t\t\tif ( options.icons ) {\n\t\t\t\tclickedChildren = clicked.children( \".ui-accordion-header-icon\" );\n\t\t\t\tthis._removeClass( clickedChildren, null, options.icons.header )\n\t\t\t\t\t._addClass( clickedChildren, null, options.icons.activeHeader );\n\t\t\t}\n\n\t\t\tthis._addClass( clicked.next(), \"ui-accordion-content-active\" );\n\t\t}\n\t},\n\n\t_toggle: function( data ) {\n\t\tvar toShow = data.newPanel,\n\t\t\ttoHide = this.prevShow.length ? this.prevShow : data.oldPanel;\n\n\t\t// Handle activating a panel during the animation for another activation\n\t\tthis.prevShow.add( this.prevHide ).stop( true, true );\n\t\tthis.prevShow = toShow;\n\t\tthis.prevHide = toHide;\n\n\t\tif ( this.options.animate ) {\n\t\t\tthis._animate( toShow, toHide, data );\n\t\t} else {\n\t\t\ttoHide.hide();\n\t\t\ttoShow.show();\n\t\t\tthis._toggleComplete( data );\n\t\t}\n\n\t\ttoHide.attr( {\n\t\t\t\"aria-hidden\": \"true\"\n\t\t} );\n\t\ttoHide.prev().attr( {\n\t\t\t\"aria-selected\": \"false\",\n\t\t\t\"aria-expanded\": \"false\"\n\t\t} );\n\n\t\t// if we're switching panels, remove the old header from the tab order\n\t\t// if we're opening from collapsed state, remove the previous header from the tab order\n\t\t// if we're collapsing, then keep the collapsing header in the tab order\n\t\tif ( toShow.length && toHide.length ) {\n\t\t\ttoHide.prev().attr( {\n\t\t\t\t\"tabIndex\": -1,\n\t\t\t\t\"aria-expanded\": \"false\"\n\t\t\t} );\n\t\t} else if ( toShow.length ) {\n\t\t\tthis.headers.filter( function() {\n\t\t\t\treturn parseInt( $( this ).attr( \"tabIndex\" ), 10 ) === 0;\n\t\t\t} )\n\t\t\t\t.attr( \"tabIndex\", -1 );\n\t\t}\n\n\t\ttoShow\n\t\t\t.attr( \"aria-hidden\", \"false\" )\n\t\t\t.prev()\n\t\t\t\t.attr( {\n\t\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\t\ttabIndex: 0\n\t\t\t\t} );\n\t},\n\n\t_animate: function( toShow, toHide, data ) {\n\t\tvar total, easing, duration,\n\t\t\tthat = this,\n\t\t\tadjust = 0,\n\t\t\tboxSizing = toShow.css( \"box-sizing\" ),\n\t\t\tdown = toShow.length &&\n\t\t\t\t( !toHide.length || ( toShow.index() < toHide.index() ) ),\n\t\t\tanimate = this.options.animate || {},\n\t\t\toptions = down && animate.down || animate,\n\t\t\tcomplete = function() {\n\t\t\t\tthat._toggleComplete( data );\n\t\t\t};\n\n\t\tif ( typeof options === \"number\" ) {\n\t\t\tduration = options;\n\t\t}\n\t\tif ( typeof options === \"string\" ) {\n\t\t\teasing = options;\n\t\t}\n\n\t\t// fall back from options to animation in case of partial down settings\n\t\teasing = easing || options.easing || animate.easing;\n\t\tduration = duration || options.duration || animate.duration;\n\n\t\tif ( !toHide.length ) {\n\t\t\treturn toShow.animate( this.showProps, duration, easing, complete );\n\t\t}\n\t\tif ( !toShow.length ) {\n\t\t\treturn toHide.animate( this.hideProps, duration, easing, complete );\n\t\t}\n\n\t\ttotal = toShow.show().outerHeight();\n\t\ttoHide.animate( this.hideProps, {\n\t\t\tduration: duration,\n\t\t\teasing: easing,\n\t\t\tstep: function( now, fx ) {\n\t\t\t\tfx.now = Math.round( now );\n\t\t\t}\n\t\t} );\n\t\ttoShow\n\t\t\t.hide()\n\t\t\t.animate( this.showProps, {\n\t\t\t\tduration: duration,\n\t\t\t\teasing: easing,\n\t\t\t\tcomplete: complete,\n\t\t\t\tstep: function( now, fx ) {\n\t\t\t\t\tfx.now = Math.round( now );\n\t\t\t\t\tif ( fx.prop !== \"height\" ) {\n\t\t\t\t\t\tif ( boxSizing === \"content-box\" ) {\n\t\t\t\t\t\t\tadjust += fx.now;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( that.options.heightStyle !== \"content\" ) {\n\t\t\t\t\t\tfx.now = Math.round( total - toHide.outerHeight() - adjust );\n\t\t\t\t\t\tadjust = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t},\n\n\t_toggleComplete: function( data ) {\n\t\tvar toHide = data.oldPanel,\n\t\t\tprev = toHide.prev();\n\n\t\tthis._removeClass( toHide, \"ui-accordion-content-active\" );\n\t\tthis._removeClass( prev, \"ui-accordion-header-active\" )\n\t\t\t._addClass( prev, \"ui-accordion-header-collapsed\" );\n\n\t\t// Work around for rendering bug in IE (#5421)\n\t\tif ( toHide.length ) {\n\t\t\ttoHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;\n\t\t}\n\t\tthis._trigger( \"activate\", null, data );\n\t}\n} );\n\n\n\nvar safeActiveElement = $.ui.safeActiveElement = function( document ) {\n\tvar activeElement;\n\n\t// Support: IE 9 only\n\t// IE9 throws an \"Unspecified error\" accessing document.activeElement from an