{"version":3,"file":"js/3785-6162593575bc4e417de6.js","mappings":"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","sources":["webpack://app/./node_modules/performance-now/lib/performance-now.js","webpack://app/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://app/./node_modules/prop-types/index.js","webpack://app/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://app/./node_modules/raf/index.js","webpack://app/./node_modules/javascript-time-ago/locale/en.json.js","webpack://app/./node_modules/relative-time-format/modules/LocaleDataStore.js","webpack://app/./node_modules/relative-time-format/modules/resolveLocale.js","webpack://app/./node_modules/relative-time-format/modules/PluralRuleFunctions.js","webpack://app/./node_modules/relative-time-format/modules/getPluralRulesLocale.js","webpack://app/./node_modules/relative-time-format/modules/PluralRules.js","webpack://app/./node_modules/relative-time-format/modules/RelativeTimeFormat.js","webpack://app/./node_modules/javascript-time-ago/modules/cache.js","webpack://app/./node_modules/javascript-time-ago/modules/locale.js","webpack://app/./node_modules/javascript-time-ago/modules/isStyleObject.js","webpack://app/./node_modules/javascript-time-ago/modules/steps/units.js","webpack://app/./node_modules/javascript-time-ago/modules/steps/getStepDenominator.js","webpack://app/./node_modules/javascript-time-ago/modules/round.js","webpack://app/./node_modules/javascript-time-ago/modules/steps/getStepMinTime.js","webpack://app/./node_modules/javascript-time-ago/modules/steps/getStep.js","webpack://app/./node_modules/javascript-time-ago/modules/steps/getTimeToNextUpdateForUnit.js","webpack://app/./node_modules/javascript-time-ago/modules/steps/getTimeToNextUpdate.js","webpack://app/./node_modules/javascript-time-ago/modules/LocaleDataStore.js","webpack://app/./node_modules/javascript-time-ago/modules/steps/round.js","webpack://app/./node_modules/javascript-time-ago/modules/style/round.js","webpack://app/./node_modules/javascript-time-ago/modules/style/roundMinute.js","webpack://app/./node_modules/javascript-time-ago/modules/steps/approximate.js","webpack://app/./node_modules/javascript-time-ago/modules/style/approximate.js","webpack://app/./node_modules/javascript-time-ago/modules/style/approximateTime.js","webpack://app/./node_modules/javascript-time-ago/modules/steps/helpers.js","webpack://app/./node_modules/javascript-time-ago/modules/style/twitter.js","webpack://app/./node_modules/javascript-time-ago/modules/style/twitterNow.js","webpack://app/./node_modules/javascript-time-ago/modules/style/twitterMinute.js","webpack://app/./node_modules/javascript-time-ago/modules/style/twitterMinuteNow.js","webpack://app/./node_modules/javascript-time-ago/modules/style/twitterFirstMinute.js","webpack://app/./node_modules/javascript-time-ago/modules/style/mini.js","webpack://app/./node_modules/javascript-time-ago/modules/style/miniNow.js","webpack://app/./node_modules/javascript-time-ago/modules/style/miniMinute.js","webpack://app/./node_modules/javascript-time-ago/modules/style/miniMinuteNow.js","webpack://app/./node_modules/javascript-time-ago/modules/TimeAgo.js","webpack://app/./node_modules/javascript-time-ago/modules/style/getStyleByName.js","webpack://app/./node_modules/react-time-ago/modules/Time.js","webpack://app/./node_modules/memoize-one/dist/memoize-one.esm.js","webpack://app/./node_modules/react-time-ago/modules/helpers/locale.js","webpack://app/./node_modules/react-time-ago/modules/helpers/cache.js","webpack://app/./node_modules/react-time-ago/modules/helpers/getVerboseDateFormatter.js","webpack://app/./node_modules/react-time-ago/modules/helpers/date.js","webpack://app/./node_modules/react-time-ago/modules/helpers/getTimeAgo.js","webpack://app/./node_modules/react-time-ago/modules/Updater.js","webpack://app/./node_modules/react-time-ago/modules/helpers/binarySearch.js","webpack://app/./node_modules/react-time-ago/modules/useTimeAgo.js","webpack://app/./node_modules/react-time-ago/modules/PropTypes.js","webpack://app/./node_modules/react-time-ago/modules/ReactTimeAgo.js"],"sourcesContent":["// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","export default {\n\t\"locale\": \"en\",\n\t\"long\": {\n\t\t\"year\": {\n\t\t\t\"previous\": \"last year\",\n\t\t\t\"current\": \"this year\",\n\t\t\t\"next\": \"next year\",\n\t\t\t\"past\": {\n\t\t\t\t\"one\": \"{0} year ago\",\n\t\t\t\t\"other\": \"{0} years ago\"\n\t\t\t},\n\t\t\t\"future\": {\n\t\t\t\t\"one\": \"in {0} year\",\n\t\t\t\t\"other\": \"in {0} years\"\n\t\t\t}\n\t\t},\n\t\t\"quarter\": {\n\t\t\t\"previous\": \"last quarter\",\n\t\t\t\"current\": \"this quarter\",\n\t\t\t\"next\": \"next quarter\",\n\t\t\t\"past\": {\n\t\t\t\t\"one\": \"{0} quarter ago\",\n\t\t\t\t\"other\": \"{0} quarters ago\"\n\t\t\t},\n\t\t\t\"future\": {\n\t\t\t\t\"one\": \"in {0} quarter\",\n\t\t\t\t\"other\": \"in {0} quarters\"\n\t\t\t}\n\t\t},\n\t\t\"month\": {\n\t\t\t\"previous\": \"last month\",\n\t\t\t\"current\": \"this month\",\n\t\t\t\"next\": \"next month\",\n\t\t\t\"past\": {\n\t\t\t\t\"one\": \"{0} month ago\",\n\t\t\t\t\"other\": \"{0} months ago\"\n\t\t\t},\n\t\t\t\"future\": {\n\t\t\t\t\"one\": \"in {0} month\",\n\t\t\t\t\"other\": \"in {0} months\"\n\t\t\t}\n\t\t},\n\t\t\"week\": {\n\t\t\t\"previous\": \"last week\",\n\t\t\t\"current\": \"this week\",\n\t\t\t\"next\": \"next week\",\n\t\t\t\"past\": {\n\t\t\t\t\"one\": \"{0} week ago\",\n\t\t\t\t\"other\": \"{0} weeks ago\"\n\t\t\t},\n\t\t\t\"future\": {\n\t\t\t\t\"one\": \"in {0} week\",\n\t\t\t\t\"other\": \"in {0} weeks\"\n\t\t\t}\n\t\t},\n\t\t\"day\": {\n\t\t\t\"previous\": \"yesterday\",\n\t\t\t\"current\": \"today\",\n\t\t\t\"next\": \"tomorrow\",\n\t\t\t\"past\": {\n\t\t\t\t\"one\": \"{0} day ago\",\n\t\t\t\t\"other\": \"{0} days ago\"\n\t\t\t},\n\t\t\t\"future\": {\n\t\t\t\t\"one\": \"in {0} day\",\n\t\t\t\t\"other\": \"in {0} days\"\n\t\t\t}\n\t\t},\n\t\t\"hour\": {\n\t\t\t\"current\": \"this hour\",\n\t\t\t\"past\": {\n\t\t\t\t\"one\": \"{0} hour ago\",\n\t\t\t\t\"other\": \"{0} hours ago\"\n\t\t\t},\n\t\t\t\"future\": {\n\t\t\t\t\"one\": \"in {0} hour\",\n\t\t\t\t\"other\": \"in {0} hours\"\n\t\t\t}\n\t\t},\n\t\t\"minute\": {\n\t\t\t\"current\": \"this minute\",\n\t\t\t\"past\": {\n\t\t\t\t\"one\": \"{0} minute ago\",\n\t\t\t\t\"other\": \"{0} minutes ago\"\n\t\t\t},\n\t\t\t\"future\": {\n\t\t\t\t\"one\": \"in {0} minute\",\n\t\t\t\t\"other\": \"in {0} minutes\"\n\t\t\t}\n\t\t},\n\t\t\"second\": {\n\t\t\t\"current\": \"now\",\n\t\t\t\"past\": {\n\t\t\t\t\"one\": \"{0} second ago\",\n\t\t\t\t\"other\": \"{0} seconds ago\"\n\t\t\t},\n\t\t\t\"future\": {\n\t\t\t\t\"one\": \"in {0} second\",\n\t\t\t\t\"other\": \"in {0} seconds\"\n\t\t\t}\n\t\t}\n\t},\n\t\"short\": {\n\t\t\"year\": {\n\t\t\t\"previous\": \"last yr.\",\n\t\t\t\"current\": \"this yr.\",\n\t\t\t\"next\": \"next yr.\",\n\t\t\t\"past\": \"{0} yr. ago\",\n\t\t\t\"future\": \"in {0} yr.\"\n\t\t},\n\t\t\"quarter\": {\n\t\t\t\"previous\": \"last qtr.\",\n\t\t\t\"current\": \"this qtr.\",\n\t\t\t\"next\": \"next qtr.\",\n\t\t\t\"past\": {\n\t\t\t\t\"one\": \"{0} qtr. ago\",\n\t\t\t\t\"other\": \"{0} qtrs. ago\"\n\t\t\t},\n\t\t\t\"future\": {\n\t\t\t\t\"one\": \"in {0} qtr.\",\n\t\t\t\t\"other\": \"in {0} qtrs.\"\n\t\t\t}\n\t\t},\n\t\t\"month\": {\n\t\t\t\"previous\": \"last mo.\",\n\t\t\t\"current\": \"this mo.\",\n\t\t\t\"next\": \"next mo.\",\n\t\t\t\"past\": \"{0} mo. ago\",\n\t\t\t\"future\": \"in {0} mo.\"\n\t\t},\n\t\t\"week\": {\n\t\t\t\"previous\": \"last wk.\",\n\t\t\t\"current\": \"this wk.\",\n\t\t\t\"next\": \"next wk.\",\n\t\t\t\"past\": \"{0} wk. ago\",\n\t\t\t\"future\": \"in {0} wk.\"\n\t\t},\n\t\t\"day\": {\n\t\t\t\"previous\": \"yesterday\",\n\t\t\t\"current\": \"today\",\n\t\t\t\"next\": \"tomorrow\",\n\t\t\t\"past\": {\n\t\t\t\t\"one\": \"{0} day ago\",\n\t\t\t\t\"other\": \"{0} days ago\"\n\t\t\t},\n\t\t\t\"future\": {\n\t\t\t\t\"one\": \"in {0} day\",\n\t\t\t\t\"other\": \"in {0} days\"\n\t\t\t}\n\t\t},\n\t\t\"hour\": {\n\t\t\t\"current\": \"this hour\",\n\t\t\t\"past\": \"{0} hr. ago\",\n\t\t\t\"future\": \"in {0} hr.\"\n\t\t},\n\t\t\"minute\": {\n\t\t\t\"current\": \"this minute\",\n\t\t\t\"past\": \"{0} min. ago\",\n\t\t\t\"future\": \"in {0} min.\"\n\t\t},\n\t\t\"second\": {\n\t\t\t\"current\": \"now\",\n\t\t\t\"past\": \"{0} sec. ago\",\n\t\t\t\"future\": \"in {0} sec.\"\n\t\t}\n\t},\n\t\"narrow\": {\n\t\t\"year\": {\n\t\t\t\"previous\": \"last yr.\",\n\t\t\t\"current\": \"this yr.\",\n\t\t\t\"next\": \"next yr.\",\n\t\t\t\"past\": \"{0}y ago\",\n\t\t\t\"future\": \"in {0}y\"\n\t\t},\n\t\t\"quarter\": {\n\t\t\t\"previous\": \"last qtr.\",\n\t\t\t\"current\": \"this qtr.\",\n\t\t\t\"next\": \"next qtr.\",\n\t\t\t\"past\": \"{0}q ago\",\n\t\t\t\"future\": \"in {0}q\"\n\t\t},\n\t\t\"month\": {\n\t\t\t\"previous\": \"last mo.\",\n\t\t\t\"current\": \"this mo.\",\n\t\t\t\"next\": \"next mo.\",\n\t\t\t\"past\": \"{0}mo ago\",\n\t\t\t\"future\": \"in {0}mo\"\n\t\t},\n\t\t\"week\": {\n\t\t\t\"previous\": \"last wk.\",\n\t\t\t\"current\": \"this wk.\",\n\t\t\t\"next\": \"next wk.\",\n\t\t\t\"past\": \"{0}w ago\",\n\t\t\t\"future\": \"in {0}w\"\n\t\t},\n\t\t\"day\": {\n\t\t\t\"previous\": \"yesterday\",\n\t\t\t\"current\": \"today\",\n\t\t\t\"next\": \"tomorrow\",\n\t\t\t\"past\": \"{0}d ago\",\n\t\t\t\"future\": \"in {0}d\"\n\t\t},\n\t\t\"hour\": {\n\t\t\t\"current\": \"this hour\",\n\t\t\t\"past\": \"{0}h ago\",\n\t\t\t\"future\": \"in {0}h\"\n\t\t},\n\t\t\"minute\": {\n\t\t\t\"current\": \"this minute\",\n\t\t\t\"past\": \"{0}m ago\",\n\t\t\t\"future\": \"in {0}m\"\n\t\t},\n\t\t\"second\": {\n\t\t\t\"current\": \"now\",\n\t\t\t\"past\": \"{0}s ago\",\n\t\t\t\"future\": \"in {0}s\"\n\t\t}\n\t},\n\t\"now\": {\n\t\t\"now\": {\n\t\t\t\"current\": \"now\",\n\t\t\t\"future\": \"in a moment\",\n\t\t\t\"past\": \"just now\"\n\t\t}\n\t},\n\t\"mini\": {\n\t\t\"year\": \"{0}yr\",\n\t\t\"month\": \"{0}mo\",\n\t\t\"week\": \"{0}wk\",\n\t\t\"day\": \"{0}d\",\n\t\t\"hour\": \"{0}h\",\n\t\t\"minute\": \"{0}m\",\n\t\t\"second\": \"{0}s\",\n\t\t\"now\": \"now\"\n\t},\n\t\"short-time\": {\n\t\t\"year\": \"{0} yr.\",\n\t\t\"month\": \"{0} mo.\",\n\t\t\"week\": \"{0} wk.\",\n\t\t\"day\": {\n\t\t\t\"one\": \"{0} day\",\n\t\t\t\"other\": \"{0} days\"\n\t\t},\n\t\t\"hour\": \"{0} hr.\",\n\t\t\"minute\": \"{0} min.\",\n\t\t\"second\": \"{0} sec.\"\n\t},\n\t\"long-time\": {\n\t\t\"year\": {\n\t\t\t\"one\": \"{0} year\",\n\t\t\t\"other\": \"{0} years\"\n\t\t},\n\t\t\"month\": {\n\t\t\t\"one\": \"{0} month\",\n\t\t\t\"other\": \"{0} months\"\n\t\t},\n\t\t\"week\": {\n\t\t\t\"one\": \"{0} week\",\n\t\t\t\"other\": \"{0} weeks\"\n\t\t},\n\t\t\"day\": {\n\t\t\t\"one\": \"{0} day\",\n\t\t\t\"other\": \"{0} days\"\n\t\t},\n\t\t\"hour\": {\n\t\t\t\"one\": \"{0} hour\",\n\t\t\t\"other\": \"{0} hours\"\n\t\t},\n\t\t\"minute\": {\n\t\t\t\"one\": \"{0} minute\",\n\t\t\t\"other\": \"{0} minutes\"\n\t\t},\n\t\t\"second\": {\n\t\t\t\"one\": \"{0} second\",\n\t\t\t\"other\": \"{0} seconds\"\n\t\t}\n\t}\n}","// Fallback locale.\n// (when not a single one of the supplied \"preferred\" locales is available)\nvar defaultLocale = 'en'; // For all locales added\n// their relative time formatter messages will be stored here.\n\nvar localesData = {}; // According to the spec BCP 47 language tags are case-insensitive.\n// https://tools.ietf.org/html/rfc5646\n\nvar lowercaseLocaleLookup = {};\nexport function getDefaultLocale() {\n return defaultLocale;\n}\nexport function setDefaultLocale(locale) {\n defaultLocale = locale;\n}\n/**\r\n * Gets locale data previously added by `addLocaleData()`.\r\n * @return {object} [localeData]\r\n */\n\nexport function getLocaleData(locale) {\n return localesData[locale];\n}\n/**\r\n * Adds locale data.\r\n * Is called by `RelativeTimeFormat.addLocale(...)`.\r\n * @param {object} localeData\r\n */\n\nexport function addLocaleData(localeData) {\n if (!localeData) {\n throw new Error('No locale data passed');\n } // This locale data is stored in a global variable\n // and later used when calling `.format(time)`.\n\n\n localesData[localeData.locale] = localeData;\n lowercaseLocaleLookup[localeData.locale.toLowerCase()] = localeData.locale;\n}\n/**\r\n * Returns a locale for which locale data has been added\r\n * via `RelativeTimeFormat.addLocale(...)`.\r\n * @param {string} locale\r\n * @return {string} [locale]\r\n */\n\nexport function resolveLocale(locale) {\n if (localesData[locale]) {\n return locale;\n }\n\n if (lowercaseLocaleLookup[locale.toLowerCase()]) {\n return lowercaseLocaleLookup[locale.toLowerCase()];\n }\n}\n//# sourceMappingURL=LocaleDataStore.js.map","import { resolveLocale as resolveLocaleForData } from './LocaleDataStore.js';\n/**\r\n * Resolves a locale to a supported one (if any).\r\n * @param {string} locale\r\n * @param {Object} [options] - An object that may have the following property:\r\n * @param {string} [options.localeMatcher=\"lookup\"] - The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\". Currently only \"lookup\" is supported.\r\n * @return {string} [locale]\r\n * @example\r\n * // Returns \"sr\"\r\n * resolveLocale(\"sr-Cyrl-BA\")\r\n * // Returns `undefined`\r\n * resolveLocale(\"xx-Latn\")\r\n */\n\nexport default function resolveLocale(locale) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var localeMatcher = options.localeMatcher || 'lookup';\n\n switch (localeMatcher) {\n case 'lookup':\n return resolveLocaleLookup(locale);\n // \"best fit\" locale matching is not supported.\n // https://github.com/catamphetamine/relative-time-format/issues/2\n\n case 'best fit':\n // return resolveLocaleBestFit(locale)\n return resolveLocaleLookup(locale);\n\n default:\n throw new RangeError(\"Invalid \\\"localeMatcher\\\" option: \".concat(localeMatcher));\n }\n}\n/**\r\n * Resolves a locale to a supported one (if any).\r\n * Starts from the most specific locale and gradually\r\n * falls back to less specific ones.\r\n * This is a basic implementation of the \"lookup\" algorithm.\r\n * https://tools.ietf.org/html/rfc4647#section-3.4\r\n * @param {string} locale\r\n * @return {string} [locale]\r\n * @example\r\n * // Returns \"sr\"\r\n * resolveLocaleLookup(\"sr-Cyrl-BA\")\r\n * // Returns `undefined`\r\n * resolveLocaleLookup(\"xx-Latn\")\r\n */\n\nexport function resolveLocaleLookup(locale) {\n var resolvedLocale = resolveLocaleForData(locale);\n\n if (resolvedLocale) {\n return resolvedLocale;\n } // `sr-Cyrl-BA` -> `sr-Cyrl` -> `sr`.\n\n\n var parts = locale.split('-');\n\n while (locale.length > 1) {\n parts.pop();\n locale = parts.join('-');\n\n var _resolvedLocale = resolveLocaleForData(locale);\n\n if (_resolvedLocale) {\n return _resolvedLocale;\n }\n }\n}\n//# sourceMappingURL=resolveLocale.js.map","// (this file was autogenerated by `generate-locales`)\n// \"plural rules\" functions are not stored in locale JSON files because they're not strings.\n// This file isn't big — it's about 5 kilobytes in size (minified).\n// Alternatively, the pluralization rules for each locale could be stored\n// in their JSON files in a non-parsed form and later parsed via `make-plural` library.\n// But `make-plural` library itself is relatively big in size:\n// `make-plural.min.js` is about 6 kilobytes (https://unpkg.com/make-plural/).\n// So, it's more practical to bypass runtime `make-plural` pluralization rules compilation\n// and just include the already compiled pluarlization rules for all locales in the library code.\nvar $ = {\n af: function af(n) {\n return n == 1 ? 'one' : 'other';\n },\n am: function am(n) {\n return n >= 0 && n <= 1 ? 'one' : 'other';\n },\n ar: function ar(n) {\n var s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n100 = t0 && s[0].slice(-2);\n return n == 0 ? 'zero' : n == 1 ? 'one' : n == 2 ? 'two' : n100 >= 3 && n100 <= 10 ? 'few' : n100 >= 11 && n100 <= 99 ? 'many' : 'other';\n },\n ast: function ast(n) {\n var s = String(n).split('.'),\n v0 = !s[1];\n return n == 1 && v0 ? 'one' : 'other';\n },\n be: function be(n) {\n var s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);\n return n10 == 1 && n100 != 11 ? 'one' : n10 >= 2 && n10 <= 4 && (n100 < 12 || n100 > 14) ? 'few' : t0 && n10 == 0 || n10 >= 5 && n10 <= 9 || n100 >= 11 && n100 <= 14 ? 'many' : 'other';\n },\n br: function br(n) {\n var s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2),\n n1000000 = t0 && s[0].slice(-6);\n return n10 == 1 && n100 != 11 && n100 != 71 && n100 != 91 ? 'one' : n10 == 2 && n100 != 12 && n100 != 72 && n100 != 92 ? 'two' : (n10 == 3 || n10 == 4 || n10 == 9) && (n100 < 10 || n100 > 19) && (n100 < 70 || n100 > 79) && (n100 < 90 || n100 > 99) ? 'few' : n != 0 && t0 && n1000000 == 0 ? 'many' : 'other';\n },\n bs: function bs(n) {\n var s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2),\n f10 = f.slice(-1),\n f100 = f.slice(-2);\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one' : v0 && i10 >= 2 && i10 <= 4 && (i100 < 12 || i100 > 14) || f10 >= 2 && f10 <= 4 && (f100 < 12 || f100 > 14) ? 'few' : 'other';\n },\n ca: function ca(n) {\n var s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i1000000 = i.slice(-6);\n return n == 1 && v0 ? 'one' : i != 0 && i1000000 == 0 && v0 ? 'many' : 'other';\n },\n ceb: function ceb(n) {\n var s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i10 = i.slice(-1),\n f10 = f.slice(-1);\n return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';\n },\n cs: function cs(n) {\n var s = String(n).split('.'),\n i = s[0],\n v0 = !s[1];\n return n == 1 && v0 ? 'one' : i >= 2 && i <= 4 && v0 ? 'few' : !v0 ? 'many' : 'other';\n },\n cy: function cy(n) {\n return n == 0 ? 'zero' : n == 1 ? 'one' : n == 2 ? 'two' : n == 3 ? 'few' : n == 6 ? 'many' : 'other';\n },\n da: function da(n) {\n var s = String(n).split('.'),\n i = s[0],\n t0 = Number(s[0]) == n;\n return n == 1 || !t0 && (i == 0 || i == 1) ? 'one' : 'other';\n },\n dsb: function dsb(n) {\n var s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i100 = i.slice(-2),\n f100 = f.slice(-2);\n return v0 && i100 == 1 || f100 == 1 ? 'one' : v0 && i100 == 2 || f100 == 2 ? 'two' : v0 && (i100 == 3 || i100 == 4) || f100 == 3 || f100 == 4 ? 'few' : 'other';\n },\n dz: function dz(n) {\n return 'other';\n },\n es: function es(n) {\n var s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i1000000 = i.slice(-6);\n return n == 1 ? 'one' : i != 0 && i1000000 == 0 && v0 ? 'many' : 'other';\n },\n ff: function ff(n) {\n return n >= 0 && n < 2 ? 'one' : 'other';\n },\n fr: function fr(n) {\n var s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i1000000 = i.slice(-6);\n return n >= 0 && n < 2 ? 'one' : i != 0 && i1000000 == 0 && v0 ? 'many' : 'other';\n },\n ga: function ga(n) {\n var s = String(n).split('.'),\n t0 = Number(s[0]) == n;\n return n == 1 ? 'one' : n == 2 ? 'two' : t0 && n >= 3 && n <= 6 ? 'few' : t0 && n >= 7 && n <= 10 ? 'many' : 'other';\n },\n gd: function gd(n) {\n var s = String(n).split('.'),\n t0 = Number(s[0]) == n;\n return n == 1 || n == 11 ? 'one' : n == 2 || n == 12 ? 'two' : t0 && n >= 3 && n <= 10 || t0 && n >= 13 && n <= 19 ? 'few' : 'other';\n },\n he: function he(n) {\n var s = String(n).split('.'),\n i = s[0],\n v0 = !s[1];\n return i == 1 && v0 || i == 0 && !v0 ? 'one' : i == 2 && v0 ? 'two' : 'other';\n },\n is: function is(n) {\n var s = String(n).split('.'),\n i = s[0],\n t = (s[1] || '').replace(/0+$/, ''),\n t0 = Number(s[0]) == n,\n i10 = i.slice(-1),\n i100 = i.slice(-2);\n return t0 && i10 == 1 && i100 != 11 || t % 10 == 1 && t % 100 != 11 ? 'one' : 'other';\n },\n ksh: function ksh(n) {\n return n == 0 ? 'zero' : n == 1 ? 'one' : 'other';\n },\n lt: function lt(n) {\n var s = String(n).split('.'),\n f = s[1] || '',\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);\n return n10 == 1 && (n100 < 11 || n100 > 19) ? 'one' : n10 >= 2 && n10 <= 9 && (n100 < 11 || n100 > 19) ? 'few' : f != 0 ? 'many' : 'other';\n },\n lv: function lv(n) {\n var s = String(n).split('.'),\n f = s[1] || '',\n v = f.length,\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2),\n f100 = f.slice(-2),\n f10 = f.slice(-1);\n return t0 && n10 == 0 || n100 >= 11 && n100 <= 19 || v == 2 && f100 >= 11 && f100 <= 19 ? 'zero' : n10 == 1 && n100 != 11 || v == 2 && f10 == 1 && f100 != 11 || v != 2 && f10 == 1 ? 'one' : 'other';\n },\n mk: function mk(n) {\n var s = String(n).split('.'),\n i = s[0],\n f = s[1] || '',\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2),\n f10 = f.slice(-1),\n f100 = f.slice(-2);\n return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one' : 'other';\n },\n mt: function mt(n) {\n var s = String(n).split('.'),\n t0 = Number(s[0]) == n,\n n100 = t0 && s[0].slice(-2);\n return n == 1 ? 'one' : n == 2 ? 'two' : n == 0 || n100 >= 3 && n100 <= 10 ? 'few' : n100 >= 11 && n100 <= 19 ? 'many' : 'other';\n },\n pa: function pa(n) {\n return n == 0 || n == 1 ? 'one' : 'other';\n },\n pl: function pl(n) {\n var s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2);\n return n == 1 && v0 ? 'one' : v0 && i10 >= 2 && i10 <= 4 && (i100 < 12 || i100 > 14) ? 'few' : v0 && i != 1 && (i10 == 0 || i10 == 1) || v0 && i10 >= 5 && i10 <= 9 || v0 && i100 >= 12 && i100 <= 14 ? 'many' : 'other';\n },\n pt: function pt(n) {\n var s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i1000000 = i.slice(-6);\n return i == 0 || i == 1 ? 'one' : i != 0 && i1000000 == 0 && v0 ? 'many' : 'other';\n },\n ro: function ro(n) {\n var s = String(n).split('.'),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n100 = t0 && s[0].slice(-2);\n return n == 1 && v0 ? 'one' : !v0 || n == 0 || n != 1 && n100 >= 1 && n100 <= 19 ? 'few' : 'other';\n },\n ru: function ru(n) {\n var s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i10 = i.slice(-1),\n i100 = i.slice(-2);\n return v0 && i10 == 1 && i100 != 11 ? 'one' : v0 && i10 >= 2 && i10 <= 4 && (i100 < 12 || i100 > 14) ? 'few' : v0 && i10 == 0 || v0 && i10 >= 5 && i10 <= 9 || v0 && i100 >= 11 && i100 <= 14 ? 'many' : 'other';\n },\n se: function se(n) {\n return n == 1 ? 'one' : n == 2 ? 'two' : 'other';\n },\n si: function si(n) {\n var s = String(n).split('.'),\n i = s[0],\n f = s[1] || '';\n return n == 0 || n == 1 || i == 0 && f == 1 ? 'one' : 'other';\n },\n sl: function sl(n) {\n var s = String(n).split('.'),\n i = s[0],\n v0 = !s[1],\n i100 = i.slice(-2);\n return v0 && i100 == 1 ? 'one' : v0 && i100 == 2 ? 'two' : v0 && (i100 == 3 || i100 == 4) || !v0 ? 'few' : 'other';\n }\n};\n$.as = $.am;\n$.az = $.af;\n$.bg = $.af;\n$.bn = $.am;\n$.brx = $.af;\n$.ce = $.af;\n$.chr = $.af;\n$.de = $.ast;\n$.ee = $.af;\n$.el = $.af;\n$.en = $.ast;\n$.et = $.ast;\n$.eu = $.af;\n$.fa = $.am;\n$.fi = $.ast;\n$.fil = $.ceb;\n$.fo = $.af;\n$.fur = $.af;\n$.fy = $.ast;\n$.gl = $.ast;\n$.gu = $.am;\n$.ha = $.af;\n$.hi = $.am;\n$.hr = $.bs;\n$.hsb = $.dsb;\n$.hu = $.af;\n$.hy = $.ff;\n$.ia = $.ast;\n$.id = $.dz;\n$.ig = $.dz;\n$.it = $.ca;\n$.ja = $.dz;\n$.jgo = $.af;\n$.jv = $.dz;\n$.ka = $.af;\n$.kea = $.dz;\n$.kk = $.af;\n$.kl = $.af;\n$.km = $.dz;\n$.kn = $.am;\n$.ko = $.dz;\n$.ks = $.af;\n$.ku = $.af;\n$.ky = $.af;\n$.lb = $.af;\n$.lkt = $.dz;\n$.lo = $.dz;\n$.ml = $.af;\n$.mn = $.af;\n$.mr = $.af;\n$.ms = $.dz;\n$.my = $.dz;\n$.nb = $.af;\n$.ne = $.af;\n$.nl = $.ast;\n$.nn = $.af;\n$.no = $.af;\n$.or = $.af;\n$.pcm = $.am;\n$.ps = $.af;\n$.rm = $.af;\n$.sah = $.dz;\n$.sc = $.ast;\n$.sd = $.af;\n$.sk = $.cs;\n$.so = $.af;\n$.sq = $.af;\n$.sr = $.bs;\n$.su = $.dz;\n$.sv = $.ast;\n$.sw = $.ast;\n$.ta = $.af;\n$.te = $.af;\n$.th = $.dz;\n$.ti = $.pa;\n$.tk = $.af;\n$.to = $.dz;\n$.tr = $.af;\n$.ug = $.af;\n$.uk = $.ru;\n$.ur = $.ast;\n$.uz = $.af;\n$.vi = $.dz;\n$.wae = $.af;\n$.wo = $.dz;\n$.xh = $.af;\n$.yi = $.ast;\n$.yo = $.dz;\n$.yue = $.dz;\n$.zh = $.dz;\n$.zu = $.am;\nexport default $;\n//# sourceMappingURL=PluralRuleFunctions.js.map","/**\r\n * Returns a `locale` for which a function exists in `./PluralRuleFunctions.js`.\r\n * @param {string} locale\r\n * @return {string}\r\n * @example\r\n * getPluralRulesLocale(\"ru-RU-Cyrl\") // Returns \"ru\".\r\n */\nexport default function getPluralRulesLocale(locale) {\n // \"pt\" language is the only one having different pluralization rules\n // for the one (\"pt\") (Portuguese) locale and the other (\"pt-PT\") (European Portuguese).\n // http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html\n // (see the entries for \"pt\" and \"pt_PT\" there)\n if (locale === 'pt-PT') {\n return locale;\n }\n\n return getLanguageFromLanguageTag(locale);\n}\n/**\r\n * Extracts language from an IETF BCP 47 language tag.\r\n * @param {string} languageTag - IETF BCP 47 language tag.\r\n * @return {string}\r\n * @example\r\n * // Returns \"he\"\r\n * getLanguageFromLanguageTag(\"he-IL-u-ca-hebrew-tz-jeruslm\")\r\n * // Returns \"ar\"\r\n * getLanguageFromLanguageTag(\"ar-u-nu-latn\")\r\n */\n\nvar LANGUAGE_REG_EXP = /^([a-z0-9]+)/i;\n\nfunction getLanguageFromLanguageTag(languageTag) {\n var match = languageTag.match(LANGUAGE_REG_EXP);\n\n if (!match) {\n throw new TypeError(\"Invalid locale: \".concat(languageTag));\n }\n\n return match[1];\n}\n//# sourceMappingURL=getPluralRulesLocale.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// Importing `PluralRule` polyfill from a separate package\n// results in a bundle that is larger by 1kB for some reason.\n// export { default as default } from 'intl-plural-rules-polyfill/cardinal'\nimport PluralRuleFunctions from \"./PluralRuleFunctions.js\";\nimport getPluralRulesLocale from \"./getPluralRulesLocale.js\";\n/**\r\n * `Intl.PluralRules` polyfill.\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/PluralRules\r\n */\n\nvar PluralRules = /*#__PURE__*/function () {\n function PluralRules(locale, options) {\n _classCallCheck(this, PluralRules);\n\n var locales = PluralRules.supportedLocalesOf(locale);\n\n if (locales.length === 0) {\n throw new RangeError(\"Unsupported locale: \" + locale);\n }\n\n if (options && options.type !== \"cardinal\") {\n throw new RangeError(\"Only \\\"cardinal\\\" \\\"type\\\" is supported\");\n }\n\n this.$ = PluralRuleFunctions[getPluralRulesLocale(locales[0])];\n }\n\n _createClass(PluralRules, [{\n key: \"select\",\n value: function select(number) {\n return this.$(number);\n }\n }], [{\n key: \"supportedLocalesOf\",\n value: function supportedLocalesOf(locales) {\n if (typeof locales === \"string\") {\n locales = [locales];\n }\n\n return locales.filter(function (locale) {\n return PluralRuleFunctions[getPluralRulesLocale(locale)];\n });\n }\n }]);\n\n return PluralRules;\n}();\n\nexport { PluralRules as default };\n//# sourceMappingURL=PluralRules.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { getDefaultLocale, setDefaultLocale, getLocaleData, addLocaleData } from './LocaleDataStore.js';\nimport resolveLocale from './resolveLocale.js';\nimport PluralRules from './PluralRules.js'; // Importing `PluralRule` polyfill from a separate package\n// results in a bundle that is larger by 1kB for some reason.\n// import PluralRules from 'intl-plural-rules-polyfill/cardinal'\n// Valid time units.\n\nexport var UNITS = [\"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\", \"year\"]; // Valid values for the `numeric` option.\n\nvar NUMERIC_VALUES = [\"auto\", \"always\"]; // Valid values for the `style` option.\n\nvar STYLE_VALUES = [\"long\", \"short\", \"narrow\"]; // Valid values for the `localeMatcher` option.\n\nvar LOCALE_MATCHER_VALUES = [\"lookup\", \"best fit\"];\n/**\r\n * Polyfill for `Intl.RelativeTimeFormat` proposal.\r\n * https://github.com/tc39/proposal-intl-relative-time\r\n * https://github.com/tc39/proposal-intl-relative-time/issues/55\r\n */\n\nvar RelativeTimeFormat = /*#__PURE__*/function () {\n /**\r\n * @param {(string|string[])} [locales] - Preferred locales (or locale).\r\n * @param {Object} [options] - Formatting options.\r\n * @param {string} [options.style=\"long\"] - One of: \"long\", \"short\", \"narrow\".\r\n * @param {string} [options.numeric=\"always\"] - (Version >= 2) One of: \"always\", \"auto\".\r\n * @param {string} [options.localeMatcher=\"lookup\"] - One of: \"lookup\", \"best fit\". Currently only \"lookup\" is supported.\r\n */\n function RelativeTimeFormat() {\n var locales = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, RelativeTimeFormat);\n\n var numeric = options.numeric,\n style = options.style,\n localeMatcher = options.localeMatcher;\n this.numeric = \"always\";\n this.style = \"long\";\n this.localeMatcher = \"lookup\"; // Set `numeric` option.\n\n if (numeric !== undefined) {\n if (NUMERIC_VALUES.indexOf(numeric) < 0) {\n throw new RangeError(\"Invalid \\\"numeric\\\" option: \".concat(numeric));\n }\n\n this.numeric = numeric;\n } // Set `style` option.\n\n\n if (style !== undefined) {\n if (STYLE_VALUES.indexOf(style) < 0) {\n throw new RangeError(\"Invalid \\\"style\\\" option: \".concat(style));\n }\n\n this.style = style;\n } // Set `localeMatcher` option.\n\n\n if (localeMatcher !== undefined) {\n if (LOCALE_MATCHER_VALUES.indexOf(localeMatcher) < 0) {\n throw new RangeError(\"Invalid \\\"localeMatcher\\\" option: \".concat(localeMatcher));\n }\n\n this.localeMatcher = localeMatcher;\n } // Set `locale`.\n // Convert `locales` to an array.\n\n\n if (typeof locales === 'string') {\n locales = [locales];\n } // Add default locale.\n\n\n locales.push(getDefaultLocale()); // Choose the most appropriate locale.\n\n this.locale = RelativeTimeFormat.supportedLocalesOf(locales, {\n localeMatcher: this.localeMatcher\n })[0];\n\n if (!this.locale) {\n throw new Error(\"No supported locale was found\");\n } // Construct an `Intl.PluralRules` instance (polyfill).\n\n\n if (PluralRules.supportedLocalesOf(this.locale).length > 0) {\n this.pluralRules = new PluralRules(this.locale);\n } else {\n console.warn(\"\\\"\".concat(this.locale, \"\\\" locale is not supported\"));\n } // Use `Intl.NumberFormat` for formatting numbers (when available).\n\n\n if (typeof Intl !== 'undefined' && Intl.NumberFormat) {\n this.numberFormat = new Intl.NumberFormat(this.locale);\n this.numberingSystem = this.numberFormat.resolvedOptions().numberingSystem;\n } else {\n this.numberingSystem = 'latn';\n }\n\n this.locale = resolveLocale(this.locale, {\n localeMatcher: this.localeMatcher\n });\n }\n /**\r\n * Formats time `number` in `units` (either in past or in future).\r\n * @param {number} number - Time interval value.\r\n * @param {string} unit - Time interval measurement unit.\r\n * @return {string}\r\n * @throws {RangeError} If unit is not one of \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\".\r\n * @example\r\n * // Returns \"2 days ago\"\r\n * rtf.format(-2, \"day\")\r\n * // Returns \"in 5 minutes\"\r\n * rtf.format(5, \"minute\")\r\n */\n\n\n _createClass(RelativeTimeFormat, [{\n key: \"format\",\n value: function format() {\n var _parseFormatArgs = parseFormatArgs(arguments),\n _parseFormatArgs2 = _slicedToArray(_parseFormatArgs, 2),\n number = _parseFormatArgs2[0],\n unit = _parseFormatArgs2[1];\n\n return this.getRule(number, unit).replace('{0}', this.formatNumber(Math.abs(number)));\n }\n /**\r\n * Formats time `number` in `units` (either in past or in future).\r\n * @param {number} number - Time interval value.\r\n * @param {string} unit - Time interval measurement unit.\r\n * @return {Object[]} The parts (`{ type, value, unit? }`).\r\n * @throws {RangeError} If unit is not one of \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\".\r\n * @example\r\n * // Version 1 (deprecated).\r\n * // Returns [\r\n * // { type: \"literal\", value: \"in \" },\r\n * // { type: \"day\", value: \"100\" },\r\n * // { type: \"literal\", value: \" days\" }\r\n * // ]\r\n * rtf.formatToParts(100, \"day\")\r\n * //\r\n * // Version 2.\r\n * // Returns [\r\n * // { type: \"literal\", value: \"in \" },\r\n * // { type: \"integer\", value: \"100\", unit: \"day\" },\r\n * // { type: \"literal\", value: \" days\" }\r\n * // ]\r\n * rtf.formatToParts(100, \"day\")\r\n */\n\n }, {\n key: \"formatToParts\",\n value: function formatToParts() {\n var _parseFormatArgs3 = parseFormatArgs(arguments),\n _parseFormatArgs4 = _slicedToArray(_parseFormatArgs3, 2),\n number = _parseFormatArgs4[0],\n unit = _parseFormatArgs4[1];\n\n var rule = this.getRule(number, unit);\n var valueIndex = rule.indexOf(\"{0}\"); // \"yesterday\"/\"today\"/\"tomorrow\".\n\n if (valueIndex < 0) {\n return [{\n type: \"literal\",\n value: rule\n }];\n }\n\n var parts = [];\n\n if (valueIndex > 0) {\n parts.push({\n type: \"literal\",\n value: rule.slice(0, valueIndex)\n });\n }\n\n parts = parts.concat(this.formatNumberToParts(Math.abs(number)).map(function (part) {\n return _objectSpread(_objectSpread({}, part), {}, {\n unit: unit\n });\n }));\n\n if (valueIndex + \"{0}\".length < rule.length - 1) {\n parts.push({\n type: \"literal\",\n value: rule.slice(valueIndex + \"{0}\".length)\n });\n }\n\n return parts;\n }\n /**\r\n * Returns formatting rule for `value` in `units` (either in past or in future).\r\n * @param {number} value - Time interval value.\r\n * @param {string} unit - Time interval measurement unit.\r\n * @return {string}\r\n * @throws {RangeError} If unit is not one of \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\".\r\n * @example\r\n * // Returns \"{0} days ago\"\r\n * getRule(-2, \"day\")\r\n */\n\n }, {\n key: \"getRule\",\n value: function getRule(value, unit) {\n // Get locale-specific time interval formatting rules\n // of a given `style` for the given value of measurement `unit`.\n //\n // E.g.:\n //\n // ```json\n // {\n // \"past\": {\n // \"one\": \"a second ago\",\n // \"other\": \"{0} seconds ago\"\n // },\n // \"future\": {\n // \"one\": \"in a second\",\n // \"other\": \"in {0} seconds\"\n // }\n // }\n // ```\n //\n var unitMessages = getLocaleData(this.locale)[this.style][unit]; // Bundle size optimization technique for styles like\n // \"tiny\" in `javascript-time-ago`: \"1m\", \"2h\", \"3d\"...\n\n if (typeof unitMessages === 'string') {\n return unitMessages;\n } // Special case for \"yesterday\"/\"today\"/\"tomorrow\".\n\n\n if (this.numeric === \"auto\") {\n // \"yesterday\", \"the day before yesterday\", etc.\n if (value === -2 || value === -1) {\n var message = unitMessages[\"previous\".concat(value === -1 ? '' : '-' + Math.abs(value))];\n\n if (message) {\n return message;\n }\n } // \"tomorrow\", \"the day after tomorrow\", etc.\n else if (value === 1 || value === 2) {\n var _message = unitMessages[\"next\".concat(value === 1 ? '' : '-' + Math.abs(value))];\n\n if (_message) {\n return _message;\n }\n } // \"today\"\n else if (value === 0) {\n if (unitMessages.current) {\n return unitMessages.current;\n }\n }\n } // Choose either \"past\" or \"future\" based on time `value` sign.\n // If there's only \"other\" then it's being collapsed.\n // (the resulting bundle size optimization technique)\n\n\n var pluralizedMessages = unitMessages[isNegative(value) ? \"past\" : \"future\"]; // Bundle size optimization technique for styles like \"narrow\"\n // having messages like \"in {0} d.\" or \"{0} d. ago\".\n\n if (typeof pluralizedMessages === \"string\") {\n return pluralizedMessages;\n } // Quantify `value`.\n // There seems to be no such locale in CLDR\n // for which \"plural rules\" function is missing.\n\n\n var quantifier = this.pluralRules && this.pluralRules.select(Math.abs(value)) || 'other'; // \"other\" rule is supposed to be always present.\n // If only \"other\" rule is present then \"rules\" is not an object and is a string.\n\n return pluralizedMessages[quantifier] || pluralizedMessages.other;\n }\n /**\r\n * Formats a number into a string.\r\n * Uses `Intl.NumberFormat` when available.\r\n * @param {number} number\r\n * @return {string}\r\n */\n\n }, {\n key: \"formatNumber\",\n value: function formatNumber(number) {\n return this.numberFormat ? this.numberFormat.format(number) : String(number);\n }\n /**\r\n * Formats a number into a list of parts.\r\n * Uses `Intl.NumberFormat` when available.\r\n * @param {number} number\r\n * @return {object[]}\r\n */\n\n }, {\n key: \"formatNumberToParts\",\n value: function formatNumberToParts(number) {\n // `Intl.NumberFormat.formatToParts()` is not present, for example,\n // in Node.js 8.x while `Intl.NumberFormat` itself is present.\n return this.numberFormat && this.numberFormat.formatToParts ? this.numberFormat.formatToParts(number) : [{\n type: \"integer\",\n value: this.formatNumber(number)\n }];\n }\n /**\r\n * Returns a new object with properties reflecting the locale and date and time formatting options computed during initialization of this DateTimeFormat object.\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/resolvedOptions\r\n * @return {Object}\r\n */\n\n }, {\n key: \"resolvedOptions\",\n value: function resolvedOptions() {\n return {\n locale: this.locale,\n style: this.style,\n numeric: this.numeric,\n numberingSystem: this.numberingSystem\n };\n }\n }]);\n\n return RelativeTimeFormat;\n}();\n/**\r\n * Returns an array containing those of the provided locales\r\n * that are supported in collation without having to fall back\r\n * to the runtime's default locale.\r\n * @param {(string|string[])} locale - A string with a BCP 47 language tag, or an array of such strings. For the general form of the locales argument, see the Intl page.\r\n * @param {Object} [options] - An object that may have the following property:\r\n * @param {string} [options.localeMatcher=\"lookup\"] - The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\". Currently only \"lookup\" is supported.\r\n * @return {string[]} An array of strings representing a subset of the given locale tags that are supported in collation without having to fall back to the runtime's default locale.\r\n * @example\r\n * var locales = ['ban', 'id-u-co-pinyin', 'es-PY']\r\n * var options = { localeMatcher: 'lookup' }\r\n * // Returns [\"id\", \"es-PY\"]\r\n * Intl.RelativeTimeFormat.supportedLocalesOf(locales, options)\r\n */\n\n\nexport { RelativeTimeFormat as default };\n\nRelativeTimeFormat.supportedLocalesOf = function (locales) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // Convert `locales` to an array.\n if (typeof locales === 'string') {\n locales = [locales];\n } else if (!Array.isArray(locales)) {\n throw new TypeError('Invalid \"locales\" argument');\n }\n\n return locales.filter(function (locale) {\n return resolveLocale(locale, options);\n });\n};\n/**\r\n * Adds locale data for a specific locale.\r\n * @param {Object} localeData\r\n */\n\n\nRelativeTimeFormat.addLocale = addLocaleData;\n/**\r\n * Sets default locale.\r\n * @param {string} locale\r\n */\n\nRelativeTimeFormat.setDefaultLocale = setDefaultLocale;\n/**\r\n * Gets default locale.\r\n * @return {string} locale\r\n */\n\nRelativeTimeFormat.getDefaultLocale = getDefaultLocale;\n/**\r\n * Export `Intl.PluralRules` just in case it's used somewhere else.\r\n */\n\nRelativeTimeFormat.PluralRules = PluralRules; // The specification allows units to be in plural form.\n// Convert plural to singular.\n// Example: \"seconds\" -> \"second\".\n\nvar UNIT_ERROR = 'Invalid \"unit\" argument';\n\nfunction parseUnit(unit) {\n if (_typeof(unit) === 'symbol') {\n throw new TypeError(UNIT_ERROR);\n }\n\n if (typeof unit !== 'string') {\n throw new RangeError(\"\".concat(UNIT_ERROR, \": \").concat(unit));\n }\n\n if (unit[unit.length - 1] === 's') {\n unit = unit.slice(0, unit.length - 1);\n }\n\n if (UNITS.indexOf(unit) < 0) {\n throw new RangeError(\"\".concat(UNIT_ERROR, \": \").concat(unit));\n }\n\n return unit;\n} // Converts `value` to a `Number`.\n// The specification allows value to be a non-number.\n// For example, \"-0\" is supposed to be treated as `-0`.\n// Also checks if `value` is a finite number.\n\n\nvar NUMBER_ERROR = 'Invalid \"number\" argument';\n\nfunction parseNumber(value) {\n value = Number(value);\n\n if (Number.isFinite) {\n if (!Number.isFinite(value)) {\n throw new RangeError(\"\".concat(NUMBER_ERROR, \": \").concat(value));\n }\n }\n\n return value;\n}\n/**\r\n * Tells `0` from `-0`.\r\n * https://stackoverflow.com/questions/7223359/are-0-and-0-the-same\r\n * @param {number} number\r\n * @return {Boolean}\r\n * @example\r\n * isNegativeZero(0); // false\r\n * isNegativeZero(-0); // true\r\n */\n\n\nfunction isNegativeZero(number) {\n return 1 / number === -Infinity;\n}\n\nfunction isNegative(number) {\n return number < 0 || number === 0 && isNegativeZero(number);\n}\n\nfunction parseFormatArgs(args) {\n if (args.length < 2) {\n throw new TypeError(\"\\\"unit\\\" argument is required\");\n }\n\n return [parseNumber(args[0]), parseUnit(args[1])];\n}\n//# sourceMappingURL=RelativeTimeFormat.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/**\r\n * A basic in-memory cache.\r\n *\r\n * import Cache from 'javascript-time-ago/Cache'\r\n * const cache = new Cache()\r\n * const object = cache.get('key1', 'key2', ...) || cache.put('key1', 'key2', ..., createObject())\r\n */\nvar Cache = /*#__PURE__*/function () {\n function Cache() {\n _classCallCheck(this, Cache);\n\n this.cache = {};\n }\n\n _createClass(Cache, [{\n key: \"get\",\n value: function get() {\n var cache = this.cache;\n\n for (var _len = arguments.length, keys = new Array(_len), _key = 0; _key < _len; _key++) {\n keys[_key] = arguments[_key];\n }\n\n for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {\n var key = _keys[_i];\n\n if (_typeof(cache) !== 'object') {\n return;\n }\n\n cache = cache[key];\n }\n\n return cache;\n }\n }, {\n key: \"put\",\n value: function put() {\n for (var _len2 = arguments.length, keys = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n keys[_key2] = arguments[_key2];\n }\n\n var value = keys.pop();\n var lastKey = keys.pop();\n var cache = this.cache;\n\n for (var _i2 = 0, _keys2 = keys; _i2 < _keys2.length; _i2++) {\n var key = _keys2[_i2];\n\n if (_typeof(cache[key]) !== 'object') {\n cache[key] = {};\n }\n\n cache = cache[key];\n }\n\n return cache[lastKey] = value;\n }\n }]);\n\n return Cache;\n}();\n\nexport { Cache as default };\n//# sourceMappingURL=cache.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Chooses the most appropriate locale\r\n * (one of the registered ones)\r\n * based on the list of preferred `locales` supplied by the user.\r\n *\r\n * @param {string[]} locales - the list of preferable locales (in [IETF format](https://en.wikipedia.org/wiki/IETF_language_tag)).\r\n * @param {Function} isLocaleDataAvailable - tests if a locale is available.\r\n *\r\n * @returns {string} The most suitable locale.\r\n *\r\n * @example\r\n * // Returns 'en'\r\n * chooseLocale(['en-US'], undefined, (locale) => locale === 'ru' || locale === 'en')\r\n */\nexport default function chooseLocale(locales, isLocaleDataAvailable) {\n // This is not an intelligent algorithm,\n // but it will do for this library's case.\n // `sr-Cyrl-BA` -> `sr-Cyrl` -> `sr`.\n for (var _iterator = _createForOfIteratorHelperLoose(locales), _step; !(_step = _iterator()).done;) {\n var locale = _step.value;\n\n if (isLocaleDataAvailable(locale)) {\n return locale;\n }\n\n var parts = locale.split('-');\n\n while (parts.length > 1) {\n parts.pop();\n locale = parts.join('-');\n\n if (isLocaleDataAvailable(locale)) {\n return locale;\n }\n }\n }\n\n throw new Error(\"No locale data has been registered for any of the locales: \".concat(locales.join(', ')));\n}\n/**\r\n * Whether can use `Intl.DateTimeFormat` for these `locales`.\r\n * Returns the first suitable one.\r\n * @param {(string|string[])} locales\r\n * @return {?string} The first locale that can be used.\r\n */\n\nexport function intlDateTimeFormatSupportedLocale(locales) {\n /* istanbul ignore else */\n if (intlDateTimeFormatSupported()) {\n return Intl.DateTimeFormat.supportedLocalesOf(locales)[0];\n }\n}\n/**\r\n * Whether can use `Intl.DateTimeFormat`.\r\n * @return {boolean}\r\n */\n\nexport function intlDateTimeFormatSupported() {\n // Babel transforms `typeof` into some \"branches\"\n // so istanbul will show this as \"branch not covered\".\n\n /* istanbul ignore next */\n var isIntlAvailable = (typeof Intl === \"undefined\" ? \"undefined\" : _typeof(Intl)) === 'object';\n return isIntlAvailable && typeof Intl.DateTimeFormat === 'function';\n}\n//# sourceMappingURL=locale.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nexport default function isStyleObject(object) {\n return isObject(object) && (Array.isArray(object.steps) || // `gradation` property is deprecated: it has been renamed to `steps`.\n Array.isArray(object.gradation) || // `flavour` property is deprecated: it has been renamed to `labels`.\n Array.isArray(object.flavour) || typeof object.flavour === 'string' || Array.isArray(object.labels) || typeof object.labels === 'string' || // `units` property is deprecated.\n Array.isArray(object.units) || // `custom` property is deprecated.\n typeof object.custom === 'function');\n}\nvar OBJECT_CONSTRUCTOR = {}.constructor;\n\nfunction isObject(object) {\n return _typeof(object) !== undefined && object !== null && object.constructor === OBJECT_CONSTRUCTOR;\n}\n//# sourceMappingURL=isStyleObject.js.map","export var minute = 60; // in seconds\n\nexport var hour = 60 * minute; // in seconds\n\nexport var day = 24 * hour; // in seconds\n\nexport var week = 7 * day; // in seconds\n// https://www.quora.com/What-is-the-average-number-of-days-in-a-month\n\nexport var month = 30.44 * day; // in seconds\n// \"400 years have 146097 days (taking into account leap year rules)\"\n\nexport var year = 146097 / 400 * day; // in seconds\n\nexport function getSecondsInUnit(unit) {\n switch (unit) {\n case 'second':\n return 1;\n\n case 'minute':\n return minute;\n\n case 'hour':\n return hour;\n\n case 'day':\n return day;\n\n case 'week':\n return week;\n\n case 'month':\n return month;\n\n case 'year':\n return year;\n }\n} // export function getPreviousUnitFor(unit) {\n// \tswitch (unit) {\n// \t\tcase 'second':\n// \t\t\treturn 'now'\n// \t\tcase 'minute':\n// \t\t\treturn 'second'\n// \t\tcase 'hour':\n// \t\t\treturn 'minute'\n// \t\tcase 'day':\n// \t\t\treturn 'hour'\n// \t\tcase 'week':\n// \t\t\treturn 'day'\n// \t\tcase 'month':\n// \t\t\treturn 'week'\n// \t\tcase 'year':\n// \t\t\treturn 'month'\n// \t}\n// }\n//# sourceMappingURL=units.js.map","import { getSecondsInUnit } from './units.js';\nexport default function getStepDenominator(step) {\n // `factor` is a legacy property.\n if (step.factor !== undefined) {\n return step.factor;\n } // \"unit\" is now called \"formatAs\".\n\n\n return getSecondsInUnit(step.unit || step.formatAs) || 1;\n}\n//# sourceMappingURL=getStepDenominator.js.map","export function getRoundFunction(round) {\n switch (round) {\n case 'floor':\n return Math.floor;\n\n default:\n return Math.round;\n }\n} // For non-negative numbers.\n\nexport function getDiffRatioToNextRoundedNumber(round) {\n switch (round) {\n case 'floor':\n // Math.floor(x) = x\n // Math.floor(x + 1) = x + 1\n return 1;\n\n default:\n // Math.round(x) = x\n // Math.round(x + 0.5) = x + 1\n return 0.5;\n }\n}\n//# sourceMappingURL=round.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { getSecondsInUnit } from './units.js';\nimport { getDiffRatioToNextRoundedNumber } from '../round.js';\nexport default function getStepMinTime(step, _ref) {\n var prevStep = _ref.prevStep,\n timestamp = _ref.timestamp,\n now = _ref.now,\n future = _ref.future,\n round = _ref.round;\n var minTime; // \"threshold_for_xxx\" is a legacy property.\n\n if (prevStep) {\n if (prevStep.id || prevStep.unit) {\n minTime = step[\"threshold_for_\".concat(prevStep.id || prevStep.unit)];\n }\n }\n\n if (minTime === undefined) {\n // \"threshold\" is a legacy property.\n if (step.threshold !== undefined) {\n // \"threshold\" is a legacy name for \"minTime\".\n minTime = step.threshold; // \"threshold\" function is deprecated.\n\n if (typeof minTime === 'function') {\n minTime = minTime(now, future);\n }\n }\n }\n\n if (minTime === undefined) {\n minTime = step.minTime;\n } // A deprecated way of specifying a different threshold\n // depending on the previous step's unit.\n\n\n if (_typeof(minTime) === 'object') {\n if (prevStep && prevStep.id && minTime[prevStep.id] !== undefined) {\n minTime = minTime[prevStep.id];\n } else {\n minTime = minTime[\"default\"];\n }\n }\n\n if (typeof minTime === 'function') {\n minTime = minTime(timestamp, {\n future: future,\n getMinTimeForUnit: function getMinTimeForUnit(toUnit, fromUnit) {\n return _getMinTimeForUnit(toUnit, fromUnit || prevStep && prevStep.formatAs, {\n round: round\n });\n }\n });\n } // Evaluate the `test()` function.\n // `test()` function is deprecated.\n\n\n if (minTime === undefined) {\n if (step.test) {\n if (step.test(timestamp, {\n now: now,\n future: future\n })) {\n // `0` threshold always passes.\n minTime = 0;\n } else {\n // `MAX_SAFE_INTEGER` threshold won't ever pass in real life.\n minTime = 9007199254740991; // Number.MAX_SAFE_INTEGER\n }\n }\n }\n\n if (minTime === undefined) {\n if (prevStep) {\n if (step.formatAs && prevStep.formatAs) {\n minTime = _getMinTimeForUnit(step.formatAs, prevStep.formatAs, {\n round: round\n });\n }\n } else {\n // The first step's `minTime` is `0` by default.\n minTime = 0;\n }\n } // Warn if no `minTime` was defined or could be deduced.\n\n\n if (minTime === undefined) {\n console.warn('[javascript-time-ago] A step should specify `minTime`:\\n' + JSON.stringify(step, null, 2));\n }\n\n return minTime;\n}\n\nfunction _getMinTimeForUnit(toUnit, fromUnit, _ref2) {\n var round = _ref2.round;\n var toUnitAmount = getSecondsInUnit(toUnit); // if (!fromUnit) {\n // \treturn toUnitAmount;\n // }\n // if (!fromUnit) {\n // \tfromUnit = getPreviousUnitFor(toUnit)\n // }\n\n var fromUnitAmount;\n\n if (fromUnit === 'now') {\n fromUnitAmount = getSecondsInUnit(toUnit);\n } else {\n fromUnitAmount = getSecondsInUnit(fromUnit);\n }\n\n if (toUnitAmount !== undefined && fromUnitAmount !== undefined) {\n return toUnitAmount - fromUnitAmount * (1 - getDiffRatioToNextRoundedNumber(round));\n }\n}\n//# sourceMappingURL=getStepMinTime.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport getStepDenominator from './getStepDenominator.js';\nimport getStepMinTime from './getStepMinTime.js';\nimport { getRoundFunction } from '../round.js';\n/**\r\n * Finds an appropriate `step` of `steps` for the time interval (in seconds).\r\n *\r\n * @param {Object[]} steps - Time formatting steps.\r\n *\r\n * @param {number} secondsPassed - Time interval (in seconds).\r\n * `< 0` for past dates and `> 0` for future dates.\r\n *\r\n * @param {number} options.now - Current timestamp.\r\n *\r\n * @param {boolean} [options.future] - Whether the date should be formatted as a future one\r\n * instead of a past one.\r\n *\r\n * @param {string} [options.round] - (undocumented) Rounding mechanism.\r\n *\r\n * @param {string[]} [options.units] - A list of allowed time units.\r\n * (Example: ['second', 'minute', 'hour', …])\r\n *\r\n * @param {boolean} [options.getNextStep] - Pass true to return `[step, nextStep]` instead of just `step`.\r\n *\r\n * @return {Object|Object[]} [step] — Either a `step` or `[prevStep, step, nextStep]`.\r\n */\n\nexport default function getStep(steps, secondsPassed, _ref) {\n var now = _ref.now,\n future = _ref.future,\n round = _ref.round,\n units = _ref.units,\n getNextStep = _ref.getNextStep;\n // Ignore steps having not-supported time units in `formatAs`.\n steps = filterStepsByUnits(steps, units);\n\n var step = _getStep(steps, secondsPassed, {\n now: now,\n future: future,\n round: round\n });\n\n if (getNextStep) {\n if (step) {\n var prevStep = steps[steps.indexOf(step) - 1];\n var nextStep = steps[steps.indexOf(step) + 1];\n return [prevStep, step, nextStep];\n }\n\n return [undefined, undefined, steps[0]];\n }\n\n return step;\n}\n\nfunction _getStep(steps, secondsPassed, _ref2) {\n var now = _ref2.now,\n future = _ref2.future,\n round = _ref2.round;\n\n // If no steps fit the conditions then return nothing.\n if (steps.length === 0) {\n return;\n } // Find the most appropriate step.\n\n\n var i = getStepIndex(steps, secondsPassed, {\n now: now,\n future: future || secondsPassed < 0,\n round: round\n }); // If no step is applicable the return nothing.\n\n if (i === -1) {\n return;\n }\n\n var step = steps[i]; // Apply granularity to the time amount\n // (and fall back to the previous step\n // if the first level of granularity\n // isn't met by this amount)\n\n if (step.granularity) {\n // Recalculate the amount of seconds passed based on `granularity`.\n var secondsPassedGranular = getRoundFunction(round)(Math.abs(secondsPassed) / getStepDenominator(step) / step.granularity) * step.granularity; // If the granularity for this step is too high,\n // then fall back to the previous step.\n // (if there is any previous step)\n\n if (secondsPassedGranular === 0 && i > 0) {\n return steps[i - 1];\n }\n }\n\n return step;\n}\n/**\r\n * Iterates through steps until it finds the maximum one satisfying the `minTime` threshold.\r\n * @param {Object} steps - Steps.\r\n * @param {number} secondsPassed - How much seconds have passed since the date till `now`.\r\n * @param {number} options.now - Current timestamp.\r\n * @param {boolean} options.future - Whether the time interval should be formatted as a future one.\r\n * @param {number} [i] - Gradation step currently being tested.\r\n * @return {number} Gradation step index.\r\n */\n\n\nfunction getStepIndex(steps, secondsPassed, options) {\n var i = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var minTime = getStepMinTime(steps[i], _objectSpread({\n prevStep: steps[i - 1],\n timestamp: options.now - secondsPassed * 1000\n }, options)); // If `minTime` isn't defined or deduceable for this step, then stop.\n\n if (minTime === undefined) {\n return i - 1;\n } // If the `minTime` threshold for moving from previous step\n // to this step is too high then return the previous step.\n\n\n if (Math.abs(secondsPassed) < minTime) {\n return i - 1;\n } // If it's the last step then return it.\n\n\n if (i === steps.length - 1) {\n return i;\n } // Move to the next step.\n\n\n return getStepIndex(steps, secondsPassed, options, i + 1);\n}\n/**\r\n * Leaves only allowed steps.\r\n * @param {Object[]} steps\r\n * @param {string[]} units - Allowed time units.\r\n * @return {Object[]}\r\n */\n\n\nfunction filterStepsByUnits(steps, units) {\n return steps.filter(function (_ref3) {\n var unit = _ref3.unit,\n formatAs = _ref3.formatAs;\n // \"unit\" is now called \"formatAs\".\n unit = unit || formatAs; // If this step has a `unit` defined\n // then this `unit` must be in the list of allowed `units`.\n\n if (unit) {\n return units.indexOf(unit) >= 0;\n } // A step is not required to specify a `unit`:\n // alternatively, it could specify `format()`.\n // (see \"twitter\" style for an example)\n\n\n return true;\n });\n}\n//# sourceMappingURL=getStep.js.map","import { getSecondsInUnit } from './units.js';\nimport { getRoundFunction, getDiffRatioToNextRoundedNumber } from '../round.js';\n/**\r\n * Gets the time to next update for a step with a time unit defined.\r\n * @param {string} unit\r\n * @param {number} date — The date passed to `.format()`, converted to a timestamp.\r\n * @param {number} options.now\r\n * @param {string} [options.round] — (undocumented) Rounding mechanism.\r\n * @return {number} [timeToNextUpdate]\r\n */\n\nexport default function getTimeToNextUpdateForUnit(unit, timestamp, _ref) {\n var now = _ref.now,\n round = _ref.round;\n\n // For some units, like \"now\", there's no defined amount of seconds in them.\n if (!getSecondsInUnit(unit)) {\n // If there's no amount of seconds defined for this unit\n // then the update interval can't be determined reliably.\n return;\n }\n\n var unitDenominator = getSecondsInUnit(unit) * 1000;\n var future = timestamp > now;\n var preciseAmount = Math.abs(timestamp - now);\n var roundedAmount = getRoundFunction(round)(preciseAmount / unitDenominator) * unitDenominator;\n\n if (future) {\n if (roundedAmount > 0) {\n // Amount decreases with time.\n return preciseAmount - roundedAmount + getDiffToPreviousRoundedNumber(round, unitDenominator);\n } else {\n // Refresh right after the zero point,\n // when \"future\" changes to \"past\".\n return preciseAmount - roundedAmount + 1;\n }\n } // Amount increases with time.\n\n\n return -(preciseAmount - roundedAmount) + getDiffToNextRoundedNumber(round, unitDenominator);\n}\n\nfunction getDiffToNextRoundedNumber(round, unitDenominator) {\n return getDiffRatioToNextRoundedNumber(round) * unitDenominator;\n}\n\nfunction getDiffToPreviousRoundedNumber(round, unitDenominator) {\n return (1 - getDiffRatioToNextRoundedNumber(round)) * unitDenominator + 1;\n}\n//# sourceMappingURL=getTimeToNextUpdateForUnit.js.map","import _getTimeToNextUpdateForUnit from './getTimeToNextUpdateForUnit.js';\nimport getStepMinTime from './getStepMinTime.js';\nimport { getRoundFunction } from '../round.js'; // A thousand years is practically a metaphor for \"infinity\".\n\nvar YEAR = 365 * 24 * 60 * 60 * 1000;\nexport var INFINITY = 1000 * YEAR;\n/**\r\n * Gets the time to next update for a date and a step.\r\n * @param {number} date — The date passed to `.format()`, converted to a timestamp.\r\n * @param {object} step\r\n * @param {object} [options.previousStep]\r\n * @param {object} [options.nextStep]\r\n * @param {number} options.now\r\n * @param {boolean} options.future\r\n * @param {string} [options.round] - (undocumented) Rounding mechanism.\r\n * @return {number} [timeToNextUpdate]\r\n */\n\nexport default function getTimeToNextUpdate(date, step, _ref) {\n var prevStep = _ref.prevStep,\n nextStep = _ref.nextStep,\n now = _ref.now,\n future = _ref.future,\n round = _ref.round;\n var timestamp = date.getTime ? date.getTime() : date;\n\n var getTimeToNextUpdateForUnit = function getTimeToNextUpdateForUnit(unit) {\n return _getTimeToNextUpdateForUnit(unit, timestamp, {\n now: now,\n round: round\n });\n }; // For future dates, steps move from the last one to the first one,\n // while for past dates, steps move from the first one to the last one,\n // due to the fact that time flows in one direction,\n // and future dates' interval naturally becomes smaller\n // while past dates' interval naturally grows larger.\n //\n // For future dates, it's the transition\n // from the current step to the previous step,\n // therefore check the `minTime` of the current step.\n //\n // For past dates, it's the transition\n // from the current step to the next step,\n // therefore check the `minTime` of the next step.\n //\n\n\n var timeToStepChange = getTimeToStepChange(future ? step : nextStep, timestamp, {\n future: future,\n now: now,\n round: round,\n prevStep: future ? prevStep : step // isFirstStep: future && isFirstStep\n\n });\n\n if (timeToStepChange === undefined) {\n // Can't reliably determine \"time to next update\"\n // if not all of the steps provide `minTime`.\n return;\n }\n\n var timeToNextUpdate;\n\n if (step) {\n if (step.getTimeToNextUpdate) {\n timeToNextUpdate = step.getTimeToNextUpdate(timestamp, {\n getTimeToNextUpdateForUnit: getTimeToNextUpdateForUnit,\n getRoundFunction: getRoundFunction,\n now: now,\n future: future,\n round: round\n });\n }\n\n if (timeToNextUpdate === undefined) {\n // \"unit\" is now called \"formatAs\".\n var unit = step.unit || step.formatAs;\n\n if (unit) {\n // For some units, like \"now\", there's no defined amount of seconds in them.\n // In such cases, `getTimeToNextUpdateForUnit()` returns `undefined`,\n // and the next step's `minTime` could be used to calculate the update interval:\n // it will just assume that the label never changes for this step.\n timeToNextUpdate = getTimeToNextUpdateForUnit(unit);\n }\n }\n }\n\n if (timeToNextUpdate === undefined) {\n return timeToStepChange;\n }\n\n return Math.min(timeToNextUpdate, timeToStepChange);\n}\nexport function getStepChangesAt(currentOrNextStep, timestamp, _ref2) {\n var now = _ref2.now,\n future = _ref2.future,\n round = _ref2.round,\n prevStep = _ref2.prevStep;\n // The first step's `minTime` is `0` by default.\n // It doesn't \"change\" steps at zero point\n // but it does change the wording when switching\n // from \"future\" to \"past\": \"in ...\" -> \"... ago\".\n // Therefore, the label should be updated at zero-point too.\n var minTime = getStepMinTime(currentOrNextStep, {\n timestamp: timestamp,\n now: now,\n future: future,\n round: round,\n prevStep: prevStep\n });\n\n if (minTime === undefined) {\n return;\n }\n\n if (future) {\n // The step changes to the previous step\n // as soon as `timestamp - now` becomes\n // less than the `minTime` of the current step:\n // `timestamp - now === minTime - 1`\n // => `now === timestamp - minTime + 1`.\n return timestamp - minTime * 1000 + 1;\n } else {\n // The step changes to the next step\n // as soon as `now - timestamp` becomes\n // equal to `minTime` of the next step:\n // `now - timestamp === minTime`\n // => `now === timestamp + minTime`.\n // This is a special case when double-update could be skipped.\n if (minTime === 0 && timestamp === now) {\n return INFINITY;\n }\n\n return timestamp + minTime * 1000;\n }\n}\nexport function getTimeToStepChange(step, timestamp, _ref3) {\n var now = _ref3.now,\n future = _ref3.future,\n round = _ref3.round,\n prevStep = _ref3.prevStep;\n\n if (step) {\n var stepChangesAt = getStepChangesAt(step, timestamp, {\n now: now,\n future: future,\n round: round,\n prevStep: prevStep\n });\n\n if (stepChangesAt === undefined) {\n return;\n }\n\n return stepChangesAt - now;\n } else {\n if (future) {\n // No step.\n // Update right after zero point, when it changes from \"future\" to \"past\".\n return timestamp - now + 1;\n } else {\n // The last step doesn't ever change when `date` is in the past.\n return INFINITY;\n }\n }\n}\n//# sourceMappingURL=getTimeToNextUpdate.js.map","// For all locales added\n// their relative time formatter messages will be stored here.\nvar localesData = {};\nexport function getLocaleData(locale) {\n return localesData[locale];\n}\nexport function addLocaleData(localeData) {\n if (!localeData) {\n throw new Error('[javascript-time-ago] No locale data passed.');\n } // This locale data is stored in a global variable\n // and later used when calling `.format(time)`.\n\n\n localesData[localeData.locale] = localeData;\n}\n//# sourceMappingURL=LocaleDataStore.js.map","// just now\n// 1 second ago\n// 2 seconds ago\n// …\n// 59 seconds ago\n// 1 minute ago\n// 2 minutes ago\n// …\n// 59 minutes ago\n// 1 hour ago\n// 2 hours ago\n// …\n// 24 hours ago\n// 1 day ago\n// 2 days ago\n// …\n// 6 days ago\n// 1 week ago\n// 2 weeks ago\n// …\n// 3 weeks ago\n// 1 month ago\n// 2 months ago\n// …\n// 11 months ago\n// 1 year ago\n// 2 years ago\n// …\nexport default [{\n formatAs: 'now'\n}, {\n formatAs: 'second'\n}, {\n formatAs: 'minute'\n}, {\n formatAs: 'hour'\n}, {\n formatAs: 'day'\n}, {\n formatAs: 'week'\n}, {\n formatAs: 'month'\n}, {\n formatAs: 'year'\n}];\n//# sourceMappingURL=round.js.map","import round from '../steps/round.js'; // just now\n// 1 second ago\n// 2 seconds ago\n// …\n// 59 seconds ago\n// 1 minute ago\n// 2 minutes ago\n// …\n// 59 minutes ago\n// 1 minute ago\n// 2 minutes ago\n// …\n// 59 minutes ago\n// 1 hour ago\n// 2 hours ago\n// …\n// 24 hours ago\n// 1 day ago\n// 2 days ago\n// …\n// 6 days ago\n// 1 week ago\n// 2 weeks ago\n// 3 weeks ago\n// 4 weeks ago\n// 1 month ago\n// 2 months ago\n// …\n// 11 months ago\n// 1 year ago\n// 2 years ago\n// …\n//\n\nexport default {\n steps: round,\n labels: 'long'\n};\n//# sourceMappingURL=round.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport round from './round.js'; // just now\n// 1 minute ago\n// 2 minutes ago\n// …\n// 59 minutes ago\n// 1 minute ago\n// 2 minutes ago\n// …\n// 59 minutes ago\n// 1 hour ago\n// 2 hours ago\n// …\n// 24 hours ago\n// 1 day ago\n// 2 days ago\n// …\n// 6 days ago\n// 1 week ago\n// 2 weeks ago\n// 3 weeks ago\n// 4 weeks ago\n// 1 month ago\n// 2 months ago\n// …\n// 11 months ago\n// 1 year ago\n// 2 years ago\n// …\n//\n\nexport default _objectSpread(_objectSpread({}, round), {}, {\n // Skip \"seconds\".\n steps: round.steps.filter(function (step) {\n return step.formatAs !== 'second';\n })\n});\n//# sourceMappingURL=roundMinute.js.map","import { minute, hour, day, week, month, year } from './units.js'; // \"factor\" is a legacy property.\n// Developers shouldn't need to use it in their custom steps.\n// \"threshold\" is a legacy name of \"min\".\n// Developers should use \"min\" property name instead of \"threshold\".\n// \"threshold_for_idOrUnit: value\" is a legacy way of specifying \"min: { id: value }\".\n// Developers should use \"min\" property instead of \"threshold\".\n// just now\n// 1 minute ago\n// 2 minutes ago\n// 5 minutes ago\n// 10 minutes ago\n// 15 minutes ago\n// 20 minutes ago\n// …\n// 50 minutes ago\n// an hour ago\n// 2 hours ago\n// …\n// 20 hours ago\n// a day ago\n// 2 days ago\n// 5 days ago\n// a week ago\n// 2 weeks ago\n// 3 weeks ago\n// a month ago\n// 2 months ago\n// 4 months ago\n// a year ago\n// 2 years ago\n// …\n\nexport default [{\n // This step returns the amount of seconds\n // by dividing the amount of seconds by `1`.\n factor: 1,\n // \"now\" labels are used for formatting the output.\n unit: 'now'\n}, {\n // When the language doesn't support `now` unit,\n // the first step is ignored, and it uses this `second` unit.\n threshold: 1,\n // `threshold_for_now` should be the same as `threshold` on minutes.\n threshold_for_now: 45.5,\n // This step returns the amount of seconds\n // by dividing the amount of seconds by `1`.\n factor: 1,\n // \"second\" labels are used for formatting the output.\n unit: 'second'\n}, {\n // `threshold` should be the same as `threshold_for_now` on seconds.\n threshold: 45.5,\n // Return the amount of minutes by dividing the amount\n // of seconds by the amount of seconds in a minute.\n factor: minute,\n // \"minute\" labels are used for formatting the output.\n unit: 'minute'\n}, {\n // This step is effective starting from 2.5 minutes.\n threshold: 2.5 * minute,\n // Allow only 5-minute increments of minutes starting from 2.5 minutes.\n // `granularity` — (advanced) Time interval value \"granularity\".\n // For example, it could be set to `5` for minutes to allow only 5-minute increments\n // when formatting time intervals: `0 minutes`, `5 minutes`, `10 minutes`, etc.\n // Perhaps this feature will be removed because there seem to be no use cases\n // of it in the real world.\n granularity: 5,\n // Return the amount of minutes by dividing the amount\n // of seconds by the amount of seconds in a minute.\n factor: minute,\n // \"minute\" labels are used for formatting the output.\n unit: 'minute'\n}, {\n // This step is effective starting from 22.5 minutes.\n threshold: 22.5 * minute,\n // Return the amount of minutes by dividing the amount\n // of seconds by the amount of seconds in half-an-hour.\n factor: 0.5 * hour,\n // \"half-hour\" labels are used for formatting the output.\n // (if available, which is no longer the case)\n unit: 'half-hour'\n}, {\n // This step is effective starting from 42.5 minutes.\n threshold: 42.5 * minute,\n threshold_for_minute: 52.5 * minute,\n // Return the amount of minutes by dividing the amount\n // of seconds by the amount of seconds in an hour.\n factor: hour,\n // \"hour\" labels are used for formatting the output.\n unit: 'hour'\n}, {\n // This step is effective starting from 20.5 hours.\n threshold: 20.5 / 24 * day,\n // Return the amount of minutes by dividing the amount\n // of seconds by the amount of seconds in a day.\n factor: day,\n // \"day\" labels are used for formatting the output.\n unit: 'day'\n}, {\n // This step is effective starting from 5.5 days.\n threshold: 5.5 * day,\n // Return the amount of minutes by dividing the amount\n // of seconds by the amount of seconds in a week.\n factor: week,\n // \"week\" labels are used for formatting the output.\n unit: 'week'\n}, {\n // This step is effective starting from 3.5 weeks.\n threshold: 3.5 * week,\n // Return the amount of minutes by dividing the amount\n // of seconds by the amount of seconds in a month.\n factor: month,\n // \"month\" labels are used for formatting the output.\n unit: 'month'\n}, {\n // This step is effective starting from 10.5 months.\n threshold: 10.5 * month,\n // Return the amount of minutes by dividing the amount\n // of seconds by the amount of seconds in a year.\n factor: year,\n // \"year\" labels are used for formatting the output.\n unit: 'year'\n}];\n//# sourceMappingURL=approximate.js.map","import approximate from '../steps/approximate.js'; // \"gradation\" is a legacy name for \"steps\".\n// It's here just for legacy compatibility.\n// Use \"steps\" name instead.\n// \"flavour\" is a legacy name for \"labels\".\n// It's here just for legacy compatibility.\n// Use \"labels\" name instead.\n// \"units\" is a legacy property.\n// It's here just for legacy compatibility.\n// Developers shouldn't need to use it in their custom styles.\n\nexport default {\n gradation: approximate,\n flavour: 'long',\n units: ['now', 'minute', 'hour', 'day', 'week', 'month', 'year']\n};\n//# sourceMappingURL=approximate.js.map","import approximate from '../steps/approximate.js'; // \"gradation\" is a legacy name for \"steps\".\n// It's here just for legacy compatibility.\n// Use \"steps\" name instead.\n// \"flavour\" is a legacy name for \"labels\".\n// It's here just for legacy compatibility.\n// Use \"labels\" name instead.\n// \"units\" is a legacy property.\n// It's here just for legacy compatibility.\n// Developers shouldn't need to use it in their custom styles.\n// Similar to the default style but with \"ago\" omitted.\n//\n// just now\n// 5 minutes\n// 10 minutes\n// 15 minutes\n// 20 minutes\n// an hour\n// 2 hours\n// …\n// 20 hours\n// 1 day\n// 2 days\n// a week\n// 2 weeks\n// 3 weeks\n// a month\n// 2 months\n// 3 months\n// 4 months\n// a year\n// 2 years\n//\n\nexport default {\n gradation: approximate,\n flavour: 'long-time',\n units: ['now', 'minute', 'hour', 'day', 'week', 'month', 'year']\n};\n//# sourceMappingURL=approximateTime.js.map","// Looks like this one's deprecated.\n// /**\n// * Returns a step corresponding to the unit.\n// * @param {Object[]} steps\n// * @param {string} unit\n// * @return {?Object}\n// */\n// export function getStepForUnit(steps, unit) {\n// \tfor (const step of steps) {\n// \t\tif (step.unit === unit) {\n// \t\t\treturn step\n// \t\t}\n// \t}\n// }\n// Looks like this one won't be used in the next major version.\n\n/**\r\n * Converts value to a `Date`\r\n * @param {(number|Date)} value\r\n * @return {Date}\r\n */\nexport function getDate(value) {\n return value instanceof Date ? value : new Date(value);\n}\n//# sourceMappingURL=helpers.js.map","import { day, getDate } from '../steps/index.js';\nimport { intlDateTimeFormatSupported } from '../locale.js'; // For compatibility with the old versions of this library.\n\nimport renameLegacyProperties from './renameLegacyProperties.js'; // Twitter-style relative date/time formatting.\n// (\"1m\", \"2h\", \"Mar 3\", \"Apr 4, 2012\").\n//\n// Seconds, minutes or hours are shown for shorter intervals,\n// and longer intervals are formatted using full date format.\n\nvar steps = [{\n formatAs: 'second'\n}, {\n formatAs: 'minute'\n}, {\n formatAs: 'hour'\n}]; // A cache for `Intl.DateTimeFormat` formatters\n// for various locales (is a global variable).\n\nvar formatters = {}; // Starting from day intervals, output month and day.\n\nvar monthAndDay = {\n minTime: function minTime(timestamp, _ref) {\n var future = _ref.future,\n getMinTimeForUnit = _ref.getMinTimeForUnit;\n // Returns `23.5 * 60 * 60` when `round` is \"round\",\n // and `24 * 60 * 60` when `round` is \"floor\".\n return getMinTimeForUnit('day');\n },\n format: function format(value, locale) {\n /* istanbul ignore else */\n if (!formatters[locale]) {\n formatters[locale] = {};\n }\n /* istanbul ignore else */\n\n\n if (!formatters[locale].dayMonth) {\n // \"Apr 11\" (MMMd)\n formatters[locale].dayMonth = new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric'\n });\n } // Output month and day.\n\n\n return formatters[locale].dayMonth.format(getDate(value));\n }\n}; // If the `date` happened/happens outside of current year,\n// then output day, month and year.\n// The interval should be such that the `date` lies outside of the current year.\n\nvar yearMonthAndDay = {\n minTime: function minTime(timestamp, _ref2) {\n var future = _ref2.future;\n\n if (future) {\n // January 1, 00:00, of the `date`'s year is right after\n // the maximum `now` for formatting a future date:\n // When `now` is before that date, the `date` is formatted as \"day/month/year\" (this step),\n // When `now` is equal to or after that date, the `date` is formatted as \"day/month\" (another step).\n // After that, it's hours, minutes, seconds, and after that it's no longer `future`.\n // The date is right after the maximum `now` for formatting a future date,\n // so subtract 1 millisecond from it.\n var maxFittingNow = new Date(new Date(timestamp).getFullYear(), 0).getTime() - 1; // Return `minTime` (in seconds).\n\n return (timestamp - maxFittingNow) / 1000;\n } else {\n // January 1, 00:00, of the year following the `date`'s year\n // is the minimum `now` for formatting a past date:\n // When `now` is before that date, the `date` is formatted as \"day/month\" (another step),\n // When `now` is equal to or after that date, the `date` is formatted as \"day/month/year\" (this step).\n // After that, it's hours, minutes, seconds, and after that it's no longer `future`.\n var minFittingNow = new Date(new Date(timestamp).getFullYear() + 1, 0).getTime(); // Return `minTime` (in seconds).\n\n return (minFittingNow - timestamp) / 1000;\n }\n },\n format: function format(value, locale) {\n /* istanbul ignore if */\n if (!formatters[locale]) {\n formatters[locale] = {};\n }\n /* istanbul ignore else */\n\n\n if (!formatters[locale].dayMonthYear) {\n // \"Apr 11, 2017\" (yMMMd)\n formatters[locale].dayMonthYear = new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'short',\n day: 'numeric'\n });\n } // Output day, month and year.\n\n\n return formatters[locale].dayMonthYear.format(getDate(value));\n }\n}; // If `Intl.DateTimeFormat` is supported,\n// then longer time intervals will be formatted as dates.\n\n/* istanbul ignore else */\n\nif (intlDateTimeFormatSupported()) {\n steps.push(monthAndDay, yearMonthAndDay);\n} // Otherwise, if `Intl.DateTimeFormat` is not supported,\n// which could be the case when using Internet Explorer,\n// then simply mimick \"round\" steps.\nelse {\n steps.push({\n formatAs: 'day'\n }, {\n formatAs: 'week'\n }, {\n formatAs: 'month'\n }, {\n formatAs: 'year'\n });\n}\n\nexport default {\n steps: steps,\n labels: [// \"mini\" labels are only defined for a few languages.\n 'mini', // \"short-time\" labels are only defined for a few languages.\n 'short-time', // \"narrow\" and \"short\" labels are defined for all languages.\n // \"narrow\" labels can sometimes be weird (like \"+5d.\"),\n // but \"short\" labels have the \" ago\" part, so \"narrow\" seem\n // more appropriate.\n // \"short\" labels would have been more appropriate if they\n // didn't have the \" ago\" part, hence the \"short-time\" above.\n 'narrow', // Since \"narrow\" labels are always present, \"short\" element\n // of this array can be removed.\n 'short']\n};\n//# sourceMappingURL=twitter.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport twitter from './twitter.js';\nexport default _objectSpread(_objectSpread({}, twitter), {}, {\n // Add \"now\".\n steps: [{\n formatAs: 'now'\n }].concat(twitter.steps)\n});\n//# sourceMappingURL=twitterNow.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport twitter from './twitter.js';\nexport default _objectSpread(_objectSpread({}, twitter), {}, {\n // Skip \"seconds\".\n steps: twitter.steps.filter(function (step) {\n return step.formatAs !== 'second';\n })\n});\n//# sourceMappingURL=twitterMinute.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport twitterMinute from './twitterMinute.js';\nexport default _objectSpread(_objectSpread({}, twitterMinute), {}, {\n // Add \"now\".\n steps: [{\n formatAs: 'now'\n }].concat(twitterMinute.steps)\n});\n//# sourceMappingURL=twitterMinuteNow.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { minute } from '../steps/units.js';\nimport twitter from './twitter.js';\nexport default _objectSpread(_objectSpread({}, twitter), {}, {\n // Skip \"seconds\".\n steps: twitter.steps.filter(function (step) {\n return step.formatAs !== 'second';\n }) // Start showing `1m` from the first minute.\n .map(function (step) {\n return step.formatAs === 'minute' ? _objectSpread(_objectSpread({}, step), {}, {\n minTime: minute\n }) : step;\n })\n});\n//# sourceMappingURL=twitterFirstMinute.js.map","export default {\n steps: [{\n formatAs: 'second'\n }, {\n formatAs: 'minute'\n }, {\n formatAs: 'hour'\n }, {\n formatAs: 'day'\n }, {\n formatAs: 'month'\n }, {\n formatAs: 'year'\n }],\n labels: [// \"mini\" labels are only defined for a few languages.\n 'mini', // \"short-time\" labels are only defined for a few languages.\n 'short-time', // \"narrow\" and \"short\" labels are defined for all languages.\n // \"narrow\" labels can sometimes be weird (like \"+5d.\"),\n // but \"short\" labels have the \" ago\" part, so \"narrow\" seem\n // more appropriate.\n // \"short\" labels would have been more appropriate if they\n // didn't have the \" ago\" part, hence the \"short-time\" above.\n 'narrow', // Since \"narrow\" labels are always present, \"short\" element\n // of this array can be removed.\n 'short']\n};\n//# sourceMappingURL=mini.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport mini from './mini.js';\nexport default _objectSpread(_objectSpread({}, mini), {}, {\n // Add \"now\".\n steps: [{\n formatAs: 'now'\n }].concat(mini.steps)\n});\n//# sourceMappingURL=miniNow.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport mini from './mini.js';\nexport default _objectSpread(_objectSpread({}, mini), {}, {\n // Skip \"seconds\".\n steps: mini.steps.filter(function (step) {\n return step.formatAs !== 'second';\n })\n});\n//# sourceMappingURL=miniMinute.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport miniMinute from './miniMinute.js';\nexport default _objectSpread(_objectSpread({}, miniMinute), {}, {\n // Add \"now\".\n steps: [{\n formatAs: 'now'\n }].concat(miniMinute.steps)\n});\n//# sourceMappingURL=miniMinuteNow.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport RelativeTimeFormatPolyfill from 'relative-time-format';\nimport Cache from './cache.js';\nimport chooseLocale from './locale.js';\nimport isStyleObject from './isStyleObject.js';\nimport getStep from './steps/getStep.js';\nimport getStepDenominator from './steps/getStepDenominator.js';\nimport getTimeToNextUpdate from './steps/getTimeToNextUpdate.js';\nimport { addLocaleData, getLocaleData } from './LocaleDataStore.js';\nimport defaultStyle from './style/roundMinute.js';\nimport getStyleByName from './style/getStyleByName.js';\nimport { getRoundFunction } from './round.js'; // Valid time units.\n\nvar UNITS = ['now', // The rest are the same as in `Intl.RelativeTimeFormat`.\n'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter', 'year'];\n\nvar TimeAgo = /*#__PURE__*/function () {\n /**\r\n * @param {(string|string[])} locales=[] - Preferred locales (or locale).\r\n * @param {boolean} [polyfill] — Pass `false` to use native `Intl.RelativeTimeFormat` and `Intl.PluralRules` instead of the polyfills.\r\n */\n function TimeAgo() {\n var locales = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n polyfill = _ref.polyfill;\n\n _classCallCheck(this, TimeAgo);\n\n // Convert `locales` to an array.\n if (typeof locales === 'string') {\n locales = [locales];\n } // Choose the most appropriate locale\n // from the list of `locales` added by the user.\n // For example, new TimeAgo(\"en-US\") -> \"en\".\n\n\n this.locale = chooseLocale(locales.concat(TimeAgo.getDefaultLocale()), getLocaleData);\n\n if (typeof Intl !== 'undefined') {\n // Use `Intl.NumberFormat` for formatting numbers (when available).\n if (Intl.NumberFormat) {\n this.numberFormat = new Intl.NumberFormat(this.locale);\n }\n } // Some people have requested the ability to use native\n // `Intl.RelativeTimeFormat` and `Intl.PluralRules`\n // instead of the polyfills.\n // https://github.com/catamphetamine/javascript-time-ago/issues/21\n\n\n if (polyfill === false) {\n this.IntlRelativeTimeFormat = Intl.RelativeTimeFormat;\n this.IntlPluralRules = Intl.PluralRules;\n } else {\n this.IntlRelativeTimeFormat = RelativeTimeFormatPolyfill;\n this.IntlPluralRules = RelativeTimeFormatPolyfill.PluralRules;\n } // Cache `Intl.RelativeTimeFormat` instance.\n\n\n this.relativeTimeFormatCache = new Cache(); // Cache `Intl.PluralRules` instance.\n\n this.pluralRulesCache = new Cache();\n }\n /**\r\n * Formats relative date/time.\r\n *\r\n * @param {(number|Date)} input — A `Date` or a javascript timestamp.\r\n *\r\n * @param {(string|object)} style — Date/time formatting style. Either one of the built-in style names or a \"custom\" style definition object having `steps: object[]` and `labels: string[]`.\r\n *\r\n * @param {number} [options.now] - Sets the current date timestamp.\r\n *\r\n * @param {boolean} [options.future] — Tells how to format value `0`:\r\n * as \"future\" (`true`) or \"past\" (`false`).\r\n * Is `false` by default, but should have been `true` actually,\r\n * in order to correspond to `Intl.RelativeTimeFormat`\r\n * that uses `future` formatting for `0` unless `-0` is passed.\r\n *\r\n * @param {string} [options.round] — Rounding method. Overrides the style's one.\r\n *\r\n * @param {boolean} [options.getTimeToNextUpdate] — Pass `true` to return `[formattedDate, timeToNextUpdate]` instead of just `formattedDate`.\r\n *\r\n * @return {string} The formatted relative date/time. If no eligible `step` is found, then an empty string is returned.\r\n */\n\n\n _createClass(TimeAgo, [{\n key: \"format\",\n value: function format(input, style, options) {\n if (!options) {\n if (style && !isStyle(style)) {\n options = style;\n style = undefined;\n } else {\n options = {};\n }\n }\n\n if (!style) {\n style = defaultStyle;\n }\n\n if (typeof style === 'string') {\n style = getStyleByName(style);\n }\n\n var timestamp = getTimestamp(input); // Get locale messages for this type of labels.\n // \"flavour\" is a legacy name for \"labels\".\n\n var _this$getLabels = this.getLabels(style.flavour || style.labels),\n labels = _this$getLabels.labels,\n labelsType = _this$getLabels.labelsType;\n\n var now; // Can pass a custom `now`, e.g. for testing purposes.\n //\n // Legacy way was passing `now` in `style`.\n // That way is deprecated.\n\n if (style.now !== undefined) {\n now = style.now;\n } // The new way is passing `now` option to `.format()`.\n\n\n if (now === undefined && options.now !== undefined) {\n now = options.now;\n }\n\n if (now === undefined) {\n now = Date.now();\n } // how much time has passed (in seconds)\n\n\n var secondsPassed = (now - timestamp) / 1000; // in seconds\n\n var future = options.future || secondsPassed < 0;\n var nowLabel = getNowLabel(labels, getLocaleData(this.locale).now, getLocaleData(this.locale)[\"long\"], future); // `custom` – A function of `{ elapsed, time, date, now, locale }`.\n //\n // Looks like `custom` function is deprecated and will be removed\n // in the next major version.\n //\n // If this function returns a value, then the `.format()` call will return that value.\n // Otherwise the relative date/time is formatted as usual.\n // This feature is currently not used anywhere and is here\n // just for providing the ultimate customization point\n // in case anyone would ever need that. Prefer using\n // `steps[step].format(value, locale)` instead.\n //\n\n if (style.custom) {\n var custom = style.custom({\n now: now,\n date: new Date(timestamp),\n time: timestamp,\n elapsed: secondsPassed,\n locale: this.locale\n });\n\n if (custom !== undefined) {\n // Won't return `timeToNextUpdate` here\n // because `custom()` seems deprecated.\n return custom;\n }\n } // Get the list of available time interval units.\n\n\n var units = getTimeIntervalMeasurementUnits( // Controlling `style.steps` through `style.units` seems to be deprecated:\n // create a new custom `style` instead.\n style.units, labels, nowLabel); // // If no available time unit is suitable, just output an empty string.\n // if (units.length === 0) {\n // \tconsole.error(`None of the \"${units.join(', ')}\" time units have been found in \"${labelsType}\" labels for \"${this.locale}\" locale.`)\n // \treturn ''\n // }\n\n var round = options.round || style.round; // Choose the appropriate time measurement unit\n // and get the corresponding rounded time amount.\n\n var _getStep = getStep( // \"gradation\" is a legacy name for \"steps\".\n // For historical reasons, \"approximate\" steps are used by default.\n // In the next major version, there'll be no default for `steps`.\n style.gradation || style.steps || defaultStyle.steps, secondsPassed, {\n now: now,\n units: units,\n round: round,\n future: future,\n getNextStep: true\n }),\n _getStep2 = _slicedToArray(_getStep, 3),\n prevStep = _getStep2[0],\n step = _getStep2[1],\n nextStep = _getStep2[2];\n\n var formattedDate = this.formatDateForStep(timestamp, step, secondsPassed, {\n labels: labels,\n labelsType: labelsType,\n nowLabel: nowLabel,\n now: now,\n future: future,\n round: round\n }) || '';\n\n if (options.getTimeToNextUpdate) {\n var timeToNextUpdate = getTimeToNextUpdate(timestamp, step, {\n nextStep: nextStep,\n prevStep: prevStep,\n now: now,\n future: future,\n round: round\n });\n return [formattedDate, timeToNextUpdate];\n }\n\n return formattedDate;\n }\n }, {\n key: \"formatDateForStep\",\n value: function formatDateForStep(timestamp, step, secondsPassed, _ref2) {\n var _this = this;\n\n var labels = _ref2.labels,\n labelsType = _ref2.labelsType,\n nowLabel = _ref2.nowLabel,\n now = _ref2.now,\n future = _ref2.future,\n round = _ref2.round;\n\n // If no step matches, then output an empty string.\n if (!step) {\n return;\n }\n\n if (step.format) {\n return step.format(timestamp, this.locale, {\n formatAs: function formatAs(unit, value) {\n // Mimicks `Intl.RelativeTimeFormat.format()`.\n return _this.formatValue(value, unit, {\n labels: labels,\n future: future\n });\n },\n now: now,\n future: future\n });\n } // \"unit\" is now called \"formatAs\".\n\n\n var unit = step.unit || step.formatAs;\n\n if (!unit) {\n throw new Error(\"[javascript-time-ago] Each step must define either `formatAs` or `format()`. Step: \".concat(JSON.stringify(step)));\n } // `Intl.RelativeTimeFormat` doesn't operate in \"now\" units.\n // Therefore, threat \"now\" as a special case.\n\n\n if (unit === 'now') {\n return nowLabel;\n } // Amount in units.\n\n\n var amount = Math.abs(secondsPassed) / getStepDenominator(step); // Apply granularity to the time amount\n // (and fallback to the previous step\n // if the first level of granularity\n // isn't met by this amount)\n //\n // `granularity` — (advanced) Time interval value \"granularity\".\n // For example, it could be set to `5` for minutes to allow only 5-minute increments\n // when formatting time intervals: `0 minutes`, `5 minutes`, `10 minutes`, etc.\n // Perhaps this feature will be removed because there seem to be no use cases\n // of it in the real world.\n //\n\n if (step.granularity) {\n // Recalculate the amount of seconds passed based on granularity\n amount = getRoundFunction(round)(amount / step.granularity) * step.granularity;\n }\n\n var valueForFormatting = -1 * Math.sign(secondsPassed) * getRoundFunction(round)(amount); // By default, this library formats a `0` in \"past\" mode,\n // unless `future: true` option is passed.\n // This is different to `relative-time-format`'s behavior\n // which formats a `0` in \"future\" mode by default, unless it's a `-0`.\n // So, convert `0` to `-0` if `future: true` option wasn't passed.\n // `=== 0` matches both `0` and `-0`.\n\n if (valueForFormatting === 0) {\n if (future) {\n valueForFormatting = 0;\n } else {\n valueForFormatting = -0;\n }\n }\n\n switch (labelsType) {\n case 'long':\n case 'short':\n case 'narrow':\n // Format the amount using `Intl.RelativeTimeFormat`.\n return this.getFormatter(labelsType).format(valueForFormatting, unit);\n\n default:\n // Format the amount.\n // (mimicks `Intl.RelativeTimeFormat` behavior for other time label styles)\n return this.formatValue(valueForFormatting, unit, {\n labels: labels,\n future: future\n });\n }\n }\n /**\r\n * Mimicks what `Intl.RelativeTimeFormat` does for additional locale styles.\r\n * @param {number} value\r\n * @param {string} unit\r\n * @param {object} options.labels — Relative time labels.\r\n * @param {boolean} [options.future] — Tells how to format value `0`: as \"future\" (`true`) or \"past\" (`false`). Is `false` by default, but should have been `true` actually.\r\n * @return {string}\r\n */\n\n }, {\n key: \"formatValue\",\n value: function formatValue(value, unit, _ref3) {\n var labels = _ref3.labels,\n future = _ref3.future;\n return this.getFormattingRule(labels, unit, value, {\n future: future\n }).replace('{0}', this.formatNumber(Math.abs(value)));\n }\n /**\r\n * Returns formatting rule for `value` in `units` (either in past or in future).\r\n * @param {object} formattingRules — Relative time labels for different units.\r\n * @param {string} unit - Time interval measurement unit.\r\n * @param {number} value - Time interval value.\r\n * @param {boolean} [options.future] — Tells how to format value `0`: as \"future\" (`true`) or \"past\" (`false`). Is `false` by default.\r\n * @return {string}\r\n * @example\r\n * // Returns \"{0} days ago\"\r\n * getFormattingRule(en.long, \"day\", -2, 'en')\r\n */\n\n }, {\n key: \"getFormattingRule\",\n value: function getFormattingRule(formattingRules, unit, value, _ref4) {\n var future = _ref4.future;\n // Passing the language is required in order to\n // be able to correctly classify the `value` as a number.\n var locale = this.locale;\n formattingRules = formattingRules[unit]; // Check for a special \"compacted\" rules case:\n // if formatting rules are the same for \"past\" and \"future\",\n // and also for all possible `value`s, then those rules are\n // stored as a single string.\n\n if (typeof formattingRules === 'string') {\n return formattingRules;\n } // Choose either \"past\" or \"future\" based on time `value` sign.\n // If \"past\" is same as \"future\" then they're stored as \"other\".\n // If there's only \"other\" then it's being collapsed.\n\n\n var pastOrFuture = value === 0 ? future ? 'future' : 'past' : value < 0 ? 'past' : 'future';\n var quantifierRules = formattingRules[pastOrFuture] || formattingRules; // Bundle size optimization technique.\n\n if (typeof quantifierRules === 'string') {\n return quantifierRules;\n } // Quantify `value`.\n\n\n var quantifier = this.getPluralRules().select(Math.abs(value)); // \"other\" rule is supposed to always be present.\n // If only \"other\" rule is present then \"rules\" is not an object and is a string.\n\n return quantifierRules[quantifier] || quantifierRules.other;\n }\n /**\r\n * Formats a number into a string.\r\n * Uses `Intl.NumberFormat` when available.\r\n * @param {number} number\r\n * @return {string}\r\n */\n\n }, {\n key: \"formatNumber\",\n value: function formatNumber(number) {\n return this.numberFormat ? this.numberFormat.format(number) : String(number);\n }\n /**\r\n * Returns an `Intl.RelativeTimeFormat` for a given `labelsType`.\r\n * @param {string} labelsType\r\n * @return {object} `Intl.RelativeTimeFormat` instance\r\n */\n\n }, {\n key: \"getFormatter\",\n value: function getFormatter(labelsType) {\n // `Intl.RelativeTimeFormat` instance creation is (hypothetically) assumed\n // a lengthy operation so the instances are cached and reused.\n return this.relativeTimeFormatCache.get(this.locale, labelsType) || this.relativeTimeFormatCache.put(this.locale, labelsType, new this.IntlRelativeTimeFormat(this.locale, {\n style: labelsType\n }));\n }\n /**\r\n * Returns an `Intl.PluralRules` instance.\r\n * @return {object} `Intl.PluralRules` instance\r\n */\n\n }, {\n key: \"getPluralRules\",\n value: function getPluralRules() {\n // `Intl.PluralRules` instance creation is (hypothetically) assumed\n // a lengthy operation so the instances are cached and reused.\n return this.pluralRulesCache.get(this.locale) || this.pluralRulesCache.put(this.locale, new this.IntlPluralRules(this.locale));\n }\n /**\r\n * Gets localized labels for this type of labels.\r\n *\r\n * @param {(string|string[])} labelsType - Relative date/time labels type.\r\n * If it's an array then all label types are tried\r\n * until a suitable one is found.\r\n *\r\n * @returns {Object} Returns an object of shape { labelsType, labels }\r\n */\n\n }, {\n key: \"getLabels\",\n value: function getLabels() {\n var labelsType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n // Convert `labels` to an array.\n if (typeof labelsType === 'string') {\n labelsType = [labelsType];\n } // Supports legacy \"tiny\" and \"mini-time\" label styles.\n\n\n labelsType = labelsType.map(function (labelsType) {\n switch (labelsType) {\n case 'tiny':\n case 'mini-time':\n return 'mini';\n\n default:\n return labelsType;\n }\n }); // \"long\" labels type is the default one.\n // (it's always present for all languages)\n\n labelsType = labelsType.concat('long'); // Find a suitable labels type.\n\n var localeData = getLocaleData(this.locale);\n\n for (var _iterator = _createForOfIteratorHelperLoose(labelsType), _step; !(_step = _iterator()).done;) {\n var _labelsType = _step.value;\n\n if (localeData[_labelsType]) {\n return {\n labelsType: _labelsType,\n labels: localeData[_labelsType]\n };\n }\n }\n }\n }]);\n\n return TimeAgo;\n}();\n/**\r\n * Default locale global variable.\r\n */\n\n\nexport { TimeAgo as default };\nvar defaultLocale = 'en';\n/**\r\n * Gets default locale.\r\n * @return {string} locale\r\n */\n\nTimeAgo.getDefaultLocale = function () {\n return defaultLocale;\n};\n/**\r\n * Sets default locale.\r\n * @param {string} locale\r\n */\n\n\nTimeAgo.setDefaultLocale = function (locale) {\n return defaultLocale = locale;\n};\n/**\r\n * Adds locale data for a specific locale and marks the locale as default.\r\n * @param {Object} localeData\r\n */\n\n\nTimeAgo.addDefaultLocale = function (localeData) {\n if (defaultLocaleHasBeenSpecified) {\n return console.error('[javascript-time-ago] `TimeAgo.addDefaultLocale()` can only be called once. To add other locales, use `TimeAgo.addLocale()`.');\n }\n\n defaultLocaleHasBeenSpecified = true;\n TimeAgo.setDefaultLocale(localeData.locale);\n TimeAgo.addLocale(localeData);\n};\n\nvar defaultLocaleHasBeenSpecified;\n/**\r\n * Adds locale data for a specific locale.\r\n * @param {Object} localeData\r\n */\n\nTimeAgo.addLocale = function (localeData) {\n addLocaleData(localeData);\n RelativeTimeFormatPolyfill.addLocale(localeData);\n};\n/**\r\n * (legacy alias)\r\n * Adds locale data for a specific locale.\r\n * @param {Object} localeData\r\n * @deprecated\r\n */\n\n\nTimeAgo.locale = TimeAgo.addLocale;\n/**\r\n * Adds custom labels to locale data.\r\n * @param {string} locale\r\n * @param {string} name\r\n * @param {object} labels\r\n */\n\nTimeAgo.addLabels = function (locale, name, labels) {\n var localeData = getLocaleData(locale);\n\n if (!localeData) {\n addLocaleData({\n locale: locale\n });\n localeData = getLocaleData(locale); // throw new Error(`[javascript-time-ago] No data for locale \"${locale}\"`)\n }\n\n localeData[name] = labels;\n}; // Normalizes `.format()` `time` argument.\n\n\nfunction getTimestamp(input) {\n if (input.constructor === Date || isMockedDate(input)) {\n return input.getTime();\n }\n\n if (typeof input === 'number') {\n return input;\n } // For some weird reason istanbul doesn't see this `throw` covered.\n\n /* istanbul ignore next */\n\n\n throw new Error(\"Unsupported relative time formatter input: \".concat(_typeof(input), \", \").concat(input));\n} // During testing via some testing libraries `Date`s aren't actually `Date`s.\n// https://github.com/catamphetamine/javascript-time-ago/issues/22\n\n\nfunction isMockedDate(object) {\n return _typeof(object) === 'object' && typeof object.getTime === 'function';\n} // Get available time interval measurement units.\n\n\nfunction getTimeIntervalMeasurementUnits(allowedUnits, labels, nowLabel) {\n // Get all time interval measurement units that're available\n // in locale data for a given time labels style.\n var units = Object.keys(labels); // `now` unit is handled separately and is shipped in its own `now.json` file.\n // `now.json` isn't present for all locales, so it could be substituted with\n // \".second.current\".\n // Add `now` unit if it's available in locale data.\n\n if (nowLabel) {\n units.push('now');\n } // If only a specific set of available time measurement units can be used\n // then only those units are allowed (if they're present in locale data).\n\n\n if (allowedUnits) {\n units = allowedUnits.filter(function (unit) {\n return unit === 'now' || units.indexOf(unit) >= 0;\n });\n }\n\n return units;\n}\n\nfunction getNowLabel(labels, nowLabels, longLabels, future) {\n var nowLabel = labels.now || nowLabels && nowLabels.now; // Specific \"now\" message form extended locale data (if present).\n\n if (nowLabel) {\n // Bundle size optimization technique.\n if (typeof nowLabel === 'string') {\n return nowLabel;\n } // Not handling `value === 0` as `localeData.now.current` here\n // because it wouldn't make sense: \"now\" is a moment,\n // so one can't possibly differentiate between a\n // \"previous\" moment, a \"current\" moment and a \"next moment\".\n // It can only be differentiated between \"past\" and \"future\".\n\n\n if (future) {\n return nowLabel.future;\n } else {\n return nowLabel.past;\n }\n } // Use \".second.current\" as \"now\" message.\n\n\n if (longLabels && longLabels.second && longLabels.second.current) {\n return longLabels.second.current;\n }\n}\n\nfunction isStyle(variable) {\n return typeof variable === 'string' || isStyleObject(variable);\n}\n//# sourceMappingURL=TimeAgo.js.map","import round from './round.js';\nimport roundMinute from './roundMinute.js'; // `approximate` style is deprecated.\n\nimport approximate from './approximate.js'; // `approximateTime` style is deprecated.\n\nimport approximateTime from './approximateTime.js';\nimport twitter from './twitter.js';\nimport twitterNow from './twitterNow.js';\nimport twitterMinute from './twitterMinute.js';\nimport twitterMinuteNow from './twitterMinuteNow.js';\nimport twitterFirstMinute from './twitterFirstMinute.js';\nimport mini from './mini.js';\nimport miniNow from './miniNow.js';\nimport miniMinute from './miniMinute.js';\nimport miniMinuteNow from './miniMinuteNow.js';\nexport default function getStyleByName(style) {\n switch (style) {\n // \"default\" style name is deprecated.\n case 'default':\n case 'round':\n return round;\n\n case 'round-minute':\n return roundMinute;\n\n case 'approximate':\n return approximate;\n // \"time\" style name is deprecated.\n\n case 'time':\n case 'approximate-time':\n return approximateTime;\n\n case 'mini':\n return mini;\n\n case 'mini-now':\n return miniNow;\n\n case 'mini-minute':\n return miniMinute;\n\n case 'mini-minute-now':\n return miniMinuteNow;\n\n case 'twitter':\n return twitter;\n\n case 'twitter-now':\n return twitterNow;\n\n case 'twitter-minute':\n return twitterMinute;\n\n case 'twitter-minute-now':\n return twitterMinuteNow;\n\n case 'twitter-first-minute':\n return twitterFirstMinute;\n\n default:\n // For historical reasons, the default style is \"approximate\".\n return approximate;\n }\n}\n//# sourceMappingURL=getStyleByName.js.map","var _excluded = [\"date\", \"verboseDate\", \"tooltip\", \"children\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nexport default function Time(_ref, ref) {\n var date = _ref.date,\n verboseDate = _ref.verboseDate,\n tooltip = _ref.tooltip,\n children = _ref.children,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var isoString = useMemo(function () {\n return date.toISOString();\n }, [date]);\n return /*#__PURE__*/React.createElement(\"time\", _extends({\n ref: ref\n }, rest, {\n dateTime: isoString,\n title: tooltip ? verboseDate : undefined\n }), children);\n} // https://gitlab.com/catamphetamine/react-time-ago/-/issues/5\n//\n// Someone used this component with \"Material UI\"'s `` component,\n// and that component required `children` be `ref`-able.\n// https://github.com/mui-org/material-ui/blob/a9903917f919092f80d84075f39fb51d51f241f2/packages/mui-material/src/Tooltip/Tooltip.js#L494-L496\n// \n// That component seems to only be using that `ref-`ability to check whether \n// the `children` element qualifies for `:focus-visible` selector.\n// https://github.com/mui-org/material-ui/blob/a9903917f919092f80d84075f39fb51d51f241f2/packages/mui-utils/src/useIsFocusVisible.ts#L105\n//\n\nTime = /*#__PURE__*/React.forwardRef(Time);\nTime.propTypes = {\n date: PropTypes.instanceOf(Date).isRequired,\n verboseDate: PropTypes.string,\n tooltip: PropTypes.bool.isRequired,\n children: PropTypes.string.isRequired\n};\n//# sourceMappingURL=Time.js.map","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var cache = null;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n return cache.lastResult;\n }\n var lastResult = resultFn.apply(this, newArgs);\n cache = {\n lastResult: lastResult,\n lastArgs: newArgs,\n lastThis: this,\n };\n return lastResult;\n }\n memoized.clear = function clear() {\n cache = null;\n };\n return memoized;\n}\n\nexport { memoizeOne as default };\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\r\n * Whether can use `Intl.DateTimeFormat` for these `locales`.\r\n * Returns the first suitable one.\r\n * @param {(string|string[])} locales\r\n * @return {?string} The first locale that can be used.\r\n */\nexport function intlDateTimeFormatSupportedLocale(locales) {\n /* istanbul ignore else */\n if (intlDateTimeFormatSupported()) {\n return Intl.DateTimeFormat.supportedLocalesOf(locales)[0];\n }\n}\n/**\r\n * Whether can use `Intl.DateTimeFormat`.\r\n * @return {boolean}\r\n */\n\nexport function intlDateTimeFormatSupported() {\n // Babel transforms `typeof` into some \"branches\"\n // so istanbul will show this as \"branch not covered\".\n\n /* istanbul ignore next */\n var isIntlAvailable = (typeof Intl === \"undefined\" ? \"undefined\" : _typeof(Intl)) === 'object';\n return isIntlAvailable && typeof Intl.DateTimeFormat === 'function';\n}\n//# sourceMappingURL=locale.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/**\r\n * A basic in-memory cache.\r\n *\r\n * import Cache from 'javascript-time-ago/Cache'\r\n * const cache = new Cache()\r\n * const object = cache.get('key1', 'key2', ...) || cache.put('key1', 'key2', ..., createObject())\r\n */\nvar Cache = /*#__PURE__*/function () {\n function Cache() {\n _classCallCheck(this, Cache);\n\n this.cache = {};\n }\n\n _createClass(Cache, [{\n key: \"get\",\n value: function get() {\n var cache = this.cache;\n\n for (var _len = arguments.length, keys = new Array(_len), _key = 0; _key < _len; _key++) {\n keys[_key] = arguments[_key];\n }\n\n for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {\n var key = _keys[_i];\n\n if (_typeof(cache) !== 'object') {\n return;\n }\n\n cache = cache[key];\n }\n\n return cache;\n }\n }, {\n key: \"put\",\n value: function put() {\n for (var _len2 = arguments.length, keys = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n keys[_key2] = arguments[_key2];\n }\n\n var value = keys.pop();\n var lastKey = keys.pop();\n var cache = this.cache;\n\n for (var _i2 = 0, _keys2 = keys; _i2 < _keys2.length; _i2++) {\n var key = _keys2[_i2];\n\n if (_typeof(cache[key]) !== 'object') {\n cache[key] = {};\n }\n\n cache = cache[key];\n }\n\n return cache[lastKey] = value;\n }\n }]);\n\n return Cache;\n}();\n\nexport { Cache as default };\n//# sourceMappingURL=cache.js.map","import memoize from 'memoize-one';\nimport { intlDateTimeFormatSupported, intlDateTimeFormatSupportedLocale } from './locale.js';\nimport Cache from './cache.js';\nvar cache = new Cache();\nvar INTL_DATE_TIME_FORMAT_SUPPORTED = intlDateTimeFormatSupported();\n\nvar FALLBACK_VERBOSE_DATE_FORMATTER = function FALLBACK_VERBOSE_DATE_FORMATTER(date) {\n return date.toString();\n};\n/**\r\n * Returns a verbose date formatter.\r\n * \r\n * @param {string} locale - Date formatting locale\r\n * @param {object} format - Output format\r\n * @param {string} format.day - Day format\r\n * @param {string} format.month - Month format\r\n * @param {string} format.year - Year format\r\n * @param {string} format.weekday - Weekday format\r\n * @param {string} format.hour - Hour format\r\n * @param {string} format.minute - Minute format\r\n * @param {string} format.second - Second format\r\n *\r\n * @returns {Function} `(date) -> string`.\r\n */\n\n\nfunction getVerboseDateFormatter(locales, format) {\n // Fall back to `date.toString()` for old web browsers.\n // https://caniuse.com/#search=intl\n if (!INTL_DATE_TIME_FORMAT_SUPPORTED) {\n return FALLBACK_VERBOSE_DATE_FORMATTER;\n } // If none of the `locales` are supported\n // a default system locale will be used.\n\n\n var locale = resolveLocale(locales); // `Intl.DateTimeFormat` format caching key.\n // E.g. `\"{\"day\":\"numeric\",\"month\":\"short\",...}\"`.\n // Didn't benchmark what's faster:\n // creating a new `Intl.DateTimeFormat` instance\n // or stringifying a small JSON `format`.\n // Perhaps strigifying JSON `format` is faster.\n\n var formatFingerprint = JSON.stringify(format); // Get `Intl.DateTimeFormat` instance for these `locale` and `format`.\n // (`locale` can be `undefined`, hence the `String(locale)` conversion)\n\n var formatter = cache.get(String(locale), formatFingerprint) || cache.put(String(locale), formatFingerprint, new Intl.DateTimeFormat(locale, format)); // Return date formatter\n\n return function (date) {\n return formatter.format(date);\n };\n} // Even though `getVerboseDateFormatter()` function is called inside a\n// `useMemo()` hook, it's still invoked every time for different \n// `` elements on a page. There could be a lot of such\n// `` elements on a page. And `useMemo()` wouldn't speed up\n// the initial render. To work around that, simple argument-based memoization\n// is used.\n\n\nexport default memoize(getVerboseDateFormatter); // Caching locale resolving for optimizing pages \n// with a lot of `` elements (say, 100 or more).\n// `Intl.DateTimeFormat.supportedLocalesOf(locales)` is not instantaneous.\n// For example, it could be 25 milliseconds for 200 calls.\n\nvar resolvedLocales = {};\n/**\r\n * Resolves a list of possible locales to a single (\"best fit\") supported locale.\r\n * @param {string[]} locales\r\n * @return {string}\r\n */\n\nfunction resolveLocale(locales) {\n var localesFingerprint = locales.toString();\n\n if (resolvedLocales[localesFingerprint]) {\n return resolvedLocales[localesFingerprint];\n }\n\n return resolvedLocales[localesFingerprint] = intlDateTimeFormatSupportedLocale(locales);\n}\n//# sourceMappingURL=getVerboseDateFormatter.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\r\n * Converts value to a `Date`\r\n * @param {(number|Date)} value\r\n * @return {Date}\r\n */\nexport function getDate(value) {\n return isDate(value) ? value : new Date(value);\n}\n/**\r\n * Converts value to a timestamp.\r\n * @param {(number|Date)} value\r\n * @return {number}\r\n */\n\nexport function getTime(value) {\n return isDate(value) ? value.getTime() : value;\n}\n\nfunction isDate(object) {\n return object instanceof Date || isMockedDate(object);\n} // During testing via some testing libraries `Date`s aren't actually `Date`s.\n// https://github.com/catamphetamine/javascript-time-ago/issues/22\n\n\nexport function isMockedDate(object) {\n return _typeof(object) === 'object' && typeof object.getTime === 'function';\n}\n//# sourceMappingURL=date.js.map","import TimeAgo from 'javascript-time-ago';\nimport Cache from './cache.js';\nvar TimeAgoCache = new Cache();\nexport default function getTimeAgo(preferredLocales, _ref) {\n var polyfill = _ref.polyfill;\n // `TimeAgo` instance creation is (hypothetically) assumed\n // a lengthy operation so the instances are cached and reused.\n // https://gitlab.com/catamphetamine/react-time-ago/-/issues/1\n var key = String(preferredLocales) + ':' + String(polyfill);\n return TimeAgoCache.get(key) || TimeAgoCache.put(key, new TimeAgo(preferredLocales, {\n polyfill: polyfill\n }));\n}\n//# sourceMappingURL=getTimeAgo.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n// Manages the updates of all `` elements on a page.\n// The reasons for going with `requestAnimationFrame()`:\n// * `requestAnimationFrame` won't be called when a tab is in background.\n// * Chrome has bugs when handling `setTimeout()`: https://www.npmjs.com/package/request-animation-frame-timeout\n// `requestAnimationFrame()` polyfill for old browsers.\nimport requestAnimationFrame from 'raf';\nimport binarySearch from './helpers/binarySearch.js';\nexport default {\n instances: [],\n add: function add(instance) {\n var _this = this;\n\n var wasIdle = this.instances.length === 0;\n\n _add(this.instances, instance);\n\n if (wasIdle) {\n this.start();\n }\n\n return {\n stop: function stop() {\n remove(_this.instances, instance);\n\n if (_this.instances.length === 0) {\n _this.stop();\n }\n },\n forceUpdate: function forceUpdate() {\n updateInstance(instance, _this.instances);\n }\n };\n },\n tick: function tick() {\n var now = Date.now();\n\n while (true) {\n var instance = this.instances[0];\n\n if (now >= instance.nextUpdateTime) {\n updateInstance(instance, this.instances);\n } else {\n break;\n }\n }\n },\n scheduleNextTick: function scheduleNextTick() {\n var _this2 = this;\n\n this.scheduledTick = requestAnimationFrame(function () {\n _this2.tick();\n\n _this2.scheduleNextTick();\n });\n },\n start: function start() {\n this.scheduleNextTick();\n },\n stop: function stop() {\n requestAnimationFrame.cancel(this.scheduledTick);\n }\n};\n\nfunction _updateInstance(instance) {\n var _instance$getNextValu = instance.getNextValue(),\n _instance$getNextValu2 = _slicedToArray(_instance$getNextValu, 2),\n value = _instance$getNextValu2[0],\n nextUpdateTime = _instance$getNextValu2[1];\n\n instance.setValue(value);\n instance.nextUpdateTime = nextUpdateTime;\n}\n\nfunction updateInstance(instance, instances) {\n _updateInstance(instance);\n\n remove(instances, instance);\n\n _add(instances, instance);\n}\n\nfunction _add(instances, instance) {\n var i = findTargetIndex(instances, instance);\n instances.splice(i, 0, instance);\n}\n\nfunction remove(instances, instance) {\n var i = instances.indexOf(instance);\n instances.splice(i, 1);\n}\n\nfunction findTargetIndex(instances, instance) {\n var nextUpdateTime = instance.nextUpdateTime;\n return binarySearch(instances, function (instance) {\n if (instance.nextUpdateTime === nextUpdateTime) {\n return 0;\n } else if (instance.nextUpdateTime > nextUpdateTime) {\n return 1;\n } else {\n return -1;\n }\n });\n}\n//# sourceMappingURL=Updater.js.map","// \"Binary\" search in a sorted array.\nexport default function (array, test) {\n if (array.length === 0) {\n return 0;\n }\n\n var min = 0;\n var max = array.length - 1;\n var guess;\n\n while (min <= max) {\n guess = Math.floor((max + min) / 2);\n var result = test(array[guess]);\n\n if (result === 0) {\n return guess;\n } else if (result < 0) {\n min = guess + 1;\n\n if (min > max) {\n return min;\n }\n } else {\n max = guess - 1;\n\n if (max < min) {\n return min;\n }\n }\n } // return -1\n // return min\n\n}\n//# sourceMappingURL=binarySearch.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { useEffect, useState, useRef, useCallback, useMemo } from 'react';\nimport TimeAgo from 'javascript-time-ago';\nimport getVerboseDateFormatter from './helpers/getVerboseDateFormatter.js';\nimport { getDate } from './helpers/date.js';\nimport getTimeAgo from './helpers/getTimeAgo.js';\nimport Updater from './Updater.js';\nexport default function useTimeAgo(_ref) {\n var date = _ref.date,\n future = _ref.future,\n locale = _ref.locale,\n locales = _ref.locales,\n timeStyle = _ref.timeStyle,\n round = _ref.round,\n minTimeLeft = _ref.minTimeLeft,\n formatVerboseDate = _ref.formatVerboseDate,\n _ref$verboseDateForma = _ref.verboseDateFormat,\n verboseDateFormat = _ref$verboseDateForma === void 0 ? DEFAULT_VERBOSE_DATE_FORMAT : _ref$verboseDateForma,\n updateInterval = _ref.updateInterval,\n _ref$tick = _ref.tick,\n tick = _ref$tick === void 0 ? true : _ref$tick,\n nowProperty = _ref.now,\n _ref$timeOffset = _ref.timeOffset,\n timeOffset = _ref$timeOffset === void 0 ? 0 : _ref$timeOffset,\n polyfill = _ref.polyfill;\n // Get the list of preferred locales.\n var preferredLocales = useMemo(function () {\n // Convert `locale` to `locales`.\n if (locale) {\n locales = [locale];\n } // Add `javascript-time-ago` default locale.\n\n\n return locales.concat(TimeAgo.getDefaultLocale());\n }, [locale, locales]); // Create `javascript-time-ago` formatter instance.\n\n var timeAgo = useMemo(function () {\n return getTimeAgo(preferredLocales, {\n polyfill: polyfill\n });\n }, [preferredLocales, polyfill]); // The date or timestamp that was passed.\n // Convert timestamp to `Date`.\n\n date = useMemo(function () {\n return getDate(date);\n }, [date]); // Formats the `date`.\n\n var formatDate = useCallback(function () {\n var now = (nowProperty || Date.now()) - timeOffset;\n var stopUpdates;\n\n if (future) {\n if (now >= date.getTime()) {\n now = date.getTime();\n stopUpdates = true;\n }\n }\n\n if (minTimeLeft !== undefined) {\n var maxNow = date.getTime() - minTimeLeft * 1000;\n\n if (now > maxNow) {\n now = maxNow;\n stopUpdates = true;\n }\n }\n\n var _timeAgo$format = timeAgo.format(date, timeStyle, {\n getTimeToNextUpdate: true,\n now: now,\n future: future,\n round: round\n }),\n _timeAgo$format2 = _slicedToArray(_timeAgo$format, 2),\n formattedDate = _timeAgo$format2[0],\n timeToNextUpdate = _timeAgo$format2[1];\n\n if (stopUpdates) {\n timeToNextUpdate = INFINITY;\n } else {\n // Legacy compatibility: there used to be an `updateInterval` property.\n // That was before `getTimeToNextUpdate` feature was introduced in `javascript-time-ago`.\n // A default interval of one minute is introduced because\n // `getTimeToNextUpdate` feature may theoretically return `undefined`.\n timeToNextUpdate = updateInterval || timeToNextUpdate || 60 * 1000; // A minute by default.\n }\n\n return [formattedDate, now + timeToNextUpdate];\n }, [date, future, timeStyle, updateInterval, round, minTimeLeft, timeAgo, nowProperty]);\n var formatDateRef = useRef();\n formatDateRef.current = formatDate;\n\n var _useMemo = useMemo(formatDate, []),\n _useMemo2 = _slicedToArray(_useMemo, 2),\n _formattedDate = _useMemo2[0],\n _nextUpdateTime = _useMemo2[1];\n\n var _useState = useState(_formattedDate),\n _useState2 = _slicedToArray(_useState, 2),\n formattedDate = _useState2[0],\n setFormattedDate = _useState2[1];\n\n var updater = useRef();\n useEffect(function () {\n if (tick) {\n updater.current = Updater.add({\n getNextValue: function getNextValue() {\n return formatDateRef.current();\n },\n setValue: setFormattedDate,\n nextUpdateTime: _nextUpdateTime\n });\n return function () {\n return updater.current.stop();\n };\n }\n }, [tick]);\n useEffect(function () {\n if (updater.current) {\n updater.current.forceUpdate();\n } else {\n var _formatDate = formatDate(),\n _formatDate2 = _slicedToArray(_formatDate, 1),\n _formattedDate2 = _formatDate2[0];\n\n setFormattedDate(_formattedDate2);\n }\n }, [formatDate]); // Create verbose date formatter for the tooltip text.\n\n var verboseDateFormatter = useMemo(function () {\n return getVerboseDateFormatter(preferredLocales, verboseDateFormat);\n }, [preferredLocales, verboseDateFormat]); // Format verbose date for the tooltip.\n\n var verboseDate = useMemo(function () {\n if (formatVerboseDate) {\n return formatVerboseDate(date);\n }\n\n return verboseDateFormatter(date);\n }, [date, formatVerboseDate, verboseDateFormatter]);\n return {\n date: date,\n formattedDate: formattedDate,\n verboseDate: verboseDate\n };\n} // A thousand years is practically a metaphor for \"infinity\"\n// in the context of this component.\n\nvar YEAR = 365 * 24 * 60 * 60 * 1000;\nvar INFINITY = 1000 * YEAR; // `Intl.DateTimeFormat` for verbose date.\n// Formatted date example: \"Thursday, December 20, 2012, 7:00:00 AM GMT+4\"\n\nvar DEFAULT_VERBOSE_DATE_FORMAT = {\n weekday: 'long',\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n second: '2-digit' // timeZoneName: 'short'\n\n};\n//# sourceMappingURL=useTimeAgo.js.map","import PropTypes from 'prop-types';\nvar oneOfType = PropTypes.oneOfType,\n arrayOf = PropTypes.arrayOf,\n string = PropTypes.string,\n number = PropTypes.number,\n shape = PropTypes.shape,\n func = PropTypes.func; // The first step isn't required to define `minTime` or `test()`.\n\nvar step = oneOfType([shape({\n minTime: number,\n formatAs: string.isRequired\n}), shape({\n test: func,\n formatAs: string.isRequired\n}), shape({\n minTime: number,\n format: func.isRequired\n}), shape({\n test: func,\n format: func.isRequired\n})]); // Formatting style.\n\nexport var style = oneOfType([// Not using `oneOf()` here, because that way\n// this package wouldn't support some hypothetical\n// new styles added to `javascript-time-ago` in some future.\nstring, shape({\n steps: arrayOf(step).isRequired,\n labels: oneOfType([string, arrayOf(string)]).isRequired,\n round: string\n})]);\n//# sourceMappingURL=PropTypes.js.map","var _excluded = [\"date\", \"future\", \"timeStyle\", \"round\", \"minTimeLeft\", \"locale\", \"locales\", \"formatVerboseDate\", \"verboseDateFormat\", \"updateInterval\", \"tick\", \"now\", \"timeOffset\", \"polyfill\", \"tooltip\", \"component\", \"container\", \"wrapperComponent\", \"wrapperProps\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Time from './Time.js';\nimport useTimeAgo from './useTimeAgo.js';\nimport { style as styleType } from './PropTypes.js';\n\nfunction ReactTimeAgo(_ref) {\n var dateProperty = _ref.date,\n future = _ref.future,\n timeStyle = _ref.timeStyle,\n round = _ref.round,\n minTimeLeft = _ref.minTimeLeft,\n locale = _ref.locale,\n _ref$locales = _ref.locales,\n locales = _ref$locales === void 0 ? [] : _ref$locales,\n formatVerboseDate = _ref.formatVerboseDate,\n verboseDateFormat = _ref.verboseDateFormat,\n updateInterval = _ref.updateInterval,\n tick = _ref.tick,\n nowProperty = _ref.now,\n timeOffset = _ref.timeOffset,\n polyfill = _ref.polyfill,\n _ref$tooltip = _ref.tooltip,\n tooltip = _ref$tooltip === void 0 ? true : _ref$tooltip,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? Time : _ref$component,\n container = _ref.container,\n wrapperComponent = _ref.wrapperComponent,\n wrapperProps = _ref.wrapperProps,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var _useTimeAgo = useTimeAgo({\n date: dateProperty,\n future: future,\n timeStyle: timeStyle,\n round: round,\n minTimeLeft: minTimeLeft,\n locale: locale,\n locales: locales,\n formatVerboseDate: formatVerboseDate,\n verboseDateFormat: verboseDateFormat,\n updateInterval: updateInterval,\n tick: tick,\n now: nowProperty,\n timeOffset: timeOffset,\n polyfill: polyfill\n }),\n date = _useTimeAgo.date,\n verboseDate = _useTimeAgo.verboseDate,\n formattedDate = _useTimeAgo.formattedDate;\n\n var result = /*#__PURE__*/React.createElement(Component, _extends({\n date: date,\n verboseDate: verboseDate,\n tooltip: tooltip\n }, rest), formattedDate);\n var WrapperComponent = wrapperComponent || container;\n\n if (WrapperComponent) {\n return /*#__PURE__*/React.createElement(WrapperComponent, _extends({}, wrapperProps, {\n verboseDate: verboseDate\n }), result);\n }\n\n return result;\n}\n\nReactTimeAgo.propTypes = {\n // `date: Date` or `timestamp: number`.\n // E.g. `new Date()` or `1355972400000`.\n date: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired,\n // Preferred locale.\n // Is 'en' by default.\n // E.g. 'ru-RU'.\n locale: PropTypes.string,\n // Alternatively to `locale`, one could pass `locales`:\n // A list of preferred locales (ordered).\n // Will choose the first supported locale from the list.\n // E.g. `['ru-RU', 'en-GB']`.\n locales: PropTypes.arrayOf(PropTypes.string),\n // If set to `true`, then will stop at \"zero point\"\n // when going from future dates to past dates.\n // In other words, even if the `date` has passed,\n // it will still render as if `date` is `now`.\n future: PropTypes.bool,\n // Date/time formatting style.\n // See `javascript-time-ago` docs on \"Styles\" for more info.\n // E.g. 'round', 'round-minute', 'twitter', 'twitter-first-minute'.\n timeStyle: styleType,\n // `round` parameter of `javascript-time-ago`.\n // See `javascript-time-ago` docs on \"Rounding\" for more info.\n // Examples: \"round\", \"floor\".\n round: PropTypes.string,\n // If specified, the time won't \"tick\" past this threshold (in seconds).\n // For example, if `minTimeLeft` is `60 * 60`\n // then the time won't \"tick\" past \"in 1 hour\".\n minTimeLeft: PropTypes.number,\n // A React component to render the relative time label.\n // Receives properties:\n // * date: Date — The date.\n // * verboseDate: string — Formatted verbose date.\n // * tooltip: boolean — The `tooltip` property of `` component.\n // * children: string — The relative time label.\n // * All \"unknown\" properties that have been passed to `` are passed through to this component.\n component: PropTypes.elementType,\n // Whether to use HTML `tooltip` attribute to show a verbose date tooltip.\n // Is `true` by default.\n // Can be set to `false` to disable the native HTML `tooltip`.\n tooltip: PropTypes.bool,\n // Verbose date formatter.\n // By default it's `(date) => new Intl.DateTimeFormat(locale, {…}).format(date)`.\n formatVerboseDate: PropTypes.func,\n // `Intl.DateTimeFormat` format for formatting verbose date.\n // See `Intl.DateTimeFormat` docs for more info.\n verboseDateFormat: PropTypes.object,\n // (deprecated)\n // How often the component refreshes itself.\n // When not provided, will use `getNextTimeToUpdate()` feature\n // of `javascript-time-ago` styles to determine the update interval.\n updateInterval: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.shape({\n threshold: PropTypes.number,\n interval: PropTypes.number.isRequired\n }))]),\n // (deprecated).\n // Set to `false` to disable automatic refresh of the component.\n // Is `true` by default.\n // I guess no one actually turns auto-update off, so this parameter is deprecated.\n tick: PropTypes.bool,\n // Allows setting a custom baseline for relative time measurement.\n // https://gitlab.com/catamphetamine/react-time-ago/-/issues/4\n now: PropTypes.number,\n // Allows offsetting the `date` by an arbitrary amount of milliseconds.\n // https://gitlab.com/catamphetamine/react-time-ago/-/issues/4\n timeOffset: PropTypes.number,\n // Pass `false` to use native `Intl.RelativeTimeFormat` / `Intl.PluralRules`\n // instead of the polyfilled ones in `javascript-time-ago`.\n polyfill: PropTypes.bool,\n // (advanced)\n // A React Component to wrap the resulting `