{"version":3,"sources":["../node_modules/uikit/dist/js/uikit.js","../node_modules/countup.js/dist/countUp.min.js","../node_modules/moment/moment.js","../node_modules/chart.js/dist/Chart.js","scripts/infographics.js","scripts/index.js","charts/energy-demand-intensity.js","charts/energy-demand-per-capita.js","charts/energy-demand-total-no-hosp.js","charts/energy-demand-total.js","charts/energy-scope3.js","charts/transportation.js","charts/energy-supply.js","charts/waste-per-capita.js","charts/waste-total.js","charts/water-per-capita.js","charts/water-total.js"],"names":["__assign","Object","assign","t","i","a","s","arguments","length","n","prototype","hasOwnProperty","call","apply","CountUp","target","endVal","options","version","defaults","startVal","decimalPlaces","duration","useEasing","useGrouping","smartEasingThreshold","smartEasingAmount","separator","decimal","prefix","suffix","finalEndVal","countDown","error","paused","count","startTime","remaining","frameVal","easingFn","Number","toFixed","printValue","rAF","requestAnimationFrame","update","callback","formatNumber","e","r","Math","abs","o","split","l","h","numerals","replace","easeOutExpo","pow","formattingFn","validateValue","max","resetDuration","String","el","document","getElementById","determineDirectionAndSmartEasing","start","pauseResume","cancelAnimationFrame","reset","tagName","value","textContent","innerHTML","ensureNumber","isNaN","modalRefs","chartRefs","closeAllModals","setTimeout","m","pop","isToggled","hide","push","UIkit","mixin","data","util","ready","querySelectorAll","forEach","addEventListener","passive","on","toggle","dataset","chart","Chart","charts","modal","querySelector","resize","animations","id","classList","add","remove","type","height","title","display","responsive","maintainAspectRatio","scales","yAxes","stacked","scaleLabel","labelString","ticks","min","stepSize","toLocaleString","xAxes","fontSize","animation","legend","position","fullWidth","labels","padding","tooltips","enabled","mode","backgroundColor","bodyFontColor","cornerRadius","xPadding","yPadding","caretSize","callbacks","label","yLabel","afterLabel","d","footnotes","datasets","datasetIndex","xLabel","hover","lineTension","fill","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","pointBorderColor","pointBackgroundColor","pointBorderWidth","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","pointRadius","pointHitRadius","displayColors","categoryPercentage","hoverBackgroundColor","index","values","parseInt","toString","Other","round"],"mappings":"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YAAa,QAEfC,MAAO,CACLK,SAAU,IAEZ4C,mBAAoB,MAGxBrD,MAAO,CACL,CACEI,MAAO,CACL5D,IAAK,KACL6D,IAAK,EACLC,SAAU,IACV9E,SAAU,SAAA4B,GAASA,OAAAA,EAAMmD,mBAE3BN,SAAS,EACTC,WAAY,CACVN,SAAS,EACTO,YAAa,2BAsNvB,QAAA,QAAA,EA/MO,IAAM/B,EAAO,CAClB0C,OAAQ,CACN,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEFiB,SAAU,CACR,CACEL,MAAO,6CACPY,YAAa,uBACbnB,gBAAiB,CACf,uBACA,0BACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,0BACA,0BACA,uBACA,uBACA,uBACA,uBACA,wBAEFmC,qBAAsB,0BACtBlF,KAAM,CACJ,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACEsD,MAAO,sBACPP,gBAAiB,CACf,yBACA,yBACA,yBACA,yBACA,4BACA,yBACA,4BACA,4BACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,0BAEFmC,qBAAsB,4BACtBlF,KAAM,CACJ,KACA,KACA,KACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAGJ,CACEsD,MAAO,sBACPP,gBAAiB,CACf,uBACA,uBACA,uBACA,uBACA,0BACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,wBAEFmC,qBAAsB,0BACtBlF,KAAM,CACJ,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACEsD,MAAO,0BACPP,gBAAiB,4BACjBmC,qBAAsB,4BACtBlF,KAAM,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAGJ,CACEsD,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","file":"scripts.547684de.js","sourceRoot":"../src","sourcesContent":["/*! UIkit 3.15.11 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define('uikit', factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.UIkit = factory());\n})(this, (function () { 'use strict';\n\n const { hasOwnProperty, toString } = Object.prototype;\n\n function hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n }\n\n const hyphenateRe = /\\B([A-Z])/g;\n\n const hyphenate = memoize((str) => str.replace(hyphenateRe, '-$1').toLowerCase());\n\n const camelizeRe = /-(\\w)/g;\n\n const camelize = memoize((str) => str.replace(camelizeRe, toUpper));\n\n const ucfirst = memoize((str) =>\n str.length ? toUpper(null, str.charAt(0)) + str.slice(1) : '');\n\n\n function toUpper(_, c) {\n return c ? c.toUpperCase() : '';\n }\n\n function startsWith(str, search) {\n return str == null ? void 0 : str.startsWith == null ? void 0 : str.startsWith(search);\n }\n\n function endsWith(str, search) {\n return str == null ? void 0 : str.endsWith == null ? void 0 : str.endsWith(search);\n }\n\n function includes(obj, search) {\n return obj == null ? void 0 : obj.includes == null ? void 0 : obj.includes(search);\n }\n\n function findIndex(array, predicate) {\n return array == null ? void 0 : array.findIndex == null ? void 0 : array.findIndex(predicate);\n }\n\n const { isArray, from: toArray } = Array;\n const { assign } = Object;\n\n function isFunction(obj) {\n return typeof obj === 'function';\n }\n\n function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n }\n\n function isPlainObject(obj) {\n return toString.call(obj) === '[object Object]';\n }\n\n function isWindow(obj) {\n return isObject(obj) && obj === obj.window;\n }\n\n function isDocument(obj) {\n return nodeType(obj) === 9;\n }\n\n function isNode(obj) {\n return nodeType(obj) >= 1;\n }\n\n function isElement(obj) {\n return nodeType(obj) === 1;\n }\n\n function nodeType(obj) {\n return !isWindow(obj) && isObject(obj) && obj.nodeType;\n }\n\n function isBoolean(value) {\n return typeof value === 'boolean';\n }\n\n function isString(value) {\n return typeof value === 'string';\n }\n\n function isNumber(value) {\n return typeof value === 'number';\n }\n\n function isNumeric(value) {\n return isNumber(value) || isString(value) && !isNaN(value - parseFloat(value));\n }\n\n function isEmpty(obj) {\n return !(isArray(obj) ? obj.length : isObject(obj) ? Object.keys(obj).length : false);\n }\n\n function isUndefined(value) {\n return value === void 0;\n }\n\n function toBoolean(value) {\n return isBoolean(value) ?\n value :\n value === 'true' || value === '1' || value === '' ?\n true :\n value === 'false' || value === '0' ?\n false :\n value;\n }\n\n function toNumber(value) {\n const number = Number(value);\n return isNaN(number) ? false : number;\n }\n\n function toFloat(value) {\n return parseFloat(value) || 0;\n }\n\n function toNode(element) {\n return toNodes(element)[0];\n }\n\n function toNodes(element) {\n return element && (isNode(element) ? [element] : Array.from(element).filter(isNode)) || [];\n }\n\n function toWindow(element) {var _element;\n if (isWindow(element)) {\n return element;\n }\n\n element = toNode(element);\n const document = isDocument(element) ? element : (_element = element) == null ? void 0 : _element.ownerDocument;\n\n return (document == null ? void 0 : document.defaultView) || window;\n }\n\n function isEqual(value, other) {\n return (\n value === other ||\n isObject(value) &&\n isObject(other) &&\n Object.keys(value).length === Object.keys(other).length &&\n each(value, (val, key) => val === other[key]));\n\n }\n\n function swap(value, a, b) {\n return value.replace(new RegExp(a + \"|\" + b, 'g'), (match) => match === a ? b : a);\n }\n\n function last(array) {\n return array[array.length - 1];\n }\n\n function each(obj, cb) {\n for (const key in obj) {\n if (false === cb(obj[key], key)) {\n return false;\n }\n }\n return true;\n }\n\n function sortBy$1(array, prop) {\n return array.\n slice().\n sort((_ref, _ref2) => {let { [prop]: propA = 0 } = _ref;let { [prop]: propB = 0 } = _ref2;return (\n propA > propB ? 1 : propB > propA ? -1 : 0);});\n\n }\n\n function uniqueBy(array, prop) {\n const seen = new Set();\n return array.filter((_ref3) => {let { [prop]: check } = _ref3;return seen.has(check) ? false : seen.add(check);});\n }\n\n function clamp(number, min, max) {if (min === void 0) {min = 0;}if (max === void 0) {max = 1;}\n return Math.min(Math.max(toNumber(number) || 0, min), max);\n }\n\n function noop() {}\n\n function intersectRect() {for (var _len = arguments.length, rects = new Array(_len), _key = 0; _key < _len; _key++) {rects[_key] = arguments[_key];}\n return [\n ['bottom', 'top'],\n ['right', 'left']].\n every(\n (_ref4) => {let [minProp, maxProp] = _ref4;return (\n Math.min(...rects.map((_ref5) => {let { [minProp]: min } = _ref5;return min;})) -\n Math.max(...rects.map((_ref6) => {let { [maxProp]: max } = _ref6;return max;})) >\n 0);});\n\n }\n\n function pointInRect(point, rect) {\n return (\n point.x <= rect.right &&\n point.x >= rect.left &&\n point.y <= rect.bottom &&\n point.y >= rect.top);\n\n }\n\n function ratio(dimensions, prop, value) {\n const aProp = prop === 'width' ? 'height' : 'width';\n\n return {\n [aProp]: dimensions[prop] ?\n Math.round(value * dimensions[aProp] / dimensions[prop]) :\n dimensions[aProp],\n [prop]: value\n };\n }\n\n function contain(dimensions, maxDimensions) {\n dimensions = { ...dimensions };\n\n for (const prop in dimensions) {\n dimensions =\n dimensions[prop] > maxDimensions[prop] ?\n ratio(dimensions, prop, maxDimensions[prop]) :\n dimensions;\n }\n\n return dimensions;\n }\n\n function cover$1(dimensions, maxDimensions) {\n dimensions = contain(dimensions, maxDimensions);\n\n for (const prop in dimensions) {\n dimensions =\n dimensions[prop] < maxDimensions[prop] ?\n ratio(dimensions, prop, maxDimensions[prop]) :\n dimensions;\n }\n\n return dimensions;\n }\n\n const Dimensions = { ratio, contain, cover: cover$1 };\n\n function getIndex(i, elements, current, finite) {if (current === void 0) {current = 0;}if (finite === void 0) {finite = false;}\n elements = toNodes(elements);\n\n const { length } = elements;\n\n if (!length) {\n return -1;\n }\n\n i = isNumeric(i) ?\n toNumber(i) :\n i === 'next' ?\n current + 1 :\n i === 'previous' ?\n current - 1 :\n elements.indexOf(toNode(i));\n\n if (finite) {\n return clamp(i, 0, length - 1);\n }\n\n i %= length;\n\n return i < 0 ? i + length : i;\n }\n\n function memoize(fn) {\n const cache = Object.create(null);\n return (key) => cache[key] || (cache[key] = fn(key));\n }\n\n class Deferred {\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.reject = reject;\n this.resolve = resolve;\n });\n }\n }\n\n function attr(element, name, value) {\n if (isObject(name)) {\n for (const key in name) {\n attr(element, key, name[key]);\n }\n return;\n }\n\n if (isUndefined(value)) {var _toNode;\n return (_toNode = toNode(element)) == null ? void 0 : _toNode.getAttribute(name);\n } else {\n for (const el of toNodes(element)) {\n if (isFunction(value)) {\n value = value.call(el, attr(el, name));\n }\n\n if (value === null) {\n removeAttr(el, name);\n } else {\n el.setAttribute(name, value);\n }\n }\n }\n }\n\n function hasAttr(element, name) {\n return toNodes(element).some((element) => element.hasAttribute(name));\n }\n\n function removeAttr(element, name) {\n const elements = toNodes(element);\n for (const attribute of name.split(' ')) {\n for (const element of elements) {\n element.removeAttribute(attribute);\n }\n }\n }\n\n function data(element, attribute) {\n for (const name of [attribute, \"data-\" + attribute]) {\n if (hasAttr(element, name)) {\n return attr(element, name);\n }\n }\n }\n\n const voidElements = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n menuitem: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n };\n function isVoidElement(element) {\n return toNodes(element).some((element) => voidElements[element.tagName.toLowerCase()]);\n }\n\n function isVisible(element) {\n return toNodes(element).some(\n (element) => element.offsetWidth || element.offsetHeight || element.getClientRects().length);\n\n }\n\n const selInput = 'input,select,textarea,button';\n function isInput(element) {\n return toNodes(element).some((element) => matches(element, selInput));\n }\n\n const selFocusable = selInput + \",a[href],[tabindex]\";\n function isFocusable(element) {\n return matches(element, selFocusable);\n }\n\n function parent(element) {var _toNode;\n return (_toNode = toNode(element)) == null ? void 0 : _toNode.parentElement;\n }\n\n function filter$1(element, selector) {\n return toNodes(element).filter((element) => matches(element, selector));\n }\n\n function matches(element, selector) {\n return toNodes(element).some((element) => element.matches(selector));\n }\n\n function closest(element, selector) {\n return isElement(element) ?\n element.closest(startsWith(selector, '>') ? selector.slice(1) : selector) :\n toNodes(element).\n map((element) => closest(element, selector)).\n filter(Boolean);\n }\n\n function within(element, selector) {\n return isString(selector) ?\n !!closest(element, selector) :\n toNode(selector).contains(toNode(element));\n }\n\n function parents(element, selector) {\n const elements = [];\n\n while (element = parent(element)) {\n if (!selector || matches(element, selector)) {\n elements.push(element);\n }\n }\n\n return elements;\n }\n\n function children(element, selector) {\n element = toNode(element);\n const children = element ? toNodes(element.children) : [];\n return selector ? filter$1(children, selector) : children;\n }\n\n function index(element, ref) {\n return ref ? toNodes(element).indexOf(toNode(ref)) : children(parent(element)).indexOf(element);\n }\n\n function query(selector, context) {\n return find(selector, getContext(selector, context));\n }\n\n function queryAll(selector, context) {\n return findAll(selector, getContext(selector, context));\n }\n\n function find(selector, context) {\n return toNode(_query(selector, context, 'querySelector'));\n }\n\n function findAll(selector, context) {\n return toNodes(_query(selector, context, 'querySelectorAll'));\n }\n\n const contextSelectorRe = /(^|[^\\\\],)\\s*[!>+~-]/;\n const isContextSelector = memoize((selector) => selector.match(contextSelectorRe));\n\n function getContext(selector, context) {if (context === void 0) {context = document;}\n return isString(selector) && isContextSelector(selector) || isDocument(context) ?\n context :\n context.ownerDocument;\n }\n\n const contextSanitizeRe = /([!>+~-])(?=\\s+[!>+~-]|\\s*$)/g;\n const sanatize = memoize((selector) => selector.replace(contextSanitizeRe, '$1 *'));\n\n function _query(selector, context, queryFn) {if (context === void 0) {context = document;}\n if (!selector || !isString(selector)) {\n return selector;\n }\n\n selector = sanatize(selector);\n\n if (isContextSelector(selector)) {\n const split = splitSelector(selector);\n selector = '';\n for (let sel of split) {\n let ctx = context;\n\n if (sel[0] === '!') {\n const selectors = sel.substr(1).trim().split(' ');\n ctx = closest(parent(context), selectors[0]);\n sel = selectors.slice(1).join(' ').trim();\n if (!sel.length && split.length === 1) {\n return ctx;\n }\n }\n\n if (sel[0] === '-') {\n const selectors = sel.substr(1).trim().split(' ');\n const prev = (ctx || context).previousElementSibling;\n ctx = matches(prev, sel.substr(1)) ? prev : null;\n sel = selectors.slice(1).join(' ');\n }\n\n if (ctx) {\n selector += \"\" + (selector ? ',' : '') + domPath(ctx) + \" \" + sel;\n }\n }\n\n context = document;\n }\n\n try {\n return context[queryFn](selector);\n } catch (e) {\n return null;\n }\n }\n\n const selectorRe = /.*?[^\\\\](?:,|$)/g;\n\n const splitSelector = memoize((selector) =>\n selector.match(selectorRe).map((selector) => selector.replace(/,$/, '').trim()));\n\n\n function domPath(element) {\n const names = [];\n while (element.parentNode) {\n const id = attr(element, 'id');\n if (id) {\n names.unshift(\"#\" + escape(id));\n break;\n } else {\n let { tagName } = element;\n if (tagName !== 'HTML') {\n tagName += \":nth-child(\" + (index(element) + 1) + \")\";\n }\n names.unshift(tagName);\n element = element.parentNode;\n }\n }\n return names.join(' > ');\n }\n\n function escape(css) {\n return isString(css) ? CSS.escape(css) : '';\n }\n\n function on() {for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}\n let [targets, types, selector, listener, useCapture = false] = getArgs(args);\n\n if (listener.length > 1) {\n listener = detail(listener);\n }\n\n if (useCapture != null && useCapture.self) {\n listener = selfFilter(listener);\n }\n\n if (selector) {\n listener = delegate(selector, listener);\n }\n\n for (const type of types) {\n for (const target of targets) {\n target.addEventListener(type, listener, useCapture);\n }\n }\n\n return () => off(targets, types, listener, useCapture);\n }\n\n function off() {for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {args[_key2] = arguments[_key2];}\n let [targets, types,, listener, useCapture = false] = getArgs(args);\n for (const type of types) {\n for (const target of targets) {\n target.removeEventListener(type, listener, useCapture);\n }\n }\n }\n\n function once() {for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {args[_key3] = arguments[_key3];}\n const [element, types, selector, listener, useCapture = false, condition] = getArgs(args);\n const off = on(\n element,\n types,\n selector,\n (e) => {\n const result = !condition || condition(e);\n if (result) {\n off();\n listener(e, result);\n }\n },\n useCapture);\n\n\n return off;\n }\n\n function trigger(targets, event, detail) {\n return toEventTargets(targets).every((target) =>\n target.dispatchEvent(createEvent(event, true, true, detail)));\n\n }\n\n function createEvent(e, bubbles, cancelable, detail) {if (bubbles === void 0) {bubbles = true;}if (cancelable === void 0) {cancelable = false;}\n if (isString(e)) {\n e = new CustomEvent(e, { bubbles, cancelable, detail });\n }\n\n return e;\n }\n\n function getArgs(args) {\n // Event targets\n args[0] = toEventTargets(args[0]);\n\n // Event types\n if (isString(args[1])) {\n args[1] = args[1].split(' ');\n }\n\n // Delegate?\n if (isFunction(args[2])) {\n args.splice(2, 0, false);\n }\n\n return args;\n }\n\n function delegate(selector, listener) {\n return (e) => {\n const current =\n selector[0] === '>' ?\n findAll(selector, e.currentTarget).\n reverse().\n filter((element) => within(e.target, element))[0] :\n closest(e.target, selector);\n\n if (current) {\n e.current = current;\n listener.call(this, e);\n }\n };\n }\n\n function detail(listener) {\n return (e) => isArray(e.detail) ? listener(e, ...e.detail) : listener(e);\n }\n\n function selfFilter(listener) {\n return function (e) {\n if (e.target === e.currentTarget || e.target === e.current) {\n return listener.call(null, e);\n }\n };\n }\n\n function isEventTarget(target) {\n return target && 'addEventListener' in target;\n }\n\n function toEventTarget(target) {\n return isEventTarget(target) ? target : toNode(target);\n }\n\n function toEventTargets(target) {\n return isArray(target) ?\n target.map(toEventTarget).filter(Boolean) :\n isString(target) ?\n findAll(target) :\n isEventTarget(target) ?\n [target] :\n toNodes(target);\n }\n\n function isTouch(e) {\n return e.pointerType === 'touch' || !!e.touches;\n }\n\n function getEventPos(e) {var _e$touches, _e$changedTouches;\n const { clientX: x, clientY: y } = ((_e$touches = e.touches) == null ? void 0 : _e$touches[0]) || ((_e$changedTouches = e.changedTouches) == null ? void 0 : _e$changedTouches[0]) || e;\n\n return { x, y };\n }\n\n function ajax(url, options) {\n const env = {\n data: null,\n method: 'GET',\n headers: {},\n xhr: new XMLHttpRequest(),\n beforeSend: noop,\n responseType: '',\n ...options\n };\n return Promise.resolve().\n then(() => env.beforeSend(env)).\n then(() => send(url, env));\n }\n\n function send(url, env) {\n return new Promise((resolve, reject) => {\n const { xhr } = env;\n\n for (const prop in env) {\n if (prop in xhr) {\n try {\n xhr[prop] = env[prop];\n } catch (e) {\n // noop\n }\n }\n }\n\n xhr.open(env.method.toUpperCase(), url);\n\n for (const header in env.headers) {\n xhr.setRequestHeader(header, env.headers[header]);\n }\n\n on(xhr, 'load', () => {\n if (xhr.status === 0 || xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n resolve(xhr);\n } else {\n reject(\n assign(Error(xhr.statusText), {\n xhr,\n status: xhr.status\n }));\n\n }\n });\n\n on(xhr, 'error', () => reject(assign(Error('Network Error'), { xhr })));\n on(xhr, 'timeout', () => reject(assign(Error('Network Timeout'), { xhr })));\n\n xhr.send(env.data);\n });\n }\n\n function getImage(src, srcset, sizes) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n\n img.onerror = (e) => {\n reject(e);\n };\n img.onload = () => {\n resolve(img);\n };\n\n sizes && (img.sizes = sizes);\n srcset && (img.srcset = srcset);\n img.src = src;\n });\n }\n\n const cssNumber = {\n 'animation-iteration-count': true,\n 'column-count': true,\n 'fill-opacity': true,\n 'flex-grow': true,\n 'flex-shrink': true,\n 'font-weight': true,\n 'line-height': true,\n opacity: true,\n order: true,\n orphans: true,\n 'stroke-dasharray': true,\n 'stroke-dashoffset': true,\n widows: true,\n 'z-index': true,\n zoom: true\n };\n\n function css(element, property, value, priority) {if (priority === void 0) {priority = '';}\n const elements = toNodes(element);\n for (const element of elements) {\n if (isString(property)) {\n property = propName(property);\n\n if (isUndefined(value)) {\n return getComputedStyle(element).getPropertyValue(property);\n } else {\n element.style.setProperty(\n property,\n isNumeric(value) && !cssNumber[property] ?\n value + \"px\" :\n value || isNumber(value) ?\n value :\n '',\n priority);\n\n }\n } else if (isArray(property)) {\n const props = {};\n for (const prop of property) {\n props[prop] = css(element, prop);\n }\n return props;\n } else if (isObject(property)) {\n priority = value;\n each(property, (value, property) => css(element, property, value, priority));\n }\n }\n return elements[0];\n }\n\n // https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setproperty\n const propName = memoize((name) => vendorPropName(name));\n\n function vendorPropName(name) {\n if (startsWith(name, '--')) {\n return name;\n }\n\n name = hyphenate(name);\n\n const { style } = document.documentElement;\n\n if (name in style) {\n return name;\n }\n\n for (const prefix of ['webkit', 'moz']) {\n const prefixedName = \"-\" + prefix + \"-\" + name;\n if (prefixedName in style) {\n return prefixedName;\n }\n }\n }\n\n function addClass(element) {for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {args[_key - 1] = arguments[_key];}\n apply$1(element, args, 'add');\n }\n\n function removeClass(element) {for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {args[_key2 - 1] = arguments[_key2];}\n apply$1(element, args, 'remove');\n }\n\n function removeClasses(element, cls) {\n attr(element, 'class', (value) =>\n (value || '').replace(new RegExp(\"\\\\b\" + cls + \"\\\\b\\\\s?\", 'g'), ''));\n\n }\n\n function replaceClass(element) {\n (arguments.length <= 1 ? undefined : arguments[1]) && removeClass(element, arguments.length <= 1 ? undefined : arguments[1]);\n (arguments.length <= 2 ? undefined : arguments[2]) && addClass(element, arguments.length <= 2 ? undefined : arguments[2]);\n }\n\n function hasClass(element, cls) {\n [cls] = getClasses(cls);\n return !!cls && toNodes(element).some((node) => node.classList.contains(cls));\n }\n\n function toggleClass(element, cls, force) {\n const classes = getClasses(cls);\n\n if (!isUndefined(force)) {\n force = !!force;\n }\n\n for (const node of toNodes(element)) {\n for (const cls of classes) {\n node.classList.toggle(cls, force);\n }\n }\n }\n\n function apply$1(element, args, fn) {\n args = args.reduce((args, arg) => args.concat(getClasses(arg)), []);\n\n for (const node of toNodes(element)) {\n node.classList[fn](...args);\n }\n }\n\n function getClasses(str) {\n return String(str).split(/\\s|,/).filter(Boolean);\n }\n\n function transition$1(element, props, duration, timing) {if (duration === void 0) {duration = 400;}if (timing === void 0) {timing = 'linear';}\n duration = Math.round(duration);\n return Promise.all(\n toNodes(element).map(\n (element) =>\n new Promise((resolve, reject) => {\n for (const name in props) {\n const value = css(element, name);\n if (value === '') {\n css(element, name, value);\n }\n }\n\n const timer = setTimeout(() => trigger(element, 'transitionend'), duration);\n\n once(\n element,\n 'transitionend transitioncanceled',\n (_ref) => {let { type } = _ref;\n clearTimeout(timer);\n removeClass(element, 'uk-transition');\n css(element, {\n transitionProperty: '',\n transitionDuration: '',\n transitionTimingFunction: ''\n });\n type === 'transitioncanceled' ? reject() : resolve(element);\n },\n { self: true });\n\n\n addClass(element, 'uk-transition');\n css(element, {\n transitionProperty: Object.keys(props).map(propName).join(','),\n transitionDuration: duration + \"ms\",\n transitionTimingFunction: timing,\n ...props\n });\n })));\n\n\n }\n\n const Transition = {\n start: transition$1,\n\n async stop(element) {\n trigger(element, 'transitionend');\n await Promise.resolve();\n },\n\n async cancel(element) {\n trigger(element, 'transitioncanceled');\n await Promise.resolve();\n },\n\n inProgress(element) {\n return hasClass(element, 'uk-transition');\n }\n };\n\n const animationPrefix = 'uk-animation-';\n\n function animate$2(element, animation, duration, origin, out) {if (duration === void 0) {duration = 200;}\n return Promise.all(\n toNodes(element).map(\n (element) =>\n new Promise((resolve, reject) => {\n trigger(element, 'animationcanceled');\n const timer = setTimeout(() => trigger(element, 'animationend'), duration);\n\n once(\n element,\n 'animationend animationcanceled',\n (_ref2) => {let { type } = _ref2;\n clearTimeout(timer);\n\n type === 'animationcanceled' ? reject() : resolve(element);\n\n css(element, 'animationDuration', '');\n removeClasses(element, animationPrefix + \"\\\\S*\");\n },\n { self: true });\n\n\n css(element, 'animationDuration', duration + \"ms\");\n addClass(element, animation, animationPrefix + (out ? 'leave' : 'enter'));\n\n if (startsWith(animation, animationPrefix)) {\n origin && addClass(element, \"uk-transform-origin-\" + origin);\n out && addClass(element, animationPrefix + \"reverse\");\n }\n })));\n\n\n }\n\n const inProgressRe = new RegExp(animationPrefix + \"(enter|leave)\");\n\n const Animation = {\n in: animate$2,\n\n out(element, animation, duration, origin) {\n return animate$2(element, animation, duration, origin, true);\n },\n\n inProgress(element) {\n return inProgressRe.test(attr(element, 'class'));\n },\n\n cancel(element) {\n trigger(element, 'animationcanceled');\n }\n };\n\n const dirs$1 = {\n width: ['left', 'right'],\n height: ['top', 'bottom']\n };\n\n function dimensions$1(element) {\n const rect = isElement(element) ?\n toNode(element).getBoundingClientRect() :\n { height: height(element), width: width(element), top: 0, left: 0 };\n\n return {\n height: rect.height,\n width: rect.width,\n top: rect.top,\n left: rect.left,\n bottom: rect.top + rect.height,\n right: rect.left + rect.width\n };\n }\n\n function offset(element, coordinates) {\n const currentOffset = dimensions$1(element);\n\n if (element) {\n const { scrollY, scrollX } = toWindow(element);\n const offsetBy = { height: scrollY, width: scrollX };\n\n for (const dir in dirs$1) {\n for (const prop of dirs$1[dir]) {\n currentOffset[prop] += offsetBy[dir];\n }\n }\n }\n\n if (!coordinates) {\n return currentOffset;\n }\n\n const pos = css(element, 'position');\n\n each(css(element, ['left', 'top']), (value, prop) =>\n css(\n element,\n prop,\n coordinates[prop] -\n currentOffset[prop] +\n toFloat(pos === 'absolute' && value === 'auto' ? position(element)[prop] : value)));\n\n\n }\n\n function position(element) {\n let { top, left } = offset(element);\n\n const {\n ownerDocument: { body, documentElement },\n offsetParent\n } = toNode(element);\n let parent = offsetParent || documentElement;\n\n while (\n parent && (\n parent === body || parent === documentElement) &&\n css(parent, 'position') === 'static')\n {\n parent = parent.parentNode;\n }\n\n if (isElement(parent)) {\n const parentOffset = offset(parent);\n top -= parentOffset.top + toFloat(css(parent, 'borderTopWidth'));\n left -= parentOffset.left + toFloat(css(parent, 'borderLeftWidth'));\n }\n\n return {\n top: top - toFloat(css(element, 'marginTop')),\n left: left - toFloat(css(element, 'marginLeft'))\n };\n }\n\n function offsetPosition(element) {\n element = toNode(element);\n\n const offset = [element.offsetTop, element.offsetLeft];\n\n while (element = element.offsetParent) {\n offset[0] += element.offsetTop + toFloat(css(element, \"borderTopWidth\"));\n offset[1] += element.offsetLeft + toFloat(css(element, \"borderLeftWidth\"));\n\n if (css(element, 'position') === 'fixed') {\n const win = toWindow(element);\n offset[0] += win.scrollY;\n offset[1] += win.scrollX;\n return offset;\n }\n }\n\n return offset;\n }\n\n const height = dimension('height');\n const width = dimension('width');\n\n function dimension(prop) {\n const propName = ucfirst(prop);\n return (element, value) => {\n if (isUndefined(value)) {\n if (isWindow(element)) {\n return element[\"inner\" + propName];\n }\n\n if (isDocument(element)) {\n const doc = element.documentElement;\n return Math.max(doc[\"offset\" + propName], doc[\"scroll\" + propName]);\n }\n\n element = toNode(element);\n\n value = css(element, prop);\n value = value === 'auto' ? element[\"offset\" + propName] : toFloat(value) || 0;\n\n return value - boxModelAdjust(element, prop);\n } else {\n return css(\n element,\n prop,\n !value && value !== 0 ? '' : +value + boxModelAdjust(element, prop) + 'px');\n\n }\n };\n }\n\n function boxModelAdjust(element, prop, sizing) {if (sizing === void 0) {sizing = 'border-box';}\n return css(element, 'boxSizing') === sizing ?\n dirs$1[prop].\n map(ucfirst).\n reduce(\n (value, prop) =>\n value +\n toFloat(css(element, \"padding\" + prop)) +\n toFloat(css(element, \"border\" + prop + \"Width\")),\n 0) :\n\n 0;\n }\n\n function flipPosition(pos) {\n for (const dir in dirs$1) {\n for (const i in dirs$1[dir]) {\n if (dirs$1[dir][i] === pos) {\n return dirs$1[dir][1 - i];\n }\n }\n }\n return pos;\n }\n\n function toPx(value, property, element, offsetDim) {if (property === void 0) {property = 'width';}if (element === void 0) {element = window;}if (offsetDim === void 0) {offsetDim = false;}\n if (!isString(value)) {\n return toFloat(value);\n }\n\n return parseCalc(value).reduce((result, value) => {\n const unit = parseUnit(value);\n if (unit) {\n value = percent(\n unit === 'vh' ?\n height(toWindow(element)) :\n unit === 'vw' ?\n width(toWindow(element)) :\n offsetDim ?\n element[\"offset\" + ucfirst(property)] :\n dimensions$1(element)[property],\n value);\n\n }\n\n return result + toFloat(value);\n }, 0);\n }\n\n const calcRe = /-?\\d+(?:\\.\\d+)?(?:v[wh]|%|px)?/g;\n const parseCalc = memoize((calc) => calc.toString().replace(/\\s/g, '').match(calcRe) || []);\n const unitRe$1 = /(?:v[hw]|%)$/;\n const parseUnit = memoize((str) => (str.match(unitRe$1) || [])[0]);\n\n function percent(base, value) {\n return base * toFloat(value) / 100;\n }\n\n function ready(fn) {\n if (document.readyState !== 'loading') {\n fn();\n return;\n }\n\n once(document, 'DOMContentLoaded', fn);\n }\n\n function isTag(element, tagName) {var _element$tagName;\n return (element == null ? void 0 : (_element$tagName = element.tagName) == null ? void 0 : _element$tagName.toLowerCase()) === tagName.toLowerCase();\n }\n\n function empty(element) {\n element = $(element);\n element.innerHTML = '';\n return element;\n }\n\n function html(parent, html) {\n return isUndefined(html) ? $(parent).innerHTML : append(empty(parent), html);\n }\n\n const prepend = applyFn('prepend');\n const append = applyFn('append');\n const before = applyFn('before');\n const after = applyFn('after');\n\n function applyFn(fn) {\n return function (ref, element) {var _$;\n const nodes = toNodes(isString(element) ? fragment(element) : element);\n (_$ = $(ref)) == null ? void 0 : _$[fn](...nodes);\n return unwrapSingle(nodes);\n };\n }\n\n function remove$1(element) {\n toNodes(element).forEach((element) => element.remove());\n }\n\n function wrapAll(element, structure) {\n structure = toNode(before(element, structure));\n\n while (structure.firstChild) {\n structure = structure.firstChild;\n }\n\n append(structure, element);\n\n return structure;\n }\n\n function wrapInner(element, structure) {\n return toNodes(\n toNodes(element).map((element) =>\n element.hasChildNodes() ?\n wrapAll(toNodes(element.childNodes), structure) :\n append(element, structure)));\n\n\n }\n\n function unwrap(element) {\n toNodes(element).\n map(parent).\n filter((value, index, self) => self.indexOf(value) === index).\n forEach((parent) => parent.replaceWith(...parent.childNodes));\n }\n\n const fragmentRe = /^\\s*<(\\w+|!)[^>]*>/;\n const singleTagRe = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/;\n\n function fragment(html) {\n const matches = singleTagRe.exec(html);\n if (matches) {\n return document.createElement(matches[1]);\n }\n\n const container = document.createElement('div');\n if (fragmentRe.test(html)) {\n container.insertAdjacentHTML('beforeend', html.trim());\n } else {\n container.textContent = html;\n }\n\n return unwrapSingle(container.childNodes);\n }\n\n function unwrapSingle(nodes) {\n return nodes.length > 1 ? nodes : nodes[0];\n }\n\n function apply(node, fn) {\n if (!isElement(node)) {\n return;\n }\n\n fn(node);\n node = node.firstElementChild;\n while (node) {\n const next = node.nextElementSibling;\n apply(node, fn);\n node = next;\n }\n }\n\n function $(selector, context) {\n return isHtml(selector) ? toNode(fragment(selector)) : find(selector, context);\n }\n\n function $$(selector, context) {\n return isHtml(selector) ? toNodes(fragment(selector)) : findAll(selector, context);\n }\n\n function isHtml(str) {\n return isString(str) && startsWith(str.trim(), '<');\n }\n\n const inBrowser = typeof window !== 'undefined';\n const isRtl = inBrowser && attr(document.documentElement, 'dir') === 'rtl';\n\n const hasTouch = inBrowser && 'ontouchstart' in window;\n const hasPointerEvents = inBrowser && window.PointerEvent;\n\n const pointerDown$1 = hasPointerEvents ? 'pointerdown' : hasTouch ? 'touchstart' : 'mousedown';\n const pointerMove$1 = hasPointerEvents ? 'pointermove' : hasTouch ? 'touchmove' : 'mousemove';\n const pointerUp$1 = hasPointerEvents ? 'pointerup' : hasTouch ? 'touchend' : 'mouseup';\n const pointerEnter = hasPointerEvents ? 'pointerenter' : hasTouch ? '' : 'mouseenter';\n const pointerLeave = hasPointerEvents ? 'pointerleave' : hasTouch ? '' : 'mouseleave';\n const pointerCancel = hasPointerEvents ? 'pointercancel' : 'touchcancel';\n\n /*\n Based on:\n Copyright (c) 2016 Wilson Page wilsonpage@me.com\n https://github.com/wilsonpage/fastdom\n */\n\n const fastdom = {\n reads: [],\n writes: [],\n\n read(task) {\n this.reads.push(task);\n scheduleFlush();\n return task;\n },\n\n write(task) {\n this.writes.push(task);\n scheduleFlush();\n return task;\n },\n\n clear(task) {\n remove(this.reads, task);\n remove(this.writes, task);\n },\n\n flush\n };\n\n function flush(recursion) {\n runTasks(fastdom.reads);\n runTasks(fastdom.writes.splice(0));\n\n fastdom.scheduled = false;\n\n if (fastdom.reads.length || fastdom.writes.length) {\n scheduleFlush(recursion + 1);\n }\n }\n\n const RECURSION_LIMIT = 4;\n function scheduleFlush(recursion) {\n if (fastdom.scheduled) {\n return;\n }\n\n fastdom.scheduled = true;\n if (recursion && recursion < RECURSION_LIMIT) {\n Promise.resolve().then(() => flush(recursion));\n } else {\n requestAnimationFrame(() => flush(1));\n }\n }\n\n function runTasks(tasks) {\n let task;\n while (task = tasks.shift()) {\n try {\n task();\n } catch (e) {\n console.error(e);\n }\n }\n }\n\n function remove(array, item) {\n const index = array.indexOf(item);\n return ~index && array.splice(index, 1);\n }\n\n function MouseTracker() {}\n\n MouseTracker.prototype = {\n positions: [],\n\n init() {\n this.positions = [];\n\n let position;\n this.unbind = on(document, 'mousemove', (e) => position = getEventPos(e));\n this.interval = setInterval(() => {\n if (!position) {\n return;\n }\n\n this.positions.push(position);\n\n if (this.positions.length > 5) {\n this.positions.shift();\n }\n }, 50);\n },\n\n cancel() {var _this$unbind;\n (_this$unbind = this.unbind) == null ? void 0 : _this$unbind.call(this);\n this.interval && clearInterval(this.interval);\n },\n\n movesTo(target) {\n if (this.positions.length < 2) {\n return false;\n }\n\n const p = target.getBoundingClientRect();\n const { left, right, top, bottom } = p;\n\n const [prevPosition] = this.positions;\n const position = last(this.positions);\n const path = [prevPosition, position];\n\n if (pointInRect(position, p)) {\n return false;\n }\n\n const diagonals = [\n [\n { x: left, y: top },\n { x: right, y: bottom }],\n\n [\n { x: left, y: bottom },\n { x: right, y: top }]];\n\n\n\n return diagonals.some((diagonal) => {\n const intersection = intersect(path, diagonal);\n return intersection && pointInRect(intersection, p);\n });\n }\n };\n\n // Inspired by http://paulbourke.net/geometry/pointlineplane/\n function intersect(_ref, _ref2) {let [{ x: x1, y: y1 }, { x: x2, y: y2 }] = _ref;let [{ x: x3, y: y3 }, { x: x4, y: y4 }] = _ref2;\n const denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);\n\n // Lines are parallel\n if (denominator === 0) {\n return false;\n }\n\n const ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denominator;\n\n if (ua < 0) {\n return false;\n }\n\n // Return an object with the x and y coordinates of the intersection\n return { x: x1 + ua * (x2 - x1), y: y1 + ua * (y2 - y1) };\n }\n\n function observeIntersection(targets, cb, options, intersecting) {if (intersecting === void 0) {intersecting = true;}\n const observer = new IntersectionObserver(\n intersecting ?\n (entries, observer) => {\n if (entries.some((entry) => entry.isIntersecting)) {\n cb(entries, observer);\n }\n } :\n cb,\n options);\n\n for (const el of toNodes(targets)) {\n observer.observe(el);\n }\n\n return observer;\n }\n\n const hasResizeObserver = inBrowser && window.ResizeObserver;\n function observeResize(targets, cb, options) {if (options === void 0) {options = { box: 'border-box' };}\n if (hasResizeObserver) {\n return observe(ResizeObserver, targets, cb, options);\n }\n\n // Fallback Safari < 13.1\n initResizeListener();\n listeners.add(cb);\n\n return {\n disconnect() {\n listeners.delete(cb);\n }\n };\n }\n\n let listeners;\n function initResizeListener() {\n if (listeners) {\n return;\n }\n\n listeners = new Set();\n\n // throttle 'resize'\n let pendingResize;\n const handleResize = () => {\n if (pendingResize) {\n return;\n }\n pendingResize = true;\n requestAnimationFrame(() => pendingResize = false);\n for (const listener of listeners) {\n listener();\n }\n };\n\n on(window, 'load resize', handleResize);\n on(document, 'loadedmetadata load', handleResize, true);\n }\n\n function observeMutation(targets, cb, options) {\n return observe(MutationObserver, targets, cb, options);\n }\n\n function observe(Observer, targets, cb, options) {\n const observer = new Observer(cb);\n for (const el of toNodes(targets)) {\n observer.observe(el, options);\n }\n\n return observer;\n }\n\n const strats = {};\n\n strats.events =\n strats.created =\n strats.beforeConnect =\n strats.connected =\n strats.beforeDisconnect =\n strats.disconnected =\n strats.destroy =\n concatStrat;\n\n // args strategy\n strats.args = function (parentVal, childVal) {\n return childVal !== false && concatStrat(childVal || parentVal);\n };\n\n // update strategy\n strats.update = function (parentVal, childVal) {\n return sortBy$1(\n concatStrat(parentVal, isFunction(childVal) ? { read: childVal } : childVal),\n 'order');\n\n };\n\n // property strategy\n strats.props = function (parentVal, childVal) {\n if (isArray(childVal)) {\n const value = {};\n for (const key of childVal) {\n value[key] = String;\n }\n childVal = value;\n }\n\n return strats.methods(parentVal, childVal);\n };\n\n // extend strategy\n strats.computed = strats.methods = function (parentVal, childVal) {\n return childVal ? parentVal ? { ...parentVal, ...childVal } : childVal : parentVal;\n };\n\n // data strategy\n strats.data = function (parentVal, childVal, vm) {\n if (!vm) {\n if (!childVal) {\n return parentVal;\n }\n\n if (!parentVal) {\n return childVal;\n }\n\n return function (vm) {\n return mergeFnData(parentVal, childVal, vm);\n };\n }\n\n return mergeFnData(parentVal, childVal, vm);\n };\n\n function mergeFnData(parentVal, childVal, vm) {\n return strats.computed(\n isFunction(parentVal) ? parentVal.call(vm, vm) : parentVal,\n isFunction(childVal) ? childVal.call(vm, vm) : childVal);\n\n }\n\n // concat strategy\n function concatStrat(parentVal, childVal) {\n parentVal = parentVal && !isArray(parentVal) ? [parentVal] : parentVal;\n\n return childVal ?\n parentVal ?\n parentVal.concat(childVal) :\n isArray(childVal) ?\n childVal :\n [childVal] :\n parentVal;\n }\n\n // default strategy\n function defaultStrat(parentVal, childVal) {\n return isUndefined(childVal) ? parentVal : childVal;\n }\n\n function mergeOptions(parent, child, vm) {\n const options = {};\n\n if (isFunction(child)) {\n child = child.options;\n }\n\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n\n if (child.mixins) {\n for (const mixin of child.mixins) {\n parent = mergeOptions(parent, mixin, vm);\n }\n }\n\n for (const key in parent) {\n mergeKey(key);\n }\n\n for (const key in child) {\n if (!hasOwn(parent, key)) {\n mergeKey(key);\n }\n }\n\n function mergeKey(key) {\n options[key] = (strats[key] || defaultStrat)(parent[key], child[key], vm);\n }\n\n return options;\n }\n\n function parseOptions(options, args) {if (args === void 0) {args = [];}\n try {\n return options ?\n startsWith(options, '{') ?\n JSON.parse(options) :\n args.length && !includes(options, ':') ?\n { [args[0]]: options } :\n options.split(';').reduce((options, option) => {\n const [key, value] = option.split(/:(.*)/);\n if (key && !isUndefined(value)) {\n options[key.trim()] = value.trim();\n }\n return options;\n }, {}) :\n {};\n } catch (e) {\n return {};\n }\n }\n\n function play(el) {\n if (isIFrame(el)) {\n call(el, { func: 'playVideo', method: 'play' });\n }\n\n if (isHTML5(el)) {\n try {\n el.play().catch(noop);\n } catch (e) {\n // noop\n }\n }\n }\n\n function pause(el) {\n if (isIFrame(el)) {\n call(el, { func: 'pauseVideo', method: 'pause' });\n }\n\n if (isHTML5(el)) {\n el.pause();\n }\n }\n\n function mute(el) {\n if (isIFrame(el)) {\n call(el, { func: 'mute', method: 'setVolume', value: 0 });\n }\n\n if (isHTML5(el)) {\n el.muted = true;\n }\n }\n\n function isVideo(el) {\n return isHTML5(el) || isIFrame(el);\n }\n\n function isHTML5(el) {\n return isTag(el, 'video');\n }\n\n function isIFrame(el) {\n return isTag(el, 'iframe') && (isYoutube(el) || isVimeo(el));\n }\n\n function isYoutube(el) {\n return !!el.src.match(\n /\\/\\/.*?youtube(-nocookie)?\\.[a-z]+\\/(watch\\?v=[^&\\s]+|embed)|youtu\\.be\\/.*/);\n\n }\n\n function isVimeo(el) {\n return !!el.src.match(/vimeo\\.com\\/video\\/.*/);\n }\n\n async function call(el, cmd) {\n await enableApi(el);\n post(el, cmd);\n }\n\n function post(el, cmd) {\n try {\n el.contentWindow.postMessage(JSON.stringify({ event: 'command', ...cmd }), '*');\n } catch (e) {\n // noop\n }\n }\n\n const stateKey = '_ukPlayer';\n let counter = 0;\n function enableApi(el) {\n if (el[stateKey]) {\n return el[stateKey];\n }\n\n const youtube = isYoutube(el);\n const vimeo = isVimeo(el);\n\n const id = ++counter;\n let poller;\n\n return el[stateKey] = new Promise((resolve) => {\n youtube &&\n once(el, 'load', () => {\n const listener = () => post(el, { event: 'listening', id });\n poller = setInterval(listener, 100);\n listener();\n });\n\n once(window, 'message', resolve, false, (_ref) => {let { data } = _ref;\n try {\n data = JSON.parse(data);\n return (\n data && (\n youtube && data.id === id && data.event === 'onReady' ||\n vimeo && Number(data.player_id) === id));\n\n } catch (e) {\n // noop\n }\n });\n\n el.src = \"\" + el.src + (includes(el.src, '?') ? '&' : '?') + (\n youtube ? 'enablejsapi=1' : \"api=1&player_id=\" + id);\n\n }).then(() => clearInterval(poller));\n }\n\n function isInView(element, offsetTop, offsetLeft) {if (offsetTop === void 0) {offsetTop = 0;}if (offsetLeft === void 0) {offsetLeft = 0;}\n if (!isVisible(element)) {\n return false;\n }\n\n return intersectRect(\n ...scrollParents(element).\n map((parent) => {\n const { top, left, bottom, right } = offsetViewport(parent);\n\n return {\n top: top - offsetTop,\n left: left - offsetLeft,\n bottom: bottom + offsetTop,\n right: right + offsetLeft\n };\n }).\n concat(offset(element)));\n\n }\n\n function scrollIntoView(element, _temp) {let { offset: offsetBy = 0 } = _temp === void 0 ? {} : _temp;\n const parents = isVisible(element) ? scrollParents(element) : [];\n return parents.reduce(\n (fn, scrollElement, i) => {\n const { scrollTop, scrollHeight, offsetHeight } = scrollElement;\n const viewport = offsetViewport(scrollElement);\n const maxScroll = scrollHeight - viewport.height;\n const { height: elHeight, top: elTop } = parents[i - 1] ?\n offsetViewport(parents[i - 1]) :\n offset(element);\n\n let top = Math.ceil(elTop - viewport.top - offsetBy + scrollTop);\n\n if (offsetBy > 0 && offsetHeight < elHeight + offsetBy) {\n top += offsetBy;\n } else {\n offsetBy = 0;\n }\n\n if (top > maxScroll) {\n offsetBy -= top - maxScroll;\n top = maxScroll;\n } else if (top < 0) {\n offsetBy -= top;\n top = 0;\n }\n\n return () => scrollTo(scrollElement, top - scrollTop).then(fn);\n },\n () => Promise.resolve())();\n\n\n function scrollTo(element, top) {\n return new Promise((resolve) => {\n const scroll = element.scrollTop;\n const duration = getDuration(Math.abs(top));\n const start = Date.now();\n\n (function step() {\n const percent = ease(clamp((Date.now() - start) / duration));\n\n element.scrollTop = scroll + top * percent;\n\n // scroll more if we have not reached our destination\n if (percent === 1) {\n resolve();\n } else {\n requestAnimationFrame(step);\n }\n })();\n });\n }\n\n function getDuration(dist) {\n return 40 * Math.pow(dist, 0.375);\n }\n\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n }\n\n function scrolledOver(element, startOffset, endOffset) {if (startOffset === void 0) {startOffset = 0;}if (endOffset === void 0) {endOffset = 0;}\n if (!isVisible(element)) {\n return 0;\n }\n\n const [scrollElement] = scrollParents(element, /auto|scroll/, true);\n const { scrollHeight, scrollTop } = scrollElement;\n const { height: viewportHeight } = offsetViewport(scrollElement);\n const maxScroll = scrollHeight - viewportHeight;\n const elementOffsetTop = offsetPosition(element)[0] - offsetPosition(scrollElement)[0];\n\n const start = Math.max(0, elementOffsetTop - viewportHeight + startOffset);\n const end = Math.min(maxScroll, elementOffsetTop + element.offsetHeight - endOffset);\n\n return clamp((scrollTop - start) / (end - start));\n }\n\n function scrollParents(element, overflowRe, scrollable) {if (overflowRe === void 0) {overflowRe = /auto|scroll|hidden|clip/;}if (scrollable === void 0) {scrollable = false;}\n const scrollEl = scrollingElement(element);\n\n let ancestors = parents(element).reverse();\n ancestors = ancestors.slice(ancestors.indexOf(scrollEl) + 1);\n\n const fixedIndex = findIndex(ancestors, (el) => css(el, 'position') === 'fixed');\n if (~fixedIndex) {\n ancestors = ancestors.slice(fixedIndex);\n }\n\n return [scrollEl].\n concat(\n ancestors.filter(\n (parent) =>\n overflowRe.test(css(parent, 'overflow')) && (\n !scrollable || parent.scrollHeight > offsetViewport(parent).height))).\n\n\n reverse();\n }\n\n function offsetViewport(scrollElement) {\n const window = toWindow(scrollElement);\n const {\n document: { documentElement }\n } = window;\n let viewportElement =\n scrollElement === scrollingElement(scrollElement) ? window : scrollElement;\n\n const { visualViewport } = window;\n if (isWindow(viewportElement) && visualViewport) {\n let { height, width, scale, pageTop: top, pageLeft: left } = visualViewport;\n height = Math.round(height * scale);\n width = Math.round(width * scale);\n return { height, width, top, left, bottom: top + height, right: left + width };\n }\n\n let rect = offset(viewportElement);\n for (let [prop, dir, start, end] of [\n ['width', 'x', 'left', 'right'],\n ['height', 'y', 'top', 'bottom']])\n {\n if (isWindow(viewportElement)) {\n // iOS 12 returns as scrollingElement\n viewportElement = documentElement;\n } else {\n rect[start] += toFloat(css(viewportElement, \"border-\" + start + \"-width\"));\n }\n rect[prop] = rect[dir] = viewportElement[\"client\" + ucfirst(prop)];\n rect[end] = rect[prop] + rect[start];\n }\n return rect;\n }\n\n function scrollingElement(element) {\n return toWindow(element).document.scrollingElement;\n }\n\n const dirs = [\n ['width', 'x', 'left', 'right'],\n ['height', 'y', 'top', 'bottom']];\n\n\n function positionAt(element, target, options) {\n options = {\n attach: {\n element: ['left', 'top'],\n target: ['left', 'top'],\n ...options.attach\n },\n offset: [0, 0],\n placement: [],\n ...options\n };\n\n if (!isArray(target)) {\n target = [target, target];\n }\n\n offset(element, getPosition(element, target, options));\n }\n\n function getPosition(element, target, options) {\n const position = attachTo(element, target, options);\n const { boundary, viewportOffset = 0, placement } = options;\n\n let offsetPosition = position;\n for (const [i, [prop,, start, end]] of Object.entries(dirs)) {\n const viewport = getViewport$2(element, target[i], viewportOffset, boundary, i);\n\n if (isWithin(position, viewport, i)) {\n continue;\n }\n\n let offsetBy = 0;\n\n // Flip\n if (placement[i] === 'flip') {\n const attach = options.attach.target[i];\n if (\n attach === end && position[end] <= viewport[end] ||\n attach === start && position[start] >= viewport[start])\n {\n continue;\n }\n\n offsetBy = flip(element, target, options, i)[start] - position[start];\n\n const scrollArea = getScrollArea(element, target[i], viewportOffset, i);\n\n if (!isWithin(applyOffset(position, offsetBy, i), scrollArea, i)) {\n if (isWithin(position, scrollArea, i)) {\n continue;\n }\n\n if (options.recursion) {\n return false;\n }\n\n const newPos = flipAxis(element, target, options);\n\n if (newPos && isWithin(newPos, scrollArea, 1 - i)) {\n return newPos;\n }\n\n continue;\n }\n\n // Shift\n } else if (placement[i] === 'shift') {\n const targetDim = offset(target[i]);\n const { offset: elOffset } = options;\n offsetBy =\n clamp(\n clamp(position[start], viewport[start], viewport[end] - position[prop]),\n targetDim[start] - position[prop] + elOffset[i],\n targetDim[end] - elOffset[i]) -\n position[start];\n }\n\n offsetPosition = applyOffset(offsetPosition, offsetBy, i);\n }\n\n return offsetPosition;\n }\n\n function attachTo(element, target, options) {\n let { attach, offset: offsetBy } = {\n attach: {\n element: ['left', 'top'],\n target: ['left', 'top'],\n ...options.attach\n },\n offset: [0, 0],\n ...options\n };\n\n let elOffset = offset(element);\n\n for (const [i, [prop,, start, end]] of Object.entries(dirs)) {\n const targetOffset =\n attach.target[i] === attach.element[i] ? offsetViewport(target[i]) : offset(target[i]);\n\n elOffset = applyOffset(\n elOffset,\n targetOffset[start] -\n elOffset[start] +\n moveBy(attach.target[i], end, targetOffset[prop]) -\n moveBy(attach.element[i], end, elOffset[prop]) +\n +offsetBy[i],\n i);\n\n }\n return elOffset;\n }\n\n function applyOffset(position, offset, i) {\n const [, dir, start, end] = dirs[i];\n const newPos = { ...position };\n newPos[start] = position[dir] = position[start] + offset;\n newPos[end] += offset;\n return newPos;\n }\n\n function moveBy(attach, end, dim) {\n return attach === 'center' ? dim / 2 : attach === end ? dim : 0;\n }\n\n function getViewport$2(element, target, viewportOffset, boundary, i) {\n let viewport = getIntersectionArea(...commonScrollParents(element, target).map(offsetViewport));\n\n if (viewportOffset) {\n viewport[dirs[i][2]] += viewportOffset;\n viewport[dirs[i][3]] -= viewportOffset;\n }\n\n if (boundary) {\n viewport = getIntersectionArea(\n viewport,\n offset(isArray(boundary) ? boundary[i] : boundary));\n\n }\n\n return viewport;\n }\n\n function getScrollArea(element, target, viewportOffset, i) {\n const [prop,, start, end] = dirs[i];\n const [scrollElement] = commonScrollParents(element, target);\n const viewport = offsetViewport(scrollElement);\n viewport[start] -= scrollElement[\"scroll\" + ucfirst(start)] - viewportOffset;\n viewport[end] = viewport[start] + scrollElement[\"scroll\" + ucfirst(prop)] - viewportOffset;\n return viewport;\n }\n\n function commonScrollParents(element, target) {\n return scrollParents(target).filter((parent) => within(element, parent));\n }\n\n function getIntersectionArea() {\n let area = {};for (var _len = arguments.length, rects = new Array(_len), _key = 0; _key < _len; _key++) {rects[_key] = arguments[_key];}\n for (const rect of rects) {\n for (const [,, start, end] of dirs) {\n area[start] = Math.max(area[start] || 0, rect[start]);\n area[end] = Math.min(...[area[end], rect[end]].filter(Boolean));\n }\n }\n return area;\n }\n\n function isWithin(positionA, positionB, i) {\n const [,, start, end] = dirs[i];\n return positionA[start] >= positionB[start] && positionA[end] <= positionB[end];\n }\n\n function flip(element, target, _ref, i) {let { offset, attach } = _ref;\n return attachTo(element, target, {\n attach: {\n element: flipAttach(attach.element, i),\n target: flipAttach(attach.target, i)\n },\n offset: flipOffset(offset, i)\n });\n }\n\n function flipAxis(element, target, options) {\n return getPosition(element, target, {\n ...options,\n attach: {\n element: options.attach.element.map(flipAttachAxis).reverse(),\n target: options.attach.target.map(flipAttachAxis).reverse()\n },\n offset: options.offset.reverse(),\n placement: options.placement.reverse(),\n recursion: true\n });\n }\n\n function flipAttach(attach, i) {\n const newAttach = [...attach];\n const index = dirs[i].indexOf(attach[i]);\n if (~index) {\n newAttach[i] = dirs[i][1 - index % 2 + 2];\n }\n return newAttach;\n }\n\n function flipAttachAxis(prop) {\n for (let i = 0; i < dirs.length; i++) {\n const index = dirs[i].indexOf(prop);\n if (~index) {\n return dirs[1 - i][index % 2 + 2];\n }\n }\n }\n\n function flipOffset(offset, i) {\n offset = [...offset];\n offset[i] *= -1;\n return offset;\n }\n\n var util = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ajax: ajax,\n getImage: getImage,\n Transition: Transition,\n Animation: Animation,\n attr: attr,\n hasAttr: hasAttr,\n removeAttr: removeAttr,\n data: data,\n addClass: addClass,\n removeClass: removeClass,\n removeClasses: removeClasses,\n replaceClass: replaceClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n dimensions: dimensions$1,\n offset: offset,\n position: position,\n offsetPosition: offsetPosition,\n height: height,\n width: width,\n boxModelAdjust: boxModelAdjust,\n flipPosition: flipPosition,\n toPx: toPx,\n ready: ready,\n isTag: isTag,\n empty: empty,\n html: html,\n prepend: prepend,\n append: append,\n before: before,\n after: after,\n remove: remove$1,\n wrapAll: wrapAll,\n wrapInner: wrapInner,\n unwrap: unwrap,\n fragment: fragment,\n apply: apply,\n $: $,\n $$: $$,\n inBrowser: inBrowser,\n isRtl: isRtl,\n hasTouch: hasTouch,\n pointerDown: pointerDown$1,\n pointerMove: pointerMove$1,\n pointerUp: pointerUp$1,\n pointerEnter: pointerEnter,\n pointerLeave: pointerLeave,\n pointerCancel: pointerCancel,\n on: on,\n off: off,\n once: once,\n trigger: trigger,\n createEvent: createEvent,\n toEventTargets: toEventTargets,\n isTouch: isTouch,\n getEventPos: getEventPos,\n fastdom: fastdom,\n isVoidElement: isVoidElement,\n isVisible: isVisible,\n selInput: selInput,\n isInput: isInput,\n selFocusable: selFocusable,\n isFocusable: isFocusable,\n parent: parent,\n filter: filter$1,\n matches: matches,\n closest: closest,\n within: within,\n parents: parents,\n children: children,\n index: index,\n hasOwn: hasOwn,\n hyphenate: hyphenate,\n camelize: camelize,\n ucfirst: ucfirst,\n startsWith: startsWith,\n endsWith: endsWith,\n includes: includes,\n findIndex: findIndex,\n isArray: isArray,\n toArray: toArray,\n assign: assign,\n isFunction: isFunction,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isWindow: isWindow,\n isDocument: isDocument,\n isNode: isNode,\n isElement: isElement,\n isBoolean: isBoolean,\n isString: isString,\n isNumber: isNumber,\n isNumeric: isNumeric,\n isEmpty: isEmpty,\n isUndefined: isUndefined,\n toBoolean: toBoolean,\n toNumber: toNumber,\n toFloat: toFloat,\n toNode: toNode,\n toNodes: toNodes,\n toWindow: toWindow,\n isEqual: isEqual,\n swap: swap,\n last: last,\n each: each,\n sortBy: sortBy$1,\n uniqueBy: uniqueBy,\n clamp: clamp,\n noop: noop,\n intersectRect: intersectRect,\n pointInRect: pointInRect,\n Dimensions: Dimensions,\n getIndex: getIndex,\n memoize: memoize,\n Deferred: Deferred,\n MouseTracker: MouseTracker,\n observeIntersection: observeIntersection,\n observeResize: observeResize,\n observeMutation: observeMutation,\n mergeOptions: mergeOptions,\n parseOptions: parseOptions,\n play: play,\n pause: pause,\n mute: mute,\n isVideo: isVideo,\n positionAt: positionAt,\n query: query,\n queryAll: queryAll,\n find: find,\n findAll: findAll,\n escape: escape,\n css: css,\n propName: propName,\n isInView: isInView,\n scrollIntoView: scrollIntoView,\n scrolledOver: scrolledOver,\n scrollParents: scrollParents,\n offsetViewport: offsetViewport\n });\n\n function globalAPI (UIkit) {\n const DATA = UIkit.data;\n\n UIkit.use = function (plugin) {\n if (plugin.installed) {\n return;\n }\n\n plugin.call(null, this);\n plugin.installed = true;\n\n return this;\n };\n\n UIkit.mixin = function (mixin, component) {\n component = (isString(component) ? UIkit.component(component) : component) || this;\n component.options = mergeOptions(component.options, mixin);\n };\n\n UIkit.extend = function (options) {\n options = options || {};\n\n const Super = this;\n const Sub = function UIkitComponent(options) {\n this._init(options);\n };\n\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.options = mergeOptions(Super.options, options);\n\n Sub.super = Super;\n Sub.extend = Super.extend;\n\n return Sub;\n };\n\n UIkit.update = function (element, e) {\n element = element ? toNode(element) : document.body;\n\n for (const parentEl of parents(element).reverse()) {\n update(parentEl[DATA], e);\n }\n\n apply(element, (element) => update(element[DATA], e));\n };\n\n let container;\n Object.defineProperty(UIkit, 'container', {\n get() {\n return container || document.body;\n },\n\n set(element) {\n container = $(element);\n }\n });\n\n function update(data, e) {\n if (!data) {\n return;\n }\n\n for (const name in data) {\n if (data[name]._connected) {\n data[name]._callUpdate(e);\n }\n }\n }\n }\n\n function hooksAPI (UIkit) {\n UIkit.prototype._callHook = function (hook) {var _this$$options$hook;\n (_this$$options$hook = this.$options[hook]) == null ? void 0 : _this$$options$hook.forEach((handler) => handler.call(this));\n };\n\n UIkit.prototype._callConnected = function () {\n if (this._connected) {\n return;\n }\n\n this._data = {};\n this._computed = {};\n\n this._initProps();\n\n this._callHook('beforeConnect');\n this._connected = true;\n\n this._initEvents();\n this._initObservers();\n\n this._callHook('connected');\n this._callUpdate();\n };\n\n UIkit.prototype._callDisconnected = function () {\n if (!this._connected) {\n return;\n }\n\n this._callHook('beforeDisconnect');\n this._disconnectObservers();\n this._unbindEvents();\n this._callHook('disconnected');\n\n this._connected = false;\n delete this._watch;\n };\n\n UIkit.prototype._callUpdate = function (e) {if (e === void 0) {e = 'update';}\n if (!this._connected) {\n return;\n }\n\n if (e === 'update' || e === 'resize') {\n this._callWatches();\n }\n\n if (!this.$options.update) {\n return;\n }\n\n if (!this._updates) {\n this._updates = new Set();\n fastdom.read(() => {\n if (this._connected) {\n runUpdates.call(this, this._updates);\n }\n delete this._updates;\n });\n }\n\n this._updates.add(e.type || e);\n };\n\n UIkit.prototype._callWatches = function () {\n if (this._watch) {\n return;\n }\n\n const initial = !hasOwn(this, '_watch');\n\n this._watch = fastdom.read(() => {\n if (this._connected) {\n runWatches.call(this, initial);\n }\n this._watch = null;\n });\n };\n\n function runUpdates(types) {\n for (const { read, write, events = [] } of this.$options.update) {\n if (!types.has('update') && !events.some((type) => types.has(type))) {\n continue;\n }\n\n let result;\n if (read) {\n result = read.call(this, this._data, types);\n\n if (result && isPlainObject(result)) {\n assign(this._data, result);\n }\n }\n\n if (write && result !== false) {\n fastdom.write(() => {\n if (this._connected) {\n write.call(this, this._data, types);\n }\n });\n }\n }\n }\n\n function runWatches(initial) {\n const {\n $options: { computed }\n } = this;\n const values = { ...this._computed };\n this._computed = {};\n\n for (const key in computed) {\n const { watch, immediate } = computed[key];\n if (\n watch && (\n initial && immediate ||\n hasOwn(values, key) && !isEqual(values[key], this[key])))\n {\n watch.call(this, this[key], values[key]);\n }\n }\n }\n }\n\n function stateAPI (UIkit) {\n let uid = 0;\n\n UIkit.prototype._init = function (options) {\n options = options || {};\n options.data = normalizeData(options, this.constructor.options);\n\n this.$options = mergeOptions(this.constructor.options, options, this);\n this.$el = null;\n this.$props = {};\n\n this._uid = uid++;\n this._initData();\n this._initMethods();\n this._initComputeds();\n this._callHook('created');\n\n if (options.el) {\n this.$mount(options.el);\n }\n };\n\n UIkit.prototype._initData = function () {\n const { data = {} } = this.$options;\n\n for (const key in data) {\n this.$props[key] = this[key] = data[key];\n }\n };\n\n UIkit.prototype._initMethods = function () {\n const { methods } = this.$options;\n\n if (methods) {\n for (const key in methods) {\n this[key] = methods[key].bind(this);\n }\n }\n };\n\n UIkit.prototype._initComputeds = function () {\n const { computed } = this.$options;\n\n this._computed = {};\n\n if (computed) {\n for (const key in computed) {\n registerComputed(this, key, computed[key]);\n }\n }\n };\n\n UIkit.prototype._initProps = function (props) {\n let key;\n\n props = props || getProps$1(this.$options);\n\n for (key in props) {\n if (!isUndefined(props[key])) {\n this.$props[key] = props[key];\n }\n }\n\n const exclude = [this.$options.computed, this.$options.methods];\n for (key in this.$props) {\n if (key in props && notIn(exclude, key)) {\n this[key] = this.$props[key];\n }\n }\n };\n\n UIkit.prototype._initEvents = function () {\n this._events = [];\n for (const event of this.$options.events || []) {\n if (hasOwn(event, 'handler')) {\n registerEvent(this, event);\n } else {\n for (const key in event) {\n registerEvent(this, event[key], key);\n }\n }\n }\n };\n\n UIkit.prototype._unbindEvents = function () {\n this._events.forEach((unbind) => unbind());\n delete this._events;\n };\n\n UIkit.prototype._initObservers = function () {\n this._observers = [initPropsObserver(this), initChildListObserver(this)];\n };\n\n UIkit.prototype.registerObserver = function () {\n this._observers.push(...arguments);\n };\n\n UIkit.prototype._disconnectObservers = function () {\n this._observers.forEach((observer) => observer == null ? void 0 : observer.disconnect());\n };\n }\n\n function getProps$1(opts) {\n const data$1 = {};\n const { args = [], props = {}, el, id } = opts;\n\n if (!props) {\n return data$1;\n }\n\n for (const key in props) {\n const prop = hyphenate(key);\n let value = data(el, prop);\n\n if (isUndefined(value)) {\n continue;\n }\n\n value = props[key] === Boolean && value === '' ? true : coerce$1(props[key], value);\n\n if (prop === 'target' && startsWith(value, '_')) {\n continue;\n }\n\n data$1[key] = value;\n }\n\n const options = parseOptions(data(el, id), args);\n\n for (const key in options) {\n const prop = camelize(key);\n if (!isUndefined(props[prop])) {\n data$1[prop] = coerce$1(props[prop], options[key]);\n }\n }\n\n return data$1;\n }\n\n function registerComputed(component, key, cb) {\n Object.defineProperty(component, key, {\n enumerable: true,\n\n get() {\n const { _computed, $props, $el } = component;\n\n if (!hasOwn(_computed, key)) {\n _computed[key] = (cb.get || cb).call(component, $props, $el);\n }\n\n return _computed[key];\n },\n\n set(value) {\n const { _computed } = component;\n\n _computed[key] = cb.set ? cb.set.call(component, value) : value;\n\n if (isUndefined(_computed[key])) {\n delete _computed[key];\n }\n }\n });\n }\n\n function registerEvent(component, event, key) {\n if (!isPlainObject(event)) {\n event = { name: key, handler: event };\n }\n\n let { name, el, handler, capture, passive, delegate, filter, self } = event;\n el = isFunction(el) ? el.call(component) : el || component.$el;\n\n if (isArray(el)) {\n el.forEach((el) => registerEvent(component, { ...event, el }, key));\n return;\n }\n\n if (!el || filter && !filter.call(component)) {\n return;\n }\n\n component._events.push(\n on(\n el,\n name,\n delegate ? isString(delegate) ? delegate : delegate.call(component) : null,\n isString(handler) ? component[handler] : handler.bind(component),\n { passive, capture, self }));\n\n\n }\n\n function notIn(options, key) {\n return options.every((arr) => !arr || !hasOwn(arr, key));\n }\n\n function coerce$1(type, value) {\n if (type === Boolean) {\n return toBoolean(value);\n } else if (type === Number) {\n return toNumber(value);\n } else if (type === 'list') {\n return toList(value);\n }\n\n return type ? type(value) : value;\n }\n\n function toList(value) {\n return isArray(value) ?\n value :\n isString(value) ?\n value.\n split(/,(?![^(]*\\))/).\n map((value) => isNumeric(value) ? toNumber(value) : toBoolean(value.trim())) :\n [value];\n }\n\n function normalizeData(_ref, _ref2) {let { data = {} } = _ref;let { args = [], props = {} } = _ref2;\n if (isArray(data)) {\n data = data.slice(0, args.length).reduce((data, value, index) => {\n if (isPlainObject(value)) {\n assign(data, value);\n } else {\n data[args[index]] = value;\n }\n return data;\n }, {});\n }\n\n for (const key in data) {\n if (isUndefined(data[key])) {\n delete data[key];\n } else if (props[key]) {\n data[key] = coerce$1(props[key], data[key]);\n }\n }\n\n return data;\n }\n\n function initChildListObserver(component) {\n let { el, computed } = component.$options;\n\n if (!computed) {\n return;\n }\n\n for (const key in computed) {\n if (computed[key].document) {\n el = el.ownerDocument;\n break;\n }\n }\n\n const observer = new MutationObserver(() => component._callWatches());\n observer.observe(el, {\n childList: true,\n subtree: true\n });\n\n return observer;\n }\n\n function initPropsObserver(component) {\n const { $options, $props } = component;\n const { id, attrs, props, el } = $options;\n\n if (!props || attrs === false) {\n return;\n }\n\n const attributes = isArray(attrs) ? attrs : Object.keys(props);\n const filter = attributes.map((key) => hyphenate(key)).concat(id);\n\n const observer = new MutationObserver((records) => {\n const data = getProps$1($options);\n if (\n records.some((_ref3) => {let { attributeName } = _ref3;\n const prop = attributeName.replace('data-', '');\n return (prop === id ? attributes : [camelize(prop), camelize(attributeName)]).some(\n (prop) => !isUndefined(data[prop]) && data[prop] !== $props[prop]);\n\n }))\n {\n component.$reset();\n }\n });\n\n observer.observe(el, {\n attributes: true,\n attributeFilter: filter.concat(filter.map((key) => \"data-\" + key))\n });\n\n return observer;\n }\n\n function instanceAPI (UIkit) {\n const DATA = UIkit.data;\n\n UIkit.prototype.$create = function (component, element, data) {\n return UIkit[component](element, data);\n };\n\n UIkit.prototype.$mount = function (el) {\n const { name } = this.$options;\n\n if (!el[DATA]) {\n el[DATA] = {};\n }\n\n if (el[DATA][name]) {\n return;\n }\n\n el[DATA][name] = this;\n\n this.$el = this.$options.el = this.$options.el || el;\n\n if (within(el, document)) {\n this._callConnected();\n }\n };\n\n UIkit.prototype.$reset = function () {\n this._callDisconnected();\n this._callConnected();\n };\n\n UIkit.prototype.$destroy = function (removeEl) {if (removeEl === void 0) {removeEl = false;}\n const { el, name } = this.$options;\n\n if (el) {\n this._callDisconnected();\n }\n\n this._callHook('destroy');\n\n if (!(el != null && el[DATA])) {\n return;\n }\n\n delete el[DATA][name];\n\n if (!isEmpty(el[DATA])) {\n delete el[DATA];\n }\n\n if (removeEl) {\n remove$1(this.$el);\n }\n };\n\n UIkit.prototype.$emit = function (e) {\n this._callUpdate(e);\n };\n\n UIkit.prototype.$update = function (element, e) {if (element === void 0) {element = this.$el;}\n UIkit.update(element, e);\n };\n\n UIkit.prototype.$getComponent = UIkit.getComponent;\n\n Object.defineProperty(\n UIkit.prototype,\n '$container',\n Object.getOwnPropertyDescriptor(UIkit, 'container'));\n\n }\n\n const components$3 = {};\n function componentAPI (UIkit) {\n const { data: DATA, prefix: PREFIX } = UIkit;\n\n UIkit.component = function (name, options) {\n name = hyphenate(name);\n const id = PREFIX + name;\n\n if (!options) {\n if (isPlainObject(components$3[id])) {\n components$3[id] = components$3[\"data-\" + id] = UIkit.extend(components$3[id]);\n }\n\n return components$3[id];\n }\n\n name = camelize(name);\n\n UIkit[name] = function (element, data) {\n const component = UIkit.component(name);\n\n return component.options.functional ?\n new component({ data: isPlainObject(element) ? element : [...arguments] }) :\n element ?\n $$(element).map(init)[0] :\n init();\n\n function init(element) {\n const instance = UIkit.getComponent(element, name);\n\n if (instance) {\n if (data) {\n instance.$destroy();\n } else {\n return instance;\n }\n }\n\n return new component({ el: element, data });\n }\n };\n\n const opt = isPlainObject(options) ? { ...options } : options.options;\n\n opt.id = id;\n opt.name = name;\n\n opt.install == null ? void 0 : opt.install(UIkit, opt, name);\n\n if (UIkit._initialized && !opt.functional) {\n requestAnimationFrame(() => UIkit[name](\"[\" + id + \"],[data-\" + id + \"]\"));\n }\n\n return components$3[id] = components$3[\"data-\" + id] = isPlainObject(options) ? opt : options;\n };\n\n UIkit.getComponents = (element) => (element == null ? void 0 : element[DATA]) || {};\n UIkit.getComponent = (element, name) => UIkit.getComponents(element)[name];\n\n UIkit.connect = (node) => {\n if (node[DATA]) {\n for (const name in node[DATA]) {\n node[DATA][name]._callConnected();\n }\n }\n\n for (const attribute of node.getAttributeNames()) {\n const name = getComponentName(attribute);\n name && UIkit[name](node);\n }\n };\n\n UIkit.disconnect = (node) => {\n for (const name in node[DATA]) {\n node[DATA][name]._callDisconnected();\n }\n };\n }\n\n function getComponentName(attribute) {\n const cmp = components$3[attribute];\n return cmp && (isPlainObject(cmp) ? cmp : cmp.options).name;\n }\n\n const UIkit = function (options) {\n this._init(options);\n };\n\n UIkit.util = util;\n UIkit.data = '__uikit__';\n UIkit.prefix = 'uk-';\n UIkit.options = {};\n UIkit.version = '3.15.11';\n\n globalAPI(UIkit);\n hooksAPI(UIkit);\n stateAPI(UIkit);\n componentAPI(UIkit);\n instanceAPI(UIkit);\n\n function boot (UIkit) {\n const { connect, disconnect } = UIkit;\n\n if (!inBrowser || !window.MutationObserver) {\n return;\n }\n\n requestAnimationFrame(function () {\n if (document.body) {\n apply(document.body, connect);\n }\n\n new MutationObserver((records) => records.forEach(applyChildListMutation)).observe(\n document,\n {\n childList: true,\n subtree: true\n });\n\n\n new MutationObserver((records) => records.forEach(applyAttributeMutation)).observe(\n document,\n {\n attributes: true,\n subtree: true\n });\n\n\n UIkit._initialized = true;\n });\n\n function applyChildListMutation(_ref) {let { addedNodes, removedNodes } = _ref;\n for (const node of addedNodes) {\n apply(node, connect);\n }\n\n for (const node of removedNodes) {\n apply(node, disconnect);\n }\n }\n\n function applyAttributeMutation(_ref2) {let { target, attributeName } = _ref2;\n const name = getComponentName(attributeName);\n\n if (name) {var _UIkit$getComponent;\n if (hasAttr(target, attributeName)) {\n UIkit[name](target);\n return;\n }\n\n (_UIkit$getComponent = UIkit.getComponent(target, name)) == null ? void 0 : _UIkit$getComponent.$destroy();\n }\n }\n }\n\n var Class = {\n connected() {\n addClass(this.$el, this.$options.id);\n }\n };\n\n var Lazyload = {\n data: {\n preload: 5\n },\n\n methods: {\n lazyload(observeTargets, targets) {if (observeTargets === void 0) {observeTargets = this.$el;}if (targets === void 0) {targets = this.$el;}\n this.registerObserver(\n observeIntersection(observeTargets, (entries, observer) => {\n for (const el of toNodes(isFunction(targets) ? targets() : targets)) {\n $$('[loading=\"lazy\"]', el).\n slice(0, this.preload - 1).\n forEach((el) => removeAttr(el, 'loading'));\n }\n\n for (const el of entries.\n filter((_ref) => {let { isIntersecting } = _ref;return isIntersecting;}).\n map((_ref2) => {let { target } = _ref2;return target;})) {\n observer.unobserve(el);\n }\n }));\n\n }\n }\n };\n\n var Togglable = {\n props: {\n cls: Boolean,\n animation: 'list',\n duration: Number,\n velocity: Number,\n origin: String,\n transition: String\n },\n\n data: {\n cls: false,\n animation: [false],\n duration: 200,\n velocity: 0.2,\n origin: false,\n transition: 'ease',\n clsEnter: 'uk-togglabe-enter',\n clsLeave: 'uk-togglabe-leave'\n },\n\n computed: {\n hasAnimation(_ref) {let { animation } = _ref;\n return !!animation[0];\n },\n\n hasTransition(_ref2) {let { animation } = _ref2;\n return ['slide', 'reveal'].some((transition) => startsWith(animation[0], transition));\n }\n },\n\n methods: {\n toggleElement(targets, toggle, animate) {\n return new Promise((resolve) =>\n Promise.all(\n toNodes(targets).map((el) => {\n const show = isBoolean(toggle) ? toggle : !this.isToggled(el);\n\n if (!trigger(el, \"before\" + (show ? 'show' : 'hide'), [this])) {\n return Promise.reject();\n }\n\n const promise = (\n isFunction(animate) ?\n animate :\n animate === false || !this.hasAnimation ?\n toggleInstant :\n this.hasTransition ?\n toggleTransition :\n toggleAnimation)(\n el, show, this);\n\n const cls = show ? this.clsEnter : this.clsLeave;\n\n addClass(el, cls);\n\n trigger(el, show ? 'show' : 'hide', [this]);\n\n const done = () => {\n removeClass(el, cls);\n trigger(el, show ? 'shown' : 'hidden', [this]);\n };\n\n return promise ?\n promise.then(done, () => {\n removeClass(el, cls);\n return Promise.reject();\n }) :\n done();\n })).\n then(resolve, noop));\n\n },\n\n isToggled(el) {if (el === void 0) {el = this.$el;}\n [el] = toNodes(el);\n return hasClass(el, this.clsEnter) ?\n true :\n hasClass(el, this.clsLeave) ?\n false :\n this.cls ?\n hasClass(el, this.cls.split(' ')[0]) :\n isVisible(el);\n },\n\n _toggle(el, toggled) {\n if (!el) {\n return;\n }\n\n toggled = Boolean(toggled);\n\n let changed;\n if (this.cls) {\n changed = includes(this.cls, ' ') || toggled !== hasClass(el, this.cls);\n changed && toggleClass(el, this.cls, includes(this.cls, ' ') ? undefined : toggled);\n } else {\n changed = toggled === el.hidden;\n changed && (el.hidden = !toggled);\n }\n\n $$('[autofocus]', el).some((el) => isVisible(el) ? el.focus() || true : el.blur());\n\n if (changed) {\n trigger(el, 'toggled', [toggled, this]);\n }\n }\n }\n };\n\n function toggleInstant(el, show, _ref3) {let { _toggle } = _ref3;\n Animation.cancel(el);\n Transition.cancel(el);\n return _toggle(el, show);\n }\n\n async function toggleTransition(\n el,\n show, _ref4)\n\n {var _animation$;let { animation, duration, velocity, transition, _toggle } = _ref4;\n const [mode = 'reveal', startProp = 'top'] = ((_animation$ = animation[0]) == null ? void 0 : _animation$.split('-')) || [];\n\n const dirs = [\n ['left', 'right'],\n ['top', 'bottom']];\n\n const dir = dirs[includes(dirs[0], startProp) ? 0 : 1];\n const end = dir[1] === startProp;\n const props = ['width', 'height'];\n const dimProp = props[dirs.indexOf(dir)];\n const marginProp = \"margin-\" + dir[0];\n const marginStartProp = \"margin-\" + startProp;\n\n let currentDim = dimensions$1(el)[dimProp];\n\n const inProgress = Transition.inProgress(el);\n await Transition.cancel(el);\n\n if (show) {\n _toggle(el, true);\n }\n\n const prevProps = Object.fromEntries(\n [\n 'padding',\n 'border',\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'overflowY',\n 'overflowX',\n marginProp,\n marginStartProp].\n map((key) => [key, el.style[key]]));\n\n\n const dim = dimensions$1(el);\n const currentMargin = toFloat(css(el, marginProp));\n const marginStart = toFloat(css(el, marginStartProp));\n const endDim = dim[dimProp] + marginStart;\n\n if (!inProgress && !show) {\n currentDim += marginStart;\n }\n\n const [wrapper] = wrapInner(el, '
');\n css(wrapper, {\n boxSizing: 'border-box',\n height: dim.height,\n width: dim.width,\n ...css(el, [\n 'overflow',\n 'padding',\n 'borderTop',\n 'borderRight',\n 'borderBottom',\n 'borderLeft',\n 'borderImage',\n marginStartProp])\n\n });\n\n css(el, {\n padding: 0,\n border: 0,\n minWidth: 0,\n minHeight: 0,\n [marginStartProp]: 0,\n width: dim.width,\n height: dim.height,\n overflow: 'hidden',\n [dimProp]: currentDim\n });\n\n const percent = currentDim / endDim;\n duration = (velocity * endDim + duration) * (show ? 1 - percent : percent);\n const endProps = { [dimProp]: show ? endDim : 0 };\n\n if (end) {\n css(el, marginProp, endDim - currentDim + currentMargin);\n endProps[marginProp] = show ? currentMargin : endDim + currentMargin;\n }\n\n if (!end ^ mode === 'reveal') {\n css(wrapper, marginProp, -endDim + currentDim);\n Transition.start(wrapper, { [marginProp]: show ? 0 : -endDim }, duration, transition);\n }\n\n try {\n await Transition.start(el, endProps, duration, transition);\n } finally {\n css(el, prevProps);\n unwrap(wrapper.firstChild);\n\n if (!show) {\n _toggle(el, false);\n }\n }\n }\n\n function toggleAnimation(el, show, cmp) {\n Animation.cancel(el);\n\n const { animation, duration, _toggle } = cmp;\n\n if (show) {\n _toggle(el, true);\n return Animation.in(el, animation[0], duration, cmp.origin);\n }\n\n return Animation.out(el, animation[1] || animation[0], duration, cmp.origin).then(() =>\n _toggle(el, false));\n\n }\n\n var Accordion = {\n mixins: [Class, Lazyload, Togglable],\n\n props: {\n animation: Boolean,\n targets: String,\n active: null,\n collapsible: Boolean,\n multiple: Boolean,\n toggle: String,\n content: String,\n offset: Number\n },\n\n data: {\n targets: '> *',\n active: false,\n animation: true,\n collapsible: true,\n multiple: false,\n clsOpen: 'uk-open',\n toggle: '> .uk-accordion-title',\n content: '> .uk-accordion-content',\n offset: 0\n },\n\n computed: {\n items: {\n get(_ref, $el) {let { targets } = _ref;\n return $$(targets, $el);\n },\n\n watch(items, prev) {\n if (prev || hasClass(items, this.clsOpen)) {\n return;\n }\n\n const active =\n this.active !== false && items[Number(this.active)] ||\n !this.collapsible && items[0];\n\n if (active) {\n this.toggle(active, false);\n }\n },\n\n immediate: true\n },\n\n toggles(_ref2) {let { toggle } = _ref2;\n return this.items.map((item) => $(toggle, item));\n },\n\n contents: {\n get(_ref3) {let { content } = _ref3;\n return this.items.map((item) => $(content, item));\n },\n\n watch(items) {\n for (const el of items) {\n hide(\n el,\n !hasClass(\n this.items.find((item) => within(el, item)),\n this.clsOpen));\n\n\n }\n },\n\n immediate: true\n }\n },\n\n connected() {\n this.lazyload();\n },\n\n events: [\n {\n name: 'click',\n\n delegate() {\n return this.targets + \" \" + this.$props.toggle;\n },\n\n async handler(e) {var _this$_off;\n e.preventDefault();\n\n (_this$_off = this._off) == null ? void 0 : _this$_off.call(this);\n this._off = keepScrollPosition(e.target);\n await this.toggle(index(this.toggles, e.current));\n this._off();\n }\n }],\n\n\n methods: {\n async toggle(item, animate) {\n item = this.items[getIndex(item, this.items)];\n let items = [item];\n const activeItems = filter$1(this.items, \".\" + this.clsOpen);\n\n if (!this.multiple && !includes(activeItems, items[0])) {\n items = items.concat(activeItems);\n }\n\n if (!this.collapsible && activeItems.length < 2 && includes(activeItems, item)) {\n return;\n }\n\n await Promise.all(\n items.map((el) =>\n this.toggleElement(el, !includes(activeItems, el), (el, show) => {\n toggleClass(el, this.clsOpen, show);\n attr($(this.$props.toggle, el), 'aria-expanded', show);\n\n if (animate === false || !this.animation) {\n hide($(this.content, el), !show);\n return;\n }\n\n return transition(el, show, this);\n })));\n\n\n }\n }\n };\n\n function hide(el, hide) {\n el && (el.hidden = hide);\n }\n\n async function transition(el, show, _ref4) {var _el$_wrapper;let { content, duration, velocity, transition } = _ref4;\n content = ((_el$_wrapper = el._wrapper) == null ? void 0 : _el$_wrapper.firstElementChild) || $(content, el);\n\n if (!el._wrapper) {\n el._wrapper = wrapAll(content, '
');\n }\n\n const wrapper = el._wrapper;\n css(wrapper, 'overflow', 'hidden');\n const currentHeight = toFloat(css(wrapper, 'height'));\n\n await Transition.cancel(wrapper);\n hide(content, false);\n\n const endHeight =\n toFloat(css(content, 'height')) +\n toFloat(css(content, 'marginTop')) +\n toFloat(css(content, 'marginBottom'));\n const percent = currentHeight / endHeight;\n duration = (velocity * endHeight + duration) * (show ? 1 - percent : percent);\n css(wrapper, 'height', currentHeight);\n\n await Transition.start(wrapper, { height: show ? endHeight : 0 }, duration, transition);\n\n unwrap(content);\n delete el._wrapper;\n\n if (!show) {\n hide(content, true);\n }\n }\n\n function keepScrollPosition(el) {\n const scrollParent = scrollParents(el)[0];\n let frame;\n (function scroll() {\n frame = requestAnimationFrame(() => {\n const { top } = el.getBoundingClientRect();\n if (top < 0) {\n scrollParent.scrollTop += top;\n }\n scroll();\n });\n })();\n\n return () => requestAnimationFrame(() => cancelAnimationFrame(frame));\n }\n\n var alert = {\n mixins: [Class, Togglable],\n\n args: 'animation',\n\n props: {\n animation: Boolean,\n close: String\n },\n\n data: {\n animation: true,\n selClose: '.uk-alert-close',\n duration: 150\n },\n\n events: {\n name: 'click',\n\n delegate() {\n return this.selClose;\n },\n\n handler(e) {\n e.preventDefault();\n this.close();\n }\n },\n\n methods: {\n async close() {\n await this.toggleElement(this.$el, false, animate$1);\n this.$destroy(true);\n }\n }\n };\n\n function animate$1(el, show, _ref) {let { duration, transition, velocity } = _ref;\n const height = toFloat(css(el, 'height'));\n css(el, 'height', height);\n return Transition.start(\n el,\n {\n height: 0,\n marginTop: 0,\n marginBottom: 0,\n paddingTop: 0,\n paddingBottom: 0,\n borderTop: 0,\n borderBottom: 0,\n opacity: 0\n },\n velocity * height + duration,\n transition);\n\n }\n\n var Video = {\n args: 'autoplay',\n\n props: {\n automute: Boolean,\n autoplay: Boolean\n },\n\n data: {\n automute: false,\n autoplay: true\n },\n\n connected() {\n this.inView = this.autoplay === 'inview';\n\n if (this.inView && !hasAttr(this.$el, 'preload')) {\n this.$el.preload = 'none';\n }\n\n if (isTag(this.$el, 'iframe') && !hasAttr(this.$el, 'allow')) {\n this.$el.allow = 'autoplay';\n }\n\n if (this.automute) {\n mute(this.$el);\n }\n\n this.registerObserver(observeIntersection(this.$el, () => this.$emit(), {}, false));\n },\n\n update: {\n read() {\n if (!isVideo(this.$el)) {\n return false;\n }\n\n return {\n visible: isVisible(this.$el) && css(this.$el, 'visibility') !== 'hidden',\n inView: this.inView && isInView(this.$el)\n };\n },\n\n write(_ref) {let { visible, inView } = _ref;\n if (!visible || this.inView && !inView) {\n pause(this.$el);\n } else if (this.autoplay === true || this.inView && inView) {\n play(this.$el);\n }\n }\n }\n };\n\n var Resize = {\n connected() {var _this$$options$resize;\n this.registerObserver(\n observeResize(((_this$$options$resize = this.$options.resizeTargets) == null ? void 0 : _this$$options$resize.call(this)) || this.$el, () =>\n this.$emit('resize')));\n\n\n }\n };\n\n var cover = {\n mixins: [Resize, Video],\n\n props: {\n width: Number,\n height: Number\n },\n\n data: {\n automute: true\n },\n\n events: {\n 'load loadedmetadata'() {\n this.$emit('resize');\n }\n },\n\n resizeTargets() {\n return [this.$el, getPositionedParent(this.$el) || parent(this.$el)];\n },\n\n update: {\n read() {\n const { ratio, cover } = Dimensions;\n const { $el, width, height } = this;\n\n let dim = { width, height };\n\n if (!dim.width || !dim.height) {\n const intrinsic = {\n width: $el.naturalWidth || $el.videoWidth || $el.clientWidth,\n height: $el.naturalHeight || $el.videoHeight || $el.clientHeight\n };\n\n if (dim.width) {\n dim = ratio(intrinsic, 'width', dim.width);\n } else if (height) {\n dim = ratio(intrinsic, 'height', dim.height);\n } else {\n dim = intrinsic;\n }\n }\n\n const { offsetHeight: coverHeight, offsetWidth: coverWidth } =\n getPositionedParent($el) || parent($el);\n const coverDim = cover(dim, {\n width: coverWidth + (coverWidth % 2 ? 1 : 0),\n height: coverHeight + (coverHeight % 2 ? 1 : 0)\n });\n\n if (!coverDim.width || !coverDim.height) {\n return false;\n }\n\n return coverDim;\n },\n\n write(_ref) {let { height, width } = _ref;\n css(this.$el, { height, width });\n },\n\n events: ['resize']\n }\n };\n\n function getPositionedParent(el) {\n while (el = parent(el)) {\n if (css(el, 'position') !== 'static') {\n return el;\n }\n }\n }\n\n var Container = {\n props: {\n container: Boolean\n },\n\n data: {\n container: true\n },\n\n computed: {\n container(_ref) {let { container } = _ref;\n return container === true && this.$container || container && $(container);\n }\n }\n };\n\n var Position = {\n props: {\n pos: String,\n offset: null,\n flip: Boolean,\n shift: Boolean,\n inset: Boolean\n },\n\n data: {\n pos: \"bottom-\" + (isRtl ? 'right' : 'left'),\n offset: false,\n flip: true,\n shift: true,\n inset: false\n },\n\n connected() {\n this.pos = this.$props.pos.split('-').concat('center').slice(0, 2);\n [this.dir, this.align] = this.pos;\n this.axis = includes(['top', 'bottom'], this.dir) ? 'y' : 'x';\n },\n\n methods: {\n positionAt(element, target, boundary) {\n let offset = [this.getPositionOffset(element), this.getShiftOffset(element)];\n const placement = [this.flip && 'flip', this.shift && 'shift'];\n\n const attach = {\n element: [this.inset ? this.dir : flipPosition(this.dir), this.align],\n target: [this.dir, this.align]\n };\n\n if (this.axis === 'y') {\n for (const prop in attach) {\n attach[prop].reverse();\n }\n offset.reverse();\n placement.reverse();\n }\n\n const [scrollElement] = scrollParents(element, /auto|scroll/);\n const { scrollTop, scrollLeft } = scrollElement;\n\n // Ensure none positioned element does not generate scrollbars\n const elDim = dimensions$1(element);\n css(element, { top: -elDim.height, left: -elDim.width });\n\n positionAt(element, target, {\n attach,\n offset,\n boundary,\n placement,\n viewportOffset: this.getViewportOffset(element)\n });\n\n // Restore scroll position\n scrollElement.scrollTop = scrollTop;\n scrollElement.scrollLeft = scrollLeft;\n },\n\n getPositionOffset(element) {\n return (\n toPx(\n this.offset === false ? css(element, '--uk-position-offset') : this.offset,\n this.axis === 'x' ? 'width' : 'height',\n element) * (\n\n includes(['left', 'top'], this.dir) ? -1 : 1) * (\n this.inset ? -1 : 1));\n\n },\n\n getShiftOffset(element) {\n return this.align === 'center' ?\n 0 :\n toPx(\n css(element, '--uk-position-shift-offset'),\n this.axis === 'y' ? 'width' : 'height',\n element) * (\n includes(['left', 'top'], this.align) ? 1 : -1);\n },\n\n getViewportOffset(element) {\n return toPx(css(element, '--uk-position-viewport-offset'));\n }\n }\n };\n\n var Style = {\n beforeConnect() {\n this._style = attr(this.$el, 'style');\n },\n\n disconnected() {\n attr(this.$el, 'style', this._style);\n }\n };\n\n const active$1 = [];\n\n var Modal = {\n mixins: [Class, Container, Togglable],\n\n props: {\n selPanel: String,\n selClose: String,\n escClose: Boolean,\n bgClose: Boolean,\n stack: Boolean\n },\n\n data: {\n cls: 'uk-open',\n escClose: true,\n bgClose: true,\n overlay: true,\n stack: false\n },\n\n computed: {\n panel(_ref, $el) {let { selPanel } = _ref;\n return $(selPanel, $el);\n },\n\n transitionElement() {\n return this.panel;\n },\n\n bgClose(_ref2) {let { bgClose } = _ref2;\n return bgClose && this.panel;\n }\n },\n\n beforeDisconnect() {\n if (includes(active$1, this)) {\n this.toggleElement(this.$el, false, false);\n }\n },\n\n events: [\n {\n name: 'click',\n\n delegate() {\n return this.selClose;\n },\n\n handler(e) {\n e.preventDefault();\n this.hide();\n }\n },\n\n {\n name: 'click',\n\n delegate() {\n return 'a[href*=\"#\"]';\n },\n\n handler(_ref3) {let { current, defaultPrevented } = _ref3;\n const { hash } = current;\n if (\n !defaultPrevented &&\n hash &&\n isSameSiteAnchor(current) &&\n !within(hash, this.$el) &&\n $(hash, document.body))\n {\n this.hide();\n }\n }\n },\n\n {\n name: 'toggle',\n\n self: true,\n\n handler(e) {\n if (e.defaultPrevented) {\n return;\n }\n\n e.preventDefault();\n\n if (this.isToggled() === includes(active$1, this)) {\n this.toggle();\n }\n }\n },\n\n {\n name: 'beforeshow',\n\n self: true,\n\n handler(e) {\n if (includes(active$1, this)) {\n return false;\n }\n\n if (!this.stack && active$1.length) {\n Promise.all(active$1.map((modal) => modal.hide())).then(this.show);\n e.preventDefault();\n } else {\n active$1.push(this);\n }\n }\n },\n\n {\n name: 'show',\n\n self: true,\n\n handler() {\n once(\n this.$el,\n 'hide',\n on(document, 'focusin', (e) => {\n if (last(active$1) === this && !within(e.target, this.$el)) {\n this.$el.focus();\n }\n }));\n\n\n if (this.overlay) {\n once(this.$el, 'hidden', preventOverscroll(this.$el), { self: true });\n once(this.$el, 'hidden', preventBackgroundScroll(), { self: true });\n }\n\n if (this.stack) {\n css(this.$el, 'zIndex', toFloat(css(this.$el, 'zIndex')) + active$1.length);\n }\n\n addClass(document.documentElement, this.clsPage);\n\n if (this.bgClose) {\n once(\n this.$el,\n 'hide',\n on(document, pointerDown$1, (_ref4) => {let { target } = _ref4;\n if (\n last(active$1) !== this ||\n this.overlay && !within(target, this.$el) ||\n within(target, this.panel))\n {\n return;\n }\n\n once(\n document,\n pointerUp$1 + \" \" + pointerCancel + \" scroll\",\n (_ref5) => {let { defaultPrevented, type, target: newTarget } = _ref5;\n if (\n !defaultPrevented &&\n type === pointerUp$1 &&\n target === newTarget)\n {\n this.hide();\n }\n },\n true);\n\n }),\n { self: true });\n\n }\n\n if (this.escClose) {\n once(\n this.$el,\n 'hide',\n on(document, 'keydown', (e) => {\n if (e.keyCode === 27 && last(active$1) === this) {\n this.hide();\n }\n }),\n { self: true });\n\n }\n }\n },\n\n {\n name: 'shown',\n\n self: true,\n\n handler() {\n if (!isFocusable(this.$el)) {\n attr(this.$el, 'tabindex', '-1');\n }\n\n if (!$(':focus', this.$el)) {\n this.$el.focus();\n }\n }\n },\n\n {\n name: 'hidden',\n\n self: true,\n\n handler() {\n if (includes(active$1, this)) {\n active$1.splice(active$1.indexOf(this), 1);\n }\n\n css(this.$el, 'zIndex', '');\n\n if (!active$1.some((modal) => modal.clsPage === this.clsPage)) {\n removeClass(document.documentElement, this.clsPage);\n }\n }\n }],\n\n\n methods: {\n toggle() {\n return this.isToggled() ? this.hide() : this.show();\n },\n\n show() {\n if (this.container && parent(this.$el) !== this.container) {\n append(this.container, this.$el);\n return new Promise((resolve) =>\n requestAnimationFrame(() => this.show().then(resolve)));\n\n }\n\n return this.toggleElement(this.$el, true, animate);\n },\n\n hide() {\n return this.toggleElement(this.$el, false, animate);\n }\n }\n };\n\n function animate(el, show, _ref6) {let { transitionElement, _toggle } = _ref6;\n return new Promise((resolve, reject) =>\n once(el, 'show hide', () => {\n el._reject == null ? void 0 : el._reject();\n el._reject = reject;\n\n _toggle(el, show);\n\n const off = once(\n transitionElement,\n 'transitionstart',\n () => {\n once(transitionElement, 'transitionend transitioncancel', resolve, {\n self: true\n });\n clearTimeout(timer);\n },\n { self: true });\n\n\n const timer = setTimeout(() => {\n off();\n resolve();\n }, toMs(css(transitionElement, 'transitionDuration')));\n })).\n then(() => delete el._reject);\n }\n\n function toMs(time) {\n return time ? endsWith(time, 'ms') ? toFloat(time) : toFloat(time) * 1000 : 0;\n }\n\n function preventOverscroll(el) {\n if (CSS.supports('overscroll-behavior', 'contain')) {\n const elements = filterChildren(el, (child) => /auto|scroll/.test(css(child, 'overflow')));\n css(elements, 'overscrollBehavior', 'contain');\n return () => css(elements, 'overscrollBehavior', '');\n }\n\n let startClientY;\n\n const events = [\n on(\n el,\n 'touchstart',\n (_ref7) => {let { targetTouches } = _ref7;\n if (targetTouches.length === 1) {\n startClientY = targetTouches[0].clientY;\n }\n },\n { passive: true }),\n\n\n on(\n el,\n 'touchmove',\n (e) => {\n if (e.targetTouches.length !== 1) {\n return;\n }\n\n let [scrollParent] = scrollParents(e.target, /auto|scroll/);\n if (!within(scrollParent, el)) {\n scrollParent = el;\n }\n\n const clientY = e.targetTouches[0].clientY - startClientY;\n const { scrollTop, scrollHeight, clientHeight } = scrollParent;\n\n if (\n clientHeight >= scrollHeight ||\n scrollTop === 0 && clientY > 0 ||\n scrollHeight - scrollTop <= clientHeight && clientY < 0)\n {\n e.cancelable && e.preventDefault();\n }\n },\n { passive: false })];\n\n\n\n return () => events.forEach((fn) => fn());\n }\n\n let prevented;\n function preventBackgroundScroll() {\n if (prevented) {\n return noop;\n }\n prevented = true;\n\n const { scrollingElement } = document;\n css(scrollingElement, {\n overflowY: 'hidden',\n touchAction: 'none',\n paddingRight: width(window) - scrollingElement.clientWidth\n });\n return () => {\n prevented = false;\n css(scrollingElement, { overflowY: '', touchAction: '', paddingRight: '' });\n };\n }\n\n function filterChildren(el, fn) {\n const children = [];\n apply(el, (node) => {\n if (fn(node)) {\n children.push(node);\n }\n });\n return children;\n }\n\n function isSameSiteAnchor(a) {\n return ['origin', 'pathname', 'search'].every((part) => a[part] === location[part]);\n }\n\n let active;\n\n var drop = {\n mixins: [Container, Lazyload, Position, Style, Togglable],\n\n args: 'pos',\n\n props: {\n mode: 'list',\n toggle: Boolean,\n boundary: Boolean,\n boundaryX: Boolean,\n boundaryY: Boolean,\n target: Boolean,\n targetX: Boolean,\n targetY: Boolean,\n stretch: Boolean,\n delayShow: Number,\n delayHide: Number,\n autoUpdate: Boolean,\n clsDrop: String,\n animateOut: Boolean,\n bgScroll: Boolean\n },\n\n data: {\n mode: ['click', 'hover'],\n toggle: '- *',\n boundary: false,\n boundaryX: false,\n boundaryY: false,\n target: false,\n targetX: false,\n targetY: false,\n stretch: false,\n delayShow: 0,\n delayHide: 800,\n autoUpdate: true,\n clsDrop: false,\n animateOut: false,\n bgScroll: true,\n animation: ['uk-animation-fade'],\n cls: 'uk-open',\n container: false\n },\n\n computed: {\n boundary(_ref, $el) {let { boundary, boundaryX, boundaryY } = _ref;\n return [\n query(boundaryX || boundary, $el) || window,\n query(boundaryY || boundary, $el) || window];\n\n },\n\n target(_ref2, $el) {let { target, targetX, targetY } = _ref2;\n targetX = targetX || target || this.targetEl;\n targetY = targetY || target || this.targetEl;\n\n return [\n targetX === true ? window : query(targetX, $el),\n targetY === true ? window : query(targetY, $el)];\n\n }\n },\n\n created() {\n this.tracker = new MouseTracker();\n },\n\n beforeConnect() {\n this.clsDrop = this.$props.clsDrop || \"uk-\" + this.$options.name;\n },\n\n connected() {\n addClass(this.$el, this.clsDrop);\n\n if (this.toggle && !this.targetEl) {\n this.targetEl = this.$create('toggle', query(this.toggle, this.$el), {\n target: this.$el,\n mode: this.mode\n }).$el;\n attr(this.targetEl, 'aria-haspopup', true);\n this.lazyload(this.targetEl);\n }\n },\n\n disconnected() {\n if (this.isActive()) {\n this.hide(false);\n active = null;\n }\n },\n\n events: [\n {\n name: 'click',\n\n delegate() {\n return \".\" + this.clsDrop + \"-close\";\n },\n\n handler(e) {\n e.preventDefault();\n this.hide(false);\n }\n },\n\n {\n name: 'click',\n\n delegate() {\n return 'a[href*=\"#\"]';\n },\n\n handler(_ref3) {let { defaultPrevented, current } = _ref3;\n const { hash } = current;\n if (\n !defaultPrevented &&\n hash &&\n isSameSiteAnchor(current) &&\n !within(hash, this.$el))\n {\n this.hide(false);\n }\n }\n },\n\n {\n name: 'beforescroll',\n\n handler() {\n this.hide(false);\n }\n },\n\n {\n name: 'toggle',\n\n self: true,\n\n handler(e, toggle) {\n e.preventDefault();\n\n if (this.isToggled()) {\n this.hide(false);\n } else {\n this.show(toggle == null ? void 0 : toggle.$el, false);\n }\n }\n },\n\n {\n name: 'toggleshow',\n\n self: true,\n\n handler(e, toggle) {\n e.preventDefault();\n this.show(toggle == null ? void 0 : toggle.$el);\n }\n },\n\n {\n name: 'togglehide',\n\n self: true,\n\n handler(e) {\n e.preventDefault();\n if (!matches(this.$el, ':focus,:hover')) {\n this.hide();\n }\n }\n },\n\n {\n name: pointerEnter + \" focusin\",\n\n filter() {\n return includes(this.mode, 'hover');\n },\n\n handler(e) {\n if (!isTouch(e)) {\n this.clearTimers();\n }\n }\n },\n\n {\n name: pointerLeave + \" focusout\",\n\n filter() {\n return includes(this.mode, 'hover');\n },\n\n handler(e) {\n if (!isTouch(e) && e.relatedTarget) {\n this.hide();\n }\n }\n },\n\n {\n name: 'toggled',\n\n self: true,\n\n handler(e, toggled) {\n if (!toggled) {\n return;\n }\n\n this.clearTimers();\n this.position();\n }\n },\n\n {\n name: 'show',\n\n self: true,\n\n handler() {\n active = this;\n\n this.tracker.init();\n\n const update = () => this.$emit();\n const handlers = [\n on(\n document,\n pointerDown$1,\n (_ref4) => {let { target } = _ref4;return (\n !within(target, this.$el) &&\n once(\n document,\n pointerUp$1 + \" \" + pointerCancel + \" scroll\",\n (_ref5) => {let { defaultPrevented, type, target: newTarget } = _ref5;\n if (\n !defaultPrevented &&\n type === pointerUp$1 &&\n target === newTarget &&\n !(this.targetEl && within(target, this.targetEl)))\n {\n this.hide(false);\n }\n },\n true));}),\n\n\n\n on(document, 'keydown', (e) => {\n if (e.keyCode === 27) {\n this.hide(false);\n }\n }),\n\n on(window, 'resize', update),\n\n (() => {\n const observer = observeResize(\n scrollParents(this.$el).concat(this.target),\n update);\n\n return () => observer.disconnect();\n })(),\n\n ...(this.autoUpdate ?\n [\n on([document, scrollParents(this.$el)], 'scroll', update, {\n passive: true\n })] :\n\n []),\n\n ...(this.bgScroll ?\n [] :\n [preventOverscroll(this.$el), preventBackgroundScroll()])];\n\n\n once(this.$el, 'hide', () => handlers.forEach((handler) => handler()), {\n self: true\n });\n }\n },\n\n {\n name: 'beforehide',\n\n self: true,\n\n handler() {\n this.clearTimers();\n }\n },\n\n {\n name: 'hide',\n\n handler(_ref6) {let { target } = _ref6;\n if (this.$el !== target) {\n active =\n active === null && within(target, this.$el) && this.isToggled() ?\n this :\n active;\n return;\n }\n\n active = this.isActive() ? null : active;\n this.tracker.cancel();\n }\n }],\n\n\n update: {\n write() {\n if (this.isToggled() && !hasClass(this.$el, this.clsEnter)) {\n this.position();\n }\n }\n },\n\n methods: {\n show(target, delay) {if (target === void 0) {target = this.targetEl;}if (delay === void 0) {delay = true;}\n if (this.isToggled() && target && this.targetEl && target !== this.targetEl) {\n this.hide(false, false);\n }\n\n this.targetEl = target;\n\n this.clearTimers();\n\n if (this.isActive()) {\n return;\n }\n\n if (active) {\n if (delay && active.isDelaying) {\n this.showTimer = setTimeout(() => matches(target, ':hover') && this.show(), 10);\n return;\n }\n\n let prev;\n while (active && prev !== active && !within(this.$el, active.$el)) {\n prev = active;\n active.hide(false, false);\n }\n }\n\n if (this.container && parent(this.$el) !== this.container) {\n append(this.container, this.$el);\n }\n\n this.showTimer = setTimeout(\n () => this.toggleElement(this.$el, true),\n delay && this.delayShow || 0);\n\n },\n\n hide(delay, animate) {if (delay === void 0) {delay = true;}if (animate === void 0) {animate = true;}\n const hide = () => this.toggleElement(this.$el, false, this.animateOut && animate);\n\n this.clearTimers();\n\n this.isDelaying = getPositionedElements(this.$el).some((el) =>\n this.tracker.movesTo(el));\n\n\n if (delay && this.isDelaying) {\n this.hideTimer = setTimeout(this.hide, 50);\n } else if (delay && this.delayHide) {\n this.hideTimer = setTimeout(hide, this.delayHide);\n } else {\n hide();\n }\n },\n\n clearTimers() {\n clearTimeout(this.showTimer);\n clearTimeout(this.hideTimer);\n this.showTimer = null;\n this.hideTimer = null;\n this.isDelaying = false;\n },\n\n isActive() {\n return active === this;\n },\n\n position() {\n removeClass(this.$el, this.clsDrop + \"-stack\");\n attr(this.$el, 'style', this._style);\n\n // Ensure none positioned element does not generate scrollbars\n this.$el.hidden = true;\n\n const viewports = this.target.map((target) => getViewport$1(this.$el, target));\n const viewportOffset = this.getViewportOffset(this.$el);\n\n const dirs = [\n [0, ['x', 'width', 'left', 'right']],\n [1, ['y', 'height', 'top', 'bottom']]];\n\n\n for (const [i, [axis, prop]] of dirs) {\n if (this.axis !== axis && includes([axis, true], this.stretch)) {\n css(this.$el, {\n [prop]: Math.min(\n offset(this.boundary[i])[prop],\n viewports[i][prop] - 2 * viewportOffset),\n\n [\"overflow-\" + axis]: 'auto'\n });\n }\n }\n\n const maxWidth = viewports[0].width - 2 * viewportOffset;\n\n if (this.$el.offsetWidth > maxWidth) {\n addClass(this.$el, this.clsDrop + \"-stack\");\n }\n\n css(this.$el, 'maxWidth', maxWidth);\n\n this.$el.hidden = false;\n\n this.positionAt(this.$el, this.target, this.boundary);\n\n for (const [i, [axis, prop, start, end]] of dirs) {\n if (this.axis === axis && includes([axis, true], this.stretch)) {\n const positionOffset = Math.abs(this.getPositionOffset(this.$el));\n const targetOffset = offset(this.target[i]);\n const elOffset = offset(this.$el);\n\n css(this.$el, {\n [prop]:\n (targetOffset[start] > elOffset[start] ?\n targetOffset[start] -\n Math.max(\n offset(this.boundary[i])[start],\n viewports[i][start] + viewportOffset) :\n\n Math.min(\n offset(this.boundary[i])[end],\n viewports[i][end] - viewportOffset) -\n targetOffset[end]) - positionOffset,\n [\"overflow-\" + axis]: 'auto'\n });\n\n this.positionAt(this.$el, this.target, this.boundary);\n }\n }\n }\n }\n };\n\n function getPositionedElements(el) {\n const result = [];\n apply(el, (el) => css(el, 'position') !== 'static' && result.push(el));\n return result;\n }\n\n function getViewport$1(el, target) {\n return offsetViewport(scrollParents(target).find((parent) => within(el, parent)));\n }\n\n var formCustom = {\n mixins: [Class],\n\n args: 'target',\n\n props: {\n target: Boolean\n },\n\n data: {\n target: false\n },\n\n computed: {\n input(_, $el) {\n return $(selInput, $el);\n },\n\n state() {\n return this.input.nextElementSibling;\n },\n\n target(_ref, $el) {let { target } = _ref;\n return (\n target && (\n target === true && parent(this.input) === $el && this.input.nextElementSibling ||\n $(target, $el)));\n\n }\n },\n\n update() {var _input$files;\n const { target, input } = this;\n\n if (!target) {\n return;\n }\n\n let option;\n const prop = isInput(target) ? 'value' : 'textContent';\n const prev = target[prop];\n const value = (_input$files = input.files) != null && _input$files[0] ?\n input.files[0].name :\n matches(input, 'select') && (\n option = $$('option', input).filter((el) => el.selected)[0]) // eslint-disable-line prefer-destructuring\n ? option.textContent :\n input.value;\n\n if (prev !== value) {\n target[prop] = value;\n }\n },\n\n events: [\n {\n name: 'change',\n\n handler() {\n this.$emit();\n }\n },\n\n {\n name: 'reset',\n\n el() {\n return closest(this.$el, 'form');\n },\n\n handler() {\n this.$emit();\n }\n }]\n\n };\n\n var Margin = {\n mixins: [Resize],\n\n props: {\n margin: String,\n firstColumn: Boolean\n },\n\n data: {\n margin: 'uk-margin-small-top',\n firstColumn: 'uk-first-column'\n },\n\n resizeTargets() {\n return [this.$el, ...toArray(this.$el.children)];\n },\n\n connected() {\n this.registerObserver(\n observeMutation(this.$el, () => this.$reset(), {\n childList: true\n }));\n\n },\n\n update: {\n read() {\n const rows = getRows(this.$el.children);\n\n return {\n rows,\n columns: getColumns(rows)\n };\n },\n\n write(_ref) {let { columns, rows } = _ref;\n for (const row of rows) {\n for (const column of row) {\n toggleClass(column, this.margin, rows[0] !== row);\n toggleClass(column, this.firstColumn, columns[0].includes(column));\n }\n }\n },\n\n events: ['resize']\n }\n };\n\n function getRows(items) {\n return sortBy(items, 'top', 'bottom');\n }\n\n function getColumns(rows) {\n const columns = [];\n\n for (const row of rows) {\n const sorted = sortBy(row, 'left', 'right');\n for (let j = 0; j < sorted.length; j++) {\n columns[j] = columns[j] ? columns[j].concat(sorted[j]) : sorted[j];\n }\n }\n\n return isRtl ? columns.reverse() : columns;\n }\n\n function sortBy(items, startProp, endProp) {\n const sorted = [[]];\n\n for (const el of items) {\n if (!isVisible(el)) {\n continue;\n }\n\n let dim = getOffset(el);\n\n for (let i = sorted.length - 1; i >= 0; i--) {\n const current = sorted[i];\n\n if (!current[0]) {\n current.push(el);\n break;\n }\n\n let startDim;\n if (current[0].offsetParent === el.offsetParent) {\n startDim = getOffset(current[0]);\n } else {\n dim = getOffset(el, true);\n startDim = getOffset(current[0], true);\n }\n\n if (dim[startProp] >= startDim[endProp] - 1 && dim[startProp] !== startDim[startProp]) {\n sorted.push([el]);\n break;\n }\n\n if (dim[endProp] - 1 > startDim[startProp] || dim[startProp] === startDim[startProp]) {\n current.push(el);\n break;\n }\n\n if (i === 0) {\n sorted.unshift([el]);\n break;\n }\n }\n }\n\n return sorted;\n }\n\n function getOffset(element, offset) {if (offset === void 0) {offset = false;}\n let { offsetTop, offsetLeft, offsetHeight, offsetWidth } = element;\n\n if (offset) {\n [offsetTop, offsetLeft] = offsetPosition(element);\n }\n\n return {\n top: offsetTop,\n left: offsetLeft,\n bottom: offsetTop + offsetHeight,\n right: offsetLeft + offsetWidth\n };\n }\n\n var Scroll = {\n connected() {\n registerScrollListener(this._uid, () => this.$emit('scroll'));\n },\n\n disconnected() {\n unregisterScrollListener(this._uid);\n }\n };\n\n const scrollListeners = new Map();\n let unbindScrollListener;\n function registerScrollListener(id, listener) {\n unbindScrollListener =\n unbindScrollListener ||\n on(window, 'scroll', () => scrollListeners.forEach((listener) => listener()), {\n passive: true,\n capture: true\n });\n\n scrollListeners.set(id, listener);\n }\n\n function unregisterScrollListener(id) {\n scrollListeners.delete(id);\n if (unbindScrollListener && !scrollListeners.size) {\n unbindScrollListener();\n unbindScrollListener = null;\n }\n }\n\n var grid = {\n extends: Margin,\n\n mixins: [Class],\n\n name: 'grid',\n\n props: {\n masonry: Boolean,\n parallax: Number\n },\n\n data: {\n margin: 'uk-grid-margin',\n clsStack: 'uk-grid-stack',\n masonry: false,\n parallax: 0\n },\n\n connected() {\n this.masonry && addClass(this.$el, 'uk-flex-top uk-flex-wrap-top');\n this.parallax && registerScrollListener(this._uid, () => this.$emit('scroll'));\n },\n\n disconnected() {\n unregisterScrollListener(this._uid);\n },\n\n update: [\n {\n write(_ref) {let { columns } = _ref;\n toggleClass(this.$el, this.clsStack, columns.length < 2);\n },\n\n events: ['resize']\n },\n\n {\n read(data) {\n let { columns, rows } = data;\n\n // Filter component makes elements positioned absolute\n if (\n !columns.length ||\n !this.masonry && !this.parallax ||\n positionedAbsolute(this.$el))\n {\n data.translates = false;\n return false;\n }\n\n let translates = false;\n\n const nodes = children(this.$el);\n const columnHeights = getColumnHeights(columns);\n const margin = getMarginTop(nodes, this.margin) * (rows.length - 1);\n const elHeight = Math.max(...columnHeights) + margin;\n\n if (this.masonry) {\n columns = columns.map((column) => sortBy$1(column, 'offsetTop'));\n translates = getTranslates(rows, columns);\n }\n\n let padding = Math.abs(this.parallax);\n if (padding) {\n padding = columnHeights.reduce(\n (newPadding, hgt, i) =>\n Math.max(\n newPadding,\n hgt + margin + (i % 2 ? padding : padding / 8) - elHeight),\n\n 0);\n\n }\n\n return { padding, columns, translates, height: translates ? elHeight : '' };\n },\n\n write(_ref2) {let { height, padding } = _ref2;\n css(this.$el, 'paddingBottom', padding || '');\n height !== false && css(this.$el, 'height', height);\n },\n\n events: ['resize']\n },\n\n {\n read() {\n if (this.parallax && positionedAbsolute(this.$el)) {\n return false;\n }\n\n return {\n scrolled: this.parallax ?\n scrolledOver(this.$el) * Math.abs(this.parallax) :\n false\n };\n },\n\n write(_ref3) {let { columns, scrolled, translates } = _ref3;\n if (scrolled === false && !translates) {\n return;\n }\n\n columns.forEach((column, i) =>\n column.forEach((el, j) =>\n css(\n el,\n 'transform',\n !scrolled && !translates ?\n '' : \"translateY(\" + (\n\n (translates && -translates[i][j]) + (\n scrolled ? i % 2 ? scrolled : scrolled / 8 : 0)) + \"px)\")));\n\n\n\n\n },\n\n events: ['scroll', 'resize']\n }]\n\n };\n\n function positionedAbsolute(el) {\n return children(el).some((el) => css(el, 'position') === 'absolute');\n }\n\n function getTranslates(rows, columns) {\n const rowHeights = rows.map((row) => Math.max(...row.map((el) => el.offsetHeight)));\n\n return columns.map((elements) => {\n let prev = 0;\n return elements.map(\n (element, row) =>\n prev += row ? rowHeights[row - 1] - elements[row - 1].offsetHeight : 0);\n\n });\n }\n\n function getMarginTop(nodes, cls) {\n const [node] = nodes.filter((el) => hasClass(el, cls));\n\n return toFloat(node ? css(node, 'marginTop') : css(nodes[0], 'paddingLeft'));\n }\n\n function getColumnHeights(columns) {\n return columns.map((column) => column.reduce((sum, el) => sum + el.offsetHeight, 0));\n }\n\n var heightMatch = {\n mixins: [Resize],\n\n args: 'target',\n\n props: {\n target: String,\n row: Boolean\n },\n\n data: {\n target: '> *',\n row: true\n },\n\n computed: {\n elements: {\n get(_ref, $el) {let { target } = _ref;\n return $$(target, $el);\n },\n\n watch() {\n this.$reset();\n }\n }\n },\n\n resizeTargets() {\n return [this.$el, ...this.elements];\n },\n\n update: {\n read() {\n return {\n rows: (this.row ? getRows(this.elements) : [this.elements]).map(match$1)\n };\n },\n\n write(_ref2) {let { rows } = _ref2;\n for (const { heights, elements } of rows) {\n elements.forEach((el, i) => css(el, 'minHeight', heights[i]));\n }\n },\n\n events: ['resize']\n }\n };\n\n function match$1(elements) {\n if (elements.length < 2) {\n return { heights: [''], elements };\n }\n\n css(elements, 'minHeight', '');\n let heights = elements.map(getHeight);\n const max = Math.max(...heights);\n\n return {\n heights: elements.map((el, i) => heights[i].toFixed(2) === max.toFixed(2) ? '' : max),\n elements\n };\n }\n\n function getHeight(element) {\n let style = false;\n if (!isVisible(element)) {\n style = element.style.display;\n css(element, 'display', 'block', 'important');\n }\n\n const height = dimensions$1(element).height - boxModelAdjust(element, 'height', 'content-box');\n\n if (style !== false) {\n css(element, 'display', style);\n }\n\n return height;\n }\n\n var heightViewport = {\n mixins: [Resize],\n\n props: {\n expand: Boolean,\n offsetTop: Boolean,\n offsetBottom: Boolean,\n minHeight: Number\n },\n\n data: {\n expand: false,\n offsetTop: false,\n offsetBottom: false,\n minHeight: 0\n },\n\n resizeTargets() {\n // check for offsetTop change\n return [this.$el, ...scrollParents(this.$el, /auto|scroll/)];\n },\n\n update: {\n read(_ref) {let { minHeight: prev } = _ref;\n if (!isVisible(this.$el)) {\n return false;\n }\n\n let minHeight = '';\n const box = boxModelAdjust(this.$el, 'height', 'content-box');\n\n const { body, scrollingElement } = document;\n const [scrollElement] = scrollParents(this.$el, /auto|scroll/);\n const { height: viewportHeight } = offsetViewport(\n scrollElement === body ? scrollingElement : scrollElement);\n\n\n if (this.expand) {\n minHeight = Math.max(\n viewportHeight - (\n dimensions$1(scrollElement).height - dimensions$1(this.$el).height) -\n box,\n 0);\n\n } else {\n const isScrollingElement =\n scrollingElement === scrollElement || body === scrollElement;\n\n // on mobile devices (iOS and Android) window.innerHeight !== 100vh\n minHeight = \"calc(\" + (isScrollingElement ? '100vh' : viewportHeight + \"px\");\n\n if (this.offsetTop) {\n if (isScrollingElement) {\n const top = offsetPosition(this.$el)[0] - offsetPosition(scrollElement)[0];\n minHeight += top > 0 && top < viewportHeight / 2 ? \" - \" + top + \"px\" : '';\n } else {\n minHeight += \" - \" + css(scrollElement, 'paddingTop');\n }\n }\n\n if (this.offsetBottom === true) {\n minHeight += \" - \" + dimensions$1(this.$el.nextElementSibling).height + \"px\";\n } else if (isNumeric(this.offsetBottom)) {\n minHeight += \" - \" + this.offsetBottom + \"vh\";\n } else if (this.offsetBottom && endsWith(this.offsetBottom, 'px')) {\n minHeight += \" - \" + toFloat(this.offsetBottom) + \"px\";\n } else if (isString(this.offsetBottom)) {\n minHeight += \" - \" + dimensions$1(query(this.offsetBottom, this.$el)).height + \"px\";\n }\n\n minHeight += (box ? \" - \" + box + \"px\" : '') + \")\";\n }\n\n return { minHeight, prev };\n },\n\n write(_ref2) {let { minHeight } = _ref2;\n css(this.$el, { minHeight });\n\n if (this.minHeight && toFloat(css(this.$el, 'minHeight')) < this.minHeight) {\n css(this.$el, 'minHeight', this.minHeight);\n }\n },\n\n events: ['resize']\n }\n };\n\n var SVG = {\n args: 'src',\n\n props: {\n id: Boolean,\n icon: String,\n src: String,\n style: String,\n width: Number,\n height: Number,\n ratio: Number,\n class: String,\n strokeAnimation: Boolean,\n attributes: 'list'\n },\n\n data: {\n ratio: 1,\n include: ['style', 'class'],\n class: '',\n strokeAnimation: false\n },\n\n beforeConnect() {\n this.class += ' uk-svg';\n },\n\n connected() {\n if (!this.icon && includes(this.src, '#')) {\n [this.src, this.icon] = this.src.split('#');\n }\n\n this.svg = this.getSvg().then((el) => {\n if (this._connected) {\n const svg = insertSVG(el, this.$el);\n\n if (this.svgEl && svg !== this.svgEl) {\n remove$1(this.svgEl);\n }\n\n this.applyAttributes(svg, el);\n\n return this.svgEl = svg;\n }\n }, noop);\n\n if (this.strokeAnimation) {\n this.svg.then((el) => {\n if (this._connected) {\n applyAnimation(el);\n this.registerObserver(\n observeIntersection(el, (records, observer) => {\n applyAnimation(el);\n observer.disconnect();\n }));\n\n }\n });\n }\n },\n\n disconnected() {\n this.svg.then((svg) => {\n if (this._connected) {\n return;\n }\n\n if (isVoidElement(this.$el)) {\n this.$el.hidden = false;\n }\n\n remove$1(svg);\n this.svgEl = null;\n });\n\n this.svg = null;\n },\n\n methods: {\n async getSvg() {\n if (isTag(this.$el, 'img') && !this.$el.complete && this.$el.loading === 'lazy') {\n return new Promise((resolve) =>\n once(this.$el, 'load', () => resolve(this.getSvg())));\n\n }\n\n return parseSVG(await loadSVG(this.src), this.icon) || Promise.reject('SVG not found.');\n },\n\n applyAttributes(el, ref) {\n for (const prop in this.$options.props) {\n if (includes(this.include, prop) && prop in this) {\n attr(el, prop, this[prop]);\n }\n }\n\n for (const attribute in this.attributes) {\n const [prop, value] = this.attributes[attribute].split(':', 2);\n attr(el, prop, value);\n }\n\n if (!this.id) {\n removeAttr(el, 'id');\n }\n\n const props = ['width', 'height'];\n let dimensions = props.map((prop) => this[prop]);\n\n if (!dimensions.some((val) => val)) {\n dimensions = props.map((prop) => attr(ref, prop));\n }\n\n const viewBox = attr(ref, 'viewBox');\n if (viewBox && !dimensions.some((val) => val)) {\n dimensions = viewBox.split(' ').slice(2);\n }\n\n dimensions.forEach((val, i) => attr(el, props[i], toFloat(val) * this.ratio || null));\n }\n }\n };\n\n const loadSVG = memoize(async (src) => {\n if (src) {\n if (startsWith(src, 'data:')) {\n return decodeURIComponent(src.split(',')[1]);\n } else {\n return (await fetch(src)).text();\n }\n } else {\n return Promise.reject();\n }\n });\n\n function parseSVG(svg, icon) {var _svg;\n if (icon && includes(svg, '/g;\n const symbols = {};\n\n function parseSymbols(svg, icon) {\n if (!symbols[svg]) {\n symbols[svg] = {};\n\n symbolRe.lastIndex = 0;\n\n let match;\n while (match = symbolRe.exec(svg)) {\n symbols[svg][match[3]] = \"\";\n }\n }\n\n return symbols[svg][icon];\n }\n\n function applyAnimation(el) {\n const length = getMaxPathLength(el);\n\n if (length) {\n el.style.setProperty('--uk-animation-stroke', length);\n }\n }\n\n function getMaxPathLength(el) {\n return Math.ceil(\n Math.max(\n 0,\n ...$$('[stroke]', el).map((stroke) => {\n try {\n return stroke.getTotalLength();\n } catch (e) {\n return 0;\n }\n })));\n\n\n }\n\n function insertSVG(el, root) {\n if (isVoidElement(root) || isTag(root, 'canvas')) {\n root.hidden = true;\n\n const next = root.nextElementSibling;\n return equals(el, next) ? next : after(root, el);\n }\n\n const last = root.lastElementChild;\n return equals(el, last) ? last : append(root, el);\n }\n\n function equals(el, other) {\n return isTag(el, 'svg') && isTag(other, 'svg') && el.innerHTML === other.innerHTML;\n }\n\n var closeIcon = \"\";\n\n var closeLarge = \"\";\n\n var marker = \"\";\n\n var navParentIcon = \"\";\n\n var navParentIconLarge = \"\";\n\n var navbarParentIcon = \"\";\n\n var navbarToggleIcon = \"\";\n\n var overlayIcon = \"\";\n\n var paginationNext = \"\";\n\n var paginationPrevious = \"\";\n\n var searchIcon = \"\";\n\n var searchLarge = \"\";\n\n var searchNavbar = \"\";\n\n var slidenavNext = \"\";\n\n var slidenavNextLarge = \"\";\n\n var slidenavPrevious = \"\";\n\n var slidenavPreviousLarge = \"\";\n\n var spinner = \"\";\n\n var totop = \"\";\n\n const icons = {\n spinner,\n totop,\n marker,\n 'close-icon': closeIcon,\n 'close-large': closeLarge,\n 'nav-parent-icon': navParentIcon,\n 'nav-parent-icon-large': navParentIconLarge,\n 'navbar-parent-icon': navbarParentIcon,\n 'navbar-toggle-icon': navbarToggleIcon,\n 'overlay-icon': overlayIcon,\n 'pagination-next': paginationNext,\n 'pagination-previous': paginationPrevious,\n 'search-icon': searchIcon,\n 'search-large': searchLarge,\n 'search-navbar': searchNavbar,\n 'slidenav-next': slidenavNext,\n 'slidenav-next-large': slidenavNextLarge,\n 'slidenav-previous': slidenavPrevious,\n 'slidenav-previous-large': slidenavPreviousLarge\n };\n\n const Icon = {\n install: install$3,\n\n extends: SVG,\n\n args: 'icon',\n\n props: ['icon'],\n\n data: { include: [] },\n\n isIcon: true,\n\n beforeConnect() {\n addClass(this.$el, 'uk-icon');\n },\n\n methods: {\n async getSvg() {\n const icon = getIcon(this.icon);\n\n if (!icon) {\n throw 'Icon not found.';\n }\n\n return icon;\n }\n }\n };\n\n const IconComponent = {\n args: false,\n\n extends: Icon,\n\n data: (vm) => ({\n icon: hyphenate(vm.constructor.options.name)\n }),\n\n beforeConnect() {\n addClass(this.$el, this.$options.id);\n }\n };\n\n const NavParentIcon = {\n extends: IconComponent,\n\n beforeConnect() {\n const icon = this.$props.icon;\n this.icon = closest(this.$el, '.uk-nav-primary') ? icon + \"-large\" : icon;\n }\n };\n\n const Slidenav = {\n extends: IconComponent,\n\n beforeConnect() {\n addClass(this.$el, 'uk-slidenav');\n const icon = this.$props.icon;\n this.icon = hasClass(this.$el, 'uk-slidenav-large') ? icon + \"-large\" : icon;\n }\n };\n\n const Search = {\n extends: IconComponent,\n\n beforeConnect() {\n this.icon =\n hasClass(this.$el, 'uk-search-icon') && parents(this.$el, '.uk-search-large').length ?\n 'search-large' :\n parents(this.$el, '.uk-search-navbar').length ?\n 'search-navbar' :\n this.$props.icon;\n }\n };\n\n const Close = {\n extends: IconComponent,\n\n beforeConnect() {\n this.icon = \"close-\" + (hasClass(this.$el, 'uk-close-large') ? 'large' : 'icon');\n }\n };\n\n const Spinner = {\n extends: IconComponent,\n\n methods: {\n async getSvg() {\n const icon = await Icon.methods.getSvg.call(this);\n\n if (this.ratio !== 1) {\n css($('circle', icon), 'strokeWidth', 1 / this.ratio);\n }\n\n return icon;\n }\n }\n };\n\n const parsed = {};\n function install$3(UIkit) {\n UIkit.icon.add = (name, svg) => {\n const added = isString(name) ? { [name]: svg } : name;\n each(added, (svg, name) => {\n icons[name] = svg;\n delete parsed[name];\n });\n\n if (UIkit._initialized) {\n apply(document.body, (el) =>\n each(UIkit.getComponents(el), (cmp) => {\n cmp.$options.isIcon && cmp.icon in added && cmp.$reset();\n }));\n\n }\n };\n }\n\n function getIcon(icon) {\n if (!icons[icon]) {\n return null;\n }\n\n if (!parsed[icon]) {\n parsed[icon] = $((icons[applyRtl(icon)] || icons[icon]).trim());\n }\n\n return parsed[icon].cloneNode(true);\n }\n\n function applyRtl(icon) {\n return isRtl ? swap(swap(icon, 'left', 'right'), 'previous', 'next') : icon;\n }\n\n const nativeLazyLoad = inBrowser && 'loading' in HTMLImageElement.prototype;\n\n var img = {\n args: 'dataSrc',\n\n props: {\n dataSrc: String,\n sources: String,\n offsetTop: String,\n offsetLeft: String,\n target: String,\n loading: String\n },\n\n data: {\n dataSrc: '',\n sources: false,\n offsetTop: '50vh',\n offsetLeft: '50vw',\n target: false,\n loading: 'lazy'\n },\n\n connected() {\n if (this.loading !== 'lazy') {\n this.load();\n return;\n }\n\n const target = [this.$el, ...queryAll(this.$props.target, this.$el)];\n\n if (nativeLazyLoad && isImg(this.$el)) {\n this.$el.loading = 'lazy';\n setSrcAttrs(this.$el);\n\n if (target.length === 1) {\n return;\n }\n }\n\n ensureSrcAttribute(this.$el);\n\n this.registerObserver(\n observeIntersection(\n target,\n (entries, observer) => {\n this.load();\n observer.disconnect();\n },\n {\n rootMargin: toPx(this.offsetTop, 'height') + \"px \" + toPx(\n this.offsetLeft,\n 'width') + \"px\"\n\n }));\n\n\n },\n\n disconnected() {\n if (this._data.image) {\n this._data.image.onload = '';\n }\n },\n\n methods: {\n load() {\n if (this._data.image) {\n return this._data.image;\n }\n\n const image = isImg(this.$el) ?\n this.$el :\n getImageFromElement(this.$el, this.dataSrc, this.sources);\n\n removeAttr(image, 'loading');\n setSrcAttrs(this.$el, image.currentSrc);\n return this._data.image = image;\n }\n }\n };\n\n function setSrcAttrs(el, src) {\n if (isImg(el)) {\n const parentNode = parent(el);\n const elements = isPicture(parentNode) ? children(parentNode) : [el];\n elements.forEach((el) => setSourceProps(el, el));\n } else if (src) {\n const change = !includes(el.style.backgroundImage, src);\n if (change) {\n css(el, 'backgroundImage', \"url(\" + escape(src) + \")\");\n trigger(el, createEvent('load', false));\n }\n }\n }\n\n const srcProps = ['data-src', 'data-srcset', 'sizes'];\n function setSourceProps(sourceEl, targetEl) {\n srcProps.forEach((prop) => {\n const value = data(sourceEl, prop);\n if (value) {\n attr(targetEl, prop.replace(/^(data-)+/, ''), value);\n }\n });\n }\n\n function getImageFromElement(el, src, sources) {\n const img = new Image();\n\n wrapInPicture(img, sources);\n setSourceProps(el, img);\n img.onload = () => {\n setSrcAttrs(el, img.currentSrc);\n };\n attr(img, 'src', src);\n return img;\n }\n\n function wrapInPicture(img, sources) {\n sources = parseSources(sources);\n\n if (sources.length) {\n const picture = fragment('');\n for (const attrs of sources) {\n const source = fragment('');\n attr(source, attrs);\n append(picture, source);\n }\n append(picture, img);\n }\n }\n\n function parseSources(sources) {\n if (!sources) {\n return [];\n }\n\n if (startsWith(sources, '[')) {\n try {\n sources = JSON.parse(sources);\n } catch (e) {\n sources = [];\n }\n } else {\n sources = parseOptions(sources);\n }\n\n if (!isArray(sources)) {\n sources = [sources];\n }\n\n return sources.filter((source) => !isEmpty(source));\n }\n\n function ensureSrcAttribute(el) {\n if (isImg(el) && !hasAttr(el, 'src')) {\n attr(el, 'src', 'data:image/svg+xml;utf8,');\n }\n }\n\n function isPicture(el) {\n return isTag(el, 'picture');\n }\n\n function isImg(el) {\n return isTag(el, 'img');\n }\n\n var Media = {\n props: {\n media: Boolean\n },\n\n data: {\n media: false\n },\n\n connected() {\n const media = toMedia(this.media, this.$el);\n this.matchMedia = true;\n if (media) {\n this.mediaObj = window.matchMedia(media);\n const handler = () => {\n this.matchMedia = this.mediaObj.matches;\n trigger(this.$el, createEvent('mediachange', false, true, [this.mediaObj]));\n };\n this.offMediaObj = on(this.mediaObj, 'change', () => {\n handler();\n this.$emit('resize');\n });\n handler();\n }\n },\n\n disconnected() {var _this$offMediaObj;\n (_this$offMediaObj = this.offMediaObj) == null ? void 0 : _this$offMediaObj.call(this);\n }\n };\n\n function toMedia(value, element) {\n if (isString(value)) {\n if (startsWith(value, '@')) {\n value = toFloat(css(element, \"--uk-breakpoint-\" + value.substr(1)));\n } else if (isNaN(value)) {\n return value;\n }\n }\n\n return value && isNumeric(value) ? \"(min-width: \" + value + \"px)\" : '';\n }\n\n var leader = {\n mixins: [Class, Media, Resize],\n\n props: {\n fill: String\n },\n\n data: {\n fill: '',\n clsWrapper: 'uk-leader-fill',\n clsHide: 'uk-leader-hide',\n attrFill: 'data-fill'\n },\n\n computed: {\n fill(_ref) {let { fill } = _ref;\n return fill || css(this.$el, '--uk-leader-fill-content');\n }\n },\n\n connected() {\n [this.wrapper] = wrapInner(this.$el, \"\");\n },\n\n disconnected() {\n unwrap(this.wrapper.childNodes);\n },\n\n update: {\n read() {\n const width = Math.trunc(this.$el.offsetWidth / 2);\n\n return {\n width,\n fill: this.fill,\n hide: !this.matchMedia\n };\n },\n\n write(_ref2) {let { width, fill, hide } = _ref2;\n toggleClass(this.wrapper, this.clsHide, hide);\n attr(this.wrapper, this.attrFill, new Array(width).join(fill));\n },\n\n events: ['resize']\n }\n };\n\n var modal = {\n install: install$2,\n\n mixins: [Modal],\n\n data: {\n clsPage: 'uk-modal-page',\n selPanel: '.uk-modal-dialog',\n selClose:\n '.uk-modal-close, .uk-modal-close-default, .uk-modal-close-outside, .uk-modal-close-full'\n },\n\n events: [\n {\n name: 'show',\n\n self: true,\n\n handler() {\n if (hasClass(this.panel, 'uk-margin-auto-vertical')) {\n addClass(this.$el, 'uk-flex');\n } else {\n css(this.$el, 'display', 'block');\n }\n\n height(this.$el); // force reflow\n }\n },\n\n {\n name: 'hidden',\n\n self: true,\n\n handler() {\n css(this.$el, 'display', '');\n removeClass(this.$el, 'uk-flex');\n }\n }]\n\n };\n\n function install$2(_ref) {let { modal } = _ref;\n modal.dialog = function (content, options) {\n const dialog = modal(\"
\" +\n\n content + \"
\",\n\n options);\n\n\n dialog.show();\n\n on(\n dialog.$el,\n 'hidden',\n async () => {\n await Promise.resolve();\n dialog.$destroy(true);\n },\n { self: true });\n\n\n return dialog;\n };\n\n modal.alert = function (message, options) {\n return openDialog(\n (_ref2) => {let { labels } = _ref2;return \"
\" + (\n isString(message) ? message : html(message)) + \"
\";},\n\n\n options,\n (deferred) => deferred.resolve());\n\n };\n\n modal.confirm = function (message, options) {\n return openDialog(\n (_ref3) => {let { labels } = _ref3;return \"
\" + (\n isString(message) ? message : html(message)) + \"
\";},\n\n\n options,\n (deferred) => deferred.reject());\n\n };\n\n modal.prompt = function (message, value, options) {\n return openDialog(\n (_ref4) => {let { labels } = _ref4;return \"
\";},\n\n\n options,\n (deferred) => deferred.resolve(null),\n (dialog) => $('input', dialog.$el).value);\n\n };\n\n modal.labels = {\n ok: 'Ok',\n cancel: 'Cancel'\n };\n\n function openDialog(tmpl, options, hideFn, submitFn) {\n options = { bgClose: false, escClose: true, labels: modal.labels, ...options };\n\n const dialog = modal.dialog(tmpl(options), options);\n const deferred = new Deferred();\n\n let resolved = false;\n\n on(dialog.$el, 'submit', 'form', (e) => {\n e.preventDefault();\n deferred.resolve(submitFn == null ? void 0 : submitFn(dialog));\n resolved = true;\n dialog.hide();\n });\n\n on(dialog.$el, 'hide', () => !resolved && hideFn(deferred));\n\n deferred.promise.dialog = dialog;\n\n return deferred.promise;\n }\n }\n\n var nav = {\n extends: Accordion,\n\n data: {\n targets: '> .uk-parent',\n toggle: '> a',\n content: '> ul'\n }\n };\n\n var navbar = {\n mixins: [Class, Container],\n\n props: {\n dropdown: String,\n align: String,\n clsDrop: String,\n boundary: Boolean,\n dropbar: Boolean,\n dropbarAnchor: Boolean,\n duration: Number,\n mode: Boolean,\n offset: Boolean,\n stretch: Boolean,\n delayShow: Boolean,\n delayHide: Boolean,\n target: Boolean,\n targetX: Boolean,\n targetY: Boolean,\n animation: Boolean,\n animateOut: Boolean\n },\n\n data: {\n dropdown: '.uk-navbar-nav > li > a, .uk-navbar-item, .uk-navbar-toggle',\n align: isRtl ? 'right' : 'left',\n clsDrop: 'uk-navbar-dropdown',\n boundary: true,\n dropbar: false,\n dropbarAnchor: false,\n duration: 200,\n container: false\n },\n\n computed: {\n dropbarAnchor(_ref, $el) {let { dropbarAnchor } = _ref;\n return query(dropbarAnchor, $el) || $el;\n },\n\n dropbar: {\n get(_ref2) {let { dropbar } = _ref2;\n if (!dropbar) {\n return null;\n }\n\n dropbar =\n this._dropbar ||\n query(dropbar, this.$el) ||\n $('+ .uk-navbar-dropbar', this.$el);\n\n return dropbar ? dropbar : this._dropbar = $('
');\n },\n\n watch(dropbar) {\n addClass(dropbar, 'uk-dropbar', 'uk-dropbar-top', 'uk-navbar-dropbar');\n },\n\n immediate: true\n },\n\n dropContainer(_, $el) {\n return this.container || $el;\n },\n\n dropdowns: {\n get(_ref3, $el) {let { clsDrop } = _ref3;\n const dropdowns = $$(\".\" + clsDrop, $el);\n\n if (this.dropContainer !== $el) {\n for (const el of $$(\".\" + clsDrop, this.dropContainer)) {var _this$getDropdown;\n const target = (_this$getDropdown = this.getDropdown(el)) == null ? void 0 : _this$getDropdown.targetEl;\n if (!includes(dropdowns, el) && target && within(target, this.$el)) {\n dropdowns.push(el);\n }\n }\n }\n\n return dropdowns;\n },\n\n watch(dropdowns) {\n this.$create(\n 'drop',\n dropdowns.filter((el) => !this.getDropdown(el)),\n {\n ...this.$props,\n flip: false,\n shift: true,\n pos: \"bottom-\" + this.align,\n boundary: this.boundary === true ? this.$el : this.boundary\n });\n\n },\n\n immediate: true\n },\n\n toggles: {\n get(_ref4, $el) {let { dropdown } = _ref4;\n return $$(dropdown, $el);\n },\n\n watch() {\n const justify = hasClass(this.$el, 'uk-navbar-justify');\n for (const container of $$(\n '.uk-navbar-nav, .uk-navbar-left, .uk-navbar-right',\n this.$el))\n {\n css(container, 'flexGrow', justify ? $$(this.dropdown, container).length : '');\n }\n },\n\n immediate: true\n }\n },\n\n disconnected() {\n this.dropbar && remove$1(this.dropbar);\n delete this._dropbar;\n },\n\n events: [\n {\n name: 'mouseover focusin',\n\n delegate() {\n return this.dropdown;\n },\n\n handler(_ref5) {let { current } = _ref5;\n const active = this.getActive();\n if (\n active &&\n includes(active.mode, 'hover') &&\n active.targetEl &&\n !within(active.targetEl, current) &&\n !active.isDelaying)\n {\n active.hide(false);\n }\n }\n },\n\n {\n name: 'keydown',\n\n delegate() {\n return this.dropdown;\n },\n\n handler(e) {\n const { current, keyCode } = e;\n const active = this.getActive();\n\n if (keyCode === keyMap.DOWN && hasAttr(current, 'aria-expanded')) {\n e.preventDefault();\n\n if (!active || active.targetEl !== current) {\n current.click();\n once(this.dropContainer, 'show', (_ref6) => {let { target } = _ref6;return (\n focusFirstFocusableElement(target));});\n\n } else {\n focusFirstFocusableElement(active.$el);\n }\n }\n\n handleNavItemNavigation(e, this.toggles, active);\n }\n },\n\n {\n name: 'keydown',\n\n el() {\n return this.dropContainer;\n },\n\n delegate() {\n return \".\" + this.clsDrop;\n },\n\n handler(e) {\n const { current, keyCode } = e;\n\n if (!includes(this.dropdowns, current)) {\n return;\n }\n\n const active = this.getActive();\n const elements = $$(selFocusable, current);\n const i = findIndex(elements, (el) => matches(el, ':focus'));\n\n if (keyCode === keyMap.UP) {\n e.preventDefault();\n if (i > 0) {\n elements[i - 1].focus();\n }\n }\n\n if (keyCode === keyMap.DOWN) {\n e.preventDefault();\n if (i < elements.length - 1) {\n elements[i + 1].focus();\n }\n }\n\n if (keyCode === keyMap.ESC) {var _active$targetEl;\n active == null ? void 0 : (_active$targetEl = active.targetEl) == null ? void 0 : _active$targetEl.focus();\n }\n\n handleNavItemNavigation(e, this.toggles, active);\n }\n },\n\n {\n name: 'mouseleave',\n\n el() {\n return this.dropbar;\n },\n\n filter() {\n return this.dropbar;\n },\n\n handler() {\n const active = this.getActive();\n\n if (\n active &&\n includes(active.mode, 'hover') &&\n !this.dropdowns.some((el) => matches(el, ':hover')))\n {\n active.hide();\n }\n }\n },\n\n {\n name: 'beforeshow',\n\n el() {\n return this.dropContainer;\n },\n\n filter() {\n return this.dropbar;\n },\n\n handler(_ref7) {let { target } = _ref7;\n if (!this.isDropbarDrop(target)) {\n return;\n }\n\n if (this.dropbar.previousElementSibling !== this.dropbarAnchor) {\n after(this.dropbarAnchor, this.dropbar);\n }\n\n addClass(target, this.clsDrop + \"-dropbar\");\n }\n },\n\n {\n name: 'show',\n\n el() {\n return this.dropContainer;\n },\n\n filter() {\n return this.dropbar;\n },\n\n handler(_ref8) {let { target } = _ref8;\n if (!this.isDropbarDrop(target)) {\n return;\n }\n\n const drop = this.getDropdown(target);\n this._observer = observeResize([drop.$el, ...drop.target], () => {\n const targetOffsets = parents(target, \".\" + this.clsDrop).\n concat(target).\n map((el) => offset(el));\n const minTop = Math.min(...targetOffsets.map((_ref9) => {let { top } = _ref9;return top;}));\n const maxBottom = Math.max(...targetOffsets.map((_ref10) => {let { bottom } = _ref10;return bottom;}));\n const dropbarOffset = offset(this.dropbar);\n css(this.dropbar, 'top', this.dropbar.offsetTop - (dropbarOffset.top - minTop));\n this.transitionTo(\n maxBottom - minTop + toFloat(css(target, 'marginBottom')),\n target);\n\n });\n }\n },\n\n {\n name: 'beforehide',\n\n el() {\n return this.dropContainer;\n },\n\n filter() {\n return this.dropbar;\n },\n\n handler(e) {\n const active = this.getActive();\n\n if (\n matches(this.dropbar, ':hover') &&\n (active == null ? void 0 : active.$el) === e.target &&\n !this.toggles.some((el) => active.targetEl !== el && matches(el, ':focus')))\n {\n e.preventDefault();\n }\n }\n },\n\n {\n name: 'hide',\n\n el() {\n return this.dropContainer;\n },\n\n filter() {\n return this.dropbar;\n },\n\n handler(_ref11) {var _this$_observer;let { target } = _ref11;\n if (!this.isDropbarDrop(target)) {\n return;\n }\n\n (_this$_observer = this._observer) == null ? void 0 : _this$_observer.disconnect();\n\n const active = this.getActive();\n\n if (!active || (active == null ? void 0 : active.$el) === target) {\n this.transitionTo(0);\n }\n }\n }],\n\n\n methods: {\n getActive() {\n return includes(this.dropdowns, active == null ? void 0 : active.$el) && active;\n },\n\n transitionTo(newHeight, el) {\n const { dropbar } = this;\n const oldHeight = height(dropbar);\n\n el = oldHeight < newHeight && el;\n\n css(el, 'clipPath', \"polygon(0 0,100% 0,100% \" + oldHeight + \"px,0 \" + oldHeight + \"px)\");\n\n height(dropbar, oldHeight);\n\n Transition.cancel([el, dropbar]);\n Promise.all([\n Transition.start(dropbar, { height: newHeight }, this.duration),\n Transition.start(\n el,\n {\n clipPath: \"polygon(0 0,100% 0,100% \" + newHeight + \"px,0 \" + newHeight + \"px)\"\n },\n this.duration)]).\n\n\n catch(noop).\n then(() => css(el, { clipPath: '' }));\n },\n\n getDropdown(el) {\n return this.$getComponent(el, 'drop') || this.$getComponent(el, 'dropdown');\n },\n\n isDropbarDrop(el) {\n return this.getDropdown(el) && hasClass(el, this.clsDrop);\n }\n }\n };\n\n function handleNavItemNavigation(e, toggles, active) {\n const { current, keyCode } = e;\n const target = (active == null ? void 0 : active.targetEl) || current;\n const i = toggles.indexOf(target);\n\n // Left\n if (keyCode === keyMap.LEFT && i > 0) {\n active == null ? void 0 : active.hide(false);\n toggles[i - 1].focus();\n }\n\n // Right\n if (keyCode === keyMap.RIGHT && i < toggles.length - 1) {\n active == null ? void 0 : active.hide(false);\n toggles[i + 1].focus();\n }\n\n if (keyCode === keyMap.TAB) {\n target.focus();\n active == null ? void 0 : active.hide(false);\n }\n }\n\n function focusFirstFocusableElement(el) {\n if (!$(':focus', el)) {var _$;\n (_$ = $(selFocusable, el)) == null ? void 0 : _$.focus();\n }\n }\n\n const keyMap = {\n TAB: 9,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n };\n\n var Swipe = {\n props: {\n swiping: Boolean\n },\n\n data: {\n swiping: true\n },\n\n computed: {\n swipeTarget(props, $el) {\n return $el;\n }\n },\n\n connected() {\n if (!this.swiping) {\n return;\n }\n\n registerEvent(this, {\n el: this.swipeTarget,\n name: pointerDown$1,\n passive: true,\n handler(e) {\n if (!isTouch(e)) {\n return;\n }\n\n // Handle Swipe Gesture\n const pos = getEventPos(e);\n const target = 'tagName' in e.target ? e.target : parent(e.target);\n once(document, pointerUp$1 + \" \" + pointerCancel + \" scroll\", (e) => {\n const { x, y } = getEventPos(e);\n\n // swipe\n if (\n e.type !== 'scroll' && target && x && Math.abs(pos.x - x) > 100 ||\n y && Math.abs(pos.y - y) > 100)\n {\n setTimeout(() => {\n trigger(target, 'swipe');\n trigger(target, \"swipe\" + swipeDirection(pos.x, pos.y, x, y));\n });\n }\n });\n }\n });\n }\n };\n\n function swipeDirection(x1, y1, x2, y2) {\n return Math.abs(x1 - x2) >= Math.abs(y1 - y2) ?\n x1 - x2 > 0 ?\n 'Left' :\n 'Right' :\n y1 - y2 > 0 ?\n 'Up' :\n 'Down';\n }\n\n var offcanvas = {\n mixins: [Modal, Swipe],\n\n args: 'mode',\n\n props: {\n mode: String,\n flip: Boolean,\n overlay: Boolean\n },\n\n data: {\n mode: 'slide',\n flip: false,\n overlay: false,\n clsPage: 'uk-offcanvas-page',\n clsContainer: 'uk-offcanvas-container',\n selPanel: '.uk-offcanvas-bar',\n clsFlip: 'uk-offcanvas-flip',\n clsContainerAnimation: 'uk-offcanvas-container-animation',\n clsSidebarAnimation: 'uk-offcanvas-bar-animation',\n clsMode: 'uk-offcanvas',\n clsOverlay: 'uk-offcanvas-overlay',\n selClose: '.uk-offcanvas-close',\n container: false\n },\n\n computed: {\n clsFlip(_ref) {let { flip, clsFlip } = _ref;\n return flip ? clsFlip : '';\n },\n\n clsOverlay(_ref2) {let { overlay, clsOverlay } = _ref2;\n return overlay ? clsOverlay : '';\n },\n\n clsMode(_ref3) {let { mode, clsMode } = _ref3;\n return clsMode + \"-\" + mode;\n },\n\n clsSidebarAnimation(_ref4) {let { mode, clsSidebarAnimation } = _ref4;\n return mode === 'none' || mode === 'reveal' ? '' : clsSidebarAnimation;\n },\n\n clsContainerAnimation(_ref5) {let { mode, clsContainerAnimation } = _ref5;\n return mode !== 'push' && mode !== 'reveal' ? '' : clsContainerAnimation;\n },\n\n transitionElement(_ref6) {let { mode } = _ref6;\n return mode === 'reveal' ? parent(this.panel) : this.panel;\n }\n },\n\n update: {\n read() {\n if (this.isToggled() && !isVisible(this.$el)) {\n this.hide();\n }\n },\n\n events: ['resize']\n },\n\n events: [\n {\n name: 'touchmove',\n\n self: true,\n passive: false,\n\n filter() {\n return this.overlay;\n },\n\n handler(e) {\n e.cancelable && e.preventDefault();\n }\n },\n\n {\n name: 'show',\n\n self: true,\n\n handler() {\n if (this.mode === 'reveal' && !hasClass(parent(this.panel), this.clsMode)) {\n wrapAll(this.panel, '
');\n addClass(parent(this.panel), this.clsMode);\n }\n\n const { body, scrollingElement } = document;\n\n addClass(body, this.clsContainer, this.clsFlip);\n css(body, 'touch-action', 'pan-y pinch-zoom');\n css(this.$el, 'display', 'block');\n css(this.panel, 'maxWidth', scrollingElement.clientWidth);\n addClass(this.$el, this.clsOverlay);\n addClass(\n this.panel,\n this.clsSidebarAnimation,\n this.mode === 'reveal' ? '' : this.clsMode);\n\n\n height(body); // force reflow\n addClass(body, this.clsContainerAnimation);\n\n this.clsContainerAnimation && suppressUserScale();\n }\n },\n\n {\n name: 'hide',\n\n self: true,\n\n handler() {\n removeClass(document.body, this.clsContainerAnimation);\n css(document.body, 'touch-action', '');\n }\n },\n\n {\n name: 'hidden',\n\n self: true,\n\n handler() {\n this.clsContainerAnimation && resumeUserScale();\n\n if (this.mode === 'reveal') {\n unwrap(this.panel);\n }\n\n removeClass(this.panel, this.clsSidebarAnimation, this.clsMode);\n removeClass(this.$el, this.clsOverlay);\n css(this.$el, 'display', '');\n css(this.panel, 'maxWidth', '');\n removeClass(document.body, this.clsContainer, this.clsFlip);\n }\n },\n\n {\n name: 'swipeLeft swipeRight',\n\n handler(e) {\n if (this.isToggled() && endsWith(e.type, 'Left') ^ this.flip) {\n this.hide();\n }\n }\n }]\n\n };\n\n // Chrome in responsive mode zooms page upon opening offcanvas\n function suppressUserScale() {\n getViewport().content += ',user-scalable=0';\n }\n\n function resumeUserScale() {\n const viewport = getViewport();\n viewport.content = viewport.content.replace(/,user-scalable=0$/, '');\n }\n\n function getViewport() {\n return (\n $('meta[name=\"viewport\"]', document.head) || append(document.head, ''));\n\n }\n\n var overflowAuto = {\n mixins: [Class, Resize],\n\n props: {\n selContainer: String,\n selContent: String,\n minHeight: Number\n },\n\n data: {\n selContainer: '.uk-modal',\n selContent: '.uk-modal-dialog',\n minHeight: 150\n },\n\n computed: {\n container(_ref, $el) {let { selContainer } = _ref;\n return closest($el, selContainer);\n },\n\n content(_ref2, $el) {let { selContent } = _ref2;\n return closest($el, selContent);\n }\n },\n\n resizeTargets() {\n return [this.container, this.content];\n },\n\n update: {\n read() {\n if (!this.content || !this.container || !isVisible(this.$el)) {\n return false;\n }\n\n return {\n max: Math.max(\n this.minHeight,\n height(this.container) - (dimensions$1(this.content).height - height(this.$el)))\n\n };\n },\n\n write(_ref3) {let { max } = _ref3;\n css(this.$el, { minHeight: this.minHeight, maxHeight: max });\n },\n\n events: ['resize']\n }\n };\n\n var responsive = {\n mixins: [Resize],\n\n props: ['width', 'height'],\n\n resizeTargets() {\n return [this.$el, parent(this.$el)];\n },\n\n connected() {\n addClass(this.$el, 'uk-responsive-width');\n },\n\n update: {\n read() {\n return isVisible(this.$el) && this.width && this.height ?\n { width: width(parent(this.$el)), height: this.height } :\n false;\n },\n\n write(dim) {\n height(\n this.$el,\n Dimensions.contain(\n {\n height: this.height,\n width: this.width\n },\n dim).\n height);\n\n },\n\n events: ['resize']\n }\n };\n\n var scroll = {\n props: {\n offset: Number\n },\n\n data: {\n offset: 0\n },\n\n connected() {\n registerClick(this);\n },\n\n disconnected() {\n unregisterClick(this);\n },\n\n methods: {\n async scrollTo(el) {\n el = el && $(el) || document.body;\n\n if (trigger(this.$el, 'beforescroll', [this, el])) {\n await scrollIntoView(el, { offset: this.offset });\n trigger(this.$el, 'scrolled', [this, el]);\n }\n }\n }\n };\n\n const components$2 = new Set();\n function registerClick(cmp) {\n if (!components$2.size) {\n on(document, 'click', clickHandler);\n }\n\n components$2.add(cmp);\n }\n\n function unregisterClick(cmp) {\n components$2.delete(cmp);\n\n if (!components$2.size) {\n off(document, 'click', clickHandler);\n }\n }\n\n function clickHandler(e) {\n if (e.defaultPrevented) {\n return;\n }\n\n for (const component of components$2) {\n if (within(e.target, component.$el)) {\n e.preventDefault();\n component.scrollTo(getTargetElement(component.$el));\n }\n }\n }\n\n function getTargetElement(el) {\n return document.getElementById(decodeURIComponent(el.hash).substring(1));\n }\n\n var scrollspy = {\n mixins: [Scroll],\n\n args: 'cls',\n\n props: {\n cls: String,\n target: String,\n hidden: Boolean,\n offsetTop: Number,\n offsetLeft: Number,\n repeat: Boolean,\n delay: Number\n },\n\n data: () => ({\n cls: '',\n target: false,\n hidden: true,\n offsetTop: 0,\n offsetLeft: 0,\n repeat: false,\n delay: 0,\n inViewClass: 'uk-scrollspy-inview'\n }),\n\n computed: {\n elements: {\n get(_ref, $el) {let { target } = _ref;\n return target ? $$(target, $el) : [$el];\n },\n\n watch(elements, prev) {\n if (this.hidden) {\n // use `opacity:0` instead of `visibility:hidden` to make content focusable with keyboard\n css(filter$1(elements, \":not(.\" + this.inViewClass + \")\"), 'opacity', 0);\n }\n\n if (!isEqual(elements, prev)) {\n this.$reset();\n }\n },\n\n immediate: true\n }\n },\n\n connected() {\n this._data.elements = new Map();\n this.registerObserver(\n observeIntersection(\n this.elements,\n (records) => {\n const elements = this._data.elements;\n for (const { target: el, isIntersecting } of records) {\n if (!elements.has(el)) {\n elements.set(el, {\n cls: data(el, 'uk-scrollspy-class') || this.cls\n });\n }\n\n const state = elements.get(el);\n if (!this.repeat && state.show) {\n continue;\n }\n\n state.show = isIntersecting;\n }\n\n this.$emit();\n },\n {\n rootMargin: toPx(this.offsetTop, 'height') - 1 + \"px \" + (\n toPx(this.offsetLeft, 'width') - 1) + \"px\"\n\n },\n false));\n\n\n },\n\n disconnected() {\n for (const [el, state] of this._data.elements.entries()) {\n removeClass(el, this.inViewClass, (state == null ? void 0 : state.cls) || '');\n }\n },\n\n update: [\n {\n write(data) {\n for (const [el, state] of data.elements.entries()) {\n if (state.show && !state.inview && !state.queued) {\n state.queued = true;\n\n data.promise = (data.promise || Promise.resolve()).\n then(() => new Promise((resolve) => setTimeout(resolve, this.delay))).\n then(() => {\n this.toggle(el, true);\n setTimeout(() => {\n state.queued = false;\n this.$emit();\n }, 300);\n });\n } else if (!state.show && state.inview && !state.queued && this.repeat) {\n this.toggle(el, false);\n }\n }\n }\n }],\n\n\n methods: {\n toggle(el, inview) {\n const state = this._data.elements.get(el);\n\n if (!state) {\n return;\n }\n\n state.off == null ? void 0 : state.off();\n\n css(el, 'opacity', !inview && this.hidden ? 0 : '');\n\n toggleClass(el, this.inViewClass, inview);\n toggleClass(el, state.cls);\n\n if (/\\buk-animation-/.test(state.cls)) {\n const removeAnimationClasses = () => removeClasses(el, 'uk-animation-[\\\\w-]+');\n if (inview) {\n state.off = once(el, 'animationcancel animationend', removeAnimationClasses);\n } else {\n removeAnimationClasses();\n }\n }\n\n trigger(el, inview ? 'inview' : 'outview');\n\n state.inview = inview;\n\n // change to `visibility: hidden` does not trigger observers\n this.$update(el);\n }\n }\n };\n\n var scrollspyNav = {\n mixins: [Scroll],\n\n props: {\n cls: String,\n closest: String,\n scroll: Boolean,\n overflow: Boolean,\n offset: Number\n },\n\n data: {\n cls: 'uk-active',\n closest: false,\n scroll: false,\n overflow: true,\n offset: 0\n },\n\n computed: {\n links: {\n get(_, $el) {\n return $$('a[href*=\"#\"]', $el).filter((el) => el.hash && isSameSiteAnchor(el));\n },\n\n watch(links) {\n if (this.scroll) {\n this.$create('scroll', links, { offset: this.offset || 0 });\n }\n },\n\n immediate: true\n },\n\n elements(_ref) {let { closest: selector } = _ref;\n return closest(this.links, selector || '*');\n }\n },\n\n update: [\n {\n read() {\n const targets = this.links.map(getTargetElement).filter(Boolean);\n\n const { length } = targets;\n\n if (!length || !isVisible(this.$el)) {\n return false;\n }\n\n const [scrollElement] = scrollParents(targets, /auto|scroll/, true);\n const { scrollTop, scrollHeight } = scrollElement;\n const viewport = offsetViewport(scrollElement);\n const max = scrollHeight - viewport.height;\n let active = false;\n\n if (scrollTop === max) {\n active = length - 1;\n } else {\n for (let i = 0; i < targets.length; i++) {\n if (offset(targets[i]).top - viewport.top - this.offset > 0) {\n break;\n }\n active = +i;\n }\n\n if (active === false && this.overflow) {\n active = 0;\n }\n }\n\n return { active };\n },\n\n write(_ref2) {let { active } = _ref2;\n const changed = active !== false && !hasClass(this.elements[active], this.cls);\n\n this.links.forEach((el) => el.blur());\n for (let i = 0; i < this.elements.length; i++) {\n toggleClass(this.elements[i], this.cls, +i === active);\n }\n\n if (changed) {\n trigger(this.$el, 'active', [active, this.elements[active]]);\n }\n },\n\n events: ['scroll', 'resize']\n }]\n\n };\n\n var sticky = {\n mixins: [Class, Media, Resize, Scroll],\n\n props: {\n position: String,\n top: null,\n bottom: null,\n start: null,\n end: null,\n offset: String,\n overflowFlip: Boolean,\n animation: String,\n clsActive: String,\n clsInactive: String,\n clsFixed: String,\n clsBelow: String,\n selTarget: String,\n showOnUp: Boolean,\n targetOffset: Number\n },\n\n data: {\n position: 'top',\n top: false,\n bottom: false,\n start: false,\n end: false,\n offset: 0,\n overflowFlip: false,\n animation: '',\n clsActive: 'uk-active',\n clsInactive: '',\n clsFixed: 'uk-sticky-fixed',\n clsBelow: 'uk-sticky-below',\n selTarget: '',\n showOnUp: false,\n targetOffset: false\n },\n\n computed: {\n selTarget(_ref, $el) {let { selTarget } = _ref;\n return selTarget && $(selTarget, $el) || $el;\n }\n },\n\n resizeTargets() {\n return document.documentElement;\n },\n\n connected() {\n this.start = coerce(this.start || this.top);\n this.end = coerce(this.end || this.bottom);\n\n this.placeholder =\n $('+ .uk-sticky-placeholder', this.$el) ||\n $('
');\n this.isFixed = false;\n this.setActive(false);\n },\n\n disconnected() {\n if (this.isFixed) {\n this.hide();\n removeClass(this.selTarget, this.clsInactive);\n }\n\n remove$1(this.placeholder);\n this.placeholder = null;\n },\n\n events: [\n {\n name: 'resize',\n\n el() {\n return window;\n },\n\n handler() {\n this.$emit('resize');\n }\n },\n {\n name: 'load hashchange popstate',\n\n el() {\n return window;\n },\n\n filter() {\n return this.targetOffset !== false;\n },\n\n handler() {\n const { scrollingElement } = document;\n\n if (!location.hash || scrollingElement.scrollTop === 0) {\n return;\n }\n\n setTimeout(() => {\n const targetOffset = offset($(location.hash));\n const elOffset = offset(this.$el);\n\n if (this.isFixed && intersectRect(targetOffset, elOffset)) {\n scrollingElement.scrollTop =\n targetOffset.top -\n elOffset.height -\n toPx(this.targetOffset, 'height', this.placeholder) -\n toPx(this.offset, 'height', this.placeholder);\n }\n });\n }\n }],\n\n\n update: [\n {\n read(_ref2, types) {let { height: height$1, margin } = _ref2;\n this.inactive = !this.matchMedia || !isVisible(this.$el);\n\n if (this.inactive) {\n return false;\n }\n\n const hide = this.active && types.has('resize');\n if (hide) {\n css(this.selTarget, 'transition', '0s');\n this.hide();\n }\n\n if (!this.active) {\n height$1 = offset(this.$el).height;\n margin = css(this.$el, 'margin');\n }\n\n if (hide) {\n this.show();\n requestAnimationFrame(() => css(this.selTarget, 'transition', ''));\n }\n\n const referenceElement = this.isFixed ? this.placeholder : this.$el;\n const windowHeight = height(window);\n\n let position = this.position;\n if (this.overflowFlip && height$1 > windowHeight) {\n position = position === 'top' ? 'bottom' : 'top';\n }\n\n let offset$1 = toPx(this.offset, 'height', referenceElement);\n if (position === 'bottom' && (height$1 < windowHeight || this.overflowFlip)) {\n offset$1 += windowHeight - height$1;\n }\n\n const overflow = this.overflowFlip ?\n 0 :\n Math.max(0, height$1 + offset$1 - windowHeight);\n const topOffset = offset(referenceElement).top;\n\n const start =\n (this.start === false ?\n topOffset :\n parseProp(this.start, this.$el, topOffset)) - offset$1;\n const end =\n this.end === false ?\n document.scrollingElement.scrollHeight - windowHeight :\n parseProp(this.end, this.$el, topOffset + height$1, true) -\n offset(this.$el).height +\n overflow -\n offset$1;\n\n return {\n start,\n end,\n offset: offset$1,\n overflow,\n topOffset,\n height: height$1,\n margin,\n width: dimensions$1(referenceElement).width,\n top: offsetPosition(referenceElement)[0]\n };\n },\n\n write(_ref3) {let { height, margin } = _ref3;\n const { placeholder } = this;\n\n css(placeholder, { height, margin });\n\n if (!within(placeholder, document)) {\n after(this.$el, placeholder);\n placeholder.hidden = true;\n }\n },\n\n events: ['resize']\n },\n\n {\n read(_ref4)\n\n\n\n\n\n\n {let { scroll: prevScroll = 0, dir: prevDir = 'down', overflow, overflowScroll = 0, start, end } = _ref4;\n const scroll = document.scrollingElement.scrollTop;\n const dir = prevScroll <= scroll ? 'down' : 'up';\n\n return {\n dir,\n prevDir,\n scroll,\n prevScroll,\n offsetParentTop: offset(\n (this.isFixed ? this.placeholder : this.$el).offsetParent).\n top,\n overflowScroll: clamp(\n overflowScroll + clamp(scroll, start, end) - clamp(prevScroll, start, end),\n 0,\n overflow)\n\n };\n },\n\n write(data, types) {\n const isScrollUpdate = types.has('scroll');\n const {\n initTimestamp = 0,\n dir,\n prevDir,\n scroll,\n prevScroll = 0,\n top,\n start,\n topOffset,\n height\n } = data;\n\n if (\n scroll < 0 ||\n scroll === prevScroll && isScrollUpdate ||\n this.showOnUp && !isScrollUpdate && !this.isFixed)\n {\n return;\n }\n\n const now = Date.now();\n if (now - initTimestamp > 300 || dir !== prevDir) {\n data.initScroll = scroll;\n data.initTimestamp = now;\n }\n\n if (\n this.showOnUp &&\n !this.isFixed &&\n Math.abs(data.initScroll - scroll) <= 30 &&\n Math.abs(prevScroll - scroll) <= 10)\n {\n return;\n }\n\n if (\n this.inactive ||\n scroll < start ||\n this.showOnUp && (\n scroll <= start ||\n dir === 'down' && isScrollUpdate ||\n dir === 'up' && !this.isFixed && scroll <= topOffset + height))\n {\n if (!this.isFixed) {\n if (Animation.inProgress(this.$el) && top > scroll) {\n Animation.cancel(this.$el);\n this.hide();\n }\n\n return;\n }\n\n this.isFixed = false;\n\n if (this.animation && scroll > topOffset) {\n Animation.cancel(this.$el);\n Animation.out(this.$el, this.animation).then(() => this.hide(), noop);\n } else {\n this.hide();\n }\n } else if (this.isFixed) {\n this.update();\n } else if (this.animation && scroll > topOffset) {\n Animation.cancel(this.$el);\n this.show();\n Animation.in(this.$el, this.animation).catch(noop);\n } else {\n this.show();\n }\n },\n\n events: ['resize', 'scroll']\n }],\n\n\n methods: {\n show() {\n this.isFixed = true;\n this.update();\n this.placeholder.hidden = false;\n },\n\n hide() {\n this.setActive(false);\n removeClass(this.$el, this.clsFixed, this.clsBelow);\n css(this.$el, { position: '', top: '', width: '' });\n this.placeholder.hidden = true;\n },\n\n update() {\n let {\n width,\n scroll = 0,\n overflow,\n overflowScroll = 0,\n start,\n end,\n offset,\n topOffset,\n height,\n offsetParentTop\n } = this._data;\n const active = start !== 0 || scroll > start;\n let position = 'fixed';\n\n if (scroll > end) {\n offset += end - offsetParentTop;\n position = 'absolute';\n }\n\n if (overflow) {\n offset -= overflowScroll;\n }\n\n css(this.$el, {\n position,\n top: offset + \"px\",\n width\n });\n\n this.setActive(active);\n toggleClass(this.$el, this.clsBelow, scroll > topOffset + height);\n addClass(this.$el, this.clsFixed);\n },\n\n setActive(active) {\n const prev = this.active;\n this.active = active;\n if (active) {\n replaceClass(this.selTarget, this.clsInactive, this.clsActive);\n prev !== active && trigger(this.$el, 'active');\n } else {\n replaceClass(this.selTarget, this.clsActive, this.clsInactive);\n prev !== active && trigger(this.$el, 'inactive');\n }\n }\n }\n };\n\n function parseProp(value, el, propOffset, padding) {\n if (!value) {\n return 0;\n }\n\n if (isNumeric(value) || isString(value) && value.match(/^-?\\d/)) {\n return propOffset + toPx(value, 'height', el, true);\n } else {\n const refElement = value === true ? parent(el) : query(value, el);\n return (\n offset(refElement).bottom - (\n padding && refElement && within(el, refElement) ?\n toFloat(css(refElement, 'paddingBottom')) :\n 0));\n\n }\n }\n\n function coerce(value) {\n if (value === 'true') {\n return true;\n } else if (value === 'false') {\n return false;\n }\n return value;\n }\n\n var Switcher = {\n mixins: [Lazyload, Swipe, Togglable],\n\n args: 'connect',\n\n props: {\n connect: String,\n toggle: String,\n itemNav: String,\n active: Number\n },\n\n data: {\n connect: '~.uk-switcher',\n toggle: '> * > :first-child',\n itemNav: false,\n active: 0,\n cls: 'uk-active',\n attrItem: 'uk-switcher-item'\n },\n\n computed: {\n connects: {\n get(_ref, $el) {let { connect } = _ref;\n return queryAll(connect, $el);\n },\n\n watch(connects) {\n if (this.swiping) {\n css(connects, 'touchAction', 'pan-y pinch-zoom');\n }\n },\n\n document: true,\n immediate: true\n },\n\n connectChildren: {\n get() {\n return this.connects.map((el) => children(el)).flat();\n },\n\n watch() {\n const index = this.index();\n for (const el of this.connects) {\n children(el).forEach((child, i) => toggleClass(child, this.cls, i === index));\n this.lazyload(this.$el, children(el));\n }\n },\n\n immediate: true\n },\n\n toggles: {\n get(_ref2, $el) {let { toggle } = _ref2;\n return $$(toggle, $el).filter(\n (el) => !matches(el, '.uk-disabled *, .uk-disabled, [disabled]'));\n\n },\n\n watch(toggles) {\n const active = this.index();\n this.show(~active ? active : toggles[this.active] || toggles[0]);\n },\n\n immediate: true\n },\n\n children() {\n return children(this.$el).filter((child) =>\n this.toggles.some((toggle) => within(toggle, child)));\n\n },\n\n swipeTarget() {\n return this.connects;\n }\n },\n\n events: [\n {\n name: 'click',\n\n delegate() {\n return this.toggle;\n },\n\n handler(e) {\n e.preventDefault();\n this.show(e.current);\n }\n },\n\n {\n name: 'click',\n\n el() {\n return this.connects.concat(this.itemNav ? queryAll(this.itemNav, this.$el) : []);\n },\n\n delegate() {\n return \"[\" + this.attrItem + \"],[data-\" + this.attrItem + \"]\";\n },\n\n handler(e) {\n e.preventDefault();\n this.show(data(e.current, this.attrItem));\n }\n },\n\n {\n name: 'swipeRight swipeLeft',\n\n filter() {\n return this.swiping;\n },\n\n el() {\n return this.connects;\n },\n\n handler(_ref3) {let { type } = _ref3;\n this.show(endsWith(type, 'Left') ? 'next' : 'previous');\n }\n }],\n\n\n methods: {\n index() {\n return findIndex(this.children, (el) => hasClass(el, this.cls));\n },\n\n show(item) {\n const prev = this.index();\n const next = getIndex(item, this.toggles, prev);\n const active = getIndex(this.children[next], children(this.$el));\n children(this.$el).forEach((child, i) => {\n toggleClass(child, this.cls, active === i);\n attr(this.toggles[i], 'aria-expanded', active === i);\n });\n\n const animate = prev >= 0 && prev !== next;\n this.connects.forEach(async (_ref4) => {let { children } = _ref4;\n await this.toggleElement(\n toNodes(children).filter((child) => hasClass(child, this.cls)),\n false,\n animate);\n\n await this.toggleElement(children[active], true, animate);\n });\n }\n }\n };\n\n var tab = {\n mixins: [Class],\n\n extends: Switcher,\n\n props: {\n media: Boolean\n },\n\n data: {\n media: 960,\n attrItem: 'uk-tab-item'\n },\n\n connected() {\n const cls = hasClass(this.$el, 'uk-tab-left') ?\n 'uk-tab-left' :\n hasClass(this.$el, 'uk-tab-right') ?\n 'uk-tab-right' :\n false;\n\n if (cls) {\n this.$create('toggle', this.$el, { cls, mode: 'media', media: this.media });\n }\n }\n };\n\n const KEY_SPACE = 32;\n\n var toggle = {\n mixins: [Lazyload, Media, Togglable],\n\n args: 'target',\n\n props: {\n href: String,\n target: null,\n mode: 'list',\n queued: Boolean\n },\n\n data: {\n href: false,\n target: false,\n mode: 'click',\n queued: true\n },\n\n computed: {\n target: {\n get(_ref, $el) {let { href, target } = _ref;\n target = queryAll(target || href, $el);\n return target.length && target || [$el];\n },\n\n watch() {\n this.updateAria();\n this.lazyload(this.$el, this.target);\n },\n\n document: true,\n immediate: true\n }\n },\n\n connected() {\n if (!includes(this.mode, 'media') && !isFocusable(this.$el)) {\n attr(this.$el, 'tabindex', '0');\n }\n },\n\n events: [\n {\n name: pointerDown$1,\n\n filter() {\n return includes(this.mode, 'hover');\n },\n\n handler(e) {\n this._preventClick = null;\n\n if (!isTouch(e) || this._showState) {\n return;\n }\n\n // Clicking a button does not give it focus on all browsers and platforms\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#clicking_and_focus\n trigger(this.$el, 'focus');\n once(\n document,\n pointerDown$1,\n () => trigger(this.$el, 'blur'),\n true,\n (e) => !within(e.target, this.$el));\n\n\n // Prevent initial click to prevent double toggle through focus + click\n if (includes(this.mode, 'click')) {\n this._preventClick = true;\n }\n }\n },\n\n {\n name: pointerEnter + \" \" + pointerLeave + \" focus blur\",\n\n filter() {\n return includes(this.mode, 'hover');\n },\n\n handler(e) {\n if (isTouch(e)) {\n return;\n }\n\n const show = includes([pointerEnter, 'focus'], e.type);\n const expanded = attr(this.$el, 'aria-expanded');\n\n // Skip hide if still hovered or focused\n if (\n !show && (\n e.type === pointerLeave && matches(this.$el, ':focus') ||\n e.type === 'blur' && matches(this.$el, ':hover')))\n {\n return;\n }\n\n // Skip if state does not change e.g. hover + focus received\n if (this._showState && show && expanded !== this._showState) {\n // Ensure reset if state has changed through click\n if (!show) {\n this._showState = null;\n }\n return;\n }\n\n this._showState = show ? expanded : null;\n\n this.toggle(\"toggle\" + (show ? 'show' : 'hide'));\n }\n },\n\n {\n name: 'keydown',\n\n filter() {\n return includes(this.mode, 'click') && !isTag(this.$el, 'input');\n },\n\n handler(e) {\n if (e.keyCode === KEY_SPACE) {\n e.preventDefault();\n this.$el.click();\n }\n }\n },\n\n {\n name: 'click',\n\n filter() {\n return ['click', 'hover'].some((mode) => includes(this.mode, mode));\n },\n\n handler(e) {\n let link;\n if (\n this._preventClick ||\n closest(e.target, 'a[href=\"#\"], a[href=\"\"]') ||\n (link = closest(e.target, 'a[href]')) && (\n attr(this.$el, 'aria-expanded') !== 'true' ||\n link.hash && matches(this.target, link.hash)))\n {\n e.preventDefault();\n }\n\n if (!this._preventClick && includes(this.mode, 'click')) {\n this.toggle();\n }\n }\n },\n\n {\n name: 'hide show',\n\n self: true,\n\n el() {\n return this.target;\n },\n\n handler(_ref2) {let { target, type } = _ref2;\n this.updateAria(target === this.target[0] && type === 'show');\n }\n },\n\n {\n name: 'mediachange',\n\n filter() {\n return includes(this.mode, 'media');\n },\n\n el() {\n return this.target;\n },\n\n handler(e, mediaObj) {\n if (mediaObj.matches ^ this.isToggled(this.target)) {\n this.toggle();\n }\n }\n }],\n\n\n methods: {\n async toggle(type) {\n if (!trigger(this.target, type || 'toggle', [this])) {\n return;\n }\n\n if (!this.queued) {\n return this.toggleElement(this.target);\n }\n\n const leaving = this.target.filter((el) => hasClass(el, this.clsLeave));\n\n if (leaving.length) {\n for (const el of this.target) {\n const isLeaving = includes(leaving, el);\n this.toggleElement(el, isLeaving, isLeaving);\n }\n return;\n }\n\n const toggled = this.target.filter(this.isToggled);\n await this.toggleElement(toggled, false);\n await this.toggleElement(\n this.target.filter((el) => !includes(toggled, el)),\n true);\n\n },\n\n updateAria(toggled) {\n if (includes(this.mode, 'media')) {\n return;\n }\n\n attr(\n this.$el,\n 'aria-expanded',\n isBoolean(toggled) ? toggled : this.isToggled(this.target));\n\n }\n }\n };\n\n var components$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Accordion: Accordion,\n Alert: alert,\n Cover: cover,\n Drop: drop,\n Dropdown: drop,\n FormCustom: formCustom,\n Grid: grid,\n HeightMatch: heightMatch,\n HeightViewport: heightViewport,\n Icon: Icon,\n Img: img,\n Leader: leader,\n Margin: Margin,\n Modal: modal,\n Nav: nav,\n Navbar: navbar,\n Offcanvas: offcanvas,\n OverflowAuto: overflowAuto,\n Responsive: responsive,\n Scroll: scroll,\n Scrollspy: scrollspy,\n ScrollspyNav: scrollspyNav,\n Sticky: sticky,\n Svg: SVG,\n Switcher: Switcher,\n Tab: tab,\n Toggle: toggle,\n Video: Video,\n Close: Close,\n Spinner: Spinner,\n NavParentIcon: NavParentIcon,\n SlidenavNext: Slidenav,\n SlidenavPrevious: Slidenav,\n SearchIcon: Search,\n Marker: IconComponent,\n NavbarParentIcon: IconComponent,\n NavbarToggleIcon: IconComponent,\n OverlayIcon: IconComponent,\n PaginationNext: IconComponent,\n PaginationPrevious: IconComponent,\n Totop: IconComponent\n });\n\n // register components\n each(components$1, (component, name) => UIkit.component(name, component));\n\n boot(UIkit);\n\n const units = ['days', 'hours', 'minutes', 'seconds'];\n\n var countdown = {\n mixins: [Class],\n\n props: {\n date: String,\n clsWrapper: String\n },\n\n data: {\n date: '',\n clsWrapper: '.uk-countdown-%unit%'\n },\n\n connected() {\n this.date = Date.parse(this.$props.date);\n this.start();\n },\n\n disconnected() {\n this.stop();\n },\n\n events: [\n {\n name: 'visibilitychange',\n\n el() {\n return document;\n },\n\n handler() {\n if (document.hidden) {\n this.stop();\n } else {\n this.start();\n }\n }\n }],\n\n\n methods: {\n start() {\n this.stop();\n this.update();\n this.timer = setInterval(this.update, 1000);\n },\n\n stop() {\n clearInterval(this.timer);\n },\n\n update() {\n const timespan = getTimeSpan(this.date);\n\n if (!this.date || timespan.total <= 0) {\n this.stop();\n\n timespan.days = timespan.hours = timespan.minutes = timespan.seconds = 0;\n }\n\n for (const unit of units) {\n const el = $(this.clsWrapper.replace('%unit%', unit), this.$el);\n\n if (!el) {\n continue;\n }\n\n let digits = String(Math.trunc(timespan[unit]));\n\n digits = digits.length < 2 ? \"0\" + digits : digits;\n\n if (el.textContent !== digits) {\n digits = digits.split('');\n\n if (digits.length !== el.children.length) {\n html(el, digits.map(() => '').join(''));\n }\n\n digits.forEach((digit, i) => el.children[i].textContent = digit);\n }\n }\n }\n }\n };\n\n function getTimeSpan(date) {\n const total = date - Date.now();\n\n return {\n total,\n seconds: total / 1000 % 60,\n minutes: total / 1000 / 60 % 60,\n hours: total / 1000 / 60 / 60 % 24,\n days: total / 1000 / 60 / 60 / 24\n };\n }\n\n const clsLeave = 'uk-transition-leave';\n const clsEnter = 'uk-transition-enter';\n\n function fade(action, target, duration, stagger) {if (stagger === void 0) {stagger = 0;}\n const index = transitionIndex(target, true);\n const propsIn = { opacity: 1 };\n const propsOut = { opacity: 0 };\n\n const wrapIndexFn = (fn) => () => index === transitionIndex(target) ? fn() : Promise.reject();\n\n const leaveFn = wrapIndexFn(async () => {\n addClass(target, clsLeave);\n\n await Promise.all(\n getTransitionNodes(target).map(\n (child, i) =>\n new Promise((resolve) =>\n setTimeout(\n () =>\n Transition.start(child, propsOut, duration / 2, 'ease').then(\n resolve),\n\n i * stagger))));\n\n\n\n\n\n removeClass(target, clsLeave);\n });\n\n const enterFn = wrapIndexFn(async () => {\n const oldHeight = height(target);\n\n addClass(target, clsEnter);\n action();\n\n css(children(target), { opacity: 0 });\n\n // Ensure UIkit updates have propagated\n await awaitFrame$1();\n\n const nodes = children(target);\n const newHeight = height(target);\n\n // Ensure Grid cells do not stretch when height is applied\n css(target, 'alignContent', 'flex-start');\n height(target, oldHeight);\n\n const transitionNodes = getTransitionNodes(target);\n css(nodes, propsOut);\n\n const transitions = transitionNodes.map(async (child, i) => {\n await awaitTimeout(i * stagger);\n await Transition.start(child, propsIn, duration / 2, 'ease');\n });\n\n if (oldHeight !== newHeight) {\n transitions.push(\n Transition.start(\n target,\n { height: newHeight },\n duration / 2 + transitionNodes.length * stagger,\n 'ease'));\n\n\n }\n\n await Promise.all(transitions).then(() => {\n removeClass(target, clsEnter);\n if (index === transitionIndex(target)) {\n css(target, { height: '', alignContent: '' });\n css(nodes, { opacity: '' });\n delete target.dataset.transition;\n }\n });\n });\n\n return hasClass(target, clsLeave) ?\n waitTransitionend(target).then(enterFn) :\n hasClass(target, clsEnter) ?\n waitTransitionend(target).then(leaveFn).then(enterFn) :\n leaveFn().then(enterFn);\n }\n\n function transitionIndex(target, next) {\n if (next) {\n target.dataset.transition = 1 + transitionIndex(target);\n }\n\n return toNumber(target.dataset.transition) || 0;\n }\n\n function waitTransitionend(target) {\n return Promise.all(\n children(target).\n filter(Transition.inProgress).\n map(\n (el) =>\n new Promise((resolve) => once(el, 'transitionend transitioncanceled', resolve))));\n\n\n }\n\n function getTransitionNodes(target) {\n return getRows(children(target)).reduce(\n (nodes, row) =>\n nodes.concat(\n sortBy$1(\n row.filter((el) => isInView(el)),\n 'offsetLeft')),\n\n\n []);\n\n }\n\n function awaitFrame$1() {\n return new Promise((resolve) => requestAnimationFrame(resolve));\n }\n\n function awaitTimeout(timeout) {\n return new Promise((resolve) => setTimeout(resolve, timeout));\n }\n\n async function slide (action, target, duration) {\n await awaitFrame();\n\n let nodes = children(target);\n\n // Get current state\n const currentProps = nodes.map((el) => getProps(el, true));\n const targetProps = { ...css(target, ['height', 'padding']), display: 'block' };\n\n // Cancel previous animations\n await Promise.all(nodes.concat(target).map(Transition.cancel));\n\n // Adding, sorting, removing nodes\n action();\n\n // Find new nodes\n nodes = nodes.concat(children(target).filter((el) => !includes(nodes, el)));\n\n // Wait for update to propagate\n await Promise.resolve();\n\n // Force update\n fastdom.flush();\n\n // Get new state\n const targetStyle = attr(target, 'style');\n const targetPropsTo = css(target, ['height', 'padding']);\n const [propsTo, propsFrom] = getTransitionProps(target, nodes, currentProps);\n const attrsTo = nodes.map((el) => ({\n class: attr(el, 'class'),\n style: attr(el, 'style')\n }));\n\n // Reset to previous state\n nodes.forEach((el, i) => propsFrom[i] && css(el, propsFrom[i]));\n css(target, targetProps);\n\n // Start transitions on next frame\n await awaitFrame();\n\n const transitions = nodes.\n map((el, i) => parent(el) === target && Transition.start(el, propsTo[i], duration, 'ease')).\n concat(Transition.start(target, targetPropsTo, duration, 'ease'));\n\n try {\n await Promise.all(transitions);\n nodes.forEach((el, i) => {\n attr(el, attrsTo[i]);\n if (parent(el) === target) {\n css(el, 'display', propsTo[i].opacity === 0 ? 'none' : '');\n }\n });\n attr(target, 'style', targetStyle);\n } catch (e) {\n attr(nodes, 'style', '');\n resetProps(target, targetProps);\n }\n }\n\n function getProps(el, opacity) {\n const zIndex = css(el, 'zIndex');\n\n return isVisible(el) ?\n {\n display: '',\n opacity: opacity ? css(el, 'opacity') : '0',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: zIndex === 'auto' ? index(el) : zIndex,\n ...getPositionWithMargin(el)\n } :\n false;\n }\n\n function getTransitionProps(target, nodes, currentProps) {\n const propsTo = nodes.map((el, i) =>\n parent(el) && i in currentProps ?\n currentProps[i] ?\n isVisible(el) ?\n getPositionWithMargin(el) :\n { opacity: 0 } :\n { opacity: isVisible(el) ? 1 : 0 } :\n false);\n\n\n const propsFrom = propsTo.map((props, i) => {\n const from = parent(nodes[i]) === target && (currentProps[i] || getProps(nodes[i]));\n\n if (!from) {\n return false;\n }\n\n if (!props) {\n delete from.opacity;\n } else if (!('opacity' in props)) {\n const { opacity } = from;\n\n if (opacity % 1) {\n props.opacity = 1;\n } else {\n delete from.opacity;\n }\n }\n\n return from;\n });\n\n return [propsTo, propsFrom];\n }\n\n function resetProps(el, props) {\n for (const prop in props) {\n css(el, prop, '');\n }\n }\n\n function getPositionWithMargin(el) {\n const { height, width } = offset(el);\n\n return {\n height,\n width,\n transform: '',\n ...position(el),\n ...css(el, ['marginTop', 'marginLeft'])\n };\n }\n\n function awaitFrame() {\n return new Promise((resolve) => requestAnimationFrame(resolve));\n }\n\n var Animate = {\n props: {\n duration: Number,\n animation: Boolean\n },\n\n data: {\n duration: 150,\n animation: 'slide'\n },\n\n methods: {\n animate(action, target) {if (target === void 0) {target = this.$el;}\n const name = this.animation;\n const animationFn =\n name === 'fade' ?\n fade :\n name === 'delayed-fade' ?\n function () {for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}return fade(...args, 40);} :\n name ?\n slide :\n () => {\n action();\n return Promise.resolve();\n };\n\n return animationFn(action, target, this.duration).catch(noop);\n }\n }\n };\n\n var filter = {\n mixins: [Animate],\n\n args: 'target',\n\n props: {\n target: Boolean,\n selActive: Boolean\n },\n\n data: {\n target: null,\n selActive: false,\n attrItem: 'uk-filter-control',\n cls: 'uk-active',\n duration: 250\n },\n\n computed: {\n toggles: {\n get(_ref, $el) {let { attrItem } = _ref;\n return $$(\"[\" + attrItem + \"],[data-\" + attrItem + \"]\", $el);\n },\n\n watch() {\n this.updateState();\n\n if (this.selActive !== false) {\n const actives = $$(this.selActive, this.$el);\n this.toggles.forEach((el) => toggleClass(el, this.cls, includes(actives, el)));\n }\n },\n\n immediate: true\n },\n\n children: {\n get(_ref2, $el) {let { target } = _ref2;\n return $$(target + \" > *\", $el);\n },\n\n watch(list, old) {\n if (old && !isEqualList(list, old)) {\n this.updateState();\n }\n },\n\n immediate: true\n }\n },\n\n events: [\n {\n name: 'click',\n\n delegate() {\n return \"[\" + this.attrItem + \"],[data-\" + this.attrItem + \"]\";\n },\n\n handler(e) {\n e.preventDefault();\n this.apply(e.current);\n }\n }],\n\n\n methods: {\n apply(el) {\n const prevState = this.getState();\n const newState = mergeState(el, this.attrItem, this.getState());\n\n if (!isEqualState(prevState, newState)) {\n this.setState(newState);\n }\n },\n\n getState() {\n return this.toggles.\n filter((item) => hasClass(item, this.cls)).\n reduce((state, el) => mergeState(el, this.attrItem, state), {\n filter: { '': '' },\n sort: []\n });\n },\n\n async setState(state, animate) {if (animate === void 0) {animate = true;}\n state = { filter: { '': '' }, sort: [], ...state };\n\n trigger(this.$el, 'beforeFilter', [this, state]);\n\n this.toggles.forEach((el) =>\n toggleClass(el, this.cls, !!matchFilter(el, this.attrItem, state)));\n\n\n await Promise.all(\n $$(this.target, this.$el).map((target) => {\n const filterFn = () => {\n applyState(state, target, children(target));\n this.$update(this.$el);\n };\n return animate ? this.animate(filterFn, target) : filterFn();\n }));\n\n\n trigger(this.$el, 'afterFilter', [this]);\n },\n\n updateState() {\n fastdom.write(() => this.setState(this.getState(), false));\n }\n }\n };\n\n function getFilter(el, attr) {\n return parseOptions(data(el, attr), ['filter']);\n }\n\n function isEqualState(stateA, stateB) {\n return ['filter', 'sort'].every((prop) => isEqual(stateA[prop], stateB[prop]));\n }\n\n function applyState(state, target, children) {\n const selector = getSelector(state);\n\n children.forEach((el) => css(el, 'display', selector && !matches(el, selector) ? 'none' : ''));\n\n const [sort, order] = state.sort;\n\n if (sort) {\n const sorted = sortItems(children, sort, order);\n if (!isEqual(sorted, children)) {\n append(target, sorted);\n }\n }\n }\n\n function mergeState(el, attr, state) {\n const { filter, group, sort, order = 'asc' } = getFilter(el, attr);\n\n if (filter || isUndefined(sort)) {\n if (group) {\n if (filter) {\n delete state.filter[''];\n state.filter[group] = filter;\n } else {\n delete state.filter[group];\n\n if (isEmpty(state.filter) || '' in state.filter) {\n state.filter = { '': filter || '' };\n }\n }\n } else {\n state.filter = { '': filter || '' };\n }\n }\n\n if (!isUndefined(sort)) {\n state.sort = [sort, order];\n }\n\n return state;\n }\n\n function matchFilter(\n el,\n attr, _ref3)\n\n {let { filter: stateFilter = { '': '' }, sort: [stateSort, stateOrder] } = _ref3;\n const { filter = '', group = '', sort, order = 'asc' } = getFilter(el, attr);\n\n return isUndefined(sort) ?\n group in stateFilter && filter === stateFilter[group] ||\n !filter && group && !(group in stateFilter) && !stateFilter[''] :\n stateSort === sort && stateOrder === order;\n }\n\n function isEqualList(listA, listB) {\n return listA.length === listB.length && listA.every((el) => listB.includes(el));\n }\n\n function getSelector(_ref4) {let { filter } = _ref4;\n let selector = '';\n each(filter, (value) => selector += value || '');\n return selector;\n }\n\n function sortItems(nodes, sort, order) {\n return [...nodes].sort(\n (a, b) =>\n data(a, sort).localeCompare(data(b, sort), undefined, { numeric: true }) * (\n order === 'asc' || -1));\n\n }\n\n var Animations$2 = {\n slide: {\n show(dir) {\n return [{ transform: translate(dir * -100) }, { transform: translate() }];\n },\n\n percent(current) {\n return translated(current);\n },\n\n translate(percent, dir) {\n return [\n { transform: translate(dir * -100 * percent) },\n { transform: translate(dir * 100 * (1 - percent)) }];\n\n }\n }\n };\n\n function translated(el) {\n return Math.abs(css(el, 'transform').split(',')[4] / el.offsetWidth) || 0;\n }\n\n function translate(value, unit) {if (value === void 0) {value = 0;}if (unit === void 0) {unit = '%';}\n value += value ? unit : '';\n return \"translate3d(\" + value + \", 0, 0)\";\n }\n\n function scale3d(value) {\n return \"scale3d(\" + value + \", \" + value + \", 1)\";\n }\n\n var Animations$1 = {\n ...Animations$2,\n fade: {\n show() {\n return [{ opacity: 0 }, { opacity: 1 }];\n },\n\n percent(current) {\n return 1 - css(current, 'opacity');\n },\n\n translate(percent) {\n return [{ opacity: 1 - percent }, { opacity: percent }];\n }\n },\n\n scale: {\n show() {\n return [\n { opacity: 0, transform: scale3d(1 - 0.2) },\n { opacity: 1, transform: scale3d(1) }];\n\n },\n\n percent(current) {\n return 1 - css(current, 'opacity');\n },\n\n translate(percent) {\n return [\n { opacity: 1 - percent, transform: scale3d(1 - 0.2 * percent) },\n { opacity: percent, transform: scale3d(1 - 0.2 + 0.2 * percent) }];\n\n }\n }\n };\n\n function Transitioner$1(prev, next, dir, _ref) {let { animation, easing } = _ref;\n const { percent, translate, show = noop } = animation;\n const props = show(dir);\n const deferred = new Deferred();\n\n return {\n dir,\n\n show(duration, percent, linear) {if (percent === void 0) {percent = 0;}\n const timing = linear ? 'linear' : easing;\n duration -= Math.round(duration * clamp(percent, -1, 1));\n\n this.translate(percent);\n\n triggerUpdate$1(next, 'itemin', { percent, duration, timing, dir });\n triggerUpdate$1(prev, 'itemout', { percent: 1 - percent, duration, timing, dir });\n\n Promise.all([\n Transition.start(next, props[1], duration, timing),\n Transition.start(prev, props[0], duration, timing)]).\n then(() => {\n this.reset();\n deferred.resolve();\n }, noop);\n\n return deferred.promise;\n },\n\n cancel() {\n Transition.cancel([next, prev]);\n },\n\n reset() {\n for (const prop in props[0]) {\n css([next, prev], prop, '');\n }\n },\n\n forward(duration, percent) {if (percent === void 0) {percent = this.percent();}\n Transition.cancel([next, prev]);\n return this.show(duration, percent, true);\n },\n\n translate(percent) {\n this.reset();\n\n const props = translate(percent, dir);\n css(next, props[1]);\n css(prev, props[0]);\n triggerUpdate$1(next, 'itemtranslatein', { percent, dir });\n triggerUpdate$1(prev, 'itemtranslateout', { percent: 1 - percent, dir });\n },\n\n percent() {\n return percent(prev || next, next, dir);\n },\n\n getDistance() {\n return prev == null ? void 0 : prev.offsetWidth;\n }\n };\n }\n\n function triggerUpdate$1(el, type, data) {\n trigger(el, createEvent(type, false, false, data));\n }\n\n var SliderAutoplay = {\n props: {\n autoplay: Boolean,\n autoplayInterval: Number,\n pauseOnHover: Boolean\n },\n\n data: {\n autoplay: false,\n autoplayInterval: 7000,\n pauseOnHover: true\n },\n\n connected() {\n this.autoplay && this.startAutoplay();\n },\n\n disconnected() {\n this.stopAutoplay();\n },\n\n update() {\n attr(this.slides, 'tabindex', '-1');\n },\n\n events: [\n {\n name: 'visibilitychange',\n\n el() {\n return document;\n },\n\n filter() {\n return this.autoplay;\n },\n\n handler() {\n if (document.hidden) {\n this.stopAutoplay();\n } else {\n this.startAutoplay();\n }\n }\n }],\n\n\n methods: {\n startAutoplay() {\n this.stopAutoplay();\n\n this.interval = setInterval(\n () =>\n (!this.draggable || !$(':focus', this.$el)) && (\n !this.pauseOnHover || !matches(this.$el, ':hover')) &&\n !this.stack.length &&\n this.show('next'),\n this.autoplayInterval);\n\n },\n\n stopAutoplay() {\n this.interval && clearInterval(this.interval);\n }\n }\n };\n\n const pointerOptions = { passive: false, capture: true };\n const pointerUpOptions = { passive: true, capture: true };\n const pointerDown = 'touchstart mousedown';\n const pointerMove = 'touchmove mousemove';\n const pointerUp = 'touchend touchcancel mouseup click input scroll';\n\n var SliderDrag = {\n props: {\n draggable: Boolean\n },\n\n data: {\n draggable: true,\n threshold: 10\n },\n\n created() {\n for (const key of ['start', 'move', 'end']) {\n const fn = this[key];\n this[key] = (e) => {\n const pos = getEventPos(e).x * (isRtl ? -1 : 1);\n\n this.prevPos = pos === this.pos ? this.prevPos : this.pos;\n this.pos = pos;\n\n fn(e);\n };\n }\n },\n\n events: [\n {\n name: pointerDown,\n\n passive: true,\n\n delegate() {\n return this.selSlides;\n },\n\n handler(e) {\n if (\n !this.draggable ||\n !isTouch(e) && hasSelectableText(e.target) ||\n closest(e.target, selInput) ||\n e.button > 0 ||\n this.length < 2)\n {\n return;\n }\n\n this.start(e);\n }\n },\n\n {\n name: 'dragstart',\n\n handler(e) {\n e.preventDefault();\n }\n },\n\n {\n // iOS workaround for slider stopping if swiping fast\n name: pointerMove,\n el() {\n return this.list;\n },\n handler: noop,\n ...pointerOptions\n }],\n\n\n methods: {\n start() {\n this.drag = this.pos;\n\n if (this._transitioner) {\n this.percent = this._transitioner.percent();\n this.drag += this._transitioner.getDistance() * this.percent * this.dir;\n\n this._transitioner.cancel();\n this._transitioner.translate(this.percent);\n\n this.dragging = true;\n\n this.stack = [];\n } else {\n this.prevIndex = this.index;\n }\n\n on(document, pointerMove, this.move, pointerOptions);\n\n // 'input' event is triggered by video controls\n on(document, pointerUp, this.end, pointerUpOptions);\n\n css(this.list, 'userSelect', 'none');\n },\n\n move(e) {\n const distance = this.pos - this.drag;\n\n if (\n distance === 0 ||\n this.prevPos === this.pos ||\n !this.dragging && Math.abs(distance) < this.threshold)\n {\n return;\n }\n\n // prevent click event\n css(this.list, 'pointerEvents', 'none');\n\n e.cancelable && e.preventDefault();\n\n this.dragging = true;\n this.dir = distance < 0 ? 1 : -1;\n\n const { slides } = this;\n let { prevIndex } = this;\n let dis = Math.abs(distance);\n let nextIndex = this.getIndex(prevIndex + this.dir, prevIndex);\n let width = this._getDistance(prevIndex, nextIndex) || slides[prevIndex].offsetWidth;\n\n while (nextIndex !== prevIndex && dis > width) {\n this.drag -= width * this.dir;\n\n prevIndex = nextIndex;\n dis -= width;\n nextIndex = this.getIndex(prevIndex + this.dir, prevIndex);\n width = this._getDistance(prevIndex, nextIndex) || slides[prevIndex].offsetWidth;\n }\n\n this.percent = dis / width;\n\n const prev = slides[prevIndex];\n const next = slides[nextIndex];\n const changed = this.index !== nextIndex;\n const edge = prevIndex === nextIndex;\n\n let itemShown;\n\n [this.index, this.prevIndex].\n filter((i) => !includes([nextIndex, prevIndex], i)).\n forEach((i) => {\n trigger(slides[i], 'itemhidden', [this]);\n\n if (edge) {\n itemShown = true;\n this.prevIndex = prevIndex;\n }\n });\n\n if (this.index === prevIndex && this.prevIndex !== prevIndex || itemShown) {\n trigger(slides[this.index], 'itemshown', [this]);\n }\n\n if (changed) {\n this.prevIndex = prevIndex;\n this.index = nextIndex;\n\n !edge && trigger(prev, 'beforeitemhide', [this]);\n trigger(next, 'beforeitemshow', [this]);\n }\n\n this._transitioner = this._translate(Math.abs(this.percent), prev, !edge && next);\n\n if (changed) {\n !edge && trigger(prev, 'itemhide', [this]);\n trigger(next, 'itemshow', [this]);\n }\n },\n\n end() {\n off(document, pointerMove, this.move, pointerOptions);\n off(document, pointerUp, this.end, pointerUpOptions);\n\n if (this.dragging) {\n this.dragging = null;\n\n if (this.index === this.prevIndex) {\n this.percent = 1 - this.percent;\n this.dir *= -1;\n this._show(false, this.index, true);\n this._transitioner = null;\n } else {\n const dirChange =\n (isRtl ? this.dir * (isRtl ? 1 : -1) : this.dir) < 0 ===\n this.prevPos > this.pos;\n this.index = dirChange ? this.index : this.prevIndex;\n\n if (dirChange) {\n this.percent = 1 - this.percent;\n }\n\n this.show(\n this.dir > 0 && !dirChange || this.dir < 0 && dirChange ?\n 'next' :\n 'previous',\n true);\n\n }\n }\n\n css(this.list, { userSelect: '', pointerEvents: '' });\n\n this.drag = this.percent = null;\n }\n }\n };\n\n function hasSelectableText(el) {\n return (\n css(el, 'userSelect') !== 'none' &&\n toNodes(el.childNodes).some((el) => el.nodeType === 3 && el.textContent.trim()));\n\n }\n\n var SliderNav = {\n data: {\n selNav: false\n },\n\n computed: {\n nav(_ref, $el) {let { selNav } = _ref;\n return $(selNav, $el);\n },\n\n selNavItem(_ref2) {let { attrItem } = _ref2;\n return \"[\" + attrItem + \"],[data-\" + attrItem + \"]\";\n },\n\n navItems(_, $el) {\n return $$(this.selNavItem, $el);\n }\n },\n\n update: {\n write() {\n if (this.nav && this.length !== this.nav.children.length) {\n html(\n this.nav,\n this.slides.\n map((_, i) => \"
  • \").\n join(''));\n\n }\n\n this.navItems.concat(this.nav).forEach((el) => el && (el.hidden = !this.maxIndex));\n\n this.updateNav();\n },\n\n events: ['resize']\n },\n\n events: [\n {\n name: 'click',\n\n delegate() {\n return this.selNavItem;\n },\n\n handler(e) {\n e.preventDefault();\n this.show(data(e.current, this.attrItem));\n }\n },\n\n {\n name: 'itemshow',\n handler: 'updateNav'\n }],\n\n\n methods: {\n updateNav() {\n const i = this.getValidIndex();\n for (const el of this.navItems) {\n const cmd = data(el, this.attrItem);\n\n toggleClass(el, this.clsActive, toNumber(cmd) === i);\n toggleClass(\n el,\n 'uk-invisible',\n this.finite && (\n cmd === 'previous' && i === 0 || cmd === 'next' && i >= this.maxIndex));\n\n }\n }\n }\n };\n\n var Slider = {\n mixins: [SliderAutoplay, SliderDrag, SliderNav, Resize],\n\n props: {\n clsActivated: Boolean,\n easing: String,\n index: Number,\n finite: Boolean,\n velocity: Number,\n selSlides: String\n },\n\n data: () => ({\n easing: 'ease',\n finite: false,\n velocity: 1,\n index: 0,\n prevIndex: -1,\n stack: [],\n percent: 0,\n clsActive: 'uk-active',\n clsActivated: false,\n Transitioner: false,\n transitionOptions: {}\n }),\n\n connected() {\n this.prevIndex = -1;\n this.index = this.getValidIndex(this.$props.index);\n this.stack = [];\n },\n\n disconnected() {\n removeClass(this.slides, this.clsActive);\n },\n\n computed: {\n duration(_ref, $el) {let { velocity } = _ref;\n return speedUp($el.offsetWidth / velocity);\n },\n\n list(_ref2, $el) {let { selList } = _ref2;\n return $(selList, $el);\n },\n\n maxIndex() {\n return this.length - 1;\n },\n\n selSlides(_ref3) {let { selList, selSlides } = _ref3;\n return selList + \" \" + (selSlides || '> *');\n },\n\n slides: {\n get() {\n return $$(this.selSlides, this.$el);\n },\n\n watch() {\n this.$emit('resize');\n }\n },\n\n length() {\n return this.slides.length;\n }\n },\n\n methods: {\n show(index, force) {if (force === void 0) {force = false;}\n if (this.dragging || !this.length) {\n return;\n }\n\n const { stack } = this;\n const queueIndex = force ? 0 : stack.length;\n const reset = () => {\n stack.splice(queueIndex, 1);\n\n if (stack.length) {\n this.show(stack.shift(), true);\n }\n };\n\n stack[force ? 'unshift' : 'push'](index);\n\n if (!force && stack.length > 1) {\n if (stack.length === 2) {\n this._transitioner.forward(Math.min(this.duration, 200));\n }\n\n return;\n }\n\n const prevIndex = this.getIndex(this.index);\n const prev = hasClass(this.slides, this.clsActive) && this.slides[prevIndex];\n const nextIndex = this.getIndex(index, this.index);\n const next = this.slides[nextIndex];\n\n if (prev === next) {\n reset();\n return;\n }\n\n this.dir = getDirection(index, prevIndex);\n this.prevIndex = prevIndex;\n this.index = nextIndex;\n\n if (\n prev && !trigger(prev, 'beforeitemhide', [this]) ||\n !trigger(next, 'beforeitemshow', [this, prev]))\n {\n this.index = this.prevIndex;\n reset();\n return;\n }\n\n const promise = this._show(prev, next, force).then(() => {\n prev && trigger(prev, 'itemhidden', [this]);\n trigger(next, 'itemshown', [this]);\n\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n stack.shift();\n if (stack.length) {\n this.show(stack.shift(), true);\n } else {\n this._transitioner = null;\n }\n resolve();\n });\n });\n });\n\n prev && trigger(prev, 'itemhide', [this]);\n trigger(next, 'itemshow', [this]);\n\n return promise;\n },\n\n getIndex(index, prev) {if (index === void 0) {index = this.index;}if (prev === void 0) {prev = this.index;}\n return clamp(getIndex(index, this.slides, prev, this.finite), 0, this.maxIndex);\n },\n\n getValidIndex(index, prevIndex) {if (index === void 0) {index = this.index;}if (prevIndex === void 0) {prevIndex = this.prevIndex;}\n return this.getIndex(index, prevIndex);\n },\n\n _show(prev, next, force) {\n this._transitioner = this._getTransitioner(prev, next, this.dir, {\n easing: force ?\n next.offsetWidth < 600 ?\n 'cubic-bezier(0.25, 0.46, 0.45, 0.94)' /* easeOutQuad */ :\n 'cubic-bezier(0.165, 0.84, 0.44, 1)' /* easeOutQuart */ :\n this.easing,\n ...this.transitionOptions\n });\n\n if (!force && !prev) {\n this._translate(1);\n return Promise.resolve();\n }\n\n const { length } = this.stack;\n return this._transitioner[length > 1 ? 'forward' : 'show'](\n length > 1 ? Math.min(this.duration, 75 + 75 / (length - 1)) : this.duration,\n this.percent);\n\n },\n\n _getDistance(prev, next) {\n return this._getTransitioner(prev, prev !== next && next).getDistance();\n },\n\n _translate(percent, prev, next) {if (prev === void 0) {prev = this.prevIndex;}if (next === void 0) {next = this.index;}\n const transitioner = this._getTransitioner(prev !== next ? prev : false, next);\n transitioner.translate(percent);\n return transitioner;\n },\n\n _getTransitioner(\n prev,\n next,\n dir,\n options)\n {if (prev === void 0) {prev = this.prevIndex;}if (next === void 0) {next = this.index;}if (dir === void 0) {dir = this.dir || 1;}if (options === void 0) {options = this.transitionOptions;}\n return new this.Transitioner(\n isNumber(prev) ? this.slides[prev] : prev,\n isNumber(next) ? this.slides[next] : next,\n dir * (isRtl ? -1 : 1),\n options);\n\n }\n }\n };\n\n function getDirection(index, prevIndex) {\n return index === 'next' ? 1 : index === 'previous' ? -1 : index < prevIndex ? -1 : 1;\n }\n\n function speedUp(x) {\n return 0.5 * x + 300; // parabola through (400,500; 600,600; 1800,1200)\n }\n\n var Slideshow = {\n mixins: [Slider],\n\n props: {\n animation: String\n },\n\n data: {\n animation: 'slide',\n clsActivated: 'uk-transition-active',\n Animations: Animations$2,\n Transitioner: Transitioner$1\n },\n\n computed: {\n animation(_ref) {let { animation, Animations } = _ref;\n return { ...(Animations[animation] || Animations.slide), name: animation };\n },\n\n transitionOptions() {\n return { animation: this.animation };\n }\n },\n\n events: {\n beforeitemshow(_ref2) {let { target } = _ref2;\n addClass(target, this.clsActive);\n },\n\n itemshown(_ref3) {let { target } = _ref3;\n addClass(target, this.clsActivated);\n },\n\n itemhidden(_ref4) {let { target } = _ref4;\n removeClass(target, this.clsActive, this.clsActivated);\n }\n }\n };\n\n var LightboxPanel = {\n mixins: [Container, Modal, Togglable, Slideshow],\n\n functional: true,\n\n props: {\n delayControls: Number,\n preload: Number,\n videoAutoplay: Boolean,\n template: String\n },\n\n data: () => ({\n preload: 1,\n videoAutoplay: false,\n delayControls: 3000,\n items: [],\n cls: 'uk-open',\n clsPage: 'uk-lightbox-page',\n selList: '.uk-lightbox-items',\n attrItem: 'uk-lightbox-item',\n selClose: '.uk-close-large',\n selCaption: '.uk-lightbox-caption',\n pauseOnHover: false,\n velocity: 2,\n Animations: Animations$1,\n template: \"
      \"\n\n\n\n\n\n\n\n\n }),\n\n created() {\n const $el = $(this.template);\n const list = $(this.selList, $el);\n this.items.forEach(() => append(list, '
    • '));\n\n this.$mount(append(this.container, $el));\n },\n\n computed: {\n caption(_ref, $el) {let { selCaption } = _ref;\n return $(selCaption, $el);\n }\n },\n\n events: [\n {\n name: pointerMove$1 + \" \" + pointerDown$1 + \" keydown\",\n\n handler: 'showControls'\n },\n\n {\n name: 'click',\n\n self: true,\n\n delegate() {\n return this.selSlides;\n },\n\n handler(e) {\n if (e.defaultPrevented) {\n return;\n }\n\n this.hide();\n }\n },\n\n {\n name: 'shown',\n\n self: true,\n\n handler() {\n this.showControls();\n }\n },\n\n {\n name: 'hide',\n\n self: true,\n\n handler() {\n this.hideControls();\n\n removeClass(this.slides, this.clsActive);\n Transition.stop(this.slides);\n }\n },\n\n {\n name: 'hidden',\n\n self: true,\n\n handler() {\n this.$destroy(true);\n }\n },\n\n {\n name: 'keyup',\n\n el() {\n return document;\n },\n\n handler(e) {\n if (!this.isToggled(this.$el) || !this.draggable) {\n return;\n }\n\n switch (e.keyCode) {\n case 37:\n this.show('previous');\n break;\n case 39:\n this.show('next');\n break;}\n\n }\n },\n\n {\n name: 'beforeitemshow',\n\n handler(e) {\n if (this.isToggled()) {\n return;\n }\n\n this.draggable = false;\n\n e.preventDefault();\n\n this.toggleElement(this.$el, true, false);\n\n this.animation = Animations$1['scale'];\n removeClass(e.target, this.clsActive);\n this.stack.splice(1, 0, this.index);\n }\n },\n\n {\n name: 'itemshow',\n\n handler() {\n html(this.caption, this.getItem().caption || '');\n\n for (let j = -this.preload; j <= this.preload; j++) {\n this.loadItem(this.index + j);\n }\n }\n },\n\n {\n name: 'itemshown',\n\n handler() {\n this.draggable = this.$props.draggable;\n }\n },\n\n {\n name: 'itemload',\n\n async handler(_, item) {\n const { source: src, type, alt = '', poster, attrs = {} } = item;\n\n this.setItem(item, '');\n\n if (!src) {\n return;\n }\n\n let matches;\n const iframeAttrs = {\n allowfullscreen: '',\n style: 'max-width: 100%; box-sizing: border-box;',\n 'uk-responsive': '',\n 'uk-video': \"\" + this.videoAutoplay\n };\n\n // Image\n if (\n type === 'image' ||\n src.match(/\\.(avif|jpe?g|jfif|a?png|gif|svg|webp)($|\\?)/i))\n {\n try {\n const { width, height } = await getImage(src, attrs.srcset, attrs.size);\n this.setItem(item, createEl('img', { src, width, height, alt, ...attrs }));\n } catch (e) {\n this.setError(item);\n }\n\n // Video\n } else if (type === 'video' || src.match(/\\.(mp4|webm|ogv)($|\\?)/i)) {\n const video = createEl('video', {\n src,\n poster,\n controls: '',\n playsinline: '',\n 'uk-video': \"\" + this.videoAutoplay,\n ...attrs\n });\n\n on(video, 'loadedmetadata', () => {\n attr(video, { width: video.videoWidth, height: video.videoHeight });\n this.setItem(item, video);\n });\n on(video, 'error', () => this.setError(item));\n\n // Iframe\n } else if (type === 'iframe' || src.match(/\\.(html|php)($|\\?)/i)) {\n this.setItem(\n item,\n createEl('iframe', {\n src,\n allowfullscreen: '',\n class: 'uk-lightbox-iframe',\n ...attrs\n }));\n\n\n // YouTube\n } else if (\n matches = src.match(\n /\\/\\/(?:.*?youtube(-nocookie)?\\..*?[?&]v=|youtu\\.be\\/)([\\w-]{11})[&?]?(.*)?/))\n\n {\n this.setItem(\n item,\n createEl('iframe', {\n src: \"https://www.youtube\" + (matches[1] || '') + \".com/embed/\" + matches[2] + (\n matches[3] ? \"?\" + matches[3] : ''),\n\n width: 1920,\n height: 1080,\n ...iframeAttrs,\n ...attrs\n }));\n\n\n // Vimeo\n } else if (matches = src.match(/\\/\\/.*?vimeo\\.[a-z]+\\/(\\d+)[&?]?(.*)?/)) {\n try {\n const { height, width } = await (\n await fetch(\"https://vimeo.com/api/oembed.json?maxwidth=1920&url=\" +\n encodeURI(\n src),\n\n {\n credentials: 'omit'\n })).\n\n json();\n\n this.setItem(\n item,\n createEl('iframe', {\n src: \"https://player.vimeo.com/video/\" + matches[1] + (\n matches[2] ? \"?\" + matches[2] : ''),\n\n width,\n height,\n ...iframeAttrs,\n ...attrs\n }));\n\n } catch (e) {\n this.setError(item);\n }\n }\n }\n }],\n\n\n methods: {\n loadItem(index) {if (index === void 0) {index = this.index;}\n const item = this.getItem(index);\n\n if (!this.getSlide(item).childElementCount) {\n trigger(this.$el, 'itemload', [item]);\n }\n },\n\n getItem(index) {if (index === void 0) {index = this.index;}\n return this.items[getIndex(index, this.slides)];\n },\n\n setItem(item, content) {\n trigger(this.$el, 'itemloaded', [this, html(this.getSlide(item), content)]);\n },\n\n getSlide(item) {\n return this.slides[this.items.indexOf(item)];\n },\n\n setError(item) {\n this.setItem(item, '');\n },\n\n showControls() {\n clearTimeout(this.controlsTimer);\n this.controlsTimer = setTimeout(this.hideControls, this.delayControls);\n\n addClass(this.$el, 'uk-active', 'uk-transition-active');\n },\n\n hideControls() {\n removeClass(this.$el, 'uk-active', 'uk-transition-active');\n }\n }\n };\n\n function createEl(tag, attrs) {\n const el = fragment(\"<\" + tag + \">\");\n attr(el, attrs);\n return el;\n }\n\n var lightbox = {\n install: install$1,\n\n props: { toggle: String },\n\n data: { toggle: 'a' },\n\n computed: {\n toggles: {\n get(_ref, $el) {let { toggle } = _ref;\n return $$(toggle, $el);\n },\n\n watch() {\n this.hide();\n }\n }\n },\n\n disconnected() {\n this.hide();\n },\n\n events: [\n {\n name: 'click',\n\n delegate() {\n return this.toggle + \":not(.uk-disabled)\";\n },\n\n handler(e) {\n e.preventDefault();\n this.show(e.current);\n }\n }],\n\n\n methods: {\n show(index) {\n const items = uniqueBy(this.toggles.map(toItem), 'source');\n\n if (isElement(index)) {\n const { source } = toItem(index);\n index = findIndex(items, (_ref2) => {let { source: src } = _ref2;return source === src;});\n }\n\n this.panel = this.panel || this.$create('lightboxPanel', { ...this.$props, items });\n\n on(this.panel.$el, 'hidden', () => this.panel = null);\n\n return this.panel.show(index);\n },\n\n hide() {var _this$panel;\n return (_this$panel = this.panel) == null ? void 0 : _this$panel.hide();\n }\n }\n };\n\n function install$1(UIkit, Lightbox) {\n if (!UIkit.lightboxPanel) {\n UIkit.component('lightboxPanel', LightboxPanel);\n }\n\n assign(Lightbox.props, UIkit.component('lightboxPanel').options.props);\n }\n\n function toItem(el) {\n const item = {};\n\n for (const attr of ['href', 'caption', 'type', 'poster', 'alt', 'attrs']) {\n item[attr === 'href' ? 'source' : attr] = data(el, attr);\n }\n\n item.attrs = parseOptions(item.attrs);\n\n return item;\n }\n\n var notification = {\n mixins: [Container],\n\n functional: true,\n\n args: ['message', 'status'],\n\n data: {\n message: '',\n status: '',\n timeout: 5000,\n group: null,\n pos: 'top-center',\n clsContainer: 'uk-notification',\n clsClose: 'uk-notification-close',\n clsMsg: 'uk-notification-message'\n },\n\n install,\n\n computed: {\n marginProp(_ref) {let { pos } = _ref;\n return \"margin\" + (startsWith(pos, 'top') ? 'Top' : 'Bottom');\n },\n\n startProps() {\n return { opacity: 0, [this.marginProp]: -this.$el.offsetHeight };\n }\n },\n\n created() {\n const container =\n $(\".\" + this.clsContainer + \"-\" + this.pos, this.container) ||\n append(\n this.container, \"
      \");\n\n\n this.$mount(\n append(\n container, \"
      \" +\n this.message + \"
      \"));\n\n\n\n },\n\n async connected() {\n const margin = toFloat(css(this.$el, this.marginProp));\n await Transition.start(css(this.$el, this.startProps), {\n opacity: 1,\n [this.marginProp]: margin\n });\n\n if (this.timeout) {\n this.timer = setTimeout(this.close, this.timeout);\n }\n },\n\n events: {\n click(e) {\n if (closest(e.target, 'a[href=\"#\"],a[href=\"\"]')) {\n e.preventDefault();\n }\n this.close();\n },\n\n [pointerEnter]() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n },\n\n [pointerLeave]() {\n if (this.timeout) {\n this.timer = setTimeout(this.close, this.timeout);\n }\n }\n },\n\n methods: {\n async close(immediate) {\n const removeFn = (el) => {\n const container = parent(el);\n\n trigger(el, 'close', [this]);\n remove$1(el);\n\n if (!(container != null && container.hasChildNodes())) {\n remove$1(container);\n }\n };\n\n if (this.timer) {\n clearTimeout(this.timer);\n }\n\n if (!immediate) {\n await Transition.start(this.$el, this.startProps);\n }\n\n removeFn(this.$el);\n }\n }\n };\n\n function install(UIkit) {\n UIkit.notification.closeAll = function (group, immediate) {\n apply(document.body, (el) => {\n const notification = UIkit.getComponent(el, 'notification');\n if (notification && (!group || group === notification.group)) {\n notification.close(immediate);\n }\n });\n };\n }\n\n const props = {\n x: transformFn,\n y: transformFn,\n rotate: transformFn,\n scale: transformFn,\n color: colorFn,\n backgroundColor: colorFn,\n borderColor: colorFn,\n blur: filterFn,\n hue: filterFn,\n fopacity: filterFn,\n grayscale: filterFn,\n invert: filterFn,\n saturate: filterFn,\n sepia: filterFn,\n opacity: cssPropFn,\n stroke: strokeFn,\n bgx: backgroundFn,\n bgy: backgroundFn\n };\n\n const { keys } = Object;\n\n var Parallax = {\n mixins: [Media],\n\n props: fillObject(keys(props), 'list'),\n\n data: fillObject(keys(props), undefined),\n\n computed: {\n props(properties, $el) {\n const stops = {};\n for (const prop in properties) {\n if (prop in props && !isUndefined(properties[prop])) {\n stops[prop] = properties[prop].slice();\n }\n }\n const result = {};\n for (const prop in stops) {\n result[prop] = props[prop](prop, $el, stops[prop], stops);\n }\n return result;\n }\n },\n\n events: {\n load() {\n this.$emit();\n }\n },\n\n methods: {\n reset() {\n for (const prop in this.getCss(0)) {\n css(this.$el, prop, '');\n }\n },\n\n getCss(percent) {\n const css = { transform: '', filter: '' };\n for (const prop in this.props) {\n this.props[prop](css, percent);\n }\n return css;\n }\n }\n };\n\n function transformFn(prop, el, stops) {\n let unit = getUnit(stops) || { x: 'px', y: 'px', rotate: 'deg' }[prop] || '';\n let transformFn;\n\n if (prop === 'x' || prop === 'y') {\n prop = \"translate\" + ucfirst(prop);\n transformFn = (stop) => toFloat(toFloat(stop).toFixed(unit === 'px' ? 0 : 6));\n } else if (prop === 'scale') {\n unit = '';\n transformFn = (stop) =>\n getUnit([stop]) ? toPx(stop, 'width', el, true) / el.offsetWidth : stop;\n }\n\n if (stops.length === 1) {\n stops.unshift(prop === 'scale' ? 1 : 0);\n }\n\n stops = parseStops(stops, transformFn);\n\n return (css, percent) => {\n css.transform += \" \" + prop + \"(\" + getValue(stops, percent) + unit + \")\";\n };\n }\n\n function colorFn(prop, el, stops) {\n if (stops.length === 1) {\n stops.unshift(getCssValue(el, prop, ''));\n }\n\n stops = parseStops(stops, (stop) => parseColor(el, stop));\n\n return (css, percent) => {\n const [start, end, p] = getStop(stops, percent);\n const value = start.\n map((value, i) => {\n value += p * (end[i] - value);\n return i === 3 ? toFloat(value) : parseInt(value, 10);\n }).\n join(',');\n css[prop] = \"rgba(\" + value + \")\";\n };\n }\n\n function parseColor(el, color) {\n return getCssValue(el, 'color', color).\n split(/[(),]/g).\n slice(1, -1).\n concat(1).\n slice(0, 4).\n map(toFloat);\n }\n\n function filterFn(prop, el, stops) {\n if (stops.length === 1) {\n stops.unshift(0);\n }\n\n const unit = getUnit(stops) || { blur: 'px', hue: 'deg' }[prop] || '%';\n prop = { fopacity: 'opacity', hue: 'hue-rotate' }[prop] || prop;\n stops = parseStops(stops);\n\n return (css, percent) => {\n const value = getValue(stops, percent);\n css.filter += \" \" + prop + \"(\" + (value + unit) + \")\";\n };\n }\n\n function cssPropFn(prop, el, stops) {\n if (stops.length === 1) {\n stops.unshift(getCssValue(el, prop, ''));\n }\n\n stops = parseStops(stops);\n\n return (css, percent) => {\n css[prop] = getValue(stops, percent);\n };\n }\n\n function strokeFn(prop, el, stops) {\n if (stops.length === 1) {\n stops.unshift(0);\n }\n\n const unit = getUnit(stops);\n const length = getMaxPathLength(el);\n stops = parseStops(stops.reverse(), (stop) => {\n stop = toFloat(stop);\n return unit === '%' ? stop * length / 100 : stop;\n });\n\n if (!stops.some((_ref) => {let [value] = _ref;return value;})) {\n return noop;\n }\n\n css(el, 'strokeDasharray', length);\n\n return (css, percent) => {\n css.strokeDashoffset = getValue(stops, percent);\n };\n }\n\n function backgroundFn(prop, el, stops, props) {\n if (stops.length === 1) {\n stops.unshift(0);\n }\n\n const attr = prop === 'bgy' ? 'height' : 'width';\n props[prop] = parseStops(stops, (stop) => toPx(stop, attr, el));\n\n const bgProps = ['bgx', 'bgy'].filter((prop) => prop in props);\n if (bgProps.length === 2 && prop === 'bgx') {\n return noop;\n }\n\n if (getCssValue(el, 'backgroundSize', '') === 'cover') {\n return backgroundCoverFn(prop, el, stops, props);\n }\n\n const positions = {};\n for (const prop of bgProps) {\n positions[prop] = getBackgroundPos(el, prop);\n }\n\n return setBackgroundPosFn(bgProps, positions, props);\n }\n\n function backgroundCoverFn(prop, el, stops, props) {\n const dimImage = getBackgroundImageDimensions(el);\n\n if (!dimImage.width) {\n return noop;\n }\n\n const dimEl = {\n width: el.offsetWidth,\n height: el.offsetHeight\n };\n\n const bgProps = ['bgx', 'bgy'].filter((prop) => prop in props);\n\n const positions = {};\n for (const prop of bgProps) {\n const values = props[prop].map((_ref2) => {let [value] = _ref2;return value;});\n const min = Math.min(...values);\n const max = Math.max(...values);\n const down = values.indexOf(min) < values.indexOf(max);\n const diff = max - min;\n\n positions[prop] = (down ? -diff : 0) - (down ? min : max) + \"px\";\n dimEl[prop === 'bgy' ? 'height' : 'width'] += diff;\n }\n\n const dim = Dimensions.cover(dimImage, dimEl);\n\n for (const prop of bgProps) {\n const attr = prop === 'bgy' ? 'height' : 'width';\n const overflow = dim[attr] - dimEl[attr];\n positions[prop] = \"max(\" + getBackgroundPos(el, prop) + \",-\" + overflow + \"px) + \" + positions[prop];\n }\n\n const fn = setBackgroundPosFn(bgProps, positions, props);\n return (css, percent) => {\n fn(css, percent);\n css.backgroundSize = dim.width + \"px \" + dim.height + \"px\";\n css.backgroundRepeat = 'no-repeat';\n };\n }\n\n function getBackgroundPos(el, prop) {\n return getCssValue(el, \"background-position-\" + prop.substr(-1), '');\n }\n\n function setBackgroundPosFn(bgProps, positions, props) {\n return function (css, percent) {\n for (const prop of bgProps) {\n const value = getValue(props[prop], percent);\n css[\"background-position-\" + prop.substr(-1)] = \"calc(\" + positions[prop] + \" + \" + value + \"px)\";\n }\n };\n }\n\n const dimensions = {};\n function getBackgroundImageDimensions(el) {\n const src = css(el, 'backgroundImage').replace(/^none|url\\([\"']?(.+?)[\"']?\\)$/, '$1');\n\n if (dimensions[src]) {\n return dimensions[src];\n }\n\n const image = new Image();\n if (src) {\n image.src = src;\n\n if (!image.naturalWidth) {\n image.onload = () => {\n dimensions[src] = toDimensions(image);\n trigger(el, createEvent('load', false));\n };\n return toDimensions(image);\n }\n }\n\n return dimensions[src] = toDimensions(image);\n }\n\n function toDimensions(image) {\n return {\n width: image.naturalWidth,\n height: image.naturalHeight\n };\n }\n\n function parseStops(stops, fn) {if (fn === void 0) {fn = toFloat;}\n const result = [];\n const { length } = stops;\n let nullIndex = 0;\n for (let i = 0; i < length; i++) {\n let [value, percent] = isString(stops[i]) ? stops[i].trim().split(' ') : [stops[i]];\n value = fn(value);\n percent = percent ? toFloat(percent) / 100 : null;\n\n if (i === 0) {\n if (percent === null) {\n percent = 0;\n } else if (percent) {\n result.push([value, 0]);\n }\n } else if (i === length - 1) {\n if (percent === null) {\n percent = 1;\n } else if (percent !== 1) {\n result.push([value, percent]);\n percent = 1;\n }\n }\n\n result.push([value, percent]);\n\n if (percent === null) {\n nullIndex++;\n } else if (nullIndex) {\n const leftPercent = result[i - nullIndex - 1][1];\n const p = (percent - leftPercent) / (nullIndex + 1);\n for (let j = nullIndex; j > 0; j--) {\n result[i - j][1] = leftPercent + p * (nullIndex - j + 1);\n }\n\n nullIndex = 0;\n }\n }\n\n return result;\n }\n\n function getStop(stops, percent) {\n const index = findIndex(stops.slice(1), (_ref3) => {let [, targetPercent] = _ref3;return percent <= targetPercent;}) + 1;\n return [\n stops[index - 1][0],\n stops[index][0],\n (percent - stops[index - 1][1]) / (stops[index][1] - stops[index - 1][1])];\n\n }\n\n function getValue(stops, percent) {\n const [start, end, p] = getStop(stops, percent);\n return isNumber(start) ? start + Math.abs(start - end) * p * (start < end ? 1 : -1) : +end;\n }\n\n const unitRe = /^-?\\d+(\\S+)/;\n function getUnit(stops, defaultUnit) {\n for (const stop of stops) {\n const match = stop.match == null ? void 0 : stop.match(unitRe);\n if (match) {\n return match[1];\n }\n }\n return defaultUnit;\n }\n\n function getCssValue(el, prop, value) {\n const prev = el.style[prop];\n const val = css(css(el, prop, value), prop);\n el.style[prop] = prev;\n return val;\n }\n\n function fillObject(keys, value) {\n return keys.reduce((data, prop) => {\n data[prop] = value;\n return data;\n }, {});\n }\n\n var parallax = {\n mixins: [Parallax, Resize, Scroll],\n\n props: {\n target: String,\n viewport: Number, // Deprecated\n easing: Number,\n start: String,\n end: String\n },\n\n data: {\n target: false,\n viewport: 1,\n easing: 1,\n start: 0,\n end: 0\n },\n\n computed: {\n target(_ref, $el) {let { target } = _ref;\n return getOffsetElement(target && query(target, $el) || $el);\n },\n\n start(_ref2) {let { start } = _ref2;\n return toPx(start, 'height', this.target, true);\n },\n\n end(_ref3) {let { end, viewport } = _ref3;\n return toPx(\n end || (viewport = (1 - viewport) * 100) && viewport + \"vh+\" + viewport + \"%\",\n 'height',\n this.target,\n true);\n\n }\n },\n\n update: {\n read(_ref4, types) {let { percent } = _ref4;\n if (!types.has('scroll')) {\n percent = false;\n }\n\n if (!this.matchMedia) {\n return;\n }\n\n const prev = percent;\n percent = ease(scrolledOver(this.target, this.start, this.end), this.easing);\n\n return {\n percent,\n style: prev === percent ? false : this.getCss(percent)\n };\n },\n\n write(_ref5) {let { style } = _ref5;\n if (!this.matchMedia) {\n this.reset();\n return;\n }\n\n style && css(this.$el, style);\n },\n\n events: ['scroll', 'resize']\n }\n };\n\n /*\n * Inspired by https://gist.github.com/gre/1650294?permalink_comment_id=3477425#gistcomment-3477425\n *\n * linear: 0\n * easeInSine: 0.5\n * easeOutSine: -0.5\n * easeInQuad: 1\n * easeOutQuad: -1\n * easeInCubic: 2\n * easeOutCubic: -2\n * easeInQuart: 3\n * easeOutQuart: -3\n * easeInQuint: 4\n * easeOutQuint: -4\n */\n function ease(percent, easing) {\n return easing >= 0 ? Math.pow(percent, easing + 1) : 1 - Math.pow(1 - percent, 1 - easing);\n }\n\n // SVG elements do not inherit from HTMLElement\n function getOffsetElement(el) {\n return el ? 'offsetTop' in el ? el : getOffsetElement(parent(el)) : document.documentElement;\n }\n\n var SliderReactive = {\n update: {\n write() {\n if (this.stack.length || this.dragging) {\n return;\n }\n\n const index = this.getValidIndex(this.index);\n\n if (!~this.prevIndex || this.index !== index) {\n this.show(index);\n } else {\n this._translate(1, this.prevIndex, this.index);\n }\n },\n\n events: ['resize']\n }\n };\n\n var SliderPreload = {\n mixins: [Lazyload],\n\n connected() {\n this.lazyload(this.slides, this.getAdjacentSlides);\n }\n };\n\n function Transitioner (prev, next, dir, _ref) {let { center, easing, list } = _ref;\n const deferred = new Deferred();\n\n const from = prev ?\n getLeft(prev, list, center) :\n getLeft(next, list, center) + dimensions$1(next).width * dir;\n const to = next ?\n getLeft(next, list, center) :\n from + dimensions$1(prev).width * dir * (isRtl ? -1 : 1);\n\n return {\n dir,\n\n show(duration, percent, linear) {if (percent === void 0) {percent = 0;}\n const timing = linear ? 'linear' : easing;\n duration -= Math.round(duration * clamp(percent, -1, 1));\n\n this.translate(percent);\n\n percent = prev ? percent : clamp(percent, 0, 1);\n triggerUpdate(this.getItemIn(), 'itemin', { percent, duration, timing, dir });\n prev &&\n triggerUpdate(this.getItemIn(true), 'itemout', {\n percent: 1 - percent,\n duration,\n timing,\n dir\n });\n\n Transition.start(\n list,\n { transform: translate(-to * (isRtl ? -1 : 1), 'px') },\n duration,\n timing).\n then(deferred.resolve, noop);\n\n return deferred.promise;\n },\n\n cancel() {\n Transition.cancel(list);\n },\n\n reset() {\n css(list, 'transform', '');\n },\n\n forward(duration, percent) {if (percent === void 0) {percent = this.percent();}\n Transition.cancel(list);\n return this.show(duration, percent, true);\n },\n\n translate(percent) {\n const distance = this.getDistance() * dir * (isRtl ? -1 : 1);\n\n css(\n list,\n 'transform',\n translate(\n clamp(\n -to + (distance - distance * percent),\n -getWidth(list),\n dimensions$1(list).width) * (\n isRtl ? -1 : 1),\n 'px'));\n\n\n\n const actives = this.getActives();\n const itemIn = this.getItemIn();\n const itemOut = this.getItemIn(true);\n\n percent = prev ? clamp(percent, -1, 1) : 0;\n\n for (const slide of children(list)) {\n const isActive = includes(actives, slide);\n const isIn = slide === itemIn;\n const isOut = slide === itemOut;\n const translateIn =\n isIn ||\n !isOut && (\n isActive ||\n dir * (isRtl ? -1 : 1) === -1 ^\n getElLeft(slide, list) > getElLeft(prev || next));\n\n triggerUpdate(slide, \"itemtranslate\" + (translateIn ? 'in' : 'out'), {\n dir,\n percent: isOut ? 1 - percent : isIn ? percent : isActive ? 1 : 0\n });\n }\n },\n\n percent() {\n return Math.abs(\n (css(list, 'transform').split(',')[4] * (isRtl ? -1 : 1) + from) / (to - from));\n\n },\n\n getDistance() {\n return Math.abs(to - from);\n },\n\n getItemIn(out) {if (out === void 0) {out = false;}\n let actives = this.getActives();\n let nextActives = inView(list, getLeft(next || prev, list, center));\n\n if (out) {\n const temp = actives;\n actives = nextActives;\n nextActives = temp;\n }\n\n return nextActives[findIndex(nextActives, (el) => !includes(actives, el))];\n },\n\n getActives() {\n return inView(list, getLeft(prev || next, list, center));\n }\n };\n }\n\n function getLeft(el, list, center) {\n const left = getElLeft(el, list);\n\n return center ? left - centerEl(el, list) : Math.min(left, getMax(list));\n }\n\n function getMax(list) {\n return Math.max(0, getWidth(list) - dimensions$1(list).width);\n }\n\n function getWidth(list) {\n return children(list).reduce((right, el) => dimensions$1(el).width + right, 0);\n }\n\n function centerEl(el, list) {\n return dimensions$1(list).width / 2 - dimensions$1(el).width / 2;\n }\n\n function getElLeft(el, list) {\n return (\n el &&\n (position(el).left + (isRtl ? dimensions$1(el).width - dimensions$1(list).width : 0)) * (\n isRtl ? -1 : 1) ||\n 0);\n\n }\n\n function inView(list, listLeft) {\n listLeft -= 1;\n const listWidth = dimensions$1(list).width;\n const listRight = listLeft + listWidth + 2;\n\n return children(list).filter((slide) => {\n const slideLeft = getElLeft(slide, list);\n const slideRight = slideLeft + Math.min(dimensions$1(slide).width, listWidth);\n\n return slideLeft >= listLeft && slideRight <= listRight;\n });\n }\n\n function triggerUpdate(el, type, data) {\n trigger(el, createEvent(type, false, false, data));\n }\n\n var slider = {\n mixins: [Class, Slider, SliderReactive, SliderPreload],\n\n props: {\n center: Boolean,\n sets: Boolean\n },\n\n data: {\n center: false,\n sets: false,\n attrItem: 'uk-slider-item',\n selList: '.uk-slider-items',\n selNav: '.uk-slider-nav',\n clsContainer: 'uk-slider-container',\n Transitioner\n },\n\n computed: {\n avgWidth() {\n return getWidth(this.list) / this.length;\n },\n\n finite(_ref) {let { finite } = _ref;\n return (\n finite ||\n Math.ceil(getWidth(this.list)) <\n Math.trunc(dimensions$1(this.list).width + getMaxElWidth(this.list) + this.center));\n\n },\n\n maxIndex() {\n if (!this.finite || this.center && !this.sets) {\n return this.length - 1;\n }\n\n if (this.center) {\n return last(this.sets);\n }\n\n let lft = 0;\n const max = getMax(this.list);\n const index = findIndex(this.slides, (el) => {\n if (lft >= max) {\n return true;\n }\n\n lft += dimensions$1(el).width;\n });\n\n return ~index ? index : this.length - 1;\n },\n\n sets(_ref2) {let { sets: enabled } = _ref2;\n if (!enabled) {\n return;\n }\n\n let left = 0;\n const sets = [];\n const width = dimensions$1(this.list).width;\n for (let i = 0; i < this.slides.length; i++) {\n const slideWidth = dimensions$1(this.slides[i]).width;\n\n if (left + slideWidth > width) {\n left = 0;\n }\n\n if (this.center) {\n if (\n left < width / 2 &&\n left + slideWidth + dimensions$1(this.slides[+i + 1]).width / 2 > width / 2)\n {\n sets.push(+i);\n left = width / 2 - slideWidth / 2;\n }\n } else if (left === 0) {\n sets.push(Math.min(+i, this.maxIndex));\n }\n\n left += slideWidth;\n }\n\n if (sets.length) {\n return sets;\n }\n },\n\n transitionOptions() {\n return {\n center: this.center,\n list: this.list\n };\n }\n },\n\n connected() {\n toggleClass(this.$el, this.clsContainer, !$(\".\" + this.clsContainer, this.$el));\n },\n\n update: {\n write() {\n for (const el of this.navItems) {\n const index = toNumber(data(el, this.attrItem));\n if (index !== false) {\n el.hidden =\n !this.maxIndex ||\n index > this.maxIndex ||\n this.sets && !includes(this.sets, index);\n }\n }\n\n if (this.length && !this.dragging && !this.stack.length) {\n this.reorder();\n this._translate(1);\n }\n\n this.updateActiveClasses();\n },\n\n events: ['resize']\n },\n\n events: {\n beforeitemshow(e) {\n if (\n !this.dragging &&\n this.sets &&\n this.stack.length < 2 &&\n !includes(this.sets, this.index))\n {\n this.index = this.getValidIndex();\n }\n\n const diff = Math.abs(\n this.index -\n this.prevIndex + (\n this.dir > 0 && this.index < this.prevIndex ||\n this.dir < 0 && this.index > this.prevIndex ?\n (this.maxIndex + 1) * this.dir :\n 0));\n\n\n if (!this.dragging && diff > 1) {\n for (let i = 0; i < diff; i++) {\n this.stack.splice(1, 0, this.dir > 0 ? 'next' : 'previous');\n }\n\n e.preventDefault();\n return;\n }\n\n const index =\n this.dir < 0 || !this.slides[this.prevIndex] ? this.index : this.prevIndex;\n this.duration =\n speedUp(this.avgWidth / this.velocity) * (\n dimensions$1(this.slides[index]).width / this.avgWidth);\n\n this.reorder();\n },\n\n itemshow() {\n if (~this.prevIndex) {\n addClass(this._getTransitioner().getItemIn(), this.clsActive);\n }\n },\n\n itemshown() {\n this.updateActiveClasses();\n }\n },\n\n methods: {\n reorder() {\n if (this.finite) {\n css(this.slides, 'order', '');\n return;\n }\n\n const index = this.dir > 0 && this.slides[this.prevIndex] ? this.prevIndex : this.index;\n\n this.slides.forEach((slide, i) =>\n css(\n slide,\n 'order',\n this.dir > 0 && i < index ? 1 : this.dir < 0 && i >= this.index ? -1 : ''));\n\n\n\n if (!this.center) {\n return;\n }\n\n const next = this.slides[index];\n let width = dimensions$1(this.list).width / 2 - dimensions$1(next).width / 2;\n let j = 0;\n\n while (width > 0) {\n const slideIndex = this.getIndex(--j + index, index);\n const slide = this.slides[slideIndex];\n\n css(slide, 'order', slideIndex > index ? -2 : -1);\n width -= dimensions$1(slide).width;\n }\n },\n\n updateActiveClasses() {\n const actives = this._getTransitioner(this.index).getActives();\n const activeClasses = [\n this.clsActive,\n (!this.sets || includes(this.sets, toFloat(this.index))) && this.clsActivated ||\n ''];\n\n for (const slide of this.slides) {\n toggleClass(slide, activeClasses, includes(actives, slide));\n }\n },\n\n getValidIndex(index, prevIndex) {if (index === void 0) {index = this.index;}if (prevIndex === void 0) {prevIndex = this.prevIndex;}\n index = this.getIndex(index, prevIndex);\n\n if (!this.sets) {\n return index;\n }\n\n let prev;\n\n do {\n if (includes(this.sets, index)) {\n return index;\n }\n\n prev = index;\n index = this.getIndex(index + this.dir, prevIndex);\n } while (index !== prev);\n\n return index;\n },\n\n getAdjacentSlides() {\n const { width } = dimensions$1(this.list);\n const left = -width;\n const right = width * 2;\n const slideWidth = dimensions$1(this.slides[this.index]).width;\n const slideLeft = this.center ? width / 2 - slideWidth / 2 : 0;\n const slides = new Set();\n for (const i of [-1, 1]) {\n let currentLeft = slideLeft + (i > 0 ? slideWidth : 0);\n let j = 0;\n do {\n const slide = this.slides[this.getIndex(this.index + i + j++ * i)];\n currentLeft += dimensions$1(slide).width * i;\n slides.add(slide);\n } while (this.slides.length > j && currentLeft > left && currentLeft < right);\n }\n return Array.from(slides);\n }\n }\n };\n\n function getMaxElWidth(list) {\n return Math.max(0, ...children(list).map((el) => dimensions$1(el).width));\n }\n\n var sliderParallax = {\n mixins: [Parallax],\n\n data: {\n selItem: '!li'\n },\n\n beforeConnect() {\n this.item = query(this.selItem, this.$el);\n },\n\n disconnected() {\n this.item = null;\n },\n\n events: [\n {\n name: 'itemin itemout',\n\n self: true,\n\n el() {\n return this.item;\n },\n\n handler(_ref) {let { type, detail: { percent, duration, timing, dir } } = _ref;\n fastdom.read(() => {\n const propsFrom = this.getCss(getCurrentPercent(type, dir, percent));\n const propsTo = this.getCss(isIn(type) ? 0.5 : dir > 0 ? 1 : 0);\n fastdom.write(() => {\n css(this.$el, propsFrom);\n Transition.start(this.$el, propsTo, duration, timing).catch(noop);\n });\n });\n }\n },\n\n {\n name: 'transitioncanceled transitionend',\n\n self: true,\n\n el() {\n return this.item;\n },\n\n handler() {\n Transition.cancel(this.$el);\n }\n },\n\n {\n name: 'itemtranslatein itemtranslateout',\n\n self: true,\n\n el() {\n return this.item;\n },\n\n handler(_ref2) {let { type, detail: { percent, dir } } = _ref2;\n fastdom.read(() => {\n const props = this.getCss(getCurrentPercent(type, dir, percent));\n fastdom.write(() => css(this.$el, props));\n });\n }\n }]\n\n };\n\n function isIn(type) {\n return endsWith(type, 'in');\n }\n\n function getCurrentPercent(type, dir, percent) {\n percent /= 2;\n\n return isIn(type) ^ dir < 0 ? percent : 1 - percent;\n }\n\n var Animations = {\n ...Animations$2,\n fade: {\n show() {\n return [{ opacity: 0, zIndex: 0 }, { zIndex: -1 }];\n },\n\n percent(current) {\n return 1 - css(current, 'opacity');\n },\n\n translate(percent) {\n return [{ opacity: 1 - percent, zIndex: 0 }, { zIndex: -1 }];\n }\n },\n\n scale: {\n show() {\n return [{ opacity: 0, transform: scale3d(1 + 0.5), zIndex: 0 }, { zIndex: -1 }];\n },\n\n percent(current) {\n return 1 - css(current, 'opacity');\n },\n\n translate(percent) {\n return [\n { opacity: 1 - percent, transform: scale3d(1 + 0.5 * percent), zIndex: 0 },\n { zIndex: -1 }];\n\n }\n },\n\n pull: {\n show(dir) {\n return dir < 0 ?\n [\n { transform: translate(30), zIndex: -1 },\n { transform: translate(), zIndex: 0 }] :\n\n [\n { transform: translate(-100), zIndex: 0 },\n { transform: translate(), zIndex: -1 }];\n\n },\n\n percent(current, next, dir) {\n return dir < 0 ? 1 - translated(next) : translated(current);\n },\n\n translate(percent, dir) {\n return dir < 0 ?\n [\n { transform: translate(30 * percent), zIndex: -1 },\n { transform: translate(-100 * (1 - percent)), zIndex: 0 }] :\n\n [\n { transform: translate(-percent * 100), zIndex: 0 },\n { transform: translate(30 * (1 - percent)), zIndex: -1 }];\n\n }\n },\n\n push: {\n show(dir) {\n return dir < 0 ?\n [\n { transform: translate(100), zIndex: 0 },\n { transform: translate(), zIndex: -1 }] :\n\n [\n { transform: translate(-30), zIndex: -1 },\n { transform: translate(), zIndex: 0 }];\n\n },\n\n percent(current, next, dir) {\n return dir > 0 ? 1 - translated(next) : translated(current);\n },\n\n translate(percent, dir) {\n return dir < 0 ?\n [\n { transform: translate(percent * 100), zIndex: 0 },\n { transform: translate(-30 * (1 - percent)), zIndex: -1 }] :\n\n [\n { transform: translate(-30 * percent), zIndex: -1 },\n { transform: translate(100 * (1 - percent)), zIndex: 0 }];\n\n }\n }\n };\n\n var slideshow = {\n mixins: [Class, Slideshow, SliderReactive, SliderPreload],\n\n props: {\n ratio: String,\n minHeight: Number,\n maxHeight: Number\n },\n\n data: {\n ratio: '16:9',\n minHeight: false,\n maxHeight: false,\n selList: '.uk-slideshow-items',\n attrItem: 'uk-slideshow-item',\n selNav: '.uk-slideshow-nav',\n Animations\n },\n\n update: {\n read() {\n if (!this.list) {\n return false;\n }\n\n let [width, height] = this.ratio.split(':').map(Number);\n\n height = height * this.list.offsetWidth / width || 0;\n\n if (this.minHeight) {\n height = Math.max(this.minHeight, height);\n }\n\n if (this.maxHeight) {\n height = Math.min(this.maxHeight, height);\n }\n\n return { height: height - boxModelAdjust(this.list, 'height', 'content-box') };\n },\n\n write(_ref) {let { height } = _ref;\n height > 0 && css(this.list, 'minHeight', height);\n },\n\n events: ['resize']\n },\n\n methods: {\n getAdjacentSlides() {\n return [1, -1].map((i) => this.slides[this.getIndex(this.index + i)]);\n }\n }\n };\n\n var sortable = {\n mixins: [Class, Animate],\n\n props: {\n group: String,\n threshold: Number,\n clsItem: String,\n clsPlaceholder: String,\n clsDrag: String,\n clsDragState: String,\n clsBase: String,\n clsNoDrag: String,\n clsEmpty: String,\n clsCustom: String,\n handle: String\n },\n\n data: {\n group: false,\n threshold: 5,\n clsItem: 'uk-sortable-item',\n clsPlaceholder: 'uk-sortable-placeholder',\n clsDrag: 'uk-sortable-drag',\n clsDragState: 'uk-drag',\n clsBase: 'uk-sortable',\n clsNoDrag: 'uk-sortable-nodrag',\n clsEmpty: 'uk-sortable-empty',\n clsCustom: '',\n handle: false,\n pos: {}\n },\n\n created() {\n for (const key of ['init', 'start', 'move', 'end']) {\n const fn = this[key];\n this[key] = (e) => {\n assign(this.pos, getEventPos(e));\n fn(e);\n };\n }\n },\n\n events: {\n name: pointerDown$1,\n passive: false,\n handler: 'init'\n },\n\n computed: {\n target() {\n return (this.$el.tBodies || [this.$el])[0];\n },\n\n items() {\n return children(this.target);\n },\n\n isEmpty: {\n get() {\n return isEmpty(this.items);\n },\n\n watch(empty) {\n toggleClass(this.target, this.clsEmpty, empty);\n },\n\n immediate: true\n },\n\n handles: {\n get(_ref, el) {let { handle } = _ref;\n return handle ? $$(handle, el) : this.items;\n },\n\n watch(handles, prev) {\n css(prev, { touchAction: '', userSelect: '' });\n css(handles, { touchAction: hasTouch ? 'none' : '', userSelect: 'none' }); // touchAction set to 'none' causes a performance drop in Chrome 80\n },\n\n immediate: true\n }\n },\n\n update: {\n write(data) {\n if (!this.drag || !parent(this.placeholder)) {\n return;\n }\n\n const {\n pos: { x, y },\n origin: { offsetTop, offsetLeft },\n placeholder\n } = this;\n\n css(this.drag, {\n top: y - offsetTop,\n left: x - offsetLeft\n });\n\n const sortable = this.getSortable(document.elementFromPoint(x, y));\n\n if (!sortable) {\n return;\n }\n\n const { items } = sortable;\n\n if (items.some(Transition.inProgress)) {\n return;\n }\n\n const target = findTarget(items, { x, y });\n\n if (items.length && (!target || target === placeholder)) {\n return;\n }\n\n const previous = this.getSortable(placeholder);\n const insertTarget = findInsertTarget(\n sortable.target,\n target,\n placeholder,\n x,\n y,\n sortable === previous && data.moved !== target);\n\n\n if (insertTarget === false) {\n return;\n }\n\n if (insertTarget && placeholder === insertTarget) {\n return;\n }\n\n if (sortable !== previous) {\n previous.remove(placeholder);\n data.moved = target;\n } else {\n delete data.moved;\n }\n\n sortable.insert(placeholder, insertTarget);\n\n this.touched.add(sortable);\n },\n\n events: ['move']\n },\n\n methods: {\n init(e) {\n const { target, button, defaultPrevented } = e;\n const [placeholder] = this.items.filter((el) => within(target, el));\n\n if (\n !placeholder ||\n defaultPrevented ||\n button > 0 ||\n isInput(target) ||\n within(target, \".\" + this.clsNoDrag) ||\n this.handle && !within(target, this.handle))\n {\n return;\n }\n\n e.preventDefault();\n\n this.touched = new Set([this]);\n this.placeholder = placeholder;\n this.origin = { target, index: index(placeholder), ...this.pos };\n\n on(document, pointerMove$1, this.move);\n on(document, pointerUp$1, this.end);\n\n if (!this.threshold) {\n this.start(e);\n }\n },\n\n start(e) {\n this.drag = appendDrag(this.$container, this.placeholder);\n const { left, top } = this.placeholder.getBoundingClientRect();\n assign(this.origin, { offsetLeft: this.pos.x - left, offsetTop: this.pos.y - top });\n\n addClass(this.drag, this.clsDrag, this.clsCustom);\n addClass(this.placeholder, this.clsPlaceholder);\n addClass(this.items, this.clsItem);\n addClass(document.documentElement, this.clsDragState);\n\n trigger(this.$el, 'start', [this, this.placeholder]);\n\n trackScroll(this.pos);\n\n this.move(e);\n },\n\n move(e) {\n if (this.drag) {\n this.$emit('move');\n } else if (\n Math.abs(this.pos.x - this.origin.x) > this.threshold ||\n Math.abs(this.pos.y - this.origin.y) > this.threshold)\n {\n this.start(e);\n }\n },\n\n end() {\n off(document, pointerMove$1, this.move);\n off(document, pointerUp$1, this.end);\n\n if (!this.drag) {\n return;\n }\n\n untrackScroll();\n\n const sortable = this.getSortable(this.placeholder);\n\n if (this === sortable) {\n if (this.origin.index !== index(this.placeholder)) {\n trigger(this.$el, 'moved', [this, this.placeholder]);\n }\n } else {\n trigger(sortable.$el, 'added', [sortable, this.placeholder]);\n trigger(this.$el, 'removed', [this, this.placeholder]);\n }\n\n trigger(this.$el, 'stop', [this, this.placeholder]);\n\n remove$1(this.drag);\n this.drag = null;\n\n for (const { clsPlaceholder, clsItem } of this.touched) {\n for (const sortable of this.touched) {\n removeClass(sortable.items, clsPlaceholder, clsItem);\n }\n }\n this.touched = null;\n removeClass(document.documentElement, this.clsDragState);\n },\n\n insert(element, target) {\n addClass(this.items, this.clsItem);\n\n const insert = () => target ? before(target, element) : append(this.target, element);\n\n this.animate(insert);\n },\n\n remove(element) {\n if (!within(element, this.target)) {\n return;\n }\n\n this.animate(() => remove$1(element));\n },\n\n getSortable(element) {\n do {\n const sortable = this.$getComponent(element, 'sortable');\n\n if (\n sortable && (\n sortable === this || this.group !== false && sortable.group === this.group))\n {\n return sortable;\n }\n } while (element = parent(element));\n }\n }\n };\n\n let trackTimer;\n function trackScroll(pos) {\n let last = Date.now();\n trackTimer = setInterval(() => {\n let { x, y } = pos;\n y += document.scrollingElement.scrollTop;\n\n const dist = (Date.now() - last) * 0.3;\n last = Date.now();\n\n scrollParents(document.elementFromPoint(x, pos.y), /auto|scroll/).\n reverse().\n some((scrollEl) => {\n let { scrollTop: scroll, scrollHeight } = scrollEl;\n\n const { top, bottom, height } = offsetViewport(scrollEl);\n\n if (top < y && top + 35 > y) {\n scroll -= dist;\n } else if (bottom > y && bottom - 35 < y) {\n scroll += dist;\n } else {\n return;\n }\n\n if (scroll > 0 && scroll < scrollHeight - height) {\n scrollEl.scrollTop = scroll;\n return true;\n }\n });\n }, 15);\n }\n\n function untrackScroll() {\n clearInterval(trackTimer);\n }\n\n function appendDrag(container, element) {\n let clone;\n if (['li', 'tr'].some((tag) => isTag(element, tag))) {\n clone = $('
      ');\n append(clone, element.cloneNode(true).children);\n for (const attribute of element.getAttributeNames()) {\n attr(clone, attribute, element.getAttribute(attribute));\n }\n } else {\n clone = element.cloneNode(true);\n }\n\n append(container, clone);\n\n css(clone, 'margin', '0', 'important');\n css(clone, {\n boxSizing: 'border-box',\n width: element.offsetWidth,\n height: element.offsetHeight,\n padding: css(element, 'padding')\n });\n\n height(clone.firstElementChild, height(element.firstElementChild));\n\n return clone;\n }\n\n function findTarget(items, point) {\n return items[findIndex(items, (item) => pointInRect(point, item.getBoundingClientRect()))];\n }\n\n function findInsertTarget(list, target, placeholder, x, y, sameList) {\n if (!children(list).length) {\n return;\n }\n\n const rect = target.getBoundingClientRect();\n if (!sameList) {\n if (!isHorizontal(list, placeholder)) {\n return y < rect.top + rect.height / 2 ? target : target.nextElementSibling;\n }\n\n return target;\n }\n\n const placeholderRect = placeholder.getBoundingClientRect();\n const sameRow = linesIntersect(\n [rect.top, rect.bottom],\n [placeholderRect.top, placeholderRect.bottom]);\n\n\n const pointerPos = sameRow ? x : y;\n const lengthProp = sameRow ? 'width' : 'height';\n const startProp = sameRow ? 'left' : 'top';\n const endProp = sameRow ? 'right' : 'bottom';\n\n const diff =\n placeholderRect[lengthProp] < rect[lengthProp] ?\n rect[lengthProp] - placeholderRect[lengthProp] :\n 0;\n\n if (placeholderRect[startProp] < rect[startProp]) {\n if (diff && pointerPos < rect[startProp] + diff) {\n return false;\n }\n\n return target.nextElementSibling;\n }\n\n if (diff && pointerPos > rect[endProp] - diff) {\n return false;\n }\n\n return target;\n }\n\n function isHorizontal(list, placeholder) {\n const single = children(list).length === 1;\n\n if (single) {\n append(list, placeholder);\n }\n\n const items = children(list);\n const isHorizontal = items.some((el, i) => {\n const rectA = el.getBoundingClientRect();\n return items.slice(i + 1).some((el) => {\n const rectB = el.getBoundingClientRect();\n return !linesIntersect([rectA.left, rectA.right], [rectB.left, rectB.right]);\n });\n });\n\n if (single) {\n remove$1(placeholder);\n }\n\n return isHorizontal;\n }\n\n function linesIntersect(lineA, lineB) {\n return lineA[1] > lineB[0] && lineB[1] > lineA[0];\n }\n\n var tooltip = {\n mixins: [Container, Togglable, Position],\n\n args: 'title',\n\n props: {\n delay: Number,\n title: String\n },\n\n data: {\n pos: 'top',\n title: '',\n delay: 0,\n animation: ['uk-animation-scale-up'],\n duration: 100,\n cls: 'uk-active'\n },\n\n beforeConnect() {\n this.id = \"uk-tooltip-\" + this._uid;\n this._hasTitle = hasAttr(this.$el, 'title');\n attr(this.$el, {\n title: '',\n 'aria-describedby': this.id\n });\n makeFocusable(this.$el);\n },\n\n disconnected() {\n this.hide();\n\n if (!attr(this.$el, 'title')) {\n attr(this.$el, 'title', this._hasTitle ? this.title : null);\n }\n },\n\n methods: {\n show() {\n if (this.isToggled(this.tooltip || null) || !this.title) {\n return;\n }\n\n this._unbind = once(\n document, \"keydown \" +\n pointerDown$1,\n this.hide,\n false,\n (e) =>\n e.type === pointerDown$1 && !within(e.target, this.$el) ||\n e.type === 'keydown' && e.keyCode === 27);\n\n\n clearTimeout(this.showTimer);\n this.showTimer = setTimeout(this._show, this.delay);\n },\n\n async hide() {\n if (matches(this.$el, 'input:focus')) {\n return;\n }\n\n clearTimeout(this.showTimer);\n\n if (!this.isToggled(this.tooltip || null)) {\n return;\n }\n\n await this.toggleElement(this.tooltip, false, false);\n remove$1(this.tooltip);\n this.tooltip = null;\n this._unbind();\n },\n\n _show() {\n this.tooltip = append(\n this.container, \"
      \" + this.title + \"
      \");\n\n\n\n on(this.tooltip, 'toggled', (e, toggled) => {\n if (!toggled) {\n return;\n }\n\n this.positionAt(this.tooltip, this.$el);\n\n const [dir, align] = getAlignment(this.tooltip, this.$el, this.pos);\n\n this.origin =\n this.axis === 'y' ?\n flipPosition(dir) + \"-\" + align :\n align + \"-\" + flipPosition(dir);\n });\n\n this.toggleElement(this.tooltip, true);\n }\n },\n\n events: {\n focus: 'show',\n blur: 'hide',\n\n [pointerEnter + \" \" + pointerLeave](e) {\n if (!isTouch(e)) {\n this[e.type === pointerEnter ? 'show' : 'hide']();\n }\n },\n\n // Clicking a button does not give it focus on all browsers and platforms\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#clicking_and_focus\n [pointerDown$1](e) {\n if (isTouch(e)) {\n this.show();\n }\n }\n }\n };\n\n function makeFocusable(el) {\n if (!isFocusable(el)) {\n attr(el, 'tabindex', '0');\n }\n }\n\n function getAlignment(el, target, _ref) {let [dir, align] = _ref;\n const elOffset = offset(el);\n const targetOffset = offset(target);\n const properties = [\n ['left', 'right'],\n ['top', 'bottom']];\n\n\n for (const props of properties) {\n if (elOffset[props[0]] >= targetOffset[props[1]]) {\n dir = props[1];\n break;\n }\n if (elOffset[props[1]] <= targetOffset[props[0]]) {\n dir = props[0];\n break;\n }\n }\n\n const props = includes(properties[0], dir) ? properties[1] : properties[0];\n if (elOffset[props[0]] === targetOffset[props[0]]) {\n align = props[0];\n } else if (elOffset[props[1]] === targetOffset[props[1]]) {\n align = props[1];\n } else {\n align = 'center';\n }\n\n return [dir, align];\n }\n\n var upload = {\n props: {\n allow: String,\n clsDragover: String,\n concurrent: Number,\n maxSize: Number,\n method: String,\n mime: String,\n msgInvalidMime: String,\n msgInvalidName: String,\n msgInvalidSize: String,\n multiple: Boolean,\n name: String,\n params: Object,\n type: String,\n url: String\n },\n\n data: {\n allow: false,\n clsDragover: 'uk-dragover',\n concurrent: 1,\n maxSize: 0,\n method: 'POST',\n mime: false,\n msgInvalidMime: 'Invalid File Type: %s',\n msgInvalidName: 'Invalid File Name: %s',\n msgInvalidSize: 'Invalid File Size: %s Kilobytes Max',\n multiple: false,\n name: 'files[]',\n params: {},\n type: '',\n url: '',\n abort: noop,\n beforeAll: noop,\n beforeSend: noop,\n complete: noop,\n completeAll: noop,\n error: noop,\n fail: noop,\n load: noop,\n loadEnd: noop,\n loadStart: noop,\n progress: noop\n },\n\n events: {\n change(e) {\n if (!matches(e.target, 'input[type=\"file\"]')) {\n return;\n }\n\n e.preventDefault();\n\n if (e.target.files) {\n this.upload(e.target.files);\n }\n\n e.target.value = '';\n },\n\n drop(e) {\n stop(e);\n\n const transfer = e.dataTransfer;\n\n if (!(transfer != null && transfer.files)) {\n return;\n }\n\n removeClass(this.$el, this.clsDragover);\n\n this.upload(transfer.files);\n },\n\n dragenter(e) {\n stop(e);\n },\n\n dragover(e) {\n stop(e);\n addClass(this.$el, this.clsDragover);\n },\n\n dragleave(e) {\n stop(e);\n removeClass(this.$el, this.clsDragover);\n }\n },\n\n methods: {\n async upload(files) {\n files = toArray(files);\n\n if (!files.length) {\n return;\n }\n\n trigger(this.$el, 'upload', [files]);\n\n for (const file of files) {\n if (this.maxSize && this.maxSize * 1000 < file.size) {\n this.fail(this.msgInvalidSize.replace('%s', this.maxSize));\n return;\n }\n\n if (this.allow && !match(this.allow, file.name)) {\n this.fail(this.msgInvalidName.replace('%s', this.allow));\n return;\n }\n\n if (this.mime && !match(this.mime, file.type)) {\n this.fail(this.msgInvalidMime.replace('%s', this.mime));\n return;\n }\n }\n\n if (!this.multiple) {\n files = files.slice(0, 1);\n }\n\n this.beforeAll(this, files);\n\n const chunks = chunk(files, this.concurrent);\n const upload = async (files) => {\n const data = new FormData();\n\n files.forEach((file) => data.append(this.name, file));\n\n for (const key in this.params) {\n data.append(key, this.params[key]);\n }\n\n try {\n const xhr = await ajax(this.url, {\n data,\n method: this.method,\n responseType: this.type,\n beforeSend: (env) => {\n const { xhr } = env;\n xhr.upload && on(xhr.upload, 'progress', this.progress);\n for (const type of ['loadStart', 'load', 'loadEnd', 'abort']) {\n on(xhr, type.toLowerCase(), this[type]);\n }\n\n return this.beforeSend(env);\n }\n });\n\n this.complete(xhr);\n\n if (chunks.length) {\n await upload(chunks.shift());\n } else {\n this.completeAll(xhr);\n }\n } catch (e) {\n this.error(e);\n }\n };\n\n await upload(chunks.shift());\n }\n }\n };\n\n function match(pattern, path) {\n return path.match(\n new RegExp(\"^\" +\n pattern.\n replace(/\\//g, '\\\\/').\n replace(/\\*\\*/g, '(\\\\/[^\\\\/]+)*').\n replace(/\\*/g, '[^\\\\/]+').\n replace(/((?!\\\\))\\?/g, '$1.') + \"$\",\n 'i'));\n\n\n }\n\n function chunk(files, size) {\n const chunks = [];\n for (let i = 0; i < files.length; i += size) {\n chunks.push(files.slice(i, i + size));\n }\n return chunks;\n }\n\n function stop(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n var components = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Countdown: countdown,\n Filter: filter,\n Lightbox: lightbox,\n LightboxPanel: LightboxPanel,\n Notification: notification,\n Parallax: parallax,\n Slider: slider,\n SliderParallax: sliderParallax,\n Slideshow: slideshow,\n SlideshowParallax: sliderParallax,\n Sortable: sortable,\n Tooltip: tooltip,\n Upload: upload\n });\n\n each(components, (component, name) => UIkit.component(name, component));\n\n return UIkit;\n\n}));\n","var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var i,a=1,s=arguments.length;as.endVal?s.endVal:s.frameVal,s.frameVal=Number(s.frameVal.toFixed(s.options.decimalPlaces)),s.printValue(s.frameVal),i1?s.options.decimal+o[1]:\"\",s.options.useGrouping){e=\"\";for(var l=0,h=a.length;lt;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold){this.finalEndVal=t;var a=this.countDown?1:-1;this.endVal=t+a*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},t.prototype.start=function(t){this.error||(this.callback=t,this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},t.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},t.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},t.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,this.finalEndVal||this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},t.prototype.printValue=function(t){var i=this.formattingFn(t);\"INPUT\"===this.el.tagName?this.el.value=i:\"text\"===this.el.tagName||\"tspan\"===this.el.tagName?this.el.textContent=i:this.el.innerHTML=i},t.prototype.ensureNumber=function(t){return\"number\"==typeof t&&!isNaN(t)},t.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error=\"[CountUp] invalid start or end value: \"+t,null)},t.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},t}();export{CountUp};","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\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\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/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 hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\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 if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\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 = colorName$1[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\nfunction 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\nfunction 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\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction 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\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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)\nfunction 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\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction 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\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the